gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-wallet-webex] 01/03: not working


From: gnunet
Subject: [GNUnet-SVN] [taler-wallet-webex] 01/03: not working
Date: Sat, 22 Sep 2018 17:19:53 +0200

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository wallet-webex.

commit 74fe752ea0bd8b0c25a0db15bbc56b1753bb3a11
Author: Florian Dold <address@hidden>
AuthorDate: Thu Sep 20 21:11:09 2018 +0200

    not working
---
 emscripten/taler-emscripten-lib.js | 121332 +++++++++++++++++++++++++++++++++-
 src/crypto/cryptoWorker.ts         |     20 +-
 src/crypto/emscInterface.ts        |    379 +-
 src/crypto/emscLoader.d.ts         |      8 +-
 src/crypto/emscLoader.js           |     29 +-
 5 files changed, 121600 insertions(+), 168 deletions(-)

diff --git a/emscripten/taler-emscripten-lib.js 
b/emscripten/taler-emscripten-lib.js
index dcbea842..e1bd25dd 100644
--- a/emscripten/taler-emscripten-lib.js
+++ b/emscripten/taler-emscripten-lib.js
@@ -1,22 +1,121328 @@
-var Module;if(!Module)Module=(typeof 
TalerEmscriptenLib!=="undefined"?TalerEmscriptenLib:null)||{};var 
moduleOverrides={};for(var key in 
Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var 
ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var 
ENVIRONMENT_IS_NODE=false;var 
ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else
 if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if [...]
-var asm=(function(global,env,buffer) {
-"use asm";var a=new global.Int8Array(buffer);var b=new 
global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new 
global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new 
global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new 
global.Float64Array(buffer);var i=env.DYNAMICTOP_PTR|0;var 
j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var 
m=env.STACK_MAX|0;var n=env.cttz_i8|0;var o=0;var p=0;var q=0;var r=0;var 
s=global.NaN,t=glob [...]
+// The Module object: Our interface to the outside world. We import
+// and export values on it. 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 check if Module already exists (e.g. case 3 above).
+// Substitution will be replaced with actual code on later stage of the build,
+// this way Closure Compiler will not mangle it (e.g. case 4. 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 = typeof TalerEmscriptenLib !== 'undefined' ? TalerEmscriptenLib : 
{};
+
+// --pre-jses are emitted after the Module integration code, so that they can
+// refer to Module (if they choose; they can also define Module)
+// {{PRE_JSES}}
+
+// 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 = {};
+var key;
+for (key in Module) {
+  if (Module.hasOwnProperty(key)) {
+    moduleOverrides[key] = Module[key];
+  }
+}
+
+Module['arguments'] = [];
+Module['thisProgram'] = './this.program';
+Module['quit'] = function(status, toThrow) {
+  throw toThrow;
+};
+Module['preRun'] = [];
+Module['postRun'] = [];
+
+// Determine the runtime environment we are in. You can customize this by
+// setting the ENVIRONMENT setting at compile time (see settings.js).
+
+var ENVIRONMENT_IS_WEB = false;
+var ENVIRONMENT_IS_WORKER = false;
+var ENVIRONMENT_IS_NODE = false;
+var ENVIRONMENT_IS_SHELL = false;
+ENVIRONMENT_IS_WEB = typeof window === 'object';
+ENVIRONMENT_IS_WORKER = typeof importScripts === 'function';
+ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 
'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;
+ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && 
!ENVIRONMENT_IS_WORKER;
+
+if (Module['ENVIRONMENT']) {
+  throw new Error('Module.ENVIRONMENT has been deprecated. To force the 
environment, use the ENVIRONMENT compile-time option (for example, -s 
ENVIRONMENT=web or -s ENVIRONMENT=node)');
+}
+
+// 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)
+
+assert(typeof Module['memoryInitializerPrefixURL'] === 'undefined', 
'Module.memoryInitializerPrefixURL option was removed, use Module.locateFile 
instead');
+assert(typeof Module['pthreadMainPrefixURL'] === 'undefined', 
'Module.pthreadMainPrefixURL option was removed, use Module.locateFile 
instead');
+assert(typeof Module['cdInitializerPrefixURL'] === 'undefined', 
'Module.cdInitializerPrefixURL option was removed, use Module.locateFile 
instead');
+assert(typeof Module['filePackagePrefixURL'] === 'undefined', 
'Module.filePackagePrefixURL option was removed, use Module.locateFile 
instead');
+
+// `/` should be present at the end if `scriptDirectory` is not empty
+var scriptDirectory = '';
+function locateFile(path) {
+  if (Module['locateFile']) {
+    return Module['locateFile'](path, scriptDirectory);
+  } else {
+    return scriptDirectory + path;
+  }
+}
+
+if (ENVIRONMENT_IS_NODE) {
+  scriptDirectory = __dirname + '/';
+
+  // Expose functionality in the same simple way that the shells work
+  // Note that we pollute the global namespace here, otherwise we break in node
+  var nodeFS;
+  var nodePath;
+
+  Module['read'] = function shell_read(filename, binary) {
+    var ret;
+    ret = tryParseAsDataURI(filename);
+    if (!ret) {
+      if (!nodeFS) nodeFS = require('fs');
+      if (!nodePath) nodePath = require('path');
+      filename = nodePath['normalize'](filename);
+      ret = nodeFS['readFileSync'](filename);
+    }
+    return binary ? ret : ret.toString();
+  };
+
+  Module['readBinary'] = function readBinary(filename) {
+    var ret = Module['read'](filename, true);
+    if (!ret.buffer) {
+      ret = new Uint8Array(ret);
+    }
+    assert(ret.buffer);
+    return ret;
+  };
+
+  if (process['argv'].length > 1) {
+    Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/');
+  }
+
+  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;
+    }
+  });
+  // Currently node will swallow unhandled rejections, but this behavior is
+  // deprecated, and in the future it will exit with error status.
+  process['on']('unhandledRejection', function(reason, p) {
+    err('node.js exiting due to unhandled promise rejection');
+    process['exit'](1);
+  });
+
+  Module['quit'] = function(status) {
+    process['exit'](status);
+  };
+
+  Module['inspect'] = function () { return '[Emscripten Module object]'; };
+} else
+if (ENVIRONMENT_IS_SHELL) {
+
+
+  if (typeof read != 'undefined') {
+    Module['read'] = function shell_read(f) {
+      var data = tryParseAsDataURI(f);
+      if (data) {
+        return intArrayToString(data);
+      }
+      return read(f);
+    };
+  }
+
+  Module['readBinary'] = function readBinary(f) {
+    var data;
+    data = tryParseAsDataURI(f);
+    if (data) {
+      return data;
+    }
+    if (typeof readbuffer === 'function') {
+      return new Uint8Array(readbuffer(f));
+    }
+    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;
+  }
+
+  if (typeof quit === 'function') {
+    Module['quit'] = function(status) {
+      quit(status);
+    }
+  }
+} else
+if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
+  if (ENVIRONMENT_IS_WEB) {
+    if (document.currentScript) {
+      scriptDirectory = document.currentScript.src;
+    }
+  } else { // worker
+    scriptDirectory = self.location.href;
+  }
+  // blob urls look like blob:http://site.com/etc/etc and we cannot infer 
anything from them.
+  // otherwise, slice off the final part of the url to find the script 
directory.
+  // if scriptDirectory does not contain a slash, lastIndexOf will return -1,
+  // and scriptDirectory will correctly be replaced with an empty string.
+  if (scriptDirectory.indexOf('blob:') !== 0) {
+    scriptDirectory = scriptDirectory.substr(0, 
scriptDirectory.lastIndexOf('/')+1);
+  } else {
+    scriptDirectory = '';
+  }
+
+
+  Module['read'] = function shell_read(url) {
+    try {
+      var xhr = new XMLHttpRequest();
+      xhr.open('GET', url, false);
+      xhr.send(null);
+      return xhr.responseText;
+    } catch (err) {
+      var data = tryParseAsDataURI(url);
+      if (data) {
+        return intArrayToString(data);
+      }
+      throw err;
+    }
+  };
+
+  if (ENVIRONMENT_IS_WORKER) {
+    Module['readBinary'] = function readBinary(url) {
+      try {
+        var xhr = new XMLHttpRequest();
+        xhr.open('GET', url, false);
+        xhr.responseType = 'arraybuffer';
+        xhr.send(null);
+        return new Uint8Array(xhr.response);
+      } catch (err) {
+        var data = tryParseAsDataURI(url);
+        if (data) {
+          return data;
+        }
+        throw err;
+      }
+    };
+  }
+
+  Module['readAsync'] = function readAsync(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);
+        return;
+      }
+      var data = tryParseAsDataURI(url);
+      if (data) {
+        onload(data.buffer);
+        return;
+      }
+      onerror();
+    };
+    xhr.onerror = onerror;
+    xhr.send(null);
+  };
+
+  Module['setWindowTitle'] = function(title) { document.title = title };
+} else
+{
+  throw new Error('environment detection error');
+}
+
+// Set up the out() and err() hooks, which are how we can print to stdout or
+// stderr, respectively.
+// If the user provided Module.print or printErr, use that. Otherwise,
+// console.log is checked first, as 'print' on the web will open a print 
dialogue
+// printErr is preferable to console.warn (works better in shells)
+// bind(console) is necessary to fix IE/Edge closed dev tools panel behavior.
+var out = Module['print'] || (typeof console !== 'undefined' ? 
console.log.bind(console) : (typeof print !== 'undefined' ? print : null));
+var err = Module['printErr'] || (typeof printErr !== 'undefined' ? printErr : 
((typeof console !== 'undefined' && console.warn.bind(console)) || out));
+
+// Merge back in the overrides
+for (key in moduleOverrides) {
+  if (moduleOverrides.hasOwnProperty(key)) {
+    Module[key] = moduleOverrides[key];
+  }
+}
+// Free the object hierarchy contained in the overrides, this lets the GC
+// reclaim data used e.g. in memoryInitializerRequest, which is a large typed 
array.
+moduleOverrides = undefined;
+
+
+
+// {{PREAMBLE_ADDITIONS}}
+
+var STACK_ALIGN = 16;
+
+// stack management, and other functionality that is provided by the compiled 
code,
+// should not be used before it is ready
+stackSave = stackRestore = stackAlloc = setTempRet0 = getTempRet0 = function() 
{
+  abort('cannot use the stack before compiled code is ready to run, and has 
provided stack access');
+};
+
+function staticAlloc(size) {
+  assert(!staticSealed);
+  var ret = STATICTOP;
+  STATICTOP = (STATICTOP + size + 15) & -16;
+  assert(STATICTOP < TOTAL_MEMORY, 'not enough memory for static allocation - 
increase TOTAL_MEMORY');
+  return ret;
+}
+
+function dynamicAlloc(size) {
+  assert(DYNAMICTOP_PTR);
+  var ret = HEAP32[DYNAMICTOP_PTR>>2];
+  var end = (ret + size + 15) & -16;
+  HEAP32[DYNAMICTOP_PTR>>2] = end;
+  if (end >= TOTAL_MEMORY) {
+    var success = enlargeMemory();
+    if (!success) {
+      HEAP32[DYNAMICTOP_PTR>>2] = ret;
+      return 0;
+    }
+  }
+  return ret;
+}
+
+function alignMemory(size, factor) {
+  if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default
+  var ret = size = Math.ceil(size / factor) * factor;
+  return ret;
+}
+
+function getNativeTypeSize(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 4; // A pointer
+      } else if (type[0] === 'i') {
+        var bits = parseInt(type.substr(1));
+        assert(bits % 8 === 0);
+        return bits / 8;
+      } else {
+        return 0;
+      }
+    }
+  }
+}
+
+function warnOnce(text) {
+  if (!warnOnce.shown) warnOnce.shown = {};
+  if (!warnOnce.shown[text]) {
+    warnOnce.shown[text] = 1;
+    err(text);
+  }
+}
+
+var asm2wasmImports = { // special asm2wasm imports
+    "f64-rem": function(x, y) {
+        return x % y;
+    },
+    "debugger": function() {
+        debugger;
+    }
+};
+
+
+
+var jsCallStartIndex = 1;
+var functionPointers = new Array(0);
+
+// 'sig' parameter is only used on LLVM wasm backend
+function addFunction(func, sig) {
+  if (typeof sig === 'undefined') {
+    err('warning: addFunction(): You should provide a wasm function signature 
string as a second argument. This is not necessary for asm.js and asm2wasm, but 
is required for the LLVM wasm backend, so it is recommended for full 
portability.');
+  }
+  var base = 0;
+  for (var i = base; i < base + 0; i++) {
+    if (!functionPointers[i]) {
+      functionPointers[i] = func;
+      return jsCallStartIndex + i;
+    }
+  }
+  throw 'Finished up all reserved function pointers. Use a higher value for 
RESERVED_FUNCTION_POINTERS.';
+}
+
+function removeFunction(index) {
+  functionPointers[index-jsCallStartIndex] = null;
+}
+
+var funcWrappers = {};
+
+function getFuncWrapper(func, sig) {
+  if (!func) return; // on null pointer, return undefined
+  assert(sig);
+  if (!funcWrappers[sig]) {
+    funcWrappers[sig] = {};
+  }
+  var sigCache = funcWrappers[sig];
+  if (!sigCache[func]) {
+    // optimize away arguments usage in common cases
+    if (sig.length === 1) {
+      sigCache[func] = function dynCall_wrapper() {
+        return dynCall(sig, func);
+      };
+    } else if (sig.length === 2) {
+      sigCache[func] = function dynCall_wrapper(arg) {
+        return dynCall(sig, func, [arg]);
+      };
+    } else {
+      // general case
+      sigCache[func] = function dynCall_wrapper() {
+        return dynCall(sig, func, Array.prototype.slice.call(arguments));
+      };
+    }
+  }
+  return sigCache[func];
+}
+
+
+function makeBigInt(low, high, unsigned) {
+  return unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : 
((+((low>>>0)))+((+((high|0)))*4294967296.0));
+}
+
+function dynCall(sig, ptr, args) {
+  if (args && args.length) {
+    assert(args.length == sig.length-1);
+    assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table 
for sig \'' + sig + '\'');
+    return Module['dynCall_' + sig].apply(null, [ptr].concat(args));
+  } else {
+    assert(sig.length == 1);
+    assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table 
for sig \'' + sig + '\'');
+    return Module['dynCall_' + sig].call(null, ptr);
+  }
+}
+
+
+function getCompilerSetting(name) {
+  throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for 
getCompilerSetting or emscripten_get_compiler_setting to work';
+}
+
+var Runtime = {
+  // FIXME backwards compatibility layer for ports. Support some Runtime.*
+  //       for now, fix it there, then remove it from here. That way we
+  //       can minimize any period of breakage.
+  dynCall: dynCall, // for SDL2 port
+  // helpful errors
+  getTempRet0: function() { abort('getTempRet0() is now a top-level function, 
after removing the Runtime object. Remove "Runtime."') },
+  staticAlloc: function() { abort('staticAlloc() is now a top-level function, 
after removing the Runtime object. Remove "Runtime."') },
+  stackAlloc: function() { abort('stackAlloc() is now a top-level function, 
after removing the Runtime object. Remove "Runtime."') },
+};
+
+// The address globals begin at. Very low in memory, for code size and 
optimization opportunities.
+// Above 0 is static memory, starting with globals.
+// Then the stack.
+// Then 'dynamic' memory for sbrk.
+var GLOBAL_BASE = 8;
+
+
+// === 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 essentials
+//========================================
+
+// whether we are quitting the application. no code should run after this.
+// set in exit() and abort()
+var ABORT = false;
+
+// set by exit() and abort().  Passed to 'onExit' handler.
+// NOTE: This is also used as the process return code code in shell 
environments
+// but only when noExitRuntime is false.
+var EXITSTATUS = 0;
+
+/** @type {function(*, string=)} */
+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
+  assert(func, 'Cannot call unknown function ' + ident + ', make sure it is 
exported');
+  return func;
+}
+
+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() {
+    stackSave()
+  },
+  'stackRestore': function() {
+    stackRestore()
+  },
+  // type conversion from js to c
+  'arrayToC' : function(arr) {
+    var ret = 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'
+      var len = (str.length << 2) + 1;
+      ret = stackAlloc(len);
+      stringToUTF8(str, ret, len);
+    }
+    return ret;
+  }
+};
+
+// For fast lookup of conversion functions
+var toC = {
+  'string': JSfuncs['stringToC'], 'array': JSfuncs['arrayToC']
+};
+
+
+// C calling interface.
+function ccall(ident, returnType, argTypes, args, opts) {
+  function convertReturnValue(ret) {
+    if (returnType === 'string') return Pointer_stringify(ret);
+    if (returnType === 'boolean') return Boolean(ret);
+    return ret;
+  }
+
+  var func = getCFunc(ident);
+  var cArgs = [];
+  var stack = 0;
+  assert(returnType !== 'array', 'Return type should not be "array".');
+  if (args) {
+    for (var i = 0; i < args.length; i++) {
+      var converter = toC[argTypes[i]];
+      if (converter) {
+        if (stack === 0) stack = stackSave();
+        cArgs[i] = converter(args[i]);
+      } else {
+        cArgs[i] = args[i];
+      }
+    }
+  }
+  var ret = func.apply(null, cArgs);
+  ret = convertReturnValue(ret);
+  if (stack !== 0) stackRestore(stack);
+  return ret;
+}
+
+function cwrap(ident, returnType, argTypes, opts) {
+  return function() {
+    return ccall(ident, returnType, argTypes, arguments, opts);
+  }
+}
+
+/** @type {function(number, number, string, boolean=)} */
+function setValue(ptr, value, type, noSafe) {
+  type = type || 'i8';
+  if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
+    switch(type) {
+      case 'i1': HEAP8[((ptr)>>0)]=value; break;
+      case 'i8': HEAP8[((ptr)>>0)]=value; break;
+      case 'i16': HEAP16[((ptr)>>1)]=value; break;
+      case 'i32': HEAP32[((ptr)>>2)]=value; break;
+      case 'i64': (tempI64 = 
[value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 
0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 
4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - 
+(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 
0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;
+      case 'float': HEAPF32[((ptr)>>2)]=value; break;
+      case 'double': HEAPF64[((ptr)>>3)]=value; break;
+      default: abort('invalid type for setValue: ' + type);
+    }
+}
+
+/** @type {function(number, string, boolean=)} */
+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 getValue: ' + type);
+    }
+  return null;
+}
+
+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
+
+// 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_*
+/** @type {function((TypedArray|Array<number>|number), string, number, 
number=)} */
+function allocate(slab, types, allocator, ptr) {
+  var zeroinit, size;
+  if (typeof slab === 'number') {
+    zeroinit = true;
+    size = slab;
+  } else {
+    zeroinit = false;
+    size = slab.length;
+  }
+
+  var singleType = typeof types === 'string' ? types : null;
+
+  var ret;
+  if (allocator == ALLOC_NONE) {
+    ret = ptr;
+  } else {
+    ret = [typeof _malloc === 'function' ? _malloc : staticAlloc, stackAlloc, 
staticAlloc, dynamicAlloc][allocator === undefined ? ALLOC_STATIC : 
allocator](Math.max(size, singleType ? 1 : types.length));
+  }
+
+  if (zeroinit) {
+    var stop;
+    ptr = ret;
+    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(/** @type {!Uint8Array} */ (slab), ret);
+    } else {
+      HEAPU8.set(new Uint8Array(slab), ret);
+    }
+    return ret;
+  }
+
+  var i = 0, type, typeSize, previousType;
+  while (i < size) {
+    var curr = slab[i];
+
+    type = singleType || types[i];
+    if (type === 0) {
+      i++;
+      continue;
+    }
+    assert(type, 'Must know what type to store in allocate!');
+
+    if (type == 'i64') type = 'i32'; // special case: we have one i32 here, 
and one i32 later
+
+    setValue(ret+i, curr, type);
+
+    // no need to look up size unless type changes, so cache it
+    if (previousType !== type) {
+      typeSize = getNativeTypeSize(type);
+      previousType = type;
+    }
+    i += typeSize;
+  }
+
+  return ret;
+}
+
+// Allocate memory during any stage of startup - static memory early on, 
dynamic memory later, malloc when ready
+function getMemory(size) {
+  if (!staticSealed) return staticAlloc(size);
+  if (!runtimeInitialized) return dynamicAlloc(size);
+  return _malloc(size);
+}
+
+/** @type {function(number, number=)} */
+function Pointer_stringify(ptr, length) {
+  if (length === 0 || !ptr) return '';
+  // Find the length, and check for UTF while doing so
+  var hasUtf = 0;
+  var t;
+  var i = 0;
+  while (1) {
+    assert(ptr + i < TOTAL_MEMORY);
+    t = HEAPU8[(((ptr)+(i))>>0)];
+    hasUtf |= t;
+    if (t == 0 && !length) break;
+    i++;
+    if (length && i == length) break;
+  }
+  if (!length) length = i;
+
+  var ret = '';
+
+  if (hasUtf < 128) {
+    var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge 
string can overflow the stack
+    var curr;
+    while (length > 0) {
+      curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + 
Math.min(length, MAX_CHUNK)));
+      ret = ret ? ret + curr : curr;
+      ptr += MAX_CHUNK;
+      length -= MAX_CHUNK;
+    }
+    return ret;
+  }
+  return UTF8ToString(ptr);
+}
+
+// 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);
+  }
+}
+
+// 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);
+}
+
+// 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.
+
+var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') 
: undefined;
+function UTF8ArrayToString(u8Array, idx) {
+  var endPtr = idx;
+  // TextDecoder needs to know the byte length in advance, it doesn't stop on 
null terminator by itself.
+  // Also, use the length info to avoid running tiny strings through 
TextDecoder, since .subarray() allocates garbage.
+  while (u8Array[endPtr]) ++endPtr;
+
+  if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {
+    return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));
+  } else {
+    var u0, u1, u2, u3, u4, u5;
+
+    var str = '';
+    while (1) {
+      // For UTF8 byte structure, see:
+      // http://en.wikipedia.org/wiki/UTF-8#Description
+      // https://www.ietf.org/rfc/rfc2279.txt
+      // 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));
+      }
+    }
+  }
+}
+
+// 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);
+}
+
+// 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) {
+      var u1 = str.charCodeAt(++i);
+      u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 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;
+}
+
+// Copies the given Javascript String object 'str' to the emscripten HEAP at 
address 'outPtr',
+// null-terminated and encoded in UTF8 form. The copy will require at most 
str.length*4+1 bytes of space in the HEAP.
+// Use the function lengthBytesUTF8 to compute the exact number of bytes 
(excluding null terminator) that this function will write.
+// Returns the number of bytes written, EXCLUDING the null terminator.
+
+function stringToUTF8(str, outPtr, maxBytesToWrite) {
+  assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, 
maxBytesToWrite) is missing the third parameter that specifies the length of 
the output buffer!');
+  return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite);
+}
+
+// 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;
+}
+
+// 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.
+
+var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new 
TextDecoder('utf-16le') : undefined;
+function UTF16ToString(ptr) {
+  assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two 
bytes!');
+  var endPtr = ptr;
+  // TextDecoder needs to know the byte length in advance, it doesn't stop on 
null terminator by itself.
+  // Also, use the length info to avoid running tiny strings through 
TextDecoder, since .subarray() allocates garbage.
+  var idx = endPtr >> 1;
+  while (HEAP16[idx]) ++idx;
+  endPtr = idx << 1;
+
+  if (endPtr - ptr > 32 && UTF16Decoder) {
+    return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));
+  } else {
+    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);
+    }
+  }
+}
+
+// Copies the given Javascript String object 'str' to the emscripten HEAP at 
address 'outPtr',
+// null-terminated and encoded in UTF16 form. The copy will require at most 
str.length*4+2 bytes of space in the HEAP.
+// Use the function lengthBytesUTF16() to compute the exact number of bytes 
(excluding null terminator) that this function will write.
+// Parameters:
+//   str: the Javascript string to copy.
+//   outPtr: Byte address in Emscripten HEAP where to write the string to.
+//   maxBytesToWrite: The maximum number of bytes this function can write to 
the array. This count should include the null
+//                    terminator, i.e. if maxBytesToWrite=2, only the null 
terminator will be written and nothing else.
+//                    maxBytesToWrite<2 does not write any bytes to the 
output, not even the null terminator.
+// Returns the number of bytes written, EXCLUDING the null terminator.
+
+function stringToUTF16(str, outPtr, maxBytesToWrite) {
+  assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to 
two bytes!');
+  assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, 
maxBytesToWrite) is missing the third parameter that specifies the length of 
the output buffer!');
+  // Backwards compatibility: if max bytes is not specified, assume unsafe 
unbounded write is allowed.
+  if (maxBytesToWrite === undefined) {
+    maxBytesToWrite = 0x7FFFFFFF;
+  }
+  if (maxBytesToWrite < 2) return 0;
+  maxBytesToWrite -= 2; // Null terminator.
+  var startPtr = outPtr;
+  var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 
2) : str.length;
+  for (var i = 0; i < numCharsToWrite; ++i) {
+    // charCodeAt returns a UTF-16 encoded code unit, so it can be directly 
written to the HEAP.
+    var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
+    HEAP16[((outPtr)>>1)]=codeUnit;
+    outPtr += 2;
+  }
+  // Null-terminate the pointer to the HEAP.
+  HEAP16[((outPtr)>>1)]=0;
+  return outPtr - startPtr;
+}
+
+// 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;
+}
+
+function UTF32ToString(ptr) {
+  assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to 
four bytes!');
+  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);
+    }
+  }
+}
+
+// Copies the given Javascript String object 'str' to the emscripten HEAP at 
address 'outPtr',
+// null-terminated and encoded in UTF32 form. The copy will require at most 
str.length*4+4 bytes of space in the HEAP.
+// Use the function lengthBytesUTF32() to compute the exact number of bytes 
(excluding null terminator) that this function will write.
+// Parameters:
+//   str: the Javascript string to copy.
+//   outPtr: Byte address in Emscripten HEAP where to write the string to.
+//   maxBytesToWrite: The maximum number of bytes this function can write to 
the array. This count should include the null
+//                    terminator, i.e. if maxBytesToWrite=4, only the null 
terminator will be written and nothing else.
+//                    maxBytesToWrite<4 does not write any bytes to the 
output, not even the null terminator.
+// Returns the number of bytes written, EXCLUDING the null terminator.
+
+function stringToUTF32(str, outPtr, maxBytesToWrite) {
+  assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to 
four bytes!');
+  assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, 
maxBytesToWrite) is missing the third parameter that specifies the length of 
the output buffer!');
+  // Backwards compatibility: if max bytes is not specified, assume unsafe 
unbounded write is allowed.
+  if (maxBytesToWrite === undefined) {
+    maxBytesToWrite = 0x7FFFFFFF;
+  }
+  if (maxBytesToWrite < 4) return 0;
+  var startPtr = outPtr;
+  var endPtr = startPtr + maxBytesToWrite - 4;
+  for (var i = 0; i < str.length; ++i) {
+    // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code 
unit, not a Unicode code point of the character! We must decode the string to 
UTF-32 to the heap.
+    // See http://unicode.org/faq/utf_bom.html#utf16-3
+    var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
+    if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {
+      var trailSurrogate = str.charCodeAt(++i);
+      codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 
0x3FF);
+    }
+    HEAP32[((outPtr)>>2)]=codeUnit;
+    outPtr += 4;
+    if (outPtr + 4 > endPtr) break;
+  }
+  // Null-terminate the pointer to the HEAP.
+  HEAP32[((outPtr)>>2)]=0;
+  return outPtr - startPtr;
+}
+
+// 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;
+}
+
+// Allocate heap space for a JS string, and write it there.
+// It is the responsibility of the caller to free() that memory.
+function allocateUTF8(str) {
+  var size = lengthBytesUTF8(str) + 1;
+  var ret = _malloc(size);
+  if (ret) stringToUTF8Array(str, HEAP8, ret, size);
+  return ret;
+}
+
+// Allocate stack space for a JS string, and write it there.
+function allocateUTF8OnStack(str) {
+  var size = lengthBytesUTF8(str) + 1;
+  var ret = stackAlloc(size);
+  stringToUTF8Array(str, HEAP8, ret, size);
+  return ret;
+}
+
+function demangle(func) {
+  warnOnce('warning: build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi 
demangling');
+  return func;
+}
+
+function demangleAll(text) {
+  var regex =
+    /__Z[\w\d_]+/g;
+  return text.replace(regex,
+    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() {
+  var js = jsStackTrace();
+  if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace']();
+  return demangleAll(js);
+}
+
+// Memory management
+
+var PAGE_SIZE = 16384;
+var WASM_PAGE_SIZE = 65536;
+var ASMJS_PAGE_SIZE = 16777216;
+var MIN_TOTAL_MEMORY = 16777216;
+
+function alignUp(x, multiple) {
+  if (x % multiple > 0) {
+    x += multiple - (x % multiple);
+  }
+  return x;
+}
+
+var HEAP,
+/** @type {ArrayBuffer} */
+  buffer,
+/** @type {Int8Array} */
+  HEAP8,
+/** @type {Uint8Array} */
+  HEAPU8,
+/** @type {Int16Array} */
+  HEAP16,
+/** @type {Uint16Array} */
+  HEAPU16,
+/** @type {Int32Array} */
+  HEAP32,
+/** @type {Uint32Array} */
+  HEAPU32,
+/** @type {Float32Array} */
+  HEAPF32,
+/** @type {Float64Array} */
+  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, STATICTOP, staticSealed; // static area
+var STACK_BASE, STACKTOP, STACK_MAX; // stack area
+var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk
+
+  STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = 
DYNAMICTOP_PTR = 0;
+  staticSealed = false;
+
+
+// Initializes the stack cookie. Called at the startup of main and at the 
startup of each thread in pthreads mode.
+function writeStackCookie() {
+  assert((STACK_MAX & 3) == 0);
+  HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467;
+  HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE;
+}
+
+function checkStackCookie() {
+  if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] 
!= 0x89BACDFE) {
+    abort('Stack overflow! Stack cookie has been overwritten, expected hex 
dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 
2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16));
+  }
+  // Also test the global address 0 for integrity. This check is not 
compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all 
address 0 accesses on its own.
+  if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) throw 'Runtime error: The 
application has corrupted its heap memory area (address zero)!';
+}
+
+function abortStackOverflow(allocSize) {
+  abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the 
stack, but stack has only ' + (STACK_MAX - stackSave() + allocSize) + ' bytes 
available!');
+}
+
+
+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 allows increasing the size at 
runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a 
higher value before the program runs, or (4) 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;
+if (TOTAL_MEMORY < TOTAL_STACK) err('TOTAL_MEMORY should be larger than 
TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')');
+
+// 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' && Int32Array.prototype.subarray !== undefined && 
Int32Array.prototype.set !== undefined,
+       '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 {
+  // Use a WebAssembly memory where available
+  {
+    buffer = new ArrayBuffer(TOTAL_MEMORY);
+  }
+  assert(buffer.byteLength === TOTAL_MEMORY);
+  Module['buffer'] = buffer;
+}
+updateGlobalBufferViews();
+
+
+function getTotalMemory() {
+  return TOTAL_MEMORY;
+}
+
+// Endianness check (note: assumes compiler arch was little-endian)
+  HEAP32[0] = 0x63736d65; /* 'emsc' */
+HEAP16[1] = 0x6373;
+if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected 
the system to be little-endian!';
+
+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) {
+        Module['dynCall_v'](func);
+      } else {
+        Module['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 main() is called
+
+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() {
+  checkStackCookie();
+  if (runtimeInitialized) return;
+  runtimeInitialized = true;
+  callRuntimeCallbacks(__ATINIT__);
+}
+
+function preMain() {
+  checkStackCookie();
+  callRuntimeCallbacks(__ATMAIN__);
+}
+
+function exitRuntime() {
+  checkStackCookie();
+  callRuntimeCallbacks(__ATEXIT__);
+  runtimeExited = true;
+}
+
+function postRun() {
+  checkStackCookie();
+  // 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);
+}
+
+function addOnInit(cb) {
+  __ATINIT__.unshift(cb);
+}
+
+function addOnPreMain(cb) {
+  __ATMAIN__.unshift(cb);
+}
+
+function addOnExit(cb) {
+  __ATEXIT__.unshift(cb);
+}
+
+function addOnPostRun(cb) {
+  __ATPOSTRUN__.unshift(cb);
+}
+
+// Deprecated: This function should not be called because it is unsafe and 
does not provide
+// a maximum length limit of how many bytes it is allowed to write. Prefer 
calling the
+// function stringToUTF8Array() instead, which takes in a maximum length that 
can be used
+// to be secure from out of bounds writes.
+/** @deprecated */
+function writeStringToMemory(string, buffer, dontAddNull) {
+  warnOnce('writeStringToMemory is deprecated and should not be called! Use 
stringToUTF8() instead!');
+
+  var /** @type {number} */ lastChar, /** @type {number} */ end;
+  if (dontAddNull) {
+    // stringToUTF8Array always appends null. If we don't want to do that, 
remember the
+    // character that existed at the location where the null will be placed, 
and restore
+    // that after the write (below).
+    end = buffer + lengthBytesUTF8(string);
+    lastChar = HEAP8[end];
+  }
+  stringToUTF8(string, buffer, Infinity);
+  if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null 
character.
+}
+
+function writeArrayToMemory(array, buffer) {
+  assert(array.length >= 0, 'writeArrayToMemory array must have a length 
(should be an array or typed array)')
+  HEAP8.set(array, buffer);
+}
+
+function writeAsciiToMemory(str, buffer, dontAddNull) {
+  for (var i = 0; i < str.length; ++i) {
+    assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff);
+    HEAP8[((buffer++)>>0)]=str.charCodeAt(i);
+  }
+  // Null-terminate the pointer to the HEAP.
+  if (!dontAddNull) HEAP8[((buffer)>>0)]=0;
+}
+
+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;
+}
+
+assert(Math['imul'] && Math['fround'] && Math['clz32'] && Math['trunc'], 'this 
is a legacy browser, build with LEGACY_VM_SUPPORT');
+
+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_round = Math.round;
+var Math_min = Math.min;
+var Math_max = Math.max;
+var Math_clz32 = Math.clz32;
+var Math_trunc = Math.trunc;
+
+// 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
+// Module.preRun (used by emcc to add file preloading).
+// Note that you can add dependencies in preRun, even though
+// it happens right before run - run will be postponed until
+// the dependencies are met.
+var runDependencies = 0;
+var runDependencyWatcher = null;
+var dependenciesFulfilled = null; // overridden to take different actions when 
all run dependencies are fulfilled
+var runDependencyTracking = {};
+
+function getUniqueRunDependency(id) {
+  var orig = id;
+  while (1) {
+    if (!runDependencyTracking[id]) return id;
+    id = orig + Math.random();
+  }
+  return id;
+}
+
+function addRunDependency(id) {
+  runDependencies++;
+  if (Module['monitorRunDependencies']) {
+    Module['monitorRunDependencies'](runDependencies);
+  }
+  if (id) {
+    assert(!runDependencyTracking[id]);
+    runDependencyTracking[id] = 1;
+    if (runDependencyWatcher === null && typeof setInterval !== 'undefined') {
+      // Check for missing dependencies every few seconds
+      runDependencyWatcher = setInterval(function() {
+        if (ABORT) {
+          clearInterval(runDependencyWatcher);
+          runDependencyWatcher = null;
+          return;
+        }
+        var shown = false;
+        for (var dep in runDependencyTracking) {
+          if (!shown) {
+            shown = true;
+            err('still waiting on run dependencies:');
+          }
+          err('dependency: ' + dep);
+        }
+        if (shown) {
+          err('(end of list)');
+        }
+      }, 10000);
+    }
+  } else {
+    err('warning: run dependency added without ID');
+  }
+}
+
+function removeRunDependency(id) {
+  runDependencies--;
+  if (Module['monitorRunDependencies']) {
+    Module['monitorRunDependencies'](runDependencies);
+  }
+  if (id) {
+    assert(runDependencyTracking[id]);
+    delete runDependencyTracking[id];
+  } else {
+    err('warning: run dependency removed without ID');
+  }
+  if (runDependencies == 0) {
+    if (runDependencyWatcher !== null) {
+      clearInterval(runDependencyWatcher);
+      runDependencyWatcher = null;
+    }
+    if (dependenciesFulfilled) {
+      var callback = dependenciesFulfilled;
+      dependenciesFulfilled = null;
+      callback(); // can add another dependenciesFulfilled
+    }
+  }
+}
+
+Module["preloadedImages"] = {}; // maps url to image data
+Module["preloadedAudios"] = {}; // maps url to audio data
+
+
+
+var memoryInitializer = null;
+
+
+
+
+
+
+// Prefix of data URIs emitted by SINGLE_FILE and related options.
+var dataURIPrefix = 'data:application/octet-stream;base64,';
+
+// Indicates whether filename is a base64 data URI.
+function isDataURI(filename) {
+  return String.prototype.startsWith ?
+      filename.startsWith(dataURIPrefix) :
+      filename.indexOf(dataURIPrefix) === 0;
+}
+
+
+
+
+
+// === Body ===
+
+var ASM_CONSTS = [];
+
+
+
+
+
+STATIC_BASE = GLOBAL_BASE;
+
+STATICTOP = STATIC_BASE + 73360;
+/* global initializers */  __ATINIT__.push({ func: function() { 
_GNUNET_util_cl_init() } }, { func: function() { _GNUNET_CRYPTO_random_init() } 
}, { func: function() { _gpg_err_init() } }, { func: function() { 
_TALER_gcrypt_init() } }, { func: function() { 
___emscripten_environ_constructor() } });
+
+
+memoryInitializer = 
"data:application/octet-stream;base64,AAAAAAAAAABhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OS0uL186Kis9AAAAAAAAAAAAAAEAAADrrgAAAgAAAPeuAAAEAAAAA68AAAgAAAAPrwAAEAAAAByvAAAgAAAAJq8AAEAAAAAxrwAAgAAAAD2vAAAAAQAASq8AAAACAABWrwAAAAQAAGOvAAAACAAAba8AAAAQAAB4rwAAAAAAAAAAAAAvcHJvYy9zeXMvY3J5cHRvL2ZpcHNfZW5hYmxlZAAAABviAAAAAQAAAAAAAAIAAAABAAAAuLUAAPu1AAABtgAARbYAAIi2AADLtgAADrcAABO3AADAAAAAAQAAAAAAAAAAAAAAHrcAAFG3AACEtwAAt7cAAOq3AAAduAAAUL
 [...]
+
+
+
+
+
+/* no memory initializer */
+var tempDoublePtr = STATICTOP; STATICTOP += 16;
+
+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}}
+
+
+  function ___assert_fail(condition, filename, line, func) {
+      abort('Assertion failed: ' + Pointer_stringify(condition) + ', at: ' + 
[filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? 
Pointer_stringify(func) : 'unknown function']);
+    }
+
+  
+  var ENV={};function ___buildEnvironment(environ) {
+      // 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.UTF-8';
+        ENV['_'] = Module['thisProgram'];
+        // Allocate memory.
+        poolPtr = getMemory(TOTAL_ENV_SIZE);
+        envPtr = getMemory(MAX_ENV_VALUES * 4);
+        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;
+    }
+
+  
+  
+   
+  
+   
+  
+     
+
+  function ___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:5
 [...]
+  
+  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",2 [...]
+  
+  function ___setErrNo(value) {
+      if (Module['___errno_location']) 
HEAP32[((Module['___errno_location']())>>2)]=value;
+      else err('failed to set errno from JS');
+      return value;
+    }
+  
+  var PATH={splitPath:function(filename) {
+        var splitPathRe = 
/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
+        return splitPathRe.exec(filename).slice(1);
+      },normalizeArray:function(parts, allowAboveRoot) {
+        // if the path tries to go above the root, `up` ends up > 0
+        var up = 0;
+        for (var i = parts.length - 1; i >= 0; i--) {
+          var last = parts[i];
+          if (last === '.') {
+            parts.splice(i, 1);
+          } else if (last === '..') {
+            parts.splice(i, 1);
+            up++;
+          } else if (up) {
+            parts.splice(i, 1);
+            up--;
+          }
+        }
+        // if the path is allowed to go above the root, restore leading ..s
+        if (allowAboveRoot) {
+          for (; up; up--) {
+            parts.unshift('..');
+          }
+        }
+        return parts;
+      },normalize:function(path) {
+        var isAbsolute = path.charAt(0) === '/',
+            trailingSlash = path.substr(-1) === '/';
+        // Normalize the path
+        path = PATH.normalizeArray(path.split('/').filter(function(p) {
+          return !!p;
+        }), !isAbsolute).join('/');
+        if (!path && !isAbsolute) {
+          path = '.';
+        }
+        if (path && trailingSlash) {
+          path += '/';
+        }
+        return (isAbsolute ? '/' : '') + path;
+      },dirname:function(path) {
+        var result = PATH.splitPath(path),
+            root = result[0],
+            dir = result[1];
+        if (!root && !dir) {
+          // No dirname whatsoever
+          return '.';
+        }
+        if (dir) {
+          // It has a dirname, strip trailing slash
+          dir = dir.substr(0, dir.length - 1);
+        }
+        return root + dir;
+      },basename:function(path) {
+        // EMSCRIPTEN return '/'' for '/', not an empty string
+        if (path === '/') return '/';
+        var lastSlash = path.lastIndexOf('/');
+        if (lastSlash === -1) return path;
+        return path.substr(lastSlash+1);
+      },extname:function(path) {
+        return PATH.splitPath(path)[3];
+      },join:function() {
+        var paths = Array.prototype.slice.call(arguments, 0);
+        return PATH.normalize(paths.join('/'));
+      },join2:function(l, r) {
+        return PATH.normalize(l + '/' + r);
+      },resolve:function() {
+        var resolvedPath = '',
+          resolvedAbsolute = false;
+        for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
+          var path = (i >= 0) ? arguments[i] : FS.cwd();
+          // Skip empty and invalid entries
+          if (typeof path !== 'string') {
+            throw new TypeError('Arguments to path.resolve must be strings');
+          } else if (!path) {
+            return ''; // an invalid portion invalidates the whole thing
+          }
+          resolvedPath = path + '/' + resolvedPath;
+          resolvedAbsolute = path.charAt(0) === '/';
+        }
+        // At this point the path should be resolved to a full absolute path, 
but
+        // handle relative paths to be safe (might happen when process.cwd() 
fails)
+        resolvedPath = 
PATH.normalizeArray(resolvedPath.split('/').filter(function(p) {
+          return !!p;
+        }), !resolvedAbsolute).join('/');
+        return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
+      },relative:function(from, to) {
+        from = PATH.resolve(from).substr(1);
+        to = PATH.resolve(to).substr(1);
+        function trim(arr) {
+          var start = 0;
+          for (; start < arr.length; start++) {
+            if (arr[start] !== '') break;
+          }
+          var end = arr.length - 1;
+          for (; end >= 0; end--) {
+            if (arr[end] !== '') break;
+          }
+          if (start > end) return [];
+          return arr.slice(start, end - start + 1);
+        }
+        var fromParts = trim(from.split('/'));
+        var toParts = trim(to.split('/'));
+        var length = Math.min(fromParts.length, toParts.length);
+        var samePartsLength = length;
+        for (var i = 0; i < length; i++) {
+          if (fromParts[i] !== toParts[i]) {
+            samePartsLength = i;
+            break;
+          }
+        }
+        var outputParts = [];
+        for (var i = samePartsLength; i < fromParts.length; i++) {
+          outputParts.push('..');
+        }
+        outputParts = outputParts.concat(toParts.slice(samePartsLength));
+        return outputParts.join('/');
+      }};
+  
+  var TTY={ttys:[],init:function () {
+        // https://github.com/kripken/emscripten/pull/1555
+        // if (ENVIRONMENT_IS_NODE) {
+        //   // currently, FS.init does not distinguish if process.stdin is a 
file or TTY
+        //   // device, it always assumes it's a TTY device. because of this, 
we're forcing
+        //   // process.stdin to UTF8 encoding to at least make stdin reading 
compatible
+        //   // with text files until FS.init can be refactored.
+        //   process['stdin']['setEncoding']('utf8');
+        // }
+      },shutdown:function() {
+        // https://github.com/kripken/emscripten/pull/1555
+        // if (ENVIRONMENT_IS_NODE) {
+        //   // inolen: any idea as to why node -e 'process.stdin.read()' 
wouldn't exit immediately (with process.stdin being a tty)?
+        //   // isaacs: because now it's reading from the stream, you've 
expressed interest in it, so that read() kicks off a _read() which creates a 
ReadReq operation
+        //   // inolen: I thought read() in that case was a synchronous 
operation that just grabbed some amount of buffered data if it exists?
+        //   // isaacs: it is. but it also triggers a _read() call, which 
calls readStart() on the handle
+        //   // isaacs: do process.stdin.pause() and i'd think it'd probably 
close the pending call
+        //   process['stdin']['pause']();
+        // }
+      },register:function(dev, ops) {
+        TTY.ttys[dev] = { input: [], output: [], ops: ops };
+        FS.registerDevice(dev, TTY.stream_ops);
+      },stream_ops:{open:function(stream) {
+          var tty = TTY.ttys[stream.node.rdev];
+          if (!tty) {
+            throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
+          }
+          stream.tty = tty;
+          stream.seekable = false;
+        },close:function(stream) {
+          // flush any pending line data
+          stream.tty.ops.flush(stream.tty);
+        },flush:function(stream) {
+          stream.tty.ops.flush(stream.tty);
+        },read:function(stream, buffer, offset, length, pos /* ignored */) {
+          if (!stream.tty || !stream.tty.ops.get_char) {
+            throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
+          }
+          var bytesRead = 0;
+          for (var i = 0; i < length; i++) {
+            var result;
+            try {
+              result = stream.tty.ops.get_char(stream.tty);
+            } catch (e) {
+              throw new FS.ErrnoError(ERRNO_CODES.EIO);
+            }
+            if (result === undefined && bytesRead === 0) {
+              throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
+            }
+            if (result === null || result === undefined) break;
+            bytesRead++;
+            buffer[offset+i] = result;
+          }
+          if (bytesRead) {
+            stream.node.timestamp = Date.now();
+          }
+          return bytesRead;
+        },write:function(stream, buffer, offset, length, pos) {
+          if (!stream.tty || !stream.tty.ops.put_char) {
+            throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
+          }
+          for (var i = 0; i < length; i++) {
+            try {
+              stream.tty.ops.put_char(stream.tty, buffer[offset+i]);
+            } catch (e) {
+              throw new FS.ErrnoError(ERRNO_CODES.EIO);
+            }
+          }
+          if (length) {
+            stream.node.timestamp = Date.now();
+          }
+          return i;
+        }},default_tty_ops:{get_char:function(tty) {
+          if (!tty.input.length) {
+            var result = null;
+            if (ENVIRONMENT_IS_NODE) {
+              // we will read data by chunks of BUFSIZE
+              var BUFSIZE = 256;
+              var buf = new Buffer(BUFSIZE);
+              var bytesRead = 0;
+  
+              var isPosixPlatform = (process.platform != 'win32'); // Node 
doesn't offer a direct check, so test by exclusion
+  
+              var fd = process.stdin.fd;
+              if (isPosixPlatform) {
+                // 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) {}
+              }
+  
+              try {
+                bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, null);
+              } catch(e) {
+                // Cross-platform differences: on Windows, reading EOF throws 
an exception, but on other OSes,
+                // reading EOF returns 0. Uniformize behavior by treating the 
EOF exception to return 0.
+                if (e.toString().indexOf('EOF') != -1) bytesRead = 0;
+                else throw e;
+              }
+  
+              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) {
+            out(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) {
+            out(UTF8ArrayToString(tty.output, 0));
+            tty.output = [];
+          }
+        }},default_tty1_ops:{put_char:function(tty, val) {
+          if (val === null || val === 10) {
+            err(UTF8ArrayToString(tty.output, 0));
+            tty.output = [];
+          } else {
+            if (val != 0) tty.output.push(val);
+          }
+        },flush:function(tty) {
+          if (tty.output && tty.output.length > 0) {
+            err(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.length 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.length : 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) {
+              assert(position === 0, 'canOwn must imply no weird position 
inside the file');
+              node.contents = buffer.subarray(offset, offset + length);
+              node.usedBytes = length;
+              return length;
+            } else if (node.usedBytes === 0 && position === 0) { // If this is 
a simple first write to an empty file, do a fast set since we don't need to 
care about old data.
+              node.contents = new Uint8Array(buffer.subarray(offset, offset + 
length));
+              node.usedBytes = length;
+              return length;
+            } else if (position + length <= node.usedBytes) { // Writing to an 
already allocated and used subrange of the file?
+              node.contents.set(buffer.subarray(offset, offset + length), 
position);
+              return length;
+            }
+          }
+  
+          // Appending to an existing file and we need to reallocate, or 
source data did not come as a typed array.
+          MEMFS.expandFileStorage(node, position+length);
+          if (node.contents.subarray && buffer.subarray) 
node.contents.set(buffer.subarray(offset, offset + length), position); // Use 
typed array write if available.
+          else {
+            for (var i = 0; i < length; i++) {
+             node.contents[position + i] = buffer[offset + i]; // Or fall back 
to manual write if not.
+            }
+          }
+          node.usedBytes = Math.max(node.usedBytes, position+length);
+          return length;
+        },llseek:function(stream, offset, whence) {
+          var position = offset;
+          if (whence === 1) {  // SEEK_CUR.
+            position += stream.position;
+          } else if (whence === 2) {  // SEEK_END.
+            if (FS.isFile(stream.node.mode)) {
+              position += stream.node.usedBytes;
+            }
+          }
+          if (position < 0) {
+            throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
+          }
+          return position;
+        },allocate:function(stream, offset, length) {
+          MEMFS.expandFileStorage(stream.node, offset + length);
+          stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + 
length);
+        },mmap:function(stream, buffer, offset, length, position, prot, flags) 
{
+          if (!FS.isFile(stream.node.mode)) {
+            throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
+          }
+          var ptr;
+          var allocated;
+          var contents = stream.node.contents;
+          // Only make a new copy when MAP_PRIVATE is specified.
+          if ( !(flags & 2) &&
+                (contents.buffer === buffer || contents.buffer === 
buffer.buffer) ) {
+            // We can't emulate MAP_SHARED when the file is not backed by the 
buffer
+            // we're mapping to (e.g. the HEAP buffer).
+            allocated = false;
+            ptr = contents.byteOffset;
+          } else {
+            // Try to avoid unnecessary slices.
+            if (position > 0 || position + length < stream.node.usedBytes) {
+              if (contents.subarray) {
+                contents = contents.subarray(position, position + length);
+              } else {
+                contents = Array.prototype.slice.call(contents, position, 
position + length);
+              }
+            }
+            allocated = true;
+            ptr = _malloc(length);
+            if (!ptr) {
+              throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);
+            }
+            buffer.set(contents, ptr);
+          }
+          return { ptr: ptr, allocated: allocated };
+        },msync:function(stream, buffer, offset, length, mmapFlags) {
+          if (!FS.isFile(stream.node.mode)) {
+            throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
+          }
+          if (mmapFlags & 2) {
+            // MAP_PRIVATE calls need not to be synced back to underlying fs
+            return 0;
+          }
+  
+          var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, 
offset, false);
+          // should we check if bytesWritten and length are the same?
+          return 0;
+        }}};
+  
+  var IDBFS={dbs:{},indexedDB:function() {
+        if (typeof indexedDB !== 'undefined') return indexedDB;
+        var ret = null;
+        if (typeof window === 'object') ret = window.indexedDB || 
window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
+        assert(ret, 'IDBFS used, but indexedDB not supported');
+        return ret;
+      },DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(mount) {
+        // reuse all of the core MEMFS functionality
+        return MEMFS.mount.apply(null, arguments);
+      },syncfs:function(mount, populate, callback) {
+        IDBFS.getLocalSet(mount, function(err, local) {
+          if (err) return callback(err);
+  
+          IDBFS.getRemoteSet(mount, function(err, remote) {
+            if (err) return callback(err);
+  
+            var src = populate ? remote : local;
+            var dst = populate ? local : remote;
+  
+            IDBFS.reconcile(src, dst, callback);
+          });
+        });
+      },getDB:function(name, callback) {
+        // check the cache first
+        var db = IDBFS.dbs[name];
+        if (db) {
+          return callback(null, db);
+        }
+  
+        var req;
+        try {
+          req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION);
+        } catch (e) {
+          return callback(e);
+        }
+        if (!req) {
+          return callback("Unable to connect to IndexedDB");
+        }
+        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);
+  
+          try {
+            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();
+            };
+          } catch (e) {
+            return callback(e);
+          }
+        });
+      },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, { 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/);
+        var flags = process["binding"]("constants");
+        // Node.js 4 compatibility: it has no namespaces for constants
+        if (flags["fs"]) {
+          flags = flags["fs"];
+        }
+        NODEFS.flagsForNodeMap = {
+          "1024": flags["O_APPEND"],
+          "64": flags["O_CREAT"],
+          "128": flags["O_EXCL"],
+          "0": flags["O_RDONLY"],
+          "2": flags["O_RDWR"],
+          "4096": flags["O_SYNC"],
+          "512": flags["O_TRUNC"],
+          "1": flags["O_WRONLY"]
+        };
+      },bufferFrom:function (arrayBuffer) {
+        // Node.js < 4.5 compatibility: Buffer.from does not support 
ArrayBuffer
+        // Buffer.from before 4.5 was just a method inherited from Uint8Array
+        // Buffer.alloc has been added with Buffer.from together, so check it 
instead
+        return Buffer.alloc ? Buffer.from(arrayBuffer) : new 
Buffer(arrayBuffer);
+      },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) {
+            // Node.js on Windows never represents permission bit 'x', so
+            // propagate read bits to execute bits
+            stat.mode = stat.mode | ((stat.mode & 292) >> 2);
+          }
+        } 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);
+      },flagsForNode:function(flags) {
+        flags &= ~0x200000 /*O_PATH*/; // Ignore this flag from musl, 
otherwise node.js fails to open the file.
+        flags &= ~0x800 /*O_NONBLOCK*/; // Ignore this flag from musl, 
otherwise node.js fails to open the file.
+        flags &= ~0x8000 /*O_LARGEFILE*/; // Ignore this flag from musl, 
otherwise node.js fails to open the file.
+        flags &= ~0x80000 /*O_CLOEXEC*/; // Some applications may pass it; it 
makes no sense for a single process.
+        var newFlags = 0;
+        for (var k in NODEFS.flagsForNodeMap) {
+          if (flags & k) {
+            newFlags |= NODEFS.flagsForNodeMap[k];
+            flags ^= k;
+          }
+        }
+  
+        if (!flags) {
+          return newFlags;
+        } 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.flagsForNode(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) {
+          // Node.js < 6 compatibility: node errors on 0 length reads
+          if (length === 0) return 0;
+          try {
+            return fs.readSync(stream.nfd, NODEFS.bufferFrom(buffer.buffer), 
offset, length, position);
+          } catch (e) {
+            throw new FS.ErrnoError(ERRNO_CODES[e.code]);
+          }
+        },write:function (stream, buffer, offset, length, position) {
+          try {
+            return fs.writeSync(stream.nfd, NODEFS.bufferFrom(buffer.buffer), 
offset, length, position);
+          } catch (e) {
+            throw new FS.ErrnoError(ERRNO_CODES[e.code]);
+          }
+        },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('/');
+            // Issue 4254: Using curr as a node name will prevent the node
+            // from being found in FS.nameTable when FS.open is called on
+            // a path which holds a child of this node,
+            // given that all FS functions assume node names
+            // are just their corresponding parts within their given path,
+            // rather than incremental aggregates which include their parent's
+            // directories.
+            if (!createdParents[curr]) {
+              createdParents[curr] = WORKERFS.createNode(parent, parts[i], 
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) {
+          var entries = ['.', '..'];
+          for (var key in node.contents) {
+            if (!node.contents.hasOwnProperty(key)) {
+              continue;
+            }
+            entries.push(key);
+          }
+          return entries;
+        },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=STATICTOP; STATICTOP += 16;;
+  
+  var _stdout=STATICTOP; STATICTOP += 16;;
+  
+  var _stderr=STATICTOP; STATICTOP += 16;;var 
FS={root:null,mounts:[],devices:{},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);
+      },mkdirTree:function(path, mode) {
+        var dirs = path.split('/');
+        var d = '';
+        for (var i = 0; i < dirs.length; ++i) {
+          if (!dirs[i]) continue;
+          d += '/' + dirs[i];
+          try {
+            FS.mkdir(d, mode);
+          } catch(e) {
+            if (e.errno != ERRNO_CODES.EEXIST) throw e;
+          }
+        }
+      },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) {
+          // According to POSIX, we should map EISDIR to EPERM, but
+          // we instead do what Linux does (and we must, as we use
+          // the musl linux libc).
+          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;
+            err('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 (FS.isClosed(stream)) {
+          throw new FS.ErrnoError(ERRNO_CODES.EBADF);
+        }
+        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);
+        }
+        stream.fd = null;
+      },isClosed:function(stream) {
+        return stream.fd === null;
+      },llseek:function(stream, offset, whence) {
+        if (FS.isClosed(stream)) {
+          throw new FS.ErrnoError(ERRNO_CODES.EBADF);
+        }
+        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 (FS.isClosed(stream)) {
+          throw new FS.ErrnoError(ERRNO_CODES.EBADF);
+        }
+        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 = typeof position !== 'undefined';
+        if (!seeking) {
+          position = stream.position;
+        } 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 (FS.isClosed(stream)) {
+          throw new FS.ErrnoError(ERRNO_CODES.EBADF);
+        }
+        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 = typeof position !== 'undefined';
+        if (!seeking) {
+          position = stream.position;
+        } 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 (FS.isClosed(stream)) {
+          throw new FS.ErrnoError(ERRNO_CODES.EBADF);
+        }
+        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(stream.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';
+        var stream = FS.open(path, opts.flags, opts.mode);
+        if (typeof data === 'string') {
+          var buf = new Uint8Array(lengthBytesUTF8(data)+1);
+          var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);
+          FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn);
+        } else if (ArrayBuffer.isView(data)) {
+          FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn);
+        } else {
+          throw new Error('Unsupported data type');
+        }
+        FS.close(stream);
+      },cwd:function() {
+        return FS.currentPath;
+      },chdir:function(path) {
+        var lookup = FS.lookupPath(path, { follow: true });
+        if (lookup.node === null) {
+          throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
+        }
+        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 | 511 /* 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) {
+          //err(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];
+          // Node.js compatibility: assigning on this.stack fails on Node 4 
(but fixed on Node 8)
+          if (this.stack) Object.defineProperty(this, "stack", { value: (new 
Error).stack, writable: true });
+          if (this.stack) this.stack = demangleAll(this.stack);
+        };
+        FS.ErrnoError.prototype = new Error();
+        FS.ErrnoError.prototype.constructor = FS.ErrnoError;
+        // Some errors may happen quite a bit, to avoid overhead we reuse them 
(and suffer a lack of stack info)
+        [ERRNO_CODES.ENOENT].forEach(function(code) {
+          FS.genericErrors[code] = new FS.ErrnoError(code);
+          FS.genericErrors[code].stack = '<generic error, no stack>';
+        });
+      },staticInit:function() {
+        FS.ensureErrnoError();
+  
+        FS.nameTable = new Array(4096);
+  
+        FS.mount(MEMFS, {}, '/');
+  
+        FS.createDefaultDirectories();
+        FS.createDefaultDevices();
+        FS.createSpecialDirectories();
+  
+        FS.filesystems = {
+          'MEMFS': MEMFS,
+          'IDBFS': IDBFS,
+          'NODEFS': NODEFS,
+          'WORKERFS': WORKERFS,
+        };
+      },init:function(input, output, error) {
+        assert(!FS.init.initialized, 'FS.init was previously called. If you 
want to initialize later with custom parameters, remove any earlier calls (note 
that one is automatically added to the generated code)');
+        FS.init.initialized = true;
+  
+        FS.ensureErrnoError();
+  
+        // Allow Module.stdin etc. to provide defaults, if none explicitly 
passed to us here
+        Module['stdin'] = input || Module['stdin'];
+        Module['stdout'] = output || Module['stdout'];
+        Module['stderr'] = error || Module['stderr'];
+  
+        FS.createStandardStreams();
+      },quit:function() {
+        FS.init.initialized = false;
+        // force-flush all streams, so we get musl std streams printed out
+        var fflush = Module['_fflush'];
+        if (fflush) fflush(0);
+        // close all of our streams
+        for (var i = 0; i < FS.streams.length; i++) {
+          var stream = FS.streams[i];
+          if (!stream) {
+            continue;
+          }
+          FS.close(stream);
+        }
+      },getMode:function(canRead, canWrite) {
+        var mode = 0;
+        if (canRead) mode |= 292 | 73;
+        if (canWrite) mode |= 146;
+        return mode;
+      },joinPath:function(parts, forceRelative) {
+        var path = PATH.join.apply(null, parts);
+        if (forceRelative && path[0] == '/') path = path.substr(1);
+        return path;
+      },absolutePath:function(relative, base) {
+        return PATH.resolve(base, relative);
+      },standardizePath:function(path) {
+        return PATH.normalize(path);
+      },findObject:function(path, dontResolveLastLink) {
+        var ret = FS.analyzePath(path, dontResolveLastLink);
+        if (ret.exists) {
+          return ret.object;
+        } else {
+          ___setErrNo(ret.error);
+          return null;
+        }
+      },analyzePath:function(path, dontResolveLastLink) {
+        // operate from within the context of the symlink's target
+        try {
+          var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
+          path = lookup.path;
+        } catch (e) {
+        }
+        var ret = {
+          isRoot: false, exists: false, error: 0, name: null, path: null, 
object: null,
+          parentExists: false, parentPath: null, parentObject: null
+        };
+        try {
+          var lookup = FS.lookupPath(path, { parent: true });
+          ret.parentExists = true;
+          ret.parentPath = lookup.path;
+          ret.parentObject = lookup.node;
+          ret.name = PATH.basename(path);
+          lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
+          ret.exists = true;
+          ret.path = lookup.path;
+          ret.object = lookup.node;
+          ret.name = lookup.node.name;
+          ret.isRoot = lookup.path === '/';
+        } catch (e) {
+          ret.error = e.errno;
+        };
+        return ret;
+      },createFolder:function(parent, name, canRead, canWrite) {
+        var path = PATH.join2(typeof parent === 'string' ? parent : 
FS.getPath(parent), name);
+        var mode = FS.getMode(canRead, canWrite);
+        return FS.mkdir(path, mode);
+      },createPath:function(parent, path, canRead, canWrite) {
+        parent = typeof parent === 'string' ? parent : FS.getPath(parent);
+        var parts = path.split('/').reverse();
+        while (parts.length) {
+          var part = parts.pop();
+          if (!part) continue;
+          var current = PATH.join2(parent, part);
+          try {
+            FS.mkdir(current);
+          } catch (e) {
+            // ignore EEXIST
+          }
+          parent = current;
+        }
+        return current;
+      },createFile:function(parent, name, properties, canRead, canWrite) {
+        var path = PATH.join2(typeof parent === 'string' ? parent : 
FS.getPath(parent), name);
+        var mode = FS.getMode(canRead, canWrite);
+        return FS.create(path, mode);
+      },createDataFile:function(parent, name, data, canRead, canWrite, canOwn) 
{
+        var path = name ? PATH.join2(typeof parent === 'string' ? parent : 
FS.getPath(parent), name) : parent;
+        var mode = FS.getMode(canRead, canWrite);
+        var node = FS.create(path, mode);
+        if (data) {
+          if (typeof data === 'string') {
+            var arr = new Array(data.length);
+            for (var i = 0, len = data.length; i < len; ++i) arr[i] = 
data.charCodeAt(i);
+            data = arr;
+          }
+          // make sure we can write to the file
+          FS.chmod(node, mode | 146);
+          var stream = FS.open(node, 'w');
+          FS.write(stream, data, 0, data.length, 0, canOwn);
+          FS.close(stream);
+          FS.chmod(node, mode);
+        }
+        return node;
+      },createDevice:function(parent, name, input, output) {
+        var path = PATH.join2(typeof parent === 'string' ? parent : 
FS.getPath(parent), name);
+        var mode = FS.getMode(!!input, !!output);
+        if (!FS.createDevice.major) FS.createDevice.major = 64;
+        var dev = FS.makedev(FS.createDevice.major++, 0);
+        // Create a fake device that a set of stream ops to emulate
+        // the old behavior.
+        FS.registerDevice(dev, {
+          open: function(stream) {
+            stream.seekable = false;
+          },
+          close: function(stream) {
+            // flush any pending line data
+            if (output && output.buffer && output.buffer.length) {
+              output(10);
+            }
+          },
+          read: function(stream, buffer, offset, length, pos /* ignored */) {
+            var bytesRead = 0;
+            for (var i = 0; i < length; i++) {
+              var result;
+              try {
+                result = input();
+              } catch (e) {
+                throw new FS.ErrnoError(ERRNO_CODES.EIO);
+              }
+              if (result === undefined && bytesRead === 0) {
+                throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
+              }
+              if (result === null || result === undefined) break;
+              bytesRead++;
+              buffer[offset+i] = result;
+            }
+            if (bytesRead) {
+              stream.node.timestamp = Date.now();
+            }
+            return bytesRead;
+          },
+          write: function(stream, buffer, offset, length, pos) {
+            for (var i = 0; i < length; i++) {
+              try {
+                output(buffer[offset+i]);
+              } catch (e) {
+                throw new FS.ErrnoError(ERRNO_CODES.EIO);
+              }
+            }
+            if (length) {
+              stream.node.timestamp = Date.now();
+            }
+            return i;
+          }
+        });
+        return FS.mkdev(path, mode, dev);
+      },createLink:function(parent, name, target, canRead, canWrite) {
+        var path = PATH.join2(typeof parent === 'string' ? parent : 
FS.getPath(parent), name);
+        return FS.symlink(target, path);
+      },forceLoadFile:function(obj) {
+        if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return 
true;
+        var success = true;
+        if (typeof XMLHttpRequest !== 'undefined') {
+          throw new Error("Lazy loading should have been performed (contents 
set) in createLazyFile, but it was not. Lazy loading only works in web workers. 
Use --embed-file or --preload-file in emcc on the main thread.");
+        } else if (Module['read']) {
+          // Command-line.
+          try {
+            // WARNING: Can't read binary files in V8's d8 or tracemonkey's 
js, as
+            //          read() will try to parse UTF8.
+            obj.contents = intArrayFromString(Module['read'](obj.url), true);
+            obj.usedBytes = obj.contents.length;
+          } catch (e) {
+            success = false;
+          }
+        } else {
+          throw new Error('Cannot load without read() or XMLHttpRequest.');
+        }
+        if (!success) ___setErrNo(ERRNO_CODES.EIO);
+        return success;
+      },createLazyFile:function(parent, name, url, canRead, canWrite) {
+        // Lazy chunked Uint8Array (implements get and length from 
Uint8Array). Actual getting is abstracted away for eventual reuse.
+        function LazyUint8Array() {
+          this.lengthKnown = false;
+          this.chunks = []; // Loaded chunks. Index is the chunk number
+        }
+        LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {
+          if (idx > this.length-1 || idx < 0) {
+            return undefined;
+          }
+          var chunkOffset = idx % this.chunkSize;
+          var chunkNum = (idx / this.chunkSize)|0;
+          return this.getter(chunkNum)[chunkOffset];
+        }
+        LazyUint8Array.prototype.setDataGetter = function 
LazyUint8Array_setDataGetter(getter) {
+          this.getter = getter;
+        }
+        LazyUint8Array.prototype.cacheLength = function 
LazyUint8Array_cacheLength() {
+          // Find length
+          var xhr = new XMLHttpRequest();
+          xhr.open('HEAD', url, false);
+          xhr.send(null);
+          if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) 
throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
+          var datalength = Number(xhr.getResponseHeader("Content-length"));
+          var header;
+          var hasByteServing = (header = 
xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
+          var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) 
&& header === "gzip";
+  
+          var chunkSize = 1024*1024; // Chunk size in bytes
+  
+          if (!hasByteServing) chunkSize = datalength;
+  
+          // Function to get a range from the remote URL.
+          var doXHR = (function(from, to) {
+            if (from > to) throw new Error("invalid range (" + from + ", " + 
to + ") or no bytes requested!");
+            if (to > datalength-1) throw new Error("only " + datalength + " 
bytes available! programmer error!");
+  
+            // TODO: Use mozResponseArrayBuffer, responseStream, etc. if 
available.
+            var xhr = new XMLHttpRequest();
+            xhr.open('GET', url, false);
+            if (datalength !== chunkSize) xhr.setRequestHeader("Range", 
"bytes=" + from + "-" + to);
+  
+            // Some hints to the browser that we want binary data.
+            if (typeof Uint8Array != 'undefined') xhr.responseType = 
'arraybuffer';
+            if (xhr.overrideMimeType) {
+              xhr.overrideMimeType('text/plain; charset=x-user-defined');
+            }
+  
+            xhr.send(null);
+            if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 
304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
+            if (xhr.response !== undefined) {
+              return new Uint8Array(xhr.response || []);
+            } else {
+              return intArrayFromString(xhr.responseText || '', true);
+            }
+          });
+          var lazyArray = this;
+          lazyArray.setDataGetter(function(chunkNum) {
+            var start = chunkNum * chunkSize;
+            var end = (chunkNum+1) * chunkSize - 1; // including this byte
+            end = Math.min(end, datalength-1); // if datalength-1 is selected, 
this is the last block
+            if (typeof(lazyArray.chunks[chunkNum]) === "undefined") {
+              lazyArray.chunks[chunkNum] = doXHR(start, end);
+            }
+            if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new 
Error("doXHR failed!");
+            return lazyArray.chunks[chunkNum];
+          });
+  
+          if (usesGzip || !datalength) {
+            // if the server uses gzip or doesn't supply the length, we have 
to download the whole file to get the (uncompressed) length
+            chunkSize = datalength = 1; // this will force getter(0)/doXHR do 
download the whole file
+            datalength = this.getter(0).length;
+            chunkSize = datalength;
+            console.log("LazyFiles on gzip forces download of the whole file 
when length is accessed");
+          }
+  
+          this._length = datalength;
+          this._chunkSize = chunkSize;
+          this.lengthKnown = true;
+        }
+        if (typeof XMLHttpRequest !== 'undefined') {
+          if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs 
outside webworkers in modern browsers. Use --embed-file or --preload-file in 
emcc';
+          var lazyArray = new LazyUint8Array();
+          Object.defineProperties(lazyArray, {
+            length: {
+              get: function() {
+                if(!this.lengthKnown) {
+                  this.cacheLength();
+                }
+                return this._length;
+              }
+            },
+            chunkSize: {
+              get: function() {
+                if(!this.lengthKnown) {
+                  this.cacheLength();
+                }
+                return this._chunkSize;
+              }
+            }
+          });
+  
+          var properties = { isDevice: false, contents: lazyArray };
+        } else {
+          var properties = { isDevice: false, url: url };
+        }
+  
+        var node = FS.createFile(parent, name, properties, canRead, canWrite);
+        // This is a total hack, but I want to get this lazy file code out of 
the
+        // core of MEMFS. If we want to keep this lazy file concept I feel it 
should
+        // be its own thin LAZYFS proxying calls to MEMFS.
+        if (properties.contents) {
+          node.contents = properties.contents;
+        } else if (properties.url) {
+          node.contents = null;
+          node.url = properties.url;
+        }
+        // Add a function that defers querying the file size until it is asked 
the first time.
+        Object.defineProperties(node, {
+          usedBytes: {
+            get: function() { return this.contents.length; }
+          }
+        });
+        // override each stream op with one that tries to force load the lazy 
file first
+        var stream_ops = {};
+        var keys = Object.keys(node.stream_ops);
+        keys.forEach(function(key) {
+          var fn = node.stream_ops[key];
+          stream_ops[key] = function forceLoadLazyFile() {
+            if (!FS.forceLoadFile(node)) {
+              throw new FS.ErrnoError(ERRNO_CODES.EIO);
+            }
+            return fn.apply(null, arguments);
+          };
+        });
+        // use a custom read function
+        stream_ops.read = function stream_ops_read(stream, buffer, offset, 
length, position) {
+          if (!FS.forceLoadFile(node)) {
+            throw new FS.ErrnoError(ERRNO_CODES.EIO);
+          }
+          var contents = stream.node.contents;
+          if (position >= contents.length)
+            return 0;
+          var size = Math.min(contents.length - position, length);
+          assert(size >= 0);
+          if (contents.slice) { // normal array
+            for (var i = 0; i < size; i++) {
+              buffer[offset + i] = contents[position + i];
+            }
+          } else {
+            for (var i = 0; i < size; i++) { // LazyUint8Array from sync 
binary XHR
+              buffer[offset + i] = contents.get(position + i);
+            }
+          }
+          return size;
+        };
+        node.stream_ops = stream_ops;
+        return node;
+      },createPreloadedFile:function(parent, name, url, canRead, canWrite, 
onload, onerror, dontCreateFile, canOwn, preFinish) {
+        Browser.init(); // XXX perhaps this method should move onto Browser?
+        // 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);
+  
+        var len = Math.min(bufsize, lengthBytesUTF8(ret));
+        var endChar = HEAP8[buf+len];
+        stringToUTF8(ret, buf, bufsize+1);
+        // readlink is one of the rare functions that write out a C string, 
but does never append a null to the output buffer(!)
+        // stringToUTF8() always appends a null byte, so restore the character 
under the null byte after the write.
+        HEAP8[buf+len] = endChar;
+  
+        return len;
+      },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 ___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();
+      // NOTE: offset_high is unused - Emscripten's off_t is 32-bit
+      var offset = offset_low;
+      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 ___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 ___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;
+  }
+  }
+
+  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 ___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 = _memalign(PAGE_SIZE, 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 ___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 ___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 ___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)
+  }
+
+  
+  var PROCINFO={ppid:1,pid:42,sid:42,pgid:42};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;
+  }
+  }
+
+  function ___syscall201(
+  ) {
+  return ___syscall202.apply(null, arguments)
+  }
+
+  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 ___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 ___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;
+  }
+  }
+
+  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 ___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 ___syscall54(which, varargs) {SYSCALLS.varargs = varargs;
+  try {
+   // ioctl
+      var stream = SYSCALLS.getStreamFromFD(), op = SYSCALLS.get();
+      switch (op) {
+        case 21509:
+        case 21505: {
+          if (!stream.tty) return -ERRNO_CODES.ENOTTY;
+          return 0;
+        }
+        case 21510:
+        case 21511:
+        case 21512:
+        case 21506:
+        case 21507:
+        case 21508: {
+          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);
+        }
+        case 21523: {
+          // TODO: in theory we should write to the winsize struct that gets
+          // passed in, but for now musl doesn't read anything on it
+          if (!stream.tty) return -ERRNO_CODES.ENOTTY;
+          return 0;
+        }
+        case 21524: {
+          // TODO: technically, this ioctl call should change the window size.
+          // but, since emscripten doesn't have any concept of a terminal 
window
+          // yet, we'll just silently throw it away as we do TIOCGWINSZ
+          if (!stream.tty) return -ERRNO_CODES.ENOTTY;
+          return 0;
+        }
+        default: abort('bad ioctl syscall ' + op);
+      }
+    } catch (e) {
+    if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
+    return -e.errno;
+  }
+  }
+
+  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 ___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 ___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;
+  }
+  }
+
+  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;
+  }
+  }
+
+   
+
+  function ___unlock() {}
+
+   
+
+  function _abort() {
+      Module['abort']();
+    }
+
+  function _atexit(func, arg) {
+      warnOnce('atexit() called, but NO_EXIT_RUNTIME is set, so atexits() will 
not be called. set NO_EXIT_RUNTIME to 0 (see the FAQ)');
+      __ATEXIT__.unshift({ func: func, arg: arg });
+    }
+
+   
+
+   
+
+   
+
+  function _clock() {
+      if (_clock.start === undefined) _clock.start = Date.now();
+      return ((Date.now() - _clock.start) * (1000000 / 1000))|0;
+    }
+
+  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 = allocateUTF8(ENV[name]);
+      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 _llvm_stackrestore(p) {
+      var self = _llvm_stacksave;
+      var ret = self.LLVM_SAVEDSTACKS[p];
+      self.LLVM_SAVEDSTACKS.splice(p, 1);
+      stackRestore(ret);
+    }
+
+  function _llvm_stacksave() {
+      var self = _llvm_stacksave;
+      if (!self.LLVM_SAVEDSTACKS) {
+        self.LLVM_SAVEDSTACKS = [];
+      }
+      self.LLVM_SAVEDSTACKS.push(stackSave());
+      return self.LLVM_SAVEDSTACKS.length-1;
+    }
+
+  
+  var ___tm_current=STATICTOP; STATICTOP += 48;;
+  
+  
+  var ___tm_timezone=allocate(intArrayFromString("GMT"), "i8", ALLOC_STATIC);
+  
+  function _tzset() {
+      // TODO: Use (malleable) environment variables instead of system 
settings.
+      if (_tzset.called) return;
+      _tzset.called = true;
+  
+      // timezone is specified as seconds west of UTC ("The external variable
+      // `timezone` shall be set to the difference, in seconds, between
+      // Coordinated Universal Time (UTC) and local standard time."), the same
+      // as returned by getTimezoneOffset().
+      // See 
http://pubs.opengroup.org/onlinepubs/009695399/functions/tzset.html
+      HEAP32[((__get_timezone())>>2)]=(new Date()).getTimezoneOffset() * 60;
+  
+      var winter = new Date(2000, 0, 1);
+      var summer = new Date(2000, 6, 1);
+      HEAP32[((__get_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[((__get_tzname())>>2)]=winterNamePtr;
+        HEAP32[(((__get_tzname())+(4))>>2)]=summerNamePtr;
+      } else {
+        HEAP32[((__get_tzname())>>2)]=summerNamePtr;
+        HEAP32[(((__get_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);
+  
+      // Attention: DST is in December in South, and some regions don't have 
DST at all.
+      var summerOffset = new Date(2000, 6, 1).getTimezoneOffset();
+      var winterOffset = start.getTimezoneOffset();
+      var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == 
Math.min(winterOffset, summerOffset))|0;
+      HEAP32[(((tmPtr)+(32))>>2)]=dst;
+  
+      var zonePtr = HEAP32[(((__get_tzname())+(dst ? 4 : 0))>>2)];
+      HEAP32[(((tmPtr)+(40))>>2)]=zonePtr;
+  
+      return tmPtr;
+    }function _localtime(time) {
+      return _localtime_r(time, ___tm_current);
+    }
+
+  
+  function _emscripten_memcpy_big(dest, src, num) {
+      HEAPU8.set(HEAPU8.subarray(src, src+num), dest);
+      return dest;
+    } 
+
+   
+
+   
+
+  function _pthread_mutex_destroy() {}
+
+  function _pthread_mutex_init() {}
+
+   
+
+   
+
+   
+
+  
+  function __isLeapYear(year) {
+        return year%4 === 0 && (year%100 !== 0 || year%400 === 0);
+    }
+  
+  function __arraySum(array, index) {
+      var sum = 0;
+      for (var i = 0; i <= index; sum += array[i++]);
+      return sum;
+    }
+  
+  
+  var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];
+  
+  var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function 
__addDays(date, days) {
+      var newDate = new Date(date.getTime());
+      while(days > 0) {
+        var leap = __isLeapYear(newDate.getFullYear());
+        var currentMonth = newDate.getMonth();
+        var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : 
__MONTH_DAYS_REGULAR)[currentMonth];
+  
+        if (days > daysInCurrentMonth-newDate.getDate()) {
+          // we spill over to next month
+          days -= (daysInCurrentMonth-newDate.getDate()+1);
+          newDate.setDate(1);
+          if (currentMonth < 11) {
+            newDate.setMonth(currentMonth+1)
+          } else {
+            newDate.setMonth(0);
+            newDate.setFullYear(newDate.getFullYear()+1);
+          }
+        } else {
+          // we stay in current month
+          newDate.setDate(newDate.getDate()+days);
+          return newDate;
+        }
+      }
+  
+      return newDate;
+    }function _strftime(s, maxsize, format, tm) {
+      // size_t strftime(char *restrict s, size_t maxsize, const char 
*restrict format, const struct tm *restrict timeptr);
+      // http://pubs.opengroup.org/onlinepubs/009695399/functions/strftime.html
+  
+      var tm_zone = HEAP32[(((tm)+(40))>>2)];
+  
+      var date = {
+        tm_sec: HEAP32[((tm)>>2)],
+        tm_min: HEAP32[(((tm)+(4))>>2)],
+        tm_hour: HEAP32[(((tm)+(8))>>2)],
+        tm_mday: HEAP32[(((tm)+(12))>>2)],
+        tm_mon: HEAP32[(((tm)+(16))>>2)],
+        tm_year: HEAP32[(((tm)+(20))>>2)],
+        tm_wday: HEAP32[(((tm)+(24))>>2)],
+        tm_yday: HEAP32[(((tm)+(28))>>2)],
+        tm_isdst: HEAP32[(((tm)+(32))>>2)],
+        tm_gmtoff: HEAP32[(((tm)+(36))>>2)],
+        tm_zone: tm_zone ? Pointer_stringify(tm_zone) : ''
+      };
+  
+      var pattern = Pointer_stringify(format);
+  
+      // expand format
+      var EXPANSION_RULES_1 = {
+        '%c': '%a %b %d %H:%M:%S %Y',     // Replaced by the locale's 
appropriate date and time representation - e.g., Mon Aug  3 14:02:01 2013
+        '%D': '%m/%d/%y',                 // Equivalent to %m / %d / %y
+        '%F': '%Y-%m-%d',                 // Equivalent to %Y - %m - %d
+        '%h': '%b',                       // Equivalent to %b
+        '%r': '%I:%M:%S %p',              // Replaced by the time in a.m. and 
p.m. notation
+        '%R': '%H:%M',                    // Replaced by the time in 24-hour 
notation
+        '%T': '%H:%M:%S',                 // Replaced by the time
+        '%x': '%m/%d/%y',                 // Replaced by the locale's 
appropriate date representation
+        '%X': '%H:%M:%S'                  // Replaced by the locale's 
appropriate date representation
+      };
+      for (var rule in EXPANSION_RULES_1) {
+        pattern = pattern.replace(new RegExp(rule, 'g'), 
EXPANSION_RULES_1[rule]);
+      }
+  
+      var WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 
'Friday', 'Saturday'];
+      var MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 
'July', 'August', 'September', 'October', 'November', 'December'];
+  
+      function leadingSomething(value, digits, character) {
+        var str = typeof value === 'number' ? value.toString() : (value || '');
+        while (str.length < digits) {
+          str = character[0]+str;
+        }
+        return str;
+      };
+  
+      function leadingNulls(value, digits) {
+        return leadingSomething(value, digits, '0');
+      };
+  
+      function compareByDay(date1, date2) {
+        function sgn(value) {
+          return value < 0 ? -1 : (value > 0 ? 1 : 0);
+        };
+  
+        var compare;
+        if ((compare = sgn(date1.getFullYear()-date2.getFullYear())) === 0) {
+          if ((compare = sgn(date1.getMonth()-date2.getMonth())) === 0) {
+            compare = sgn(date1.getDate()-date2.getDate());
+          }
+        }
+        return compare;
+      };
+  
+      function getFirstWeekStartDate(janFourth) {
+          switch (janFourth.getDay()) {
+            case 0: // Sunday
+              return new Date(janFourth.getFullYear()-1, 11, 29);
+            case 1: // Monday
+              return janFourth;
+            case 2: // Tuesday
+              return new Date(janFourth.getFullYear(), 0, 3);
+            case 3: // Wednesday
+              return new Date(janFourth.getFullYear(), 0, 2);
+            case 4: // Thursday
+              return new Date(janFourth.getFullYear(), 0, 1);
+            case 5: // Friday
+              return new Date(janFourth.getFullYear()-1, 11, 31);
+            case 6: // Saturday
+              return new Date(janFourth.getFullYear()-1, 11, 30);
+          }
+      };
+  
+      function getWeekBasedYear(date) {
+          var thisDate = __addDays(new Date(date.tm_year+1900, 0, 1), 
date.tm_yday);
+  
+          var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);
+          var janFourthNextYear = new Date(thisDate.getFullYear()+1, 0, 4);
+  
+          var firstWeekStartThisYear = 
getFirstWeekStartDate(janFourthThisYear);
+          var firstWeekStartNextYear = 
getFirstWeekStartDate(janFourthNextYear);
+  
+          if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {
+            // this date is after the start of the first week of this year
+            if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {
+              return thisDate.getFullYear()+1;
+            } else {
+              return thisDate.getFullYear();
+            }
+          } else {
+            return thisDate.getFullYear()-1;
+          }
+      };
+  
+      var EXPANSION_RULES_2 = {
+        '%a': function(date) {
+          return WEEKDAYS[date.tm_wday].substring(0,3);
+        },
+        '%A': function(date) {
+          return WEEKDAYS[date.tm_wday];
+        },
+        '%b': function(date) {
+          return MONTHS[date.tm_mon].substring(0,3);
+        },
+        '%B': function(date) {
+          return MONTHS[date.tm_mon];
+        },
+        '%C': function(date) {
+          var year = date.tm_year+1900;
+          return leadingNulls((year/100)|0,2);
+        },
+        '%d': function(date) {
+          return leadingNulls(date.tm_mday, 2);
+        },
+        '%e': function(date) {
+          return leadingSomething(date.tm_mday, 2, ' ');
+        },
+        '%g': function(date) {
+          // %g, %G, and %V give values according to the ISO 8601:2000 
standard week-based year.
+          // In this system, weeks begin on a Monday and week 1 of the year is 
the week that includes
+          // January 4th, which is also the week that includes the first 
Thursday of the year, and
+          // is also the first week that contains at least four days in the 
year.
+          // If the first Monday of January is the 2nd, 3rd, or 4th, the 
preceding days are part of
+          // the last week of the preceding year; thus, for Saturday 2nd 
January 1999,
+          // %G is replaced by 1998 and %V is replaced by 53. If December 
29th, 30th,
+          // or 31st is a Monday, it and any following days are part of week 1 
of the following year.
+          // Thus, for Tuesday 30th December 1997, %G is replaced by 1998 and 
%V is replaced by 01.
+  
+          return getWeekBasedYear(date).toString().substring(2);
+        },
+        '%G': function(date) {
+          return getWeekBasedYear(date);
+        },
+        '%H': function(date) {
+          return leadingNulls(date.tm_hour, 2);
+        },
+        '%I': function(date) {
+          var twelveHour = date.tm_hour;
+          if (twelveHour == 0) twelveHour = 12;
+          else if (twelveHour > 12) twelveHour -= 12;
+          return leadingNulls(twelveHour, 2);
+        },
+        '%j': function(date) {
+          // Day of the year (001-366)
+          return 
leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900) ? 
__MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date.tm_mon-1), 3);
+        },
+        '%m': function(date) {
+          return leadingNulls(date.tm_mon+1, 2);
+        },
+        '%M': function(date) {
+          return leadingNulls(date.tm_min, 2);
+        },
+        '%n': function() {
+          return '\n';
+        },
+        '%p': function(date) {
+          if (date.tm_hour >= 0 && date.tm_hour < 12) {
+            return 'AM';
+          } else {
+            return 'PM';
+          }
+        },
+        '%S': function(date) {
+          return leadingNulls(date.tm_sec, 2);
+        },
+        '%t': function() {
+          return '\t';
+        },
+        '%u': function(date) {
+          var day = new Date(date.tm_year+1900, date.tm_mon+1, date.tm_mday, 
0, 0, 0, 0);
+          return day.getDay() || 7;
+        },
+        '%U': function(date) {
+          // Replaced by the week number of the year as a decimal number 
[00,53].
+          // The first Sunday of January is the first day of week 1;
+          // days in the new year before this are in week 0. [ tm_year, 
tm_wday, tm_yday]
+          var janFirst = new Date(date.tm_year+1900, 0, 1);
+          var firstSunday = janFirst.getDay() === 0 ? janFirst : 
__addDays(janFirst, 7-janFirst.getDay());
+          var endDate = new Date(date.tm_year+1900, date.tm_mon, date.tm_mday);
+  
+          // is target date after the first Sunday?
+          if (compareByDay(firstSunday, endDate) < 0) {
+            // calculate difference in days between first Sunday and endDate
+            var februaryFirstUntilEndMonth = 
__arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : 
__MONTH_DAYS_REGULAR, endDate.getMonth()-1)-31;
+            var firstSundayUntilEndJanuary = 31-firstSunday.getDate();
+            var days = 
firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();
+            return leadingNulls(Math.ceil(days/7), 2);
+          }
+  
+          return compareByDay(firstSunday, janFirst) === 0 ? '01': '00';
+        },
+        '%V': function(date) {
+          // Replaced by the week number of the year (Monday as the first day 
of the week)
+          // as a decimal number [01,53]. If the week containing 1 January has 
four
+          // or more days in the new year, then it is considered week 1.
+          // Otherwise, it is the last week of the previous year, and the next 
week is week 1.
+          // Both January 4th and the first Thursday of January are always in 
week 1. [ tm_year, tm_wday, tm_yday]
+          var janFourthThisYear = new Date(date.tm_year+1900, 0, 4);
+          var janFourthNextYear = new Date(date.tm_year+1901, 0, 4);
+  
+          var firstWeekStartThisYear = 
getFirstWeekStartDate(janFourthThisYear);
+          var firstWeekStartNextYear = 
getFirstWeekStartDate(janFourthNextYear);
+  
+          var endDate = __addDays(new Date(date.tm_year+1900, 0, 1), 
date.tm_yday);
+  
+          if (compareByDay(endDate, firstWeekStartThisYear) < 0) {
+            // if given date is before this years first week, then it belongs 
to the 53rd week of last year
+            return '53';
+          }
+  
+          if (compareByDay(firstWeekStartNextYear, endDate) <= 0) {
+            // if given date is after next years first week, then it belongs 
to the 01th week of next year
+            return '01';
+          }
+  
+          // given date is in between CW 01..53 of this calendar year
+          var daysDifference;
+          if (firstWeekStartThisYear.getFullYear() < date.tm_year+1900) {
+            // first CW of this year starts last year
+            daysDifference = date.tm_yday+32-firstWeekStartThisYear.getDate()
+          } else {
+            // first CW of this year starts this year
+            daysDifference = date.tm_yday+1-firstWeekStartThisYear.getDate();
+          }
+          return leadingNulls(Math.ceil(daysDifference/7), 2);
+        },
+        '%w': function(date) {
+          var day = new Date(date.tm_year+1900, date.tm_mon+1, date.tm_mday, 
0, 0, 0, 0);
+          return day.getDay();
+        },
+        '%W': function(date) {
+          // Replaced by the week number of the year as a decimal number 
[00,53].
+          // The first Monday of January is the first day of week 1;
+          // days in the new year before this are in week 0. [ tm_year, 
tm_wday, tm_yday]
+          var janFirst = new Date(date.tm_year, 0, 1);
+          var firstMonday = janFirst.getDay() === 1 ? janFirst : 
__addDays(janFirst, janFirst.getDay() === 0 ? 1 : 7-janFirst.getDay()+1);
+          var endDate = new Date(date.tm_year+1900, date.tm_mon, date.tm_mday);
+  
+          // is target date after the first Monday?
+          if (compareByDay(firstMonday, endDate) < 0) {
+            var februaryFirstUntilEndMonth = 
__arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : 
__MONTH_DAYS_REGULAR, endDate.getMonth()-1)-31;
+            var firstMondayUntilEndJanuary = 31-firstMonday.getDate();
+            var days = 
firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();
+            return leadingNulls(Math.ceil(days/7), 2);
+          }
+          return compareByDay(firstMonday, janFirst) === 0 ? '01': '00';
+        },
+        '%y': function(date) {
+          // Replaced by the last two digits of the year as a decimal number 
[00,99]. [ tm_year]
+          return (date.tm_year+1900).toString().substring(2);
+        },
+        '%Y': function(date) {
+          // Replaced by the year as a decimal number (for example, 1997). [ 
tm_year]
+          return date.tm_year+1900;
+        },
+        '%z': function(date) {
+          // Replaced by the offset from UTC in the ISO 8601:2000 standard 
format ( +hhmm or -hhmm ).
+          // For example, "-0430" means 4 hours 30 minutes behind UTC (west of 
Greenwich).
+          var off = date.tm_gmtoff;
+          var ahead = off >= 0;
+          off = Math.abs(off) / 60;
+          // convert from minutes into hhmm format (which means 60 minutes = 
100 units)
+          off = (off / 60)*100 + (off % 60);
+          return (ahead ? '+' : '-') + String("0000" + off).slice(-4);
+        },
+        '%Z': function(date) {
+          return date.tm_zone;
+        },
+        '%%': function() {
+          return '%';
+        }
+      };
+      for (var rule in EXPANSION_RULES_2) {
+        if (pattern.indexOf(rule) >= 0) {
+          pattern = pattern.replace(new RegExp(rule, 'g'), 
EXPANSION_RULES_2[rule](date));
+        }
+      }
+  
+      var bytes = intArrayFromString(pattern, false);
+      if (bytes.length > maxsize) {
+        return 0;
+      }
+  
+      writeArrayToMemory(bytes, s);
+      return bytes.length-1;
+    }
+
+  function _sysconf(name) {
+      // long sysconf(int name);
+      // http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html
+      switch(name) {
+        case 30: return PAGE_SIZE;
+        case 85:
+          var maxHeapSize = 2*1024*1024*1024 - 16777216;
+          maxHeapSize = HEAPU8.length;
+          return maxHeapSize / 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 _time(ptr) {
+      var ret = (Date.now()/1000)|0;
+      if (ptr) {
+        HEAP32[((ptr)>>2)]=ret;
+      }
+      return ret;
+    }
+FS.staticInit();__ATINIT__.unshift(function() { if (!Module["noFSInit"] && 
!FS.init.initialized) FS.init() });__ATMAIN__.push(function() { 
FS.ignorePermissions = false });__ATEXIT__.push(function() { FS.quit() });;
+__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(); };
+DYNAMICTOP_PTR = staticAlloc(4);
+
+STACK_BASE = STACKTOP = alignMemory(STATICTOP);
+
+STACK_MAX = STACK_BASE + TOTAL_STACK;
+
+DYNAMIC_BASE = alignMemory(STACK_MAX);
+
+HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE;
+
+staticSealed = true; // seal the static portion of memory
+
+assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack");
+
+var ASSERTIONS = true;
+
+/** @type {function(string, boolean=, number=)} */
+function intArrayFromString(stringy, dontAddNull, length) {
+  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;
+}
+
+function intArrayToString(array) {
+  var ret = [];
+  for (var i = 0; i < array.length; i++) {
+    var chr = array[i];
+    if (chr > 0xFF) {
+      if (ASSERTIONS) {
+        assert(false, 'Character code ' + chr + ' (' + 
String.fromCharCode(chr) + ')  at offset ' + i + ' not in 0x00-0xFF.');
+      }
+      chr &= 0xFF;
+    }
+    ret.push(String.fromCharCode(chr));
+  }
+  return ret.join('');
+}
+
+
+// Copied from 
https://github.com/strophe/strophejs/blob/e06d027/src/polyfills.js#L149
+
+// This code was written by Tyler Akins and has been placed in the
+// public domain.  It would be nice if you left this header intact.
+// Base64 code from Tyler Akins -- http://rumkin.com
+
+/**
+ * Decodes a base64 string.
+ * @param {String} input The string to decode.
+ */
+var decodeBase64 = typeof atob === 'function' ? atob : function (input) {
+  var keyStr = 
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
+
+  var output = '';
+  var chr1, chr2, chr3;
+  var enc1, enc2, enc3, enc4;
+  var i = 0;
+  // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
+  input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '');
+  do {
+    enc1 = keyStr.indexOf(input.charAt(i++));
+    enc2 = keyStr.indexOf(input.charAt(i++));
+    enc3 = keyStr.indexOf(input.charAt(i++));
+    enc4 = keyStr.indexOf(input.charAt(i++));
+
+    chr1 = (enc1 << 2) | (enc2 >> 4);
+    chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
+    chr3 = ((enc3 & 3) << 6) | enc4;
+
+    output = output + String.fromCharCode(chr1);
+
+    if (enc3 !== 64) {
+      output = output + String.fromCharCode(chr2);
+    }
+    if (enc4 !== 64) {
+      output = output + String.fromCharCode(chr3);
+    }
+  } while (i < input.length);
+  return output;
+};
+
+// Converts a string of base64 into a byte array.
+// Throws error on invalid input.
+function intArrayFromBase64(s) {
+  if (typeof ENVIRONMENT_IS_NODE === 'boolean' && ENVIRONMENT_IS_NODE) {
+    var buf;
+    try {
+      buf = Buffer.from(s, 'base64');
+    } catch (_) {
+      buf = new Buffer(s, 'base64');
+    }
+    return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);
+  }
+
+  try {
+    var decoded = decodeBase64(s);
+    var bytes = new Uint8Array(decoded.length);
+    for (var i = 0 ; i < decoded.length ; ++i) {
+      bytes[i] = decoded.charCodeAt(i);
+    }
+    return bytes;
+  } catch (_) {
+    throw new Error('Converting base64 string to bytes failed.');
+  }
+}
+
+// If filename is a base64 data URI, parses and returns data (Buffer on node,
+// Uint8Array otherwise). If filename is not a base64 data URI, returns 
undefined.
+function tryParseAsDataURI(filename) {
+  if (!isDataURI(filename)) {
+    return;
+  }
+
+  return intArrayFromBase64(filename.slice(dataURIPrefix.length));
+}
+
+
+
+function nullFunc_ii(x) { err("Invalid function pointer called with signature 
'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method 
on a NULL pointer)? Or calling a function with an incorrect type, which will 
fail? (it is worth building your source files with -Werror (warnings are 
errors), as warnings can indicate undefined behavior which can cause this)");  
err("Build with ASSERTIONS=2 for more info.");abort(x) }
+
+function nullFunc_iii(x) { err("Invalid function pointer called with signature 
'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual 
method on a NULL pointer)? Or calling a function with an incorrect type, which 
will fail? (it is worth building your source files with -Werror (warnings are 
errors), as warnings can indicate undefined behavior which can cause this)");  
err("Build with ASSERTIONS=2 for more info.");abort(x) }
+
+function nullFunc_iiii(x) { err("Invalid function pointer called with 
signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a 
virtual method on a NULL pointer)? Or calling a function with an incorrect 
type, which will fail? (it is worth building your source files with -Werror 
(warnings are errors), as warnings can indicate undefined behavior which can 
cause this)");  err("Build with ASSERTIONS=2 for more info.");abort(x) }
+
+function nullFunc_iiiii(x) { err("Invalid function pointer called with 
signature 'iiiii'. Perhaps this is an invalid value (e.g. caused by calling a 
virtual method on a NULL pointer)? Or calling a function with an incorrect 
type, which will fail? (it is worth building your source files with -Werror 
(warnings are errors), as warnings can indicate undefined behavior which can 
cause this)");  err("Build with ASSERTIONS=2 for more info.");abort(x) }
+
+function nullFunc_v(x) { err("Invalid function pointer called with signature 
'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method 
on a NULL pointer)? Or calling a function with an incorrect type, which will 
fail? (it is worth building your source files with -Werror (warnings are 
errors), as warnings can indicate undefined behavior which can cause this)");  
err("Build with ASSERTIONS=2 for more info.");abort(x) }
+
+function nullFunc_vi(x) { err("Invalid function pointer called with signature 
'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method 
on a NULL pointer)? Or calling a function with an incorrect type, which will 
fail? (it is worth building your source files with -Werror (warnings are 
errors), as warnings can indicate undefined behavior which can cause this)");  
err("Build with ASSERTIONS=2 for more info.");abort(x) }
+
+function nullFunc_vii(x) { err("Invalid function pointer called with signature 
'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual 
method on a NULL pointer)? Or calling a function with an incorrect type, which 
will fail? (it is worth building your source files with -Werror (warnings are 
errors), as warnings can indicate undefined behavior which can cause this)");  
err("Build with ASSERTIONS=2 for more info.");abort(x) }
+
+function nullFunc_viii(x) { err("Invalid function pointer called with 
signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a 
virtual method on a NULL pointer)? Or calling a function with an incorrect 
type, which will fail? (it is worth building your source files with -Werror 
(warnings are errors), as warnings can indicate undefined behavior which can 
cause this)");  err("Build with ASSERTIONS=2 for more info.");abort(x) }
+
+function nullFunc_viiii(x) { err("Invalid function pointer called with 
signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a 
virtual method on a NULL pointer)? Or calling a function with an incorrect 
type, which will fail? (it is worth building your source files with -Werror 
(warnings are errors), as warnings can indicate undefined behavior which can 
cause this)");  err("Build with ASSERTIONS=2 for more info.");abort(x) }
+
+function nullFunc_viiiii(x) { err("Invalid function pointer called with 
signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a 
virtual method on a NULL pointer)? Or calling a function with an incorrect 
type, which will fail? (it is worth building your source files with -Werror 
(warnings are errors), as warnings can indicate undefined behavior which can 
cause this)");  err("Build with ASSERTIONS=2 for more info.");abort(x) }
+
+function nullFunc_viiiiii(x) { err("Invalid function pointer called with 
signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a 
virtual method on a NULL pointer)? Or calling a function with an incorrect 
type, which will fail? (it is worth building your source files with -Werror 
(warnings are errors), as warnings can indicate undefined behavior which can 
cause this)");  err("Build with ASSERTIONS=2 for more info.");abort(x) }
+
+function invoke_ii(index,a1) {
+  var sp = stackSave();
+  try {
+    return Module["dynCall_ii"](index,a1);
+  } catch(e) {
+    stackRestore(sp);
+    if (typeof e !== 'number' && e !== 'longjmp') throw e;
+    Module["setThrew"](1, 0);
+  }
+}
+
+function invoke_iii(index,a1,a2) {
+  var sp = stackSave();
+  try {
+    return Module["dynCall_iii"](index,a1,a2);
+  } catch(e) {
+    stackRestore(sp);
+    if (typeof e !== 'number' && e !== 'longjmp') throw e;
+    Module["setThrew"](1, 0);
+  }
+}
+
+function invoke_iiii(index,a1,a2,a3) {
+  var sp = stackSave();
+  try {
+    return Module["dynCall_iiii"](index,a1,a2,a3);
+  } catch(e) {
+    stackRestore(sp);
+    if (typeof e !== 'number' && e !== 'longjmp') throw e;
+    Module["setThrew"](1, 0);
+  }
+}
+
+function invoke_iiiii(index,a1,a2,a3,a4) {
+  var sp = stackSave();
+  try {
+    return Module["dynCall_iiiii"](index,a1,a2,a3,a4);
+  } catch(e) {
+    stackRestore(sp);
+    if (typeof e !== 'number' && e !== 'longjmp') throw e;
+    Module["setThrew"](1, 0);
+  }
+}
+
+function invoke_v(index) {
+  var sp = stackSave();
+  try {
+    Module["dynCall_v"](index);
+  } catch(e) {
+    stackRestore(sp);
+    if (typeof e !== 'number' && e !== 'longjmp') throw e;
+    Module["setThrew"](1, 0);
+  }
+}
+
+function invoke_vi(index,a1) {
+  var sp = stackSave();
+  try {
+    Module["dynCall_vi"](index,a1);
+  } catch(e) {
+    stackRestore(sp);
+    if (typeof e !== 'number' && e !== 'longjmp') throw e;
+    Module["setThrew"](1, 0);
+  }
+}
+
+function invoke_vii(index,a1,a2) {
+  var sp = stackSave();
+  try {
+    Module["dynCall_vii"](index,a1,a2);
+  } catch(e) {
+    stackRestore(sp);
+    if (typeof e !== 'number' && e !== 'longjmp') throw e;
+    Module["setThrew"](1, 0);
+  }
+}
+
+function invoke_viii(index,a1,a2,a3) {
+  var sp = stackSave();
+  try {
+    Module["dynCall_viii"](index,a1,a2,a3);
+  } catch(e) {
+    stackRestore(sp);
+    if (typeof e !== 'number' && e !== 'longjmp') throw e;
+    Module["setThrew"](1, 0);
+  }
+}
+
+function invoke_viiii(index,a1,a2,a3,a4) {
+  var sp = stackSave();
+  try {
+    Module["dynCall_viiii"](index,a1,a2,a3,a4);
+  } catch(e) {
+    stackRestore(sp);
+    if (typeof e !== 'number' && e !== 'longjmp') throw e;
+    Module["setThrew"](1, 0);
+  }
+}
+
+function invoke_viiiii(index,a1,a2,a3,a4,a5) {
+  var sp = stackSave();
+  try {
+    Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5);
+  } catch(e) {
+    stackRestore(sp);
+    if (typeof e !== 'number' && e !== 'longjmp') throw e;
+    Module["setThrew"](1, 0);
+  }
+}
+
+function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) {
+  var sp = stackSave();
+  try {
+    Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6);
+  } catch(e) {
+    stackRestore(sp);
+    if (typeof e !== 'number' && e !== 'longjmp') throw e;
+    Module["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, "enlargeMemory": 
enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": 
abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, 
"nullFunc_ii": nullFunc_ii, "nullFunc_iii": nullFunc_iii, "nullFunc_iiii": 
nullFunc_iiii, "nullFunc_iiiii": nullFunc_iiiii, "nullFunc_v": nullFunc_v, 
"nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_viii": 
nullFunc_viii, "nullFunc_viiii": nullFunc_viiii, [...]
+// EMSCRIPTEN_START_ASM
+var asm = (/** @suppress {uselessCode} */ function(global, env, buffer) {
+'almost asm';
+
+
+  var HEAP8 = new global.Int8Array(buffer);
+  var HEAP16 = new global.Int16Array(buffer);
+  var HEAP32 = new global.Int32Array(buffer);
+  var HEAPU8 = new global.Uint8Array(buffer);
+  var HEAPU16 = new global.Uint16Array(buffer);
+  var HEAPU32 = new global.Uint32Array(buffer);
+  var HEAPF32 = new global.Float32Array(buffer);
+  var HEAPF64 = new global.Float64Array(buffer);
+
+  var DYNAMICTOP_PTR=env.DYNAMICTOP_PTR|0;
+  var tempDoublePtr=env.tempDoublePtr|0;
+  var STACKTOP=env.STACKTOP|0;
+  var STACK_MAX=env.STACK_MAX|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, tempBigIntS = 0, tempValue = 0, tempDouble 
= 0.0;
+  var tempRet0 = 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_max=global.Math.max;
+  var Math_clz32=global.Math.clz32;
+  var abort=env.abort;
+  var assert=env.assert;
+  var enlargeMemory=env.enlargeMemory;
+  var getTotalMemory=env.getTotalMemory;
+  var abortOnCannotGrowMemory=env.abortOnCannotGrowMemory;
+  var abortStackOverflow=env.abortStackOverflow;
+  var nullFunc_ii=env.nullFunc_ii;
+  var nullFunc_iii=env.nullFunc_iii;
+  var nullFunc_iiii=env.nullFunc_iiii;
+  var nullFunc_iiiii=env.nullFunc_iiiii;
+  var nullFunc_v=env.nullFunc_v;
+  var nullFunc_vi=env.nullFunc_vi;
+  var nullFunc_vii=env.nullFunc_vii;
+  var nullFunc_viii=env.nullFunc_viii;
+  var nullFunc_viiii=env.nullFunc_viiii;
+  var nullFunc_viiiii=env.nullFunc_viiiii;
+  var nullFunc_viiiiii=env.nullFunc_viiiiii;
+  var invoke_ii=env.invoke_ii;
+  var invoke_iii=env.invoke_iii;
+  var invoke_iiii=env.invoke_iiii;
+  var invoke_iiiii=env.invoke_iiiii;
+  var invoke_v=env.invoke_v;
+  var invoke_vi=env.invoke_vi;
+  var invoke_vii=env.invoke_vii;
+  var invoke_viii=env.invoke_viii;
+  var invoke_viiii=env.invoke_viiii;
+  var invoke_viiiii=env.invoke_viiiii;
+  var invoke_viiiiii=env.invoke_viiiiii;
+  var ___assert_fail=env.___assert_fail;
+  var ___buildEnvironment=env.___buildEnvironment;
+  var ___lock=env.___lock;
+  var ___setErrNo=env.___setErrNo;
+  var ___syscall140=env.___syscall140;
+  var ___syscall142=env.___syscall142;
+  var ___syscall145=env.___syscall145;
+  var ___syscall146=env.___syscall146;
+  var ___syscall192=env.___syscall192;
+  var ___syscall194=env.___syscall194;
+  var ___syscall195=env.___syscall195;
+  var ___syscall197=env.___syscall197;
+  var ___syscall199=env.___syscall199;
+  var ___syscall20=env.___syscall20;
+  var ___syscall201=env.___syscall201;
+  var ___syscall202=env.___syscall202;
+  var ___syscall221=env.___syscall221;
+  var ___syscall3=env.___syscall3;
+  var ___syscall33=env.___syscall33;
+  var ___syscall4=env.___syscall4;
+  var ___syscall5=env.___syscall5;
+  var ___syscall54=env.___syscall54;
+  var ___syscall6=env.___syscall6;
+  var ___syscall64=env.___syscall64;
+  var ___syscall77=env.___syscall77;
+  var ___syscall91=env.___syscall91;
+  var ___unlock=env.___unlock;
+  var __addDays=env.__addDays;
+  var __arraySum=env.__arraySum;
+  var __isLeapYear=env.__isLeapYear;
+  var _abort=env._abort;
+  var _atexit=env._atexit;
+  var _clock=env._clock;
+  var _emscripten_memcpy_big=env._emscripten_memcpy_big;
+  var _getenv=env._getenv;
+  var _gettimeofday=env._gettimeofday;
+  var _llvm_stackrestore=env._llvm_stackrestore;
+  var _llvm_stacksave=env._llvm_stacksave;
+  var _localtime=env._localtime;
+  var _localtime_r=env._localtime_r;
+  var _pthread_mutex_destroy=env._pthread_mutex_destroy;
+  var _pthread_mutex_init=env._pthread_mutex_init;
+  var _strftime=env._strftime;
+  var _sysconf=env._sysconf;
+  var _time=env._time;
+  var _tzset=env._tzset;
+  var tempFloat = 0.0;
+
 // EMSCRIPTEN_START_FUNCS
-function Ab(a){a=a|0;var 
b=0;b=l;l=l+a|0;l=l+15&-16;if((l|0)>=(m|0))$(a|0);return b|0}function 
Bb(){return l|0}function Cb(a){a=a|0;l=a}function 
Db(a,b){a=a|0;b=b|0;l=a;m=b}function 
Eb(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function Fb(a){a=a|0;D=a}function 
Gb(){return D|0}function Hb(a){a=a|0;var b=0;b=Pb(32,19010,38)|0;jc(a,b);return 
b|0}function Ib(a){a=a|0;var b=0;b=Pb(32,19010,56)|0;hc(a,b);return 
b|0}function Jb(a){a=a|0;var b=0;b=Pb(32,19010,73)|0;lc(a,b);return 
b|0}function Kb(b,c,d){b [...]
-function rm(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var 
h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=c[b+12>>2]|0;s=c[t+36>>2]|0;t=c[t+20>>2]|0;if(e>>>0<g>>>0){u=200;return
 
u|0}u=b+112|0;e=c[u>>2]|0;if(e>>>0>=g>>>0){h=b+64+t+(0-e)|0;if(!((f|d|h)&3))if(g>>>0>3){l=g+-4|0;m=l&-4;o=m+4|0;n=f+o|0;i=h;j=d;k=g;while(1){c[j>>2]=c[f>>2]^c[i>>2];k=k+-4|0;if(k>>>0<=3)break;else{f=f+4|0;i=i+4|0;j=j+4|0}}i=l-m|0;f=n;h=h+o|0;d=d+o|0}else
 i=g;else i=g;if(i){e=i;while(1){a[d>>0]=a[f>>0]^a[ [...]
-function Pf(b){b=b|0;var d=0;if(!b){Tn(22);d=0;return 
d|0}if(!(c[17594]|0)){d=Xf(b)|0;return d|0}d=Xf(b+5|0)|0;if(!d){d=0;return 
d|0}a[d>>0]=b;a[d+1>>0]=b>>>8;a[d+2>>0]=b>>>16;a[d+3>>0]=-52;a[d+(b+4)>>0]=-86;d=d+4|0;return
 d|0}function Qf(b,e){b=b|0;e=e|0;var 
f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=j+8|0;f=j;if(!(c[17594]|0))if(!(ag(b)|0)){e=Rq(b,e)|0;l=j;return
 e|0}else{e=$f(b,e)|0;l=j;return e|0}if(!b){if(!e){Tn(22);e=0;l=j;return 
e|0}f=Oq(e+5|0)|0;if(!f){e=0;l=j;retur [...]
-function Mk(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var 
g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0;fa=l;l=l+208|0;if((l|0)>=(m|0))$(208);U=fa+136|0;T=fa+72|0;R=fa+40|0;H=fa+20|0;I=fa;v=c[e+4>>2]|0;V=c[f+4>>2]|0;r=V<<1;W=c[f+8>>2]|0;g=v<<5;if((g|0)<=512)if((g|0)<=256)if((g|0)>128)D=3;else
 D=(g|0)>64?2:1;else D=4;else D=5;u=c[e [...]
-function mi(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var 
h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=
 [...]
-function ij(b,e,f){b=b|0;e=e|0;f=f|0;var 
g=0,h=0,i=0,j=0,k=0,l=0,m=0;i=((d[f+2>>0]|0)<<16|(d[f+3>>0]|0)<<24|(d[f+1>>0]|0)<<8|(d[f>>0]|0))^c[b+4096>>2];g=((d[f+6>>0]|0)<<16|(d[f+7>>0]|0)<<24|(d[f+5>>0]|0)<<8|(d[f+4>>0]|0))^c[b+4100>>2];h=((d[f+14>>0]|0)<<16|(d[f+15>>0]|0)<<24|(d[f+13>>0]|0)<<8|(d[f+12>>0]|0))^c[b+4108>>2];k=c[b+2048+((g>>>8&255)<<2)>>2]^c[b+1024+((g&255)<<2)>>2]^c[b+3072+((g>>>16&255)<<2)>>2]^c[b+(g>>>24<<2)>>2];j=k+(c[b+1024+((i>>>8&255)<<2)>>2]^c[b+((i&255)<<2)>>2]^c[b+
 [...]
-function op(e,f,g,i,k){e=e|0;f=f|0;g=g|0;i=i|0;k=k|0;var 
n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0;la=l;l=l+624|0;if((l|0)>=(m|0))$(624);ha=la+24|0;ia=la+16|0;ja=la+588|0;Z=la+576|0;ka=la;U=la+536|0;O=la+8|0;P=la+528|0;Q=(e|0)!=0;R=U+40|0;T=R;U=U+39|0;V=O+4|0;W=ja;X=0-W|0;Y=Z+12|0;Z=Z+11|0;_=Y;aa=_-W|0;ba=-2-W|0;ca=_
 [...]
 
-// EMSCRIPTEN_END_FUNCS
-var 
pb=[Ar,Yh,Zh,_h,$h,Gi,Hi,Ii,Ji,Li,Ti,_i,ej,hj,ij,jj,Bm,Cm,Dm,Em,Gm,Gg,Nm,wo,xo,Bo,Ap,Ke,Rp,gi,hi,ri,Ui,$i,fj,Do,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar];var
 qb=[Br,ki,fi,ei,di,mi,mj,nj,lj,Br,Br,Br,Br,Br,Br,Br];var 
rb=[Cr,pi,Ri,Yi,cj,Xj,sq,Cr];var sb=[Dr,oi,Qi,Xi,aj,bj,gj,Mm];var 
tb=[Er,qi,Fi,Ki,Si,Zi,dj,Am,Fm,Jg,vo,Er,Er,Er,Er,Er];var 
ub=[Fr,Jm,ni,$m,qn,zn,to,Fr];var vb=[Gr,ii,ji,eo];var wb=[Hr,Om,jm,Dn];var 
xb=[Ir,li];var yb=[Jr,Ei,Mi,zm,H [...]
+function stackAlloc(size) {
+  size = size|0;
+  var ret = 0;
+  ret = STACKTOP;
+  STACKTOP = (STACKTOP + size)|0;
+  STACKTOP = (STACKTOP + 15)&-16;
+  if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(size|0);
+
+  return ret|0;
+}
+function stackSave() {
+  return STACKTOP|0;
+}
+function stackRestore(top) {
+  top = top|0;
+  STACKTOP = top;
+}
+function establishStackSpace(stackBase, stackMax) {
+  stackBase = stackBase|0;
+  stackMax = stackMax|0;
+  STACKTOP = stackBase;
+  STACK_MAX = stackMax;
+}
+
+function setThrew(threw, value) {
+  threw = threw|0;
+  value = value|0;
+  if ((__THREW__|0) == 0) {
+    __THREW__ = threw;
+    threwValue = value;
+  }
+}
+
+function setTempRet0(value) {
+  value = value|0;
+  tempRet0 = value;
+}
+function getTempRet0() {
+  return tempRet0|0;
+}
+
+function _TALER_WRALL_eddsa_public_key_from_private($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = $0;
+ $3 = (_GNUNET_xmalloc_(32,41052,38)|0);
+ $2 = $3;
+ $4 = $1;
+ $5 = $2;
+ _GNUNET_CRYPTO_eddsa_key_get_public($4,$5);
+ $6 = $2;
+ STACKTOP = sp;return ($6|0);
+}
+function _TALER_WRALL_ecdsa_public_key_from_private($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = $0;
+ $3 = (_GNUNET_xmalloc_(32,41052,56)|0);
+ $2 = $3;
+ $4 = $1;
+ $5 = $2;
+ _GNUNET_CRYPTO_ecdsa_key_get_public($4,$5);
+ $6 = $2;
+ STACKTOP = sp;return ($6|0);
+}
+function _TALER_WRALL_ecdhe_public_key_from_private($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = $0;
+ $3 = (_GNUNET_xmalloc_(32,41052,73)|0);
+ $2 = $3;
+ $4 = $1;
+ $5 = $2;
+ _GNUNET_CRYPTO_ecdhe_key_get_public($4,$5);
+ $6 = $2;
+ STACKTOP = sp;return ($6|0);
+}
+function _TALER_WRALL_purpose_create($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, 
$6 = 0, $7 = 0, $8 = 0;
+ var $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $3 = $0;
+ $4 = $1;
+ $5 = $2;
+ $8 = $5;
+ $9 = (8 + ($8))|0;
+ $7 = $9;
+ $10 = $7;
+ $11 = (_GNUNET_xmalloc_($10,41052,87)|0);
+ $6 = $11;
+ $12 = $6;
+ $13 = ((($12)) + 8|0);
+ $14 = $4;
+ $15 = $5;
+ _memcpy(($13|0),($14|0),($15|0))|0;
+ $16 = $3;
+ $17 = (_htonl($16)|0);
+ $18 = $6;
+ $19 = ((($18)) + 4|0);
+ 
HEAP8[$19>>0]=$17&255;HEAP8[$19+1>>0]=($17>>8)&255;HEAP8[$19+2>>0]=($17>>16)&255;HEAP8[$19+3>>0]=$17>>24;
+ $20 = $7;
+ $21 = (_htonl($20)|0);
+ $22 = $6;
+ 
HEAP8[$22>>0]=$21&255;HEAP8[$22+1>>0]=($21>>8)&255;HEAP8[$22+2>>0]=($21>>16)&255;HEAP8[$22+3>>0]=$21>>24;
+ $23 = $6;
+ STACKTOP = sp;return ($23|0);
+}
+function _TALER_WRALL_get_amount($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 
0, $27 = 0, $28 = 0, $29 = 0;
+ var $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $5 = sp + 24|0;
+ $8 = sp;
+ $10 = $5;
+ $11 = $10;
+ HEAP32[$11>>2] = $0;
+ $12 = (($10) + 4)|0;
+ $13 = $12;
+ HEAP32[$13>>2] = $1;
+ $6 = $2;
+ $7 = $3;
+ $14 = $7;
+ $15 = (_TALER_amount_get_zero($14,$8)|0);
+ $16 = (1)!=($15|0);
+ if ($16) {
+  $4 = 0;
+  $32 = $4;
+  STACKTOP = sp;return ($32|0);
+ } else {
+  $17 = $5;
+  $18 = $17;
+  $19 = HEAP32[$18>>2]|0;
+  $20 = (($17) + 4)|0;
+  $21 = $20;
+  $22 = HEAP32[$21>>2]|0;
+  $23 = $8;
+  $24 = $23;
+  HEAP32[$24>>2] = $19;
+  $25 = (($23) + 4)|0;
+  $26 = $25;
+  HEAP32[$26>>2] = $22;
+  $27 = $6;
+  $28 = ((($8)) + 8|0);
+  HEAP32[$28>>2] = $27;
+  $29 = (_GNUNET_xmalloc_(24,41052,117)|0);
+  $9 = $29;
+  $30 = $9;
+  
;HEAP32[$30>>2]=HEAP32[$8>>2]|0;HEAP32[$30+4>>2]=HEAP32[$8+4>>2]|0;HEAP32[$30+8>>2]=HEAP32[$8+8>>2]|0;HEAP32[$30+12>>2]=HEAP32[$8+12>>2]|0;HEAP32[$30+16>>2]=HEAP32[$8+16>>2]|0;HEAP32[$30+20>>2]=HEAP32[$8+20>>2]|0;
+  $31 = $9;
+  $4 = $31;
+  $32 = $4;
+  STACKTOP = sp;return ($32|0);
+ }
+ return (0)|0;
+}
+function _TALER_WR_get_value($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = $0;
+ $2 = $1;
+ $3 = $2;
+ $4 = $3;
+ $5 = HEAP32[$4>>2]|0;
+ $6 = (($3) + 4)|0;
+ $7 = $6;
+ $8 = HEAP32[$7>>2]|0;
+ tempRet0 = ($8);
+ STACKTOP = sp;return ($5|0);
+}
+function _TALER_WR_get_fraction($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = $0;
+ $2 = $1;
+ $3 = ((($2)) + 8|0);
+ $4 = HEAP32[$3>>2]|0;
+ STACKTOP = sp;return ($4|0);
+}
+function _TALER_WR_get_currency($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = $0;
+ $2 = $1;
+ $3 = ((($2)) + 12|0);
+ STACKTOP = sp;return ($3|0);
+}
+function _GNUNET_xmalloc_($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 
0, $27 = 0, $28 = 0, $29 = 0;
+ var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 
0, $vararg_buffer2 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 
0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer8 = sp + 24|0;
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $3 = ($0>>>0)<(41943041);
+ if (!($3)) {
+  $4 = HEAP32[9364]|0;
+  $5 = ($4|0)==(-1);
+  if ($5) {
+   $6 = (_GNUNET_get_log_call_status(1,0,41059,41079,72)|0);
+   HEAP32[9364] = $6;
+  }
+  $7 = (_GNUNET_get_log_skip()|0);
+  $8 = ($7|0)>(0);
+  if ($8) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $9 = HEAP32[9364]|0;
+  $10 = ($9|0)==(0);
+  if ($10) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer>>2] = $1;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = $2;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $11 = (_malloc($0)|0);
+ $12 = ($11|0)==(0|0);
+ if (!($12)) {
+  _memset(($11|0),0,($0|0))|0;
+  STACKTOP = sp;return ($11|0);
+ }
+ $13 = HEAP32[9365]|0;
+ $14 = ($13|0)==(-1);
+ if ($14) {
+  $15 = (_GNUNET_get_log_call_status(1,41095,41059,41079,79)|0);
+  HEAP32[9365] = $15;
+ }
+ $16 = (_GNUNET_get_log_skip()|0);
+ $17 = ($16|0)>(0);
+ if ($17) {
+  _GNUNET_log_skip(-1,0);
+ } else {
+  $18 = HEAP32[9365]|0;
+  $19 = ($18|0)==(0);
+  if (!($19)) {
+   $20 = (___errno_location()|0);
+   $21 = HEAP32[$20>>2]|0;
+   $22 = (_strerror($21)|0);
+   HEAP32[$vararg_buffer2>>2] = 41118;
+   $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+   HEAP32[$vararg_ptr5>>2] = 41059;
+   $vararg_ptr6 = ((($vararg_buffer2)) + 8|0);
+   HEAP32[$vararg_ptr6>>2] = 79;
+   $vararg_ptr7 = ((($vararg_buffer2)) + 12|0);
+   HEAP32[$vararg_ptr7>>2] = $22;
+   _GNUNET_log_from_nocheck(1,41095,42643,$vararg_buffer2);
+  }
+ }
+ $23 = HEAP32[9366]|0;
+ $24 = ($23|0)==(-1);
+ if ($24) {
+  $25 = (_GNUNET_get_log_call_status(1,0,41059,41079,80)|0);
+  HEAP32[9366] = $25;
+ }
+ $26 = (_GNUNET_get_log_skip()|0);
+ $27 = ($26|0)>(0);
+ if ($27) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $28 = HEAP32[9366]|0;
+ $29 = ($28|0)==(0);
+ if ($29) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer8>>2] = 41059;
+ $vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
+ HEAP32[$vararg_ptr11>>2] = 80;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer8);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _GNUNET_xfree_($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $3 = ($0|0)==(0|0);
+ if (!($3)) {
+  _free($0);
+  STACKTOP = sp;return;
+ }
+ $4 = HEAP32[9367]|0;
+ $5 = ($4|0)==(-1);
+ if ($5) {
+  $6 = (_GNUNET_get_log_call_status(1,0,41059,41125,318)|0);
+  HEAP32[9367] = $6;
+ }
+ $7 = (_GNUNET_get_log_skip()|0);
+ $8 = ($7|0)>(0);
+ if ($8) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $9 = HEAP32[9367]|0;
+ $10 = ($9|0)==(0);
+ if ($10) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer>>2] = $1;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $2;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+ _GNUNET_abort_();
+ // unreachable;
+}
+function _GNUNET_snprintf($0,$1,$2,$varargs) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $varargs = $varargs|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 
0, $8 = 0, $9 = 0, $or$cond = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer = sp + 16|0;
+ $3 = sp;
+ HEAP32[$3>>2] = $varargs;
+ $4 = (_vsnprintf($0,$1,$2,$3)|0);
+ $5 = ($4|0)>(-1);
+ $6 = ($4>>>0)<($1>>>0);
+ $or$cond = $5 & $6;
+ if ($or$cond) {
+  STACKTOP = sp;return ($4|0);
+ }
+ $7 = HEAP32[9368]|0;
+ $8 = ($7|0)==(-1);
+ if ($8) {
+  $9 = (_GNUNET_get_log_call_status(1,0,41059,41139,518)|0);
+  HEAP32[9368] = $9;
+ }
+ $10 = (_GNUNET_get_log_skip()|0);
+ $11 = ($10|0)>(0);
+ if ($11) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $12 = HEAP32[9368]|0;
+ $13 = ($12|0)==(0);
+ if ($13) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer>>2] = 41059;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = 518;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _GNUNET_util_cl_init() {
+ var $0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[10138]|0;
+ HEAP32[18074] = $0;
+ return;
+}
+function _GNUNET_util_cl_fini() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return;
+}
+function _GNUNET_abort_() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ _abort();
+ // unreachable;
+}
+function _GNUNET_get_log_call_status($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $$0$in = 0, $$02629$us = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, 
$14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 
0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $30 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 
0, $or$cond = 0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = ($1|0)==(0|0);
+ $spec$select = $5 ? 0 : $1;
+ $6 = (0)>(-1);
+ $7 = (0)==(0);
+ $or$cond = $6 & $7;
+ if ($or$cond) {
+  $8 = (0)>=($0|0);
+  $$0$in = $8;
+  $$0 = $$0$in&1;
+  return ($$0|0);
+ }
+ $9 = (0)>(0);
+ if ($9) {
+  $$02629$us = 0;
+  while(1) {
+   $10 = (((0 + (($$02629$us*112)|0)|0)) + 108|0);
+   $11 = HEAP32[$10>>2]|0;
+   $12 = ($11|0)==(0);
+   if (!($12)) {
+    $13 = (((0 + (($$02629$us*112)|0)|0)) + 96|0);
+    $14 = HEAP32[$13>>2]|0;
+    $15 = ($14|0)>($4|0);
+    if (!($15)) {
+     $16 = (((0 + (($$02629$us*112)|0)|0)) + 100|0);
+     $17 = HEAP32[$16>>2]|0;
+     $18 = ($17|0)<($4|0);
+     if (!($18)) {
+      $19 = (0 + (($$02629$us*112)|0)|0);
+      $20 = (_regexec($19,$spec$select,0,0,0)|0);
+      $21 = ($20|0)==(0);
+      if ($21) {
+       $22 = (((0 + (($$02629$us*112)|0)|0)) + 32|0);
+       $23 = (_regexec($22,$2,0,0,0)|0);
+       $24 = ($23|0)==(0);
+       if ($24) {
+        $25 = (((0 + (($$02629$us*112)|0)|0)) + 64|0);
+        (_regexec($25,$3,0,0,0)|0);
+       }
+      }
+     }
+    }
+   }
+   $26 = (($$02629$us) + 1)|0;
+   $27 = ($26|0)<(0);
+   if ($27) {
+    $$02629$us = $26;
+   } else {
+    break;
+   }
+  }
+ }
+ $28 = (0)>(-1);
+ if ($28) {
+  $29 = (0)>=($0|0);
+  $$0$in = $29;
+  $$0 = $$0$in&1;
+  return ($$0|0);
+ } else {
+  $30 = ($0|0)<(5);
+  $$0$in = $30;
+  $$0 = $$0$in&1;
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function _GNUNET_log_nocheck($0,$1,$varargs) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $varargs = $varargs|0;
+ var $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $2 = sp;
+ HEAP32[$2>>2] = $varargs;
+ _mylog($0,0,$1,$2);
+ STACKTOP = sp;return;
+}
+function _mylog($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$$i = 0, $$0$i = 0, $$015$i = 0, $$016$i = 0, $$alloca_mul = 0, $10 = 0, 
$100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, 
$108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0;
+ var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 
= 0, $120 = 0, $121 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, 
$19 = 0, $20 = 0, $21 = 0, $22 = 0;
+ var $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;
+ var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, 
$5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, 
$58 = 0, $59 = 0, $6 = 0;
+ var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, 
$68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, 
$76 = 0, $77 = 0, $78 = 0;
+ var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, 
$86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, 
$94 = 0, $95 = 0, $96 = 0;
+ var $97 = 0, $98 = 0, $99 = 0, $last_bulk_time$byval_copy = 0, $or$cond = 0, 
$or$cond$i = 0, $or$cond3 = 0, $spec$select$i = 0, $vacopy_currentptr = 0, 
$vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer5 = 0, $vararg_buffer8 = 
0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, 
dest = 0, label = 0, sp = 0;
+ var src = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(208|0);
+ $last_bulk_time$byval_copy = sp + 184|0;
+ $vararg_buffer8 = sp + 168|0;
+ $vararg_buffer5 = sp + 160|0;
+ $vararg_buffer2 = sp + 152|0;
+ $vararg_buffer = sp + 144|0;
+ $4 = sp + 80|0;
+ $5 = sp + 16|0;
+ $6 = sp;
+ $7 = sp + 192|0;
+ $vacopy_currentptr = HEAP32[$3>>2]|0;
+ HEAP32[$6>>2] = $vacopy_currentptr;
+ $8 = (_vsnprintf(0,0,$2,$6)|0);
+ $9 = (($8) + 1)|0;
+ $10 = ($9|0)==(0);
+ if ($10) {
+  $11 = HEAP32[9369]|0;
+  $12 = ($11|0)==(-1);
+  if ($12) {
+   $13 = (_GNUNET_get_log_call_status(1,0,41155,41178,968)|0);
+   HEAP32[9369] = $13;
+   $18 = $13;
+  } else {
+   $18 = $11;
+  }
+  $14 = HEAP32[18075]|0;
+  $15 = ($14|0)>(0);
+  if ($15) {
+   $16 = (($14) + -1)|0;
+   HEAP32[18075] = $16;
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $17 = ($18|0)==(0);
+  if ($17) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer>>2] = 41155;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 968;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ dest=$4; stop=dest+64|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ $19 = (_llvm_stacksave()|0);
+ $$alloca_mul = $9;
+ $20 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if 
((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(((((1*$$alloca_mul)|0)+15)&-16)|0);;
+ (_gettimeofday(($7|0),(0|0))|0);
+ $21 = (_GNUNET_TIME_get_offset()|0);
+ $22 = tempRet0;
+ $23 = ($22|0)>(0);
+ $24 = ($21>>>0)>(0);
+ $25 = ($22|0)==(0);
+ $26 = $25 & $24;
+ $27 = $23 | $26;
+ $28 = (___divdi3(($21|0),($22|0),1000,0)|0);
+ $29 = tempRet0;
+ $30 = HEAP32[$7>>2]|0;
+ $31 = (($30) + ($28))|0;
+ HEAP32[$7>>2] = $31;
+ do {
+  if ($27) {
+   $32 = (___uremdi3(($21|0),($22|0),1000,0)|0);
+   $33 = tempRet0;
+   $34 = ((($7)) + 4|0);
+   $35 = HEAP32[$34>>2]|0;
+   $36 = ($32*1000)|0;
+   $37 = (($35) + ($36))|0;
+   HEAP32[$34>>2] = $37;
+   $38 = ($37|0)>(1000000);
+   if ($38) {
+    $39 = (($31) + 1)|0;
+    $40 = (($37) + -1000000)|0;
+    HEAP32[$34>>2] = $40;
+    HEAP32[$7>>2] = $39;
+   }
+  } else {
+   $41 = ((($7)) + 4|0);
+   $42 = HEAP32[$41>>2]|0;
+   $43 = ($42|0)<(0);
+   $44 = $43 << 31 >> 31;
+   $45 = (___muldi3(($28|0),($29|0),1000,0)|0);
+   $46 = tempRet0;
+   $47 = (_i64Subtract(($21|0),($22|0),($45|0),($46|0))|0);
+   $48 = tempRet0;
+   $49 = (___muldi3(($47|0),($48|0),-1000,-1)|0);
+   $50 = tempRet0;
+   $51 = ($50|0)<($44|0);
+   $52 = ($49>>>0)<($42>>>0);
+   $53 = ($50|0)==($44|0);
+   $54 = $53 & $52;
+   $55 = $51 | $54;
+   $56 = ($47*1000)|0;
+   $57 = (($42) + ($56))|0;
+   if ($55) {
+    HEAP32[$41>>2] = $57;
+    break;
+   } else {
+    $58 = (($57) + 1000000)|0;
+    HEAP32[$41>>2] = $58;
+    $59 = (($31) + -1)|0;
+    HEAP32[$7>>2] = $59;
+    break;
+   }
+  }
+ } while(0);
+ $60 = (_localtime(($7|0))|0);
+ $61 = ($60|0)==(0|0);
+ if ($61) {
+  dest=$4; src=41184; 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));
+ } else {
+  $62 = (_strftime(($5|0),64,(41200|0),($60|0))|0);
+  $63 = ($62|0)==(0);
+  if ($63) {
+   _abort();
+   // unreachable;
+  }
+  $64 = ((($7)) + 4|0);
+  $65 = HEAP32[$64>>2]|0;
+  HEAP32[$vararg_buffer2>>2] = $65;
+  $66 = (_snprintf($4,64,$5,$vararg_buffer2)|0);
+  $67 = ($66|0)<(0);
+  if ($67) {
+   _abort();
+   // unreachable;
+  }
+ }
+ (_vsnprintf($20,$9,$2,$3)|0);
+ $68 = $0 & 64;
+ $69 = ($68|0)!=(0);
+ $70 = 72288;
+ $71 = $70;
+ $72 = HEAP32[$71>>2]|0;
+ $73 = (($70) + 4)|0;
+ $74 = $73;
+ $75 = HEAP32[$74>>2]|0;
+ $76 = ($72|0)!=(0);
+ $77 = ($75|0)!=(0);
+ $78 = $76 | $77;
+ $or$cond = $69 & $78;
+ if ($or$cond) {
+  $79 = (_strncmp($20,70688,256)|0);
+  $80 = ($79|0)==(0);
+  if ($80) {
+   $81 = HEAP32[18076]|0;
+   $82 = (($81) + 1)|0;
+   HEAP32[18076] = $82;
+   
;HEAP32[$last_bulk_time$byval_copy>>2]=HEAP32[72288>>2]|0;HEAP32[$last_bulk_time$byval_copy+4>>2]=HEAP32[72288+4>>2]|0;
+   $83 = (_GNUNET_TIME_absolute_get_duration($last_bulk_time$byval_copy)|0);
+   $84 = tempRet0;
+   $85 = ($84>>>0)>(10);
+   $86 = ($83>>>0)>(250327040);
+   $87 = ($84|0)==(10);
+   $88 = $87 & $86;
+   $89 = $85 | $88;
+   $90 = HEAP32[18076]|0;
+   $91 = ($90>>>0)>(1000);
+   $or$cond3 = $89 | $91;
+   if ($or$cond3) {
+    _flush_bulk($4);
+   }
+   _llvm_stackrestore(($19|0));
+   STACKTOP = sp;return;
+  }
+ }
+ _flush_bulk($4);
+ (_strncpy(70688,$20,256)|0);
+ HEAP32[18076] = 0;
+ HEAP32[18077] = $0;
+ $92 = (_GNUNET_TIME_absolute_get()|0);
+ $93 = tempRet0;
+ $94 = 72288;
+ $95 = $94;
+ HEAP32[$95>>2] = $92;
+ $96 = (($94) + 4)|0;
+ $97 = $96;
+ HEAP32[$97>>2] = $93;
+ (_strncpy(70944,$1,32)|0);
+ $98 = HEAP32[18074]|0;
+ $99 = ($98|0)!=(0|0);
+ $100 = (0|0)==(0|0);
+ $or$cond$i = $99 & $100;
+ if ($or$cond$i) {
+  $101 = ($0|0)==(4);
+  if ($101) {
+   HEAP32[$vararg_buffer5>>2] = $20;
+   (_fprintf($98,41221,$vararg_buffer5)|0);
+  } else {
+   $102 = $0 & 1;
+   $103 = ($102|0)==(0);
+   if ($103) {
+    $104 = $0 & 2;
+    $105 = ($104|0)==(0);
+    if ($105) {
+     $106 = $0 & 4;
+     $107 = ($106|0)==(0);
+     if ($107) {
+      $108 = $0 & 8;
+      $109 = ($108|0)==(0);
+      if ($109) {
+       $110 = $0 & 16;
+       $111 = ($110|0)==(0);
+       $112 = $0 & -65;
+       $113 = ($112|0)==(0);
+       $$$i = $113 ? 41226 : 41231;
+       $spec$select$i = $111 ? $$$i : 41239;
+       $114 = $spec$select$i;
+      } else {
+       $114 = 41267;
+      }
+     } else {
+      $114 = 41259;
+     }
+    } else {
+     $114 = 41251;
+    }
+   } else {
+    $114 = 41245;
+   }
+   HEAP32[$vararg_buffer8>>2] = $4;
+   $vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
+   HEAP32[$vararg_ptr11>>2] = $1;
+   $vararg_ptr12 = ((($vararg_buffer8)) + 8|0);
+   HEAP32[$vararg_ptr12>>2] = $114;
+   $vararg_ptr13 = ((($vararg_buffer8)) + 12|0);
+   HEAP32[$vararg_ptr13>>2] = $20;
+   (_fprintf($98,41272,$vararg_buffer8)|0);
+  }
+  $115 = HEAP32[18074]|0;
+  (_fflush($115)|0);
+  $$015$i = 0;
+ } else {
+  $$015$i = 0;
+ }
+ $116 = ($$015$i|0)==(0|0);
+ if (!($116)) {
+  $$016$i = $$015$i;
+  while(1) {
+   $117 = ((($$016$i)) + 4|0);
+   $118 = HEAP32[$117>>2]|0;
+   $119 = ((($$016$i)) + 8|0);
+   $120 = HEAP32[$119>>2]|0;
+   FUNCTION_TABLE_viiiii[$118 & 127]($120,$0,$1,$4,$20);
+   $$0$i = HEAP32[$$016$i>>2]|0;
+   $121 = ($$0$i|0)==(0|0);
+   if ($121) {
+    break;
+   } else {
+    $$016$i = $$0$i;
+   }
+  }
+ }
+ _llvm_stackrestore(($19|0));
+ STACKTOP = sp;return;
+}
+function _flush_bulk($0) {
+ $0 = $0|0;
+ var $$$i = 0, $$0$i = 0, $$014 = 0, $$015$i = 0, $$016$i = 0, $$byval_copy = 
0, $$byval_copy20 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 
= 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0;
+ var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, 
$29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, 
$37 = 0, $38 = 0, $39 = 0;
+ var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, 
$47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, 
$55 = 0, $56 = 0, $57 = 0;
+ var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, 
$65 = 0, $66 = 0, $7 = 0, $8 = 0, $9 = 0, $last_bulk_time$byval_copy = 0, 
$last_bulk_time$byval_copy19 = 0, $or$cond = 0, $or$cond$i = 0, $spec$select = 
0, $spec$select$i = 0, $vararg_buffer = 0;
+ var $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer4 = 0, 
$vararg_ptr1 = 0, $vararg_ptr16 = 0, $vararg_ptr17 = 0, $vararg_ptr18 = 0, 
$vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, 
$vararg_ptr9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 672|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(672|0);
+ $$byval_copy20 = sp + 664|0;
+ $last_bulk_time$byval_copy19 = sp + 656|0;
+ $$byval_copy = sp + 648|0;
+ $last_bulk_time$byval_copy = sp + 640|0;
+ $vararg_buffer13 = sp + 624|0;
+ $vararg_buffer10 = sp + 616|0;
+ $vararg_buffer4 = sp + 600|0;
+ $vararg_buffer = sp + 584|0;
+ $1 = sp;
+ $2 = sp + 576|0;
+ $3 = 72288;
+ $4 = $3;
+ $5 = HEAP32[$4>>2]|0;
+ $6 = (($3) + 4)|0;
+ $7 = $6;
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ($5|0)==(0);
+ $10 = ($8|0)==(0);
+ $11 = $9 & $10;
+ $12 = HEAP32[18076]|0;
+ $13 = ($12|0)==(0);
+ $or$cond = $11 | $13;
+ if ($or$cond) {
+  STACKTOP = sp;return;
+ }
+ $14 = (_memchr(70688,0,256)|0);
+ $15 = ($14|0)==(0|0);
+ $16 = ($14|0)==(70688|0);
+ $17 = ((($14)) + -1|0);
+ $spec$select = $16 ? 70688 : $17;
+ $$014 = $15 ? (70943) : $spec$select;
+ $18 = HEAP8[$$014>>0]|0;
+ $19 = ($18<<24>>24)==(10);
+ if ($19) {
+  HEAP8[$$014>>0] = 0;
+  
;HEAP32[$last_bulk_time$byval_copy>>2]=HEAP32[72288>>2]|0;HEAP32[$last_bulk_time$byval_copy+4>>2]=HEAP32[72288+4>>2]|0;
+  $20 = (_GNUNET_TIME_absolute_get_duration($last_bulk_time$byval_copy)|0);
+  $21 = tempRet0;
+  $22 = $2;
+  $23 = $22;
+  HEAP32[$23>>2] = $20;
+  $24 = (($22) + 4)|0;
+  $25 = $24;
+  HEAP32[$25>>2] = $21;
+  
;HEAP32[$$byval_copy>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$2+4>>2]|0;
+  $26 = (_GNUNET_STRINGS_relative_time_to_string($$byval_copy,1)|0);
+  $27 = HEAP32[18076]|0;
+  HEAP32[$vararg_buffer>>2] = 256;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 70688;
+  $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+  HEAP32[$vararg_ptr2>>2] = $27;
+  $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+  HEAP32[$vararg_ptr3>>2] = $26;
+  (_snprintf($1,576,41284,$vararg_buffer)|0);
+  HEAP8[$$014>>0] = 10;
+ } else {
+  
;HEAP32[$last_bulk_time$byval_copy19>>2]=HEAP32[72288>>2]|0;HEAP32[$last_bulk_time$byval_copy19+4>>2]=HEAP32[72288+4>>2]|0;
+  $28 = (_GNUNET_TIME_absolute_get_duration($last_bulk_time$byval_copy19)|0);
+  $29 = tempRet0;
+  $30 = $2;
+  $31 = $30;
+  HEAP32[$31>>2] = $28;
+  $32 = (($30) + 4)|0;
+  $33 = $32;
+  HEAP32[$33>>2] = $29;
+  
;HEAP32[$$byval_copy20>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[$2+4>>2]|0;
+  $34 = (_GNUNET_STRINGS_relative_time_to_string($$byval_copy20,1)|0);
+  $35 = HEAP32[18076]|0;
+  HEAP32[$vararg_buffer4>>2] = 256;
+  $vararg_ptr7 = ((($vararg_buffer4)) + 4|0);
+  HEAP32[$vararg_ptr7>>2] = 70688;
+  $vararg_ptr8 = ((($vararg_buffer4)) + 8|0);
+  HEAP32[$vararg_ptr8>>2] = $35;
+  $vararg_ptr9 = ((($vararg_buffer4)) + 12|0);
+  HEAP32[$vararg_ptr9>>2] = $34;
+  (_snprintf($1,576,41284,$vararg_buffer4)|0);
+ }
+ $36 = HEAP32[18077]|0;
+ $37 = HEAP32[18074]|0;
+ $38 = ($37|0)!=(0|0);
+ $39 = (0|0)==(0|0);
+ $or$cond$i = $38 & $39;
+ if ($or$cond$i) {
+  $40 = ($36|0)==(4);
+  if ($40) {
+   HEAP32[$vararg_buffer10>>2] = $1;
+   (_fprintf($37,41221,$vararg_buffer10)|0);
+  } else {
+   $41 = $36 & 1;
+   $42 = ($41|0)==(0);
+   if ($42) {
+    $43 = $36 & 2;
+    $44 = ($43|0)==(0);
+    if ($44) {
+     $45 = $36 & 4;
+     $46 = ($45|0)==(0);
+     if ($46) {
+      $47 = $36 & 8;
+      $48 = ($47|0)==(0);
+      if ($48) {
+       $49 = $36 & 16;
+       $50 = ($49|0)==(0);
+       $51 = $36 & -65;
+       $52 = ($51|0)==(0);
+       $$$i = $52 ? 41226 : 41231;
+       $spec$select$i = $50 ? $$$i : 41239;
+       $53 = $spec$select$i;
+      } else {
+       $53 = 41267;
+      }
+     } else {
+      $53 = 41259;
+     }
+    } else {
+     $53 = 41251;
+    }
+   } else {
+    $53 = 41245;
+   }
+   HEAP32[$vararg_buffer13>>2] = $0;
+   $vararg_ptr16 = ((($vararg_buffer13)) + 4|0);
+   HEAP32[$vararg_ptr16>>2] = 70944;
+   $vararg_ptr17 = ((($vararg_buffer13)) + 8|0);
+   HEAP32[$vararg_ptr17>>2] = $53;
+   $vararg_ptr18 = ((($vararg_buffer13)) + 12|0);
+   HEAP32[$vararg_ptr18>>2] = $1;
+   (_fprintf($37,41272,$vararg_buffer13)|0);
+  }
+  $54 = HEAP32[18074]|0;
+  (_fflush($54)|0);
+  $$015$i = 0;
+ } else {
+  $$015$i = 0;
+ }
+ $55 = ($$015$i|0)==(0|0);
+ if (!($55)) {
+  $$016$i = $$015$i;
+  while(1) {
+   $56 = ((($$016$i)) + 4|0);
+   $57 = HEAP32[$56>>2]|0;
+   $58 = ((($$016$i)) + 8|0);
+   $59 = HEAP32[$58>>2]|0;
+   FUNCTION_TABLE_viiiii[$57 & 127]($59,$36,70944,$0,$1);
+   $$0$i = HEAP32[$$016$i>>2]|0;
+   $60 = ($$0$i|0)==(0|0);
+   if ($60) {
+    break;
+   } else {
+    $$016$i = $$0$i;
+   }
+  }
+ }
+ $61 = (_GNUNET_TIME_absolute_get()|0);
+ $62 = tempRet0;
+ $63 = 72288;
+ $64 = $63;
+ HEAP32[$64>>2] = $61;
+ $65 = (($63) + 4)|0;
+ $66 = $65;
+ HEAP32[$66>>2] = $62;
+ HEAP32[18076] = 0;
+ STACKTOP = sp;return;
+}
+function _GNUNET_get_log_skip() {
+ var $0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[18075]|0;
+ return ($0|0);
+}
+function _GNUNET_log_skip($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$pre = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 
= 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $vararg_buffer = 0, 
$vararg_ptr1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $2 = ($0|0)==(0);
+ $3 = HEAP32[18075]|0;
+ if (!($2)) {
+  $13 = (($3) + ($0))|0;
+  HEAP32[18075] = $13;
+  STACKTOP = sp;return;
+ }
+ $4 = ($3|0)==(0);
+ HEAP32[18075] = 0;
+ $5 = ($1|0)==(0);
+ $or$cond = $5 | $4;
+ if ($or$cond) {
+  STACKTOP = sp;return;
+ }
+ $6 = HEAP32[9370]|0;
+ $7 = ($6|0)==(-1);
+ if ($7) {
+  $8 = (_GNUNET_get_log_call_status(1,0,41155,41333,922)|0);
+  HEAP32[9370] = $8;
+  $$pre = HEAP32[18075]|0;
+  $9 = ($$pre|0)>(0);
+  if ($9) {
+   $10 = (($$pre) + -1)|0;
+   HEAP32[18075] = $10;
+   STACKTOP = sp;return;
+  } else {
+   $12 = $8;
+  }
+ } else {
+  $12 = $6;
+ }
+ $11 = ($12|0)==(0);
+ if ($11) {
+  STACKTOP = sp;return;
+ }
+ HEAP32[$vararg_buffer>>2] = 41155;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = 922;
+ _GNUNET_log_nocheck(1,43837,$vararg_buffer);
+ STACKTOP = sp;return;
+}
+function _GNUNET_log_from_nocheck($0,$1,$2,$varargs) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $varargs = $varargs|0;
+ var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $spec$select = 0, $vararg_buffer = 0, 
$vararg_ptr1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(160|0);
+ $vararg_buffer = sp + 144|0;
+ $3 = sp + 128|0;
+ $4 = sp;
+ $5 = ($1|0)==(0|0);
+ $spec$select = $5 ? 0 : $1;
+ HEAP32[$3>>2] = $varargs;
+ $6 = (_getpid()|0);
+ HEAP32[$vararg_buffer>>2] = $spec$select;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $6;
+ (_GNUNET_snprintf($4,128,41172,$vararg_buffer)|0);
+ _mylog($0,$4,$2,$3);
+ STACKTOP = sp;return;
+}
+function _GNUNET_CRYPTO_symmetric_encrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$alloca_mul = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, 
$vararg_buffer2 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $5 = sp + 16|0;
+ $6 = (_llvm_stacksave()|0);
+ $$alloca_mul = $1;
+ $7 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if 
((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(((((1*$$alloca_mul)|0)+15)&-16)|0);;
+ _setup_cipher_aes($5,$2,$3);
+ $8 = HEAP32[$5>>2]|0;
+ $9 = (_gcry_cipher_encrypt($8,$7,$1,$0,$1)|0);
+ $10 = ($9|0)==(0);
+ if (!($10)) {
+  $11 = HEAP32[9371]|0;
+  $12 = ($11|0)==(-1);
+  if ($12) {
+   $13 = (_GNUNET_get_log_call_status(1,0,41349,41368,134)|0);
+   HEAP32[9371] = $13;
+  }
+  $14 = (_GNUNET_get_log_skip()|0);
+  $15 = ($14|0)>(0);
+  if ($15) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $16 = HEAP32[9371]|0;
+  $17 = ($16|0)==(0);
+  if ($17) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer>>2] = 41349;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 134;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $18 = HEAP32[$5>>2]|0;
+ _gcry_cipher_close($18);
+ _setup_cipher_twofish($5,$2,$3);
+ $19 = HEAP32[$5>>2]|0;
+ $20 = (_gcry_cipher_encrypt($19,$4,$1,$7,$1)|0);
+ $21 = ($20|0)==(0);
+ if ($21) {
+  $29 = HEAP32[$5>>2]|0;
+  _gcry_cipher_close($29);
+  _memset(($7|0),0,($1|0))|0;
+  _llvm_stackrestore(($6|0));
+  STACKTOP = sp;return ($1|0);
+ }
+ $22 = HEAP32[9372]|0;
+ $23 = ($22|0)==(-1);
+ if ($23) {
+  $24 = (_GNUNET_get_log_call_status(1,0,41349,41368,138)|0);
+  HEAP32[9372] = $24;
+ }
+ $25 = (_GNUNET_get_log_skip()|0);
+ $26 = ($25|0)>(0);
+ if ($26) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $27 = HEAP32[9372]|0;
+ $28 = ($27|0)==(0);
+ if ($28) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer2>>2] = 41349;
+ $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+ HEAP32[$vararg_ptr5>>2] = 138;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer2);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _setup_cipher_aes($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 
0, $27 = 0, $28 = 0, $29 = 0;
+ var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 
0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond9 = 0, $sext$mask = 0, $sext$mask1 = 
0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_ptr1 = 
0, $vararg_ptr5 = 0;
+ var $vararg_ptr9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer6 = sp + 16|0;
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $3 = (_gcry_cipher_open($0,9,2,0)|0);
+ $4 = ($3|0)==(0);
+ if (!($4)) {
+  $5 = HEAP32[9376]|0;
+  $6 = ($5|0)==(-1);
+  if ($6) {
+   $7 = (_GNUNET_get_log_call_status(1,0,41349,41421,66)|0);
+   HEAP32[9376] = $7;
+  }
+  $8 = (_GNUNET_get_log_skip()|0);
+  $9 = ($8|0)>(0);
+  if ($9) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $10 = HEAP32[9376]|0;
+  $11 = ($10|0)==(0);
+  if ($11) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer>>2] = 41349;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 66;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $12 = HEAP32[$0>>2]|0;
+ $13 = (_gcry_cipher_setkey($12,$1,32)|0);
+ $14 = ($13|0)==(0);
+ $sext$mask = $13 & 255;
+ $15 = ($sext$mask|0)==(43);
+ $or$cond = $14 | $15;
+ if (!($or$cond)) {
+  $16 = HEAP32[9377]|0;
+  $17 = ($16|0)==(-1);
+  if ($17) {
+   $18 = (_GNUNET_get_log_call_status(1,0,41349,41421,70)|0);
+   HEAP32[9377] = $18;
+  }
+  $19 = (_GNUNET_get_log_skip()|0);
+  $20 = ($19|0)>(0);
+  if ($20) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $21 = HEAP32[9377]|0;
+  $22 = ($21|0)==(0);
+  if ($22) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer2>>2] = 41349;
+  $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+  HEAP32[$vararg_ptr5>>2] = 70;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer2);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $23 = HEAP32[$0>>2]|0;
+ $24 = (_gcry_cipher_setiv($23,$2,16)|0);
+ $25 = ($24|0)==(0);
+ $sext$mask1 = $24 & 255;
+ $26 = ($sext$mask1|0)==(43);
+ $or$cond9 = $25 | $26;
+ if ($or$cond9) {
+  STACKTOP = sp;return;
+ }
+ $27 = HEAP32[9378]|0;
+ $28 = ($27|0)==(-1);
+ if ($28) {
+  $29 = (_GNUNET_get_log_call_status(1,0,41349,41421,74)|0);
+  HEAP32[9378] = $29;
+ }
+ $30 = (_GNUNET_get_log_skip()|0);
+ $31 = ($30|0)>(0);
+ if ($31) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $32 = HEAP32[9378]|0;
+ $33 = ($32|0)==(0);
+ if ($33) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer6>>2] = 41349;
+ $vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
+ HEAP32[$vararg_ptr9>>2] = 74;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer6);
+ _GNUNET_abort_();
+ // unreachable;
+}
+function _setup_cipher_twofish($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 
0, $27 = 0, $28 = 0, $29 = 0;
+ var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 
= 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond9 = 0, $sext$mask = 
0, $sext$mask1 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 
0;
+ var $vararg_ptr1 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer6 = sp + 16|0;
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $3 = (_gcry_cipher_open($0,10,2,0)|0);
+ $4 = ($3|0)==(0);
+ if (!($4)) {
+  $5 = HEAP32[9373]|0;
+  $6 = ($5|0)==(-1);
+  if ($6) {
+   $7 = (_GNUNET_get_log_call_status(1,0,41349,41400,96)|0);
+   HEAP32[9373] = $7;
+  }
+  $8 = (_GNUNET_get_log_skip()|0);
+  $9 = ($8|0)>(0);
+  if ($9) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $10 = HEAP32[9373]|0;
+  $11 = ($10|0)==(0);
+  if ($11) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer>>2] = 41349;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 96;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $12 = HEAP32[$0>>2]|0;
+ $13 = ((($1)) + 32|0);
+ $14 = (_gcry_cipher_setkey($12,$13,32)|0);
+ $15 = ($14|0)==(0);
+ $sext$mask = $14 & 255;
+ $16 = ($sext$mask|0)==(43);
+ $or$cond = $15 | $16;
+ if (!($or$cond)) {
+  $17 = HEAP32[9374]|0;
+  $18 = ($17|0)==(-1);
+  if ($18) {
+   $19 = (_GNUNET_get_log_call_status(1,0,41349,41400,100)|0);
+   HEAP32[9374] = $19;
+  }
+  $20 = (_GNUNET_get_log_skip()|0);
+  $21 = ($20|0)>(0);
+  if ($21) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $22 = HEAP32[9374]|0;
+  $23 = ($22|0)==(0);
+  if ($23) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer2>>2] = 41349;
+  $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+  HEAP32[$vararg_ptr5>>2] = 100;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer2);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $24 = HEAP32[$0>>2]|0;
+ $25 = ((($2)) + 16|0);
+ $26 = (_gcry_cipher_setiv($24,$25,16)|0);
+ $27 = ($26|0)==(0);
+ $sext$mask1 = $26 & 255;
+ $28 = ($sext$mask1|0)==(43);
+ $or$cond9 = $27 | $28;
+ if ($or$cond9) {
+  STACKTOP = sp;return;
+ }
+ $29 = HEAP32[9375]|0;
+ $30 = ($29|0)==(-1);
+ if ($30) {
+  $31 = (_GNUNET_get_log_call_status(1,0,41349,41400,104)|0);
+  HEAP32[9375] = $31;
+ }
+ $32 = (_GNUNET_get_log_skip()|0);
+ $33 = ($32|0)>(0);
+ if ($33) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $34 = HEAP32[9375]|0;
+ $35 = ($34|0)==(0);
+ if ($35) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer6>>2] = 41349;
+ $vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
+ HEAP32[$vararg_ptr9>>2] = 104;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer6);
+ _GNUNET_abort_();
+ // unreachable;
+}
+function _GNUNET_CRYPTO_symmetric_decrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$alloca_mul = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, 
$vararg_buffer2 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $5 = sp + 16|0;
+ $6 = (_llvm_stacksave()|0);
+ $$alloca_mul = $1;
+ $7 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if 
((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(((((1*$$alloca_mul)|0)+15)&-16)|0);;
+ _setup_cipher_twofish($5,$2,$3);
+ $8 = HEAP32[$5>>2]|0;
+ $9 = (_gcry_cipher_decrypt($8,$7,$1,$0,$1)|0);
+ $10 = ($9|0)==(0);
+ if (!($10)) {
+  $11 = HEAP32[9379]|0;
+  $12 = ($11|0)==(-1);
+  if ($12) {
+   $13 = (_GNUNET_get_log_call_status(1,0,41349,41438,170)|0);
+   HEAP32[9379] = $13;
+  }
+  $14 = (_GNUNET_get_log_skip()|0);
+  $15 = ($14|0)>(0);
+  if ($15) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $16 = HEAP32[9379]|0;
+  $17 = ($16|0)==(0);
+  if ($17) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer>>2] = 41349;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 170;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $18 = HEAP32[$5>>2]|0;
+ _gcry_cipher_close($18);
+ _setup_cipher_aes($5,$2,$3);
+ $19 = HEAP32[$5>>2]|0;
+ $20 = (_gcry_cipher_decrypt($19,$4,$1,$7,$1)|0);
+ $21 = ($20|0)==(0);
+ if ($21) {
+  $29 = HEAP32[$5>>2]|0;
+  _gcry_cipher_close($29);
+  _memset(($7|0),0,($1|0))|0;
+  _llvm_stackrestore(($6|0));
+  STACKTOP = sp;return ($1|0);
+ }
+ $22 = HEAP32[9380]|0;
+ $23 = ($22|0)==(-1);
+ if ($23) {
+  $24 = (_GNUNET_get_log_call_status(1,0,41349,41438,174)|0);
+  HEAP32[9380] = $24;
+ }
+ $25 = (_GNUNET_get_log_skip()|0);
+ $26 = ($25|0)>(0);
+ if ($26) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $27 = HEAP32[9380]|0;
+ $28 = ($27|0)==(0);
+ if ($28) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer2>>2] = 41349;
+ $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+ HEAP32[$vararg_ptr5>>2] = 174;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer2);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _GNUNET_CRYPTO_ecdsa_key_get_public($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, 
$26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 
0, $9 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, 
$vararg_ptr1 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer6 = sp + 16|0;
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $2 = sp + 24|0;
+ $3 = (_decode_private_ecdsa_key($0)|0);
+ $4 = ($3|0)==(0|0);
+ if ($4) {
+  $5 = HEAP32[9381]|0;
+  $6 = ($5|0)==(-1);
+  if ($6) {
+   $7 = (_GNUNET_get_log_call_status(1,0,41470,41483,232)|0);
+   HEAP32[9381] = $7;
+  }
+  $8 = (_GNUNET_get_log_skip()|0);
+  $9 = ($8|0)>(0);
+  if ($9) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $10 = HEAP32[9381]|0;
+  $11 = ($10|0)==(0);
+  if ($11) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer>>2] = 41470;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 232;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $12 = (_gcry_mpi_ec_new($2,$3,0)|0);
+ $13 = ($12|0)==(0);
+ if (!($13)) {
+  $14 = HEAP32[9382]|0;
+  $15 = ($14|0)==(-1);
+  if ($15) {
+   $16 = (_GNUNET_get_log_call_status(1,0,41470,41483,233)|0);
+   HEAP32[9382] = $16;
+  }
+  $17 = (_GNUNET_get_log_skip()|0);
+  $18 = ($17|0)>(0);
+  if ($18) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $19 = HEAP32[9382]|0;
+  $20 = ($19|0)==(0);
+  if ($20) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer2>>2] = 41470;
+  $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+  HEAP32[$vararg_ptr5>>2] = 233;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer2);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ _gcry_sexp_release($3);
+ $21 = HEAP32[$2>>2]|0;
+ $22 = (_gcry_mpi_ec_get_mpi(41518,$21,0)|0);
+ $23 = ($22|0)==(0|0);
+ if (!($23)) {
+  _GNUNET_CRYPTO_mpi_print_unsigned($1,32,$22);
+  _gcry_mpi_release($22);
+  $31 = HEAP32[$2>>2]|0;
+  _gcry_ctx_release($31);
+  STACKTOP = sp;return;
+ }
+ $24 = HEAP32[9383]|0;
+ $25 = ($24|0)==(-1);
+ if ($25) {
+  $26 = (_GNUNET_get_log_call_status(1,0,41470,41483,236)|0);
+  HEAP32[9383] = $26;
+ }
+ $27 = (_GNUNET_get_log_skip()|0);
+ $28 = ($27|0)>(0);
+ if ($28) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $29 = HEAP32[9383]|0;
+ $30 = ($29|0)==(0);
+ if ($30) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer6>>2] = 41470;
+ $vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
+ HEAP32[$vararg_ptr9>>2] = 236;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer6);
+ _GNUNET_abort_();
+ // unreachable;
+}
+function _decode_private_ecdsa_key($0) {
+ $0 = $0|0;
+ var $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, $vararg_buffer = 0;
+ var $vararg_buffer2 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 
= 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $vararg_buffer8 = sp + 24|0;
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $1 = sp + 32|0;
+ HEAP32[$vararg_buffer>>2] = 32;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $0;
+ $2 = (_gcry_sexp_build($1,0,41526,$vararg_buffer)|0);
+ $3 = ($2|0)==(0);
+ if ($3) {
+  $19 = HEAP32[$1>>2]|0;
+  STACKTOP = sp;return ($19|0);
+ }
+ $4 = HEAP32[9384]|0;
+ $5 = ($4|0)==(-1);
+ if ($5) {
+  $6 = (_GNUNET_get_log_call_status(1,41568,41470,41584,135)|0);
+  HEAP32[9384] = $6;
+ }
+ $7 = (_GNUNET_get_log_skip()|0);
+ $8 = ($7|0)>(0);
+ if ($8) {
+  _GNUNET_log_skip(-1,0);
+ } else {
+  $9 = HEAP32[9384]|0;
+  $10 = ($9|0)==(0);
+  if (!($10)) {
+   $11 = (_gcry_strerror($2)|0);
+   HEAP32[$vararg_buffer2>>2] = 41609;
+   $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+   HEAP32[$vararg_ptr5>>2] = 41470;
+   $vararg_ptr6 = ((($vararg_buffer2)) + 8|0);
+   HEAP32[$vararg_ptr6>>2] = 135;
+   $vararg_ptr7 = ((($vararg_buffer2)) + 12|0);
+   HEAP32[$vararg_ptr7>>2] = $11;
+   _GNUNET_log_from_nocheck(1,41568,42643,$vararg_buffer2);
+  }
+ }
+ $12 = HEAP32[9385]|0;
+ $13 = ($12|0)==(-1);
+ if ($13) {
+  $14 = (_GNUNET_get_log_call_status(1,0,41470,41584,136)|0);
+  HEAP32[9385] = $14;
+ }
+ $15 = (_GNUNET_get_log_skip()|0);
+ $16 = ($15|0)>(0);
+ if ($16) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $17 = HEAP32[9385]|0;
+ $18 = ($17|0)==(0);
+ if ($18) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer8>>2] = 41470;
+ $vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
+ HEAP32[$vararg_ptr11>>2] = 136;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer8);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _GNUNET_CRYPTO_eddsa_key_get_public($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, 
$26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 
0, $9 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, 
$vararg_ptr1 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer6 = sp + 16|0;
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $2 = sp + 24|0;
+ $3 = (_decode_private_eddsa_key($0)|0);
+ $4 = ($3|0)==(0|0);
+ if ($4) {
+  $5 = HEAP32[9386]|0;
+  $6 = ($5|0)==(-1);
+  if ($6) {
+   $7 = (_GNUNET_get_log_call_status(1,0,41470,41625,262)|0);
+   HEAP32[9386] = $7;
+  }
+  $8 = (_GNUNET_get_log_skip()|0);
+  $9 = ($8|0)>(0);
+  if ($9) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $10 = HEAP32[9386]|0;
+  $11 = ($10|0)==(0);
+  if ($11) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer>>2] = 41470;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 262;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $12 = (_gcry_mpi_ec_new($2,$3,0)|0);
+ $13 = ($12|0)==(0);
+ if (!($13)) {
+  $14 = HEAP32[9387]|0;
+  $15 = ($14|0)==(-1);
+  if ($15) {
+   $16 = (_GNUNET_get_log_call_status(1,0,41470,41625,263)|0);
+   HEAP32[9387] = $16;
+  }
+  $17 = (_GNUNET_get_log_skip()|0);
+  $18 = ($17|0)>(0);
+  if ($18) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $19 = HEAP32[9387]|0;
+  $20 = ($19|0)==(0);
+  if ($20) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer2>>2] = 41470;
+  $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+  HEAP32[$vararg_ptr5>>2] = 263;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer2);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ _gcry_sexp_release($3);
+ $21 = HEAP32[$2>>2]|0;
+ $22 = (_gcry_mpi_ec_get_mpi(41518,$21,0)|0);
+ $23 = ($22|0)==(0|0);
+ if (!($23)) {
+  _GNUNET_CRYPTO_mpi_print_unsigned($1,32,$22);
+  _gcry_mpi_release($22);
+  $31 = HEAP32[$2>>2]|0;
+  _gcry_ctx_release($31);
+  STACKTOP = sp;return;
+ }
+ $24 = HEAP32[9388]|0;
+ $25 = ($24|0)==(-1);
+ if ($25) {
+  $26 = (_GNUNET_get_log_call_status(1,0,41470,41625,266)|0);
+  HEAP32[9388] = $26;
+ }
+ $27 = (_GNUNET_get_log_skip()|0);
+ $28 = ($27|0)>(0);
+ if ($28) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $29 = HEAP32[9388]|0;
+ $30 = ($29|0)==(0);
+ if ($30) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer6>>2] = 41470;
+ $vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
+ HEAP32[$vararg_ptr9>>2] = 266;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer6);
+ _GNUNET_abort_();
+ // unreachable;
+}
+function _decode_private_eddsa_key($0) {
+ $0 = $0|0;
+ var $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, $vararg_buffer = 0;
+ var $vararg_buffer2 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 
= 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $vararg_buffer8 = sp + 24|0;
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $1 = sp + 32|0;
+ HEAP32[$vararg_buffer>>2] = 32;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $0;
+ $2 = (_gcry_sexp_build($1,0,41660,$vararg_buffer)|0);
+ $3 = ($2|0)==(0);
+ if ($3) {
+  $19 = HEAP32[$1>>2]|0;
+  STACKTOP = sp;return ($19|0);
+ }
+ $4 = HEAP32[9389]|0;
+ $5 = ($4|0)==(-1);
+ if ($5) {
+  $6 = (_GNUNET_get_log_call_status(1,41568,41470,41715,168)|0);
+  HEAP32[9389] = $6;
+ }
+ $7 = (_GNUNET_get_log_skip()|0);
+ $8 = ($7|0)>(0);
+ if ($8) {
+  _GNUNET_log_skip(-1,0);
+ } else {
+  $9 = HEAP32[9389]|0;
+  $10 = ($9|0)==(0);
+  if (!($10)) {
+   $11 = (_gcry_strerror($2)|0);
+   HEAP32[$vararg_buffer2>>2] = 41609;
+   $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+   HEAP32[$vararg_ptr5>>2] = 41470;
+   $vararg_ptr6 = ((($vararg_buffer2)) + 8|0);
+   HEAP32[$vararg_ptr6>>2] = 168;
+   $vararg_ptr7 = ((($vararg_buffer2)) + 12|0);
+   HEAP32[$vararg_ptr7>>2] = $11;
+   _GNUNET_log_from_nocheck(1,41568,42643,$vararg_buffer2);
+  }
+ }
+ $12 = HEAP32[9390]|0;
+ $13 = ($12|0)==(-1);
+ if ($13) {
+  $14 = (_GNUNET_get_log_call_status(1,0,41470,41715,169)|0);
+  HEAP32[9390] = $14;
+ }
+ $15 = (_GNUNET_get_log_skip()|0);
+ $16 = ($15|0)>(0);
+ if ($16) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $17 = HEAP32[9390]|0;
+ $18 = ($17|0)==(0);
+ if ($18) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer8>>2] = 41470;
+ $vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
+ HEAP32[$vararg_ptr11>>2] = 169;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer8);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _GNUNET_CRYPTO_ecdhe_key_get_public($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, 
$26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $45 = 0, $46 = 0;
+ var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer16 = 0, $vararg_buffer2 
= 0, $vararg_buffer20 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 
= 0, $vararg_ptr15 = 0, $vararg_ptr19 = 0, $vararg_ptr23 = 0, $vararg_ptr5 = 0;
+ var $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(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;
+ $2 = sp + 60|0;
+ $3 = sp + 56|0;
+ HEAP32[$vararg_buffer>>2] = 32;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $0;
+ $4 = (_gcry_sexp_build($2,0,41526,$vararg_buffer)|0);
+ $5 = ($4|0)==(0);
+ if (!($5)) {
+  $6 = HEAP32[9391]|0;
+  $7 = ($6|0)==(-1);
+  if ($7) {
+   $8 = (_GNUNET_get_log_call_status(1,41568,41470,41740,201)|0);
+   HEAP32[9391] = $8;
+  }
+  $9 = (_GNUNET_get_log_skip()|0);
+  $10 = ($9|0)>(0);
+  if ($10) {
+   _GNUNET_log_skip(-1,0);
+  } else {
+   $11 = HEAP32[9391]|0;
+   $12 = ($11|0)==(0);
+   if (!($12)) {
+    $13 = (_gcry_strerror($4)|0);
+    HEAP32[$vararg_buffer2>>2] = 41609;
+    $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+    HEAP32[$vararg_ptr5>>2] = 41470;
+    $vararg_ptr6 = ((($vararg_buffer2)) + 8|0);
+    HEAP32[$vararg_ptr6>>2] = 201;
+    $vararg_ptr7 = ((($vararg_buffer2)) + 12|0);
+    HEAP32[$vararg_ptr7>>2] = $13;
+    _GNUNET_log_from_nocheck(1,41568,42643,$vararg_buffer2);
+   }
+  }
+  $14 = HEAP32[9392]|0;
+  $15 = ($14|0)==(-1);
+  if ($15) {
+   $16 = (_GNUNET_get_log_call_status(1,0,41470,41740,202)|0);
+   HEAP32[9392] = $16;
+  }
+  $17 = (_GNUNET_get_log_skip()|0);
+  $18 = ($17|0)>(0);
+  if ($18) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $19 = HEAP32[9392]|0;
+  $20 = ($19|0)==(0);
+  if ($20) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer8>>2] = 41470;
+  $vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
+  HEAP32[$vararg_ptr11>>2] = 202;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer8);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $21 = HEAP32[$2>>2]|0;
+ $22 = ($21|0)==(0|0);
+ if ($22) {
+  $23 = HEAP32[9393]|0;
+  $24 = ($23|0)==(-1);
+  if ($24) {
+   $25 = (_GNUNET_get_log_call_status(1,0,41470,41765,292)|0);
+   HEAP32[9393] = $25;
+  }
+  $26 = (_GNUNET_get_log_skip()|0);
+  $27 = ($26|0)>(0);
+  if ($27) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $28 = HEAP32[9393]|0;
+  $29 = ($28|0)==(0);
+  if ($29) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer12>>2] = 41470;
+  $vararg_ptr15 = ((($vararg_buffer12)) + 4|0);
+  HEAP32[$vararg_ptr15>>2] = 292;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer12);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $30 = (_gcry_mpi_ec_new($3,$21,0)|0);
+ $31 = ($30|0)==(0);
+ if (!($31)) {
+  $32 = HEAP32[9394]|0;
+  $33 = ($32|0)==(-1);
+  if ($33) {
+   $34 = (_GNUNET_get_log_call_status(1,0,41470,41765,293)|0);
+   HEAP32[9394] = $34;
+  }
+  $35 = (_GNUNET_get_log_skip()|0);
+  $36 = ($35|0)>(0);
+  if ($36) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $37 = HEAP32[9394]|0;
+  $38 = ($37|0)==(0);
+  if ($38) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer16>>2] = 41470;
+  $vararg_ptr19 = ((($vararg_buffer16)) + 4|0);
+  HEAP32[$vararg_ptr19>>2] = 293;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer16);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ _gcry_sexp_release($21);
+ $39 = HEAP32[$3>>2]|0;
+ $40 = (_gcry_mpi_ec_get_mpi(41518,$39,0)|0);
+ $41 = ($40|0)==(0|0);
+ if (!($41)) {
+  _GNUNET_CRYPTO_mpi_print_unsigned($1,32,$40);
+  _gcry_mpi_release($40);
+  $49 = HEAP32[$3>>2]|0;
+  _gcry_ctx_release($49);
+  STACKTOP = sp;return;
+ }
+ $42 = HEAP32[9395]|0;
+ $43 = ($42|0)==(-1);
+ if ($43) {
+  $44 = (_GNUNET_get_log_call_status(1,0,41470,41765,296)|0);
+  HEAP32[9395] = $44;
+ }
+ $45 = (_GNUNET_get_log_skip()|0);
+ $46 = ($45|0)>(0);
+ if ($46) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $47 = HEAP32[9395]|0;
+ $48 = ($47|0)==(0);
+ if ($48) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer20>>2] = 41470;
+ $vararg_ptr23 = ((($vararg_buffer20)) + 4|0);
+ HEAP32[$vararg_ptr23>>2] = 296;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer20);
+ _GNUNET_abort_();
+ // unreachable;
+}
+function _GNUNET_CRYPTO_ecdhe_key_create() {
+ var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = (_GNUNET_xmalloc_(32,41470,545)|0);
+ $1 = (_GNUNET_CRYPTO_ecdhe_key_create2($0)|0);
+ $2 = ($1|0)==(1);
+ if ($2) {
+  $$0 = $0;
+  return ($$0|0);
+ }
+ _GNUNET_xfree_($0,41470,549);
+ $$0 = 0;
+ return ($$0|0);
+}
+function _GNUNET_CRYPTO_ecdhe_key_create2($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, 
$24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, 
$34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, 
$6 = 0, $7 = 0, $8 = 0;
+ var $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer12 = 0, 
$vararg_buffer6 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, 
$vararg_ptr16 = 0, $vararg_ptr17 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, 
$vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(80|0);
+ $vararg_buffer12 = sp + 40|0;
+ $vararg_buffer6 = sp + 24|0;
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $1 = sp + 64|0;
+ $2 = sp + 60|0;
+ $3 = sp + 56|0;
+ $4 = (_gcry_sexp_build($2,0,41800,$vararg_buffer)|0);
+ $5 = ($4|0)==(0);
+ if (!($5)) {
+  $6 = HEAP32[9396]|0;
+  $7 = ($6|0)==(-1);
+  if ($7) {
+   $8 = (_GNUNET_get_log_call_status(1,41568,41470,41855,582)|0);
+   HEAP32[9396] = $8;
+  }
+  $9 = (_GNUNET_get_log_skip()|0);
+  $10 = ($9|0)>(0);
+  if ($10) {
+   _GNUNET_log_skip(-1,0);
+   $$0 = -1;
+   STACKTOP = sp;return ($$0|0);
+  }
+  $11 = HEAP32[9396]|0;
+  $12 = ($11|0)==(0);
+  if ($12) {
+   $$0 = -1;
+   STACKTOP = sp;return ($$0|0);
+  }
+  $13 = (_gcry_strerror($4)|0);
+  HEAP32[$vararg_buffer1>>2] = 41609;
+  $vararg_ptr3 = ((($vararg_buffer1)) + 4|0);
+  HEAP32[$vararg_ptr3>>2] = 41470;
+  $vararg_ptr4 = ((($vararg_buffer1)) + 8|0);
+  HEAP32[$vararg_ptr4>>2] = 582;
+  $vararg_ptr5 = ((($vararg_buffer1)) + 12|0);
+  HEAP32[$vararg_ptr5>>2] = $13;
+  _GNUNET_log_from_nocheck(1,41568,42643,$vararg_buffer1);
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $14 = HEAP32[$2>>2]|0;
+ $15 = (_gcry_pk_genkey($1,$14)|0);
+ $16 = ($15|0)==(0);
+ if (!($16)) {
+  $17 = HEAP32[9397]|0;
+  $18 = ($17|0)==(-1);
+  if ($18) {
+   $19 = (_GNUNET_get_log_call_status(1,41568,41470,41855,587)|0);
+   HEAP32[9397] = $19;
+  }
+  $20 = (_GNUNET_get_log_skip()|0);
+  $21 = ($20|0)>(0);
+  if ($21) {
+   _GNUNET_log_skip(-1,0);
+  } else {
+   $22 = HEAP32[9397]|0;
+   $23 = ($22|0)==(0);
+   if (!($23)) {
+    $24 = (_gcry_strerror($15)|0);
+    HEAP32[$vararg_buffer6>>2] = 41887;
+    $vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
+    HEAP32[$vararg_ptr9>>2] = 41470;
+    $vararg_ptr10 = ((($vararg_buffer6)) + 8|0);
+    HEAP32[$vararg_ptr10>>2] = 587;
+    $vararg_ptr11 = ((($vararg_buffer6)) + 12|0);
+    HEAP32[$vararg_ptr11>>2] = $24;
+    _GNUNET_log_from_nocheck(1,41568,42643,$vararg_buffer6);
+   }
+  }
+  $25 = HEAP32[$2>>2]|0;
+  _gcry_sexp_release($25);
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $26 = HEAP32[$2>>2]|0;
+ _gcry_sexp_release($26);
+ $27 = HEAP32[$1>>2]|0;
+ $28 = (_key_from_sexp($3,$27,59743,57460)|0);
+ $29 = ($28|0)==(0);
+ if ($29) {
+  $39 = HEAP32[$1>>2]|0;
+  _gcry_sexp_release($39);
+  $40 = HEAP32[$3>>2]|0;
+  _GNUNET_CRYPTO_mpi_print_unsigned($0,32,$40);
+  _gcry_mpi_release($40);
+  $$0 = 1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $30 = HEAP32[9398]|0;
+ $31 = ($30|0)==(-1);
+ if ($31) {
+  $32 = (_GNUNET_get_log_call_status(1,41568,41470,41855,602)|0);
+  HEAP32[9398] = $32;
+ }
+ $33 = (_GNUNET_get_log_skip()|0);
+ $34 = ($33|0)>(0);
+ if ($34) {
+  _GNUNET_log_skip(-1,0);
+ } else {
+  $35 = HEAP32[9398]|0;
+  $36 = ($35|0)==(0);
+  if (!($36)) {
+   $37 = (_gcry_strerror($28)|0);
+   HEAP32[$vararg_buffer12>>2] = 41902;
+   $vararg_ptr15 = ((($vararg_buffer12)) + 4|0);
+   HEAP32[$vararg_ptr15>>2] = 41470;
+   $vararg_ptr16 = ((($vararg_buffer12)) + 8|0);
+   HEAP32[$vararg_ptr16>>2] = 602;
+   $vararg_ptr17 = ((($vararg_buffer12)) + 12|0);
+   HEAP32[$vararg_ptr17>>2] = $37;
+   _GNUNET_log_from_nocheck(1,41568,42643,$vararg_buffer12);
+  }
+ }
+ $38 = HEAP32[$1>>2]|0;
+ _gcry_sexp_release($38);
+ $$0 = -1;
+ STACKTOP = sp;return ($$0|0);
+}
+function _key_from_sexp($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$04550 = 0, $$04655 = 0, $$047 = 0, $$056 = 0, $$151 = 0, $10 = 0, $11 = 
0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 
= 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 
0, $exitcond = 0, $exitcond62 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (_gcry_sexp_find_token($1,$2,0)|0);
+ $5 = ($4|0)==(0|0);
+ if ($5) {
+  $$047 = 1;
+  return ($$047|0);
+ }
+ $6 = (_gcry_sexp_cadr($4)|0);
+ _gcry_sexp_release($4);
+ $7 = ($6|0)==(0|0);
+ if ($7) {
+  $$047 = 2;
+  return ($$047|0);
+ }
+ $8 = HEAP8[$3>>0]|0;
+ $9 = ($8<<24>>24)==(0);
+ L7: do {
+  if (!($9)) {
+   $$04655 = $3;$$056 = 0;
+   while(1) {
+    $10 = (_gcry_sexp_find_token($6,$$04655,1)|0);
+    $11 = ($10|0)==(0|0);
+    if ($11) {
+     label = 6;
+     break;
+    }
+    $16 = (_gcry_sexp_nth_mpi($10,1,5)|0);
+    $17 = (($0) + ($$056<<2)|0);
+    HEAP32[$17>>2] = $16;
+    _gcry_sexp_release($10);
+    $18 = HEAP32[$17>>2]|0;
+    $19 = ($18|0)==(0|0);
+    if ($19) {
+     label = 11;
+     break;
+    }
+    $24 = ((($$04655)) + 1|0);
+    $25 = (($$056) + 1)|0;
+    $26 = HEAP8[$24>>0]|0;
+    $27 = ($26<<24>>24)==(0);
+    if ($27) {
+     break L7;
+    } else {
+     $$04655 = $24;$$056 = $25;
+    }
+   }
+   if ((label|0) == 6) {
+    $12 = ($$056|0)==(0);
+    if (!($12)) {
+     $$04550 = 0;
+     while(1) {
+      $13 = (($0) + ($$04550<<2)|0);
+      $14 = HEAP32[$13>>2]|0;
+      _gcry_free($14);
+      HEAP32[$13>>2] = 0;
+      $15 = (($$04550) + 1)|0;
+      $exitcond = ($15|0)==($$056|0);
+      if ($exitcond) {
+       break;
+      } else {
+       $$04550 = $15;
+      }
+     }
+    }
+    _gcry_sexp_release($6);
+    $$047 = 3;
+    return ($$047|0);
+   }
+   else if ((label|0) == 11) {
+    $20 = ($$056|0)==(0);
+    if (!($20)) {
+     $$151 = 0;
+     while(1) {
+      $21 = (($0) + ($$151<<2)|0);
+      $22 = HEAP32[$21>>2]|0;
+      _gcry_free($22);
+      HEAP32[$21>>2] = 0;
+      $23 = (($$151) + 1)|0;
+      $exitcond62 = ($23|0)==($$056|0);
+      if ($exitcond62) {
+       break;
+      } else {
+       $$151 = $23;
+      }
+     }
+    }
+    _gcry_sexp_release($6);
+    $$047 = 4;
+    return ($$047|0);
+   }
+  }
+ } while(0);
+ _gcry_sexp_release($6);
+ $$047 = 0;
+ return ($$047|0);
+}
+function _GNUNET_CRYPTO_ecdsa_key_create() {
+ var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 
= 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 
= 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$5 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer12 
= 0, $vararg_buffer6 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 
0, $vararg_ptr16 = 0, $vararg_ptr17 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, 
$vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(80|0);
+ $vararg_buffer12 = sp + 40|0;
+ $vararg_buffer6 = sp + 24|0;
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $0 = sp + 64|0;
+ $1 = sp + 60|0;
+ $2 = sp + 56|0;
+ $3 = (_gcry_sexp_build($1,0,41916,$vararg_buffer)|0);
+ $4 = ($3|0)==(0);
+ if (!($4)) {
+  $5 = HEAP32[9399]|0;
+  $6 = ($5|0)==(-1);
+  if ($6) {
+   $7 = (_GNUNET_get_log_call_status(1,41568,41470,41954,636)|0);
+   HEAP32[9399] = $7;
+  }
+  $8 = (_GNUNET_get_log_skip()|0);
+  $9 = ($8|0)>(0);
+  if ($9) {
+   _GNUNET_log_skip(-1,0);
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+  $10 = HEAP32[9399]|0;
+  $11 = ($10|0)==(0);
+  if ($11) {
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+  $12 = (_gcry_strerror($3)|0);
+  HEAP32[$vararg_buffer1>>2] = 41609;
+  $vararg_ptr3 = ((($vararg_buffer1)) + 4|0);
+  HEAP32[$vararg_ptr3>>2] = 41470;
+  $vararg_ptr4 = ((($vararg_buffer1)) + 8|0);
+  HEAP32[$vararg_ptr4>>2] = 636;
+  $vararg_ptr5 = ((($vararg_buffer1)) + 12|0);
+  HEAP32[$vararg_ptr5>>2] = $12;
+  _GNUNET_log_from_nocheck(1,41568,42643,$vararg_buffer1);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $13 = HEAP32[$1>>2]|0;
+ $14 = (_gcry_pk_genkey($0,$13)|0);
+ $15 = ($14|0)==(0);
+ if (!($15)) {
+  $16 = HEAP32[9400]|0;
+  $17 = ($16|0)==(-1);
+  if ($17) {
+   $18 = (_GNUNET_get_log_call_status(1,41568,41470,41954,641)|0);
+   HEAP32[9400] = $18;
+  }
+  $19 = (_GNUNET_get_log_skip()|0);
+  $20 = ($19|0)>(0);
+  if ($20) {
+   _GNUNET_log_skip(-1,0);
+  } else {
+   $21 = HEAP32[9400]|0;
+   $22 = ($21|0)==(0);
+   if (!($22)) {
+    $23 = (_gcry_strerror($14)|0);
+    HEAP32[$vararg_buffer6>>2] = 41887;
+    $vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
+    HEAP32[$vararg_ptr9>>2] = 41470;
+    $vararg_ptr10 = ((($vararg_buffer6)) + 8|0);
+    HEAP32[$vararg_ptr10>>2] = 641;
+    $vararg_ptr11 = ((($vararg_buffer6)) + 12|0);
+    HEAP32[$vararg_ptr11>>2] = $23;
+    _GNUNET_log_from_nocheck(1,41568,42643,$vararg_buffer6);
+   }
+  }
+  $24 = HEAP32[$1>>2]|0;
+  _gcry_sexp_release($24);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $25 = HEAP32[$1>>2]|0;
+ _gcry_sexp_release($25);
+ $26 = HEAP32[$0>>2]|0;
+ $27 = (_key_from_sexp($2,$26,59743,57460)|0);
+ $28 = ($27|0)==(0);
+ if ($28) {
+  $38 = HEAP32[$0>>2]|0;
+  _gcry_sexp_release($38);
+  $39 = (_GNUNET_xmalloc_(32,41470,661)|0);
+  $40 = HEAP32[$2>>2]|0;
+  _GNUNET_CRYPTO_mpi_print_unsigned($39,32,$40);
+  _gcry_mpi_release($40);
+  $$0 = $39;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $29 = HEAP32[9401]|0;
+ $30 = ($29|0)==(-1);
+ if ($30) {
+  $31 = (_GNUNET_get_log_call_status(1,41568,41470,41954,656)|0);
+  HEAP32[9401] = $31;
+ }
+ $32 = (_GNUNET_get_log_skip()|0);
+ $33 = ($32|0)>(0);
+ if ($33) {
+  _GNUNET_log_skip(-1,0);
+ } else {
+  $34 = HEAP32[9401]|0;
+  $35 = ($34|0)==(0);
+  if (!($35)) {
+   $36 = (_gcry_strerror($27)|0);
+   HEAP32[$vararg_buffer12>>2] = 41902;
+   $vararg_ptr15 = ((($vararg_buffer12)) + 4|0);
+   HEAP32[$vararg_ptr15>>2] = 41470;
+   $vararg_ptr16 = ((($vararg_buffer12)) + 8|0);
+   HEAP32[$vararg_ptr16>>2] = 656;
+   $vararg_ptr17 = ((($vararg_buffer12)) + 12|0);
+   HEAP32[$vararg_ptr17>>2] = $36;
+   _GNUNET_log_from_nocheck(1,41568,42643,$vararg_buffer12);
+  }
+ }
+ $37 = HEAP32[$0>>2]|0;
+ _gcry_sexp_release($37);
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function _GNUNET_CRYPTO_eddsa_key_create() {
+ var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 
= 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 
= 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$5 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer12 
= 0, $vararg_buffer6 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 
0, $vararg_ptr16 = 0, $vararg_ptr17 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, 
$vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(80|0);
+ $vararg_buffer12 = sp + 40|0;
+ $vararg_buffer6 = sp + 24|0;
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $0 = sp + 64|0;
+ $1 = sp + 60|0;
+ $2 = sp + 56|0;
+ $3 = (_gcry_sexp_build($1,0,41985,$vararg_buffer)|0);
+ $4 = ($3|0)==(0);
+ if (!($4)) {
+  $5 = HEAP32[9402]|0;
+  $6 = ($5|0)==(-1);
+  if ($6) {
+   $7 = (_GNUNET_get_log_call_status(1,41568,41470,42029,693)|0);
+   HEAP32[9402] = $7;
+  }
+  $8 = (_GNUNET_get_log_skip()|0);
+  $9 = ($8|0)>(0);
+  if ($9) {
+   _GNUNET_log_skip(-1,0);
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+  $10 = HEAP32[9402]|0;
+  $11 = ($10|0)==(0);
+  if ($11) {
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+  $12 = (_gcry_strerror($3)|0);
+  HEAP32[$vararg_buffer1>>2] = 41609;
+  $vararg_ptr3 = ((($vararg_buffer1)) + 4|0);
+  HEAP32[$vararg_ptr3>>2] = 41470;
+  $vararg_ptr4 = ((($vararg_buffer1)) + 8|0);
+  HEAP32[$vararg_ptr4>>2] = 693;
+  $vararg_ptr5 = ((($vararg_buffer1)) + 12|0);
+  HEAP32[$vararg_ptr5>>2] = $12;
+  _GNUNET_log_from_nocheck(1,41568,42643,$vararg_buffer1);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $13 = HEAP32[$1>>2]|0;
+ $14 = (_gcry_pk_genkey($0,$13)|0);
+ $15 = ($14|0)==(0);
+ if (!($15)) {
+  $16 = HEAP32[9403]|0;
+  $17 = ($16|0)==(-1);
+  if ($17) {
+   $18 = (_GNUNET_get_log_call_status(1,41568,41470,42029,698)|0);
+   HEAP32[9403] = $18;
+  }
+  $19 = (_GNUNET_get_log_skip()|0);
+  $20 = ($19|0)>(0);
+  if ($20) {
+   _GNUNET_log_skip(-1,0);
+  } else {
+   $21 = HEAP32[9403]|0;
+   $22 = ($21|0)==(0);
+   if (!($22)) {
+    $23 = (_gcry_strerror($14)|0);
+    HEAP32[$vararg_buffer6>>2] = 41887;
+    $vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
+    HEAP32[$vararg_ptr9>>2] = 41470;
+    $vararg_ptr10 = ((($vararg_buffer6)) + 8|0);
+    HEAP32[$vararg_ptr10>>2] = 698;
+    $vararg_ptr11 = ((($vararg_buffer6)) + 12|0);
+    HEAP32[$vararg_ptr11>>2] = $23;
+    _GNUNET_log_from_nocheck(1,41568,42643,$vararg_buffer6);
+   }
+  }
+  $24 = HEAP32[$1>>2]|0;
+  _gcry_sexp_release($24);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $25 = HEAP32[$1>>2]|0;
+ _gcry_sexp_release($25);
+ $26 = HEAP32[$0>>2]|0;
+ $27 = (_key_from_sexp($2,$26,59743,57460)|0);
+ $28 = ($27|0)==(0);
+ if ($28) {
+  $38 = HEAP32[$0>>2]|0;
+  _gcry_sexp_release($38);
+  $39 = (_GNUNET_xmalloc_(32,41470,718)|0);
+  $40 = HEAP32[$2>>2]|0;
+  _GNUNET_CRYPTO_mpi_print_unsigned($39,32,$40);
+  _gcry_mpi_release($40);
+  $$0 = $39;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $29 = HEAP32[9404]|0;
+ $30 = ($29|0)==(-1);
+ if ($30) {
+  $31 = (_GNUNET_get_log_call_status(1,41568,41470,42029,713)|0);
+  HEAP32[9404] = $31;
+ }
+ $32 = (_GNUNET_get_log_skip()|0);
+ $33 = ($32|0)>(0);
+ if ($33) {
+  _GNUNET_log_skip(-1,0);
+ } else {
+  $34 = HEAP32[9404]|0;
+  $35 = ($34|0)==(0);
+  if (!($35)) {
+   $36 = (_gcry_strerror($27)|0);
+   HEAP32[$vararg_buffer12>>2] = 41902;
+   $vararg_ptr15 = ((($vararg_buffer12)) + 4|0);
+   HEAP32[$vararg_ptr15>>2] = 41470;
+   $vararg_ptr16 = ((($vararg_buffer12)) + 8|0);
+   HEAP32[$vararg_ptr16>>2] = 713;
+   $vararg_ptr17 = ((($vararg_buffer12)) + 12|0);
+   HEAP32[$vararg_ptr17>>2] = $36;
+   _GNUNET_log_from_nocheck(1,41568,42643,$vararg_buffer12);
+  }
+ }
+ $37 = HEAP32[$0>>2]|0;
+ _gcry_sexp_release($37);
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function _GNUNET_CRYPTO_eddsa_sign($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 
0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, 
$vararg_ptr2 = 0, $vararg_ptr6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $vararg_buffer3 = sp + 16|0;
+ $vararg_buffer = sp;
+ $3 = sp + 32|0;
+ $4 = sp + 24|0;
+ $5 = (_decode_private_eddsa_key($0)|0);
+ $6 = (_data_to_eddsa_value($1)|0);
+ $7 = (_gcry_pk_sign($3,$6,$5)|0);
+ $8 = ($7|0)==(0);
+ if (!($8)) {
+  $9 = HEAP32[9405]|0;
+  $10 = ($9|0)==(-1);
+  if ($10) {
+   $11 = (_GNUNET_get_log_call_status(2,41568,41470,42060,916)|0);
+   HEAP32[9405] = $11;
+  }
+  $12 = (_GNUNET_get_log_skip()|0);
+  $13 = ($12|0)>(0);
+  if ($13) {
+   _GNUNET_log_skip(-1,0);
+  } else {
+   $14 = HEAP32[9405]|0;
+   $15 = ($14|0)==(0);
+   if (!($15)) {
+    $16 = (_gcry_strerror($7)|0);
+    HEAP32[$vararg_buffer>>2] = 41470;
+    $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+    HEAP32[$vararg_ptr1>>2] = 916;
+    $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+    HEAP32[$vararg_ptr2>>2] = $16;
+    _GNUNET_log_from_nocheck(2,41568,42085,$vararg_buffer);
+   }
+  }
+  _gcry_sexp_release($6);
+  _gcry_sexp_release($5);
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ _gcry_sexp_release($5);
+ _gcry_sexp_release($6);
+ $17 = HEAP32[$3>>2]|0;
+ $18 = (_key_from_sexp($4,$17,59605,64702)|0);
+ $19 = ($18|0)==(0);
+ if ($19) {
+  $28 = HEAP32[$3>>2]|0;
+  _gcry_sexp_release($28);
+  $29 = HEAP32[$4>>2]|0;
+  _GNUNET_CRYPTO_mpi_print_unsigned($2,32,$29);
+  $30 = ((($2)) + 32|0);
+  $31 = ((($4)) + 4|0);
+  $32 = HEAP32[$31>>2]|0;
+  _GNUNET_CRYPTO_mpi_print_unsigned($30,32,$32);
+  _gcry_mpi_release($29);
+  _gcry_mpi_release($32);
+  $$0 = 1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $20 = HEAP32[9406]|0;
+ $21 = ($20|0)==(-1);
+ if ($21) {
+  $22 = (_GNUNET_get_log_call_status(1,0,41470,42060,928)|0);
+  HEAP32[9406] = $22;
+ }
+ $23 = (_GNUNET_get_log_skip()|0);
+ $24 = ($23|0)>(0);
+ if ($24) {
+  _GNUNET_log_skip(-1,0);
+ } else {
+  $25 = HEAP32[9406]|0;
+  $26 = ($25|0)==(0);
+  if (!($26)) {
+   HEAP32[$vararg_buffer3>>2] = 41470;
+   $vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
+   HEAP32[$vararg_ptr6>>2] = 928;
+   _GNUNET_log_nocheck(1,43837,$vararg_buffer3);
+  }
+ }
+ $27 = HEAP32[$3>>2]|0;
+ _gcry_sexp_release($27);
+ $$0 = -1;
+ STACKTOP = sp;return ($$0|0);
+}
+function _data_to_eddsa_value($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 
= 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 
0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0;
+ var $vararg_ptr6 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(112|0);
+ $vararg_buffer3 = sp + 16|0;
+ $vararg_buffer = sp;
+ $1 = sp + 40|0;
+ $2 = sp + 32|0;
+ $3 = 
HEAPU8[$0>>0]|(HEAPU8[$0+1>>0]<<8)|(HEAPU8[$0+2>>0]<<16)|(HEAPU8[$0+3>>0]<<24);
+ $4 = (_ntohl($3)|0);
+ _GNUNET_CRYPTO_hash($0,$4,$1);
+ HEAP32[$vararg_buffer>>2] = 59685;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = 64;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = $1;
+ $5 = (_gcry_sexp_build($2,0,42120,$vararg_buffer)|0);
+ $6 = ($5|0)==(0);
+ if ($6) {
+  $15 = HEAP32[$2>>2]|0;
+  $$0 = $15;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $7 = HEAP32[9407]|0;
+ $8 = ($7|0)==(-1);
+ if ($8) {
+  $9 = (_GNUNET_get_log_call_status(1,41568,41470,42164,800)|0);
+  HEAP32[9407] = $9;
+ }
+ $10 = (_GNUNET_get_log_skip()|0);
+ $11 = ($10|0)>(0);
+ if ($11) {
+  _GNUNET_log_skip(-1,0);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $12 = HEAP32[9407]|0;
+ $13 = ($12|0)==(0);
+ if ($13) {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $14 = (_gcry_strerror($5)|0);
+ HEAP32[$vararg_buffer3>>2] = 41609;
+ $vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
+ HEAP32[$vararg_ptr6>>2] = 41470;
+ $vararg_ptr7 = ((($vararg_buffer3)) + 8|0);
+ HEAP32[$vararg_ptr7>>2] = 800;
+ $vararg_ptr8 = ((($vararg_buffer3)) + 12|0);
+ HEAP32[$vararg_ptr8>>2] = $14;
+ _GNUNET_log_from_nocheck(1,41568,42643,$vararg_buffer3);
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function _GNUNET_CRYPTO_eddsa_verify($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, 
$37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$vararg_buffer = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer4 
= 0;
+ var $vararg_ptr1 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr18 = 
0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, 
$vararg_ptr9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(64|0);
+ $vararg_buffer14 = sp + 40|0;
+ $vararg_buffer10 = sp + 32|0;
+ $vararg_buffer4 = sp + 16|0;
+ $vararg_buffer = sp;
+ $4 = sp + 56|0;
+ $5 = sp + 52|0;
+ $6 = ((($1)) + 4|0);
+ $7 = 
HEAPU8[$6>>0]|(HEAPU8[$6+1>>0]<<8)|(HEAPU8[$6+2>>0]<<16)|(HEAPU8[$6+3>>0]<<24);
+ $8 = (_ntohl($7)|0);
+ $9 = ($8|0)==($0|0);
+ if (!($9)) {
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $10 = ((($2)) + 32|0);
+ HEAP32[$vararg_buffer>>2] = 32;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $2;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = 32;
+ $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+ HEAP32[$vararg_ptr3>>2] = $10;
+ $11 = (_gcry_sexp_build($4,0,42223,$vararg_buffer)|0);
+ $12 = ($11|0)==(0);
+ if (!($12)) {
+  $13 = HEAP32[9408]|0;
+  $14 = ($13|0)==(-1);
+  if ($14) {
+   $15 = (_GNUNET_get_log_call_status(1,41568,41470,42252,1036)|0);
+   HEAP32[9408] = $15;
+  }
+  $16 = (_GNUNET_get_log_skip()|0);
+  $17 = ($16|0)>(0);
+  if ($17) {
+   _GNUNET_log_skip(-1,0);
+   $$0 = -1;
+   STACKTOP = sp;return ($$0|0);
+  }
+  $18 = HEAP32[9408]|0;
+  $19 = ($18|0)==(0);
+  if ($19) {
+   $$0 = -1;
+   STACKTOP = sp;return ($$0|0);
+  }
+  $20 = (_gcry_strerror($11)|0);
+  HEAP32[$vararg_buffer4>>2] = 41609;
+  $vararg_ptr7 = ((($vararg_buffer4)) + 4|0);
+  HEAP32[$vararg_ptr7>>2] = 41470;
+  $vararg_ptr8 = ((($vararg_buffer4)) + 8|0);
+  HEAP32[$vararg_ptr8>>2] = 1036;
+  $vararg_ptr9 = ((($vararg_buffer4)) + 12|0);
+  HEAP32[$vararg_ptr9>>2] = $20;
+  _GNUNET_log_from_nocheck(1,41568,42643,$vararg_buffer4);
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $21 = (_data_to_eddsa_value($1)|0);
+ HEAP32[$vararg_buffer10>>2] = 32;
+ $vararg_ptr13 = ((($vararg_buffer10)) + 4|0);
+ HEAP32[$vararg_ptr13>>2] = $3;
+ $22 = (_gcry_sexp_build($5,0,42279,$vararg_buffer10)|0);
+ $23 = ($22|0)==(0);
+ if (!($23)) {
+  _gcry_sexp_release($21);
+  $24 = HEAP32[$4>>2]|0;
+  _gcry_sexp_release($24);
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $25 = HEAP32[$4>>2]|0;
+ $26 = HEAP32[$5>>2]|0;
+ $27 = (_gcry_pk_verify($25,$21,$26)|0);
+ $28 = HEAP32[$5>>2]|0;
+ _gcry_sexp_release($28);
+ _gcry_sexp_release($21);
+ $29 = HEAP32[$4>>2]|0;
+ _gcry_sexp_release($29);
+ $30 = ($27|0)==(0);
+ if ($30) {
+  $$0 = 1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $31 = HEAP32[9409]|0;
+ $32 = ($31|0)==(-1);
+ if ($32) {
+  $33 = (_GNUNET_get_log_call_status(8,41568,41470,42252,1056)|0);
+  HEAP32[9409] = $33;
+ }
+ $34 = (_GNUNET_get_log_skip()|0);
+ $35 = ($34|0)>(0);
+ if ($35) {
+  _GNUNET_log_skip(-1,0);
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $36 = HEAP32[9409]|0;
+ $37 = ($36|0)==(0);
+ if ($37) {
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $38 = (_gcry_strerror($27)|0);
+ HEAP32[$vararg_buffer14>>2] = 41470;
+ $vararg_ptr17 = ((($vararg_buffer14)) + 4|0);
+ HEAP32[$vararg_ptr17>>2] = 1056;
+ $vararg_ptr18 = ((($vararg_buffer14)) + 8|0);
+ HEAP32[$vararg_ptr18>>2] = $38;
+ _GNUNET_log_from_nocheck(8,41568,42331,$vararg_buffer14);
+ $$0 = -1;
+ STACKTOP = sp;return ($$0|0);
+}
+function _GNUNET_CRYPTO_ecc_ecdh($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $45 = 0, $46 = 0;
+ var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $7 = 0, $8 = 0, 
$9 = 0, $vararg_buffer = 0, $vararg_buffer12 = 0;
+ var $vararg_buffer16 = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, 
$vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, 
$vararg_ptr19 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(96|0);
+ $vararg_buffer16 = sp + 72|0;
+ $vararg_buffer12 = sp + 64|0;
+ $vararg_buffer6 = sp + 48|0;
+ $vararg_buffer2 = sp + 40|0;
+ $vararg_buffer = sp + 32|0;
+ $3 = sp + 92|0;
+ $4 = sp + 88|0;
+ $5 = sp + 84|0;
+ $6 = sp;
+ $7 = sp + 80|0;
+ HEAP32[$vararg_buffer>>2] = 32;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $1;
+ $8 = (_gcry_sexp_build($5,0,42184,$vararg_buffer)|0);
+ $9 = ($8|0)==(0);
+ if (!($9)) {
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $10 = HEAP32[$5>>2]|0;
+ $11 = (_gcry_mpi_ec_new($4,$10,0)|0);
+ $12 = ($11|0)==(0);
+ if (!($12)) {
+  $13 = HEAP32[9410]|0;
+  $14 = ($13|0)==(-1);
+  if ($14) {
+   $15 = (_GNUNET_get_log_call_status(1,0,41470,42381,1094)|0);
+   HEAP32[9410] = $15;
+  }
+  $16 = (_GNUNET_get_log_skip()|0);
+  $17 = ($16|0)>(0);
+  if ($17) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $18 = HEAP32[9410]|0;
+  $19 = ($18|0)==(0);
+  if ($19) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer2>>2] = 41470;
+  $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+  HEAP32[$vararg_ptr5>>2] = 1094;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer2);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $20 = HEAP32[$5>>2]|0;
+ _gcry_sexp_release($20);
+ $21 = HEAP32[$4>>2]|0;
+ $22 = (_gcry_mpi_ec_get_point(64743,$21,0)|0);
+ _GNUNET_CRYPTO_mpi_scan_unsigned($3,$0,32);
+ $23 = (_gcry_mpi_point_new(0)|0);
+ $24 = HEAP32[$3>>2]|0;
+ $25 = HEAP32[$4>>2]|0;
+ _gcry_mpi_ec_mul($23,$24,$22,$25);
+ _gcry_mpi_point_release($22);
+ $26 = HEAP32[$3>>2]|0;
+ _gcry_mpi_release($26);
+ $27 = (_gcry_mpi_new(256)|0);
+ $28 = HEAP32[$4>>2]|0;
+ $29 = (_gcry_mpi_ec_get_affine($27,0,$23,$28)|0);
+ $30 = ($29|0)==(0);
+ if (!($30)) {
+  $31 = HEAP32[9411]|0;
+  $32 = ($31|0)==(-1);
+  if ($32) {
+   $33 = (_GNUNET_get_log_call_status(1,41568,41470,42381,1111)|0);
+   HEAP32[9411] = $33;
+  }
+  $34 = (_GNUNET_get_log_skip()|0);
+  $35 = ($34|0)>(0);
+  if ($35) {
+   _GNUNET_log_skip(-1,0);
+  } else {
+   $36 = HEAP32[9411]|0;
+   $37 = ($36|0)==(0);
+   if (!($37)) {
+    $38 = (_gcry_strerror(0)|0);
+    HEAP32[$vararg_buffer6>>2] = 42404;
+    $vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
+    HEAP32[$vararg_ptr9>>2] = 41470;
+    $vararg_ptr10 = ((($vararg_buffer6)) + 8|0);
+    HEAP32[$vararg_ptr10>>2] = 1111;
+    $vararg_ptr11 = ((($vararg_buffer6)) + 12|0);
+    HEAP32[$vararg_ptr11>>2] = $38;
+    _GNUNET_log_from_nocheck(1,41568,42643,$vararg_buffer6);
+   }
+  }
+  _gcry_mpi_point_release($23);
+  $39 = HEAP32[$4>>2]|0;
+  _gcry_ctx_release($39);
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ _gcry_mpi_point_release($23);
+ $40 = HEAP32[$4>>2]|0;
+ _gcry_ctx_release($40);
+ HEAP32[$7>>2] = 32;
+ $41 = (_gcry_mpi_get_flag($27,2)|0);
+ $42 = ($41|0)==(0);
+ if (!($42)) {
+  $43 = HEAP32[9412]|0;
+  $44 = ($43|0)==(-1);
+  if ($44) {
+   $45 = (_GNUNET_get_log_call_status(1,0,41470,42381,1120)|0);
+   HEAP32[9412] = $45;
+  }
+  $46 = (_GNUNET_get_log_skip()|0);
+  $47 = ($46|0)>(0);
+  if ($47) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $48 = HEAP32[9412]|0;
+  $49 = ($48|0)==(0);
+  if ($49) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer12>>2] = 41470;
+  $vararg_ptr15 = ((($vararg_buffer12)) + 4|0);
+  HEAP32[$vararg_ptr15>>2] = 1120;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer12);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $50 = (_gcry_mpi_print(1,$6,32,$7,$27)|0);
+ $51 = ($50|0)==(0);
+ if ($51) {
+  $59 = HEAP32[$7>>2]|0;
+  _GNUNET_CRYPTO_hash($6,$59,$2);
+  _gcry_mpi_release($27);
+  $$0 = 1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $52 = HEAP32[9413]|0;
+ $53 = ($52|0)==(-1);
+ if ($53) {
+  $54 = (_GNUNET_get_log_call_status(1,0,41470,42381,1127)|0);
+  HEAP32[9413] = $54;
+ }
+ $55 = (_GNUNET_get_log_skip()|0);
+ $56 = ($55|0)>(0);
+ if ($56) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $57 = HEAP32[9413]|0;
+ $58 = ($57|0)==(0);
+ if ($58) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer16>>2] = 41470;
+ $vararg_ptr19 = ((($vararg_buffer16)) + 4|0);
+ HEAP32[$vararg_ptr19>>2] = 1127;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer16);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _point_to_hash($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 
= 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, 
$vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr2 = 0, 
$vararg_ptr3 = 0;
+ var $vararg_ptr7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(80|0);
+ $vararg_buffer8 = sp + 56|0;
+ $vararg_buffer4 = sp + 48|0;
+ $vararg_buffer = sp + 32|0;
+ $3 = sp;
+ $4 = sp + 64|0;
+ $5 = (_gcry_mpi_new(256)|0);
+ $6 = (_gcry_mpi_ec_get_affine($5,0,$0,$1)|0);
+ $7 = ($6|0)==(0);
+ if (!($7)) {
+  $8 = HEAP32[9414]|0;
+  $9 = ($8|0)==(-1);
+  if ($9) {
+   $10 = (_GNUNET_get_log_call_status(1,41568,41470,42422,1372)|0);
+   HEAP32[9414] = $10;
+  }
+  $11 = (_GNUNET_get_log_skip()|0);
+  $12 = ($11|0)>(0);
+  if ($12) {
+   _GNUNET_log_skip(-1,0);
+   $$0 = -1;
+   STACKTOP = sp;return ($$0|0);
+  }
+  $13 = HEAP32[9414]|0;
+  $14 = ($13|0)==(0);
+  if ($14) {
+   $$0 = -1;
+   STACKTOP = sp;return ($$0|0);
+  }
+  $15 = (_gcry_strerror(0)|0);
+  HEAP32[$vararg_buffer>>2] = 42404;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 41470;
+  $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+  HEAP32[$vararg_ptr2>>2] = 1372;
+  $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+  HEAP32[$vararg_ptr3>>2] = $15;
+  _GNUNET_log_from_nocheck(1,41568,42643,$vararg_buffer);
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ HEAP32[$4>>2] = 32;
+ $16 = (_gcry_mpi_get_flag($5,2)|0);
+ $17 = ($16|0)==(0);
+ if (!($17)) {
+  $18 = HEAP32[9415]|0;
+  $19 = ($18|0)==(-1);
+  if ($19) {
+   $20 = (_GNUNET_get_log_call_status(1,0,41470,42422,1377)|0);
+   HEAP32[9415] = $20;
+  }
+  $21 = (_GNUNET_get_log_skip()|0);
+  $22 = ($21|0)>(0);
+  if ($22) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $23 = HEAP32[9415]|0;
+  $24 = ($23|0)==(0);
+  if ($24) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer4>>2] = 41470;
+  $vararg_ptr7 = ((($vararg_buffer4)) + 4|0);
+  HEAP32[$vararg_ptr7>>2] = 1377;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer4);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $25 = (_gcry_mpi_print(1,$3,32,$4,$5)|0);
+ $26 = ($25|0)==(0);
+ if ($26) {
+  $34 = HEAP32[$4>>2]|0;
+  _GNUNET_CRYPTO_hash($3,$34,$2);
+  _gcry_mpi_release($5);
+  $$0 = 1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $27 = HEAP32[9416]|0;
+ $28 = ($27|0)==(-1);
+ if ($28) {
+  $29 = (_GNUNET_get_log_call_status(1,0,41470,42422,1384)|0);
+  HEAP32[9416] = $29;
+ }
+ $30 = (_GNUNET_get_log_skip()|0);
+ $31 = ($30|0)>(0);
+ if ($31) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $32 = HEAP32[9416]|0;
+ $33 = ($32|0)==(0);
+ if ($33) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer8>>2] = 41470;
+ $vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
+ HEAP32[$vararg_ptr11>>2] = 1384;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer8);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _GNUNET_CRYPTO_ecdh_eddsa($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $3 = 0;
+ var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, 
$vararg_buffer2 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $3 = sp + 24|0;
+ $4 = sp + 20|0;
+ $5 = sp + 16|0;
+ HEAP32[$vararg_buffer>>2] = 32;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $1;
+ $6 = (_gcry_sexp_build($5,0,42184,$vararg_buffer)|0);
+ $7 = ($6|0)==(0);
+ if (!($7)) {
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $8 = HEAP32[$5>>2]|0;
+ $9 = (_gcry_mpi_ec_new($4,$8,0)|0);
+ $10 = ($9|0)==(0);
+ if ($10) {
+  $18 = HEAP32[$5>>2]|0;
+  _gcry_sexp_release($18);
+  $19 = HEAP32[$4>>2]|0;
+  $20 = (_gcry_mpi_ec_get_point(64743,$19,0)|0);
+  _GNUNET_CRYPTO_mpi_scan_unsigned($3,$0,32);
+  $21 = (_gcry_mpi_point_new(0)|0);
+  $22 = HEAP32[$3>>2]|0;
+  $23 = HEAP32[$4>>2]|0;
+  _gcry_mpi_ec_mul($21,$22,$20,$23);
+  _gcry_mpi_point_release($20);
+  $24 = HEAP32[$3>>2]|0;
+  _gcry_mpi_release($24);
+  $25 = HEAP32[$4>>2]|0;
+  $26 = (_point_to_hash($21,$25,$2)|0);
+  _gcry_mpi_point_release($21);
+  $27 = HEAP32[$4>>2]|0;
+  _gcry_ctx_release($27);
+  $$0 = $26;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $11 = HEAP32[9417]|0;
+ $12 = ($11|0)==(-1);
+ if ($12) {
+  $13 = (_GNUNET_get_log_call_status(1,0,41470,42436,1533)|0);
+  HEAP32[9417] = $13;
+ }
+ $14 = (_GNUNET_get_log_skip()|0);
+ $15 = ($14|0)>(0);
+ if ($15) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $16 = HEAP32[9417]|0;
+ $17 = ($16|0)==(0);
+ if ($17) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer2>>2] = 41470;
+ $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+ HEAP32[$vararg_ptr5>>2] = 1533;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer2);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _GNUNET_CRYPTO_hash($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ _gcry_md_hash_buffer(10,$2,$0,$1);
+ return;
+}
+function _GNUNET_CRYPTO_hash_create_random($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, 
$26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 
0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (_GNUNET_CRYPTO_random_u32($0,-1)|0);
+ $3 = ((($1)) + 60|0);
+ HEAP32[$3>>2] = $2;
+ $4 = (_GNUNET_CRYPTO_random_u32($0,-1)|0);
+ $5 = ((($1)) + 56|0);
+ HEAP32[$5>>2] = $4;
+ $6 = (_GNUNET_CRYPTO_random_u32($0,-1)|0);
+ $7 = ((($1)) + 52|0);
+ HEAP32[$7>>2] = $6;
+ $8 = (_GNUNET_CRYPTO_random_u32($0,-1)|0);
+ $9 = ((($1)) + 48|0);
+ HEAP32[$9>>2] = $8;
+ $10 = (_GNUNET_CRYPTO_random_u32($0,-1)|0);
+ $11 = ((($1)) + 44|0);
+ HEAP32[$11>>2] = $10;
+ $12 = (_GNUNET_CRYPTO_random_u32($0,-1)|0);
+ $13 = ((($1)) + 40|0);
+ HEAP32[$13>>2] = $12;
+ $14 = (_GNUNET_CRYPTO_random_u32($0,-1)|0);
+ $15 = ((($1)) + 36|0);
+ HEAP32[$15>>2] = $14;
+ $16 = (_GNUNET_CRYPTO_random_u32($0,-1)|0);
+ $17 = ((($1)) + 32|0);
+ HEAP32[$17>>2] = $16;
+ $18 = (_GNUNET_CRYPTO_random_u32($0,-1)|0);
+ $19 = ((($1)) + 28|0);
+ HEAP32[$19>>2] = $18;
+ $20 = (_GNUNET_CRYPTO_random_u32($0,-1)|0);
+ $21 = ((($1)) + 24|0);
+ HEAP32[$21>>2] = $20;
+ $22 = (_GNUNET_CRYPTO_random_u32($0,-1)|0);
+ $23 = ((($1)) + 20|0);
+ HEAP32[$23>>2] = $22;
+ $24 = (_GNUNET_CRYPTO_random_u32($0,-1)|0);
+ $25 = ((($1)) + 16|0);
+ HEAP32[$25>>2] = $24;
+ $26 = (_GNUNET_CRYPTO_random_u32($0,-1)|0);
+ $27 = ((($1)) + 12|0);
+ HEAP32[$27>>2] = $26;
+ $28 = (_GNUNET_CRYPTO_random_u32($0,-1)|0);
+ $29 = ((($1)) + 8|0);
+ HEAP32[$29>>2] = $28;
+ $30 = (_GNUNET_CRYPTO_random_u32($0,-1)|0);
+ $31 = ((($1)) + 4|0);
+ HEAP32[$31>>2] = $30;
+ $32 = (_GNUNET_CRYPTO_random_u32($0,-1)|0);
+ HEAP32[$1>>2] = $32;
+ return;
+}
+function _GNUNET_CRYPTO_hash_context_start() {
+ var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, 
$9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $0 = (_GNUNET_xmalloc_(4,42461,450)|0);
+ $1 = (_gcry_md_open($0,10,0)|0);
+ $2 = ($1|0)==(0);
+ if ($2) {
+  STACKTOP = sp;return ($0|0);
+ }
+ $3 = HEAP32[9418]|0;
+ $4 = ($3|0)==(-1);
+ if ($4) {
+  $5 = (_GNUNET_get_log_call_status(1,0,42461,42475,454)|0);
+  HEAP32[9418] = $5;
+ }
+ $6 = (_GNUNET_get_log_skip()|0);
+ $7 = ($6|0)>(0);
+ if ($7) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $8 = HEAP32[9418]|0;
+ $9 = ($8|0)==(0);
+ if ($9) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer>>2] = 42461;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = 454;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _GNUNET_CRYPTO_hash_context_read($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = HEAP32[$0>>2]|0;
+ _gcry_md_write($3,$1,$2);
+ return;
+}
+function _GNUNET_CRYPTO_hash_context_finish($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 
0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, dest = 0, 
label = 0, sp = 0, src = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $2 = HEAP32[$0>>2]|0;
+ $3 = (_gcry_md_read($2,0)|0);
+ $4 = ($3|0)==(0|0);
+ if (!($4)) {
+  $12 = ($1|0)==(0|0);
+  if ($12) {
+   $13 = HEAP32[$0>>2]|0;
+   _gcry_md_close($13);
+   _GNUNET_xfree_($0,42461,513);
+   STACKTOP = sp;return;
+  }
+  dest=$1; src=$3; 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));
+  $13 = HEAP32[$0>>2]|0;
+  _gcry_md_close($13);
+  _GNUNET_xfree_($0,42461,513);
+  STACKTOP = sp;return;
+ }
+ $5 = HEAP32[9419]|0;
+ $6 = ($5|0)==(-1);
+ if ($6) {
+  $7 = (_GNUNET_get_log_call_status(1,0,42461,42508,494)|0);
+  HEAP32[9419] = $7;
+ }
+ $8 = (_GNUNET_get_log_skip()|0);
+ $9 = ($8|0)>(0);
+ if ($9) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $10 = HEAP32[9419]|0;
+ $11 = ($10|0)==(0);
+ if ($11) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer>>2] = 42461;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = 494;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+ _GNUNET_abort_();
+ // unreachable;
+}
+function _GNUNET_CRYPTO_hash_context_abort($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[$0>>2]|0;
+ _gcry_md_close($1);
+ _GNUNET_xfree_($0,42461,513);
+ return;
+}
+function _GNUNET_CRYPTO_hkdf_v($0,$1,$2,$3,$4,$5,$6,$7,$8) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ $7 = $7|0;
+ $8 = $8|0;
+ var $$0 = 0, $$0113 = 0, $$0115127 = 0, $$0116$lcssa = 0, $$0116124$us = 0, 
$$0120$lcssa = 0, $$0120131 = 0, $$1$lcssa = 0, $$1117 = 0, $$1119 = 0, 
$$1125$us = 0, $$alloca_mul = 0, $$alloca_mul63 = 0, $10 = 0, $100 = 0, $101 = 
0, $102 = 0, $103 = 0, $104 = 0, $105 = 0;
+ var $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, $12 = 0, $13 = 0, $14 = 
0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
+ var $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;
+ var $39 = 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, $53 = 0, $54 = 0, $55 = 
0, $56 = 0, $57 = 0, $58 = 0;
+ var $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;
+ var $79 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, 
$87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, 
$95 = 0, $96 = 0, $97 = 0;
+ var $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current11 = 0, 
$arglist_current14 = 0, $arglist_current17 = 0, $arglist_current2 = 0, 
$arglist_current5 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next15 
= 0, $arglist_next18 = 0, $arglist_next3 = 0, $arglist_next6 = 0, $expanded = 
0, $expanded19 = 0, $expanded21 = 0, $expanded22 = 0, $expanded23 = 0, 
$expanded25 = 0;
+ var $expanded26 = 0, $expanded28 = 0, $expanded29 = 0, $expanded30 = 0, 
$expanded32 = 0, $expanded33 = 0, $expanded35 = 0, $expanded36 = 0, $expanded37 
= 0, $expanded39 = 0, $expanded40 = 0, $expanded42 = 0, $expanded43 = 0, 
$expanded44 = 0, $expanded46 = 0, $expanded47 = 0, $expanded49 = 0, $expanded50 
= 0, $expanded51 = 0, $expanded53 = 0;
+ var $expanded54 = 0, $expanded56 = 0, $expanded57 = 0, $expanded58 = 0, 
$vacopy_currentptr = 0, $vacopy_currentptr9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $9 = sp + 20|0;
+ $10 = sp + 16|0;
+ $11 = sp;
+ $12 = (_gcry_md_get_algo_dlen($3)|0);
+ $13 = (_gcry_md_get_algo_dlen($2)|0);
+ $14 = (_llvm_stacksave()|0);
+ $$alloca_mul = $13;
+ $15 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if 
((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(((((1*$$alloca_mul)|0)+15)&-16)|0);;
+ $16 = ($12|0)==(0);
+ if ($16) {
+  $$0 = -1;
+  _llvm_stackrestore(($14|0));
+  STACKTOP = sp;return ($$0|0);
+ }
+ $17 = (_gcry_md_open($9,$2,2)|0);
+ $18 = ($17|0)==(0);
+ if (!($18)) {
+  $$0 = -1;
+  _llvm_stackrestore(($14|0));
+  STACKTOP = sp;return ($$0|0);
+ }
+ $19 = (_gcry_md_open($10,$3,2)|0);
+ $20 = ($19|0)==(0);
+ if (!($20)) {
+  $21 = HEAP32[$9>>2]|0;
+  _gcry_md_close($21);
+  $$0 = -1;
+  _llvm_stackrestore(($14|0));
+  STACKTOP = sp;return ($$0|0);
+ }
+ $vacopy_currentptr = HEAP32[$8>>2]|0;
+ HEAP32[$11>>2] = $vacopy_currentptr;
+ $arglist_current = HEAP32[$11>>2]|0;
+ $22 = $arglist_current;
+ $23 = ((0) + 4|0);
+ $expanded19 = $23;
+ $expanded = (($expanded19) - 1)|0;
+ $24 = (($22) + ($expanded))|0;
+ $25 = ((0) + 4|0);
+ $expanded23 = $25;
+ $expanded22 = (($expanded23) - 1)|0;
+ $expanded21 = $expanded22 ^ -1;
+ $26 = $24 & $expanded21;
+ $27 = $26;
+ $28 = HEAP32[$27>>2]|0;
+ $arglist_next = ((($27)) + 4|0);
+ HEAP32[$11>>2] = $arglist_next;
+ $29 = ($28|0)==(0|0);
+ if ($29) {
+  $$0120$lcssa = 0;
+ } else {
+  $$0120131 = 0;
+  while(1) {
+   $arglist_current2 = HEAP32[$11>>2]|0;
+   $30 = $arglist_current2;
+   $31 = ((0) + 4|0);
+   $expanded26 = $31;
+   $expanded25 = (($expanded26) - 1)|0;
+   $32 = (($30) + ($expanded25))|0;
+   $33 = ((0) + 4|0);
+   $expanded30 = $33;
+   $expanded29 = (($expanded30) - 1)|0;
+   $expanded28 = $expanded29 ^ -1;
+   $34 = $32 & $expanded28;
+   $35 = $34;
+   $36 = HEAP32[$35>>2]|0;
+   $arglist_next3 = ((($35)) + 4|0);
+   HEAP32[$11>>2] = $arglist_next3;
+   $37 = (($36) + ($$0120131))|0;
+   $arglist_current5 = HEAP32[$11>>2]|0;
+   $38 = $arglist_current5;
+   $39 = ((0) + 4|0);
+   $expanded33 = $39;
+   $expanded32 = (($expanded33) - 1)|0;
+   $40 = (($38) + ($expanded32))|0;
+   $41 = ((0) + 4|0);
+   $expanded37 = $41;
+   $expanded36 = (($expanded37) - 1)|0;
+   $expanded35 = $expanded36 ^ -1;
+   $42 = $40 & $expanded35;
+   $43 = $42;
+   $44 = HEAP32[$43>>2]|0;
+   $arglist_next6 = ((($43)) + 4|0);
+   HEAP32[$11>>2] = $arglist_next6;
+   $45 = ($44|0)==(0|0);
+   if ($45) {
+    $$0120$lcssa = $37;
+    break;
+   } else {
+    $$0120131 = $37;
+   }
+  }
+ }
+ _memset(($0|0),0,($1|0))|0;
+ $46 = HEAP32[$9>>2]|0;
+ (_gcry_md_setkey($46,$4,$5)|0);
+ _gcry_md_write($46,$6,$7);
+ $47 = (_gcry_md_read($46,0)|0);
+ $48 = ($47|0)==(0|0);
+ L16: do {
+  if ($48) {
+   $$1119 = -1;
+  } else {
+   $49 = (_gcry_md_get_algo($46)|0);
+   $50 = (_gcry_md_get_algo_dlen($49)|0);
+   $51 = ($50|0)==(0);
+   if (!($51)) {
+    $52 = (_gcry_md_get_algo($46)|0);
+    $53 = (_gcry_md_get_algo_dlen($52)|0);
+    _memcpy(($15|0),($47|0),($53|0))|0;
+   }
+   $54 = (($1>>>0) / ($12>>>0))&-1;
+   $55 = Math_imul($54, $12)|0;
+   $56 = (($1) - ($55))|0;
+   $57 = (($$0120$lcssa) + 1)|0;
+   $58 = (($57) + ($12))|0;
+   $59 = (_llvm_stacksave()|0);
+   $$alloca_mul63 = $58;
+   $60 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul63)|0)+15)&-16)|0; 
if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(((((1*$$alloca_mul63)|0)+15)&-16)|0);;
+   $61 = (($60) + ($12)|0);
+   $vacopy_currentptr9 = HEAP32[$8>>2]|0;
+   HEAP32[$11>>2] = $vacopy_currentptr9;
+   $arglist_current11 = HEAP32[$11>>2]|0;
+   $62 = $arglist_current11;
+   $63 = ((0) + 4|0);
+   $expanded40 = $63;
+   $expanded39 = (($expanded40) - 1)|0;
+   $64 = (($62) + ($expanded39))|0;
+   $65 = ((0) + 4|0);
+   $expanded44 = $65;
+   $expanded43 = (($expanded44) - 1)|0;
+   $expanded42 = $expanded43 ^ -1;
+   $66 = $64 & $expanded42;
+   $67 = $66;
+   $68 = HEAP32[$67>>2]|0;
+   $arglist_next12 = ((($67)) + 4|0);
+   HEAP32[$11>>2] = $arglist_next12;
+   $69 = ($68|0)==(0|0);
+   if (!($69)) {
+    $$0115127 = $61;$78 = $68;
+    while(1) {
+     $arglist_current14 = HEAP32[$11>>2]|0;
+     $70 = $arglist_current14;
+     $71 = ((0) + 4|0);
+     $expanded47 = $71;
+     $expanded46 = (($expanded47) - 1)|0;
+     $72 = (($70) + ($expanded46))|0;
+     $73 = ((0) + 4|0);
+     $expanded51 = $73;
+     $expanded50 = (($expanded51) - 1)|0;
+     $expanded49 = $expanded50 ^ -1;
+     $74 = $72 & $expanded49;
+     $75 = $74;
+     $76 = HEAP32[$75>>2]|0;
+     $arglist_next15 = ((($75)) + 4|0);
+     HEAP32[$11>>2] = $arglist_next15;
+     $77 = ($76|0)==(0);
+     if (!($77)) {
+      _memcpy(($$0115127|0),($78|0),($76|0))|0;
+     }
+     $79 = (($$0115127) + ($76)|0);
+     $arglist_current17 = HEAP32[$11>>2]|0;
+     $80 = $arglist_current17;
+     $81 = ((0) + 4|0);
+     $expanded54 = $81;
+     $expanded53 = (($expanded54) - 1)|0;
+     $82 = (($80) + ($expanded53))|0;
+     $83 = ((0) + 4|0);
+     $expanded58 = $83;
+     $expanded57 = (($expanded58) - 1)|0;
+     $expanded56 = $expanded57 ^ -1;
+     $84 = $82 & $expanded56;
+     $85 = $84;
+     $86 = HEAP32[$85>>2]|0;
+     $arglist_next18 = ((($85)) + 4|0);
+     HEAP32[$11>>2] = $arglist_next18;
+     $87 = ($86|0)==(0|0);
+     if ($87) {
+      break;
+     } else {
+      $$0115127 = $79;$78 = $86;
+     }
+    }
+   }
+   $88 = ($12>>>0)<=($1>>>0);
+   if ($88) {
+    $89 = (($61) + ($$0120$lcssa)|0);
+    HEAP8[$89>>0] = 1;
+    $90 = HEAP32[$10>>2]|0;
+    (_gcry_md_setkey($90,$15,$13)|0);
+    _gcry_md_write($90,$61,$57);
+    $91 = (_gcry_md_read($90,0)|0);
+    $92 = ($91|0)==(0|0);
+    if (!($92)) {
+     _memcpy(($0|0),($91|0),($12|0))|0;
+     $93 = (($0) + ($12)|0);
+     $$0113 = $93;
+     label = 19;
+    }
+   } else {
+    $$0113 = $0;
+    label = 19;
+   }
+   L32: do {
+    if ((label|0) == 19) {
+     $94 = ($54>>>0)>(1);
+     if ($94) {
+      $95 = (0 - ($12))|0;
+      $96 = (($61) + ($$0120$lcssa)|0);
+      $$0116124$us = 1;$$1125$us = $$0113;
+      while(1) {
+       $97 = (($$1125$us) + ($95)|0);
+       _memcpy(($60|0),($97|0),($12|0))|0;
+       $98 = (($$0116124$us) + 1)|0;
+       $99 = $98&255;
+       _memset(($96|0),($99|0),1)|0;
+       $100 = HEAP32[$10>>2]|0;
+       _gcry_md_reset($100);
+       $101 = HEAP32[$10>>2]|0;
+       (_gcry_md_setkey($101,$15,$13)|0);
+       _gcry_md_write($101,$60,$58);
+       $102 = (_gcry_md_read($101,0)|0);
+       $103 = ($102|0)==(0|0);
+       if ($103) {
+        break L32;
+       }
+       _memcpy(($$1125$us|0),($102|0),($12|0))|0;
+       $104 = (($$1125$us) + ($12)|0);
+       $105 = ($98>>>0)<($54>>>0);
+       if ($105) {
+        $$0116124$us = $98;$$1125$us = $104;
+       } else {
+        $$0116$lcssa = $98;$$1$lcssa = $104;
+        break;
+       }
+      }
+     } else {
+      $$0116$lcssa = 1;$$1$lcssa = $$0113;
+     }
+     $106 = ($56|0)==(0);
+     if (!($106)) {
+      if ($88) {
+       $107 = (0 - ($12))|0;
+       $108 = (($$1$lcssa) + ($107)|0);
+       _memcpy(($60|0),($108|0),($12|0))|0;
+       $109 = (($$0116$lcssa) + 1)|0;
+       $$1117 = $109;
+      } else {
+       $$1117 = $$0116$lcssa;
+      }
+      $110 = (($61) + ($$0120$lcssa)|0);
+      $111 = $$1117&255;
+      _memset(($110|0),($111|0),1)|0;
+      $112 = HEAP32[$10>>2]|0;
+      _gcry_md_reset($112);
+      $113 = HEAP32[$10>>2]|0;
+      (_gcry_md_setkey($113,$15,$13)|0);
+      if ($88) {
+       _gcry_md_write($113,$60,$58);
+      } else {
+       _gcry_md_write($113,$61,$57);
+      }
+      $114 = (_gcry_md_read($113,0)|0);
+      $115 = ($114|0)==(0|0);
+      if ($115) {
+       break;
+      }
+      _memcpy(($$1$lcssa|0),($114|0),($56|0))|0;
+     }
+     _llvm_stackrestore(($59|0));
+     $$1119 = 1;
+     break L16;
+    }
+   } while(0);
+   _llvm_stackrestore(($59|0));
+   $$1119 = -1;
+  }
+ } while(0);
+ $116 = HEAP32[$9>>2]|0;
+ _gcry_md_close($116);
+ $117 = HEAP32[$10>>2]|0;
+ _gcry_md_close($117);
+ $$0 = $$1119;
+ _llvm_stackrestore(($14|0));
+ STACKTOP = sp;return ($$0|0);
+}
+function _GNUNET_CRYPTO_hkdf($0,$1,$2,$3,$4,$5,$6,$7,$varargs) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ $7 = $7|0;
+ $varargs = $varargs|0;
+ var $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $8 = sp;
+ HEAP32[$8>>2] = $varargs;
+ $9 = (_GNUNET_CRYPTO_hkdf_v($0,$1,$2,$3,$4,$5,$6,$7,$8)|0);
+ STACKTOP = sp;return ($9|0);
+}
+function _GNUNET_CRYPTO_kdf($0,$1,$2,$3,$4,$5,$varargs) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $varargs = $varargs|0;
+ var $6 = 0, $7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $6 = sp;
+ HEAP32[$6>>2] = $varargs;
+ $7 = (_GNUNET_CRYPTO_hkdf_v($0,$1,10,8,$2,$3,$4,$5,$6)|0);
+ STACKTOP = sp;return ($7|0);
+}
+function _GNUNET_CRYPTO_kdf_mod_mpi($0,$1,$2,$3,$4,$5,$6) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ var $$alloca_mul = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, 
$37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 
0, $46 = 0, $47 = 0, $48 = 0;
+ var $49 = 0, $50 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, 
$vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer6 = 0, $vararg_ptr1 = 
0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, 
$vararg_ptr4 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(64|0);
+ $vararg_buffer14 = sp + 40|0;
+ $vararg_buffer10 = sp + 32|0;
+ $vararg_buffer6 = sp + 24|0;
+ $vararg_buffer = sp;
+ $7 = sp + 52|0;
+ $8 = sp + 48|0;
+ $9 = (_gcry_mpi_get_nbits($1)|0);
+ HEAP32[$8>>2] = 0;
+ $10 = (($9) + -1)|0;
+ $11 = $10 >>> 3;
+ $12 = (($11) + 1)|0;
+ while(1) {
+  $13 = (_llvm_stacksave()|0);
+  $$alloca_mul = $12;
+  $14 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if 
((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(((((1*$$alloca_mul)|0)+15)&-16)|0);;
+  $15 = (_strlen($6)|0);
+  HEAP32[$vararg_buffer>>2] = $6;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = $15;
+  $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+  HEAP32[$vararg_ptr2>>2] = $8;
+  $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+  HEAP32[$vararg_ptr3>>2] = 4;
+  $vararg_ptr4 = ((($vararg_buffer)) + 16|0);
+  HEAP32[$vararg_ptr4>>2] = 0;
+  $vararg_ptr5 = ((($vararg_buffer)) + 20|0);
+  HEAP32[$vararg_ptr5>>2] = 0;
+  $16 = (_GNUNET_CRYPTO_kdf($14,$12,$2,$3,$4,$5,$vararg_buffer)|0);
+  $17 = ($16|0)==(1);
+  if (!($17)) {
+   label = 3;
+   break;
+  }
+  $25 = (_gcry_mpi_scan($0,5,$14,$12,$7)|0);
+  $26 = ($25|0)==(0);
+  if (!($26)) {
+   label = 11;
+   break;
+  }
+  $34 = HEAP32[$0>>2]|0;
+  _gcry_mpi_clear_highbit($34,$9);
+  $35 = HEAP32[$0>>2]|0;
+  $36 = (_gcry_mpi_test_bit($35,$9)|0);
+  $37 = ($36|0)==(0);
+  if (!($37)) {
+   label = 19;
+   break;
+  }
+  $45 = HEAP32[$8>>2]|0;
+  $46 = (($45) + 1)|0;
+  HEAP32[$8>>2] = $46;
+  $47 = HEAP32[$0>>2]|0;
+  $48 = (_gcry_mpi_cmp($47,$1)|0);
+  $49 = ($48|0)<(0);
+  if ($49) {
+   label = 28;
+   break;
+  }
+  $50 = HEAP32[$0>>2]|0;
+  _gcry_mpi_release($50);
+  _llvm_stackrestore(($13|0));
+ }
+ if ((label|0) == 3) {
+  $18 = HEAP32[9420]|0;
+  $19 = ($18|0)==(-1);
+  if ($19) {
+   $20 = (_GNUNET_get_log_call_status(1,0,42542,42555,153)|0);
+   HEAP32[9420] = $20;
+  }
+  $21 = (_GNUNET_get_log_skip()|0);
+  $22 = ($21|0)>(0);
+  if ($22) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $23 = HEAP32[9420]|0;
+  $24 = ($23|0)==(0);
+  if ($24) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer6>>2] = 42542;
+  $vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
+  HEAP32[$vararg_ptr9>>2] = 153;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer6);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ else if ((label|0) == 11) {
+  $27 = HEAP32[9421]|0;
+  $28 = ($27|0)==(-1);
+  if ($28) {
+   $29 = (_GNUNET_get_log_call_status(1,0,42542,42555,160)|0);
+   HEAP32[9421] = $29;
+  }
+  $30 = (_GNUNET_get_log_skip()|0);
+  $31 = ($30|0)>(0);
+  if ($31) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $32 = HEAP32[9421]|0;
+  $33 = ($32|0)==(0);
+  if ($33) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer10>>2] = 42542;
+  $vararg_ptr13 = ((($vararg_buffer10)) + 4|0);
+  HEAP32[$vararg_ptr13>>2] = 160;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer10);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ else if ((label|0) == 19) {
+  $38 = HEAP32[9422]|0;
+  $39 = ($38|0)==(-1);
+  if ($39) {
+   $40 = (_GNUNET_get_log_call_status(1,0,42542,42555,163)|0);
+   HEAP32[9422] = $40;
+  }
+  $41 = (_GNUNET_get_log_skip()|0);
+  $42 = ($41|0)>(0);
+  if ($42) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $43 = HEAP32[9422]|0;
+  $44 = ($43|0)==(0);
+  if ($44) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer14>>2] = 42542;
+  $vararg_ptr17 = ((($vararg_buffer14)) + 4|0);
+  HEAP32[$vararg_ptr17>>2] = 163;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer14);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ else if ((label|0) == 28) {
+  _llvm_stackrestore(($13|0));
+  STACKTOP = sp;return;
+ }
+}
+function _GNUNET_CRYPTO_mpi_print_unsigned($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 
0, $27 = 0, $28 = 0, $29 = 0;
+ var $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, 
$5 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, $spec$select = 0, $vararg_buffer = 0, $vararg_buffer2 = 
0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr5 = 0, 
$vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $vararg_buffer8 = sp + 24|0;
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $3 = sp + 36|0;
+ $4 = sp + 32|0;
+ $5 = (_gcry_mpi_get_flag($2,2)|0);
+ $6 = ($5|0)==(0);
+ if (!($6)) {
+  $7 = (_gcry_mpi_get_opaque($2,$4)|0);
+  $8 = ($7|0)==(0|0);
+  if (!($8)) {
+   $16 = HEAP32[$4>>2]|0;
+   $17 = (($16) + 7)|0;
+   $18 = $17 >>> 3;
+   $19 = ($18>>>0)>($1>>>0);
+   $spec$select = $19 ? $1 : $18;
+   HEAP32[$3>>2] = $spec$select;
+   $20 = ($spec$select|0)==(0);
+   if (!($20)) {
+    _memcpy(($0|0),($7|0),($spec$select|0))|0;
+   }
+   $21 = ($18>>>0)<($1>>>0);
+   if ($21) {
+    $22 = (($1) - ($spec$select))|0;
+    $23 = (($0) + ($spec$select)|0);
+    _memset(($23|0),0,($22|0))|0;
+   }
+   STACKTOP = sp;return;
+  }
+  $9 = HEAP32[9423]|0;
+  $10 = ($9|0)==(-1);
+  if ($10) {
+   $11 = (_GNUNET_get_log_call_status(1,0,42581,42594,87)|0);
+   HEAP32[9423] = $11;
+  }
+  $12 = (_GNUNET_get_log_skip()|0);
+  $13 = ($12|0)>(0);
+  if ($13) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $14 = HEAP32[9423]|0;
+  $15 = ($14|0)==(0);
+  if ($15) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer>>2] = 42581;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 87;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$3>>2] = $1;
+ $24 = (_gcry_mpi_print(5,$0,$1,$3,$2)|0);
+ $25 = ($24|0)==(0);
+ if ($25) {
+  $41 = HEAP32[$3>>2]|0;
+  $42 = ($41>>>0)<($1>>>0);
+  $43 = (($1) - ($41))|0;
+  if (!($42)) {
+   STACKTOP = sp;return;
+  }
+  $44 = (($0) + ($43)|0);
+  _memmove(($44|0),($0|0),($41|0))|0;
+  _memset(($0|0),0,($43|0))|0;
+  STACKTOP = sp;return;
+ }
+ $26 = HEAP32[9424]|0;
+ $27 = ($26|0)==(-1);
+ if ($27) {
+  $28 = (_GNUNET_get_log_call_status(1,42627,42581,42594,108)|0);
+  HEAP32[9424] = $28;
+ }
+ $29 = (_GNUNET_get_log_skip()|0);
+ $30 = ($29|0)>(0);
+ if ($30) {
+  _GNUNET_log_skip(-1,0);
+ } else {
+  $31 = HEAP32[9424]|0;
+  $32 = ($31|0)==(0);
+  if (!($32)) {
+   $33 = (_gcry_strerror($24)|0);
+   HEAP32[$vararg_buffer2>>2] = 42680;
+   $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+   HEAP32[$vararg_ptr5>>2] = 42581;
+   $vararg_ptr6 = ((($vararg_buffer2)) + 8|0);
+   HEAP32[$vararg_ptr6>>2] = 108;
+   $vararg_ptr7 = ((($vararg_buffer2)) + 12|0);
+   HEAP32[$vararg_ptr7>>2] = $33;
+   _GNUNET_log_from_nocheck(1,42627,42643,$vararg_buffer2);
+  }
+ }
+ $34 = HEAP32[9425]|0;
+ $35 = ($34|0)==(-1);
+ if ($35) {
+  $36 = (_GNUNET_get_log_call_status(1,0,42581,42594,109)|0);
+  HEAP32[9425] = $36;
+ }
+ $37 = (_GNUNET_get_log_skip()|0);
+ $38 = ($37|0)>(0);
+ if ($38) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $39 = HEAP32[9425]|0;
+ $40 = ($39|0)==(0);
+ if ($40) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer8>>2] = 42581;
+ $vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
+ HEAP32[$vararg_ptr11>>2] = 109;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer8);
+ _GNUNET_abort_();
+ // unreachable;
+}
+function _GNUNET_CRYPTO_mpi_scan_unsigned($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 
0, $vararg_buffer = 0, $vararg_buffer4 = 0;
+ var $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer4 = sp + 16|0;
+ $vararg_buffer = sp;
+ $3 = sp + 24|0;
+ HEAP32[$3>>2] = $2;
+ $4 = (_gcry_mpi_scan($0,5,$1,$2,$3)|0);
+ $5 = ($4|0)==(0);
+ if ($5) {
+  STACKTOP = sp;return;
+ }
+ $6 = HEAP32[9426]|0;
+ $7 = ($6|0)==(-1);
+ if ($7) {
+  $8 = (_GNUNET_get_log_call_status(1,42627,42581,42695,138)|0);
+  HEAP32[9426] = $8;
+ }
+ $9 = (_GNUNET_get_log_skip()|0);
+ $10 = ($9|0)>(0);
+ if ($10) {
+  _GNUNET_log_skip(-1,0);
+ } else {
+  $11 = HEAP32[9426]|0;
+  $12 = ($11|0)==(0);
+  if (!($12)) {
+   $13 = (_gcry_strerror($4)|0);
+   HEAP32[$vararg_buffer>>2] = 42727;
+   $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+   HEAP32[$vararg_ptr1>>2] = 42581;
+   $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+   HEAP32[$vararg_ptr2>>2] = 138;
+   $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+   HEAP32[$vararg_ptr3>>2] = $13;
+   _GNUNET_log_from_nocheck(1,42627,42643,$vararg_buffer);
+  }
+ }
+ $14 = HEAP32[9427]|0;
+ $15 = ($14|0)==(-1);
+ if ($15) {
+  $16 = (_GNUNET_get_log_call_status(1,0,42581,42695,139)|0);
+  HEAP32[9427] = $16;
+ }
+ $17 = (_GNUNET_get_log_skip()|0);
+ $18 = ($17|0)>(0);
+ if ($18) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $19 = HEAP32[9427]|0;
+ $20 = ($19|0)==(0);
+ if ($20) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer4>>2] = 42581;
+ $vararg_ptr7 = ((($vararg_buffer4)) + 4|0);
+ HEAP32[$vararg_ptr7>>2] = 139;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer4);
+ _GNUNET_abort_();
+ // unreachable;
+}
+function _GNUNET_CRYPTO_random_init() {
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 
= 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 
0, $5 = 0, $6 = 0;
+ var $7 = 0, $8 = 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, $vararg_ptr11 = 
0, $vararg_ptr18 = 0, $vararg_ptr4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(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;
+ $0 = sp + 60|0;
+ $1 = (_gcry_check_version(42741)|0);
+ $2 = ($1|0)==(0|0);
+ if (!($2)) {
+  _gcry_set_allocation_handler(54,54,55,56,57);
+  HEAP32[$vararg_buffer5>>2] = 0;
+  $11 = (_gcry_control(37,$vararg_buffer5)|0);
+  $12 = ($11|0)==(0);
+  if (!($12)) {
+   $13 = HEAP32[10138]|0;
+   $14 = (_gcry_strerror($11)|0);
+   HEAP32[$vararg_buffer8>>2] = 42894;
+   $vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
+   HEAP32[$vararg_ptr11>>2] = $14;
+   (_fprintf($13,42855,$vararg_buffer8)|0);
+  }
+  HEAP32[$vararg_buffer12>>2] = 0;
+  $15 = (_gcry_control(44,$vararg_buffer12)|0);
+  $16 = ($15|0)==(0);
+  if (!($16)) {
+   $17 = HEAP32[10138]|0;
+   $18 = (_gcry_strerror($15)|0);
+   HEAP32[$vararg_buffer15>>2] = 42909;
+   $vararg_ptr18 = ((($vararg_buffer15)) + 4|0);
+   HEAP32[$vararg_ptr18>>2] = $18;
+   (_fprintf($17,42855,$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);
+  $19 = (_time((0|0))|0);
+  while(1) {
+   _gcry_create_nonce($0,4);
+   $20 = HEAP32[$0>>2]|0;
+   $21 = ($20|0)==(-1);
+   if (!($21)) {
+    break;
+   }
+  }
+  $22 = $20 ^ $19;
+  _srandom($22);
+  STACKTOP = sp;return;
+ }
+ $3 = HEAP32[10138]|0;
+ HEAP32[$vararg_buffer>>2] = 42741;
+ (_fprintf($3,42747,$vararg_buffer)|0);
+ $4 = HEAP32[9428]|0;
+ $5 = ($4|0)==(-1);
+ if ($5) {
+  $6 = (_GNUNET_get_log_call_status(1,0,42813,42829,306)|0);
+  HEAP32[9428] = $6;
+ }
+ $7 = (_GNUNET_get_log_skip()|0);
+ $8 = ($7|0)>(0);
+ if ($8) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $9 = HEAP32[9428]|0;
+ $10 = ($9|0)==(0);
+ if ($10) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer1>>2] = 42813;
+ $vararg_ptr4 = ((($vararg_buffer1)) + 4|0);
+ HEAP32[$vararg_ptr4>>2] = 306;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer1);
+ _GNUNET_abort_();
+ // unreachable;
+}
+function _w_malloc($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_calloc($0,1)|0);
+ return ($1|0);
+}
+function _w_check($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return 0;
+}
+function _GNUNET_CRYPTO_random_fini() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ _gcry_set_progress_handler(0,0);
+ return;
+}
+function _GNUNET_CRYPTO_random_block($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, 
$vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_ptr7 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer4 = sp + 16|0;
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ switch ($0|0) {
+ case 1:  {
+  $3 = HEAP32[18078]|0;
+  $4 = (($3) + 1)|0;
+  HEAP32[18078] = $4;
+  $5 = $3 & 255;
+  $6 = ($5|0)==(0);
+  if ($6) {
+   HEAP32[$vararg_buffer>>2] = 0;
+   (_gcry_control(48,$vararg_buffer)|0);
+  }
+  _gcry_randomize($1,$2,1);
+  STACKTOP = sp;return;
+  break;
+ }
+ case 2:  {
+  _gcry_create_nonce($1,$2);
+  STACKTOP = sp;return;
+  break;
+ }
+ case 0:  {
+  $7 = HEAP32[18078]|0;
+  $8 = (($7) + 1)|0;
+  HEAP32[18078] = $8;
+  $9 = $7 & 255;
+  $10 = ($9|0)==(0);
+  if ($10) {
+   HEAP32[$vararg_buffer1>>2] = 0;
+   (_gcry_control(48,$vararg_buffer1)|0);
+  }
+  _gcry_randomize($1,$2,0);
+  STACKTOP = sp;return;
+  break;
+ }
+ default: {
+  $11 = HEAP32[9429]|0;
+  $12 = ($11|0)==(-1);
+  if ($12) {
+   $13 = (_GNUNET_get_log_call_status(1,0,42813,42929,133)|0);
+   HEAP32[9429] = $13;
+  }
+  $14 = (_GNUNET_get_log_skip()|0);
+  $15 = ($14|0)>(0);
+  if ($15) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $16 = HEAP32[9429]|0;
+  $17 = ($16|0)==(0);
+  if ($17) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer4>>2] = 42813;
+  $vararg_ptr7 = ((($vararg_buffer4)) + 4|0);
+  HEAP32[$vararg_ptr7>>2] = 133;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer4);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ }
+}
+function _GNUNET_CRYPTO_random_u32($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, 
$25 = 0.0, $26 = 0, $27 = 0.0;
+ var $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 
0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, 
$8 = 0, $9 = 0, $spec$select = 0;
+ var $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer5 = 0, 
$vararg_ptr1 = 0, $vararg_ptr8 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer5 = sp + 16|0;
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $2 = sp + 24|0;
+ $3 = ($1|0)==(0);
+ if ($3) {
+  $4 = HEAP32[9430]|0;
+  $5 = ($4|0)==(-1);
+  if ($5) {
+   $6 = (_GNUNET_get_log_call_status(1,0,42813,42956,155)|0);
+   HEAP32[9430] = $6;
+  }
+  $7 = (_GNUNET_get_log_skip()|0);
+  $8 = ($7|0)>(0);
+  if ($8) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $9 = HEAP32[9430]|0;
+  $10 = ($9|0)==(0);
+  if ($10) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer>>2] = 42813;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 155;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ switch ($0|0) {
+ case 1:  {
+  $11 = HEAP32[18079]|0;
+  $12 = (($11) + 1)|0;
+  HEAP32[18079] = $12;
+  $13 = $11 & 255;
+  $14 = ($13|0)==(0);
+  if ($14) {
+   HEAP32[$vararg_buffer2>>2] = 0;
+   (_gcry_control(48,$vararg_buffer2)|0);
+  }
+  $15 = (4294967295 % ($1>>>0))&-1;
+  $16 = $15 ^ -1;
+  while(1) {
+   _gcry_randomize($2,4,1);
+   $17 = HEAP32[$2>>2]|0;
+   $18 = ($17>>>0)<($16>>>0);
+   if ($18) {
+    break;
+   }
+  }
+  $19 = (($17>>>0) % ($1>>>0))&-1;
+  $$0 = $19;
+  STACKTOP = sp;return ($$0|0);
+  break;
+ }
+ case 2:  {
+  $20 = (4294967295 % ($1>>>0))&-1;
+  $21 = $20 ^ -1;
+  while(1) {
+   _gcry_create_nonce($2,4);
+   $22 = HEAP32[$2>>2]|0;
+   $23 = ($22>>>0)<($21>>>0);
+   if ($23) {
+    break;
+   }
+  }
+  $24 = (($22>>>0) % ($1>>>0))&-1;
+  $$0 = $24;
+  STACKTOP = sp;return ($$0|0);
+  break;
+ }
+ case 0:  {
+  $25 = (+($1>>>0));
+  $26 = (_random()|0);
+  $27 = (+($26|0));
+  $28 = $27 / 2147483647.0;
+  $29 = $28 * $25;
+  $30 = (~~(($29))>>>0);
+  $31 = ($30>>>0)<($1>>>0);
+  $32 = (($1) + -1)|0;
+  $spec$select = $31 ? $30 : $32;
+  HEAP32[$2>>2] = $spec$select;
+  $$0 = $spec$select;
+  STACKTOP = sp;return ($$0|0);
+  break;
+ }
+ default: {
+  $33 = HEAP32[9431]|0;
+  $34 = ($33|0)==(-1);
+  if ($34) {
+   $35 = (_GNUNET_get_log_call_status(1,0,42813,42956,187)|0);
+   HEAP32[9431] = $35;
+  }
+  $36 = (_GNUNET_get_log_skip()|0);
+  $37 = ($36|0)>(0);
+  if ($37) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $38 = HEAP32[9431]|0;
+  $39 = ($38|0)==(0);
+  if ($39) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer5>>2] = 42813;
+  $vararg_ptr8 = ((($vararg_buffer5)) + 4|0);
+  HEAP32[$vararg_ptr8>>2] = 187;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer5);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ }
+ return (0)|0;
+}
+function _GNUNET_CRYPTO_rsa_private_key_create($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, 
$3 = 0, $4 = 0, $5 = 0;
+ var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, 
$vararg_buffer5 = 0, $vararg_ptr4 = 0, $vararg_ptr8 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer5 = sp + 16|0;
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $1 = sp + 28|0;
+ $2 = sp + 24|0;
+ HEAP32[$vararg_buffer>>2] = $0;
+ $3 = (_gcry_sexp_build($2,0,42981,$vararg_buffer)|0);
+ $4 = ($3|0)==(0);
+ if (!($4)) {
+  $5 = HEAP32[9432]|0;
+  $6 = ($5|0)==(-1);
+  if ($6) {
+   $7 = (_GNUNET_get_log_call_status(1,0,43005,43018,159)|0);
+   HEAP32[9432] = $7;
+  }
+  $8 = (_GNUNET_get_log_skip()|0);
+  $9 = ($8|0)>(0);
+  if ($9) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $10 = HEAP32[9432]|0;
+  $11 = ($10|0)==(0);
+  if ($11) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer1>>2] = 43005;
+  $vararg_ptr4 = ((($vararg_buffer1)) + 4|0);
+  HEAP32[$vararg_ptr4>>2] = 159;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer1);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $12 = HEAP32[$2>>2]|0;
+ $13 = (_gcry_pk_genkey($1,$12)|0);
+ $14 = ($13|0)==(0);
+ if ($14) {
+  $22 = HEAP32[$2>>2]|0;
+  _gcry_sexp_release($22);
+  $23 = (_GNUNET_xmalloc_(4,43005,168)|0);
+  $24 = HEAP32[$1>>2]|0;
+  HEAP32[$23>>2] = $24;
+  STACKTOP = sp;return ($23|0);
+ }
+ $15 = HEAP32[9433]|0;
+ $16 = ($15|0)==(-1);
+ if ($16) {
+  $17 = (_GNUNET_get_log_call_status(1,0,43005,43018,162)|0);
+  HEAP32[9433] = $17;
+ }
+ $18 = (_GNUNET_get_log_skip()|0);
+ $19 = ($18|0)>(0);
+ if ($19) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $20 = HEAP32[9433]|0;
+ $21 = ($20|0)==(0);
+ if ($21) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer5>>2] = 43005;
+ $vararg_ptr8 = ((($vararg_buffer5)) + 4|0);
+ HEAP32[$vararg_ptr8>>2] = 162;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer5);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _GNUNET_CRYPTO_rsa_private_key_free($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[$0>>2]|0;
+ _gcry_sexp_release($1);
+ _GNUNET_xfree_($0,43005,184);
+ return;
+}
+function _GNUNET_CRYPTO_rsa_private_key_encode($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 
= 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $2 = HEAP32[$0>>2]|0;
+ $3 = (_gcry_sexp_sprint($2,0,0,0)|0);
+ $4 = (_GNUNET_xmalloc_($3,43005,207)|0);
+ $5 = (($3) + -1)|0;
+ $6 = HEAP32[$0>>2]|0;
+ $7 = (_gcry_sexp_sprint($6,0,$4,$3)|0);
+ $8 = ($5|0)==($7|0);
+ if ($8) {
+  HEAP32[$1>>2] = $4;
+  STACKTOP = sp;return ($3|0);
+ }
+ $9 = HEAP32[9434]|0;
+ $10 = ($9|0)==(-1);
+ if ($10) {
+  $11 = (_GNUNET_get_log_call_status(1,0,43005,43055,212)|0);
+  HEAP32[9434] = $11;
+ }
+ $12 = (_GNUNET_get_log_skip()|0);
+ $13 = ($12|0)>(0);
+ if ($13) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $14 = HEAP32[9434]|0;
+ $15 = ($14|0)==(0);
+ if ($15) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer>>2] = 43005;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = 212;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _GNUNET_CRYPTO_rsa_private_key_decode($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, 
$5 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $2 = (_GNUNET_xmalloc_(4,43005,231)|0);
+ $3 = (_gcry_sexp_new($2,$0,$1,0)|0);
+ $4 = ($3|0)==(0);
+ if (!($4)) {
+  $5 = HEAP32[9435]|0;
+  $6 = ($5|0)==(-1);
+  if ($6) {
+   $7 = (_GNUNET_get_log_call_status(2,43092,43005,43108,239)|0);
+   HEAP32[9435] = $7;
+  }
+  $8 = (_GNUNET_get_log_skip()|0);
+  $9 = ($8|0)>(0);
+  if ($9) {
+   _GNUNET_log_skip(-1,0);
+  } else {
+   $10 = HEAP32[9435]|0;
+   $11 = ($10|0)==(0);
+   if (!($11)) {
+    _GNUNET_log_from_nocheck(2,43092,43145,$vararg_buffer);
+   }
+  }
+  _GNUNET_xfree_($2,43005,240);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $12 = HEAP32[$2>>2]|0;
+ $13 = (_gcry_pk_testkey($12)|0);
+ $14 = ($13|0)==(0);
+ if ($14) {
+  $$0 = $2;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $15 = HEAP32[9436]|0;
+ $16 = ($15|0)==(-1);
+ if ($16) {
+  $17 = (_GNUNET_get_log_call_status(2,43092,43005,43108,246)|0);
+  HEAP32[9436] = $17;
+ }
+ $18 = (_GNUNET_get_log_skip()|0);
+ $19 = ($18|0)>(0);
+ if ($19) {
+  _GNUNET_log_skip(-1,0);
+ } else {
+  $20 = HEAP32[9436]|0;
+  $21 = ($20|0)==(0);
+  if (!($21)) {
+   _GNUNET_log_from_nocheck(2,43092,43145,$vararg_buffer1);
+  }
+ }
+ $22 = HEAP32[$2>>2]|0;
+ _gcry_sexp_release($22);
+ _GNUNET_xfree_($2,43005,184);
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function _GNUNET_CRYPTO_rsa_private_key_get_public($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, 
$3 = 0, $4 = 0, $5 = 0;
+ var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, 
$vararg_ptr1 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $1 = sp + 24|0;
+ $2 = sp + 16|0;
+ $3 = HEAP32[$0>>2]|0;
+ $4 = (_key_from_sexp_105($1,$3,59755,60969)|0);
+ $5 = ($4|0)==(0);
+ if (!($5)) {
+  $6 = HEAP32[$0>>2]|0;
+  $7 = (_key_from_sexp_105($1,$6,59743,60969)|0);
+  $8 = ($7|0)==(0);
+  if (!($8)) {
+   $9 = HEAP32[$0>>2]|0;
+   $10 = (_key_from_sexp_105($1,$9,61102,60969)|0);
+   $11 = ($10|0)==(0);
+   if (!($11)) {
+    $12 = HEAP32[9437]|0;
+    $13 = ($12|0)==(-1);
+    if ($13) {
+     $14 = (_GNUNET_get_log_call_status(2,0,43005,43179,277)|0);
+     HEAP32[9437] = $14;
+    }
+    $15 = (_GNUNET_get_log_skip()|0);
+    $16 = ($15|0)>(0);
+    if ($16) {
+     _GNUNET_log_skip(-1,0);
+     $$0 = 0;
+     STACKTOP = sp;return ($$0|0);
+    }
+    $17 = HEAP32[9437]|0;
+    $18 = ($17|0)==(0);
+    if ($18) {
+     $$0 = 0;
+     STACKTOP = sp;return ($$0|0);
+    }
+    HEAP32[$vararg_buffer>>2] = 43005;
+    $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+    HEAP32[$vararg_ptr1>>2] = 277;
+    _GNUNET_log_nocheck(66,43220,$vararg_buffer);
+    $$0 = 0;
+    STACKTOP = sp;return ($$0|0);
+   }
+  }
+ }
+ $19 = HEAP32[$1>>2]|0;
+ $20 = ((($1)) + 4|0);
+ $21 = HEAP32[$20>>2]|0;
+ HEAP32[$vararg_buffer2>>2] = $19;
+ $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+ HEAP32[$vararg_ptr5>>2] = $21;
+ (_gcry_sexp_build($2,0,43268,$vararg_buffer2)|0);
+ _gcry_mpi_release($19);
+ _gcry_mpi_release($21);
+ $22 = (_GNUNET_xmalloc_(4,43005,287)|0);
+ $23 = HEAP32[$2>>2]|0;
+ HEAP32[$22>>2] = $23;
+ $$0 = $22;
+ STACKTOP = sp;return ($$0|0);
+}
+function _key_from_sexp_105($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$04551 = 0, $$04657 = 0, $$04756 = 0, $$048 = 0, $$052 = 0, $10 = 0, $11 
= 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, 
$20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 
0, $exitcond = 0, $exitcond63 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (_gcry_sexp_find_token($1,$2,0)|0);
+ $5 = ($4|0)==(0|0);
+ if ($5) {
+  $$048 = 1;
+  return ($$048|0);
+ }
+ $6 = (_gcry_sexp_cadr($4)|0);
+ _gcry_sexp_release($4);
+ $7 = ($6|0)==(0|0);
+ if ($7) {
+  $$048 = 2;
+  return ($$048|0);
+ }
+ $8 = HEAP8[$3>>0]|0;
+ $9 = ($8<<24>>24)==(0);
+ L7: do {
+  if (!($9)) {
+   $$04657 = 0;$$04756 = $3;
+   while(1) {
+    $10 = (_gcry_sexp_find_token($6,$$04756,1)|0);
+    $11 = ($10|0)==(0|0);
+    if ($11) {
+     label = 6;
+     break;
+    }
+    $16 = (_gcry_sexp_nth_mpi($10,1,5)|0);
+    $17 = (($0) + ($$04657<<2)|0);
+    HEAP32[$17>>2] = $16;
+    _gcry_sexp_release($10);
+    $18 = HEAP32[$17>>2]|0;
+    $19 = ($18|0)==(0|0);
+    if ($19) {
+     label = 11;
+     break;
+    }
+    $24 = ((($$04756)) + 1|0);
+    $25 = (($$04657) + 1)|0;
+    $26 = HEAP8[$24>>0]|0;
+    $27 = ($26<<24>>24)==(0);
+    if ($27) {
+     break L7;
+    } else {
+     $$04657 = $25;$$04756 = $24;
+    }
+   }
+   if ((label|0) == 6) {
+    $12 = ($$04657|0)==(0);
+    if (!($12)) {
+     $$04551 = 0;
+     while(1) {
+      $13 = (($0) + ($$04551<<2)|0);
+      $14 = HEAP32[$13>>2]|0;
+      _gcry_free($14);
+      HEAP32[$13>>2] = 0;
+      $15 = (($$04551) + 1)|0;
+      $exitcond = ($15|0)==($$04657|0);
+      if ($exitcond) {
+       break;
+      } else {
+       $$04551 = $15;
+      }
+     }
+    }
+    _gcry_sexp_release($6);
+    $$048 = 3;
+    return ($$048|0);
+   }
+   else if ((label|0) == 11) {
+    $20 = ($$04657|0)==(0);
+    if (!($20)) {
+     $$052 = 0;
+     while(1) {
+      $21 = (($0) + ($$052<<2)|0);
+      $22 = HEAP32[$21>>2]|0;
+      _gcry_free($22);
+      HEAP32[$21>>2] = 0;
+      $23 = (($$052) + 1)|0;
+      $exitcond63 = ($23|0)==($$04657|0);
+      if ($exitcond63) {
+       break;
+      } else {
+       $$052 = $23;
+      }
+     }
+    }
+    _gcry_sexp_release($6);
+    $$048 = 4;
+    return ($$048|0);
+   }
+  }
+ } while(0);
+ _gcry_sexp_release($6);
+ $$048 = 0;
+ return ($$048|0);
+}
+function _GNUNET_CRYPTO_rsa_public_key_free($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[$0>>2]|0;
+ _gcry_sexp_release($1);
+ _GNUNET_xfree_($0,43005,303);
+ return;
+}
+function _GNUNET_CRYPTO_rsa_public_key_encode($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 
= 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $2 = HEAP32[$0>>2]|0;
+ $3 = (_gcry_sexp_sprint($2,3,0,0)|0);
+ $4 = (_GNUNET_xmalloc_($3,43005,326)|0);
+ $5 = (($3) + -1)|0;
+ $6 = HEAP32[$0>>2]|0;
+ $7 = (_gcry_sexp_sprint($6,3,$4,$3)|0);
+ $8 = ($5|0)==($7|0);
+ if ($8) {
+  HEAP32[$1>>2] = $4;
+  STACKTOP = sp;return ($3|0);
+ }
+ $9 = HEAP32[9438]|0;
+ $10 = ($9|0)==(-1);
+ if ($10) {
+  $11 = (_GNUNET_get_log_call_status(1,0,43005,43298,331)|0);
+  HEAP32[9438] = $11;
+ }
+ $12 = (_GNUNET_get_log_skip()|0);
+ $13 = ($12|0)>(0);
+ if ($13) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $14 = HEAP32[9438]|0;
+ $15 = ($14|0)==(0);
+ if ($15) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer>>2] = 43005;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = 331;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _GNUNET_CRYPTO_rsa_public_key_decode($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, 
$25 = 0, $26 = 0, $27 = 0;
+ var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 
0, $vararg_buffer2 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $2 = sp + 16|0;
+ $3 = (_GNUNET_xmalloc_(4,43005,375)|0);
+ $4 = (_gcry_sexp_new($3,$0,$1,0)|0);
+ $5 = ($4|0)==(0);
+ if (!($5)) {
+  $6 = HEAP32[9439]|0;
+  $7 = ($6|0)==(-1);
+  if ($7) {
+   $8 = (_GNUNET_get_log_call_status(2,0,43005,43334,382)|0);
+   HEAP32[9439] = $8;
+  }
+  $9 = (_GNUNET_get_log_skip()|0);
+  $10 = ($9|0)>(0);
+  if ($10) {
+   _GNUNET_log_skip(-1,0);
+  } else {
+   $11 = HEAP32[9439]|0;
+   $12 = ($11|0)==(0);
+   if (!($12)) {
+    HEAP32[$vararg_buffer>>2] = 43005;
+    $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+    HEAP32[$vararg_ptr1>>2] = 382;
+    _GNUNET_log_nocheck(66,43220,$vararg_buffer);
+   }
+  }
+  _GNUNET_xfree_($3,43005,383);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $13 = HEAP32[$3>>2]|0;
+ $14 = (_key_from_sexp_105($2,$13,59755,60983)|0);
+ $15 = ($14|0)==(0);
+ if (!($15)) {
+  $16 = HEAP32[$3>>2]|0;
+  $17 = (_key_from_sexp_105($2,$16,61102,60983)|0);
+  $18 = ($17|0)==(0);
+  if (!($18)) {
+   $19 = HEAP32[9440]|0;
+   $20 = ($19|0)==(-1);
+   if ($20) {
+    $21 = (_GNUNET_get_log_call_status(1,0,43005,43334,393)|0);
+    HEAP32[9440] = $21;
+   }
+   $22 = (_GNUNET_get_log_skip()|0);
+   $23 = ($22|0)>(0);
+   if ($23) {
+    _GNUNET_log_skip(-1,0);
+   } else {
+    $24 = HEAP32[9440]|0;
+    $25 = ($24|0)==(0);
+    if (!($25)) {
+     HEAP32[$vararg_buffer2>>2] = 43005;
+     $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+     HEAP32[$vararg_ptr5>>2] = 393;
+     _GNUNET_log_nocheck(1,43837,$vararg_buffer2);
+    }
+   }
+   $26 = HEAP32[$3>>2]|0;
+   _gcry_sexp_release($26);
+   _GNUNET_xfree_($3,43005,395);
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+ }
+ $27 = HEAP32[$2>>2]|0;
+ _gcry_mpi_release($27);
+ $$0 = $3;
+ STACKTOP = sp;return ($$0|0);
+}
+function _GNUNET_CRYPTO_rsa_signature_encode($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 
= 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $2 = HEAP32[$0>>2]|0;
+ $3 = (_gcry_sexp_sprint($2,3,0,0)|0);
+ $4 = (_GNUNET_xmalloc_($3,43005,974)|0);
+ $5 = (($3) + -1)|0;
+ $6 = HEAP32[$0>>2]|0;
+ $7 = (_gcry_sexp_sprint($6,3,$4,$3)|0);
+ $8 = ($5|0)==($7|0);
+ if ($8) {
+  HEAP32[$1>>2] = $4;
+  STACKTOP = sp;return ($3|0);
+ }
+ $9 = HEAP32[9441]|0;
+ $10 = ($9|0)==(-1);
+ if ($10) {
+  $11 = (_GNUNET_get_log_call_status(1,0,43005,43370,979)|0);
+  HEAP32[9441] = $11;
+ }
+ $12 = (_GNUNET_get_log_skip()|0);
+ $13 = ($12|0)>(0);
+ if ($13) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $14 = HEAP32[9441]|0;
+ $15 = ($14|0)==(0);
+ if ($15) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer>>2] = 43005;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = 979;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _GNUNET_CRYPTO_rsa_blind($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, 
$37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 
0, $46 = 0, $47 = 0, $48 = 0;
+ var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, 
$56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $vararg_buffer = 0, 
$vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, 
$vararg_ptr9 = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $vararg_buffer6 = sp + 16|0;
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $5 = sp + 36|0;
+ $6 = sp + 32|0;
+ $7 = sp + 24|0;
+ $8 = ($3|0)!=(0|0);
+ $9 = ($4|0)!=(0|0);
+ $or$cond = $8 & $9;
+ if (!($or$cond)) {
+  $10 = HEAP32[9442]|0;
+  $11 = ($10|0)==(-1);
+  if ($11) {
+   $12 = (_GNUNET_get_log_call_status(1,0,43005,43405,748)|0);
+   HEAP32[9442] = $12;
+  }
+  $13 = (_GNUNET_get_log_skip()|0);
+  $14 = ($13|0)>(0);
+  if ($14) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $15 = HEAP32[9442]|0;
+  $16 = ($15|0)==(0);
+  if ($16) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer>>2] = 43005;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 748;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $17 = HEAP32[$2>>2]|0;
+ $18 = (_key_from_sexp_105($7,$17,59755,60969)|0);
+ $19 = ($18|0)==(0);
+ if (!($19)) {
+  $20 = HEAP32[$2>>2]|0;
+  $21 = (_key_from_sexp_105($7,$20,61102,60969)|0);
+  $22 = ($21|0)==(0);
+  if (!($22)) {
+   $23 = HEAP32[9443]|0;
+   $24 = ($23|0)==(-1);
+   if ($24) {
+    $25 = (_GNUNET_get_log_call_status(1,0,43005,43405,754)|0);
+    HEAP32[9443] = $25;
+   }
+   $26 = (_GNUNET_get_log_skip()|0);
+   $27 = ($26|0)>(0);
+   if ($27) {
+    _GNUNET_log_skip(-1,0);
+   } else {
+    $28 = HEAP32[9443]|0;
+    $29 = ($28|0)==(0);
+    if (!($29)) {
+     HEAP32[$vararg_buffer2>>2] = 43005;
+     $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+     HEAP32[$vararg_ptr5>>2] = 754;
+     _GNUNET_log_nocheck(1,43837,$vararg_buffer2);
+    }
+   }
+   HEAP32[$3>>2] = 0;
+   HEAP32[$4>>2] = 0;
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+ }
+ $30 = (_rsa_full_domain_hash($2,$0)|0);
+ $31 = ($30|0)==(0|0);
+ do {
+  if (!($31)) {
+   $32 = (_rsa_blinding_key_derive($2,$1)|0);
+   $33 = ($32|0)==(0|0);
+   if ($33) {
+    _gcry_mpi_release($30);
+    break;
+   }
+   $34 = (_gcry_mpi_new(0)|0);
+   $35 = HEAP32[$32>>2]|0;
+   $36 = ((($7)) + 4|0);
+   $37 = HEAP32[$36>>2]|0;
+   $38 = HEAP32[$7>>2]|0;
+   _gcry_mpi_powm($34,$35,$37,$38);
+   $39 = (_gcry_mpi_new(0)|0);
+   _gcry_mpi_mulm($39,$30,$34,$38);
+   _gcry_mpi_release($30);
+   _gcry_mpi_release($38);
+   _gcry_mpi_release($37);
+   _gcry_mpi_release($34);
+   $40 = HEAP32[$32>>2]|0;
+   _gcry_mpi_release($40);
+   _GNUNET_xfree_($32,43005,639);
+   (_gcry_mpi_print(5,0,0,$5,$39)|0);
+   $41 = HEAP32[$5>>2]|0;
+   $42 = (_GNUNET_xmalloc_($41,43005,663)|0);
+   $43 = HEAP32[$5>>2]|0;
+   $44 = (_gcry_mpi_print(5,$42,$43,$6,$39)|0);
+   $45 = ($44|0)==(0);
+   if ($45) {
+    HEAP32[$3>>2] = $42;
+    $53 = HEAP32[$5>>2]|0;
+    HEAP32[$4>>2] = $53;
+    _gcry_mpi_release($39);
+    $$0 = 1;
+    STACKTOP = sp;return ($$0|0);
+   }
+   $46 = HEAP32[9444]|0;
+   $47 = ($46|0)==(-1);
+   if ($47) {
+    $48 = (_GNUNET_get_log_call_status(1,0,43005,43429,669)|0);
+    HEAP32[9444] = $48;
+   }
+   $49 = (_GNUNET_get_log_skip()|0);
+   $50 = ($49|0)>(0);
+   if ($50) {
+    _GNUNET_log_skip(-1,0);
+    _GNUNET_abort_();
+    // unreachable;
+   }
+   $51 = HEAP32[9444]|0;
+   $52 = ($51|0)==(0);
+   if ($52) {
+    _GNUNET_abort_();
+    // unreachable;
+   }
+   HEAP32[$vararg_buffer6>>2] = 43005;
+   $vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
+   HEAP32[$vararg_ptr9>>2] = 669;
+   _GNUNET_log_nocheck(1,70521,$vararg_buffer6);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+ } while(0);
+ $54 = HEAP32[$7>>2]|0;
+ _gcry_mpi_release($54);
+ $55 = ((($7)) + 4|0);
+ $56 = HEAP32[$55>>2]|0;
+ _gcry_mpi_release($56);
+ HEAP32[$3>>2] = 0;
+ HEAP32[$4>>2] = 0;
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function _rsa_full_domain_hash($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, 
$25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 
0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_ptr1 = 0, 
$vararg_ptr5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $2 = sp + 24|0;
+ $3 = sp + 20|0;
+ $4 = sp + 16|0;
+ $5 = HEAP32[$0>>2]|0;
+ $6 = (_key_from_sexp_105($3,$5,61102,60983)|0);
+ $7 = ($6|0)==(0);
+ if (!($7)) {
+  $8 = HEAP32[9448]|0;
+  $9 = ($8|0)==(-1);
+  if ($9) {
+   $10 = (_GNUNET_get_log_call_status(1,0,43005,43523,697)|0);
+   HEAP32[9448] = $10;
+  }
+  $11 = (_GNUNET_get_log_skip()|0);
+  $12 = ($11|0)>(0);
+  if ($12) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $13 = HEAP32[9448]|0;
+  $14 = ($13|0)==(0);
+  if ($14) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer>>2] = 43005;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 697;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $15 = HEAP32[$3>>2]|0;
+ $16 = (_gcry_mpi_get_flag($15,2)|0);
+ $17 = ($16|0)==(0);
+ if ($17) {
+  $25 = (_GNUNET_CRYPTO_rsa_public_key_encode($0,$4)|0);
+  $26 = HEAP32[$4>>2]|0;
+  _GNUNET_CRYPTO_kdf_mod_mpi($2,$15,$26,$25,$1,64,43544);
+  _GNUNET_xfree_($26,43005,712);
+  $27 = HEAP32[$2>>2]|0;
+  $28 = (_gcry_mpi_new(0)|0);
+  $29 = (_gcry_mpi_gcd($28,$27,$15)|0);
+  _gcry_mpi_release($28);
+  _gcry_mpi_release($15);
+  $30 = ($29|0)==(0);
+  $31 = HEAP32[$2>>2]|0;
+  if (!($30)) {
+   $$0 = $31;
+   STACKTOP = sp;return ($$0|0);
+  }
+  _gcry_mpi_release($31);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $18 = HEAP32[9449]|0;
+ $19 = ($18|0)==(-1);
+ if ($19) {
+  $20 = (_GNUNET_get_log_call_status(1,0,43005,43523,699)|0);
+  HEAP32[9449] = $20;
+ }
+ $21 = (_GNUNET_get_log_skip()|0);
+ $22 = ($21|0)>(0);
+ if ($22) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $23 = HEAP32[9449]|0;
+ $24 = ($23|0)==(0);
+ if ($24) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer2>>2] = 43005;
+ $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+ HEAP32[$vararg_ptr5>>2] = 699;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer2);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _rsa_blinding_key_derive($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, 
$25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, 
$vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0;
+ var $vararg_ptr9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer6 = sp + 16|0;
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $2 = sp + 24|0;
+ $3 = (_GNUNET_xmalloc_(4,43005,442)|0);
+ $4 = ($3|0)==(0|0);
+ if ($4) {
+  $5 = HEAP32[9445]|0;
+  $6 = ($5|0)==(-1);
+  if ($6) {
+   $7 = (_GNUNET_get_log_call_status(1,0,43005,43455,443)|0);
+   HEAP32[9445] = $7;
+  }
+  $8 = (_GNUNET_get_log_skip()|0);
+  $9 = ($8|0)>(0);
+  if ($9) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $10 = HEAP32[9445]|0;
+  $11 = ($10|0)==(0);
+  if ($11) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer>>2] = 43005;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 443;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $12 = HEAP32[$0>>2]|0;
+ $13 = (_key_from_sexp_105($2,$12,61102,60983)|0);
+ $14 = ($13|0)==(0);
+ if (!($14)) {
+  $15 = HEAP32[9446]|0;
+  $16 = ($15|0)==(-1);
+  if ($16) {
+   $17 = (_GNUNET_get_log_call_status(1,0,43005,43455,446)|0);
+   HEAP32[9446] = $17;
+  }
+  $18 = (_GNUNET_get_log_skip()|0);
+  $19 = ($18|0)>(0);
+  if ($19) {
+   _GNUNET_log_skip(-1,0);
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  $20 = HEAP32[9446]|0;
+  $21 = ($20|0)==(0);
+  if ($21) {
+   _GNUNET_abort_();
+   // unreachable;
+  }
+  HEAP32[$vararg_buffer2>>2] = 43005;
+  $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+  HEAP32[$vararg_ptr5>>2] = 446;
+  _GNUNET_log_nocheck(1,70521,$vararg_buffer2);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $22 = HEAP32[$2>>2]|0;
+ $23 = (_gcry_mpi_get_flag($22,2)|0);
+ $24 = ($23|0)==(0);
+ if ($24) {
+  _GNUNET_CRYPTO_kdf_mod_mpi($3,$22,43479,30,$1,32,43510);
+  $32 = HEAP32[$3>>2]|0;
+  $33 = (_gcry_mpi_new(0)|0);
+  $34 = (_gcry_mpi_gcd($33,$32,$22)|0);
+  _gcry_mpi_release($33);
+  $35 = ($34|0)==(0);
+  if (!($35)) {
+   $$0 = $3;
+   _gcry_mpi_release($22);
+   STACKTOP = sp;return ($$0|0);
+  }
+  _GNUNET_xfree_($3,43005,456);
+  $$0 = 0;
+  _gcry_mpi_release($22);
+  STACKTOP = sp;return ($$0|0);
+ }
+ $25 = HEAP32[9447]|0;
+ $26 = ($25|0)==(-1);
+ if ($26) {
+  $27 = (_GNUNET_get_log_call_status(1,0,43005,43455,448)|0);
+  HEAP32[9447] = $27;
+ }
+ $28 = (_GNUNET_get_log_skip()|0);
+ $29 = ($28|0)>(0);
+ if ($29) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $30 = HEAP32[9447]|0;
+ $31 = ($30|0)==(0);
+ if ($31) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer6>>2] = 43005;
+ $vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
+ HEAP32[$vararg_ptr9>>2] = 448;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer6);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _mpi_to_sexp($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, 
$8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_ptr4 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $1 = sp + 16|0;
+ HEAP32[$1>>2] = 0;
+ HEAP32[$vararg_buffer>>2] = $0;
+ $2 = (_gcry_sexp_build($1,0,43559,$vararg_buffer)|0);
+ $3 = ($2|0)==(0);
+ if ($3) {
+  $11 = HEAP32[$1>>2]|0;
+  STACKTOP = sp;return ($11|0);
+ }
+ $4 = HEAP32[9450]|0;
+ $5 = ($4|0)==(-1);
+ if ($5) {
+  $6 = (_GNUNET_get_log_call_status(1,0,43005,43589,819)|0);
+  HEAP32[9450] = $6;
+ }
+ $7 = (_GNUNET_get_log_skip()|0);
+ $8 = ($7|0)>(0);
+ if ($8) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $9 = HEAP32[9450]|0;
+ $10 = ($9|0)==(0);
+ if ($10) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer1>>2] = 43005;
+ $vararg_ptr4 = ((($vararg_buffer1)) + 4|0);
+ HEAP32[$vararg_ptr4>>2] = 819;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer1);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _GNUNET_CRYPTO_rsa_signature_free($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[$0>>2]|0;
+ _gcry_sexp_release($1);
+ _GNUNET_xfree_($0,43005,952);
+ return;
+}
+function _GNUNET_CRYPTO_rsa_signature_decode($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, 
$25 = 0, $26 = 0, $27 = 0;
+ var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 
0, $vararg_buffer2 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $2 = sp + 16|0;
+ $3 = (_GNUNET_xmalloc_(4,43005,1001)|0);
+ $4 = (_gcry_sexp_new($3,$0,$1,0)|0);
+ $5 = ($4|0)==(0);
+ if (!($5)) {
+  $6 = HEAP32[9451]|0;
+  $7 = ($6|0)==(-1);
+  if ($7) {
+   $8 = (_GNUNET_get_log_call_status(2,0,43005,43601,1008)|0);
+   HEAP32[9451] = $8;
+  }
+  $9 = (_GNUNET_get_log_skip()|0);
+  $10 = ($9|0)>(0);
+  if ($10) {
+   _GNUNET_log_skip(-1,0);
+  } else {
+   $11 = HEAP32[9451]|0;
+   $12 = ($11|0)==(0);
+   if (!($12)) {
+    HEAP32[$vararg_buffer>>2] = 43005;
+    $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+    HEAP32[$vararg_ptr1>>2] = 1008;
+    _GNUNET_log_nocheck(66,43220,$vararg_buffer);
+   }
+  }
+  _GNUNET_xfree_($3,43005,1009);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $13 = HEAP32[$3>>2]|0;
+ $14 = (_key_from_sexp_105($2,$13,59605,60981)|0);
+ $15 = ($14|0)==(0);
+ if (!($15)) {
+  $16 = HEAP32[$3>>2]|0;
+  $17 = (_key_from_sexp_105($2,$16,61102,60981)|0);
+  $18 = ($17|0)==(0);
+  if (!($18)) {
+   $19 = HEAP32[9452]|0;
+   $20 = ($19|0)==(-1);
+   if ($20) {
+    $21 = (_GNUNET_get_log_call_status(2,0,43005,43601,1019)|0);
+    HEAP32[9452] = $21;
+   }
+   $22 = (_GNUNET_get_log_skip()|0);
+   $23 = ($22|0)>(0);
+   if ($23) {
+    _GNUNET_log_skip(-1,0);
+   } else {
+    $24 = HEAP32[9452]|0;
+    $25 = ($24|0)==(0);
+    if (!($25)) {
+     HEAP32[$vararg_buffer2>>2] = 43005;
+     $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+     HEAP32[$vararg_ptr5>>2] = 1019;
+     _GNUNET_log_nocheck(66,43220,$vararg_buffer2);
+    }
+   }
+   $26 = HEAP32[$3>>2]|0;
+   _gcry_sexp_release($26);
+   _GNUNET_xfree_($3,43005,1021);
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+ }
+ $27 = HEAP32[$2>>2]|0;
+ _gcry_mpi_release($27);
+ $$0 = $3;
+ STACKTOP = sp;return ($$0|0);
+}
+function _GNUNET_CRYPTO_rsa_unblind($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $45 = 0, $46 = 0;
+ var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, 
$62 = 0, $63 = 0, $64 = 0;
+ var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $8 = 0, $9 = 0, 
$vararg_buffer = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, 
$vararg_buffer17 = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_ptr1 = 
0, $vararg_ptr13 = 0, $vararg_ptr20 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, 
label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(64|0);
+ $vararg_buffer17 = sp + 40|0;
+ $vararg_buffer14 = sp + 32|0;
+ $vararg_buffer10 = sp + 24|0;
+ $vararg_buffer6 = sp + 16|0;
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $3 = sp + 52|0;
+ $4 = sp + 48|0;
+ $5 = HEAP32[$2>>2]|0;
+ $6 = (_key_from_sexp_105($3,$5,59755,60983)|0);
+ $7 = ($6|0)==(0);
+ if (!($7)) {
+  $8 = HEAP32[$2>>2]|0;
+  $9 = (_key_from_sexp_105($3,$8,61102,60983)|0);
+  $10 = ($9|0)==(0);
+  if (!($10)) {
+   $11 = HEAP32[9453]|0;
+   $12 = ($11|0)==(-1);
+   if ($12) {
+    $13 = (_GNUNET_get_log_call_status(2,0,43005,43636,1084)|0);
+    HEAP32[9453] = $13;
+   }
+   $14 = (_GNUNET_get_log_skip()|0);
+   $15 = ($14|0)>(0);
+   if ($15) {
+    _GNUNET_log_skip(-1,0);
+    $$0 = 0;
+    STACKTOP = sp;return ($$0|0);
+   }
+   $16 = HEAP32[9453]|0;
+   $17 = ($16|0)==(0);
+   if ($17) {
+    $$0 = 0;
+    STACKTOP = sp;return ($$0|0);
+   }
+   HEAP32[$vararg_buffer>>2] = 43005;
+   $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+   HEAP32[$vararg_ptr1>>2] = 1084;
+   _GNUNET_log_nocheck(66,43220,$vararg_buffer);
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+ }
+ $18 = HEAP32[$0>>2]|0;
+ $19 = (_key_from_sexp_105($4,$18,59605,60981)|0);
+ $20 = ($19|0)==(0);
+ if (!($20)) {
+  $21 = HEAP32[$0>>2]|0;
+  $22 = (_key_from_sexp_105($4,$21,61102,60981)|0);
+  $23 = ($22|0)==(0);
+  if (!($23)) {
+   $24 = HEAP32[$3>>2]|0;
+   _gcry_mpi_release($24);
+   $25 = HEAP32[9454]|0;
+   $26 = ($25|0)==(-1);
+   if ($26) {
+    $27 = (_GNUNET_get_log_call_status(2,0,43005,43636,1093)|0);
+    HEAP32[9454] = $27;
+   }
+   $28 = (_GNUNET_get_log_skip()|0);
+   $29 = ($28|0)>(0);
+   if ($29) {
+    _GNUNET_log_skip(-1,0);
+    $$0 = 0;
+    STACKTOP = sp;return ($$0|0);
+   }
+   $30 = HEAP32[9454]|0;
+   $31 = ($30|0)==(0);
+   if ($31) {
+    $$0 = 0;
+    STACKTOP = sp;return ($$0|0);
+   }
+   HEAP32[$vararg_buffer2>>2] = 43005;
+   $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+   HEAP32[$vararg_ptr5>>2] = 1093;
+   _GNUNET_log_nocheck(66,43220,$vararg_buffer2);
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+ }
+ $32 = (_rsa_blinding_key_derive($2,$1)|0);
+ $33 = ($32|0)==(0|0);
+ if ($33) {
+  $34 = HEAP32[9455]|0;
+  $35 = ($34|0)==(-1);
+  if ($35) {
+   $36 = (_GNUNET_get_log_call_status(2,0,43005,43636,1104)|0);
+   HEAP32[9455] = $36;
+  }
+  $37 = (_GNUNET_get_log_skip()|0);
+  $38 = ($37|0)>(0);
+  if ($38) {
+   _GNUNET_log_skip(-1,0);
+  } else {
+   $39 = HEAP32[9455]|0;
+   $40 = ($39|0)==(0);
+   if (!($40)) {
+    HEAP32[$vararg_buffer6>>2] = 43005;
+    $vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
+    HEAP32[$vararg_ptr9>>2] = 1104;
+    _GNUNET_log_nocheck(66,43220,$vararg_buffer6);
+   }
+  }
+  $41 = HEAP32[$3>>2]|0;
+  _gcry_mpi_release($41);
+  $42 = HEAP32[$4>>2]|0;
+  _gcry_mpi_release($42);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $43 = (_gcry_mpi_new(0)|0);
+ $44 = HEAP32[$32>>2]|0;
+ $45 = HEAP32[$3>>2]|0;
+ $46 = (_gcry_mpi_invm($43,$44,$45)|0);
+ $47 = ($46|0)==(1);
+ if (!($47)) {
+  $48 = HEAP32[9456]|0;
+  $49 = ($48|0)==(-1);
+  if ($49) {
+   $50 = (_GNUNET_get_log_call_status(2,0,43005,43636,1118)|0);
+   HEAP32[9456] = $50;
+  }
+  $51 = (_GNUNET_get_log_skip()|0);
+  $52 = ($51|0)>(0);
+  if ($52) {
+   _GNUNET_log_skip(-1,0);
+  } else {
+   $53 = HEAP32[9456]|0;
+   $54 = ($53|0)==(0);
+   if (!($54)) {
+    HEAP32[$vararg_buffer10>>2] = 43005;
+    $vararg_ptr13 = ((($vararg_buffer10)) + 4|0);
+    HEAP32[$vararg_ptr13>>2] = 1118;
+    _GNUNET_log_nocheck(66,43220,$vararg_buffer10);
+   }
+  }
+  _gcry_mpi_release($43);
+  $55 = HEAP32[$32>>2]|0;
+  _gcry_mpi_release($55);
+  _GNUNET_xfree_($32,43005,639);
+  _gcry_mpi_release($45);
+  $56 = HEAP32[$4>>2]|0;
+  _gcry_mpi_release($56);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $57 = (_gcry_mpi_new(0)|0);
+ $58 = HEAP32[$4>>2]|0;
+ _gcry_mpi_mulm($57,$58,$43,$45);
+ _gcry_mpi_release($45);
+ _gcry_mpi_release($43);
+ _gcry_mpi_release($58);
+ $59 = HEAP32[$32>>2]|0;
+ _gcry_mpi_release($59);
+ _GNUNET_xfree_($32,43005,639);
+ $60 = (_GNUNET_xmalloc_(4,43005,1133)|0);
+ HEAP32[$vararg_buffer14>>2] = $57;
+ $61 = (_gcry_sexp_build($60,0,43662,$vararg_buffer14)|0);
+ $62 = ($61|0)==(0);
+ if ($62) {
+  _gcry_mpi_release($57);
+  $$0 = $60;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $63 = HEAP32[9457]|0;
+ $64 = ($63|0)==(-1);
+ if ($64) {
+  $65 = (_GNUNET_get_log_call_status(1,0,43005,43636,1138)|0);
+  HEAP32[9457] = $65;
+ }
+ $66 = (_GNUNET_get_log_skip()|0);
+ $67 = ($66|0)>(0);
+ if ($67) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $68 = HEAP32[9457]|0;
+ $69 = ($68|0)==(0);
+ if ($69) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer17>>2] = 43005;
+ $vararg_ptr20 = ((($vararg_buffer17)) + 4|0);
+ HEAP32[$vararg_ptr20>>2] = 1138;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer17);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _GNUNET_CRYPTO_rsa_verify($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, 
$4 = 0, $5 = 0, $6 = 0;
+ var $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, 
$vararg_ptr1 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $3 = (_rsa_full_domain_hash($2,$0)|0);
+ $4 = ($3|0)==(0|0);
+ if ($4) {
+  $5 = HEAP32[9458]|0;
+  $6 = ($5|0)==(-1);
+  if ($6) {
+   $7 = (_GNUNET_get_log_call_status(2,0,43005,43685,1167)|0);
+   HEAP32[9458] = $7;
+  }
+  $8 = (_GNUNET_get_log_skip()|0);
+  $9 = ($8|0)>(0);
+  if ($9) {
+   _GNUNET_log_skip(-1,0);
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+  $10 = HEAP32[9458]|0;
+  $11 = ($10|0)==(0);
+  if ($11) {
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+  HEAP32[$vararg_buffer>>2] = 43005;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 1167;
+  _GNUNET_log_nocheck(66,43220,$vararg_buffer);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $12 = (_mpi_to_sexp($3)|0);
+ _gcry_mpi_release($3);
+ $13 = HEAP32[$1>>2]|0;
+ $14 = HEAP32[$2>>2]|0;
+ $15 = (_gcry_pk_verify($13,$12,$14)|0);
+ _gcry_sexp_release($12);
+ $16 = ($15|0)==(0);
+ if ($16) {
+  $$0 = 1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $17 = HEAP32[9459]|0;
+ $18 = ($17|0)==(-1);
+ if ($18) {
+  $19 = (_GNUNET_get_log_call_status(2,43092,43005,43685,1190)|0);
+  HEAP32[9459] = $19;
+ }
+ $20 = (_GNUNET_get_log_skip()|0);
+ $21 = ($20|0)>(0);
+ if ($21) {
+  _GNUNET_log_skip(-1,0);
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $22 = HEAP32[9459]|0;
+ $23 = ($22|0)==(0);
+ if ($23) {
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $24 = (_gcry_strerror($15)|0);
+ HEAP32[$vararg_buffer2>>2] = 43005;
+ $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+ HEAP32[$vararg_ptr5>>2] = 1189;
+ $vararg_ptr6 = ((($vararg_buffer2)) + 8|0);
+ HEAP32[$vararg_ptr6>>2] = $24;
+ _GNUNET_log_from_nocheck(2,43092,43710,$vararg_buffer2);
+ $$0 = -1;
+ STACKTOP = sp;return ($$0|0);
+}
+function _GNUNET_STRINGS_relative_time_to_string($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$ = 0, $$0 = 0, $$036 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, 
$15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, 
$23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0;
+ var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, 
$51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 
0, $6 = 0, $60 = 0, $61 = 0;
+ var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, 
$7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, 
$78 = 0, $79 = 0, $8 = 0;
+ var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, 
$88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $or$cond = 0, $or$cond3 = 0, 
$or$cond38 = 0, $or$cond40 = 0, $or$cond42 = 0, $or$cond44 = 0, $or$cond46 = 0;
+ var $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, $vararg_buffer = 0, 
$vararg_ptr1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $2 = $0;
+ $3 = $2;
+ $4 = HEAP32[$3>>2]|0;
+ $5 = (($2) + 4)|0;
+ $6 = $5;
+ $7 = HEAP32[$6>>2]|0;
+ $8 = (_GNUNET_TIME_relative_get_forever_()|0);
+ $9 = tempRet0;
+ $10 = ($8|0)==($4|0);
+ $11 = ($9|0)==($7|0);
+ $12 = $10 & $11;
+ if ($12) {
+  $$0 = 43776;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $13 = ($4|0)==(0);
+ $14 = ($7|0)==(0);
+ $15 = $13 & $14;
+ if ($15) {
+  $$0 = 43802;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $16 = ($1|0)==(1);
+ $17 = ($7>>>0)>(0);
+ $18 = ($4>>>0)>(5000);
+ $19 = ($7|0)==(0);
+ $20 = $19 & $18;
+ $21 = $17 | $20;
+ $or$cond = $16 & $21;
+ $22 = (___udivdi3(($4|0),($7|0),1000,0)|0);
+ $23 = tempRet0;
+ $24 = (___muldi3(($22|0),($23|0),1000,0)|0);
+ $25 = tempRet0;
+ $26 = (_i64Subtract(($4|0),($7|0),($24|0),($25|0))|0);
+ $27 = tempRet0;
+ $28 = ($26|0)==(0);
+ $29 = ($27|0)==(0);
+ $30 = $28 & $29;
+ $or$cond38 = $or$cond | $30;
+ if ($or$cond38) {
+  $31 = ($7>>>0)>(0);
+  $32 = ($4>>>0)>(5000999);
+  $33 = ($7|0)==(0);
+  $34 = $33 & $32;
+  $35 = $31 | $34;
+  $or$cond3 = $16 & $35;
+  $36 = (___uremdi3(($22|0),($23|0),1000,0)|0);
+  $37 = tempRet0;
+  $38 = ($36|0)==(0);
+  $39 = ($37|0)==(0);
+  $40 = $38 & $39;
+  $or$cond40 = $or$cond3 | $40;
+  if ($or$cond40) {
+   $41 = (___udivdi3(($4|0),($7|0),1000000,0)|0);
+   $42 = tempRet0;
+   $43 = ($7>>>0)>(0);
+   $44 = ($4>>>0)>(300999999);
+   $45 = ($7|0)==(0);
+   $46 = $45 & $44;
+   $47 = $43 | $46;
+   $or$cond5 = $16 & $47;
+   $48 = (___uremdi3(($41|0),($42|0),60,0)|0);
+   $49 = tempRet0;
+   $50 = ($48|0)==(0);
+   $51 = ($49|0)==(0);
+   $52 = $50 & $51;
+   $or$cond42 = $or$cond5 | $52;
+   if ($or$cond42) {
+    $53 = (___udivdi3(($4|0),($7|0),60000000,0)|0);
+    $54 = tempRet0;
+    $55 = ($7>>>0)>(4);
+    $56 = ($4>>>0)>(880130815);
+    $57 = ($7|0)==(4);
+    $58 = $57 & $56;
+    $59 = $55 | $58;
+    $or$cond7 = $16 & $59;
+    $60 = (___uremdi3(($53|0),($54|0),60,0)|0);
+    $61 = tempRet0;
+    $62 = ($60|0)==(0);
+    $63 = ($61|0)==(0);
+    $64 = $62 & $63;
+    $or$cond44 = $or$cond7 | $64;
+    if ($or$cond44) {
+     $65 = (___udivdi3(($4|0),($7|0),-694967296,0)|0);
+     $66 = tempRet0;
+     $67 = ($7>>>0)>(101);
+     $68 = ($4>>>0)>(1808303103);
+     $69 = ($7|0)==(101);
+     $70 = $69 & $68;
+     $71 = $67 | $70;
+     $or$cond9 = $16 & $71;
+     $72 = (___uremdi3(($65|0),($66|0),24,0)|0);
+     $73 = tempRet0;
+     $74 = ($72|0)==(0);
+     $75 = ($73|0)==(0);
+     $76 = $74 & $75;
+     $or$cond46 = $or$cond9 | $76;
+     if ($or$cond46) {
+      $77 = (_i64Add(($4|0),($7|0),-500654080,-21)|0);
+      $78 = tempRet0;
+      $79 = ($78>>>0)<(20);
+      $80 = ($77>>>0)<(500654080);
+      $81 = ($78|0)==(20);
+      $82 = $81 & $80;
+      $83 = $79 | $82;
+      $$ = $83 ? 43789 : 43793;
+      $84 = (___udivdi3(($4|0),($7|0),500654080,20)|0);
+      $85 = tempRet0;
+      $$036 = $$;$88 = $84;$91 = $85;
+     } else {
+      $$036 = 57458;$88 = $65;$91 = $66;
+     }
+    } else {
+     $$036 = 43787;$88 = $53;$91 = $54;
+    }
+   } else {
+    $$036 = 60981;$88 = $41;$91 = $42;
+   }
+  } else {
+   $$036 = 43784;$88 = $22;$91 = $23;
+  }
+ } else {
+  $$036 = 43798;$88 = $4;$91 = $7;
+ }
+ $86 = $vararg_buffer;
+ $87 = $86;
+ HEAP32[$87>>2] = $88;
+ $89 = (($86) + 4)|0;
+ $90 = $89;
+ HEAP32[$90>>2] = $91;
+ $vararg_ptr1 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr1>>2] = $$036;
+ (_GNUNET_snprintf(70992,128,43768,$vararg_buffer)|0);
+ $$0 = 70992;
+ STACKTOP = sp;return ($$0|0);
+}
+function _GNUNET_STRINGS_data_to_string($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$0103$lcssa = 0, $$0103134 = 0, $$0105133 = 0, $$0107132 = 0, 
$$0109131 = 0, $$1135 = 0, $$2 = 0, $$2111 = 0, $10 = 0, $11 = 0, $12 = 0, $13 
= 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
+ var $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;
+ var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, 
$48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, 
$56 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, $or$cond = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, 
$vararg_buffer6 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer6 = sp + 16|0;
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $4 = $1 << 3;
+ $5 = $4 | 4;
+ $6 = (($5>>>0) / 5)&-1;
+ $7 = ($6>>>0)>($3>>>0);
+ if ($7) {
+  $8 = HEAP32[9460]|0;
+  $9 = ($8|0)==(-1);
+  if ($9) {
+   $10 = (_GNUNET_get_log_call_status(1,0,43758,43807,914)|0);
+   HEAP32[9460] = $10;
+  }
+  $11 = (_GNUNET_get_log_skip()|0);
+  $12 = ($11|0)>(0);
+  if ($12) {
+   _GNUNET_log_skip(-1,0);
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+  $13 = HEAP32[9460]|0;
+  $14 = ($13|0)==(0);
+  if ($14) {
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+  HEAP32[$vararg_buffer>>2] = 43758;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 914;
+  _GNUNET_log_nocheck(1,43837,$vararg_buffer);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $15 = ($1|0)==(0);
+ L15: do {
+  if ($15) {
+   $$0103$lcssa = 0;
+  } else {
+   $16 = (($4>>>0) % 5)&-1;
+   $17 = (5 - ($16))|0;
+   $$0103134 = 0;$$0105133 = 0;$$0107132 = 0;$$0109131 = 0;$19 = 1;
+   while(1) {
+    $18 = ($$0109131>>>0)<(5);
+    $or$cond = $18 & $19;
+    if ($or$cond) {
+     $20 = (($$0109131) + 8)|0;
+     $21 = (($0) + ($$0105133)|0);
+     $22 = (($$0105133) + 1)|0;
+     $23 = $$0107132 << 8;
+     $24 = HEAP8[$21>>0]|0;
+     $25 = $24&255;
+     $26 = $23 | $25;
+     $$1135 = $22;$$2 = $26;$$2111 = $20;
+    } else {
+     $27 = ($$0109131>>>0)<(5);
+     if ($27) {
+      $28 = ($$0109131|0)==($16|0);
+      if (!($28)) {
+       label = 14;
+       break;
+      }
+      $36 = $$0107132 << $17;
+      $$1135 = $$0105133;$$2 = $36;$$2111 = 5;
+     } else {
+      $$1135 = $$0105133;$$2 = $$0107132;$$2111 = $$0109131;
+     }
+    }
+    $37 = ($$0103134>>>0)<($3>>>0);
+    if (!($37)) {
+     label = 23;
+     break;
+    }
+    $45 = (($$2111) + -5)|0;
+    $46 = $$2 >>> $45;
+    $47 = $46 & 31;
+    $48 = (43865 + ($47)|0);
+    $49 = HEAP8[$48>>0]|0;
+    $50 = (($$0103134) + 1)|0;
+    $51 = (($2) + ($$0103134)|0);
+    HEAP8[$51>>0] = $49;
+    $52 = ($$1135>>>0)<($1>>>0);
+    $53 = ($45|0)!=(0);
+    $54 = $53 | $52;
+    if ($54) {
+     $$0103134 = $50;$$0105133 = $$1135;$$0107132 = $$2;$$0109131 = $45;$19 = 
$52;
+    } else {
+     $$0103$lcssa = $50;
+     break L15;
+    }
+   }
+   if ((label|0) == 14) {
+    $29 = HEAP32[9461]|0;
+    $30 = ($29|0)==(-1);
+    if ($30) {
+     $31 = (_GNUNET_get_log_call_status(1,0,43758,43807,931)|0);
+     HEAP32[9461] = $31;
+    }
+    $32 = (_GNUNET_get_log_skip()|0);
+    $33 = ($32|0)>(0);
+    if ($33) {
+     _GNUNET_log_skip(-1,0);
+     _GNUNET_abort_();
+     // unreachable;
+    }
+    $34 = HEAP32[9461]|0;
+    $35 = ($34|0)==(0);
+    if ($35) {
+     _GNUNET_abort_();
+     // unreachable;
+    }
+    HEAP32[$vararg_buffer2>>2] = 43758;
+    $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+    HEAP32[$vararg_ptr5>>2] = 931;
+    _GNUNET_log_nocheck(1,70521,$vararg_buffer2);
+    _GNUNET_abort_();
+    // unreachable;
+   }
+   else if ((label|0) == 23) {
+    $38 = HEAP32[9462]|0;
+    $39 = ($38|0)==(-1);
+    if ($39) {
+     $40 = (_GNUNET_get_log_call_status(1,0,43758,43807,936)|0);
+     HEAP32[9462] = $40;
+    }
+    $41 = (_GNUNET_get_log_skip()|0);
+    $42 = ($41|0)>(0);
+    if ($42) {
+     _GNUNET_log_skip(-1,0);
+     $$0 = 0;
+     STACKTOP = sp;return ($$0|0);
+    }
+    $43 = HEAP32[9462]|0;
+    $44 = ($43|0)==(0);
+    if ($44) {
+     $$0 = 0;
+     STACKTOP = sp;return ($$0|0);
+    }
+    HEAP32[$vararg_buffer6>>2] = 43758;
+    $vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
+    HEAP32[$vararg_ptr9>>2] = 936;
+    _GNUNET_log_nocheck(1,43837,$vararg_buffer6);
+    $$0 = 0;
+    STACKTOP = sp;return ($$0|0);
+   }
+  }
+ } while(0);
+ $55 = ($$0103$lcssa>>>0)<($3>>>0);
+ $56 = (($2) + ($$0103$lcssa)|0);
+ if (!($55)) {
+  $$0 = $56;
+  STACKTOP = sp;return ($$0|0);
+ }
+ HEAP8[$56>>0] = 0;
+ $$0 = $56;
+ STACKTOP = sp;return ($$0|0);
+}
+function _GNUNET_STRINGS_data_to_string_alloc($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $$019 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 
= 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = $1 << 3;
+ $3 = (($2>>>0) % 5)&-1;
+ $4 = ($3|0)==(0);
+ $5 = (5 - ($3))|0;
+ $6 = $4 ? 0 : $5;
+ $$019 = (($6) + ($2))|0;
+ $7 = (($$019>>>0) / 5)&-1;
+ $8 = (($7) + 1)|0;
+ $9 = (_GNUNET_xmalloc_($8,43758,970)|0);
+ $10 = (_GNUNET_STRINGS_data_to_string($0,$1,$9,$7)|0);
+ $11 = ($10|0)==(0|0);
+ if ($11) {
+  _GNUNET_xfree_($9,43758,974);
+  $$0 = 0;
+  return ($$0|0);
+ } else {
+  HEAP8[$10>>0] = 0;
+  $$0 = $9;
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function _GNUNET_STRINGS_string_to_data($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$ = 0, $$0 = 0, $$065 = 0, $$06787 = 0, $$070 = 0, $$072 = 0, $$075 = 0, 
$$076 = 0, $$1$lcssa = 0, $$168 = 0, $$17186 = 0, $$173$lcssa = 0, $$17385 = 0, 
$$188 = 0, $$2 = 0, $$274 = 0, $$80 = 0, $10 = 0, $11 = 0, $12 = 0;
+ var $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, 
$21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 
0, $30 = 0, $31 = 0, $32 = 0;
+ var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 
0, $5 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, $or$cond = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label 
= 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $4 = $3 << 3;
+ $5 = ($1|0)==(0);
+ if ($5) {
+  $6 = ($3|0)==(0);
+  $$ = $6 ? 1 : -1;
+  $$0 = $$;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $7 = (($4>>>0) % 5)&-1;
+ $8 = ($7|0)==(0);
+ if ($8) {
+  $15 = (($1) + -1)|0;
+  $16 = (($0) + ($15)|0);
+  $17 = HEAP8[$16>>0]|0;
+  $18 = (_getValue__($17)|0);
+  $$065 = $15;$$070 = $18;$$072 = 5;$$075 = $18;$$076 = 0;
+ } else {
+  $9 = (5 - ($7))|0;
+  $10 = (($1) + -1)|0;
+  $11 = (($0) + ($10)|0);
+  $12 = HEAP8[$11>>0]|0;
+  $13 = (_getValue__($12)|0);
+  $14 = $13 >> $9;
+  $$065 = $10;$$070 = $14;$$072 = $7;$$075 = $13;$$076 = $9;
+ }
+ $19 = (($$076) + ($4))|0;
+ $20 = (($19>>>0) / 5)&-1;
+ $21 = ($20|0)!=($1|0);
+ $22 = ($$075|0)==(-1);
+ $or$cond = $22 | $21;
+ if ($or$cond) {
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $23 = ($3|0)==(0);
+ L12: do {
+  if ($23) {
+   $$1$lcssa = $$065;$$173$lcssa = $$072;
+  } else {
+   $$06787 = $3;$$17186 = $$070;$$17385 = $$072;$$188 = $$065;
+   while(1) {
+    $24 = ($$188|0)==(0);
+    if ($24) {
+     break;
+    }
+    $32 = (($$188) + -1)|0;
+    $33 = (($0) + ($32)|0);
+    $34 = HEAP8[$33>>0]|0;
+    $35 = (_getValue__($34)|0);
+    $36 = $35 << $$17385;
+    $37 = $36 | $$17186;
+    $38 = ($35|0)==(-1);
+    if ($38) {
+     $$0 = -1;
+     label = 21;
+     break;
+    }
+    $39 = (($$17385) + 5)|0;
+    $40 = ($39>>>0)>(7);
+    $41 = (($$06787) + -1)|0;
+    if ($40) {
+     $42 = (($$17385) + -3)|0;
+     $43 = $37 >>> 8;
+     $44 = (($2) + ($41)|0);
+     $45 = $37&255;
+     HEAP8[$44>>0] = $45;
+     $$168 = $41;$$2 = $43;$$274 = $42;
+    } else {
+     $$168 = $$06787;$$2 = $37;$$274 = $39;
+    }
+    $46 = ($$168|0)==(0);
+    if ($46) {
+     $$1$lcssa = $32;$$173$lcssa = $$274;
+     break L12;
+    } else {
+     $$06787 = $$168;$$17186 = $$2;$$17385 = $$274;$$188 = $32;
+    }
+   }
+   if ((label|0) == 21) {
+    STACKTOP = sp;return ($$0|0);
+   }
+   $25 = HEAP32[9463]|0;
+   $26 = ($25|0)==(-1);
+   if ($26) {
+    $27 = (_GNUNET_get_log_call_status(1,0,43758,43898,1034)|0);
+    HEAP32[9463] = $27;
+   }
+   $28 = (_GNUNET_get_log_skip()|0);
+   $29 = ($28|0)>(0);
+   if ($29) {
+    _GNUNET_log_skip(-1,0);
+    $$0 = -1;
+    STACKTOP = sp;return ($$0|0);
+   }
+   $30 = HEAP32[9463]|0;
+   $31 = ($30|0)==(0);
+   if ($31) {
+    $$0 = -1;
+    STACKTOP = sp;return ($$0|0);
+   }
+   HEAP32[$vararg_buffer>>2] = 43758;
+   $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+   HEAP32[$vararg_ptr1>>2] = 1034;
+   _GNUNET_log_nocheck(1,43837,$vararg_buffer);
+   $$0 = -1;
+   STACKTOP = sp;return ($$0|0);
+  }
+ } while(0);
+ $47 = $$1$lcssa | $$173$lcssa;
+ $48 = ($47|0)==(0);
+ $$80 = $48 ? 1 : -1;
+ $$0 = $$80;
+ STACKTOP = sp;return ($$0|0);
+}
+function _getValue__($0) {
+ $0 = $0|0;
+ var $$021$off = 0, $$021$off31 = 0, $$023 = 0, $$122 = 0, $$122$off = 0, 
$$1223538 = 0, $$1223539 = 0, $$3$neg = 0, $$neg = 0, $$neg32 = 0, $1 = 0, $10 
= 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
+ var $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, 
$9 = 0, $spec$select = 0, $spec$select26$neg = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ L1: do {
+  switch ($0<<24>>24) {
+  case 111: case 79:  {
+   $4 = 48;
+   label = 4;
+   break;
+  }
+  case 76: case 108: case 73: case 105:  {
+   $4 = 49;
+   label = 4;
+   break;
+  }
+  case 85: case 117:  {
+   $$1223539 = 86;$19 = 2;$20 = 86;
+   label = 9;
+   break;
+  }
+  default: {
+   $1 = $0&255;
+   $$021$off = (($0) + -48)<<24>>24;
+   $2 = ($$021$off&255)<(10);
+   if ($2) {
+    $4 = $1;
+    label = 4;
+   } else {
+    $$021$off31 = (($0) + -97)<<24>>24;
+    $5 = ($$021$off31&255)<(26);
+    if ($5) {
+     $6 = (_toupper($1)|0);
+     $7 = $6&255;
+     $$122 = $7;
+    } else {
+     $$122 = $0;
+    }
+    $$122$off = (($$122) + -65)<<24>>24;
+    $8 = ($$122$off&255)<(26);
+    if ($8) {
+     $9 = $$122&255;
+     $10 = ($$122&255)>(73);
+     $spec$select = $10&1;
+     $11 = ($$122&255)>(76);
+     $12 = $10 ? 2 : 1;
+     if ($11) {
+      $$1223539 = $$122;$19 = $12;$20 = $9;
+      label = 9;
+      break L1;
+     } else {
+      $$1223538 = $$122;$15 = $9;$18 = $spec$select;
+      break L1;
+     }
+    } else {
+     $$023 = -1;
+     return ($$023|0);
+    }
+   }
+  }
+  }
+ } while(0);
+ if ((label|0) == 4) {
+  $3 = (($4) + -48)|0;
+  $$023 = $3;
+  return ($$023|0);
+ }
+ else if ((label|0) == 9) {
+  $$1223538 = $$1223539;$15 = $20;$18 = $19;
+ }
+ $13 = ($$1223538&255)>(79);
+ $14 = ($$1223538&255)>(85);
+ $$neg = $14 << 31 >> 31;
+ $$neg32 = $13 << 31 >> 31;
+ $spec$select26$neg = (($15) + -55)|0;
+ $$3$neg = (($spec$select26$neg) + ($$neg32))|0;
+ $16 = (($$3$neg) + ($$neg))|0;
+ $17 = (($16) - ($18))|0;
+ $$023 = $17;
+ return ($$023|0);
+}
+function _GNUNET_TIME_get_offset() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ tempRet0 = (0);
+ return 0;
+}
+function _GNUNET_TIME_relative_get_forever_() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ tempRet0 = (-1);
+ return -1;
+}
+function _GNUNET_TIME_absolute_get() {
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 
0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $0 = sp;
+ (_gettimeofday(($0|0),(0|0))|0);
+ $1 = HEAP32[$0>>2]|0;
+ $2 = ($1|0)<(0);
+ $3 = $2 << 31 >> 31;
+ $4 = (___muldi3(($1|0),($3|0),1000000,0)|0);
+ $5 = tempRet0;
+ $6 = ((($0)) + 4|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($7|0)<(0);
+ $9 = $8 << 31 >> 31;
+ $10 = (_i64Add(($4|0),($5|0),($7|0),($9|0))|0);
+ $11 = tempRet0;
+ $12 = (_i64Add(($10|0),($11|0),0,0)|0);
+ $13 = tempRet0;
+ tempRet0 = ($13);
+ STACKTOP = sp;return ($12|0);
+}
+function _GNUNET_TIME_absolute_get_duration($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, 
$25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = sp;
+ (_gettimeofday(($1|0),(0|0))|0);
+ $2 = HEAP32[$1>>2]|0;
+ $3 = ($2|0)<(0);
+ $4 = $3 << 31 >> 31;
+ $5 = (___muldi3(($2|0),($4|0),1000000,0)|0);
+ $6 = tempRet0;
+ $7 = ((($1)) + 4|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ($8|0)<(0);
+ $10 = $9 << 31 >> 31;
+ $11 = (_i64Add(($5|0),($6|0),($8|0),($10|0))|0);
+ $12 = tempRet0;
+ $13 = (_i64Add(($11|0),($12|0),0,0)|0);
+ $14 = tempRet0;
+ $15 = $0;
+ $16 = $15;
+ $17 = HEAP32[$16>>2]|0;
+ $18 = (($15) + 4)|0;
+ $19 = $18;
+ $20 = HEAP32[$19>>2]|0;
+ $21 = ($14>>>0)<($20>>>0);
+ $22 = ($13>>>0)<($17>>>0);
+ $23 = ($14|0)==($20|0);
+ $24 = $23 & $22;
+ $25 = $21 | $24;
+ $26 = (_i64Subtract(($13|0),($14|0),($17|0),($20|0))|0);
+ $27 = tempRet0;
+ $28 = $25 ? 0 : $26;
+ $29 = $25 ? 0 : $27;
+ tempRet0 = ($29);
+ STACKTOP = sp;return ($28|0);
+}
+function _GNUNET_htonll($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (_htonl($0)|0);
+ $3 = (_htonl($1)|0);
+ tempRet0 = ($2);
+ return ($3|0);
+}
+function _GNUNET_ntohll($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (_ntohl($0)|0);
+ $3 = (_ntohl($1)|0);
+ tempRet0 = ($2);
+ return ($3|0);
+}
+function _gcry_strerror($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_gpg_strerror($0)|0);
+ return ($1|0);
+}
+function _gcry_check_version($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_check_version($0)|0);
+ return ($1|0);
+}
+function _gcry_control($0,$varargs) {
+ $0 = $0|0;
+ $varargs = $varargs|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $spec$select$i$i = 0, label = 0, 
sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = sp;
+ HEAP32[$1>>2] = $varargs;
+ $2 = (__gcry_vcontrol($0,$1)|0);
+ $3 = ($2|0)==(0);
+ $4 = $2 & 65535;
+ $5 = $4 | 16777216;
+ $spec$select$i$i = $3 ? 0 : $5;
+ STACKTOP = sp;return ($spec$select$i$i|0);
+}
+function _gcry_sexp_new($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $spec$select$i$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (__gcry_sexp_new($0,$1,$2,$3)|0);
+ $5 = ($4|0)==(0);
+ $6 = $4 & 65535;
+ $7 = $6 | 16777216;
+ $spec$select$i$i = $5 ? 0 : $7;
+ return ($spec$select$i$i|0);
+}
+function _gcry_sexp_build($0,$1,$2,$varargs) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $varargs = $varargs|0;
+ var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $spec$select$i$i = 0, label = 0, 
sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $3 = sp;
+ HEAP32[$3>>2] = $varargs;
+ $4 = (__gcry_sexp_vbuild($0,$1,$2,$3)|0);
+ $5 = ($4|0)==(0);
+ $6 = $4 & 65535;
+ $7 = $6 | 16777216;
+ $spec$select$i$i = $5 ? 0 : $7;
+ STACKTOP = sp;return ($spec$select$i$i|0);
+}
+function _gcry_sexp_release($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_sexp_release($0);
+ return;
+}
+function _gcry_sexp_sprint($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (__gcry_sexp_sprint($0,$1,$2,$3)|0);
+ return ($4|0);
+}
+function _gcry_sexp_find_token($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_sexp_find_token($0,$1,$2)|0);
+ return ($3|0);
+}
+function _gcry_sexp_cadr($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_sexp_cadr($0)|0);
+ return ($1|0);
+}
+function _gcry_sexp_nth_mpi($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_sexp_nth_mpi($0,$1,$2)|0);
+ return ($3|0);
+}
+function _gcry_mpi_new($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_mpi_new($0)|0);
+ return ($1|0);
+}
+function _gcry_mpi_release($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_mpi_release($0);
+ return;
+}
+function _gcry_mpi_cmp($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (__gcry_mpi_cmp($0,$1)|0);
+ return ($2|0);
+}
+function _gcry_mpi_scan($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $spec$select$i$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = (__gcry_mpi_scan($0,$1,$2,$3,$4)|0);
+ $6 = ($5|0)==(0);
+ $7 = $5 & 65535;
+ $8 = $7 | 16777216;
+ $spec$select$i$i = $6 ? 0 : $8;
+ return ($spec$select$i$i|0);
+}
+function _gcry_mpi_print($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $spec$select$i$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = (__gcry_mpi_print($0,$1,$2,$3,$4)|0);
+ $6 = ($5|0)==(0);
+ $7 = $5 & 65535;
+ $8 = $7 | 16777216;
+ $spec$select$i$i = $6 ? 0 : $8;
+ return ($spec$select$i$i|0);
+}
+function _gcry_mpi_mulm($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_mpi_mulm($0,$1,$2,$3);
+ return;
+}
+function _gcry_mpi_powm($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_mpi_powm($0,$1,$2,$3);
+ return;
+}
+function _gcry_mpi_gcd($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_mpi_gcd($0,$1,$2)|0);
+ return ($3|0);
+}
+function _gcry_mpi_invm($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_mpi_invm($0,$1,$2)|0);
+ return ($3|0);
+}
+function _gcry_mpi_point_new($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_mpi_point_new($0)|0);
+ return ($1|0);
+}
+function _gcry_mpi_point_release($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_mpi_point_release($0);
+ return;
+}
+function _gcry_mpi_ec_new($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $spec$select$i$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_mpi_ec_new($0,$1,$2)|0);
+ $4 = ($3|0)==(0);
+ $5 = $3 & 65535;
+ $6 = $5 | 16777216;
+ $spec$select$i$i = $4 ? 0 : $6;
+ return ($spec$select$i$i|0);
+}
+function _gcry_mpi_ec_get_mpi($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_mpi_ec_get_mpi($0,$1,$2)|0);
+ return ($3|0);
+}
+function _gcry_mpi_ec_get_point($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_mpi_ec_get_point($0,$1,$2)|0);
+ return ($3|0);
+}
+function _gcry_mpi_ec_get_affine($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $4 = 0, $5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (__gcry_ctx_get_pointer($3,1)|0);
+ $5 = (__gcry_mpi_ec_get_affine($0,$1,$2,$4)|0);
+ return ($5|0);
+}
+function _gcry_mpi_ec_mul($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (__gcry_ctx_get_pointer($3,1)|0);
+ __gcry_mpi_ec_mul_point($0,$1,$2,$4);
+ return;
+}
+function _gcry_mpi_get_nbits($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_mpi_get_nbits($0)|0);
+ return ($1|0);
+}
+function _gcry_mpi_test_bit($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (__gcry_mpi_test_bit($0,$1)|0);
+ return ($2|0);
+}
+function _gcry_mpi_clear_highbit($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_mpi_clear_highbit($0,$1);
+ return;
+}
+function _gcry_mpi_get_opaque($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (__gcry_mpi_get_opaque($0,$1)|0);
+ return ($2|0);
+}
+function _gcry_mpi_get_flag($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (__gcry_mpi_get_flag($0,$1)|0);
+ return ($2|0);
+}
+function _gcry_cipher_open($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select$i$i 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (__gcry_global_is_operational()|0);
+ $5 = ($4|0)==(0);
+ if ($5) {
+  HEAP32[$0>>2] = 0;
+  $$0 = 16777392;
+  return ($$0|0);
+ } else {
+  $6 = (__gcry_cipher_open($0,$1,$2,$3)|0);
+  $7 = ($6|0)==(0);
+  $8 = $6 & 65535;
+  $9 = $8 | 16777216;
+  $spec$select$i$i = $7 ? 0 : $9;
+  $$0 = $spec$select$i$i;
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function _gcry_cipher_close($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_cipher_close($0);
+ return;
+}
+function _gcry_cipher_setkey($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, 
$spec$select$i$i$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_global_is_operational()|0);
+ $4 = ($3|0)==(0);
+ if ($4) {
+  $$0 = 16777392;
+  return ($$0|0);
+ }
+ $5 = (__gcry_cipher_setkey($0,$1,$2)|0);
+ $6 = ($5|0)==(0);
+ $7 = $5 & 65535;
+ $8 = $7 | 536870912;
+ $spec$select$i$i$i = $6 ? 0 : $8;
+ $$0 = $spec$select$i$i$i;
+ return ($$0|0);
+}
+function _gcry_cipher_setiv($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, 
$spec$select$i$i$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_global_is_operational()|0);
+ $4 = ($3|0)==(0);
+ if ($4) {
+  $$0 = 16777392;
+  return ($$0|0);
+ }
+ $5 = (__gcry_cipher_setiv($0,$1,$2)|0);
+ $6 = ($5|0)==(0);
+ $7 = $5 & 65535;
+ $8 = $7 | 536870912;
+ $spec$select$i$i$i = $6 ? 0 : $8;
+ $$0 = $spec$select$i$i$i;
+ return ($$0|0);
+}
+function _gcry_cipher_encrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$spec$select$i$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = (__gcry_global_is_operational()|0);
+ $6 = ($5|0)==(0);
+ if (!($6)) {
+  $8 = (__gcry_cipher_encrypt($0,$1,$2,$3,$4)|0);
+  $9 = ($8|0)==(0);
+  $10 = $8 & 65535;
+  $11 = $10 | 16777216;
+  $spec$select$i$i = $9 ? 0 : $11;
+  $$0 = $spec$select$i$i;
+  return ($$0|0);
+ }
+ $7 = ($1|0)==(0|0);
+ if ($7) {
+  $$0 = 16777392;
+  return ($$0|0);
+ }
+ _memset(($1|0),66,($2|0))|0;
+ $$0 = 16777392;
+ return ($$0|0);
+}
+function _gcry_cipher_decrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $10 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$spec$select$i$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = (__gcry_global_is_operational()|0);
+ $6 = ($5|0)==(0);
+ if ($6) {
+  $$0 = 16777392;
+  return ($$0|0);
+ }
+ $7 = (__gcry_cipher_decrypt($0,$1,$2,$3,$4)|0);
+ $8 = ($7|0)==(0);
+ $9 = $7 & 65535;
+ $10 = $9 | 16777216;
+ $spec$select$i$i = $8 ? 0 : $10;
+ $$0 = $spec$select$i$i;
+ return ($$0|0);
+}
+function _gcry_pk_sign($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $spec$select$i$i 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_global_is_operational()|0);
+ $4 = ($3|0)==(0);
+ if ($4) {
+  HEAP32[$0>>2] = 0;
+  $$0 = 16777392;
+  return ($$0|0);
+ } else {
+  $5 = (__gcry_pk_sign($0,$1,$2)|0);
+  $6 = ($5|0)==(0);
+  $7 = $5 & 65535;
+  $8 = $7 | 16777216;
+  $spec$select$i$i = $6 ? 0 : $8;
+  $$0 = $spec$select$i$i;
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function _gcry_pk_verify($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $spec$select$i$i 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_global_is_operational()|0);
+ $4 = ($3|0)==(0);
+ if ($4) {
+  $$0 = 16777392;
+  return ($$0|0);
+ }
+ $5 = (__gcry_pk_verify($0,$1,$2)|0);
+ $6 = ($5|0)==(0);
+ $7 = $5 & 65535;
+ $8 = $7 | 16777216;
+ $spec$select$i$i = $6 ? 0 : $8;
+ $$0 = $spec$select$i$i;
+ return ($$0|0);
+}
+function _gcry_pk_testkey($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $spec$select$i$i 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_global_is_operational()|0);
+ $2 = ($1|0)==(0);
+ if ($2) {
+  $$0 = 16777392;
+  return ($$0|0);
+ }
+ $3 = (__gcry_pk_testkey($0)|0);
+ $4 = ($3|0)==(0);
+ $5 = $3 & 65535;
+ $6 = $5 | 16777216;
+ $spec$select$i$i = $4 ? 0 : $6;
+ $$0 = $spec$select$i$i;
+ return ($$0|0);
+}
+function _gcry_pk_genkey($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $spec$select$i$i 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (__gcry_global_is_operational()|0);
+ $3 = ($2|0)==(0);
+ if ($3) {
+  HEAP32[$0>>2] = 0;
+  $$0 = 16777392;
+  return ($$0|0);
+ } else {
+  $4 = (__gcry_pk_genkey($0,$1)|0);
+  $5 = ($4|0)==(0);
+  $6 = $4 & 65535;
+  $7 = $6 | 16777216;
+  $spec$select$i$i = $5 ? 0 : $7;
+  $$0 = $spec$select$i$i;
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function _gcry_md_open($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $spec$select$i$i 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_global_is_operational()|0);
+ $4 = ($3|0)==(0);
+ if ($4) {
+  HEAP32[$0>>2] = 0;
+  $$0 = 16777392;
+  return ($$0|0);
+ } else {
+  $5 = (__gcry_md_open($0,$1,$2)|0);
+  $6 = ($5|0)==(0);
+  $7 = $5 & 65535;
+  $8 = $7 | 16777216;
+  $spec$select$i$i = $6 ? 0 : $8;
+  $$0 = $spec$select$i$i;
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function _gcry_md_close($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_md_close($0);
+ return;
+}
+function _gcry_md_reset($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_md_reset($0);
+ return;
+}
+function _gcry_md_write($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_global_is_operational()|0);
+ $4 = ($3|0)==(0);
+ if ($4) {
+  return;
+ }
+ __gcry_md_write($0,$1,$2);
+ return;
+}
+function _gcry_md_read($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (__gcry_md_read($0,$1)|0);
+ return ($2|0);
+}
+function _gcry_md_hash_buffer($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $4 = 0, $5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (__gcry_global_is_operational()|0);
+ $5 = ($4|0)==(0);
+ if ($5) {
+  __gcry_fips_signal_error(43928,1175,43941,0,43961);
+ }
+ __gcry_md_hash_buffer($0,$1,$2,$3);
+ return;
+}
+function _gcry_md_get_algo($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_global_is_operational()|0);
+ $2 = ($1|0)==(0);
+ if ($2) {
+  __gcry_fips_signal_error(43928,1198,43993,0,44010);
+  $$0 = 0;
+  return ($$0|0);
+ } else {
+  $3 = (__gcry_md_get_algo($0)|0);
+  $$0 = $3;
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function _gcry_md_get_algo_dlen($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_md_get_algo_dlen($0)|0);
+ return ($1|0);
+}
+function _gcry_md_setkey($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $spec$select$i$i 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_global_is_operational()|0);
+ $4 = ($3|0)==(0);
+ if ($4) {
+  $$0 = 16777392;
+  return ($$0|0);
+ }
+ $5 = (__gcry_md_setkey($0,$1,$2)|0);
+ $6 = ($5|0)==(0);
+ $7 = $5 & 65535;
+ $8 = $7 | 16777216;
+ $spec$select$i$i = $6 ? 0 : $8;
+ $$0 = $spec$select$i$i;
+ return ($$0|0);
+}
+function _gcry_randomize($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_global_is_operational()|0);
+ $4 = ($3|0)==(0);
+ if ($4) {
+  __gcry_fips_signal_error(43928,1287,44040,1,43961);
+  __gcry_fips_noreturn();
+  // unreachable;
+ } else {
+  __gcry_randomize($0,$1,$2);
+  return;
+ }
+}
+function _gcry_create_nonce($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (__gcry_global_is_operational()|0);
+ $3 = ($2|0)==(0);
+ if ($3) {
+  __gcry_fips_signal_error(43928,1340,44055,1,43961);
+  __gcry_fips_noreturn();
+  // unreachable;
+ } else {
+  __gcry_create_nonce($0,$1);
+  return;
+ }
+}
+function _gcry_ctx_release($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_ctx_release($0);
+ return;
+}
+function _gcry_set_progress_handler($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_set_progress_handler($0,$1);
+ return;
+}
+function _gcry_set_allocation_handler($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_set_allocation_handler($0,$1,$2,$3,$4);
+ return;
+}
+function _gcry_set_fatalerror_handler($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_set_fatalerror_handler($0,$1);
+ return;
+}
+function _gcry_free($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_free($0);
+ return;
+}
+function __gcry_gettext($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return ($0|0);
+}
+function __gcry_set_fatalerror_handler($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ HEAP32[18080] = $1;
+ HEAP32[18081] = $0;
+ return;
+}
+function __gcry_fatal_error($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($1|0)==(0|0);
+ if ($2) {
+  $3 = (_gpg_strerror($0)|0);
+  $$0 = $3;
+ } else {
+  $$0 = $1;
+ }
+ $4 = HEAP32[18081]|0;
+ $5 = ($4|0)==(0|0);
+ if (!($5)) {
+  $6 = (__gcry_fips_mode()|0);
+  $7 = ($6|0)==(0);
+  if ($7) {
+   $8 = HEAP32[18081]|0;
+   $9 = HEAP32[18080]|0;
+   FUNCTION_TABLE_viii[$8 & 127]($9,$0,$$0);
+  }
+ }
+ __gcry_fips_signal_error(44073,86,44080,1,$$0);
+ _write2stderr(44098);
+ _write2stderr($$0);
+ _write2stderr(44529);
+ __gcry_secmem_term();
+ _abort();
+ // unreachable;
+}
+function _write2stderr($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_strlen($0)|0);
+ (_write(2,$0,$1)|0);
+ return;
+}
+function __gcry_set_log_verbosity($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ HEAP32[18082] = $0;
+ return;
+}
+function __gcry_log_verbosity($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[18082]|0;
+ $2 = ($1|0)>=($0|0);
+ $3 = $2&1;
+ return ($3|0);
+}
+function __gcry_logv($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, label = 0, sp 
= 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ switch ($0|0) {
+ case 30: case 20: case 10: case 0:  {
+  break;
+ }
+ case 40:  {
+  $3 = HEAP32[10138]|0;
+  (_fwrite(44113,7,1,$3)|0);
+  break;
+ }
+ case 50:  {
+  $4 = HEAP32[10138]|0;
+  (_fwrite(44121,13,1,$4)|0);
+  break;
+ }
+ case 100:  {
+  $5 = HEAP32[10138]|0;
+  (_fwrite(44135,5,1,$5)|0);
+  break;
+ }
+ default: {
+  $6 = HEAP32[10138]|0;
+  HEAP32[$vararg_buffer>>2] = $0;
+  (_fprintf($6,44141,$vararg_buffer)|0);
+ }
+ }
+ $7 = HEAP32[10138]|0;
+ (_vfprintf($7,$1,$2)|0);
+ switch ($0|0) {
+ case 40: case 50:  {
+  __gcry_fips_signal_error(44073,140,44166,1,44177);
+  __gcry_secmem_term();
+  _abort();
+  // unreachable;
+  break;
+ }
+ default: {
+  STACKTOP = sp;return;
+ }
+ }
+}
+function __gcry_log($0,$1,$varargs) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $varargs = $varargs|0;
+ var $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $2 = sp;
+ HEAP32[$2>>2] = $varargs;
+ __gcry_logv($0,$1,$2);
+ STACKTOP = sp;return;
+}
+function __gcry_bug($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ HEAP32[$vararg_buffer>>2] = $0;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $1;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = $2;
+ __gcry_log(50,44207,$vararg_buffer);
+ _abort();
+ // unreachable;
+}
+function __gcry_assert_failed($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ HEAP32[$vararg_buffer>>2] = $0;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $1;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = $2;
+ $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+ HEAP32[$vararg_ptr3>>2] = $3;
+ __gcry_log(50,44237,$vararg_buffer);
+ _abort();
+ // unreachable;
+}
+function __gcry_log_info($0,$varargs) {
+ $0 = $0|0;
+ $varargs = $varargs|0;
+ var $1 = 0, $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = sp;
+ HEAP32[$1>>2] = $varargs;
+ $2 = HEAP32[10138]|0;
+ (_vfprintf($2,$0,$1)|0);
+ STACKTOP = sp;return;
+}
+function __gcry_log_info_with_dummy_fp($0,$1,$varargs) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $varargs = $varargs|0;
+ var $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $2 = sp;
+ HEAP32[$2>>2] = $varargs;
+ $3 = HEAP32[10138]|0;
+ (_vfprintf($3,$1,$2)|0);
+ STACKTOP = sp;return 0;
+}
+function __gcry_log_error($0,$varargs) {
+ $0 = $0|0;
+ $varargs = $varargs|0;
+ var $1 = 0, $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = sp;
+ HEAP32[$1>>2] = $varargs;
+ $2 = HEAP32[10138]|0;
+ (_vfprintf($2,$0,$1)|0);
+ STACKTOP = sp;return;
+}
+function __gcry_log_fatal($0,$varargs) {
+ $0 = $0|0;
+ $varargs = $varargs|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = sp;
+ HEAP32[$1>>2] = $varargs;
+ __gcry_logv(40,$0,$1);
+ _abort();
+ // unreachable;
+}
+function __gcry_log_bug($0,$varargs) {
+ $0 = $0|0;
+ $varargs = $varargs|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = sp;
+ HEAP32[$1>>2] = $varargs;
+ __gcry_logv(50,$0,$1);
+ _abort();
+ // unreachable;
+}
+function __gcry_log_debug($0,$varargs) {
+ $0 = $0|0;
+ $varargs = $varargs|0;
+ var $1 = 0, $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = sp;
+ HEAP32[$1>>2] = $varargs;
+ $2 = HEAP32[10138]|0;
+ (_fwrite(44135,5,1,$2)|0);
+ (_vfprintf($2,$0,$1)|0);
+ STACKTOP = sp;return;
+}
+function __gcry_log_printf($0,$varargs) {
+ $0 = $0|0;
+ $varargs = $varargs|0;
+ var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = sp;
+ $2 = ($0|0)==(0|0);
+ if ($2) {
+  STACKTOP = sp;return;
+ }
+ HEAP32[$1>>2] = $varargs;
+ $3 = HEAP32[10138]|0;
+ (_vfprintf($3,$0,$1)|0);
+ STACKTOP = sp;return;
+}
+function __gcry_log_printhex($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ _do_printhex($0,44271,$1,$2);
+ return;
+}
+function _do_printhex($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$02834 = 0, $$029 = 0, $$0313237 = 0, $$035 = 0, $$035$us = 0, $$1 = 0, 
$10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 
0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
+ var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$or$cond = 0, $or$cond3 = 0, $or$cond5 = 0;
+ var $vararg_buffer = 0, $vararg_buffer11 = 0, $vararg_buffer14 = 0, 
$vararg_buffer16 = 0, $vararg_buffer2 = 0, $vararg_buffer22 = 0, 
$vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr19 = 0, 
$vararg_ptr20 = 0, $vararg_ptr21 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(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;
+ $4 = ($0|0)!=(0|0);
+ if ($4) {
+  $5 = HEAP8[$0>>0]|0;
+  $6 = ($5<<24>>24)==(0);
+  if ($6) {
+   $$029 = 0;
+   label = 5;
+  } else {
+   HEAP32[$vararg_buffer>>2] = $0;
+   $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+   HEAP32[$vararg_ptr1>>2] = $1;
+   __gcry_log_debug(44273,$vararg_buffer);
+   $7 = ((($1)) + 1|0);
+   $8 = HEAP8[$7>>0]|0;
+   $9 = ($8<<24>>24)==(91);
+   $10 = ($3|0)!=(0);
+   $or$cond = $10 & $9;
+   $11 = ($2|0)!=(0|0);
+   $or$cond3 = $11 & $or$cond;
+   if ($or$cond3) {
+    __gcry_log_printf(44529,$vararg_buffer2);
+    $12 = (_strlen($0)|0);
+    HEAP32[$vararg_buffer4>>2] = $12;
+    $vararg_ptr7 = ((($vararg_buffer4)) + 4|0);
+    HEAP32[$vararg_ptr7>>2] = 73338;
+    __gcry_log_debug(44279,$vararg_buffer4);
+    $13 = (($3) + -1)|0;
+    $$0313237 = 44271;$34 = $13;
+    label = 9;
+   } else {
+    $$029 = 1;
+    label = 5;
+   }
+  }
+ } else {
+  $$029 = 0;
+  label = 5;
+ }
+ if ((label|0) == 5) {
+  $14 = ($3|0)==(0);
+  if (!($14)) {
+   $15 = (($3) + -1)|0;
+   $16 = ($$029|0)==(0);
+   if ($16) {
+    $$035$us = $2;$21 = $15;
+    while(1) {
+     $17 = HEAP8[$$035$us>>0]|0;
+     $18 = $17&255;
+     HEAP32[$vararg_buffer8>>2] = $18;
+     __gcry_log_printf(44285,$vararg_buffer8);
+     $19 = ((($$035$us)) + 1|0);
+     $20 = (($21) + -1)|0;
+     $22 = ($21|0)==(0);
+     if ($22) {
+      break;
+     } else {
+      $$035$us = $19;$21 = $20;
+     }
+    }
+   } else {
+    $$0313237 = $1;$34 = $15;
+    label = 9;
+   }
+  }
+ }
+ if ((label|0) == 9) {
+  $$02834 = 0;$$035 = $2;$28 = $34;
+  while(1) {
+   $23 = HEAP8[$$035>>0]|0;
+   $24 = $23&255;
+   HEAP32[$vararg_buffer11>>2] = $24;
+   __gcry_log_printf(44285,$vararg_buffer11);
+   $25 = (($$02834) + 1)|0;
+   $26 = ($25|0)==(32);
+   $27 = ($28|0)!=(0);
+   $or$cond5 = $27 & $26;
+   if ($or$cond5) {
+    __gcry_log_printf(44290,$vararg_buffer14);
+    $29 = (_strlen($0)|0);
+    $30 = (_strlen($$0313237)|0);
+    HEAP32[$vararg_buffer16>>2] = $29;
+    $vararg_ptr19 = ((($vararg_buffer16)) + 4|0);
+    HEAP32[$vararg_ptr19>>2] = 73338;
+    $vararg_ptr20 = ((($vararg_buffer16)) + 8|0);
+    HEAP32[$vararg_ptr20>>2] = $30;
+    $vararg_ptr21 = ((($vararg_buffer16)) + 12|0);
+    HEAP32[$vararg_ptr21>>2] = 73338;
+    __gcry_log_debug(44294,$vararg_buffer16);
+    $$1 = 0;
+   } else {
+    $$1 = $25;
+   }
+   $31 = ((($$035)) + 1|0);
+   $32 = (($28) + -1)|0;
+   $33 = ($28|0)==(0);
+   if ($33) {
+    break;
+   } else {
+    $$02834 = $$1;$$035 = $31;$28 = $32;
+   }
+  }
+ }
+ if (!($4)) {
+  STACKTOP = sp;return;
+ }
+ __gcry_log_printf(44529,$vararg_buffer22);
+ STACKTOP = sp;return;
+}
+function __gcry_log_printmpi($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, 
$26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 
0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer11 = 0, $vararg_buffer2 = 
0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(80|0);
+ $vararg_buffer11 = sp + 64|0;
+ $vararg_buffer7 = sp + 56|0;
+ $vararg_buffer4 = sp + 48|0;
+ $vararg_buffer2 = sp + 40|0;
+ $vararg_buffer = sp + 32|0;
+ $2 = sp + 76|0;
+ $3 = sp + 72|0;
+ $4 = sp + 68|0;
+ $5 = sp;
+ $6 = ($1|0)==(0|0);
+ if ($6) {
+  $7 = ($0|0)==(0|0);
+  $8 = $7 ? 44271 : $0;
+  $9 = HEAP8[$8>>0]|0;
+  $10 = ($9<<24>>24)==(0);
+  if (!($10)) {
+   HEAP32[$vararg_buffer>>2] = $8;
+   $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+   HEAP32[$vararg_ptr1>>2] = 44302;
+   __gcry_log_debug(44273,$vararg_buffer);
+  }
+  __gcry_log_printf(44529,$vararg_buffer2);
+  STACKTOP = sp;return;
+ }
+ $11 = ((($1)) + 12|0);
+ $12 = HEAP32[$11>>2]|0;
+ $13 = $12 & 4;
+ $14 = ($13|0)==(0);
+ if (!($14)) {
+  $15 = (__gcry_mpi_get_opaque($1,$4)|0);
+  $16 = HEAP32[$4>>2]|0;
+  HEAP32[$vararg_buffer4>>2] = $16;
+  (_snprintf($5,30,44310,$vararg_buffer4)|0);
+  $17 = ($0|0)==(0|0);
+  $18 = $17 ? 44271 : $0;
+  $19 = HEAP32[$4>>2]|0;
+  $20 = (($19) + 7)|0;
+  $21 = $20 >>> 3;
+  _do_printhex($18,$5,$15,$21);
+  STACKTOP = sp;return;
+ }
+ $22 = (__gcry_mpi_get_buffer($1,0,$2,$3)|0);
+ $23 = ($22|0)==(0|0);
+ if ($23) {
+  $24 = ($0|0)==(0|0);
+  $25 = $24 ? 44271 : $0;
+  $26 = HEAP8[$25>>0]|0;
+  $27 = ($26<<24>>24)==(0);
+  if (!($27)) {
+   HEAP32[$vararg_buffer7>>2] = $25;
+   $vararg_ptr10 = ((($vararg_buffer7)) + 4|0);
+   HEAP32[$vararg_ptr10>>2] = 44320;
+   __gcry_log_debug(44273,$vararg_buffer7);
+  }
+  __gcry_log_printf(44529,$vararg_buffer11);
+  STACKTOP = sp;return;
+ }
+ $28 = HEAP32[$2>>2]|0;
+ $29 = ($28|0)==(0);
+ $30 = HEAP32[$3>>2]|0;
+ $31 = ($30|0)==(0);
+ $32 = $31 ? 44335 : 44337;
+ if ($29) {
+  _do_printhex($0,$32,73338,1);
+ } else {
+  _do_printhex($0,$32,$22,$28);
+ }
+ __gcry_free($22);
+ STACKTOP = sp;return;
+}
+function ___gcry_burn_stack($0) {
+ $0 = $0|0;
+ var $$1 = 0, $$135 = 0, $$alloca_mul = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, 
$13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0);
+ $2 = $1&1;
+ $3 = (($0) + 63)|0;
+ $4 = (($3) + ($2))|0;
+ $5 = $4 & -64;
+ $$alloca_mul = $5;
+ $6 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if 
((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(((((1*$$alloca_mul)|0)+15)&-16)|0);;
+ $7 = ($5|0)==(0);
+ if ($7) {
+  STACKTOP = sp;return;
+ }
+ $$1 = $6;$$135 = $5;
+ while(1) {
+  $8 = $$1;
+  $9 = $8;
+  HEAP32[$9>>2] = 0;
+  $10 = (($8) + 4)|0;
+  $11 = $10;
+  HEAP32[$11>>2] = 0;
+  $12 = (($$135) + -8)|0;
+  $13 = ((($$1)) + 8|0);
+  $14 = ($12|0)==(0);
+  if ($14) {
+   break;
+  } else {
+   $$1 = $13;$$135 = $12;
+  }
+ }
+ STACKTOP = sp;return;
+}
+function ___gcry_burn_stack_dummy() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return;
+}
+function __gcry_divide_by_zero() {
+ var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ _gpg_err_set_errno(33);
+ $0 = (___errno_location()|0);
+ $1 = HEAP32[$0>>2]|0;
+ $2 = (_gpg_err_code_from_errno($1)|0);
+ __gcry_fatal_error($2,44339);
+ // unreachable;
+}
+function __gcry_global_is_operational() {
+ var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[18083]|0;
+ $1 = ($0|0)==(0);
+ if ($1) {
+  _global_init();
+ }
+ $2 = (__gcry_fips_is_operational()|0);
+ return ($2|0);
+}
+function _global_init() {
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 
0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[18083]|0;
+ $1 = ($0|0)==(0);
+ if (!($1)) {
+  return;
+ }
+ HEAP32[18083] = 1;
+ __gcry_set_preferred_rng_type(0);
+ $2 = HEAP32[18084]|0;
+ __gcry_initialize_fips_mode($2);
+ __gcry_detect_hw_features();
+ $3 = (__gcry_cipher_init()|0);
+ $4 = ($3|0)==(0);
+ if ($4) {
+  $5 = (__gcry_md_init()|0);
+  $6 = ($5|0)==(0);
+  if ($6) {
+   $7 = (__gcry_pk_init()|0);
+   $8 = ($7|0)==(0);
+   if ($8) {
+    $9 = (__gcry_primegen_init()|0);
+    $10 = ($9|0)==(0);
+    if ($10) {
+     $11 = (__gcry_secmem_module_init()|0);
+     $12 = ($11|0)==(0);
+     if ($12) {
+      $13 = (__gcry_mpi_init()|0);
+      $14 = ($13|0)==(0);
+      if ($14) {
+       return;
+      }
+     }
+    }
+   }
+  }
+ }
+ __gcry_bug(44354,123,44363);
+ // unreachable;
+}
+function __gcry_check_version($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$01217$i$i29 = 0, $$01217$i44 = 0, $$01217$i59 = 0, $$018$i$i28 
= 0, $$018$i43 = 0, $$018$i58 = 0, $$096 = 0, $$194 = 0, $$2 = 0, $1 = 0, $10 = 
0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
+ var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, 
$26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, 
$34 = 0, $35 = 0, $36 = 0;
+ var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, 
$52 = 0, $53 = 0, $54 = 0;
+ var $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $isdigit$i$i31 = 0, 
$isdigit$i46 = 0, $isdigit$i61 = 0, $isdigit14$i$i = 0, $isdigit14$i37 = 0, 
$isdigit14$i52 = 0, $isdigit16$i$i = 0, $isdigit16$i39 = 0, $isdigit16$i54 = 0, 
$isdigittmp$i$i30 = 0, $isdigittmp$i45 = 0, $isdigittmp$i60 = 0, 
$isdigittmp13$i$i = 0, $isdigittmp13$i36 = 0;
+ var $isdigittmp13$i51 = 0, $isdigittmp15$i$i = 0, $isdigittmp15$i38 = 0, 
$isdigittmp15$i53 = 0, $isdigittmp19$i$i27 = 0, $isdigittmp19$i42 = 0, 
$isdigittmp19$i57 = 0, $or$cond108 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  _global_init();
+  $$0 = 44375;
+  return ($$0|0);
+ }
+ $2 = HEAP8[$0>>0]|0;
+ $3 = ($2<<24>>24)==(1);
+ if ($3) {
+  $4 = ((($0)) + 1|0);
+  $5 = HEAP8[$4>>0]|0;
+  $6 = ($5<<24>>24)==(1);
+  if ($6) {
+   $7 = (__gcry_compat_identification()|0);
+   $$0 = $7;
+   return ($$0|0);
+  }
+ }
+ _global_init();
+ $8 = HEAP8[$0>>0]|0;
+ $9 = ($8<<24>>24)==(48);
+ if ($9) {
+  $10 = ((($0)) + 1|0);
+  $11 = HEAP8[$10>>0]|0;
+  $12 = $11 << 24 >> 24;
+  $isdigittmp13$i$i = (($12) + -48)|0;
+  $isdigit14$i$i = ($isdigittmp13$i$i>>>0)<(10);
+  if ($isdigit14$i$i) {
+   $$0 = 0;
+   return ($$0|0);
+  }
+ }
+ $13 = $8 << 24 >> 24;
+ $isdigittmp15$i$i = (($13) + -48)|0;
+ $isdigit16$i$i = ($isdigittmp15$i$i>>>0)<(10);
+ if ($isdigit16$i$i) {
+  $$01217$i$i29 = $0;$$018$i$i28 = 0;$isdigittmp19$i$i27 = $isdigittmp15$i$i;
+  while(1) {
+   $14 = ($$018$i$i28*10)|0;
+   $15 = (($14) + ($isdigittmp19$i$i27))|0;
+   $16 = ((($$01217$i$i29)) + 1|0);
+   $17 = HEAP8[$16>>0]|0;
+   $18 = $17 << 24 >> 24;
+   $isdigittmp$i$i30 = (($18) + -48)|0;
+   $isdigit$i$i31 = ($isdigittmp$i$i30>>>0)<(10);
+   if ($isdigit$i$i31) {
+    $$01217$i$i29 = $16;$$018$i$i28 = $15;$isdigittmp19$i$i27 = 
$isdigittmp$i$i30;
+   } else {
+    break;
+   }
+  }
+  $19 = ($15|0)<(0);
+  if ($19) {
+   $$0 = 0;
+   return ($$0|0);
+  } else {
+   $$096 = $15;$21 = $17;$23 = $16;
+  }
+ } else {
+  $$096 = 0;$21 = $8;$23 = $0;
+ }
+ $20 = ($21<<24>>24)==(46);
+ if (!($20)) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $22 = ((($23)) + 1|0);
+ $24 = HEAP8[$22>>0]|0;
+ $25 = ($24<<24>>24)==(48);
+ if ($25) {
+  $26 = ((($23)) + 2|0);
+  $27 = HEAP8[$26>>0]|0;
+  $28 = $27 << 24 >> 24;
+  $isdigittmp13$i36 = (($28) + -48)|0;
+  $isdigit14$i37 = ($isdigittmp13$i36>>>0)<(10);
+  if ($isdigit14$i37) {
+   $$0 = 0;
+   return ($$0|0);
+  }
+ }
+ $29 = $24 << 24 >> 24;
+ $isdigittmp15$i38 = (($29) + -48)|0;
+ $isdigit16$i39 = ($isdigittmp15$i38>>>0)<(10);
+ if ($isdigit16$i39) {
+  $$01217$i44 = $22;$$018$i43 = 0;$isdigittmp19$i42 = $isdigittmp15$i38;
+  while(1) {
+   $30 = ($$018$i43*10)|0;
+   $31 = (($30) + ($isdigittmp19$i42))|0;
+   $32 = ((($$01217$i44)) + 1|0);
+   $33 = HEAP8[$32>>0]|0;
+   $34 = $33 << 24 >> 24;
+   $isdigittmp$i45 = (($34) + -48)|0;
+   $isdigit$i46 = ($isdigittmp$i45>>>0)<(10);
+   if ($isdigit$i46) {
+    $$01217$i44 = $32;$$018$i43 = $31;$isdigittmp19$i42 = $isdigittmp$i45;
+   } else {
+    break;
+   }
+  }
+  $35 = ($31|0)<(0);
+  if ($35) {
+   $$0 = 0;
+   return ($$0|0);
+  } else {
+   $$194 = $31;$37 = $33;$39 = $32;
+  }
+ } else {
+  $$194 = 0;$37 = $24;$39 = $22;
+ }
+ $36 = ($37<<24>>24)==(46);
+ if (!($36)) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $38 = ((($39)) + 1|0);
+ $40 = HEAP8[$38>>0]|0;
+ $41 = ($40<<24>>24)==(48);
+ if ($41) {
+  $42 = ((($39)) + 2|0);
+  $43 = HEAP8[$42>>0]|0;
+  $44 = $43 << 24 >> 24;
+  $isdigittmp13$i51 = (($44) + -48)|0;
+  $isdigit14$i52 = ($isdigittmp13$i51>>>0)<(10);
+  if ($isdigit14$i52) {
+   $$0 = 0;
+   return ($$0|0);
+  }
+ }
+ $45 = $40 << 24 >> 24;
+ $isdigittmp15$i53 = (($45) + -48)|0;
+ $isdigit16$i54 = ($isdigittmp15$i53>>>0)<(10);
+ if ($isdigit16$i54) {
+  $$01217$i59 = $38;$$018$i58 = 0;$isdigittmp19$i57 = $isdigittmp15$i53;
+  while(1) {
+   $46 = ($$018$i58*10)|0;
+   $47 = (($46) + ($isdigittmp19$i57))|0;
+   $48 = ((($$01217$i59)) + 1|0);
+   $49 = HEAP8[$48>>0]|0;
+   $50 = $49 << 24 >> 24;
+   $isdigittmp$i60 = (($50) + -48)|0;
+   $isdigit$i61 = ($isdigittmp$i60>>>0)<(10);
+   if ($isdigit$i61) {
+    $$01217$i59 = $48;$$018$i58 = $47;$isdigittmp19$i57 = $isdigittmp$i60;
+   } else {
+    break;
+   }
+  }
+  $51 = ($47|0)<(0);
+  if ($51) {
+   $$0 = 0;
+   return ($$0|0);
+  } else {
+   $$2 = $47;
+  }
+ } else {
+  $$2 = 0;
+ }
+ $52 = ($$096|0)<(1);
+ if ($52) {
+  $$0 = 44375;
+  return ($$0|0);
+ }
+ $53 = ($$096|0)==(1);
+ if ($53) {
+  $54 = ($$194|0)<(7);
+  if ($54) {
+   $$0 = 44375;
+   return ($$0|0);
+  }
+  $55 = ($$194|0)==(7);
+  $56 = ($$2|0)==(0);
+  $or$cond108 = $55 & $56;
+  if ($or$cond108) {
+   $$0 = 44375;
+   return ($$0|0);
+  }
+ }
+ $$0 = 0;
+ return ($$0|0);
+}
+function __gcry_vcontrol($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0$i = 0, $$03536$i = 0, $$2 = 0, $$lobit = 0, $10 = 0, $100 = 0, $101 = 
0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 
0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0;
+ var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 
= 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 
= 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0;
+ var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, 
$139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, 
$146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0;
+ var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, 
$157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, 
$164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0;
+ var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 
= 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 
= 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0;
+ var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 
= 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 
0, $200 = 0, $201 = 0, $202 = 0, $203 = 0;
+ var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 
= 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 
= 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0;
+ var $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, 
$229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, 
$236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0;
+ var $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, 
$247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, 
$254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0;
+ var $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $27 = 0, $28 = 0, $29 = 
0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 
0, $38 = 0, $39 = 0, $4 = 0;
+ var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, 
$48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, 
$56 = 0, $57 = 0, $58 = 0;
+ var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, 
$66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, 
$74 = 0, $75 = 0, $76 = 0;
+ var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, 
$84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, 
$92 = 0, $93 = 0, $94 = 0;
+ var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, 
$arglist_current101 = 0, $arglist_current104 = 0, $arglist_current107 = 0, 
$arglist_current11 = 0, $arglist_current110 = 0, $arglist_current14 = 0, 
$arglist_current17 = 0, $arglist_current2 = 0, $arglist_current20 = 0, 
$arglist_current5 = 0, $arglist_current65 = 0, $arglist_current68 = 0, 
$arglist_current71 = 0, $arglist_current74 = 0;
+ var $arglist_current77 = 0, $arglist_current8 = 0, $arglist_current80 = 0, 
$arglist_current83 = 0, $arglist_current86 = 0, $arglist_current89 = 0, 
$arglist_current92 = 0, $arglist_current95 = 0, $arglist_current98 = 0, 
$arglist_next = 0, $arglist_next102 = 0, $arglist_next105 = 0, $arglist_next108 
= 0, $arglist_next111 = 0, $arglist_next12 = 0, $arglist_next15 = 0, 
$arglist_next18 = 0, $arglist_next21 = 0, $arglist_next3 = 0, $arglist_next6 = 
0;
+ var $arglist_next66 = 0, $arglist_next69 = 0, $arglist_next72 = 0, 
$arglist_next75 = 0, $arglist_next78 = 0, $arglist_next81 = 0, $arglist_next84 
= 0, $arglist_next87 = 0, $arglist_next9 = 0, $arglist_next90 = 0, 
$arglist_next93 = 0, $arglist_next96 = 0, $arglist_next99 = 0, $expanded = 0, 
$expanded112 = 0, $expanded114 = 0, $expanded115 = 0, $expanded116 = 0, 
$expanded118 = 0, $expanded119 = 0;
+ var $expanded121 = 0, $expanded122 = 0, $expanded123 = 0, $expanded125 = 0, 
$expanded126 = 0, $expanded128 = 0, $expanded129 = 0, $expanded130 = 0, 
$expanded132 = 0, $expanded133 = 0, $expanded135 = 0, $expanded136 = 0, 
$expanded137 = 0, $expanded139 = 0, $expanded140 = 0, $expanded142 = 0, 
$expanded143 = 0, $expanded144 = 0, $expanded146 = 0, $expanded147 = 0;
+ var $expanded149 = 0, $expanded150 = 0, $expanded151 = 0, $expanded153 = 0, 
$expanded154 = 0, $expanded156 = 0, $expanded157 = 0, $expanded158 = 0, 
$expanded160 = 0, $expanded161 = 0, $expanded163 = 0, $expanded164 = 0, 
$expanded165 = 0, $expanded167 = 0, $expanded168 = 0, $expanded170 = 0, 
$expanded171 = 0, $expanded172 = 0, $expanded174 = 0, $expanded175 = 0;
+ var $expanded177 = 0, $expanded178 = 0, $expanded179 = 0, $expanded181 = 0, 
$expanded182 = 0, $expanded184 = 0, $expanded185 = 0, $expanded186 = 0, 
$expanded188 = 0, $expanded189 = 0, $expanded191 = 0, $expanded192 = 0, 
$expanded193 = 0, $expanded195 = 0, $expanded196 = 0, $expanded198 = 0, 
$expanded199 = 0, $expanded200 = 0, $expanded202 = 0, $expanded203 = 0;
+ var $expanded205 = 0, $expanded206 = 0, $expanded207 = 0, $expanded209 = 0, 
$expanded210 = 0, $expanded212 = 0, $expanded213 = 0, $expanded214 = 0, 
$expanded216 = 0, $expanded217 = 0, $expanded219 = 0, $expanded220 = 0, 
$expanded221 = 0, $expanded223 = 0, $expanded224 = 0, $expanded226 = 0, 
$expanded227 = 0, $expanded228 = 0, $expanded230 = 0, $expanded231 = 0;
+ var $expanded233 = 0, $expanded234 = 0, $expanded235 = 0, $expanded237 = 0, 
$expanded238 = 0, $expanded240 = 0, $expanded241 = 0, $expanded242 = 0, 
$expanded244 = 0, $expanded245 = 0, $expanded247 = 0, $expanded248 = 0, 
$expanded249 = 0, $expanded251 = 0, $expanded252 = 0, $expanded254 = 0, 
$expanded255 = 0, $expanded256 = 0, $expanded258 = 0, $expanded259 = 0;
+ var $expanded261 = 0, $expanded262 = 0, $expanded263 = 0, $expanded265 = 0, 
$expanded266 = 0, $expanded268 = 0, $expanded269 = 0, $expanded270 = 0, 
$expanded272 = 0, $expanded273 = 0, $expanded275 = 0, $expanded276 = 0, 
$expanded277 = 0, $spec$select = 0, $spec$select105 = 0, $spec$select106 = 0, 
$spec$select107 = 0, $vararg_buffer = 0, $vararg_buffer22 = 0, $vararg_buffer26 
= 0;
+ var $vararg_buffer30 = 0, $vararg_buffer34 = 0, $vararg_buffer37 = 0, 
$vararg_buffer40 = 0, $vararg_buffer44 = 0, $vararg_buffer47 = 0, 
$vararg_buffer51 = 0, $vararg_buffer54 = 0, $vararg_buffer59 = 0, $vararg_ptr57 
= 0, $vararg_ptr62 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(112|0);
+ $vararg_buffer59 = sp + 88|0;
+ $vararg_buffer54 = sp + 80|0;
+ $vararg_buffer51 = sp + 72|0;
+ $vararg_buffer47 = sp + 64|0;
+ $vararg_buffer44 = sp + 56|0;
+ $vararg_buffer40 = sp + 48|0;
+ $vararg_buffer37 = sp + 40|0;
+ $vararg_buffer34 = sp + 32|0;
+ $vararg_buffer30 = sp + 24|0;
+ $vararg_buffer26 = sp + 16|0;
+ $vararg_buffer22 = sp + 8|0;
+ $vararg_buffer = sp;
+ $2 = sp + 96|0;
+ do {
+  switch ($0|0) {
+  case 31:  {
+   __gcry_private_enable_m_guard();
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 44:  {
+   __gcry_set_preferred_rng_type(0);
+   __gcry_enable_quick_random_gen();
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 51:  {
+   $3 = (__gcry_random_is_faked()|0);
+   $4 = ($3|0)!=(0);
+   $spec$select = $4&1;
+   $$2 = $spec$select;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 13:  {
+   __gcry_random_dump_stats();
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 14:  {
+   __gcry_secmem_dump_stats();
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 30:  {
+   _global_init();
+   __gcry_secmem_init(0);
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 37:  {
+   _global_init();
+   HEAP32[18085] = 1;
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 24:  {
+   _global_init();
+   $arglist_current = HEAP32[$1>>2]|0;
+   $5 = $arglist_current;
+   $6 = ((0) + 4|0);
+   $expanded112 = $6;
+   $expanded = (($expanded112) - 1)|0;
+   $7 = (($5) + ($expanded))|0;
+   $8 = ((0) + 4|0);
+   $expanded116 = $8;
+   $expanded115 = (($expanded116) - 1)|0;
+   $expanded114 = $expanded115 ^ -1;
+   $9 = $7 & $expanded114;
+   $10 = $9;
+   $11 = HEAP32[$10>>2]|0;
+   $arglist_next = ((($10)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next;
+   __gcry_secmem_init($11);
+   $12 = (__gcry_secmem_get_flags()|0);
+   $13 = $12 >>> 2;
+   $$lobit = $13 & 1;
+   $$2 = $$lobit;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 25:  {
+   _global_init();
+   __gcry_secmem_term();
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 27:  {
+   __gcry_set_preferred_rng_type(0);
+   $14 = (__gcry_secmem_get_flags()|0);
+   $15 = $14 | 1;
+   __gcry_secmem_set_flags($15);
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 28:  {
+   __gcry_set_preferred_rng_type(0);
+   $16 = (__gcry_secmem_get_flags()|0);
+   $17 = $16 | 2;
+   __gcry_secmem_set_flags($17);
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 29:  {
+   __gcry_set_preferred_rng_type(0);
+   $18 = (__gcry_secmem_get_flags()|0);
+   $19 = $18 & -3;
+   __gcry_secmem_set_flags($19);
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 22:  {
+   _global_init();
+   __gcry_secure_random_alloc();
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 45:  {
+   __gcry_set_preferred_rng_type(0);
+   $arglist_current2 = HEAP32[$1>>2]|0;
+   $20 = $arglist_current2;
+   $21 = ((0) + 4|0);
+   $expanded119 = $21;
+   $expanded118 = (($expanded119) - 1)|0;
+   $22 = (($20) + ($expanded118))|0;
+   $23 = ((0) + 4|0);
+   $expanded123 = $23;
+   $expanded122 = (($expanded123) - 1)|0;
+   $expanded121 = $expanded122 ^ -1;
+   $24 = $22 & $expanded121;
+   $25 = $24;
+   $26 = HEAP32[$25>>2]|0;
+   $arglist_next3 = ((($25)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next3;
+   __gcry_set_random_seed_file($26);
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 46:  {
+   __gcry_set_preferred_rng_type(0);
+   $27 = HEAP32[18083]|0;
+   $28 = ($27|0)==(0);
+   if ($28) {
+    _global_init();
+   }
+   $29 = (__gcry_fips_is_operational()|0);
+   $30 = ($29|0)==(0);
+   if ($30) {
+    $$2 = 0;
+    STACKTOP = sp;return ($$2|0);
+   }
+   __gcry_update_random_seed_file();
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 19:  {
+   __gcry_set_preferred_rng_type(0);
+   $arglist_current5 = HEAP32[$1>>2]|0;
+   $31 = $arglist_current5;
+   $32 = ((0) + 4|0);
+   $expanded126 = $32;
+   $expanded125 = (($expanded126) - 1)|0;
+   $33 = (($31) + ($expanded125))|0;
+   $34 = ((0) + 4|0);
+   $expanded130 = $34;
+   $expanded129 = (($expanded130) - 1)|0;
+   $expanded128 = $expanded129 ^ -1;
+   $35 = $33 & $expanded128;
+   $36 = $35;
+   $37 = HEAP32[$36>>2]|0;
+   $arglist_next6 = ((($36)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next6;
+   __gcry_set_log_verbosity($37);
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 20:  {
+   $arglist_current8 = HEAP32[$1>>2]|0;
+   $38 = $arglist_current8;
+   $39 = ((0) + 4|0);
+   $expanded133 = $39;
+   $expanded132 = (($expanded133) - 1)|0;
+   $40 = (($38) + ($expanded132))|0;
+   $41 = ((0) + 4|0);
+   $expanded137 = $41;
+   $expanded136 = (($expanded137) - 1)|0;
+   $expanded135 = $expanded136 ^ -1;
+   $42 = $40 & $expanded135;
+   $43 = $42;
+   $44 = HEAP32[$43>>2]|0;
+   $arglist_next9 = ((($43)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next9;
+   $45 = HEAP32[18086]|0;
+   $46 = $45 | $44;
+   HEAP32[18086] = $46;
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 21:  {
+   $arglist_current11 = HEAP32[$1>>2]|0;
+   $47 = $arglist_current11;
+   $48 = ((0) + 4|0);
+   $expanded140 = $48;
+   $expanded139 = (($expanded140) - 1)|0;
+   $49 = (($47) + ($expanded139))|0;
+   $50 = ((0) + 4|0);
+   $expanded144 = $50;
+   $expanded143 = (($expanded144) - 1)|0;
+   $expanded142 = $expanded143 ^ -1;
+   $51 = $49 & $expanded142;
+   $52 = $51;
+   $53 = HEAP32[$52>>2]|0;
+   $arglist_next12 = ((($52)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next12;
+   $54 = $53 ^ -1;
+   $55 = HEAP32[18086]|0;
+   $56 = $55 & $54;
+   HEAP32[18086] = $56;
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 36:  {
+   _global_init();
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 40:  {
+   $57 = HEAP32[18083]|0;
+   $$2 = $57;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 39:  {
+   $58 = HEAP32[18087]|0;
+   $$2 = $58;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 38:  {
+   $59 = HEAP32[18087]|0;
+   $60 = ($59|0)==(0);
+   if (!($60)) {
+    $$2 = 0;
+    STACKTOP = sp;return ($$2|0);
+   }
+   _global_init();
+   __gcry_random_initialize(0);
+   HEAP32[18087] = 1;
+   $61 = HEAP32[18083]|0;
+   $62 = ($61|0)==(0);
+   if ($62) {
+    _global_init();
+   }
+   (__gcry_fips_is_operational()|0);
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 47:  {
+   __gcry_set_preferred_rng_type(0);
+   _global_init();
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 48:  {
+   __gcry_set_preferred_rng_type(0);
+   __gcry_random_initialize(1);
+   $63 = HEAP32[18083]|0;
+   $64 = ($63|0)==(0);
+   if ($64) {
+    _global_init();
+   }
+   $65 = (__gcry_fips_is_operational()|0);
+   $66 = ($65|0)==(0);
+   if ($66) {
+    $$2 = 0;
+    STACKTOP = sp;return ($$2|0);
+   }
+   __gcry_fast_random_poll();
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 52:  {
+   $$2 = 16777276;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 49:  {
+   __gcry_set_preferred_rng_type(0);
+   $arglist_current14 = HEAP32[$1>>2]|0;
+   $67 = $arglist_current14;
+   $68 = ((0) + 4|0);
+   $expanded147 = $68;
+   $expanded146 = (($expanded147) - 1)|0;
+   $69 = (($67) + ($expanded146))|0;
+   $70 = ((0) + 4|0);
+   $expanded151 = $70;
+   $expanded150 = (($expanded151) - 1)|0;
+   $expanded149 = $expanded150 ^ -1;
+   $71 = $69 & $expanded149;
+   $72 = $71;
+   $73 = HEAP32[$72>>2]|0;
+   $arglist_next15 = ((($72)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next15;
+   __gcry_set_random_daemon_socket($73);
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 50:  {
+   __gcry_set_preferred_rng_type(0);
+   __gcry_random_initialize(1);
+   $arglist_current17 = HEAP32[$1>>2]|0;
+   $74 = $arglist_current17;
+   $75 = ((0) + 4|0);
+   $expanded154 = $75;
+   $expanded153 = (($expanded154) - 1)|0;
+   $76 = (($74) + ($expanded153))|0;
+   $77 = ((0) + 4|0);
+   $expanded158 = $77;
+   $expanded157 = (($expanded158) - 1)|0;
+   $expanded156 = $expanded157 ^ -1;
+   $78 = $76 & $expanded156;
+   $79 = $78;
+   $80 = HEAP32[$79>>2]|0;
+   $arglist_next18 = ((($79)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next18;
+   $81 = ($80|0)!=(0);
+   $82 = $81&1;
+   (__gcry_use_random_daemon($82)|0);
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 70:  {
+   __gcry_random_close_fds();
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 53:  {
+   $arglist_current20 = HEAP32[$1>>2]|0;
+   $83 = $arglist_current20;
+   $84 = ((0) + 4|0);
+   $expanded161 = $84;
+   $expanded160 = (($expanded161) - 1)|0;
+   $85 = (($83) + ($expanded160))|0;
+   $86 = ((0) + 4|0);
+   $expanded165 = $86;
+   $expanded164 = (($expanded165) - 1)|0;
+   $expanded163 = $expanded164 ^ -1;
+   $87 = $85 & $expanded163;
+   $88 = $87;
+   $89 = HEAP32[$88>>2]|0;
+   $arglist_next21 = ((($88)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next21;
+   __gcry_set_preferred_rng_type(0);
+   $90 = ($89|0)==(0|0);
+   $91 = $90 ? 58 : 59;
+   HEAP32[$vararg_buffer>>2] = 44375;
+   (FUNCTION_TABLE_iiii[$91 & 127]($89,44389,$vararg_buffer)|0);
+   HEAP32[$vararg_buffer22>>2] = 44415;
+   (FUNCTION_TABLE_iiii[$91 & 127]($89,44402,$vararg_buffer22)|0);
+   HEAP32[$vararg_buffer26>>2] = 44440;
+   (FUNCTION_TABLE_iiii[$91 & 127]($89,44427,$vararg_buffer26)|0);
+   HEAP32[$vararg_buffer30>>2] = 44461;
+   (FUNCTION_TABLE_iiii[$91 & 127]($89,44448,$vararg_buffer30)|0);
+   (FUNCTION_TABLE_iiii[$91 & 127]($89,44475,$vararg_buffer34)|0);
+   (FUNCTION_TABLE_iiii[$91 & 127]($89,44491,$vararg_buffer37)|0);
+   $92 = (__gcry_mpi_get_hw_config()|0);
+   HEAP32[$vararg_buffer40>>2] = $92;
+   (FUNCTION_TABLE_iiii[$91 & 127]($89,44503,$vararg_buffer40)|0);
+   $93 = (__gcry_get_hw_features()|0);
+   (FUNCTION_TABLE_iiii[$91 & 127]($89,44516,$vararg_buffer44)|0);
+   $94 = (__gcry_enum_hw_features(0,$2)|0);
+   $95 = ($94|0)==(0|0);
+   if (!($95)) {
+    $$03536$i = 0;$99 = $94;
+    while(1) {
+     $96 = HEAP32[$2>>2]|0;
+     $97 = $96 & $93;
+     $98 = ($97|0)==(0);
+     if (!($98)) {
+      HEAP32[$vararg_buffer47>>2] = $99;
+      (FUNCTION_TABLE_iiii[$91 & 127]($89,44525,$vararg_buffer47)|0);
+     }
+     $100 = (($$03536$i) + 1)|0;
+     $101 = (__gcry_enum_hw_features($100,$2)|0);
+     $102 = ($101|0)==(0|0);
+     if ($102) {
+      break;
+     } else {
+      $$03536$i = $100;$99 = $101;
+     }
+    }
+   }
+   (FUNCTION_TABLE_iiii[$91 & 127]($89,44529,$vararg_buffer51)|0);
+   $103 = (__gcry_fips_mode()|0);
+   $104 = ($103|0)==(0);
+   $105 = $104 ? 110 : 121;
+   $106 = (__gcry_enforced_fips_mode()|0);
+   $107 = ($106|0)==(0);
+   $108 = $107 ? 110 : 121;
+   HEAP32[$vararg_buffer54>>2] = $105;
+   $vararg_ptr57 = ((($vararg_buffer54)) + 4|0);
+   HEAP32[$vararg_ptr57>>2] = $108;
+   (FUNCTION_TABLE_iiii[$91 & 127]($89,44531,$vararg_buffer54)|0);
+   $109 = (__gcry_get_rng_type(0)|0);
+   switch ($109|0) {
+   case 1:  {
+    $$0$i = 44574;
+    break;
+   }
+   case 2:  {
+    $$0$i = 44569;
+    break;
+   }
+   case 3:  {
+    $$0$i = 44562;
+    break;
+   }
+   default: {
+    __gcry_bug(44354,321,44549);
+    // unreachable;
+   }
+   }
+   HEAP32[$vararg_buffer59>>2] = $$0$i;
+   $vararg_ptr62 = ((($vararg_buffer59)) + 4|0);
+   HEAP32[$vararg_ptr62>>2] = $109;
+   (FUNCTION_TABLE_iiii[$91 & 127]($89,44583,$vararg_buffer59)|0);
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 54:  {
+   __gcry_set_preferred_rng_type(0);
+   $110 = (__gcry_fips_test_operational()|0);
+   $111 = ($110|0)!=(0);
+   $spec$select105 = $111&1;
+   $$2 = $spec$select105;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 55:  {
+   $112 = (__gcry_fips_mode()|0);
+   $113 = ($112|0)==(0);
+   if ($113) {
+    $$2 = 0;
+    STACKTOP = sp;return ($$2|0);
+   }
+   $114 = (__gcry_is_fips_mode_inactive()|0);
+   $115 = HEAP32[18085]|0;
+   $116 = $115 | $114;
+   $117 = ($116|0)==(0);
+   $spec$select106 = $117&1;
+   $$2 = $spec$select106;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 56:  {
+   __gcry_set_preferred_rng_type(0);
+   $118 = HEAP32[18083]|0;
+   $119 = ($118|0)==(0);
+   if ($119) {
+    HEAP32[18084] = 1;
+    $$2 = 0;
+    STACKTOP = sp;return ($$2|0);
+   }
+   $120 = (__gcry_fips_test_error_or_operational()|0);
+   $121 = ($120|0)==(0);
+   if ($121) {
+    $122 = (__gcry_fips_is_operational()|0);
+    $123 = ($122|0)!=(0);
+    $spec$select107 = $123&1;
+    STACKTOP = sp;return ($spec$select107|0);
+   }
+   (__gcry_fips_run_selftests(1)|0);
+   $122 = (__gcry_fips_is_operational()|0);
+   $123 = ($122|0)!=(0);
+   $spec$select107 = $123&1;
+   STACKTOP = sp;return ($spec$select107|0);
+   break;
+  }
+  case 57:  {
+   _global_init();
+   $124 = (__gcry_fips_run_selftests(1)|0);
+   $$2 = $124;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 58:  {
+   $arglist_current65 = HEAP32[$1>>2]|0;
+   $125 = $arglist_current65;
+   $126 = ((0) + 4|0);
+   $expanded168 = $126;
+   $expanded167 = (($expanded168) - 1)|0;
+   $127 = (($125) + ($expanded167))|0;
+   $128 = ((0) + 4|0);
+   $expanded172 = $128;
+   $expanded171 = (($expanded172) - 1)|0;
+   $expanded170 = $expanded171 ^ -1;
+   $129 = $127 & $expanded170;
+   $130 = $129;
+   $131 = HEAP32[$130>>2]|0;
+   $arglist_next66 = ((($130)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next66;
+   $arglist_current68 = HEAP32[$1>>2]|0;
+   $132 = $arglist_current68;
+   $133 = ((0) + 4|0);
+   $expanded175 = $133;
+   $expanded174 = (($expanded175) - 1)|0;
+   $134 = (($132) + ($expanded174))|0;
+   $135 = ((0) + 4|0);
+   $expanded179 = $135;
+   $expanded178 = (($expanded179) - 1)|0;
+   $expanded177 = $expanded178 ^ -1;
+   $136 = $134 & $expanded177;
+   $137 = $136;
+   $138 = HEAP32[$137>>2]|0;
+   $arglist_next69 = ((($137)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next69;
+   $arglist_current71 = HEAP32[$1>>2]|0;
+   $139 = $arglist_current71;
+   $140 = ((0) + 4|0);
+   $expanded182 = $140;
+   $expanded181 = (($expanded182) - 1)|0;
+   $141 = (($139) + ($expanded181))|0;
+   $142 = ((0) + 4|0);
+   $expanded186 = $142;
+   $expanded185 = (($expanded186) - 1)|0;
+   $expanded184 = $expanded185 ^ -1;
+   $143 = $141 & $expanded184;
+   $144 = $143;
+   $145 = HEAP32[$144>>2]|0;
+   $arglist_next72 = ((($144)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next72;
+   $arglist_current74 = HEAP32[$1>>2]|0;
+   $146 = $arglist_current74;
+   $147 = ((0) + 4|0);
+   $expanded189 = $147;
+   $expanded188 = (($expanded189) - 1)|0;
+   $148 = (($146) + ($expanded188))|0;
+   $149 = ((0) + 4|0);
+   $expanded193 = $149;
+   $expanded192 = (($expanded193) - 1)|0;
+   $expanded191 = $expanded192 ^ -1;
+   $150 = $148 & $expanded191;
+   $151 = $150;
+   $152 = HEAP32[$151>>2]|0;
+   $arglist_next75 = ((($151)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next75;
+   $arglist_current77 = HEAP32[$1>>2]|0;
+   $153 = $arglist_current77;
+   $154 = ((0) + 4|0);
+   $expanded196 = $154;
+   $expanded195 = (($expanded196) - 1)|0;
+   $155 = (($153) + ($expanded195))|0;
+   $156 = ((0) + 4|0);
+   $expanded200 = $156;
+   $expanded199 = (($expanded200) - 1)|0;
+   $expanded198 = $expanded199 ^ -1;
+   $157 = $155 & $expanded198;
+   $158 = $157;
+   $159 = HEAP32[$158>>2]|0;
+   $arglist_next78 = ((($158)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next78;
+   $arglist_current80 = HEAP32[$1>>2]|0;
+   $160 = $arglist_current80;
+   $161 = ((0) + 4|0);
+   $expanded203 = $161;
+   $expanded202 = (($expanded203) - 1)|0;
+   $162 = (($160) + ($expanded202))|0;
+   $163 = ((0) + 4|0);
+   $expanded207 = $163;
+   $expanded206 = (($expanded207) - 1)|0;
+   $expanded205 = $expanded206 ^ -1;
+   $164 = $162 & $expanded205;
+   $165 = $164;
+   $166 = HEAP32[$165>>2]|0;
+   $arglist_next81 = ((($165)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next81;
+   $arglist_current83 = HEAP32[$1>>2]|0;
+   $167 = $arglist_current83;
+   $168 = ((0) + 4|0);
+   $expanded210 = $168;
+   $expanded209 = (($expanded210) - 1)|0;
+   $169 = (($167) + ($expanded209))|0;
+   $170 = ((0) + 4|0);
+   $expanded214 = $170;
+   $expanded213 = (($expanded214) - 1)|0;
+   $expanded212 = $expanded213 ^ -1;
+   $171 = $169 & $expanded212;
+   $172 = $171;
+   $173 = HEAP32[$172>>2]|0;
+   $arglist_next84 = ((($172)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next84;
+   $arglist_current86 = HEAP32[$1>>2]|0;
+   $174 = $arglist_current86;
+   $175 = ((0) + 4|0);
+   $expanded217 = $175;
+   $expanded216 = (($expanded217) - 1)|0;
+   $176 = (($174) + ($expanded216))|0;
+   $177 = ((0) + 4|0);
+   $expanded221 = $177;
+   $expanded220 = (($expanded221) - 1)|0;
+   $expanded219 = $expanded220 ^ -1;
+   $178 = $176 & $expanded219;
+   $179 = $178;
+   $180 = HEAP32[$179>>2]|0;
+   $arglist_next87 = ((($179)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next87;
+   $181 = HEAP32[18083]|0;
+   $182 = ($181|0)==(0);
+   if ($182) {
+    _global_init();
+   }
+   $183 = (__gcry_fips_is_operational()|0);
+   $184 = ($183|0)==(0);
+   if ($184) {
+    $$2 = 176;
+    STACKTOP = sp;return ($$2|0);
+   }
+   $185 = 
(__gcry_random_init_external_test($131,$138,$145,$152,$159,$166,$173,$180)|0);
+   $$2 = $185;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 59:  {
+   $arglist_current89 = HEAP32[$1>>2]|0;
+   $186 = $arglist_current89;
+   $187 = ((0) + 4|0);
+   $expanded224 = $187;
+   $expanded223 = (($expanded224) - 1)|0;
+   $188 = (($186) + ($expanded223))|0;
+   $189 = ((0) + 4|0);
+   $expanded228 = $189;
+   $expanded227 = (($expanded228) - 1)|0;
+   $expanded226 = $expanded227 ^ -1;
+   $190 = $188 & $expanded226;
+   $191 = $190;
+   $192 = HEAP32[$191>>2]|0;
+   $arglist_next90 = ((($191)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next90;
+   $arglist_current92 = HEAP32[$1>>2]|0;
+   $193 = $arglist_current92;
+   $194 = ((0) + 4|0);
+   $expanded231 = $194;
+   $expanded230 = (($expanded231) - 1)|0;
+   $195 = (($193) + ($expanded230))|0;
+   $196 = ((0) + 4|0);
+   $expanded235 = $196;
+   $expanded234 = (($expanded235) - 1)|0;
+   $expanded233 = $expanded234 ^ -1;
+   $197 = $195 & $expanded233;
+   $198 = $197;
+   $199 = HEAP32[$198>>2]|0;
+   $arglist_next93 = ((($198)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next93;
+   $arglist_current95 = HEAP32[$1>>2]|0;
+   $200 = $arglist_current95;
+   $201 = ((0) + 4|0);
+   $expanded238 = $201;
+   $expanded237 = (($expanded238) - 1)|0;
+   $202 = (($200) + ($expanded237))|0;
+   $203 = ((0) + 4|0);
+   $expanded242 = $203;
+   $expanded241 = (($expanded242) - 1)|0;
+   $expanded240 = $expanded241 ^ -1;
+   $204 = $202 & $expanded240;
+   $205 = $204;
+   $206 = HEAP32[$205>>2]|0;
+   $arglist_next96 = ((($205)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next96;
+   $207 = HEAP32[18083]|0;
+   $208 = ($207|0)==(0);
+   if ($208) {
+    _global_init();
+   }
+   $209 = (__gcry_fips_is_operational()|0);
+   $210 = ($209|0)==(0);
+   if ($210) {
+    $$2 = 176;
+    STACKTOP = sp;return ($$2|0);
+   }
+   $211 = (__gcry_random_run_external_test($192,$199,$206)|0);
+   $$2 = $211;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 60:  {
+   $arglist_current98 = HEAP32[$1>>2]|0;
+   $212 = $arglist_current98;
+   $213 = ((0) + 4|0);
+   $expanded245 = $213;
+   $expanded244 = (($expanded245) - 1)|0;
+   $214 = (($212) + ($expanded244))|0;
+   $215 = ((0) + 4|0);
+   $expanded249 = $215;
+   $expanded248 = (($expanded249) - 1)|0;
+   $expanded247 = $expanded248 ^ -1;
+   $216 = $214 & $expanded247;
+   $217 = $216;
+   $218 = HEAP32[$217>>2]|0;
+   $arglist_next99 = ((($217)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next99;
+   __gcry_random_deinit_external_test($218);
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 61:  {
+   $arglist_current101 = HEAP32[$1>>2]|0;
+   $219 = $arglist_current101;
+   $220 = ((0) + 4|0);
+   $expanded252 = $220;
+   $expanded251 = (($expanded252) - 1)|0;
+   $221 = (($219) + ($expanded251))|0;
+   $222 = ((0) + 4|0);
+   $expanded256 = $222;
+   $expanded255 = (($expanded256) - 1)|0;
+   $expanded254 = $expanded255 ^ -1;
+   $223 = $221 & $expanded254;
+   $224 = $223;
+   $225 = HEAP32[$224>>2]|0;
+   $arglist_next102 = ((($224)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next102;
+   switch ($225|0) {
+   case 30111:  {
+    $226 = (_gpgrt_lock_init(37856)|0);
+    $$2 = $226;
+    STACKTOP = sp;return ($$2|0);
+    break;
+   }
+   case 30112:  {
+    $227 = (_gpgrt_lock_lock(37856)|0);
+    $$2 = $227;
+    STACKTOP = sp;return ($$2|0);
+    break;
+   }
+   case 30113:  {
+    $228 = (_gpgrt_lock_unlock(37856)|0);
+    $$2 = $228;
+    STACKTOP = sp;return ($$2|0);
+    break;
+   }
+   case 30114:  {
+    $229 = (_gpgrt_lock_destroy(37856)|0);
+    $$2 = $229;
+    STACKTOP = sp;return ($$2|0);
+    break;
+   }
+   default: {
+    $$2 = 61;
+    STACKTOP = sp;return ($$2|0);
+   }
+   }
+   break;
+  }
+  case 63:  {
+   $arglist_current104 = HEAP32[$1>>2]|0;
+   $230 = $arglist_current104;
+   $231 = ((0) + 4|0);
+   $expanded259 = $231;
+   $expanded258 = (($expanded259) - 1)|0;
+   $232 = (($230) + ($expanded258))|0;
+   $233 = ((0) + 4|0);
+   $expanded263 = $233;
+   $expanded262 = (($expanded263) - 1)|0;
+   $expanded261 = $expanded262 ^ -1;
+   $234 = $232 & $expanded261;
+   $235 = $234;
+   $236 = HEAP32[$235>>2]|0;
+   $arglist_next105 = ((($235)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next105;
+   $237 = (__gcry_disable_hw_feature($236)|0);
+   $$2 = $237;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 64:  {
+   $238 = HEAP32[18083]|0;
+   $239 = ($238|0)==(0);
+   if (!($239)) {
+    $$2 = 1;
+    STACKTOP = sp;return ($$2|0);
+   }
+   __gcry_set_preferred_rng_type(0);
+   __gcry_set_enforced_fips_mode();
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 65:  {
+   $arglist_current107 = HEAP32[$1>>2]|0;
+   $240 = $arglist_current107;
+   $241 = ((0) + 4|0);
+   $expanded266 = $241;
+   $expanded265 = (($expanded266) - 1)|0;
+   $242 = (($240) + ($expanded265))|0;
+   $243 = ((0) + 4|0);
+   $expanded270 = $243;
+   $expanded269 = (($expanded270) - 1)|0;
+   $expanded268 = $expanded269 ^ -1;
+   $244 = $242 & $expanded268;
+   $245 = $244;
+   $246 = HEAP32[$245>>2]|0;
+   $arglist_next108 = ((($245)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next108;
+   $247 = ($246|0)>(0);
+   if (!($247)) {
+    $$2 = 0;
+    STACKTOP = sp;return ($$2|0);
+   }
+   __gcry_set_preferred_rng_type($246);
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 66:  {
+   $arglist_current110 = HEAP32[$1>>2]|0;
+   $248 = $arglist_current110;
+   $249 = ((0) + 4|0);
+   $expanded273 = $249;
+   $expanded272 = (($expanded273) - 1)|0;
+   $250 = (($248) + ($expanded272))|0;
+   $251 = ((0) + 4|0);
+   $expanded277 = $251;
+   $expanded276 = (($expanded277) - 1)|0;
+   $expanded275 = $expanded276 ^ -1;
+   $252 = $250 & $expanded275;
+   $253 = $252;
+   $254 = HEAP32[$253>>2]|0;
+   $arglist_next111 = ((($253)) + 4|0);
+   HEAP32[$1>>2] = $arglist_next111;
+   $255 = ($254|0)==(0|0);
+   if ($255) {
+    $$2 = 0;
+    STACKTOP = sp;return ($$2|0);
+   }
+   $256 = HEAP32[18083]|0;
+   $257 = $256 ^ 1;
+   $258 = (__gcry_get_rng_type($257)|0);
+   HEAP32[$254>>2] = $258;
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 67:  {
+   __gcry_set_preferred_rng_type(0);
+   $259 = (__gcry_secmem_get_flags()|0);
+   $260 = $259 | 8;
+   __gcry_secmem_set_flags($260);
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 68:  {
+   __gcry_set_preferred_rng_type(0);
+   $261 = (__gcry_secmem_get_flags()|0);
+   $262 = $261 | 16;
+   __gcry_secmem_set_flags($262);
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 72: case 71:  {
+   $$2 = 69;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  case 62: case 23:  {
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+   break;
+  }
+  default: {
+   __gcry_set_preferred_rng_type(0);
+   $$2 = 61;
+   STACKTOP = sp;return ($$2|0);
+  }
+  }
+ } while(0);
+ return (0)|0;
+}
+function __gcry_set_allocation_handler($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $5 = 0, $6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ _global_init();
+ $5 = (__gcry_fips_mode()|0);
+ $6 = ($5|0)==(0);
+ if (!($6)) {
+  __gcry_inactivate_fips_mode(44600);
+ }
+ HEAP32[18088] = $0;
+ HEAP32[18089] = $1;
+ HEAP32[18090] = $2;
+ HEAP32[18091] = $3;
+ HEAP32[18092] = $4;
+ return;
+}
+function __gcry_malloc($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$0$i = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 
0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[18088]|0;
+ $2 = ($1|0)==(0|0);
+ if ($2) {
+  $4 = (__gcry_private_malloc($0)|0);
+  $$0$i = $4;
+ } else {
+  $3 = (FUNCTION_TABLE_ii[$1 & 63]($0)|0);
+  $$0$i = $3;
+ }
+ $5 = ($$0$i|0)==(0|0);
+ if (!($5)) {
+  $$0 = $$0$i;
+  return ($$0|0);
+ }
+ $6 = (___errno_location()|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($7|0)==(0);
+ if ($8) {
+  _gpg_err_set_errno(12);
+ }
+ $9 = (___errno_location()|0);
+ $10 = HEAP32[$9>>2]|0;
+ (_gpg_err_code_from_errno($10)|0);
+ $$0 = 0;
+ return ($$0|0);
+}
+function __gcry_malloc_secure($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$0$i = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, 
$15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, 
$5 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[18085]|0;
+ $2 = ($1|0)==(0);
+ do {
+  if ($2) {
+   label = 5;
+  } else {
+   $3 = (__gcry_enforced_fips_mode()|0);
+   $4 = ($3|0)==(0);
+   if (!($4)) {
+    HEAP32[18085] = 0;
+    label = 5;
+    break;
+   }
+   $5 = HEAP32[18085]|0;
+   $6 = ($5|0)==(0);
+   if ($6) {
+    label = 5;
+   } else {
+    $11 = HEAP32[18088]|0;
+    $12 = ($11|0)==(0|0);
+    if ($12) {
+     $14 = (__gcry_private_malloc($0)|0);
+     $$0$i = $14;
+     break;
+    } else {
+     $13 = (FUNCTION_TABLE_ii[$11 & 63]($0)|0);
+     $$0$i = $13;
+     break;
+    }
+   }
+  }
+ } while(0);
+ do {
+  if ((label|0) == 5) {
+   $7 = HEAP32[18089]|0;
+   $8 = ($7|0)==(0|0);
+   if ($8) {
+    $10 = (__gcry_private_malloc_secure($0)|0);
+    $$0$i = $10;
+    break;
+   } else {
+    $9 = (FUNCTION_TABLE_ii[$7 & 63]($0)|0);
+    $$0$i = $9;
+    break;
+   }
+  }
+ } while(0);
+ $15 = ($$0$i|0)==(0|0);
+ if (!($15)) {
+  $$0 = $$0$i;
+  return ($$0|0);
+ }
+ $16 = (___errno_location()|0);
+ $17 = HEAP32[$16>>2]|0;
+ $18 = ($17|0)==(0);
+ if ($18) {
+  _gpg_err_set_errno(12);
+ }
+ $19 = (___errno_location()|0);
+ $20 = HEAP32[$19>>2]|0;
+ (_gpg_err_code_from_errno($20)|0);
+ $$0 = 0;
+ return ($$0|0);
+}
+function __gcry_is_secure($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, 
$8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[18085]|0;
+ $2 = ($1|0)==(0);
+ do {
+  if (!($2)) {
+   $3 = (__gcry_enforced_fips_mode()|0);
+   $4 = ($3|0)==(0);
+   if (!($4)) {
+    HEAP32[18085] = 0;
+    break;
+   }
+   $5 = HEAP32[18085]|0;
+   $6 = ($5|0)==(0);
+   if (!($6)) {
+    $$0 = 0;
+    return ($$0|0);
+   }
+  }
+ } while(0);
+ $7 = HEAP32[18090]|0;
+ $8 = ($7|0)==(0|0);
+ if ($8) {
+  $10 = (__gcry_private_is_secure($0)|0);
+  $$0 = $10;
+  return ($$0|0);
+ } else {
+  $9 = (FUNCTION_TABLE_ii[$7 & 63]($0)|0);
+  $$0 = $9;
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function __gcry_realloc($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $$0$i$i = 0, $$010 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 
= 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 
= 0, $23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($0|0)==(0|0);
+ if ($2) {
+  $3 = HEAP32[18088]|0;
+  $4 = ($3|0)==(0|0);
+  if ($4) {
+   $6 = (__gcry_private_malloc($1)|0);
+   $$0$i$i = $6;
+  } else {
+   $5 = (FUNCTION_TABLE_ii[$3 & 63]($1)|0);
+   $$0$i$i = $5;
+  }
+  $7 = ($$0$i$i|0)==(0|0);
+  if (!($7)) {
+   $$010 = $$0$i$i;
+   return ($$010|0);
+  }
+  $8 = (___errno_location()|0);
+  $9 = HEAP32[$8>>2]|0;
+  $10 = ($9|0)==(0);
+  if ($10) {
+   _gpg_err_set_errno(12);
+  }
+  $11 = (___errno_location()|0);
+  $12 = HEAP32[$11>>2]|0;
+  (_gpg_err_code_from_errno($12)|0);
+  $$010 = 0;
+  return ($$010|0);
+ }
+ $13 = ($1|0)==(0);
+ if ($13) {
+  $14 = (___errno_location()|0);
+  $15 = HEAP32[$14>>2]|0;
+  $16 = HEAP32[18092]|0;
+  $17 = ($16|0)==(0|0);
+  if ($17) {
+   __gcry_private_free($0);
+  } else {
+   FUNCTION_TABLE_vi[$16 & 127]($0);
+  }
+  $18 = ($15|0)==(0);
+  if ($18) {
+   $$010 = 0;
+   return ($$010|0);
+  }
+  _gpg_err_set_errno($15);
+  $$010 = 0;
+  return ($$010|0);
+ }
+ $19 = HEAP32[18091]|0;
+ $20 = ($19|0)==(0|0);
+ if ($20) {
+  $22 = (__gcry_private_realloc($0,$1)|0);
+  $$0 = $22;
+ } else {
+  $21 = (FUNCTION_TABLE_iii[$19 & 127]($0,$1)|0);
+  $$0 = $21;
+ }
+ $23 = ($$0|0)==(0|0);
+ if (!($23)) {
+  $$010 = $$0;
+  return ($$010|0);
+ }
+ $24 = (___errno_location()|0);
+ $25 = HEAP32[$24>>2]|0;
+ $26 = ($25|0)==(0);
+ if (!($26)) {
+  $$010 = 0;
+  return ($$010|0);
+ }
+ _gpg_err_set_errno(12);
+ $$010 = 0;
+ return ($$010|0);
+}
+function __gcry_free($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  return;
+ }
+ $2 = (___errno_location()|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = HEAP32[18092]|0;
+ $5 = ($4|0)==(0|0);
+ if ($5) {
+  __gcry_private_free($0);
+ } else {
+  FUNCTION_TABLE_vi[$4 & 127]($0);
+ }
+ $6 = ($3|0)==(0);
+ if ($6) {
+  return;
+ }
+ _gpg_err_set_errno($3);
+ return;
+}
+function __gcry_calloc($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $$0$i$i = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 
0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, 
sp = 0;
+ sp = STACKTOP;
+ $2 = Math_imul($1, $0)|0;
+ $3 = ($1|0)==(0);
+ if (!($3)) {
+  $4 = (($2>>>0) / ($1>>>0))&-1;
+  $5 = ($4|0)==($0|0);
+  if (!($5)) {
+   _gpg_err_set_errno(12);
+   $$0 = 0;
+   return ($$0|0);
+  }
+ }
+ $6 = HEAP32[18088]|0;
+ $7 = ($6|0)==(0|0);
+ if ($7) {
+  $9 = (__gcry_private_malloc($2)|0);
+  $$0$i$i = $9;
+ } else {
+  $8 = (FUNCTION_TABLE_ii[$6 & 63]($2)|0);
+  $$0$i$i = $8;
+ }
+ $10 = ($$0$i$i|0)==(0|0);
+ if (!($10)) {
+  _memset(($$0$i$i|0),0,($2|0))|0;
+  $$0 = $$0$i$i;
+  return ($$0|0);
+ }
+ $11 = (___errno_location()|0);
+ $12 = HEAP32[$11>>2]|0;
+ $13 = ($12|0)==(0);
+ if ($13) {
+  _gpg_err_set_errno(12);
+ }
+ $14 = (___errno_location()|0);
+ $15 = HEAP32[$14>>2]|0;
+ (_gpg_err_code_from_errno($15)|0);
+ $$0 = 0;
+ return ($$0|0);
+}
+function __gcry_calloc_secure($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ $2 = Math_imul($1, $0)|0;
+ $3 = ($1|0)==(0);
+ if (!($3)) {
+  $4 = (($2>>>0) / ($1>>>0))&-1;
+  $5 = ($4|0)==($0|0);
+  if (!($5)) {
+   _gpg_err_set_errno(12);
+   $$0 = 0;
+   return ($$0|0);
+  }
+ }
+ $6 = (__gcry_malloc_secure($2)|0);
+ $7 = ($6|0)==(0|0);
+ if ($7) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ _memset(($6|0),0,($2|0))|0;
+ $$0 = $6;
+ return ($$0|0);
+}
+function __gcry_strdup($0) {
+ $0 = $0|0;
+ var $$0$i = 0, $$0$i$i = 0, $$010 = 0, $$012 = 0, $1 = 0, $10 = 0, $11 = 0, 
$12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, 
$20 = 0, $21 = 0, $22 = 0, $23 = 0;
+ var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 
0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_strlen($0)|0);
+ $2 = HEAP32[18085]|0;
+ $3 = ($2|0)==(0);
+ do {
+  if ($3) {
+   label = 6;
+  } else {
+   $4 = (__gcry_enforced_fips_mode()|0);
+   $5 = ($4|0)==(0);
+   if (!($5)) {
+    HEAP32[18085] = 0;
+    label = 6;
+    break;
+   }
+   $6 = HEAP32[18085]|0;
+   $7 = ($6|0)==(0);
+   if ($7) {
+    label = 6;
+   } else {
+    $8 = (($1) + 1)|0;
+    $17 = $8;
+    label = 10;
+   }
+  }
+ } while(0);
+ if ((label|0) == 6) {
+  $9 = HEAP32[18090]|0;
+  $10 = ($9|0)==(0|0);
+  if ($10) {
+   $12 = (__gcry_private_is_secure($0)|0);
+   $$0$i = $12;
+  } else {
+   $11 = (FUNCTION_TABLE_ii[$9 & 63]($0)|0);
+   $$0$i = $11;
+  }
+  $13 = ($$0$i|0)==(0);
+  $14 = (($1) + 1)|0;
+  if ($13) {
+   $17 = $14;
+   label = 10;
+  } else {
+   $26 = (__gcry_malloc_secure($14)|0);
+   $27 = ($26|0)==(0|0);
+   if ($27) {
+    $$010 = 0;
+    return ($$010|0);
+   } else {
+    $$012 = $26;
+   }
+  }
+ }
+ if ((label|0) == 10) {
+  $15 = HEAP32[18088]|0;
+  $16 = ($15|0)==(0|0);
+  if ($16) {
+   $19 = (__gcry_private_malloc($17)|0);
+   $$0$i$i = $19;
+  } else {
+   $18 = (FUNCTION_TABLE_ii[$15 & 63]($17)|0);
+   $$0$i$i = $18;
+  }
+  $20 = ($$0$i$i|0)==(0|0);
+  if ($20) {
+   $21 = (___errno_location()|0);
+   $22 = HEAP32[$21>>2]|0;
+   $23 = ($22|0)==(0);
+   if ($23) {
+    _gpg_err_set_errno(12);
+   }
+   $24 = (___errno_location()|0);
+   $25 = HEAP32[$24>>2]|0;
+   (_gpg_err_code_from_errno($25)|0);
+   $$010 = 0;
+   return ($$010|0);
+  } else {
+   $$012 = $$0$i$i;
+  }
+ }
+ (_strcpy($$012,$0)|0);
+ $$010 = $$012;
+ return ($$010|0);
+}
+function __gcry_xmalloc($0) {
+ $0 = $0|0;
+ var $$0$i$i = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, 
$4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[18088]|0;
+ $2 = ($1|0)==(0|0);
+ if ($2) {
+  $4 = (__gcry_private_malloc($0)|0);
+  $$0$i$i = $4;
+ } else {
+  $3 = (FUNCTION_TABLE_ii[$1 & 63]($0)|0);
+  $$0$i$i = $3;
+ }
+ $5 = ($$0$i$i|0)==(0|0);
+ if (!($5)) {
+  return ($$0$i$i|0);
+ }
+ $6 = (___errno_location()|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($7|0)==(0);
+ if ($8) {
+  _gpg_err_set_errno(12);
+ }
+ $9 = (___errno_location()|0);
+ $10 = HEAP32[$9>>2]|0;
+ (_gpg_err_code_from_errno($10)|0);
+ $11 = (___errno_location()|0);
+ $12 = HEAP32[$11>>2]|0;
+ $13 = (_gpg_err_code_from_errno($12)|0);
+ __gcry_fatal_error($13,0);
+ // unreachable;
+ return (0)|0;
+}
+function __gcry_xrealloc($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 
= 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (__gcry_realloc($0,$1)|0);
+ $3 = ($2|0)==(0|0);
+ if (!($3)) {
+  return ($2|0);
+ }
+ $4 = (__gcry_fips_mode()|0);
+ $5 = ($4|0)==(0);
+ $6 = (0|0)!=(0|0);
+ $or$cond = $5 & $6;
+ if (!($or$cond)) {
+  $13 = (___errno_location()|0);
+  $14 = HEAP32[$13>>2]|0;
+  $15 = (_gpg_err_code_from_errno($14)|0);
+  __gcry_fatal_error($15,0);
+  // unreachable;
+ }
+ $7 = HEAP32[18085]|0;
+ $8 = ($7|0)==(0);
+ if (!($8)) {
+  $9 = (__gcry_enforced_fips_mode()|0);
+  $10 = ($9|0)==(0);
+  if (!($10)) {
+   HEAP32[18085] = 0;
+  }
+ }
+ $11 = HEAP32[18090]|0;
+ $12 = ($11|0)==(0|0);
+ if ($12) {
+  (__gcry_private_is_secure($0)|0);
+  // unreachable;
+ } else {
+  (FUNCTION_TABLE_ii[$11 & 63]($0)|0);
+  // unreachable;
+ }
+ return (0)|0;
+}
+function __gcry_xmalloc_secure($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_malloc_secure($0)|0);
+ $2 = ($1|0)==(0|0);
+ if ($2) {
+  $3 = (___errno_location()|0);
+  $4 = HEAP32[$3>>2]|0;
+  $5 = (_gpg_err_code_from_errno($4)|0);
+  $6 = (__gcry_gettext(44626)|0);
+  __gcry_fatal_error($5,$6);
+  // unreachable;
+ } else {
+  return ($1|0);
+ }
+ return (0)|0;
+}
+function __gcry_xcalloc($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $2 = Math_imul($1, $0)|0;
+ $3 = ($1|0)==(0);
+ if (!($3)) {
+  $4 = (($2>>>0) / ($1>>>0))&-1;
+  $5 = ($4|0)==($0|0);
+  if (!($5)) {
+   _gpg_err_set_errno(12);
+   $6 = (___errno_location()|0);
+   $7 = HEAP32[$6>>2]|0;
+   $8 = (_gpg_err_code_from_errno($7)|0);
+   __gcry_fatal_error($8,0);
+   // unreachable;
+  }
+ }
+ $9 = (__gcry_xmalloc($2)|0);
+ _memset(($9|0),0,($2|0))|0;
+ return ($9|0);
+}
+function __gcry_xcalloc_secure($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $2 = Math_imul($1, $0)|0;
+ $3 = ($1|0)==(0);
+ if (!($3)) {
+  $4 = (($2>>>0) / ($1>>>0))&-1;
+  $5 = ($4|0)==($0|0);
+  if (!($5)) {
+   _gpg_err_set_errno(12);
+   $6 = (___errno_location()|0);
+   $7 = HEAP32[$6>>2]|0;
+   $8 = (_gpg_err_code_from_errno($7)|0);
+   __gcry_fatal_error($8,0);
+   // unreachable;
+  }
+ }
+ $9 = (__gcry_xmalloc_secure($2)|0);
+ _memset(($9|0),0,($2|0))|0;
+ return ($9|0);
+}
+function __gcry_xstrdup($0) {
+ $0 = $0|0;
+ var $$0$i = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 
0, $9 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_strdup($0)|0);
+ $2 = ($1|0)==(0|0);
+ if (!($2)) {
+  return ($1|0);
+ }
+ $3 = HEAP32[18085]|0;
+ $4 = ($3|0)==(0);
+ do {
+  if ($4) {
+   label = 6;
+  } else {
+   $5 = (__gcry_enforced_fips_mode()|0);
+   $6 = ($5|0)==(0);
+   if ($6) {
+    $7 = HEAP32[18085]|0;
+    $8 = ($7|0)==(0);
+    if ($8) {
+     label = 6;
+     break;
+    } else {
+     $$0$i = 0;
+     break;
+    }
+   } else {
+    HEAP32[18085] = 0;
+    label = 6;
+    break;
+   }
+  }
+ } while(0);
+ do {
+  if ((label|0) == 6) {
+   $9 = HEAP32[18090]|0;
+   $10 = ($9|0)==(0|0);
+   if ($10) {
+    $12 = (__gcry_private_is_secure($0)|0);
+    $$0$i = $12;
+    break;
+   } else {
+    $11 = (FUNCTION_TABLE_ii[$9 & 63]($0)|0);
+    $$0$i = $11;
+    break;
+   }
+  }
+ } while(0);
+ $13 = ($$0$i|0)!=(0);
+ $14 = (___errno_location()|0);
+ $15 = HEAP32[$14>>2]|0;
+ $16 = (_gpg_err_code_from_errno($15)|0);
+ if (!($13)) {
+  $18 = 0;
+  __gcry_fatal_error($16,$18);
+  // unreachable;
+ }
+ $17 = (__gcry_gettext(44626)|0);
+ $18 = $17;
+ __gcry_fatal_error($16,$18);
+ // unreachable;
+ return (0)|0;
+}
+function __gcry_get_debug_flag($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_fips_mode()|0);
+ $2 = ($1|0)==(0);
+ $3 = HEAP32[18086]|0;
+ $4 = $3 & $0;
+ $$0 = $2 ? $4 : 0;
+ return ($$0|0);
+}
+function __gcry_set_progress_handler($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_register_primegen_progress($0,$1);
+ __gcry_register_random_progress($0,$1);
+ return;
+}
+function __gcry_sexp_canon_len($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0134 = 0, $$087133 = 0, $$089132 = 0, $$091131 = 0, $$093130 = 0, $$095 
= 0, $$097 = 0, $$1 = 0, $$188 = 0, $$190 = 0, $$192 = 0, $$194 = 0, $$off = 0, 
$$off110 = 0, $$pre = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0;
+ var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, 
$23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 
0, $32 = 0, $33 = 0, $34 = 0;
+ var $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 
0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $4 = sp + 4|0;
+ $5 = sp;
+ $6 = ($2|0)==(0|0);
+ $spec$select = $6 ? $4 : $2;
+ $7 = ($3|0)==(0|0);
+ $$095 = $7 ? $5 : $3;
+ HEAP32[$$095>>2] = 0;
+ HEAP32[$spec$select>>2] = 0;
+ $8 = ($0|0)==(0|0);
+ L1: do {
+  if ($8) {
+   $$097 = 0;
+  } else {
+   $9 = HEAP8[$0>>0]|0;
+   $10 = ($9<<24>>24)==(40);
+   if (!($10)) {
+    HEAP32[$$095>>2] = 204;
+    $$097 = 0;
+    break;
+   }
+   $11 = (($1) + -1)|0;
+   $$0134 = 0;$$087133 = 0;$$089132 = 0;$$091131 = 0;$$093130 = $0;$15 = 40;
+   L6: while(1) {
+    $13 = ($$089132|0)==(0);
+    $14 = $15&255;
+    L8: do {
+     if ($13) {
+      switch ($15<<24>>24) {
+      case 40:  {
+       $24 = ($$091131|0)==(0|0);
+       if (!($24)) {
+        label = 16;
+        break L6;
+       }
+       $25 = (($$0134) + 1)|0;
+       $$1 = $25;$$188 = $$087133;$$190 = 0;$$192 = 0;$$194 = $$093130;
+       break L8;
+       break;
+      }
+      case 41:  {
+       $26 = ($$0134|0)==(0);
+       if ($26) {
+        label = 19;
+        break L6;
+       }
+       $27 = ($$091131|0)==(0|0);
+       if (!($27)) {
+        label = 21;
+        break L6;
+       }
+       $28 = (($$0134) + -1)|0;
+       $29 = ($28|0)==(0);
+       if ($29) {
+        label = 23;
+        break L6;
+       } else {
+        $$1 = $28;$$188 = $$087133;$$190 = 0;$$192 = 0;$$194 = $$093130;
+        break L8;
+       }
+       break;
+      }
+      case 91:  {
+       $31 = ($$091131|0)==(0|0);
+       if ($31) {
+        $$1 = $$0134;$$188 = $$087133;$$190 = 0;$$192 = $$093130;$$194 = 
$$093130;
+        break L8;
+       } else {
+        label = 25;
+        break L6;
+       }
+       break;
+      }
+      case 93:  {
+       $32 = ($$091131|0)==(0|0);
+       if ($32) {
+        label = 27;
+        break L6;
+       } else {
+        $$1 = $$0134;$$188 = $$087133;$$190 = 0;$$192 = 0;$$194 = $$093130;
+        break L8;
+       }
+       break;
+      }
+      default: {
+       $$off110 = (($15) + -48)<<24>>24;
+       $33 = ($$off110&255)<(10);
+       if (!($33)) {
+        label = 32;
+        break L6;
+       }
+       $34 = ($15<<24>>24)==(48);
+       if ($34) {
+        label = 30;
+        break L6;
+       }
+       $35 = (($14) + -48)|0;
+       $$1 = $$0134;$$188 = $$087133;$$190 = $35;$$192 = $$091131;$$194 = 
$$093130;
+       break L8;
+      }
+      }
+     } else {
+      $16 = ($15<<24>>24)==(58);
+      if ($16) {
+       $17 = (($$087133) + ($$089132))|0;
+       $18 = ($11>>>0)<($17>>>0);
+       if ($18) {
+        label = 9;
+        break L6;
+       }
+       $19 = (($$093130) + ($$089132)|0);
+       $$1 = $$0134;$$188 = $17;$$190 = 0;$$192 = $$091131;$$194 = $19;
+       break;
+      } else {
+       $$off = (($15) + -48)<<24>>24;
+       $20 = ($$off&255)<(10);
+       if (!($20)) {
+        label = 13;
+        break L6;
+       }
+       $21 = ($$089132*10)|0;
+       $22 = (($14) + -48)|0;
+       $23 = (($22) + ($21))|0;
+       $$1 = $$0134;$$188 = $$087133;$$190 = $23;$$192 = $$091131;$$194 = 
$$093130;
+       break;
+      }
+     }
+    } while(0);
+    $36 = ((($$194)) + 1|0);
+    $12 = (($$188) + 1)|0;
+    $37 = ($11>>>0)<($12>>>0);
+    if ($37) {
+     label = 5;
+     break;
+    }
+    $$pre = HEAP8[$36>>0]|0;
+    $$0134 = $$1;$$087133 = $12;$$089132 = $$190;$$091131 = $$192;$$093130 = 
$36;$15 = $$pre;
+   }
+   switch (label|0) {
+    case 5: {
+     HEAP32[$spec$select>>2] = $12;
+     HEAP32[$$095>>2] = 202;
+     $$097 = 0;
+     break L1;
+     break;
+    }
+    case 9: {
+     HEAP32[$spec$select>>2] = $$087133;
+     HEAP32[$$095>>2] = 202;
+     $$097 = 0;
+     break L1;
+     break;
+    }
+    case 13: {
+     HEAP32[$spec$select>>2] = $$087133;
+     HEAP32[$$095>>2] = 201;
+     $$097 = 0;
+     break L1;
+     break;
+    }
+    case 16: {
+     HEAP32[$spec$select>>2] = $$087133;
+     HEAP32[$$095>>2] = 209;
+     $$097 = 0;
+     break L1;
+     break;
+    }
+    case 19: {
+     HEAP32[$spec$select>>2] = $$087133;
+     HEAP32[$$095>>2] = 203;
+     $$097 = 0;
+     break L1;
+     break;
+    }
+    case 21: {
+     HEAP32[$spec$select>>2] = $$087133;
+     HEAP32[$$095>>2] = 209;
+     $$097 = 0;
+     break L1;
+     break;
+    }
+    case 23: {
+     $30 = (($$087133) + 1)|0;
+     $$097 = $30;
+     break L1;
+     break;
+    }
+    case 25: {
+     HEAP32[$spec$select>>2] = $$087133;
+     HEAP32[$$095>>2] = 208;
+     $$097 = 0;
+     break L1;
+     break;
+    }
+    case 27: {
+     HEAP32[$spec$select>>2] = $$087133;
+     HEAP32[$$095>>2] = 209;
+     $$097 = 0;
+     break L1;
+     break;
+    }
+    case 30: {
+     HEAP32[$spec$select>>2] = $$087133;
+     HEAP32[$$095>>2] = 207;
+     $$097 = 0;
+     break L1;
+     break;
+    }
+    case 32: {
+     switch ($15<<24>>24) {
+     case 92: case 38:  {
+      HEAP32[$spec$select>>2] = $$087133;
+      HEAP32[$$095>>2] = 210;
+      $$097 = 0;
+      break L1;
+      break;
+     }
+     default: {
+      HEAP32[$spec$select>>2] = $$087133;
+      HEAP32[$$095>>2] = 205;
+      $$097 = 0;
+      break L1;
+     }
+     }
+     break;
+    }
+   }
+  }
+ } while(0);
+ STACKTOP = sp;return ($$097|0);
+}
+function _do_sexp_sscan($0,$1,$2,$3,$4,$5,$varargs) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $varargs = $varargs|0;
+ var $6 = 0, $7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $6 = sp;
+ HEAP32[$6>>2] = $varargs;
+ $7 = (_do_vsexp_sscan($0,$1,$2,$3,$4,$5,$6)|0);
+ STACKTOP = sp;return ($7|0);
+}
+function _do_vsexp_sscan($0,$1,$2,$3,$4,$5,$6) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ var $$0 = 0, $$0$copyload$i = 0, $$0$copyload$i740 = 0, $$0$i738 = 0, 
$$0112$i = 0, $$02830$i = 0, $$031$i = 0, $$048$lcssa$i = 0, $$04859$i = 0, 
$$050$lcssa$i = 0, $$05058$i = 0, $$0575$lcssa = 0, $$05751592 = 0, 
$$0576$lcssa = 0, $$05761591 = 0, $$0584$lcssa = 0, $$05841619 = 0, $$05881618 
= 0, $$05921617 = 0, $$05941616 = 0;
+ var $$05971615 = 0, $$0600 = 0, $$0601$pn1600 = 0, $$06011614 = 0, $$06061613 
= 0, $$06081612 = 0, $$06101611 = 0, $$0612 = 0, $$06131610 = 0, $$06151609 = 
0, $$06171608 = 0, $$062$i = 0, $$0627 = 0, $$0628$lcssa = 0, $$06281607 = 0, 
$$0657 = 0, $$0658 = 0, $$0659 = 0, $$0660 = 0, $$0661999 = 0;
+ var $$072$lcssa$i$ph = 0, $$072111$i = 0, $$075110$i = 0, $$078109$i = 0, 
$$0880 = 0, $$1 = 0, $$1$i695904 = 0, $$1$i697920 = 0, $$1$i712934 = 0, 
$$1$i714948 = 0, $$1$i716967 = 0, $$1$i718986 = 0, $$1$i7201009 = 0, 
$$1$i7221029 = 0, $$1$i7241048 = 0, $$1$i727 = 0, $$1$i7281067 = 0, 
$$1$i7301084 = 0, $$1$i7321099 = 0, $$1$i7361114 = 0;
+ var $$1$i741 = 0, $$1$i891 = 0, $$10 = 0, $$129$i = 0, $$149$i = 0, $$15$ph = 
0, $$151$i = 0, $$1577 = 0, $$1593 = 0, $$1598 = 0, $$1602 = 0, $$1602$val = 0, 
$$16021598 = 0, $$16021601 = 0, $$1607 = 0, $$1609 = 0, $$1611 = 0, $$1614 = 0, 
$$1616 = 0, $$1618 = 0;
+ var $$1629 = 0, $$179$i = 0, $$2 = 0, $$2$i = 0, $$2$i742 = 0, $$252$i = 0, 
$$2578 = 0, $$2596 = 0, $$2599 = 0, $$2603$val = 0, $$26031169 = 0, $$26031595 
= 0, $$2619 = 0, $$274$i = 0, $$277$i = 0, $$2882 = 0, $$31 = 0, $$31$ph = 0, 
$$31$ph1947 = 0, $$311119 = 0;
+ var $$31590 = 0, $$35356$i = 0, $$357$i = 0, $$35791589 = 0, $$3587 = 0, 
$$3591 = 0, $$3604 = 0, $$4605 = 0, $$4621 = 0, $$5622 = 0, $$6623 = 0, $$7624 
= 0, $$9626 = 0, $$cast = 0, $$cast665 = 0, $$cast666 = 0, $$off = 0, $$off$i = 
0, $$off$i699 = 0, $$off$i704 = 0;
+ var $$off1133 = 0, $$off1139 = 0, $$off1140 = 0, $$off13$i = 0, $$off13$i705 
= 0, $$off14$i = 0, $$off14$i706 = 0, $$off95$i = 0, $$pn = 0, $$pn1138 = 0, 
$$pre$phi1937Z2D = 0, $$pre$phi1940Z2D = 0, $$pre$phiZ2D = 0, $$pre1939 = 0, 
$$sroa$0$0 = 0, $$sroa$0$0$in = 0, $$sroa$0$1$lcssa = 0, $$sroa$0$10 = 0, 
$$sroa$0$10$ph = 0, $$sroa$0$11606 = 0;
+ var $$sroa$0$11962$ph = 0, $$sroa$0$13 = 0, $$sroa$0$15 = 0, $$sroa$0$15$ph = 
0, $$sroa$0$16981$ph = 0, $$sroa$0$171004$ph = 0, $$sroa$0$19 = 0, 
$$sroa$0$211024$ph = 0, $$sroa$0$221043$ph = 0, $$sroa$0$231062$ph = 0, 
$$sroa$0$251079$ph = 0, $$sroa$0$261094$ph = 0, $$sroa$0$27 = 0, 
$$sroa$0$281109$ph = 0, $$sroa$0$2886$ph = 0, $$sroa$0$29 = 0, $$sroa$0$29$ph = 
0, $$sroa$0$29$ph1946 = 0, $$sroa$0$291118 = 0, $$sroa$0$291950 = 0;
+ var $$sroa$0$3 = 0, $$sroa$0$4899$ph = 0, $$sroa$0$5915$ph = 0, 
$$sroa$0$6929$ph = 0, $$sroa$0$7943$ph = 0, $$sroa$0$9 = 0, $$sroa$47$0$lcssa = 
0, $$sroa$47$01605 = 0, $$sroa$47$10 = 0, $$sroa$47$10$ph = 0, 
$$sroa$47$11980$ph = 0, $$sroa$47$121003$ph = 0, $$sroa$47$131023$ph = 0, 
$$sroa$47$141042$ph = 0, $$sroa$47$151061$ph = 0, $$sroa$47$171078$ph = 0, 
$$sroa$47$181093$ph = 0, $$sroa$47$1885$ph = 0, $$sroa$47$19 = 0, $$sroa$47$2 = 
0;
+ var $$sroa$47$201108$ph = 0, $$sroa$47$21 = 0, $$sroa$47$21$ph = 0, 
$$sroa$47$21$ph1945 = 0, $$sroa$47$211117 = 0, $$sroa$47$3898$ph = 0, 
$$sroa$47$4914$ph = 0, $$sroa$47$5928$ph = 0, $$sroa$47$6942$ph = 0, 
$$sroa$47$7 = 0, $$sroa$47$7$ph = 0, $$sroa$47$8960$ph = 0, $$sroa$81$0$lcssa = 
0, $$sroa$81$0$ptr = 0, $$sroa$81$0$ptr$lcssa = 0, $$sroa$81$0$ptr$le = 0, 
$$sroa$81$0$ptr1621 = 0, $$sroa$81$01604 = 0, $$sroa$81$11$ptr = 0, 
$$sroa$81$12$ph = 0;
+ var $$sroa$81$13959$ph = 0, $$sroa$81$13959$ph$ptr$pre$phiZZZZZZ2D = 0, 
$$sroa$81$15$ptr = 0, $$sroa$81$17 = 0, $$sroa$81$1884$ph$ptr = 0, 
$$sroa$81$18979$ph$ptr = 0, $$sroa$81$2 = 0, $$sroa$81$2$ptr = 0, 
$$sroa$81$201002$ph = 0, $$sroa$81$201002$ph$ptr$pre$phiZZZZZZ2D = 0, 
$$sroa$81$22$ptr = 0, $$sroa$81$241022$ph$ptr = 0, $$sroa$81$261041$ph$ptr = 0, 
$$sroa$81$281060$ph$ptr = 0, $$sroa$81$301077$ph$ptr = 0, 
$$sroa$81$311092$ph$ptr = 0, $$sroa$81$32 = 0, $$sroa$81$331107$ptr$ph = 0, $$ 
[...]
+ var $$sroa$81$61599 = 0, $$sroa$81$7 = 0, $$sroa$81$8927$ph$ptr = 0, 
$$sroa$81$9941$ph = 0, $$sroa$81$9941$ph$ptr$pre$phiZZZZZZ2D = 0, $$v$i = 0, 
$$v80$i = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 
0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0;
+ var $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;
+ var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 
= 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 
= 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0;
+ var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 
= 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 
= 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0;
+ var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 
= 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 
= 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0;
+ var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 
= 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 
= 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0;
+ var $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, 
$209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, 
$216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0;
+ var $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, 
$227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, 
$234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0;
+ var $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 
= 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 
= 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0;
+ var $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;
+ var $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 
= 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 
= 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0;
+ var $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 
= 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 
= 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0;
+ var $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, 
$318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, 
$325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0;
+ var $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 
= 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 
= 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0;
+ var $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 
= 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 
= 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0;
+ var $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 
= 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 
= 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0;
+ var $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 
= 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 
= 0, $399 = 0, $40 = 0, $400 = 0, $401 = 0;
+ var $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, 
$409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, 
$416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0;
+ var $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, 
$427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, 
$434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0;
+ var $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 
= 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 
= 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0;
+ var $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 
= 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 
= 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0;
+ var $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 
= 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 
= 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0;
+ var $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $50 
= 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 
= 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0;
+ var $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, 
$518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, 
$525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0;
+ var $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 
= 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 
= 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0;
+ var $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 
= 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 
= 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0;
+ var $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 
= 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 
= 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0;
+ var $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 
= 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 
= 0, $599 = 0, $60 = 0, $600 = 0, $601 = 0;
+ var $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, 
$609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, 
$616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0;
+ var $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, 
$627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, 
$634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0;
+ var $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 
= 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 
= 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0;
+ var $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 
= 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 
= 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0;
+ var $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 
= 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 
= 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0;
+ var $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 
= 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 
= 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0;
+ var $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, 
$717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, 
$724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0;
+ var $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 
= 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 
= 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0;
+ var $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 
= 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 
= 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0;
+ var $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 
= 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 
= 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0;
+ var $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 
= 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 
= 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0;
+ var $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, 
$807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, 
$814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0;
+ var $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 
= 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 
= 0, $833 = 0, $84 = 0, $85 = 0, $86 = 0;
+ var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, 
$94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, 
$arglist_current11 = 0, $arglist_current14 = 0, $arglist_current2 = 0, 
$arglist_current20 = 0, $arglist_current5 = 0;
+ var $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, 
$arglist_next15 = 0, $arglist_next21 = 0, $arglist_next3 = 0, $arglist_next6 = 
0, $arglist_next9 = 0, $cond$i = 0, $expanded = 0, $expanded22 = 0, $expanded24 
= 0, $expanded25 = 0, $expanded26 = 0, $expanded28 = 0, $expanded29 = 0, 
$expanded31 = 0, $expanded32 = 0, $expanded33 = 0, $expanded35 = 0;
+ var $expanded36 = 0, $expanded38 = 0, $expanded39 = 0, $expanded40 = 0, 
$expanded42 = 0, $expanded43 = 0, $expanded45 = 0, $expanded46 = 0, $expanded47 
= 0, $expanded49 = 0, $expanded50 = 0, $expanded52 = 0, $expanded53 = 0, 
$expanded54 = 0, $expanded56 = 0, $expanded57 = 0, $expanded59 = 0, $expanded60 
= 0, $expanded61 = 0, $expanded63 = 0;
+ var $expanded64 = 0, $expanded66 = 0, $expanded67 = 0, $expanded68 = 0, 
$memchr = 0, $memchr663 = 0, $memchr664 = 0, $or$cond = 0, $or$cond1130 = 0, 
$or$cond14 = 0, $scevgep = 0, $scevgep$i = 0, $spec$select = 0, $spec$select$i 
= 0, $spec$select$i700 = 0, $spec$select$i707 = 0, $spec$select1129 = 0, 
$spec$select675 = 0, $spec$select676 = 0, $spec$select677 = 0;
+ var $spec$select678 = 0, $spec$select682 = 0, $spec$select81$i = 0, 
$spec$select82$i = 0, $spec$select83$i = 0, $vararg_buffer = 0, 
$vararg_buffer16 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(112|0);
+ $vararg_buffer16 = sp + 96|0;
+ $vararg_buffer = sp + 88|0;
+ $7 = sp + 108|0;
+ $8 = sp + 104|0;
+ $9 = sp + 100|0;
+ $10 = sp + 48|0;
+ $11 = sp;
+ $12 = ($0|0)==(0|0);
+ if ($12) {
+  $$0 = 45;
+  STACKTOP = sp;return ($$0|0);
+ }
+ HEAP32[$0>>2] = 0;
+ $13 = ($2|0)==(0|0);
+ if ($13) {
+  $$0 = 45;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $14 = ($1|0)==(0|0);
+ $spec$select = $14 ? $7 : $1;
+ $15 = (($3) + 2)|0;
+ $16 = ($3|0)==(0);
+ if ($16) {
+  label = 6;
+ } else {
+  $17 = (__gcry_is_secure($2)|0);
+  $18 = ($17|0)==(0);
+  if ($18) {
+   label = 6;
+  } else {
+   $19 = (__gcry_malloc_secure($15)|0);
+   $$sroa$0$0$in = $19;
+  }
+ }
+ if ((label|0) == 6) {
+  $20 = (__gcry_malloc($15)|0);
+  $$sroa$0$0$in = $20;
+ }
+ $$sroa$0$0 = $$sroa$0$0$in;
+ $21 = ($$sroa$0$0$in|0)==(0|0);
+ L13: do {
+  if ($21) {
+   $22 = (___errno_location()|0);
+   $23 = HEAP32[$22>>2]|0;
+   $24 = (_gpg_err_code_from_errno($23)|0);
+   HEAP32[$spec$select>>2] = 0;
+   $$31 = $24;$$sroa$0$29 = $$sroa$0$0;$$sroa$47$21 = $15;
+   label = 287;
+  } else {
+   L16: do {
+    if ($16) {
+     $$0584$lcssa = $2;$$0628$lcssa = 0;$$sroa$0$1$lcssa = 
$$sroa$0$0;$$sroa$47$0$lcssa = 2;$$sroa$81$0$lcssa = 
$$sroa$0$0;$$sroa$81$0$ptr$lcssa = $$sroa$0$0$in;
+    } else {
+     $25 = ($5|0)==(0|0);
+     $26 = ($4|0)!=(0);
+     $$05841619 = $2;$$05881618 = $3;$$05921617 = 0;$$05941616 = 0;$$05971615 
= 0;$$06011614 = 0;$$06061613 = 0;$$06081612 = 0;$$06101611 = 0;$$06131610 = 
0;$$06151609 = 0;$$06171608 = 0;$$06281607 = 0;$$sroa$0$11606 = 
$$sroa$0$0;$$sroa$47$01605 = $15;$$sroa$81$0$ptr1621 = 
$$sroa$0$0$in;$$sroa$81$01604 = $$sroa$0$0;
+     L18: while(1) {
+      $27 = ($$05971615|0)==(0|0);
+      $28 = ($$06011614|0)!=(0|0);
+      $or$cond = $28 | $27;
+      if ($or$cond) {
+       $$1598 = $$05971615;$$sroa$0$3 = $$sroa$0$11606;$$sroa$47$2 = 
$$sroa$47$01605;$$sroa$81$2 = $$sroa$81$01604;
+       label = 20;
+      } else {
+       $29 = HEAP8[$$05841619>>0]|0;
+       $30 = $29 << 24 >> 24;
+       $memchr = (_memchr(16,$30,71)|0);
+       $31 = ($memchr|0)==(0|0);
+       if ($31) {
+        $32 = $$05841619;
+        $33 = $$05971615;
+        $34 = (($32) - ($33))|0;
+        $35 = $$sroa$0$11606;
+        $36 = (($$sroa$81$01604) - ($$sroa$0$11606))|0;
+        $37 = (($36) + 3)|0;
+        $38 = (($37) + ($34))|0;
+        $39 = ($38>>>0)<($$sroa$47$01605>>>0);
+        do {
+         if ($39) {
+          $$sroa$0$2886$ph = $$sroa$0$11606;$$sroa$47$1885$ph = 
$$sroa$47$01605;$$sroa$81$1884$ph$ptr = $$sroa$81$0$ptr1621;
+         } else {
+          $40 = $34 << 1;
+          $41 = (($$sroa$47$01605) + 6)|0;
+          $42 = (($41) + ($40))|0;
+          $43 = ($42>>>0)>($$sroa$47$01605>>>0);
+          if (!($43)) {
+           $$1$i891 = 67;
+           label = 18;
+           break L18;
+          }
+          $44 = (__gcry_realloc($35,$42)|0);
+          $45 = ($44|0)==(0|0);
+          if ($45) {
+           $48 = (___errno_location()|0);
+           $49 = HEAP32[$48>>2]|0;
+           $50 = (_gpg_err_code_from_errno($49)|0);
+           $51 = ($50|0)==(0);
+           if ($51) {
+            $$sroa$0$2886$ph = $$sroa$0$11606;$$sroa$47$1885$ph = 
$$sroa$47$01605;$$sroa$81$1884$ph$ptr = $$sroa$81$0$ptr1621;
+            break;
+           } else {
+            $$1$i891 = $50;
+            label = 18;
+            break L18;
+           }
+          } else {
+           $46 = (($44) + ($36)|0);
+           $47 = $44;
+           $$sroa$0$2886$ph = $47;$$sroa$47$1885$ph = 
$42;$$sroa$81$1884$ph$ptr = $46;
+           break;
+          }
+         }
+        } while(0);
+        $54 = ((($$sroa$81$1884$ph$ptr)) + 1|0);
+        HEAP8[$$sroa$81$1884$ph$ptr>>0] = 1;
+        $55 = $34&65535;
+        HEAP8[$54>>0]=$55&255;HEAP8[$54+1>>0]=$55>>8;
+        $56 = ((($$sroa$81$1884$ph$ptr)) + 3|0);
+        _memcpy(($56|0),($$05971615|0),($34|0))|0;
+        $57 = (($56) + ($34)|0);
+        $58 = $57;
+        $$1598 = 0;$$sroa$0$3 = $$sroa$0$2886$ph;$$sroa$47$2 = 
$$sroa$47$1885$ph;$$sroa$81$2 = $58;
+        label = 20;
+       } else {
+        $$1593 = $$05921617;$$1607 = $$06061613;$$1609 = $$06081612;$$1611 = 
$$06101611;$$1614 = $$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 
$$05941616;$$2599 = $$05971615;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 
0;$$9626 = $$06171608;$$sroa$0$27 = $$sroa$0$11606;$$sroa$47$19 = 
$$sroa$47$01605;$$sroa$81$32 = $$sroa$81$01604;
+       }
+      }
+      L30: do {
+       if ((label|0) == 20) {
+        label = 0;
+        $$sroa$81$2$ptr = $$sroa$81$2;
+        $59 = ($$05941616|0)==(0|0);
+        if (!($59)) {
+         $60 = ($$06151609|0)==(0);
+         $61 = HEAP8[$$05841619>>0]|0;
+         if (!($60)) {
+          $62 = $61 << 24 >> 24;
+          switch ($62|0) {
+          case 92: case 39: case 34: case 114: case 102: case 110: case 118: 
case 116: case 98:  {
+           $$1593 = $$05921617;$$1607 = $$06061613;$$1609 = $$06081612;$$1611 
= $$06101611;$$1614 = $$06131610;$$1616 = 0;$$1629 = $$06281607;$$2596 = 
$$05941616;$$2599 = $$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 
$$06011614;$$9626 = $$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = 
$$sroa$47$2;$$sroa$81$32 = $$sroa$81$2;
+           break L30;
+           break;
+          }
+          case 55: case 54: case 53: case 52: case 51: case 50: case 49: case 
48:  {
+           $63 = ($$05881618>>>0)>(2);
+           if (!($63)) {
+            label = 26;
+            break L18;
+           }
+           $64 = ((($$05841619)) + 1|0);
+           $65 = HEAP8[$64>>0]|0;
+           $66 = $65 & -8;
+           $67 = ($66<<24>>24)==(48);
+           if (!($67)) {
+            label = 26;
+            break L18;
+           }
+           $68 = ((($$05841619)) + 2|0);
+           $69 = HEAP8[$68>>0]|0;
+           $70 = $69 & -8;
+           $71 = ($70<<24>>24)==(48);
+           if (!($71)) {
+            label = 26;
+            break L18;
+           }
+           $75 = (($$05881618) + -2)|0;
+           $$1593 = $$05921617;$$1607 = $$06061613;$$1609 = $$06081612;$$1611 
= $$06101611;$$1614 = $$06131610;$$1616 = 0;$$1629 = $$06281607;$$2596 = 
$$05941616;$$2599 = $$1598;$$3587 = $68;$$3591 = $75;$$4605 = $$06011614;$$9626 
= $$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+           break L30;
+           break;
+          }
+          case 120:  {
+           $76 = ($$05881618>>>0)>(2);
+           if (!($76)) {
+            label = 33;
+            break L18;
+           }
+           $77 = ((($$05841619)) + 1|0);
+           $78 = HEAP8[$77>>0]|0;
+           $$off = (($78) + -48)<<24>>24;
+           $79 = ($$off&255)<(10);
+           if (!($79)) {
+            switch ($78<<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: {
+             label = 33;
+             break L18;
+            }
+            }
+           }
+           $80 = ((($$05841619)) + 2|0);
+           $81 = HEAP8[$80>>0]|0;
+           $$off1133 = (($81) + -48)<<24>>24;
+           $82 = ($$off1133&255)<(10);
+           if (!($82)) {
+            switch ($81<<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: {
+             label = 33;
+             break L18;
+            }
+            }
+           }
+           $86 = (($$05881618) + -2)|0;
+           $$1593 = $$05921617;$$1607 = $$06061613;$$1609 = $$06081612;$$1611 
= $$06101611;$$1614 = $$06131610;$$1616 = 0;$$1629 = $$06281607;$$2596 = 
$$05941616;$$2599 = $$1598;$$3587 = $80;$$3591 = $86;$$4605 = $$06011614;$$9626 
= $$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+           break L30;
+           break;
+          }
+          case 13:  {
+           $87 = ((($$05841619)) + 1|0);
+           $88 = HEAP8[$87>>0]|0;
+           $89 = ($88<<24>>24)==(10);
+           $90 = $89 << 31 >> 31;
+           $spec$select675 = (($$05881618) + ($90))|0;
+           $spec$select676 = $89 ? $87 : $$05841619;
+           $$1593 = $$05921617;$$1607 = $$06061613;$$1609 = $$06081612;$$1611 
= $$06101611;$$1614 = $$06131610;$$1616 = 0;$$1629 = $$06281607;$$2596 = 
$$05941616;$$2599 = $$1598;$$3587 = $spec$select676;$$3591 = 
$spec$select675;$$4605 = $$06011614;$$9626 = $$06171608;$$sroa$0$27 = 
$$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = $$sroa$81$2;
+           break L30;
+           break;
+          }
+          case 10:  {
+           $91 = ((($$05841619)) + 1|0);
+           $92 = HEAP8[$91>>0]|0;
+           $93 = ($92<<24>>24)==(13);
+           $94 = $93 << 31 >> 31;
+           $spec$select677 = (($$05881618) + ($94))|0;
+           $spec$select678 = $93 ? $91 : $$05841619;
+           $$1593 = $$05921617;$$1607 = $$06061613;$$1609 = $$06081612;$$1611 
= $$06101611;$$1614 = $$06131610;$$1616 = 0;$$1629 = $$06281607;$$2596 = 
$$05941616;$$2599 = $$1598;$$3587 = $spec$select678;$$3591 = 
$spec$select677;$$4605 = $$06011614;$$9626 = $$06171608;$$sroa$0$27 = 
$$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = $$sroa$81$2;
+           break L30;
+           break;
+          }
+          default: {
+           label = 37;
+           break L18;
+          }
+          }
+         }
+         switch ($61<<24>>24) {
+         case 92:  {
+          $$1593 = $$05921617;$$1607 = $$06061613;$$1609 = $$06081612;$$1611 = 
$$06101611;$$1614 = $$06131610;$$1616 = 1;$$1629 = $$06281607;$$2596 = 
$$05941616;$$2599 = $$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 
$$06011614;$$9626 = $$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = 
$$sroa$47$2;$$sroa$81$32 = $$sroa$81$2;
+          break L30;
+          break;
+         }
+         case 34:  {
+          break;
+         }
+         default: {
+          $$1593 = $$05921617;$$1607 = $$06061613;$$1609 = $$06081612;$$1611 = 
$$06101611;$$1614 = $$06131610;$$1616 = 0;$$1629 = $$06281607;$$2596 = 
$$05941616;$$2599 = $$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 
$$06011614;$$9626 = $$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = 
$$sroa$47$2;$$sroa$81$32 = $$sroa$81$2;
+          break L30;
+         }
+         }
+         $98 = ((($$05941616)) + 1|0);
+         $99 = $$05841619;
+         $100 = $98;
+         $101 = (($99) - ($100))|0;
+         $102 = $$sroa$0$3;
+         $103 = (($$sroa$81$2) - ($$sroa$0$3))|0;
+         $104 = (($101) + 3)|0;
+         $105 = (($104) + ($103))|0;
+         $106 = ($105>>>0)<($$sroa$47$2>>>0);
+         do {
+          if ($106) {
+           $$sroa$0$4899$ph = $$sroa$0$3;$$sroa$47$3898$ph = 
$$sroa$47$2;$$sroa$81$3897$ph$ptr = $$sroa$81$2$ptr;
+          } else {
+           $107 = $101 << 1;
+           $108 = (($$sroa$47$2) + 6)|0;
+           $109 = (($108) + ($107))|0;
+           $110 = ($109>>>0)>($$sroa$47$2>>>0);
+           if (!($110)) {
+            $$1$i695904 = 67;
+            label = 82;
+            break L18;
+           }
+           $111 = (__gcry_realloc($102,$109)|0);
+           $112 = ($111|0)==(0|0);
+           if ($112) {
+            $115 = (___errno_location()|0);
+            $116 = HEAP32[$115>>2]|0;
+            $117 = (_gpg_err_code_from_errno($116)|0);
+            $118 = ($117|0)==(0);
+            if ($118) {
+             $$sroa$0$4899$ph = $$sroa$0$3;$$sroa$47$3898$ph = 
$$sroa$47$2;$$sroa$81$3897$ph$ptr = $$sroa$81$2$ptr;
+             break;
+            } else {
+             $$1$i695904 = $117;
+             label = 82;
+             break L18;
+            }
+           } else {
+            $113 = (($111) + ($103)|0);
+            $114 = $111;
+            $$sroa$0$4899$ph = $114;$$sroa$47$3898$ph = 
$109;$$sroa$81$3897$ph$ptr = $113;
+            break;
+           }
+          }
+         } while(0);
+         $119 = ((($$sroa$81$3897$ph$ptr)) + 1|0);
+         HEAP8[$$sroa$81$3897$ph$ptr>>0] = 1;
+         HEAP8[$119>>0]=0&255;HEAP8[$119+1>>0]=0>>8;
+         $120 = ((($$sroa$81$3897$ph$ptr)) + 3|0);
+         $121 = $120;
+         $122 = ($101|0)==(0);
+         if ($122) {
+          $$pre$phi1940Z2D = $121;
+         } else {
+          $$0112$i = $101;$$072111$i = $120;$$075110$i = $98;$$078109$i = 0;
+          L64: while(1) {
+           $123 = ($$078109$i|0)==(0);
+           $124 = HEAP8[$$075110$i>>0]|0;
+           $125 = $124&255;
+           L66: do {
+            if ($123) {
+             $191 = ($124<<24>>24)==(92);
+             if ($191) {
+              $$179$i = 1;$$2$i = $$0112$i;$$274$i = $$072111$i;$$277$i = 
$$075110$i;
+             } else {
+              $192 = ((($$072111$i)) + 1|0);
+              HEAP8[$$072111$i>>0] = $124;
+              $$179$i = 0;$$2$i = $$0112$i;$$274$i = $192;$$277$i = $$075110$i;
+             }
+            } else {
+             do {
+              switch ($124<<24>>24) {
+              case 98:  {
+               $126 = ((($$072111$i)) + 1|0);
+               HEAP8[$$072111$i>>0] = 8;
+               $$179$i = 0;$$2$i = $$0112$i;$$274$i = $126;$$277$i = 
$$075110$i;
+               break L66;
+               break;
+              }
+              case 116:  {
+               $127 = ((($$072111$i)) + 1|0);
+               HEAP8[$$072111$i>>0] = 9;
+               $$179$i = 0;$$2$i = $$0112$i;$$274$i = $127;$$277$i = 
$$075110$i;
+               break L66;
+               break;
+              }
+              case 118:  {
+               $128 = ((($$072111$i)) + 1|0);
+               HEAP8[$$072111$i>>0] = 11;
+               $$179$i = 0;$$2$i = $$0112$i;$$274$i = $128;$$277$i = 
$$075110$i;
+               break L66;
+               break;
+              }
+              case 110:  {
+               $129 = ((($$072111$i)) + 1|0);
+               HEAP8[$$072111$i>>0] = 10;
+               $$179$i = 0;$$2$i = $$0112$i;$$274$i = $129;$$277$i = 
$$075110$i;
+               break L66;
+               break;
+              }
+              case 102:  {
+               $130 = ((($$072111$i)) + 1|0);
+               HEAP8[$$072111$i>>0] = 12;
+               $$179$i = 0;$$2$i = $$0112$i;$$274$i = $130;$$277$i = 
$$075110$i;
+               break L66;
+               break;
+              }
+              case 114:  {
+               $131 = ((($$072111$i)) + 1|0);
+               HEAP8[$$072111$i>>0] = 13;
+               $$179$i = 0;$$2$i = $$0112$i;$$274$i = $131;$$277$i = 
$$075110$i;
+               break L66;
+               break;
+              }
+              case 34:  {
+               $132 = ((($$072111$i)) + 1|0);
+               HEAP8[$$072111$i>>0] = 34;
+               $$179$i = 0;$$2$i = $$0112$i;$$274$i = $132;$$277$i = 
$$075110$i;
+               break L66;
+               break;
+              }
+              case 39:  {
+               $133 = ((($$072111$i)) + 1|0);
+               HEAP8[$$072111$i>>0] = 39;
+               $$179$i = 0;$$2$i = $$0112$i;$$274$i = $133;$$277$i = 
$$075110$i;
+               break L66;
+               break;
+              }
+              case 92:  {
+               $134 = ((($$072111$i)) + 1|0);
+               HEAP8[$$072111$i>>0] = 92;
+               $$179$i = 0;$$2$i = $$0112$i;$$274$i = $134;$$277$i = 
$$075110$i;
+               break L66;
+               break;
+              }
+              case 13:  {
+               $135 = ($$0112$i>>>0)>(1);
+               $136 = ((($$075110$i)) + 1|0);
+               if (!($135)) {
+                $$072$lcssa$i$ph = $$072111$i;
+                break L64;
+               }
+               $137 = HEAP8[$136>>0]|0;
+               $138 = ($137<<24>>24)==(10);
+               $spec$select$i = $138 ? $136 : $$075110$i;
+               $139 = $138 << 31 >> 31;
+               $spec$select81$i = (($$0112$i) + ($139))|0;
+               $$179$i = 0;$$2$i = $spec$select81$i;$$274$i = 
$$072111$i;$$277$i = $spec$select$i;
+               break L66;
+               break;
+              }
+              case 10:  {
+               $140 = ($$0112$i>>>0)>(1);
+               $141 = ((($$075110$i)) + 1|0);
+               if (!($140)) {
+                $$072$lcssa$i$ph = $$072111$i;
+                break L64;
+               }
+               $142 = HEAP8[$141>>0]|0;
+               $143 = ($142<<24>>24)==(13);
+               $spec$select82$i = $143 ? $141 : $$075110$i;
+               $144 = $143 << 31 >> 31;
+               $spec$select83$i = (($$0112$i) + ($144))|0;
+               $$179$i = 0;$$2$i = $spec$select83$i;$$274$i = 
$$072111$i;$$277$i = $spec$select82$i;
+               break L66;
+               break;
+              }
+              case 120:  {
+               $145 = ($$0112$i>>>0)>(2);
+               if (!($145)) {
+                $$179$i = 0;$$2$i = $$0112$i;$$274$i = $$072111$i;$$277$i = 
$$075110$i;
+                break L66;
+               }
+               $146 = ((($$075110$i)) + 1|0);
+               $147 = HEAP8[$146>>0]|0;
+               $148 = ($147&255)<(58);
+               $$off$i = (($147) + -48)<<24>>24;
+               $149 = ($$off$i&255)<(10);
+               if (!($149)) {
+                switch ($147<<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: {
+                 $$179$i = 0;$$2$i = $$0112$i;$$274$i = $$072111$i;$$277$i = 
$$075110$i;
+                 break L66;
+                }
+                }
+               }
+               $150 = ((($$075110$i)) + 2|0);
+               $151 = HEAP8[$150>>0]|0;
+               $152 = ($151&255)<(58);
+               $$off95$i = (($151) + -48)<<24>>24;
+               $153 = ($$off95$i&255)<(10);
+               if (!($153)) {
+                switch ($151<<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: {
+                 $$179$i = 0;$$2$i = $$0112$i;$$274$i = $$072111$i;$$277$i = 
$$075110$i;
+                 break L66;
+                }
+                }
+               }
+               $154 = $147&255;
+               if ($148) {
+                $155 = (($154) + -48)|0;
+                $159 = $155;
+               } else {
+                $156 = ($147&255)<(71);
+                $$v$i = $156 ? -55 : -87;
+                $157 = (($$v$i) + ($154))|0;
+                $159 = $157;
+               }
+               $158 = $159 << 4;
+               $160 = $151&255;
+               if ($152) {
+                $161 = (($160) + -48)|0;
+                $165 = $161;
+               } else {
+                $162 = ($151&255)<(71);
+                $$v80$i = $162 ? -55 : -87;
+                $163 = (($$v80$i) + ($160))|0;
+                $165 = $163;
+               }
+               $164 = (($165) + ($158))|0;
+               $166 = $164&255;
+               $167 = ((($$072111$i)) + 1|0);
+               HEAP8[$$072111$i>>0] = $166;
+               $168 = (($$0112$i) + -2)|0;
+               $$179$i = 0;$$2$i = $168;$$274$i = $167;$$277$i = $150;
+               break L66;
+               break;
+              }
+              default: {
+               $169 = ($$0112$i>>>0)>(2);
+               $170 = $124 & -8;
+               $171 = ($170<<24>>24)==(48);
+               $172 = $169 & $171;
+               if (!($172)) {
+                $$179$i = 0;$$2$i = $$0112$i;$$274$i = $$072111$i;$$277$i = 
$$075110$i;
+                break L66;
+               }
+               $173 = ((($$075110$i)) + 1|0);
+               $174 = HEAP8[$173>>0]|0;
+               $175 = $174 & -8;
+               $176 = ($175<<24>>24)==(48);
+               if (!($176)) {
+                $$179$i = 0;$$2$i = $$0112$i;$$274$i = $$072111$i;$$277$i = 
$$075110$i;
+                break L66;
+               }
+               $177 = ((($$075110$i)) + 2|0);
+               $178 = HEAP8[$177>>0]|0;
+               $179 = $178 & -8;
+               $180 = ($179<<24>>24)==(48);
+               if (!($180)) {
+                $$179$i = 0;$$2$i = $$0112$i;$$274$i = $$072111$i;$$277$i = 
$$075110$i;
+                break L66;
+               }
+               $181 = (($$0112$i) + -2)|0;
+               $182 = ((($$072111$i)) + 1|0);
+               $183 = $125 << 6;
+               $184 = $174&255;
+               $185 = $184 << 3;
+               $186 = $178&255;
+               $187 = (($183) + 80)|0;
+               $188 = (($187) + ($185))|0;
+               $189 = (($188) + ($186))|0;
+               $190 = $189&255;
+               HEAP8[$$072111$i>>0] = $190;
+               $$179$i = 0;$$2$i = $181;$$274$i = $182;$$277$i = $177;
+               break L66;
+              }
+              }
+             } while(0);
+            }
+           } while(0);
+           $193 = (($$2$i) + -1)|0;
+           $194 = ((($$277$i)) + 1|0);
+           $195 = ($193|0)==(0);
+           if ($195) {
+            $$072$lcssa$i$ph = $$274$i;
+            break;
+           } else {
+            $$0112$i = $193;$$072111$i = $$274$i;$$075110$i = $194;$$078109$i 
= $$179$i;
+           }
+          }
+          $$pre1939 = $$072$lcssa$i$ph;
+          $$pre$phi1940Z2D = $$pre1939;
+         }
+         $196 = (($$pre$phi1940Z2D) - ($121))|0;
+         $197 = $196&65535;
+         HEAP8[$119>>0]=$197&255;HEAP8[$119+1>>0]=$197>>8;
+         $$1593 = $$05921617;$$1607 = $$06061613;$$1609 = $$06081612;$$1611 = 
$$06101611;$$1614 = $$06131610;$$1616 = 0;$$1629 = $$06281607;$$2596 = 0;$$2599 
= $$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = $$06011614;$$9626 = 
$$06171608;$$sroa$0$27 = $$sroa$0$4899$ph;$$sroa$47$19 = 
$$sroa$47$3898$ph;$$sroa$81$32 = $$pre$phi1940Z2D;
+         break;
+        }
+        if ($28) {
+         $200 = HEAP8[$$05841619>>0]|0;
+         $201 = $200 << 24 >> 24;
+         $202 = (_isxdigit($201)|0);
+         $203 = ($202|0)==(0);
+         if (!($203)) {
+          $204 = (($$06131610) + 1)|0;
+          $$1593 = $$05921617;$$1607 = $$06061613;$$1609 = $$06081612;$$1611 = 
$$06101611;$$1614 = $204;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 
0;$$2599 = $$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 
$$06011614;$$9626 = $$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = 
$$sroa$47$2;$$sroa$81$32 = $$sroa$81$2;
+          break;
+         }
+         $205 = ($200<<24>>24)==(35);
+         if (!($205)) {
+          switch ($201|0) {
+          case 10: case 13: case 12: case 11: case 9: case 32:  {
+           $$1593 = $$05921617;$$1607 = $$06061613;$$1609 = $$06081612;$$1611 
= $$06101611;$$1614 = $$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 
= 0;$$2599 = $$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 
$$06011614;$$9626 = $$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = 
$$sroa$47$2;$$sroa$81$32 = $$sroa$81$2;
+           break L30;
+           break;
+          }
+          default: {
+           label = 114;
+           break L18;
+          }
+          }
+         }
+         $206 = $$06131610 & 1;
+         $207 = ($206|0)==(0);
+         if (!($207)) {
+          label = 88;
+          break L18;
+         }
+         $211 = (($$06131610|0) / 2)&-1;
+         $212 = $$sroa$0$3;
+         $213 = (($$sroa$81$2) - ($$sroa$0$3))|0;
+         $214 = (($211) + 3)|0;
+         $215 = (($214) + ($213))|0;
+         $216 = ($215>>>0)<($$sroa$47$2>>>0);
+         do {
+          if ($216) {
+           $$sroa$0$5915$ph = $$sroa$0$3;$$sroa$47$4914$ph = 
$$sroa$47$2;$$sroa$81$5913$ph$ptr = $$sroa$81$2$ptr;
+          } else {
+           $217 = $211 << 1;
+           $218 = (($$sroa$47$2) + 6)|0;
+           $219 = (($218) + ($217))|0;
+           $220 = ($219>>>0)>($$sroa$47$2>>>0);
+           if (!($220)) {
+            $$1$i697920 = 67;
+            label = 94;
+            break L18;
+           }
+           $221 = (__gcry_realloc($212,$219)|0);
+           $222 = ($221|0)==(0|0);
+           if ($222) {
+            $225 = (___errno_location()|0);
+            $226 = HEAP32[$225>>2]|0;
+            $227 = (_gpg_err_code_from_errno($226)|0);
+            $228 = ($227|0)==(0);
+            if ($228) {
+             $$sroa$0$5915$ph = $$sroa$0$3;$$sroa$47$4914$ph = 
$$sroa$47$2;$$sroa$81$5913$ph$ptr = $$sroa$81$2$ptr;
+             break;
+            } else {
+             $$1$i697920 = $227;
+             label = 94;
+             break L18;
+            }
+           } else {
+            $223 = (($221) + ($213)|0);
+            $224 = $221;
+            $$sroa$0$5915$ph = $224;$$sroa$47$4914$ph = 
$219;$$sroa$81$5913$ph$ptr = $223;
+            break;
+           }
+          }
+         } while(0);
+         $232 = ((($$sroa$81$5913$ph$ptr)) + 1|0);
+         HEAP8[$$sroa$81$5913$ph$ptr>>0] = 1;
+         $233 = $211&65535;
+         HEAP8[$232>>0]=$233&255;HEAP8[$232+1>>0]=$233>>8;
+         $234 = ((($$sroa$81$5913$ph$ptr)) + 3|0);
+         $235 = $234;
+         $$16021598 = ((($$06011614)) + 1|0);
+         $236 = ($$16021598>>>0)<($$05841619>>>0);
+         if (!($236)) {
+          $$1593 = $$05921617;$$1607 = $$06061613;$$1609 = $$06081612;$$1611 = 
$$06101611;$$1614 = $$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 
0;$$2599 = $$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$06171608;$$sroa$0$27 = $$sroa$0$5915$ph;$$sroa$47$19 = 
$$sroa$47$4914$ph;$$sroa$81$32 = $235;
+          break;
+         }
+         $$0601$pn1600 = $$06011614;$$16021601 = $$16021598;$$sroa$81$61599 = 
$235;
+         while(1) {
+          $$1602$val = HEAP8[$$16021601>>0]|0;
+          $237 = $$1602$val << 24 >> 24;
+          switch ($237|0) {
+          case 10: case 13: case 12: case 11: case 9: case 32:  {
+           $$3604 = $$16021601;$$sroa$81$7 = $$sroa$81$61599;
+           break;
+          }
+          default: {
+           $238 = $$1602$val&255;
+           $$off$i699 = (($238) + -48)|0;
+           $239 = ($$off$i699>>>0)<(10);
+           do {
+            if ($239) {
+             $250 = $$off$i699;
+            } else {
+             $$off13$i = (($238) + -65)|0;
+             $240 = ($$off13$i>>>0)<(6);
+             if ($240) {
+              $241 = (($238) + -55)|0;
+              $250 = $241;
+              break;
+             } else {
+              $$off14$i = (($238) + -97)|0;
+              $242 = ($$off14$i>>>0)<(6);
+              $243 = (($238) + -87)|0;
+              $spec$select$i700 = $242 ? $243 : 0;
+              $250 = $spec$select$i700;
+              break;
+             }
+            }
+           } while(0);
+           $244 = ((($$0601$pn1600)) + 2|0);
+           $245 = ($244>>>0)<($$05841619>>>0);
+           L135: do {
+            if ($245) {
+             $$26031595 = $244;
+             L137: while(1) {
+              $$2603$val = HEAP8[$$26031595>>0]|0;
+              $246 = $$2603$val << 24 >> 24;
+              switch ($246|0) {
+              case 10: case 13: case 12: case 11: case 9: case 32:  {
+               break;
+              }
+              default: {
+               break L137;
+              }
+              }
+              $247 = ((($$26031595)) + 1|0);
+              $248 = ($247>>>0)<($$05841619>>>0);
+              if ($248) {
+               $$26031595 = $247;
+              } else {
+               $$0657 = $250;$$26031169 = $247;
+               break L135;
+              }
+             }
+             $249 = $250 << 4;
+             $251 = $$2603$val&255;
+             $$off$i704 = (($251) + -48)|0;
+             $252 = ($$off$i704>>>0)<(10);
+             do {
+              if ($252) {
+               $258 = $$off$i704;
+              } else {
+               $$off13$i705 = (($251) + -65)|0;
+               $253 = ($$off13$i705>>>0)<(6);
+               if ($253) {
+                $254 = (($251) + -55)|0;
+                $258 = $254;
+                break;
+               } else {
+                $$off14$i706 = (($251) + -97)|0;
+                $255 = ($$off14$i706>>>0)<(6);
+                $256 = (($251) + -87)|0;
+                $spec$select$i707 = $255 ? $256 : 0;
+                $258 = $spec$select$i707;
+                break;
+               }
+              }
+             } while(0);
+             $257 = (($258) + ($249))|0;
+             $$0657 = $257;$$26031169 = $$26031595;
+            } else {
+             $$0657 = $250;$$26031169 = $244;
+            }
+           } while(0);
+           $259 = $$0657&255;
+           $260 = $$sroa$81$61599;
+           $261 = ((($260)) + 1|0);
+           $262 = $261;
+           HEAP8[$260>>0] = $259;
+           $$3604 = $$26031169;$$sroa$81$7 = $262;
+          }
+          }
+          $$1602 = ((($$3604)) + 1|0);
+          $263 = ($$1602>>>0)<($$05841619>>>0);
+          if ($263) {
+           $$0601$pn1600 = $$3604;$$16021601 = $$1602;$$sroa$81$61599 = 
$$sroa$81$7;
+          } else {
+           $$1593 = $$05921617;$$1607 = $$06061613;$$1609 = $$06081612;$$1611 
= $$06101611;$$1614 = $$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 
= 0;$$2599 = $$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$06171608;$$sroa$0$27 = $$sroa$0$5915$ph;$$sroa$47$19 = 
$$sroa$47$4914$ph;$$sroa$81$32 = $$sroa$81$7;
+           break L30;
+          }
+         }
+        }
+        $267 = ($$06061613|0)==(0|0);
+        if (!($267)) {
+         $268 = HEAP8[$$05841619>>0]|0;
+         $269 = ($268<<24>>24)==(124);
+         $spec$select682 = $269 ? 0 : $$06061613;
+         $$1593 = $$05921617;$$1607 = $spec$select682;$$1609 = 
$$06081612;$$1611 = $$06101611;$$1614 = $$06131610;$$1616 = $$06151609;$$1629 = 
$$06281607;$$2596 = 0;$$2599 = $$1598;$$3587 = $$05841619;$$3591 = 
$$05881618;$$4605 = 0;$$9626 = $$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 
= $$sroa$47$2;$$sroa$81$32 = $$sroa$81$2;
+         break;
+        }
+        $270 = ($$05921617|0)==(0|0);
+        if (!($270)) {
+         $271 = HEAP8[$$05841619>>0]|0;
+         $$off1139 = (($271) + -48)<<24>>24;
+         $272 = ($$off1139&255)<(10);
+         if ($272) {
+          $$1593 = $$05921617;$$1607 = 0;$$1609 = $$06081612;$$1611 = 
$$06101611;$$1614 = $$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 
0;$$2599 = $$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+          break;
+         }
+         switch ($271<<24>>24) {
+         case 34:  {
+          $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = $$06101611;$$1614 
= $$06131610;$$1616 = 0;$$1629 = $$06281607;$$2596 = $$05841619;$$2599 = 
$$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+          break L30;
+          break;
+         }
+         case 58:  {
+          $273 = (_atoi($$05921617)|0);
+          $274 = (($$05881618) + -1)|0;
+          $275 = ($273>>>0)>($274>>>0);
+          if ($275) {
+           label = 121;
+           break L18;
+          }
+          $279 = $$sroa$0$3;
+          $280 = (($$sroa$81$2) - ($$sroa$0$3))|0;
+          $281 = (($280) + 3)|0;
+          $282 = (($281) + ($273))|0;
+          $283 = ($282>>>0)<($$sroa$47$2>>>0);
+          do {
+           if ($283) {
+            $$sroa$0$6929$ph = $$sroa$0$3;$$sroa$47$5928$ph = 
$$sroa$47$2;$$sroa$81$8927$ph$ptr = $$sroa$81$2$ptr;
+           } else {
+            $284 = $273 << 1;
+            $285 = (($$sroa$47$2) + 6)|0;
+            $286 = (($285) + ($284))|0;
+            $287 = ($286>>>0)>($$sroa$47$2>>>0);
+            if (!($287)) {
+             $$1$i712934 = 67;
+             label = 127;
+             break L18;
+            }
+            $288 = (__gcry_realloc($279,$286)|0);
+            $289 = ($288|0)==(0|0);
+            if ($289) {
+             $292 = (___errno_location()|0);
+             $293 = HEAP32[$292>>2]|0;
+             $294 = (_gpg_err_code_from_errno($293)|0);
+             $295 = ($294|0)==(0);
+             if ($295) {
+              $$sroa$0$6929$ph = $$sroa$0$3;$$sroa$47$5928$ph = 
$$sroa$47$2;$$sroa$81$8927$ph$ptr = $$sroa$81$2$ptr;
+              break;
+             } else {
+              $$1$i712934 = $294;
+              label = 127;
+              break L18;
+             }
+            } else {
+             $290 = (($288) + ($280)|0);
+             $291 = $288;
+             $$sroa$0$6929$ph = $291;$$sroa$47$5928$ph = 
$286;$$sroa$81$8927$ph$ptr = $290;
+             break;
+            }
+           }
+          } while(0);
+          $299 = ((($$sroa$81$8927$ph$ptr)) + 1|0);
+          HEAP8[$$sroa$81$8927$ph$ptr>>0] = 1;
+          $300 = $273&65535;
+          HEAP8[$299>>0]=$300&255;HEAP8[$299+1>>0]=$300>>8;
+          $301 = ((($$sroa$81$8927$ph$ptr)) + 3|0);
+          $302 = ((($$05841619)) + 1|0);
+          _memcpy(($301|0),($302|0),($273|0))|0;
+          $303 = (($301) + ($273)|0);
+          $304 = $303;
+          $305 = (($$05881618) - ($273))|0;
+          $306 = (($$05841619) + ($273)|0);
+          $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = $$06101611;$$1614 
= $$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = 
$$1598;$$3587 = $306;$$3591 = $305;$$4605 = 0;$$9626 = $$06171608;$$sroa$0$27 = 
$$sroa$0$6929$ph;$$sroa$47$19 = $$sroa$47$5928$ph;$$sroa$81$32 = $304;
+          break L30;
+          break;
+         }
+         case 35:  {
+          $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = $$06101611;$$1614 
= 0;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = $$1598;$$3587 = 
$$05841619;$$3591 = $$05881618;$$4605 = $$05841619;$$9626 = 
$$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+          break L30;
+          break;
+         }
+         case 124:  {
+          $$1593 = 0;$$1607 = $$05841619;$$1609 = $$06081612;$$1611 = 
$$06101611;$$1614 = $$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 
0;$$2599 = $$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+          break L30;
+          break;
+         }
+         default: {
+          label = 131;
+          break L18;
+         }
+         }
+        }
+        $310 = ($$06101611|0)==(0|0);
+        $311 = HEAP8[$$05841619>>0]|0;
+        if ($310) {
+         switch ($311<<24>>24) {
+         case 34:  {
+          $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = 0;$$1614 = 
$$06131610;$$1616 = 0;$$1629 = $$06281607;$$2596 = $$05841619;$$2599 = 
$$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+          break L30;
+          break;
+         }
+         case 40:  {
+          $652 = ($$06081612|0)==(0|0);
+          if (!($652)) {
+           label = 239;
+           break L18;
+          }
+          $656 = $$sroa$0$3;
+          $657 = (($$sroa$81$2) - ($$sroa$0$3))|0;
+          $658 = (($657) + 3)|0;
+          $659 = ($658>>>0)<($$sroa$47$2>>>0);
+          do {
+           if ($659) {
+            $$sroa$0$251079$ph = $$sroa$0$3;$$sroa$47$171078$ph = 
$$sroa$47$2;$$sroa$81$301077$ph$ptr = $$sroa$81$2$ptr;
+           } else {
+            $660 = (($$sroa$47$2) + 6)|0;
+            $661 = ($$sroa$47$2>>>0)<(4294967290);
+            if (!($661)) {
+             $$1$i7301084 = 67;
+             label = 245;
+             break L18;
+            }
+            $662 = (__gcry_realloc($656,$660)|0);
+            $663 = ($662|0)==(0|0);
+            if ($663) {
+             $666 = (___errno_location()|0);
+             $667 = HEAP32[$666>>2]|0;
+             $668 = (_gpg_err_code_from_errno($667)|0);
+             $669 = ($668|0)==(0);
+             if ($669) {
+              $$sroa$0$251079$ph = $$sroa$0$3;$$sroa$47$171078$ph = 
$$sroa$47$2;$$sroa$81$301077$ph$ptr = $$sroa$81$2$ptr;
+              break;
+             } else {
+              $$1$i7301084 = $668;
+              label = 245;
+              break L18;
+             }
+            } else {
+             $664 = (($662) + ($657)|0);
+             $665 = $662;
+             $$sroa$0$251079$ph = $665;$$sroa$47$171078$ph = 
$660;$$sroa$81$301077$ph$ptr = $664;
+             break;
+            }
+           }
+          } while(0);
+          $673 = ((($$sroa$81$301077$ph$ptr)) + 1|0);
+          $674 = $673;
+          HEAP8[$$sroa$81$301077$ph$ptr>>0] = 3;
+          $675 = (($$06281607) + 1)|0;
+          $$1593 = 0;$$1607 = 0;$$1609 = 0;$$1611 = 0;$$1614 = 
$$06131610;$$1616 = $$06151609;$$1629 = $675;$$2596 = 0;$$2599 = $$1598;$$3587 
= $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = $$06171608;$$sroa$0$27 = 
$$sroa$0$251079$ph;$$sroa$47$19 = $$sroa$47$171078$ph;$$sroa$81$32 = $674;
+          break L30;
+          break;
+         }
+         case 41:  {
+          $676 = ($$06081612|0)==(0|0);
+          if (!($676)) {
+           label = 248;
+           break L18;
+          }
+          $680 = $$sroa$0$3;
+          $681 = (($$sroa$81$2) - ($$sroa$0$3))|0;
+          $682 = (($681) + 3)|0;
+          $683 = ($682>>>0)<($$sroa$47$2>>>0);
+          do {
+           if ($683) {
+            $$sroa$0$261094$ph = $$sroa$0$3;$$sroa$47$181093$ph = 
$$sroa$47$2;$$sroa$81$311092$ph$ptr = $$sroa$81$2$ptr;
+           } else {
+            $684 = (($$sroa$47$2) + 6)|0;
+            $685 = ($$sroa$47$2>>>0)<(4294967290);
+            if (!($685)) {
+             $$1$i7321099 = 67;
+             label = 254;
+             break L18;
+            }
+            $686 = (__gcry_realloc($680,$684)|0);
+            $687 = ($686|0)==(0|0);
+            if ($687) {
+             $690 = (___errno_location()|0);
+             $691 = HEAP32[$690>>2]|0;
+             $692 = (_gpg_err_code_from_errno($691)|0);
+             $693 = ($692|0)==(0);
+             if ($693) {
+              $$sroa$0$261094$ph = $$sroa$0$3;$$sroa$47$181093$ph = 
$$sroa$47$2;$$sroa$81$311092$ph$ptr = $$sroa$81$2$ptr;
+              break;
+             } else {
+              $$1$i7321099 = $692;
+              label = 254;
+              break L18;
+             }
+            } else {
+             $688 = (($686) + ($681)|0);
+             $689 = $686;
+             $$sroa$0$261094$ph = $689;$$sroa$47$181093$ph = 
$684;$$sroa$81$311092$ph$ptr = $688;
+             break;
+            }
+           }
+          } while(0);
+          $697 = ((($$sroa$81$311092$ph$ptr)) + 1|0);
+          $698 = $697;
+          HEAP8[$$sroa$81$311092$ph$ptr>>0] = 4;
+          $699 = (($$06281607) + -1)|0;
+          $$1593 = 0;$$1607 = 0;$$1609 = 0;$$1611 = 0;$$1614 = 
$$06131610;$$1616 = $$06151609;$$1629 = $699;$$2596 = 0;$$2599 = $$1598;$$3587 
= $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = $$06171608;$$sroa$0$27 = 
$$sroa$0$261094$ph;$$sroa$47$19 = $$sroa$47$181093$ph;$$sroa$81$32 = $698;
+          break L30;
+          break;
+         }
+         case 35:  {
+          $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = 0;$$1614 = 
0;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = $$1598;$$3587 = 
$$05841619;$$3591 = $$05881618;$$4605 = $$05841619;$$9626 = 
$$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+          break L30;
+          break;
+         }
+         case 124:  {
+          $$1593 = 0;$$1607 = $$05841619;$$1609 = $$06081612;$$1611 = 0;$$1614 
= $$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = 
$$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+          break L30;
+          break;
+         }
+         case 91:  {
+          $700 = ($$06081612|0)==(0|0);
+          if ($700) {
+           $$1593 = 0;$$1607 = 0;$$1609 = $$05841619;$$1611 = 0;$$1614 = 
$$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = 
$$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+           break L30;
+          } else {
+           label = 259;
+           break L18;
+          }
+          break;
+         }
+         case 93:  {
+          $704 = ($$06081612|0)==(0|0);
+          if ($704) {
+           label = 261;
+           break L18;
+          } else {
+           $$1593 = 0;$$1607 = 0;$$1609 = 0;$$1611 = 0;$$1614 = 
$$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = 
$$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+           break L30;
+          }
+          break;
+         }
+         default: {
+          $$off1140 = (($311) + -48)<<24>>24;
+          $708 = ($$off1140&255)<(10);
+          if ($708) {
+           $709 = ($311<<24>>24)==(48);
+           if ($709) {
+            label = 264;
+            break L18;
+           } else {
+            $$1593 = $$05841619;$$1607 = 0;$$1609 = $$06081612;$$1611 = 
0;$$1614 = $$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 
= $$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+            break L30;
+           }
+          }
+          $713 = $311 << 24 >> 24;
+          $memchr663 = (_memchr(16,$713,71)|0);
+          $714 = ($memchr663|0)==(0|0);
+          if (!($714)) {
+           $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = 0;$$1614 = 
$$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = 
$$05841619;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+           break L30;
+          }
+          switch ($713|0) {
+          case 10: case 13: case 12: case 11: case 9: case 32:  {
+           $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = 0;$$1614 = 
$$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = 
$$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+           break L30;
+           break;
+          }
+          default: {
+          }
+          }
+          $715 = ($311<<24>>24)==(123);
+          if ($715) {
+           label = 268;
+           break L18;
+          }
+          $memchr664 = (_memchr(44690,$713,3)|0);
+          $719 = ($memchr664|0)==(0|0);
+          if (!($719)) {
+           label = 270;
+           break L18;
+          }
+          $723 = ($311<<24>>24)==(37);
+          $or$cond1130 = $26 & $723;
+          if ($or$cond1130) {
+           $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = 
$$05841619;$$1614 = $$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 
0;$$2599 = $$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$06171608;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+           break L30;
+          } else {
+           label = 272;
+           break L18;
+          }
+         }
+         }
+        }
+        switch ($311<<24>>24) {
+        case 77: case 109:  {
+         HEAP32[$8>>2] = 0;
+         $312 = HEAP8[$$05841619>>0]|0;
+         $313 = ($312<<24>>24)==(109);
+         $314 = $313 ? 1 : 5;
+         if ($25) {
+          $arglist_current = HEAP32[$6>>2]|0;
+          $315 = $arglist_current;
+          $316 = ((0) + 4|0);
+          $expanded22 = $316;
+          $expanded = (($expanded22) - 1)|0;
+          $317 = (($315) + ($expanded))|0;
+          $318 = ((0) + 4|0);
+          $expanded26 = $318;
+          $expanded25 = (($expanded26) - 1)|0;
+          $expanded24 = $expanded25 ^ -1;
+          $319 = $317 & $expanded24;
+          $320 = $319;
+          $321 = HEAP32[$320>>2]|0;
+          $arglist_next = ((($320)) + 4|0);
+          HEAP32[$6>>2] = $arglist_next;
+          $$0658 = $321;$$1618 = $$06171608;
+         } else {
+          $322 = (($$06171608) + 1)|0;
+          $323 = (($5) + ($$06171608<<2)|0);
+          $324 = HEAP32[$323>>2]|0;
+          $325 = HEAP32[$324>>2]|0;
+          $$0658 = $325;$$1618 = $322;
+         }
+         $326 = (__gcry_mpi_get_flag($$0658,2)|0);
+         $327 = ($326|0)==(0);
+         if ($327) {
+          $375 = (__gcry_mpi_print($314,0,0,$8,$$0658)|0);
+          $376 = ($375|0)==(0);
+          if (!($376)) {
+           label = 154;
+           break L18;
+          }
+          $377 = HEAP32[$8>>2]|0;
+          $378 = $$sroa$0$3;
+          $379 = (($$sroa$81$2) - ($$sroa$0$3))|0;
+          $380 = (($379) + 3)|0;
+          $381 = (($380) + ($377))|0;
+          $382 = ($381>>>0)<($$sroa$47$2>>>0);
+          do {
+           if ($382) {
+            $$pre$phiZ2D = $378;$$sroa$0$11962$ph = 
$$sroa$0$3;$$sroa$47$8960$ph = $$sroa$47$2;$$sroa$81$13959$ph = 
$$sroa$81$2;$$sroa$81$13959$ph$ptr$pre$phiZZZZZZ2D = $$sroa$81$2$ptr;
+           } else {
+            $383 = $377 << 1;
+            $384 = (($$sroa$47$2) + 6)|0;
+            $385 = (($384) + ($383))|0;
+            $386 = ($385>>>0)>($$sroa$47$2>>>0);
+            if (!($386)) {
+             $$1$i716967 = 67;
+             label = 160;
+             break L18;
+            }
+            $387 = (__gcry_realloc($378,$385)|0);
+            $388 = ($387|0)==(0|0);
+            if ($388) {
+             $392 = (___errno_location()|0);
+             $393 = HEAP32[$392>>2]|0;
+             $394 = (_gpg_err_code_from_errno($393)|0);
+             $395 = ($394|0)==(0);
+             if ($395) {
+              $$pre$phiZ2D = $378;$$sroa$0$11962$ph = 
$$sroa$0$3;$$sroa$47$8960$ph = $$sroa$47$2;$$sroa$81$13959$ph = 
$$sroa$81$2;$$sroa$81$13959$ph$ptr$pre$phiZZZZZZ2D = $$sroa$81$2$ptr;
+              break;
+             } else {
+              $$1$i716967 = $394;
+              label = 160;
+              break L18;
+             }
+            } else {
+             $389 = (($387) + ($379)|0);
+             $390 = $389;
+             $391 = $387;
+             $$pre$phiZ2D = $387;$$sroa$0$11962$ph = $391;$$sroa$47$8960$ph = 
$385;$$sroa$81$13959$ph = $390;$$sroa$81$13959$ph$ptr$pre$phiZZZZZZ2D = $389;
+             break;
+            }
+           }
+          } while(0);
+          $399 = (__gcry_is_secure($$pre$phiZ2D)|0);
+          $400 = ($399|0)==(0);
+          do {
+           if ($400) {
+            $401 = (__gcry_mpi_get_flag($$0658,1)|0);
+            $402 = ($401|0)==(0);
+            if ($402) {
+             $$sroa$0$13 = $$sroa$0$11962$ph;$$sroa$81$15$ptr = 
$$sroa$81$13959$ph$ptr$pre$phiZZZZZZ2D;
+             break;
+            }
+            $403 = (__gcry_malloc_secure($$sroa$47$8960$ph)|0);
+            $404 = ($403|0)==(0|0);
+            if ($404) {
+             label = 165;
+             break L18;
+            }
+            $405 = (($$sroa$81$13959$ph) - ($$sroa$0$11962$ph))|0;
+            _memcpy(($403|0),($$pre$phiZ2D|0),($405|0))|0;
+            $406 = (($403) + ($405)|0);
+            $$cast665 = $$sroa$0$11962$ph;
+            __gcry_free($$cast665);
+            $407 = $403;
+            $$sroa$0$13 = $407;$$sroa$81$15$ptr = $406;
+           } else {
+            $$sroa$0$13 = $$sroa$0$11962$ph;$$sroa$81$15$ptr = 
$$sroa$81$13959$ph$ptr$pre$phiZZZZZZ2D;
+           }
+          } while(0);
+          $411 = ((($$sroa$81$15$ptr)) + 1|0);
+          HEAP8[$$sroa$81$15$ptr>>0] = 1;
+          $412 = HEAP32[$8>>2]|0;
+          $413 = $412&65535;
+          HEAP8[$411>>0]=$413&255;HEAP8[$411+1>>0]=$413>>8;
+          $414 = ((($$sroa$81$15$ptr)) + 3|0);
+          $415 = HEAP32[$8>>2]|0;
+          $416 = (__gcry_mpi_print($314,$414,$415,$8,$$0658)|0);
+          $417 = ($416|0)==(0);
+          if (!($417)) {
+           label = 167;
+           break L18;
+          }
+          $418 = HEAP32[$8>>2]|0;
+          $419 = (($414) + ($418)|0);
+          $420 = $419;
+          $$sroa$0$15 = $$sroa$0$13;$$sroa$47$10 = 
$$sroa$47$8960$ph;$$sroa$81$17 = $420;
+         } else {
+          $328 = (__gcry_mpi_get_opaque($$0658,$9)|0);
+          $329 = HEAP32[$9>>2]|0;
+          $330 = (($329) + 7)|0;
+          $331 = $330 >>> 3;
+          HEAP32[$8>>2] = $331;
+          $332 = ($328|0)!=(0|0);
+          $333 = ($331|0)!=(0);
+          $or$cond14 = $332 & $333;
+          if ($or$cond14) {
+           $334 = $$sroa$0$3;
+           $335 = (($$sroa$81$2) - ($$sroa$0$3))|0;
+           $336 = (($335) + 3)|0;
+           $337 = (($336) + ($331))|0;
+           $338 = ($337>>>0)<($$sroa$47$2>>>0);
+           do {
+            if ($338) {
+             $$pre$phi1937Z2D = $334;$$sroa$0$7943$ph = 
$$sroa$0$3;$$sroa$47$6942$ph = $$sroa$47$2;$$sroa$81$9941$ph = 
$$sroa$81$2;$$sroa$81$9941$ph$ptr$pre$phiZZZZZZ2D = $$sroa$81$2$ptr;
+            } else {
+             $339 = $331 << 1;
+             $340 = (($$sroa$47$2) + 6)|0;
+             $341 = (($340) + ($339))|0;
+             $342 = ($341>>>0)>($$sroa$47$2>>>0);
+             if (!($342)) {
+              $$1$i714948 = 67;
+              label = 144;
+              break L18;
+             }
+             $343 = (__gcry_realloc($334,$341)|0);
+             $344 = ($343|0)==(0|0);
+             if ($344) {
+              $348 = (___errno_location()|0);
+              $349 = HEAP32[$348>>2]|0;
+              $350 = (_gpg_err_code_from_errno($349)|0);
+              $351 = ($350|0)==(0);
+              if ($351) {
+               $$pre$phi1937Z2D = $334;$$sroa$0$7943$ph = 
$$sroa$0$3;$$sroa$47$6942$ph = $$sroa$47$2;$$sroa$81$9941$ph = 
$$sroa$81$2;$$sroa$81$9941$ph$ptr$pre$phiZZZZZZ2D = $$sroa$81$2$ptr;
+               break;
+              } else {
+               $$1$i714948 = $350;
+               label = 144;
+               break L18;
+              }
+             } else {
+              $345 = (($343) + ($335)|0);
+              $346 = $345;
+              $347 = $343;
+              $$pre$phi1937Z2D = $343;$$sroa$0$7943$ph = 
$347;$$sroa$47$6942$ph = $341;$$sroa$81$9941$ph = 
$346;$$sroa$81$9941$ph$ptr$pre$phiZZZZZZ2D = $345;
+              break;
+             }
+            }
+           } while(0);
+           $355 = (__gcry_is_secure($$pre$phi1937Z2D)|0);
+           $356 = ($355|0)==(0);
+           do {
+            if ($356) {
+             $357 = (__gcry_mpi_get_flag($$0658,1)|0);
+             $358 = ($357|0)==(0);
+             if ($358) {
+              $$sroa$0$9 = $$sroa$0$7943$ph;$$sroa$81$11$ptr = 
$$sroa$81$9941$ph$ptr$pre$phiZZZZZZ2D;
+              break;
+             }
+             $359 = (__gcry_malloc_secure($$sroa$47$6942$ph)|0);
+             $360 = ($359|0)==(0|0);
+             if ($360) {
+              label = 149;
+              break L18;
+             }
+             $361 = (($$sroa$81$9941$ph) - ($$sroa$0$7943$ph))|0;
+             _memcpy(($359|0),($$pre$phi1937Z2D|0),($361|0))|0;
+             $362 = (($359) + ($361)|0);
+             $$cast666 = $$sroa$0$7943$ph;
+             __gcry_free($$cast666);
+             $363 = $359;
+             $$sroa$0$9 = $363;$$sroa$81$11$ptr = $362;
+            } else {
+             $$sroa$0$9 = $$sroa$0$7943$ph;$$sroa$81$11$ptr = 
$$sroa$81$9941$ph$ptr$pre$phiZZZZZZ2D;
+            }
+           } while(0);
+           $367 = ((($$sroa$81$11$ptr)) + 1|0);
+           HEAP8[$$sroa$81$11$ptr>>0] = 1;
+           $368 = HEAP32[$8>>2]|0;
+           $369 = $368&65535;
+           HEAP8[$367>>0]=$369&255;HEAP8[$367+1>>0]=$369>>8;
+           $370 = ((($$sroa$81$11$ptr)) + 3|0);
+           $371 = HEAP32[$8>>2]|0;
+           _memcpy(($370|0),($328|0),($371|0))|0;
+           $372 = HEAP32[$8>>2]|0;
+           $373 = (($370) + ($372)|0);
+           $374 = $373;
+           $$sroa$0$10$ph = $$sroa$0$9;$$sroa$47$7$ph = 
$$sroa$47$6942$ph;$$sroa$81$12$ph = $374;
+          } else {
+           $$sroa$0$10$ph = $$sroa$0$3;$$sroa$47$7$ph = 
$$sroa$47$2;$$sroa$81$12$ph = $$sroa$81$2;
+          }
+          $$sroa$0$15 = $$sroa$0$10$ph;$$sroa$47$10 = 
$$sroa$47$7$ph;$$sroa$81$17 = $$sroa$81$12$ph;
+         }
+         $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = 0;$$1614 = 
$$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = 
$$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$1618;$$sroa$0$27 = $$sroa$0$15;$$sroa$47$19 = $$sroa$47$10;$$sroa$81$32 = 
$$sroa$81$17;
+         break L30;
+         break;
+        }
+        case 115:  {
+         if ($25) {
+          $arglist_current2 = HEAP32[$6>>2]|0;
+          $421 = $arglist_current2;
+          $422 = ((0) + 4|0);
+          $expanded29 = $422;
+          $expanded28 = (($expanded29) - 1)|0;
+          $423 = (($421) + ($expanded28))|0;
+          $424 = ((0) + 4|0);
+          $expanded33 = $424;
+          $expanded32 = (($expanded33) - 1)|0;
+          $expanded31 = $expanded32 ^ -1;
+          $425 = $423 & $expanded31;
+          $426 = $425;
+          $427 = HEAP32[$426>>2]|0;
+          $arglist_next3 = ((($426)) + 4|0);
+          HEAP32[$6>>2] = $arglist_next3;
+          $$0659 = $427;$$2619 = $$06171608;
+         } else {
+          $428 = (($$06171608) + 1)|0;
+          $429 = (($5) + ($$06171608<<2)|0);
+          $430 = HEAP32[$429>>2]|0;
+          $431 = HEAP32[$430>>2]|0;
+          $$0659 = $431;$$2619 = $428;
+         }
+         $432 = (_strlen($$0659)|0);
+         $433 = $$sroa$0$3;
+         $434 = (($$sroa$81$2) - ($$sroa$0$3))|0;
+         $435 = (($434) + 3)|0;
+         $436 = (($435) + ($432))|0;
+         $437 = ($436>>>0)<($$sroa$47$2>>>0);
+         do {
+          if ($437) {
+           $$sroa$0$16981$ph = $$sroa$0$3;$$sroa$47$11980$ph = 
$$sroa$47$2;$$sroa$81$18979$ph$ptr = $$sroa$81$2$ptr;
+          } else {
+           $438 = $432 << 1;
+           $439 = (($$sroa$47$2) + 6)|0;
+           $440 = (($439) + ($438))|0;
+           $441 = ($440>>>0)>($$sroa$47$2>>>0);
+           if (!($441)) {
+            $$1$i718986 = 67;
+            label = 180;
+            break L18;
+           }
+           $442 = (__gcry_realloc($433,$440)|0);
+           $443 = ($442|0)==(0|0);
+           if ($443) {
+            $446 = (___errno_location()|0);
+            $447 = HEAP32[$446>>2]|0;
+            $448 = (_gpg_err_code_from_errno($447)|0);
+            $449 = ($448|0)==(0);
+            if ($449) {
+             $$sroa$0$16981$ph = $$sroa$0$3;$$sroa$47$11980$ph = 
$$sroa$47$2;$$sroa$81$18979$ph$ptr = $$sroa$81$2$ptr;
+             break;
+            } else {
+             $$1$i718986 = $448;
+             label = 180;
+             break L18;
+            }
+           } else {
+            $444 = (($442) + ($434)|0);
+            $445 = $442;
+            $$sroa$0$16981$ph = $445;$$sroa$47$11980$ph = 
$440;$$sroa$81$18979$ph$ptr = $444;
+            break;
+           }
+          }
+         } while(0);
+         $450 = ((($$sroa$81$18979$ph$ptr)) + 1|0);
+         HEAP8[$$sroa$81$18979$ph$ptr>>0] = 1;
+         $451 = $432&65535;
+         HEAP8[$450>>0]=$451&255;HEAP8[$450+1>>0]=$451>>8;
+         $452 = ((($$sroa$81$18979$ph$ptr)) + 3|0);
+         _memcpy(($452|0),($$0659|0),($432|0))|0;
+         $453 = (($452) + ($432)|0);
+         $454 = $453;
+         $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = 0;$$1614 = 
$$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = 
$$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$2619;$$sroa$0$27 = $$sroa$0$16981$ph;$$sroa$47$19 = 
$$sroa$47$11980$ph;$$sroa$81$32 = $454;
+         break L30;
+         break;
+        }
+        case 98:  {
+         if ($25) {
+          $arglist_current5 = HEAP32[$6>>2]|0;
+          $458 = $arglist_current5;
+          $459 = ((0) + 4|0);
+          $expanded36 = $459;
+          $expanded35 = (($expanded36) - 1)|0;
+          $460 = (($458) + ($expanded35))|0;
+          $461 = ((0) + 4|0);
+          $expanded40 = $461;
+          $expanded39 = (($expanded40) - 1)|0;
+          $expanded38 = $expanded39 ^ -1;
+          $462 = $460 & $expanded38;
+          $463 = $462;
+          $464 = HEAP32[$463>>2]|0;
+          $arglist_next6 = ((($463)) + 4|0);
+          HEAP32[$6>>2] = $arglist_next6;
+          $arglist_current8 = HEAP32[$6>>2]|0;
+          $465 = $arglist_current8;
+          $466 = ((0) + 4|0);
+          $expanded43 = $466;
+          $expanded42 = (($expanded43) - 1)|0;
+          $467 = (($465) + ($expanded42))|0;
+          $468 = ((0) + 4|0);
+          $expanded47 = $468;
+          $expanded46 = (($expanded47) - 1)|0;
+          $expanded45 = $expanded46 ^ -1;
+          $469 = $467 & $expanded45;
+          $470 = $469;
+          $471 = HEAP32[$470>>2]|0;
+          $arglist_next9 = ((($470)) + 4|0);
+          HEAP32[$6>>2] = $arglist_next9;
+          $$0660 = $471;$$0661999 = $464;$$4621 = $$06171608;
+         } else {
+          $472 = (($$06171608) + 1)|0;
+          $473 = (($5) + ($$06171608<<2)|0);
+          $474 = HEAP32[$473>>2]|0;
+          $475 = HEAP32[$474>>2]|0;
+          $476 = (($$06171608) + 2)|0;
+          $477 = (($5) + ($472<<2)|0);
+          $478 = HEAP32[$477>>2]|0;
+          $479 = HEAP32[$478>>2]|0;
+          $$0660 = $479;$$0661999 = $475;$$4621 = $476;
+         }
+         $480 = $$sroa$0$3;
+         $481 = (($$sroa$81$2) - ($$sroa$0$3))|0;
+         $482 = (($481) + 3)|0;
+         $483 = (($482) + ($$0661999))|0;
+         $484 = ($483>>>0)<($$sroa$47$2>>>0);
+         do {
+          if ($484) {
+           $$sroa$0$171004$ph = $$sroa$0$3;$$sroa$47$121003$ph = 
$$sroa$47$2;$$sroa$81$201002$ph = 
$$sroa$81$2;$$sroa$81$201002$ph$ptr$pre$phiZZZZZZ2D = $$sroa$81$2$ptr;
+          } else {
+           $485 = $$0661999 << 1;
+           $486 = (($$sroa$47$2) + 6)|0;
+           $487 = (($486) + ($485))|0;
+           $488 = ($487>>>0)>($$sroa$47$2>>>0);
+           if (!($488)) {
+            $$1$i7201009 = 67;
+            label = 189;
+            break L18;
+           }
+           $489 = (__gcry_realloc($480,$487)|0);
+           $490 = ($489|0)==(0|0);
+           if ($490) {
+            $494 = (___errno_location()|0);
+            $495 = HEAP32[$494>>2]|0;
+            $496 = (_gpg_err_code_from_errno($495)|0);
+            $497 = ($496|0)==(0);
+            if ($497) {
+             $$sroa$0$171004$ph = $$sroa$0$3;$$sroa$47$121003$ph = 
$$sroa$47$2;$$sroa$81$201002$ph = 
$$sroa$81$2;$$sroa$81$201002$ph$ptr$pre$phiZZZZZZ2D = $$sroa$81$2$ptr;
+             break;
+            } else {
+             $$1$i7201009 = $496;
+             label = 189;
+             break L18;
+            }
+           } else {
+            $491 = (($489) + ($481)|0);
+            $492 = $491;
+            $493 = $489;
+            $$sroa$0$171004$ph = $493;$$sroa$47$121003$ph = 
$487;$$sroa$81$201002$ph = $492;$$sroa$81$201002$ph$ptr$pre$phiZZZZZZ2D = $491;
+            break;
+           }
+          }
+         } while(0);
+         $502 = ($$0661999|0)==(0);
+         do {
+          if ($502) {
+           $$sroa$0$19 = $$sroa$0$171004$ph;$$sroa$81$22$ptr = 
$$sroa$81$201002$ph$ptr$pre$phiZZZZZZ2D;
+          } else {
+           $503 = $$sroa$0$171004$ph;
+           $504 = (__gcry_is_secure($503)|0);
+           $505 = ($504|0)==(0);
+           if (!($505)) {
+            $$sroa$0$19 = $$sroa$0$171004$ph;$$sroa$81$22$ptr = 
$$sroa$81$201002$ph$ptr$pre$phiZZZZZZ2D;
+            break;
+           }
+           $506 = (__gcry_is_secure($$0660)|0);
+           $507 = ($506|0)==(0);
+           if ($507) {
+            $$sroa$0$19 = $$sroa$0$171004$ph;$$sroa$81$22$ptr = 
$$sroa$81$201002$ph$ptr$pre$phiZZZZZZ2D;
+            break;
+           }
+           $508 = (__gcry_malloc_secure($$sroa$47$121003$ph)|0);
+           $509 = ($508|0)==(0|0);
+           if ($509) {
+            label = 195;
+            break L18;
+           }
+           $510 = (($$sroa$81$201002$ph) - ($$sroa$0$171004$ph))|0;
+           _memcpy(($508|0),($503|0),($510|0))|0;
+           $511 = (($508) + ($510)|0);
+           $$cast = $$sroa$0$171004$ph;
+           __gcry_free($$cast);
+           $512 = $508;
+           $$sroa$0$19 = $512;$$sroa$81$22$ptr = $511;
+          }
+         } while(0);
+         $516 = ((($$sroa$81$22$ptr)) + 1|0);
+         HEAP8[$$sroa$81$22$ptr>>0] = 1;
+         $517 = $$0661999&65535;
+         HEAP8[$516>>0]=$517&255;HEAP8[$516+1>>0]=$517>>8;
+         $518 = ((($$sroa$81$22$ptr)) + 3|0);
+         _memcpy(($518|0),($$0660|0),($$0661999|0))|0;
+         $519 = (($518) + ($$0661999)|0);
+         $520 = $519;
+         $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = 0;$$1614 = 
$$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = 
$$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$4621;$$sroa$0$27 = $$sroa$0$19;$$sroa$47$19 = 
$$sroa$47$121003$ph;$$sroa$81$32 = $520;
+         break L30;
+         break;
+        }
+        case 100:  {
+         if ($25) {
+          $arglist_current11 = HEAP32[$6>>2]|0;
+          $521 = $arglist_current11;
+          $522 = ((0) + 4|0);
+          $expanded50 = $522;
+          $expanded49 = (($expanded50) - 1)|0;
+          $523 = (($521) + ($expanded49))|0;
+          $524 = ((0) + 4|0);
+          $expanded54 = $524;
+          $expanded53 = (($expanded54) - 1)|0;
+          $expanded52 = $expanded53 ^ -1;
+          $525 = $523 & $expanded52;
+          $526 = $525;
+          $527 = HEAP32[$526>>2]|0;
+          $arglist_next12 = ((($526)) + 4|0);
+          HEAP32[$6>>2] = $arglist_next12;
+          $$0627 = $527;$$5622 = $$06171608;
+         } else {
+          $528 = (($$06171608) + 1)|0;
+          $529 = (($5) + ($$06171608<<2)|0);
+          $530 = HEAP32[$529>>2]|0;
+          $531 = HEAP32[$530>>2]|0;
+          $$0627 = $531;$$5622 = $528;
+         }
+         HEAP32[$vararg_buffer>>2] = $$0627;
+         (_sprintf($10,44684,$vararg_buffer)|0);
+         $532 = (_strlen($10)|0);
+         $533 = $$sroa$0$3;
+         $534 = (($$sroa$81$2) - ($$sroa$0$3))|0;
+         $535 = (($534) + 3)|0;
+         $536 = (($535) + ($532))|0;
+         $537 = ($536>>>0)<($$sroa$47$2>>>0);
+         do {
+          if ($537) {
+           $$sroa$0$211024$ph = $$sroa$0$3;$$sroa$47$131023$ph = 
$$sroa$47$2;$$sroa$81$241022$ph$ptr = $$sroa$81$2$ptr;
+          } else {
+           $538 = $532 << 1;
+           $539 = (($$sroa$47$2) + 6)|0;
+           $540 = (($539) + ($538))|0;
+           $541 = ($540>>>0)>($$sroa$47$2>>>0);
+           if (!($541)) {
+            $$1$i7221029 = 67;
+            label = 206;
+            break L18;
+           }
+           $542 = (__gcry_realloc($533,$540)|0);
+           $543 = ($542|0)==(0|0);
+           if ($543) {
+            $546 = (___errno_location()|0);
+            $547 = HEAP32[$546>>2]|0;
+            $548 = (_gpg_err_code_from_errno($547)|0);
+            $549 = ($548|0)==(0);
+            if ($549) {
+             $$sroa$0$211024$ph = $$sroa$0$3;$$sroa$47$131023$ph = 
$$sroa$47$2;$$sroa$81$241022$ph$ptr = $$sroa$81$2$ptr;
+             break;
+            } else {
+             $$1$i7221029 = $548;
+             label = 206;
+             break L18;
+            }
+           } else {
+            $544 = (($542) + ($534)|0);
+            $545 = $542;
+            $$sroa$0$211024$ph = $545;$$sroa$47$131023$ph = 
$540;$$sroa$81$241022$ph$ptr = $544;
+            break;
+           }
+          }
+         } while(0);
+         $550 = ((($$sroa$81$241022$ph$ptr)) + 1|0);
+         HEAP8[$$sroa$81$241022$ph$ptr>>0] = 1;
+         $551 = $532&65535;
+         HEAP8[$550>>0]=$551&255;HEAP8[$550+1>>0]=$551>>8;
+         $552 = ((($$sroa$81$241022$ph$ptr)) + 3|0);
+         _memcpy(($552|0),($10|0),($532|0))|0;
+         $553 = (($552) + ($532)|0);
+         $554 = $553;
+         $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = 0;$$1614 = 
$$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = 
$$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$5622;$$sroa$0$27 = $$sroa$0$211024$ph;$$sroa$47$19 = 
$$sroa$47$131023$ph;$$sroa$81$32 = $554;
+         break L30;
+         break;
+        }
+        case 117:  {
+         if ($25) {
+          $arglist_current14 = HEAP32[$6>>2]|0;
+          $558 = $arglist_current14;
+          $559 = ((0) + 4|0);
+          $expanded57 = $559;
+          $expanded56 = (($expanded57) - 1)|0;
+          $560 = (($558) + ($expanded56))|0;
+          $561 = ((0) + 4|0);
+          $expanded61 = $561;
+          $expanded60 = (($expanded61) - 1)|0;
+          $expanded59 = $expanded60 ^ -1;
+          $562 = $560 & $expanded59;
+          $563 = $562;
+          $564 = HEAP32[$563>>2]|0;
+          $arglist_next15 = ((($563)) + 4|0);
+          HEAP32[$6>>2] = $arglist_next15;
+          $$0612 = $564;$$6623 = $$06171608;
+         } else {
+          $565 = (($$06171608) + 1)|0;
+          $566 = (($5) + ($$06171608<<2)|0);
+          $567 = HEAP32[$566>>2]|0;
+          $568 = HEAP32[$567>>2]|0;
+          $$0612 = $568;$$6623 = $565;
+         }
+         HEAP32[$vararg_buffer16>>2] = $$0612;
+         (_sprintf($11,44687,$vararg_buffer16)|0);
+         $569 = (_strlen($11)|0);
+         $570 = $$sroa$0$3;
+         $571 = (($$sroa$81$2) - ($$sroa$0$3))|0;
+         $572 = (($571) + 3)|0;
+         $573 = (($572) + ($569))|0;
+         $574 = ($573>>>0)<($$sroa$47$2>>>0);
+         do {
+          if ($574) {
+           $$sroa$0$221043$ph = $$sroa$0$3;$$sroa$47$141042$ph = 
$$sroa$47$2;$$sroa$81$261041$ph$ptr = $$sroa$81$2$ptr;
+          } else {
+           $575 = $569 << 1;
+           $576 = (($$sroa$47$2) + 6)|0;
+           $577 = (($576) + ($575))|0;
+           $578 = ($577>>>0)>($$sroa$47$2>>>0);
+           if (!($578)) {
+            $$1$i7241048 = 67;
+            label = 216;
+            break L18;
+           }
+           $579 = (__gcry_realloc($570,$577)|0);
+           $580 = ($579|0)==(0|0);
+           if ($580) {
+            $583 = (___errno_location()|0);
+            $584 = HEAP32[$583>>2]|0;
+            $585 = (_gpg_err_code_from_errno($584)|0);
+            $586 = ($585|0)==(0);
+            if ($586) {
+             $$sroa$0$221043$ph = $$sroa$0$3;$$sroa$47$141042$ph = 
$$sroa$47$2;$$sroa$81$261041$ph$ptr = $$sroa$81$2$ptr;
+             break;
+            } else {
+             $$1$i7241048 = $585;
+             label = 216;
+             break L18;
+            }
+           } else {
+            $581 = (($579) + ($571)|0);
+            $582 = $579;
+            $$sroa$0$221043$ph = $582;$$sroa$47$141042$ph = 
$577;$$sroa$81$261041$ph$ptr = $581;
+            break;
+           }
+          }
+         } while(0);
+         $587 = ((($$sroa$81$261041$ph$ptr)) + 1|0);
+         HEAP8[$$sroa$81$261041$ph$ptr>>0] = 1;
+         $588 = $569&65535;
+         HEAP8[$587>>0]=$588&255;HEAP8[$587+1>>0]=$588>>8;
+         $589 = ((($$sroa$81$261041$ph$ptr)) + 3|0);
+         _memcpy(($589|0),($11|0),($569|0))|0;
+         $590 = (($589) + ($569)|0);
+         $591 = $590;
+         $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = 0;$$1614 = 
$$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = 
$$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$6623;$$sroa$0$27 = $$sroa$0$221043$ph;$$sroa$47$19 = 
$$sroa$47$141042$ph;$$sroa$81$32 = $591;
+         break L30;
+         break;
+        }
+        case 83:  {
+         if ($25) {
+          $arglist_current20 = HEAP32[$6>>2]|0;
+          $595 = $arglist_current20;
+          $596 = ((0) + 4|0);
+          $expanded64 = $596;
+          $expanded63 = (($expanded64) - 1)|0;
+          $597 = (($595) + ($expanded63))|0;
+          $598 = ((0) + 4|0);
+          $expanded68 = $598;
+          $expanded67 = (($expanded68) - 1)|0;
+          $expanded66 = $expanded67 ^ -1;
+          $599 = $597 & $expanded66;
+          $600 = $599;
+          $601 = HEAP32[$600>>2]|0;
+          $arglist_next21 = ((($600)) + 4|0);
+          HEAP32[$6>>2] = $arglist_next21;
+          $$0600 = $601;$$7624 = $$06171608;
+         } else {
+          $602 = (($$06171608) + 1)|0;
+          $603 = (($5) + ($$06171608<<2)|0);
+          $604 = HEAP32[$603>>2]|0;
+          $605 = HEAP32[$604>>2]|0;
+          $$0600 = $605;$$7624 = $602;
+         }
+         $606 = ($$0600|0)==(0|0);
+         if ($606) {
+          $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = 0;$$1614 = 
$$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = 
$$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$7624;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+          break L30;
+         }
+         $607 = HEAP8[$$0600>>0]|0;
+         $608 = ($607<<24>>24)==(0);
+         if ($608) {
+          $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = 0;$$1614 = 
$$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = 
$$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$7624;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+          break L30;
+         }
+         $609 = $$0600;
+         $$02830$i = $$0600;$$031$i = 0;$$0880 = 0;$611 = $607;
+         L303: while(1) {
+          $610 = ((($$02830$i)) + 1|0);
+          switch ($611<<24>>24) {
+          case 1:  {
+           $$0$copyload$i = HEAPU8[$610>>0]|(HEAPU8[$610+1>>0]<<8);
+           $612 = $$0$copyload$i&65535;
+           $613 = (($612) + 2)|0;
+           $614 = (($610) + ($613)|0);
+           $$1$i727 = $$031$i;$$129$i = $614;$$2882 = $$0880;
+           break;
+          }
+          case 3:  {
+           $615 = ($$031$i|0)==(0);
+           $616 = $$02830$i;
+           $617 = (($616) - ($609))|0;
+           $spec$select1129 = $615 ? $617 : $$0880;
+           $618 = (($$031$i) + 1)|0;
+           $$1$i727 = $618;$$129$i = $610;$$2882 = $spec$select1129;
+           break;
+          }
+          case 4:  {
+           $619 = (($$031$i) + -1)|0;
+           $620 = ($619|0)==(0);
+           if ($620) {
+            break L303;
+           } else {
+            $$1$i727 = $619;$$129$i = $610;$$2882 = $$0880;
+           }
+           break;
+          }
+          default: {
+           $$1$i727 = $$031$i;$$129$i = $610;$$2882 = $$0880;
+          }
+          }
+          $621 = HEAP8[$$129$i>>0]|0;
+          $622 = ($621<<24>>24)==(0);
+          if ($622) {
+           $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = 0;$$1614 = 
$$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = 
$$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$7624;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+           break L30;
+          } else {
+           $$02830$i = $$129$i;$$031$i = $$1$i727;$$0880 = $$2882;$611 = $621;
+          }
+         }
+         $623 = $610;
+         $624 = (($623) - ($609))|0;
+         $625 = ($624|0)==(0);
+         if ($625) {
+          $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = 0;$$1614 = 
$$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = 
$$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$7624;$$sroa$0$27 = $$sroa$0$3;$$sroa$47$19 = $$sroa$47$2;$$sroa$81$32 = 
$$sroa$81$2;
+          break L30;
+         }
+         $626 = $$sroa$0$3;
+         $627 = (($$sroa$81$2) - ($$sroa$0$3))|0;
+         $628 = (($627) + 3)|0;
+         $629 = (($628) + ($624))|0;
+         $630 = ($629>>>0)<($$sroa$47$2>>>0);
+         do {
+          if ($630) {
+           $$sroa$0$231062$ph = $$sroa$0$3;$$sroa$47$151061$ph = 
$$sroa$47$2;$$sroa$81$281060$ph$ptr = $$sroa$81$2$ptr;
+          } else {
+           $631 = $624 << 1;
+           $632 = (($$sroa$47$2) + 6)|0;
+           $633 = (($632) + ($631))|0;
+           $634 = ($633>>>0)>($$sroa$47$2>>>0);
+           if (!($634)) {
+            $$1$i7281067 = 67;
+            label = 235;
+            break L18;
+           }
+           $635 = (__gcry_realloc($626,$633)|0);
+           $636 = ($635|0)==(0|0);
+           if ($636) {
+            $639 = (___errno_location()|0);
+            $640 = HEAP32[$639>>2]|0;
+            $641 = (_gpg_err_code_from_errno($640)|0);
+            $642 = ($641|0)==(0);
+            if ($642) {
+             $$sroa$0$231062$ph = $$sroa$0$3;$$sroa$47$151061$ph = 
$$sroa$47$2;$$sroa$81$281060$ph$ptr = $$sroa$81$2$ptr;
+             break;
+            } else {
+             $$1$i7281067 = $641;
+             label = 235;
+             break L18;
+            }
+           } else {
+            $637 = (($635) + ($627)|0);
+            $638 = $635;
+            $$sroa$0$231062$ph = $638;$$sroa$47$151061$ph = 
$633;$$sroa$81$281060$ph$ptr = $637;
+            break;
+           }
+          }
+         } while(0);
+         $643 = (($$0600) + ($$0880)|0);
+         _memcpy(($$sroa$81$281060$ph$ptr|0),($643|0),($624|0))|0;
+         $644 = (($$sroa$81$281060$ph$ptr) + ($624)|0);
+         $645 = $644;
+         $$1593 = 0;$$1607 = 0;$$1609 = $$06081612;$$1611 = 0;$$1614 = 
$$06131610;$$1616 = $$06151609;$$1629 = $$06281607;$$2596 = 0;$$2599 = 
$$1598;$$3587 = $$05841619;$$3591 = $$05881618;$$4605 = 0;$$9626 = 
$$7624;$$sroa$0$27 = $$sroa$0$231062$ph;$$sroa$47$19 = 
$$sroa$47$151061$ph;$$sroa$81$32 = $645;
+         break L30;
+         break;
+        }
+        default: {
+         label = 236;
+         break L18;
+        }
+        }
+       }
+      } while(0);
+      $727 = ((($$3587)) + 1|0);
+      $728 = (($$3591) + -1)|0;
+      $$sroa$81$0$ptr = $$sroa$81$32;
+      $729 = ($728|0)==(0);
+      if ($729) {
+       label = 275;
+       break;
+      } else {
+       $$05841619 = $727;$$05881618 = $728;$$05921617 = $$1593;$$05941616 = 
$$2596;$$05971615 = $$2599;$$06011614 = $$4605;$$06061613 = $$1607;$$06081612 = 
$$1609;$$06101611 = $$1611;$$06131610 = $$1614;$$06151609 = $$1616;$$06171608 = 
$$9626;$$06281607 = $$1629;$$sroa$0$11606 = $$sroa$0$27;$$sroa$47$01605 = 
$$sroa$47$19;$$sroa$81$0$ptr1621 = $$sroa$81$0$ptr;$$sroa$81$01604 = 
$$sroa$81$32;
+      }
+     }
+     switch (label|0) {
+      case 18: {
+       $52 = $$05841619;
+       $$pn = $2;
+       $53 = (($52) - ($$pn))|0;
+       HEAP32[$spec$select>>2] = $53;
+       $$31$ph = $$1$i891;$$sroa$0$29$ph = $$sroa$0$11606;$$sroa$47$21$ph = 
$$sroa$47$01605;
+       label = 284;
+       break;
+      }
+      case 26: {
+       $72 = $$05841619;
+       $73 = $2;
+       $74 = (($72) - ($73))|0;
+       HEAP32[$spec$select>>2] = $74;
+       $$31$ph = 206;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = $$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 33: {
+       $83 = $$05841619;
+       $84 = $2;
+       $85 = (($83) - ($84))|0;
+       HEAP32[$spec$select>>2] = $85;
+       $$31$ph = 206;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = $$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 37: {
+       $95 = $$05841619;
+       $96 = $2;
+       $97 = (($95) - ($96))|0;
+       HEAP32[$spec$select>>2] = $97;
+       $$31$ph = 206;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = $$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 82: {
+       $198 = $$05841619;
+       $$pn1138 = $2;
+       $199 = (($198) - ($$pn1138))|0;
+       HEAP32[$spec$select>>2] = $199;
+       $$31$ph = $$1$i695904;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = 
$$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 88: {
+       $208 = $$05841619;
+       $209 = $2;
+       $210 = (($208) - ($209))|0;
+       HEAP32[$spec$select>>2] = $210;
+       $$31$ph = 212;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = $$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 94: {
+       $229 = $$05841619;
+       $230 = $2;
+       $231 = (($229) - ($230))|0;
+       HEAP32[$spec$select>>2] = $231;
+       $$31$ph = $$1$i697920;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = 
$$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 114: {
+       $264 = $$05841619;
+       $265 = $2;
+       $266 = (($264) - ($265))|0;
+       HEAP32[$spec$select>>2] = $266;
+       $$31$ph = 211;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = $$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 121: {
+       $276 = $$05841619;
+       $277 = $2;
+       $278 = (($276) - ($277))|0;
+       HEAP32[$spec$select>>2] = $278;
+       $$31$ph = 202;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = $$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 127: {
+       $296 = $$05841619;
+       $297 = $2;
+       $298 = (($296) - ($297))|0;
+       HEAP32[$spec$select>>2] = $298;
+       $$31$ph = $$1$i712934;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = 
$$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 131: {
+       $307 = $$05841619;
+       $308 = $2;
+       $309 = (($307) - ($308))|0;
+       HEAP32[$spec$select>>2] = $309;
+       $$31$ph = 201;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = $$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 144: {
+       $352 = $$05841619;
+       $353 = $2;
+       $354 = (($352) - ($353))|0;
+       HEAP32[$spec$select>>2] = $354;
+       $$10 = $$1$i714948;$$sroa$0$10 = $$sroa$0$3;$$sroa$47$7 = $$sroa$47$2;
+       label = 152;
+       break;
+      }
+      case 149: {
+       $364 = (___errno_location()|0);
+       $365 = HEAP32[$364>>2]|0;
+       $366 = (_gpg_err_code_from_errno($365)|0);
+       $$10 = $366;$$sroa$0$10 = $$sroa$0$7943$ph;$$sroa$47$7 = 
$$sroa$47$6942$ph;
+       label = 152;
+       break;
+      }
+      case 154: {
+       __gcry_bug(44662,1433,44669);
+       // unreachable;
+       break;
+      }
+      case 160: {
+       $396 = $$05841619;
+       $397 = $2;
+       $398 = (($396) - ($397))|0;
+       HEAP32[$spec$select>>2] = $398;
+       $$15$ph = $$1$i716967;$$sroa$0$15$ph = $$sroa$0$3;$$sroa$47$10$ph = 
$$sroa$47$2;
+       break;
+      }
+      case 165: {
+       $408 = (___errno_location()|0);
+       $409 = HEAP32[$408>>2]|0;
+       $410 = (_gpg_err_code_from_errno($409)|0);
+       $$15$ph = $410;$$sroa$0$15$ph = $$sroa$0$11962$ph;$$sroa$47$10$ph = 
$$sroa$47$8960$ph;
+       break;
+      }
+      case 167: {
+       __gcry_bug(44662,1460,44669);
+       // unreachable;
+       break;
+      }
+      case 180: {
+       $455 = $$05841619;
+       $456 = $2;
+       $457 = (($455) - ($456))|0;
+       HEAP32[$spec$select>>2] = $457;
+       $$31$ph = $$1$i718986;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = 
$$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 189: {
+       $498 = $$05841619;
+       $499 = $2;
+       $500 = (($498) - ($499))|0;
+       $501 = $$sroa$0$3;
+       HEAP32[$spec$select>>2] = $500;
+       $$311119 = $$1$i7201009;$$sroa$0$291118 = $$sroa$0$3;$$sroa$47$211117 = 
$$sroa$47$2;$758 = $501;
+       label = 288;
+       break L13;
+       break;
+      }
+      case 195: {
+       $513 = (___errno_location()|0);
+       $514 = HEAP32[$513>>2]|0;
+       $515 = (_gpg_err_code_from_errno($514)|0);
+       $$31 = $515;$$sroa$0$29 = $$sroa$0$171004$ph;$$sroa$47$21 = 
$$sroa$47$121003$ph;
+       label = 287;
+       break L13;
+       break;
+      }
+      case 206: {
+       $555 = $$05841619;
+       $556 = $2;
+       $557 = (($555) - ($556))|0;
+       HEAP32[$spec$select>>2] = $557;
+       $$31$ph = $$1$i7221029;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = 
$$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 216: {
+       $592 = $$05841619;
+       $593 = $2;
+       $594 = (($592) - ($593))|0;
+       HEAP32[$spec$select>>2] = $594;
+       $$31$ph = $$1$i7241048;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = 
$$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 235: {
+       $646 = $$05841619;
+       $647 = $2;
+       $648 = (($646) - ($647))|0;
+       HEAP32[$spec$select>>2] = $648;
+       $$31$ph = $$1$i7281067;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = 
$$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 236: {
+       $649 = $$05841619;
+       $650 = $2;
+       $651 = (($649) - ($650))|0;
+       HEAP32[$spec$select>>2] = $651;
+       $$31$ph = 201;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = $$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 239: {
+       $653 = $$05841619;
+       $654 = $2;
+       $655 = (($653) - ($654))|0;
+       HEAP32[$spec$select>>2] = $655;
+       $$31$ph = 209;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = $$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 245: {
+       $670 = $$05841619;
+       $671 = $2;
+       $672 = (($670) - ($671))|0;
+       HEAP32[$spec$select>>2] = $672;
+       $$31$ph = $$1$i7301084;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = 
$$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 248: {
+       $677 = $$05841619;
+       $678 = $2;
+       $679 = (($677) - ($678))|0;
+       HEAP32[$spec$select>>2] = $679;
+       $$31$ph = 209;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = $$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 254: {
+       $694 = $$05841619;
+       $695 = $2;
+       $696 = (($694) - ($695))|0;
+       HEAP32[$spec$select>>2] = $696;
+       $$31$ph = $$1$i7321099;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = 
$$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 259: {
+       $701 = $$05841619;
+       $702 = $2;
+       $703 = (($701) - ($702))|0;
+       HEAP32[$spec$select>>2] = $703;
+       $$31$ph = 208;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = $$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 261: {
+       $705 = $$05841619;
+       $706 = $2;
+       $707 = (($705) - ($706))|0;
+       HEAP32[$spec$select>>2] = $707;
+       $$31$ph = 209;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = $$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 264: {
+       $710 = $$05841619;
+       $711 = $2;
+       $712 = (($710) - ($711))|0;
+       HEAP32[$spec$select>>2] = $712;
+       $$31$ph = 207;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = $$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 268: {
+       $716 = $$05841619;
+       $717 = $2;
+       $718 = (($716) - ($717))|0;
+       HEAP32[$spec$select>>2] = $718;
+       $$31$ph = 210;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = $$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 270: {
+       $720 = $$05841619;
+       $721 = $2;
+       $722 = (($720) - ($721))|0;
+       HEAP32[$spec$select>>2] = $722;
+       $$31$ph = 210;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = $$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 272: {
+       $724 = $$05841619;
+       $725 = $2;
+       $726 = (($724) - ($725))|0;
+       HEAP32[$spec$select>>2] = $726;
+       $$31$ph = 205;$$sroa$0$29$ph = $$sroa$0$3;$$sroa$47$21$ph = $$sroa$47$2;
+       label = 284;
+       break;
+      }
+      case 275: {
+       $$sroa$81$0$ptr$le = $$sroa$81$32;
+       $$0584$lcssa = $727;$$0628$lcssa = $$1629;$$sroa$0$1$lcssa = 
$$sroa$0$27;$$sroa$47$0$lcssa = $$sroa$47$19;$$sroa$81$0$lcssa = 
$$sroa$81$32;$$sroa$81$0$ptr$lcssa = $$sroa$81$0$ptr$le;
+       break L16;
+       break;
+      }
+     }
+     if ((label|0) == 152) {
+      $$15$ph = $$10;$$sroa$0$15$ph = $$sroa$0$10;$$sroa$47$10$ph = 
$$sroa$47$7;
+     }
+     else if ((label|0) == 284) {
+      $752 = $$sroa$0$29$ph;
+      $$311119 = $$31$ph;$$sroa$0$291118 = $$sroa$0$29$ph;$$sroa$47$211117 = 
$$sroa$47$21$ph;$758 = $752;
+      label = 288;
+      break L13;
+     }
+     $$31 = $$15$ph;$$sroa$0$29 = $$sroa$0$15$ph;$$sroa$47$21 = 
$$sroa$47$10$ph;
+     label = 287;
+     break L13;
+    }
+   } while(0);
+   $730 = $$sroa$0$1$lcssa;
+   $731 = (($$sroa$81$0$lcssa) - ($$sroa$0$1$lcssa))|0;
+   $732 = (($731) + 3)|0;
+   $733 = ($732>>>0)<($$sroa$47$0$lcssa>>>0);
+   L361: do {
+    if ($733) {
+     $$sroa$0$281109$ph = $$sroa$0$1$lcssa;$$sroa$47$201108$ph = 
$$sroa$47$0$lcssa;$$sroa$81$331107$ptr$ph = $$sroa$81$0$ptr$lcssa;
+     label = 283;
+    } else {
+     $734 = (($$sroa$47$0$lcssa) + 6)|0;
+     $735 = ($$sroa$47$0$lcssa>>>0)<(4294967290);
+     do {
+      if ($735) {
+       $739 = (__gcry_realloc($730,$734)|0);
+       $740 = ($739|0)==(0|0);
+       if ($740) {
+        $743 = (___errno_location()|0);
+        $744 = HEAP32[$743>>2]|0;
+        $745 = (_gpg_err_code_from_errno($744)|0);
+        $746 = ($745|0)==(0);
+        $747 = $$0584$lcssa;
+        $748 = $2;
+        $749 = (($747) - ($748))|0;
+        if ($746) {
+         $$sroa$0$281109$ph = $$sroa$0$1$lcssa;$$sroa$47$201108$ph = 
$$sroa$47$0$lcssa;$$sroa$81$331107$ptr$ph = $$sroa$81$0$ptr$lcssa;
+         label = 283;
+         break L361;
+        } else {
+         $$1$i7361114 = $745;$750 = $749;
+         break;
+        }
+       } else {
+        $741 = (($739) + ($731)|0);
+        $742 = $739;
+        $$sroa$0$281109$ph = $742;$$sroa$47$201108$ph = 
$734;$$sroa$81$331107$ptr$ph = $741;
+        label = 283;
+        break L361;
+       }
+      } else {
+       $736 = $$0584$lcssa;
+       $737 = $2;
+       $738 = (($736) - ($737))|0;
+       $$1$i7361114 = 67;$750 = $738;
+      }
+     } while(0);
+     HEAP32[$spec$select>>2] = $750;
+     $$31$ph1947 = $$1$i7361114;$$sroa$0$29$ph1946 = 
$$sroa$0$1$lcssa;$$sroa$47$21$ph1945 = $$sroa$47$0$lcssa;
+    }
+   } while(0);
+   if ((label|0) == 283) {
+    $751 = ($$0628$lcssa|0)==(0);
+    HEAP8[$$sroa$81$331107$ptr$ph>>0] = 0;
+    if ($751) {
+     $753 = $$sroa$0$281109$ph;
+     $$sroa$0$291950 = $$sroa$0$281109$ph;$792 = $753;
+     break;
+    } else {
+     $$31$ph1947 = 203;$$sroa$0$29$ph1946 = 
$$sroa$0$281109$ph;$$sroa$47$21$ph1945 = $$sroa$47$201108$ph;
+    }
+   }
+   $754 = $$sroa$0$29$ph1946;
+   $$311119 = $$31$ph1947;$$sroa$0$291118 = 
$$sroa$0$29$ph1946;$$sroa$47$211117 = $$sroa$47$21$ph1945;$758 = $754;
+   label = 288;
+  }
+ } while(0);
+ if ((label|0) == 287) {
+  $755 = ($$31|0)==(0);
+  $756 = $$sroa$0$29;
+  if ($755) {
+   $$sroa$0$291950 = $$sroa$0$29;$792 = $756;
+  } else {
+   $$311119 = $$31;$$sroa$0$291118 = $$sroa$0$29;$$sroa$47$211117 = 
$$sroa$47$21;$758 = $756;
+   label = 288;
+  }
+ }
+ if ((label|0) == 288) {
+  $757 = ($758|0)==(0|0);
+  if ($757) {
+   $$0 = $$311119;
+   STACKTOP = sp;return ($$0|0);
+  }
+  $759 = (__gcry_is_secure($758)|0);
+  $760 = ($759|0)==(0);
+  if (!($760)) {
+   $761 = $758;
+   $762 = $761 & 7;
+   $763 = ($762|0)!=(0);
+   $764 = ($$sroa$47$211117|0)!=(0);
+   $765 = $764 & $763;
+   if ($765) {
+    $$05751592 = $$sroa$47$211117;$$05761591 = $758;
+    while(1) {
+     HEAP8[$$05761591>>0] = 0;
+     $766 = ((($$05761591)) + 1|0);
+     $767 = (($$05751592) + -1)|0;
+     $768 = $766;
+     $769 = $768 & 7;
+     $770 = ($769|0)!=(0);
+     $771 = ($767|0)!=(0);
+     $772 = $771 & $770;
+     if ($772) {
+      $$05751592 = $767;$$05761591 = $766;
+     } else {
+      $$0575$lcssa = $767;$$0576$lcssa = $766;
+      break;
+     }
+    }
+   } else {
+    $$0575$lcssa = $$sroa$47$211117;$$0576$lcssa = $758;
+   }
+   $773 = ($$0575$lcssa>>>0)<(8);
+   if ($773) {
+    $$2 = $$0575$lcssa;$$2578 = $$0576$lcssa;
+   } else {
+    $774 = (($$0575$lcssa) + -8)|0;
+    $775 = $774 & -8;
+    $776 = (($775) + 8)|0;
+    $$1 = $$0575$lcssa;$$1577 = $$0576$lcssa;
+    while(1) {
+     $777 = $$1577;
+     $778 = $777;
+     HEAP32[$778>>2] = 0;
+     $779 = (($777) + 4)|0;
+     $780 = $779;
+     HEAP32[$780>>2] = 0;
+     $781 = (($$1) + -8)|0;
+     $782 = ((($$1577)) + 8|0);
+     $783 = ($781>>>0)>(7);
+     if ($783) {
+      $$1 = $781;$$1577 = $782;
+     } else {
+      break;
+     }
+    }
+    $784 = (($774) - ($775))|0;
+    $scevgep = (($$0576$lcssa) + ($776)|0);
+    $$2 = $784;$$2578 = $scevgep;
+   }
+   $785 = ($$2|0)==(0);
+   if (!($785)) {
+    $$31590 = $$2;$$35791589 = $$2578;
+    while(1) {
+     HEAP8[$$35791589>>0] = 0;
+     $786 = ((($$35791589)) + 1|0);
+     $787 = (($$31590) + -1)|0;
+     $788 = ($787|0)==(0);
+     if ($788) {
+      break;
+     } else {
+      $$31590 = $787;$$35791589 = $786;
+     }
+    }
+   }
+  }
+  $789 = $$sroa$0$291118;
+  __gcry_free($789);
+  $$0 = $$311119;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $790 = ($$sroa$0$291950|0)==(0);
+ L400: do {
+  if ($790) {
+   $$0$i738 = 0;
+  } else {
+   $791 = HEAP8[$792>>0]|0;
+   switch ($791<<24>>24) {
+   case 0:  {
+    __gcry_free($792);
+    $$0$i738 = 0;
+    break L400;
+    break;
+   }
+   case 3:  {
+    break;
+   }
+   default: {
+    $$0$i738 = $792;
+    break L400;
+   }
+   }
+   $793 = ((($792)) + 1|0);
+   $794 = HEAP8[$793>>0]|0;
+   $795 = ($794<<24>>24)==(4);
+   if ($795) {
+    $796 = (__gcry_is_secure($792)|0);
+    $797 = ($796|0)==(0);
+    if (!($797)) {
+     $$062$i = $792;$799 = 3;
+     while(1) {
+      $798 = ((($$062$i)) + 1|0);
+      $cond$i = ($799<<24>>24)==(1);
+      if ($cond$i) {
+       $$0$copyload$i740 = HEAPU8[$798>>0]|(HEAPU8[$798+1>>0]<<8);
+       $800 = ((($$062$i)) + 3|0);
+       $801 = $$0$copyload$i740&65535;
+       $802 = (($800) + ($801)|0);
+       $$1$i741 = $802;
+      } else {
+       $$1$i741 = $798;
+      }
+      $803 = HEAP8[$$1$i741>>0]|0;
+      $804 = ($803<<24>>24)==(0);
+      if ($804) {
+       break;
+      } else {
+       $$062$i = $$1$i741;$799 = $803;
+      }
+     }
+     $805 = $$1$i741;
+     $806 = (($805) - ($$sroa$0$291950))|0;
+     $807 = $$sroa$0$291950 & 7;
+     $808 = ($807|0)!=(0);
+     $809 = ($806|0)!=(0);
+     $810 = $808 & $809;
+     if ($810) {
+      $$04859$i = $792;$$05058$i = $806;
+      while(1) {
+       HEAP8[$$04859$i>>0] = 0;
+       $811 = ((($$04859$i)) + 1|0);
+       $812 = (($$05058$i) + -1)|0;
+       $813 = $811;
+       $814 = $813 & 7;
+       $815 = ($814|0)!=(0);
+       $816 = ($812|0)!=(0);
+       $817 = $816 & $815;
+       if ($817) {
+        $$04859$i = $811;$$05058$i = $812;
+       } else {
+        $$048$lcssa$i = $811;$$050$lcssa$i = $812;
+        break;
+       }
+      }
+     } else {
+      $$048$lcssa$i = $792;$$050$lcssa$i = $806;
+     }
+     $818 = ($$050$lcssa$i>>>0)<(8);
+     if ($818) {
+      $$2$i742 = $$048$lcssa$i;$$252$i = $$050$lcssa$i;
+     } else {
+      $819 = (($$050$lcssa$i) + -8)|0;
+      $820 = $819 & -8;
+      $$149$i = $$048$lcssa$i;$$151$i = $$050$lcssa$i;
+      while(1) {
+       $821 = $$149$i;
+       $822 = $821;
+       HEAP32[$822>>2] = 0;
+       $823 = (($821) + 4)|0;
+       $824 = $823;
+       HEAP32[$824>>2] = 0;
+       $825 = (($$151$i) + -8)|0;
+       $826 = ((($$149$i)) + 8|0);
+       $827 = ($825>>>0)>(7);
+       if ($827) {
+        $$149$i = $826;$$151$i = $825;
+       } else {
+        break;
+       }
+      }
+      $828 = (($820) + 8)|0;
+      $829 = (($819) - ($820))|0;
+      $scevgep$i = (($$048$lcssa$i) + ($828)|0);
+      $$2$i742 = $scevgep$i;$$252$i = $829;
+     }
+     $830 = ($$252$i|0)==(0);
+     if (!($830)) {
+      $$35356$i = $$252$i;$$357$i = $$2$i742;
+      while(1) {
+       HEAP8[$$357$i>>0] = 0;
+       $831 = ((($$357$i)) + 1|0);
+       $832 = (($$35356$i) + -1)|0;
+       $833 = ($832|0)==(0);
+       if ($833) {
+        break;
+       } else {
+        $$35356$i = $832;$$357$i = $831;
+       }
+      }
+     }
+    }
+    __gcry_free($792);
+    $$0$i738 = 0;
+   } else {
+    $$0$i738 = $792;
+   }
+  }
+ } while(0);
+ HEAP32[$0>>2] = $$0$i738;
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_sexp_new($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0$i = 0, $$025$i = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 
= 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 
0, $9 = 0, $or$cond3$i = 0, $or$cond7$i = 0;
+ var $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $4 = sp + 8|0;
+ $5 = sp + 4|0;
+ $6 = ($0|0)==(0|0);
+ do {
+  if ($6) {
+   $$0$i = 45;
+  } else {
+   HEAP32[$0>>2] = 0;
+   $7 = ($3>>>0)<(2);
+   $8 = ($1|0)!=(0|0);
+   $or$cond3$i = $8 & $7;
+   if ($or$cond3$i) {
+    $9 = $3 | $2;
+    $10 = ($9|0)==(0);
+    if ($10) {
+     $11 = (__gcry_sexp_canon_len($1,0,0,$4)|0);
+     $12 = ($11|0)==(0);
+     if ($12) {
+      $13 = HEAP32[$4>>2]|0;
+      $$0$i = $13;
+      break;
+     } else {
+      $$025$i = $11;
+     }
+    } else {
+     $14 = ($3|0)!=(0);
+     $15 = ($2|0)==(0);
+     $or$cond7$i = $15 & $14;
+     if ($or$cond7$i) {
+      $16 = (_strlen($1)|0);
+      $$025$i = $16;
+     } else {
+      $$025$i = $2;
+     }
+    }
+    $17 = (_do_sexp_sscan($5,0,$1,$$025$i,0,0,$vararg_buffer)|0);
+    HEAP32[$4>>2] = $17;
+    $18 = ($17|0)==(0);
+    if ($18) {
+     $19 = HEAP32[$5>>2]|0;
+     HEAP32[$0>>2] = $19;
+     $$0$i = 0;
+    } else {
+     $$0$i = $17;
+    }
+   } else {
+    $$0$i = 45;
+   }
+  }
+ } while(0);
+ STACKTOP = sp;return ($$0$i|0);
+}
+function __gcry_sexp_release($0) {
+ $0 = $0|0;
+ var $$0$copyload = 0, $$0$lcssa = 0, $$048$lcssa = 0, $$04859 = 0, 
$$050$lcssa = 0, $$05058 = 0, $$062 = 0, $$1 = 0, $$149 = 0, $$151 = 0, $$2 = 
0, $$252 = 0, $$35356 = 0, $$357 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 
0, $14 = 0;
+ var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, 
$22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, 
$30 = 0, $31 = 0, $32 = 0;
+ var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $cond = 0, 
$scevgep = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  return;
+ }
+ $2 = (__gcry_is_secure($0)|0);
+ $3 = ($2|0)==(0);
+ if (!($3)) {
+  $4 = HEAP8[$0>>0]|0;
+  $5 = ($4<<24>>24)==(0);
+  if ($5) {
+   $$0$lcssa = $0;
+  } else {
+   $$062 = $0;$7 = $4;
+   while(1) {
+    $6 = ((($$062)) + 1|0);
+    $cond = ($7<<24>>24)==(1);
+    if ($cond) {
+     $$0$copyload = HEAPU8[$6>>0]|(HEAPU8[$6+1>>0]<<8);
+     $8 = ((($$062)) + 3|0);
+     $9 = $$0$copyload&65535;
+     $10 = (($8) + ($9)|0);
+     $$1 = $10;
+    } else {
+     $$1 = $6;
+    }
+    $11 = HEAP8[$$1>>0]|0;
+    $12 = ($11<<24>>24)==(0);
+    if ($12) {
+     $$0$lcssa = $$1;
+     break;
+    } else {
+     $$062 = $$1;$7 = $11;
+    }
+   }
+  }
+  $13 = $$0$lcssa;
+  $14 = $0;
+  $15 = (($13) - ($14))|0;
+  $16 = $14 & 7;
+  $17 = ($16|0)!=(0);
+  $18 = ($15|0)!=(0);
+  $19 = $18 & $17;
+  if ($19) {
+   $$04859 = $0;$$05058 = $15;
+   while(1) {
+    HEAP8[$$04859>>0] = 0;
+    $20 = ((($$04859)) + 1|0);
+    $21 = (($$05058) + -1)|0;
+    $22 = $20;
+    $23 = $22 & 7;
+    $24 = ($23|0)!=(0);
+    $25 = ($21|0)!=(0);
+    $26 = $25 & $24;
+    if ($26) {
+     $$04859 = $20;$$05058 = $21;
+    } else {
+     $$048$lcssa = $20;$$050$lcssa = $21;
+     break;
+    }
+   }
+  } else {
+   $$048$lcssa = $0;$$050$lcssa = $15;
+  }
+  $27 = ($$050$lcssa>>>0)<(8);
+  if ($27) {
+   $$2 = $$048$lcssa;$$252 = $$050$lcssa;
+  } else {
+   $28 = (($$050$lcssa) + -8)|0;
+   $29 = $28 & -8;
+   $30 = (($29) + 8)|0;
+   $$149 = $$048$lcssa;$$151 = $$050$lcssa;
+   while(1) {
+    $31 = $$149;
+    $32 = $31;
+    HEAP32[$32>>2] = 0;
+    $33 = (($31) + 4)|0;
+    $34 = $33;
+    HEAP32[$34>>2] = 0;
+    $35 = (($$151) + -8)|0;
+    $36 = ((($$149)) + 8|0);
+    $37 = ($35>>>0)>(7);
+    if ($37) {
+     $$149 = $36;$$151 = $35;
+    } else {
+     break;
+    }
+   }
+   $38 = (($28) - ($29))|0;
+   $scevgep = (($$048$lcssa) + ($30)|0);
+   $$2 = $scevgep;$$252 = $38;
+  }
+  $39 = ($$252|0)==(0);
+  if (!($39)) {
+   $$35356 = $$252;$$357 = $$2;
+   while(1) {
+    HEAP8[$$357>>0] = 0;
+    $40 = ((($$357)) + 1|0);
+    $41 = (($$35356) + -1)|0;
+    $42 = ($41|0)==(0);
+    if ($42) {
+     break;
+    } else {
+     $$35356 = $41;$$357 = $40;
+    }
+   }
+  }
+ }
+ __gcry_free($0);
+ return;
+}
+function __gcry_sexp_find_token($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0$copyload = 0, $$0$copyload$i = 0, $$0$copyload22 = 0, $$0$copyload30 
= 0, $$0108 = 0, $$048$lcssa$i = 0, $$04859$i = 0, $$050$lcssa$i = 0, $$05058$i 
= 0, $$062$i = 0, $$068 = 0, $$069 = 0, $$069$be = 0, $$1 = 0, $$1$i = 0, 
$$149$i = 0, $$151$i = 0, $$170107 = 0, $$2$i = 0, $$252$i = 0;
+ var $$271 = 0, $$35356$i = 0, $$357$i = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 
0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 
= 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0;
+ var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, 
$51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 
0, $6 = 0, $60 = 0, $61 = 0;
+ var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, 
$7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, 
$78 = 0, $79 = 0, $8 = 0;
+ var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $9 = 0, $cond$i = 0, $scevgep$i = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ($0|0)==(0|0);
+ if ($3) {
+  $$4 = 0;
+  return ($$4|0);
+ }
+ $4 = ($2|0)==(0);
+ if ($4) {
+  $5 = (_strlen($1)|0);
+  $$068 = $5;
+ } else {
+  $$068 = $2;
+ }
+ $$069 = $0;
+ L7: while(1) {
+  $6 = HEAP8[$$069>>0]|0;
+  switch ($6<<24>>24) {
+  case 0:  {
+   $$4 = 0;
+   label = 40;
+   break L7;
+   break;
+  }
+  case 3:  {
+   $7 = ((($$069)) + 1|0);
+   $8 = HEAP8[$7>>0]|0;
+   $9 = ($8<<24>>24)==(1);
+   if ($9) {
+    $10 = ((($$069)) + 2|0);
+    $$0$copyload = HEAPU8[$10>>0]|(HEAPU8[$10+1>>0]<<8);
+    $11 = ((($$069)) + 4|0);
+    $12 = $$0$copyload&65535;
+    $13 = ($$068|0)==($12|0);
+    if ($13) {
+     $14 = (_memcmp($11,$1,$$068)|0);
+     $15 = ($14|0)==(0);
+     if ($15) {
+      break L7;
+     }
+    }
+    $78 = (($11) + ($12)|0);
+    $$069$be = $78;
+   } else {
+    $$069$be = $7;
+   }
+   break;
+  }
+  default: {
+   $79 = ($6<<24>>24)==(1);
+   $80 = ((($$069)) + 1|0);
+   if ($79) {
+    $$0$copyload30 = HEAPU8[$80>>0]|(HEAPU8[$80+1>>0]<<8);
+    $81 = ((($$069)) + 3|0);
+    $82 = $$0$copyload30&65535;
+    $83 = (($81) + ($82)|0);
+    $$069$be = $83;
+   } else {
+    $$069$be = $80;
+   }
+  }
+  }
+  $$069 = $$069$be;
+ }
+ if ((label|0) == 40) {
+  return ($$4|0);
+ }
+ $16 = (($11) + ($$068)|0);
+ $$0108 = 1;$$170107 = $16;
+ L21: while(1) {
+  $17 = HEAP8[$$170107>>0]|0;
+  switch ($17<<24>>24) {
+  case 0:  {
+   label = 15;
+   break L21;
+   break;
+  }
+  case 1:  {
+   $18 = ((($$170107)) + 1|0);
+   $$0$copyload22 = HEAPU8[$18>>0]|(HEAPU8[$18+1>>0]<<8);
+   $19 = $$0$copyload22&65535;
+   $20 = (($19) + 2)|0;
+   $21 = (($18) + ($20)|0);
+   $22 = ((($21)) + -1|0);
+   $$1 = $$0108;$$271 = $22;
+   break;
+  }
+  case 3:  {
+   $23 = (($$0108) + 1)|0;
+   $$1 = $23;$$271 = $$170107;
+   break;
+  }
+  case 4:  {
+   $24 = (($$0108) + -1)|0;
+   $$1 = $24;$$271 = $$170107;
+   break;
+  }
+  default: {
+   $$1 = $$0108;$$271 = $$170107;
+  }
+  }
+  $25 = ((($$271)) + 1|0);
+  $26 = ($$1|0)==(0);
+  if ($26) {
+   break;
+  } else {
+   $$0108 = $$1;$$170107 = $25;
+  }
+ }
+ if ((label|0) == 15) {
+  __gcry_bug(44662,481,44693);
+  // unreachable;
+ }
+ $27 = $25;
+ $28 = $$069;
+ $29 = (($27) - ($28))|0;
+ $30 = $29 & 65535;
+ $31 = (($30) + 1)|0;
+ $32 = (__gcry_malloc($31)|0);
+ $33 = ($32|0)==(0|0);
+ if ($33) {
+  $$4 = 0;
+  return ($$4|0);
+ }
+ _memcpy(($32|0),($$069|0),($30|0))|0;
+ $34 = (($32) + ($30)|0);
+ HEAP8[$34>>0] = 0;
+ $35 = HEAP8[$32>>0]|0;
+ switch ($35<<24>>24) {
+ case 0:  {
+  __gcry_free($32);
+  $$4 = 0;
+  return ($$4|0);
+  break;
+ }
+ case 3:  {
+  $36 = ((($32)) + 1|0);
+  $37 = HEAP8[$36>>0]|0;
+  $38 = ($37<<24>>24)==(4);
+  if (!($38)) {
+   $$4 = $32;
+   return ($$4|0);
+  }
+  $39 = (__gcry_is_secure($32)|0);
+  $40 = ($39|0)==(0);
+  if (!($40)) {
+   $$062$i = $32;$42 = 3;
+   while(1) {
+    $41 = ((($$062$i)) + 1|0);
+    $cond$i = ($42<<24>>24)==(1);
+    if ($cond$i) {
+     $$0$copyload$i = HEAPU8[$41>>0]|(HEAPU8[$41+1>>0]<<8);
+     $43 = ((($$062$i)) + 3|0);
+     $44 = $$0$copyload$i&65535;
+     $45 = (($43) + ($44)|0);
+     $$1$i = $45;
+    } else {
+     $$1$i = $41;
+    }
+    $46 = HEAP8[$$1$i>>0]|0;
+    $47 = ($46<<24>>24)==(0);
+    if ($47) {
+     break;
+    } else {
+     $$062$i = $$1$i;$42 = $46;
+    }
+   }
+   $48 = $$1$i;
+   $49 = $32;
+   $50 = (($48) - ($49))|0;
+   $51 = $49 & 7;
+   $52 = ($51|0)!=(0);
+   $53 = ($50|0)!=(0);
+   $54 = $52 & $53;
+   if ($54) {
+    $$04859$i = $32;$$05058$i = $50;
+    while(1) {
+     HEAP8[$$04859$i>>0] = 0;
+     $55 = ((($$04859$i)) + 1|0);
+     $56 = (($$05058$i) + -1)|0;
+     $57 = $55;
+     $58 = $57 & 7;
+     $59 = ($58|0)!=(0);
+     $60 = ($56|0)!=(0);
+     $61 = $60 & $59;
+     if ($61) {
+      $$04859$i = $55;$$05058$i = $56;
+     } else {
+      $$048$lcssa$i = $55;$$050$lcssa$i = $56;
+      break;
+     }
+    }
+   } else {
+    $$048$lcssa$i = $32;$$050$lcssa$i = $50;
+   }
+   $62 = ($$050$lcssa$i>>>0)<(8);
+   if ($62) {
+    $$2$i = $$048$lcssa$i;$$252$i = $$050$lcssa$i;
+   } else {
+    $63 = (($$050$lcssa$i) + -8)|0;
+    $64 = $63 & -8;
+    $$149$i = $$048$lcssa$i;$$151$i = $$050$lcssa$i;
+    while(1) {
+     $65 = $$149$i;
+     $66 = $65;
+     HEAP32[$66>>2] = 0;
+     $67 = (($65) + 4)|0;
+     $68 = $67;
+     HEAP32[$68>>2] = 0;
+     $69 = (($$151$i) + -8)|0;
+     $70 = ((($$149$i)) + 8|0);
+     $71 = ($69>>>0)>(7);
+     if ($71) {
+      $$149$i = $70;$$151$i = $69;
+     } else {
+      break;
+     }
+    }
+    $72 = (($64) + 8)|0;
+    $73 = (($63) - ($64))|0;
+    $scevgep$i = (($$048$lcssa$i) + ($72)|0);
+    $$2$i = $scevgep$i;$$252$i = $73;
+   }
+   $74 = ($$252$i|0)==(0);
+   if (!($74)) {
+    $$35356$i = $$252$i;$$357$i = $$2$i;
+    while(1) {
+     HEAP8[$$357$i>>0] = 0;
+     $75 = ((($$357$i)) + 1|0);
+     $76 = (($$35356$i) + -1)|0;
+     $77 = ($76|0)==(0);
+     if ($77) {
+      break;
+     } else {
+      $$35356$i = $76;$$357$i = $75;
+     }
+    }
+   }
+  }
+  __gcry_free($32);
+  $$4 = 0;
+  return ($$4|0);
+  break;
+ }
+ default: {
+  $$4 = $32;
+  return ($$4|0);
+ }
+ }
+ return (0)|0;
+}
+function __gcry_sexp_length($0) {
+ $0 = $0|0;
+ var $$0$copyload = 0, $$02633 = 0, $$028 = 0, $$02932 = 0, $$034 = 0, $$1 = 
0, $$130 = 0, $$2 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 
= 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0;
+ var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, $spec$select31 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  $$028 = 0;
+  return ($$028|0);
+ }
+ $2 = HEAP8[$0>>0]|0;
+ $3 = ($2<<24>>24)==(0);
+ if ($3) {
+  $$028 = 0;
+  return ($$028|0);
+ }
+ $$02633 = 0;$$02932 = $0;$$034 = 0;$5 = $2;
+ while(1) {
+  $4 = ((($$02932)) + 1|0);
+  switch ($5<<24>>24) {
+  case 1:  {
+   $$0$copyload = HEAPU8[$4>>0]|(HEAPU8[$4+1>>0]<<8);
+   $6 = $$0$copyload&65535;
+   $7 = (($6) + 2)|0;
+   $8 = (($4) + ($7)|0);
+   $9 = ($$034|0)==(1);
+   $10 = $9&1;
+   $spec$select = (($$02633) + ($10))|0;
+   $$1 = $$034;$$130 = $8;$$2 = $spec$select;
+   break;
+  }
+  case 3:  {
+   $11 = ($$034|0)==(1);
+   $12 = $11&1;
+   $spec$select31 = (($$02633) + ($12))|0;
+   $13 = (($$034) + 1)|0;
+   $$1 = $13;$$130 = $4;$$2 = $spec$select31;
+   break;
+  }
+  case 4:  {
+   $14 = (($$034) + -1)|0;
+   $$1 = $14;$$130 = $4;$$2 = $$02633;
+   break;
+  }
+  default: {
+   $$1 = $$034;$$130 = $4;$$2 = $$02633;
+  }
+  }
+  $15 = HEAP8[$$130>>0]|0;
+  $16 = ($15<<24>>24)==(0);
+  if ($16) {
+   $$028 = $$2;
+   break;
+  } else {
+   $$02633 = $$2;$$02932 = $$130;$$034 = $$1;$5 = $15;
+  }
+ }
+ return ($$028|0);
+}
+function __gcry_sexp_nth($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0$$sroa_idx31 = 0, $$0$copyload = 0, $$0$copyload$i = 0, $$0$copyload33 
= 0, $$0$copyload39 = 0, $$048$lcssa$i = 0, $$04859$i = 0, $$050$lcssa$i = 0, 
$$05058$i = 0, $$062$i = 0, $$076124 = 0, $$078113$in133 = 0, $$078113135 = 0, 
$$079$lcssa = 0, $$079123 = 0, $$083122 = 0, $$1 = 0, $$1$i = 0, $$149$i = 0, 
$$151$i = 0;
+ var $$177 = 0, $$180 = 0, $$184 = 0, $$2 = 0, $$2$i = 0, $$252$i = 0, $$281 = 
0, $$3 = 0, $$35356$i = 0, $$357$i = 0, $$382 = 0, $$lcssa115 = 0, $$lcssa117 = 
0, $$lcssa119 = 0, $$pre = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0;
+ var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, 
$22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, 
$30 = 0, $31 = 0, $32 = 0;
+ var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 
0, $49 = 0, $5 = 0, $50 = 0;
+ var $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, 
$59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, 
$67 = 0, $68 = 0, $69 = 0;
+ var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, 
$77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, 
$85 = 0, $86 = 0, $87 = 0;
+ var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, 
$95 = 0, $96 = 0, $cond$i = 0, $scevgep$i = 0, $spec$select = 0, $spec$select85 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($0|0)==(0|0);
+ if ($2) {
+  $$1 = 0;
+  return ($$1|0);
+ }
+ $3 = HEAP8[$0>>0]|0;
+ $4 = ($3<<24>>24)==(3);
+ if (!($4)) {
+  $$1 = 0;
+  return ($$1|0);
+ }
+ $5 = ($1|0)>(0);
+ $6 = ((($0)) + 1|0);
+ $7 = HEAP8[$6>>0]|0;
+ $8 = ($7<<24>>24)==(1);
+ L7: do {
+  if ($5) {
+   $$076124 = 0;$$079123 = $0;$$083122 = $1;$16 = $7;$95 = $8;$96 = $6;
+   L9: while(1) {
+    L11: do {
+     if ($95) {
+      $9 = ((($$079123)) + 2|0);
+      $$0$copyload = HEAPU8[$9>>0]|(HEAPU8[$9+1>>0]<<8);
+      $10 = $$0$copyload&65535;
+      $11 = (($10) + 2)|0;
+      $12 = (($9) + ($11)|0);
+      $13 = ((($12)) + -1|0);
+      $14 = ($$076124|0)==(0);
+      $15 = $14 << 31 >> 31;
+      $spec$select = (($$083122) + ($15))|0;
+      $$177 = $$076124;$$180 = $13;$$184 = $spec$select;
+     } else {
+      switch ($16<<24>>24) {
+      case 0:  {
+       $$1 = 0;
+       break L9;
+       break;
+      }
+      case 3:  {
+       $17 = (($$076124) + 1)|0;
+       $$177 = $17;$$180 = $96;$$184 = $$083122;
+       break L11;
+       break;
+      }
+      case 4:  {
+       $18 = (($$076124) + -1)|0;
+       $19 = ($18|0)==(0);
+       $20 = $19 << 31 >> 31;
+       $spec$select85 = (($$083122) + ($20))|0;
+       $$177 = $18;$$180 = $96;$$184 = $spec$select85;
+       break L11;
+       break;
+      }
+      default: {
+       $$177 = $$076124;$$180 = $96;$$184 = $$083122;
+       break L11;
+      }
+      }
+     }
+    } while(0);
+    $21 = ($$184|0)>(0);
+    $22 = ((($$180)) + 1|0);
+    $23 = HEAP8[$22>>0]|0;
+    $24 = ($23<<24>>24)==(1);
+    if ($21) {
+     $$076124 = $$177;$$079123 = $$180;$$083122 = $$184;$16 = $23;$95 = 
$24;$96 = $22;
+    } else {
+     $$079$lcssa = $$180;$$lcssa115 = $24;$$lcssa117 = $23;$$lcssa119 = $22;
+     break L7;
+    }
+   }
+   return ($$1|0);
+  } else {
+   $$079$lcssa = $0;$$lcssa115 = $8;$$lcssa117 = $7;$$lcssa119 = $6;
+  }
+ } while(0);
+ L20: do {
+  if ($$lcssa115) {
+   $$0$$sroa_idx31 = ((($$079$lcssa)) + 2|0);
+   $$0$copyload33 = 
HEAPU8[$$0$$sroa_idx31>>0]|(HEAPU8[$$0$$sroa_idx31+1>>0]<<8);
+   $25 = $$0$copyload33&65535;
+   $26 = (($25) + 6)|0;
+   $27 = (__gcry_malloc($26)|0);
+   $28 = ($27|0)==(0|0);
+   if ($28) {
+    $$1 = 0;
+    return ($$1|0);
+   } else {
+    $48 = ((($27)) + 1|0);
+    HEAP8[$27>>0] = 3;
+    $49 = (($25) + 3)|0;
+    _memcpy(($48|0),($$lcssa119|0),($49|0))|0;
+    $50 = (($48) + ($49)|0);
+    $51 = ((($50)) + 1|0);
+    HEAP8[$50>>0] = 4;
+    HEAP8[$51>>0] = 0;
+    $$078113$in133 = $27;$$078113135 = $27;
+    break;
+   }
+  } else {
+   $29 = ($$lcssa117<<24>>24)==(3);
+   if (!($29)) {
+    $$1 = 0;
+    return ($$1|0);
+   }
+   $$2 = 1;$$281 = $$lcssa119;
+   L29: while(1) {
+    $30 = ((($$281)) + 1|0);
+    $31 = HEAP8[$30>>0]|0;
+    switch ($31<<24>>24) {
+    case 0:  {
+     label = 19;
+     break L29;
+     break;
+    }
+    case 1:  {
+     $32 = ((($$281)) + 2|0);
+     $$0$copyload39 = HEAPU8[$32>>0]|(HEAPU8[$32+1>>0]<<8);
+     $33 = $$0$copyload39&65535;
+     $34 = (($33) + 2)|0;
+     $35 = (($32) + ($34)|0);
+     $36 = ((($35)) + -1|0);
+     $$3 = $$2;$$382 = $36;
+     break;
+    }
+    case 3:  {
+     $37 = (($$2) + 1)|0;
+     $$3 = $37;$$382 = $30;
+     break;
+    }
+    case 4:  {
+     $38 = (($$2) + -1)|0;
+     $$3 = $38;$$382 = $30;
+     break;
+    }
+    default: {
+     $$3 = $$2;$$382 = $30;
+    }
+    }
+    $39 = ($$3|0)==(0);
+    if ($39) {
+     break;
+    } else {
+     $$2 = $$3;$$281 = $$382;
+    }
+   }
+   if ((label|0) == 19) {
+    __gcry_bug(44662,673,44715);
+    // unreachable;
+   }
+   $40 = ((($$382)) + 1|0);
+   $41 = $40;
+   $42 = $$lcssa119;
+   $43 = (($41) - ($42))|0;
+   $44 = $43 & 65535;
+   $45 = (($44) + 1)|0;
+   $46 = (__gcry_malloc($45)|0);
+   $47 = ($46|0)==(0|0);
+   if ($47) {
+    $$1 = 0;
+    return ($$1|0);
+   }
+   _memcpy(($46|0),($$lcssa119|0),($44|0))|0;
+   $52 = (($46) + ($44)|0);
+   HEAP8[$52>>0] = 0;
+   $$pre = HEAP8[$46>>0]|0;
+   switch ($$pre<<24>>24) {
+   case 3:  {
+    $$078113$in133 = $46;$$078113135 = $46;
+    break L20;
+    break;
+   }
+   case 0:  {
+    break;
+   }
+   default: {
+    $$1 = $46;
+    return ($$1|0);
+   }
+   }
+   __gcry_free($46);
+   $$1 = 0;
+   return ($$1|0);
+  }
+ } while(0);
+ $53 = ((($$078113$in133)) + 1|0);
+ $54 = HEAP8[$53>>0]|0;
+ $55 = ($54<<24>>24)==(4);
+ if (!($55)) {
+  $$1 = $$078113135;
+  return ($$1|0);
+ }
+ $56 = (__gcry_is_secure($$078113$in133)|0);
+ $57 = ($56|0)==(0);
+ if (!($57)) {
+  $$062$i = $$078113$in133;$59 = 3;
+  while(1) {
+   $58 = ((($$062$i)) + 1|0);
+   $cond$i = ($59<<24>>24)==(1);
+   if ($cond$i) {
+    $$0$copyload$i = HEAPU8[$58>>0]|(HEAPU8[$58+1>>0]<<8);
+    $60 = ((($$062$i)) + 3|0);
+    $61 = $$0$copyload$i&65535;
+    $62 = (($60) + ($61)|0);
+    $$1$i = $62;
+   } else {
+    $$1$i = $58;
+   }
+   $63 = HEAP8[$$1$i>>0]|0;
+   $64 = ($63<<24>>24)==(0);
+   if ($64) {
+    break;
+   } else {
+    $$062$i = $$1$i;$59 = $63;
+   }
+  }
+  $65 = $$1$i;
+  $66 = $$078113$in133;
+  $67 = (($65) - ($66))|0;
+  $68 = $66 & 7;
+  $69 = ($68|0)!=(0);
+  $70 = ($67|0)!=(0);
+  $71 = $69 & $70;
+  if ($71) {
+   $$04859$i = $$078113$in133;$$05058$i = $67;
+   while(1) {
+    HEAP8[$$04859$i>>0] = 0;
+    $72 = ((($$04859$i)) + 1|0);
+    $73 = (($$05058$i) + -1)|0;
+    $74 = $72;
+    $75 = $74 & 7;
+    $76 = ($75|0)!=(0);
+    $77 = ($73|0)!=(0);
+    $78 = $77 & $76;
+    if ($78) {
+     $$04859$i = $72;$$05058$i = $73;
+    } else {
+     $$048$lcssa$i = $72;$$050$lcssa$i = $73;
+     break;
+    }
+   }
+  } else {
+   $$048$lcssa$i = $$078113$in133;$$050$lcssa$i = $67;
+  }
+  $79 = ($$050$lcssa$i>>>0)<(8);
+  if ($79) {
+   $$2$i = $$048$lcssa$i;$$252$i = $$050$lcssa$i;
+  } else {
+   $80 = (($$050$lcssa$i) + -8)|0;
+   $81 = $80 & -8;
+   $$149$i = $$048$lcssa$i;$$151$i = $$050$lcssa$i;
+   while(1) {
+    $82 = $$149$i;
+    $83 = $82;
+    HEAP32[$83>>2] = 0;
+    $84 = (($82) + 4)|0;
+    $85 = $84;
+    HEAP32[$85>>2] = 0;
+    $86 = (($$151$i) + -8)|0;
+    $87 = ((($$149$i)) + 8|0);
+    $88 = ($86>>>0)>(7);
+    if ($88) {
+     $$149$i = $87;$$151$i = $86;
+    } else {
+     break;
+    }
+   }
+   $89 = (($81) + 8)|0;
+   $90 = (($80) - ($81))|0;
+   $scevgep$i = (($$048$lcssa$i) + ($89)|0);
+   $$2$i = $scevgep$i;$$252$i = $90;
+  }
+  $91 = ($$252$i|0)==(0);
+  if (!($91)) {
+   $$35356$i = $$252$i;$$357$i = $$2$i;
+   while(1) {
+    HEAP8[$$357$i>>0] = 0;
+    $92 = ((($$357$i)) + 1|0);
+    $93 = (($$35356$i) + -1)|0;
+    $94 = ($93|0)==(0);
+    if ($94) {
+     break;
+    } else {
+     $$35356$i = $93;$$357$i = $92;
+    }
+   }
+  }
+ }
+ __gcry_free($$078113$in133);
+ $$1 = 0;
+ return ($$1|0);
+}
+function __gcry_sexp_nth_data($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0$copyload$i = 0, $$0$copyload9$i = 0, $$036$i = 0, $$03742$i = 0, 
$$044$i = 0, $$1$i = 0, $$135$lcssa$i = 0, $$135$lcssa48$i = 0, $$13543$i = 0, 
$$138$i = 0, $$2$i = 0, $$lcssa$i = 0, $$pre$i = 0, $10 = 0, $11 = 0, $12 = 0, 
$13 = 0, $14 = 0, $15 = 0, $16 = 0;
+ var $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, $3 = 0, $30 = 0, $4 = 0, $5 = 0, 
$6 = 0, $7 = 0, $8 = 0;
+ var $9 = 0, $or$cond$i = 0, $spec$select$i = 0, $spec$select39$i = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ HEAP32[$2>>2] = 0;
+ $3 = ($0|0)==(0|0);
+ if ($3) {
+  $$036$i = 0;
+  return ($$036$i|0);
+ }
+ $4 = HEAP8[$0>>0]|0;
+ $5 = ($4<<24>>24)==(3);
+ if ($5) {
+  $8 = ((($0)) + 1|0);
+  $$pre$i = HEAP8[$8>>0]|0;
+  $9 = ($1|0)>(0);
+  $10 = ($$pre$i<<24>>24)==(1);
+  L6: do {
+   if ($9) {
+    $$03742$i = $1;$$044$i = 0;$$13543$i = $8;$18 = $$pre$i;$30 = $10;
+    L8: while(1) {
+     L10: do {
+      if ($30) {
+       $11 = ((($$13543$i)) + 1|0);
+       $$0$copyload$i = HEAPU8[$11>>0]|(HEAPU8[$11+1>>0]<<8);
+       $12 = $$0$copyload$i&65535;
+       $13 = (($12) + 2)|0;
+       $14 = (($11) + ($13)|0);
+       $15 = ((($14)) + -1|0);
+       $16 = ($$044$i|0)==(0);
+       $17 = $16 << 31 >> 31;
+       $spec$select$i = (($$03742$i) + ($17))|0;
+       $$1$i = $$044$i;$$138$i = $spec$select$i;$$2$i = $15;
+      } else {
+       switch ($18<<24>>24) {
+       case 0:  {
+        $$036$i = 0;
+        break L8;
+        break;
+       }
+       case 3:  {
+        $19 = (($$044$i) + 1)|0;
+        $$1$i = $19;$$138$i = $$03742$i;$$2$i = $$13543$i;
+        break L10;
+        break;
+       }
+       case 4:  {
+        $20 = (($$044$i) + -1)|0;
+        $21 = ($20|0)==(0);
+        $22 = $21 << 31 >> 31;
+        $spec$select39$i = (($$03742$i) + ($22))|0;
+        $$1$i = $20;$$138$i = $spec$select39$i;$$2$i = $$13543$i;
+        break L10;
+        break;
+       }
+       default: {
+        $$1$i = $$044$i;$$138$i = $$03742$i;$$2$i = $$13543$i;
+        break L10;
+       }
+       }
+      }
+     } while(0);
+     $23 = ((($$2$i)) + 1|0);
+     $24 = ($$138$i|0)>(0);
+     $25 = HEAP8[$23>>0]|0;
+     $26 = ($25<<24>>24)==(1);
+     if ($24) {
+      $$03742$i = $$138$i;$$044$i = $$1$i;$$13543$i = $23;$18 = $25;$30 = $26;
+     } else {
+      $$135$lcssa$i = $23;$$lcssa$i = $26;
+      break L6;
+     }
+    }
+    return ($$036$i|0);
+   } else {
+    $$135$lcssa$i = $8;$$lcssa$i = $10;
+   }
+  } while(0);
+  if ($$lcssa$i) {
+   $$135$lcssa48$i = $$135$lcssa$i;
+  } else {
+   $$036$i = 0;
+   return ($$036$i|0);
+  }
+ } else {
+  $6 = ($1|0)==(0);
+  $7 = ($4<<24>>24)==(1);
+  $or$cond$i = $6 & $7;
+  if ($or$cond$i) {
+   $$135$lcssa48$i = $0;
+  } else {
+   $$036$i = 0;
+   return ($$036$i|0);
+  }
+ }
+ $27 = ((($$135$lcssa48$i)) + 1|0);
+ $$0$copyload9$i = HEAPU8[$27>>0]|(HEAPU8[$27+1>>0]<<8);
+ $28 = $$0$copyload9$i&65535;
+ HEAP32[$2>>2] = $28;
+ $29 = ((($$135$lcssa48$i)) + 3|0);
+ $$036$i = $29;
+ return ($$036$i|0);
+}
+function __gcry_sexp_nth_buffer($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$0$copyload$i = 0, $$0$copyload9$i = 0, $$03742$i = 0, $$044$i 
= 0, $$1$i = 0, $$135$lcssa$i = 0, $$135$lcssa48$i = 0, $$13543$i = 0, $$138$i 
= 0, $$2$i = 0, $$lcssa$i = 0, $$pre$i = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, 
$14 = 0, $15 = 0, $16 = 0;
+ var $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, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $4 = 0, $5 = 0;
+ var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond$i = 0, $spec$select$i = 0, 
$spec$select39$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ HEAP32[$2>>2] = 0;
+ $3 = ($0|0)==(0|0);
+ if ($3) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $4 = HEAP8[$0>>0]|0;
+ $5 = ($4<<24>>24)==(3);
+ if ($5) {
+  $8 = ((($0)) + 1|0);
+  $$pre$i = HEAP8[$8>>0]|0;
+  $9 = ($1|0)>(0);
+  $10 = ($$pre$i<<24>>24)==(1);
+  L6: do {
+   if ($9) {
+    $$03742$i = $1;$$044$i = 0;$$13543$i = $8;$18 = $$pre$i;$33 = $10;
+    L8: while(1) {
+     L10: do {
+      if ($33) {
+       $11 = ((($$13543$i)) + 1|0);
+       $$0$copyload$i = HEAPU8[$11>>0]|(HEAPU8[$11+1>>0]<<8);
+       $12 = $$0$copyload$i&65535;
+       $13 = (($12) + 2)|0;
+       $14 = (($11) + ($13)|0);
+       $15 = ((($14)) + -1|0);
+       $16 = ($$044$i|0)==(0);
+       $17 = $16 << 31 >> 31;
+       $spec$select$i = (($$03742$i) + ($17))|0;
+       $$1$i = $$044$i;$$138$i = $spec$select$i;$$2$i = $15;
+      } else {
+       switch ($18<<24>>24) {
+       case 0:  {
+        $$0 = 0;
+        break L8;
+        break;
+       }
+       case 3:  {
+        $19 = (($$044$i) + 1)|0;
+        $$1$i = $19;$$138$i = $$03742$i;$$2$i = $$13543$i;
+        break L10;
+        break;
+       }
+       case 4:  {
+        $20 = (($$044$i) + -1)|0;
+        $21 = ($20|0)==(0);
+        $22 = $21 << 31 >> 31;
+        $spec$select39$i = (($$03742$i) + ($22))|0;
+        $$1$i = $20;$$138$i = $spec$select39$i;$$2$i = $$13543$i;
+        break L10;
+        break;
+       }
+       default: {
+        $$1$i = $$044$i;$$138$i = $$03742$i;$$2$i = $$13543$i;
+        break L10;
+       }
+       }
+      }
+     } while(0);
+     $23 = ((($$2$i)) + 1|0);
+     $24 = ($$138$i|0)>(0);
+     $25 = HEAP8[$23>>0]|0;
+     $26 = ($25<<24>>24)==(1);
+     if ($24) {
+      $$03742$i = $$138$i;$$044$i = $$1$i;$$13543$i = $23;$18 = $25;$33 = $26;
+     } else {
+      $$135$lcssa$i = $23;$$lcssa$i = $26;
+      break L6;
+     }
+    }
+    return ($$0|0);
+   } else {
+    $$135$lcssa$i = $8;$$lcssa$i = $10;
+   }
+  } while(0);
+  if ($$lcssa$i) {
+   $$135$lcssa48$i = $$135$lcssa$i;
+  } else {
+   $$0 = 0;
+   return ($$0|0);
+  }
+ } else {
+  $6 = ($1|0)==(0);
+  $7 = ($4<<24>>24)==(1);
+  $or$cond$i = $6 & $7;
+  if ($or$cond$i) {
+   $$135$lcssa48$i = $0;
+  } else {
+   $$0 = 0;
+   return ($$0|0);
+  }
+ }
+ $27 = ((($$135$lcssa48$i)) + 1|0);
+ $$0$copyload9$i = HEAPU8[$27>>0]|(HEAPU8[$27+1>>0]<<8);
+ $28 = $$0$copyload9$i&65535;
+ $29 = ((($$135$lcssa48$i)) + 3|0);
+ $30 = ($$0$copyload9$i<<16>>16)==(0);
+ if ($30) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $31 = (__gcry_malloc($28)|0);
+ $32 = ($31|0)==(0|0);
+ if ($32) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ _memcpy(($31|0),($29|0),($28|0))|0;
+ HEAP32[$2>>2] = $28;
+ $$0 = $31;
+ return ($$0|0);
+}
+function __gcry_sexp_nth_string($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $$0$copyload$i = 0, $$0$copyload9$i = 0, $$03742$i = 0, $$044$i 
= 0, $$1$i = 0, $$135$lcssa$i = 0, $$135$lcssa48$i = 0, $$13543$i = 0, $$138$i 
= 0, $$2$i = 0, $$lcssa$i = 0, $$pre$i = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, 
$14 = 0, $15 = 0, $16 = 0;
+ var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, 
$24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0;
+ var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond$i = 0, 
$spec$select$i = 0, $spec$select39$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($0|0)==(0|0);
+ if ($2) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $3 = HEAP8[$0>>0]|0;
+ $4 = ($3<<24>>24)==(3);
+ if ($4) {
+  $7 = ((($0)) + 1|0);
+  $$pre$i = HEAP8[$7>>0]|0;
+  $8 = ($1|0)>(0);
+  $9 = ($$pre$i<<24>>24)==(1);
+  L6: do {
+   if ($8) {
+    $$03742$i = $1;$$044$i = 0;$$13543$i = $7;$17 = $$pre$i;$34 = $9;
+    L8: while(1) {
+     L10: do {
+      if ($34) {
+       $10 = ((($$13543$i)) + 1|0);
+       $$0$copyload$i = HEAPU8[$10>>0]|(HEAPU8[$10+1>>0]<<8);
+       $11 = $$0$copyload$i&65535;
+       $12 = (($11) + 2)|0;
+       $13 = (($10) + ($12)|0);
+       $14 = ((($13)) + -1|0);
+       $15 = ($$044$i|0)==(0);
+       $16 = $15 << 31 >> 31;
+       $spec$select$i = (($$03742$i) + ($16))|0;
+       $$1$i = $$044$i;$$138$i = $spec$select$i;$$2$i = $14;
+      } else {
+       switch ($17<<24>>24) {
+       case 0:  {
+        $$0 = 0;
+        break L8;
+        break;
+       }
+       case 3:  {
+        $18 = (($$044$i) + 1)|0;
+        $$1$i = $18;$$138$i = $$03742$i;$$2$i = $$13543$i;
+        break L10;
+        break;
+       }
+       case 4:  {
+        $19 = (($$044$i) + -1)|0;
+        $20 = ($19|0)==(0);
+        $21 = $20 << 31 >> 31;
+        $spec$select39$i = (($$03742$i) + ($21))|0;
+        $$1$i = $19;$$138$i = $spec$select39$i;$$2$i = $$13543$i;
+        break L10;
+        break;
+       }
+       default: {
+        $$1$i = $$044$i;$$138$i = $$03742$i;$$2$i = $$13543$i;
+        break L10;
+       }
+       }
+      }
+     } while(0);
+     $22 = ((($$2$i)) + 1|0);
+     $23 = ($$138$i|0)>(0);
+     $24 = HEAP8[$22>>0]|0;
+     $25 = ($24<<24>>24)==(1);
+     if ($23) {
+      $$03742$i = $$138$i;$$044$i = $$1$i;$$13543$i = $22;$17 = $24;$34 = $25;
+     } else {
+      $$135$lcssa$i = $22;$$lcssa$i = $25;
+      break L6;
+     }
+    }
+    return ($$0|0);
+   } else {
+    $$135$lcssa$i = $7;$$lcssa$i = $9;
+   }
+  } while(0);
+  if ($$lcssa$i) {
+   $$135$lcssa48$i = $$135$lcssa$i;
+  } else {
+   $$0 = 0;
+   return ($$0|0);
+  }
+ } else {
+  $5 = ($1|0)==(0);
+  $6 = ($3<<24>>24)==(1);
+  $or$cond$i = $5 & $6;
+  if ($or$cond$i) {
+   $$135$lcssa48$i = $0;
+  } else {
+   $$0 = 0;
+   return ($$0|0);
+  }
+ }
+ $26 = ((($$135$lcssa48$i)) + 1|0);
+ $$0$copyload9$i = HEAPU8[$26>>0]|(HEAPU8[$26+1>>0]<<8);
+ $27 = $$0$copyload9$i&65535;
+ $28 = ((($$135$lcssa48$i)) + 3|0);
+ $29 = ($$0$copyload9$i<<16>>16)==(0);
+ if ($29) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $30 = (($27) + 1)|0;
+ $31 = (__gcry_malloc($30)|0);
+ $32 = ($31|0)==(0|0);
+ if ($32) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ _memcpy(($31|0),($28|0),($27|0))|0;
+ $33 = (($31) + ($27)|0);
+ HEAP8[$33>>0] = 0;
+ $$0 = $31;
+ return ($$0|0);
+}
+function __gcry_sexp_nth_mpi($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0$copyload$i = 0, $$0$copyload$i$i = 0, $$0$copyload9$i = 0, 
$$0$copyload9$i$i = 0, $$021 = 0, $$03742$i = 0, $$03742$i$i = 0, $$044$i = 0, 
$$044$i$i = 0, $$1$i = 0, $$1$i$i = 0, $$135$lcssa$i = 0, $$135$lcssa$i$i = 0, 
$$135$lcssa48$i = 0, $$135$lcssa48$i$i = 0, $$13543$i = 0, $$13543$i$i = 0, 
$$138$i = 0, $$138$i$i = 0, $$2 = 0;
+ var $$2$i = 0, $$2$i$i = 0, $$lcssa$i = 0, $$lcssa$i$i = 0, $$pre = 0, 
$$pre$i = 0, $$pre$i$i = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 
0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0;
+ var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, 
$30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 
0, $39 = 0, $4 = 0, $40 = 0;
+ var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, 
$49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, 
$57 = 0, $58 = 0, $59 = 0;
+ var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, 
$67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $8 = 0, $9 = 0, $or$cond$i 
= 0, $or$cond$i$i = 0, $spec$select = 0, $spec$select$i = 0;
+ var $spec$select$i$i = 0, $spec$select39$i = 0, $spec$select39$i$i = 0, label 
= 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $3 = sp;
+ switch ($2|0) {
+ case 8:  {
+  $4 = ($0|0)==(0|0);
+  if ($4) {
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+  }
+  $5 = HEAP8[$0>>0]|0;
+  $6 = ($5<<24>>24)==(3);
+  if ($6) {
+   $9 = ((($0)) + 1|0);
+   $$pre$i$i = HEAP8[$9>>0]|0;
+   $10 = ($1|0)>(0);
+   $11 = ($$pre$i$i<<24>>24)==(1);
+   L8: do {
+    if ($10) {
+     $$03742$i$i = $1;$$044$i$i = 0;$$13543$i$i = $9;$19 = $$pre$i$i;$70 = $11;
+     L10: while(1) {
+      L12: do {
+       if ($70) {
+        $12 = ((($$13543$i$i)) + 1|0);
+        $$0$copyload$i$i = HEAPU8[$12>>0]|(HEAPU8[$12+1>>0]<<8);
+        $13 = $$0$copyload$i$i&65535;
+        $14 = (($13) + 2)|0;
+        $15 = (($12) + ($14)|0);
+        $16 = ((($15)) + -1|0);
+        $17 = ($$044$i$i|0)==(0);
+        $18 = $17 << 31 >> 31;
+        $spec$select$i$i = (($$03742$i$i) + ($18))|0;
+        $$1$i$i = $$044$i$i;$$138$i$i = $spec$select$i$i;$$2$i$i = $16;
+       } else {
+        switch ($19<<24>>24) {
+        case 0:  {
+         $$2 = 0;
+         break L10;
+         break;
+        }
+        case 3:  {
+         $20 = (($$044$i$i) + 1)|0;
+         $$1$i$i = $20;$$138$i$i = $$03742$i$i;$$2$i$i = $$13543$i$i;
+         break L12;
+         break;
+        }
+        case 4:  {
+         $21 = (($$044$i$i) + -1)|0;
+         $22 = ($21|0)==(0);
+         $23 = $22 << 31 >> 31;
+         $spec$select39$i$i = (($$03742$i$i) + ($23))|0;
+         $$1$i$i = $21;$$138$i$i = $spec$select39$i$i;$$2$i$i = $$13543$i$i;
+         break L12;
+         break;
+        }
+        default: {
+         $$1$i$i = $$044$i$i;$$138$i$i = $$03742$i$i;$$2$i$i = $$13543$i$i;
+         break L12;
+        }
+        }
+       }
+      } while(0);
+      $24 = ((($$2$i$i)) + 1|0);
+      $25 = ($$138$i$i|0)>(0);
+      $26 = HEAP8[$24>>0]|0;
+      $27 = ($26<<24>>24)==(1);
+      if ($25) {
+       $$03742$i$i = $$138$i$i;$$044$i$i = $$1$i$i;$$13543$i$i = $24;$19 = 
$26;$70 = $27;
+      } else {
+       $$135$lcssa$i$i = $24;$$lcssa$i$i = $27;
+       break L8;
+      }
+     }
+     STACKTOP = sp;return ($$2|0);
+    } else {
+     $$135$lcssa$i$i = $9;$$lcssa$i$i = $11;
+    }
+   } while(0);
+   if ($$lcssa$i$i) {
+    $$135$lcssa48$i$i = $$135$lcssa$i$i;
+   } else {
+    $$2 = 0;
+    STACKTOP = sp;return ($$2|0);
+   }
+  } else {
+   $7 = ($1|0)==(0);
+   $8 = ($5<<24>>24)==(1);
+   $or$cond$i$i = $7 & $8;
+   if ($or$cond$i$i) {
+    $$135$lcssa48$i$i = $0;
+   } else {
+    $$2 = 0;
+    STACKTOP = sp;return ($$2|0);
+   }
+  }
+  $28 = ((($$135$lcssa48$i$i)) + 1|0);
+  $$0$copyload9$i$i = HEAPU8[$28>>0]|(HEAPU8[$28+1>>0]<<8);
+  $29 = $$0$copyload9$i$i&65535;
+  $30 = ((($$135$lcssa48$i$i)) + 3|0);
+  $31 = ($$0$copyload9$i$i<<16>>16)==(0);
+  if ($31) {
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+  }
+  $32 = (__gcry_malloc($29)|0);
+  $33 = ($32|0)==(0|0);
+  if ($33) {
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+  }
+  _memcpy(($32|0),($30|0),($29|0))|0;
+  $34 = (__gcry_is_secure($0)|0);
+  $35 = ($34|0)==(0);
+  if ($35) {
+   $37 = (__gcry_mpi_new(0)|0);
+   $38 = $37;
+  } else {
+   $36 = (__gcry_mpi_snew(0)|0);
+   $38 = $36;
+  }
+  HEAP32[$3>>2] = $38;
+  $39 = ($38|0)==(0|0);
+  if ($39) {
+   __gcry_free($32);
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+  } else {
+   $40 = $29 << 3;
+   (__gcry_mpi_set_opaque($38,$32,$40)|0);
+   $$2 = $38;
+   STACKTOP = sp;return ($$2|0);
+  }
+  break;
+ }
+ case 0:  {
+  $$021 = 1;
+  break;
+ }
+ default: {
+  $$021 = $2;
+ }
+ }
+ $41 = ($0|0)==(0|0);
+ if ($41) {
+  $$2 = 0;
+  STACKTOP = sp;return ($$2|0);
+ }
+ $42 = HEAP8[$0>>0]|0;
+ $43 = ($42<<24>>24)==(3);
+ if ($43) {
+  $46 = ((($0)) + 1|0);
+  $$pre$i = HEAP8[$46>>0]|0;
+  $47 = ($1|0)>(0);
+  $48 = ($$pre$i<<24>>24)==(1);
+  L47: do {
+   if ($47) {
+    $$03742$i = $1;$$044$i = 0;$$13543$i = $46;$56 = $$pre$i;$71 = $48;
+    L49: while(1) {
+     L51: do {
+      if ($71) {
+       $49 = ((($$13543$i)) + 1|0);
+       $$0$copyload$i = HEAPU8[$49>>0]|(HEAPU8[$49+1>>0]<<8);
+       $50 = $$0$copyload$i&65535;
+       $51 = (($50) + 2)|0;
+       $52 = (($49) + ($51)|0);
+       $53 = ((($52)) + -1|0);
+       $54 = ($$044$i|0)==(0);
+       $55 = $54 << 31 >> 31;
+       $spec$select$i = (($$03742$i) + ($55))|0;
+       $$1$i = $$044$i;$$138$i = $spec$select$i;$$2$i = $53;
+      } else {
+       switch ($56<<24>>24) {
+       case 0:  {
+        $$2 = 0;
+        break L49;
+        break;
+       }
+       case 3:  {
+        $57 = (($$044$i) + 1)|0;
+        $$1$i = $57;$$138$i = $$03742$i;$$2$i = $$13543$i;
+        break L51;
+        break;
+       }
+       case 4:  {
+        $58 = (($$044$i) + -1)|0;
+        $59 = ($58|0)==(0);
+        $60 = $59 << 31 >> 31;
+        $spec$select39$i = (($$03742$i) + ($60))|0;
+        $$1$i = $58;$$138$i = $spec$select39$i;$$2$i = $$13543$i;
+        break L51;
+        break;
+       }
+       default: {
+        $$1$i = $$044$i;$$138$i = $$03742$i;$$2$i = $$13543$i;
+        break L51;
+       }
+       }
+      }
+     } while(0);
+     $61 = ((($$2$i)) + 1|0);
+     $62 = ($$138$i|0)>(0);
+     $63 = HEAP8[$61>>0]|0;
+     $64 = ($63<<24>>24)==(1);
+     if ($62) {
+      $$03742$i = $$138$i;$$044$i = $$1$i;$$13543$i = $61;$56 = $63;$71 = $64;
+     } else {
+      $$135$lcssa$i = $61;$$lcssa$i = $64;
+      break L47;
+     }
+    }
+    STACKTOP = sp;return ($$2|0);
+   } else {
+    $$135$lcssa$i = $46;$$lcssa$i = $48;
+   }
+  } while(0);
+  if ($$lcssa$i) {
+   $$135$lcssa48$i = $$135$lcssa$i;
+  } else {
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+  }
+ } else {
+  $44 = ($1|0)==(0);
+  $45 = ($42<<24>>24)==(1);
+  $or$cond$i = $44 & $45;
+  if ($or$cond$i) {
+   $$135$lcssa48$i = $0;
+  } else {
+   $$2 = 0;
+   STACKTOP = sp;return ($$2|0);
+  }
+ }
+ $65 = ((($$135$lcssa48$i)) + 1|0);
+ $$0$copyload9$i = HEAPU8[$65>>0]|(HEAPU8[$65+1>>0]<<8);
+ $66 = $$0$copyload9$i&65535;
+ $67 = ((($$135$lcssa48$i)) + 3|0);
+ $68 = (__gcry_mpi_scan($3,$$021,$67,$66,0)|0);
+ $69 = ($68|0)==(0);
+ $$pre = HEAP32[$3>>2]|0;
+ $spec$select = $69 ? $$pre : 0;
+ $$2 = $spec$select;
+ STACKTOP = sp;return ($$2|0);
+}
+function __gcry_sexp_cdr($0) {
+ $0 = $0|0;
+ var $$0$copyload = 0, $$0$copyload$i = 0, $$0$copyload28 = 0, $$0102 = 0, 
$$048$lcssa$i = 0, $$04859$i = 0, $$050$lcssa$i = 0, $$05058$i = 0, $$061101 = 
0, $$062$i = 0, $$063 = 0, $$064100 = 0, $$1 = 0, $$1$i = 0, $$149$i = 0, 
$$151$i = 0, $$162 = 0, $$165 = 0, $$2 = 0, $$2$i = 0;
+ var $$252$i = 0, $$266 = 0, $$3 = 0, $$35356$i = 0, $$357$i = 0, $$367 = 0, 
$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
+ var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, 
$3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, 
$38 = 0, $39 = 0, $4 = 0;
+ var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, 
$48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, 
$56 = 0, $57 = 0, $58 = 0;
+ var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, 
$66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, 
$74 = 0, $75 = 0, $76 = 0;
+ var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $9 = 0, $cond$i = 0, 
$scevgep$i = 0, $spec$select = 0, $spec$select68 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  $$063 = 0;
+  return ($$063|0);
+ }
+ $2 = HEAP8[$0>>0]|0;
+ $3 = ($2<<24>>24)==(3);
+ if (!($3)) {
+  $$063 = 0;
+  return ($$063|0);
+ }
+ $4 = ((($0)) + 1|0);
+ $$0102 = 1;$$061101 = 0;$$064100 = $0;$6 = $4;
+ L7: while(1) {
+  $5 = HEAP8[$6>>0]|0;
+  switch ($5<<24>>24) {
+  case 0:  {
+   $$063 = 0;
+   label = 33;
+   break L7;
+   break;
+  }
+  case 1:  {
+   $7 = ((($$064100)) + 2|0);
+   $$0$copyload = HEAPU8[$7>>0]|(HEAPU8[$7+1>>0]<<8);
+   $8 = $$0$copyload&65535;
+   $9 = (($8) + 2)|0;
+   $10 = (($7) + ($9)|0);
+   $11 = ((($10)) + -1|0);
+   $12 = ($$061101|0)==(0);
+   $13 = $12 << 31 >> 31;
+   $spec$select = (($$0102) + ($13))|0;
+   $$1 = $spec$select;$$162 = $$061101;$$165 = $11;
+   break;
+  }
+  case 3:  {
+   $14 = (($$061101) + 1)|0;
+   $$1 = $$0102;$$162 = $14;$$165 = $6;
+   break;
+  }
+  case 4:  {
+   $15 = (($$061101) + -1)|0;
+   $16 = ($15|0)==(0);
+   $17 = $16 << 31 >> 31;
+   $spec$select68 = (($$0102) + ($17))|0;
+   $$1 = $spec$select68;$$162 = $15;$$165 = $6;
+   break;
+  }
+  default: {
+   $$1 = $$0102;$$162 = $$061101;$$165 = $6;
+  }
+  }
+  $18 = ($$1|0)>(0);
+  $19 = ((($$165)) + 1|0);
+  if ($18) {
+   $$0102 = $$1;$$061101 = $$162;$$064100 = $$165;$6 = $19;
+  } else {
+   break;
+  }
+ }
+ if ((label|0) == 33) {
+  return ($$063|0);
+ }
+ $$2 = 0;$$266 = $19;
+ L17: while(1) {
+  $20 = HEAP8[$$266>>0]|0;
+  switch ($20<<24>>24) {
+  case 0:  {
+   $$063 = 0;
+   label = 33;
+   break L17;
+   break;
+  }
+  case 1:  {
+   $21 = ((($$266)) + 1|0);
+   $$0$copyload28 = HEAPU8[$21>>0]|(HEAPU8[$21+1>>0]<<8);
+   $22 = $$0$copyload28&65535;
+   $23 = (($22) + 2)|0;
+   $24 = (($21) + ($23)|0);
+   $25 = ((($24)) + -1|0);
+   $$3 = $$2;$$367 = $25;
+   break;
+  }
+  case 3:  {
+   $26 = (($$2) + 1)|0;
+   $$3 = $26;$$367 = $$266;
+   break;
+  }
+  case 4:  {
+   $27 = (($$2) + -1)|0;
+   $$3 = $27;$$367 = $$266;
+   break;
+  }
+  default: {
+   $$3 = $$2;$$367 = $$266;
+  }
+  }
+  $28 = ((($$367)) + 1|0);
+  $29 = ($$3|0)==(0);
+  if ($29) {
+   break;
+  } else {
+   $$2 = $$3;$$266 = $28;
+  }
+ }
+ if ((label|0) == 33) {
+  return ($$063|0);
+ }
+ $30 = $28;
+ $31 = $19;
+ $32 = (($30) - ($31))|0;
+ $33 = $32 & 65535;
+ $34 = (($33) + 3)|0;
+ $35 = (__gcry_malloc($34)|0);
+ $36 = ($35|0)==(0|0);
+ if ($36) {
+  $$063 = 0;
+  return ($$063|0);
+ }
+ $37 = ((($35)) + 1|0);
+ HEAP8[$35>>0] = 3;
+ _memcpy(($37|0),($19|0),($33|0))|0;
+ $38 = (($37) + ($33)|0);
+ $39 = ((($38)) + 1|0);
+ HEAP8[$38>>0] = 4;
+ HEAP8[$39>>0] = 0;
+ $40 = HEAP8[$37>>0]|0;
+ $41 = ($40<<24>>24)==(4);
+ if (!($41)) {
+  $$063 = $35;
+  return ($$063|0);
+ }
+ $42 = (__gcry_is_secure($35)|0);
+ $43 = ($42|0)==(0);
+ if (!($43)) {
+  $$062$i = $35;$45 = 3;
+  while(1) {
+   $44 = ((($$062$i)) + 1|0);
+   $cond$i = ($45<<24>>24)==(1);
+   if ($cond$i) {
+    $$0$copyload$i = HEAPU8[$44>>0]|(HEAPU8[$44+1>>0]<<8);
+    $46 = ((($$062$i)) + 3|0);
+    $47 = $$0$copyload$i&65535;
+    $48 = (($46) + ($47)|0);
+    $$1$i = $48;
+   } else {
+    $$1$i = $44;
+   }
+   $49 = HEAP8[$$1$i>>0]|0;
+   $50 = ($49<<24>>24)==(0);
+   if ($50) {
+    break;
+   } else {
+    $$062$i = $$1$i;$45 = $49;
+   }
+  }
+  $51 = $$1$i;
+  $52 = $35;
+  $53 = (($51) - ($52))|0;
+  $54 = $52 & 7;
+  $55 = ($54|0)!=(0);
+  $56 = ($53|0)!=(0);
+  $57 = $55 & $56;
+  if ($57) {
+   $$04859$i = $35;$$05058$i = $53;
+   while(1) {
+    HEAP8[$$04859$i>>0] = 0;
+    $58 = ((($$04859$i)) + 1|0);
+    $59 = (($$05058$i) + -1)|0;
+    $60 = $58;
+    $61 = $60 & 7;
+    $62 = ($61|0)!=(0);
+    $63 = ($59|0)!=(0);
+    $64 = $63 & $62;
+    if ($64) {
+     $$04859$i = $58;$$05058$i = $59;
+    } else {
+     $$048$lcssa$i = $58;$$050$lcssa$i = $59;
+     break;
+    }
+   }
+  } else {
+   $$048$lcssa$i = $35;$$050$lcssa$i = $53;
+  }
+  $65 = ($$050$lcssa$i>>>0)<(8);
+  if ($65) {
+   $$2$i = $$048$lcssa$i;$$252$i = $$050$lcssa$i;
+  } else {
+   $66 = (($$050$lcssa$i) + -8)|0;
+   $67 = $66 & -8;
+   $$149$i = $$048$lcssa$i;$$151$i = $$050$lcssa$i;
+   while(1) {
+    $68 = $$149$i;
+    $69 = $68;
+    HEAP32[$69>>2] = 0;
+    $70 = (($68) + 4)|0;
+    $71 = $70;
+    HEAP32[$71>>2] = 0;
+    $72 = (($$151$i) + -8)|0;
+    $73 = ((($$149$i)) + 8|0);
+    $74 = ($72>>>0)>(7);
+    if ($74) {
+     $$149$i = $73;$$151$i = $72;
+    } else {
+     break;
+    }
+   }
+   $75 = (($67) + 8)|0;
+   $76 = (($66) - ($67))|0;
+   $scevgep$i = (($$048$lcssa$i) + ($75)|0);
+   $$2$i = $scevgep$i;$$252$i = $76;
+  }
+  $77 = ($$252$i|0)==(0);
+  if (!($77)) {
+   $$35356$i = $$252$i;$$357$i = $$2$i;
+   while(1) {
+    HEAP8[$$357$i>>0] = 0;
+    $78 = ((($$357$i)) + 1|0);
+    $79 = (($$35356$i) + -1)|0;
+    $80 = ($79|0)==(0);
+    if ($80) {
+     break;
+    } else {
+     $$35356$i = $79;$$357$i = $78;
+    }
+   }
+  }
+ }
+ __gcry_free($35);
+ $$063 = 0;
+ return ($$063|0);
+}
+function __gcry_sexp_cadr($0) {
+ $0 = $0|0;
+ var $$0$copyload$i = 0, $$0$lcssa$i = 0, $$048$lcssa$i = 0, $$04859$i = 0, 
$$050$lcssa$i = 0, $$05058$i = 0, $$062$i = 0, $$1$i = 0, $$149$i = 0, $$151$i 
= 0, $$2$i = 0, $$252$i = 0, $$35356$i = 0, $$357$i = 0, $1 = 0, $10 = 0, $11 = 
0, $12 = 0, $13 = 0, $14 = 0;
+ var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, 
$22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, 
$30 = 0, $31 = 0, $32 = 0;
+ var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 
= 0, $cond$i = 0, $scevgep$i = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_sexp_cdr($0)|0);
+ $2 = (__gcry_sexp_nth($1,0)|0);
+ $3 = ($1|0)==(0|0);
+ if ($3) {
+  return ($2|0);
+ }
+ $4 = (__gcry_is_secure($1)|0);
+ $5 = ($4|0)==(0);
+ if (!($5)) {
+  $6 = HEAP8[$1>>0]|0;
+  $7 = ($6<<24>>24)==(0);
+  if ($7) {
+   $$0$lcssa$i = $1;
+  } else {
+   $$062$i = $1;$9 = $6;
+   while(1) {
+    $8 = ((($$062$i)) + 1|0);
+    $cond$i = ($9<<24>>24)==(1);
+    if ($cond$i) {
+     $$0$copyload$i = HEAPU8[$8>>0]|(HEAPU8[$8+1>>0]<<8);
+     $10 = ((($$062$i)) + 3|0);
+     $11 = $$0$copyload$i&65535;
+     $12 = (($10) + ($11)|0);
+     $$1$i = $12;
+    } else {
+     $$1$i = $8;
+    }
+    $13 = HEAP8[$$1$i>>0]|0;
+    $14 = ($13<<24>>24)==(0);
+    if ($14) {
+     $$0$lcssa$i = $$1$i;
+     break;
+    } else {
+     $$062$i = $$1$i;$9 = $13;
+    }
+   }
+  }
+  $15 = $$0$lcssa$i;
+  $16 = $1;
+  $17 = (($15) - ($16))|0;
+  $18 = $16 & 7;
+  $19 = ($18|0)!=(0);
+  $20 = ($17|0)!=(0);
+  $21 = $19 & $20;
+  if ($21) {
+   $$04859$i = $1;$$05058$i = $17;
+   while(1) {
+    HEAP8[$$04859$i>>0] = 0;
+    $22 = ((($$04859$i)) + 1|0);
+    $23 = (($$05058$i) + -1)|0;
+    $24 = $22;
+    $25 = $24 & 7;
+    $26 = ($25|0)!=(0);
+    $27 = ($23|0)!=(0);
+    $28 = $27 & $26;
+    if ($28) {
+     $$04859$i = $22;$$05058$i = $23;
+    } else {
+     $$048$lcssa$i = $22;$$050$lcssa$i = $23;
+     break;
+    }
+   }
+  } else {
+   $$048$lcssa$i = $1;$$050$lcssa$i = $17;
+  }
+  $29 = ($$050$lcssa$i>>>0)<(8);
+  if ($29) {
+   $$2$i = $$048$lcssa$i;$$252$i = $$050$lcssa$i;
+  } else {
+   $30 = (($$050$lcssa$i) + -8)|0;
+   $31 = $30 & -8;
+   $$149$i = $$048$lcssa$i;$$151$i = $$050$lcssa$i;
+   while(1) {
+    $32 = $$149$i;
+    $33 = $32;
+    HEAP32[$33>>2] = 0;
+    $34 = (($32) + 4)|0;
+    $35 = $34;
+    HEAP32[$35>>2] = 0;
+    $36 = (($$151$i) + -8)|0;
+    $37 = ((($$149$i)) + 8|0);
+    $38 = ($36>>>0)>(7);
+    if ($38) {
+     $$149$i = $37;$$151$i = $36;
+    } else {
+     break;
+    }
+   }
+   $39 = (($31) + 8)|0;
+   $40 = (($30) - ($31))|0;
+   $scevgep$i = (($$048$lcssa$i) + ($39)|0);
+   $$2$i = $scevgep$i;$$252$i = $40;
+  }
+  $41 = ($$252$i|0)==(0);
+  if (!($41)) {
+   $$35356$i = $$252$i;$$357$i = $$2$i;
+   while(1) {
+    HEAP8[$$357$i>>0] = 0;
+    $42 = ((($$357$i)) + 1|0);
+    $43 = (($$35356$i) + -1)|0;
+    $44 = ($43|0)==(0);
+    if ($44) {
+     break;
+    } else {
+     $$35356$i = $43;$$357$i = $42;
+    }
+   }
+  }
+ }
+ __gcry_free($1);
+ return ($2|0);
+}
+function __gcry_sexp_build($0,$1,$2,$varargs) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $varargs = $varargs|0;
+ var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $3 = sp;
+ HEAP32[$3>>2] = $varargs;
+ $4 = (_strlen($2)|0);
+ $5 = (_do_vsexp_sscan($0,$1,$2,$4,1,0,$3)|0);
+ STACKTOP = sp;return ($5|0);
+}
+function __gcry_sexp_vbuild($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $4 = 0, $5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (_strlen($2)|0);
+ $5 = (_do_vsexp_sscan($0,$1,$2,$4,1,0,$3)|0);
+ return ($5|0);
+}
+function __gcry_sexp_sscan($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $4 = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $4 = (_do_sexp_sscan($0,$1,$2,$3,0,0,$vararg_buffer)|0);
+ STACKTOP = sp;return ($4|0);
+}
+function __gcry_sexp_sprint($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$0$copyload = 0, $$010$lcssa$i = 0, $$01011$i = 0, $$012$i = 0, 
$$0125 = 0, $$0125$be = 0, $$0129 = 0, $$0129$be = 0, $$0134 = 0, $$0134$be = 
0, $$0136 = 0, $$0136$be = 0, $$02649$i = 0, $$02748$i = 0, $$050$i = 0, $$1$i 
= 0, $$10 = 0, $$12151 = 0, $$3139 = 0;
+ var $$4 = 0, $$4140 = 0, $$5 = 0, $$5141 = 0, $$6142160 = 0, $$7143 = 0, 
$$7149 = 0, $$7152 = 0, $$clear = 0, $$not = 0, $$off$i = 0, $$off37$i = 0, 
$$off38$i = 0, $$pre$i = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 
0;
+ var $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, $34 = 0, $35 = 0;
+ var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, 
$43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, 
$51 = 0, $52 = 0, $53 = 0;
+ var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 
0, $7 = 0, $70 = 0, $71 = 0;
+ var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, 
$8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, 
$88 = 0, $89 = 0, $9 = 0;
+ var $90 = 0, $91 = 0, $exitcond$i = 0, $memchr$i = 0, $memchr29$i = 0, 
$or$cond = 0, $or$cond$i = 0, $or$cond43$i = 0, $or$cond45$i = 0, $scevgep = 0, 
$scevgep$i = 0, $scevgep172 = 0, $spec$select = 0, $spec$select$i = 0, 
$spec$select153 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $vararg_buffer1 = sp + 32|0;
+ $vararg_buffer = sp + 24|0;
+ $4 = sp;
+ $5 = ($0|0)==(0|0);
+ $6 = $5 ? 44730 : $0;
+ $7 = ($1|0)!=(1);
+ $8 = ($2|0)==(0|0);
+ $9 = ($2|0)!=(0|0);
+ $10 = ($1|0)==(3);
+ $11 = ($1|0)==(1);
+ $$not = $7 ^ 1;
+ $$0125 = 0;$$0129 = 0;$$0134 = $6;$$0136 = $2;
+ L1: while(1) {
+  $12 = HEAP8[$$0134>>0]|0;
+  L3: do {
+   switch ($12<<24>>24) {
+   case 0:  {
+    label = 56;
+    break L1;
+    break;
+   }
+   case 3:  {
+    $13 = ((($$0134)) + 1|0);
+    $14 = ($$0125|0)!=(0);
+    $15 = $14&1;
+    $spec$select = (($$0125) + ($$0129))|0;
+    $16 = (($spec$select) + ($15))|0;
+    $spec$select153 = $7 ? $16 : $$0129;
+    $17 = (($spec$select153) + 1)|0;
+    if ($8) {
+     $$4140 = $$0136;
+    } else {
+     $18 = ($17>>>0)<($3>>>0);
+     if (!($18)) {
+      $$4 = 0;
+      label = 64;
+      break L1;
+     }
+     $19 = ($$0125|0)==(0);
+     $or$cond = $19 | $$not;
+     if ($or$cond) {
+      $$3139 = $$0136;
+     } else {
+      $20 = ((($$0136)) + 1|0);
+      HEAP8[$$0136>>0] = 10;
+      $21 = ($$0125|0)>(0);
+      if ($21) {
+       _memset(($20|0),32,($$0125|0))|0;
+       $scevgep172 = (($20) + ($$0125)|0);
+       $$3139 = $scevgep172;
+      } else {
+       $$3139 = $20;
+      }
+     }
+     $22 = ((($$3139)) + 1|0);
+     HEAP8[$$3139>>0] = 40;
+     $$4140 = $22;
+    }
+    $23 = (($$0125) + 1)|0;
+    $$0125$be = $23;$$0129$be = $17;$$0134$be = $13;$$0136$be = $$4140;
+    break;
+   }
+   case 4:  {
+    $24 = ((($$0134)) + 1|0);
+    $25 = (($$0129) + 1)|0;
+    if ($9) {
+     $26 = ($25>>>0)<($3>>>0);
+     if (!($26)) {
+      $$4 = 0;
+      label = 64;
+      break L1;
+     }
+     $27 = ((($$0136)) + 1|0);
+     HEAP8[$$0136>>0] = 41;
+     $$5141 = $27;
+    } else {
+     $$5141 = $$0136;
+    }
+    $28 = (($$0125) + -1)|0;
+    if ($11) {
+     $$0125$be = $28;$$0129$be = $25;$$0134$be = $24;$$0136$be = $$5141;
+    } else {
+     $29 = HEAP8[$24>>0]|0;
+     switch ($29<<24>>24) {
+     case 0: case 3:  {
+      $$0125$be = $28;$$0129$be = $25;$$0134$be = $24;$$0136$be = $$5141;
+      break L3;
+      break;
+     }
+     default: {
+     }
+     }
+     $30 = (($$0129) + 2)|0;
+     $31 = (($30) + ($28))|0;
+     if ($9) {
+      $32 = ($31>>>0)<($3>>>0);
+      if (!($32)) {
+       $$4 = 0;
+       label = 64;
+       break L1;
+      }
+      HEAP8[$$5141>>0] = 10;
+      $$6142160 = ((($$5141)) + 1|0);
+      $33 = ($$0125|0)>(1);
+      if ($33) {
+       _memset(($$6142160|0),32,($28|0))|0;
+       $scevgep = (($$5141) + ($$0125)|0);
+       $$0125$be = $28;$$0129$be = $31;$$0134$be = $24;$$0136$be = $scevgep;
+      } else {
+       $$0125$be = $28;$$0129$be = $31;$$0134$be = $24;$$0136$be = $$6142160;
+      }
+     } else {
+      $$0125$be = $28;$$0129$be = $31;$$0134$be = $24;$$0136$be = $$5141;
+     }
+    }
+    break;
+   }
+   case 1:  {
+    $34 = ((($$0134)) + 1|0);
+    $$0$copyload = HEAPU8[$34>>0]|(HEAPU8[$34+1>>0]<<8);
+    $35 = ((($$0134)) + 3|0);
+    $36 = $$0$copyload&65535;
+    if ($10) {
+     $37 = ($$0$copyload<<16>>16)==(0);
+     L26: do {
+      if ($37) {
+       label = 32;
+      } else {
+       $38 = HEAP8[$35>>0]|0;
+       $39 = ($38<<24>>24)<(1);
+       L28: do {
+        if (!($39)) {
+         $$02649$i = $35;$$02748$i = $36;$$050$i = 1;$41 = $38;
+         while(1) {
+          $40 = ($41&255)<(32);
+          $$off$i = (($41) + -127)<<24>>24;
+          $42 = ($$off$i&255)<(34);
+          $or$cond$i = $40 | $42;
+          if ($or$cond$i) {
+           $43 = $41&255;
+           $memchr29$i = (_memchr(44733,$43,10)|0);
+           $44 = ($memchr29$i|0)==(0|0);
+           if ($44) {
+            break L28;
+           }
+          }
+          $45 = ($$050$i|0)==(0);
+          if ($45) {
+           $$1$i = 0;
+          } else {
+           $46 = $41 & -33;
+           $47 = (($46) + -65)<<24>>24;
+           $48 = ($47&255)<(26);
+           $$off37$i = (($41) + -48)<<24>>24;
+           $49 = ($$off37$i&255)<(10);
+           $or$cond43$i = $49 | $48;
+           if ($or$cond43$i) {
+            $$1$i = $$050$i;
+           } else {
+            $50 = $41&255;
+            $memchr$i = (_memchr(44743,$50,9)|0);
+            $51 = ($memchr$i|0)==(0|0);
+            $spec$select$i = $51 ? 0 : $$050$i;
+            $$1$i = $spec$select$i;
+           }
+          }
+          $52 = ((($$02649$i)) + 1|0);
+          $53 = (($$02748$i) + -1)|0;
+          $54 = ($53|0)==(0);
+          if ($54) {
+           break;
+          }
+          $$pre$i = HEAP8[$52>>0]|0;
+          $$02649$i = $52;$$02748$i = $53;$$050$i = $$1$i;$41 = $$pre$i;
+         }
+         $55 = ($$1$i|0)==(0);
+         $$off38$i = (($38) + -48)<<24>>24;
+         $56 = ($$off38$i&255)<(10);
+         $or$cond45$i = $56 | $55;
+         if ($or$cond45$i) {
+          label = 32;
+          break L26;
+         } else {
+          $$0 = $36;$62 = 2;
+          break L26;
+         }
+        }
+       } while(0);
+       $58 = $36 << 1;
+       $59 = (($58) + 2)|0;
+       $$0 = $59;$62 = 0;
+      }
+     } while(0);
+     if ((label|0) == 32) {
+      label = 0;
+      $57 = (_convert_to_string($35,$36,0)|0);
+      $$0 = $57;$62 = 1;
+     }
+     $60 = (($$0) + ($$0129))|0;
+     if ($9) {
+      $61 = ($60>>>0)<($3>>>0);
+      if (!($61)) {
+       $$4 = 0;
+       label = 64;
+       break L1;
+      }
+      $$clear = $62 & 3;
+      switch ($$clear<<24>>24) {
+      case 1:  {
+       (_convert_to_string($35,$36,$$0136)|0);
+       break;
+      }
+      case 2:  {
+       $63 = ($$0136|0)==(0|0);
+       if (!($63)) {
+        _memcpy(($$0136|0),($35|0),($36|0))|0;
+       }
+       break;
+      }
+      default: {
+       $64 = ($$0136|0)==(0|0);
+       if (!($64)) {
+        $65 = ((($$0136)) + 1|0);
+        HEAP8[$$0136>>0] = 35;
+        if ($37) {
+         $$010$lcssa$i = $65;
+        } else {
+         $66 = $36 << 1;
+         $$01011$i = $65;$$012$i = 0;
+         while(1) {
+          $67 = (($35) + ($$012$i)|0);
+          $68 = HEAP8[$67>>0]|0;
+          $69 = $68&255;
+          HEAP32[$vararg_buffer>>2] = $69;
+          (_sprintf($$01011$i,44752,$vararg_buffer)|0);
+          $70 = (($$012$i) + 1)|0;
+          $71 = ((($$01011$i)) + 2|0);
+          $exitcond$i = ($70|0)==($36|0);
+          if ($exitcond$i) {
+           break;
+          } else {
+           $$01011$i = $71;$$012$i = $70;
+          }
+         }
+         $72 = $66 | 1;
+         $scevgep$i = (($$0136) + ($72)|0);
+         $$010$lcssa$i = $scevgep$i;
+        }
+        HEAP8[$$010$lcssa$i>>0] = 35;
+       }
+      }
+      }
+      $73 = (($$0136) + ($$0)|0);
+      $$7143 = $73;
+     } else {
+      $$7143 = $$0136;
+     }
+     $74 = (($35) + ($36)|0);
+     $75 = HEAP8[$74>>0]|0;
+     $76 = ($75<<24>>24)==(4);
+     if ($76) {
+      $$10 = $$7143;$$5 = $60;
+     } else {
+      $77 = (($60) + 1)|0;
+      if ($9) {
+       $78 = ($77>>>0)<($3>>>0);
+       if (!($78)) {
+        $$4 = 0;
+        label = 64;
+        break L1;
+       }
+       $79 = ((($$7143)) + 1|0);
+       HEAP8[$$7143>>0] = 32;
+       $$10 = $79;$$5 = $77;
+      } else {
+       $$10 = $$7143;$$5 = $77;
+      }
+     }
+    } else {
+     HEAP32[$vararg_buffer1>>2] = $36;
+     (_sprintf($4,44757,$vararg_buffer1)|0);
+     $80 = (_strlen($4)|0);
+     $81 = (($$0129) + ($36))|0;
+     $82 = (($81) + ($80))|0;
+     if ($8) {
+      $$10 = $$0136;$$5 = $82;
+     } else {
+      $83 = ($82>>>0)<($3>>>0);
+      if (!($83)) {
+       $$4 = 0;
+       label = 64;
+       break L1;
+      }
+      $84 = (___stpcpy($$0136,$4)|0);
+      _memcpy(($84|0),($35|0),($36|0))|0;
+      $85 = (($84) + ($36)|0);
+      $$10 = $85;$$5 = $82;
+     }
+    }
+    $86 = (($35) + ($36)|0);
+    $$0125$be = $$0125;$$0129$be = $$5;$$0134$be = $86;$$0136$be = $$10;
+    break;
+   }
+   default: {
+    label = 55;
+    break L1;
+   }
+   }
+  } while(0);
+  $$0125 = $$0125$be;$$0129 = $$0129$be;$$0134 = $$0134$be;$$0136 = $$0136$be;
+ }
+ if ((label|0) == 55) {
+  __gcry_bug(44662,2008,44761);
+  // unreachable;
+ }
+ else if ((label|0) == 56) {
+  do {
+   if ($11) {
+    if ($8) {
+     $$7149 = $$0129;
+     label = 63;
+    } else {
+     $$12151 = $$0136;$$7152 = $$0129;
+    }
+   } else {
+    $87 = (($$0129) + 1)|0;
+    if ($8) {
+     $$7149 = $87;
+     label = 63;
+    } else {
+     $88 = ($87>>>0)<($3>>>0);
+     if ($88) {
+      $89 = ((($$0136)) + 1|0);
+      HEAP8[$$0136>>0] = 10;
+      $$12151 = $89;$$7152 = $87;
+      break;
+     } else {
+      $$4 = 0;
+      STACKTOP = sp;return ($$4|0);
+     }
+    }
+   }
+  } while(0);
+  if ((label|0) == 63) {
+   $91 = (($$7149) + 1)|0;
+   $$4 = $91;
+   STACKTOP = sp;return ($$4|0);
+  }
+  $90 = ($$7152>>>0)<($3>>>0);
+  if (!($90)) {
+   $$4 = 0;
+   STACKTOP = sp;return ($$4|0);
+  }
+  HEAP8[$$12151>>0] = 0;
+  $$4 = $$7152;
+  STACKTOP = sp;return ($$4|0);
+ }
+ else if ((label|0) == 64) {
+  STACKTOP = sp;return ($$4|0);
+ }
+ return (0)|0;
+}
+function _convert_to_string($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$ = 0, $$050$lcssa = 0, $$05067 = 0, $$052 = 0, $$05366 = 0, $$05565 = 
0, $$064 = 0, $$151 = 0, $$15463 = 0, $$15662 = 0, $$off = 0, $$off58 = 0, 
$$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0;
+ var $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, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0;
+ var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, 
$43 = 0, $44 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, 
$or$cond61 = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $3 = ($2|0)==(0|0);
+ if ($3) {
+  $37 = ($1|0)==(0);
+  if ($37) {
+   $$052 = 2;
+   STACKTOP = sp;return ($$052|0);
+  }
+  $$064 = 2;$$15463 = $1;$$15662 = $0;
+  while(1) {
+   $38 = HEAP8[$$15662>>0]|0;
+   switch ($38<<24>>24) {
+   case 92: case 39: case 34: case 13: case 12: case 10: case 11: case 9: case 
8:  {
+    $$sink = 2;
+    break;
+   }
+   default: {
+    $39 = ($38&255)<(32);
+    $$off58 = (($38) + -127)<<24>>24;
+    $40 = ($$off58&255)<(34);
+    $or$cond61 = $39 | $40;
+    $$ = $or$cond61 ? 4 : 1;
+    $$sink = $$;
+   }
+   }
+   $41 = (($$064) + ($$sink))|0;
+   $42 = (($$15463) + -1)|0;
+   $43 = ((($$15662)) + 1|0);
+   $44 = ($42|0)==(0);
+   if ($44) {
+    $$052 = $41;
+    break;
+   } else {
+    $$064 = $41;$$15463 = $42;$$15662 = $43;
+   }
+  }
+  STACKTOP = sp;return ($$052|0);
+ }
+ $4 = ((($2)) + 1|0);
+ HEAP8[$2>>0] = 34;
+ $5 = ($1|0)==(0);
+ L13: do {
+  if ($5) {
+   $$050$lcssa = $4;
+  } else {
+   $$05067 = $4;$$05366 = $1;$$05565 = $0;
+   while(1) {
+    $6 = HEAP8[$$05565>>0]|0;
+    L17: do {
+     switch ($6<<24>>24) {
+     case 8:  {
+      $7 = ((($$05067)) + 1|0);
+      HEAP8[$$05067>>0] = 92;
+      $8 = ((($$05067)) + 2|0);
+      HEAP8[$7>>0] = 98;
+      $$151 = $8;
+      break;
+     }
+     case 9:  {
+      $9 = ((($$05067)) + 1|0);
+      HEAP8[$$05067>>0] = 92;
+      $10 = ((($$05067)) + 2|0);
+      HEAP8[$9>>0] = 116;
+      $$151 = $10;
+      break;
+     }
+     case 11:  {
+      $11 = ((($$05067)) + 1|0);
+      HEAP8[$$05067>>0] = 92;
+      $12 = ((($$05067)) + 2|0);
+      HEAP8[$11>>0] = 118;
+      $$151 = $12;
+      break;
+     }
+     case 10:  {
+      $13 = ((($$05067)) + 1|0);
+      HEAP8[$$05067>>0] = 92;
+      $14 = ((($$05067)) + 2|0);
+      HEAP8[$13>>0] = 110;
+      $$151 = $14;
+      break;
+     }
+     case 12:  {
+      $15 = ((($$05067)) + 1|0);
+      HEAP8[$$05067>>0] = 92;
+      $16 = ((($$05067)) + 2|0);
+      HEAP8[$15>>0] = 102;
+      $$151 = $16;
+      break;
+     }
+     case 13:  {
+      $17 = ((($$05067)) + 1|0);
+      HEAP8[$$05067>>0] = 92;
+      $18 = ((($$05067)) + 2|0);
+      HEAP8[$17>>0] = 114;
+      $$151 = $18;
+      break;
+     }
+     case 34:  {
+      $19 = ((($$05067)) + 1|0);
+      HEAP8[$$05067>>0] = 92;
+      $20 = ((($$05067)) + 2|0);
+      HEAP8[$19>>0] = 34;
+      $$151 = $20;
+      break;
+     }
+     case 39:  {
+      $21 = ((($$05067)) + 1|0);
+      HEAP8[$$05067>>0] = 92;
+      $22 = ((($$05067)) + 2|0);
+      HEAP8[$21>>0] = 39;
+      $$151 = $22;
+      break;
+     }
+     case 92:  {
+      $23 = ((($$05067)) + 1|0);
+      HEAP8[$$05067>>0] = 92;
+      $24 = ((($$05067)) + 2|0);
+      HEAP8[$23>>0] = 92;
+      $$151 = $24;
+      break;
+     }
+     default: {
+      $25 = ($6&255)<(32);
+      $$off = (($6) + -127)<<24>>24;
+      $26 = ($$off&255)<(34);
+      $or$cond = $25 | $26;
+      if ($or$cond) {
+       $27 = $6&255;
+       HEAP32[$vararg_buffer>>2] = $27;
+       (_sprintf($$05067,44655,$vararg_buffer)|0);
+       $28 = ((($$05067)) + 4|0);
+       $$151 = $28;
+       break L17;
+      } else {
+       $29 = ((($$05067)) + 1|0);
+       HEAP8[$$05067>>0] = $6;
+       $$151 = $29;
+       break L17;
+      }
+     }
+     }
+    } while(0);
+    $30 = (($$05366) + -1)|0;
+    $31 = ((($$05565)) + 1|0);
+    $32 = ($30|0)==(0);
+    if ($32) {
+     $$050$lcssa = $$151;
+     break L13;
+    } else {
+     $$05067 = $$151;$$05366 = $30;$$05565 = $31;
+    }
+   }
+  }
+ } while(0);
+ $33 = ((($$050$lcssa)) + 1|0);
+ HEAP8[$$050$lcssa>>0] = 34;
+ $34 = $33;
+ $35 = $2;
+ $36 = (($34) - ($35))|0;
+ $$052 = $36;
+ STACKTOP = sp;return ($$052|0);
+}
+function __gcry_sexp_vextract_param($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$0$copyload$i = 0, $$0$copyload$i$i = 0, $$0$copyload$i$i219 = 
0, $$0$copyload$i$i234 = 0, $$0$copyload$i$i249 = 0, $$0$copyload$i190 = 0, 
$$0$copyload$i266 = 0, $$0$copyload$i292 = 0, $$0$copyload$i318 = 0, 
$$0$copyload9$i$i = 0, $$0$copyload9$i$i227 = 0, $$0$copyload9$i$i242 = 0, 
$$0$copyload9$i$i257 = 0, $$0$lcssa$i = 0, $$0$lcssa$i192 = 0, $$0$lcssa$i268 = 
0, $$0$lcssa$i294 = 0, $$0$lcssa$i320 = 0, $$0150$lcssa = 0;
+ var $$0150386 = 0, $$0151385 = 0, $$0156393 = 0, $$0162$lcssa427 = 0, 
$$0162392 = 0, $$0178$lcssa = 0, $$0178380 = 0, $$0178384 = 0, $$0181 = 0, 
$$03742$i$i = 0, $$03742$i$i217 = 0, $$03742$i$i232 = 0, $$03742$i$i247 = 0, 
$$044$i$i = 0, $$044$i$i215 = 0, $$044$i$i230 = 0, $$044$i$i245 = 0, 
$$048$lcssa$i = 0, $$048$lcssa$i198 = 0, $$048$lcssa$i274 = 0;
+ var $$048$lcssa$i300 = 0, $$048$lcssa$i326 = 0, $$04859$i = 0, $$04859$i195 = 
0, $$04859$i271 = 0, $$04859$i297 = 0, $$04859$i323 = 0, $$050$lcssa$i = 0, 
$$050$lcssa$i197 = 0, $$050$lcssa$i273 = 0, $$050$lcssa$i299 = 0, 
$$050$lcssa$i325 = 0, $$05058$i = 0, $$05058$i196 = 0, $$05058$i272 = 0, 
$$05058$i298 = 0, $$05058$i324 = 0, $$062$i = 0, $$062$i187 = 0, $$062$i263 = 0;
+ var $$062$i289 = 0, $$062$i315 = 0, $$1$i = 0, $$1$i$i = 0, $$1$i$i224 = 0, 
$$1$i$i239 = 0, $$1$i$i254 = 0, $$1$i191 = 0, $$1$i267 = 0, $$1$i293 = 0, 
$$1$i319 = 0, $$1157 = 0, $$1163 = 0, $$1182 = 0, $$13543$i$i = 0, 
$$13543$i$i216 = 0, $$13543$i$i231 = 0, $$13543$i$i246 = 0, $$138$i$i = 0, 
$$138$i$i222 = 0;
+ var $$138$i$i237 = 0, $$138$i$i252 = 0, $$149$i = 0, $$149$i201 = 0, 
$$149$i277 = 0, $$149$i303 = 0, $$149$i329 = 0, $$151$i = 0, $$151$i200 = 0, 
$$151$i276 = 0, $$151$i302 = 0, $$151$i328 = 0, $$2$i = 0, $$2$i$i = 0, 
$$2$i$i223 = 0, $$2$i$i238 = 0, $$2$i$i253 = 0, $$2$i205 = 0, $$2$i243 = 0, 
$$2$i260 = 0;
+ var $$2$i281 = 0, $$2$i307 = 0, $$2$i333 = 0, $$2158 = 0, $$2164 = 0, $$252$i 
= 0, $$252$i204 = 0, $$252$i280 = 0, $$252$i306 = 0, $$252$i332 = 0, $$3159 = 
0, $$3165 = 0, $$3171 = 0, $$35356$i = 0, $$35356$i209 = 0, $$35356$i285 = 0, 
$$35356$i311 = 0, $$35356$i337 = 0, $$357$i = 0, $$357$i208 = 0;
+ var $$357$i284 = 0, $$357$i310 = 0, $$357$i336 = 0, $$4160 = 0, $$4166 = 0, 
$$5161 = 0, $$6174 = 0, $$9 = 0, $$in = 0, $$pre$i = 0, $$pre$i$i = 0, 
$$pre$i$i214 = 0, $$pre$i$i229 = 0, $$pre$i$i244 = 0, $$pre$i258 = 0, 
$$pre$phiZ2D = 0, $$sink = 0, $10 = 0, $100 = 0, $101 = 0;
+ var $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;
+ var $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, $136 = 0, $137 = 0, $138 = 0;
+ var $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 
= 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 
= 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0;
+ var $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 
= 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 
= 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0;
+ var $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 
= 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 
= 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0;
+ var $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 
= 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 
= 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0;
+ var $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, 
$218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, 
$225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0;
+ var $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 
= 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 
= 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0;
+ var $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 
= 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 
= 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0;
+ var $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;
+ var $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 
= 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 
= 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0;
+ var $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, 
$309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, 
$316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0;
+ var $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, 
$327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, 
$334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0;
+ var $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 
= 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 
= 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0;
+ var $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 
= 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 
= 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0;
+ var $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 
= 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 
= 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0;
+ var $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 
= 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 
= 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0;
+ var $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, 
$417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, 
$424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0;
+ var $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 
= 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 
= 0, $52 = 0, $53 = 0, $54 = 0;
+ var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, 
$62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, 
$70 = 0, $71 = 0, $72 = 0;
+ var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, 
$80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 
0, $89 = 0, $9 = 0, $90 = 0;
+ var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, 
$99 = 0, $arglist_current = 0, $arglist_current2 = 0, $arglist_next = 0, 
$arglist_next3 = 0, $cond$i = 0, $cond$i188 = 0, $cond$i264 = 0, $cond$i290 = 
0, $cond$i316 = 0, $expanded = 0, $expanded10 = 0;
+ var $expanded11 = 0, $expanded13 = 0, $expanded14 = 0, $expanded15 = 0, 
$expanded4 = 0, $expanded6 = 0, $expanded7 = 0, $expanded8 = 0, $or$cond183 = 
0, $or$cond184 = 0, $scevgep$i = 0, $scevgep$i202 = 0, $scevgep$i278 = 0, 
$scevgep$i304 = 0, $scevgep$i330 = 0, $spec$select = 0, $spec$select$i = 0, 
$spec$select$i$i = 0, $spec$select$i$i220 = 0, $spec$select$i$i235 = 0;
+ var $spec$select$i$i250 = 0, $spec$select$i259 = 0, $spec$select39$i$i = 0, 
$spec$select39$i$i221 = 0, $spec$select39$i$i236 = 0, $spec$select39$i$i251 = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(128|0);
+ $4 = sp + 116|0;
+ $5 = sp + 112|0;
+ $6 = sp + 32|0;
+ $7 = sp;
+ 
;HEAP32[$7>>2]=0|0;HEAP32[$7+4>>2]=0|0;HEAP32[$7+8>>2]=0|0;HEAP32[$7+12>>2]=0|0;HEAP32[$7+16>>2]=0|0;
+ $8 = HEAP8[$2>>0]|0;
+ $9 = ($8<<24>>24)==(0);
+ do {
+  if ($9) {
+   $$0162$lcssa427 = 0;
+  } else {
+   $$0156393 = $2;$$0162392 = 0;$10 = $8;
+   L3: while(1) {
+    L5: do {
+     switch ($10<<24>>24) {
+     case 63: case 47: case 45: case 43: case 38:  {
+      $$1163 = $$0162392;$$2158 = $$0156393;
+      break;
+     }
+     default: {
+      $11 = $10 << 24 >> 24;
+      switch ($11|0) {
+      case 10: case 13: case 12: case 11: case 9: case 32:  {
+       $$1163 = $$0162392;$$2158 = $$0156393;
+       break L5;
+       break;
+      }
+      default: {
+      }
+      }
+      $12 = ($10<<24>>24)==(39);
+      if ($12) {
+       $13 = ((($$0156393)) + 1|0);
+       $14 = (_strchr($13,39)|0);
+       $15 = ($14|0)==(0|0);
+       $16 = ($14|0)==($13|0);
+       $or$cond183 = $15 | $16;
+       if ($or$cond183) {
+        $$0 = 29;
+        label = 180;
+        break L3;
+       } else {
+        $$1157 = $14;
+       }
+      } else {
+       $$1157 = $$0156393;
+      }
+      $arglist_current = HEAP32[$3>>2]|0;
+      $17 = $arglist_current;
+      $18 = ((0) + 4|0);
+      $expanded4 = $18;
+      $expanded = (($expanded4) - 1)|0;
+      $19 = (($17) + ($expanded))|0;
+      $20 = ((0) + 4|0);
+      $expanded8 = $20;
+      $expanded7 = (($expanded8) - 1)|0;
+      $expanded6 = $expanded7 ^ -1;
+      $21 = $19 & $expanded6;
+      $22 = $21;
+      $23 = HEAP32[$22>>2]|0;
+      $arglist_next = ((($22)) + 4|0);
+      HEAP32[$3>>2] = $arglist_next;
+      $24 = (($6) + ($$0162392<<2)|0);
+      HEAP32[$24>>2] = $23;
+      $25 = ($23|0)==(0|0);
+      if ($25) {
+       $$0 = 128;
+       label = 180;
+       break L3;
+      }
+      $26 = (($$0162392) + 1)|0;
+      $$1163 = $26;$$2158 = $$1157;
+     }
+     }
+    } while(0);
+    $27 = ((($$2158)) + 1|0);
+    $28 = HEAP8[$27>>0]|0;
+    $29 = ($28<<24>>24)!=(0);
+    $30 = ($$1163>>>0)<(20);
+    $31 = $30 & $29;
+    if ($31) {
+     $$0156393 = $27;$$0162392 = $$1163;$10 = $28;
+    } else {
+     label = 10;
+     break;
+    }
+   }
+   if ((label|0) == 10) {
+    $32 = ($28<<24>>24)==(0);
+    if ($32) {
+     $$0162$lcssa427 = $$1163;
+     break;
+    } else {
+     $$0 = 183;
+    }
+    STACKTOP = sp;return ($$0|0);
+   }
+   else if ((label|0) == 180) {
+    STACKTOP = sp;return ($$0|0);
+   }
+  }
+ } while(0);
+ $arglist_current2 = HEAP32[$3>>2]|0;
+ $33 = $arglist_current2;
+ $34 = ((0) + 4|0);
+ $expanded11 = $34;
+ $expanded10 = (($expanded11) - 1)|0;
+ $35 = (($33) + ($expanded10))|0;
+ $36 = ((0) + 4|0);
+ $expanded15 = $36;
+ $expanded14 = (($expanded15) - 1)|0;
+ $expanded13 = $expanded14 ^ -1;
+ $37 = $35 & $expanded13;
+ $38 = $37;
+ $39 = HEAP32[$38>>2]|0;
+ $arglist_next3 = ((($38)) + 4|0);
+ HEAP32[$3>>2] = $arglist_next3;
+ $40 = ($39|0)==(0|0);
+ if (!($40)) {
+  $$0 = 45;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $41 = ($1|0)==(0|0);
+ L22: do {
+  if ($41) {
+   $$0150$lcssa = $0;$$0178$lcssa = 0;
+   label = 36;
+  } else {
+   $$0150386 = $0;$$0151385 = $1;$$0178384 = 0;
+   while(1) {
+    $42 = HEAP8[$$0151385>>0]|0;
+    $43 = ($42<<24>>24)==(0);
+    if ($43) {
+     $$0150$lcssa = $$0150386;$$0178$lcssa = $$0178384;
+     label = 36;
+     break L22;
+    }
+    $44 = (_strchr($$0151385,33)|0);
+    $45 = ($44|0)==($$0151385|0);
+    if ($45) {
+     $$0178380 = $$0178384;$$4166 = $$0162$lcssa427;$$6174 = 0;$$9 = 27;
+     break L22;
+    }
+    $46 = ($44|0)==(0|0);
+    $47 = $44;
+    $48 = $$0151385;
+    $49 = (($47) - ($48))|0;
+    $$sink = $46 ? 0 : $49;
+    $50 = $46 ? 0 : $49;
+    $51 = (__gcry_sexp_find_token($$0150386,$$0151385,$$sink)|0);
+    $52 = ($51|0)==(0|0);
+    if ($52) {
+     $$0178380 = $$0178384;$$4166 = $$0162$lcssa427;$$6174 = 0;$$9 = 27;
+     break L22;
+    }
+    $53 = ($$0178384|0)==(0|0);
+    if (!($53)) {
+     $54 = (__gcry_is_secure($$0178384)|0);
+     $55 = ($54|0)==(0);
+     if (!($55)) {
+      $56 = HEAP8[$$0178384>>0]|0;
+      $57 = ($56<<24>>24)==(0);
+      if ($57) {
+       $$0$lcssa$i192 = $$0178384;
+      } else {
+       $$062$i187 = $$0178384;$59 = $56;
+       while(1) {
+        $58 = ((($$062$i187)) + 1|0);
+        $cond$i188 = ($59<<24>>24)==(1);
+        if ($cond$i188) {
+         $$0$copyload$i190 = HEAPU8[$58>>0]|(HEAPU8[$58+1>>0]<<8);
+         $60 = ((($$062$i187)) + 3|0);
+         $61 = $$0$copyload$i190&65535;
+         $62 = (($60) + ($61)|0);
+         $$1$i191 = $62;
+        } else {
+         $$1$i191 = $58;
+        }
+        $63 = HEAP8[$$1$i191>>0]|0;
+        $64 = ($63<<24>>24)==(0);
+        if ($64) {
+         $$0$lcssa$i192 = $$1$i191;
+         break;
+        } else {
+         $$062$i187 = $$1$i191;$59 = $63;
+        }
+       }
+      }
+      $65 = $$0$lcssa$i192;
+      $66 = $$0178384;
+      $67 = (($65) - ($66))|0;
+      $68 = $66 & 7;
+      $69 = ($68|0)!=(0);
+      $70 = ($67|0)!=(0);
+      $71 = $69 & $70;
+      if ($71) {
+       $$04859$i195 = $$0178384;$$05058$i196 = $67;
+       while(1) {
+        HEAP8[$$04859$i195>>0] = 0;
+        $72 = ((($$04859$i195)) + 1|0);
+        $73 = (($$05058$i196) + -1)|0;
+        $74 = $72;
+        $75 = $74 & 7;
+        $76 = ($75|0)!=(0);
+        $77 = ($73|0)!=(0);
+        $78 = $77 & $76;
+        if ($78) {
+         $$04859$i195 = $72;$$05058$i196 = $73;
+        } else {
+         $$048$lcssa$i198 = $72;$$050$lcssa$i197 = $73;
+         break;
+        }
+       }
+      } else {
+       $$048$lcssa$i198 = $$0178384;$$050$lcssa$i197 = $67;
+      }
+      $79 = ($$050$lcssa$i197>>>0)<(8);
+      if ($79) {
+       $$2$i205 = $$048$lcssa$i198;$$252$i204 = $$050$lcssa$i197;
+      } else {
+       $80 = (($$050$lcssa$i197) + -8)|0;
+       $81 = $80 & -8;
+       $$149$i201 = $$048$lcssa$i198;$$151$i200 = $$050$lcssa$i197;
+       while(1) {
+        $82 = $$149$i201;
+        $83 = $82;
+        HEAP32[$83>>2] = 0;
+        $84 = (($82) + 4)|0;
+        $85 = $84;
+        HEAP32[$85>>2] = 0;
+        $86 = (($$151$i200) + -8)|0;
+        $87 = ((($$149$i201)) + 8|0);
+        $88 = ($86>>>0)>(7);
+        if ($88) {
+         $$149$i201 = $87;$$151$i200 = $86;
+        } else {
+         break;
+        }
+       }
+       $89 = (($81) + 8)|0;
+       $90 = (($80) - ($81))|0;
+       $scevgep$i202 = (($$048$lcssa$i198) + ($89)|0);
+       $$2$i205 = $scevgep$i202;$$252$i204 = $90;
+      }
+      $91 = ($$252$i204|0)==(0);
+      if (!($91)) {
+       $$35356$i209 = $$252$i204;$$357$i208 = $$2$i205;
+       while(1) {
+        HEAP8[$$357$i208>>0] = 0;
+        $92 = ((($$357$i208)) + 1|0);
+        $93 = (($$35356$i209) + -1)|0;
+        $94 = ($93|0)==(0);
+        if ($94) {
+         break;
+        } else {
+         $$35356$i209 = $93;$$357$i208 = $92;
+        }
+       }
+      }
+     }
+     __gcry_free($$0178384);
+    }
+    $95 = ($50|0)==(0);
+    $96 = (($50) + 1)|0;
+    $97 = (($$0151385) + ($96)|0);
+    $spec$select = $95 ? 0 : $97;
+    $98 = ($spec$select|0)==(0|0);
+    if ($98) {
+     $$0150$lcssa = $51;$$0178$lcssa = $51;
+     label = 36;
+     break;
+    } else {
+     $$0150386 = $51;$$0151385 = $spec$select;$$0178384 = $51;
+    }
+   }
+  }
+ } while(0);
+ L57: do {
+  if ((label|0) == 36) {
+   $$0181 = 43;$$2164 = 0;$$3159 = $2;
+   L59: while(1) {
+    $99 = HEAP8[$$3159>>0]|0;
+    L61: do {
+     switch ($99<<24>>24) {
+     case 0:  {
+      break L59;
+      break;
+     }
+     case 47: case 45: case 43: case 38:  {
+      $100 = $99 << 24 >> 24;
+      $$1182 = $100;$$3165 = $$2164;$$5161 = $$3159;
+      break;
+     }
+     default: {
+      $101 = $99 << 24 >> 24;
+      switch ($101|0) {
+      case 10: case 13: case 12: case 11: case 9: case 32:  {
+       $$1182 = $$0181;$$3165 = $$2164;$$5161 = $$3159;
+       break L61;
+       break;
+      }
+      default: {
+      }
+      }
+      switch ($99<<24>>24) {
+      case 63:  {
+       $$1182 = $$0181;$$3165 = $$2164;$$5161 = $$3159;
+       break L61;
+       break;
+      }
+      case 39:  {
+       $102 = ((($$3159)) + 1|0);
+       $103 = (_strchr($102,39)|0);
+       $104 = ($103|0)==(0|0);
+       $105 = ($103|0)==($102|0);
+       $or$cond184 = $104 | $105;
+       if ($or$cond184) {
+        $$0178380 = $$0178$lcssa;$$4166 = $$2164;$$6174 = 0;$$9 = 29;
+        break L57;
+       }
+       $106 = $103;
+       $107 = $102;
+       $108 = (($106) - ($107))|0;
+       $109 = (__gcry_sexp_find_token($$0150$lcssa,$102,$108)|0);
+       $$3171 = $109;$$4160 = $103;
+       break;
+      }
+      default: {
+       $110 = (__gcry_sexp_find_token($$0150$lcssa,$$3159,1)|0);
+       $$3171 = $110;$$4160 = $$3159;
+      }
+      }
+      $111 = ($$3171|0)==(0|0);
+      do {
+       if ($111) {
+        $112 = ((($$4160)) + 1|0);
+        $113 = HEAP8[$112>>0]|0;
+        $114 = ($113<<24>>24)==(63);
+        if (!($114)) {
+         $$0178380 = $$0178$lcssa;$$4166 = $$2164;$$6174 = 0;$$9 = 68;
+         break L57;
+        }
+        $115 = ($$0181|0)==(38);
+        $116 = (($6) + ($$2164<<2)|0);
+        if (!($115)) {
+         $123 = HEAP32[$116>>2]|0;
+         HEAP32[$123>>2] = 0;
+         break;
+        }
+        $117 = HEAP32[$116>>2]|0;
+        $118 = ((($117)) + 12|0);
+        $119 = HEAP32[$118>>2]|0;
+        $120 = ($119|0)==(0|0);
+        if ($120) {
+         HEAP32[$117>>2] = 0;
+         $121 = ((($117)) + 4|0);
+         HEAP32[$121>>2] = 0;
+        }
+        $122 = ((($117)) + 8|0);
+        HEAP32[$122>>2] = 0;
+       } else {
+        L79: do {
+         switch ($$0181|0) {
+         case 38:  {
+          $124 = (($6) + ($$2164<<2)|0);
+          $125 = HEAP32[$124>>2]|0;
+          $126 = ((($125)) + 12|0);
+          $127 = HEAP32[$126>>2]|0;
+          $128 = ($127|0)==(0|0);
+          if ($128) {
+           HEAP32[$125>>2] = 0;
+           $161 = HEAP8[$$3171>>0]|0;
+           $162 = ($161<<24>>24)==(3);
+           if (!($162)) {
+            label = 76;
+            break L59;
+           }
+           $163 = ((($$3171)) + 1|0);
+           $$pre$i$i214 = HEAP8[$163>>0]|0;
+           $164 = ($$pre$i$i214<<24>>24)==(1);
+           $$03742$i$i217 = 1;$$044$i$i215 = 0;$$13543$i$i216 = $163;$172 = 
$$pre$i$i214;$433 = $164;
+           while(1) {
+            L101: do {
+             if ($433) {
+              $165 = ((($$13543$i$i216)) + 1|0);
+              $$0$copyload$i$i219 = HEAPU8[$165>>0]|(HEAPU8[$165+1>>0]<<8);
+              $166 = $$0$copyload$i$i219&65535;
+              $167 = (($166) + 2)|0;
+              $168 = (($165) + ($167)|0);
+              $169 = ((($168)) + -1|0);
+              $170 = ($$044$i$i215|0)==(0);
+              $171 = $170 << 31 >> 31;
+              $spec$select$i$i220 = (($$03742$i$i217) + ($171))|0;
+              $$1$i$i224 = $$044$i$i215;$$138$i$i222 = 
$spec$select$i$i220;$$2$i$i223 = $169;
+             } else {
+              switch ($172<<24>>24) {
+              case 0:  {
+               label = 76;
+               break L59;
+               break;
+              }
+              case 3:  {
+               $173 = (($$044$i$i215) + 1)|0;
+               $$1$i$i224 = $173;$$138$i$i222 = $$03742$i$i217;$$2$i$i223 = 
$$13543$i$i216;
+               break L101;
+               break;
+              }
+              case 4:  {
+               $174 = (($$044$i$i215) + -1)|0;
+               $175 = ($174|0)==(0);
+               $176 = $175 << 31 >> 31;
+               $spec$select39$i$i221 = (($$03742$i$i217) + ($176))|0;
+               $$1$i$i224 = $174;$$138$i$i222 = 
$spec$select39$i$i221;$$2$i$i223 = $$13543$i$i216;
+               break L101;
+               break;
+              }
+              default: {
+               $$1$i$i224 = $$044$i$i215;$$138$i$i222 = 
$$03742$i$i217;$$2$i$i223 = $$13543$i$i216;
+               break L101;
+              }
+              }
+             }
+            } while(0);
+            $177 = ((($$2$i$i223)) + 1|0);
+            $178 = ($$138$i$i222|0)>(0);
+            $179 = HEAP8[$177>>0]|0;
+            $180 = ($179<<24>>24)==(1);
+            if ($178) {
+             $$03742$i$i217 = $$138$i$i222;$$044$i$i215 = 
$$1$i$i224;$$13543$i$i216 = $177;$172 = $179;$433 = $180;
+            } else {
+             break;
+            }
+           }
+           if (!($180)) {
+            label = 76;
+            break L59;
+           }
+           $181 = ((($$2$i$i223)) + 2|0);
+           $$0$copyload9$i$i227 = HEAPU8[$181>>0]|(HEAPU8[$181+1>>0]<<8);
+           $182 = $$0$copyload9$i$i227&65535;
+           $183 = ((($$2$i$i223)) + 4|0);
+           $184 = ($$0$copyload9$i$i227<<16>>16)==(0);
+           if ($184) {
+            label = 76;
+            break L59;
+           }
+           $185 = (__gcry_malloc($182)|0);
+           $186 = ($185|0)==(0|0);
+           if ($186) {
+            label = 76;
+            break L59;
+           }
+           _memcpy(($185|0),($183|0),($182|0))|0;
+           HEAP32[$125>>2] = $182;
+           HEAP32[$126>>2] = $185;
+           $187 = ((($125)) + 8|0);
+           HEAP32[$187>>2] = $182;
+           $188 = ((($125)) + 4|0);
+           HEAP32[$188>>2] = 0;
+           $189 = (($7) + ($$2164)|0);
+           HEAP8[$189>>0] = 2;
+           $$pre$phiZ2D = $$3171;
+           break L79;
+          } else {
+           $129 = HEAP8[$$3171>>0]|0;
+           $130 = ($129<<24>>24)==(3);
+           if (!($130)) {
+            $$0178380 = $$0178$lcssa;$$4166 = $$2164;$$6174 = $$3171;$$9 = 65;
+            break L57;
+           }
+           $131 = ((($$3171)) + 1|0);
+           $$pre$i$i = HEAP8[$131>>0]|0;
+           $132 = ($$pre$i$i<<24>>24)==(1);
+           $$03742$i$i = 1;$$044$i$i = 0;$$13543$i$i = $131;$140 = 
$$pre$i$i;$432 = $132;
+           while(1) {
+            L116: do {
+             if ($432) {
+              $133 = ((($$13543$i$i)) + 1|0);
+              $$0$copyload$i$i = HEAPU8[$133>>0]|(HEAPU8[$133+1>>0]<<8);
+              $134 = $$0$copyload$i$i&65535;
+              $135 = (($134) + 2)|0;
+              $136 = (($133) + ($135)|0);
+              $137 = ((($136)) + -1|0);
+              $138 = ($$044$i$i|0)==(0);
+              $139 = $138 << 31 >> 31;
+              $spec$select$i$i = (($$03742$i$i) + ($139))|0;
+              $$1$i$i = $$044$i$i;$$138$i$i = $spec$select$i$i;$$2$i$i = $137;
+             } else {
+              switch ($140<<24>>24) {
+              case 0:  {
+               $$0178380 = $$0178$lcssa;$$4166 = $$2164;$$6174 = $$3171;$$9 = 
65;
+               break L57;
+               break;
+              }
+              case 3:  {
+               $141 = (($$044$i$i) + 1)|0;
+               $$1$i$i = $141;$$138$i$i = $$03742$i$i;$$2$i$i = $$13543$i$i;
+               break L116;
+               break;
+              }
+              case 4:  {
+               $142 = (($$044$i$i) + -1)|0;
+               $143 = ($142|0)==(0);
+               $144 = $143 << 31 >> 31;
+               $spec$select39$i$i = (($$03742$i$i) + ($144))|0;
+               $$1$i$i = $142;$$138$i$i = $spec$select39$i$i;$$2$i$i = 
$$13543$i$i;
+               break L116;
+               break;
+              }
+              default: {
+               $$1$i$i = $$044$i$i;$$138$i$i = $$03742$i$i;$$2$i$i = 
$$13543$i$i;
+               break L116;
+              }
+              }
+             }
+            } while(0);
+            $145 = ((($$2$i$i)) + 1|0);
+            $146 = ($$138$i$i|0)>(0);
+            $147 = HEAP8[$145>>0]|0;
+            $148 = ($147<<24>>24)==(1);
+            if ($146) {
+             $$03742$i$i = $$138$i$i;$$044$i$i = $$1$i$i;$$13543$i$i = 
$145;$140 = $147;$432 = $148;
+            } else {
+             break;
+            }
+           }
+           if (!($148)) {
+            $$0178380 = $$0178$lcssa;$$4166 = $$2164;$$6174 = $$3171;$$9 = 65;
+            break L57;
+           }
+           $149 = ((($$2$i$i)) + 2|0);
+           $$0$copyload9$i$i = HEAPU8[$149>>0]|(HEAPU8[$149+1>>0]<<8);
+           $150 = $$0$copyload9$i$i&65535;
+           $151 = ((($$2$i$i)) + 4|0);
+           $152 = ($$0$copyload9$i$i<<16>>16)==(0);
+           if ($152) {
+            $$0178380 = $$0178$lcssa;$$4166 = $$2164;$$6174 = $$3171;$$9 = 65;
+            break L57;
+           }
+           $153 = ((($125)) + 4|0);
+           $154 = HEAP32[$153>>2]|0;
+           $155 = (($154) + ($150))|0;
+           $156 = HEAP32[$125>>2]|0;
+           $157 = ($155>>>0)>($156>>>0);
+           if ($157) {
+            $$0178380 = $$0178$lcssa;$$4166 = $$2164;$$6174 = $$3171;$$9 = 200;
+            break L57;
+           }
+           $158 = (($127) + ($154)|0);
+           _memcpy(($158|0),($151|0),($150|0))|0;
+           $159 = ((($125)) + 8|0);
+           HEAP32[$159>>2] = $150;
+           $160 = (($7) + ($$2164)|0);
+           HEAP8[$160>>0] = 1;
+           $$pre$phiZ2D = $$3171;
+           break L79;
+          }
+          break;
+         }
+         case 47:  {
+          $190 = (__gcry_sexp_nth_mpi($$3171,1,8)|0);
+          $191 = (($6) + ($$2164<<2)|0);
+          $192 = HEAP32[$191>>2]|0;
+          HEAP32[$192>>2] = $190;
+          $$pre$phiZ2D = $$3171;
+          break;
+         }
+         case 45:  {
+          $193 = HEAP8[$$3171>>0]|0;
+          $194 = ($193<<24>>24)==(3);
+          L129: do {
+           if ($194) {
+            $195 = ((($$3171)) + 1|0);
+            $$pre$i$i229 = HEAP8[$195>>0]|0;
+            $196 = ($$pre$i$i229<<24>>24)==(1);
+            $$03742$i$i232 = 1;$$044$i$i230 = 0;$$13543$i$i231 = $195;$204 = 
$$pre$i$i229;$434 = $196;
+            while(1) {
+             L133: do {
+              if ($434) {
+               $197 = ((($$13543$i$i231)) + 1|0);
+               $$0$copyload$i$i234 = HEAPU8[$197>>0]|(HEAPU8[$197+1>>0]<<8);
+               $198 = $$0$copyload$i$i234&65535;
+               $199 = (($198) + 2)|0;
+               $200 = (($197) + ($199)|0);
+               $201 = ((($200)) + -1|0);
+               $202 = ($$044$i$i230|0)==(0);
+               $203 = $202 << 31 >> 31;
+               $spec$select$i$i235 = (($$03742$i$i232) + ($203))|0;
+               $$1$i$i239 = $$044$i$i230;$$138$i$i237 = 
$spec$select$i$i235;$$2$i$i238 = $201;
+              } else {
+               switch ($204<<24>>24) {
+               case 0:  {
+                $$2$i243 = 0;
+                break L129;
+                break;
+               }
+               case 3:  {
+                $205 = (($$044$i$i230) + 1)|0;
+                $$1$i$i239 = $205;$$138$i$i237 = $$03742$i$i232;$$2$i$i238 = 
$$13543$i$i231;
+                break L133;
+                break;
+               }
+               case 4:  {
+                $206 = (($$044$i$i230) + -1)|0;
+                $207 = ($206|0)==(0);
+                $208 = $207 << 31 >> 31;
+                $spec$select39$i$i236 = (($$03742$i$i232) + ($208))|0;
+                $$1$i$i239 = $206;$$138$i$i237 = 
$spec$select39$i$i236;$$2$i$i238 = $$13543$i$i231;
+                break L133;
+                break;
+               }
+               default: {
+                $$1$i$i239 = $$044$i$i230;$$138$i$i237 = 
$$03742$i$i232;$$2$i$i238 = $$13543$i$i231;
+                break L133;
+               }
+               }
+              }
+             } while(0);
+             $209 = ((($$2$i$i238)) + 1|0);
+             $210 = ($$138$i$i237|0)>(0);
+             $211 = HEAP8[$209>>0]|0;
+             $212 = ($211<<24>>24)==(1);
+             if ($210) {
+              $$03742$i$i232 = $$138$i$i237;$$044$i$i230 = 
$$1$i$i239;$$13543$i$i231 = $209;$204 = $211;$434 = $212;
+             } else {
+              break;
+             }
+            }
+            if ($212) {
+             $213 = ((($$2$i$i238)) + 2|0);
+             $$0$copyload9$i$i242 = HEAPU8[$213>>0]|(HEAPU8[$213+1>>0]<<8);
+             $214 = $$0$copyload9$i$i242&65535;
+             $215 = ((($$2$i$i238)) + 4|0);
+             $216 = (__gcry_mpi_scan($5,1,$215,$214,0)|0);
+             $217 = ($216|0)==(0);
+             $$pre$i = HEAP32[$5>>2]|0;
+             $spec$select$i = $217 ? $$pre$i : 0;
+             $$2$i243 = $spec$select$i;
+            } else {
+             $$2$i243 = 0;
+            }
+           } else {
+            $$2$i243 = 0;
+           }
+          } while(0);
+          $218 = (($6) + ($$2164<<2)|0);
+          $219 = HEAP32[$218>>2]|0;
+          HEAP32[$219>>2] = $$2$i243;
+          $$pre$phiZ2D = $$3171;
+          break;
+         }
+         default: {
+          $220 = HEAP8[$$3171>>0]|0;
+          $221 = ($220<<24>>24)==(3);
+          L81: do {
+           if ($221) {
+            $222 = ((($$3171)) + 1|0);
+            $$pre$i$i244 = HEAP8[$222>>0]|0;
+            $223 = ($$pre$i$i244<<24>>24)==(1);
+            $$03742$i$i247 = 1;$$044$i$i245 = 0;$$13543$i$i246 = $222;$231 = 
$$pre$i$i244;$435 = $223;
+            while(1) {
+             L85: do {
+              if ($435) {
+               $224 = ((($$13543$i$i246)) + 1|0);
+               $$0$copyload$i$i249 = HEAPU8[$224>>0]|(HEAPU8[$224+1>>0]<<8);
+               $225 = $$0$copyload$i$i249&65535;
+               $226 = (($225) + 2)|0;
+               $227 = (($224) + ($226)|0);
+               $228 = ((($227)) + -1|0);
+               $229 = ($$044$i$i245|0)==(0);
+               $230 = $229 << 31 >> 31;
+               $spec$select$i$i250 = (($$03742$i$i247) + ($230))|0;
+               $$1$i$i254 = $$044$i$i245;$$138$i$i252 = 
$spec$select$i$i250;$$2$i$i253 = $228;
+              } else {
+               switch ($231<<24>>24) {
+               case 0:  {
+                $$2$i260 = 0;
+                break L81;
+                break;
+               }
+               case 3:  {
+                $232 = (($$044$i$i245) + 1)|0;
+                $$1$i$i254 = $232;$$138$i$i252 = $$03742$i$i247;$$2$i$i253 = 
$$13543$i$i246;
+                break L85;
+                break;
+               }
+               case 4:  {
+                $233 = (($$044$i$i245) + -1)|0;
+                $234 = ($233|0)==(0);
+                $235 = $234 << 31 >> 31;
+                $spec$select39$i$i251 = (($$03742$i$i247) + ($235))|0;
+                $$1$i$i254 = $233;$$138$i$i252 = 
$spec$select39$i$i251;$$2$i$i253 = $$13543$i$i246;
+                break L85;
+                break;
+               }
+               default: {
+                $$1$i$i254 = $$044$i$i245;$$138$i$i252 = 
$$03742$i$i247;$$2$i$i253 = $$13543$i$i246;
+                break L85;
+               }
+               }
+              }
+             } while(0);
+             $236 = ((($$2$i$i253)) + 1|0);
+             $237 = ($$138$i$i252|0)>(0);
+             $238 = HEAP8[$236>>0]|0;
+             $239 = ($238<<24>>24)==(1);
+             if ($237) {
+              $$03742$i$i247 = $$138$i$i252;$$044$i$i245 = 
$$1$i$i254;$$13543$i$i246 = $236;$231 = $238;$435 = $239;
+             } else {
+              break;
+             }
+            }
+            if ($239) {
+             $240 = ((($$2$i$i253)) + 2|0);
+             $$0$copyload9$i$i257 = HEAPU8[$240>>0]|(HEAPU8[$240+1>>0]<<8);
+             $241 = $$0$copyload9$i$i257&65535;
+             $242 = ((($$2$i$i253)) + 4|0);
+             $243 = (__gcry_mpi_scan($4,5,$242,$241,0)|0);
+             $244 = ($243|0)==(0);
+             $$pre$i258 = HEAP32[$4>>2]|0;
+             $spec$select$i259 = $244 ? $$pre$i258 : 0;
+             $$2$i260 = $spec$select$i259;
+            } else {
+             $$2$i260 = 0;
+            }
+           } else {
+            $$2$i260 = 0;
+           }
+          } while(0);
+          $245 = (($6) + ($$2164<<2)|0);
+          $246 = HEAP32[$245>>2]|0;
+          HEAP32[$246>>2] = $$2$i260;
+          $$pre$phiZ2D = $$3171;
+         }
+         }
+        } while(0);
+        $247 = (__gcry_is_secure($$pre$phiZ2D)|0);
+        $248 = ($247|0)==(0);
+        if (!($248)) {
+         $249 = HEAP8[$$pre$phiZ2D>>0]|0;
+         $250 = ($249<<24>>24)==(0);
+         if ($250) {
+          $$0$lcssa$i268 = $$pre$phiZ2D;
+         } else {
+          $$062$i263 = $$pre$phiZ2D;$252 = $249;
+          while(1) {
+           $251 = ((($$062$i263)) + 1|0);
+           $cond$i264 = ($252<<24>>24)==(1);
+           if ($cond$i264) {
+            $$0$copyload$i266 = HEAPU8[$251>>0]|(HEAPU8[$251+1>>0]<<8);
+            $253 = ((($$062$i263)) + 3|0);
+            $254 = $$0$copyload$i266&65535;
+            $255 = (($253) + ($254)|0);
+            $$1$i267 = $255;
+           } else {
+            $$1$i267 = $251;
+           }
+           $256 = HEAP8[$$1$i267>>0]|0;
+           $257 = ($256<<24>>24)==(0);
+           if ($257) {
+            $$0$lcssa$i268 = $$1$i267;
+            break;
+           } else {
+            $$062$i263 = $$1$i267;$252 = $256;
+           }
+          }
+         }
+         $258 = $$0$lcssa$i268;
+         $259 = $$3171;
+         $260 = (($258) - ($259))|0;
+         $261 = $259 & 7;
+         $262 = ($261|0)!=(0);
+         $263 = ($260|0)!=(0);
+         $264 = $262 & $263;
+         if ($264) {
+          $$04859$i271 = $$pre$phiZ2D;$$05058$i272 = $260;
+          while(1) {
+           HEAP8[$$04859$i271>>0] = 0;
+           $265 = ((($$04859$i271)) + 1|0);
+           $266 = (($$05058$i272) + -1)|0;
+           $267 = $265;
+           $268 = $267 & 7;
+           $269 = ($268|0)!=(0);
+           $270 = ($266|0)!=(0);
+           $271 = $270 & $269;
+           if ($271) {
+            $$04859$i271 = $265;$$05058$i272 = $266;
+           } else {
+            $$048$lcssa$i274 = $265;$$050$lcssa$i273 = $266;
+            break;
+           }
+          }
+         } else {
+          $$048$lcssa$i274 = $$pre$phiZ2D;$$050$lcssa$i273 = $260;
+         }
+         $272 = ($$050$lcssa$i273>>>0)<(8);
+         if ($272) {
+          $$2$i281 = $$048$lcssa$i274;$$252$i280 = $$050$lcssa$i273;
+         } else {
+          $273 = (($$050$lcssa$i273) + -8)|0;
+          $274 = $273 & -8;
+          $$149$i277 = $$048$lcssa$i274;$$151$i276 = $$050$lcssa$i273;
+          while(1) {
+           $275 = $$149$i277;
+           $276 = $275;
+           HEAP32[$276>>2] = 0;
+           $277 = (($275) + 4)|0;
+           $278 = $277;
+           HEAP32[$278>>2] = 0;
+           $279 = (($$151$i276) + -8)|0;
+           $280 = ((($$149$i277)) + 8|0);
+           $281 = ($279>>>0)>(7);
+           if ($281) {
+            $$149$i277 = $280;$$151$i276 = $279;
+           } else {
+            break;
+           }
+          }
+          $282 = (($274) + 8)|0;
+          $283 = (($273) - ($274))|0;
+          $scevgep$i278 = (($$048$lcssa$i274) + ($282)|0);
+          $$2$i281 = $scevgep$i278;$$252$i280 = $283;
+         }
+         $284 = ($$252$i280|0)==(0);
+         if (!($284)) {
+          $$35356$i285 = $$252$i280;$$357$i284 = $$2$i281;
+          while(1) {
+           HEAP8[$$357$i284>>0] = 0;
+           $285 = ((($$357$i284)) + 1|0);
+           $286 = (($$35356$i285) + -1)|0;
+           $287 = ($286|0)==(0);
+           if ($287) {
+            break;
+           } else {
+            $$35356$i285 = $286;$$357$i284 = $285;
+           }
+          }
+         }
+        }
+        __gcry_free($$pre$phiZ2D);
+        $288 = (($6) + ($$2164<<2)|0);
+        $289 = HEAP32[$288>>2]|0;
+        $290 = HEAP32[$289>>2]|0;
+        $291 = ($290|0)==(0|0);
+        if ($291) {
+         $$0178380 = $$0178$lcssa;$$4166 = $$2164;$$6174 = 0;$$9 = 65;
+         break L57;
+        }
+       }
+      } while(0);
+      $292 = (($$2164) + 1)|0;
+      $$1182 = $$0181;$$3165 = $292;$$5161 = $$4160;
+     }
+     }
+    } while(0);
+    $293 = ((($$5161)) + 1|0);
+    $$0181 = $$1182;$$2164 = $$3165;$$3159 = $293;
+   }
+   if ((label|0) == 76) {
+    HEAP32[$126>>2] = 0;
+    $$0178380 = $$0178$lcssa;$$4166 = $$2164;$$6174 = $$3171;$$9 = 65;
+    break;
+   }
+   $294 = ($$0178$lcssa|0)==(0|0);
+   if ($294) {
+    $$0 = 0;
+    STACKTOP = sp;return ($$0|0);
+   }
+   $295 = (__gcry_is_secure($$0178$lcssa)|0);
+   $296 = ($295|0)==(0);
+   if (!($296)) {
+    $297 = HEAP8[$$0178$lcssa>>0]|0;
+    $298 = ($297<<24>>24)==(0);
+    if ($298) {
+     $$0$lcssa$i294 = $$0178$lcssa;
+    } else {
+     $$062$i289 = $$0178$lcssa;$300 = $297;
+     while(1) {
+      $299 = ((($$062$i289)) + 1|0);
+      $cond$i290 = ($300<<24>>24)==(1);
+      if ($cond$i290) {
+       $$0$copyload$i292 = HEAPU8[$299>>0]|(HEAPU8[$299+1>>0]<<8);
+       $301 = ((($$062$i289)) + 3|0);
+       $302 = $$0$copyload$i292&65535;
+       $303 = (($301) + ($302)|0);
+       $$1$i293 = $303;
+      } else {
+       $$1$i293 = $299;
+      }
+      $304 = HEAP8[$$1$i293>>0]|0;
+      $305 = ($304<<24>>24)==(0);
+      if ($305) {
+       $$0$lcssa$i294 = $$1$i293;
+       break;
+      } else {
+       $$062$i289 = $$1$i293;$300 = $304;
+      }
+     }
+    }
+    $306 = $$0$lcssa$i294;
+    $307 = $$0178$lcssa;
+    $308 = (($306) - ($307))|0;
+    $309 = $307 & 7;
+    $310 = ($309|0)!=(0);
+    $311 = ($308|0)!=(0);
+    $312 = $310 & $311;
+    if ($312) {
+     $$04859$i297 = $$0178$lcssa;$$05058$i298 = $308;
+     while(1) {
+      HEAP8[$$04859$i297>>0] = 0;
+      $313 = ((($$04859$i297)) + 1|0);
+      $314 = (($$05058$i298) + -1)|0;
+      $315 = $313;
+      $316 = $315 & 7;
+      $317 = ($316|0)!=(0);
+      $318 = ($314|0)!=(0);
+      $319 = $318 & $317;
+      if ($319) {
+       $$04859$i297 = $313;$$05058$i298 = $314;
+      } else {
+       $$048$lcssa$i300 = $313;$$050$lcssa$i299 = $314;
+       break;
+      }
+     }
+    } else {
+     $$048$lcssa$i300 = $$0178$lcssa;$$050$lcssa$i299 = $308;
+    }
+    $320 = ($$050$lcssa$i299>>>0)<(8);
+    if ($320) {
+     $$2$i307 = $$048$lcssa$i300;$$252$i306 = $$050$lcssa$i299;
+    } else {
+     $321 = (($$050$lcssa$i299) + -8)|0;
+     $322 = $321 & -8;
+     $$149$i303 = $$048$lcssa$i300;$$151$i302 = $$050$lcssa$i299;
+     while(1) {
+      $323 = $$149$i303;
+      $324 = $323;
+      HEAP32[$324>>2] = 0;
+      $325 = (($323) + 4)|0;
+      $326 = $325;
+      HEAP32[$326>>2] = 0;
+      $327 = (($$151$i302) + -8)|0;
+      $328 = ((($$149$i303)) + 8|0);
+      $329 = ($327>>>0)>(7);
+      if ($329) {
+       $$149$i303 = $328;$$151$i302 = $327;
+      } else {
+       break;
+      }
+     }
+     $330 = (($322) + 8)|0;
+     $331 = (($321) - ($322))|0;
+     $scevgep$i304 = (($$048$lcssa$i300) + ($330)|0);
+     $$2$i307 = $scevgep$i304;$$252$i306 = $331;
+    }
+    $332 = ($$252$i306|0)==(0);
+    if (!($332)) {
+     $$35356$i311 = $$252$i306;$$357$i310 = $$2$i307;
+     while(1) {
+      HEAP8[$$357$i310>>0] = 0;
+      $333 = ((($$357$i310)) + 1|0);
+      $334 = (($$35356$i311) + -1)|0;
+      $335 = ($334|0)==(0);
+      if ($335) {
+       break;
+      } else {
+       $$35356$i311 = $334;$$357$i310 = $333;
+      }
+     }
+    }
+   }
+   __gcry_free($$0178$lcssa);
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+ } while(0);
+ $336 = ($$0178380|0)==(0|0);
+ if (!($336)) {
+  $337 = (__gcry_is_secure($$0178380)|0);
+  $338 = ($337|0)==(0);
+  if (!($338)) {
+   $339 = HEAP8[$$0178380>>0]|0;
+   $340 = ($339<<24>>24)==(0);
+   if ($340) {
+    $$0$lcssa$i320 = $$0178380;
+   } else {
+    $$062$i315 = $$0178380;$342 = $339;
+    while(1) {
+     $341 = ((($$062$i315)) + 1|0);
+     $cond$i316 = ($342<<24>>24)==(1);
+     if ($cond$i316) {
+      $$0$copyload$i318 = HEAPU8[$341>>0]|(HEAPU8[$341+1>>0]<<8);
+      $343 = ((($$062$i315)) + 3|0);
+      $344 = $$0$copyload$i318&65535;
+      $345 = (($343) + ($344)|0);
+      $$1$i319 = $345;
+     } else {
+      $$1$i319 = $341;
+     }
+     $346 = HEAP8[$$1$i319>>0]|0;
+     $347 = ($346<<24>>24)==(0);
+     if ($347) {
+      $$0$lcssa$i320 = $$1$i319;
+      break;
+     } else {
+      $$062$i315 = $$1$i319;$342 = $346;
+     }
+    }
+   }
+   $348 = $$0$lcssa$i320;
+   $349 = $$0178380;
+   $350 = (($348) - ($349))|0;
+   $351 = $349 & 7;
+   $352 = ($351|0)!=(0);
+   $353 = ($350|0)!=(0);
+   $354 = $352 & $353;
+   if ($354) {
+    $$04859$i323 = $$0178380;$$05058$i324 = $350;
+    while(1) {
+     HEAP8[$$04859$i323>>0] = 0;
+     $355 = ((($$04859$i323)) + 1|0);
+     $356 = (($$05058$i324) + -1)|0;
+     $357 = $355;
+     $358 = $357 & 7;
+     $359 = ($358|0)!=(0);
+     $360 = ($356|0)!=(0);
+     $361 = $360 & $359;
+     if ($361) {
+      $$04859$i323 = $355;$$05058$i324 = $356;
+     } else {
+      $$048$lcssa$i326 = $355;$$050$lcssa$i325 = $356;
+      break;
+     }
+    }
+   } else {
+    $$048$lcssa$i326 = $$0178380;$$050$lcssa$i325 = $350;
+   }
+   $362 = ($$050$lcssa$i325>>>0)<(8);
+   if ($362) {
+    $$2$i333 = $$048$lcssa$i326;$$252$i332 = $$050$lcssa$i325;
+   } else {
+    $363 = (($$050$lcssa$i325) + -8)|0;
+    $364 = $363 & -8;
+    $$149$i329 = $$048$lcssa$i326;$$151$i328 = $$050$lcssa$i325;
+    while(1) {
+     $365 = $$149$i329;
+     $366 = $365;
+     HEAP32[$366>>2] = 0;
+     $367 = (($365) + 4)|0;
+     $368 = $367;
+     HEAP32[$368>>2] = 0;
+     $369 = (($$151$i328) + -8)|0;
+     $370 = ((($$149$i329)) + 8|0);
+     $371 = ($369>>>0)>(7);
+     if ($371) {
+      $$149$i329 = $370;$$151$i328 = $369;
+     } else {
+      break;
+     }
+    }
+    $372 = (($364) + 8)|0;
+    $373 = (($363) - ($364))|0;
+    $scevgep$i330 = (($$048$lcssa$i326) + ($372)|0);
+    $$2$i333 = $scevgep$i330;$$252$i332 = $373;
+   }
+   $374 = ($$252$i332|0)==(0);
+   if (!($374)) {
+    $$35356$i337 = $$252$i332;$$357$i336 = $$2$i333;
+    while(1) {
+     HEAP8[$$357$i336>>0] = 0;
+     $375 = ((($$357$i336)) + 1|0);
+     $376 = (($$35356$i337) + -1)|0;
+     $377 = ($376|0)==(0);
+     if ($377) {
+      break;
+     } else {
+      $$35356$i337 = $376;$$357$i336 = $375;
+     }
+    }
+   }
+  }
+  __gcry_free($$0178380);
+ }
+ $378 = ($$6174|0)==(0|0);
+ if (!($378)) {
+  $379 = (__gcry_is_secure($$6174)|0);
+  $380 = ($379|0)==(0);
+  if (!($380)) {
+   $381 = HEAP8[$$6174>>0]|0;
+   $382 = ($381<<24>>24)==(0);
+   if ($382) {
+    $$0$lcssa$i = $$6174;
+   } else {
+    $$062$i = $$6174;$384 = $381;
+    while(1) {
+     $383 = ((($$062$i)) + 1|0);
+     $cond$i = ($384<<24>>24)==(1);
+     if ($cond$i) {
+      $$0$copyload$i = HEAPU8[$383>>0]|(HEAPU8[$383+1>>0]<<8);
+      $385 = ((($$062$i)) + 3|0);
+      $386 = $$0$copyload$i&65535;
+      $387 = (($385) + ($386)|0);
+      $$1$i = $387;
+     } else {
+      $$1$i = $383;
+     }
+     $388 = HEAP8[$$1$i>>0]|0;
+     $389 = ($388<<24>>24)==(0);
+     if ($389) {
+      $$0$lcssa$i = $$1$i;
+      break;
+     } else {
+      $$062$i = $$1$i;$384 = $388;
+     }
+    }
+   }
+   $390 = $$0$lcssa$i;
+   $391 = $$6174;
+   $392 = (($390) - ($391))|0;
+   $393 = $391 & 7;
+   $394 = ($393|0)!=(0);
+   $395 = ($392|0)!=(0);
+   $396 = $394 & $395;
+   if ($396) {
+    $$04859$i = $$6174;$$05058$i = $392;
+    while(1) {
+     HEAP8[$$04859$i>>0] = 0;
+     $397 = ((($$04859$i)) + 1|0);
+     $398 = (($$05058$i) + -1)|0;
+     $399 = $397;
+     $400 = $399 & 7;
+     $401 = ($400|0)!=(0);
+     $402 = ($398|0)!=(0);
+     $403 = $402 & $401;
+     if ($403) {
+      $$04859$i = $397;$$05058$i = $398;
+     } else {
+      $$048$lcssa$i = $397;$$050$lcssa$i = $398;
+      break;
+     }
+    }
+   } else {
+    $$048$lcssa$i = $$6174;$$050$lcssa$i = $392;
+   }
+   $404 = ($$050$lcssa$i>>>0)<(8);
+   if ($404) {
+    $$2$i = $$048$lcssa$i;$$252$i = $$050$lcssa$i;
+   } else {
+    $405 = (($$050$lcssa$i) + -8)|0;
+    $406 = $405 & -8;
+    $$149$i = $$048$lcssa$i;$$151$i = $$050$lcssa$i;
+    while(1) {
+     $407 = $$149$i;
+     $408 = $407;
+     HEAP32[$408>>2] = 0;
+     $409 = (($407) + 4)|0;
+     $410 = $409;
+     HEAP32[$410>>2] = 0;
+     $411 = (($$151$i) + -8)|0;
+     $412 = ((($$149$i)) + 8|0);
+     $413 = ($411>>>0)>(7);
+     if ($413) {
+      $$149$i = $412;$$151$i = $411;
+     } else {
+      break;
+     }
+    }
+    $414 = (($406) + 8)|0;
+    $415 = (($405) - ($406))|0;
+    $scevgep$i = (($$048$lcssa$i) + ($414)|0);
+    $$2$i = $scevgep$i;$$252$i = $415;
+   }
+   $416 = ($$252$i|0)==(0);
+   if (!($416)) {
+    $$35356$i = $$252$i;$$357$i = $$2$i;
+    while(1) {
+     HEAP8[$$357$i>>0] = 0;
+     $417 = ((($$357$i)) + 1|0);
+     $418 = (($$35356$i) + -1)|0;
+     $419 = ($418|0)==(0);
+     if ($419) {
+      break;
+     } else {
+      $$35356$i = $418;$$357$i = $417;
+     }
+    }
+   }
+  }
+  __gcry_free($$6174);
+ }
+ $420 = ($$4166|0)==(0);
+ if ($420) {
+  $$0 = $$9;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $$in = $$4166;
+ while(1) {
+  $421 = (($$in) + -1)|0;
+  $422 = (($7) + ($421)|0);
+  $423 = HEAP8[$422>>0]|0;
+  $424 = ($423<<24>>24)==(0);
+  $425 = (($6) + ($421<<2)|0);
+  if ($424) {
+   $426 = HEAP32[$425>>2]|0;
+   $427 = HEAP32[$426>>2]|0;
+   __gcry_mpi_release($427);
+   HEAP32[$426>>2] = 0;
+  } else {
+   $428 = HEAP32[$425>>2]|0;
+   $429 = ((($428)) + 12|0);
+   $430 = HEAP32[$429>>2]|0;
+   __gcry_free($430);
+   
;HEAP32[$428>>2]=0|0;HEAP32[$428+4>>2]=0|0;HEAP32[$428+8>>2]=0|0;HEAP32[$428+12>>2]=0|0;
+  }
+  $431 = ($421|0)==(0);
+  if ($431) {
+   $$0 = $$9;
+   break;
+  } else {
+   $$in = $421;
+  }
+ }
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_sexp_extract_param($0,$1,$2,$varargs) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $varargs = $varargs|0;
+ var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $3 = sp;
+ HEAP32[$3>>2] = $varargs;
+ $4 = (__gcry_sexp_vextract_param($0,$1,$2,$3)|0);
+ $5 = ($4|0)==(0);
+ $6 = $4 & 65535;
+ $7 = $6 | 16777216;
+ $8 = $5 ? 0 : $7;
+ STACKTOP = sp;return ($8|0);
+}
+function __gcry_disable_hw_feature($0) {
+ $0 = $0|0;
+ var $$05 = 0, $$07$lcssa = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 
= 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 
= 0, $23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 
0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_strcmp(44779,$0)|0);
+ $2 = ($1|0)==(0);
+ if ($2) {
+  $$07$lcssa = 0;
+ } else {
+  $7 = (_strcmp(44791,$0)|0);
+  $8 = ($7|0)==(0);
+  if ($8) {
+   $$07$lcssa = 1;
+  } else {
+   $9 = (_strcmp(44803,$0)|0);
+   $10 = ($9|0)==(0);
+   if ($10) {
+    $$07$lcssa = 2;
+   } else {
+    $11 = (_strcmp(44815,$0)|0);
+    $12 = ($11|0)==(0);
+    if ($12) {
+     $$07$lcssa = 3;
+    } else {
+     $13 = (_strcmp(44828,$0)|0);
+     $14 = ($13|0)==(0);
+     if ($14) {
+      $$07$lcssa = 4;
+     } else {
+      $15 = (_strcmp(44838,$0)|0);
+      $16 = ($15|0)==(0);
+      if ($16) {
+       $$07$lcssa = 5;
+      } else {
+       $17 = (_strcmp(44849,$0)|0);
+       $18 = ($17|0)==(0);
+       if ($18) {
+        $$07$lcssa = 6;
+       } else {
+        $19 = (_strcmp(44861,$0)|0);
+        $20 = ($19|0)==(0);
+        if ($20) {
+         $$07$lcssa = 7;
+        } else {
+         $21 = (_strcmp(44874,$0)|0);
+         $22 = ($21|0)==(0);
+         if ($22) {
+          $$07$lcssa = 8;
+         } else {
+          $23 = (_strcmp(44886,$0)|0);
+          $24 = ($23|0)==(0);
+          if ($24) {
+           $$07$lcssa = 9;
+          } else {
+           $25 = (_strcmp(44899,$0)|0);
+           $26 = ($25|0)==(0);
+           if ($26) {
+            $$07$lcssa = 10;
+           } else {
+            $27 = (_strcmp(44909,$0)|0);
+            $28 = ($27|0)==(0);
+            if ($28) {
+             $$07$lcssa = 11;
+            } else {
+             $29 = (_strcmp(44920,$0)|0);
+             $30 = ($29|0)==(0);
+             if ($30) {
+              $$07$lcssa = 12;
+             } else {
+              $$05 = 88;
+              return ($$05|0);
+             }
+            }
+           }
+          }
+         }
+        }
+       }
+      }
+     }
+    }
+   }
+  }
+ }
+ $3 = (96 + ($$07$lcssa<<3)|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = HEAP32[18093]|0;
+ $6 = $5 | $4;
+ HEAP32[18093] = $6;
+ $$05 = 0;
+ return ($$05|0);
+}
+function __gcry_get_hw_features() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return 0;
+}
+function __gcry_enum_hw_features($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ $2 = ($0>>>0)>(12);
+ if ($2) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $3 = ($1|0)==(0|0);
+ if (!($3)) {
+  $4 = (96 + ($0<<3)|0);
+  $5 = HEAP32[$4>>2]|0;
+  HEAP32[$1>>2] = $5;
+ }
+ $6 = (((96 + ($0<<3)|0)) + 4|0);
+ $7 = HEAP32[$6>>2]|0;
+ $$0 = $7;
+ return ($$0|0);
+}
+function __gcry_detect_hw_features() {
+ var $$03847$lcssa$i = 0, $$03945$i = 0, $$040$lcssa$i = 0, $$04042$i = 0, 
$$pre$i = 0, $$pre54$i = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, 
$14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0;
+ var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, 
$29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, 
$37 = 0, $38 = 0, $39 = 0;
+ var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, 
$47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, 
$55 = 0, $56 = 0, $57 = 0;
+ var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, 
$65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, 
sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(256|0);
+ $0 = sp;
+ $1 = (__gcry_fips_mode()|0);
+ $2 = ($1|0)==(0);
+ if (!($2)) {
+  STACKTOP = sp;return;
+ }
+ $3 = (_fopen(44929,45466)|0);
+ $4 = ($3|0)==(0|0);
+ if (!($4)) {
+  $5 = (_fgets($0,256,$3)|0);
+  $6 = ($5|0)==(0|0);
+  if (!($6)) {
+   while(1) {
+    $7 = HEAP8[$0>>0]|0;
+    $8 = $7 << 24 >> 24;
+    $9 = $8 & 128;
+    $10 = ($9|0)==(0);
+    L10: do {
+     if ($10) {
+      $$04042$i = $0;$11 = $8;$69 = $7;
+      while(1) {
+       $12 = (_isspace($11)|0);
+       $13 = ($12|0)==(0);
+       if ($13) {
+        $$040$lcssa$i = $$04042$i;$68 = $69;
+        break L10;
+       }
+       $14 = ((($$04042$i)) + 1|0);
+       $15 = HEAP8[$14>>0]|0;
+       $16 = $15 << 24 >> 24;
+       $17 = $16 & 128;
+       $18 = ($17|0)==(0);
+       if ($18) {
+        $$04042$i = $14;$11 = $16;$69 = $15;
+       } else {
+        $$040$lcssa$i = $14;$68 = $15;
+        break;
+       }
+      }
+     } else {
+      $$040$lcssa$i = $0;$68 = $7;
+     }
+    } while(0);
+    $19 = (_strchr($$040$lcssa$i,10)|0);
+    $20 = ($19|0)==(0|0);
+    if ($20) {
+     $22 = $68;
+    } else {
+     HEAP8[$19>>0] = 0;
+     $$pre$i = HEAP8[$$040$lcssa$i>>0]|0;
+     $22 = $$pre$i;
+    }
+    $21 = ($22<<24>>24)==(0);
+    L19: do {
+     if (!($21)) {
+      $23 = (_strlen($$040$lcssa$i)|0);
+      $24 = (($23) + -1)|0;
+      $25 = ($24|0)>(0);
+      if ($25) {
+       $26 = (($$040$lcssa$i) + ($24)|0);
+       $$03945$i = $26;
+       while(1) {
+        $27 = HEAP8[$$03945$i>>0]|0;
+        $28 = $27 << 24 >> 24;
+        $29 = $28 & 128;
+        $30 = ($29|0)==(0);
+        if ($30) {
+         $31 = (_isspace($28)|0);
+         $32 = ($31|0)==(0);
+         if (!($32)) {
+          HEAP8[$$03945$i>>0] = 0;
+         }
+        }
+        $33 = ((($$03945$i)) + -1|0);
+        $34 = ($33>>>0)>($$040$lcssa$i>>>0);
+        if ($34) {
+         $$03945$i = $33;
+        } else {
+         break;
+        }
+       }
+       $$pre54$i = HEAP8[$$040$lcssa$i>>0]|0;
+       $35 = $$pre54$i;
+      } else {
+       $35 = $22;
+      }
+      switch ($35<<24>>24) {
+      case 35: case 0:  {
+       break L19;
+       break;
+      }
+      default: {
+      }
+      }
+      $38 = (_strcmp(44779,$$040$lcssa$i)|0);
+      $39 = ($38|0)==(0);
+      do {
+       if ($39) {
+        $$03847$lcssa$i = 0;
+       } else {
+        $44 = (_strcmp(44791,$$040$lcssa$i)|0);
+        $45 = ($44|0)==(0);
+        if ($45) {
+         $$03847$lcssa$i = 1;
+        } else {
+         $46 = (_strcmp(44803,$$040$lcssa$i)|0);
+         $47 = ($46|0)==(0);
+         if ($47) {
+          $$03847$lcssa$i = 2;
+         } else {
+          $48 = (_strcmp(44815,$$040$lcssa$i)|0);
+          $49 = ($48|0)==(0);
+          if ($49) {
+           $$03847$lcssa$i = 3;
+          } else {
+           $50 = (_strcmp(44828,$$040$lcssa$i)|0);
+           $51 = ($50|0)==(0);
+           if ($51) {
+            $$03847$lcssa$i = 4;
+           } else {
+            $52 = (_strcmp(44838,$$040$lcssa$i)|0);
+            $53 = ($52|0)==(0);
+            if ($53) {
+             $$03847$lcssa$i = 5;
+            } else {
+             $54 = (_strcmp(44849,$$040$lcssa$i)|0);
+             $55 = ($54|0)==(0);
+             if ($55) {
+              $$03847$lcssa$i = 6;
+             } else {
+              $56 = (_strcmp(44861,$$040$lcssa$i)|0);
+              $57 = ($56|0)==(0);
+              if ($57) {
+               $$03847$lcssa$i = 7;
+              } else {
+               $58 = (_strcmp(44874,$$040$lcssa$i)|0);
+               $59 = ($58|0)==(0);
+               if ($59) {
+                $$03847$lcssa$i = 8;
+                break;
+               }
+               $60 = (_strcmp(44886,$$040$lcssa$i)|0);
+               $61 = ($60|0)==(0);
+               if ($61) {
+                $$03847$lcssa$i = 9;
+                break;
+               }
+               $62 = (_strcmp(44899,$$040$lcssa$i)|0);
+               $63 = ($62|0)==(0);
+               if ($63) {
+                $$03847$lcssa$i = 10;
+                break;
+               }
+               $64 = (_strcmp(44909,$$040$lcssa$i)|0);
+               $65 = ($64|0)==(0);
+               if ($65) {
+                $$03847$lcssa$i = 11;
+                break;
+               }
+               $66 = (_strcmp(44920,$$040$lcssa$i)|0);
+               $67 = ($66|0)==(0);
+               if ($67) {
+                $$03847$lcssa$i = 12;
+               } else {
+                break L19;
+               }
+              }
+             }
+            }
+           }
+          }
+         }
+        }
+       }
+      } while(0);
+      $40 = (96 + ($$03847$lcssa$i<<3)|0);
+      $41 = HEAP32[$40>>2]|0;
+      $42 = HEAP32[18093]|0;
+      $43 = $42 | $41;
+      HEAP32[18093] = $43;
+     }
+    } while(0);
+    $36 = (_fgets($0,256,$3)|0);
+    $37 = ($36|0)==(0|0);
+    if ($37) {
+     break;
+    }
+   }
+  }
+  (_feof($3)|0);
+  (_fclose($3)|0);
+ }
+ STACKTOP = sp;return;
+}
+function __gcry_private_enable_m_guard() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ HEAP32[18094] = 1;
+ return;
+}
+function __gcry_private_malloc($0) {
+ $0 = $0|0;
+ var $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 
0, $9 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0);
+ if ($1) {
+  _gpg_err_set_errno(22);
+  $$1 = 0;
+  return ($$1|0);
+ }
+ $2 = HEAP32[18094]|0;
+ $3 = ($2|0)==(0);
+ if ($3) {
+  $18 = (_malloc($0)|0);
+  $$1 = $18;
+  return ($$1|0);
+ }
+ $4 = (($0) + 5)|0;
+ $5 = (_malloc($4)|0);
+ $6 = ($5|0)==(0|0);
+ if ($6) {
+  $$1 = 0;
+  return ($$1|0);
+ }
+ $7 = $0&255;
+ HEAP8[$5>>0] = $7;
+ $8 = $0 >>> 8;
+ $9 = $8&255;
+ $10 = ((($5)) + 1|0);
+ HEAP8[$10>>0] = $9;
+ $11 = $0 >>> 16;
+ $12 = $11&255;
+ $13 = ((($5)) + 2|0);
+ HEAP8[$13>>0] = $12;
+ $14 = ((($5)) + 3|0);
+ HEAP8[$14>>0] = 85;
+ $15 = (($0) + 4)|0;
+ $16 = (($5) + ($15)|0);
+ HEAP8[$16>>0] = -86;
+ $17 = ((($5)) + 4|0);
+ $$1 = $17;
+ return ($$1|0);
+}
+function __gcry_private_malloc_secure($0) {
+ $0 = $0|0;
+ var $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 
0, $9 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0);
+ if ($1) {
+  _gpg_err_set_errno(22);
+  $$1 = 0;
+  return ($$1|0);
+ }
+ $2 = HEAP32[18094]|0;
+ $3 = ($2|0)==(0);
+ if ($3) {
+  $18 = (__gcry_secmem_malloc($0)|0);
+  $$1 = $18;
+  return ($$1|0);
+ }
+ $4 = (($0) + 5)|0;
+ $5 = (__gcry_secmem_malloc($4)|0);
+ $6 = ($5|0)==(0|0);
+ if ($6) {
+  $$1 = 0;
+  return ($$1|0);
+ }
+ $7 = $0&255;
+ HEAP8[$5>>0] = $7;
+ $8 = $0 >>> 8;
+ $9 = $8&255;
+ $10 = ((($5)) + 1|0);
+ HEAP8[$10>>0] = $9;
+ $11 = $0 >>> 16;
+ $12 = $11&255;
+ $13 = ((($5)) + 2|0);
+ HEAP8[$13>>0] = $12;
+ $14 = ((($5)) + 3|0);
+ HEAP8[$14>>0] = -52;
+ $15 = (($0) + 4)|0;
+ $16 = (($5) + ($15)|0);
+ HEAP8[$16>>0] = -86;
+ $17 = ((($5)) + 4|0);
+ $$1 = $17;
+ return ($$1|0);
+}
+function __gcry_private_realloc($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $$1 = 0, $$sink = 0, $$sink49 = 0, $10 = 0, $11 = 0, $12 = 0, 
$13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, 
$21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0;
+ var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 
0, $59 = 0, $6 = 0, $60 = 0;
+ var $61 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, 
$vararg_ptr1 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $2 = HEAP32[18094]|0;
+ $3 = ($2|0)==(0);
+ if ($3) {
+  $58 = (__gcry_private_is_secure($0)|0);
+  $59 = ($58|0)==(0);
+  if ($59) {
+   $61 = (_realloc($0,$1)|0);
+   $$1 = $61;
+   STACKTOP = sp;return ($$1|0);
+  } else {
+   $60 = (__gcry_secmem_realloc($0,$1)|0);
+   $$1 = $60;
+   STACKTOP = sp;return ($$1|0);
+  }
+ }
+ $4 = ($0|0)==(0|0);
+ if ($4) {
+  $5 = ($1|0)==(0);
+  if ($5) {
+   _gpg_err_set_errno(22);
+   $$1 = 0;
+   STACKTOP = sp;return ($$1|0);
+  }
+  $6 = (($1) + 5)|0;
+  $7 = (_malloc($6)|0);
+  $8 = ($7|0)==(0|0);
+  if ($8) {
+   $$1 = 0;
+   STACKTOP = sp;return ($$1|0);
+  }
+  $9 = $1&255;
+  HEAP8[$7>>0] = $9;
+  $10 = $1 >>> 8;
+  $11 = $10&255;
+  $12 = ((($7)) + 1|0);
+  HEAP8[$12>>0] = $11;
+  $13 = $1 >>> 16;
+  $14 = $13&255;
+  $15 = ((($7)) + 2|0);
+  HEAP8[$15>>0] = $14;
+  $16 = ((($7)) + 3|0);
+  HEAP8[$16>>0] = 85;
+  $17 = (($1) + 4)|0;
+  $18 = (($7) + ($17)|0);
+  HEAP8[$18>>0] = -86;
+  $19 = ((($7)) + 4|0);
+  $$1 = $19;
+  STACKTOP = sp;return ($$1|0);
+ }
+ $20 = ((($0)) + -1|0);
+ $21 = HEAP8[$20>>0]|0;
+ $22 = $21&255;
+ switch ($21<<24>>24) {
+ case -52: case 85:  {
+  break;
+ }
+ default: {
+  HEAP32[$vararg_buffer>>2] = $0;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = $22;
+  __gcry_log_fatal(44950,$vararg_buffer);
+  // unreachable;
+ }
+ }
+ $23 = ((($0)) + -4|0);
+ $24 = HEAP8[$23>>0]|0;
+ $25 = $24&255;
+ $26 = ((($0)) + -3|0);
+ $27 = HEAP8[$26>>0]|0;
+ $28 = $27&255;
+ $29 = $28 << 8;
+ $30 = $29 | $25;
+ $31 = ((($0)) + -2|0);
+ $32 = HEAP8[$31>>0]|0;
+ $33 = $32&255;
+ $34 = $33 << 16;
+ $35 = $30 | $34;
+ $36 = (($0) + ($35)|0);
+ $37 = HEAP8[$36>>0]|0;
+ $38 = ($37<<24>>24)==(-86);
+ if (!($38)) {
+  HEAP32[$vararg_buffer2>>2] = $0;
+  $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+  HEAP32[$vararg_ptr5>>2] = $22;
+  __gcry_log_fatal(44991,$vararg_buffer2);
+  // unreachable;
+ }
+ $39 = ($35>>>0)<($1>>>0);
+ if (!($39)) {
+  $$1 = $0;
+  STACKTOP = sp;return ($$1|0);
+ }
+ $40 = ($21<<24>>24)==(-52);
+ $41 = (($1) + 5)|0;
+ if ($40) {
+  $42 = (__gcry_secmem_malloc($41)|0);
+  $43 = ($42|0)==(0|0);
+  if ($43) {
+   $$1 = 0;
+   STACKTOP = sp;return ($$1|0);
+  } else {
+   $$sink = -52;$$sink49 = $42;
+  }
+ } else {
+  $44 = (_malloc($41)|0);
+  $45 = ($44|0)==(0|0);
+  if ($45) {
+   $$1 = 0;
+   STACKTOP = sp;return ($$1|0);
+  } else {
+   $$sink = 85;$$sink49 = $44;
+  }
+ }
+ $46 = $1&255;
+ HEAP8[$$sink49>>0] = $46;
+ $47 = $1 >>> 8;
+ $48 = $47&255;
+ $49 = ((($$sink49)) + 1|0);
+ HEAP8[$49>>0] = $48;
+ $50 = $1 >>> 16;
+ $51 = $50&255;
+ $52 = ((($$sink49)) + 2|0);
+ HEAP8[$52>>0] = $51;
+ $53 = ((($$sink49)) + 3|0);
+ HEAP8[$53>>0] = $$sink;
+ $54 = (($1) + 4)|0;
+ $55 = (($$sink49) + ($54)|0);
+ HEAP8[$55>>0] = -86;
+ $$0 = ((($$sink49)) + 4|0);
+ $56 = (($$0) + ($35)|0);
+ $57 = (($1) - ($35))|0;
+ _memcpy(($$0|0),($0|0),($35|0))|0;
+ _memset(($56|0),0,($57|0))|0;
+ __gcry_private_free($0);
+ $$1 = $$0;
+ STACKTOP = sp;return ($$1|0);
+}
+function __gcry_private_free($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, 
$25 = 0, $26 = 0, $3 = 0;
+ var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, 
$vararg_buffer2 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  STACKTOP = sp;return;
+ }
+ $2 = HEAP32[18094]|0;
+ $3 = ($2|0)==(0);
+ if ($3) {
+  $25 = (__gcry_private_is_secure($0)|0);
+  $26 = ($25|0)==(0);
+  if ($26) {
+   _free($0);
+   STACKTOP = sp;return;
+  } else {
+   __gcry_secmem_free($0);
+   STACKTOP = sp;return;
+  }
+ }
+ $4 = ((($0)) + -1|0);
+ $5 = HEAP8[$4>>0]|0;
+ $6 = $5&255;
+ switch ($5<<24>>24) {
+ case -52: case 85:  {
+  break;
+ }
+ default: {
+  HEAP32[$vararg_buffer>>2] = $0;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = $6;
+  __gcry_log_fatal(44950,$vararg_buffer);
+  // unreachable;
+ }
+ }
+ $7 = ((($0)) + -4|0);
+ $8 = HEAP8[$7>>0]|0;
+ $9 = $8&255;
+ $10 = ((($0)) + -3|0);
+ $11 = HEAP8[$10>>0]|0;
+ $12 = $11&255;
+ $13 = $12 << 8;
+ $14 = $13 | $9;
+ $15 = ((($0)) + -2|0);
+ $16 = HEAP8[$15>>0]|0;
+ $17 = $16&255;
+ $18 = $17 << 16;
+ $19 = $14 | $18;
+ $20 = (($0) + ($19)|0);
+ $21 = HEAP8[$20>>0]|0;
+ $22 = ($21<<24>>24)==(-86);
+ if (!($22)) {
+  HEAP32[$vararg_buffer2>>2] = $0;
+  $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+  HEAP32[$vararg_ptr5>>2] = $6;
+  __gcry_log_fatal(44991,$vararg_buffer2);
+  // unreachable;
+ }
+ $23 = (__gcry_private_is_secure($0)|0);
+ $24 = ($23|0)==(0);
+ if ($24) {
+  _free($7);
+  STACKTOP = sp;return;
+ } else {
+  __gcry_secmem_free($7);
+  STACKTOP = sp;return;
+ }
+}
+function __gcry_secmem_set_flags($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ (_gpgrt_lock_lock(37900)|0);
+ $1 = $0 & 1;
+ HEAP32[18095] = $1;
+ $2 = $0 & 2;
+ HEAP32[18096] = $2;
+ $3 = $0 & 8;
+ HEAP32[18097] = $3;
+ $4 = $0 & 16;
+ HEAP32[18098] = $4;
+ (_gpgrt_lock_unlock(37900)|0);
+ return;
+}
+function __gcry_secmem_get_flags() {
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 
0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ (_gpgrt_lock_lock(37900)|0);
+ $0 = HEAP32[18095]|0;
+ $1 = ($0|0)!=(0);
+ $2 = $1&1;
+ $3 = HEAP32[18096]|0;
+ $4 = ($3|0)==(0);
+ $5 = $4 ? 0 : 2;
+ $6 = $5 | $2;
+ $7 = HEAP32[18097]|0;
+ $8 = ($7|0)==(0);
+ $9 = $8 ? 0 : 8;
+ $10 = $6 | $9;
+ $11 = HEAP32[18098]|0;
+ $12 = ($11|0)==(0);
+ $13 = $12 ? 0 : 16;
+ $14 = $10 | $13;
+ (_gpgrt_lock_unlock(37900)|0);
+ return ($14|0);
+}
+function __gcry_secmem_init($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ (_gpgrt_lock_lock(37900)|0);
+ _secmem_init($0);
+ (_gpgrt_lock_unlock(37900)|0);
+ return;
+}
+function _secmem_init($0) {
+ $0 = $0|0;
+ var $$pre$i = 0, $$pre13$i = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, 
$14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, 
$22 = 0, $23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$5 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, $spec$select = 0, $vararg_buffer = 0, $vararg_buffer1 = 
0, $vararg_buffer11 = 0, $vararg_buffer3 = 0, $vararg_buffer6 = 0, 
$vararg_buffer9 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(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;
+ $1 = ($0|0)==(0);
+ if ($1) {
+  HEAP32[18099] = 1;
+  $2 = (_getuid()|0);
+  $3 = (_geteuid()|0);
+  $4 = ($2|0)==($3|0);
+  if ($4) {
+   STACKTOP = sp;return;
+  }
+  $5 = (_setuid($2)|0);
+  $6 = ($5|0)==(0);
+  if (!($6)) {
+   __gcry_log_fatal(45031,$vararg_buffer);
+   // unreachable;
+  }
+  $7 = (_getuid()|0);
+  $8 = (_geteuid()|0);
+  $9 = ($7|0)==($8|0);
+  if (!($9)) {
+   __gcry_log_fatal(45031,$vararg_buffer);
+   // unreachable;
+  }
+  $10 = (_setuid(0)|0);
+  $11 = ($10|0)==(0);
+  if ($11) {
+   __gcry_log_fatal(45031,$vararg_buffer);
+   // unreachable;
+  } else {
+   STACKTOP = sp;return;
+  }
+ }
+ $12 = HEAP32[18100]|0;
+ $13 = ($12|0)==(0);
+ if (!($13)) {
+  __gcry_log_error(45230,$vararg_buffer11);
+  STACKTOP = sp;return;
+ }
+ $14 = ($0>>>0)>(16384);
+ $spec$select = $14 ? $0 : 16384;
+ HEAP32[18101] = $spec$select;
+ $15 = HEAP32[18099]|0;
+ $16 = ($15|0)==(0);
+ if (!($16)) {
+  __gcry_log_bug(45054,$vararg_buffer1);
+  // unreachable;
+ }
+ $17 = (_sysconf(30)|0);
+ $18 = ($17|0)>(0);
+ $19 = $18 ? $17 : 4096;
+ $20 = HEAP32[18101]|0;
+ $21 = (($20) + -1)|0;
+ $22 = (($21) + ($19))|0;
+ $23 = (0 - ($19))|0;
+ $24 = $22 & $23;
+ HEAP32[18101] = $24;
+ $25 = (___mmap(0,$24,3,34,-1,0)|0);
+ HEAP32[18102] = $25;
+ $26 = ($25|0)==((-1)|0);
+ if ($26) {
+  $27 = HEAP32[18101]|0;
+  $28 = (___errno_location()|0);
+  $29 = HEAP32[$28>>2]|0;
+  $30 = (_strerror($29)|0);
+  HEAP32[$vararg_buffer3>>2] = $27;
+  $vararg_ptr5 = ((($vararg_buffer3)) + 4|0);
+  HEAP32[$vararg_ptr5>>2] = $30;
+  __gcry_log_info(45080,$vararg_buffer3);
+ } else {
+  HEAP32[18103] = 1;
+  HEAP32[18100] = 1;
+ }
+ $31 = HEAP32[18100]|0;
+ $32 = ($31|0)==(0);
+ do {
+  if ($32) {
+   $33 = HEAP32[18101]|0;
+   $34 = (_malloc($33)|0);
+   HEAP32[18102] = $34;
+   $35 = ($34|0)==(0|0);
+   if ($35) {
+    HEAP32[$vararg_buffer6>>2] = $33;
+    __gcry_log_fatal(45128,$vararg_buffer6);
+    // unreachable;
+   } else {
+    HEAP32[18100] = 1;
+    $36 = $33;$37 = $34;
+    break;
+   }
+  } else {
+   $$pre$i = HEAP32[18102]|0;
+   $$pre13$i = HEAP32[18101]|0;
+   $36 = $$pre13$i;$37 = $$pre$i;
+  }
+ } while(0);
+ HEAP32[$37>>2] = $36;
+ $38 = ((($37)) + 4|0);
+ HEAP32[$38>>2] = 0;
+ $39 = HEAP32[18097]|0;
+ $40 = ($39|0)==(0);
+ if (!($40)) {
+  STACKTOP = sp;return;
+ }
+ __gcry_log_info(45168,$vararg_buffer9);
+ STACKTOP = sp;return;
+}
+function __gcry_secmem_module_init() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return 0;
+}
+function __gcry_secmem_malloc($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ (_gpgrt_lock_lock(37900)|0);
+ $1 = (__gcry_secmem_malloc_internal($0)|0);
+ (_gpgrt_lock_unlock(37900)|0);
+ return ($1|0);
+}
+function __gcry_secmem_malloc_internal($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$1$i$i$i = 0, $$cast = 0, $$in = 0, 
$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
+ var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, 
$3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, 
$38 = 0, $39 = 0, $4 = 0;
+ var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, 
$48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, 
$56 = 0, $57 = 0, $58 = 0;
+ var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, 
$66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, 
$74 = 0, $75 = 0, $76 = 0;
+ var $8 = 0, $9 = 0, $or$cond = 0, $or$cond$i = 0, $or$cond$i$i = 0, 
$or$cond29 = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $1 = HEAP32[18100]|0;
+ $2 = ($1|0)==(0);
+ if ($2) {
+  _secmem_init(32768);
+  $3 = HEAP32[18100]|0;
+  $4 = ($3|0)==(0);
+  if ($4) {
+   $5 = (__gcry_gettext(45276)|0);
+   __gcry_log_info($5,$vararg_buffer);
+   _gpg_err_set_errno(12);
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+ }
+ $6 = (($0) + 31)|0;
+ $7 = $6 & -32;
+ $8 = HEAP32[18102]|0;
+ $$cast = $8;
+ $9 = HEAP32[18101]|0;
+ $10 = (($9) + ($$cast))|0;
+ $$in = $8;
+ while(1) {
+  $11 = $$in;
+  $12 = ($10>>>0)>($11>>>0);
+  if (!($12)) {
+   label = 18;
+   break;
+  }
+  $13 = ((($$in)) + 4|0);
+  $14 = HEAP32[$13>>2]|0;
+  $15 = $14 & 1;
+  $16 = ($15|0)!=(0);
+  $17 = HEAP32[$$in>>2]|0;
+  $18 = ($17>>>0)<($7>>>0);
+  $or$cond$i = $16 | $18;
+  if (!($or$cond$i)) {
+   label = 7;
+   break;
+  }
+  $62 = ((($$in)) + 8|0);
+  $63 = (($62) + ($17)|0);
+  $64 = ($8>>>0)<=($63>>>0);
+  $65 = $63;
+  $66 = ($10>>>0)>($65>>>0);
+  $or$cond29 = $64 & $66;
+  $67 = $or$cond29 ? $63 : 0;
+  $68 = ($8>>>0)>($67>>>0);
+  if ($68) {
+   label = 18;
+   break;
+  } else {
+   $$in = $67;
+  }
+ }
+ do {
+  if ((label|0) == 7) {
+   $19 = ((($$in)) + 4|0);
+   $20 = $14 | 1;
+   HEAP32[$19>>2] = $20;
+   $21 = (($17) - ($7))|0;
+   $22 = ($21>>>0)>(8);
+   if ($22) {
+    $23 = ((($$in)) + 8|0);
+    $24 = (($23) + ($7)|0);
+    $25 = (($21) + -8)|0;
+    HEAP32[$24>>2] = $25;
+    $26 = ((($24)) + 4|0);
+    HEAP32[$26>>2] = 0;
+    HEAP32[$$in>>2] = $7;
+    $27 = ($8|0)==($24|0);
+    if ($27) {
+     $$1$i$i$i = 0;
+    } else {
+     $28 = HEAP32[18101]|0;
+     $29 = (($28) + ($$cast))|0;
+     $$0$i$i$i = $8;
+     while(1) {
+      $30 = ((($$0$i$i$i)) + 8|0);
+      $31 = HEAP32[$$0$i$i$i>>2]|0;
+      $32 = (($30) + ($31)|0);
+      $33 = ($8>>>0)<=($32>>>0);
+      $34 = $32;
+      $35 = ($29>>>0)>($34>>>0);
+      $or$cond$i$i = $33 & $35;
+      $36 = $or$cond$i$i ? $32 : 0;
+      $37 = ($36|0)==($24|0);
+      if ($37) {
+       $$1$i$i$i = $$0$i$i$i;
+       break;
+      } else {
+       $$0$i$i$i = $36;
+      }
+     }
+    }
+    $38 = ((($24)) + 8|0);
+    $39 = HEAP32[$24>>2]|0;
+    $40 = (($38) + ($39)|0);
+    $41 = ($8>>>0)<=($40>>>0);
+    $42 = $40;
+    $43 = ($10>>>0)>($42>>>0);
+    $or$cond = $41 & $43;
+    $44 = $or$cond ? $40 : 0;
+    $45 = ($$1$i$i$i|0)==(0|0);
+    if ($45) {
+     $$0$i$i = $24;$59 = $39;
+    } else {
+     $46 = ((($$1$i$i$i)) + 4|0);
+     $47 = HEAP32[$46>>2]|0;
+     $48 = $47 & 1;
+     $49 = ($48|0)==(0);
+     if ($49) {
+      $50 = (($39) + 8)|0;
+      $51 = HEAP32[$$1$i$i$i>>2]|0;
+      $52 = (($50) + ($51))|0;
+      HEAP32[$$1$i$i$i>>2] = $52;
+      $$0$i$i = $$1$i$i$i;$59 = $52;
+     } else {
+      $$0$i$i = $24;$59 = $39;
+     }
+    }
+    $53 = ($44|0)==(0|0);
+    if (!($53)) {
+     $54 = ((($44)) + 4|0);
+     $55 = HEAP32[$54>>2]|0;
+     $56 = $55 & 1;
+     $57 = ($56|0)==(0);
+     if ($57) {
+      $58 = (($59) + 8)|0;
+      $60 = HEAP32[$44>>2]|0;
+      $61 = (($58) + ($60))|0;
+      HEAP32[$$0$i$i>>2] = $61;
+     }
+    }
+   }
+   $69 = ($7|0)==(0);
+   if ($69) {
+    $75 = ((($$in)) + 8|0);
+    $76 = $75;
+    break;
+   } else {
+    $70 = HEAP32[18104]|0;
+    $71 = (($70) + ($7))|0;
+    HEAP32[18104] = $71;
+    $72 = HEAP32[18105]|0;
+    $73 = (($72) + 1)|0;
+    HEAP32[18105] = $73;
+    $74 = ((($$in)) + 8|0);
+    $76 = $74;
+    break;
+   }
+  }
+  else if ((label|0) == 18) {
+   _gpg_err_set_errno(12);
+   $76 = 0;
+  }
+ } while(0);
+ $$0 = $76;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_secmem_free($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ (_gpgrt_lock_lock(37900)|0);
+ __gcry_secmem_free_internal($0);
+ (_gpgrt_lock_unlock(37900)|0);
+ return;
+}
+function __gcry_secmem_free_internal($0) {
+ $0 = $0|0;
+ var $$0$i = 0, $$0$i$i = 0, $$0135$lcssa = 0, $$0135215 = 0, $$0139$lcssa = 
0, $$0139180 = 0, $$0143$lcssa = 0, $$0143179 = 0, $$0147$lcssa = 0, $$0147214 
= 0, $$0151$lcssa = 0, $$0151191 = 0, $$0155$lcssa = 0, $$0155190 = 0, 
$$0159$lcssa = 0, $$0159203 = 0, $$0163$lcssa = 0, $$0163202 = 0, $$1$i$i = 0, 
$$1136 = 0;
+ var $$1140 = 0, $$1144 = 0, $$1148 = 0, $$1152 = 0, $$1156 = 0, $$1160 = 0, 
$$1164 = 0, $$2137 = 0, $$2141 = 0, $$2145 = 0, $$2149 = 0, $$2153 = 0, $$2157 
= 0, $$2161 = 0, $$2165 = 0, $$3138210 = 0, $$3142178 = 0, $$3146177 = 0, 
$$3150209 = 0, $$3154186 = 0;
+ var $$3158185 = 0, $$3162198 = 0, $$3166197 = 0, $1 = 0, $10 = 0, $100 = 0, 
$101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, 
$109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0;
+ var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 
= 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 
= 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0;
+ var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, 
$139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, 
$146 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
+ var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, 
$26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, 
$34 = 0, $35 = 0, $36 = 0;
+ var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, 
$52 = 0, $53 = 0, $54 = 0;
+ var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, 
$62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, 
$70 = 0, $71 = 0, $72 = 0;
+ var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, 
$80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 
0, $89 = 0, $9 = 0, $90 = 0;
+ var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, 
$99 = 0, $or$cond$i = 0, $scevgep = 0, $scevgep236 = 0, $scevgep237 = 0, 
$scevgep238 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  return;
+ }
+ $2 = ((($0)) + -8|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = $0;
+ $5 = $4 & 7;
+ $6 = ($5|0)!=(0);
+ $7 = ($3|0)!=(0);
+ $8 = $7 & $6;
+ if ($8) {
+  $$0135215 = $0;$$0147214 = $3;
+  while(1) {
+   HEAP8[$$0135215>>0] = -1;
+   $9 = ((($$0135215)) + 1|0);
+   $10 = (($$0147214) + -1)|0;
+   $11 = $9;
+   $12 = $11 & 7;
+   $13 = ($12|0)!=(0);
+   $14 = ($10|0)!=(0);
+   $15 = $14 & $13;
+   if ($15) {
+    $$0135215 = $9;$$0147214 = $10;
+   } else {
+    $$0135$lcssa = $9;$$0147$lcssa = $10;
+    break;
+   }
+  }
+ } else {
+  $$0135$lcssa = $0;$$0147$lcssa = $3;
+ }
+ $16 = ($$0147$lcssa>>>0)<(8);
+ if ($16) {
+  $$2137 = $$0135$lcssa;$$2149 = $$0147$lcssa;
+ } else {
+  $17 = (($$0147$lcssa) + -8)|0;
+  $18 = $17 & -8;
+  $19 = (($18) + 8)|0;
+  $$1136 = $$0135$lcssa;$$1148 = $$0147$lcssa;
+  while(1) {
+   $20 = $$1136;
+   $21 = $20;
+   HEAP32[$21>>2] = -1;
+   $22 = (($20) + 4)|0;
+   $23 = $22;
+   HEAP32[$23>>2] = -1;
+   $24 = (($$1148) + -8)|0;
+   $25 = ((($$1136)) + 8|0);
+   $26 = ($24>>>0)>(7);
+   if ($26) {
+    $$1136 = $25;$$1148 = $24;
+   } else {
+    break;
+   }
+  }
+  $27 = (($17) - ($18))|0;
+  $scevgep238 = (($$0135$lcssa) + ($19)|0);
+  $$2137 = $scevgep238;$$2149 = $27;
+ }
+ $28 = ($$2149|0)==(0);
+ if (!($28)) {
+  $$3138210 = $$2137;$$3150209 = $$2149;
+  while(1) {
+   HEAP8[$$3138210>>0] = -1;
+   $29 = ((($$3138210)) + 1|0);
+   $30 = (($$3150209) + -1)|0;
+   $31 = ($30|0)==(0);
+   if ($31) {
+    break;
+   } else {
+    $$3138210 = $29;$$3150209 = $30;
+   }
+  }
+ }
+ if ($8) {
+  $$0159203 = $0;$$0163202 = $3;
+  while(1) {
+   HEAP8[$$0159203>>0] = -86;
+   $32 = ((($$0159203)) + 1|0);
+   $33 = (($$0163202) + -1)|0;
+   $34 = $32;
+   $35 = $34 & 7;
+   $36 = ($35|0)!=(0);
+   $37 = ($33|0)!=(0);
+   $38 = $37 & $36;
+   if ($38) {
+    $$0159203 = $32;$$0163202 = $33;
+   } else {
+    $$0159$lcssa = $32;$$0163$lcssa = $33;
+    break;
+   }
+  }
+ } else {
+  $$0159$lcssa = $0;$$0163$lcssa = $3;
+ }
+ $39 = ($$0163$lcssa>>>0)<(8);
+ if ($39) {
+  $$2161 = $$0159$lcssa;$$2165 = $$0163$lcssa;
+ } else {
+  $40 = (($$0163$lcssa) + -8)|0;
+  $41 = $40 & -8;
+  $42 = (($41) + 8)|0;
+  $$1160 = $$0159$lcssa;$$1164 = $$0163$lcssa;
+  while(1) {
+   $43 = $$1160;
+   $44 = $43;
+   HEAP32[$44>>2] = -1431655766;
+   $45 = (($43) + 4)|0;
+   $46 = $45;
+   HEAP32[$46>>2] = -1431655766;
+   $47 = (($$1164) + -8)|0;
+   $48 = ((($$1160)) + 8|0);
+   $49 = ($47>>>0)>(7);
+   if ($49) {
+    $$1160 = $48;$$1164 = $47;
+   } else {
+    break;
+   }
+  }
+  $50 = (($40) - ($41))|0;
+  $scevgep237 = (($$0159$lcssa) + ($42)|0);
+  $$2161 = $scevgep237;$$2165 = $50;
+ }
+ $51 = ($$2165|0)==(0);
+ if (!($51)) {
+  $$3162198 = $$2161;$$3166197 = $$2165;
+  while(1) {
+   HEAP8[$$3162198>>0] = -86;
+   $52 = ((($$3162198)) + 1|0);
+   $53 = (($$3166197) + -1)|0;
+   $54 = ($53|0)==(0);
+   if ($54) {
+    break;
+   } else {
+    $$3162198 = $52;$$3166197 = $53;
+   }
+  }
+ }
+ if ($8) {
+  $$0151191 = $3;$$0155190 = $0;
+  while(1) {
+   HEAP8[$$0155190>>0] = 85;
+   $55 = ((($$0155190)) + 1|0);
+   $56 = (($$0151191) + -1)|0;
+   $57 = $55;
+   $58 = $57 & 7;
+   $59 = ($58|0)!=(0);
+   $60 = ($56|0)!=(0);
+   $61 = $60 & $59;
+   if ($61) {
+    $$0151191 = $56;$$0155190 = $55;
+   } else {
+    $$0151$lcssa = $56;$$0155$lcssa = $55;
+    break;
+   }
+  }
+ } else {
+  $$0151$lcssa = $3;$$0155$lcssa = $0;
+ }
+ $62 = ($$0151$lcssa>>>0)<(8);
+ if ($62) {
+  $$2153 = $$0151$lcssa;$$2157 = $$0155$lcssa;
+ } else {
+  $63 = (($$0151$lcssa) + -8)|0;
+  $64 = $63 & -8;
+  $65 = (($64) + 8)|0;
+  $$1152 = $$0151$lcssa;$$1156 = $$0155$lcssa;
+  while(1) {
+   $66 = $$1156;
+   $67 = $66;
+   HEAP32[$67>>2] = 1431655765;
+   $68 = (($66) + 4)|0;
+   $69 = $68;
+   HEAP32[$69>>2] = 1431655765;
+   $70 = (($$1152) + -8)|0;
+   $71 = ((($$1156)) + 8|0);
+   $72 = ($70>>>0)>(7);
+   if ($72) {
+    $$1152 = $70;$$1156 = $71;
+   } else {
+    break;
+   }
+  }
+  $73 = (($63) - ($64))|0;
+  $scevgep236 = (($$0155$lcssa) + ($65)|0);
+  $$2153 = $73;$$2157 = $scevgep236;
+ }
+ $74 = ($$2153|0)==(0);
+ if (!($74)) {
+  $$3154186 = $$2153;$$3158185 = $$2157;
+  while(1) {
+   HEAP8[$$3158185>>0] = 85;
+   $75 = ((($$3158185)) + 1|0);
+   $76 = (($$3154186) + -1)|0;
+   $77 = ($76|0)==(0);
+   if ($77) {
+    break;
+   } else {
+    $$3154186 = $76;$$3158185 = $75;
+   }
+  }
+ }
+ if ($8) {
+  $$0139180 = $3;$$0143179 = $0;
+  while(1) {
+   HEAP8[$$0143179>>0] = 0;
+   $78 = ((($$0143179)) + 1|0);
+   $79 = (($$0139180) + -1)|0;
+   $80 = $78;
+   $81 = $80 & 7;
+   $82 = ($81|0)!=(0);
+   $83 = ($79|0)!=(0);
+   $84 = $83 & $82;
+   if ($84) {
+    $$0139180 = $79;$$0143179 = $78;
+   } else {
+    $$0139$lcssa = $79;$$0143$lcssa = $78;
+    break;
+   }
+  }
+ } else {
+  $$0139$lcssa = $3;$$0143$lcssa = $0;
+ }
+ $85 = ($$0139$lcssa>>>0)<(8);
+ if ($85) {
+  $$2141 = $$0139$lcssa;$$2145 = $$0143$lcssa;
+ } else {
+  $86 = (($$0139$lcssa) + -8)|0;
+  $87 = $86 & -8;
+  $88 = (($87) + 8)|0;
+  $$1140 = $$0139$lcssa;$$1144 = $$0143$lcssa;
+  while(1) {
+   $89 = $$1144;
+   $90 = $89;
+   HEAP32[$90>>2] = 0;
+   $91 = (($89) + 4)|0;
+   $92 = $91;
+   HEAP32[$92>>2] = 0;
+   $93 = (($$1140) + -8)|0;
+   $94 = ((($$1144)) + 8|0);
+   $95 = ($93>>>0)>(7);
+   if ($95) {
+    $$1140 = $93;$$1144 = $94;
+   } else {
+    break;
+   }
+  }
+  $96 = (($86) - ($87))|0;
+  $scevgep = (($$0143$lcssa) + ($88)|0);
+  $$2141 = $96;$$2145 = $scevgep;
+ }
+ $97 = ($$2141|0)==(0);
+ if (!($97)) {
+  $$3142178 = $$2141;$$3146177 = $$2145;
+  while(1) {
+   HEAP8[$$3146177>>0] = 0;
+   $98 = ((($$3146177)) + 1|0);
+   $99 = (($$3142178) + -1)|0;
+   $100 = ($99|0)==(0);
+   if ($100) {
+    break;
+   } else {
+    $$3142178 = $99;$$3146177 = $98;
+   }
+  }
+ }
+ $101 = ($3|0)==(0);
+ if (!($101)) {
+  $102 = HEAP32[18104]|0;
+  $103 = (($102) - ($3))|0;
+  HEAP32[18104] = $103;
+  $104 = HEAP32[18105]|0;
+  $105 = (($104) + -1)|0;
+  HEAP32[18105] = $105;
+ }
+ $106 = ((($0)) + -4|0);
+ $107 = HEAP32[$106>>2]|0;
+ $108 = $107 & -2;
+ HEAP32[$106>>2] = $108;
+ $109 = HEAP32[18102]|0;
+ $110 = ($109|0)==($2|0);
+ $111 = $109;
+ if ($110) {
+  $$1$i$i = 0;
+ } else {
+  $112 = HEAP32[18101]|0;
+  $113 = (($112) + ($111))|0;
+  $$0$i$i = $109;
+  while(1) {
+   $114 = ((($$0$i$i)) + 8|0);
+   $115 = HEAP32[$$0$i$i>>2]|0;
+   $116 = (($114) + ($115)|0);
+   $117 = ($109>>>0)<=($116>>>0);
+   $118 = $116;
+   $119 = ($113>>>0)>($118>>>0);
+   $or$cond$i = $117 & $119;
+   $120 = $or$cond$i ? $116 : 0;
+   $121 = ($120|0)==($2|0);
+   if ($121) {
+    $$1$i$i = $$0$i$i;
+    break;
+   } else {
+    $$0$i$i = $120;
+   }
+  }
+ }
+ $122 = HEAP32[$2>>2]|0;
+ $123 = (($0) + ($122)|0);
+ $124 = ($109>>>0)>($123>>>0);
+ if ($124) {
+  label = 49;
+ } else {
+  $125 = $123;
+  $126 = HEAP32[18101]|0;
+  $127 = (($126) + ($111))|0;
+  $128 = ($127>>>0)>($125>>>0);
+  if ($128) {
+   $138 = $123;
+  } else {
+   label = 49;
+  }
+ }
+ if ((label|0) == 49) {
+  $138 = 0;
+ }
+ $129 = ($$1$i$i|0)==(0|0);
+ if ($129) {
+  $$0$i = $2;$145 = $122;
+ } else {
+  $130 = ((($$1$i$i)) + 4|0);
+  $131 = HEAP32[$130>>2]|0;
+  $132 = $131 & 1;
+  $133 = ($132|0)==(0);
+  if ($133) {
+   $134 = (($122) + 8)|0;
+   $135 = HEAP32[$$1$i$i>>2]|0;
+   $136 = (($134) + ($135))|0;
+   HEAP32[$$1$i$i>>2] = $136;
+   $$0$i = $$1$i$i;$145 = $136;
+  } else {
+   $$0$i = $2;$145 = $122;
+  }
+ }
+ $137 = ($138|0)==(0|0);
+ if ($137) {
+  return;
+ }
+ $139 = ((($138)) + 4|0);
+ $140 = HEAP32[$139>>2]|0;
+ $141 = $140 & 1;
+ $142 = ($141|0)==(0);
+ if (!($142)) {
+  return;
+ }
+ $143 = HEAP32[$138>>2]|0;
+ $144 = (($145) + 8)|0;
+ $146 = (($144) + ($143))|0;
+ HEAP32[$$0$i>>2] = $146;
+ return;
+}
+function __gcry_secmem_realloc($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ (_gpgrt_lock_lock(37900)|0);
+ $2 = ((($0)) + -8|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = ($3>>>0)>($1>>>0);
+ if ($4) {
+  $$0 = $0;
+ } else {
+  $5 = (__gcry_secmem_malloc_internal($1)|0);
+  $6 = ($5|0)==(0|0);
+  if ($6) {
+   $$0 = 0;
+  } else {
+   $7 = (($1) - ($3))|0;
+   $8 = (($5) + ($3)|0);
+   _memcpy(($5|0),($0|0),($3|0))|0;
+   _memset(($8|0),0,($7|0))|0;
+   __gcry_secmem_free_internal($0);
+   $$0 = $5;
+  }
+ }
+ (_gpgrt_lock_unlock(37900)|0);
+ return ($$0|0);
+}
+function __gcry_private_is_secure($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$phitmp2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[18100]|0;
+ $2 = ($1|0)==(0);
+ if ($2) {
+  $9 = 0;
+  return ($9|0);
+ }
+ $3 = $0;
+ $4 = HEAP32[18102]|0;
+ $5 = ($4>>>0)>($3>>>0);
+ if ($5) {
+  $9 = 0;
+  return ($9|0);
+ }
+ $6 = HEAP32[18101]|0;
+ $7 = (($6) + ($4))|0;
+ $8 = ($7>>>0)>($3>>>0);
+ $phitmp2 = $8&1;
+ $9 = $phitmp2;
+ return ($9|0);
+}
+function __gcry_secmem_term() {
+ var $$0$lcssa = 0, $$0117$lcssa = 0, $$0117196 = 0, $$0121$lcssa = 0, 
$$0121162 = 0, $$0125$lcssa = 0, $$0125161 = 0, $$0133$lcssa = 0, $$0133173 = 
0, $$0137$lcssa = 0, $$0137172 = 0, $$0141$lcssa = 0, $$0141185 = 0, 
$$0145$lcssa = 0, $$0145184 = 0, $$0197 = 0, $$1 = 0, $$1118 = 0, $$1122 = 0, 
$$1126 = 0;
+ var $$1134 = 0, $$1138 = 0, $$1142 = 0, $$1146 = 0, $$2 = 0, $$2119 = 0, 
$$2123 = 0, $$2127 = 0, $$2135 = 0, $$2139 = 0, $$2143 = 0, $$2147 = 0, 
$$3120191 = 0, $$3124160 = 0, $$3128159 = 0, $$3136168 = 0, $$3140167 = 0, 
$$3144180 = 0, $$3148179 = 0, $$3192 = 0;
+ var $$pre = 0, $$pre$phi226Z2D = 0, $$pre$phi230Z2D = 0, $$pre221 = 0, 
$$pre222 = 0, $$pre223 = 0, $$pre224 = 0, $$pre225 = 0, $$pre227 = 0, $$pre229 
= 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, 
$105 = 0, $106 = 0;
+ var $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 
= 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 
= 0, $121 = 0, $13 = 0, $14 = 0, $15 = 0;
+ var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, 
$23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, 
$31 = 0, $32 = 0, $33 = 0;
+ var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 
0, $5 = 0, $50 = 0, $51 = 0;
+ var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, 
$6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, 
$68 = 0, $69 = 0, $7 = 0;
+ var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, 
$78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, 
$86 = 0, $87 = 0, $88 = 0;
+ var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, 
$96 = 0, $97 = 0, $98 = 0, $99 = 0, $scevgep = 0, $scevgep218 = 0, $scevgep219 
= 0, $scevgep220 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[18100]|0;
+ $1 = ($0|0)==(0);
+ if ($1) {
+  return;
+ }
+ $2 = HEAP32[18102]|0;
+ $3 = HEAP32[18101]|0;
+ $4 = $2;
+ $5 = $4 & 7;
+ $6 = ($5|0)!=(0);
+ $7 = ($3|0)!=(0);
+ $8 = $7 & $6;
+ if ($8) {
+  $$0117196 = $3;$$0197 = $2;
+  while(1) {
+   HEAP8[$$0197>>0] = -1;
+   $9 = ((($$0197)) + 1|0);
+   $10 = (($$0117196) + -1)|0;
+   $11 = $9;
+   $12 = $11 & 7;
+   $13 = ($12|0)!=(0);
+   $14 = ($10|0)!=(0);
+   $15 = $14 & $13;
+   if ($15) {
+    $$0117196 = $10;$$0197 = $9;
+   } else {
+    $$0$lcssa = $9;$$0117$lcssa = $10;
+    break;
+   }
+  }
+ } else {
+  $$0$lcssa = $2;$$0117$lcssa = $3;
+ }
+ $16 = ($$0117$lcssa>>>0)<(8);
+ if ($16) {
+  $$2 = $$0$lcssa;$$2119 = $$0117$lcssa;
+ } else {
+  $17 = (($$0117$lcssa) + -8)|0;
+  $18 = $17 & -8;
+  $19 = (($18) + 8)|0;
+  $$1 = $$0$lcssa;$$1118 = $$0117$lcssa;
+  while(1) {
+   $20 = $$1;
+   $21 = $20;
+   HEAP32[$21>>2] = -1;
+   $22 = (($20) + 4)|0;
+   $23 = $22;
+   HEAP32[$23>>2] = -1;
+   $24 = (($$1118) + -8)|0;
+   $25 = ((($$1)) + 8|0);
+   $26 = ($24>>>0)>(7);
+   if ($26) {
+    $$1 = $25;$$1118 = $24;
+   } else {
+    break;
+   }
+  }
+  $27 = (($17) - ($18))|0;
+  $scevgep220 = (($$0$lcssa) + ($19)|0);
+  $$2 = $scevgep220;$$2119 = $27;
+ }
+ $28 = ($$2119|0)==(0);
+ if ($28) {
+  $$pre$phi226Z2D = $5;$120 = $2;$34 = $3;
+ } else {
+  $$3120191 = $$2119;$$3192 = $$2;
+  while(1) {
+   HEAP8[$$3192>>0] = -1;
+   $29 = ((($$3192)) + 1|0);
+   $30 = (($$3120191) + -1)|0;
+   $31 = ($30|0)==(0);
+   if ($31) {
+    break;
+   } else {
+    $$3120191 = $30;$$3192 = $29;
+   }
+  }
+  $$pre = HEAP32[18102]|0;
+  $$pre221 = HEAP32[18101]|0;
+  $$pre224 = $$pre;
+  $$pre225 = $$pre224 & 7;
+  $$pre$phi226Z2D = $$pre225;$120 = $$pre;$34 = $$pre221;
+ }
+ $32 = ($$pre$phi226Z2D|0)!=(0);
+ $33 = ($34|0)!=(0);
+ $35 = $33 & $32;
+ if ($35) {
+  $$0141185 = $120;$$0145184 = $34;
+  while(1) {
+   HEAP8[$$0141185>>0] = -86;
+   $36 = ((($$0141185)) + 1|0);
+   $37 = (($$0145184) + -1)|0;
+   $38 = $36;
+   $39 = $38 & 7;
+   $40 = ($39|0)!=(0);
+   $41 = ($37|0)!=(0);
+   $42 = $41 & $40;
+   if ($42) {
+    $$0141185 = $36;$$0145184 = $37;
+   } else {
+    $$0141$lcssa = $36;$$0145$lcssa = $37;
+    break;
+   }
+  }
+ } else {
+  $$0141$lcssa = $120;$$0145$lcssa = $34;
+ }
+ $43 = ($$0145$lcssa>>>0)<(8);
+ if ($43) {
+  $$2143 = $$0141$lcssa;$$2147 = $$0145$lcssa;
+ } else {
+  $44 = (($$0145$lcssa) + -8)|0;
+  $45 = $44 & -8;
+  $46 = (($45) + 8)|0;
+  $$1142 = $$0141$lcssa;$$1146 = $$0145$lcssa;
+  while(1) {
+   $47 = $$1142;
+   $48 = $47;
+   HEAP32[$48>>2] = -1431655766;
+   $49 = (($47) + 4)|0;
+   $50 = $49;
+   HEAP32[$50>>2] = -1431655766;
+   $51 = (($$1146) + -8)|0;
+   $52 = ((($$1142)) + 8|0);
+   $53 = ($51>>>0)>(7);
+   if ($53) {
+    $$1142 = $52;$$1146 = $51;
+   } else {
+    break;
+   }
+  }
+  $54 = (($44) - ($45))|0;
+  $scevgep219 = (($$0141$lcssa) + ($46)|0);
+  $$2143 = $scevgep219;$$2147 = $54;
+ }
+ $55 = ($$2147|0)==(0);
+ if ($55) {
+  $$pre$phi230Z2D = $$pre$phi226Z2D;$121 = $120;$61 = $34;
+ } else {
+  $$3144180 = $$2143;$$3148179 = $$2147;
+  while(1) {
+   HEAP8[$$3144180>>0] = -86;
+   $56 = ((($$3144180)) + 1|0);
+   $57 = (($$3148179) + -1)|0;
+   $58 = ($57|0)==(0);
+   if ($58) {
+    break;
+   } else {
+    $$3144180 = $56;$$3148179 = $57;
+   }
+  }
+  $$pre222 = HEAP32[18102]|0;
+  $$pre223 = HEAP32[18101]|0;
+  $$pre227 = $$pre222;
+  $$pre229 = $$pre227 & 7;
+  $$pre$phi230Z2D = $$pre229;$121 = $$pre222;$61 = $$pre223;
+ }
+ $59 = ($$pre$phi230Z2D|0)!=(0);
+ $60 = ($61|0)!=(0);
+ $62 = $60 & $59;
+ if ($62) {
+  $$0133173 = $61;$$0137172 = $121;
+  while(1) {
+   HEAP8[$$0137172>>0] = 85;
+   $63 = ((($$0137172)) + 1|0);
+   $64 = (($$0133173) + -1)|0;
+   $65 = $63;
+   $66 = $65 & 7;
+   $67 = ($66|0)!=(0);
+   $68 = ($64|0)!=(0);
+   $69 = $68 & $67;
+   if ($69) {
+    $$0133173 = $64;$$0137172 = $63;
+   } else {
+    $$0133$lcssa = $64;$$0137$lcssa = $63;
+    break;
+   }
+  }
+ } else {
+  $$0133$lcssa = $61;$$0137$lcssa = $121;
+ }
+ $70 = ($$0133$lcssa>>>0)<(8);
+ if ($70) {
+  $$2135 = $$0133$lcssa;$$2139 = $$0137$lcssa;
+ } else {
+  $71 = (($$0133$lcssa) + -8)|0;
+  $72 = $71 & -8;
+  $73 = (($72) + 8)|0;
+  $$1134 = $$0133$lcssa;$$1138 = $$0137$lcssa;
+  while(1) {
+   $74 = $$1138;
+   $75 = $74;
+   HEAP32[$75>>2] = 1431655765;
+   $76 = (($74) + 4)|0;
+   $77 = $76;
+   HEAP32[$77>>2] = 1431655765;
+   $78 = (($$1134) + -8)|0;
+   $79 = ((($$1138)) + 8|0);
+   $80 = ($78>>>0)>(7);
+   if ($80) {
+    $$1134 = $78;$$1138 = $79;
+   } else {
+    break;
+   }
+  }
+  $81 = (($71) - ($72))|0;
+  $scevgep218 = (($$0137$lcssa) + ($73)|0);
+  $$2135 = $81;$$2139 = $scevgep218;
+ }
+ $82 = ($$2135|0)==(0);
+ if (!($82)) {
+  $$3136168 = $$2135;$$3140167 = $$2139;
+  while(1) {
+   HEAP8[$$3140167>>0] = 85;
+   $83 = ((($$3140167)) + 1|0);
+   $84 = (($$3136168) + -1)|0;
+   $85 = ($84|0)==(0);
+   if ($85) {
+    break;
+   } else {
+    $$3136168 = $84;$$3140167 = $83;
+   }
+  }
+ }
+ $86 = HEAP32[18102]|0;
+ $87 = HEAP32[18101]|0;
+ $88 = $86;
+ $89 = $88 & 7;
+ $90 = ($89|0)!=(0);
+ $91 = ($87|0)!=(0);
+ $92 = $91 & $90;
+ if ($92) {
+  $$0121162 = $87;$$0125161 = $86;
+  while(1) {
+   HEAP8[$$0125161>>0] = 0;
+   $93 = ((($$0125161)) + 1|0);
+   $94 = (($$0121162) + -1)|0;
+   $95 = $93;
+   $96 = $95 & 7;
+   $97 = ($96|0)!=(0);
+   $98 = ($94|0)!=(0);
+   $99 = $98 & $97;
+   if ($99) {
+    $$0121162 = $94;$$0125161 = $93;
+   } else {
+    $$0121$lcssa = $94;$$0125$lcssa = $93;
+    break;
+   }
+  }
+ } else {
+  $$0121$lcssa = $87;$$0125$lcssa = $86;
+ }
+ $100 = ($$0121$lcssa>>>0)<(8);
+ if ($100) {
+  $$2123 = $$0121$lcssa;$$2127 = $$0125$lcssa;
+ } else {
+  $101 = (($$0121$lcssa) + -8)|0;
+  $102 = $101 & -8;
+  $103 = (($102) + 8)|0;
+  $$1122 = $$0121$lcssa;$$1126 = $$0125$lcssa;
+  while(1) {
+   $104 = $$1126;
+   $105 = $104;
+   HEAP32[$105>>2] = 0;
+   $106 = (($104) + 4)|0;
+   $107 = $106;
+   HEAP32[$107>>2] = 0;
+   $108 = (($$1122) + -8)|0;
+   $109 = ((($$1126)) + 8|0);
+   $110 = ($108>>>0)>(7);
+   if ($110) {
+    $$1122 = $108;$$1126 = $109;
+   } else {
+    break;
+   }
+  }
+  $111 = (($101) - ($102))|0;
+  $scevgep = (($$0125$lcssa) + ($103)|0);
+  $$2123 = $111;$$2127 = $scevgep;
+ }
+ $112 = ($$2123|0)==(0);
+ if (!($112)) {
+  $$3124160 = $$2123;$$3128159 = $$2127;
+  while(1) {
+   HEAP8[$$3128159>>0] = 0;
+   $113 = ((($$3128159)) + 1|0);
+   $114 = (($$3124160) + -1)|0;
+   $115 = ($114|0)==(0);
+   if ($115) {
+    break;
+   } else {
+    $$3124160 = $114;$$3128159 = $113;
+   }
+  }
+ }
+ $116 = HEAP32[18103]|0;
+ $117 = ($116|0)==(0);
+ if (!($117)) {
+  $118 = HEAP32[18102]|0;
+  $119 = HEAP32[18101]|0;
+  (___munmap($118,$119)|0);
+ }
+ HEAP32[18102] = 0;
+ HEAP32[18100] = 0;
+ HEAP32[18101] = 0;
+ return;
+}
+function __gcry_secmem_dump_stats() {
+ var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $vararg_buffer = 0, $vararg_ptr1 
= 0, $vararg_ptr2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ (_gpgrt_lock_lock(37900)|0);
+ $0 = HEAP32[18100]|0;
+ $1 = ($0|0)==(0);
+ if ($1) {
+  (_gpgrt_lock_unlock(37900)|0);
+  STACKTOP = sp;return;
+ }
+ $2 = HEAP32[18104]|0;
+ $3 = HEAP32[18101]|0;
+ $4 = HEAP32[18105]|0;
+ HEAP32[$vararg_buffer>>2] = $2;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $3;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = $4;
+ __gcry_log_info(45337,$vararg_buffer);
+ (_gpgrt_lock_unlock(37900)|0);
+ STACKTOP = sp;return;
+}
+function __gcry_initialize_fips_mode($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, 
$25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, 
$vararg_buffer2 = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 528|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(528|0);
+ $vararg_buffer2 = sp + 520|0;
+ $vararg_buffer = sp + 512|0;
+ $1 = sp + 256|0;
+ $2 = sp;
+ $3 = HEAP32[18106]|0;
+ $4 = ($3|0)==(0);
+ if (!($4)) {
+  $5 = HEAP32[18107]|0;
+  $6 = ($5|0)==(1);
+  if ($6) {
+   __gcry_assert_failed(45378,45384,114,45391);
+   // unreachable;
+  } else {
+   _fips_new_state(5);
+   __gcry_fips_noreturn();
+   // unreachable;
+  }
+ }
+ HEAP32[18106] = 1;
+ $7 = ($0|0)==(0);
+ L7: do {
+  if ($7) {
+   $10 = (_access(45441,0)|0);
+   $11 = ($10|0)==(0);
+   if ($11) {
+    $12 = HEAP32[18107]|0;
+    $13 = ($12|0)==(0);
+    if ($13) {
+     break;
+    }
+    __gcry_assert_failed(45418,45384,132,45391);
+    // unreachable;
+   }
+   $14 = (_fopen(208,45466)|0);
+   $15 = ($14|0)==(0|0);
+   L13: do {
+    if ($15) {
+     $22 = (___errno_location()|0);
+     $23 = HEAP32[$22>>2]|0;
+     switch ($23|0) {
+     case 2: case 13:  {
+      break L13;
+      break;
+     }
+     default: {
+     }
+     }
+     $24 = (_access(45468,0)|0);
+     $25 = ($24|0)==(0);
+     if ($25) {
+      $26 = (_strerror($23)|0);
+      HEAP32[$vararg_buffer>>2] = 208;
+      $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+      HEAP32[$vararg_ptr1>>2] = $26;
+      __gcry_log_info(45482,$vararg_buffer);
+      _abort();
+      // unreachable;
+     }
+    } else {
+     $16 = (_fgets($1,256,$14)|0);
+     $17 = ($16|0)==(0|0);
+     if (!($17)) {
+      $18 = (_atoi($1)|0);
+      $19 = ($18|0)==(0);
+      if (!($19)) {
+       (_fclose($14)|0);
+       $20 = HEAP32[18107]|0;
+       $21 = ($20|0)==(0);
+       if ($21) {
+        break L7;
+       } else {
+        __gcry_assert_failed(45418,45384,151,45391);
+        // unreachable;
+       }
+      }
+     }
+     (_fclose($14)|0);
+    }
+   } while(0);
+   HEAP32[18107] = 1;
+   STACKTOP = sp;return;
+  } else {
+   $8 = HEAP32[18107]|0;
+   $9 = ($8|0)==(0);
+   if (!($9)) {
+    __gcry_assert_failed(45418,45384,121,45391);
+    // unreachable;
+   }
+  }
+ } while(0);
+ $27 = (_gpgrt_lock_init(37944)|0);
+ $28 = ($27|0)==(0);
+ if (!($28)) {
+  $29 = (_gpg_strerror($27)|0);
+  HEAP32[$vararg_buffer2>>2] = $29;
+  __gcry_log_info(45526,$vararg_buffer2);
+  _abort();
+  // unreachable;
+ }
+ $30 = (_fopen(45441,45466)|0);
+ $31 = ($30|0)==(0|0);
+ if (!($31)) {
+  $32 = (_fgets($2,256,$30)|0);
+  $33 = ($32|0)==(0|0);
+  if (!($33)) {
+   $34 = (_atoi($2)|0);
+   $35 = ($34|0)==(0);
+   if (!($35)) {
+    HEAP32[18108] = 1;
+   }
+  }
+  (_fclose($30)|0);
+ }
+ _fips_new_state(1);
+ STACKTOP = sp;return;
+}
+function _fips_new_state($0) {
+ $0 = $0|0;
+ var $$0$i = 0, $$0$i57 = 0, $$060 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 
= 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, 
$8 = 0, $9 = 0, $vararg_buffer = 0;
+ var $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, 
$vararg_ptr10 = 0, $vararg_ptr11 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $vararg_buffer7 = sp + 24|0;
+ $vararg_buffer4 = sp + 16|0;
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $1 = (_gpgrt_lock_lock(37944)|0);
+ $2 = ($1|0)==(0);
+ if (!($2)) {
+  $3 = (_gpg_strerror($1)|0);
+  HEAP32[$vararg_buffer>>2] = $3;
+  __gcry_log_info(45581,$vararg_buffer);
+  _abort();
+  // unreachable;
+ }
+ $4 = HEAP32[18109]|0;
+ switch ($4|0) {
+ case 0:  {
+  switch ($0|0) {
+  case 1: case 4: case 5:  {
+   label = 10;
+   break;
+  }
+  default: {
+   label = 13;
+  }
+  }
+  break;
+ }
+ case 1:  {
+  switch ($0|0) {
+  case 2: case 4: case 5:  {
+   label = 10;
+   break;
+  }
+  default: {
+   label = 13;
+  }
+  }
+  break;
+ }
+ case 2:  {
+  $5 = (($0) + -3)|0;
+  $6 = ($5>>>0)<(3);
+  if ($6) {
+   label = 10;
+  } else {
+   label = 13;
+  }
+  break;
+ }
+ case 3:  {
+  switch ($0|0) {
+  case 2: case 4: case 5: case 6:  {
+   label = 10;
+   break;
+  }
+  default: {
+   label = 13;
+  }
+  }
+  break;
+ }
+ case 4:  {
+  switch ($0|0) {
+  case 2: case 4: case 5: case 6:  {
+   label = 10;
+   break;
+  }
+  default: {
+   label = 13;
+  }
+  }
+  break;
+ }
+ case 5:  {
+  $7 = ($0|0)==(6);
+  if ($7) {
+   label = 10;
+  } else {
+   label = 13;
+  }
+  break;
+ }
+ default: {
+  label = 13;
+ }
+ }
+ if ((label|0) == 10) {
+  HEAP32[18109] = $0;
+  $8 = (_gpgrt_lock_unlock(37944)|0);
+  $9 = ($8|0)==(0);
+  if (!($9)) {
+   $10 = (_gpg_strerror($8)|0);
+   HEAP32[$vararg_buffer1>>2] = $10;
+   __gcry_log_info(45636,$vararg_buffer1);
+   _abort();
+   // unreachable;
+  }
+  $11 = (__gcry_log_verbosity(2)|0);
+  $12 = ($11|0)==(0);
+  if ($12) {
+   STACKTOP = sp;return;
+  } else {
+   $$060 = 1;
+  }
+ }
+ else if ((label|0) == 13) {
+  $13 = (_gpgrt_lock_unlock(37944)|0);
+  $14 = ($13|0)==(0);
+  if ($14) {
+   $$060 = 0;
+  } else {
+   $15 = (_gpg_strerror($13)|0);
+   HEAP32[$vararg_buffer4>>2] = $15;
+   __gcry_log_info(45636,$vararg_buffer4);
+   _abort();
+   // unreachable;
+  }
+ }
+ switch ($4|0) {
+ case 0:  {
+  $$0$i = 45745;
+  break;
+ }
+ case 1:  {
+  $$0$i = 45740;
+  break;
+ }
+ case 2:  {
+  $$0$i = 45730;
+  break;
+ }
+ case 3:  {
+  $$0$i = 45718;
+  break;
+ }
+ case 4:  {
+  $$0$i = 45712;
+  break;
+ }
+ case 5:  {
+  $$0$i = 45700;
+  break;
+ }
+ case 6:  {
+  $$0$i = 45691;
+  break;
+ }
+ default: {
+  $$0$i = 59741;
+ }
+ }
+ switch ($0|0) {
+ case 0:  {
+  $$0$i57 = 45745;
+  break;
+ }
+ case 1:  {
+  $$0$i57 = 45740;
+  break;
+ }
+ case 2:  {
+  $$0$i57 = 45730;
+  break;
+ }
+ case 3:  {
+  $$0$i57 = 45718;
+  break;
+ }
+ case 4:  {
+  $$0$i57 = 45712;
+  break;
+ }
+ case 5:  {
+  $$0$i57 = 45700;
+  break;
+ }
+ case 6:  {
+  $$0$i57 = 45691;
+  break;
+ }
+ default: {
+  $$0$i57 = 59741;
+ }
+ }
+ $16 = $$060 ? 45754 : 45762;
+ HEAP32[$vararg_buffer7>>2] = $$0$i;
+ $vararg_ptr10 = ((($vararg_buffer7)) + 4|0);
+ HEAP32[$vararg_ptr10>>2] = $$0$i57;
+ $vararg_ptr11 = ((($vararg_buffer7)) + 8|0);
+ HEAP32[$vararg_ptr11>>2] = $16;
+ __gcry_log_info(45769,$vararg_buffer7);
+ if ($$060) {
+  STACKTOP = sp;return;
+ } else {
+  __gcry_fips_noreturn();
+  // unreachable;
+ }
+}
+function __gcry_fips_noreturn() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ (_fflush(0)|0);
+ _abort();
+ // unreachable;
+}
+function __gcry_fips_mode() {
+ var $0 = 0, $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[18107]|0;
+ $1 = $0 ^ 1;
+ return ($1|0);
+}
+function __gcry_enforced_fips_mode() {
+ var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[18107]|0;
+ $1 = ($0|0)==(1);
+ $2 = HEAP32[18108]|0;
+ $$0 = $1 ? 0 : $2;
+ return ($$0|0);
+}
+function __gcry_set_enforced_fips_mode() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ HEAP32[18108] = 1;
+ return;
+}
+function __gcry_inactivate_fips_mode($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer6 = 0;
+ var $vararg_buffer9 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 
0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $vararg_buffer12 = sp + 40|0;
+ $vararg_buffer9 = sp + 32|0;
+ $vararg_buffer6 = sp + 24|0;
+ $vararg_buffer = sp;
+ $1 = HEAP32[18107]|0;
+ $2 = ($1|0)==(1);
+ if ($2) {
+  __gcry_assert_failed(45809,45384,295,45828);
+  // unreachable;
+ }
+ $3 = HEAP32[18108]|0;
+ $4 = ($3|0)==(0);
+ if (!($4)) {
+  $5 = ($0|0)==(0|0);
+  $6 = $5 ? 45855 : $0;
+  _fips_new_state(4);
+  HEAP32[$vararg_buffer>>2] = 73338;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 45384;
+  $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+  HEAP32[$vararg_ptr2>>2] = 300;
+  $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+  HEAP32[$vararg_ptr3>>2] = 45928;
+  $vararg_ptr4 = ((($vararg_buffer)) + 16|0);
+  HEAP32[$vararg_ptr4>>2] = 45828;
+  $vararg_ptr5 = ((($vararg_buffer)) + 20|0);
+  HEAP32[$vararg_ptr5>>2] = $6;
+  __gcry_log_info(45880,$vararg_buffer);
+  STACKTOP = sp;return;
+ }
+ $7 = (_gpgrt_lock_lock(37944)|0);
+ $8 = ($7|0)==(0);
+ if (!($8)) {
+  $9 = (_gpg_strerror($7)|0);
+  HEAP32[$vararg_buffer6>>2] = $9;
+  __gcry_log_info(45581,$vararg_buffer6);
+  _abort();
+  // unreachable;
+ }
+ $10 = HEAP32[18110]|0;
+ $11 = ($10|0)==(0);
+ if ($11) {
+  HEAP32[18110] = 1;
+  $12 = (_gpgrt_lock_unlock(37944)|0);
+  $13 = ($12|0)==(0);
+  if ($13) {
+   STACKTOP = sp;return;
+  } else {
+   $14 = (_gpg_strerror($12)|0);
+   HEAP32[$vararg_buffer9>>2] = $14;
+   __gcry_log_info(45636,$vararg_buffer9);
+   _abort();
+   // unreachable;
+  }
+ } else {
+  $15 = (_gpgrt_lock_unlock(37944)|0);
+  $16 = ($15|0)==(0);
+  if ($16) {
+   STACKTOP = sp;return;
+  } else {
+   $17 = (_gpg_strerror($15)|0);
+   HEAP32[$vararg_buffer12>>2] = $17;
+   __gcry_log_info(45636,$vararg_buffer12);
+   _abort();
+   // unreachable;
+  }
+ }
+}
+function __gcry_fips_signal_error($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 
0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 
= 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer = sp;
+ $5 = HEAP32[18107]|0;
+ $6 = ($5|0)==(1);
+ if ($6) {
+  STACKTOP = sp;return;
+ }
+ $7 = ($3|0)!=(0);
+ $8 = $7 ? 5 : 4;
+ _fips_new_state($8);
+ $9 = $7 ? 45940 : 73338;
+ $10 = ($2|0)!=(0|0);
+ $11 = $10 ? 45928 : 73338;
+ $12 = $10 ? $2 : 73338;
+ $13 = ($4|0)==(0|0);
+ $14 = $13 ? 45855 : $4;
+ HEAP32[$vararg_buffer>>2] = $9;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $0;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = $1;
+ $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+ HEAP32[$vararg_ptr3>>2] = $11;
+ $vararg_ptr4 = ((($vararg_buffer)) + 16|0);
+ HEAP32[$vararg_ptr4>>2] = $12;
+ $vararg_ptr5 = ((($vararg_buffer)) + 20|0);
+ HEAP32[$vararg_ptr5>>2] = $14;
+ __gcry_log_info(45880,$vararg_buffer);
+ STACKTOP = sp;return;
+}
+function __gcry_is_fips_mode_inactive() {
+ var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, 
$8 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $0 = HEAP32[18107]|0;
+ $1 = ($0|0)==(1);
+ if ($1) {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $2 = (_gpgrt_lock_lock(37944)|0);
+ $3 = ($2|0)==(0);
+ if (!($3)) {
+  $4 = (_gpg_strerror($2)|0);
+  HEAP32[$vararg_buffer>>2] = $4;
+  __gcry_log_info(45581,$vararg_buffer);
+  _abort();
+  // unreachable;
+ }
+ $5 = HEAP32[18110]|0;
+ $6 = (_gpgrt_lock_unlock(37944)|0);
+ $7 = ($6|0)==(0);
+ if ($7) {
+  $$0 = $5;
+  STACKTOP = sp;return ($$0|0);
+ } else {
+  $8 = (_gpg_strerror($6)|0);
+  HEAP32[$vararg_buffer1>>2] = $8;
+  __gcry_log_info(45636,$vararg_buffer1);
+  _abort();
+  // unreachable;
+ }
+ return (0)|0;
+}
+function __gcry_fips_is_operational() {
+ var $$0 = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, 
$14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 
= 0, $7 = 0, $8 = 0;
+ var $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, 
$vararg_buffer7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer7 = sp + 24|0;
+ $vararg_buffer4 = sp + 16|0;
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $0 = HEAP32[18107]|0;
+ $1 = ($0|0)==(1);
+ if ($1) {
+  $$0 = 1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $2 = (_gpgrt_lock_lock(37944)|0);
+ $3 = ($2|0)==(0);
+ if (!($3)) {
+  $4 = (_gpg_strerror($2)|0);
+  HEAP32[$vararg_buffer>>2] = $4;
+  __gcry_log_info(45581,$vararg_buffer);
+  _abort();
+  // unreachable;
+ }
+ $5 = HEAP32[18109]|0;
+ $6 = ($5|0)==(1);
+ do {
+  if ($6) {
+   $7 = (_gpgrt_lock_unlock(37944)|0);
+   $8 = ($7|0)==(0);
+   if (!($8)) {
+    $9 = (_gpg_strerror($7)|0);
+    HEAP32[$vararg_buffer1>>2] = $9;
+    __gcry_log_info(45636,$vararg_buffer1);
+    _abort();
+    // unreachable;
+   }
+   (__gcry_fips_run_selftests(0)|0);
+   $10 = (_gpgrt_lock_lock(37944)|0);
+   $11 = ($10|0)==(0);
+   if ($11) {
+    $$pre = HEAP32[18109]|0;
+    $14 = $$pre;
+    break;
+   } else {
+    $12 = (_gpg_strerror($10)|0);
+    HEAP32[$vararg_buffer4>>2] = $12;
+    __gcry_log_info(45581,$vararg_buffer4);
+    _abort();
+    // unreachable;
+   }
+  } else {
+   $14 = $5;
+  }
+ } while(0);
+ $13 = ($14|0)==(3);
+ $15 = $13&1;
+ $16 = (_gpgrt_lock_unlock(37944)|0);
+ $17 = ($16|0)==(0);
+ if ($17) {
+  $$0 = $15;
+  STACKTOP = sp;return ($$0|0);
+ } else {
+  $18 = (_gpg_strerror($16)|0);
+  HEAP32[$vararg_buffer7>>2] = $18;
+  __gcry_log_info(45636,$vararg_buffer7);
+  _abort();
+  // unreachable;
+ }
+ return (0)|0;
+}
+function __gcry_fips_run_selftests($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$09 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, 
$15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, 
$23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0;
+ var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, 
$51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 
0, $6 = 0, $60 = 0, $61 = 0;
+ var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, 
$7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, 
$78 = 0, $79 = 0, $8 = 0;
+ var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, 
$9 = 0, $spec$select = 0, $spec$select11 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[18107]|0;
+ $2 = ($1|0)==(1);
+ if (!($2)) {
+  _fips_new_state(2);
+ }
+ $3 = (__gcry_cipher_selftest(2,$0,60)|0);
+ $4 = ($3|0)==(0);
+ if ($4) {
+  $6 = 0;
+ } else {
+  $5 = (_gpg_strerror($3)|0);
+  $6 = $5;
+ }
+ _reporter(59927,2,0,$6);
+ $7 = (__gcry_cipher_selftest(7,$0,60)|0);
+ $8 = ($7|0)==(0);
+ if ($8) {
+  $10 = 0;
+ } else {
+  $9 = (_gpg_strerror($7)|0);
+  $10 = $9;
+ }
+ _reporter(59927,7,0,$10);
+ $11 = $7 | $3;
+ $12 = (__gcry_cipher_selftest(8,$0,60)|0);
+ $13 = ($12|0)==(0);
+ if ($13) {
+  $15 = 0;
+ } else {
+  $14 = (_gpg_strerror($12)|0);
+  $15 = $14;
+ }
+ _reporter(59927,8,0,$15);
+ $16 = $11 | $12;
+ $17 = (__gcry_cipher_selftest(9,$0,60)|0);
+ $18 = ($17|0)==(0);
+ if ($18) {
+  $20 = 0;
+ } else {
+  $19 = (_gpg_strerror($17)|0);
+  $20 = $19;
+ }
+ _reporter(59927,9,0,$20);
+ $21 = $16 | $17;
+ $22 = ($21|0)==(0);
+ do {
+  if ($22) {
+   $23 = (__gcry_md_selftest(2,$0,60)|0);
+   $24 = ($23|0)==(0);
+   if ($24) {
+    $26 = 0;
+   } else {
+    $25 = (_gpg_strerror($23)|0);
+    $26 = $25;
+   }
+   _reporter(63225,2,0,$26);
+   $27 = (__gcry_md_selftest(11,$0,60)|0);
+   $28 = ($27|0)==(0);
+   if ($28) {
+    $30 = 0;
+   } else {
+    $29 = (_gpg_strerror($27)|0);
+    $30 = $29;
+   }
+   _reporter(63225,11,0,$30);
+   $31 = $27 | $23;
+   $32 = (__gcry_md_selftest(8,$0,60)|0);
+   $33 = ($32|0)==(0);
+   if ($33) {
+    $35 = 0;
+   } else {
+    $34 = (_gpg_strerror($32)|0);
+    $35 = $34;
+   }
+   _reporter(63225,8,0,$35);
+   $36 = $31 | $32;
+   $37 = (__gcry_md_selftest(9,$0,60)|0);
+   $38 = ($37|0)==(0);
+   if ($38) {
+    $40 = 0;
+   } else {
+    $39 = (_gpg_strerror($37)|0);
+    $40 = $39;
+   }
+   _reporter(63225,9,0,$40);
+   $41 = $36 | $37;
+   $42 = (__gcry_md_selftest(10,$0,60)|0);
+   $43 = ($42|0)==(0);
+   if ($43) {
+    $45 = 0;
+   } else {
+    $44 = (_gpg_strerror($42)|0);
+    $45 = $44;
+   }
+   _reporter(63225,10,0,$45);
+   $46 = $41 | $42;
+   $47 = ($46|0)==(0);
+   if ($47) {
+    $48 = (__gcry_hmac_selftest(2,$0,60)|0);
+    $49 = ($48|0)==(0);
+    if ($49) {
+     $51 = 0;
+    } else {
+     $50 = (_gpg_strerror($48)|0);
+     $51 = $50;
+    }
+    _reporter(58127,2,0,$51);
+    $52 = (__gcry_hmac_selftest(11,$0,60)|0);
+    $53 = ($52|0)==(0);
+    if ($53) {
+     $55 = 0;
+    } else {
+     $54 = (_gpg_strerror($52)|0);
+     $55 = $54;
+    }
+    _reporter(58127,11,0,$55);
+    $56 = $52 | $48;
+    $57 = (__gcry_hmac_selftest(8,$0,60)|0);
+    $58 = ($57|0)==(0);
+    if ($58) {
+     $60 = 0;
+    } else {
+     $59 = (_gpg_strerror($57)|0);
+     $60 = $59;
+    }
+    _reporter(58127,8,0,$60);
+    $61 = $56 | $57;
+    $62 = (__gcry_hmac_selftest(9,$0,60)|0);
+    $63 = ($62|0)==(0);
+    if ($63) {
+     $65 = 0;
+    } else {
+     $64 = (_gpg_strerror($62)|0);
+     $65 = $64;
+    }
+    _reporter(58127,9,0,$65);
+    $66 = $61 | $62;
+    $67 = (__gcry_hmac_selftest(10,$0,60)|0);
+    $68 = ($67|0)==(0);
+    if ($68) {
+     $70 = 0;
+    } else {
+     $69 = (_gpg_strerror($67)|0);
+     $70 = $69;
+    }
+    _reporter(58127,10,0,$70);
+    $71 = $66 | $67;
+    $72 = ($71|0)==(0);
+    if ($72) {
+     $73 = (__gcry_random_selftest(60)|0);
+     $74 = ($73|0)==(0);
+     if (!($74)) {
+      $75 = (_gpg_strerror($73)|0);
+      _reporter(69464,0,0,$75);
+      $$0 = 50;$$09 = 4;
+      break;
+     }
+     _reporter(69464,0,0,0);
+     $76 = (__gcry_pk_selftest(1,$0,60)|0);
+     $77 = ($76|0)==(0);
+     if ($77) {
+      $79 = 0;
+     } else {
+      $78 = (_gpg_strerror($76)|0);
+      $79 = $78;
+     }
+     _reporter(61280,1,0,$79);
+     $80 = (__gcry_pk_selftest(17,$0,60)|0);
+     $81 = ($80|0)==(0);
+     if ($81) {
+      $83 = 0;
+     } else {
+      $82 = (_gpg_strerror($80)|0);
+      $83 = $82;
+     }
+     _reporter(61280,17,0,$83);
+     $84 = $80 | $76;
+     $85 = ($84|0)==(0);
+     $spec$select = $85 ? 3 : 4;
+     $spec$select11 = $85 ? 0 : 50;
+     $$0 = $spec$select11;$$09 = $spec$select;
+    } else {
+     $$0 = 50;$$09 = 4;
+    }
+   } else {
+    $$0 = 50;$$09 = 4;
+   }
+  } else {
+   $$0 = 50;$$09 = 4;
+  }
+ } while(0);
+ $86 = HEAP32[18107]|0;
+ $87 = ($86|0)==(1);
+ if ($87) {
+  return ($$0|0);
+ }
+ _fips_new_state($$09);
+ return ($$0|0);
+}
+function _reporter($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 
0, $4 = 0, $5 = 0, $6 = 0;
+ var $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, 
$vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, 
$vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer = sp;
+ $4 = ($3|0)!=(0|0);
+ if (!($4)) {
+  $5 = (__gcry_log_verbosity(2)|0);
+  $6 = ($5|0)==(0);
+  if ($6) {
+   STACKTOP = sp;return;
+  }
+ }
+ $7 = (_strcmp($0,58127)|0);
+ $8 = ($7|0)==(0);
+ $9 = $8 ? 63225 : $0;
+ $10 = $8 ? 45947 : 73338;
+ $11 = (_strcmp($0,59927)|0);
+ $12 = ($11|0)==(0);
+ do {
+  if ($12) {
+   $13 = (__gcry_cipher_algo_name($1)|0);
+   $26 = $13;
+  } else {
+   $14 = (_strcmp($0,63225)|0);
+   $15 = ($14|0)==(0);
+   if ($15) {
+    $16 = (__gcry_md_algo_name($1)|0);
+    $26 = $16;
+    break;
+   }
+   if ($8) {
+    $17 = (__gcry_md_algo_name($1)|0);
+    $26 = $17;
+    break;
+   }
+   $18 = (_strcmp($0,61280)|0);
+   $19 = ($18|0)==(0);
+   if ($19) {
+    $20 = (__gcry_pk_algo_name($1)|0);
+    $26 = $20;
+   } else {
+    $26 = 73338;
+   }
+  }
+ } while(0);
+ $21 = $4 ? $3 : 45953;
+ $22 = ($2|0)!=(0|0);
+ $23 = $22 ? 45958 : 73338;
+ $24 = $22 ? $2 : 73338;
+ $25 = $22 ? 64767 : 73338;
+ HEAP32[$vararg_buffer>>2] = $9;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $10;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = $26;
+ $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+ HEAP32[$vararg_ptr3>>2] = $1;
+ $vararg_ptr4 = ((($vararg_buffer)) + 16|0);
+ HEAP32[$vararg_ptr4>>2] = $21;
+ $vararg_ptr5 = ((($vararg_buffer)) + 20|0);
+ HEAP32[$vararg_ptr5>>2] = $23;
+ $vararg_ptr6 = ((($vararg_buffer)) + 24|0);
+ HEAP32[$vararg_ptr6>>2] = $24;
+ $vararg_ptr7 = ((($vararg_buffer)) + 28|0);
+ HEAP32[$vararg_ptr7>>2] = $25;
+ __gcry_log_info(45961,$vararg_buffer);
+ STACKTOP = sp;return;
+}
+function __gcry_fips_test_operational() {
+ var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, 
$7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp 
= 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $0 = HEAP32[18107]|0;
+ $1 = ($0|0)==(1);
+ if ($1) {
+  $$0 = 1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $2 = (_gpgrt_lock_lock(37944)|0);
+ $3 = ($2|0)==(0);
+ if (!($3)) {
+  $4 = (_gpg_strerror($2)|0);
+  HEAP32[$vararg_buffer>>2] = $4;
+  __gcry_log_info(45581,$vararg_buffer);
+  _abort();
+  // unreachable;
+ }
+ $5 = HEAP32[18109]|0;
+ $6 = ($5|0)==(3);
+ $7 = $6&1;
+ $8 = (_gpgrt_lock_unlock(37944)|0);
+ $9 = ($8|0)==(0);
+ if ($9) {
+  $$0 = $7;
+  STACKTOP = sp;return ($$0|0);
+ } else {
+  $10 = (_gpg_strerror($8)|0);
+  HEAP32[$vararg_buffer1>>2] = $10;
+  __gcry_log_info(45636,$vararg_buffer1);
+  _abort();
+  // unreachable;
+ }
+ return (0)|0;
+}
+function __gcry_fips_test_error_or_operational() {
+ var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 
0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $0 = HEAP32[18107]|0;
+ $1 = ($0|0)==(1);
+ if ($1) {
+  $$0 = 1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $2 = (_gpgrt_lock_lock(37944)|0);
+ $3 = ($2|0)==(0);
+ if (!($3)) {
+  $4 = (_gpg_strerror($2)|0);
+  HEAP32[$vararg_buffer>>2] = $4;
+  __gcry_log_info(45581,$vararg_buffer);
+  _abort();
+  // unreachable;
+ }
+ $5 = HEAP32[18109]|0;
+ $6 = (($5) + -3)|0;
+ $7 = ($6>>>0)<(2);
+ $8 = $7&1;
+ $9 = (_gpgrt_lock_unlock(37944)|0);
+ $10 = ($9|0)==(0);
+ if ($10) {
+  $$0 = $8;
+  STACKTOP = sp;return ($$0|0);
+ } else {
+  $11 = (_gpg_strerror($9)|0);
+  HEAP32[$vararg_buffer1>>2] = $11;
+  __gcry_log_info(45636,$vararg_buffer1);
+  _abort();
+  // unreachable;
+ }
+ return (0)|0;
+}
+function __gcry_ctx_alloc($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $cond = 0, 
$spec$select = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $cond = ($0|0)==(1);
+ if (!($cond)) {
+  HEAP32[$vararg_buffer>>2] = $0;
+  __gcry_log_bug(46005,$vararg_buffer);
+  // unreachable;
+ }
+ $3 = ($1>>>0)>(8);
+ $spec$select = $3 ? $1 : 8;
+ $4 = (($spec$select) + 8)|0;
+ $5 = (__gcry_calloc(1,$4)|0);
+ $6 = ($5|0)==(0|0);
+ if ($6) {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ 
;HEAP8[$5>>0]=HEAP8[46051>>0]|0;HEAP8[$5+1>>0]=HEAP8[46051+1>>0]|0;HEAP8[$5+2>>0]=HEAP8[46051+2>>0]|0;
+ $7 = ((($5)) + 3|0);
+ HEAP8[$7>>0] = 1;
+ $8 = ((($5)) + 4|0);
+ HEAP32[$8>>2] = $2;
+ $$0 = $5;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_ctx_get_pointer($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $2 = ($0|0)==(0|0);
+ if ($2) {
+  HEAP32[$vararg_buffer>>2] = $0;
+  __gcry_log_fatal(46055,$vararg_buffer);
+  // unreachable;
+ }
+ $3 = (_memcmp($0,46051,3)|0);
+ $4 = ($3|0)==(0);
+ if (!($4)) {
+  HEAP32[$vararg_buffer>>2] = $0;
+  __gcry_log_fatal(46055,$vararg_buffer);
+  // unreachable;
+ }
+ $5 = ((($0)) + 3|0);
+ $6 = HEAP8[$5>>0]|0;
+ $7 = $6 << 24 >> 24;
+ $8 = ($7|0)==($1|0);
+ if ($8) {
+  $9 = ((($0)) + 8|0);
+  STACKTOP = sp;return ($9|0);
+ } else {
+  HEAP32[$vararg_buffer1>>2] = $1;
+  $vararg_ptr4 = ((($vararg_buffer1)) + 4|0);
+  HEAP32[$vararg_ptr4>>2] = $0;
+  $vararg_ptr5 = ((($vararg_buffer1)) + 8|0);
+  HEAP32[$vararg_ptr5>>2] = $7;
+  __gcry_log_fatal(46103,$vararg_buffer1);
+  // unreachable;
+ }
+ return (0)|0;
+}
+function __gcry_ctx_release($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, 
$9 = 0, $cond = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  STACKTOP = sp;return;
+ }
+ $2 = (_memcmp($0,46051,3)|0);
+ $3 = ($2|0)==(0);
+ if (!($3)) {
+  HEAP32[$vararg_buffer>>2] = $0;
+  __gcry_log_fatal(46160,$vararg_buffer);
+  // unreachable;
+ }
+ $4 = ((($0)) + 3|0);
+ $5 = HEAP8[$4>>0]|0;
+ $cond = ($5<<24>>24)==(1);
+ if (!($cond)) {
+  $6 = $5 << 24 >> 24;
+  HEAP32[$vararg_buffer1>>2] = $6;
+  __gcry_log_fatal(46202,$vararg_buffer1);
+  // unreachable;
+ }
+ $7 = ((($0)) + 4|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ($8|0)==(0|0);
+ if (!($9)) {
+  $10 = ((($0)) + 8|0);
+  FUNCTION_TABLE_vi[$8 & 127]($10);
+ }
+ __gcry_free($0);
+ STACKTOP = sp;return;
+}
+function __gcry_cipher_algo_name($0) {
+ $0 = $0|0;
+ var $$ph = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 
= 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[9497]|0;
+ $2 = ($1|0)==($0|0);
+ if ($2) {
+  $$ph = 37988;
+ } else {
+  $3 = HEAP32[9833]|0;
+  $4 = ($3|0)==($0|0);
+  if ($4) {
+   $$ph = 39332;
+  } else {
+   $5 = HEAP32[9852]|0;
+   $6 = ($5|0)==($0|0);
+   if ($6) {
+    $$ph = 39408;
+   } else {
+    $7 = HEAP32[9984]|0;
+    $8 = ($7|0)==($0|0);
+    if ($8) {
+     $$ph = 39936;
+    } else {
+     $9 = HEAP32[10000]|0;
+     $10 = ($9|0)==($0|0);
+     if ($10) {
+      $$ph = 40000;
+     } else {
+      $13 = 59741;
+      return ($13|0);
+     }
+    }
+   }
+  }
+ }
+ $11 = ((($$ph)) + 8|0);
+ $12 = HEAP32[$11>>2]|0;
+ $13 = $12;
+ return ($13|0);
+}
+function __gcry_cipher_open($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$07 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select8 = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $4 = sp;
+ HEAP32[$4>>2] = 0;
+ $5 = ($2|0)>(65535);
+ if ($5) {
+  $$07 = 71;$9 = 0;
+ } else {
+  $6 = (__gcry_cipher_open_internal($4,$1,$2,$3)|0);
+  $7 = ($6|0)==(0);
+  $8 = HEAP32[$4>>2]|0;
+  $spec$select8 = $7 ? $8 : 0;
+  $$07 = $6;$9 = $spec$select8;
+ }
+ HEAP32[$0>>2] = $9;
+ STACKTOP = sp;return ($$07|0);
+}
+function __gcry_cipher_open_internal($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$074$in = 0, $$1 = 0, $$3 = 0, $$5 = 0, $$mux = 0, $$not = 0, 
$$ph = 0, $10 = 0, $100 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 
0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
+ var $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;
+ var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, 
$48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, 
$56 = 0, $57 = 0, $58 = 0;
+ var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, 
$66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, 
$74 = 0, $75 = 0, $76 = 0;
+ var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, 
$84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, 
$92 = 0, $93 = 0, $94 = 0;
+ var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge = 0, $cond = 0, 
$or$cond = 0, $or$cond94 = 0, $spec$select = 0, $spec$select$i$i$i = 0, 
$switch$split12D = 0, $switch$split2D = 0, $switch$split42D = 0, 
$switch$split72D = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = $3 & 1;
+ __gcry_fast_random_poll();
+ $5 = HEAP32[9497]|0;
+ $6 = ($5|0)==($1|0);
+ if ($6) {
+  $$ph = 37988;
+  label = 6;
+ } else {
+  $7 = HEAP32[9833]|0;
+  $8 = ($7|0)==($1|0);
+  if ($8) {
+   $$ph = 39332;
+   label = 6;
+  } else {
+   $9 = HEAP32[9852]|0;
+   $10 = ($9|0)==($1|0);
+   if ($10) {
+    $$ph = 39408;
+    label = 6;
+   } else {
+    $11 = HEAP32[9984]|0;
+    $12 = ($11|0)==($1|0);
+    if ($12) {
+     $$ph = 39936;
+     label = 6;
+    } else {
+     $13 = HEAP32[10000]|0;
+     $14 = ($13|0)==($1|0);
+     if ($14) {
+      $$ph = 40000;
+      label = 6;
+     } else {
+      $$3 = 0;$$5 = 12;
+     }
+    }
+   }
+  }
+ }
+ L6: do {
+  if ((label|0) == 6) {
+   $15 = ((($$ph)) + 4|0);
+   $16 = HEAP8[$15>>0]|0;
+   $17 = $16 & 1;
+   $18 = ($17<<24>>24)!=(0);
+   $19 = ($3>>>0)>(15);
+   $or$cond = $19 | $18;
+   if ($or$cond) {
+    $$3 = 0;$$5 = 12;
+   } else {
+    $switch$split2D = ($2|0)<(6);
+    L9: do {
+     if ($switch$split2D) {
+      switch ($2|0) {
+      case 5: case 2: case 3: case 1:  {
+       label = 10;
+       break L9;
+       break;
+      }
+      case 4:  {
+       $54 = ((($$ph)) + 44|0);
+       $55 = HEAP32[$54>>2]|0;
+       $56 = ($55|0)==(0|0);
+       if ($56) {
+        $$3 = 0;$$5 = 71;
+        break L6;
+       }
+       $57 = ((($$ph)) + 48|0);
+       $58 = HEAP32[$57>>2]|0;
+       $59 = ($58|0)==(0|0);
+       if ($59) {
+        $$3 = 0;$$5 = 71;
+        break L6;
+       } else {
+        break L9;
+       }
+       break;
+      }
+      case 0:  {
+       $60 = (__gcry_fips_mode()|0);
+       $61 = ($60|0)==(0);
+       if (!($61)) {
+        $$3 = 0;$$5 = 71;
+        break L6;
+       }
+       $62 = (__gcry_get_debug_flag(0)|0);
+       $63 = ($62|0)==(0);
+       if ($63) {
+        $$3 = 0;$$5 = 71;
+        break L6;
+       } else {
+        break L9;
+       }
+       break;
+      }
+      default: {
+       $$3 = 0;$$5 = 71;
+       break L6;
+      }
+      }
+     } else {
+      $switch$split12D = ($2|0)<(9);
+      if ($switch$split12D) {
+       switch ($2|0) {
+       case 7: case 6:  {
+        label = 10;
+        break L9;
+        break;
+       }
+       case 8:  {
+        break;
+       }
+       default: {
+        $$3 = 0;$$5 = 71;
+        break L6;
+       }
+       }
+       $20 = ((($$ph)) + 20|0);
+       $21 = HEAP32[$20>>2]|0;
+       $22 = ($21|0)==(16);
+       $23 = ((($$ph)) + 36|0);
+       $24 = HEAP32[$23>>2]|0;
+       $25 = ($24|0)==(0|0);
+       if ($25) {
+        $$3 = 0;$$5 = 71;
+        break L6;
+       }
+       $spec$select = $22 ? 0 : 71;
+       $26 = ((($$ph)) + 40|0);
+       $27 = HEAP32[$26>>2]|0;
+       $28 = ($27|0)==(0|0);
+       $$not = $22 ^ 1;
+       $brmerge = $28 | $$not;
+       $$mux = $28 ? 71 : $spec$select;
+       if ($brmerge) {
+        $$3 = 0;$$5 = $$mux;
+        break L6;
+       } else {
+        break;
+       }
+      }
+      $switch$split42D = ($2|0)<(11);
+      if ($switch$split42D) {
+       switch ($2|0) {
+       case 9:  {
+        label = 10;
+        break L9;
+        break;
+       }
+       case 10:  {
+        break;
+       }
+       default: {
+        $$3 = 0;$$5 = 71;
+        break L6;
+       }
+       }
+       $35 = ((($$ph)) + 44|0);
+       $36 = HEAP32[$35>>2]|0;
+       $37 = ($36|0)==(0|0);
+       if ($37) {
+        $$3 = 0;$$5 = 71;
+        break L6;
+       }
+       $38 = ((($$ph)) + 48|0);
+       $39 = HEAP32[$38>>2]|0;
+       $40 = ($39|0)==(0|0);
+       if ($40) {
+        $$3 = 0;$$5 = 71;
+        break L6;
+       }
+       $41 = ((($$ph)) + 60|0);
+       $42 = HEAP32[$41>>2]|0;
+       $43 = ($42|0)!=(0|0);
+       $44 = ($1|0)==(316);
+       $or$cond94 = $43 & $44;
+       if ($or$cond94) {
+        break;
+       } else {
+        $$3 = 0;$$5 = 71;
+        break L6;
+       }
+      }
+      $switch$split72D = ($2|0)<(65537);
+      if (!($switch$split72D)) {
+       switch ($2|0) {
+       case 65537:  {
+        label = 10;
+        break L9;
+        break;
+       }
+       default: {
+        $$3 = 0;$$5 = 71;
+        break L6;
+       }
+       }
+      }
+      switch ($2|0) {
+      case 11:  {
+       break;
+      }
+      default: {
+       $$3 = 0;$$5 = 71;
+       break L6;
+      }
+      }
+      $45 = ((($$ph)) + 36|0);
+      $46 = HEAP32[$45>>2]|0;
+      $47 = ($46|0)==(0|0);
+      if ($47) {
+       $$3 = 0;$$5 = 71;
+       break L6;
+      }
+      $48 = ((($$ph)) + 40|0);
+      $49 = HEAP32[$48>>2]|0;
+      $50 = ($49|0)==(0|0);
+      if ($50) {
+       $$3 = 0;$$5 = 71;
+       break L6;
+      }
+      $51 = ((($$ph)) + 20|0);
+      $52 = HEAP32[$51>>2]|0;
+      $53 = ($52|0)==(16);
+      if (!($53)) {
+       $$3 = 0;$$5 = 71;
+       break L6;
+      }
+     }
+    } while(0);
+    if ((label|0) == 10) {
+     $29 = ((($$ph)) + 36|0);
+     $30 = HEAP32[$29>>2]|0;
+     $31 = ($30|0)==(0|0);
+     if ($31) {
+      $$3 = 0;$$5 = 71;
+      break;
+     }
+     $32 = ((($$ph)) + 40|0);
+     $33 = HEAP32[$32>>2]|0;
+     $34 = ($33|0)==(0|0);
+     if ($34) {
+      $$3 = 0;$$5 = 71;
+      break;
+     }
+    }
+    $64 = ((($$ph)) + 28|0);
+    $65 = HEAP32[$64>>2]|0;
+    $66 = $65 << 1;
+    $67 = (($66) + 511)|0;
+    $68 = ($4|0)!=(0);
+    if ($68) {
+     $69 = (__gcry_calloc_secure(1,$67)|0);
+     $$074$in = $69;
+    } else {
+     $70 = (__gcry_calloc(1,$67)|0);
+     $$074$in = $70;
+    }
+    $71 = ($$074$in|0)==(0|0);
+    if ($71) {
+     $72 = (_gpg_err_code_from_syserror()|0);
+     $$3 = $$074$in;$$5 = $72;
+     break;
+    }
+    $73 = $$074$in;
+    $74 = $73 & 15;
+    $75 = ($74|0)==(0);
+    $76 = (16 - ($74))|0;
+    $77 = (($$074$in) + ($76)|0);
+    $$1 = $75 ? $$074$in : $77;
+    $$0 = $75 ? 0 : $76;
+    $78 = $68 ? 1183944770 : 604576100;
+    HEAP32[$$1>>2] = $78;
+    $79 = (($67) - ($$0))|0;
+    $80 = ((($$1)) + 4|0);
+    HEAP32[$80>>2] = $79;
+    $81 = ((($$1)) + 8|0);
+    HEAP32[$81>>2] = $$0;
+    $82 = ((($$1)) + 12|0);
+    HEAP32[$82>>2] = $$ph;
+    $83 = ((($$1)) + 16|0);
+    HEAP32[$83>>2] = $1;
+    $84 = ((($$1)) + 48|0);
+    HEAP32[$84>>2] = $2;
+    $85 = ((($$1)) + 52|0);
+    HEAP32[$85>>2] = $3;
+    switch ($1|0) {
+    case 9: case 8: case 7:  {
+     $86 = ((($$1)) + 20|0);
+     HEAP32[$86>>2] = 61;
+     $87 = ((($$1)) + 24|0);
+     HEAP32[$87>>2] = 62;
+     $88 = ((($$1)) + 28|0);
+     HEAP32[$88>>2] = 63;
+     $89 = ((($$1)) + 32|0);
+     HEAP32[$89>>2] = 64;
+     $90 = ((($$1)) + 36|0);
+     HEAP32[$90>>2] = 65;
+     $91 = ((($$1)) + 40|0);
+     HEAP32[$91>>2] = 66;
+     $92 = ((($$1)) + 44|0);
+     HEAP32[$92>>2] = 67;
+     break;
+    }
+    case 303: case 10:  {
+     $93 = ((($$1)) + 32|0);
+     HEAP32[$93>>2] = 68;
+     $94 = ((($$1)) + 24|0);
+     HEAP32[$94>>2] = 69;
+     $95 = ((($$1)) + 36|0);
+     HEAP32[$95>>2] = 70;
+     break;
+    }
+    default: {
+    }
+    }
+    $cond = ($2|0)==(11);
+    if ($cond) {
+     $96 = ((($$1)) + 480|0);
+     HEAP8[$96>>0] = 16;
+     $$3 = $$1;$$5 = 0;
+    } else {
+     $$3 = $$1;$$5 = 0;
+    }
+   }
+  }
+ } while(0);
+ $97 = ($$5|0)==(0);
+ $98 = $97 ? $$3 : 0;
+ HEAP32[$0>>2] = $98;
+ $99 = $$5 & 65535;
+ $100 = $99 | 536870912;
+ $spec$select$i$i$i = $97 ? 0 : $100;
+ return ($spec$select$i$i$i|0);
+}
+function __gcry_cipher_close($0) {
+ $0 = $0|0;
+ var $$038$lcssa = 0, $$03847 = 0, $$039$lcssa = 0, $$03946 = 0, $$1 = 0, 
$$140 = 0, $$2 = 0, $$241 = 0, $$34244 = 0, $$345 = 0, $1 = 0, $10 = 0, $11 = 
0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
+ var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, 
$26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, 
$34 = 0, $35 = 0, $36 = 0;
+ var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $scevgep = 0, 
$switch$split2D = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  return;
+ }
+ $2 = HEAP32[$0>>2]|0;
+ $switch$split2D = ($2|0)<(1183944770);
+ L4: do {
+  if ($switch$split2D) {
+   switch ($2|0) {
+   case 604576100:  {
+    break L4;
+    break;
+   }
+   default: {
+   }
+   }
+   __gcry_fatal_error(63,46251);
+   // unreachable;
+  } else {
+   switch ($2|0) {
+   case 1183944770:  {
+    break L4;
+    break;
+   }
+   default: {
+   }
+   }
+   __gcry_fatal_error(63,46251);
+   // unreachable;
+  }
+ } while(0);
+ HEAP32[$0>>2] = 0;
+ $3 = ((($0)) + 8|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ((($0)) + 4|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = $0;
+ $8 = $7 & 7;
+ $9 = ($8|0)!=(0);
+ $10 = ($6|0)!=(0);
+ $11 = $10 & $9;
+ if ($11) {
+  $$03847 = $0;$$03946 = $6;
+  while(1) {
+   HEAP8[$$03847>>0] = 0;
+   $12 = ((($$03847)) + 1|0);
+   $13 = (($$03946) + -1)|0;
+   $14 = $12;
+   $15 = $14 & 7;
+   $16 = ($15|0)!=(0);
+   $17 = ($13|0)!=(0);
+   $18 = $17 & $16;
+   if ($18) {
+    $$03847 = $12;$$03946 = $13;
+   } else {
+    $$038$lcssa = $12;$$039$lcssa = $13;
+    break;
+   }
+  }
+ } else {
+  $$038$lcssa = $0;$$039$lcssa = $6;
+ }
+ $19 = ($$039$lcssa>>>0)<(8);
+ if ($19) {
+  $$2 = $$038$lcssa;$$241 = $$039$lcssa;
+ } else {
+  $20 = (($$039$lcssa) + -8)|0;
+  $21 = $20 & -8;
+  $22 = (($21) + 8)|0;
+  $$1 = $$038$lcssa;$$140 = $$039$lcssa;
+  while(1) {
+   $23 = $$1;
+   $24 = $23;
+   HEAP32[$24>>2] = 0;
+   $25 = (($23) + 4)|0;
+   $26 = $25;
+   HEAP32[$26>>2] = 0;
+   $27 = (($$140) + -8)|0;
+   $28 = ((($$1)) + 8|0);
+   $29 = ($27>>>0)>(7);
+   if ($29) {
+    $$1 = $28;$$140 = $27;
+   } else {
+    break;
+   }
+  }
+  $30 = (($20) - ($21))|0;
+  $scevgep = (($$038$lcssa) + ($22)|0);
+  $$2 = $scevgep;$$241 = $30;
+ }
+ $31 = ($$241|0)==(0);
+ if (!($31)) {
+  $$34244 = $$241;$$345 = $$2;
+  while(1) {
+   HEAP8[$$345>>0] = 0;
+   $32 = ((($$345)) + 1|0);
+   $33 = (($$34244) + -1)|0;
+   $34 = ($33|0)==(0);
+   if ($34) {
+    break;
+   } else {
+    $$34244 = $33;$$345 = $32;
+   }
+  }
+ }
+ $35 = (0 - ($4))|0;
+ $36 = (($0) + ($35)|0);
+ __gcry_free($36);
+ return;
+}
+function __gcry_cipher_encrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0$i = 0, $$0$i17 = 0, $$03340$i$i$i = 0, $$03439$i$i$i = 0, 
$$03538$i$i$i = 0, $$03637$i$i$i = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 
0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 
= 0;
+ var $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, $40 = 
0, $41 = 0, $42 = 0, $43 = 0;
+ var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 
= 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $spec$select = 0, $spec$select15 = 
0, $switch$split12D = 0, $switch$split2D = 0, $switch$split42D = 0, 
$switch$split72D = 0, $vararg_buffer = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $5 = ($3|0)==(0|0);
+ $spec$select = $5 ? $2 : $4;
+ $spec$select15 = $5 ? $1 : $3;
+ $6 = ((($0)) + 48|0);
+ $7 = HEAP32[$6>>2]|0;
+ $switch$split2D = ($7|0)<(6);
+ L1: do {
+  if ($switch$split2D) {
+   switch ($7|0) {
+   case 1:  {
+    $8 = ((($0)) + 12|0);
+    $9 = HEAP32[$8>>2]|0;
+    $10 = ((($9)) + 36|0);
+    $11 = HEAP32[$10>>2]|0;
+    $12 = ((($9)) + 20|0);
+    $13 = HEAP32[$12>>2]|0;
+    $14 = ($spec$select>>>0)>($2>>>0);
+    if ($14) {
+     $$0$i = 200;
+     break L1;
+    }
+    $15 = (($spec$select>>>0) / ($13>>>0))&-1;
+    $16 = Math_imul($15, $13)|0;
+    $17 = (($spec$select) - ($16))|0;
+    $18 = ($17|0)==(0);
+    if (!($18)) {
+     $$0$i = 139;
+     break L1;
+    }
+    $19 = ($13>>>0)>($spec$select>>>0);
+    if ($19) {
+     $$0$i17 = 0;
+     STACKTOP = sp;return ($$0$i17|0);
+    }
+    $20 = ((($0)) + 496|0);
+    $$03340$i$i$i = 0;$$03439$i$i$i = $1;$$03538$i$i$i = 0;$$03637$i$i$i = 
$spec$select15;
+    while(1) {
+     $21 = (FUNCTION_TABLE_iiii[$11 & 127]($20,$$03439$i$i$i,$$03637$i$i$i)|0);
+     $22 = ($21>>>0)>($$03340$i$i$i>>>0);
+     $23 = $22 ? $21 : $$03340$i$i$i;
+     $24 = (($$03637$i$i$i) + ($13)|0);
+     $25 = (($$03439$i$i$i) + ($13)|0);
+     $26 = (($$03538$i$i$i) + 1)|0;
+     $27 = ($26>>>0)<($15>>>0);
+     if ($27) {
+      $$03340$i$i$i = $23;$$03439$i$i$i = $25;$$03538$i$i$i = 
$26;$$03637$i$i$i = $24;
+     } else {
+      break;
+     }
+    }
+    $28 = ($23|0)==(0);
+    if ($28) {
+     $$0$i17 = 0;
+     STACKTOP = sp;return ($$0$i17|0);
+    }
+    $29 = (($23) + 16)|0;
+    ___gcry_burn_stack($29);
+    $$0$i17 = 0;
+    STACKTOP = sp;return ($$0$i17|0);
+    break;
+   }
+   case 3:  {
+    $30 = (__gcry_cipher_cbc_encrypt($0,$1,$2,$spec$select15,$spec$select)|0);
+    $$0$i = $30;
+    break L1;
+    break;
+   }
+   case 2:  {
+    $31 = (__gcry_cipher_cfb_encrypt($0,$1,$2,$spec$select15,$spec$select)|0);
+    $$0$i = $31;
+    break L1;
+    break;
+   }
+   case 5:  {
+    $32 = (__gcry_cipher_ofb_encrypt($0,$1,$2,$spec$select15,$spec$select)|0);
+    $$0$i = $32;
+    break L1;
+    break;
+   }
+   case 4:  {
+    $39 = ((($0)) + 12|0);
+    $40 = HEAP32[$39>>2]|0;
+    $41 = ((($40)) + 44|0);
+    $42 = HEAP32[$41>>2]|0;
+    $43 = ((($0)) + 496|0);
+    FUNCTION_TABLE_viiii[$42 & 63]($43,$1,$spec$select15,$spec$select);
+    $$0$i17 = 0;
+    STACKTOP = sp;return ($$0$i17|0);
+    break;
+   }
+   case 0:  {
+    $44 = (__gcry_fips_mode()|0);
+    $45 = ($44|0)==(0);
+    if ($45) {
+     $46 = (__gcry_get_debug_flag(0)|0);
+     $47 = ($46|0)==(0);
+     if (!($47)) {
+      $48 = ($spec$select15|0)==($1|0);
+      if ($48) {
+       $$0$i17 = 0;
+       STACKTOP = sp;return ($$0$i17|0);
+      }
+      _memmove(($1|0),($spec$select15|0),($spec$select|0))|0;
+      $$0$i17 = 0;
+      STACKTOP = sp;return ($$0$i17|0);
+     }
+    }
+    __gcry_fips_signal_error(46300,875,46309,0,46324);
+    $$0$i = 71;
+    break L1;
+    break;
+   }
+   default: {
+    HEAP32[$vararg_buffer>>2] = $7;
+    __gcry_log_fatal(46346,$vararg_buffer);
+    // unreachable;
+   }
+   }
+  } else {
+   $switch$split12D = ($7|0)<(9);
+   if ($switch$split12D) {
+    switch ($7|0) {
+    case 6:  {
+     $33 = (__gcry_cipher_ctr_encrypt($0,$1,$2,$spec$select15,$spec$select)|0);
+     $$0$i = $33;
+     break L1;
+     break;
+    }
+    case 7:  {
+     $34 = 
(__gcry_cipher_aeswrap_encrypt($0,$1,$2,$spec$select15,$spec$select)|0);
+     $$0$i = $34;
+     break L1;
+     break;
+    }
+    case 8:  {
+     $35 = (__gcry_cipher_ccm_encrypt($0,$1,$2,$spec$select15,$spec$select)|0);
+     $$0$i = $35;
+     break L1;
+     break;
+    }
+    default: {
+     HEAP32[$vararg_buffer>>2] = $7;
+     __gcry_log_fatal(46346,$vararg_buffer);
+     // unreachable;
+    }
+    }
+   }
+   $switch$split42D = ($7|0)<(11);
+   if ($switch$split42D) {
+    switch ($7|0) {
+    case 9:  {
+     $36 = (__gcry_cipher_gcm_encrypt($0,$1,$2,$spec$select15,$spec$select)|0);
+     $$0$i = $36;
+     break L1;
+     break;
+    }
+    case 10:  {
+     $37 = 
(__gcry_cipher_poly1305_encrypt($0,$1,$2,$spec$select15,$spec$select)|0);
+     $$0$i = $37;
+     break L1;
+     break;
+    }
+    default: {
+     HEAP32[$vararg_buffer>>2] = $7;
+     __gcry_log_fatal(46346,$vararg_buffer);
+     // unreachable;
+    }
+    }
+   }
+   $switch$split72D = ($7|0)<(65537);
+   if (!($switch$split72D)) {
+    switch ($7|0) {
+    case 65537:  {
+     $$0$i = 71;
+     break L1;
+     break;
+    }
+    default: {
+    }
+    }
+    HEAP32[$vararg_buffer>>2] = $7;
+    __gcry_log_fatal(46346,$vararg_buffer);
+    // unreachable;
+   }
+   switch ($7|0) {
+   case 11:  {
+    $38 = (__gcry_cipher_ocb_encrypt($0,$1,$2,$spec$select15,$spec$select)|0);
+    $$0$i = $38;
+    break L1;
+    break;
+   }
+   default: {
+    HEAP32[$vararg_buffer>>2] = $7;
+    __gcry_log_fatal(46346,$vararg_buffer);
+    // unreachable;
+   }
+   }
+  }
+ } while(0);
+ $49 = ($$0$i|0)!=(0);
+ $50 = ($1|0)!=(0|0);
+ $or$cond = $50 & $49;
+ if (!($or$cond)) {
+  $$0$i17 = $$0$i;
+  STACKTOP = sp;return ($$0$i17|0);
+ }
+ _memset(($1|0),66,($2|0))|0;
+ $$0$i17 = $$0$i;
+ STACKTOP = sp;return ($$0$i17|0);
+}
+function __gcry_cipher_decrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0$i = 0, $$03340$i$i$i = 0, $$03439$i$i$i = 0, $$03538$i$i$i = 0, 
$$03637$i$i$i = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 
0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $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, $40 = 0, $41 = 
0, $42 = 0, $43 = 0, $44 = 0;
+ var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 
0, $spec$select = 0, $spec$select8 = 0, $switch$split12D = 0, $switch$split2D = 
0, $switch$split42D = 0, $switch$split72D = 0, $vararg_buffer = 0, label = 0, 
sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $5 = ($3|0)==(0|0);
+ $spec$select = $5 ? $1 : $3;
+ $spec$select8 = $5 ? $2 : $4;
+ $6 = ((($0)) + 48|0);
+ $7 = HEAP32[$6>>2]|0;
+ $switch$split2D = ($7|0)<(6);
+ L1: do {
+  if ($switch$split2D) {
+   switch ($7|0) {
+   case 1:  {
+    $8 = ((($0)) + 12|0);
+    $9 = HEAP32[$8>>2]|0;
+    $10 = ((($9)) + 40|0);
+    $11 = HEAP32[$10>>2]|0;
+    $12 = ((($9)) + 20|0);
+    $13 = HEAP32[$12>>2]|0;
+    $14 = ($spec$select8>>>0)>($2>>>0);
+    if ($14) {
+     $$0$i = 200;
+     break L1;
+    }
+    $15 = (($spec$select8>>>0) / ($13>>>0))&-1;
+    $16 = Math_imul($15, $13)|0;
+    $17 = (($spec$select8) - ($16))|0;
+    $18 = ($17|0)==(0);
+    if (!($18)) {
+     $$0$i = 139;
+     break L1;
+    }
+    $19 = ($13>>>0)>($spec$select8>>>0);
+    if ($19) {
+     $$0$i = 0;
+     break L1;
+    }
+    $20 = ((($0)) + 496|0);
+    $$03340$i$i$i = 0;$$03439$i$i$i = $1;$$03538$i$i$i = 0;$$03637$i$i$i = 
$spec$select;
+    while(1) {
+     $21 = (FUNCTION_TABLE_iiii[$11 & 127]($20,$$03439$i$i$i,$$03637$i$i$i)|0);
+     $22 = ($21>>>0)>($$03340$i$i$i>>>0);
+     $23 = $22 ? $21 : $$03340$i$i$i;
+     $24 = (($$03637$i$i$i) + ($13)|0);
+     $25 = (($$03439$i$i$i) + ($13)|0);
+     $26 = (($$03538$i$i$i) + 1)|0;
+     $27 = ($26>>>0)<($15>>>0);
+     if ($27) {
+      $$03340$i$i$i = $23;$$03439$i$i$i = $25;$$03538$i$i$i = 
$26;$$03637$i$i$i = $24;
+     } else {
+      break;
+     }
+    }
+    $28 = ($23|0)==(0);
+    if ($28) {
+     $$0$i = 0;
+     break L1;
+    }
+    $29 = (($23) + 16)|0;
+    ___gcry_burn_stack($29);
+    $$0$i = 0;
+    break L1;
+    break;
+   }
+   case 3:  {
+    $30 = (__gcry_cipher_cbc_decrypt($0,$1,$2,$spec$select,$spec$select8)|0);
+    $$0$i = $30;
+    break L1;
+    break;
+   }
+   case 2:  {
+    $31 = (__gcry_cipher_cfb_decrypt($0,$1,$2,$spec$select,$spec$select8)|0);
+    $$0$i = $31;
+    break L1;
+    break;
+   }
+   case 5:  {
+    $32 = (__gcry_cipher_ofb_encrypt($0,$1,$2,$spec$select,$spec$select8)|0);
+    $$0$i = $32;
+    break L1;
+    break;
+   }
+   case 4:  {
+    $39 = ((($0)) + 12|0);
+    $40 = HEAP32[$39>>2]|0;
+    $41 = ((($40)) + 48|0);
+    $42 = HEAP32[$41>>2]|0;
+    $43 = ((($0)) + 496|0);
+    FUNCTION_TABLE_viiii[$42 & 63]($43,$1,$spec$select,$spec$select8);
+    $$0$i = 0;
+    break L1;
+    break;
+   }
+   case 0:  {
+    $44 = (__gcry_fips_mode()|0);
+    $45 = ($44|0)==(0);
+    if ($45) {
+     $46 = (__gcry_get_debug_flag(0)|0);
+     $47 = ($46|0)==(0);
+     if (!($47)) {
+      $48 = ($spec$select|0)==($1|0);
+      if ($48) {
+       $$0$i = 0;
+       break L1;
+      }
+      _memmove(($1|0),($spec$select|0),($spec$select8|0))|0;
+      $$0$i = 0;
+      break L1;
+     }
+    }
+    __gcry_fips_signal_error(46300,992,46379,0,46324);
+    $$0$i = 71;
+    break L1;
+    break;
+   }
+   default: {
+    HEAP32[$vararg_buffer>>2] = $7;
+    __gcry_log_fatal(46394,$vararg_buffer);
+    // unreachable;
+   }
+   }
+  } else {
+   $switch$split12D = ($7|0)<(9);
+   if ($switch$split12D) {
+    switch ($7|0) {
+    case 6:  {
+     $33 = (__gcry_cipher_ctr_encrypt($0,$1,$2,$spec$select,$spec$select8)|0);
+     $$0$i = $33;
+     break L1;
+     break;
+    }
+    case 7:  {
+     $34 = 
(__gcry_cipher_aeswrap_decrypt($0,$1,$2,$spec$select,$spec$select8)|0);
+     $$0$i = $34;
+     break L1;
+     break;
+    }
+    case 8:  {
+     $35 = (__gcry_cipher_ccm_decrypt($0,$1,$2,$spec$select,$spec$select8)|0);
+     $$0$i = $35;
+     break L1;
+     break;
+    }
+    default: {
+     HEAP32[$vararg_buffer>>2] = $7;
+     __gcry_log_fatal(46394,$vararg_buffer);
+     // unreachable;
+    }
+    }
+   }
+   $switch$split42D = ($7|0)<(11);
+   if ($switch$split42D) {
+    switch ($7|0) {
+    case 9:  {
+     $36 = (__gcry_cipher_gcm_decrypt($0,$1,$2,$spec$select,$spec$select8)|0);
+     $$0$i = $36;
+     break L1;
+     break;
+    }
+    case 10:  {
+     $37 = 
(__gcry_cipher_poly1305_decrypt($0,$1,$2,$spec$select,$spec$select8)|0);
+     $$0$i = $37;
+     break L1;
+     break;
+    }
+    default: {
+     HEAP32[$vararg_buffer>>2] = $7;
+     __gcry_log_fatal(46394,$vararg_buffer);
+     // unreachable;
+    }
+    }
+   }
+   $switch$split72D = ($7|0)<(65537);
+   if (!($switch$split72D)) {
+    switch ($7|0) {
+    case 65537:  {
+     $$0$i = 71;
+     break L1;
+     break;
+    }
+    default: {
+    }
+    }
+    HEAP32[$vararg_buffer>>2] = $7;
+    __gcry_log_fatal(46394,$vararg_buffer);
+    // unreachable;
+   }
+   switch ($7|0) {
+   case 11:  {
+    $38 = (__gcry_cipher_ocb_decrypt($0,$1,$2,$spec$select,$spec$select8)|0);
+    $$0$i = $38;
+    break L1;
+    break;
+   }
+   default: {
+    HEAP32[$vararg_buffer>>2] = $7;
+    __gcry_log_fatal(46394,$vararg_buffer);
+    // unreachable;
+   }
+   }
+  }
+ } while(0);
+ STACKTOP = sp;return ($$0$i|0);
+}
+function __gcry_cipher_setkey($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 
= 0, $9 = 0, $switch$split12D = 0;
+ var $switch$split2D = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($0)) + 12|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ((($4)) + 32|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ((($0)) + 496|0);
+ $8 = (FUNCTION_TABLE_iiii[$6 & 127]($7,$1,$2)|0);
+ $9 = ($8|0)==(0);
+ if (!($9)) {
+  $19 = ((($0)) + 56|0);
+  $20 = HEAP8[$19>>0]|0;
+  $21 = $20 & -2;
+  HEAP8[$19>>0] = $21;
+  return ($8|0);
+ }
+ $10 = HEAP32[$3>>2]|0;
+ $11 = ((($10)) + 28|0);
+ $12 = HEAP32[$11>>2]|0;
+ $13 = (($7) + ($12)|0);
+ _memcpy(($13|0),($7|0),($12|0))|0;
+ $14 = ((($0)) + 56|0);
+ $15 = HEAP8[$14>>0]|0;
+ $16 = $15 | 1;
+ HEAP8[$14>>0] = $16;
+ $17 = ((($0)) + 48|0);
+ $18 = HEAP32[$17>>2]|0;
+ $switch$split2D = ($18|0)<(10);
+ if ($switch$split2D) {
+  switch ($18|0) {
+  case 9:  {
+   break;
+  }
+  default: {
+   return ($8|0);
+  }
+  }
+  __gcry_cipher_gcm_setkey($0);
+  return ($8|0);
+ }
+ $switch$split12D = ($18|0)<(65537);
+ if ($switch$split12D) {
+  switch ($18|0) {
+  case 10:  {
+   break;
+  }
+  default: {
+   return ($8|0);
+  }
+  }
+  __gcry_cipher_poly1305_setkey($0);
+  return ($8|0);
+ } else {
+  switch ($18|0) {
+  case 65537:  {
+   break;
+  }
+  default: {
+   return ($8|0);
+  }
+  }
+  (__gcry_cipher_cmac_set_subkeys($0)|0);
+  return ($8|0);
+ }
+ return (0)|0;
+}
+function __gcry_cipher_setiv($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$phi$trans$insert$i = 0, $$pre$i = 0, $$pre1$i = 0, $10 = 0, 
$11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 
0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 
0, $8 = 0, $9 = 0, $spec$select$i = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $3 = ((($0)) + 48|0);
+ $4 = HEAP32[$3>>2]|0;
+ switch ($4|0) {
+ case 8:  {
+  $5 = (__gcry_cipher_ccm_set_nonce($0,$1,$2)|0);
+  $$0 = $5;
+  STACKTOP = sp;return ($$0|0);
+  break;
+ }
+ case 9:  {
+  $6 = (__gcry_cipher_gcm_setiv($0,$1,$2)|0);
+  $$0 = $6;
+  STACKTOP = sp;return ($$0|0);
+  break;
+ }
+ case 10:  {
+  $7 = (__gcry_cipher_poly1305_setiv($0,$1,$2)|0);
+  $$0 = $7;
+  STACKTOP = sp;return ($$0|0);
+  break;
+ }
+ case 11:  {
+  $8 = (__gcry_cipher_ocb_set_nonce($0,$1,$2)|0);
+  $$0 = $8;
+  STACKTOP = sp;return ($$0|0);
+  break;
+ }
+ default: {
+  $9 = ((($0)) + 12|0);
+  $10 = HEAP32[$9>>2]|0;
+  $11 = ((($10)) + 60|0);
+  $12 = HEAP32[$11>>2]|0;
+  $13 = ($12|0)==(0|0);
+  if (!($13)) {
+   $14 = ((($0)) + 496|0);
+   FUNCTION_TABLE_viii[$12 & 127]($14,$1,$2);
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+  $15 = ((($0)) + 64|0);
+  $16 = ((($10)) + 20|0);
+  $17 = HEAP32[$16>>2]|0;
+  _memset(($15|0),0,($17|0))|0;
+  $18 = ($1|0)==(0|0);
+  if ($18) {
+   $26 = ((($0)) + 56|0);
+   $27 = HEAP8[$26>>0]|0;
+   $28 = $27 & -3;
+   HEAP8[$26>>0] = $28;
+  } else {
+   $19 = HEAP32[$16>>2]|0;
+   $20 = ($19|0)==($2|0);
+   if ($20) {
+    $22 = $2;
+   } else {
+    HEAP32[$vararg_buffer>>2] = $2;
+    $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+    HEAP32[$vararg_ptr1>>2] = $19;
+    __gcry_log_info(46427,$vararg_buffer);
+    __gcry_fips_signal_error(46300,682,46470,0,46483);
+    $$pre$i = HEAP32[$9>>2]|0;
+    $$phi$trans$insert$i = ((($$pre$i)) + 20|0);
+    $$pre1$i = HEAP32[$$phi$trans$insert$i>>2]|0;
+    $22 = $$pre1$i;
+   }
+   $21 = ($22>>>0)<($2>>>0);
+   $spec$select$i = $21 ? $22 : $2;
+   _memcpy(($15|0),($1|0),($spec$select$i|0))|0;
+   $23 = ((($0)) + 56|0);
+   $24 = HEAP8[$23>>0]|0;
+   $25 = $24 | 2;
+   HEAP8[$23>>0] = $25;
+  }
+  $29 = ((($0)) + 112|0);
+  HEAP32[$29>>2] = 0;
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ }
+ return (0)|0;
+}
+function __gcry_cipher_init() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return 0;
+}
+function __gcry_cipher_selftest($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$ph = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 
0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = HEAP32[9497]|0;
+ $4 = ($3|0)==($0|0);
+ if ($4) {
+  $$ph = 37988;
+  label = 6;
+ } else {
+  $5 = HEAP32[9833]|0;
+  $6 = ($5|0)==($0|0);
+  if ($6) {
+   $$ph = 39332;
+   label = 6;
+  } else {
+   $7 = HEAP32[9852]|0;
+   $8 = ($7|0)==($0|0);
+   if ($8) {
+    $$ph = 39408;
+    label = 6;
+   } else {
+    $9 = HEAP32[9984]|0;
+    $10 = ($9|0)==($0|0);
+    if ($10) {
+     $$ph = 39936;
+     label = 6;
+    } else {
+     $11 = HEAP32[10000]|0;
+     $12 = ($11|0)==($0|0);
+     if ($12) {
+      $$ph = 40000;
+      label = 6;
+     } else {
+      $22 = 0;$27 = 0;
+     }
+    }
+   }
+  }
+ }
+ if ((label|0) == 6) {
+  $13 = ((($$ph)) + 4|0);
+  $14 = HEAP8[$13>>0]|0;
+  $15 = $14 & 1;
+  $16 = ($15<<24>>24)==(0);
+  if ($16) {
+   $17 = ((($$ph)) + 52|0);
+   $18 = HEAP32[$17>>2]|0;
+   $19 = ($18|0)==(0|0);
+   if ($19) {
+    $22 = $$ph;$27 = 1;
+   } else {
+    $29 = (FUNCTION_TABLE_iiii[$18 & 127]($0,$1,$2)|0);
+    $30 = ($29|0)==(0);
+    $31 = $29 & 65535;
+    $32 = $31 | 16777216;
+    $spec$select = $30 ? 0 : $32;
+    return ($spec$select|0);
+   }
+  } else {
+   $22 = $$ph;$27 = 1;
+  }
+ }
+ $20 = ($2|0)==(0|0);
+ if ($20) {
+  return 16777228;
+ }
+ if ($27) {
+  $21 = ((($22)) + 4|0);
+  $23 = HEAP8[$21>>0]|0;
+  $24 = $23 & 1;
+  $25 = ($24<<24>>24)==(0);
+  if ($25) {
+   $28 = 59812;
+  } else {
+   label = 11;
+  }
+ } else {
+  label = 11;
+ }
+ if ((label|0) == 11) {
+  $26 = $27 ? 59773 : 59792;
+  $28 = $26;
+ }
+ FUNCTION_TABLE_viiii[$2 & 63](59927,$0,59834,$28);
+ return 16777228;
+}
+function __gcry_ecc_fill_in_curve($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$049 = 0, $$159 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 
0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 
= 0, $25 = 0, $26 = 0, $27 = 0;
+ var $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;
+ var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, 
$62 = 0, $63 = 0, $64 = 0;
+ var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, 
$72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, 
$80 = 0, $81 = 0, $82 = 0;
+ var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, 
$90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 
0, $or$cond51 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0;
+ var $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, 
$vararg_buffer4 = 0, $vararg_buffer7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(80|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;
+ $4 = sp + 76|0;
+ $5 = sp + 72|0;
+ $6 = sp + 68|0;
+ $7 = sp + 64|0;
+ $8 = sp + 60|0;
+ $9 = sp + 56|0;
+ $10 = sp + 52|0;
+ $11 = ($1|0)==(0|0);
+ L1: do {
+  if ($11) {
+   switch ($0|0) {
+   case 192:  {
+    $$159 = 1;
+    break L1;
+    break;
+   }
+   case 224:  {
+    $$159 = 2;
+    break L1;
+    break;
+   }
+   case 256:  {
+    $$159 = 3;
+    break L1;
+    break;
+   }
+   case 384:  {
+    $$159 = 4;
+    break L1;
+    break;
+   }
+   case 521:  {
+    $$159 = 5;
+    break L1;
+    break;
+   }
+   case 160:  {
+    $$159 = 6;
+    break L1;
+    break;
+   }
+   case 320:  {
+    $$159 = 10;
+    break L1;
+    break;
+   }
+   case 512:  {
+    $$159 = 12;
+    break L1;
+    break;
+   }
+   case 511:  {
+    $$159 = 17;
+    break L1;
+    break;
+   }
+   default: {
+    $$049 = 188;
+    STACKTOP = sp;return ($$049|0);
+   }
+   }
+  } else {
+   $12 = (_find_domain_parms_idx($1)|0);
+   $13 = ($12|0)<(0);
+   if ($13) {
+    $$049 = 188;
+    STACKTOP = sp;return ($$049|0);
+   } else {
+    $$159 = $12;
+   }
+  }
+ } while(0);
+ $14 = (240 + (($$159*48)|0)|0);
+ $15 = HEAP32[$14>>2]|0;
+ $16 = (__gcry_fips_mode()|0);
+ $17 = ($16|0)==(0);
+ $18 = (($$159) + -1)|0;
+ $19 = ($18>>>0)<(5);
+ $or$cond51 = $19 | $17;
+ if (!($or$cond51)) {
+  $$049 = 60;
+  STACKTOP = sp;return ($$049|0);
+ }
+ $20 = (((240 + (($$159*48)|0)|0)) + 12|0);
+ $21 = ($3|0)==(0|0);
+ if (!($21)) {
+  $22 = (((240 + (($$159*48)|0)|0)) + 4|0);
+  $23 = HEAP32[$22>>2]|0;
+  HEAP32[$3>>2] = $23;
+ }
+ $24 = ($2|0)==(0|0);
+ if ($24) {
+  $$049 = 0;
+  STACKTOP = sp;return ($$049|0);
+ }
+ $25 = HEAP32[$20>>2]|0;
+ HEAP32[$2>>2] = $25;
+ $26 = (((240 + (($$159*48)|0)|0)) + 16|0);
+ $27 = HEAP32[$26>>2]|0;
+ $28 = ((($2)) + 4|0);
+ HEAP32[$28>>2] = $27;
+ $29 = ((($2)) + 8|0);
+ $30 = HEAP32[$29>>2]|0;
+ $31 = ($30|0)==(0|0);
+ do {
+  if ($31) {
+   $32 = (((240 + (($$159*48)|0)|0)) + 20|0);
+   $33 = HEAP32[$32>>2]|0;
+   $34 = (__gcry_mpi_scan($10,4,$33,0,0)|0);
+   $35 = ($34|0)==(0);
+   if ($35) {
+    $37 = HEAP32[$10>>2]|0;
+    HEAP32[$29>>2] = $37;
+    break;
+   } else {
+    $36 = (_gpg_strerror($34)|0);
+    HEAP32[$vararg_buffer>>2] = $36;
+    __gcry_log_fatal(57702,$vararg_buffer);
+    // unreachable;
+   }
+  }
+ } while(0);
+ $38 = ((($2)) + 12|0);
+ $39 = HEAP32[$38>>2]|0;
+ $40 = ($39|0)==(0|0);
+ do {
+  if ($40) {
+   $41 = (((240 + (($$159*48)|0)|0)) + 24|0);
+   $42 = HEAP32[$41>>2]|0;
+   $43 = (__gcry_mpi_scan($9,4,$42,0,0)|0);
+   $44 = ($43|0)==(0);
+   if ($44) {
+    $46 = HEAP32[$9>>2]|0;
+    HEAP32[$38>>2] = $46;
+    break;
+   } else {
+    $45 = (_gpg_strerror($43)|0);
+    HEAP32[$vararg_buffer1>>2] = $45;
+    __gcry_log_fatal(57702,$vararg_buffer1);
+    // unreachable;
+   }
+  }
+ } while(0);
+ $47 = ((($2)) + 16|0);
+ $48 = HEAP32[$47>>2]|0;
+ $49 = ($48|0)==(0|0);
+ do {
+  if ($49) {
+   $50 = (((240 + (($$159*48)|0)|0)) + 28|0);
+   $51 = HEAP32[$50>>2]|0;
+   $52 = (__gcry_mpi_scan($8,4,$51,0,0)|0);
+   $53 = ($52|0)==(0);
+   if ($53) {
+    $55 = HEAP32[$8>>2]|0;
+    HEAP32[$47>>2] = $55;
+    break;
+   } else {
+    $54 = (_gpg_strerror($52)|0);
+    HEAP32[$vararg_buffer4>>2] = $54;
+    __gcry_log_fatal(57702,$vararg_buffer4);
+    // unreachable;
+   }
+  }
+ } while(0);
+ $56 = ((($2)) + 32|0);
+ $57 = HEAP32[$56>>2]|0;
+ $58 = ($57|0)==(0|0);
+ do {
+  if ($58) {
+   $59 = (((240 + (($$159*48)|0)|0)) + 32|0);
+   $60 = HEAP32[$59>>2]|0;
+   $61 = (__gcry_mpi_scan($7,4,$60,0,0)|0);
+   $62 = ($61|0)==(0);
+   if ($62) {
+    $64 = HEAP32[$7>>2]|0;
+    HEAP32[$56>>2] = $64;
+    break;
+   } else {
+    $63 = (_gpg_strerror($61)|0);
+    HEAP32[$vararg_buffer7>>2] = $63;
+    __gcry_log_fatal(57702,$vararg_buffer7);
+    // unreachable;
+   }
+  }
+ } while(0);
+ $65 = ((($2)) + 36|0);
+ $66 = HEAP32[$65>>2]|0;
+ $67 = ($66|0)==(0|0);
+ do {
+  if ($67) {
+   $68 = (((240 + (($$159*48)|0)|0)) + 44|0);
+   $69 = HEAP32[$68>>2]|0;
+   $70 = (__gcry_mpi_scan($6,4,$69,0,0)|0);
+   $71 = ($70|0)==(0);
+   if ($71) {
+    $73 = HEAP32[$6>>2]|0;
+    HEAP32[$65>>2] = $73;
+    break;
+   } else {
+    $72 = (_gpg_strerror($70)|0);
+    HEAP32[$vararg_buffer10>>2] = $72;
+    __gcry_log_fatal(57702,$vararg_buffer10);
+    // unreachable;
+   }
+  }
+ } while(0);
+ $74 = ((($2)) + 20|0);
+ $75 = HEAP32[$74>>2]|0;
+ $76 = ($75|0)==(0|0);
+ do {
+  if ($76) {
+   $77 = (((240 + (($$159*48)|0)|0)) + 36|0);
+   $78 = HEAP32[$77>>2]|0;
+   $79 = (__gcry_mpi_scan($5,4,$78,0,0)|0);
+   $80 = ($79|0)==(0);
+   if ($80) {
+    $82 = HEAP32[$5>>2]|0;
+    HEAP32[$74>>2] = $82;
+    break;
+   } else {
+    $81 = (_gpg_strerror($79)|0);
+    HEAP32[$vararg_buffer13>>2] = $81;
+    __gcry_log_fatal(57702,$vararg_buffer13);
+    // unreachable;
+   }
+  }
+ } while(0);
+ $83 = ((($2)) + 24|0);
+ $84 = HEAP32[$83>>2]|0;
+ $85 = ($84|0)==(0|0);
+ do {
+  if ($85) {
+   $86 = (((240 + (($$159*48)|0)|0)) + 40|0);
+   $87 = HEAP32[$86>>2]|0;
+   $88 = (__gcry_mpi_scan($4,4,$87,0,0)|0);
+   $89 = ($88|0)==(0);
+   if ($89) {
+    $91 = HEAP32[$4>>2]|0;
+    HEAP32[$83>>2] = $91;
+    break;
+   } else {
+    $90 = (_gpg_strerror($88)|0);
+    HEAP32[$vararg_buffer16>>2] = $90;
+    __gcry_log_fatal(57702,$vararg_buffer16);
+    // unreachable;
+   }
+  }
+ } while(0);
+ $92 = ((($2)) + 28|0);
+ $93 = HEAP32[$92>>2]|0;
+ $94 = ($93|0)==(0|0);
+ if ($94) {
+  $95 = (__gcry_mpi_alloc_set_ui(1)|0);
+  HEAP32[$92>>2] = $95;
+ }
+ $96 = ((($2)) + 40|0);
+ $97 = HEAP32[$96>>2]|0;
+ $98 = ($97|0)==(0|0);
+ if (!($98)) {
+  $$049 = 0;
+  STACKTOP = sp;return ($$049|0);
+ }
+ HEAP32[$96>>2] = $15;
+ $$049 = 0;
+ STACKTOP = sp;return ($$049|0);
+}
+function _find_domain_parms_idx($0) {
+ $0 = $0|0;
+ var $$018 = 0, $$024 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 
0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 
0, $23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0;
+ var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, 
$51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 
0, $6 = 0, $60 = 0, $61 = 0;
+ var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, 
$7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, 
$78 = 0, $79 = 0, $8 = 0;
+ var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, 
$88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $cond = 0, $spec$select = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_strcmp($0,57883)|0);
+ $2 = ($1|0)==(0);
+ L1: do {
+  if ($2) {
+   $$018 = 0;
+  } else {
+   $3 = (_strcmp($0,46867)|0);
+   $4 = ($3|0)==(0);
+   if ($4) {
+    $$018 = 1;
+   } else {
+    $55 = (_strcmp($0,47189)|0);
+    $56 = ($55|0)==(0);
+    if ($56) {
+     $$018 = 2;
+    } else {
+     $57 = (_strcmp($0,47554)|0);
+     $58 = ($57|0)==(0);
+     if ($58) {
+      $$018 = 3;
+     } else {
+      $59 = (_strcmp($0,47967)|0);
+      $60 = ($59|0)==(0);
+      if ($60) {
+       $$018 = 4;
+      } else {
+       $61 = (_strcmp($0,48572)|0);
+       $62 = ($61|0)==(0);
+       if ($62) {
+        $$018 = 5;
+       } else {
+        $63 = (_strcmp($0,49391)|0);
+        $64 = ($63|0)==(0);
+        if ($64) {
+         $$018 = 6;
+        } else {
+         $65 = (_strcmp($0,49665)|0);
+         $66 = ($65|0)==(0);
+         if ($66) {
+          $$018 = 7;
+         } else {
+          $67 = (_strcmp($0,49987)|0);
+          $68 = ($67|0)==(0);
+          if ($68) {
+           $$018 = 8;
+          } else {
+           $69 = (_strcmp($0,50357)|0);
+           $70 = ($69|0)==(0);
+           if ($70) {
+            $$018 = 9;
+           } else {
+            $71 = (_strcmp($0,50775)|0);
+            $72 = ($71|0)==(0);
+            if ($72) {
+             $$018 = 10;
+            } else {
+             $73 = (_strcmp($0,51289)|0);
+             $74 = ($73|0)==(0);
+             if ($74) {
+              $$018 = 11;
+             } else {
+              $75 = (_strcmp($0,51899)|0);
+              $76 = ($75|0)==(0);
+              if ($76) {
+               $$018 = 12;
+              } else {
+               $77 = (_strcmp($0,52701)|0);
+               $78 = ($77|0)==(0);
+               if ($78) {
+                $$018 = 13;
+               } else {
+                $79 = (_strcmp($0,53117)|0);
+                $80 = ($79|0)==(0);
+                if ($80) {
+                 $$018 = 14;
+                } else {
+                 $81 = (_strcmp($0,53540)|0);
+                 $82 = ($81|0)==(0);
+                 if ($82) {
+                  $$018 = 15;
+                 } else {
+                  $83 = (_strcmp($0,53896)|0);
+                  $84 = ($83|0)==(0);
+                  if ($84) {
+                   $$018 = 16;
+                  } else {
+                   $85 = (_strcmp($0,54319)|0);
+                   $86 = ($85|0)==(0);
+                   if ($86) {
+                    $$018 = 17;
+                   } else {
+                    $87 = (_strcmp($0,54988)|0);
+                    $88 = ($87|0)==(0);
+                    if ($88) {
+                     $$018 = 18;
+                    } else {
+                     $89 = (_strcmp($0,55790)|0);
+                     $90 = ($89|0)==(0);
+                     if ($90) {
+                      $$018 = 19;
+                      break;
+                     }
+                     $91 = (_strcmp($0,56592)|0);
+                     $92 = ($91|0)==(0);
+                     if ($92) {
+                      $$018 = 20;
+                      break;
+                     }
+                     $$024 = 0;$12 = 1296;
+                     while(1) {
+                      $7 = (((1296 + ($$024<<3)|0)) + 4|0);
+                      $8 = HEAP32[$7>>2]|0;
+                      $9 = (_strcmp($0,$8)|0);
+                      $10 = ($9|0)==(0);
+                      $6 = (($$024) + 1)|0;
+                      if ($10) {
+                       break;
+                      }
+                      $5 = (1296 + ($6<<3)|0);
+                      $cond = ($6|0)==(36);
+                      if ($cond) {
+                       $$018 = -1;
+                       break L1;
+                      } else {
+                       $$024 = $6;$12 = $5;
+                      }
+                     }
+                     $11 = HEAP32[$12>>2]|0;
+                     $13 = (_strcmp($11,57883)|0);
+                     $14 = ($13|0)==(0);
+                     if ($14) {
+                      $$018 = 0;
+                      break;
+                     }
+                     $15 = (_strcmp($11,46867)|0);
+                     $16 = ($15|0)==(0);
+                     if ($16) {
+                      $$018 = 1;
+                      break;
+                     }
+                     $17 = (_strcmp($11,47189)|0);
+                     $18 = ($17|0)==(0);
+                     if ($18) {
+                      $$018 = 2;
+                      break;
+                     }
+                     $19 = (_strcmp($11,47554)|0);
+                     $20 = ($19|0)==(0);
+                     if ($20) {
+                      $$018 = 3;
+                      break;
+                     }
+                     $21 = (_strcmp($11,47967)|0);
+                     $22 = ($21|0)==(0);
+                     if ($22) {
+                      $$018 = 4;
+                      break;
+                     }
+                     $23 = (_strcmp($11,48572)|0);
+                     $24 = ($23|0)==(0);
+                     if ($24) {
+                      $$018 = 5;
+                      break;
+                     }
+                     $25 = (_strcmp($11,49391)|0);
+                     $26 = ($25|0)==(0);
+                     if ($26) {
+                      $$018 = 6;
+                      break;
+                     }
+                     $27 = (_strcmp($11,49665)|0);
+                     $28 = ($27|0)==(0);
+                     if ($28) {
+                      $$018 = 7;
+                      break;
+                     }
+                     $29 = (_strcmp($11,49987)|0);
+                     $30 = ($29|0)==(0);
+                     if ($30) {
+                      $$018 = 8;
+                      break;
+                     }
+                     $31 = (_strcmp($11,50357)|0);
+                     $32 = ($31|0)==(0);
+                     if ($32) {
+                      $$018 = 9;
+                      break;
+                     }
+                     $33 = (_strcmp($11,50775)|0);
+                     $34 = ($33|0)==(0);
+                     if ($34) {
+                      $$018 = 10;
+                      break;
+                     }
+                     $35 = (_strcmp($11,51289)|0);
+                     $36 = ($35|0)==(0);
+                     if ($36) {
+                      $$018 = 11;
+                      break;
+                     }
+                     $37 = (_strcmp($11,51899)|0);
+                     $38 = ($37|0)==(0);
+                     if ($38) {
+                      $$018 = 12;
+                      break;
+                     }
+                     $39 = (_strcmp($11,52701)|0);
+                     $40 = ($39|0)==(0);
+                     if ($40) {
+                      $$018 = 13;
+                      break;
+                     }
+                     $41 = (_strcmp($11,53117)|0);
+                     $42 = ($41|0)==(0);
+                     if ($42) {
+                      $$018 = 14;
+                      break;
+                     }
+                     $43 = (_strcmp($11,53540)|0);
+                     $44 = ($43|0)==(0);
+                     if ($44) {
+                      $$018 = 15;
+                      break;
+                     }
+                     $45 = (_strcmp($11,53896)|0);
+                     $46 = ($45|0)==(0);
+                     if ($46) {
+                      $$018 = 16;
+                      break;
+                     }
+                     $47 = (_strcmp($11,54319)|0);
+                     $48 = ($47|0)==(0);
+                     if ($48) {
+                      $$018 = 17;
+                      break;
+                     }
+                     $49 = (_strcmp($11,54988)|0);
+                     $50 = ($49|0)==(0);
+                     if ($50) {
+                      $$018 = 18;
+                      break;
+                     }
+                     $51 = (_strcmp($11,55790)|0);
+                     $52 = ($51|0)==(0);
+                     if ($52) {
+                      $$018 = 19;
+                      break;
+                     }
+                     $53 = (_strcmp($11,56592)|0);
+                     $54 = ($53|0)==(0);
+                     $spec$select = $54 ? 20 : -1;
+                     return ($spec$select|0);
+                    }
+                   }
+                  }
+                 }
+                }
+               }
+              }
+             }
+            }
+           }
+          }
+         }
+        }
+       }
+      }
+     }
+    }
+   }
+  }
+ } while(0);
+ return ($$018|0);
+}
+function __gcry_ecc_update_curve_param($0,$1,$2,$3,$4,$5,$6,$7,$8) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ $7 = $7|0;
+ $8 = $8|0;
+ var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, 
$37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 
0, $46 = 0, $47 = 0, $48 = 0;
+ var $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;
+ var $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, $83 = 0, $9 = 0, 
$vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 
= 0;
+ var $vararg_buffer4 = 0, $vararg_buffer7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(80|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;
+ $9 = sp + 64|0;
+ $10 = sp + 60|0;
+ $11 = sp + 56|0;
+ $12 = sp + 52|0;
+ $13 = sp + 48|0;
+ $14 = sp + 44|0;
+ $15 = (_find_domain_parms_idx($0)|0);
+ $16 = ($15|0)<(0);
+ if ($16) {
+  $$1 = 188;
+  STACKTOP = sp;return ($$1|0);
+ }
+ $17 = ($6|0)==(0|0);
+ do {
+  if (!($17)) {
+   $18 = (((240 + (($15*48)|0)|0)) + 36|0);
+   $19 = HEAP32[$18>>2]|0;
+   $20 = ((($19)) + 2|0);
+   $21 = (_strlen($20)|0);
+   $22 = (((240 + (($15*48)|0)|0)) + 40|0);
+   $23 = HEAP32[$22>>2]|0;
+   $24 = ((($23)) + 2|0);
+   $25 = (_strlen($24)|0);
+   $26 = (($21) + 5)|0;
+   $27 = (($26) + ($25))|0;
+   $28 = (__gcry_malloc($27)|0);
+   $29 = ($28|0)==(0|0);
+   if ($29) {
+    $37 = (_gpg_err_code_from_syserror()|0);
+    $$1 = $37;
+    STACKTOP = sp;return ($$1|0);
+   }
+   $30 = ((($28)) + 4|0);
+   
;HEAP8[$28>>0]=HEAP8[57441>>0]|0;HEAP8[$28+1>>0]=HEAP8[57441+1>>0]|0;HEAP8[$28+2>>0]=HEAP8[57441+2>>0]|0;HEAP8[$28+3>>0]=HEAP8[57441+3>>0]|0;HEAP8[$28+4>>0]=HEAP8[57441+4>>0]|0;
+   $31 = (___stpcpy($30,$20)|0);
+   (_strcpy($31,$24)|0);
+   $32 = HEAP32[$6>>2]|0;
+   __gcry_mpi_release($32);
+   $33 = (__gcry_mpi_scan($14,4,$28,0,0)|0);
+   $34 = ($33|0)==(0);
+   if ($34) {
+    $36 = HEAP32[$14>>2]|0;
+    HEAP32[$6>>2] = $36;
+    __gcry_free($28);
+    break;
+   } else {
+    $35 = (_gpg_strerror($33)|0);
+    HEAP32[$vararg_buffer>>2] = $35;
+    __gcry_log_fatal(57702,$vararg_buffer);
+    // unreachable;
+   }
+  }
+ } while(0);
+ $38 = ($1|0)==(0|0);
+ if (!($38)) {
+  $39 = (((240 + (($15*48)|0)|0)) + 12|0);
+  $40 = HEAP32[$39>>2]|0;
+  HEAP32[$1>>2] = $40;
+ }
+ $41 = ($2|0)==(0|0);
+ if (!($41)) {
+  $42 = (((240 + (($15*48)|0)|0)) + 16|0);
+  $43 = HEAP32[$42>>2]|0;
+  HEAP32[$2>>2] = $43;
+ }
+ $44 = ($3|0)==(0|0);
+ do {
+  if (!($44)) {
+   $45 = HEAP32[$3>>2]|0;
+   __gcry_mpi_release($45);
+   $46 = (((240 + (($15*48)|0)|0)) + 20|0);
+   $47 = HEAP32[$46>>2]|0;
+   $48 = (__gcry_mpi_scan($13,4,$47,0,0)|0);
+   $49 = ($48|0)==(0);
+   if ($49) {
+    $51 = HEAP32[$13>>2]|0;
+    HEAP32[$3>>2] = $51;
+    break;
+   } else {
+    $50 = (_gpg_strerror($48)|0);
+    HEAP32[$vararg_buffer1>>2] = $50;
+    __gcry_log_fatal(57702,$vararg_buffer1);
+    // unreachable;
+   }
+  }
+ } while(0);
+ $52 = ($4|0)==(0|0);
+ do {
+  if (!($52)) {
+   $53 = HEAP32[$4>>2]|0;
+   __gcry_mpi_release($53);
+   $54 = (((240 + (($15*48)|0)|0)) + 24|0);
+   $55 = HEAP32[$54>>2]|0;
+   $56 = (__gcry_mpi_scan($12,4,$55,0,0)|0);
+   $57 = ($56|0)==(0);
+   if ($57) {
+    $59 = HEAP32[$12>>2]|0;
+    HEAP32[$4>>2] = $59;
+    break;
+   } else {
+    $58 = (_gpg_strerror($56)|0);
+    HEAP32[$vararg_buffer4>>2] = $58;
+    __gcry_log_fatal(57702,$vararg_buffer4);
+    // unreachable;
+   }
+  }
+ } while(0);
+ $60 = ($5|0)==(0|0);
+ do {
+  if (!($60)) {
+   $61 = HEAP32[$5>>2]|0;
+   __gcry_mpi_release($61);
+   $62 = (((240 + (($15*48)|0)|0)) + 28|0);
+   $63 = HEAP32[$62>>2]|0;
+   $64 = (__gcry_mpi_scan($11,4,$63,0,0)|0);
+   $65 = ($64|0)==(0);
+   if ($65) {
+    $67 = HEAP32[$11>>2]|0;
+    HEAP32[$5>>2] = $67;
+    break;
+   } else {
+    $66 = (_gpg_strerror($64)|0);
+    HEAP32[$vararg_buffer7>>2] = $66;
+    __gcry_log_fatal(57702,$vararg_buffer7);
+    // unreachable;
+   }
+  }
+ } while(0);
+ $68 = ($7|0)==(0|0);
+ do {
+  if (!($68)) {
+   $69 = HEAP32[$7>>2]|0;
+   __gcry_mpi_release($69);
+   $70 = (((240 + (($15*48)|0)|0)) + 32|0);
+   $71 = HEAP32[$70>>2]|0;
+   $72 = (__gcry_mpi_scan($10,4,$71,0,0)|0);
+   $73 = ($72|0)==(0);
+   if ($73) {
+    $75 = HEAP32[$10>>2]|0;
+    HEAP32[$7>>2] = $75;
+    break;
+   } else {
+    $74 = (_gpg_strerror($72)|0);
+    HEAP32[$vararg_buffer10>>2] = $74;
+    __gcry_log_fatal(57702,$vararg_buffer10);
+    // unreachable;
+   }
+  }
+ } while(0);
+ $76 = ($8|0)==(0|0);
+ if ($76) {
+  $$1 = 0;
+  STACKTOP = sp;return ($$1|0);
+ }
+ $77 = HEAP32[$8>>2]|0;
+ __gcry_mpi_release($77);
+ $78 = (((240 + (($15*48)|0)|0)) + 44|0);
+ $79 = HEAP32[$78>>2]|0;
+ $80 = (__gcry_mpi_scan($9,4,$79,0,0)|0);
+ $81 = ($80|0)==(0);
+ if (!($81)) {
+  $82 = (_gpg_strerror($80)|0);
+  HEAP32[$vararg_buffer13>>2] = $82;
+  __gcry_log_fatal(57702,$vararg_buffer13);
+  // unreachable;
+ }
+ $83 = HEAP32[$9>>2]|0;
+ HEAP32[$8>>2] = $83;
+ $$1 = 0;
+ STACKTOP = sp;return ($$1|0);
+}
+function __gcry_ecc_get_curve($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$072143 = 0, $$073142 = 0, $$1 = 0, $$174 = 0, $$275 = 0, $$3 = 0, $10 = 
0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 
0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0;
+ var $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, 
$119 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 
0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
+ var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, 
$31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 
0, $4 = 0, $40 = 0, $41 = 0;
+ var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, 
$5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, 
$58 = 0, $59 = 0, $6 = 0;
+ var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, 
$68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, 
$76 = 0, $77 = 0, $78 = 0;
+ var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, 
$86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, 
$94 = 0, $95 = 0, $96 = 0;
+ var $97 = 0, $98 = 0, $99 = 0, $trunc = 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, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, 
$vararg_ptr4 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, dest = 0, label = 0;
+ var sp = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(160|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;
+ $3 = sp + 156|0;
+ $4 = sp + 152|0;
+ $5 = sp + 148|0;
+ $6 = sp + 144|0;
+ $7 = sp + 140|0;
+ $8 = sp + 136|0;
+ $9 = sp + 132|0;
+ $10 = sp + 88|0;
+ $11 = sp + 84|0;
+ HEAP32[$11>>2] = 0;
+ dest=$10; stop=dest+44|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ $12 = ($2|0)!=(0|0);
+ if ($12) {
+  HEAP32[$2>>2] = 0;
+ }
+ $13 = ($0|0)==(0|0);
+ if ($13) {
+  $14 = ($1>>>0)<(22);
+  if (!($14)) {
+   $$1 = 0;
+   STACKTOP = sp;return ($$1|0);
+  }
+  $15 = (240 + (($1*48)|0)|0);
+  $16 = HEAP32[$15>>2]|0;
+  if (!($12)) {
+   $$1 = $16;
+   STACKTOP = sp;return ($$1|0);
+  }
+  $17 = (((240 + (($1*48)|0)|0)) + 4|0);
+  $18 = HEAP32[$17>>2]|0;
+  HEAP32[$2>>2] = $18;
+  $$1 = $16;
+  STACKTOP = sp;return ($$1|0);
+ }
+ $19 = ((($10)) + 8|0);
+ $20 = ((($10)) + 12|0);
+ $21 = ((($10)) + 16|0);
+ $22 = ((($10)) + 32|0);
+ $23 = ((($10)) + 36|0);
+ HEAP32[$vararg_buffer>>2] = $19;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $20;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = $21;
+ $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+ HEAP32[$vararg_ptr3>>2] = $11;
+ $vararg_ptr4 = ((($vararg_buffer)) + 16|0);
+ HEAP32[$vararg_ptr4>>2] = $22;
+ $vararg_ptr5 = ((($vararg_buffer)) + 20|0);
+ HEAP32[$vararg_ptr5>>2] = $23;
+ $vararg_ptr6 = ((($vararg_buffer)) + 24|0);
+ HEAP32[$vararg_ptr6>>2] = 0;
+ $24 = (__gcry_sexp_extract_param($0,0,57446,$vararg_buffer)|0);
+ $trunc = $24&65535;
+ L14: do {
+  switch ($trunc<<16>>16) {
+  case 68:  {
+   $25 = (__gcry_sexp_find_token($0,64745,5)|0);
+   $26 = ($25|0)==(0|0);
+   if ($26) {
+    $$275 = 0;$$3 = 0;
+   } else {
+    $27 = (__gcry_sexp_nth_string($25,1)|0);
+    __gcry_sexp_release($25);
+    $28 = ($27|0)==(0|0);
+    if ($28) {
+     $$275 = 0;$$3 = 0;
+    } else {
+     $29 = (_find_domain_parms_idx($27)|0);
+     __gcry_free($27);
+     $30 = ($29|0)>(-1);
+     if (!($30)) {
+      $$1 = 0;
+      STACKTOP = sp;return ($$1|0);
+     }
+     $31 = (240 + (($29*48)|0)|0);
+     $32 = HEAP32[$31>>2]|0;
+     if (!($12)) {
+      $$1 = $32;
+      STACKTOP = sp;return ($$1|0);
+     }
+     $33 = (((240 + (($29*48)|0)|0)) + 4|0);
+     $34 = HEAP32[$33>>2]|0;
+     HEAP32[$2>>2] = $34;
+     $$1 = $32;
+     STACKTOP = sp;return ($$1|0);
+    }
+   }
+   break;
+  }
+  case 0:  {
+   $35 = HEAP32[$11>>2]|0;
+   $36 = ($35|0)==(0|0);
+   if (!($36)) {
+    $37 = ((($10)) + 20|0);
+    __gcry_mpi_point_init($37);
+    $38 = HEAP32[$11>>2]|0;
+    $39 = (__gcry_ecc_os2ec($37,$38)|0);
+    $40 = ($39|0)==(0);
+    if (!($40)) {
+     $$275 = 0;$$3 = 0;
+     break L14;
+    }
+   }
+   $41 = ((($10)) + 20|0);
+   $42 = ((($10)) + 24|0);
+   $$072143 = 0;$$073142 = 0;$107 = 240;
+   while(1) {
+    __gcry_mpi_free($$073142);
+    $43 = (((240 + (($$072143*48)|0)|0)) + 20|0);
+    $44 = HEAP32[$43>>2]|0;
+    $45 = (__gcry_mpi_scan($8,4,$44,0,0)|0);
+    $46 = ($45|0)==(0);
+    if (!($46)) {
+     label = 17;
+     break;
+    }
+    $48 = HEAP32[$8>>2]|0;
+    $49 = HEAP32[$19>>2]|0;
+    $50 = (__gcry_mpi_cmp($48,$49)|0);
+    $51 = ($50|0)==(0);
+    if ($51) {
+     __gcry_mpi_free($48);
+     $52 = (((240 + (($$072143*48)|0)|0)) + 24|0);
+     $53 = HEAP32[$52>>2]|0;
+     $54 = (__gcry_mpi_scan($7,4,$53,0,0)|0);
+     $55 = ($54|0)==(0);
+     if (!($55)) {
+      label = 20;
+      break;
+     }
+     $57 = HEAP32[$7>>2]|0;
+     $58 = HEAP32[$20>>2]|0;
+     $59 = (__gcry_mpi_cmp($57,$58)|0);
+     $60 = ($59|0)==(0);
+     if ($60) {
+      __gcry_mpi_free($57);
+      $61 = (((240 + (($$072143*48)|0)|0)) + 28|0);
+      $62 = HEAP32[$61>>2]|0;
+      $63 = (__gcry_mpi_scan($6,4,$62,0,0)|0);
+      $64 = ($63|0)==(0);
+      if (!($64)) {
+       label = 23;
+       break;
+      }
+      $66 = HEAP32[$6>>2]|0;
+      $67 = HEAP32[$21>>2]|0;
+      $68 = (__gcry_mpi_cmp($66,$67)|0);
+      $69 = ($68|0)==(0);
+      if ($69) {
+       __gcry_mpi_free($66);
+       $70 = (((240 + (($$072143*48)|0)|0)) + 32|0);
+       $71 = HEAP32[$70>>2]|0;
+       $72 = (__gcry_mpi_scan($5,4,$71,0,0)|0);
+       $73 = ($72|0)==(0);
+       if (!($73)) {
+        label = 26;
+        break;
+       }
+       $75 = HEAP32[$5>>2]|0;
+       $76 = HEAP32[$22>>2]|0;
+       $77 = (__gcry_mpi_cmp($75,$76)|0);
+       $78 = ($77|0)==(0);
+       if ($78) {
+        __gcry_mpi_free($75);
+        $79 = (((240 + (($$072143*48)|0)|0)) + 44|0);
+        $80 = HEAP32[$79>>2]|0;
+        $81 = (__gcry_mpi_scan($4,4,$80,0,0)|0);
+        $82 = ($81|0)==(0);
+        if (!($82)) {
+         label = 29;
+         break;
+        }
+        $84 = HEAP32[$4>>2]|0;
+        $85 = HEAP32[$23>>2]|0;
+        $86 = (__gcry_mpi_cmp($84,$85)|0);
+        $87 = ($86|0)==(0);
+        if ($87) {
+         __gcry_mpi_free($84);
+         $88 = (((240 + (($$072143*48)|0)|0)) + 36|0);
+         $89 = HEAP32[$88>>2]|0;
+         $90 = (__gcry_mpi_scan($3,4,$89,0,0)|0);
+         $91 = ($90|0)==(0);
+         if (!($91)) {
+          label = 32;
+          break;
+         }
+         $93 = HEAP32[$3>>2]|0;
+         $94 = HEAP32[$41>>2]|0;
+         $95 = (__gcry_mpi_cmp($93,$94)|0);
+         $96 = ($95|0)==(0);
+         if ($96) {
+          __gcry_mpi_free($93);
+          $97 = (((240 + (($$072143*48)|0)|0)) + 40|0);
+          $98 = HEAP32[$97>>2]|0;
+          $99 = (__gcry_mpi_scan($9,4,$98,0,0)|0);
+          $100 = ($99|0)==(0);
+          if (!($100)) {
+           label = 35;
+           break;
+          }
+          $102 = HEAP32[$9>>2]|0;
+          $103 = HEAP32[$42>>2]|0;
+          $104 = (__gcry_mpi_cmp($102,$103)|0);
+          $105 = ($104|0)==(0);
+          if ($105) {
+           label = 37;
+           break;
+          } else {
+           $$174 = $102;
+          }
+         } else {
+          $$174 = $93;
+         }
+        } else {
+         $$174 = $84;
+        }
+       } else {
+        $$174 = $75;
+       }
+      } else {
+       $$174 = $66;
+      }
+     } else {
+      $$174 = $57;
+     }
+    } else {
+     $$174 = $48;
+    }
+    $110 = (($$072143) + 1)|0;
+    $111 = (240 + (($110*48)|0)|0);
+    $112 = ($110|0)==(21);
+    if ($112) {
+     $$275 = $$174;$$3 = 0;
+     break L14;
+    } else {
+     $$072143 = $110;$$073142 = $$174;$107 = $111;
+    }
+   }
+   if ((label|0) == 17) {
+    $47 = (_gpg_strerror($45)|0);
+    HEAP32[$vararg_buffer7>>2] = $47;
+    __gcry_log_fatal(57702,$vararg_buffer7);
+    // unreachable;
+   }
+   else if ((label|0) == 20) {
+    $56 = (_gpg_strerror($54)|0);
+    HEAP32[$vararg_buffer10>>2] = $56;
+    __gcry_log_fatal(57702,$vararg_buffer10);
+    // unreachable;
+   }
+   else if ((label|0) == 23) {
+    $65 = (_gpg_strerror($63)|0);
+    HEAP32[$vararg_buffer13>>2] = $65;
+    __gcry_log_fatal(57702,$vararg_buffer13);
+    // unreachable;
+   }
+   else if ((label|0) == 26) {
+    $74 = (_gpg_strerror($72)|0);
+    HEAP32[$vararg_buffer16>>2] = $74;
+    __gcry_log_fatal(57702,$vararg_buffer16);
+    // unreachable;
+   }
+   else if ((label|0) == 29) {
+    $83 = (_gpg_strerror($81)|0);
+    HEAP32[$vararg_buffer19>>2] = $83;
+    __gcry_log_fatal(57702,$vararg_buffer19);
+    // unreachable;
+   }
+   else if ((label|0) == 32) {
+    $92 = (_gpg_strerror($90)|0);
+    HEAP32[$vararg_buffer22>>2] = $92;
+    __gcry_log_fatal(57702,$vararg_buffer22);
+    // unreachable;
+   }
+   else if ((label|0) == 35) {
+    $101 = (_gpg_strerror($99)|0);
+    HEAP32[$vararg_buffer25>>2] = $101;
+    __gcry_log_fatal(57702,$vararg_buffer25);
+    // unreachable;
+   }
+   else if ((label|0) == 37) {
+    $106 = HEAP32[$107>>2]|0;
+    if (!($12)) {
+     $$275 = $102;$$3 = $106;
+     break L14;
+    }
+    $108 = (((240 + (($$072143*48)|0)|0)) + 4|0);
+    $109 = HEAP32[$108>>2]|0;
+    HEAP32[$2>>2] = $109;
+    $$275 = $102;$$3 = $106;
+    break L14;
+   }
+   break;
+  }
+  default: {
+   $$275 = 0;$$3 = 0;
+  }
+  }
+ } while(0);
+ __gcry_mpi_release($$275);
+ $113 = HEAP32[$19>>2]|0;
+ __gcry_mpi_release($113);
+ $114 = HEAP32[$20>>2]|0;
+ __gcry_mpi_release($114);
+ $115 = HEAP32[$21>>2]|0;
+ __gcry_mpi_release($115);
+ $116 = HEAP32[$11>>2]|0;
+ __gcry_mpi_release($116);
+ $117 = ((($10)) + 20|0);
+ __gcry_mpi_point_free_parts($117);
+ $118 = HEAP32[$22>>2]|0;
+ __gcry_mpi_release($118);
+ $119 = HEAP32[$23>>2]|0;
+ __gcry_mpi_release($119);
+ $$1 = $$3;
+ STACKTOP = sp;return ($$1|0);
+}
+function __gcry_mpi_ec_new($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$092 = 0, $$093 = 0, $$093148149 = 0, $$1 = 0, $$195 = 0, $$197 = 0, $$3 
= 0, $$sroa$0$1 = 0, $$sroa$0$1147150 = 0, $$sroa$0$1147151 = 0, $$sroa$0$2 = 
0, $$sroa$0$4 = 0, $$sroa$0$6 = 0, $$sroa$0116$0$ph = 0, $$sroa$0116$1 = 0, 
$$sroa$0116$1146152 = 0, $$sroa$0116$1146153 = 0, $$sroa$0116$2 = 0, 
$$sroa$0116$4 = 0, $$sroa$0116$6 = 0;
+ var $$sroa$0121$0$ph = 0, $$sroa$0121$1 = 0, $$sroa$0121$1145154 = 0, 
$$sroa$0121$1145155 = 0, $$sroa$0121$2 = 0, $$sroa$0121$4 = 0, $$sroa$0121$6 = 
0, $$sroa$0127$0$ph = 0, $$sroa$0127$1 = 0, $$sroa$0127$1144156 = 0, 
$$sroa$0127$1144157 = 0, $$sroa$0127$2 = 0, $$sroa$0127$4 = 0, $$sroa$0127$5 = 
0, $$sroa$0132$0$ph = 0, $$sroa$0132$1 = 0, $$sroa$0132$1143158 = 0, 
$$sroa$0132$1143159 = 0, $$sroa$0132$2 = 0, $$sroa$0132$4 = 0;
+ var $$sroa$0132$5 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 
= 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 
= 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0;
+ var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $13 = 0, $14 = 
0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 
= 0, $24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, 
$34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, 
$42 = 0, $43 = 0, $44 = 0;
+ var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, 
$52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, 
$60 = 0, $61 = 0, $62 = 0;
+ var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, 
$70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 
0, $79 = 0, $8 = 0, $80 = 0;
+ var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, 
$89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, 
$97 = 0, $98 = 0, $99 = 0;
+ var $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $3 = sp + 12|0;
+ $4 = sp + 8|0;
+ $5 = sp + 4|0;
+ $6 = sp;
+ HEAP32[$3>>2] = 0;
+ HEAP32[$4>>2] = 0;
+ HEAP32[$5>>2] = 0;
+ HEAP32[$6>>2] = 0;
+ HEAP32[$0>>2] = 0;
+ $7 = ($1|0)!=(0|0);
+ do {
+  if ($7) {
+   $8 = (__gcry_sexp_find_token($1,64705,0)|0);
+   $9 = ($8|0)==(0|0);
+   if (!($9)) {
+    $10 = (__gcry_pk_util_parse_flaglist($8,$6,0)|0);
+    __gcry_sexp_release($8);
+    $11 = ($10|0)==(0);
+    if (!($11)) {
+     $$3 = $10;$$sroa$0$6 = 0;$$sroa$0116$6 = 0;$$sroa$0121$6 = 
0;$$sroa$0127$5 = 0;$$sroa$0132$5 = 0;
+     break;
+    }
+   }
+   $12 = (__gcry_sexp_find_token($1,64745,5)|0);
+   $13 = ($12|0)==(0|0);
+   if (!($13)) {
+    $14 = HEAP32[$6>>2]|0;
+    $15 = $14 & 512;
+    $16 = ($15|0)==(0);
+    if ($16) {
+     $$093148149 = $12;$$sroa$0$1147150 = 0;$$sroa$0116$1146152 = 
0;$$sroa$0121$1145154 = 0;$$sroa$0127$1144156 = 0;$$sroa$0132$1143158 = 0;
+     label = 19;
+     break;
+    }
+   }
+   $17 = (__gcry_sexp_find_token($1,64769,0)|0);
+   $18 = ($17|0)==(0|0);
+   if ($18) {
+    $$sroa$0132$0$ph = 0;
+   } else {
+    $19 = (__gcry_sexp_nth_mpi($17,1,5)|0);
+    $20 = $19;
+    __gcry_sexp_release($17);
+    $21 = ($19|0)==(0|0);
+    if ($21) {
+     $$3 = 65;$$sroa$0$6 = 0;$$sroa$0116$6 = 0;$$sroa$0121$6 = 0;$$sroa$0127$5 
= 0;$$sroa$0132$5 = $20;
+     break;
+    } else {
+     $$sroa$0132$0$ph = $20;
+    }
+   }
+   $22 = (__gcry_sexp_find_token($1,60979,0)|0);
+   $23 = ($22|0)==(0|0);
+   if ($23) {
+    $$sroa$0127$0$ph = 0;
+   } else {
+    $24 = (__gcry_sexp_nth_mpi($22,1,5)|0);
+    $25 = $24;
+    __gcry_sexp_release($22);
+    $26 = ($24|0)==(0|0);
+    if ($26) {
+     $$3 = 65;$$sroa$0$6 = 0;$$sroa$0116$6 = 0;$$sroa$0121$6 = 0;$$sroa$0127$5 
= $25;$$sroa$0132$5 = $$sroa$0132$0$ph;
+     break;
+    } else {
+     $$sroa$0127$0$ph = $25;
+    }
+   }
+   $27 = (__gcry_sexp_find_token($1,57454,0)|0);
+   $28 = ($27|0)==(0|0);
+   if ($28) {
+    $$sroa$0121$0$ph = 0;
+   } else {
+    $29 = (__gcry_sexp_nth_mpi($27,1,5)|0);
+    $30 = $29;
+    __gcry_sexp_release($27);
+    $31 = ($29|0)==(0|0);
+    if ($31) {
+     $$3 = 65;$$sroa$0$6 = 0;$$sroa$0116$6 = 0;$$sroa$0121$6 = 
$30;$$sroa$0127$5 = $$sroa$0127$0$ph;$$sroa$0132$5 = $$sroa$0132$0$ph;
+     break;
+    } else {
+     $$sroa$0121$0$ph = $30;
+    }
+   }
+   $32 = (_point_from_keyparam($4,$1,57456,0)|0);
+   $33 = ($32|0)==(0);
+   if ($33) {
+    $34 = (__gcry_sexp_find_token($1,60983,0)|0);
+    $35 = ($34|0)==(0|0);
+    if ($35) {
+     $$sroa$0116$0$ph = 0;
+    } else {
+     $36 = (__gcry_sexp_nth_mpi($34,1,5)|0);
+     $37 = $36;
+     __gcry_sexp_release($34);
+     $38 = ($36|0)==(0|0);
+     if ($38) {
+      $$3 = 65;$$sroa$0$6 = 0;$$sroa$0116$6 = $37;$$sroa$0121$6 = 
$$sroa$0121$0$ph;$$sroa$0127$5 = $$sroa$0127$0$ph;$$sroa$0132$5 = 
$$sroa$0132$0$ph;
+      break;
+     } else {
+      $$sroa$0116$0$ph = $37;
+     }
+    }
+    $39 = (__gcry_sexp_find_token($1,57458,0)|0);
+    $40 = ($39|0)==(0|0);
+    if ($40) {
+     $$093 = $12;$$sroa$0$1 = 0;$$sroa$0116$1 = $$sroa$0116$0$ph;$$sroa$0121$1 
= $$sroa$0121$0$ph;$$sroa$0127$1 = $$sroa$0127$0$ph;$$sroa$0132$1 = 
$$sroa$0132$0$ph;
+     label = 17;
+    } else {
+     $41 = (__gcry_sexp_nth_mpi($39,1,5)|0);
+     $42 = $41;
+     __gcry_sexp_release($39);
+     $43 = ($41|0)==(0|0);
+     if ($43) {
+      $$3 = 65;$$sroa$0$6 = $42;$$sroa$0116$6 = $$sroa$0116$0$ph;$$sroa$0121$6 
= $$sroa$0121$0$ph;$$sroa$0127$5 = $$sroa$0127$0$ph;$$sroa$0132$5 = 
$$sroa$0132$0$ph;
+     } else {
+      $$093 = $12;$$sroa$0$1 = $42;$$sroa$0116$1 = 
$$sroa$0116$0$ph;$$sroa$0121$1 = $$sroa$0121$0$ph;$$sroa$0127$1 = 
$$sroa$0127$0$ph;$$sroa$0132$1 = $$sroa$0132$0$ph;
+      label = 17;
+     }
+    }
+   } else {
+    $$3 = $32;$$sroa$0$6 = 0;$$sroa$0116$6 = 0;$$sroa$0121$6 = 
$$sroa$0121$0$ph;$$sroa$0127$5 = $$sroa$0127$0$ph;$$sroa$0132$5 = 
$$sroa$0132$0$ph;
+   }
+  } else {
+   $$093 = 0;$$sroa$0$1 = 0;$$sroa$0116$1 = 0;$$sroa$0121$1 = 0;$$sroa$0127$1 
= 0;$$sroa$0132$1 = 0;
+   label = 17;
+  }
+ } while(0);
+ if ((label|0) == 17) {
+  $44 = ($$093|0)!=(0|0);
+  $45 = ($2|0)!=(0|0);
+  $or$cond = $45 | $44;
+  if ($or$cond) {
+   if ($44) {
+    $$093148149 = $$093;$$sroa$0$1147150 = $$sroa$0$1;$$sroa$0116$1146152 = 
$$sroa$0116$1;$$sroa$0121$1145154 = $$sroa$0121$1;$$sroa$0127$1144156 = 
$$sroa$0127$1;$$sroa$0132$1143158 = $$sroa$0132$1;
+    label = 19;
+   } else {
+    $$092 = 0;$$sroa$0$1147151 = $$sroa$0$1;$$sroa$0116$1146153 = 
$$sroa$0116$1;$$sroa$0121$1145155 = $$sroa$0121$1;$$sroa$0127$1144157 = 
$$sroa$0127$1;$$sroa$0132$1143159 = $$sroa$0132$1;
+    label = 20;
+   }
+  } else {
+   $$195 = 0;$$197 = 0;$$sroa$0$4 = $$sroa$0$1;$$sroa$0116$4 = 
$$sroa$0116$1;$$sroa$0121$4 = $$sroa$0121$1;$$sroa$0127$4 = 
$$sroa$0127$1;$$sroa$0132$4 = $$sroa$0132$1;
+   label = 37;
+  }
+ }
+ if ((label|0) == 19) {
+  $46 = (__gcry_sexp_nth_string($$093148149,1)|0);
+  __gcry_sexp_release($$093148149);
+  $47 = ($46|0)==(0|0);
+  if ($47) {
+   $$3 = 65;$$sroa$0$6 = $$sroa$0$1147150;$$sroa$0116$6 = 
$$sroa$0116$1146152;$$sroa$0121$6 = $$sroa$0121$1145154;$$sroa$0127$5 = 
$$sroa$0127$1144156;$$sroa$0132$5 = $$sroa$0132$1143158;
+  } else {
+   $$092 = $46;$$sroa$0$1147151 = $$sroa$0$1147150;$$sroa$0116$1146153 = 
$$sroa$0116$1146152;$$sroa$0121$1145155 = 
$$sroa$0121$1145154;$$sroa$0127$1144157 = 
$$sroa$0127$1144156;$$sroa$0132$1143159 = $$sroa$0132$1143158;
+   label = 20;
+  }
+ }
+ do {
+  if ((label|0) == 20) {
+   $48 = (__gcry_calloc(1,44)|0);
+   $49 = ($48|0)==(0|0);
+   if ($49) {
+    $50 = (_gpg_err_code_from_syserror()|0);
+    __gcry_free($$092);
+    $$3 = $50;$$sroa$0$6 = $$sroa$0$1147151;$$sroa$0116$6 = 
$$sroa$0116$1146153;$$sroa$0121$6 = $$sroa$0121$1145155;$$sroa$0127$5 = 
$$sroa$0127$1144157;$$sroa$0132$5 = $$sroa$0132$1143159;
+    break;
+   }
+   $51 = ($$092|0)==(0|0);
+   $52 = $51 ? $2 : $$092;
+   $53 = (__gcry_ecc_fill_in_curve(0,$52,$48,0)|0);
+   __gcry_free($$092);
+   $54 = ($53|0)==(0);
+   if (!($54)) {
+    __gcry_free($48);
+    $$3 = $53;$$sroa$0$6 = $$sroa$0$1147151;$$sroa$0116$6 = 
$$sroa$0116$1146153;$$sroa$0121$6 = $$sroa$0121$1145155;$$sroa$0127$5 = 
$$sroa$0127$1144157;$$sroa$0132$5 = $$sroa$0132$1143159;
+    break;
+   }
+   $55 = HEAP32[$48>>2]|0;
+   $56 = ((($48)) + 4|0);
+   $57 = HEAP32[$56>>2]|0;
+   $58 = ($$sroa$0132$1143159|0)==(0);
+   if ($58) {
+    $59 = ((($48)) + 8|0);
+    $60 = HEAP32[$59>>2]|0;
+    HEAP32[$59>>2] = 0;
+    $$sroa$0132$2 = $60;
+   } else {
+    $$sroa$0132$2 = $$sroa$0132$1143159;
+   }
+   $61 = ($$sroa$0127$1144157|0)==(0);
+   if ($61) {
+    $62 = ((($48)) + 12|0);
+    $63 = HEAP32[$62>>2]|0;
+    HEAP32[$62>>2] = 0;
+    $$sroa$0127$2 = $63;
+   } else {
+    $$sroa$0127$2 = $$sroa$0127$1144157;
+   }
+   $64 = ($$sroa$0121$1145155|0)==(0);
+   if ($64) {
+    $65 = ((($48)) + 16|0);
+    $66 = HEAP32[$65>>2]|0;
+    HEAP32[$65>>2] = 0;
+    $$sroa$0121$2 = $66;
+   } else {
+    $$sroa$0121$2 = $$sroa$0121$1145155;
+   }
+   $67 = HEAP32[$4>>2]|0;
+   $68 = ($67|0)==(0|0);
+   if ($68) {
+    $69 = ((($48)) + 20|0);
+    $70 = HEAP32[$69>>2]|0;
+    $71 = ((($48)) + 24|0);
+    $72 = HEAP32[$71>>2]|0;
+    $73 = ((($48)) + 28|0);
+    $74 = HEAP32[$73>>2]|0;
+    $75 = (__gcry_mpi_point_snatch_set(0,$70,$72,$74)|0);
+    HEAP32[$4>>2] = $75;
+    HEAP32[$69>>2] = 0;
+    HEAP32[$71>>2] = 0;
+    HEAP32[$73>>2] = 0;
+   }
+   $76 = ($$sroa$0116$1146153|0)==(0);
+   if ($76) {
+    $77 = ((($48)) + 32|0);
+    $78 = HEAP32[$77>>2]|0;
+    HEAP32[$77>>2] = 0;
+    $$sroa$0116$2 = $78;
+   } else {
+    $$sroa$0116$2 = $$sroa$0116$1146153;
+   }
+   $79 = ($$sroa$0$1147151|0)==(0);
+   if ($79) {
+    $80 = ((($48)) + 36|0);
+    $81 = HEAP32[$80>>2]|0;
+    HEAP32[$80>>2] = 0;
+    $$sroa$0$2 = $81;
+   } else {
+    $$sroa$0$2 = $$sroa$0$1147151;
+   }
+   __gcry_ecc_curve_free($48);
+   __gcry_free($48);
+   $$195 = $57;$$197 = $55;$$sroa$0$4 = $$sroa$0$2;$$sroa$0116$4 = 
$$sroa$0116$2;$$sroa$0121$4 = $$sroa$0121$2;$$sroa$0127$4 = 
$$sroa$0127$2;$$sroa$0132$4 = $$sroa$0132$2;
+   label = 37;
+  }
+ } while(0);
+ do {
+  if ((label|0) == 37) {
+   $82 = HEAP32[$6>>2]|0;
+   $83 = $$sroa$0132$4;
+   $84 = $$sroa$0127$4;
+   $85 = $$sroa$0121$4;
+   $86 = (__gcry_mpi_ec_p_new($3,$$197,$$195,$82,$83,$84,$85)|0);
+   $87 = ($86|0)==(0);
+   if ($87) {
+    $88 = HEAP32[$3>>2]|0;
+    $89 = (__gcry_ctx_get_pointer($88,1)|0);
+    $90 = ($$sroa$0121$4|0)==(0);
+    if (!($90)) {
+     $91 = ((($89)) + 24|0);
+     $92 = HEAP32[$91>>2]|0;
+     __gcry_mpi_free($92);
+     HEAP32[$91>>2] = $$sroa$0121$4;
+    }
+    $93 = HEAP32[$4>>2]|0;
+    $94 = ($93|0)==(0|0);
+    if (!($94)) {
+     $95 = ((($89)) + 28|0);
+     HEAP32[$95>>2] = $93;
+     HEAP32[$4>>2] = 0;
+    }
+    $96 = ($$sroa$0116$4|0)==(0);
+    if (!($96)) {
+     $97 = $$sroa$0116$4;
+     $98 = ((($89)) + 32|0);
+     HEAP32[$98>>2] = $97;
+    }
+    $99 = ($$sroa$0$4|0)==(0);
+    if (!($99)) {
+     $100 = $$sroa$0$4;
+     $101 = ((($89)) + 36|0);
+     HEAP32[$101>>2] = $100;
+    }
+    if ($7) {
+     $102 = (_point_from_keyparam($5,$1,64743,$89)|0);
+     $103 = ($102|0)==(0);
+     if (!($103)) {
+      $$3 = $102;$$sroa$0$6 = 0;$$sroa$0116$6 = 0;$$sroa$0121$6 = 
0;$$sroa$0127$5 = $$sroa$0127$4;$$sroa$0132$5 = $$sroa$0132$4;
+      break;
+     }
+     $104 = (__gcry_sexp_find_token($1,57460,0)|0);
+     $105 = ($104|0)==(0|0);
+     if ($105) {
+      $$1 = 0;
+     } else {
+      $106 = (__gcry_sexp_nth_mpi($104,1,5)|0);
+      __gcry_sexp_release($104);
+      $107 = ($106|0)==(0|0);
+      if ($107) {
+       $$3 = 65;$$sroa$0$6 = 0;$$sroa$0116$6 = 0;$$sroa$0121$6 = 
0;$$sroa$0127$5 = $$sroa$0127$4;$$sroa$0132$5 = $$sroa$0132$4;
+       break;
+      } else {
+       $$1 = $106;
+      }
+     }
+    } else {
+     $$1 = 0;
+    }
+    $108 = HEAP32[$5>>2]|0;
+    $109 = ($108|0)==(0|0);
+    if (!($109)) {
+     $110 = ((($89)) + 40|0);
+     HEAP32[$110>>2] = $108;
+     HEAP32[$5>>2] = 0;
+    }
+    $111 = ($$1|0)==(0|0);
+    if (!($111)) {
+     $112 = ((($89)) + 44|0);
+     HEAP32[$112>>2] = $$1;
+    }
+    $113 = HEAP32[$3>>2]|0;
+    HEAP32[$0>>2] = $113;
+    HEAP32[$3>>2] = 0;
+    $$3 = 0;$$sroa$0$6 = 0;$$sroa$0116$6 = 0;$$sroa$0121$6 = 0;$$sroa$0127$5 = 
$$sroa$0127$4;$$sroa$0132$5 = $$sroa$0132$4;
+   } else {
+    $$3 = $86;$$sroa$0$6 = $$sroa$0$4;$$sroa$0116$6 = 
$$sroa$0116$4;$$sroa$0121$6 = $$sroa$0121$4;$$sroa$0127$5 = 
$$sroa$0127$4;$$sroa$0132$5 = $$sroa$0132$4;
+   }
+  }
+ } while(0);
+ $114 = HEAP32[$3>>2]|0;
+ __gcry_ctx_release($114);
+ $115 = $$sroa$0132$5;
+ __gcry_mpi_free($115);
+ $116 = $$sroa$0127$5;
+ __gcry_mpi_free($116);
+ $117 = $$sroa$0121$6;
+ __gcry_mpi_free($117);
+ $118 = HEAP32[$4>>2]|0;
+ __gcry_mpi_point_release($118);
+ $119 = $$sroa$0116$6;
+ __gcry_mpi_free($119);
+ $120 = $$sroa$0$6;
+ __gcry_mpi_free($120);
+ $121 = HEAP32[$5>>2]|0;
+ __gcry_mpi_point_release($121);
+ __gcry_mpi_free(0);
+ STACKTOP = sp;return ($$3|0);
+}
+function _point_from_keyparam($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$058 = 0, $$084$ph = 0, $$085$ph = 0, $$160 = 0, $$183 = 0, $$2 = 0, $$3 
= 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0;
+ var $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, $5 = 0;
+ var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (__gcry_sexp_find_token($1,$2,0)|0);
+ $5 = ($4|0)==(0|0);
+ if ($5) {
+  $16 = (_strlen($2)|0);
+  $17 = (($16) + 3)|0;
+  $18 = (__gcry_malloc($17)|0);
+  $19 = ($18|0)==(0|0);
+  if ($19) {
+   $20 = (_gpg_err_code_from_syserror()|0);
+   $$2 = $20;
+   return ($$2|0);
+  }
+  $21 = (___stpcpy($18,$2)|0);
+  
;HEAP8[$21>>0]=HEAP8[57462>>0]|0;HEAP8[$21+1>>0]=HEAP8[57462+1>>0]|0;HEAP8[$21+2>>0]=HEAP8[57462+2>>0]|0;
+  $22 = (__gcry_sexp_find_token($1,$18,0)|0);
+  $23 = ($22|0)==(0|0);
+  if ($23) {
+   $$085$ph = 0;
+  } else {
+   $24 = (__gcry_sexp_nth_mpi($22,1,5)|0);
+   __gcry_sexp_release($22);
+   $25 = ($24|0)==(0|0);
+   if ($25) {
+    __gcry_free($18);
+    $$2 = 65;
+    return ($$2|0);
+   } else {
+    $$085$ph = $24;
+   }
+  }
+  $26 = (___stpcpy($18,$2)|0);
+  
;HEAP8[$26>>0]=HEAP8[57465>>0]|0;HEAP8[$26+1>>0]=HEAP8[57465+1>>0]|0;HEAP8[$26+2>>0]=HEAP8[57465+2>>0]|0;
+  $27 = (__gcry_sexp_find_token($1,$18,0)|0);
+  $28 = ($27|0)==(0|0);
+  if ($28) {
+   $$084$ph = 0;
+  } else {
+   $29 = (__gcry_sexp_nth_mpi($27,1,5)|0);
+   __gcry_sexp_release($27);
+   $30 = ($29|0)==(0|0);
+   if ($30) {
+    __gcry_mpi_free($$085$ph);
+    __gcry_free($18);
+    $$2 = 65;
+    return ($$2|0);
+   } else {
+    $$084$ph = $29;
+   }
+  }
+  $31 = (___stpcpy($18,$2)|0);
+  
;HEAP8[$31>>0]=HEAP8[57468>>0]|0;HEAP8[$31+1>>0]=HEAP8[57468+1>>0]|0;HEAP8[$31+2>>0]=HEAP8[57468+2>>0]|0;
+  $32 = (__gcry_sexp_find_token($1,$18,0)|0);
+  $33 = ($32|0)==(0|0);
+  if ($33) {
+   $36 = (__gcry_mpi_set_ui(0,1)|0);
+   $$183 = $36;
+  } else {
+   $34 = (__gcry_sexp_nth_mpi($32,1,5)|0);
+   __gcry_sexp_release($32);
+   $35 = ($34|0)==(0|0);
+   if ($35) {
+    __gcry_mpi_free($$084$ph);
+    __gcry_mpi_free($$085$ph);
+    __gcry_free($18);
+    $$2 = 65;
+    return ($$2|0);
+   } else {
+    $$183 = $34;
+   }
+  }
+  $37 = ($$085$ph|0)!=(0|0);
+  $38 = ($$084$ph|0)!=(0|0);
+  $or$cond = $37 & $38;
+  if ($or$cond) {
+   $39 = (__gcry_mpi_point_snatch_set(0,$$085$ph,$$084$ph,$$183)|0);
+   $$160 = $39;
+  } else {
+   __gcry_mpi_free($$085$ph);
+   __gcry_mpi_free($$084$ph);
+   __gcry_mpi_free($$183);
+   $$160 = 0;
+  }
+  __gcry_free($18);
+  $$3 = $$160;
+ } else {
+  $6 = (__gcry_sexp_nth_mpi($4,1,8)|0);
+  __gcry_sexp_release($4);
+  $7 = ($6|0)==(0|0);
+  if ($7) {
+   $$2 = 65;
+   return ($$2|0);
+  }
+  $8 = (__gcry_mpi_point_new(0)|0);
+  $9 = ($3|0)==(0|0);
+  if ($9) {
+   label = 6;
+  } else {
+   $10 = ((($3)) + 4|0);
+   $11 = HEAP32[$10>>2]|0;
+   $12 = ($11|0)==(1);
+   if ($12) {
+    $13 = (__gcry_ecc_eddsa_decodepoint($6,$3,$8,0,0)|0);
+    $$058 = $13;
+   } else {
+    label = 6;
+   }
+  }
+  if ((label|0) == 6) {
+   $14 = (__gcry_ecc_os2ec($8,$6)|0);
+   $$058 = $14;
+  }
+  __gcry_mpi_free($6);
+  $15 = ($$058|0)==(0);
+  if ($15) {
+   $$3 = $8;
+  } else {
+   __gcry_mpi_point_release($8);
+   $$2 = $$058;
+   return ($$2|0);
+  }
+ }
+ $40 = ($$3|0)==(0|0);
+ if ($40) {
+  $$2 = 0;
+  return ($$2|0);
+ }
+ HEAP32[$0>>2] = $$3;
+ $$2 = 0;
+ return ($$2|0);
+}
+function __gcry_ecc_get_param_sexp($0) {
+ $0 = $0|0;
+ var $$019 = 0, $$020 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 
0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 
0, $23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0;
+ var $44 = 0, $45 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer 
= 0, $vararg_buffer1 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, 
$vararg_ptr6 = 0, $vararg_ptr7 = 0, dest = 0, label = 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(128|0);
+ $vararg_buffer1 = sp + 40|0;
+ $vararg_buffer = sp + 32|0;
+ $1 = sp + 112|0;
+ $2 = sp + 68|0;
+ $3 = sp;
+ $4 = sp + 64|0;
+ dest=$2; stop=dest+44|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ $5 = (__gcry_ecc_fill_in_curve(0,$0,$2,$1)|0);
+ $6 = ($5|0)==(0);
+ if (!($6)) {
+  $$019 = 0;
+  STACKTOP = sp;return ($$019|0);
+ }
+ $7 = (__gcry_mpi_new(0)|0);
+ $8 = (__gcry_mpi_new(0)|0);
+ $9 = ((($2)) + 8|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ((($2)) + 12|0);
+ $12 = HEAP32[$11>>2]|0;
+ $13 = (__gcry_mpi_ec_p_internal_new(0,0,0,$10,$12,0)|0);
+ $14 = ((($2)) + 20|0);
+ $15 = (__gcry_mpi_ec_get_affine($7,$8,$14,$13)|0);
+ $16 = ($15|0)==(0);
+ if (!($16)) {
+  __gcry_log_fatal(57471,$vararg_buffer);
+  // unreachable;
+ }
+ __gcry_mpi_ec_free($13);
+ __gcry_mpi_point_free_parts($14);
+ $17 = HEAP32[$9>>2]|0;
+ HEAP32[$3>>2] = $17;
+ $18 = HEAP32[$11>>2]|0;
+ $19 = ((($3)) + 4|0);
+ HEAP32[$19>>2] = $18;
+ $20 = ((($2)) + 16|0);
+ $21 = HEAP32[$20>>2]|0;
+ $22 = ((($3)) + 8|0);
+ HEAP32[$22>>2] = $21;
+ $23 = $17;
+ $24 = (__gcry_ecc_ec2os($7,$8,$23)|0);
+ $25 = ((($3)) + 12|0);
+ HEAP32[$25>>2] = $24;
+ $26 = ((($2)) + 32|0);
+ $27 = HEAP32[$26>>2]|0;
+ $28 = ((($3)) + 16|0);
+ HEAP32[$28>>2] = $27;
+ $29 = ((($2)) + 36|0);
+ $30 = HEAP32[$29>>2]|0;
+ $31 = ((($3)) + 20|0);
+ HEAP32[$31>>2] = $30;
+ $32 = ((($3)) + 24|0);
+ HEAP32[$32>>2] = 0;
+ __gcry_mpi_free($7);
+ __gcry_mpi_free($8);
+ $33 = $18;
+ $34 = $21;
+ $35 = $27;
+ $36 = $30;
+ HEAP32[$vararg_buffer1>>2] = $23;
+ $vararg_ptr3 = ((($vararg_buffer1)) + 4|0);
+ HEAP32[$vararg_ptr3>>2] = $33;
+ $vararg_ptr4 = ((($vararg_buffer1)) + 8|0);
+ HEAP32[$vararg_ptr4>>2] = $34;
+ $vararg_ptr5 = ((($vararg_buffer1)) + 12|0);
+ HEAP32[$vararg_ptr5>>2] = $24;
+ $vararg_ptr6 = ((($vararg_buffer1)) + 16|0);
+ HEAP32[$vararg_ptr6>>2] = $35;
+ $vararg_ptr7 = ((($vararg_buffer1)) + 20|0);
+ HEAP32[$vararg_ptr7>>2] = $36;
+ $37 = (__gcry_sexp_build($4,0,57520,$vararg_buffer1)|0);
+ $38 = ($37|0)==(0);
+ if (!($38)) {
+  HEAP32[$4>>2] = 0;
+ }
+ $39 = ($17|0)==(0);
+ if (!($39)) {
+  $$020 = 0;$40 = $23;
+  while(1) {
+   __gcry_mpi_release($40);
+   $41 = (($$020) + 1)|0;
+   $42 = (($3) + ($41<<2)|0);
+   $43 = HEAP32[$42>>2]|0;
+   $44 = ($43|0)==(0|0);
+   if ($44) {
+    break;
+   } else {
+    $$020 = $41;$40 = $43;
+   }
+  }
+ }
+ $45 = HEAP32[$4>>2]|0;
+ $$019 = $45;
+ STACKTOP = sp;return ($$019|0);
+}
+function __gcry_ecc_get_mpi($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$1 = 0, $$pre = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 
= 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 
= 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
+ var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 
= 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 
= 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
+ var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 
= 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 
= 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
+ var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, 
$159 = 0, $16 = 0, $160 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 
0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, 
$34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, 
$42 = 0, $43 = 0, $44 = 0;
+ var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, 
$52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, 
$60 = 0, $61 = 0, $62 = 0;
+ var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, 
$70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 
0, $79 = 0, $8 = 0, $80 = 0;
+ var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, 
$89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, 
$97 = 0, $98 = 0, $99 = 0;
+ var $or$cond = 0, $or$cond11 = 0, $or$cond13 = 0, $or$cond15 = 0, $or$cond17 
= 0, $or$cond19 = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $3 = sp + 4|0;
+ $4 = sp;
+ $5 = HEAP8[$0>>0]|0;
+ $6 = ($5<<24>>24)==(0);
+ L1: do {
+  if ($6) {
+   $$1 = 0;
+  } else {
+   $7 = (_strcmp($0,64769)|0);
+   $8 = ($7|0)==(0);
+   if ($8) {
+    $9 = ((($1)) + 16|0);
+    $10 = HEAP32[$9>>2]|0;
+    $11 = ($10|0)==(0|0);
+    if (!($11)) {
+     $12 = ((($10)) + 12|0);
+     $13 = HEAP32[$12>>2]|0;
+     $14 = $13 & 32;
+     $15 = ($14|0)==(0);
+     $16 = ($2|0)!=(0);
+     $or$cond = $16 | $15;
+     if (!($or$cond)) {
+      $$1 = $10;
+      break;
+     }
+     $17 = (__gcry_mpi_copy($10)|0);
+     $$1 = $17;
+     break;
+    }
+   }
+   $18 = (_strcmp($0,60979)|0);
+   $19 = ($18|0)==(0);
+   if ($19) {
+    $20 = ((($1)) + 20|0);
+    $21 = HEAP32[$20>>2]|0;
+    $22 = ($21|0)==(0|0);
+    if (!($22)) {
+     $23 = ((($21)) + 12|0);
+     $24 = HEAP32[$23>>2]|0;
+     $25 = $24 & 32;
+     $26 = ($25|0)==(0);
+     $27 = ($2|0)!=(0);
+     $or$cond3 = $27 | $26;
+     if (!($or$cond3)) {
+      $$1 = $21;
+      break;
+     }
+     $28 = (__gcry_mpi_copy($21)|0);
+     $$1 = $28;
+     break;
+    }
+   }
+   $29 = (_strcmp($0,57454)|0);
+   $30 = ($29|0)==(0);
+   if ($30) {
+    $31 = ((($1)) + 24|0);
+    $32 = HEAP32[$31>>2]|0;
+    $33 = ($32|0)==(0|0);
+    if (!($33)) {
+     $34 = ((($32)) + 12|0);
+     $35 = HEAP32[$34>>2]|0;
+     $36 = $35 & 32;
+     $37 = ($36|0)==(0);
+     $38 = ($2|0)!=(0);
+     $or$cond5 = $38 | $37;
+     if (!($or$cond5)) {
+      $$1 = $32;
+      break;
+     }
+     $39 = (__gcry_mpi_copy($32)|0);
+     $$1 = $39;
+     break;
+    }
+   }
+   $40 = (_strcmp($0,60983)|0);
+   $41 = ($40|0)==(0);
+   if ($41) {
+    $42 = ((($1)) + 32|0);
+    $43 = HEAP32[$42>>2]|0;
+    $44 = ($43|0)==(0|0);
+    if (!($44)) {
+     $45 = ((($43)) + 12|0);
+     $46 = HEAP32[$45>>2]|0;
+     $47 = $46 & 32;
+     $48 = ($47|0)==(0);
+     $49 = ($2|0)!=(0);
+     $or$cond7 = $49 | $48;
+     if (!($or$cond7)) {
+      $$1 = $43;
+      break;
+     }
+     $50 = (__gcry_mpi_copy($43)|0);
+     $$1 = $50;
+     break;
+    }
+   }
+   $51 = (_strcmp($0,57458)|0);
+   $52 = ($51|0)==(0);
+   if ($52) {
+    $53 = ((($1)) + 36|0);
+    $54 = HEAP32[$53>>2]|0;
+    $55 = ($54|0)==(0|0);
+    if (!($55)) {
+     $56 = ((($54)) + 12|0);
+     $57 = HEAP32[$56>>2]|0;
+     $58 = $57 & 32;
+     $59 = ($58|0)==(0);
+     $60 = ($2|0)!=(0);
+     $or$cond9 = $60 | $59;
+     if (!($or$cond9)) {
+      $$1 = $54;
+      break;
+     }
+     $61 = (__gcry_mpi_copy($54)|0);
+     $$1 = $61;
+     break;
+    }
+   }
+   $62 = (_strcmp($0,57460)|0);
+   $63 = ($62|0)==(0);
+   if ($63) {
+    $64 = ((($1)) + 44|0);
+    $65 = HEAP32[$64>>2]|0;
+    $66 = ($65|0)==(0|0);
+    if (!($66)) {
+     $67 = ((($65)) + 12|0);
+     $68 = HEAP32[$67>>2]|0;
+     $69 = $68 & 32;
+     $70 = ($69|0)==(0);
+     $71 = ($2|0)!=(0);
+     $or$cond11 = $71 | $70;
+     if (!($or$cond11)) {
+      $$1 = $65;
+      break;
+     }
+     $72 = (__gcry_mpi_copy($65)|0);
+     $$1 = $72;
+     break;
+    }
+   }
+   $73 = (_strcmp($0,57568)|0);
+   $74 = ($73|0)==(0);
+   if ($74) {
+    $75 = ((($1)) + 28|0);
+    $76 = HEAP32[$75>>2]|0;
+    $77 = ($76|0)==(0|0);
+    if (!($77)) {
+     $78 = HEAP32[$76>>2]|0;
+     $79 = ($78|0)==(0|0);
+     if (!($79)) {
+      $80 = ((($78)) + 12|0);
+      $81 = HEAP32[$80>>2]|0;
+      $82 = $81 & 32;
+      $83 = ($82|0)==(0);
+      $84 = ($2|0)!=(0);
+      $or$cond13 = $84 | $83;
+      if (!($or$cond13)) {
+       $$1 = $78;
+       break;
+      }
+      $85 = (__gcry_mpi_copy($78)|0);
+      $$1 = $85;
+      break;
+     }
+    }
+   }
+   $86 = (_strcmp($0,57572)|0);
+   $87 = ($86|0)==(0);
+   if ($87) {
+    $88 = ((($1)) + 28|0);
+    $89 = HEAP32[$88>>2]|0;
+    $90 = ($89|0)==(0|0);
+    if (!($90)) {
+     $91 = ((($89)) + 4|0);
+     $92 = HEAP32[$91>>2]|0;
+     $93 = ($92|0)==(0|0);
+     if (!($93)) {
+      $94 = ((($92)) + 12|0);
+      $95 = HEAP32[$94>>2]|0;
+      $96 = $95 & 32;
+      $97 = ($96|0)==(0);
+      $98 = ($2|0)!=(0);
+      $or$cond15 = $98 | $97;
+      if (!($or$cond15)) {
+       $$1 = $92;
+       break;
+      }
+      $99 = (__gcry_mpi_copy($92)|0);
+      $$1 = $99;
+      break;
+     }
+    }
+   }
+   $100 = (_strcmp($0,57576)|0);
+   $101 = ($100|0)==(0);
+   if ($101) {
+    $102 = ((($1)) + 40|0);
+    $103 = HEAP32[$102>>2]|0;
+    $104 = ($103|0)==(0|0);
+    if (!($104)) {
+     $105 = HEAP32[$103>>2]|0;
+     $106 = ($105|0)==(0|0);
+     if (!($106)) {
+      $107 = ((($105)) + 12|0);
+      $108 = HEAP32[$107>>2]|0;
+      $109 = $108 & 32;
+      $110 = ($109|0)==(0);
+      $111 = ($2|0)!=(0);
+      $or$cond17 = $111 | $110;
+      if (!($or$cond17)) {
+       $$1 = $105;
+       break;
+      }
+      $112 = (__gcry_mpi_copy($105)|0);
+      $$1 = $112;
+      break;
+     }
+    }
+   }
+   $113 = (_strcmp($0,57580)|0);
+   $114 = ($113|0)==(0);
+   if ($114) {
+    $115 = ((($1)) + 40|0);
+    $116 = HEAP32[$115>>2]|0;
+    $117 = ($116|0)==(0|0);
+    if (!($117)) {
+     $118 = ((($116)) + 4|0);
+     $119 = HEAP32[$118>>2]|0;
+     $120 = ($119|0)==(0|0);
+     if (!($120)) {
+      $121 = ((($1)) + 28|0);
+      $122 = HEAP32[$121>>2]|0;
+      $123 = ((($122)) + 4|0);
+      $124 = HEAP32[$123>>2]|0;
+      $125 = ($124|0)==(0|0);
+      if (!($125)) {
+       $126 = ((($124)) + 12|0);
+       $127 = HEAP32[$126>>2]|0;
+       $128 = $127 & 32;
+       $129 = ($128|0)==(0);
+       $130 = ($2|0)!=(0);
+       $or$cond19 = $130 | $129;
+       if (!($or$cond19)) {
+        $$1 = $119;
+        break;
+       }
+      }
+      $131 = (__gcry_mpi_copy($119)|0);
+      $$1 = $131;
+      break;
+     }
+    }
+   }
+   $132 = (_strcmp($0,57456)|0);
+   $133 = ($132|0)==(0);
+   if ($133) {
+    $134 = ((($1)) + 28|0);
+    $135 = HEAP32[$134>>2]|0;
+    $136 = ($135|0)==(0|0);
+    if (!($136)) {
+     $137 = (__gcry_mpi_ec_ec2os($135,$1)|0);
+     $$1 = $137;
+     break;
+    }
+   }
+   $138 = ($5<<24>>24)==(113);
+   if ($138) {
+    $139 = ((($0)) + 1|0);
+    $140 = HEAP8[$139>>0]|0;
+    switch ($140<<24>>24) {
+    case 64: case 0:  {
+     break;
+    }
+    default: {
+     $$1 = 0;
+     break L1;
+    }
+    }
+    $141 = ((($1)) + 40|0);
+    $142 = HEAP32[$141>>2]|0;
+    $143 = ($142|0)==(0|0);
+    if ($143) {
+     $144 = (__gcry_ecc_compute_public(0,$1,0,0)|0);
+     HEAP32[$141>>2] = $144;
+     $145 = ($144|0)==(0|0);
+     if ($145) {
+      $$1 = 0;
+      break;
+     }
+     $$pre = HEAP8[$139>>0]|0;
+     $147 = $$pre;$148 = $144;
+    } else {
+     $147 = $140;$148 = $142;
+    }
+    $146 = ($147<<24>>24)==(64);
+    if (!($146)) {
+     $149 = (__gcry_mpi_ec_ec2os($148,$1)|0);
+     $$1 = $149;
+     break;
+    }
+    $150 = ((($0)) + 2|0);
+    $151 = (_strcmp($150,67434)|0);
+    $152 = ($151|0)==(0);
+    if ($152) {
+     $153 = HEAP32[$1>>2]|0;
+     $154 = ($153|0)==(2);
+     if ($154) {
+      $155 = (__gcry_ecc_eddsa_encodepoint($148,$1,0,0,0,$3,$4)|0);
+      $156 = ($155|0)==(0);
+      if ($156) {
+       $157 = HEAP32[$3>>2]|0;
+       $158 = HEAP32[$4>>2]|0;
+       $159 = $158 << 3;
+       $160 = (__gcry_mpi_set_opaque(0,$157,$159)|0);
+       $$1 = $160;
+       break;
+      } else {
+       $$1 = 0;
+       break;
+      }
+     } else {
+      $$1 = 0;
+     }
+    } else {
+     $$1 = 0;
+    }
+   } else {
+    $$1 = 0;
+   }
+  }
+ } while(0);
+ STACKTOP = sp;return ($$1|0);
+}
+function __gcry_ecc_get_point($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, 
$25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp 
= 0;
+ sp = STACKTOP;
+ $2 = (_strcmp($0,57456)|0);
+ $3 = ($2|0)==(0);
+ if ($3) {
+  $4 = ((($1)) + 28|0);
+  $5 = HEAP32[$4>>2]|0;
+  $6 = ($5|0)==(0|0);
+  if (!($6)) {
+   $7 = (__gcry_mpi_point_new(0)|0);
+   $8 = HEAP32[$7>>2]|0;
+   $9 = HEAP32[$5>>2]|0;
+   (__gcry_mpi_set($8,$9)|0);
+   $10 = ((($7)) + 4|0);
+   $11 = HEAP32[$10>>2]|0;
+   $12 = ((($5)) + 4|0);
+   $13 = HEAP32[$12>>2]|0;
+   (__gcry_mpi_set($11,$13)|0);
+   $14 = ((($7)) + 8|0);
+   $15 = HEAP32[$14>>2]|0;
+   $16 = ((($5)) + 8|0);
+   $17 = HEAP32[$16>>2]|0;
+   (__gcry_mpi_set($15,$17)|0);
+   $$0 = $7;
+   return ($$0|0);
+  }
+ }
+ $18 = (_strcmp($0,64743)|0);
+ $19 = ($18|0)==(0);
+ if (!($19)) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $20 = ((($1)) + 40|0);
+ $21 = HEAP32[$20>>2]|0;
+ $22 = ($21|0)==(0|0);
+ if ($22) {
+  $23 = (__gcry_ecc_compute_public(0,$1,0,0)|0);
+  HEAP32[$20>>2] = $23;
+  $24 = ($23|0)==(0|0);
+  if ($24) {
+   $$0 = 0;
+   return ($$0|0);
+  } else {
+   $28 = $23;
+  }
+ } else {
+  $28 = $21;
+ }
+ $25 = (__gcry_mpi_point_new(0)|0);
+ $26 = HEAP32[$25>>2]|0;
+ $27 = HEAP32[$28>>2]|0;
+ (__gcry_mpi_set($26,$27)|0);
+ $29 = ((($25)) + 4|0);
+ $30 = HEAP32[$29>>2]|0;
+ $31 = ((($28)) + 4|0);
+ $32 = HEAP32[$31>>2]|0;
+ (__gcry_mpi_set($30,$32)|0);
+ $33 = ((($25)) + 8|0);
+ $34 = HEAP32[$33>>2]|0;
+ $35 = ((($28)) + 8|0);
+ $36 = HEAP32[$35>>2]|0;
+ (__gcry_mpi_set($34,$36)|0);
+ $$0 = $25;
+ return ($$0|0);
+}
+function __gcry_ecc_eddsa_encodepoint($0,$1,$2,$3,$4,$5,$6) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ var $$0 = 0, $$0$i = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$7 = 0, $8 = 0, $9 = 0, $not$$i = 0, $or$cond$i = 0, $vararg_buffer = 0, label 
= 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $7 = sp + 4|0;
+ $8 = ($2|0)!=(0|0);
+ if ($8) {
+  $12 = $2;
+ } else {
+  $9 = (__gcry_mpi_new(0)|0);
+  $12 = $9;
+ }
+ $10 = ($3|0)!=(0|0);
+ if ($10) {
+  $13 = $3;
+ } else {
+  $11 = (__gcry_mpi_new(0)|0);
+  $13 = $11;
+ }
+ $14 = (__gcry_mpi_ec_get_affine($12,$13,$0,$1)|0);
+ $15 = ($14|0)==(0);
+ if ($15) {
+  $16 = ((($1)) + 12|0);
+  $17 = HEAP32[$16>>2]|0;
+  $18 = $17 >>> 3;
+  $19 = ($4|0)!=(0);
+  $20 = $19&1;
+  $21 = $19 << 31 >> 31;
+  $22 = (__gcry_mpi_get_buffer_extra($13,$18,$21,$7,0)|0);
+  $23 = ($22|0)==(0|0);
+  if ($23) {
+   $24 = (_gpg_err_code_from_syserror()|0);
+   $$0$i = $24;
+  } else {
+   $25 = (__gcry_mpi_test_bit($12,0)|0);
+   $26 = ($25|0)!=(0);
+   $27 = HEAP32[$7>>2]|0;
+   $28 = ($27|0)!=(0);
+   $or$cond$i = $26 & $28;
+   $not$$i = $19 ^ 1;
+   $29 = $not$$i << 31 >> 31;
+   $30 = (($27) + ($29))|0;
+   $31 = (($22) + ($30)|0);
+   if ($or$cond$i) {
+    $32 = HEAP8[$31>>0]|0;
+    $33 = $32 | -128;
+    HEAP8[$31>>0] = $33;
+   }
+   if ($19) {
+    HEAP8[$22>>0] = 64;
+   }
+   HEAP32[$5>>2] = $22;
+   $34 = HEAP32[$7>>2]|0;
+   $35 = (($34) + ($20))|0;
+   HEAP32[$6>>2] = $35;
+   $$0$i = 0;
+  }
+  $$0 = $$0$i;
+ } else {
+  __gcry_log_error(57584,$vararg_buffer);
+  $$0 = 63;
+ }
+ if (!($8)) {
+  __gcry_mpi_free($12);
+ }
+ if ($10) {
+  STACKTOP = sp;return ($$0|0);
+ }
+ __gcry_mpi_free($13);
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_ecc_eddsa_ensure_compact($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $$0$i = 0, $$024 = 0, $$pre = 0, $10 = 0, $11 = 0, $12 = 0, $13 
= 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 
= 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0;
+ var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$or$cond = 0, $or$cond$i = 0, $phitmp = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $2 = sp + 12|0;
+ $3 = sp + 8|0;
+ $4 = sp + 4|0;
+ $5 = sp;
+ $6 = ($0|0)==(0|0);
+ if ($6) {
+  $$0 = 65;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $7 = ((($0)) + 12|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = $8 & 4;
+ $10 = ($9|0)==(0);
+ if ($10) {
+  $$0 = 65;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $11 = (__gcry_mpi_get_opaque($0,$3)|0);
+ $12 = ($11|0)==(0|0);
+ if ($12) {
+  $$0 = 65;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $13 = HEAP32[$3>>2]|0;
+ $14 = (($13) + 7)|0;
+ $15 = $14 >>> 3;
+ HEAP32[$3>>2] = $15;
+ $16 = ($14>>>0)<(16);
+ $17 = $14 & 8;
+ $18 = ($17|0)==(0);
+ $or$cond = $16 | $18;
+ if ($or$cond) {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $19 = HEAP8[$11>>0]|0;
+ switch ($19<<24>>24) {
+ case 4:  {
+  $20 = ((($11)) + 1|0);
+  $21 = (($15) + -1)|0;
+  $22 = $21 >>> 1;
+  $23 = (__gcry_mpi_scan($4,1,$20,$22,0)|0);
+  $24 = ($23|0)==(0);
+  if (!($24)) {
+   $$0 = $23;
+   STACKTOP = sp;return ($$0|0);
+  }
+  $25 = HEAP32[$3>>2]|0;
+  $26 = (($25) + -1)|0;
+  $27 = $26 >>> 1;
+  $28 = (($20) + ($27)|0);
+  $29 = (__gcry_mpi_scan($5,1,$28,$27,0)|0);
+  $30 = ($29|0)==(0);
+  $31 = HEAP32[$4>>2]|0;
+  if (!($30)) {
+   __gcry_mpi_free($31);
+   $$0 = $29;
+   STACKTOP = sp;return ($$0|0);
+  }
+  $32 = HEAP32[$5>>2]|0;
+  $33 = $1 >>> 3;
+  $34 = (__gcry_mpi_get_buffer_extra($32,$33,0,$2,0)|0);
+  $35 = ($34|0)==(0|0);
+  if ($35) {
+   $36 = (_gpg_err_code_from_syserror()|0);
+   $$0$i = $36;$$024 = 0;
+  } else {
+   $37 = (__gcry_mpi_test_bit($31,0)|0);
+   $38 = ($37|0)!=(0);
+   $39 = HEAP32[$2>>2]|0;
+   $40 = ($39|0)!=(0);
+   $or$cond$i = $38 & $40;
+   $41 = (($39) + -1)|0;
+   $42 = (($34) + ($41)|0);
+   if ($or$cond$i) {
+    $43 = HEAP8[$42>>0]|0;
+    $44 = $43 | -128;
+    HEAP8[$42>>0] = $44;
+    $$pre = HEAP32[$2>>2]|0;
+    $45 = $$pre;
+   } else {
+    $45 = $39;
+   }
+   $phitmp = $45 << 3;
+   $$0$i = 0;$$024 = $phitmp;
+  }
+  $46 = HEAP32[$4>>2]|0;
+  __gcry_mpi_free($46);
+  $47 = HEAP32[$5>>2]|0;
+  __gcry_mpi_free($47);
+  $48 = ($$0$i|0)==(0);
+  if (!($48)) {
+   $$0 = $$0$i;
+   STACKTOP = sp;return ($$0|0);
+  }
+  (__gcry_mpi_set_opaque($0,$34,$$024)|0);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+  break;
+ }
+ case 64:  {
+  $49 = ((($11)) + 1|0);
+  $50 = (($13) + -1)|0;
+  $51 = $50 & -8;
+  $52 = (__gcry_mpi_set_opaque_copy($0,$49,$51)|0);
+  $53 = ($52|0)==(0|0);
+  if (!($53)) {
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+  $54 = (_gpg_err_code_from_syserror()|0);
+  $$0 = $54;
+  STACKTOP = sp;return ($$0|0);
+  break;
+ }
+ default: {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ }
+ return (0)|0;
+}
+function __gcry_ecc_eddsa_recover_x($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$080 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $27 = 0;
+ var $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;
+ var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0, $57 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$spec$select = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $4 = sp + 16|0;
+ $5 = sp + 12|0;
+ $6 = ((($3)) + 4|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($7|0)==(1);
+ if (!($8)) {
+  $$0 = 69;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $9 = HEAP32[18111]|0;
+ $10 = ($9|0)==(0|0);
+ do {
+  if ($10) {
+   $11 = (__gcry_mpi_scan($5,4,57637,0,0)|0);
+   $12 = ($11|0)==(0);
+   if ($12) {
+    $14 = HEAP32[$5>>2]|0;
+    HEAP32[18111] = $14;
+    break;
+   } else {
+    $13 = (_gpg_strerror($11)|0);
+    HEAP32[$vararg_buffer>>2] = $13;
+    __gcry_log_fatal(57702,$vararg_buffer);
+    // unreachable;
+   }
+  }
+ } while(0);
+ $15 = HEAP32[18112]|0;
+ $16 = ($15|0)==(0|0);
+ if ($16) {
+  $17 = (__gcry_mpi_set_ui(0,7)|0);
+  HEAP32[18112] = $17;
+ }
+ $18 = (__gcry_mpi_new(0)|0);
+ $19 = (__gcry_mpi_new(0)|0);
+ $20 = (__gcry_mpi_new(0)|0);
+ $21 = (__gcry_mpi_new(0)|0);
+ $22 = ((($3)) + 16|0);
+ $23 = HEAP32[$22>>2]|0;
+ __gcry_mpi_mulm($18,$1,$1,$23);
+ $24 = ((($3)) + 24|0);
+ $25 = HEAP32[$24>>2]|0;
+ $26 = HEAP32[$22>>2]|0;
+ __gcry_mpi_mulm($19,$25,$18,$26);
+ __gcry_mpi_sub_ui($18,$18,1);
+ __gcry_mpi_add_ui($19,$19,1);
+ $27 = (__gcry_mpi_const(3)|0);
+ $28 = HEAP32[$22>>2]|0;
+ __gcry_mpi_powm($20,$19,$27,$28);
+ $29 = HEAP32[18112]|0;
+ $30 = HEAP32[$22>>2]|0;
+ __gcry_mpi_powm($21,$19,$29,$30);
+ $31 = HEAP32[$22>>2]|0;
+ __gcry_mpi_mulm($21,$21,$18,$31);
+ $32 = HEAP32[18111]|0;
+ $33 = HEAP32[$22>>2]|0;
+ __gcry_mpi_powm($21,$21,$32,$33);
+ $34 = HEAP32[$22>>2]|0;
+ __gcry_mpi_mulm($21,$21,$18,$34);
+ $35 = HEAP32[$22>>2]|0;
+ __gcry_mpi_mulm($0,$21,$20,$35);
+ $36 = HEAP32[$22>>2]|0;
+ __gcry_mpi_mulm($21,$0,$0,$36);
+ $37 = HEAP32[$22>>2]|0;
+ __gcry_mpi_mulm($21,$21,$19,$37);
+ __gcry_mpi_neg($21,$21);
+ $38 = (__gcry_mpi_cmp($21,$18)|0);
+ $39 = ($38|0)==(0);
+ if ($39) {
+  $40 = HEAP32[18113]|0;
+  $41 = ($40|0)==(0|0);
+  do {
+   if ($41) {
+    $42 = (__gcry_mpi_scan($4,4,57737,0,0)|0);
+    $43 = ($42|0)==(0);
+    if ($43) {
+     $45 = HEAP32[$4>>2]|0;
+     HEAP32[18113] = $45;
+     $46 = $45;
+     $48 = $46;
+     break;
+    } else {
+     $44 = (_gpg_strerror($42)|0);
+     HEAP32[$vararg_buffer1>>2] = $44;
+     __gcry_log_fatal(57702,$vararg_buffer1);
+     // unreachable;
+    }
+   } else {
+    $48 = $40;
+   }
+  } while(0);
+  $47 = HEAP32[$22>>2]|0;
+  __gcry_mpi_mulm($0,$0,$48,$47);
+  $49 = HEAP32[$22>>2]|0;
+  __gcry_mpi_mulm($21,$0,$0,$49);
+  $50 = HEAP32[$22>>2]|0;
+  __gcry_mpi_mulm($21,$21,$19,$50);
+  __gcry_mpi_neg($21,$21);
+  $51 = (__gcry_mpi_cmp($21,$18)|0);
+  $52 = ($51|0)==(0);
+  $spec$select = $52 ? 65 : 0;
+  $$080 = $spec$select;
+ } else {
+  $$080 = 0;
+ }
+ $53 = (__gcry_mpi_test_bit($0,0)|0);
+ $54 = ($2|0)!=(0);
+ $55 = $54&1;
+ $56 = ($53|0)==($55|0);
+ if (!($56)) {
+  $57 = HEAP32[$22>>2]|0;
+  __gcry_mpi_sub($0,$57,$0);
+ }
+ __gcry_mpi_free($21);
+ __gcry_mpi_free($20);
+ __gcry_mpi_free($19);
+ __gcry_mpi_free($18);
+ $$0 = $$080;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_ecc_eddsa_decodepoint($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$016$i = 0, $$016$i66 = 0, $$057 = 0, $$058 = 0, $$061 = 0, $$160 = 0, 
$$2 = 0, $$lobit = 0, $$pr$pre = 0, $$pre = 0, $$pre70 = 0, $$pre71 = 0, $10 = 
0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0;
+ var $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 
= 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $12 = 0, $13 = 0, $14 = 
0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
+ var $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;
+ var $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;
+ var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, 
$65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, 
$73 = 0, $74 = 0, $75 = 0;
+ var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, 
$83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, 
$91 = 0, $92 = 0, $93 = 0;
+ var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond$i = 0, 
$exitcond$i67 = 0, $or$cond = 0, $or$cond$i = 0, $or$cond64 = 0, label = 0, sp 
= 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $5 = sp + 12|0;
+ $6 = sp + 8|0;
+ $7 = sp + 4|0;
+ $8 = sp;
+ $9 = ($0|0)==(0|0);
+ if ($9) {
+  label = 24;
+ } else {
+  $10 = ((($0)) + 12|0);
+  $11 = HEAP32[$10>>2]|0;
+  $12 = $11 & 4;
+  $13 = ($12|0)==(0);
+  if ($13) {
+   label = 24;
+  } else {
+   $14 = (__gcry_mpi_get_opaque($0,$6)|0);
+   $15 = ($14|0)==(0|0);
+   if ($15) {
+    $$2 = 65;
+    STACKTOP = sp;return ($$2|0);
+   }
+   $16 = HEAP32[$6>>2]|0;
+   $17 = (($16) + 7)|0;
+   $18 = $17 >>> 3;
+   HEAP32[$6>>2] = $18;
+   $19 = ($17>>>0)<(16);
+   $20 = $17 & 8;
+   $21 = ($20|0)==(0);
+   $or$cond64 = $19 | $21;
+   L7: do {
+    if ($or$cond64) {
+     $$057 = $14;$66 = $18;
+    } else {
+     $22 = HEAP8[$14>>0]|0;
+     switch ($22<<24>>24) {
+     case 4:  {
+      break;
+     }
+     case 64:  {
+      $63 = (($18) + -1)|0;
+      HEAP32[$6>>2] = $63;
+      $64 = ((($14)) + 1|0);
+      $$057 = $64;$66 = $63;
+      break L7;
+      break;
+     }
+     default: {
+      $$057 = $14;$66 = $18;
+      break L7;
+     }
+     }
+     $23 = ((($14)) + 1|0);
+     $24 = (($18) + -1)|0;
+     $25 = $24 >>> 1;
+     $26 = (__gcry_mpi_scan($7,1,$23,$25,0)|0);
+     $27 = ($26|0)==(0);
+     L12: do {
+      if ($27) {
+       $28 = HEAP32[$6>>2]|0;
+       $29 = (($28) + -1)|0;
+       $30 = $29 >>> 1;
+       $31 = (($23) + ($30)|0);
+       $32 = (__gcry_mpi_scan($8,1,$31,$30,0)|0);
+       $33 = ($32|0)==(0);
+       if (!($33)) {
+        $34 = HEAP32[$7>>2]|0;
+        __gcry_mpi_free($34);
+        $$061 = $32;
+        break;
+       }
+       $35 = ($3|0)==(0|0);
+       do {
+        if (!($35)) {
+         $36 = HEAP32[$7>>2]|0;
+         $37 = HEAP32[$8>>2]|0;
+         $38 = ((($1)) + 12|0);
+         $39 = HEAP32[$38>>2]|0;
+         $40 = $39 >>> 3;
+         $41 = (__gcry_mpi_get_buffer_extra($37,$40,0,$5,0)|0);
+         $42 = ($41|0)==(0|0);
+         if ($42) {
+          $52 = (_gpg_err_code_from_syserror()|0);
+          $53 = ($52|0)==(0);
+          if ($53) {
+           break;
+          }
+          $54 = HEAP32[$7>>2]|0;
+          __gcry_mpi_free($54);
+          $55 = HEAP32[$8>>2]|0;
+          __gcry_mpi_free($55);
+          $$061 = $52;
+          break L12;
+         }
+         $43 = (__gcry_mpi_test_bit($36,0)|0);
+         $44 = ($43|0)!=(0);
+         $45 = HEAP32[$5>>2]|0;
+         $46 = ($45|0)!=(0);
+         $or$cond$i = $44 & $46;
+         $47 = (($45) + -1)|0;
+         $48 = (($41) + ($47)|0);
+         if ($or$cond$i) {
+          $49 = HEAP8[$48>>0]|0;
+          $50 = $49 | -128;
+          HEAP8[$48>>0] = $50;
+          $$pre = HEAP32[$5>>2]|0;
+          $51 = $$pre;
+         } else {
+          $51 = $45;
+         }
+         HEAP32[$3>>2] = $41;
+         HEAP32[$4>>2] = $51;
+        }
+       } while(0);
+       $56 = HEAP32[$2>>2]|0;
+       $57 = HEAP32[$7>>2]|0;
+       __gcry_mpi_snatch($56,$57);
+       $58 = ((($2)) + 4|0);
+       $59 = HEAP32[$58>>2]|0;
+       $60 = HEAP32[$8>>2]|0;
+       __gcry_mpi_snatch($59,$60);
+       $61 = ((($2)) + 8|0);
+       $62 = HEAP32[$61>>2]|0;
+       (__gcry_mpi_set_ui($62,1)|0);
+       $$061 = 0;
+      } else {
+       $$061 = $26;
+      }
+     } while(0);
+     $$2 = $$061;
+     STACKTOP = sp;return ($$2|0);
+    }
+   } while(0);
+   $65 = ($66|0)==(0);
+   $67 = $65 ? 1 : $66;
+   $68 = (__gcry_malloc($67)|0);
+   $69 = ($68|0)==(0|0);
+   if ($69) {
+    $70 = (_gpg_err_code_from_syserror()|0);
+    $$2 = $70;
+    STACKTOP = sp;return ($$2|0);
+   }
+   $71 = HEAP32[$6>>2]|0;
+   _memcpy(($68|0),($$057|0),($71|0))|0;
+   $72 = $71 >>> 1;
+   $73 = ($72|0)==(0);
+   if ($73) {
+    $$160 = $68;$88 = $71;
+   } else {
+    $74 = (($71) + -1)|0;
+    $$016$i = 0;
+    while(1) {
+     $75 = (($68) + ($$016$i)|0);
+     $76 = HEAP8[$75>>0]|0;
+     $77 = (($74) - ($$016$i))|0;
+     $78 = (($68) + ($77)|0);
+     $79 = HEAP8[$78>>0]|0;
+     HEAP8[$75>>0] = $79;
+     HEAP8[$78>>0] = $76;
+     $80 = (($$016$i) + 1)|0;
+     $exitcond$i = ($80|0)==($72|0);
+     if ($exitcond$i) {
+      $$160 = $68;$88 = $71;
+      break;
+     } else {
+      $$016$i = $80;
+     }
+    }
+   }
+  }
+ }
+ do {
+  if ((label|0) == 24) {
+   $81 = ((($1)) + 12|0);
+   $82 = HEAP32[$81>>2]|0;
+   $83 = $82 >>> 3;
+   $84 = (__gcry_mpi_get_buffer($0,$83,$6,0)|0);
+   $85 = ($84|0)==(0|0);
+   if (!($85)) {
+    $$pr$pre = HEAP32[$6>>2]|0;
+    $$160 = $84;$88 = $$pr$pre;
+    break;
+   }
+   $86 = (_gpg_err_code_from_syserror()|0);
+   $$2 = $86;
+   STACKTOP = sp;return ($$2|0);
+  }
+ } while(0);
+ $87 = ($88|0)==(0);
+ if ($87) {
+  $$058 = 0;$95 = 0;
+ } else {
+  $89 = HEAP8[$$160>>0]|0;
+  $90 = $89&255;
+  $$lobit = $90 >>> 7;
+  $91 = $90 & 127;
+  $92 = $91&255;
+  HEAP8[$$160>>0] = $92;
+  $$pre70 = HEAP32[$6>>2]|0;
+  $$058 = $$lobit;$95 = $$pre70;
+ }
+ $93 = ((($2)) + 4|0);
+ $94 = HEAP32[$93>>2]|0;
+ __gcry_mpi_set_buffer($94,$$160,$95,0);
+ $96 = ($3|0)==(0|0);
+ if ($96) {
+  __gcry_free($$160);
+ } else {
+  $97 = ($$058|0)!=(0);
+  $98 = HEAP32[$6>>2]|0;
+  $99 = ($98|0)!=(0);
+  $or$cond = $97 & $99;
+  if ($or$cond) {
+   $100 = HEAP8[$$160>>0]|0;
+   $101 = $100 | -128;
+   HEAP8[$$160>>0] = $101;
+   $$pre71 = HEAP32[$6>>2]|0;
+   $103 = $$pre71;
+  } else {
+   $103 = $98;
+  }
+  $102 = $103 >>> 1;
+  $104 = ($102|0)==(0);
+  if (!($104)) {
+   $105 = (($103) + -1)|0;
+   $$016$i66 = 0;
+   while(1) {
+    $106 = (($$160) + ($$016$i66)|0);
+    $107 = HEAP8[$106>>0]|0;
+    $108 = (($105) - ($$016$i66))|0;
+    $109 = (($$160) + ($108)|0);
+    $110 = HEAP8[$109>>0]|0;
+    HEAP8[$106>>0] = $110;
+    HEAP8[$109>>0] = $107;
+    $111 = (($$016$i66) + 1)|0;
+    $exitcond$i67 = ($111|0)==($102|0);
+    if ($exitcond$i67) {
+     break;
+    } else {
+     $$016$i66 = $111;
+    }
+   }
+  }
+  HEAP32[$3>>2] = $$160;
+  $112 = ($4|0)==(0|0);
+  if (!($112)) {
+   $113 = HEAP32[$6>>2]|0;
+   HEAP32[$4>>2] = $113;
+  }
+ }
+ $114 = HEAP32[$2>>2]|0;
+ $115 = HEAP32[$93>>2]|0;
+ $116 = (__gcry_ecc_eddsa_recover_x($114,$115,$$058,$1)|0);
+ $117 = ((($2)) + 8|0);
+ $118 = HEAP32[$117>>2]|0;
+ (__gcry_mpi_set_ui($118,1)|0);
+ $$2 = $116;
+ STACKTOP = sp;return ($$2|0);
+}
+function __gcry_ecc_eddsa_compute_h_d($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$mask = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 
0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 
= 0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, 
$43 = 0, $44 = 0, $45 = 0;
+ var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $63 = 0;
+ var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, 
$71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 
0, $8 = 0, $80 = 0, $81 = 0;
+ var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, 
$9 = 0, $90 = 0, $91 = 0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $3 = sp + 32|0;
+ $4 = sp;
+ HEAP32[$0>>2] = 0;
+ $5 = ((($2)) + 12|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = (($6) + 7)|0;
+ $$mask = $7 & -8;
+ $8 = ($$mask|0)==(256);
+ if (!($8)) {
+  $$0 = 63;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $9 = (__gcry_calloc_secure(2,32)|0);
+ $10 = ($9|0)==(0|0);
+ if ($10) {
+  $11 = (_gpg_err_code_from_syserror()|0);
+  $$0 = $11;
+  STACKTOP = sp;return ($$0|0);
+ }
+ 
;HEAP32[$4>>2]=0|0;HEAP32[$4+4>>2]=0|0;HEAP32[$4+8>>2]=0|0;HEAP32[$4+12>>2]=0|0;HEAP32[$4+16>>2]=0|0;HEAP32[$4+20>>2]=0|0;HEAP32[$4+24>>2]=0|0;HEAP32[$4+28>>2]=0|0;
+ $12 = (__gcry_mpi_get_buffer($1,0,$3,0)|0);
+ $13 = ($12|0)==(0|0);
+ if ($13) {
+  __gcry_free($9);
+  $14 = (_gpg_err_code_from_syserror()|0);
+  $$0 = $14;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $15 = ((($4)) + 12|0);
+ HEAP32[$15>>2] = $9;
+ $16 = ((($4)) + 4|0);
+ HEAP32[$16>>2] = 0;
+ $17 = HEAP32[$3>>2]|0;
+ $18 = ($17>>>0)<(32);
+ $19 = (32 - ($17))|0;
+ $spec$select = $18 ? $19 : 0;
+ $20 = ((($4)) + 8|0);
+ HEAP32[$20>>2] = $spec$select;
+ $21 = ((($4)) + 28|0);
+ HEAP32[$21>>2] = $12;
+ $22 = ((($4)) + 20|0);
+ HEAP32[$22>>2] = 0;
+ $23 = ((($4)) + 24|0);
+ HEAP32[$23>>2] = $17;
+ $24 = (__gcry_md_hash_buffers(10,0,$9,$4,2)|0);
+ __gcry_free($12);
+ $25 = ($24|0)==(0);
+ if ($25) {
+  $26 = HEAP8[$9>>0]|0;
+  $27 = ((($9)) + 31|0);
+  $28 = HEAP8[$27>>0]|0;
+  $29 = ((($9)) + 1|0);
+  $30 = HEAP8[$29>>0]|0;
+  $31 = ((($9)) + 30|0);
+  $32 = HEAP8[$31>>0]|0;
+  HEAP8[$29>>0] = $32;
+  HEAP8[$31>>0] = $30;
+  $33 = ((($9)) + 2|0);
+  $34 = HEAP8[$33>>0]|0;
+  $35 = ((($9)) + 29|0);
+  $36 = HEAP8[$35>>0]|0;
+  HEAP8[$33>>0] = $36;
+  HEAP8[$35>>0] = $34;
+  $37 = ((($9)) + 3|0);
+  $38 = HEAP8[$37>>0]|0;
+  $39 = ((($9)) + 28|0);
+  $40 = HEAP8[$39>>0]|0;
+  HEAP8[$37>>0] = $40;
+  HEAP8[$39>>0] = $38;
+  $41 = ((($9)) + 4|0);
+  $42 = HEAP8[$41>>0]|0;
+  $43 = ((($9)) + 27|0);
+  $44 = HEAP8[$43>>0]|0;
+  HEAP8[$41>>0] = $44;
+  HEAP8[$43>>0] = $42;
+  $45 = ((($9)) + 5|0);
+  $46 = HEAP8[$45>>0]|0;
+  $47 = ((($9)) + 26|0);
+  $48 = HEAP8[$47>>0]|0;
+  HEAP8[$45>>0] = $48;
+  HEAP8[$47>>0] = $46;
+  $49 = ((($9)) + 6|0);
+  $50 = HEAP8[$49>>0]|0;
+  $51 = ((($9)) + 25|0);
+  $52 = HEAP8[$51>>0]|0;
+  HEAP8[$49>>0] = $52;
+  HEAP8[$51>>0] = $50;
+  $53 = ((($9)) + 7|0);
+  $54 = HEAP8[$53>>0]|0;
+  $55 = ((($9)) + 24|0);
+  $56 = HEAP8[$55>>0]|0;
+  HEAP8[$53>>0] = $56;
+  HEAP8[$55>>0] = $54;
+  $57 = ((($9)) + 8|0);
+  $58 = HEAP8[$57>>0]|0;
+  $59 = ((($9)) + 23|0);
+  $60 = HEAP8[$59>>0]|0;
+  HEAP8[$57>>0] = $60;
+  HEAP8[$59>>0] = $58;
+  $61 = ((($9)) + 9|0);
+  $62 = HEAP8[$61>>0]|0;
+  $63 = ((($9)) + 22|0);
+  $64 = HEAP8[$63>>0]|0;
+  HEAP8[$61>>0] = $64;
+  HEAP8[$63>>0] = $62;
+  $65 = ((($9)) + 10|0);
+  $66 = HEAP8[$65>>0]|0;
+  $67 = ((($9)) + 21|0);
+  $68 = HEAP8[$67>>0]|0;
+  HEAP8[$65>>0] = $68;
+  HEAP8[$67>>0] = $66;
+  $69 = ((($9)) + 11|0);
+  $70 = HEAP8[$69>>0]|0;
+  $71 = ((($9)) + 20|0);
+  $72 = HEAP8[$71>>0]|0;
+  HEAP8[$69>>0] = $72;
+  HEAP8[$71>>0] = $70;
+  $73 = ((($9)) + 12|0);
+  $74 = HEAP8[$73>>0]|0;
+  $75 = ((($9)) + 19|0);
+  $76 = HEAP8[$75>>0]|0;
+  HEAP8[$73>>0] = $76;
+  HEAP8[$75>>0] = $74;
+  $77 = ((($9)) + 13|0);
+  $78 = HEAP8[$77>>0]|0;
+  $79 = ((($9)) + 18|0);
+  $80 = HEAP8[$79>>0]|0;
+  HEAP8[$77>>0] = $80;
+  HEAP8[$79>>0] = $78;
+  $81 = ((($9)) + 14|0);
+  $82 = HEAP8[$81>>0]|0;
+  $83 = ((($9)) + 17|0);
+  $84 = HEAP8[$83>>0]|0;
+  HEAP8[$81>>0] = $84;
+  HEAP8[$83>>0] = $82;
+  $85 = ((($9)) + 15|0);
+  $86 = HEAP8[$85>>0]|0;
+  $87 = ((($9)) + 16|0);
+  $88 = HEAP8[$87>>0]|0;
+  HEAP8[$85>>0] = $88;
+  HEAP8[$87>>0] = $86;
+  $89 = $28 & 63;
+  $90 = $89 | 64;
+  HEAP8[$9>>0] = $90;
+  $91 = $26 & -8;
+  HEAP8[$27>>0] = $91;
+  HEAP32[$0>>2] = $9;
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ } else {
+  __gcry_free($9);
+  $$0 = $24;
+  STACKTOP = sp;return ($$0|0);
+ }
+ return (0)|0;
+}
+function __gcry_ecc_eddsa_genkey($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$064 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 
= 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 
= 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
+ var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 
= 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 
= 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
+ var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 
= 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, 
$23 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $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;
+ var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $63 = 0;
+ var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, 
$71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 
0, $8 = 0, $80 = 0, $81 = 0;
+ var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, 
$9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, 
$98 = 0, $99 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $4 = sp + 16|0;
+ $5 = sp;
+ __gcry_mpi_point_init($4);
+ 
;HEAP32[$5>>2]=0|0;HEAP32[$5+4>>2]=0|0;HEAP32[$5+8>>2]=0|0;HEAP32[$5+12>>2]=0|0;
+ $6 = (__gcry_mpi_snew(0)|0);
+ $7 = (__gcry_mpi_new(0)|0);
+ $8 = (__gcry_mpi_new(0)|0);
+ $9 = (__gcry_malloc_secure(64)|0);
+ $10 = ($9|0)==(0|0);
+ if ($10) {
+  $11 = (_gpg_err_code_from_syserror()|0);
+  $12 = ($11|0)==(0);
+  $13 = $11 & 65535;
+  $14 = $13 | 16777216;
+  $15 = $12 ? 0 : $14;
+  $$0 = 0;$$064 = $15;
+  __gcry_mpi_point_free_parts($4);
+  __gcry_mpi_release($6);
+  __gcry_mpi_release($7);
+  __gcry_mpi_release($8);
+  __gcry_free($$0);
+  STACKTOP = sp;return ($$064|0);
+ }
+ $16 = $3 >>> 5;
+ $17 = $16 & 1;
+ $18 = (2 - ($17))|0;
+ $19 = (__gcry_random_bytes_secure(32,$18)|0);
+ $20 = ((($5)) + 12|0);
+ HEAP32[$20>>2] = $19;
+ $21 = ((($5)) + 8|0);
+ HEAP32[$21>>2] = 32;
+ $22 = (__gcry_md_hash_buffers(10,0,$9,$5,1)|0);
+ $23 = ($22|0)==(0);
+ if (!($23)) {
+  $$0 = $9;$$064 = $22;
+  __gcry_mpi_point_free_parts($4);
+  __gcry_mpi_release($6);
+  __gcry_mpi_release($7);
+  __gcry_mpi_release($8);
+  __gcry_free($$0);
+  STACKTOP = sp;return ($$064|0);
+ }
+ $24 = (__gcry_mpi_set_opaque(0,$19,256)|0);
+ $25 = ((($0)) + 56|0);
+ HEAP32[$25>>2] = $24;
+ $26 = HEAP8[$9>>0]|0;
+ $27 = ((($9)) + 31|0);
+ $28 = HEAP8[$27>>0]|0;
+ $29 = ((($9)) + 1|0);
+ $30 = HEAP8[$29>>0]|0;
+ $31 = ((($9)) + 30|0);
+ $32 = HEAP8[$31>>0]|0;
+ HEAP8[$29>>0] = $32;
+ HEAP8[$31>>0] = $30;
+ $33 = ((($9)) + 2|0);
+ $34 = HEAP8[$33>>0]|0;
+ $35 = ((($9)) + 29|0);
+ $36 = HEAP8[$35>>0]|0;
+ HEAP8[$33>>0] = $36;
+ HEAP8[$35>>0] = $34;
+ $37 = ((($9)) + 3|0);
+ $38 = HEAP8[$37>>0]|0;
+ $39 = ((($9)) + 28|0);
+ $40 = HEAP8[$39>>0]|0;
+ HEAP8[$37>>0] = $40;
+ HEAP8[$39>>0] = $38;
+ $41 = ((($9)) + 4|0);
+ $42 = HEAP8[$41>>0]|0;
+ $43 = ((($9)) + 27|0);
+ $44 = HEAP8[$43>>0]|0;
+ HEAP8[$41>>0] = $44;
+ HEAP8[$43>>0] = $42;
+ $45 = ((($9)) + 5|0);
+ $46 = HEAP8[$45>>0]|0;
+ $47 = ((($9)) + 26|0);
+ $48 = HEAP8[$47>>0]|0;
+ HEAP8[$45>>0] = $48;
+ HEAP8[$47>>0] = $46;
+ $49 = ((($9)) + 6|0);
+ $50 = HEAP8[$49>>0]|0;
+ $51 = ((($9)) + 25|0);
+ $52 = HEAP8[$51>>0]|0;
+ HEAP8[$49>>0] = $52;
+ HEAP8[$51>>0] = $50;
+ $53 = ((($9)) + 7|0);
+ $54 = HEAP8[$53>>0]|0;
+ $55 = ((($9)) + 24|0);
+ $56 = HEAP8[$55>>0]|0;
+ HEAP8[$53>>0] = $56;
+ HEAP8[$55>>0] = $54;
+ $57 = ((($9)) + 8|0);
+ $58 = HEAP8[$57>>0]|0;
+ $59 = ((($9)) + 23|0);
+ $60 = HEAP8[$59>>0]|0;
+ HEAP8[$57>>0] = $60;
+ HEAP8[$59>>0] = $58;
+ $61 = ((($9)) + 9|0);
+ $62 = HEAP8[$61>>0]|0;
+ $63 = ((($9)) + 22|0);
+ $64 = HEAP8[$63>>0]|0;
+ HEAP8[$61>>0] = $64;
+ HEAP8[$63>>0] = $62;
+ $65 = ((($9)) + 10|0);
+ $66 = HEAP8[$65>>0]|0;
+ $67 = ((($9)) + 21|0);
+ $68 = HEAP8[$67>>0]|0;
+ HEAP8[$65>>0] = $68;
+ HEAP8[$67>>0] = $66;
+ $69 = ((($9)) + 11|0);
+ $70 = HEAP8[$69>>0]|0;
+ $71 = ((($9)) + 20|0);
+ $72 = HEAP8[$71>>0]|0;
+ HEAP8[$69>>0] = $72;
+ HEAP8[$71>>0] = $70;
+ $73 = ((($9)) + 12|0);
+ $74 = HEAP8[$73>>0]|0;
+ $75 = ((($9)) + 19|0);
+ $76 = HEAP8[$75>>0]|0;
+ HEAP8[$73>>0] = $76;
+ HEAP8[$75>>0] = $74;
+ $77 = ((($9)) + 13|0);
+ $78 = HEAP8[$77>>0]|0;
+ $79 = ((($9)) + 18|0);
+ $80 = HEAP8[$79>>0]|0;
+ HEAP8[$77>>0] = $80;
+ HEAP8[$79>>0] = $78;
+ $81 = ((($9)) + 14|0);
+ $82 = HEAP8[$81>>0]|0;
+ $83 = ((($9)) + 17|0);
+ $84 = HEAP8[$83>>0]|0;
+ HEAP8[$81>>0] = $84;
+ HEAP8[$83>>0] = $82;
+ $85 = ((($9)) + 15|0);
+ $86 = HEAP8[$85>>0]|0;
+ $87 = ((($9)) + 16|0);
+ $88 = HEAP8[$87>>0]|0;
+ HEAP8[$85>>0] = $88;
+ HEAP8[$87>>0] = $86;
+ $89 = $28 & 63;
+ $90 = $89 | 64;
+ HEAP8[$9>>0] = $90;
+ $91 = $26 & -8;
+ HEAP8[$27>>0] = $91;
+ __gcry_mpi_set_buffer($6,$9,32,0);
+ __gcry_free($9);
+ $92 = ((($1)) + 20|0);
+ __gcry_mpi_ec_mul_point($4,$6,$92,$2);
+ $93 = (__gcry_get_debug_flag(1)|0);
+ $94 = ($93|0)==(0);
+ if (!($94)) {
+  __gcry_mpi_point_log(57802,$4,$2);
+ }
+ $95 = HEAP32[$1>>2]|0;
+ HEAP32[$0>>2] = $95;
+ $96 = ((($1)) + 4|0);
+ $97 = HEAP32[$96>>2]|0;
+ $98 = ((($0)) + 4|0);
+ HEAP32[$98>>2] = $97;
+ $99 = ((($1)) + 8|0);
+ $100 = HEAP32[$99>>2]|0;
+ $101 = (__gcry_mpi_copy($100)|0);
+ $102 = ((($0)) + 8|0);
+ HEAP32[$102>>2] = $101;
+ $103 = ((($1)) + 12|0);
+ $104 = HEAP32[$103>>2]|0;
+ $105 = (__gcry_mpi_copy($104)|0);
+ $106 = ((($0)) + 12|0);
+ HEAP32[$106>>2] = $105;
+ $107 = ((($1)) + 16|0);
+ $108 = HEAP32[$107>>2]|0;
+ $109 = (__gcry_mpi_copy($108)|0);
+ $110 = ((($0)) + 16|0);
+ HEAP32[$110>>2] = $109;
+ $111 = ((($0)) + 20|0);
+ __gcry_mpi_point_init($111);
+ $112 = HEAP32[$111>>2]|0;
+ $113 = HEAP32[$92>>2]|0;
+ (__gcry_mpi_set($112,$113)|0);
+ $114 = ((($0)) + 24|0);
+ $115 = HEAP32[$114>>2]|0;
+ $116 = ((($1)) + 24|0);
+ $117 = HEAP32[$116>>2]|0;
+ (__gcry_mpi_set($115,$117)|0);
+ $118 = ((($0)) + 28|0);
+ $119 = HEAP32[$118>>2]|0;
+ $120 = ((($1)) + 28|0);
+ $121 = HEAP32[$120>>2]|0;
+ (__gcry_mpi_set($119,$121)|0);
+ $122 = ((($1)) + 32|0);
+ $123 = HEAP32[$122>>2]|0;
+ $124 = (__gcry_mpi_copy($123)|0);
+ $125 = ((($0)) + 32|0);
+ HEAP32[$125>>2] = $124;
+ $126 = ((($1)) + 36|0);
+ $127 = HEAP32[$126>>2]|0;
+ $128 = (__gcry_mpi_copy($127)|0);
+ $129 = ((($0)) + 36|0);
+ HEAP32[$129>>2] = $128;
+ $130 = ((($0)) + 44|0);
+ __gcry_mpi_point_init($130);
+ $131 = HEAP32[$130>>2]|0;
+ $132 = HEAP32[$4>>2]|0;
+ (__gcry_mpi_set($131,$132)|0);
+ $133 = ((($0)) + 48|0);
+ $134 = HEAP32[$133>>2]|0;
+ $135 = ((($4)) + 4|0);
+ $136 = HEAP32[$135>>2]|0;
+ (__gcry_mpi_set($134,$136)|0);
+ $137 = ((($0)) + 52|0);
+ $138 = HEAP32[$137>>2]|0;
+ $139 = ((($4)) + 8|0);
+ $140 = HEAP32[$139>>2]|0;
+ (__gcry_mpi_set($138,$140)|0);
+ $$0 = 0;$$064 = 0;
+ __gcry_mpi_point_free_parts($4);
+ __gcry_mpi_release($6);
+ __gcry_mpi_release($7);
+ __gcry_mpi_release($8);
+ __gcry_free($$0);
+ STACKTOP = sp;return ($$064|0);
+}
+function __gcry_ecc_eddsa_sign($0,$1,$2,$3,$4,$5) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ var $$0 = 0, $$082 = 0, $$mask = 0, $$pre = 0, $$pre88 = 0, $$pre90 = 0, 
$$pre91 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 
0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0;
+ var $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;
+ var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 
= 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 
= 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0;
+ var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 
= 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 
= 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0;
+ var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 
= 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 
= 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0;
+ var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 
= 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 
= 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0;
+ var $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, 
$209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, 
$216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0;
+ var $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, 
$227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, 
$234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0;
+ var $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 
= 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 
= 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0;
+ var $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;
+ var $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 
= 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 
= 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0;
+ var $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 
= 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $31 = 0, $32 = 
0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
+ var $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, $50 = 0, $51 = 0, $52 = 0, $53 = 
0, $54 = 0, $55 = 0, $56 = 0;
+ var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, 
$64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, 
$72 = 0, $73 = 0, $74 = 0;
+ var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, 
$82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, 
$90 = 0, $91 = 0, $92 = 0;
+ var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, dest = 0, 
label = 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(112|0);
+ $6 = sp + 96|0;
+ $7 = sp + 92|0;
+ $8 = sp + 88|0;
+ $9 = sp;
+ $10 = sp + 84|0;
+ $11 = sp + 80|0;
+ $12 = sp + 76|0;
+ $13 = sp + 72|0;
+ $14 = sp + 60|0;
+ $15 = sp + 48|0;
+ HEAP32[$10>>2] = 0;
+ HEAP32[$12>>2] = 0;
+ dest=$9; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ $16 = ($0|0)==(0|0);
+ if ($16) {
+  $$0 = 79;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $17 = ((($0)) + 12|0);
+ $18 = HEAP32[$17>>2]|0;
+ $19 = $18 & 4;
+ $20 = ($19|0)==(0);
+ if ($20) {
+  $$0 = 79;
+  STACKTOP = sp;return ($$0|0);
+ }
+ __gcry_mpi_point_init($14);
+ __gcry_mpi_point_init($15);
+ $21 = (__gcry_mpi_snew(0)|0);
+ $22 = (__gcry_mpi_new(0)|0);
+ $23 = (__gcry_mpi_new(0)|0);
+ $24 = (__gcry_mpi_new(0)|0);
+ $25 = HEAP32[$1>>2]|0;
+ $26 = ((($1)) + 4|0);
+ $27 = HEAP32[$26>>2]|0;
+ $28 = ((($1)) + 8|0);
+ $29 = HEAP32[$28>>2]|0;
+ $30 = ((($1)) + 12|0);
+ $31 = HEAP32[$30>>2]|0;
+ $32 = ((($1)) + 16|0);
+ $33 = HEAP32[$32>>2]|0;
+ $34 = (__gcry_mpi_ec_p_internal_new($25,$27,0,$29,$31,$33)|0);
+ $35 = ((($34)) + 12|0);
+ $36 = HEAP32[$35>>2]|0;
+ $37 = (($36) + 7)|0;
+ $$mask = $37 & -8;
+ $38 = ($$mask|0)==(256);
+ if (!($38)) {
+  $$0 = 63;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $39 = ((($1)) + 56|0);
+ $40 = HEAP32[$39>>2]|0;
+ $41 = (__gcry_ecc_eddsa_compute_h_d($8,$40,$34)|0);
+ $42 = ($41|0)==(0);
+ do {
+  if ($42) {
+   $43 = HEAP32[$8>>2]|0;
+   __gcry_mpi_set_buffer($21,$43,32,0);
+   $44 = ($5|0)==(0|0);
+   $45 = $43;
+   if ($44) {
+    $54 = ((($1)) + 20|0);
+    __gcry_mpi_ec_mul_point($15,$21,$54,$34);
+    $55 = (__gcry_ecc_eddsa_encodepoint($15,$34,$22,$23,0,$12,$13)|0);
+    $56 = ($55|0)==(0);
+    if (!($56)) {
+     $$082 = $55;
+     break;
+    }
+    $57 = (__gcry_get_debug_flag(1)|0);
+    $58 = ($57|0)==(0);
+    if (!($58)) {
+     $59 = HEAP32[$12>>2]|0;
+     $60 = HEAP32[$13>>2]|0;
+     __gcry_log_printhex(57823,$59,$60);
+    }
+   } else {
+    $46 = (__gcry_ecc_eddsa_decodepoint($5,$34,$15,$12,$13)|0);
+    $47 = ($46|0)==(0);
+    if (!($47)) {
+     $$082 = $46;
+     break;
+    }
+    $48 = (__gcry_get_debug_flag(1)|0);
+    $49 = ($48|0)==(0);
+    if (!($49)) {
+     $50 = HEAP32[$12>>2]|0;
+     $51 = HEAP32[$13>>2]|0;
+     __gcry_log_printhex(57816,$50,$51);
+    }
+    $52 = (__gcry_mpi_ec_curve_point($15,$34)|0);
+    $53 = ($52|0)==(0);
+    if ($53) {
+     $$082 = 195;
+     break;
+    }
+   }
+   $61 = (__gcry_mpi_get_opaque($0,$7)|0);
+   $62 = HEAP32[$7>>2]|0;
+   $63 = (($62) + 7)|0;
+   $64 = $63 >>> 3;
+   $65 = (__gcry_get_debug_flag(1)|0);
+   $66 = ($65|0)==(0);
+   if (!($66)) {
+    __gcry_log_printhex(57830,$61,$64);
+   }
+   $67 = ((($9)) + 12|0);
+   HEAP32[$67>>2] = $45;
+   $68 = ((($9)) + 4|0);
+   HEAP32[$68>>2] = 32;
+   $69 = ((($9)) + 8|0);
+   HEAP32[$69>>2] = 32;
+   $70 = ((($9)) + 28|0);
+   HEAP32[$70>>2] = $61;
+   $71 = ((($9)) + 24|0);
+   HEAP32[$71>>2] = $64;
+   $72 = (__gcry_md_hash_buffers($4,0,$43,$9,2)|0);
+   $73 = ($72|0)==(0);
+   if ($73) {
+    $74 = HEAP8[$43>>0]|0;
+    $75 = ((($43)) + 63|0);
+    $76 = HEAP8[$75>>0]|0;
+    HEAP8[$43>>0] = $76;
+    HEAP8[$75>>0] = $74;
+    $77 = ((($43)) + 1|0);
+    $78 = HEAP8[$77>>0]|0;
+    $79 = ((($43)) + 62|0);
+    $80 = HEAP8[$79>>0]|0;
+    HEAP8[$77>>0] = $80;
+    HEAP8[$79>>0] = $78;
+    $81 = ((($43)) + 2|0);
+    $82 = HEAP8[$81>>0]|0;
+    $83 = ((($43)) + 61|0);
+    $84 = HEAP8[$83>>0]|0;
+    HEAP8[$81>>0] = $84;
+    HEAP8[$83>>0] = $82;
+    $85 = ((($43)) + 3|0);
+    $86 = HEAP8[$85>>0]|0;
+    $87 = ((($43)) + 60|0);
+    $88 = HEAP8[$87>>0]|0;
+    HEAP8[$85>>0] = $88;
+    HEAP8[$87>>0] = $86;
+    $89 = ((($43)) + 4|0);
+    $90 = HEAP8[$89>>0]|0;
+    $91 = ((($43)) + 59|0);
+    $92 = HEAP8[$91>>0]|0;
+    HEAP8[$89>>0] = $92;
+    HEAP8[$91>>0] = $90;
+    $93 = ((($43)) + 5|0);
+    $94 = HEAP8[$93>>0]|0;
+    $95 = ((($43)) + 58|0);
+    $96 = HEAP8[$95>>0]|0;
+    HEAP8[$93>>0] = $96;
+    HEAP8[$95>>0] = $94;
+    $97 = ((($43)) + 6|0);
+    $98 = HEAP8[$97>>0]|0;
+    $99 = ((($43)) + 57|0);
+    $100 = HEAP8[$99>>0]|0;
+    HEAP8[$97>>0] = $100;
+    HEAP8[$99>>0] = $98;
+    $101 = ((($43)) + 7|0);
+    $102 = HEAP8[$101>>0]|0;
+    $103 = ((($43)) + 56|0);
+    $104 = HEAP8[$103>>0]|0;
+    HEAP8[$101>>0] = $104;
+    HEAP8[$103>>0] = $102;
+    $105 = ((($43)) + 8|0);
+    $106 = HEAP8[$105>>0]|0;
+    $107 = ((($43)) + 55|0);
+    $108 = HEAP8[$107>>0]|0;
+    HEAP8[$105>>0] = $108;
+    HEAP8[$107>>0] = $106;
+    $109 = ((($43)) + 9|0);
+    $110 = HEAP8[$109>>0]|0;
+    $111 = ((($43)) + 54|0);
+    $112 = HEAP8[$111>>0]|0;
+    HEAP8[$109>>0] = $112;
+    HEAP8[$111>>0] = $110;
+    $113 = ((($43)) + 10|0);
+    $114 = HEAP8[$113>>0]|0;
+    $115 = ((($43)) + 53|0);
+    $116 = HEAP8[$115>>0]|0;
+    HEAP8[$113>>0] = $116;
+    HEAP8[$115>>0] = $114;
+    $117 = ((($43)) + 11|0);
+    $118 = HEAP8[$117>>0]|0;
+    $119 = ((($43)) + 52|0);
+    $120 = HEAP8[$119>>0]|0;
+    HEAP8[$117>>0] = $120;
+    HEAP8[$119>>0] = $118;
+    $121 = ((($43)) + 12|0);
+    $122 = HEAP8[$121>>0]|0;
+    $123 = ((($43)) + 51|0);
+    $124 = HEAP8[$123>>0]|0;
+    HEAP8[$121>>0] = $124;
+    HEAP8[$123>>0] = $122;
+    $125 = ((($43)) + 13|0);
+    $126 = HEAP8[$125>>0]|0;
+    $127 = ((($43)) + 50|0);
+    $128 = HEAP8[$127>>0]|0;
+    HEAP8[$125>>0] = $128;
+    HEAP8[$127>>0] = $126;
+    $129 = ((($43)) + 14|0);
+    $130 = HEAP8[$129>>0]|0;
+    $131 = ((($43)) + 49|0);
+    $132 = HEAP8[$131>>0]|0;
+    HEAP8[$129>>0] = $132;
+    HEAP8[$131>>0] = $130;
+    $133 = ((($43)) + 15|0);
+    $134 = HEAP8[$133>>0]|0;
+    $135 = ((($43)) + 48|0);
+    $136 = HEAP8[$135>>0]|0;
+    HEAP8[$133>>0] = $136;
+    HEAP8[$135>>0] = $134;
+    $137 = ((($43)) + 16|0);
+    $138 = HEAP8[$137>>0]|0;
+    $139 = ((($43)) + 47|0);
+    $140 = HEAP8[$139>>0]|0;
+    HEAP8[$137>>0] = $140;
+    HEAP8[$139>>0] = $138;
+    $141 = ((($43)) + 17|0);
+    $142 = HEAP8[$141>>0]|0;
+    $143 = ((($43)) + 46|0);
+    $144 = HEAP8[$143>>0]|0;
+    HEAP8[$141>>0] = $144;
+    HEAP8[$143>>0] = $142;
+    $145 = ((($43)) + 18|0);
+    $146 = HEAP8[$145>>0]|0;
+    $147 = ((($43)) + 45|0);
+    $148 = HEAP8[$147>>0]|0;
+    HEAP8[$145>>0] = $148;
+    HEAP8[$147>>0] = $146;
+    $149 = ((($43)) + 19|0);
+    $150 = HEAP8[$149>>0]|0;
+    $151 = ((($43)) + 44|0);
+    $152 = HEAP8[$151>>0]|0;
+    HEAP8[$149>>0] = $152;
+    HEAP8[$151>>0] = $150;
+    $153 = ((($43)) + 20|0);
+    $154 = HEAP8[$153>>0]|0;
+    $155 = ((($43)) + 43|0);
+    $156 = HEAP8[$155>>0]|0;
+    HEAP8[$153>>0] = $156;
+    HEAP8[$155>>0] = $154;
+    $157 = ((($43)) + 21|0);
+    $158 = HEAP8[$157>>0]|0;
+    $159 = ((($43)) + 42|0);
+    $160 = HEAP8[$159>>0]|0;
+    HEAP8[$157>>0] = $160;
+    HEAP8[$159>>0] = $158;
+    $161 = ((($43)) + 22|0);
+    $162 = HEAP8[$161>>0]|0;
+    $163 = ((($43)) + 41|0);
+    $164 = HEAP8[$163>>0]|0;
+    HEAP8[$161>>0] = $164;
+    HEAP8[$163>>0] = $162;
+    $165 = ((($43)) + 23|0);
+    $166 = HEAP8[$165>>0]|0;
+    $167 = ((($43)) + 40|0);
+    $168 = HEAP8[$167>>0]|0;
+    HEAP8[$165>>0] = $168;
+    HEAP8[$167>>0] = $166;
+    $169 = ((($43)) + 24|0);
+    $170 = HEAP8[$169>>0]|0;
+    $171 = ((($43)) + 39|0);
+    $172 = HEAP8[$171>>0]|0;
+    HEAP8[$169>>0] = $172;
+    HEAP8[$171>>0] = $170;
+    $173 = ((($43)) + 25|0);
+    $174 = HEAP8[$173>>0]|0;
+    $175 = ((($43)) + 38|0);
+    $176 = HEAP8[$175>>0]|0;
+    HEAP8[$173>>0] = $176;
+    HEAP8[$175>>0] = $174;
+    $177 = ((($43)) + 26|0);
+    $178 = HEAP8[$177>>0]|0;
+    $179 = ((($43)) + 37|0);
+    $180 = HEAP8[$179>>0]|0;
+    HEAP8[$177>>0] = $180;
+    HEAP8[$179>>0] = $178;
+    $181 = ((($43)) + 27|0);
+    $182 = HEAP8[$181>>0]|0;
+    $183 = ((($43)) + 36|0);
+    $184 = HEAP8[$183>>0]|0;
+    HEAP8[$181>>0] = $184;
+    HEAP8[$183>>0] = $182;
+    $185 = ((($43)) + 28|0);
+    $186 = HEAP8[$185>>0]|0;
+    $187 = ((($43)) + 35|0);
+    $188 = HEAP8[$187>>0]|0;
+    HEAP8[$185>>0] = $188;
+    HEAP8[$187>>0] = $186;
+    $189 = ((($43)) + 29|0);
+    $190 = HEAP8[$189>>0]|0;
+    $191 = ((($43)) + 34|0);
+    $192 = HEAP8[$191>>0]|0;
+    HEAP8[$189>>0] = $192;
+    HEAP8[$191>>0] = $190;
+    $193 = ((($43)) + 30|0);
+    $194 = HEAP8[$193>>0]|0;
+    $195 = ((($43)) + 33|0);
+    $196 = HEAP8[$195>>0]|0;
+    HEAP8[$193>>0] = $196;
+    HEAP8[$195>>0] = $194;
+    $197 = ((($43)) + 31|0);
+    $198 = HEAP8[$197>>0]|0;
+    $199 = ((($43)) + 32|0);
+    $200 = HEAP8[$199>>0]|0;
+    HEAP8[$197>>0] = $200;
+    HEAP8[$199>>0] = $198;
+    $201 = (__gcry_get_debug_flag(1)|0);
+    $202 = ($201|0)==(0);
+    if (!($202)) {
+     __gcry_log_printhex(70231,$43,64);
+    }
+    __gcry_mpi_set_buffer($24,$43,64,0);
+    $203 = ((($1)) + 20|0);
+    __gcry_mpi_ec_mul_point($14,$24,$203,$34);
+    $204 = (__gcry_get_debug_flag(1)|0);
+    $205 = ($204|0)==(0);
+    if (!($205)) {
+     __gcry_mpi_point_log(57837,$14,$34);
+    }
+    $206 = (__gcry_ecc_eddsa_encodepoint($14,$34,$22,$23,0,$10,$11)|0);
+    $207 = ($206|0)==(0);
+    if ($207) {
+     $208 = (__gcry_get_debug_flag(1)|0);
+     $209 = ($208|0)==(0);
+     if ($209) {
+      $$pre = HEAP32[$10>>2]|0;
+      $$pre88 = HEAP32[$11>>2]|0;
+      $210 = $$pre;
+      $214 = $$pre;$215 = $$pre88;$225 = $210;
+     } else {
+      $211 = HEAP32[$10>>2]|0;
+      $212 = HEAP32[$11>>2]|0;
+      __gcry_log_printhex(57842,$211,$212);
+      $213 = $211;
+      $214 = $213;$215 = $212;$225 = $211;
+     }
+     HEAP32[$67>>2] = $214;
+     HEAP32[$68>>2] = 0;
+     HEAP32[$69>>2] = $215;
+     $216 = HEAP32[$12>>2]|0;
+     HEAP32[$70>>2] = $216;
+     $217 = ((($9)) + 20|0);
+     HEAP32[$217>>2] = 0;
+     $218 = HEAP32[$13>>2]|0;
+     HEAP32[$71>>2] = $218;
+     $219 = ((($9)) + 44|0);
+     HEAP32[$219>>2] = $61;
+     $220 = ((($9)) + 36|0);
+     HEAP32[$220>>2] = 0;
+     $221 = ((($9)) + 40|0);
+     HEAP32[$221>>2] = $64;
+     $222 = (__gcry_md_hash_buffers($4,0,$43,$9,3)|0);
+     $223 = ($222|0)==(0);
+     if ($223) {
+      $224 = $215 << 3;
+      (__gcry_mpi_set_opaque($2,$225,$224)|0);
+      HEAP32[$10>>2] = 0;
+      $226 = HEAP8[$43>>0]|0;
+      $227 = HEAP8[$75>>0]|0;
+      HEAP8[$43>>0] = $227;
+      HEAP8[$75>>0] = $226;
+      $228 = HEAP8[$77>>0]|0;
+      $229 = HEAP8[$79>>0]|0;
+      HEAP8[$77>>0] = $229;
+      HEAP8[$79>>0] = $228;
+      $230 = HEAP8[$81>>0]|0;
+      $231 = HEAP8[$83>>0]|0;
+      HEAP8[$81>>0] = $231;
+      HEAP8[$83>>0] = $230;
+      $232 = HEAP8[$85>>0]|0;
+      $233 = HEAP8[$87>>0]|0;
+      HEAP8[$85>>0] = $233;
+      HEAP8[$87>>0] = $232;
+      $234 = HEAP8[$89>>0]|0;
+      $235 = HEAP8[$91>>0]|0;
+      HEAP8[$89>>0] = $235;
+      HEAP8[$91>>0] = $234;
+      $236 = HEAP8[$93>>0]|0;
+      $237 = HEAP8[$95>>0]|0;
+      HEAP8[$93>>0] = $237;
+      HEAP8[$95>>0] = $236;
+      $238 = HEAP8[$97>>0]|0;
+      $239 = HEAP8[$99>>0]|0;
+      HEAP8[$97>>0] = $239;
+      HEAP8[$99>>0] = $238;
+      $240 = HEAP8[$101>>0]|0;
+      $241 = HEAP8[$103>>0]|0;
+      HEAP8[$101>>0] = $241;
+      HEAP8[$103>>0] = $240;
+      $242 = HEAP8[$105>>0]|0;
+      $243 = HEAP8[$107>>0]|0;
+      HEAP8[$105>>0] = $243;
+      HEAP8[$107>>0] = $242;
+      $244 = HEAP8[$109>>0]|0;
+      $245 = HEAP8[$111>>0]|0;
+      HEAP8[$109>>0] = $245;
+      HEAP8[$111>>0] = $244;
+      $246 = HEAP8[$113>>0]|0;
+      $247 = HEAP8[$115>>0]|0;
+      HEAP8[$113>>0] = $247;
+      HEAP8[$115>>0] = $246;
+      $248 = HEAP8[$117>>0]|0;
+      $249 = HEAP8[$119>>0]|0;
+      HEAP8[$117>>0] = $249;
+      HEAP8[$119>>0] = $248;
+      $250 = HEAP8[$121>>0]|0;
+      $251 = HEAP8[$123>>0]|0;
+      HEAP8[$121>>0] = $251;
+      HEAP8[$123>>0] = $250;
+      $252 = HEAP8[$125>>0]|0;
+      $253 = HEAP8[$127>>0]|0;
+      HEAP8[$125>>0] = $253;
+      HEAP8[$127>>0] = $252;
+      $254 = HEAP8[$129>>0]|0;
+      $255 = HEAP8[$131>>0]|0;
+      HEAP8[$129>>0] = $255;
+      HEAP8[$131>>0] = $254;
+      $256 = HEAP8[$133>>0]|0;
+      $257 = HEAP8[$135>>0]|0;
+      HEAP8[$133>>0] = $257;
+      HEAP8[$135>>0] = $256;
+      $258 = HEAP8[$137>>0]|0;
+      $259 = HEAP8[$139>>0]|0;
+      HEAP8[$137>>0] = $259;
+      HEAP8[$139>>0] = $258;
+      $260 = HEAP8[$141>>0]|0;
+      $261 = HEAP8[$143>>0]|0;
+      HEAP8[$141>>0] = $261;
+      HEAP8[$143>>0] = $260;
+      $262 = HEAP8[$145>>0]|0;
+      $263 = HEAP8[$147>>0]|0;
+      HEAP8[$145>>0] = $263;
+      HEAP8[$147>>0] = $262;
+      $264 = HEAP8[$149>>0]|0;
+      $265 = HEAP8[$151>>0]|0;
+      HEAP8[$149>>0] = $265;
+      HEAP8[$151>>0] = $264;
+      $266 = HEAP8[$153>>0]|0;
+      $267 = HEAP8[$155>>0]|0;
+      HEAP8[$153>>0] = $267;
+      HEAP8[$155>>0] = $266;
+      $268 = HEAP8[$157>>0]|0;
+      $269 = HEAP8[$159>>0]|0;
+      HEAP8[$157>>0] = $269;
+      HEAP8[$159>>0] = $268;
+      $270 = HEAP8[$161>>0]|0;
+      $271 = HEAP8[$163>>0]|0;
+      HEAP8[$161>>0] = $271;
+      HEAP8[$163>>0] = $270;
+      $272 = HEAP8[$165>>0]|0;
+      $273 = HEAP8[$167>>0]|0;
+      HEAP8[$165>>0] = $273;
+      HEAP8[$167>>0] = $272;
+      $274 = HEAP8[$169>>0]|0;
+      $275 = HEAP8[$171>>0]|0;
+      HEAP8[$169>>0] = $275;
+      HEAP8[$171>>0] = $274;
+      $276 = HEAP8[$173>>0]|0;
+      $277 = HEAP8[$175>>0]|0;
+      HEAP8[$173>>0] = $277;
+      HEAP8[$175>>0] = $276;
+      $278 = HEAP8[$177>>0]|0;
+      $279 = HEAP8[$179>>0]|0;
+      HEAP8[$177>>0] = $279;
+      HEAP8[$179>>0] = $278;
+      $280 = HEAP8[$181>>0]|0;
+      $281 = HEAP8[$183>>0]|0;
+      HEAP8[$181>>0] = $281;
+      HEAP8[$183>>0] = $280;
+      $282 = HEAP8[$185>>0]|0;
+      $283 = HEAP8[$187>>0]|0;
+      HEAP8[$185>>0] = $283;
+      HEAP8[$187>>0] = $282;
+      $284 = HEAP8[$189>>0]|0;
+      $285 = HEAP8[$191>>0]|0;
+      HEAP8[$189>>0] = $285;
+      HEAP8[$191>>0] = $284;
+      $286 = HEAP8[$193>>0]|0;
+      $287 = HEAP8[$195>>0]|0;
+      HEAP8[$193>>0] = $287;
+      HEAP8[$195>>0] = $286;
+      $288 = HEAP8[$197>>0]|0;
+      $289 = HEAP8[$199>>0]|0;
+      HEAP8[$197>>0] = $289;
+      HEAP8[$199>>0] = $288;
+      $290 = (__gcry_get_debug_flag(1)|0);
+      $291 = ($290|0)==(0);
+      if (!($291)) {
+       __gcry_log_printhex(57849,$43,64);
+      }
+      __gcry_mpi_set_buffer($3,$43,64,0);
+      $292 = ((($1)) + 32|0);
+      $293 = HEAP32[$292>>2]|0;
+      __gcry_mpi_mulm($3,$3,$21,$293);
+      $294 = HEAP32[$292>>2]|0;
+      __gcry_mpi_addm($3,$3,$24,$294);
+      $295 = (__gcry_mpi_get_buffer($3,32,$6,0)|0);
+      $296 = ($295|0)==(0|0);
+      if ($296) {
+       $298 = (_gpg_err_code_from_syserror()|0);
+       $299 = ($298|0)==(0);
+       if (!($299)) {
+        $$082 = $298;
+        break;
+       }
+      } else {
+       HEAP32[$10>>2] = $295;
+       $297 = HEAP32[$6>>2]|0;
+       HEAP32[$11>>2] = $297;
+      }
+      $300 = (__gcry_get_debug_flag(1)|0);
+      $301 = ($300|0)==(0);
+      $$pre90 = HEAP32[$10>>2]|0;
+      $$pre91 = HEAP32[$11>>2]|0;
+      if (!($301)) {
+       __gcry_log_printhex(57856,$$pre90,$$pre91);
+      }
+      $302 = $$pre91 << 3;
+      (__gcry_mpi_set_opaque($3,$$pre90,$302)|0);
+      HEAP32[$10>>2] = 0;
+      $$082 = 0;
+     } else {
+      $$082 = $222;
+     }
+    } else {
+     $$082 = $206;
+    }
+   } else {
+    $$082 = $72;
+   }
+  } else {
+   $$082 = $41;
+  }
+ } while(0);
+ __gcry_mpi_release($21);
+ __gcry_mpi_release($22);
+ __gcry_mpi_release($23);
+ __gcry_mpi_release($24);
+ $303 = HEAP32[$8>>2]|0;
+ __gcry_free($303);
+ __gcry_mpi_ec_free($34);
+ __gcry_mpi_point_free_parts($14);
+ __gcry_mpi_point_free_parts($15);
+ $304 = HEAP32[$12>>2]|0;
+ __gcry_free($304);
+ $305 = HEAP32[$10>>2]|0;
+ __gcry_free($305);
+ $$0 = $$082;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_ecc_eddsa_verify($0,$1,$2,$3,$4,$5) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ var $$0 = 0, $$016$i89 = 0, $$1 = 0, $$mask = 0, $10 = 0, $100 = 0, $101 = 0, 
$102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, 
$11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0;
+ var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 
= 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 
= 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0;
+ var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, 
$139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, 
$146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0;
+ var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, 
$157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, 
$164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0;
+ var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 
= 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 
= 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0;
+ var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 
= 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 
= 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0;
+ var $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 
= 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 
= 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0;
+ var $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 
= 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 
= 0, $238 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $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, $40 = 0, $41 = 0, $42 = 0, $43 = 
0, $44 = 0, $45 = 0, $46 = 0;
+ var $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, $6 = 0, $60 = 0, $61 = 0, $62 = 0, 
$63 = 0, $64 = 0, $65 = 0;
+ var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, 
$73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, 
$81 = 0, $82 = 0, $83 = 0;
+ var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, 
$91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 
0, $exitcond$i90 = 0, $or$cond = 0, $or$cond3 = 0;
+ var $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 176|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(176|0);
+ $6 = sp + 164|0;
+ $7 = sp + 152|0;
+ $8 = sp + 148|0;
+ $9 = sp + 144|0;
+ $10 = sp + 140|0;
+ $11 = sp + 136|0;
+ $12 = sp + 48|0;
+ $13 = sp;
+ $14 = sp + 124|0;
+ $15 = sp + 112|0;
+ HEAP32[$8>>2] = 0;
+ HEAP32[$10>>2] = 0;
+ $16 = ($0|0)==(0|0);
+ if ($16) {
+  $$0 = 79;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $17 = ((($0)) + 12|0);
+ $18 = HEAP32[$17>>2]|0;
+ $19 = $18 & 4;
+ $20 = ($19|0)!=(0);
+ $21 = ($2|0)!=(0|0);
+ $or$cond = $21 & $20;
+ if (!($or$cond)) {
+  $$0 = 79;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $22 = ((($2)) + 12|0);
+ $23 = HEAP32[$22>>2]|0;
+ $24 = $23 & 4;
+ $25 = ($24|0)!=(0);
+ $26 = ($3|0)!=(0|0);
+ $or$cond3 = $26 & $25;
+ if (!($or$cond3)) {
+  $$0 = 79;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $27 = ((($3)) + 12|0);
+ $28 = HEAP32[$27>>2]|0;
+ $29 = $28 & 4;
+ $30 = ($29|0)==(0);
+ if ($30) {
+  $$0 = 79;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $31 = ($4|0)==(10);
+ if (!($31)) {
+  $$0 = 5;
+  STACKTOP = sp;return ($$0|0);
+ }
+ __gcry_mpi_point_init($7);
+ __gcry_mpi_point_init($14);
+ __gcry_mpi_point_init($15);
+ $32 = (__gcry_mpi_new(0)|0);
+ $33 = (__gcry_mpi_new(0)|0);
+ $34 = HEAP32[$1>>2]|0;
+ $35 = ((($1)) + 4|0);
+ $36 = HEAP32[$35>>2]|0;
+ $37 = ((($1)) + 8|0);
+ $38 = HEAP32[$37>>2]|0;
+ $39 = ((($1)) + 12|0);
+ $40 = HEAP32[$39>>2]|0;
+ $41 = ((($1)) + 16|0);
+ $42 = HEAP32[$41>>2]|0;
+ $43 = (__gcry_mpi_ec_p_internal_new($34,$36,0,$38,$40,$42)|0);
+ $44 = ((($43)) + 12|0);
+ $45 = HEAP32[$44>>2]|0;
+ $$mask = $45 & -8;
+ $46 = ($$mask|0)==(256);
+ if (!($46)) {
+  $$0 = 63;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $47 = (__gcry_ecc_eddsa_decodepoint($5,$43,$7,$8,$9)|0);
+ $48 = ($47|0)==(0);
+ do {
+  if ($48) {
+   $49 = (__gcry_mpi_ec_curve_point($7,$43)|0);
+   $50 = ($49|0)==(0);
+   if ($50) {
+    $$1 = 195;
+   } else {
+    $51 = (__gcry_get_debug_flag(1)|0);
+    $52 = ($51|0)==(0);
+    if (!($52)) {
+     $53 = HEAP32[$8>>2]|0;
+     $54 = HEAP32[$9>>2]|0;
+     __gcry_log_printhex(57823,$53,$54);
+    }
+    $55 = HEAP32[$9>>2]|0;
+    $56 = ($55|0)==(32);
+    if ($56) {
+     $57 = (__gcry_mpi_get_opaque($0,$6)|0);
+     $58 = HEAP32[$6>>2]|0;
+     $59 = (($58) + 7)|0;
+     $60 = $59 >>> 3;
+     $61 = (__gcry_get_debug_flag(1)|0);
+     $62 = ($61|0)==(0);
+     if (!($62)) {
+      __gcry_log_printhex(57830,$57,$60);
+     }
+     $63 = (__gcry_mpi_get_opaque($2,$6)|0);
+     $64 = HEAP32[$6>>2]|0;
+     $65 = (($64) + 7)|0;
+     $66 = $65 >>> 3;
+     $67 = (__gcry_get_debug_flag(1)|0);
+     $68 = ($67|0)==(0);
+     if (!($68)) {
+      __gcry_log_printhex(70231,$63,$66);
+     }
+     $69 = ($66|0)==(32);
+     if ($69) {
+      $70 = ((($13)) + 12|0);
+      HEAP32[$70>>2] = $63;
+      $71 = ((($13)) + 4|0);
+      HEAP32[$71>>2] = 0;
+      $72 = ((($13)) + 8|0);
+      HEAP32[$72>>2] = 32;
+      $73 = HEAP32[$8>>2]|0;
+      $74 = ((($13)) + 28|0);
+      HEAP32[$74>>2] = $73;
+      $75 = ((($13)) + 20|0);
+      HEAP32[$75>>2] = 0;
+      $76 = HEAP32[$9>>2]|0;
+      $77 = ((($13)) + 24|0);
+      HEAP32[$77>>2] = $76;
+      $78 = ((($13)) + 44|0);
+      HEAP32[$78>>2] = $57;
+      $79 = ((($13)) + 36|0);
+      HEAP32[$79>>2] = 0;
+      $80 = ((($13)) + 40|0);
+      HEAP32[$80>>2] = $60;
+      $81 = (__gcry_md_hash_buffers(10,0,$12,$13,3)|0);
+      $82 = ($81|0)==(0);
+      if ($82) {
+       $83 = HEAP8[$12>>0]|0;
+       $84 = ((($12)) + 63|0);
+       $85 = HEAP8[$84>>0]|0;
+       HEAP8[$12>>0] = $85;
+       HEAP8[$84>>0] = $83;
+       $86 = ((($12)) + 1|0);
+       $87 = HEAP8[$86>>0]|0;
+       $88 = ((($12)) + 62|0);
+       $89 = HEAP8[$88>>0]|0;
+       HEAP8[$86>>0] = $89;
+       HEAP8[$88>>0] = $87;
+       $90 = ((($12)) + 2|0);
+       $91 = HEAP8[$90>>0]|0;
+       $92 = ((($12)) + 61|0);
+       $93 = HEAP8[$92>>0]|0;
+       HEAP8[$90>>0] = $93;
+       HEAP8[$92>>0] = $91;
+       $94 = ((($12)) + 3|0);
+       $95 = HEAP8[$94>>0]|0;
+       $96 = ((($12)) + 60|0);
+       $97 = HEAP8[$96>>0]|0;
+       HEAP8[$94>>0] = $97;
+       HEAP8[$96>>0] = $95;
+       $98 = ((($12)) + 4|0);
+       $99 = HEAP8[$98>>0]|0;
+       $100 = ((($12)) + 59|0);
+       $101 = HEAP8[$100>>0]|0;
+       HEAP8[$98>>0] = $101;
+       HEAP8[$100>>0] = $99;
+       $102 = ((($12)) + 5|0);
+       $103 = HEAP8[$102>>0]|0;
+       $104 = ((($12)) + 58|0);
+       $105 = HEAP8[$104>>0]|0;
+       HEAP8[$102>>0] = $105;
+       HEAP8[$104>>0] = $103;
+       $106 = ((($12)) + 6|0);
+       $107 = HEAP8[$106>>0]|0;
+       $108 = ((($12)) + 57|0);
+       $109 = HEAP8[$108>>0]|0;
+       HEAP8[$106>>0] = $109;
+       HEAP8[$108>>0] = $107;
+       $110 = ((($12)) + 7|0);
+       $111 = HEAP8[$110>>0]|0;
+       $112 = ((($12)) + 56|0);
+       $113 = HEAP8[$112>>0]|0;
+       HEAP8[$110>>0] = $113;
+       HEAP8[$112>>0] = $111;
+       $114 = ((($12)) + 8|0);
+       $115 = HEAP8[$114>>0]|0;
+       $116 = ((($12)) + 55|0);
+       $117 = HEAP8[$116>>0]|0;
+       HEAP8[$114>>0] = $117;
+       HEAP8[$116>>0] = $115;
+       $118 = ((($12)) + 9|0);
+       $119 = HEAP8[$118>>0]|0;
+       $120 = ((($12)) + 54|0);
+       $121 = HEAP8[$120>>0]|0;
+       HEAP8[$118>>0] = $121;
+       HEAP8[$120>>0] = $119;
+       $122 = ((($12)) + 10|0);
+       $123 = HEAP8[$122>>0]|0;
+       $124 = ((($12)) + 53|0);
+       $125 = HEAP8[$124>>0]|0;
+       HEAP8[$122>>0] = $125;
+       HEAP8[$124>>0] = $123;
+       $126 = ((($12)) + 11|0);
+       $127 = HEAP8[$126>>0]|0;
+       $128 = ((($12)) + 52|0);
+       $129 = HEAP8[$128>>0]|0;
+       HEAP8[$126>>0] = $129;
+       HEAP8[$128>>0] = $127;
+       $130 = ((($12)) + 12|0);
+       $131 = HEAP8[$130>>0]|0;
+       $132 = ((($12)) + 51|0);
+       $133 = HEAP8[$132>>0]|0;
+       HEAP8[$130>>0] = $133;
+       HEAP8[$132>>0] = $131;
+       $134 = ((($12)) + 13|0);
+       $135 = HEAP8[$134>>0]|0;
+       $136 = ((($12)) + 50|0);
+       $137 = HEAP8[$136>>0]|0;
+       HEAP8[$134>>0] = $137;
+       HEAP8[$136>>0] = $135;
+       $138 = ((($12)) + 14|0);
+       $139 = HEAP8[$138>>0]|0;
+       $140 = ((($12)) + 49|0);
+       $141 = HEAP8[$140>>0]|0;
+       HEAP8[$138>>0] = $141;
+       HEAP8[$140>>0] = $139;
+       $142 = ((($12)) + 15|0);
+       $143 = HEAP8[$142>>0]|0;
+       $144 = ((($12)) + 48|0);
+       $145 = HEAP8[$144>>0]|0;
+       HEAP8[$142>>0] = $145;
+       HEAP8[$144>>0] = $143;
+       $146 = ((($12)) + 16|0);
+       $147 = HEAP8[$146>>0]|0;
+       $148 = ((($12)) + 47|0);
+       $149 = HEAP8[$148>>0]|0;
+       HEAP8[$146>>0] = $149;
+       HEAP8[$148>>0] = $147;
+       $150 = ((($12)) + 17|0);
+       $151 = HEAP8[$150>>0]|0;
+       $152 = ((($12)) + 46|0);
+       $153 = HEAP8[$152>>0]|0;
+       HEAP8[$150>>0] = $153;
+       HEAP8[$152>>0] = $151;
+       $154 = ((($12)) + 18|0);
+       $155 = HEAP8[$154>>0]|0;
+       $156 = ((($12)) + 45|0);
+       $157 = HEAP8[$156>>0]|0;
+       HEAP8[$154>>0] = $157;
+       HEAP8[$156>>0] = $155;
+       $158 = ((($12)) + 19|0);
+       $159 = HEAP8[$158>>0]|0;
+       $160 = ((($12)) + 44|0);
+       $161 = HEAP8[$160>>0]|0;
+       HEAP8[$158>>0] = $161;
+       HEAP8[$160>>0] = $159;
+       $162 = ((($12)) + 20|0);
+       $163 = HEAP8[$162>>0]|0;
+       $164 = ((($12)) + 43|0);
+       $165 = HEAP8[$164>>0]|0;
+       HEAP8[$162>>0] = $165;
+       HEAP8[$164>>0] = $163;
+       $166 = ((($12)) + 21|0);
+       $167 = HEAP8[$166>>0]|0;
+       $168 = ((($12)) + 42|0);
+       $169 = HEAP8[$168>>0]|0;
+       HEAP8[$166>>0] = $169;
+       HEAP8[$168>>0] = $167;
+       $170 = ((($12)) + 22|0);
+       $171 = HEAP8[$170>>0]|0;
+       $172 = ((($12)) + 41|0);
+       $173 = HEAP8[$172>>0]|0;
+       HEAP8[$170>>0] = $173;
+       HEAP8[$172>>0] = $171;
+       $174 = ((($12)) + 23|0);
+       $175 = HEAP8[$174>>0]|0;
+       $176 = ((($12)) + 40|0);
+       $177 = HEAP8[$176>>0]|0;
+       HEAP8[$174>>0] = $177;
+       HEAP8[$176>>0] = $175;
+       $178 = ((($12)) + 24|0);
+       $179 = HEAP8[$178>>0]|0;
+       $180 = ((($12)) + 39|0);
+       $181 = HEAP8[$180>>0]|0;
+       HEAP8[$178>>0] = $181;
+       HEAP8[$180>>0] = $179;
+       $182 = ((($12)) + 25|0);
+       $183 = HEAP8[$182>>0]|0;
+       $184 = ((($12)) + 38|0);
+       $185 = HEAP8[$184>>0]|0;
+       HEAP8[$182>>0] = $185;
+       HEAP8[$184>>0] = $183;
+       $186 = ((($12)) + 26|0);
+       $187 = HEAP8[$186>>0]|0;
+       $188 = ((($12)) + 37|0);
+       $189 = HEAP8[$188>>0]|0;
+       HEAP8[$186>>0] = $189;
+       HEAP8[$188>>0] = $187;
+       $190 = ((($12)) + 27|0);
+       $191 = HEAP8[$190>>0]|0;
+       $192 = ((($12)) + 36|0);
+       $193 = HEAP8[$192>>0]|0;
+       HEAP8[$190>>0] = $193;
+       HEAP8[$192>>0] = $191;
+       $194 = ((($12)) + 28|0);
+       $195 = HEAP8[$194>>0]|0;
+       $196 = ((($12)) + 35|0);
+       $197 = HEAP8[$196>>0]|0;
+       HEAP8[$194>>0] = $197;
+       HEAP8[$196>>0] = $195;
+       $198 = ((($12)) + 29|0);
+       $199 = HEAP8[$198>>0]|0;
+       $200 = ((($12)) + 34|0);
+       $201 = HEAP8[$200>>0]|0;
+       HEAP8[$198>>0] = $201;
+       HEAP8[$200>>0] = $199;
+       $202 = ((($12)) + 30|0);
+       $203 = HEAP8[$202>>0]|0;
+       $204 = ((($12)) + 33|0);
+       $205 = HEAP8[$204>>0]|0;
+       HEAP8[$202>>0] = $205;
+       HEAP8[$204>>0] = $203;
+       $206 = ((($12)) + 31|0);
+       $207 = HEAP8[$206>>0]|0;
+       $208 = ((($12)) + 32|0);
+       $209 = HEAP8[$208>>0]|0;
+       HEAP8[$206>>0] = $209;
+       HEAP8[$208>>0] = $207;
+       $210 = (__gcry_get_debug_flag(1)|0);
+       $211 = ($210|0)==(0);
+       if (!($211)) {
+        __gcry_log_printhex(57849,$12,64);
+       }
+       __gcry_mpi_set_buffer($32,$12,64,0);
+       $212 = (__gcry_mpi_get_opaque_copy($3,$6)|0);
+       $213 = HEAP32[$6>>2]|0;
+       $214 = (($213) + 7)|0;
+       $215 = $214 >>> 3;
+       $216 = $214 >>> 4;
+       $217 = ($216|0)==(0);
+       if (!($217)) {
+        $218 = (($215) + -1)|0;
+        $$016$i89 = 0;
+        while(1) {
+         $219 = (($212) + ($$016$i89)|0);
+         $220 = HEAP8[$219>>0]|0;
+         $221 = (($218) - ($$016$i89))|0;
+         $222 = (($212) + ($221)|0);
+         $223 = HEAP8[$222>>0]|0;
+         HEAP8[$219>>0] = $223;
+         HEAP8[$222>>0] = $220;
+         $224 = (($$016$i89) + 1)|0;
+         $exitcond$i90 = ($224|0)==($216|0);
+         if ($exitcond$i90) {
+          break;
+         } else {
+          $$016$i89 = $224;
+         }
+        }
+       }
+       $225 = (__gcry_get_debug_flag(1)|0);
+       $226 = ($225|0)==(0);
+       if (!($226)) {
+        __gcry_log_printhex(70238,$212,$215);
+       }
+       __gcry_mpi_set_buffer($33,$212,$215,0);
+       __gcry_free($212);
+       $227 = ($215|0)==(32);
+       if ($227) {
+        $228 = ((($1)) + 20|0);
+        __gcry_mpi_ec_mul_point($14,$33,$228,$43);
+        __gcry_mpi_ec_mul_point($15,$32,$7,$43);
+        $229 = HEAP32[$15>>2]|0;
+        __gcry_mpi_neg($229,$229);
+        __gcry_mpi_ec_add_points($14,$14,$15,$43);
+        $230 = (__gcry_ecc_eddsa_encodepoint($14,$43,$33,$32,0,$10,$11)|0);
+        $231 = ($230|0)==(0);
+        if ($231) {
+         $232 = HEAP32[$11>>2]|0;
+         $233 = ($232|0)==(32);
+         if (!($233)) {
+          $$1 = 8;
+          break;
+         }
+         $234 = HEAP32[$10>>2]|0;
+         $235 = (_memcmp($234,$63,32)|0);
+         $236 = ($235|0)==(0);
+         $spec$select = $236 ? 0 : 8;
+         $$1 = $spec$select;
+        } else {
+         $$1 = $230;
+        }
+       } else {
+        $$1 = 139;
+       }
+      } else {
+       $$1 = $81;
+      }
+     } else {
+      $$1 = 139;
+     }
+    } else {
+     $$1 = 139;
+    }
+   }
+  } else {
+   $$1 = $47;
+  }
+ } while(0);
+ $237 = HEAP32[$8>>2]|0;
+ __gcry_free($237);
+ $238 = HEAP32[$10>>2]|0;
+ __gcry_free($238);
+ __gcry_mpi_ec_free($43);
+ __gcry_mpi_release($33);
+ __gcry_mpi_release($32);
+ __gcry_mpi_point_free_parts($14);
+ __gcry_mpi_point_free_parts($15);
+ __gcry_mpi_point_free_parts($7);
+ $$0 = $$1;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_ecc_curve_free($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, 
$8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 8|0);
+ $2 = HEAP32[$1>>2]|0;
+ __gcry_mpi_free($2);
+ HEAP32[$1>>2] = 0;
+ $3 = ((($0)) + 12|0);
+ $4 = HEAP32[$3>>2]|0;
+ __gcry_mpi_free($4);
+ HEAP32[$3>>2] = 0;
+ $5 = ((($0)) + 16|0);
+ $6 = HEAP32[$5>>2]|0;
+ __gcry_mpi_free($6);
+ HEAP32[$5>>2] = 0;
+ $7 = ((($0)) + 20|0);
+ __gcry_mpi_point_free_parts($7);
+ $8 = ((($0)) + 32|0);
+ $9 = HEAP32[$8>>2]|0;
+ __gcry_mpi_free($9);
+ HEAP32[$8>>2] = 0;
+ $10 = ((($0)) + 36|0);
+ $11 = HEAP32[$10>>2]|0;
+ __gcry_mpi_free($11);
+ HEAP32[$10>>2] = 0;
+ return;
+}
+function __gcry_ecc_curve_copy($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, 
$26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0, 
$7 = 0, $8 = 0, $9 = 0;
+ var dest = 0, label = 0, sp = 0, src = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $2 = sp;
+ $3 = HEAP32[$1>>2]|0;
+ HEAP32[$2>>2] = $3;
+ $4 = ((($1)) + 4|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = ((($2)) + 4|0);
+ HEAP32[$6>>2] = $5;
+ $7 = ((($1)) + 40|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ((($2)) + 40|0);
+ HEAP32[$9>>2] = $8;
+ $10 = ((($1)) + 8|0);
+ $11 = HEAP32[$10>>2]|0;
+ $12 = (__gcry_mpi_copy($11)|0);
+ $13 = ((($2)) + 8|0);
+ HEAP32[$13>>2] = $12;
+ $14 = ((($1)) + 12|0);
+ $15 = HEAP32[$14>>2]|0;
+ $16 = (__gcry_mpi_copy($15)|0);
+ $17 = ((($2)) + 12|0);
+ HEAP32[$17>>2] = $16;
+ $18 = ((($1)) + 16|0);
+ $19 = HEAP32[$18>>2]|0;
+ $20 = (__gcry_mpi_copy($19)|0);
+ $21 = ((($2)) + 16|0);
+ HEAP32[$21>>2] = $20;
+ $22 = ((($2)) + 20|0);
+ __gcry_mpi_point_init($22);
+ $23 = HEAP32[$22>>2]|0;
+ $24 = ((($1)) + 20|0);
+ $25 = HEAP32[$24>>2]|0;
+ (__gcry_mpi_set($23,$25)|0);
+ $26 = ((($2)) + 24|0);
+ $27 = HEAP32[$26>>2]|0;
+ $28 = ((($1)) + 24|0);
+ $29 = HEAP32[$28>>2]|0;
+ (__gcry_mpi_set($27,$29)|0);
+ $30 = ((($2)) + 28|0);
+ $31 = HEAP32[$30>>2]|0;
+ $32 = ((($1)) + 28|0);
+ $33 = HEAP32[$32>>2]|0;
+ (__gcry_mpi_set($31,$33)|0);
+ $34 = ((($1)) + 32|0);
+ $35 = HEAP32[$34>>2]|0;
+ $36 = (__gcry_mpi_copy($35)|0);
+ $37 = ((($2)) + 32|0);
+ HEAP32[$37>>2] = $36;
+ $38 = ((($1)) + 36|0);
+ $39 = HEAP32[$38>>2]|0;
+ $40 = (__gcry_mpi_copy($39)|0);
+ $41 = ((($2)) + 36|0);
+ HEAP32[$41>>2] = $40;
+ dest=$0; src=$2; stop=dest+44|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; 
dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ STACKTOP = sp;return;
+}
+function __gcry_ecc_model2str($0) {
+ $0 = $0|0;
+ var $$0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ switch ($0|0) {
+ case 0:  {
+  $$0 = 57871;
+  break;
+ }
+ case 1:  {
+  $$0 = 63906;
+  break;
+ }
+ case 2:  {
+  $$0 = 57863;
+  break;
+ }
+ default: {
+  $$0 = 59741;
+ }
+ }
+ return ($$0|0);
+}
+function __gcry_ecc_dialect2str($0) {
+ $0 = $0|0;
+ var $switch$select = 0, $switch$select3 = 0, $switch$selectcmp = 0, 
$switch$selectcmp2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $switch$selectcmp = ($0|0)==(1);
+ $switch$select = $switch$selectcmp ? 57883 : 59741;
+ $switch$selectcmp2 = ($0|0)==(0);
+ $switch$select3 = $switch$selectcmp2 ? 57891 : $switch$select;
+ return ($switch$select3|0);
+}
+function __gcry_ecc_ec2os($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 
0, $27 = 0, $28 = 0, $29 = 0;
+ var $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer4 = sp + 16|0;
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $3 = sp + 24|0;
+ $4 = sp + 20|0;
+ $5 = (__gcry_mpi_get_nbits($2)|0);
+ $6 = (($5) + 7)|0;
+ $7 = $6 >>> 3;
+ $8 = $7 << 1;
+ $9 = $8 | 1;
+ $10 = (__gcry_xmalloc($9)|0);
+ HEAP8[$10>>0] = 4;
+ $11 = ((($10)) + 1|0);
+ $12 = (__gcry_mpi_print(5,$11,$7,$3,$0)|0);
+ $13 = ($12|0)==(0);
+ if (!($13)) {
+  $14 = (_gpg_strerror($12)|0);
+  HEAP32[$vararg_buffer>>2] = $14;
+  __gcry_log_fatal(57900,$vararg_buffer);
+  // unreachable;
+ }
+ $15 = HEAP32[$3>>2]|0;
+ $16 = ($7>>>0)>($15>>>0);
+ $17 = (($7) - ($15))|0;
+ if ($16) {
+  $18 = (($11) + ($17)|0);
+  _memmove(($18|0),($11|0),($15|0))|0;
+  _memset(($11|0),0,($17|0))|0;
+ }
+ $19 = (($11) + ($7)|0);
+ $20 = (__gcry_mpi_print(5,$19,$7,$3,$1)|0);
+ $21 = ($20|0)==(0);
+ if (!($21)) {
+  $22 = (_gpg_strerror($20)|0);
+  HEAP32[$vararg_buffer1>>2] = $22;
+  __gcry_log_fatal(57900,$vararg_buffer1);
+  // unreachable;
+ }
+ $23 = HEAP32[$3>>2]|0;
+ $24 = ($7>>>0)>($23>>>0);
+ $25 = (($7) - ($23))|0;
+ if ($24) {
+  $26 = (($19) + ($25)|0);
+  _memmove(($26|0),($19|0),($23|0))|0;
+  _memset(($19|0),0,($25|0))|0;
+ }
+ $27 = (__gcry_mpi_scan($4,5,$10,$9,0)|0);
+ $28 = ($27|0)==(0);
+ if ($28) {
+  __gcry_free($10);
+  $30 = HEAP32[$4>>2]|0;
+  STACKTOP = sp;return ($30|0);
+ } else {
+  $29 = (_gpg_strerror($27)|0);
+  HEAP32[$vararg_buffer4>>2] = $29;
+  __gcry_log_fatal(57922,$vararg_buffer4);
+  // unreachable;
+ }
+ return (0)|0;
+}
+function __gcry_mpi_ec_ec2os($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $2 = (__gcry_mpi_new(0)|0);
+ $3 = (__gcry_mpi_new(0)|0);
+ $4 = (__gcry_mpi_ec_get_affine($2,$3,$0,$1)|0);
+ $5 = ($4|0)==(0);
+ if ($5) {
+  $6 = ((($1)) + 16|0);
+  $7 = HEAP32[$6>>2]|0;
+  $8 = (__gcry_ecc_ec2os($2,$3,$7)|0);
+  $$0 = $8;
+ } else {
+  $$0 = 0;
+ }
+ __gcry_mpi_free($2);
+ __gcry_mpi_free($3);
+ return ($$0|0);
+}
+function __gcry_ecc_os2ec($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$032 = 0, $$1 = 0, $$134 = 0, $$pr = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 
0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 
0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0;
+ var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $2 = sp + 12|0;
+ $3 = sp + 8|0;
+ $4 = sp + 4|0;
+ $5 = sp;
+ $6 = ($1|0)==(0|0);
+ do {
+  if ($6) {
+   label = 6;
+  } else {
+   $7 = ((($1)) + 12|0);
+   $8 = HEAP32[$7>>2]|0;
+   $9 = $8 & 4;
+   $10 = ($9|0)==(0);
+   if ($10) {
+    label = 6;
+   } else {
+    $11 = (__gcry_mpi_get_opaque($1,$5)|0);
+    $12 = ($11|0)==(0|0);
+    if (!($12)) {
+     $13 = HEAP32[$5>>2]|0;
+     $14 = (($13) + 7)|0;
+     $15 = $14 >>> 3;
+     HEAP32[$2>>2] = $15;
+     $$032 = $11;$$1 = 0;$23 = $15;
+     break;
+    }
+    $$134 = 65;
+    STACKTOP = sp;return ($$134|0);
+   }
+  }
+ } while(0);
+ do {
+  if ((label|0) == 6) {
+   $16 = (__gcry_mpi_get_nbits($1)|0);
+   $17 = (($16) + 7)|0;
+   $18 = $17 >>> 3;
+   HEAP32[$2>>2] = $18;
+   $19 = (__gcry_xmalloc($18)|0);
+   $20 = (__gcry_mpi_print(5,$19,$18,$2,$1)|0);
+   $21 = ($20|0)==(0);
+   if ($21) {
+    $$pr = HEAP32[$2>>2]|0;
+    $$032 = $19;$$1 = $19;$23 = $$pr;
+    break;
+   }
+   __gcry_free($19);
+   $$134 = $20;
+   STACKTOP = sp;return ($$134|0);
+  }
+ } while(0);
+ $22 = ($23|0)==(0);
+ if ($22) {
+  __gcry_free($$1);
+  $$134 = 65;
+  STACKTOP = sp;return ($$134|0);
+ }
+ $24 = HEAP8[$$032>>0]|0;
+ $25 = ($24<<24>>24)==(4);
+ if (!($25)) {
+  __gcry_free($$1);
+  $$134 = 69;
+  STACKTOP = sp;return ($$134|0);
+ }
+ $26 = (($23) + -1)|0;
+ $27 = $26 & 1;
+ $28 = ($27|0)==(0);
+ if (!($28)) {
+  __gcry_free($$1);
+  $$134 = 65;
+  STACKTOP = sp;return ($$134|0);
+ }
+ $29 = $26 >>> 1;
+ HEAP32[$2>>2] = $29;
+ $30 = ((($$032)) + 1|0);
+ $31 = (__gcry_mpi_scan($3,5,$30,$29,0)|0);
+ $32 = ($31|0)==(0);
+ if (!($32)) {
+  __gcry_free($$1);
+  $$134 = $31;
+  STACKTOP = sp;return ($$134|0);
+ }
+ $33 = HEAP32[$2>>2]|0;
+ $34 = (($30) + ($33)|0);
+ $35 = (__gcry_mpi_scan($4,5,$34,$33,0)|0);
+ __gcry_free($$1);
+ $36 = ($35|0)==(0);
+ if ($36) {
+  $38 = HEAP32[$0>>2]|0;
+  $39 = HEAP32[$3>>2]|0;
+  (__gcry_mpi_set($38,$39)|0);
+  $40 = ((($0)) + 4|0);
+  $41 = HEAP32[$40>>2]|0;
+  $42 = HEAP32[$4>>2]|0;
+  (__gcry_mpi_set($41,$42)|0);
+  $43 = ((($0)) + 8|0);
+  $44 = HEAP32[$43>>2]|0;
+  (__gcry_mpi_set_ui($44,1)|0);
+  $45 = HEAP32[$3>>2]|0;
+  __gcry_mpi_free($45);
+  $46 = HEAP32[$4>>2]|0;
+  __gcry_mpi_free($46);
+  $$134 = 0;
+  STACKTOP = sp;return ($$134|0);
+ } else {
+  $37 = HEAP32[$3>>2]|0;
+  __gcry_mpi_free($37);
+  $$134 = $35;
+  STACKTOP = sp;return ($$134|0);
+ }
+ return (0)|0;
+}
+function __gcry_ecc_compute_public($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$033 = 0, $$034 = 0, $$03537 = 0, $$03538 = 0, $$1 = 0, $$241 = 0, $10 = 
0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 
= 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
+ var $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, $5 = 0;
+ var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $4 = sp;
+ $5 = ($2|0)==(0|0);
+ if ($5) {
+  $6 = ((($1)) + 28|0);
+  $7 = HEAP32[$6>>2]|0;
+  $$034 = $7;
+ } else {
+  $$034 = $2;
+ }
+ $8 = ($3|0)==(0|0);
+ if ($8) {
+  $9 = ((($1)) + 44|0);
+  $10 = HEAP32[$9>>2]|0;
+  $$033 = $10;
+ } else {
+  $$033 = $3;
+ }
+ $11 = ($$033|0)!=(0|0);
+ $12 = ($$034|0)!=(0|0);
+ $or$cond = $12 & $11;
+ if (!($or$cond)) {
+  $$1 = 0;
+  STACKTOP = sp;return ($$1|0);
+ }
+ $13 = ((($1)) + 16|0);
+ $14 = HEAP32[$13>>2]|0;
+ $15 = ($14|0)==(0|0);
+ if ($15) {
+  $$1 = 0;
+  STACKTOP = sp;return ($$1|0);
+ }
+ $16 = ((($1)) + 20|0);
+ $17 = HEAP32[$16>>2]|0;
+ $18 = ($17|0)==(0|0);
+ if ($18) {
+  $$1 = 0;
+  STACKTOP = sp;return ($$1|0);
+ }
+ $19 = HEAP32[$1>>2]|0;
+ $20 = ($19|0)==(2);
+ if ($20) {
+  $21 = ((($1)) + 24|0);
+  $22 = HEAP32[$21>>2]|0;
+  $23 = ($22|0)==(0|0);
+  if ($23) {
+   $$1 = 0;
+   STACKTOP = sp;return ($$1|0);
+  }
+ }
+ $24 = ((($1)) + 4|0);
+ $25 = HEAP32[$24>>2]|0;
+ $26 = ($25|0)==(1);
+ if ($26) {
+  $27 = ((($1)) + 8|0);
+  $28 = HEAP32[$27>>2]|0;
+  $29 = $28 & 4096;
+  $30 = ($29|0)==(0);
+  if (!($30)) {
+   $31 = (__gcry_ecc_eddsa_compute_h_d($4,$$033,$1)|0);
+   $32 = ($31|0)==(0);
+   if (!($32)) {
+    $$1 = 0;
+    STACKTOP = sp;return ($$1|0);
+   }
+   $33 = (__gcry_mpi_snew(0)|0);
+   $34 = HEAP32[$4>>2]|0;
+   __gcry_mpi_set_buffer($33,$34,32,0);
+   $35 = HEAP32[$4>>2]|0;
+   __gcry_free($35);
+   $36 = ($0|0)==(0|0);
+   if ($36) {
+    $37 = (__gcry_mpi_point_new(0)|0);
+    $38 = ($37|0)==(0|0);
+    if ($38) {
+     $$03538 = 0;
+    } else {
+     $$03537 = $37;
+     label = 15;
+    }
+   } else {
+    $$03537 = $0;
+    label = 15;
+   }
+   if ((label|0) == 15) {
+    __gcry_mpi_ec_mul_point($$03537,$33,$$034,$1);
+    $$03538 = $$03537;
+   }
+   __gcry_mpi_free($33);
+   $$1 = $$03538;
+   STACKTOP = sp;return ($$1|0);
+  }
+ }
+ $39 = ($0|0)==(0|0);
+ if ($39) {
+  $40 = (__gcry_mpi_point_new(0)|0);
+  $41 = ($40|0)==(0|0);
+  if ($41) {
+   $$1 = 0;
+   STACKTOP = sp;return ($$1|0);
+  } else {
+   $$241 = $40;
+  }
+ } else {
+  $$241 = $0;
+ }
+ __gcry_mpi_ec_mul_point($$241,$$033,$$034,$1);
+ $$1 = $$241;
+ STACKTOP = sp;return ($$1|0);
+}
+function __gcry_hmac_selftest($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$022$i$i = 0, $$022$i20$i = 0, $$022$i28$i = 0, $$035$i$i = 0, $$036$i$i 
= 0, $$038$ph$i$i = 0, $$03949$i$i = 0, $$141$i$i = 0, $$23440$i$i = 0, 
$$lcssa$i$i = 0, $$lcssa$i22$i = 0, $$lcssa$i30$i = 0, $$lcssa21$i$i = 0, 
$$lcssa21$i21$i = 0, $$lcssa21$i29$i = 0, $$lcssa43$i$i = 0, $$lcssa44$i$i = 0, 
$$lcssa47$i$i = 0, $$lcssa48$i$i = 0, $10 = 0;
+ var $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, 
$107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, 
$114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0;
+ var $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, $136 = 0;
+ var $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 
= 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 
= 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0;
+ var $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 
= 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 
= 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0;
+ var $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 
= 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 
= 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0;
+ var $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, 
$198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, 
$205 = 0, $206 = 0, $21 = 0, $22 = 0, $23 = 0;
+ var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, 
$31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 
0, $4 = 0, $40 = 0, $41 = 0;
+ var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, 
$5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, 
$58 = 0, $59 = 0, $6 = 0;
+ var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, 
$68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, 
$76 = 0, $77 = 0, $78 = 0;
+ var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, 
$86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, 
$94 = 0, $95 = 0, $96 = 0;
+ var $97 = 0, $98 = 0, $99 = 0, $exitcond$i$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(144|0);
+ $3 = sp + 128|0;
+ $4 = sp;
+ $5 = (__gcry_md_algo_info($0,8,0,0)|0);
+ $6 = ($5|0)==(0);
+ if (!($6)) {
+  $201 = ($2|0)==(0|0);
+  if ($201) {
+   $202 = 16777221;
+   STACKTOP = sp;return ($202|0);
+  }
+  FUNCTION_TABLE_viiii[$2 & 63](58127,$0,59834,58227);
+  $202 = 16777221;
+  STACKTOP = sp;return ($202|0);
+ }
+ switch ($0|0) {
+ case 2:  {
+  HEAP8[$4>>0] = 0;
+  $7 = ((($4)) + 1|0);
+  HEAP8[$7>>0] = 1;
+  $8 = ((($4)) + 2|0);
+  HEAP8[$8>>0] = 2;
+  $9 = ((($4)) + 3|0);
+  HEAP8[$9>>0] = 3;
+  $10 = ((($4)) + 4|0);
+  HEAP8[$10>>0] = 4;
+  $11 = ((($4)) + 5|0);
+  HEAP8[$11>>0] = 5;
+  $12 = ((($4)) + 6|0);
+  HEAP8[$12>>0] = 6;
+  $13 = ((($4)) + 7|0);
+  HEAP8[$13>>0] = 7;
+  $14 = ((($4)) + 8|0);
+  HEAP8[$14>>0] = 8;
+  $15 = ((($4)) + 9|0);
+  HEAP8[$15>>0] = 9;
+  $16 = ((($4)) + 10|0);
+  HEAP8[$16>>0] = 10;
+  $17 = ((($4)) + 11|0);
+  HEAP8[$17>>0] = 11;
+  $18 = ((($4)) + 12|0);
+  HEAP8[$18>>0] = 12;
+  $19 = ((($4)) + 13|0);
+  HEAP8[$19>>0] = 13;
+  $20 = ((($4)) + 14|0);
+  HEAP8[$20>>0] = 14;
+  $21 = ((($4)) + 15|0);
+  HEAP8[$21>>0] = 15;
+  $22 = ((($4)) + 16|0);
+  HEAP8[$22>>0] = 16;
+  $23 = ((($4)) + 17|0);
+  HEAP8[$23>>0] = 17;
+  $24 = ((($4)) + 18|0);
+  HEAP8[$24>>0] = 18;
+  $25 = ((($4)) + 19|0);
+  HEAP8[$25>>0] = 19;
+  $26 = ((($4)) + 20|0);
+  HEAP8[$26>>0] = 20;
+  $27 = ((($4)) + 21|0);
+  HEAP8[$27>>0] = 21;
+  $28 = ((($4)) + 22|0);
+  HEAP8[$28>>0] = 22;
+  $29 = ((($4)) + 23|0);
+  HEAP8[$29>>0] = 23;
+  $30 = ((($4)) + 24|0);
+  HEAP8[$30>>0] = 24;
+  $31 = ((($4)) + 25|0);
+  HEAP8[$31>>0] = 25;
+  $32 = ((($4)) + 26|0);
+  HEAP8[$32>>0] = 26;
+  $33 = ((($4)) + 27|0);
+  HEAP8[$33>>0] = 27;
+  $34 = ((($4)) + 28|0);
+  HEAP8[$34>>0] = 28;
+  $35 = ((($4)) + 29|0);
+  HEAP8[$35>>0] = 29;
+  $36 = ((($4)) + 30|0);
+  HEAP8[$36>>0] = 30;
+  $37 = ((($4)) + 31|0);
+  HEAP8[$37>>0] = 31;
+  $38 = ((($4)) + 32|0);
+  HEAP8[$38>>0] = 32;
+  $39 = ((($4)) + 33|0);
+  HEAP8[$39>>0] = 33;
+  $40 = ((($4)) + 34|0);
+  HEAP8[$40>>0] = 34;
+  $41 = ((($4)) + 35|0);
+  HEAP8[$41>>0] = 35;
+  $42 = ((($4)) + 36|0);
+  HEAP8[$42>>0] = 36;
+  $43 = ((($4)) + 37|0);
+  HEAP8[$43>>0] = 37;
+  $44 = ((($4)) + 38|0);
+  HEAP8[$44>>0] = 38;
+  $45 = ((($4)) + 39|0);
+  HEAP8[$45>>0] = 39;
+  $46 = ((($4)) + 40|0);
+  HEAP8[$46>>0] = 40;
+  $47 = ((($4)) + 41|0);
+  HEAP8[$47>>0] = 41;
+  $48 = ((($4)) + 42|0);
+  HEAP8[$48>>0] = 42;
+  $49 = ((($4)) + 43|0);
+  HEAP8[$49>>0] = 43;
+  $50 = ((($4)) + 44|0);
+  HEAP8[$50>>0] = 44;
+  $51 = ((($4)) + 45|0);
+  HEAP8[$51>>0] = 45;
+  $52 = ((($4)) + 46|0);
+  HEAP8[$52>>0] = 46;
+  $53 = ((($4)) + 47|0);
+  HEAP8[$53>>0] = 47;
+  $54 = ((($4)) + 48|0);
+  HEAP8[$54>>0] = 48;
+  $55 = ((($4)) + 49|0);
+  HEAP8[$55>>0] = 49;
+  $56 = ((($4)) + 50|0);
+  HEAP8[$56>>0] = 50;
+  $57 = ((($4)) + 51|0);
+  HEAP8[$57>>0] = 51;
+  $58 = ((($4)) + 52|0);
+  HEAP8[$58>>0] = 52;
+  $59 = ((($4)) + 53|0);
+  HEAP8[$59>>0] = 53;
+  $60 = ((($4)) + 54|0);
+  HEAP8[$60>>0] = 54;
+  $61 = ((($4)) + 55|0);
+  HEAP8[$61>>0] = 55;
+  $62 = ((($4)) + 56|0);
+  HEAP8[$62>>0] = 56;
+  $63 = ((($4)) + 57|0);
+  HEAP8[$63>>0] = 57;
+  $64 = ((($4)) + 58|0);
+  HEAP8[$64>>0] = 58;
+  $65 = ((($4)) + 59|0);
+  HEAP8[$65>>0] = 59;
+  $66 = ((($4)) + 60|0);
+  HEAP8[$66>>0] = 60;
+  $67 = ((($4)) + 61|0);
+  HEAP8[$67>>0] = 61;
+  $68 = ((($4)) + 62|0);
+  HEAP8[$68>>0] = 62;
+  $69 = ((($4)) + 63|0);
+  HEAP8[$69>>0] = 63;
+  $70 = (_check_one(2,57943,9,$4,64,57953,20)|0);
+  $71 = ($70|0)==(0|0);
+  do {
+   if ($71) {
+    $72 = ($1|0)==(0);
+    if (!($72)) {
+     HEAP8[$4>>0] = 48;
+     HEAP8[$7>>0] = 49;
+     HEAP8[$8>>0] = 50;
+     HEAP8[$9>>0] = 51;
+     HEAP8[$10>>0] = 52;
+     HEAP8[$11>>0] = 53;
+     HEAP8[$12>>0] = 54;
+     HEAP8[$13>>0] = 55;
+     HEAP8[$14>>0] = 56;
+     HEAP8[$15>>0] = 57;
+     HEAP8[$16>>0] = 58;
+     HEAP8[$17>>0] = 59;
+     HEAP8[$18>>0] = 60;
+     HEAP8[$19>>0] = 61;
+     HEAP8[$20>>0] = 62;
+     HEAP8[$21>>0] = 63;
+     HEAP8[$22>>0] = 64;
+     HEAP8[$23>>0] = 65;
+     HEAP8[$24>>0] = 66;
+     HEAP8[$25>>0] = 67;
+     $73 = (_check_one(2,57974,9,$4,20,57984,20)|0);
+     $74 = ($73|0)==(0|0);
+     if (!($74)) {
+      $$035$i$i = $73;$$036$i$i = 58082;
+      break;
+     }
+     $$141$i$i = 80;$$23440$i$i = 0;
+     while(1) {
+      $75 = (($$141$i$i) + 1)|0;
+      $76 = $$141$i$i&255;
+      $77 = (($4) + ($$23440$i$i)|0);
+      HEAP8[$77>>0] = $76;
+      $78 = (($$23440$i$i) + 1)|0;
+      $exitcond$i$i = ($78|0)==(100);
+      if ($exitcond$i$i) {
+       break;
+      } else {
+       $$141$i$i = $75;$$23440$i$i = $78;
+      }
+     }
+     $79 = (_check_one(2,58005,9,$4,100,58015,20)|0);
+     $80 = ($79|0)==(0|0);
+     if (!($80)) {
+      $$035$i$i = $79;$$036$i$i = 58097;
+      break;
+     }
+     HEAP8[$4>>0] = 112;
+     HEAP8[$7>>0] = 113;
+     HEAP8[$8>>0] = 114;
+     HEAP8[$9>>0] = 115;
+     HEAP8[$10>>0] = 116;
+     HEAP8[$11>>0] = 117;
+     HEAP8[$12>>0] = 118;
+     HEAP8[$13>>0] = 119;
+     HEAP8[$14>>0] = 120;
+     HEAP8[$15>>0] = 121;
+     HEAP8[$16>>0] = 122;
+     HEAP8[$17>>0] = 123;
+     HEAP8[$18>>0] = 124;
+     HEAP8[$19>>0] = 125;
+     HEAP8[$20>>0] = 126;
+     HEAP8[$21>>0] = 127;
+     HEAP8[$22>>0] = -128;
+     HEAP8[$23>>0] = -127;
+     HEAP8[$24>>0] = -126;
+     HEAP8[$25>>0] = -125;
+     HEAP8[$26>>0] = -124;
+     HEAP8[$27>>0] = -123;
+     HEAP8[$28>>0] = -122;
+     HEAP8[$29>>0] = -121;
+     HEAP8[$30>>0] = -120;
+     HEAP8[$31>>0] = -119;
+     HEAP8[$32>>0] = -118;
+     HEAP8[$33>>0] = -117;
+     HEAP8[$34>>0] = -116;
+     HEAP8[$35>>0] = -115;
+     HEAP8[$36>>0] = -114;
+     HEAP8[$37>>0] = -113;
+     HEAP8[$38>>0] = -112;
+     HEAP8[$39>>0] = -111;
+     HEAP8[$40>>0] = -110;
+     HEAP8[$41>>0] = -109;
+     HEAP8[$42>>0] = -108;
+     HEAP8[$43>>0] = -107;
+     HEAP8[$44>>0] = -106;
+     HEAP8[$45>>0] = -105;
+     HEAP8[$46>>0] = -104;
+     HEAP8[$47>>0] = -103;
+     HEAP8[$48>>0] = -102;
+     HEAP8[$49>>0] = -101;
+     HEAP8[$50>>0] = -100;
+     HEAP8[$51>>0] = -99;
+     HEAP8[$52>>0] = -98;
+     HEAP8[$53>>0] = -97;
+     HEAP8[$54>>0] = -96;
+     $81 = (_check_one(2,58036,9,$4,49,58046,20)|0);
+     $82 = ($81|0)==(0|0);
+     if (!($82)) {
+      $$035$i$i = $81;$$036$i$i = 58112;
+      break;
+     }
+    }
+    $202 = 0;
+    STACKTOP = sp;return ($202|0);
+   } else {
+    $$035$i$i = $70;$$036$i$i = 58067;
+   }
+  } while(0);
+  $83 = ($2|0)==(0|0);
+  if (!($83)) {
+   FUNCTION_TABLE_viiii[$2 & 63](58127,2,$$036$i$i,$$035$i$i);
+  }
+  $202 = 16777266;
+  STACKTOP = sp;return ($202|0);
+  break;
+ }
+ case 11:  {
+  $84 = HEAP32[400]|0;
+  $85 = ($84|0)==(0|0);
+  if ($85) {
+   $202 = 0;
+   STACKTOP = sp;return ($202|0);
+  }
+  $86 = ($1|0)==(0);
+  L30: do {
+   if ($86) {
+    $87 = HEAP32[(1604)>>2]|0;
+    $88 = (_strlen($87)|0);
+    $89 = HEAP32[(1608)>>2]|0;
+    $90 = (_strlen($89)|0);
+    $91 = (_check_one(11,$87,$88,$89,$90,(1612),28)|0);
+    $92 = ($91|0)==(0|0);
+    if ($92) {
+     $202 = 0;
+     STACKTOP = sp;return ($202|0);
+    } else {
+     $$lcssa$i$i = $91;$$lcssa21$i$i = $84;
+    }
+   } else {
+    $$022$i$i = 0;$203 = $84;
+    while(1) {
+     $93 = (((1600 + (($$022$i$i*40)|0)|0)) + 4|0);
+     $94 = HEAP32[$93>>2]|0;
+     $95 = (_strlen($94)|0);
+     $96 = (((1600 + (($$022$i$i*40)|0)|0)) + 8|0);
+     $97 = HEAP32[$96>>2]|0;
+     $98 = (_strlen($97)|0);
+     $99 = (((1600 + (($$022$i$i*40)|0)|0)) + 12|0);
+     $100 = (_check_one(11,$94,$95,$97,$98,$99,28)|0);
+     $101 = ($100|0)==(0|0);
+     if (!($101)) {
+      $$lcssa$i$i = $100;$$lcssa21$i$i = $203;
+      break L30;
+     }
+     $102 = (($$022$i$i) + 1)|0;
+     $103 = (1600 + (($102*40)|0)|0);
+     $104 = HEAP32[$103>>2]|0;
+     $105 = ($104|0)==(0|0);
+     if ($105) {
+      $202 = 0;
+      break;
+     } else {
+      $$022$i$i = $102;$203 = $104;
+     }
+    }
+    STACKTOP = sp;return ($202|0);
+   }
+  } while(0);
+  $106 = ($2|0)==(0|0);
+  if ($106) {
+   $202 = 16777266;
+   STACKTOP = sp;return ($202|0);
+  }
+  FUNCTION_TABLE_viiii[$2 & 63](58127,11,$$lcssa21$i$i,$$lcssa$i$i);
+  $202 = 16777266;
+  STACKTOP = sp;return ($202|0);
+  break;
+ }
+ case 8:  {
+  $107 = HEAP32[472]|0;
+  $108 = ($107|0)==(0|0);
+  if ($108) {
+   $202 = 0;
+   STACKTOP = sp;return ($202|0);
+  }
+  $109 = ($1|0)==(0);
+  L47: do {
+   if ($109) {
+    $110 = HEAP32[(1892)>>2]|0;
+    $111 = (_strlen($110)|0);
+    $112 = HEAP32[(1896)>>2]|0;
+    $113 = (_strlen($112)|0);
+    $114 = (_check_one(8,$110,$111,$112,$113,(1900),32)|0);
+    $115 = ($114|0)==(0|0);
+    if ($115) {
+     $116 = HEAP32[(1896)>>2]|0;
+     $117 = (_strlen($116)|0);
+     $118 = (__gcry_hmac256_new($116,$117)|0);
+     $119 = ($118|0)==(0|0);
+     if ($119) {
+      $$038$ph$i$i = 58202;$154 = $107;
+     } else {
+      $120 = HEAP32[(1892)>>2]|0;
+      $121 = (_strlen($120)|0);
+      __gcry_hmac256_update($118,$120,$121);
+      $122 = (__gcry_hmac256_finalize($118,$3)|0);
+      $123 = ($122|0)==(0|0);
+      if ($123) {
+       $$lcssa43$i$i = $118;$$lcssa47$i$i = $107;
+       label = 32;
+      } else {
+       $124 = HEAP32[$3>>2]|0;
+       $125 = ($124|0)==(32);
+       if ($125) {
+        $126 = (_memcmp($122,(1900),32)|0);
+        $127 = ($126|0)==(0);
+        if ($127) {
+         __gcry_hmac256_release($118);
+         $202 = 0;
+         STACKTOP = sp;return ($202|0);
+        } else {
+         $$lcssa44$i$i = $118;$$lcssa48$i$i = $107;
+         label = 35;
+        }
+       } else {
+        $$lcssa44$i$i = $118;$$lcssa48$i$i = $107;
+        label = 35;
+       }
+      }
+     }
+    } else {
+     $$038$ph$i$i = $114;$154 = $107;
+    }
+   } else {
+    $$03949$i$i = 0;$204 = $107;
+    while(1) {
+     $128 = (((1888 + (($$03949$i$i*44)|0)|0)) + 4|0);
+     $129 = HEAP32[$128>>2]|0;
+     $130 = (_strlen($129)|0);
+     $131 = (((1888 + (($$03949$i$i*44)|0)|0)) + 8|0);
+     $132 = HEAP32[$131>>2]|0;
+     $133 = (_strlen($132)|0);
+     $134 = (((1888 + (($$03949$i$i*44)|0)|0)) + 12|0);
+     $135 = (_check_one(8,$129,$130,$132,$133,$134,32)|0);
+     $136 = ($135|0)==(0|0);
+     if (!($136)) {
+      $$038$ph$i$i = $135;$154 = $204;
+      break L47;
+     }
+     $137 = HEAP32[$131>>2]|0;
+     $138 = (_strlen($137)|0);
+     $139 = (__gcry_hmac256_new($137,$138)|0);
+     $140 = ($139|0)==(0|0);
+     if ($140) {
+      $$038$ph$i$i = 58202;$154 = $204;
+      break L47;
+     }
+     $141 = HEAP32[$128>>2]|0;
+     $142 = (_strlen($141)|0);
+     __gcry_hmac256_update($139,$141,$142);
+     $143 = (__gcry_hmac256_finalize($139,$3)|0);
+     $144 = ($143|0)==(0|0);
+     if ($144) {
+      $$lcssa43$i$i = $139;$$lcssa47$i$i = $204;
+      label = 32;
+      break L47;
+     }
+     $145 = HEAP32[$3>>2]|0;
+     $146 = ($145|0)==(32);
+     if (!($146)) {
+      $$lcssa44$i$i = $139;$$lcssa48$i$i = $204;
+      label = 35;
+      break L47;
+     }
+     $147 = (_memcmp($143,$134,32)|0);
+     $148 = ($147|0)==(0);
+     if (!($148)) {
+      $$lcssa44$i$i = $139;$$lcssa48$i$i = $204;
+      label = 35;
+      break L47;
+     }
+     __gcry_hmac256_release($139);
+     $150 = (($$03949$i$i) + 1)|0;
+     $151 = (1888 + (($150*44)|0)|0);
+     $152 = HEAP32[$151>>2]|0;
+     $153 = ($152|0)==(0|0);
+     if ($153) {
+      $202 = 0;
+      break;
+     } else {
+      $$03949$i$i = $150;$204 = $152;
+     }
+    }
+    STACKTOP = sp;return ($202|0);
+   }
+  } while(0);
+  if ((label|0) == 32) {
+   __gcry_hmac256_release($$lcssa43$i$i);
+   $$038$ph$i$i = 58132;$154 = $$lcssa47$i$i;
+  }
+  else if ((label|0) == 35) {
+   __gcry_hmac256_release($$lcssa44$i$i);
+   $$038$ph$i$i = 58162;$154 = $$lcssa48$i$i;
+  }
+  $149 = ($2|0)==(0|0);
+  if ($149) {
+   $202 = 16777266;
+   STACKTOP = sp;return ($202|0);
+  }
+  FUNCTION_TABLE_viiii[$2 & 63](58127,8,$154,$$038$ph$i$i);
+  $202 = 16777266;
+  STACKTOP = sp;return ($202|0);
+  break;
+ }
+ case 9:  {
+  $155 = HEAP32[552]|0;
+  $156 = ($155|0)==(0|0);
+  if ($156) {
+   $202 = 0;
+   STACKTOP = sp;return ($202|0);
+  }
+  $157 = ($1|0)==(0);
+  L76: do {
+   if ($157) {
+    $158 = HEAP32[(2212)>>2]|0;
+    $159 = (_strlen($158)|0);
+    $160 = HEAP32[(2216)>>2]|0;
+    $161 = (_strlen($160)|0);
+    $162 = (_check_one(9,$158,$159,$160,$161,(2220),48)|0);
+    $163 = ($162|0)==(0|0);
+    if ($163) {
+     $202 = 0;
+     STACKTOP = sp;return ($202|0);
+    } else {
+     $$lcssa$i22$i = $162;$$lcssa21$i21$i = $155;
+    }
+   } else {
+    $$022$i20$i = 0;$205 = $155;
+    while(1) {
+     $164 = (((2208 + (($$022$i20$i*60)|0)|0)) + 4|0);
+     $165 = HEAP32[$164>>2]|0;
+     $166 = (_strlen($165)|0);
+     $167 = (((2208 + (($$022$i20$i*60)|0)|0)) + 8|0);
+     $168 = HEAP32[$167>>2]|0;
+     $169 = (_strlen($168)|0);
+     $170 = (((2208 + (($$022$i20$i*60)|0)|0)) + 12|0);
+     $171 = (_check_one(9,$165,$166,$168,$169,$170,48)|0);
+     $172 = ($171|0)==(0|0);
+     if (!($172)) {
+      $$lcssa$i22$i = $171;$$lcssa21$i21$i = $205;
+      break L76;
+     }
+     $173 = (($$022$i20$i) + 1)|0;
+     $174 = (2208 + (($173*60)|0)|0);
+     $175 = HEAP32[$174>>2]|0;
+     $176 = ($175|0)==(0|0);
+     if ($176) {
+      $202 = 0;
+      break;
+     } else {
+      $$022$i20$i = $173;$205 = $175;
+     }
+    }
+    STACKTOP = sp;return ($202|0);
+   }
+  } while(0);
+  $177 = ($2|0)==(0|0);
+  if ($177) {
+   $202 = 16777266;
+   STACKTOP = sp;return ($202|0);
+  }
+  FUNCTION_TABLE_viiii[$2 & 63](58127,9,$$lcssa21$i21$i,$$lcssa$i22$i);
+  $202 = 16777266;
+  STACKTOP = sp;return ($202|0);
+  break;
+ }
+ case 10:  {
+  $178 = HEAP32[660]|0;
+  $179 = ($178|0)==(0|0);
+  if ($179) {
+   $202 = 0;
+   STACKTOP = sp;return ($202|0);
+  }
+  $180 = ($1|0)==(0);
+  L93: do {
+   if ($180) {
+    $181 = HEAP32[(2644)>>2]|0;
+    $182 = (_strlen($181)|0);
+    $183 = HEAP32[(2648)>>2]|0;
+    $184 = (_strlen($183)|0);
+    $185 = (_check_one(10,$181,$182,$183,$184,(2652),64)|0);
+    $186 = ($185|0)==(0|0);
+    if ($186) {
+     $202 = 0;
+     STACKTOP = sp;return ($202|0);
+    } else {
+     $$lcssa$i30$i = $185;$$lcssa21$i29$i = $178;
+    }
+   } else {
+    $$022$i28$i = 0;$206 = $178;
+    while(1) {
+     $187 = (((2640 + (($$022$i28$i*76)|0)|0)) + 4|0);
+     $188 = HEAP32[$187>>2]|0;
+     $189 = (_strlen($188)|0);
+     $190 = (((2640 + (($$022$i28$i*76)|0)|0)) + 8|0);
+     $191 = HEAP32[$190>>2]|0;
+     $192 = (_strlen($191)|0);
+     $193 = (((2640 + (($$022$i28$i*76)|0)|0)) + 12|0);
+     $194 = (_check_one(10,$188,$189,$191,$192,$193,64)|0);
+     $195 = ($194|0)==(0|0);
+     if (!($195)) {
+      $$lcssa$i30$i = $194;$$lcssa21$i29$i = $206;
+      break L93;
+     }
+     $196 = (($$022$i28$i) + 1)|0;
+     $197 = (2640 + (($196*76)|0)|0);
+     $198 = HEAP32[$197>>2]|0;
+     $199 = ($198|0)==(0|0);
+     if ($199) {
+      $202 = 0;
+      break;
+     } else {
+      $$022$i28$i = $196;$206 = $198;
+     }
+    }
+    STACKTOP = sp;return ($202|0);
+   }
+  } while(0);
+  $200 = ($2|0)==(0|0);
+  if ($200) {
+   $202 = 16777266;
+   STACKTOP = sp;return ($202|0);
+  }
+  FUNCTION_TABLE_viiii[$2 & 63](58127,10,$$lcssa21$i29$i,$$lcssa$i30$i);
+  $202 = 16777266;
+  STACKTOP = sp;return ($202|0);
+  break;
+ }
+ default: {
+  $202 = 16777221;
+  STACKTOP = sp;return ($202|0);
+ }
+ }
+ return (0)|0;
+}
+function _check_one($0,$1,$2,$3,$4,$5,$6) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ var $$ = 0, $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $7 = 0, $8 = 0, 
$9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $7 = sp;
+ $8 = (__gcry_md_get_algo_dlen($0)|0);
+ $9 = ($8|0)==($6|0);
+ do {
+  if ($9) {
+   $10 = (__gcry_md_open($7,$0,2)|0);
+   $11 = ($10|0)==(0);
+   if ($11) {
+    $12 = HEAP32[$7>>2]|0;
+    $13 = (__gcry_md_setkey($12,$3,$4)|0);
+    $14 = ($13|0)==(0);
+    $15 = HEAP32[$7>>2]|0;
+    if (!($14)) {
+     __gcry_md_close($15);
+     $$0 = 58910;
+     break;
+    }
+    __gcry_md_write($15,$1,$2);
+    $16 = HEAP32[$7>>2]|0;
+    $17 = (__gcry_md_read($16,$0)|0);
+    $18 = ($17|0)==(0|0);
+    if ($18) {
+     $19 = HEAP32[$7>>2]|0;
+     __gcry_md_close($19);
+     $$0 = 58932;
+     break;
+    } else {
+     $20 = (_memcmp($17,$5,$6)|0);
+     $21 = ($20|0)==(0);
+     $22 = HEAP32[$7>>2]|0;
+     __gcry_md_close($22);
+     $$ = $21 ? 0 : 58895;
+     $$0 = $$;
+     break;
+    }
+   } else {
+    $$0 = 67519;
+   }
+  } else {
+   $$0 = 58952;
+  }
+ } while(0);
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_md_map_name($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$019$i$ph$i = 0, $$022$i = 0, $$023$1$i$i = 0, $$023$2$i$i = 0, 
$$023$3$i$i = 0, $$023$4$i$i = 0, $$023$5$i$i = 0, $$023$i$i = 0, $$08$i = 0, 
$$ph = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $11 = 0, $12 = 0, $13 
= 0, $14 = 0;
+ var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, 
$22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, 
$30 = 0, $31 = 0, $32 = 0;
+ var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 
0, $49 = 0, $5 = 0, $50 = 0;
+ var $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, 
$59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, 
$67 = 0, $68 = 0, $69 = 0;
+ var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, 
$77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, 
$85 = 0, $86 = 0, $87 = 0;
+ var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, 
$95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $2 = (_strncmp($0,58971,4)|0);
+ $3 = ($2|0)==(0);
+ if ($3) {
+  label = 4;
+ } else {
+  $4 = (_strncmp($0,58976,4)|0);
+  $5 = ($4|0)==(0);
+  if ($5) {
+   label = 4;
+  } else {
+   $$022$i = $0;
+  }
+ }
+ if ((label|0) == 4) {
+  $6 = ((($0)) + 4|0);
+  $$022$i = $6;
+ }
+ $7 = HEAP32[(39652)>>2]|0;
+ $8 = ($7|0)==(0|0);
+ L9: do {
+  if ($8) {
+   label = 10;
+  } else {
+   $9 = HEAP32[$7>>2]|0;
+   $10 = ($9|0)==(0|0);
+   if ($10) {
+    label = 10;
+   } else {
+    $$023$i$i = 0;$15 = $9;
+    while(1) {
+     $16 = (_strcasecmp($$022$i,$15)|0);
+     $17 = ($16|0)==(0);
+     $12 = (($$023$i$i) + 1)|0;
+     if ($17) {
+      $$019$i$ph$i = 39632;$74 = $9;$76 = $7;
+      label = 35;
+      break L9;
+     }
+     $11 = (($7) + ($12<<2)|0);
+     $13 = HEAP32[$11>>2]|0;
+     $14 = ($13|0)==(0|0);
+     if ($14) {
+      label = 10;
+      break;
+     } else {
+      $$023$i$i = $12;$15 = $13;
+     }
+    }
+   }
+  }
+ } while(0);
+ L15: do {
+  if ((label|0) == 10) {
+   $18 = HEAP32[(39764)>>2]|0;
+   $19 = ($18|0)==(0|0);
+   if (!($19)) {
+    $20 = HEAP32[$18>>2]|0;
+    $21 = ($20|0)==(0|0);
+    if (!($21)) {
+     $$023$1$i$i = 0;$22 = $20;
+     while(1) {
+      $23 = (_strcasecmp($$022$i,$22)|0);
+      $24 = ($23|0)==(0);
+      $25 = (($$023$1$i$i) + 1)|0;
+      if ($24) {
+       $$019$i$ph$i = 39744;$74 = $20;$76 = $18;
+       label = 35;
+       break L15;
+      }
+      $26 = (($18) + ($25<<2)|0);
+      $27 = HEAP32[$26>>2]|0;
+      $28 = ($27|0)==(0|0);
+      if ($28) {
+       break;
+      } else {
+       $$023$1$i$i = $25;$22 = $27;
+      }
+     }
+    }
+   }
+   $29 = HEAP32[(39704)>>2]|0;
+   $30 = ($29|0)==(0|0);
+   if (!($30)) {
+    $31 = HEAP32[$29>>2]|0;
+    $32 = ($31|0)==(0|0);
+    if (!($32)) {
+     $$023$2$i$i = 0;$33 = $31;
+     while(1) {
+      $34 = (_strcasecmp($$022$i,$33)|0);
+      $35 = ($34|0)==(0);
+      $36 = (($$023$2$i$i) + 1)|0;
+      if ($35) {
+       $$019$i$ph$i = 39684;$74 = $31;$76 = $29;
+       label = 35;
+       break L15;
+      }
+      $37 = (($29) + ($36<<2)|0);
+      $38 = HEAP32[$37>>2]|0;
+      $39 = ($38|0)==(0|0);
+      if ($39) {
+       break;
+      } else {
+       $$023$2$i$i = $36;$33 = $38;
+      }
+     }
+    }
+   }
+   $40 = HEAP32[(39828)>>2]|0;
+   $41 = ($40|0)==(0|0);
+   if (!($41)) {
+    $42 = HEAP32[$40>>2]|0;
+    $43 = ($42|0)==(0|0);
+    if (!($43)) {
+     $$023$3$i$i = 0;$44 = $42;
+     while(1) {
+      $45 = (_strcasecmp($$022$i,$44)|0);
+      $46 = ($45|0)==(0);
+      $47 = (($$023$3$i$i) + 1)|0;
+      if ($46) {
+       $$019$i$ph$i = 39808;$74 = $42;$76 = $40;
+       label = 35;
+       break L15;
+      }
+      $48 = (($40) + ($47<<2)|0);
+      $49 = HEAP32[$48>>2]|0;
+      $50 = ($49|0)==(0|0);
+      if ($50) {
+       break;
+      } else {
+       $$023$3$i$i = $47;$44 = $49;
+      }
+     }
+    }
+   }
+   $51 = HEAP32[(39892)>>2]|0;
+   $52 = ($51|0)==(0|0);
+   if (!($52)) {
+    $53 = HEAP32[$51>>2]|0;
+    $54 = ($53|0)==(0|0);
+    if (!($54)) {
+     $$023$4$i$i = 0;$55 = $53;
+     while(1) {
+      $56 = (_strcasecmp($$022$i,$55)|0);
+      $57 = ($56|0)==(0);
+      $58 = (($$023$4$i$i) + 1)|0;
+      if ($57) {
+       $$019$i$ph$i = 39872;$74 = $53;$76 = $51;
+       label = 35;
+       break L15;
+      }
+      $59 = (($51) + ($58<<2)|0);
+      $60 = HEAP32[$59>>2]|0;
+      $61 = ($60|0)==(0|0);
+      if ($61) {
+       break;
+      } else {
+       $$023$4$i$i = $58;$55 = $60;
+      }
+     }
+    }
+   }
+   $62 = HEAP32[(39504)>>2]|0;
+   $63 = ($62|0)==(0|0);
+   if (!($63)) {
+    $64 = HEAP32[$62>>2]|0;
+    $65 = ($64|0)==(0|0);
+    if (!($65)) {
+     $$023$5$i$i = 0;$66 = $64;
+     while(1) {
+      $67 = (_strcasecmp($$022$i,$66)|0);
+      $68 = ($67|0)==(0);
+      $69 = (($$023$5$i$i) + 1)|0;
+      if ($68) {
+       $$019$i$ph$i = 39484;$74 = $64;$76 = $62;
+       label = 35;
+       break L15;
+      }
+      $70 = (($62) + ($69<<2)|0);
+      $71 = HEAP32[$70>>2]|0;
+      $72 = ($71|0)==(0|0);
+      if ($72) {
+       break;
+      } else {
+       $$023$5$i$i = $69;$66 = $71;
+      }
+     }
+    }
+   }
+  }
+ } while(0);
+ L50: do {
+  if ((label|0) == 35) {
+   $73 = ($74|0)==(0|0);
+   if (!($73)) {
+    $$08$i = 0;$80 = $74;
+    while(1) {
+     $81 = (_strcasecmp($$022$i,$80)|0);
+     $82 = ($81|0)==(0);
+     $77 = (($$08$i) + 1)|0;
+     if ($82) {
+      break;
+     }
+     $75 = (($76) + ($77<<2)|0);
+     $78 = HEAP32[$75>>2]|0;
+     $79 = ($78|0)==(0|0);
+     if ($79) {
+      break L50;
+     } else {
+      $$08$i = $77;$80 = $78;
+     }
+    }
+    $83 = HEAP32[$$019$i$ph$i>>2]|0;
+    $$0 = $83;
+    return ($$0|0);
+   }
+  }
+ } while(0);
+ $84 = HEAP32[(39640)>>2]|0;
+ $85 = (_strcasecmp($0,$84)|0);
+ $86 = ($85|0)==(0);
+ if ($86) {
+  $$ph = 39632;
+ } else {
+  $87 = HEAP32[(39752)>>2]|0;
+  $88 = (_strcasecmp($0,$87)|0);
+  $89 = ($88|0)==(0);
+  if ($89) {
+   $$ph = 39744;
+  } else {
+   $90 = HEAP32[(39692)>>2]|0;
+   $91 = (_strcasecmp($0,$90)|0);
+   $92 = ($91|0)==(0);
+   if ($92) {
+    $$ph = 39684;
+   } else {
+    $93 = HEAP32[(39816)>>2]|0;
+    $94 = (_strcasecmp($0,$93)|0);
+    $95 = ($94|0)==(0);
+    if ($95) {
+     $$ph = 39808;
+    } else {
+     $96 = HEAP32[(39880)>>2]|0;
+     $97 = (_strcasecmp($0,$96)|0);
+     $98 = ($97|0)==(0);
+     if ($98) {
+      $$ph = 39872;
+     } else {
+      $99 = HEAP32[(39492)>>2]|0;
+      $100 = (_strcasecmp($0,$99)|0);
+      $101 = ($100|0)==(0);
+      if ($101) {
+       $$ph = 39484;
+      } else {
+       $$0 = 0;
+       return ($$0|0);
+      }
+     }
+    }
+   }
+  }
+ }
+ $102 = HEAP32[$$ph>>2]|0;
+ $$0 = $102;
+ return ($$0|0);
+}
+function __gcry_md_algo_name($0) {
+ $0 = $0|0;
+ var $$ph = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ $1 = HEAP32[9908]|0;
+ $2 = ($1|0)==($0|0);
+ if ($2) {
+  $$ph = 39632;
+ } else {
+  $3 = HEAP32[9936]|0;
+  $4 = ($3|0)==($0|0);
+  if ($4) {
+   $$ph = 39744;
+  } else {
+   $5 = HEAP32[9921]|0;
+   $6 = ($5|0)==($0|0);
+   if ($6) {
+    $$ph = 39684;
+   } else {
+    $7 = HEAP32[9952]|0;
+    $8 = ($7|0)==($0|0);
+    if ($8) {
+     $$ph = 39808;
+    } else {
+     $9 = HEAP32[9968]|0;
+     $10 = ($9|0)==($0|0);
+     if ($10) {
+      $$ph = 39872;
+     } else {
+      $11 = HEAP32[9871]|0;
+      $12 = ($11|0)==($0|0);
+      if ($12) {
+       $$ph = 39484;
+      } else {
+       $15 = 59741;
+       return ($15|0);
+      }
+     }
+    }
+   }
+  }
+ }
+ $13 = ((($$ph)) + 8|0);
+ $14 = HEAP32[$13>>2]|0;
+ $15 = $14;
+ return ($15|0);
+}
+function __gcry_md_open($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$06 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$spec$select7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $3 = sp;
+ $4 = $2 & -260;
+ $5 = ($4|0)==(0);
+ if ($5) {
+  $6 = (_md_open($3,$1,$2)|0);
+  $7 = ($6|0)==(0);
+  $8 = HEAP32[$3>>2]|0;
+  $spec$select7 = $7 ? $8 : 0;
+  $$06 = $6;$9 = $spec$select7;
+ } else {
+  $$06 = 45;$9 = 0;
+ }
+ HEAP32[$0>>2] = $9;
+ STACKTOP = sp;return ($$06|0);
+}
+function _md_open($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0$idx$val = 0, $$0$in = 0, $$262 = 0, $$sink = 0, $10 = 0, $11 = 0, $12 
= 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, 
$21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0;
+ var $44 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = $2 & 1;
+ $4 = ($3|0)!=(0);
+ $5 = $2 & 2;
+ $6 = ($5|0)==(0);
+ $7 = $3 << 9;
+ $8 = $7 ^ 512;
+ $9 = (($8) + 535)|0;
+ $10 = $9 & 1552;
+ $11 = (($10) + 28)|0;
+ if ($4) {
+  $12 = (__gcry_malloc_secure($11)|0);
+  $$0$in = $12;
+ } else {
+  $13 = (__gcry_malloc($11)|0);
+  $$0$in = $13;
+ }
+ $14 = ($$0$in|0)==(0|0);
+ if ($14) {
+  $15 = (___errno_location()|0);
+  $16 = HEAP32[$15>>2]|0;
+  $17 = (_gpg_err_code_from_errno($16)|0);
+  $18 = ($17|0)==(0);
+  if (!($18)) {
+   $$262 = $17;
+   return ($$262|0);
+  }
+ }
+ $19 = (($$0$in) + ($10)|0);
+ HEAP32[$$0$in>>2] = $19;
+ $20 = (($10) + -15)|0;
+ $21 = ((($$0$in)) + 8|0);
+ HEAP32[$21>>2] = $20;
+ $22 = ((($$0$in)) + 4|0);
+ HEAP32[$22>>2] = 0;
+ $23 = ((($19)) + 8|0);
+ 
;HEAP32[$23>>2]=0|0;HEAP32[$23+4>>2]=0|0;HEAP32[$23+8>>2]=0|0;HEAP32[$23+12>>2]=0|0;HEAP32[$23+16>>2]=0|0;
+ $24 = $4 ? 378630161 : 285677921;
+ HEAP32[$19>>2] = $24;
+ $25 = ((($19)) + 4|0);
+ HEAP32[$25>>2] = $11;
+ $26 = ((($19)) + 12|0);
+ $27 = $2&255;
+ $28 = $27 & 1;
+ $29 = $2 >>> 6;
+ $30 = $29&255;
+ $31 = $30 & 4;
+ $32 = $31 | $28;
+ HEAP8[$26>>0] = $32;
+ if (!($6)) {
+  switch ($1|0) {
+  case 10: case 9:  {
+   $$sink = 128;$34 = 256;
+   break;
+  }
+  case 311: case 308:  {
+   $$sink = 32;$34 = 64;
+   break;
+  }
+  default: {
+   $$sink = 64;$34 = 128;
+  }
+  }
+  $33 = ((($19)) + 24|0);
+  HEAP32[$33>>2] = $$sink;
+  $35 = (__gcry_malloc_secure($34)|0);
+  $36 = ((($19)) + 20|0);
+  HEAP32[$36>>2] = $35;
+  $37 = ($35|0)==(0|0);
+  if ($37) {
+   $38 = (___errno_location()|0);
+   $39 = HEAP32[$38>>2]|0;
+   $40 = (_gpg_err_code_from_errno($39)|0);
+   _md_close($$0$in);
+   $41 = ($40|0)==(0);
+   if (!($41)) {
+    $$262 = $40;
+    return ($$262|0);
+   }
+  }
+ }
+ __gcry_fast_random_poll();
+ $42 = ($1|0)==(0);
+ if (!($42)) {
+  $$0$idx$val = HEAP32[$$0$in>>2]|0;
+  $43 = (_md_enable($$0$idx$val,$1)|0);
+  $44 = ($43|0)==(0);
+  if (!($44)) {
+   _md_close($$0$in);
+   $$262 = $43;
+   return ($$262|0);
+  }
+ }
+ HEAP32[$0>>2] = $$0$in;
+ $$262 = 0;
+ return ($$262|0);
+}
+function _md_close($0) {
+ $0 = $0|0;
+ var $$0$$0$$0$5$i = 0, $$0$i = 0, $$0109$lcssa = 0, $$0109149 = 0, 
$$0112$lcssa = 0, $$0112148 = 0, $$0116$lcssa = 0, $$0116167 = 0, $$0120$lcssa 
= 0, $$0120166 = 0, $$0124$lcssa = 0, $$0124160 = 0, $$0128$lcssa = 0, 
$$0128159 = 0, $$021$i = 0, $$022$i = 0, $$1110 = 0, $$1113 = 0, $$1117 = 0, 
$$1121 = 0;
+ var $$1125 = 0, $$1129 = 0, $$2111 = 0, $$2114 = 0, $$2118 = 0, $$2122 = 0, 
$$2126 = 0, $$2130 = 0, $$3115146 = 0, $$3119174 = 0, $$3123173 = 0, $$3127155 
= 0, $$3131154 = 0, $$3147 = 0, $$in = 0, $$phi$trans$insert$i = 0, $$pre = 0, 
$$pre$i = 0, $$pre$i$pre = 0, $$pre$phi30$iZ2D = 0;
+ var $$pre19$i = 0, $$pre197 = 0, $$pre27$i = 0, $1 = 0, $10 = 0, $100 = 0, 
$101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, 
$109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0;
+ var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 
= 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 
= 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0;
+ var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, 
$139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, 
$146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0;
+ var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, 
$157 = 0, $158 = 0, $159 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 
0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0;
+ var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 
0, $59 = 0, $6 = 0, $60 = 0;
+ var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, 
$69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, 
$77 = 0, $78 = 0, $79 = 0;
+ var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, 
$87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, 
$95 = 0, $96 = 0, $97 = 0;
+ var $98 = 0, $99 = 0, $scevgep = 0, $scevgep193 = 0, $scevgep194 = 0, 
$scevgep195 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $1 = sp + 16|0;
+ $2 = sp + 8|0;
+ $3 = sp;
+ $4 = ($0|0)==(0|0);
+ if ($4) {
+  STACKTOP = sp;return;
+ }
+ $5 = HEAP32[$0>>2]|0;
+ $6 = ((($5)) + 8|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($7|0)==(0|0);
+ if ($8) {
+  $56 = $5;
+ } else {
+  $9 = ((($0)) + 4|0);
+  $10 = HEAP32[$9>>2]|0;
+  $11 = ($10|0)==(0);
+  if ($11) {
+   $29 = $7;
+  } else {
+   $12 = ((($0)) + 12|0);
+   $13 = (_fwrite($12,$10,1,$7)|0);
+   $14 = ($13|0)==(1);
+   if (!($14)) {
+    __gcry_bug(59029,630,59034);
+    // unreachable;
+   }
+   $15 = HEAP32[$0>>2]|0;
+   $16 = ((($15)) + 16|0);
+   $$021$i = HEAP32[$16>>2]|0;
+   $17 = ($$021$i|0)==(0|0);
+   if ($17) {
+    $$pre$i = $15;
+   } else {
+    $$022$i = $$021$i;
+    while(1) {
+     $18 = HEAP32[$9>>2]|0;
+     $19 = ($18|0)==(0);
+     if ($19) {
+      $$pre27$i = ((($$022$i)) + 16|0);
+      $$pre$phi30$iZ2D = $$pre27$i;
+     } else {
+      $20 = HEAP32[$$022$i>>2]|0;
+      $21 = ((($20)) + 32|0);
+      $22 = HEAP32[$21>>2]|0;
+      $23 = ((($$022$i)) + 16|0);
+      FUNCTION_TABLE_viii[$22 & 127]($23,$12,$18);
+      $$pre$phi30$iZ2D = $23;
+     }
+     $24 = HEAP32[$$022$i>>2]|0;
+     $25 = ((($24)) + 32|0);
+     $26 = HEAP32[$25>>2]|0;
+     FUNCTION_TABLE_viii[$26 & 127]($$pre$phi30$iZ2D,0,0);
+     $27 = ((($$022$i)) + 4|0);
+     $$0$i = HEAP32[$27>>2]|0;
+     $28 = ($$0$i|0)==(0|0);
+     if ($28) {
+      break;
+     } else {
+      $$022$i = $$0$i;
+     }
+    }
+    $$pre$i$pre = HEAP32[$0>>2]|0;
+    $$pre$i = $$pre$i$pre;
+   }
+   HEAP32[$9>>2] = 0;
+   $$phi$trans$insert$i = ((($$pre$i)) + 8|0);
+   $$pre19$i = HEAP32[$$phi$trans$insert$i>>2]|0;
+   $29 = $$pre19$i;
+  }
+  (_fclose($29)|0);
+  $30 = HEAP32[$0>>2]|0;
+  $31 = ((($30)) + 8|0);
+  HEAP32[$31>>2] = 0;
+  $32 = $0;
+  HEAP32[$1>>2] = $32;
+  $33 = $2;
+  $34 = $33;
+  HEAP32[$34>>2] = 42;
+  $35 = (($33) + 4)|0;
+  $36 = $35;
+  HEAP32[$36>>2] = 0;
+  $$0$$0$$0$5$i = HEAP32[$1>>2]|0;
+  $37 = $2;
+  $38 = $37;
+  $39 = HEAP32[$38>>2]|0;
+  $40 = (($37) + 4)|0;
+  $41 = $40;
+  $42 = HEAP32[$41>>2]|0;
+  $43 = (___muldi3(($39|0),($42|0),($$0$$0$$0$5$i|0),0)|0);
+  $44 = tempRet0;
+  $45 = $3;
+  $46 = $45;
+  HEAP32[$46>>2] = $43;
+  $47 = (($45) + 4)|0;
+  $48 = $47;
+  HEAP32[$48>>2] = $44;
+  $49 = $3;
+  $50 = $49;
+  $51 = HEAP32[$50>>2]|0;
+  $52 = (($49) + 4)|0;
+  $53 = $52;
+  $54 = HEAP32[$53>>2]|0;
+  $56 = $30;
+ }
+ $55 = ((($56)) + 16|0);
+ $57 = HEAP32[$55>>2]|0;
+ $58 = ($57|0)==(0|0);
+ if ($58) {
+  $92 = $56;
+ } else {
+  $$in = $57;
+  while(1) {
+   $59 = ((($$in)) + 4|0);
+   $60 = HEAP32[$59>>2]|0;
+   $61 = ((($$in)) + 8|0);
+   $62 = HEAP32[$61>>2]|0;
+   $63 = $$in;
+   $64 = $63 & 7;
+   $65 = ($64|0)!=(0);
+   $66 = ($62|0)!=(0);
+   $67 = $66 & $65;
+   if ($67) {
+    $$0116167 = $$in;$$0120166 = $62;
+    while(1) {
+     HEAP8[$$0116167>>0] = 0;
+     $68 = ((($$0116167)) + 1|0);
+     $69 = (($$0120166) + -1)|0;
+     $70 = $68;
+     $71 = $70 & 7;
+     $72 = ($71|0)!=(0);
+     $73 = ($69|0)!=(0);
+     $74 = $73 & $72;
+     if ($74) {
+      $$0116167 = $68;$$0120166 = $69;
+     } else {
+      $$0116$lcssa = $68;$$0120$lcssa = $69;
+      break;
+     }
+    }
+   } else {
+    $$0116$lcssa = $$in;$$0120$lcssa = $62;
+   }
+   $75 = ($$0120$lcssa>>>0)<(8);
+   if ($75) {
+    $$2118 = $$0116$lcssa;$$2122 = $$0120$lcssa;
+   } else {
+    $76 = (($$0120$lcssa) + -8)|0;
+    $77 = $76 & -8;
+    $scevgep194 = ((($$0116$lcssa)) + 8|0);
+    $$1117 = $$0116$lcssa;$$1121 = $$0120$lcssa;
+    while(1) {
+     $78 = $$1117;
+     $79 = $78;
+     HEAP32[$79>>2] = 0;
+     $80 = (($78) + 4)|0;
+     $81 = $80;
+     HEAP32[$81>>2] = 0;
+     $82 = (($$1121) + -8)|0;
+     $83 = ((($$1117)) + 8|0);
+     $84 = ($82>>>0)>(7);
+     if ($84) {
+      $$1117 = $83;$$1121 = $82;
+     } else {
+      break;
+     }
+    }
+    $85 = (($76) - ($77))|0;
+    $scevgep195 = (($scevgep194) + ($77)|0);
+    $$2118 = $scevgep195;$$2122 = $85;
+   }
+   $86 = ($$2122|0)==(0);
+   if (!($86)) {
+    $$3119174 = $$2118;$$3123173 = $$2122;
+    while(1) {
+     HEAP8[$$3119174>>0] = 0;
+     $87 = ((($$3119174)) + 1|0);
+     $88 = (($$3123173) + -1)|0;
+     $89 = ($88|0)==(0);
+     if ($89) {
+      break;
+     } else {
+      $$3119174 = $87;$$3123173 = $88;
+     }
+    }
+   }
+   __gcry_free($$in);
+   $90 = ($60|0)==(0|0);
+   if ($90) {
+    break;
+   } else {
+    $$in = $60;
+   }
+  }
+  $$pre = HEAP32[$0>>2]|0;
+  $92 = $$pre;
+ }
+ $91 = ((($92)) + 20|0);
+ $93 = HEAP32[$91>>2]|0;
+ $94 = ($93|0)==(0|0);
+ if ($94) {
+  $130 = $92;
+ } else {
+  $95 = ((($92)) + 24|0);
+  $96 = HEAP32[$95>>2]|0;
+  $97 = $96 << 1;
+  $98 = $93;
+  $99 = $98 & 7;
+  $100 = ($99|0)!=(0);
+  $101 = ($96|0)!=(0);
+  $102 = $101 & $100;
+  if ($102) {
+   $$0124160 = $97;$$0128159 = $93;
+   while(1) {
+    HEAP8[$$0128159>>0] = 0;
+    $103 = ((($$0128159)) + 1|0);
+    $104 = (($$0124160) + -1)|0;
+    $105 = $103;
+    $106 = $105 & 7;
+    $107 = ($106|0)!=(0);
+    $108 = ($104|0)!=(0);
+    $109 = $108 & $107;
+    if ($109) {
+     $$0124160 = $104;$$0128159 = $103;
+    } else {
+     $$0124$lcssa = $104;$$0128$lcssa = $103;
+     break;
+    }
+   }
+  } else {
+   $$0124$lcssa = $97;$$0128$lcssa = $93;
+  }
+  $110 = ($$0124$lcssa>>>0)<(8);
+  if ($110) {
+   $$2126 = $$0124$lcssa;$$2130 = $$0128$lcssa;
+  } else {
+   $111 = (($$0124$lcssa) + -8)|0;
+   $112 = $111 & -8;
+   $113 = (($112) + 8)|0;
+   $$1125 = $$0124$lcssa;$$1129 = $$0128$lcssa;
+   while(1) {
+    $114 = $$1129;
+    $115 = $114;
+    HEAP32[$115>>2] = 0;
+    $116 = (($114) + 4)|0;
+    $117 = $116;
+    HEAP32[$117>>2] = 0;
+    $118 = (($$1125) + -8)|0;
+    $119 = ((($$1129)) + 8|0);
+    $120 = ($118>>>0)>(7);
+    if ($120) {
+     $$1125 = $118;$$1129 = $119;
+    } else {
+     break;
+    }
+   }
+   $121 = (($111) - ($112))|0;
+   $scevgep193 = (($$0128$lcssa) + ($113)|0);
+   $$2126 = $121;$$2130 = $scevgep193;
+  }
+  $122 = ($$2126|0)==(0);
+  if (!($122)) {
+   $$3127155 = $$2126;$$3131154 = $$2130;
+   while(1) {
+    HEAP8[$$3131154>>0] = 0;
+    $123 = ((($$3131154)) + 1|0);
+    $124 = (($$3127155) + -1)|0;
+    $125 = ($124|0)==(0);
+    if ($125) {
+     break;
+    } else {
+     $$3127155 = $124;$$3131154 = $123;
+    }
+   }
+  }
+  $126 = HEAP32[$0>>2]|0;
+  $127 = ((($126)) + 20|0);
+  $128 = HEAP32[$127>>2]|0;
+  __gcry_free($128);
+  $$pre197 = HEAP32[$0>>2]|0;
+  $130 = $$pre197;
+ }
+ $129 = ((($130)) + 4|0);
+ $131 = HEAP32[$129>>2]|0;
+ $132 = $0;
+ $133 = $132 & 7;
+ $134 = ($133|0)!=(0);
+ $135 = ($131|0)!=(0);
+ $136 = $135 & $134;
+ if ($136) {
+  $$0109149 = $131;$$0112148 = $0;
+  while(1) {
+   HEAP8[$$0112148>>0] = 0;
+   $137 = ((($$0112148)) + 1|0);
+   $138 = (($$0109149) + -1)|0;
+   $139 = $137;
+   $140 = $139 & 7;
+   $141 = ($140|0)!=(0);
+   $142 = ($138|0)!=(0);
+   $143 = $142 & $141;
+   if ($143) {
+    $$0109149 = $138;$$0112148 = $137;
+   } else {
+    $$0109$lcssa = $138;$$0112$lcssa = $137;
+    break;
+   }
+  }
+ } else {
+  $$0109$lcssa = $131;$$0112$lcssa = $0;
+ }
+ $144 = ($$0109$lcssa>>>0)<(8);
+ if ($144) {
+  $$2111 = $$0109$lcssa;$$2114 = $$0112$lcssa;
+ } else {
+  $145 = (($$0109$lcssa) + -8)|0;
+  $146 = $145 & -8;
+  $147 = (($146) + 8)|0;
+  $$1110 = $$0109$lcssa;$$1113 = $$0112$lcssa;
+  while(1) {
+   $148 = $$1113;
+   $149 = $148;
+   HEAP32[$149>>2] = 0;
+   $150 = (($148) + 4)|0;
+   $151 = $150;
+   HEAP32[$151>>2] = 0;
+   $152 = (($$1110) + -8)|0;
+   $153 = ((($$1113)) + 8|0);
+   $154 = ($152>>>0)>(7);
+   if ($154) {
+    $$1110 = $152;$$1113 = $153;
+   } else {
+    break;
+   }
+  }
+  $155 = (($145) - ($146))|0;
+  $scevgep = (($$0112$lcssa) + ($147)|0);
+  $$2111 = $155;$$2114 = $scevgep;
+ }
+ $156 = ($$2111|0)==(0);
+ if (!($156)) {
+  $$3115146 = $$2114;$$3147 = $$2111;
+  while(1) {
+   HEAP8[$$3115146>>0] = 0;
+   $157 = ((($$3115146)) + 1|0);
+   $158 = (($$3147) + -1)|0;
+   $159 = ($158|0)==(0);
+   if ($159) {
+    break;
+   } else {
+    $$3115146 = $157;$$3147 = $158;
+   }
+  }
+ }
+ __gcry_free($0);
+ STACKTOP = sp;return;
+}
+function _md_enable($$0$0$val,$0) {
+ $$0$0$val = $$0$0$val|0;
+ $0 = $0|0;
+ var $$0 = 0, $$039 = 0, $$0395 = 0, $$0396 = 0, $$140$in = 0, $$ph = 0, $1 = 
0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 
= 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
+ var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, 
$3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, 
$38 = 0, $39 = 0, $4 = 0;
+ var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, 
$5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $1 = ((($$0$0$val)) + 16|0);
+ $$0395 = HEAP32[$1>>2]|0;
+ $2 = ($$0395|0)==(0|0);
+ L1: do {
+  if (!($2)) {
+   $$0396 = $$0395;
+   while(1) {
+    $5 = HEAP32[$$0396>>2]|0;
+    $6 = HEAP32[$5>>2]|0;
+    $7 = ($6|0)==($0|0);
+    if ($7) {
+     $$0 = 0;
+     break;
+    }
+    $3 = ((($$0396)) + 4|0);
+    $$039 = HEAP32[$3>>2]|0;
+    $4 = ($$039|0)==(0|0);
+    if ($4) {
+     break L1;
+    } else {
+     $$0396 = $$039;
+    }
+   }
+   STACKTOP = sp;return ($$0|0);
+  }
+ } while(0);
+ $8 = HEAP32[9908]|0;
+ $9 = ($8|0)==($0|0);
+ if ($9) {
+  $$ph = 39632;
+ } else {
+  $10 = HEAP32[9936]|0;
+  $11 = ($10|0)==($0|0);
+  if ($11) {
+   $$ph = 39744;
+  } else {
+   $12 = HEAP32[9921]|0;
+   $13 = ($12|0)==($0|0);
+   if ($13) {
+    $$ph = 39684;
+   } else {
+    $14 = HEAP32[9952]|0;
+    $15 = ($14|0)==($0|0);
+    if ($15) {
+     $$ph = 39808;
+    } else {
+     $16 = HEAP32[9968]|0;
+     $17 = ($16|0)==($0|0);
+     if ($17) {
+      $$ph = 39872;
+     } else {
+      $18 = HEAP32[9871]|0;
+      $19 = ($18|0)==($0|0);
+      if ($19) {
+       $$ph = 39484;
+      } else {
+       HEAP32[$vararg_buffer>>2] = $0;
+       __gcry_log_debug(58981,$vararg_buffer);
+       $$0 = 5;
+       STACKTOP = sp;return ($$0|0);
+      }
+     }
+    }
+   }
+  }
+ }
+ $20 = ($0|0)==(1);
+ if ($20) {
+  $21 = (__gcry_fips_mode()|0);
+  $22 = ($21|0)==(0);
+  if (!($22)) {
+   __gcry_inactivate_fips_mode(59020);
+   $23 = (__gcry_enforced_fips_mode()|0);
+   $24 = ($23|0)==(0);
+   if (!($24)) {
+    $$0 = 5;
+    STACKTOP = sp;return ($$0|0);
+   }
+  }
+ }
+ $25 = ((($$ph)) + 44|0);
+ $26 = HEAP32[$25>>2]|0;
+ $27 = (($26) + 16)|0;
+ $28 = ((($$0$0$val)) + 12|0);
+ $29 = HEAP8[$28>>0]|0;
+ $30 = $29 & 1;
+ $31 = ($30<<24>>24)==(0);
+ if ($31) {
+  $33 = (__gcry_malloc($27)|0);
+  $$140$in = $33;
+ } else {
+  $32 = (__gcry_malloc_secure($27)|0);
+  $$140$in = $32;
+ }
+ $34 = ($$140$in|0)==(0|0);
+ if ($34) {
+  $35 = (___errno_location()|0);
+  $36 = HEAP32[$35>>2]|0;
+  $37 = (_gpg_err_code_from_errno($36)|0);
+  $$0 = $37;
+  STACKTOP = sp;return ($$0|0);
+ } else {
+  HEAP32[$$140$in>>2] = $$ph;
+  $38 = HEAP32[$1>>2]|0;
+  $39 = ((($$140$in)) + 4|0);
+  HEAP32[$39>>2] = $38;
+  $40 = ((($$140$in)) + 8|0);
+  HEAP32[$40>>2] = $27;
+  HEAP32[$1>>2] = $$140$in;
+  $41 = ((($$ph)) + 28|0);
+  $42 = HEAP32[$41>>2]|0;
+  $43 = ((($$140$in)) + 16|0);
+  $44 = HEAP8[$28>>0]|0;
+  $45 = $44 & 4;
+  $46 = $45&255;
+  $47 = $46 << 6;
+  FUNCTION_TABLE_vii[$42 & 63]($43,$47);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ return (0)|0;
+}
+function __gcry_md_reset($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$015 = 0, $$016 = 0, $$pre = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 
0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 
0, $21 = 0, $22 = 0, $23 = 0;
+ var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 
0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[$0>>2]|0;
+ $2 = ((($1)) + 12|0);
+ $3 = HEAP8[$2>>0]|0;
+ $4 = $3 & -3;
+ HEAP8[$2>>0] = $4;
+ $5 = ((($0)) + 4|0);
+ HEAP32[$5>>2] = 0;
+ $6 = HEAP32[$0>>2]|0;
+ $7 = ((($6)) + 16|0);
+ $$015 = HEAP32[$7>>2]|0;
+ $8 = ($$015|0)==(0|0);
+ if ($8) {
+  $24 = $6;
+ } else {
+  $$016 = $$015;
+  while(1) {
+   $9 = ((($$016)) + 16|0);
+   $10 = HEAP32[$$016>>2]|0;
+   $11 = ((($10)) + 44|0);
+   $12 = HEAP32[$11>>2]|0;
+   _memset(($9|0),0,($12|0))|0;
+   $13 = ((($10)) + 28|0);
+   $14 = HEAP32[$13>>2]|0;
+   $15 = HEAP32[$0>>2]|0;
+   $16 = ((($15)) + 12|0);
+   $17 = HEAP8[$16>>0]|0;
+   $18 = $17 & 4;
+   $19 = $18&255;
+   $20 = $19 << 6;
+   FUNCTION_TABLE_vii[$14 & 63]($9,$20);
+   $21 = ((($$016)) + 4|0);
+   $$0 = HEAP32[$21>>2]|0;
+   $22 = ($$0|0)==(0|0);
+   if ($22) {
+    break;
+   } else {
+    $$016 = $$0;
+   }
+  }
+  $$pre = HEAP32[$0>>2]|0;
+  $24 = $$pre;
+ }
+ $23 = ((($24)) + 20|0);
+ $25 = HEAP32[$23>>2]|0;
+ $26 = ($25|0)==(0|0);
+ if ($26) {
+  return;
+ }
+ $27 = ((($24)) + 24|0);
+ $28 = HEAP32[$27>>2]|0;
+ _md_write($0,$25,$28);
+ return;
+}
+function _md_write($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$021 = 0, $$022 = 0, $$pre = 0, $$pre$phi30Z2D = 0, $$pre27 = 
0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 
= 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
+ var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, 
$31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp 
= 0;
+ sp = STACKTOP;
+ $3 = HEAP32[$0>>2]|0;
+ $4 = ((($3)) + 8|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = ($5|0)==(0|0);
+ $$pre = ((($0)) + 4|0);
+ if (!($6)) {
+  $7 = HEAP32[$$pre>>2]|0;
+  $8 = ($7|0)==(0);
+  if (!($8)) {
+   $9 = ((($0)) + 12|0);
+   $10 = (_fwrite($9,$7,1,$5)|0);
+   $11 = ($10|0)==(1);
+   if (!($11)) {
+    __gcry_bug(59029,630,59034);
+    // unreachable;
+   }
+  }
+  $12 = ($2|0)==(0);
+  if (!($12)) {
+   $13 = HEAP32[$0>>2]|0;
+   $14 = ((($13)) + 8|0);
+   $15 = HEAP32[$14>>2]|0;
+   $16 = (_fwrite($1,$2,1,$15)|0);
+   $17 = ($16|0)==(1);
+   if (!($17)) {
+    __gcry_bug(59029,632,59034);
+    // unreachable;
+   }
+  }
+ }
+ $18 = HEAP32[$0>>2]|0;
+ $19 = ((($18)) + 16|0);
+ $$021 = HEAP32[$19>>2]|0;
+ $20 = ($$021|0)==(0|0);
+ if ($20) {
+  HEAP32[$$pre>>2] = 0;
+  return;
+ }
+ $21 = ((($0)) + 12|0);
+ $$022 = $$021;
+ while(1) {
+  $22 = HEAP32[$$pre>>2]|0;
+  $23 = ($22|0)==(0);
+  if ($23) {
+   $$pre27 = ((($$022)) + 16|0);
+   $$pre$phi30Z2D = $$pre27;
+  } else {
+   $24 = HEAP32[$$022>>2]|0;
+   $25 = ((($24)) + 32|0);
+   $26 = HEAP32[$25>>2]|0;
+   $27 = ((($$022)) + 16|0);
+   FUNCTION_TABLE_viii[$26 & 127]($27,$21,$22);
+   $$pre$phi30Z2D = $27;
+  }
+  $28 = HEAP32[$$022>>2]|0;
+  $29 = ((($28)) + 32|0);
+  $30 = HEAP32[$29>>2]|0;
+  FUNCTION_TABLE_viii[$30 & 127]($$pre$phi30Z2D,$1,$2);
+  $31 = ((($$022)) + 4|0);
+  $$0 = HEAP32[$31>>2]|0;
+  $32 = ($$0|0)==(0|0);
+  if ($32) {
+   break;
+  } else {
+   $$022 = $$0;
+  }
+ }
+ HEAP32[$$pre>>2] = 0;
+ return;
+}
+function __gcry_md_close($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ _md_close($0);
+ return;
+}
+function __gcry_md_write($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ _md_write($0,$1,$2);
+ return;
+}
+function _md_final($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$0$i = 0, $$013$i = 0, $$013$i41 = 0, $$02$i = 0, $$02$i39 = 0, 
$$021$i = 0, $$022$i = 0, $$053 = 0, $$054 = 0, $$idx$val$idx = 0, 
$$idx$val$idx$val = 0, $$idx35$val = 0, $$idx35$val$idx = 0, 
$$idx35$val$idx$val = 0, $$idx36$val$idx$phi$trans$insert = 0, 
$$idx36$val$idx$val = 0, $$idx36$val$idx$val$pre = 0, $$idx36$val$pre = 0, 
$$ph$i = 0;
+ var $$pre = 0, $$pre$phi30$iZ2D = 0, $$pre27$i = 0, $$pre60 = 0, $$pre60$pre 
= 0, $$pre61 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 
= 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0;
+ var $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, $13 = 0, $14 = 0;
+ var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, 
$22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, 
$30 = 0, $31 = 0, $32 = 0;
+ var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 
0, $49 = 0, $5 = 0, $50 = 0;
+ var $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, 
$59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, 
$67 = 0, $68 = 0, $69 = 0;
+ var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, 
$77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, 
$85 = 0, $86 = 0, $87 = 0;
+ var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, 
$95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, 
$vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer3 = sp + 16|0;
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $1 = sp + 20|0;
+ $2 = HEAP32[$0>>2]|0;
+ $3 = ((($2)) + 12|0);
+ $4 = HEAP8[$3>>0]|0;
+ $5 = $4 & 2;
+ $6 = ($5<<24>>24)==(0);
+ if (!($6)) {
+  STACKTOP = sp;return;
+ }
+ $7 = ((($0)) + 4|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ($8|0)==(0);
+ if ($9) {
+  $32 = $2;
+ } else {
+  $10 = ((($2)) + 8|0);
+  $11 = HEAP32[$10>>2]|0;
+  $12 = ($11|0)==(0|0);
+  do {
+   if ($12) {
+    $17 = $2;
+   } else {
+    $13 = ((($0)) + 12|0);
+    $14 = (_fwrite($13,$8,1,$11)|0);
+    $15 = ($14|0)==(1);
+    if ($15) {
+     $$pre = HEAP32[$0>>2]|0;
+     $17 = $$pre;
+     break;
+    } else {
+     __gcry_bug(59029,630,59034);
+     // unreachable;
+    }
+   }
+  } while(0);
+  $16 = ((($17)) + 16|0);
+  $$021$i = HEAP32[$16>>2]|0;
+  $18 = ($$021$i|0)==(0|0);
+  if ($18) {
+   $$pre60 = $17;
+  } else {
+   $19 = ((($0)) + 12|0);
+   $$022$i = $$021$i;
+   while(1) {
+    $20 = HEAP32[$7>>2]|0;
+    $21 = ($20|0)==(0);
+    if ($21) {
+     $$pre27$i = ((($$022$i)) + 16|0);
+     $$pre$phi30$iZ2D = $$pre27$i;
+    } else {
+     $22 = HEAP32[$$022$i>>2]|0;
+     $23 = ((($22)) + 32|0);
+     $24 = HEAP32[$23>>2]|0;
+     $25 = ((($$022$i)) + 16|0);
+     FUNCTION_TABLE_viii[$24 & 127]($25,$19,$20);
+     $$pre$phi30$iZ2D = $25;
+    }
+    $26 = HEAP32[$$022$i>>2]|0;
+    $27 = ((($26)) + 32|0);
+    $28 = HEAP32[$27>>2]|0;
+    FUNCTION_TABLE_viii[$28 & 127]($$pre$phi30$iZ2D,0,0);
+    $29 = ((($$022$i)) + 4|0);
+    $$0$i = HEAP32[$29>>2]|0;
+    $30 = ($$0$i|0)==(0|0);
+    if ($30) {
+     break;
+    } else {
+     $$022$i = $$0$i;
+    }
+   }
+   $$pre60$pre = HEAP32[$0>>2]|0;
+   $$pre60 = $$pre60$pre;
+  }
+  HEAP32[$7>>2] = 0;
+  $32 = $$pre60;
+ }
+ $31 = ((($32)) + 16|0);
+ $$053 = HEAP32[$31>>2]|0;
+ $33 = ($$053|0)==(0|0);
+ if ($33) {
+  $41 = $32;
+ } else {
+  $$054 = $$053;
+  while(1) {
+   $34 = HEAP32[$$054>>2]|0;
+   $35 = ((($34)) + 36|0);
+   $36 = HEAP32[$35>>2]|0;
+   $37 = ((($$054)) + 16|0);
+   FUNCTION_TABLE_vi[$36 & 127]($37);
+   $38 = ((($$054)) + 4|0);
+   $$0 = HEAP32[$38>>2]|0;
+   $39 = ($$0|0)==(0|0);
+   if ($39) {
+    break;
+   } else {
+    $$054 = $$0;
+   }
+  }
+  $$pre61 = HEAP32[$0>>2]|0;
+  $41 = $$pre61;
+ }
+ $40 = ((($41)) + 12|0);
+ $42 = HEAP8[$40>>0]|0;
+ $43 = $42 | 2;
+ HEAP8[$40>>0] = $43;
+ $44 = HEAP32[$0>>2]|0;
+ $45 = ((($44)) + 20|0);
+ $46 = HEAP32[$45>>2]|0;
+ $47 = ($46|0)==(0|0);
+ if ($47) {
+  STACKTOP = sp;return;
+ }
+ $$idx$val$idx = ((($44)) + 16|0);
+ $$idx$val$idx$val = HEAP32[$$idx$val$idx>>2]|0;
+ $48 = ($$idx$val$idx$val|0)==(0|0);
+ if ($48) {
+  __gcry_bug(59029,816,59166);
+  // unreachable;
+ }
+ $49 = ((($$idx$val$idx$val)) + 4|0);
+ $50 = HEAP32[$49>>2]|0;
+ $51 = ($50|0)==(0|0);
+ if ($51) {
+  $$idx36$val$idx$val = $$idx$val$idx$val;
+ } else {
+  __gcry_fips_signal_error(59029,980,59043,0,59055);
+  __gcry_log_error(59076,$vararg_buffer);
+  $$idx36$val$pre = HEAP32[$0>>2]|0;
+  $$idx36$val$idx$phi$trans$insert = ((($$idx36$val$pre)) + 16|0);
+  $$idx36$val$idx$val$pre = HEAP32[$$idx36$val$idx$phi$trans$insert>>2]|0;
+  $$idx36$val$idx$val = $$idx36$val$idx$val$pre;
+ }
+ $52 = HEAP32[$$idx$val$idx$val>>2]|0;
+ $53 = HEAP32[$52>>2]|0;
+ $54 = ($53|0)==(0);
+ $55 = ($$idx36$val$idx$val|0)==(0|0);
+ do {
+  if ($54) {
+   if ($55) {
+    __gcry_bug(59029,816,59166);
+    // unreachable;
+   }
+   $56 = ((($$idx36$val$idx$val)) + 4|0);
+   $57 = HEAP32[$56>>2]|0;
+   $58 = ($57|0)==(0|0);
+   if (!($58)) {
+    __gcry_log_debug(59127,$vararg_buffer1);
+   }
+   $59 = HEAP32[$$idx36$val$idx$val>>2]|0;
+   $60 = ((($59)) + 40|0);
+   $61 = HEAP32[$60>>2]|0;
+   $62 = ((($$idx36$val$idx$val)) + 16|0);
+   $63 = (FUNCTION_TABLE_ii[$61 & 63]($62)|0);
+   $$013$i = $63;$127 = 1;$76 = 0;
+  } else {
+   if ($55) {
+    __gcry_bug(59029,816,59166);
+    // unreachable;
+   }
+   $$02$i = $$idx36$val$idx$val;
+   while(1) {
+    $64 = HEAP32[$$02$i>>2]|0;
+    $65 = HEAP32[$64>>2]|0;
+    $66 = ($65|0)==($53|0);
+    if ($66) {
+     label = 31;
+     break;
+    }
+    $71 = ((($$02$i)) + 4|0);
+    $72 = HEAP32[$71>>2]|0;
+    $73 = ($72|0)==(0|0);
+    if ($73) {
+     label = 33;
+     break;
+    } else {
+     $$02$i = $72;
+    }
+   }
+   if ((label|0) == 31) {
+    $67 = ((($64)) + 40|0);
+    $68 = HEAP32[$67>>2]|0;
+    $69 = ((($$02$i)) + 16|0);
+    $70 = (FUNCTION_TABLE_ii[$68 & 63]($69)|0);
+    $$013$i = $70;$127 = 0;$76 = $53;
+    break;
+   }
+   else if ((label|0) == 33) {
+    __gcry_bug(59029,816,59166);
+    // unreachable;
+   }
+  }
+ } while(0);
+ $74 = HEAP32[9908]|0;
+ $75 = ($74|0)==($76|0);
+ if ($75) {
+  $$ph$i = 39632;
+  label = 40;
+ } else {
+  $77 = HEAP32[9936]|0;
+  $78 = ($77|0)==($76|0);
+  if ($78) {
+   $$ph$i = 39744;
+   label = 40;
+  } else {
+   $79 = HEAP32[9921]|0;
+   $80 = ($79|0)==($76|0);
+   if ($80) {
+    $$ph$i = 39684;
+    label = 40;
+   } else {
+    $81 = HEAP32[9952]|0;
+    $82 = ($81|0)==($76|0);
+    if ($82) {
+     $$ph$i = 39808;
+     label = 40;
+    } else {
+     $83 = HEAP32[9968]|0;
+     $84 = ($83|0)==($76|0);
+     if ($84) {
+      $$ph$i = 39872;
+      label = 40;
+     } else {
+      $85 = HEAP32[9871]|0;
+      $86 = ($85|0)==($76|0);
+      if ($86) {
+       $$ph$i = 39484;
+       label = 40;
+      } else {
+       $107 = 0;
+      }
+     }
+    }
+   }
+  }
+ }
+ if ((label|0) == 40) {
+  $87 = ((($$ph$i)) + 24|0);
+  $88 = HEAP32[$87>>2]|0;
+  $107 = $88;
+ }
+ $89 = HEAP32[$0>>2]|0;
+ $90 = ((($89)) + 12|0);
+ $91 = HEAP8[$90>>0]|0;
+ $92 = $91 & 1;
+ $93 = $92&255;
+ $94 = $91 & 4;
+ $95 = $94&255;
+ $96 = $95 << 6;
+ $97 = $96 | $93;
+ $98 = (_md_open($1,$76,$97)|0);
+ $99 = ($98|0)==(0);
+ if (!($99)) {
+  __gcry_fatal_error($98,0);
+  // unreachable;
+ }
+ $100 = HEAP32[$1>>2]|0;
+ $101 = HEAP32[$0>>2]|0;
+ $102 = ((($101)) + 20|0);
+ $103 = HEAP32[$102>>2]|0;
+ $104 = ((($101)) + 24|0);
+ $105 = HEAP32[$104>>2]|0;
+ $106 = (($103) + ($105)|0);
+ _md_write($100,$106,$105);
+ _md_write($100,$$013$i,$107);
+ _md_final($100);
+ $$idx35$val = HEAP32[$100>>2]|0;
+ $$idx35$val$idx = ((($$idx35$val)) + 16|0);
+ $$idx35$val$idx$val = HEAP32[$$idx35$val$idx>>2]|0;
+ $108 = ($$idx35$val$idx$val|0)==(0|0);
+ do {
+  if ($127) {
+   if ($108) {
+    __gcry_bug(59029,816,59166);
+    // unreachable;
+   }
+   $109 = ((($$idx35$val$idx$val)) + 4|0);
+   $110 = HEAP32[$109>>2]|0;
+   $111 = ($110|0)==(0|0);
+   if (!($111)) {
+    __gcry_log_debug(59127,$vararg_buffer3);
+   }
+   $112 = HEAP32[$$idx35$val$idx$val>>2]|0;
+   $113 = ((($112)) + 40|0);
+   $114 = HEAP32[$113>>2]|0;
+   $115 = ((($$idx35$val$idx$val)) + 16|0);
+   $116 = (FUNCTION_TABLE_ii[$114 & 63]($115)|0);
+   $$013$i41 = $116;
+  } else {
+   if ($108) {
+    __gcry_bug(59029,816,59166);
+    // unreachable;
+   }
+   $$02$i39 = $$idx35$val$idx$val;
+   while(1) {
+    $117 = HEAP32[$$02$i39>>2]|0;
+    $118 = HEAP32[$117>>2]|0;
+    $119 = ($118|0)==($76|0);
+    if ($119) {
+     label = 51;
+     break;
+    }
+    $124 = ((($$02$i39)) + 4|0);
+    $125 = HEAP32[$124>>2]|0;
+    $126 = ($125|0)==(0|0);
+    if ($126) {
+     label = 53;
+     break;
+    } else {
+     $$02$i39 = $125;
+    }
+   }
+   if ((label|0) == 51) {
+    $120 = ((($117)) + 40|0);
+    $121 = HEAP32[$120>>2]|0;
+    $122 = ((($$02$i39)) + 16|0);
+    $123 = (FUNCTION_TABLE_ii[$121 & 63]($122)|0);
+    $$013$i41 = $123;
+    break;
+   }
+   else if ((label|0) == 53) {
+    __gcry_bug(59029,816,59166);
+    // unreachable;
+   }
+  }
+ } while(0);
+ _memcpy(($$013$i|0),($$013$i41|0),($107|0))|0;
+ _md_close($100);
+ STACKTOP = sp;return;
+}
+function __gcry_md_setkey($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$0$i8 = 0, $$015$i = 0, $$016$i = 0, $$042$i = 0, $$043$i = 0, 
$$044$i = 0, $$04549$i = 0, $$idx$val$idx$i = 0, $$idx$val$idx$val$i = 0, 
$$ph$i$i = 0, $$ph$i46$i = 0, $$phi$trans$insert$i = 0, $$pre$i = 0, $$pre$i9 = 
0, $$pre50$i = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0;
+ var $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 
= 0, $110 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, 
$19 = 0, $20 = 0, $21 = 0, $22 = 0;
+ var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, 
$30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 
0, $39 = 0, $4 = 0, $40 = 0;
+ var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, 
$49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, 
$57 = 0, $58 = 0, $59 = 0;
+ var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, 
$67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, 
$75 = 0, $76 = 0, $77 = 0;
+ var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, 
$85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, 
$93 = 0, $94 = 0, $95 = 0;
+ var $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $3 = HEAP32[$0>>2]|0;
+ $4 = ((($3)) + 20|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = ($5|0)==(0|0);
+ if ($6) {
+  $$0 = 70;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $$idx$val$idx$i = ((($3)) + 16|0);
+ $$idx$val$idx$val$i = HEAP32[$$idx$val$idx$i>>2]|0;
+ $7 = ($$idx$val$idx$val$i|0)==(0|0);
+ if ($7) {
+  $$0 = 5;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $8 = ((($$idx$val$idx$val$i)) + 4|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ($9|0)==(0|0);
+ if (!($10)) {
+  __gcry_fips_signal_error(59029,980,59043,0,59055);
+  __gcry_log_error(59076,$vararg_buffer);
+ }
+ $11 = HEAP32[$$idx$val$idx$val$i>>2]|0;
+ $12 = HEAP32[$11>>2]|0;
+ $13 = ($12|0)==(0);
+ if ($13) {
+  $$0 = 5;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $14 = HEAP32[$0>>2]|0;
+ $15 = ((($14)) + 24|0);
+ $16 = HEAP32[$15>>2]|0;
+ $17 = ($16>>>0)<($2>>>0);
+ do {
+  if ($17) {
+   $18 = HEAP32[9908]|0;
+   $19 = ($18|0)==($12|0);
+   if ($19) {
+    $$ph$i$i = 39632;
+    label = 13;
+   } else {
+    $20 = HEAP32[9936]|0;
+    $21 = ($20|0)==($12|0);
+    if ($21) {
+     $$ph$i$i = 39744;
+     label = 13;
+    } else {
+     $22 = HEAP32[9921]|0;
+     $23 = ($22|0)==($12|0);
+     if ($23) {
+      $$ph$i$i = 39684;
+      label = 13;
+     } else {
+      $24 = HEAP32[9952]|0;
+      $25 = ($24|0)==($12|0);
+      if ($25) {
+       $$ph$i$i = 39808;
+       label = 13;
+      } else {
+       $26 = HEAP32[9968]|0;
+       $27 = ($26|0)==($12|0);
+       if ($27) {
+        $$ph$i$i = 39872;
+        label = 13;
+       } else {
+        $28 = HEAP32[9871]|0;
+        $29 = ($28|0)==($12|0);
+        if ($29) {
+         $$ph$i$i = 39484;
+         label = 13;
+        } else {
+         $32 = 0;
+        }
+       }
+      }
+     }
+    }
+   }
+   if ((label|0) == 13) {
+    $30 = ((($$ph$i$i)) + 24|0);
+    $31 = HEAP32[$30>>2]|0;
+    $32 = $31;
+   }
+   $33 = (__gcry_malloc_secure($32)|0);
+   $34 = ($33|0)==(0|0);
+   if ($34) {
+    $79 = (___errno_location()|0);
+    $80 = HEAP32[$79>>2]|0;
+    $81 = (_gpg_err_code_from_errno($80)|0);
+    $82 = ($81|0)==(0);
+    if ($82) {
+     break;
+    } else {
+     $$0 = $81;
+    }
+    STACKTOP = sp;return ($$0|0);
+   }
+   __gcry_md_hash_buffer($12,$33,$1,$2);
+   $35 = HEAP32[9908]|0;
+   $36 = ($35|0)==($12|0);
+   if ($36) {
+    $$ph$i46$i = 39632;
+   } else {
+    $37 = HEAP32[9936]|0;
+    $38 = ($37|0)==($12|0);
+    if ($38) {
+     $$ph$i46$i = 39744;
+    } else {
+     $39 = HEAP32[9921]|0;
+     $40 = ($39|0)==($12|0);
+     if ($40) {
+      $$ph$i46$i = 39684;
+     } else {
+      $41 = HEAP32[9952]|0;
+      $42 = ($41|0)==($12|0);
+      if ($42) {
+       $$ph$i46$i = 39808;
+      } else {
+       $43 = HEAP32[9968]|0;
+       $44 = ($43|0)==($12|0);
+       if ($44) {
+        $$ph$i46$i = 39872;
+       } else {
+        $45 = HEAP32[9871]|0;
+        $46 = ($45|0)==($12|0);
+        if ($46) {
+         $$ph$i46$i = 39484;
+        } else {
+         $$pre$i = HEAP32[$0>>2]|0;
+         $$phi$trans$insert$i = ((($$pre$i)) + 24|0);
+         $$pre50$i = HEAP32[$$phi$trans$insert$i>>2]|0;
+         $$042$i = $33;$$043$i = $33;$$044$i = 0;$54 = $$pre$i;$57 = $$pre50$i;
+         label = 24;
+         break;
+        }
+       }
+      }
+     }
+    }
+   }
+   $47 = ((($$ph$i46$i)) + 24|0);
+   $48 = HEAP32[$47>>2]|0;
+   $49 = HEAP32[$0>>2]|0;
+   $50 = ((($49)) + 24|0);
+   $51 = HEAP32[$50>>2]|0;
+   $52 = ($48>>>0)>($51>>>0);
+   if ($52) {
+    __gcry_assert_failed(59174,59029,716,59207);
+    // unreachable;
+   } else {
+    $$042$i = $33;$$043$i = $33;$$044$i = $48;$54 = $49;$57 = $51;
+    label = 24;
+   }
+  } else {
+   $$042$i = $1;$$043$i = 0;$$044$i = $2;$54 = $14;$57 = $16;
+   label = 24;
+  }
+ } while(0);
+ if ((label|0) == 24) {
+  $53 = ((($54)) + 20|0);
+  $55 = HEAP32[$53>>2]|0;
+  $56 = $57 << 1;
+  _memset(($55|0),0,($56|0))|0;
+  $58 = HEAP32[$0>>2]|0;
+  $59 = ((($58)) + 20|0);
+  $60 = HEAP32[$59>>2]|0;
+  $61 = ((($58)) + 24|0);
+  $62 = HEAP32[$61>>2]|0;
+  $63 = (($60) + ($62)|0);
+  _memcpy(($60|0),($$042$i|0),($$044$i|0))|0;
+  _memcpy(($63|0),($$042$i|0),($$044$i|0))|0;
+  $64 = HEAP32[$0>>2]|0;
+  $65 = ((($64)) + 24|0);
+  $66 = HEAP32[$65>>2]|0;
+  $67 = ($66|0)>(0);
+  if ($67) {
+   $$04549$i = 0;
+   while(1) {
+    $68 = (($60) + ($$04549$i)|0);
+    $69 = HEAP8[$68>>0]|0;
+    $70 = $69 ^ 54;
+    HEAP8[$68>>0] = $70;
+    $71 = (($63) + ($$04549$i)|0);
+    $72 = HEAP8[$71>>0]|0;
+    $73 = $72 ^ 92;
+    HEAP8[$71>>0] = $73;
+    $74 = (($$04549$i) + 1)|0;
+    $75 = HEAP32[$0>>2]|0;
+    $76 = ((($75)) + 24|0);
+    $77 = HEAP32[$76>>2]|0;
+    $78 = ($74|0)<($77|0);
+    if ($78) {
+     $$04549$i = $74;
+    } else {
+     break;
+    }
+   }
+  }
+  __gcry_free($$043$i);
+ }
+ $83 = HEAP32[$0>>2]|0;
+ $84 = ((($83)) + 12|0);
+ $85 = HEAP8[$84>>0]|0;
+ $86 = $85 & -3;
+ HEAP8[$84>>0] = $86;
+ $87 = ((($0)) + 4|0);
+ HEAP32[$87>>2] = 0;
+ $88 = HEAP32[$0>>2]|0;
+ $89 = ((($88)) + 16|0);
+ $$015$i = HEAP32[$89>>2]|0;
+ $90 = ($$015$i|0)==(0|0);
+ if ($90) {
+  $106 = $88;
+ } else {
+  $$016$i = $$015$i;
+  while(1) {
+   $91 = ((($$016$i)) + 16|0);
+   $92 = HEAP32[$$016$i>>2]|0;
+   $93 = ((($92)) + 44|0);
+   $94 = HEAP32[$93>>2]|0;
+   _memset(($91|0),0,($94|0))|0;
+   $95 = ((($92)) + 28|0);
+   $96 = HEAP32[$95>>2]|0;
+   $97 = HEAP32[$0>>2]|0;
+   $98 = ((($97)) + 12|0);
+   $99 = HEAP8[$98>>0]|0;
+   $100 = $99 & 4;
+   $101 = $100&255;
+   $102 = $101 << 6;
+   FUNCTION_TABLE_vii[$96 & 63]($91,$102);
+   $103 = ((($$016$i)) + 4|0);
+   $$0$i8 = HEAP32[$103>>2]|0;
+   $104 = ($$0$i8|0)==(0|0);
+   if ($104) {
+    break;
+   } else {
+    $$016$i = $$0$i8;
+   }
+  }
+  $$pre$i9 = HEAP32[$0>>2]|0;
+  $106 = $$pre$i9;
+ }
+ $105 = ((($106)) + 20|0);
+ $107 = HEAP32[$105>>2]|0;
+ $108 = ($107|0)==(0|0);
+ if ($108) {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $109 = ((($106)) + 24|0);
+ $110 = HEAP32[$109>>2]|0;
+ _md_write($0,$107,$110);
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_md_hash_buffer($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0$idx$val$i = 0, $$013$i = 0, $$02$i = 0, $$262$i = 0, $$idx$val = 0, 
$$idx$val$idx = 0, $$idx$val$idx$val = 0, $$ph$i = 0, $10 = 0, $11 = 0, $12 = 
0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 
= 0;
+ var $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;
+ var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, 
$49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, 
$57 = 0, $58 = 0, $59 = 0;
+ var $6 = 0, $60 = 0, $61 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, 
$vararg_buffer2 = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ switch ($0|0) {
+ case 2:  {
+  __gcry_sha1_hash_buffer($1,$2,$3);
+  STACKTOP = sp;return;
+  break;
+ }
+ case 3:  {
+  $4 = (__gcry_fips_mode()|0);
+  $5 = ($4|0)==(0);
+  if ($5) {
+   __gcry_rmd160_hash_buffer($1,$2,$3);
+   STACKTOP = sp;return;
+  }
+  break;
+ }
+ case 1:  {
+  $6 = (__gcry_fips_mode()|0);
+  $7 = ($6|0)==(0);
+  if (!($7)) {
+   __gcry_inactivate_fips_mode(59020);
+   $8 = (__gcry_enforced_fips_mode()|0);
+   $9 = ($8|0)==(0);
+   if (!($9)) {
+    __gcry_fips_noreturn();
+    // unreachable;
+   }
+  }
+  break;
+ }
+ default: {
+ }
+ }
+ $10 = (__gcry_malloc(1068)|0);
+ $11 = ($10|0)==(0|0);
+ if ($11) {
+  $12 = (___errno_location()|0);
+  $13 = HEAP32[$12>>2]|0;
+  $14 = (_gpg_err_code_from_errno($13)|0);
+  $15 = ($14|0)==(0);
+  if (!($15)) {
+   $$262$i = $14;
+   $25 = $$262$i & 65535;
+   $26 = $25 | 536870912;
+   $27 = (_gpg_strerror($26)|0);
+   HEAP32[$vararg_buffer>>2] = $0;
+   $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+   HEAP32[$vararg_ptr1>>2] = $27;
+   __gcry_log_bug(59223,$vararg_buffer);
+   // unreachable;
+  }
+ }
+ $16 = ((($10)) + 1040|0);
+ HEAP32[$10>>2] = $16;
+ $17 = ((($10)) + 8|0);
+ HEAP32[$17>>2] = 1025;
+ $18 = ((($10)) + 4|0);
+ HEAP32[$18>>2] = 0;
+ $19 = ((($10)) + 1048|0);
+ 
;HEAP32[$19>>2]=0|0;HEAP32[$19+4>>2]=0|0;HEAP32[$19+8>>2]=0|0;HEAP32[$19+12>>2]=0|0;HEAP32[$19+16>>2]=0|0;
+ HEAP32[$16>>2] = 285677921;
+ $20 = ((($10)) + 1044|0);
+ HEAP32[$20>>2] = 1068;
+ $21 = ((($10)) + 1052|0);
+ HEAP8[$21>>0] = 0;
+ __gcry_fast_random_poll();
+ $22 = ($0|0)==(0);
+ if (!($22)) {
+  $$0$idx$val$i = HEAP32[$10>>2]|0;
+  $23 = (_md_enable($$0$idx$val$i,$0)|0);
+  $24 = ($23|0)==(0);
+  if (!($24)) {
+   _md_close($10);
+   $$262$i = $23;
+   $25 = $$262$i & 65535;
+   $26 = $25 | 536870912;
+   $27 = (_gpg_strerror($26)|0);
+   HEAP32[$vararg_buffer>>2] = $0;
+   $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+   HEAP32[$vararg_ptr1>>2] = $27;
+   __gcry_log_bug(59223,$vararg_buffer);
+   // unreachable;
+  }
+ }
+ _md_write($10,$2,$3);
+ _md_final($10);
+ $$idx$val = HEAP32[$10>>2]|0;
+ $$idx$val$idx = ((($$idx$val)) + 16|0);
+ $$idx$val$idx$val = HEAP32[$$idx$val$idx>>2]|0;
+ $28 = ($$idx$val$idx$val|0)==(0|0);
+ do {
+  if ($22) {
+   if ($28) {
+    __gcry_bug(59029,816,59166);
+    // unreachable;
+   }
+   $29 = ((($$idx$val$idx$val)) + 4|0);
+   $30 = HEAP32[$29>>2]|0;
+   $31 = ($30|0)==(0|0);
+   if (!($31)) {
+    __gcry_log_debug(59127,$vararg_buffer2);
+   }
+   $32 = HEAP32[$$idx$val$idx$val>>2]|0;
+   $33 = ((($32)) + 40|0);
+   $34 = HEAP32[$33>>2]|0;
+   $35 = ((($$idx$val$idx$val)) + 16|0);
+   $36 = (FUNCTION_TABLE_ii[$34 & 63]($35)|0);
+   $$013$i = $36;
+  } else {
+   if ($28) {
+    __gcry_bug(59029,816,59166);
+    // unreachable;
+   }
+   $$02$i = $$idx$val$idx$val;
+   while(1) {
+    $37 = HEAP32[$$02$i>>2]|0;
+    $38 = HEAP32[$37>>2]|0;
+    $39 = ($38|0)==($0|0);
+    if ($39) {
+     label = 22;
+     break;
+    }
+    $44 = ((($$02$i)) + 4|0);
+    $45 = HEAP32[$44>>2]|0;
+    $46 = ($45|0)==(0|0);
+    if ($46) {
+     label = 24;
+     break;
+    } else {
+     $$02$i = $45;
+    }
+   }
+   if ((label|0) == 22) {
+    $40 = ((($37)) + 40|0);
+    $41 = HEAP32[$40>>2]|0;
+    $42 = ((($$02$i)) + 16|0);
+    $43 = (FUNCTION_TABLE_ii[$41 & 63]($42)|0);
+    $$013$i = $43;
+    break;
+   }
+   else if ((label|0) == 24) {
+    __gcry_bug(59029,816,59166);
+    // unreachable;
+   }
+  }
+ } while(0);
+ $47 = HEAP32[9908]|0;
+ $48 = ($47|0)==($0|0);
+ if ($48) {
+  $$ph$i = 39632;
+  label = 31;
+ } else {
+  $49 = HEAP32[9936]|0;
+  $50 = ($49|0)==($0|0);
+  if ($50) {
+   $$ph$i = 39744;
+   label = 31;
+  } else {
+   $51 = HEAP32[9921]|0;
+   $52 = ($51|0)==($0|0);
+   if ($52) {
+    $$ph$i = 39684;
+    label = 31;
+   } else {
+    $53 = HEAP32[9952]|0;
+    $54 = ($53|0)==($0|0);
+    if ($54) {
+     $$ph$i = 39808;
+     label = 31;
+    } else {
+     $55 = HEAP32[9968]|0;
+     $56 = ($55|0)==($0|0);
+     if ($56) {
+      $$ph$i = 39872;
+      label = 31;
+     } else {
+      $57 = HEAP32[9871]|0;
+      $58 = ($57|0)==($0|0);
+      if ($58) {
+       $$ph$i = 39484;
+       label = 31;
+      } else {
+       $61 = 0;
+      }
+     }
+    }
+   }
+  }
+ }
+ if ((label|0) == 31) {
+  $59 = ((($$ph$i)) + 24|0);
+  $60 = HEAP32[$59>>2]|0;
+  $61 = $60;
+ }
+ _memcpy(($1|0),($$013$i|0),($61|0))|0;
+ _md_close($10);
+ STACKTOP = sp;return;
+}
+function __gcry_md_read($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$013$i = 0, $$02$i = 0, $$idx$val = 0, $$idx$val$idx = 0, 
$$idx$val$idx$val = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0;
+ var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp 
= 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ _md_final($0);
+ $$idx$val = HEAP32[$0>>2]|0;
+ $$idx$val$idx = ((($$idx$val)) + 16|0);
+ $$idx$val$idx$val = HEAP32[$$idx$val$idx>>2]|0;
+ $2 = ($1|0)==(0);
+ $3 = ($$idx$val$idx$val|0)==(0|0);
+ if ($2) {
+  if ($3) {
+   __gcry_bug(59029,816,59166);
+   // unreachable;
+  }
+  $4 = ((($$idx$val$idx$val)) + 4|0);
+  $5 = HEAP32[$4>>2]|0;
+  $6 = ($5|0)==(0|0);
+  if (!($6)) {
+   __gcry_log_debug(59127,$vararg_buffer);
+  }
+  $7 = HEAP32[$$idx$val$idx$val>>2]|0;
+  $8 = ((($7)) + 40|0);
+  $9 = HEAP32[$8>>2]|0;
+  $10 = ((($$idx$val$idx$val)) + 16|0);
+  $11 = (FUNCTION_TABLE_ii[$9 & 63]($10)|0);
+  $$013$i = $11;
+  STACKTOP = sp;return ($$013$i|0);
+ }
+ if ($3) {
+  __gcry_bug(59029,816,59166);
+  // unreachable;
+ }
+ $$02$i = $$idx$val$idx$val;
+ while(1) {
+  $12 = HEAP32[$$02$i>>2]|0;
+  $13 = HEAP32[$12>>2]|0;
+  $14 = ($13|0)==($1|0);
+  if ($14) {
+   break;
+  }
+  $19 = ((($$02$i)) + 4|0);
+  $20 = HEAP32[$19>>2]|0;
+  $21 = ($20|0)==(0|0);
+  if ($21) {
+   label = 11;
+   break;
+  } else {
+   $$02$i = $20;
+  }
+ }
+ if ((label|0) == 11) {
+  __gcry_bug(59029,816,59166);
+  // unreachable;
+ }
+ $15 = ((($12)) + 40|0);
+ $16 = HEAP32[$15>>2]|0;
+ $17 = ((($$02$i)) + 16|0);
+ $18 = (FUNCTION_TABLE_ii[$16 & 63]($17)|0);
+ $$013$i = $18;
+ STACKTOP = sp;return ($$013$i|0);
+}
+function __gcry_md_hash_buffers($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$013$i = 0, $$02$i = 0, $$042$ph = 0, $$043 = 0, $$045 = 0, $$045$pn = 
0, $$1 = 0, $$14453 = 0, $$14652 = 0, $$idx$val = 0, $$idx$val$idx = 0, 
$$idx$val$idx$val = 0, $$ph$i = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, 
$15 = 0, $16 = 0;
+ var $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, $34 = 0, $35 = 0, $36 = 0;
+ var $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;
+ var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, 
$63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, 
$71 = 0, $72 = 0, $73 = 0;
+ var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, 
$81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $9 = 0, $or$cond$not = 0, 
$or$cond3 = 0, $or$cond48 = 0, $or$cond5 = 0, $vararg_buffer = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $5 = sp + 4|0;
+ $6 = ($3|0)!=(0|0);
+ $7 = ($4|0)>(-1);
+ $or$cond$not = $6 & $7;
+ $8 = $1 & -3;
+ $9 = ($8|0)==(0);
+ $or$cond48 = $9 & $or$cond$not;
+ if (!($or$cond48)) {
+  $$1 = 45;
+  STACKTOP = sp;return ($$1|0);
+ }
+ $10 = $1 & 2;
+ $11 = ($10|0)!=(0);
+ $12 = ($4|0)<(1);
+ $or$cond3 = $11 & $12;
+ if ($or$cond3) {
+  $$1 = 45;
+  STACKTOP = sp;return ($$1|0);
+ }
+ $13 = ($0|0)!=(2);
+ $or$cond5 = $13 | $11;
+ if (!($or$cond5)) {
+  __gcry_sha1_hash_buffers($2,$3,$4);
+  $$1 = 0;
+  STACKTOP = sp;return ($$1|0);
+ }
+ $14 = ($0|0)==(1);
+ if ($14) {
+  $15 = (__gcry_fips_mode()|0);
+  $16 = ($15|0)==(0);
+  if (!($16)) {
+   __gcry_inactivate_fips_mode(59020);
+   $17 = (__gcry_enforced_fips_mode()|0);
+   $18 = ($17|0)==(0);
+   if (!($18)) {
+    __gcry_fips_noreturn();
+    // unreachable;
+   }
+  }
+ }
+ $19 = (_md_open($5,$0,$10)|0);
+ $20 = ($19|0)==(0);
+ L16: do {
+  if ($20) {
+   $21 = HEAP32[$5>>2]|0;
+   do {
+    if ($11) {
+     $22 = ((($3)) + 12|0);
+     $23 = HEAP32[$22>>2]|0;
+     $24 = ((($3)) + 4|0);
+     $25 = HEAP32[$24>>2]|0;
+     $26 = (($23) + ($25)|0);
+     $27 = ((($3)) + 8|0);
+     $28 = HEAP32[$27>>2]|0;
+     $29 = (__gcry_md_setkey($21,$26,$28)|0);
+     $30 = ($29|0)==(0);
+     if ($30) {
+      $31 = ((($3)) + 16|0);
+      $32 = (($4) + -1)|0;
+      $$043 = $32;$$045 = $31;
+      break;
+     } else {
+      _md_close($21);
+      $$042$ph = $29;
+      break L16;
+     }
+    } else {
+     $$043 = $4;$$045 = $3;
+    }
+   } while(0);
+   $33 = ($$043|0)==(0);
+   if (!($33)) {
+    $34 = ((($$045)) + 12|0);
+    $35 = HEAP32[$34>>2]|0;
+    $36 = ((($$045)) + 4|0);
+    $37 = HEAP32[$36>>2]|0;
+    $38 = (($35) + ($37)|0);
+    $39 = ((($$045)) + 8|0);
+    $40 = HEAP32[$39>>2]|0;
+    _md_write($21,$38,$40);
+    $41 = (($$043) + -1)|0;
+    $42 = ($41|0)==(0);
+    if (!($42)) {
+     $$045$pn = $$045;$$14453 = $41;
+     while(1) {
+      $$14652 = ((($$045$pn)) + 16|0);
+      $43 = ((($$045$pn)) + 28|0);
+      $44 = HEAP32[$43>>2]|0;
+      $45 = ((($$045$pn)) + 20|0);
+      $46 = HEAP32[$45>>2]|0;
+      $47 = (($44) + ($46)|0);
+      $48 = ((($$045$pn)) + 24|0);
+      $49 = HEAP32[$48>>2]|0;
+      _md_write($21,$47,$49);
+      $50 = (($$14453) + -1)|0;
+      $51 = ($50|0)==(0);
+      if ($51) {
+       break;
+      } else {
+       $$045$pn = $$14652;$$14453 = $50;
+      }
+     }
+    }
+   }
+   _md_final($21);
+   $$idx$val = HEAP32[$21>>2]|0;
+   $$idx$val$idx = ((($$idx$val)) + 16|0);
+   $$idx$val$idx$val = HEAP32[$$idx$val$idx>>2]|0;
+   $52 = ($0|0)==(0);
+   $53 = ($$idx$val$idx$val|0)==(0|0);
+   do {
+    if ($52) {
+     if ($53) {
+      __gcry_bug(59029,816,59166);
+      // unreachable;
+     }
+     $54 = ((($$idx$val$idx$val)) + 4|0);
+     $55 = HEAP32[$54>>2]|0;
+     $56 = ($55|0)==(0|0);
+     if (!($56)) {
+      __gcry_log_debug(59127,$vararg_buffer);
+     }
+     $57 = HEAP32[$$idx$val$idx$val>>2]|0;
+     $58 = ((($57)) + 40|0);
+     $59 = HEAP32[$58>>2]|0;
+     $60 = ((($$idx$val$idx$val)) + 16|0);
+     $61 = (FUNCTION_TABLE_ii[$59 & 63]($60)|0);
+     $$013$i = $61;
+    } else {
+     if ($53) {
+      __gcry_bug(59029,816,59166);
+      // unreachable;
+     }
+     $$02$i = $$idx$val$idx$val;
+     while(1) {
+      $62 = HEAP32[$$02$i>>2]|0;
+      $63 = HEAP32[$62>>2]|0;
+      $64 = ($63|0)==($0|0);
+      if ($64) {
+       label = 26;
+       break;
+      }
+      $69 = ((($$02$i)) + 4|0);
+      $70 = HEAP32[$69>>2]|0;
+      $71 = ($70|0)==(0|0);
+      if ($71) {
+       label = 28;
+       break;
+      } else {
+       $$02$i = $70;
+      }
+     }
+     if ((label|0) == 26) {
+      $65 = ((($62)) + 40|0);
+      $66 = HEAP32[$65>>2]|0;
+      $67 = ((($$02$i)) + 16|0);
+      $68 = (FUNCTION_TABLE_ii[$66 & 63]($67)|0);
+      $$013$i = $68;
+      break;
+     }
+     else if ((label|0) == 28) {
+      __gcry_bug(59029,816,59166);
+      // unreachable;
+     }
+    }
+   } while(0);
+   $72 = HEAP32[9908]|0;
+   $73 = ($72|0)==($0|0);
+   if ($73) {
+    $$ph$i = 39632;
+    label = 35;
+   } else {
+    $74 = HEAP32[9936]|0;
+    $75 = ($74|0)==($0|0);
+    if ($75) {
+     $$ph$i = 39744;
+     label = 35;
+    } else {
+     $76 = HEAP32[9921]|0;
+     $77 = ($76|0)==($0|0);
+     if ($77) {
+      $$ph$i = 39684;
+      label = 35;
+     } else {
+      $78 = HEAP32[9952]|0;
+      $79 = ($78|0)==($0|0);
+      if ($79) {
+       $$ph$i = 39808;
+       label = 35;
+      } else {
+       $80 = HEAP32[9968]|0;
+       $81 = ($80|0)==($0|0);
+       if ($81) {
+        $$ph$i = 39872;
+        label = 35;
+       } else {
+        $82 = HEAP32[9871]|0;
+        $83 = ($82|0)==($0|0);
+        if ($83) {
+         $$ph$i = 39484;
+         label = 35;
+        } else {
+         $86 = 0;
+        }
+       }
+      }
+     }
+    }
+   }
+   if ((label|0) == 35) {
+    $84 = ((($$ph$i)) + 24|0);
+    $85 = HEAP32[$84>>2]|0;
+    $86 = $85;
+   }
+   _memcpy(($2|0),($$013$i|0),($86|0))|0;
+   _md_close($21);
+   $$1 = 0;
+   STACKTOP = sp;return ($$1|0);
+  } else {
+   $$042$ph = $19;
+  }
+ } while(0);
+ $$1 = $$042$ph;
+ STACKTOP = sp;return ($$1|0);
+}
+function __gcry_md_get_algo($0) {
+ $0 = $0|0;
+ var $$idx$val = 0, $$idx$val$idx = 0, $$idx$val$idx$val = 0, $1 = 0, $2 = 0, 
$3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $$idx$val = HEAP32[$0>>2]|0;
+ $$idx$val$idx = ((($$idx$val)) + 16|0);
+ $$idx$val$idx$val = HEAP32[$$idx$val$idx>>2]|0;
+ $1 = ($$idx$val$idx$val|0)==(0|0);
+ if ($1) {
+  $7 = 0;
+  STACKTOP = sp;return ($7|0);
+ }
+ $2 = ((($$idx$val$idx$val)) + 4|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = ($3|0)==(0|0);
+ if (!($4)) {
+  __gcry_fips_signal_error(59029,980,59043,0,59055);
+  __gcry_log_error(59076,$vararg_buffer);
+ }
+ $5 = HEAP32[$$idx$val$idx$val>>2]|0;
+ $6 = HEAP32[$5>>2]|0;
+ $7 = $6;
+ STACKTOP = sp;return ($7|0);
+}
+function __gcry_md_get_algo_dlen($0) {
+ $0 = $0|0;
+ var $$ph$i = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ $1 = HEAP32[9908]|0;
+ $2 = ($1|0)==($0|0);
+ if ($2) {
+  $$ph$i = 39632;
+ } else {
+  $3 = HEAP32[9936]|0;
+  $4 = ($3|0)==($0|0);
+  if ($4) {
+   $$ph$i = 39744;
+  } else {
+   $5 = HEAP32[9921]|0;
+   $6 = ($5|0)==($0|0);
+   if ($6) {
+    $$ph$i = 39684;
+   } else {
+    $7 = HEAP32[9952]|0;
+    $8 = ($7|0)==($0|0);
+    if ($8) {
+     $$ph$i = 39808;
+    } else {
+     $9 = HEAP32[9968]|0;
+     $10 = ($9|0)==($0|0);
+     if ($10) {
+      $$ph$i = 39872;
+     } else {
+      $11 = HEAP32[9871]|0;
+      $12 = ($11|0)==($0|0);
+      if ($12) {
+       $$ph$i = 39484;
+      } else {
+       $15 = 0;
+       return ($15|0);
+      }
+     }
+    }
+   }
+  }
+ }
+ $13 = ((($$ph$i)) + 24|0);
+ $14 = HEAP32[$13>>2]|0;
+ $15 = $14;
+ return ($15|0);
+}
+function __gcry_md_algo_info($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$ = 0, $$1 = 0, $$ph$i = 0, $$ph$i25 = 0, $$ph$i28 = 0, $$ph$i33 = 0, 
$10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 
0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
+ var $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;
+ var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 
0, $59 = 0, $6 = 0, $60 = 0;
+ var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, 
$69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, 
$77 = 0, $78 = 0, $79 = 0;
+ var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $9 = 0, $or$cond = 0, $phitmp 
= 0, $spec$select = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ switch ($1|0) {
+ case 8:  {
+  $4 = ($2|0)!=(0|0);
+  $5 = ($3|0)!=(0|0);
+  $or$cond = $4 | $5;
+  if ($or$cond) {
+   $$1 = 45;
+   STACKTOP = sp;return ($$1|0);
+  }
+  $6 = HEAP32[9908]|0;
+  $7 = ($6|0)==($0|0);
+  if ($7) {
+   $$ph$i = 39632;
+   label = 9;
+  } else {
+   $8 = HEAP32[9936]|0;
+   $9 = ($8|0)==($0|0);
+   if ($9) {
+    $$ph$i = 39744;
+    label = 9;
+   } else {
+    $10 = HEAP32[9921]|0;
+    $11 = ($10|0)==($0|0);
+    if ($11) {
+     $$ph$i = 39684;
+     label = 9;
+    } else {
+     $12 = HEAP32[9952]|0;
+     $13 = ($12|0)==($0|0);
+     if ($13) {
+      $$ph$i = 39808;
+      label = 9;
+     } else {
+      $14 = HEAP32[9968]|0;
+      $15 = ($14|0)==($0|0);
+      if ($15) {
+       $$ph$i = 39872;
+       label = 9;
+      } else {
+       $16 = HEAP32[9871]|0;
+       $17 = ($16|0)==($0|0);
+       if ($17) {
+        $$ph$i = 39484;
+        label = 9;
+       }
+      }
+     }
+    }
+   }
+  }
+  if ((label|0) == 9) {
+   $18 = ((($$ph$i)) + 4|0);
+   $19 = HEAP8[$18>>0]|0;
+   $20 = $19 & 1;
+   $21 = ($20<<24>>24)==(0);
+   if ($21) {
+    $$1 = 0;
+    STACKTOP = sp;return ($$1|0);
+   }
+  }
+  $$1 = 5;
+  STACKTOP = sp;return ($$1|0);
+  break;
+ }
+ case 10:  {
+  $22 = HEAP32[9908]|0;
+  $23 = ($22|0)==($0|0);
+  if ($23) {
+   $$ph$i28 = 39632;
+  } else {
+   $24 = HEAP32[9936]|0;
+   $25 = ($24|0)==($0|0);
+   if ($25) {
+    $$ph$i28 = 39744;
+   } else {
+    $26 = HEAP32[9921]|0;
+    $27 = ($26|0)==($0|0);
+    if ($27) {
+     $$ph$i28 = 39684;
+    } else {
+     $28 = HEAP32[9952]|0;
+     $29 = ($28|0)==($0|0);
+     if ($29) {
+      $$ph$i28 = 39808;
+     } else {
+      $30 = HEAP32[9968]|0;
+      $31 = ($30|0)==($0|0);
+      if ($31) {
+       $$ph$i28 = 39872;
+      } else {
+       $32 = HEAP32[9871]|0;
+       $33 = ($32|0)==($0|0);
+       if ($33) {
+        $$ph$i28 = 39484;
+       } else {
+        $$1 = 5;
+        STACKTOP = sp;return ($$1|0);
+       }
+      }
+     }
+    }
+   }
+  }
+  $34 = ((($$ph$i28)) + 4|0);
+  $35 = HEAP8[$34>>0]|0;
+  $36 = $35 & 1;
+  $37 = ($36<<24>>24)==(0);
+  if (!($37)) {
+   $$1 = 5;
+   STACKTOP = sp;return ($$1|0);
+  }
+  if ($23) {
+   $$ph$i33 = 39632;
+  } else {
+   $38 = HEAP32[9936]|0;
+   $39 = ($38|0)==($0|0);
+   if ($39) {
+    $$ph$i33 = 39744;
+   } else {
+    $40 = HEAP32[9921]|0;
+    $41 = ($40|0)==($0|0);
+    if ($41) {
+     $$ph$i33 = 39684;
+    } else {
+     $42 = HEAP32[9952]|0;
+     $43 = ($42|0)==($0|0);
+     if ($43) {
+      $$ph$i33 = 39808;
+     } else {
+      $44 = HEAP32[9968]|0;
+      $45 = ($44|0)==($0|0);
+      if ($45) {
+       $$ph$i33 = 39872;
+      } else {
+       $46 = HEAP32[9871]|0;
+       $47 = ($46|0)==($0|0);
+       if ($47) {
+        $$ph$i33 = 39484;
+       } else {
+        HEAP32[$vararg_buffer>>2] = $0;
+        __gcry_log_bug(59259,$vararg_buffer);
+        // unreachable;
+       }
+      }
+     }
+    }
+   }
+  }
+  $48 = ((($$ph$i33)) + 16|0);
+  $49 = HEAP32[$48>>2]|0;
+  $50 = ((($$ph$i33)) + 12|0);
+  $51 = HEAP32[$50>>2]|0;
+  $52 = ($2|0)!=(0|0);
+  if ($52) {
+   $53 = HEAP32[$3>>2]|0;
+   $54 = ($53>>>0)<($49>>>0);
+   if (!($54)) {
+    _memcpy(($2|0),($51|0),($49|0))|0;
+    HEAP32[$3>>2] = $49;
+    $$1 = 0;
+    STACKTOP = sp;return ($$1|0);
+   }
+  } else {
+   $55 = ($3|0)==(0|0);
+   if (!($55)) {
+    HEAP32[$3>>2] = $49;
+    $$1 = 0;
+    STACKTOP = sp;return ($$1|0);
+   }
+  }
+  $$ = $52 ? 66 : 45;
+  $$1 = $$;
+  STACKTOP = sp;return ($$1|0);
+  break;
+ }
+ case 57:  {
+  $56 = ($3|0)==(0|0);
+  if ($56) {
+   $77 = 0;
+  } else {
+   $57 = HEAP32[$3>>2]|0;
+   $77 = $57;
+  }
+  $58 = HEAP32[9908]|0;
+  $59 = ($58|0)==($0|0);
+  if ($59) {
+   $$ph$i25 = 39632;
+   label = 39;
+  } else {
+   $60 = HEAP32[9936]|0;
+   $61 = ($60|0)==($0|0);
+   if ($61) {
+    $$ph$i25 = 39744;
+    label = 39;
+   } else {
+    $62 = HEAP32[9921]|0;
+    $63 = ($62|0)==($0|0);
+    if ($63) {
+     $$ph$i25 = 39684;
+     label = 39;
+    } else {
+     $64 = HEAP32[9952]|0;
+     $65 = ($64|0)==($0|0);
+     if ($65) {
+      $$ph$i25 = 39808;
+      label = 39;
+     } else {
+      $66 = HEAP32[9968]|0;
+      $67 = ($66|0)==($0|0);
+      if ($67) {
+       $$ph$i25 = 39872;
+       label = 39;
+      } else {
+       $68 = HEAP32[9871]|0;
+       $69 = ($68|0)==($0|0);
+       if ($69) {
+        $$ph$i25 = 39484;
+        label = 39;
+       } else {
+        $83 = 16777285;
+       }
+      }
+     }
+    }
+   }
+  }
+  do {
+   if ((label|0) == 39) {
+    $70 = ((($$ph$i25)) + 4|0);
+    $71 = HEAP8[$70>>0]|0;
+    $72 = $71 & 1;
+    $73 = ($72<<24>>24)==(0);
+    $74 = ((($$ph$i25)) + 48|0);
+    $75 = HEAP32[$74>>2]|0;
+    $76 = ($75|0)==(0|0);
+    if (!($73)) {
+     $phitmp = $76 ? 16777285 : 16777221;
+     $83 = $phitmp;
+     break;
+    }
+    if ($76) {
+     $83 = 16777285;
+    } else {
+     $78 = (FUNCTION_TABLE_iiii[$75 & 127]($0,$77,0)|0);
+     $79 = ($78|0)==(0);
+     $80 = $78 & 65535;
+     $81 = $80 | 16777216;
+     $spec$select = $79 ? 0 : $81;
+     $83 = $spec$select;
+    }
+   }
+  } while(0);
+  $82 = $83 & 65535;
+  $$1 = $82;
+  STACKTOP = sp;return ($$1|0);
+  break;
+ }
+ default: {
+  $$1 = 61;
+  STACKTOP = sp;return ($$1|0);
+ }
+ }
+ return (0)|0;
+}
+function __gcry_md_selftest($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$ph = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp20 = 0, 
$spec$select$i$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = HEAP32[9908]|0;
+ $4 = ($3|0)==($0|0);
+ if ($4) {
+  $$ph = 39632;
+  label = 7;
+ } else {
+  $5 = HEAP32[9936]|0;
+  $6 = ($5|0)==($0|0);
+  if ($6) {
+   $$ph = 39744;
+   label = 7;
+  } else {
+   $7 = HEAP32[9921]|0;
+   $8 = ($7|0)==($0|0);
+   if ($8) {
+    $$ph = 39684;
+    label = 7;
+   } else {
+    $9 = HEAP32[9952]|0;
+    $10 = ($9|0)==($0|0);
+    if ($10) {
+     $$ph = 39808;
+     label = 7;
+    } else {
+     $11 = HEAP32[9968]|0;
+     $12 = ($11|0)==($0|0);
+     if ($12) {
+      $$ph = 39872;
+      label = 7;
+     } else {
+      $13 = HEAP32[9871]|0;
+      $14 = ($13|0)==($0|0);
+      if ($14) {
+       $$ph = 39484;
+       label = 7;
+      } else {
+       $25 = 0;$30 = 0;$35 = 69;
+       label = 11;
+      }
+     }
+    }
+   }
+  }
+ }
+ do {
+  if ((label|0) == 7) {
+   $15 = ((($$ph)) + 4|0);
+   $16 = HEAP8[$15>>0]|0;
+   $17 = $16 & 1;
+   $18 = ($17<<24>>24)==(0);
+   $19 = ((($$ph)) + 48|0);
+   $20 = HEAP32[$19>>2]|0;
+   $21 = ($20|0)==(0|0);
+   if (!($18)) {
+    $phitmp20 = $21 ? 69 : 5;
+    $25 = $$ph;$30 = 1;$35 = $phitmp20;
+    label = 11;
+    break;
+   }
+   if ($21) {
+    $25 = $$ph;$30 = 1;$35 = 69;
+    label = 11;
+   } else {
+    $22 = (FUNCTION_TABLE_iiii[$20 & 127]($0,$1,$2)|0);
+    $$0 = $22;
+   }
+  }
+ } while(0);
+ if ((label|0) == 11) {
+  $23 = ($2|0)==(0|0);
+  if ($23) {
+   $$0 = $35;
+  } else {
+   if ($30) {
+    $24 = ((($25)) + 4|0);
+    $26 = HEAP8[$24>>0]|0;
+    $27 = $26 & 1;
+    $28 = ($27<<24>>24)==(0);
+    if ($28) {
+     $31 = 59812;
+    } else {
+     label = 14;
+    }
+   } else {
+    label = 14;
+   }
+   if ((label|0) == 14) {
+    $29 = $30 ? 59773 : 59792;
+    $31 = $29;
+   }
+   FUNCTION_TABLE_viiii[$2 & 63](63225,$0,59834,$31);
+   $$0 = $35;
+  }
+ }
+ $32 = ($$0|0)==(0);
+ $33 = $$0 & 65535;
+ $34 = $33 | 16777216;
+ $spec$select$i$i = $32 ? 0 : $34;
+ return ($spec$select$i$i|0);
+}
+function __gcry_md_init() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return 0;
+}
+function __gcry_primegen_init() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return 0;
+}
+function __gcry_register_primegen_progress($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ HEAP32[18114] = $0;
+ HEAP32[18115] = $1;
+ return;
+}
+function __gcry_generate_secret_prime($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (_gen_prime($0,1,$1,$2,$3)|0);
+ $5 = HEAP32[18114]|0;
+ $6 = ($5|0)==(0|0);
+ if ($6) {
+  return ($4|0);
+ }
+ $7 = HEAP32[18115]|0;
+ FUNCTION_TABLE_viiiii[$5 & 127]($7,59288,10,0,0);
+ return ($4|0);
+}
+function _gen_prime($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$087109 = 0, $$087109$us = 0, $$092107 = 0, $$092107$us = 0, $$093104 = 
0, $$1 = 0, $$1$us = 0, $$194106 = 0, $$194106$us = 0, $$lcssa = 0, $$lcssa$us 
= 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0;
+ var $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;
+ var $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;
+ var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, 
$65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, 
$73 = 0, $74 = 0, $75 = 0;
+ var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, 
$83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, 
$91 = 0, $92 = 0, $93 = 0;
+ var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $vararg_buffer = 0, 
$vararg_buffer1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $5 = sp + 12|0;
+ $6 = ($0>>>0)<(16);
+ if ($6) {
+  HEAP32[$vararg_buffer>>2] = 16;
+  __gcry_log_fatal(59297,$vararg_buffer);
+  // unreachable;
+ }
+ $7 = (__gcry_xmalloc(2672)|0);
+ $8 = (__gcry_mpi_alloc_set_ui(2)|0);
+ $9 = (__gcry_mpi_alloc_set_ui(3)|0);
+ $10 = ($1|0)!=(0);
+ if ($10) {
+  $11 = (__gcry_mpi_snew($0)|0);
+  $13 = $11;
+ } else {
+  $12 = (__gcry_mpi_new($0)|0);
+  $13 = $12;
+ }
+ $14 = (__gcry_mpi_alloc_like($13)|0);
+ $15 = (__gcry_mpi_alloc_like($13)|0);
+ $16 = (__gcry_mpi_alloc_like($13)|0);
+ HEAP32[$5>>2] = 0;
+ $17 = (($0) + -1)|0;
+ $18 = (($0) + -2)|0;
+ $19 = (($17) - ($1))|0;
+ $20 = ($3|0)==(0|0);
+ L8: while(1) {
+  __gcry_mpi_randomize($13,$0,$2);
+  __gcry_mpi_set_highbit($13,$17);
+  if ($10) {
+   __gcry_mpi_set_bit($13,$18);
+  }
+  __gcry_mpi_set_bit($13,0);
+  $$093104 = 0;
+  while(1) {
+   $21 = (3184 + ($$093104<<1)|0);
+   $22 = HEAP16[$21>>1]|0;
+   $23 = $22&65535;
+   $24 = (__gcry_mpi_fdiv_r_ui(0,$13,$23)|0);
+   $25 = (($7) + ($$093104<<2)|0);
+   HEAP32[$25>>2] = $24;
+   $26 = (($$093104) + 1)|0;
+   $27 = ($26|0)==(668);
+   if ($27) {
+    break;
+   } else {
+    $$093104 = $26;
+   }
+  }
+  L16: do {
+   if ($20) {
+    $$087109$us = 0;$$092107$us = 0;
+    while(1) {
+     $$194106$us = 0;$37 = 3;
+     while(1) {
+      $33 = (($7) + ($$194106$us<<2)|0);
+      $34 = HEAP32[$33>>2]|0;
+      $35 = (($34) + ($$092107$us))|0;
+      $36 = ($35>>>0)<($37>>>0);
+      if ($36) {
+       $$lcssa$us = $35;
+      } else {
+       $39 = $34;
+       while(1) {
+        $38 = (($39) - ($37))|0;
+        $40 = (($38) + ($$092107$us))|0;
+        $41 = ($40>>>0)<($37>>>0);
+        if ($41) {
+         break;
+        } else {
+         $39 = $38;
+        }
+       }
+       HEAP32[$33>>2] = $38;
+       $$lcssa$us = $40;
+      }
+      $42 = ($$lcssa$us|0)==(0);
+      $29 = (($$194106$us) + 1)|0;
+      if ($42) {
+       $$1$us = $$087109$us;
+       break;
+      }
+      $28 = (3184 + ($29<<1)|0);
+      $30 = HEAP16[$28>>1]|0;
+      $31 = $30&65535;
+      $32 = ($29|0)==(668);
+      if ($32) {
+       label = 20;
+       break;
+      } else {
+       $$194106$us = $29;$37 = $31;
+      }
+     }
+     if ((label|0) == 20) {
+      label = 0;
+      __gcry_mpi_add_ui($16,$13,$$092107$us);
+      $43 = HEAP32[$5>>2]|0;
+      $44 = (($43) + 1)|0;
+      HEAP32[$5>>2] = $44;
+      __gcry_mpi_sub_ui($15,$16,1);
+      __gcry_mpi_powm($14,$8,$15,$16);
+      $45 = (__gcry_mpi_cmp_ui($14,1)|0);
+      $46 = ($45|0)==(0);
+      if ($46) {
+       $47 = (_is_prime($16,5,$5)|0);
+       $48 = ($47|0)==(0);
+       if (!($48)) {
+        break;
+       }
+      }
+      $51 = (($$087109$us) + 1)|0;
+      $52 = ($51|0)==(10);
+      if ($52) {
+       $53 = HEAP32[18114]|0;
+       $54 = ($53|0)==(0|0);
+       if ($54) {
+        $$1$us = 0;
+       } else {
+        $55 = HEAP32[18115]|0;
+        FUNCTION_TABLE_viiiii[$53 & 127]($55,59288,46,0,0);
+        $$1$us = 0;
+       }
+      } else {
+       $$1$us = $51;
+      }
+     }
+     $56 = (($$092107$us) + 2)|0;
+     $57 = ($56>>>0)<(20000);
+     if ($57) {
+      $$087109$us = $$1$us;$$092107$us = $56;
+     } else {
+      break L16;
+     }
+    }
+    $49 = (__gcry_mpi_test_bit($16,$19)|0);
+    $50 = ($49|0)==(0);
+    if ($50) {
+     label = 38;
+    } else {
+     label = 51;
+     break L8;
+    }
+   } else {
+    $$087109 = 0;$$092107 = 0;
+    while(1) {
+     $$194106 = 0;$67 = 3;
+     while(1) {
+      $63 = (($7) + ($$194106<<2)|0);
+      $64 = HEAP32[$63>>2]|0;
+      $65 = (($64) + ($$092107))|0;
+      $66 = ($65>>>0)<($67>>>0);
+      if ($66) {
+       $$lcssa = $65;
+      } else {
+       $69 = $64;
+       while(1) {
+        $68 = (($69) - ($67))|0;
+        $70 = (($68) + ($$092107))|0;
+        $71 = ($70>>>0)<($67>>>0);
+        if ($71) {
+         break;
+        } else {
+         $69 = $68;
+        }
+       }
+       HEAP32[$63>>2] = $68;
+       $$lcssa = $70;
+      }
+      $72 = ($$lcssa|0)==(0);
+      $59 = (($$194106) + 1)|0;
+      if ($72) {
+       $$1 = $$087109;
+       break;
+      }
+      $58 = (3184 + ($59<<1)|0);
+      $60 = HEAP16[$58>>1]|0;
+      $61 = $60&65535;
+      $62 = ($59|0)==(668);
+      if ($62) {
+       label = 35;
+       break;
+      } else {
+       $$194106 = $59;$67 = $61;
+      }
+     }
+     if ((label|0) == 35) {
+      label = 0;
+      __gcry_mpi_add_ui($16,$13,$$092107);
+      $73 = HEAP32[$5>>2]|0;
+      $74 = (($73) + 1)|0;
+      HEAP32[$5>>2] = $74;
+      __gcry_mpi_sub_ui($15,$16,1);
+      __gcry_mpi_powm($14,$8,$15,$16);
+      $75 = (__gcry_mpi_cmp_ui($14,1)|0);
+      $76 = ($75|0)==(0);
+      if ($76) {
+       $77 = (_is_prime($16,5,$5)|0);
+       $78 = ($77|0)==(0);
+       if (!($78)) {
+        $79 = (__gcry_mpi_test_bit($16,$19)|0);
+        $80 = ($79|0)==(0);
+        if ($80) {
+         label = 38;
+         break L16;
+        }
+        $84 = (FUNCTION_TABLE_iii[$3 & 127]($4,$16)|0);
+        $85 = ($84|0)==(0);
+        if ($85) {
+         label = 51;
+         break L8;
+        }
+        $86 = HEAP32[18114]|0;
+        $87 = ($86|0)==(0|0);
+        if (!($87)) {
+         $88 = HEAP32[18115]|0;
+         FUNCTION_TABLE_viiiii[$86 & 127]($88,59288,47,0,0);
+        }
+       }
+      }
+      $89 = (($$087109) + 1)|0;
+      $90 = ($89|0)==(10);
+      if ($90) {
+       $91 = HEAP32[18114]|0;
+       $92 = ($91|0)==(0|0);
+       if ($92) {
+        $$1 = 0;
+       } else {
+        $93 = HEAP32[18115]|0;
+        FUNCTION_TABLE_viiiii[$91 & 127]($93,59288,46,0,0);
+        $$1 = 0;
+       }
+      } else {
+       $$1 = $89;
+      }
+     }
+     $94 = (($$092107) + 2)|0;
+     $95 = ($94>>>0)<(20000);
+     if ($95) {
+      $$087109 = $$1;$$092107 = $94;
+     } else {
+      break;
+     }
+    }
+   }
+  } while(0);
+  if ((label|0) == 38) {
+   label = 0;
+   $81 = HEAP32[18114]|0;
+   $82 = ($81|0)==(0|0);
+   if (!($82)) {
+    $83 = HEAP32[18115]|0;
+    FUNCTION_TABLE_viiiii[$81 & 127]($83,59288,10,0,0);
+   }
+   __gcry_log_debug(59344,$vararg_buffer1);
+  }
+  $96 = HEAP32[18114]|0;
+  $97 = ($96|0)==(0|0);
+  if (!($97)) {
+   $98 = HEAP32[18115]|0;
+   FUNCTION_TABLE_viiiii[$96 & 127]($98,59288,58,0,0);
+  }
+ }
+ if ((label|0) == 51) {
+  __gcry_mpi_free($8);
+  __gcry_mpi_free($9);
+  __gcry_mpi_free($14);
+  __gcry_mpi_free($15);
+  __gcry_mpi_free($13);
+  __gcry_free($7);
+  STACKTOP = sp;return ($16|0);
+ }
+ return (0)|0;
+}
+function _is_prime($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$074 = 0, $$07580 = 0, $$07580$us = 0, $$07678$us = 0, $10 = 0, $11 = 0, 
$12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 
0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0;
+ var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, 
$51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 
0, $6 = 0, $60 = 0, $61 = 0;
+ var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($0)) + 4|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = (__gcry_mpi_alloc($4)|0);
+ $6 = HEAP32[$3>>2]|0;
+ $7 = (__gcry_mpi_alloc($6)|0);
+ $8 = HEAP32[$3>>2]|0;
+ $9 = (__gcry_mpi_alloc($8)|0);
+ $10 = HEAP32[$3>>2]|0;
+ $11 = (__gcry_mpi_alloc($10)|0);
+ $12 = (__gcry_mpi_alloc_set_ui(2)|0);
+ $13 = (__gcry_mpi_get_nbits($0)|0);
+ $14 = ($1|0)>(5);
+ $spec$select = $14 ? $1 : 5;
+ __gcry_mpi_sub_ui($11,$0,1);
+ $15 = (__gcry_mpi_copy($11)|0);
+ $16 = (__gcry_mpi_trailing_zeros($15)|0);
+ __gcry_mpi_tdiv_q_2exp($15,$15,$16);
+ $17 = ($spec$select|0)==(0);
+ L1: do {
+  if ($17) {
+   $$074 = 1;
+  } else {
+   $18 = (($13) + -2)|0;
+   $19 = ($16>>>0)>(1);
+   if (!($19)) {
+    $$07580 = 0;
+    while(1) {
+     $46 = HEAP32[$2>>2]|0;
+     $47 = (($46) + 1)|0;
+     HEAP32[$2>>2] = $47;
+     $48 = ($$07580|0)==(0);
+     if ($48) {
+      (__gcry_mpi_set_ui($5,2)|0);
+     } else {
+      __gcry_mpi_randomize($5,$13,0);
+      $49 = (__gcry_mpi_test_bit($5,$18)|0);
+      $50 = ($49|0)==(0);
+      __gcry_mpi_set_highbit($5,$18);
+      if ($50) {
+       __gcry_mpi_clear_bit($5,$18);
+      }
+      $51 = (__gcry_mpi_cmp($5,$11)|0);
+      $52 = ($51|0)<(0);
+      if (!($52)) {
+       label = 27;
+       break;
+      }
+      $53 = (__gcry_mpi_cmp_ui($5,1)|0);
+      $54 = ($53|0)>(0);
+      if (!($54)) {
+       label = 27;
+       break;
+      }
+     }
+     __gcry_mpi_powm($7,$5,$15,$0);
+     $55 = (__gcry_mpi_cmp_ui($7,1)|0);
+     $56 = ($55|0)==(0);
+     if (!($56)) {
+      $57 = (__gcry_mpi_cmp($7,$11)|0);
+      $58 = ($57|0)==(0);
+      if (!($58)) {
+       $59 = (__gcry_mpi_cmp($7,$11)|0);
+       $60 = ($59|0)==(0);
+       if (!($60)) {
+        $$074 = 0;
+        break L1;
+       }
+      }
+     }
+     $61 = HEAP32[18114]|0;
+     $62 = ($61|0)==(0|0);
+     if (!($62)) {
+      $63 = HEAP32[18115]|0;
+      FUNCTION_TABLE_viiiii[$61 & 127]($63,59288,43,0,0);
+     }
+     $64 = (($$07580) + 1)|0;
+     $65 = ($64>>>0)<($spec$select>>>0);
+     if ($65) {
+      $$07580 = $64;
+     } else {
+      $$074 = 1;
+      break L1;
+     }
+    }
+    if ((label|0) == 27) {
+     __gcry_assert_failed(59374,59446,951,59457);
+     // unreachable;
+    }
+   }
+   $$07580$us = 0;
+   while(1) {
+    $20 = HEAP32[$2>>2]|0;
+    $21 = (($20) + 1)|0;
+    HEAP32[$2>>2] = $21;
+    $22 = ($$07580$us|0)==(0);
+    if ($22) {
+     (__gcry_mpi_set_ui($5,2)|0);
+    } else {
+     __gcry_mpi_randomize($5,$13,0);
+     $23 = (__gcry_mpi_test_bit($5,$18)|0);
+     $24 = ($23|0)==(0);
+     __gcry_mpi_set_highbit($5,$18);
+     if ($24) {
+      __gcry_mpi_clear_bit($5,$18);
+     }
+     $25 = (__gcry_mpi_cmp($5,$11)|0);
+     $26 = ($25|0)<(0);
+     if (!($26)) {
+      label = 27;
+      break;
+     }
+     $27 = (__gcry_mpi_cmp_ui($5,1)|0);
+     $28 = ($27|0)>(0);
+     if (!($28)) {
+      label = 27;
+      break;
+     }
+    }
+    __gcry_mpi_powm($7,$5,$15,$0);
+    $29 = (__gcry_mpi_cmp_ui($7,1)|0);
+    $30 = ($29|0)==(0);
+    if (!($30)) {
+     $31 = (__gcry_mpi_cmp($7,$11)|0);
+     $32 = ($31|0)==(0);
+     if (!($32)) {
+      $$07678$us = 1;
+      while(1) {
+       $35 = (__gcry_mpi_cmp($7,$11)|0);
+       $36 = ($35|0)==(0);
+       if ($36) {
+        break;
+       }
+       __gcry_mpi_powm($7,$7,$12,$0);
+       $37 = (__gcry_mpi_cmp_ui($7,1)|0);
+       $38 = ($37|0)==(0);
+       $34 = (($$07678$us) + 1)|0;
+       if ($38) {
+        $$074 = 0;
+        break L1;
+       }
+       $33 = ($34>>>0)<($16>>>0);
+       if ($33) {
+        $$07678$us = $34;
+       } else {
+        break;
+       }
+      }
+      $39 = (__gcry_mpi_cmp($7,$11)|0);
+      $40 = ($39|0)==(0);
+      if (!($40)) {
+       $$074 = 0;
+       break L1;
+      }
+     }
+    }
+    $41 = HEAP32[18114]|0;
+    $42 = ($41|0)==(0|0);
+    if (!($42)) {
+     $43 = HEAP32[18115]|0;
+     FUNCTION_TABLE_viiiii[$41 & 127]($43,59288,43,0,0);
+    }
+    $44 = (($$07580$us) + 1)|0;
+    $45 = ($44>>>0)<($spec$select>>>0);
+    if ($45) {
+     $$07580$us = $44;
+    } else {
+     $$074 = 1;
+     break L1;
+    }
+   }
+   if ((label|0) == 27) {
+    __gcry_assert_failed(59374,59446,951,59457);
+    // unreachable;
+   }
+  }
+ } while(0);
+ __gcry_mpi_free($5);
+ __gcry_mpi_free($7);
+ __gcry_mpi_free($9);
+ __gcry_mpi_free($11);
+ __gcry_mpi_free($15);
+ __gcry_mpi_free($12);
+ return ($$074|0);
+}
+function _check_prime($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$03539 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 
0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 
= 0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $5 = 0, $6 = 0, $7 
= 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $5 = sp;
+ HEAP32[$5>>2] = 0;
+ $$03539 = 0;$11 = 3;
+ while(1) {
+  $12 = (__gcry_mpi_divisible_ui($0,$11)|0);
+  $13 = ($12|0)==(0);
+  $7 = (($$03539) + 1)|0;
+  if (!($13)) {
+   label = 4;
+   break;
+  }
+  $6 = (3184 + ($7<<1)|0);
+  $8 = HEAP16[$6>>1]|0;
+  $9 = $8&65535;
+  $10 = ($7|0)==(668);
+  if ($10) {
+   break;
+  } else {
+   $$03539 = $7;$11 = $9;
+  }
+ }
+ if ((label|0) == 4) {
+  $14 = (__gcry_mpi_cmp_ui($0,$11)|0);
+  $15 = ($14|0)==(0);
+  $16 = $15&1;
+  $$1 = $16;
+  STACKTOP = sp;return ($$1|0);
+ }
+ $17 = (__gcry_mpi_alloc_like($0)|0);
+ $18 = (__gcry_mpi_alloc_like($0)|0);
+ __gcry_mpi_sub_ui($18,$0,1);
+ __gcry_mpi_powm($17,$1,$18,$0);
+ __gcry_mpi_free($18);
+ $19 = (__gcry_mpi_cmp_ui($17,1)|0);
+ $20 = ($19|0)==(0);
+ __gcry_mpi_free($17);
+ if (!($20)) {
+  $21 = HEAP32[18114]|0;
+  $22 = ($21|0)==(0|0);
+  if ($22) {
+   $$1 = 0;
+   STACKTOP = sp;return ($$1|0);
+  }
+  $23 = HEAP32[18115]|0;
+  FUNCTION_TABLE_viiiii[$21 & 127]($23,59288,46,0,0);
+  $$1 = 0;
+  STACKTOP = sp;return ($$1|0);
+ }
+ $24 = ($3|0)!=(0|0);
+ if ($24) {
+  $25 = (FUNCTION_TABLE_iiii[$3 & 127]($4,2,$0)|0);
+  $26 = ($25|0)==(0);
+  if (!($26)) {
+   label = 10;
+  }
+ } else {
+  label = 10;
+ }
+ if ((label|0) == 10) {
+  $27 = (_is_prime($0,$2,$5)|0);
+  $28 = ($27|0)==(0);
+  if (!($28)) {
+   if (!($24)) {
+    $$1 = 1;
+    STACKTOP = sp;return ($$1|0);
+   }
+   $29 = (FUNCTION_TABLE_iiii[$3 & 127]($4,1,$0)|0);
+   $30 = ($29|0)==(0);
+   if (!($30)) {
+    $$1 = 1;
+    STACKTOP = sp;return ($$1|0);
+   }
+  }
+ }
+ $31 = HEAP32[18114]|0;
+ $32 = ($31|0)==(0|0);
+ if ($32) {
+  $$1 = 0;
+  STACKTOP = sp;return ($$1|0);
+ }
+ $33 = HEAP32[18115]|0;
+ FUNCTION_TABLE_viiiii[$31 & 127]($33,59288,46,0,0);
+ $$1 = 0;
+ STACKTOP = sp;return ($$1|0);
+}
+function __gcry_derive_x931_prime($0,$1,$2,$3,$4,$5) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $6 = 0, $7 
= 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond3$not = 0, $or$cond93 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $6 = ($0|0)!=(0|0);
+ $7 = ($1|0)!=(0|0);
+ $or$cond = $6 & $7;
+ $8 = ($2|0)!=(0|0);
+ $or$cond3 = $or$cond & $8;
+ $or$cond3$not = $or$cond3 ^ 1;
+ $9 = ($3|0)==(0|0);
+ $or$cond93 = $9 | $or$cond3$not;
+ if ($or$cond93) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $10 = (__gcry_mpi_test_bit($3,0)|0);
+ $11 = ($10|0)==(0);
+ if ($11) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $12 = (_find_x931_prime($1)|0);
+ $13 = (_find_x931_prime($2)|0);
+ $14 = (__gcry_mpi_alloc_like($0)|0);
+ __gcry_mpi_mul($14,$12,$13);
+ $15 = (__gcry_mpi_alloc_like($12)|0);
+ (__gcry_mpi_invm($15,$13,$12)|0);
+ __gcry_mpi_mul($15,$15,$13);
+ $16 = (__gcry_mpi_alloc_like($13)|0);
+ (__gcry_mpi_invm($16,$12,$13)|0);
+ __gcry_mpi_mul($16,$16,$12);
+ __gcry_mpi_sub($15,$15,$16);
+ $17 = ((($15)) + 8|0);
+ $18 = HEAP32[$17>>2]|0;
+ $19 = ($18|0)==(0);
+ if (!($19)) {
+  __gcry_mpi_add($15,$15,$14);
+ }
+ __gcry_mpi_subm($16,$15,$0,$14);
+ __gcry_mpi_add($16,$16,$0);
+ __gcry_mpi_free($15);
+ $20 = (__gcry_mpi_cmp($16,$0)|0);
+ $21 = ($20|0)<(0);
+ if ($21) {
+  __gcry_mpi_add($16,$16,$14);
+ }
+ $22 = (__gcry_mpi_alloc_set_ui(2)|0);
+ $23 = (__gcry_mpi_alloc_like($16)|0);
+ __gcry_mpi_sub_ui($14,$14,1);
+ __gcry_mpi_sub_ui($16,$16,1);
+ while(1) {
+  $24 = (__gcry_mpi_gcd($23,$3,$16)|0);
+  __gcry_mpi_add_ui($16,$16,1);
+  $25 = ($24|0)==(0);
+  if ($25) {
+   $26 = HEAP32[18114]|0;
+   $27 = ($26|0)==(0|0);
+   if (!($27)) {
+    $28 = HEAP32[18115]|0;
+    FUNCTION_TABLE_viiiii[$26 & 127]($28,59288,47,0,0);
+   }
+  } else {
+   $29 = (_check_prime($16,$22,64,0,0)|0);
+   $30 = ($29|0)==(0);
+   if (!($30)) {
+    break;
+   }
+  }
+  __gcry_mpi_add($16,$16,$14);
+ }
+ __gcry_mpi_free($23);
+ __gcry_mpi_free($22);
+ __gcry_mpi_free($14);
+ $31 = HEAP32[18114]|0;
+ $32 = ($31|0)==(0|0);
+ if (!($32)) {
+  $33 = HEAP32[18115]|0;
+  FUNCTION_TABLE_viiiii[$31 & 127]($33,59288,10,0,0);
+ }
+ $34 = ($4|0)==(0|0);
+ if ($34) {
+  __gcry_mpi_free($12);
+ } else {
+  HEAP32[$4>>2] = $12;
+ }
+ $35 = ($5|0)==(0|0);
+ if ($35) {
+  __gcry_mpi_free($13);
+  $$0 = $16;
+  return ($$0|0);
+ } else {
+  HEAP32[$5>>2] = $13;
+  $$0 = $16;
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function _find_x931_prime($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_mpi_alloc_set_ui(2)|0);
+ $2 = (__gcry_mpi_copy($0)|0);
+ __gcry_mpi_set_bit($2,0);
+ $3 = (_check_prime($2,$1,64,0,0)|0);
+ $4 = ($3|0)==(0);
+ if (!($4)) {
+  __gcry_mpi_free($1);
+  return ($2|0);
+ }
+ while(1) {
+  __gcry_mpi_add_ui($2,$2,2);
+  $5 = (_check_prime($2,$1,64,0,0)|0);
+  $6 = ($5|0)==(0);
+  if (!($6)) {
+   break;
+  }
+ }
+ __gcry_mpi_free($1);
+ return ($2|0);
+}
+function __gcry_pk_util_parse_flaglist($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0108 = 0, $$087$lcssa = 0, $$087107 = 0, $$089$lcssa = 0, $$089106 = 0, 
$$091105 = 0, $$091105$in = 0, $$092$lcssa = 0, $$092104 = 0, $$1 = 0, $$188 = 
0, $$190 = 0, $$193 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0;
+ var $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, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0;
+ var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, 
$43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, 
$51 = 0, $52 = 0, $53 = 0;
+ var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 
0, $7 = 0, $70 = 0, $71 = 0;
+ var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, 
$8 = 0, $80 = 0, $81 = 0, $82 = 0, $9 = 0, $or$cond = 0, $or$cond11 = 0, 
$or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, $spec$select = 0;
+ var $spec$select100 = 0, $spec$select101 = 0, $spec$select102 = 0, 
$spec$select103 = 0, $spec$select94 = 0, $spec$select95 = 0, $spec$select96 = 
0, $spec$select97 = 0, $spec$select98 = 0, $spec$select99 = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $3 = sp;
+ $4 = ($0|0)==(0|0);
+ if ($4) {
+  $$087$lcssa = 0;$$089$lcssa = 5;$$092$lcssa = 0;
+ } else {
+  $5 = (__gcry_sexp_length($0)|0);
+  $6 = ($5|0)>(1);
+  if ($6) {
+   $$0108 = 0;$$087107 = 0;$$089106 = 5;$$091105$in = $5;$$092104 = 0;
+   while(1) {
+    $$091105 = (($$091105$in) + -1)|0;
+    $7 = (__gcry_sexp_nth_data($0,$$091105,$3)|0);
+    $8 = ($7|0)==(0|0);
+    L6: do {
+     if ($8) {
+      $$1 = $$0108;$$188 = $$087107;$$190 = $$089106;$$193 = $$092104;
+     } else {
+      $9 = HEAP32[$3>>2]|0;
+      do {
+       switch ($9|0) {
+       case 3:  {
+        $10 = (_memcmp($7,59466,3)|0);
+        $11 = ($10|0)==(0);
+        $12 = ($$089106|0)==(5);
+        $or$cond = $12 & $11;
+        if ($or$cond) {
+         $13 = $$087107 | 4;
+         $$1 = $$0108;$$188 = $13;$$190 = 4;$$193 = $$092104;
+         break L6;
+        }
+        $14 = (_memcmp($7,59470,3)|0);
+        $15 = ($14|0)==(0);
+        $or$cond3 = $12 & $15;
+        if ($or$cond3) {
+         $16 = $$087107 | 16;
+         $$1 = $$0108;$$188 = $16;$$190 = 0;$$193 = $$092104;
+         break L6;
+        } else {
+         $17 = ($$0108|0)==(0);
+         $spec$select = $17 ? 72 : $$092104;
+         $$1 = $$0108;$$188 = $$087107;$$190 = $$089106;$$193 = $spec$select;
+         break L6;
+        }
+        break;
+       }
+       case 4:  {
+        $18 = (_memcmp($7,59474,4)|0);
+        $19 = ($18|0)==(0);
+        if ($19) {
+         $20 = $$087107 | 1024;
+         $$1 = $$0108;$$188 = $20;$$190 = $$089106;$$193 = $$092104;
+         break L6;
+        }
+        $21 = (_memcmp($7,59479,4)|0);
+        $22 = ($21|0)==(0);
+        $23 = ($$089106|0)==(5);
+        $or$cond5 = $23 & $22;
+        if ($or$cond5) {
+         $24 = $$087107 | 4;
+         $$1 = $$0108;$$188 = $24;$$190 = 3;$$193 = $$092104;
+         break L6;
+        }
+        $25 = (_memcmp($7,67440,4)|0);
+        $26 = ($25|0)==(0);
+        if ($26) {
+         $27 = $$087107 | 8192;
+         $$1 = $$0108;$$188 = $27;$$190 = 0;$$193 = $$092104;
+         break L6;
+        } else {
+         $28 = ($$0108|0)==(0);
+         $spec$select94 = $28 ? 72 : $$092104;
+         $$1 = $$0108;$$188 = $$087107;$$190 = $$089106;$$193 = $spec$select94;
+         break L6;
+        }
+        break;
+       }
+       case 5:  {
+        $29 = (_memcmp($7,67434,5)|0);
+        $30 = ($29|0)==(0);
+        if ($30) {
+         $31 = $$087107 | 4096;
+         $$1 = $$0108;$$188 = $31;$$190 = 0;$$193 = $$092104;
+         break L6;
+        }
+        $32 = (_memcmp($7,59484,5)|0);
+        $33 = ($32|0)==(0);
+        $34 = ($$089106|0)==(5);
+        $or$cond7 = $34 & $33;
+        if ($or$cond7) {
+         $35 = $$087107 | 4;
+         $$1 = $$0108;$$188 = $35;$$190 = 1;$$193 = $$092104;
+         break L6;
+        }
+        $36 = (_memcmp($7,59490,5)|0);
+        $37 = ($36|0)==(0);
+        if ($37) {
+         $38 = $$087107 | 512;
+         $$1 = $$0108;$$188 = $38;$$190 = $$089106;$$193 = $$092104;
+         break L6;
+        } else {
+         $39 = ($$0108|0)==(0);
+         $spec$select95 = $39 ? 72 : $$092104;
+         $$1 = $$0108;$$188 = $$087107;$$190 = $$089106;$$193 = $spec$select95;
+         break L6;
+        }
+        break;
+       }
+       case 6:  {
+        $40 = (_memcmp($7,59496,6)|0);
+        $41 = ($40|0)==(0);
+        if ($41) {
+         $42 = $$087107 | 2048;
+         $$1 = $$0108;$$188 = $42;$$190 = $$089106;$$193 = $$092104;
+         break L6;
+        } else {
+         $43 = ($$0108|0)==(0);
+         $spec$select96 = $43 ? 72 : $$092104;
+         $$1 = $$0108;$$188 = $$087107;$$190 = $$089106;$$193 = $spec$select96;
+         break L6;
+        }
+        break;
+       }
+       case 7:  {
+        $44 = (_memcmp($7,59503,7)|0);
+        $45 = ($44|0)==(0);
+        if ($45) {
+         $46 = $$087107 | 2;
+         $$1 = $$0108;$$188 = $46;$$190 = $$089106;$$193 = $$092104;
+         break L6;
+        } else {
+         $47 = (_memcmp($7,59511,7)|0);
+         $48 = ($47|0)==(0);
+         $49 = ($$0108|0)!=(0);
+         $or$cond11 = $49 | $48;
+         $spec$select97 = $or$cond11 ? $$092104 : 72;
+         $$1 = $$0108;$$188 = $$087107;$$190 = $$089106;$$193 = $spec$select97;
+         break L6;
+        }
+        break;
+       }
+       case 8:  {
+        $50 = (_memcmp($7,61924,8)|0);
+        $51 = ($50|0)==(0);
+        if ($51) {
+         $52 = $$087107 | 64;
+         $$1 = $$0108;$$188 = $52;$$190 = $$089106;$$193 = $$092104;
+         break L6;
+        } else {
+         $53 = ($$0108|0)==(0);
+         $spec$select98 = $53 ? 72 : $$092104;
+         $$1 = $$0108;$$188 = $$087107;$$190 = $$089106;$$193 = $spec$select98;
+         break L6;
+        }
+        break;
+       }
+       case 9:  {
+        $54 = (_memcmp($7,59519,9)|0);
+        $55 = ($54|0)==(0);
+        $56 = ($$089106|0)==(5);
+        $or$cond9 = $56 & $55;
+        if ($or$cond9) {
+         $57 = $$087107 | 4;
+         $$1 = $$0108;$$188 = $57;$$190 = 2;$$193 = $$092104;
+         break L6;
+        } else {
+         $58 = ($$0108|0)==(0);
+         $spec$select99 = $58 ? 72 : $$092104;
+         $$1 = $$0108;$$188 = $$087107;$$190 = $$089106;$$193 = $spec$select99;
+         break L6;
+        }
+        break;
+       }
+       case 10:  {
+        $59 = (_memcmp($7,59529,10)|0);
+        $60 = ($59|0)==(0);
+        if ($60) {
+         $$1 = 1;$$188 = $$087107;$$190 = $$089106;$$193 = $$092104;
+         break L6;
+        }
+        $61 = (_memcmp($7,59540,10)|0);
+        $62 = ($61|0)==(0);
+        if ($62) {
+         $63 = $$087107 | 16384;
+         $$1 = $$0108;$$188 = $63;$$190 = $$089106;$$193 = $$092104;
+         break L6;
+        } else {
+         $64 = ($$0108|0)==(0);
+         $spec$select100 = $64 ? 72 : $$092104;
+         $$1 = $$0108;$$188 = $$087107;$$190 = $$089106;$$193 = 
$spec$select100;
+         break L6;
+        }
+        break;
+       }
+       case 11:  {
+        $65 = (_memcmp($7,59551,11)|0);
+        $66 = ($65|0)==(0);
+        if ($66) {
+         $67 = $$087107 | 1;
+         $$1 = $$0108;$$188 = $67;$$190 = $$089106;$$193 = $$092104;
+         break L6;
+        }
+        $68 = (_memcmp($7,59563,11)|0);
+        $69 = ($68|0)==(0);
+        if ($69) {
+         $70 = $$087107 | 128;
+         $$1 = $$0108;$$188 = $70;$$190 = $$089106;$$193 = $$092104;
+         break L6;
+        } else {
+         $71 = ($$0108|0)==(0);
+         $spec$select101 = $71 ? 72 : $$092104;
+         $$1 = $$0108;$$188 = $$087107;$$190 = $$089106;$$193 = 
$spec$select101;
+         break L6;
+        }
+        break;
+       }
+       case 13:  {
+        $72 = (_memcmp($7,59575,13)|0);
+        $73 = ($72|0)==(0);
+        if ($73) {
+         $74 = $$087107 | 256;
+         $$1 = $$0108;$$188 = $74;$$190 = $$089106;$$193 = $$092104;
+         break L6;
+        }
+        $75 = (_memcmp($7,66452,13)|0);
+        $76 = ($75|0)==(0);
+        if ($76) {
+         $77 = $$087107 | 32;
+         $$1 = $$0108;$$188 = $77;$$190 = $$089106;$$193 = $$092104;
+         break L6;
+        } else {
+         $78 = ($$0108|0)==(0);
+         $spec$select102 = $78 ? 72 : $$092104;
+         $$1 = $$0108;$$188 = $$087107;$$190 = $$089106;$$193 = 
$spec$select102;
+         break L6;
+        }
+        break;
+       }
+       default: {
+        $79 = ($$0108|0)==(0);
+        $spec$select103 = $79 ? 72 : $$092104;
+        $$1 = $$0108;$$188 = $$087107;$$190 = $$089106;$$193 = $spec$select103;
+        break L6;
+       }
+       }
+      } while(0);
+     }
+    } while(0);
+    $80 = ($$091105$in|0)>(2);
+    if ($80) {
+     $$0108 = $$1;$$087107 = $$188;$$089106 = $$190;$$091105$in = 
$$091105;$$092104 = $$193;
+    } else {
+     $$087$lcssa = $$188;$$089$lcssa = $$190;$$092$lcssa = $$193;
+     break;
+    }
+   }
+  } else {
+   $$087$lcssa = 0;$$089$lcssa = 5;$$092$lcssa = 0;
+  }
+ }
+ $81 = ($1|0)==(0|0);
+ if (!($81)) {
+  HEAP32[$1>>2] = $$087$lcssa;
+ }
+ $82 = ($2|0)==(0|0);
+ if ($82) {
+  STACKTOP = sp;return ($$092$lcssa|0);
+ }
+ HEAP32[$2>>2] = $$089$lcssa;
+ STACKTOP = sp;return ($$092$lcssa|0);
+}
+function __gcry_pk_util_get_nbits($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 
0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(64|0);
+ $2 = sp;
+ $3 = sp + 52|0;
+ HEAP32[$1>>2] = 0;
+ $4 = (__gcry_sexp_find_token($0,59589,0)|0);
+ $5 = ($4|0)==(0|0);
+ if ($5) {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $6 = (__gcry_sexp_nth_data($4,1,$3)|0);
+ $7 = ($6|0)==(0|0);
+ $8 = HEAP32[$3>>2]|0;
+ $9 = ($8>>>0)>(48);
+ $or$cond = $7 | $9;
+ if ($or$cond) {
+  __gcry_sexp_release($4);
+  $$0 = 65;
+  STACKTOP = sp;return ($$0|0);
+ } else {
+  _memcpy(($2|0),($6|0),($8|0))|0;
+  $10 = (($2) + ($8)|0);
+  HEAP8[$10>>0] = 0;
+  $11 = (_strtoul($2,0,0)|0);
+  HEAP32[$1>>2] = $11;
+  __gcry_sexp_release($4);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ return (0)|0;
+}
+function __gcry_pk_util_get_rsa_use_e($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 
0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(64|0);
+ $2 = sp;
+ $3 = sp + 52|0;
+ HEAP32[$1>>2] = 0;
+ $4 = (__gcry_sexp_find_token($0,59595,0)|0);
+ $5 = ($4|0)==(0|0);
+ if ($5) {
+  HEAP32[$1>>2] = 65537;
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $6 = (__gcry_sexp_nth_data($4,1,$3)|0);
+ $7 = ($6|0)==(0|0);
+ $8 = HEAP32[$3>>2]|0;
+ $9 = ($8>>>0)>(48);
+ $or$cond = $7 | $9;
+ if ($or$cond) {
+  __gcry_sexp_release($4);
+  $$0 = 65;
+  STACKTOP = sp;return ($$0|0);
+ } else {
+  _memcpy(($2|0),($6|0),($8|0))|0;
+  $10 = (($2) + ($8)|0);
+  HEAP8[$10>>0] = 0;
+  $11 = (_strtoul($2,0,0)|0);
+  HEAP32[$1>>2] = $11;
+  __gcry_sexp_release($4);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ return (0)|0;
+}
+function __gcry_pk_util_preparse_sigval($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$043 = 0, $$044 = 0, $$046 = 0, $$047 = 0, $$1 = 0, $$145 = 0, $10 = 0, 
$11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 
0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
+ var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $4 = 0, $5 = 0, $6 
= 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ HEAP32[$2>>2] = 0;
+ $4 = ($3|0)!=(0|0);
+ if ($4) {
+  HEAP32[$3>>2] = 0;
+ }
+ $5 = (__gcry_sexp_find_token($0,59605,0)|0);
+ $6 = ($5|0)==(0|0);
+ L4: do {
+  if ($6) {
+   $$046 = 65;$$1 = 0;$$145 = 0;
+  } else {
+   $7 = (__gcry_sexp_nth($5,1)|0);
+   $8 = ($7|0)==(0|0);
+   if ($8) {
+    $$046 = 68;$$1 = 0;$$145 = 0;
+   } else {
+    $9 = (__gcry_sexp_nth_string($7,0)|0);
+    $10 = ($9|0)==(0|0);
+    if ($10) {
+     $$046 = 65;$$1 = 0;$$145 = $7;
+    } else {
+     $11 = (_strcmp($9,64705)|0);
+     $12 = ($11|0)==(0);
+     if ($12) {
+      __gcry_sexp_release($7);
+      $13 = (__gcry_sexp_nth($5,2)|0);
+      $14 = ($13|0)==(0|0);
+      if ($14) {
+       $$046 = 65;$$1 = $9;$$145 = 0;
+       break;
+      }
+      __gcry_free($9);
+      $15 = (__gcry_sexp_nth_string($13,0)|0);
+      $16 = ($15|0)==(0|0);
+      if ($16) {
+       $$046 = 65;$$1 = 0;$$145 = $13;
+       break;
+      } else {
+       $$043 = $15;$$044 = $13;
+      }
+     } else {
+      $$043 = $9;$$044 = $7;
+     }
+     $17 = HEAP32[$1>>2]|0;
+     $18 = ($17|0)==(0|0);
+     if ($18) {
+      $$046 = 70;$$1 = $$043;$$145 = $$044;
+     } else {
+      $$047 = 0;$23 = $17;
+      while(1) {
+       $24 = (_strcasecmp($$043,$23)|0);
+       $25 = ($24|0)==(0);
+       $20 = (($$047) + 1)|0;
+       if ($25) {
+        break;
+       }
+       $19 = (($1) + ($20<<2)|0);
+       $21 = HEAP32[$19>>2]|0;
+       $22 = ($21|0)==(0|0);
+       if ($22) {
+        $$046 = 70;$$1 = $$043;$$145 = $$044;
+        break L4;
+       } else {
+        $$047 = $20;$23 = $21;
+       }
+      }
+      if ($4) {
+       $26 = (_strcmp($$043,67434)|0);
+       $27 = ($26|0)==(0);
+       if ($27) {
+        HEAP32[$3>>2] = 4096;
+       }
+       $28 = (_strcmp($$043,67440)|0);
+       $29 = ($28|0)==(0);
+       if ($29) {
+        HEAP32[$3>>2] = 8192;
+       }
+      }
+      HEAP32[$2>>2] = $$044;
+      $$046 = 0;$$1 = $$043;$$145 = 0;
+     }
+    }
+   }
+  }
+ } while(0);
+ __gcry_free($$1);
+ __gcry_sexp_release($$145);
+ __gcry_sexp_release($5);
+ return ($$046|0);
+}
+function __gcry_pk_util_preparse_encval($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$07296 = 0, $$075 = 0, $$174 = 0, $$195 = 0, $$2 = 0, $$3 = 0, $$4 = 0, 
$$5 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 
0, $18 = 0, $19 = 0, $20 = 0, $21 = 0;
+ var $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;
+ var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, 
$49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, 
$57 = 0, $58 = 0, $59 = 0;
+ var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, 
$67 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $4 = sp + 4|0;
+ $5 = sp;
+ HEAP32[$5>>2] = 0;
+ HEAP32[$2>>2] = 0;
+ $6 = (__gcry_sexp_find_token($0,61094,0)|0);
+ $7 = ($6|0)==(0|0);
+ L1: do {
+  if ($7) {
+   $$2 = 0;$$4 = 0;$$5 = 65;
+  } else {
+   $8 = (__gcry_sexp_nth($6,1)|0);
+   $9 = ($8|0)==(0|0);
+   if ($9) {
+    $$2 = 0;$$4 = 0;$$5 = 68;
+   } else {
+    $10 = (__gcry_sexp_nth_string($8,0)|0);
+    $11 = ($10|0)==(0|0);
+    if ($11) {
+     $$2 = 0;$$4 = $8;$$5 = 65;
+    } else {
+     $12 = (_strcmp($10,64705)|0);
+     $13 = ($12|0)==(0);
+     if ($13) {
+      $14 = ((($3)) + 8|0);
+      $15 = (__gcry_pk_util_parse_flaglist($8,$5,$14)|0);
+      $16 = ($15|0)==(0);
+      if (!($16)) {
+       $$2 = $10;$$4 = $8;$$5 = $15;
+       break;
+      }
+      $17 = HEAP32[$14>>2]|0;
+      L8: do {
+       switch ($17|0) {
+       case 4:  {
+        $$2 = $10;$$4 = $8;$$5 = 70;
+        break L1;
+        break;
+       }
+       case 3:  {
+        __gcry_sexp_release($8);
+        $18 = (__gcry_sexp_find_token($6,59613,0)|0);
+        $19 = ($18|0)==(0|0);
+        if (!($19)) {
+         $20 = (__gcry_sexp_nth_data($18,1,$4)|0);
+         $21 = ($20|0)==(0|0);
+         if ($21) {
+          $$2 = $10;$$4 = $18;$$5 = 68;
+          break L1;
+         }
+         $22 = HEAP32[$4>>2]|0;
+         $23 = (_get_hash_algo($20,$22)|0);
+         $24 = ((($3)) + 16|0);
+         HEAP32[$24>>2] = $23;
+         $25 = ($23|0)==(0);
+         if ($25) {
+          $$2 = $10;$$4 = $18;$$5 = 5;
+          break L1;
+         }
+        }
+        __gcry_sexp_release($18);
+        $26 = (__gcry_sexp_find_token($6,59623,0)|0);
+        $27 = ($26|0)==(0|0);
+        if ($27) {
+         $$075 = 0;
+        } else {
+         $28 = (__gcry_sexp_nth_data($26,1,$4)|0);
+         $29 = ($28|0)==(0|0);
+         if ($29) {
+          $$2 = $10;$$4 = $26;$$5 = 68;
+          break L1;
+         }
+         $30 = HEAP32[$4>>2]|0;
+         $31 = ($30|0)==(0);
+         if ($31) {
+          $$075 = $26;
+         } else {
+          $32 = (__gcry_malloc($30)|0);
+          $33 = ((($3)) + 20|0);
+          HEAP32[$33>>2] = $32;
+          $34 = ($32|0)==(0|0);
+          if ($34) {
+           $37 = (_gpg_err_code_from_syserror()|0);
+           $38 = ($37|0)==(0);
+           if ($38) {
+            $$075 = $26;
+            break L8;
+           } else {
+            $$2 = $10;$$4 = $26;$$5 = $37;
+            break L1;
+           }
+          } else {
+           $35 = HEAP32[$4>>2]|0;
+           _memcpy(($32|0),($28|0),($35|0))|0;
+           $36 = ((($3)) + 24|0);
+           HEAP32[$36>>2] = $35;
+           $$075 = $26;
+           break L8;
+          }
+         }
+        }
+        break;
+       }
+       default: {
+        $$075 = $8;
+       }
+       }
+      } while(0);
+      __gcry_sexp_release($$075);
+      $39 = (__gcry_sexp_nth($6,2)|0);
+      $40 = ($39|0)==(0|0);
+      if ($40) {
+       $$2 = $10;$$4 = 0;$$5 = 68;
+       break;
+      }
+      $$07296 = 2;$41 = $39;
+      L22: while(1) {
+       $42 = (__gcry_sexp_nth_data($41,0,$4)|0);
+       $43 = HEAP32[$4>>2]|0;
+       switch ($43|0) {
+       case 9:  {
+        $44 = (_memcmp($42,59613,9)|0);
+        $45 = ($44|0)==(0);
+        if (!($45)) {
+         break L22;
+        }
+        break;
+       }
+       case 5:  {
+        $46 = (_memcmp($42,59623,5)|0);
+        $47 = ($46|0)==(0);
+        if (!($47)) {
+         break L22;
+        }
+        break;
+       }
+       case 15:  {
+        $48 = (_memcmp($42,59629,15)|0);
+        $49 = ($48|0)==(0);
+        if (!($49)) {
+         break L22;
+        }
+        break;
+       }
+       default: {
+        break L22;
+       }
+       }
+       $50 = (($$07296) + 1)|0;
+       __gcry_sexp_release($41);
+       $51 = (__gcry_sexp_nth($6,$50)|0);
+       $52 = ($51|0)==(0|0);
+       if ($52) {
+        $$2 = $10;$$4 = 0;$$5 = 68;
+        break L1;
+       } else {
+        $$07296 = $50;$41 = $51;
+       }
+      }
+      __gcry_free($10);
+      $53 = (__gcry_sexp_nth_string($41,0)|0);
+      $54 = ($53|0)==(0|0);
+      if ($54) {
+       $$2 = 0;$$4 = $41;$$5 = 65;
+       break;
+      } else {
+       $$174 = $53;$$3 = $41;
+      }
+     } else {
+      HEAP32[$5>>2] = 8;
+      $$174 = $10;$$3 = $8;
+     }
+     $55 = HEAP32[$1>>2]|0;
+     $56 = ($55|0)==(0|0);
+     if ($56) {
+      $$2 = $$174;$$4 = $$3;$$5 = 70;
+     } else {
+      $$195 = 0;$61 = $55;
+      while(1) {
+       $62 = (_strcasecmp($$174,$61)|0);
+       $63 = ($62|0)==(0);
+       $58 = (($$195) + 1)|0;
+       if ($63) {
+        break;
+       }
+       $57 = (($1) + ($58<<2)|0);
+       $59 = HEAP32[$57>>2]|0;
+       $60 = ($59|0)==(0|0);
+       if ($60) {
+        $$2 = $$174;$$4 = $$3;$$5 = 70;
+        break L1;
+       } else {
+        $$195 = $58;$61 = $59;
+       }
+      }
+      HEAP32[$2>>2] = $$3;
+      $64 = HEAP32[$5>>2]|0;
+      $65 = ((($3)) + 12|0);
+      $66 = HEAP32[$65>>2]|0;
+      $67 = $66 | $64;
+      HEAP32[$65>>2] = $67;
+      $$2 = $$174;$$4 = 0;$$5 = 0;
+     }
+    }
+   }
+  }
+ } while(0);
+ __gcry_free($$2);
+ __gcry_sexp_release($$4);
+ __gcry_sexp_release($6);
+ STACKTOP = sp;return ($$5|0);
+}
+function _get_hash_algo($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$02325$lcssa = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, 
$15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, 
$23 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 
= 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ switch ($1|0) {
+ case 4:  {
+  $2 = (_memcmp(59645,$0,$1)|0);
+  $3 = ($2|0)==(0);
+  if ($3) {
+   $$02325$lcssa = 0;
+   label = 3;
+  }
+  break;
+ }
+ case 3:  {
+  $9 = (_memcmp(59650,$0,$1)|0);
+  $10 = ($9|0)==(0);
+  if ($10) {
+   $$02325$lcssa = 1;
+   label = 3;
+  } else {
+   $23 = (_memcmp(59699,$0,$1)|0);
+   $24 = ($23|0)==(0);
+   if ($24) {
+    $$02325$lcssa = 8;
+    label = 3;
+   } else {
+    $25 = (_memcmp(59703,$0,$1)|0);
+    $26 = ($25|0)==(0);
+    if ($26) {
+     $$02325$lcssa = 9;
+     label = 3;
+    }
+   }
+  }
+  break;
+ }
+ case 6:  {
+  $11 = (_memcmp(59654,$0,$1)|0);
+  $12 = ($11|0)==(0);
+  if ($12) {
+   $$02325$lcssa = 2;
+   label = 3;
+  } else {
+   $15 = (_memcmp(59671,$0,$1)|0);
+   $16 = ($15|0)==(0);
+   if ($16) {
+    $$02325$lcssa = 4;
+    label = 3;
+   } else {
+    $17 = (_memcmp(59678,$0,$1)|0);
+    $18 = ($17|0)==(0);
+    if ($18) {
+     $$02325$lcssa = 5;
+     label = 3;
+    } else {
+     $19 = (_memcmp(59685,$0,$1)|0);
+     $20 = ($19|0)==(0);
+     if ($20) {
+      $$02325$lcssa = 6;
+      label = 3;
+     } else {
+      $21 = (_memcmp(59692,$0,$1)|0);
+      $22 = ($21|0)==(0);
+      if ($22) {
+       $$02325$lcssa = 7;
+       label = 3;
+      }
+     }
+    }
+   }
+  }
+  break;
+ }
+ case 9:  {
+  $13 = (_memcmp(59661,$0,$1)|0);
+  $14 = ($13|0)==(0);
+  if ($14) {
+   $$02325$lcssa = 3;
+   label = 3;
+  }
+  break;
+ }
+ case 5:  {
+  $27 = (_memcmp(59707,$0,$1)|0);
+  $28 = ($27|0)==(0);
+  if ($28) {
+   $$02325$lcssa = 10;
+   label = 3;
+  } else {
+   $29 = (_memcmp(59713,$0,$1)|0);
+   $30 = ($29|0)==(0);
+   if ($30) {
+    $$02325$lcssa = 11;
+    label = 3;
+   }
+  }
+  break;
+ }
+ default: {
+ }
+ }
+ if ((label|0) == 3) {
+  $4 = (((4528 + ($$02325$lcssa<<3)|0)) + 4|0);
+  $5 = HEAP32[$4>>2]|0;
+  $$1 = $5;
+  return ($$1|0);
+ }
+ $31 = (($1) + 1)|0;
+ $6 = (__gcry_malloc($31)|0);
+ $32 = ($6|0)==(0|0);
+ if ($32) {
+  $$1 = 0;
+  return ($$1|0);
+ }
+ _memcpy(($6|0),($0|0),($1|0))|0;
+ $7 = (($6) + ($1)|0);
+ HEAP8[$7>>0] = 0;
+ $8 = (__gcry_md_map_name($6)|0);
+ __gcry_free($6);
+ $$1 = $8;
+ return ($$1|0);
+}
+function __gcry_pk_util_init_encoding_ctx($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ HEAP32[$0>>2] = $1;
+ $3 = ((($0)) + 4|0);
+ HEAP32[$3>>2] = $2;
+ $4 = ((($0)) + 8|0);
+ HEAP32[$4>>2] = 5;
+ $5 = ((($0)) + 12|0);
+ HEAP32[$5>>2] = 0;
+ $6 = ((($0)) + 16|0);
+ HEAP32[$6>>2] = 2;
+ $7 = ((($0)) + 20|0);
+ HEAP32[$7>>2] = 0;
+ $8 = ((($0)) + 24|0);
+ HEAP32[$8>>2] = 0;
+ $9 = ((($0)) + 28|0);
+ HEAP32[$9>>2] = 20;
+ $10 = ((($0)) + 32|0);
+ HEAP32[$10>>2] = 0;
+ $11 = ((($0)) + 36|0);
+ HEAP32[$11>>2] = 0;
+ return;
+}
+function __gcry_pk_util_free_encoding_ctx($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 20|0);
+ $2 = HEAP32[$1>>2]|0;
+ __gcry_free($2);
+ return;
+}
+function __gcry_pk_util_data_to_mpi($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0$ph = 0, $$0278$ph = 0, $$0280 = 0, $$0281$ph = 0, $$0283$ph = 0, 
$$0285$ph = 0, $$0289$ph = 0, $$0291$ph = 0, $$0299312 = 0, $$1 = 0, $$10$ph = 
0, $$1279 = 0, $$1282 = 0, $$1284 = 0, $$1288 = 0, $$1290 = 0, $$1292 = 0, $$17 
= 0, $$21 = 0, $$23 = 0;
+ var $$3 = 0, $$4 = 0, $$7 = 0, $$8 = 0, $$9 = 0, $$not = 0, $$pre = 0, $10 = 
0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 
0, $108 = 0, $109 = 0, $11 = 0, $110 = 0;
+ var $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;
+ var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 
= 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 
= 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0;
+ var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 
= 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 
= 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0;
+ var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 
= 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 
= 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0;
+ var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 
= 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 
= 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0;
+ var $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, 
$209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, 
$216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0;
+ var $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, 
$227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, 
$234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0;
+ var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, 
$31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 
0, $4 = 0, $40 = 0, $41 = 0;
+ var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, 
$5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, 
$58 = 0, $59 = 0, $6 = 0;
+ var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, 
$68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, 
$76 = 0, $77 = 0, $78 = 0;
+ var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, 
$86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, 
$94 = 0, $95 = 0, $96 = 0;
+ var $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, $or$cond10 = 0, $or$cond12 = 0, 
$or$cond14 = 0, $or$cond16 = 0, $or$cond18 = 0, $or$cond20 = 0, $or$cond22 = 0, 
$or$cond24 = 0, $or$cond26 = 0, $or$cond28 = 0, $or$cond30 = 0, $or$cond34 = 0, 
$or$cond364 = 0, $or$cond4 = 0, $or$cond8 = 0, $spec$select = 0;
+ var $spec$select365 = 0, $spec$select366 = 0, $switch = 0, $switch308 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $3 = sp + 32|0;
+ $4 = sp + 28|0;
+ $5 = sp + 24|0;
+ $6 = sp + 20|0;
+ $7 = sp + 16|0;
+ $8 = sp + 12|0;
+ $9 = sp + 8|0;
+ $10 = sp + 4|0;
+ $11 = sp;
+ HEAP32[$4>>2] = 0;
+ HEAP32[$1>>2] = 0;
+ $12 = (__gcry_sexp_find_token($0,59719,0)|0);
+ $13 = ($12|0)==(0|0);
+ if ($13) {
+  $14 = (__gcry_sexp_nth_mpi($0,0,0)|0);
+  HEAP32[$1>>2] = $14;
+  $15 = ($14|0)==(0|0);
+  $16 = $15 ? 65 : 0;
+  $$0280 = $16;
+  STACKTOP = sp;return ($$0280|0);
+ }
+ $17 = (__gcry_sexp_find_token($12,64705,0)|0);
+ $18 = ($17|0)==(0|0);
+ $$pre = ((($2)) + 8|0);
+ if ($18) {
+  $$1288 = 0;
+ } else {
+  $19 = (__gcry_pk_util_parse_flaglist($17,$4,$$pre)|0);
+  $20 = ($19|0)!=(0);
+  $spec$select = $20&1;
+  __gcry_sexp_release($17);
+  $$1288 = $spec$select;
+ }
+ $21 = HEAP32[$$pre>>2]|0;
+ $22 = ($21|0)==(5);
+ if ($22) {
+  HEAP32[$$pre>>2] = 0;
+ }
+ $23 = (__gcry_sexp_find_token($12,59724,0)|0);
+ $24 = ($23|0)!=(0|0);
+ if ($24) {
+  $41 = 0;$73 = 0;
+  label = 9;
+ } else {
+  $25 = (__gcry_sexp_find_token($12,61106,0)|0);
+  $26 = ($25|0)==(0|0);
+  if ($26) {
+   $$23 = 65;$233 = 0;
+  } else {
+   $41 = $25;$73 = 1;
+   label = 9;
+  }
+ }
+ L13: do {
+  if ((label|0) == 9) {
+   $27 = ($$1288|0)==(0);
+   if ($27) {
+    $28 = HEAP32[$$pre>>2]|0;
+    $29 = ($28|0)==(0);
+    if ($29) {
+     $30 = HEAP32[$4>>2]|0;
+     $31 = $30 & 4096;
+     $32 = ($31|0)==(0);
+     if ($32) {
+      $$not = $24 ^ 1;
+      $54 = $30 & 18;
+      $55 = ($54|0)==(0);
+      $or$cond = $55 | $$not;
+      if ($or$cond) {
+       $71 = $30 & 2;
+       $72 = ($71|0)==(0);
+       $or$cond364 = $73 & $72;
+       if (!($or$cond364)) {
+        $$23 = 70;$233 = $41;
+        break;
+       }
+       $74 = (__gcry_sexp_nth_mpi($41,1,5)|0);
+       HEAP32[$1>>2] = $74;
+       $75 = ($74|0)==(0|0);
+       $spec$select365 = $75 ? 65 : 0;
+       $$23 = $spec$select365;$233 = $41;
+       break;
+      }
+      $56 = (__gcry_sexp_length($23)|0);
+      $57 = ($56|0)==(3);
+      if (!($57)) {
+       $$23 = 65;$233 = $41;
+       break;
+      }
+      $58 = (__gcry_sexp_nth_data($23,1,$3)|0);
+      $59 = ($58|0)!=(0|0);
+      $60 = HEAP32[$3>>2]|0;
+      $61 = ($60|0)!=(0);
+      $or$cond4 = $59 & $61;
+      if (!($or$cond4)) {
+       $$23 = 65;$233 = $41;
+       break;
+      }
+      $62 = (_get_hash_algo($58,$60)|0);
+      $63 = ((($2)) + 16|0);
+      HEAP32[$63>>2] = $62;
+      $64 = ($62|0)==(0);
+      do {
+       if ($64) {
+        $$4 = 5;
+       } else {
+        $65 = (__gcry_sexp_nth_buffer($23,2,$6)|0);
+        $66 = ($65|0)==(0|0);
+        if ($66) {
+         $$4 = 65;
+        } else {
+         $67 = HEAP32[$6>>2]|0;
+         $68 = $67 << 3;
+         $69 = ($68>>>0)<($67>>>0);
+         if ($69) {
+          __gcry_free($65);
+          $$4 = 67;
+          break;
+         } else {
+          $70 = (__gcry_mpi_set_opaque(0,$65,$68)|0);
+          HEAP32[$1>>2] = $70;
+          $$4 = 0;
+          break;
+         }
+        }
+       }
+      } while(0);
+      $$23 = $$4;$233 = $41;
+      break;
+     }
+     do {
+      if ($73) {
+       $33 = (__gcry_sexp_find_token($12,59613,0)|0);
+       $34 = ($33|0)==(0|0);
+       if ($34) {
+        $$3 = 65;
+       } else {
+        $35 = (__gcry_sexp_nth_data($33,1,$3)|0);
+        $36 = ($35|0)==(0|0);
+        if ($36) {
+         $$0285$ph = 68;
+        } else {
+         $37 = HEAP32[$3>>2]|0;
+         $38 = (_get_hash_algo($35,$37)|0);
+         $39 = ((($2)) + 16|0);
+         HEAP32[$39>>2] = $38;
+         $40 = ($38|0)==(0);
+         if ($40) {
+          $$0285$ph = 5;
+         } else {
+          __gcry_sexp_release($33);
+          $42 = (__gcry_sexp_nth_buffer($41,1,$5)|0);
+          $43 = ($42|0)==(0|0);
+          if ($43) {
+           HEAP32[$5>>2] = 0;
+           $44 = (__gcry_malloc(1)|0);
+           $45 = ($44|0)==(0|0);
+           if ($45) {
+            $49 = (_gpg_err_code_from_syserror()|0);
+            $50 = ($49|0)==(0);
+            if ($50) {
+             $$0299312 = 0;
+            } else {
+             $$3 = $49;
+             break;
+            }
+           } else {
+            $$0299312 = $44;
+           }
+          } else {
+           $46 = HEAP32[$5>>2]|0;
+           $47 = $46 << 3;
+           $48 = ($47>>>0)<($46>>>0);
+           if ($48) {
+            __gcry_free($42);
+            $$3 = 67;
+            break;
+           } else {
+            $$0299312 = $42;
+           }
+          }
+          $51 = HEAP32[$5>>2]|0;
+          $52 = $51 << 3;
+          $53 = (__gcry_mpi_set_opaque(0,$$0299312,$52)|0);
+          HEAP32[$1>>2] = $53;
+          $$3 = 0;
+          break;
+         }
+        }
+        __gcry_sexp_release($33);
+        $$3 = $$0285$ph;
+       }
+      } else {
+       $$3 = 65;
+      }
+     } while(0);
+     $$23 = $$3;$233 = $41;
+     break;
+    }
+    $76 = ($28|0)==(1);
+    $or$cond8 = $73 & $76;
+    if ($or$cond8) {
+     $77 = HEAP32[$2>>2]|0;
+     $78 = ($77|0)==(0);
+     if ($78) {
+      $79 = (__gcry_sexp_nth_data($41,1,$7)|0);
+      $80 = ($79|0)!=(0|0);
+      $81 = HEAP32[$7>>2]|0;
+      $82 = ($81|0)!=(0);
+      $or$cond10 = $80 & $82;
+      L52: do {
+       if ($or$cond10) {
+        $83 = (__gcry_sexp_find_token($12,59629,0)|0);
+        $84 = ($83|0)==(0|0);
+        L54: do {
+         if ($84) {
+          $$1290 = 0;$$1292 = 0;
+         } else {
+          $85 = (__gcry_sexp_nth_data($83,1,$3)|0);
+          $86 = ($85|0)==(0|0);
+          if ($86) {
+           __gcry_sexp_release($83);
+           $$7 = 68;
+           break L52;
+          }
+          $87 = HEAP32[$3>>2]|0;
+          $88 = ($87|0)==(0);
+          do {
+           if ($88) {
+            $$0289$ph = 0;$$0291$ph = 0;
+           } else {
+            $89 = (__gcry_malloc($87)|0);
+            $90 = ($89|0)==(0|0);
+            if ($90) {
+             $92 = (_gpg_err_code_from_syserror()|0);
+             __gcry_sexp_release($83);
+             $93 = ($92|0)==(0);
+             if ($93) {
+              $$1290 = 0;$$1292 = 0;
+              break L54;
+             } else {
+              $$7 = $92;
+              break L52;
+             }
+            } else {
+             $91 = HEAP32[$3>>2]|0;
+             _memcpy(($89|0),($85|0),($91|0))|0;
+             $$0289$ph = $91;$$0291$ph = $89;
+             break;
+            }
+           }
+          } while(0);
+          __gcry_sexp_release($83);
+          $$1290 = $$0289$ph;$$1292 = $$0291$ph;
+         }
+        } while(0);
+        $94 = ((($2)) + 4|0);
+        $95 = HEAP32[$94>>2]|0;
+        $96 = HEAP32[$7>>2]|0;
+        $97 = 
(__gcry_rsa_pkcs1_encode_for_enc($1,$95,$79,$96,$$1292,$$1290)|0);
+        __gcry_free($$1292);
+        $$7 = $97;
+       } else {
+        $$7 = 65;
+       }
+      } while(0);
+      $$23 = $$7;$233 = $41;
+      break;
+     } else {
+      $98 = 1;
+     }
+    } else {
+     $98 = $76;
+    }
+    $or$cond12 = $24 & $98;
+    if ($or$cond12) {
+     $99 = HEAP32[$2>>2]|0;
+     $100 = $99 & -2;
+     $switch = ($100|0)==(2);
+     if ($switch) {
+      $101 = (__gcry_sexp_length($23)|0);
+      $102 = ($101|0)==(3);
+      if (!($102)) {
+       $$23 = 65;$233 = $41;
+       break;
+      }
+      $103 = (__gcry_sexp_nth_data($23,1,$3)|0);
+      $104 = ($103|0)!=(0|0);
+      $105 = HEAP32[$3>>2]|0;
+      $106 = ($105|0)!=(0);
+      $or$cond14 = $104 & $106;
+      if (!($or$cond14)) {
+       $$23 = 65;$233 = $41;
+       break;
+      }
+      $107 = (_get_hash_algo($103,$105)|0);
+      $108 = ((($2)) + 16|0);
+      HEAP32[$108>>2] = $107;
+      $109 = ($107|0)==(0);
+      if ($109) {
+       $$8 = 5;
+      } else {
+       $110 = (__gcry_sexp_nth_data($23,2,$8)|0);
+       $111 = ($110|0)!=(0|0);
+       $112 = HEAP32[$8>>2]|0;
+       $113 = ($112|0)!=(0);
+       $or$cond16 = $111 & $113;
+       if ($or$cond16) {
+        $114 = ((($2)) + 4|0);
+        $115 = HEAP32[$114>>2]|0;
+        $116 = HEAP32[$108>>2]|0;
+        $117 = (__gcry_rsa_pkcs1_encode_for_sig($1,$115,$110,$112,$116)|0);
+        $$8 = $117;
+       } else {
+        $$8 = 65;
+       }
+      }
+      $$23 = $$8;$233 = $41;
+      break;
+     }
+    }
+    $118 = ($28|0)==(2);
+    $or$cond18 = $73 & $118;
+    if ($or$cond18) {
+     $119 = HEAP32[$2>>2]|0;
+     $120 = $119 & -2;
+     $switch308 = ($120|0)==(2);
+     if (!($switch308)) {
+      $$23 = 70;$233 = $41;
+      break;
+     }
+     $121 = (__gcry_sexp_length($41)|0);
+     $122 = ($121|0)==(2);
+     if ($122) {
+      $123 = (__gcry_sexp_nth_data($41,1,$9)|0);
+      $124 = ($123|0)!=(0|0);
+      $125 = HEAP32[$9>>2]|0;
+      $126 = ($125|0)!=(0);
+      $or$cond20 = $124 & $126;
+      if ($or$cond20) {
+       $127 = ((($2)) + 4|0);
+       $128 = HEAP32[$127>>2]|0;
+       $129 = (__gcry_rsa_pkcs1_encode_raw_for_sig($1,$128,$123,$125)|0);
+       $$9 = $129;
+      } else {
+       $$9 = 65;
+      }
+     } else {
+      $$9 = 65;
+     }
+     $$23 = $$9;$233 = $41;
+     break;
+    }
+    $130 = ($28|0)==(3);
+    $or$cond22 = $73 & $130;
+    if (!($or$cond22)) {
+     $179 = ($28|0)==(4);
+     $or$cond26 = $24 & $179;
+     if (!($or$cond26)) {
+      $$23 = 70;$233 = $41;
+      break;
+     }
+     $180 = HEAP32[$2>>2]|0;
+     switch ($180|0) {
+     case 2:  {
+      break;
+     }
+     case 3:  {
+      $219 = (__gcry_sexp_length($23)|0);
+      $220 = ($219|0)==(3);
+      if (!($220)) {
+       $$23 = 65;$233 = $41;
+       break L13;
+      }
+      $221 = (__gcry_sexp_nth_data($23,1,$3)|0);
+      $222 = ($221|0)!=(0|0);
+      $223 = HEAP32[$3>>2]|0;
+      $224 = ($223|0)!=(0);
+      $or$cond34 = $222 & $224;
+      if (!($or$cond34)) {
+       $$23 = 65;$233 = $41;
+       break L13;
+      }
+      $225 = (_get_hash_algo($221,$223)|0);
+      $226 = ((($2)) + 16|0);
+      HEAP32[$226>>2] = $225;
+      $227 = ($225|0)==(0);
+      if ($227) {
+       $$23 = 5;$233 = $41;
+       break L13;
+      }
+      $228 = (__gcry_sexp_nth_mpi($23,2,5)|0);
+      HEAP32[$1>>2] = $228;
+      $229 = ($228|0)==(0|0);
+      $230 = ((($2)) + 32|0);
+      HEAP32[$230>>2] = 71;
+      $231 = HEAP32[$1>>2]|0;
+      $232 = ((($2)) + 36|0);
+      HEAP32[$232>>2] = $231;
+      $spec$select366 = $229 ? 65 : 0;
+      $$23 = $spec$select366;$233 = $41;
+      break L13;
+      break;
+     }
+     default: {
+      $$23 = 70;$233 = $41;
+      break L13;
+     }
+     }
+     $181 = (__gcry_sexp_length($23)|0);
+     $182 = ($181|0)==(3);
+     if (!($182)) {
+      $$23 = 65;$233 = $41;
+      break;
+     }
+     $183 = (__gcry_sexp_nth_data($23,1,$3)|0);
+     $184 = ($183|0)!=(0|0);
+     $185 = HEAP32[$3>>2]|0;
+     $186 = ($185|0)!=(0);
+     $or$cond28 = $184 & $186;
+     if (!($or$cond28)) {
+      $$23 = 65;$233 = $41;
+      break;
+     }
+     $187 = (_get_hash_algo($183,$185)|0);
+     $188 = ((($2)) + 16|0);
+     HEAP32[$188>>2] = $187;
+     $189 = ($187|0)==(0);
+     L97: do {
+      if ($189) {
+       $$21 = 5;
+      } else {
+       $190 = (__gcry_sexp_nth_data($23,2,$11)|0);
+       $191 = ($190|0)!=(0|0);
+       $192 = HEAP32[$11>>2]|0;
+       $193 = ($192|0)!=(0);
+       $or$cond30 = $191 & $193;
+       if ($or$cond30) {
+        $194 = (__gcry_sexp_find_token($12,59729,0)|0);
+        $195 = ($194|0)==(0|0);
+        if (!($195)) {
+         $196 = (__gcry_sexp_nth_data($194,1,$3)|0);
+         $197 = ($196|0)==(0|0);
+         if ($197) {
+          $$21 = 68;
+          break;
+         }
+         $198 = (_strtoul($196,0,10)|0);
+         $199 = ((($2)) + 28|0);
+         HEAP32[$199>>2] = $198;
+         __gcry_sexp_release($194);
+        }
+        $200 = (__gcry_sexp_find_token($12,59629,0)|0);
+        $201 = ($200|0)==(0|0);
+        L104: do {
+         if ($201) {
+          $$1 = 0;$$1279 = 0;
+         } else {
+          $202 = (__gcry_sexp_nth_data($200,1,$3)|0);
+          $203 = ($202|0)==(0|0);
+          if ($203) {
+           __gcry_sexp_release($200);
+           $$21 = 68;
+           break L97;
+          }
+          $204 = HEAP32[$3>>2]|0;
+          $205 = ($204|0)==(0);
+          do {
+           if ($205) {
+            $$0$ph = 0;$$0278$ph = 0;
+           } else {
+            $206 = (__gcry_malloc($204)|0);
+            $207 = ($206|0)==(0|0);
+            if ($207) {
+             $209 = (_gpg_err_code_from_syserror()|0);
+             __gcry_sexp_release($200);
+             $210 = ($209|0)==(0);
+             if ($210) {
+              $$1 = 0;$$1279 = 0;
+              break L104;
+             } else {
+              $$21 = $209;
+              break L97;
+             }
+            } else {
+             $208 = HEAP32[$3>>2]|0;
+             _memcpy(($206|0),($202|0),($208|0))|0;
+             $$0$ph = $208;$$0278$ph = $206;
+             break;
+            }
+           }
+          } while(0);
+          __gcry_sexp_release($200);
+          $$1 = $$0$ph;$$1279 = $$0278$ph;
+         }
+        } while(0);
+        $211 = ((($2)) + 4|0);
+        $212 = HEAP32[$211>>2]|0;
+        $213 = (($212) + -1)|0;
+        $214 = HEAP32[$188>>2]|0;
+        $215 = HEAP32[$11>>2]|0;
+        $216 = ((($2)) + 28|0);
+        $217 = HEAP32[$216>>2]|0;
+        $218 = 
(__gcry_rsa_pss_encode($1,$213,$214,$190,$215,$217,$$1279,$$1)|0);
+        __gcry_free($$1279);
+        $$21 = $218;
+       } else {
+        $$21 = 65;
+       }
+      }
+     } while(0);
+     $$23 = $$21;$233 = $41;
+     break;
+    }
+    $131 = HEAP32[$2>>2]|0;
+    $132 = ($131|0)==(0);
+    if ($132) {
+     $133 = (__gcry_sexp_nth_data($41,1,$10)|0);
+     $134 = ($133|0)!=(0|0);
+     $135 = HEAP32[$10>>2]|0;
+     $136 = ($135|0)!=(0);
+     $or$cond24 = $134 & $136;
+     L119: do {
+      if ($or$cond24) {
+       $137 = (__gcry_sexp_find_token($12,59613,0)|0);
+       $138 = ($137|0)==(0|0);
+       do {
+        if (!($138)) {
+         $139 = (__gcry_sexp_nth_data($137,1,$3)|0);
+         $140 = ($139|0)==(0|0);
+         if ($140) {
+          $$10$ph = 68;
+         } else {
+          $141 = HEAP32[$3>>2]|0;
+          $142 = (_get_hash_algo($139,$141)|0);
+          $143 = ((($2)) + 16|0);
+          HEAP32[$143>>2] = $142;
+          $144 = ($142|0)==(0);
+          if ($144) {
+           $$10$ph = 5;
+          } else {
+           __gcry_sexp_release($137);
+           break;
+          }
+         }
+         __gcry_sexp_release($137);
+         $$17 = $$10$ph;
+         break L119;
+        }
+       } while(0);
+       $145 = (__gcry_sexp_find_token($12,59623,0)|0);
+       $146 = ($145|0)==(0|0);
+       L128: do {
+        if (!($146)) {
+         $147 = (__gcry_sexp_nth_data($145,1,$3)|0);
+         $148 = ($147|0)==(0|0);
+         if ($148) {
+          __gcry_sexp_release($145);
+          $$17 = 68;
+          break L119;
+         }
+         $149 = HEAP32[$3>>2]|0;
+         $150 = ($149|0)==(0);
+         do {
+          if (!($150)) {
+           $151 = (__gcry_malloc($149)|0);
+           $152 = ((($2)) + 20|0);
+           HEAP32[$152>>2] = $151;
+           $153 = ($151|0)==(0|0);
+           if ($153) {
+            $156 = (_gpg_err_code_from_syserror()|0);
+            __gcry_sexp_release($145);
+            $157 = ($156|0)==(0);
+            if ($157) {
+             break L128;
+            } else {
+             $$17 = $156;
+             break L119;
+            }
+           } else {
+            $154 = HEAP32[$3>>2]|0;
+            _memcpy(($151|0),($147|0),($154|0))|0;
+            $155 = ((($2)) + 24|0);
+            HEAP32[$155>>2] = $154;
+            break;
+           }
+          }
+         } while(0);
+         __gcry_sexp_release($145);
+        }
+       } while(0);
+       $158 = (__gcry_sexp_find_token($12,59629,0)|0);
+       $159 = ($158|0)==(0|0);
+       L140: do {
+        if ($159) {
+         $$1282 = 0;$$1284 = 0;
+        } else {
+         $160 = (__gcry_sexp_nth_data($158,1,$3)|0);
+         $161 = ($160|0)==(0|0);
+         if ($161) {
+          __gcry_sexp_release($158);
+          $$17 = 68;
+          break L119;
+         }
+         $162 = HEAP32[$3>>2]|0;
+         $163 = ($162|0)==(0);
+         do {
+          if ($163) {
+           $$0281$ph = 0;$$0283$ph = 0;
+          } else {
+           $164 = (__gcry_malloc($162)|0);
+           $165 = ($164|0)==(0|0);
+           if ($165) {
+            $167 = (_gpg_err_code_from_syserror()|0);
+            __gcry_sexp_release($158);
+            $168 = ($167|0)==(0);
+            if ($168) {
+             $$1282 = 0;$$1284 = 0;
+             break L140;
+            } else {
+             $$17 = $167;
+             break L119;
+            }
+           } else {
+            $166 = HEAP32[$3>>2]|0;
+            _memcpy(($164|0),($160|0),($166|0))|0;
+            $$0281$ph = $166;$$0283$ph = $164;
+            break;
+           }
+          }
+         } while(0);
+         __gcry_sexp_release($158);
+         $$1282 = $$0281$ph;$$1284 = $$0283$ph;
+        }
+       } while(0);
+       $169 = ((($2)) + 4|0);
+       $170 = HEAP32[$169>>2]|0;
+       $171 = ((($2)) + 16|0);
+       $172 = HEAP32[$171>>2]|0;
+       $173 = HEAP32[$10>>2]|0;
+       $174 = ((($2)) + 20|0);
+       $175 = HEAP32[$174>>2]|0;
+       $176 = ((($2)) + 24|0);
+       $177 = HEAP32[$176>>2]|0;
+       $178 = 
(__gcry_rsa_oaep_encode($1,$170,$172,$133,$173,$175,$177,$$1284,$$1282)|0);
+       __gcry_free($$1284);
+       $$17 = $178;
+      } else {
+       $$17 = 65;
+      }
+     } while(0);
+     $$23 = $$17;$233 = $41;
+    } else {
+     $$23 = 70;$233 = $41;
+    }
+   } else {
+    $$23 = 72;$233 = $41;
+   }
+  }
+ } while(0);
+ __gcry_sexp_release($12);
+ __gcry_sexp_release($23);
+ __gcry_sexp_release($233);
+ $234 = ($$23|0)==(0);
+ if ($234) {
+  $235 = HEAP32[$4>>2]|0;
+  $236 = ((($2)) + 12|0);
+  HEAP32[$236>>2] = $235;
+  $$0280 = 0;
+  STACKTOP = sp;return ($$0280|0);
+ } else {
+  $237 = ((($2)) + 20|0);
+  $238 = HEAP32[$237>>2]|0;
+  __gcry_free($238);
+  HEAP32[$237>>2] = 0;
+  $$0280 = $$23;
+  STACKTOP = sp;return ($$0280|0);
+ }
+ return (0)|0;
+}
+function _pss_verify_cmp($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, 
$9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 36|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = ((($0)) + 4|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = (($5) + -1)|0;
+ $7 = ((($0)) + 16|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ((($0)) + 28|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = (__gcry_rsa_pss_verify($3,$1,$6,$8,$10)|0);
+ return ($11|0);
+}
+function __gcry_pk_algo_name($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$0$i$i = 0, $$0$i$ph = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 
0, $6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ switch ($0|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 = $0;
+ }
+ }
+ $1 = HEAP32[10027]|0;
+ $2 = ($$0$i$i|0)==($1|0);
+ if ($2) {
+  $$0$i$ph = 40108;
+ } else {
+  $3 = HEAP32[9887]|0;
+  $4 = ($$0$i$i|0)==($3|0);
+  if ($4) {
+   $$0$i$ph = 39548;
+  } else {
+   $$0 = 59741;
+   return ($$0|0);
+  }
+ }
+ $5 = ((($$0$i$ph)) + 12|0);
+ $6 = HEAP32[$5>>2]|0;
+ $$0 = $6;
+ return ($$0|0);
+}
+function __gcry_pk_encrypt($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 
0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $3 = sp + 4|0;
+ $4 = sp;
+ HEAP32[$0>>2] = 0;
+ $5 = (_spec_from_sexp($2,0,$3,$4)|0);
+ $6 = ($5|0)==(0);
+ if ($6) {
+  $7 = HEAP32[$3>>2]|0;
+  $8 = ((($7)) + 48|0);
+  $9 = HEAP32[$8>>2]|0;
+  $10 = ($9|0)==(0|0);
+  if ($10) {
+   $$0 = 69;
+  } else {
+   $11 = HEAP32[$4>>2]|0;
+   $12 = (FUNCTION_TABLE_iiii[$9 & 127]($0,$1,$11)|0);
+   $$0 = $12;
+  }
+ } else {
+  $$0 = $5;
+ }
+ $13 = HEAP32[$4>>2]|0;
+ __gcry_sexp_release($13);
+ STACKTOP = sp;return ($$0|0);
+}
+function _spec_from_sexp($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$016$i$ph = 0, $$019$1$i = 0, $$019$i = 0, $$032 = 0, $10 = 0, 
$11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 
0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $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, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 
= 0, $9 = 0, $or$cond = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ HEAP32[$2>>2] = 0;
+ $4 = ($3|0)!=(0|0);
+ if ($4) {
+  HEAP32[$3>>2] = 0;
+ }
+ $5 = ($1|0)!=(0);
+ $6 = $5 ? 59743 : 59755;
+ $7 = (__gcry_sexp_find_token($0,$6,0)|0);
+ $8 = ($7|0)!=(0|0);
+ $or$cond = $5 | $8;
+ if ($or$cond) {
+  $$032 = $7;
+ } else {
+  $9 = (__gcry_sexp_find_token($0,59743,0)|0);
+  $$032 = $9;
+ }
+ $10 = ($$032|0)==(0|0);
+ if ($10) {
+  $$0 = 65;
+  return ($$0|0);
+ }
+ $11 = (__gcry_sexp_cadr($$032)|0);
+ __gcry_sexp_release($$032);
+ $12 = (__gcry_sexp_nth_string($11,0)|0);
+ $13 = ($12|0)==(0|0);
+ if ($13) {
+  __gcry_sexp_release($11);
+  $$0 = 65;
+  return ($$0|0);
+ }
+ $14 = HEAP32[(40120)>>2]|0;
+ $15 = (_strcasecmp($12,$14)|0);
+ $16 = ($15|0)==(0);
+ L14: do {
+  if ($16) {
+   $$016$i$ph = 40108;
+  } else {
+   $17 = HEAP32[(40124)>>2]|0;
+   $18 = HEAP32[$17>>2]|0;
+   $19 = ($18|0)==(0|0);
+   if (!($19)) {
+    $$019$i = $17;$23 = $18;
+    while(1) {
+     $24 = (_strcasecmp($12,$23)|0);
+     $25 = ($24|0)==(0);
+     $21 = ((($$019$i)) + 4|0);
+     if ($25) {
+      $$016$i$ph = 40108;
+      break L14;
+     }
+     $20 = HEAP32[$21>>2]|0;
+     $22 = ($20|0)==(0|0);
+     if ($22) {
+      break;
+     } else {
+      $$019$i = $21;$23 = $20;
+     }
+    }
+   }
+   $26 = HEAP32[(39560)>>2]|0;
+   $27 = (_strcasecmp($12,$26)|0);
+   $28 = ($27|0)==(0);
+   if ($28) {
+    $$016$i$ph = 39548;
+   } else {
+    $29 = HEAP32[(39564)>>2]|0;
+    $30 = HEAP32[$29>>2]|0;
+    $31 = ($30|0)==(0|0);
+    if (!($31)) {
+     $$019$1$i = $29;$32 = $30;
+     while(1) {
+      $33 = (_strcasecmp($12,$32)|0);
+      $34 = ($33|0)==(0);
+      $35 = ((($$019$1$i)) + 4|0);
+      if ($34) {
+       $$016$i$ph = 39548;
+       break L14;
+      }
+      $36 = HEAP32[$35>>2]|0;
+      $37 = ($36|0)==(0|0);
+      if ($37) {
+       break;
+      } else {
+       $$019$1$i = $35;$32 = $36;
+      }
+     }
+    }
+    __gcry_free($12);
+    __gcry_sexp_release($11);
+    $$0 = 4;
+    return ($$0|0);
+   }
+  }
+ } while(0);
+ __gcry_free($12);
+ HEAP32[$2>>2] = $$016$i$ph;
+ if ($4) {
+  HEAP32[$3>>2] = $11;
+  $$0 = 0;
+  return ($$0|0);
+ } else {
+  __gcry_sexp_release($11);
+  $$0 = 0;
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function __gcry_pk_decrypt($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 
0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $3 = sp + 4|0;
+ $4 = sp;
+ HEAP32[$0>>2] = 0;
+ $5 = (_spec_from_sexp($2,1,$3,$4)|0);
+ $6 = ($5|0)==(0);
+ if ($6) {
+  $7 = HEAP32[$3>>2]|0;
+  $8 = ((($7)) + 52|0);
+  $9 = HEAP32[$8>>2]|0;
+  $10 = ($9|0)==(0|0);
+  if ($10) {
+   $$0 = 69;
+  } else {
+   $11 = HEAP32[$4>>2]|0;
+   $12 = (FUNCTION_TABLE_iiii[$9 & 127]($0,$1,$11)|0);
+   $$0 = $12;
+  }
+ } else {
+  $$0 = $5;
+ }
+ $13 = HEAP32[$4>>2]|0;
+ __gcry_sexp_release($13);
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_pk_sign($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 
0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $3 = sp + 4|0;
+ $4 = sp;
+ HEAP32[$0>>2] = 0;
+ $5 = (_spec_from_sexp($2,1,$3,$4)|0);
+ $6 = ($5|0)==(0);
+ if ($6) {
+  $7 = HEAP32[$3>>2]|0;
+  $8 = ((($7)) + 56|0);
+  $9 = HEAP32[$8>>2]|0;
+  $10 = ($9|0)==(0|0);
+  if ($10) {
+   $$0 = 69;
+  } else {
+   $11 = HEAP32[$4>>2]|0;
+   $12 = (FUNCTION_TABLE_iiii[$9 & 127]($0,$1,$11)|0);
+   $$0 = $12;
+  }
+ } else {
+  $$0 = $5;
+ }
+ $13 = HEAP32[$4>>2]|0;
+ __gcry_sexp_release($13);
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_pk_verify($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 
0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $3 = sp + 4|0;
+ $4 = sp;
+ $5 = (_spec_from_sexp($2,0,$3,$4)|0);
+ $6 = ($5|0)==(0);
+ if ($6) {
+  $7 = HEAP32[$3>>2]|0;
+  $8 = ((($7)) + 60|0);
+  $9 = HEAP32[$8>>2]|0;
+  $10 = ($9|0)==(0|0);
+  if ($10) {
+   $$0 = 69;
+  } else {
+   $11 = HEAP32[$4>>2]|0;
+   $12 = (FUNCTION_TABLE_iiii[$9 & 127]($0,$1,$11)|0);
+   $$0 = $12;
+  }
+ } else {
+  $$0 = $5;
+ }
+ $13 = HEAP32[$4>>2]|0;
+ __gcry_sexp_release($13);
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_pk_testkey($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 
0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = sp + 4|0;
+ $2 = sp;
+ $3 = (_spec_from_sexp($0,1,$1,$2)|0);
+ $4 = ($3|0)==(0);
+ if ($4) {
+  $5 = HEAP32[$1>>2]|0;
+  $6 = ((($5)) + 44|0);
+  $7 = HEAP32[$6>>2]|0;
+  $8 = ($7|0)==(0|0);
+  if ($8) {
+   $$0 = 69;
+  } else {
+   $9 = HEAP32[$2>>2]|0;
+   $10 = (FUNCTION_TABLE_ii[$7 & 63]($9)|0);
+   $$0 = $10;
+  }
+ } else {
+  $$0 = $3;
+ }
+ $11 = HEAP32[$2>>2]|0;
+ __gcry_sexp_release($11);
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_pk_genkey($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $$016$i$ph = 0, $$019$1$i = 0, $$019$i = 0, $$030 = 0, $10 = 0, 
$11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 
0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
+ var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, 
$31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 
= 0, $9 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ HEAP32[$0>>2] = 0;
+ $2 = (__gcry_sexp_find_token($1,59766,0)|0);
+ $3 = ($2|0)==(0|0);
+ L1: do {
+  if ($3) {
+   $$0 = 65;$$030 = 0;
+  } else {
+   $4 = (__gcry_sexp_cadr($2)|0);
+   __gcry_sexp_release($2);
+   $5 = ($4|0)==(0|0);
+   if ($5) {
+    $$0 = 68;$$030 = 0;
+   } else {
+    $6 = (__gcry_sexp_nth_string($4,0)|0);
+    $7 = ($6|0)==(0|0);
+    if ($7) {
+     $$0 = 65;$$030 = $4;
+    } else {
+     $8 = HEAP32[(40120)>>2]|0;
+     $9 = (_strcasecmp($6,$8)|0);
+     $10 = ($9|0)==(0);
+     L5: do {
+      if ($10) {
+       $$016$i$ph = 40108;
+      } else {
+       $11 = HEAP32[(40124)>>2]|0;
+       $12 = HEAP32[$11>>2]|0;
+       $13 = ($12|0)==(0|0);
+       if (!($13)) {
+        $$019$i = $11;$17 = $12;
+        while(1) {
+         $18 = (_strcasecmp($6,$17)|0);
+         $19 = ($18|0)==(0);
+         $15 = ((($$019$i)) + 4|0);
+         if ($19) {
+          $$016$i$ph = 40108;
+          break L5;
+         }
+         $14 = HEAP32[$15>>2]|0;
+         $16 = ($14|0)==(0|0);
+         if ($16) {
+          break;
+         } else {
+          $$019$i = $15;$17 = $14;
+         }
+        }
+       }
+       $20 = HEAP32[(39560)>>2]|0;
+       $21 = (_strcasecmp($6,$20)|0);
+       $22 = ($21|0)==(0);
+       if ($22) {
+        $$016$i$ph = 39548;
+       } else {
+        $23 = HEAP32[(39564)>>2]|0;
+        $24 = HEAP32[$23>>2]|0;
+        $25 = ($24|0)==(0|0);
+        if (!($25)) {
+         $$019$1$i = $23;$26 = $24;
+         while(1) {
+          $27 = (_strcasecmp($6,$26)|0);
+          $28 = ($27|0)==(0);
+          $29 = ((($$019$1$i)) + 4|0);
+          if ($28) {
+           $$016$i$ph = 39548;
+           break L5;
+          }
+          $30 = HEAP32[$29>>2]|0;
+          $31 = ($30|0)==(0|0);
+          if ($31) {
+           break;
+          } else {
+           $$019$1$i = $29;$26 = $30;
+          }
+         }
+        }
+        __gcry_free($6);
+        $$0 = 4;$$030 = $4;
+        break L1;
+       }
+      }
+     } while(0);
+     __gcry_free($6);
+     $32 = ((($$016$i$ph)) + 40|0);
+     $33 = HEAP32[$32>>2]|0;
+     $34 = ($33|0)==(0|0);
+     if ($34) {
+      $$0 = 69;$$030 = $4;
+     } else {
+      $35 = (FUNCTION_TABLE_iii[$33 & 127]($4,$0)|0);
+      $$0 = $35;$$030 = $4;
+     }
+    }
+   }
+  }
+ } while(0);
+ __gcry_sexp_release($$030);
+ __gcry_free(0);
+ __gcry_sexp_release(0);
+ return ($$0|0);
+}
+function __gcry_pk_init() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return 0;
+}
+function __gcry_pk_selftest($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0$i18$ph = 0, $$0$i1822 = 0, $$0$i20 = 0, $10 = 0, $11 = 0, $12 = 0, 
$13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 
0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
+ var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ switch ($0|0) {
+ case 3: case 2:  {
+  $$0$i20 = 1;
+  break;
+ }
+ case 16:  {
+  $$0$i20 = 20;
+  break;
+ }
+ case 301:  {
+  $$0$i20 = 18;
+  break;
+ }
+ case 302:  {
+  $$0$i20 = 18;
+  break;
+ }
+ default: {
+  $$0$i20 = $0;
+ }
+ }
+ $3 = HEAP32[10027]|0;
+ $4 = ($$0$i20|0)==($3|0);
+ if ($4) {
+  $$0$i18$ph = 40108;
+  label = 8;
+ } else {
+  $5 = HEAP32[9887]|0;
+  $6 = ($$0$i20|0)==($5|0);
+  if ($6) {
+   $$0$i18$ph = 39548;
+   label = 8;
+  } else {
+   $$0$i1822 = 0;$20 = 0;
+  }
+ }
+ if ((label|0) == 8) {
+  $7 = ((($$0$i18$ph)) + 4|0);
+  $8 = HEAP8[$7>>0]|0;
+  $9 = $8 & 1;
+  $10 = ($9<<24>>24)==(0);
+  if ($10) {
+   $11 = ((($$0$i18$ph)) + 68|0);
+   $12 = HEAP32[$11>>2]|0;
+   $13 = ($12|0)==(0|0);
+   if ($13) {
+    $$0$i1822 = $$0$i18$ph;$20 = 1;
+   } else {
+    $22 = (FUNCTION_TABLE_iiii[$12 & 127]($$0$i20,$1,$2)|0);
+    $23 = ($22|0)==(0);
+    $24 = $22 & 65535;
+    $25 = $24 | 16777216;
+    $spec$select = $23 ? 0 : $25;
+    return ($spec$select|0);
+   }
+  } else {
+   $$0$i1822 = $$0$i18$ph;$20 = 1;
+  }
+ }
+ $14 = ($2|0)==(0|0);
+ if ($14) {
+  return 16777220;
+ }
+ if ($20) {
+  $15 = ((($$0$i1822)) + 4|0);
+  $16 = HEAP8[$15>>0]|0;
+  $17 = $16 & 1;
+  $18 = ($17<<24>>24)==(0);
+  if ($18) {
+   $21 = 59812;
+  } else {
+   label = 13;
+  }
+ } else {
+  label = 13;
+ }
+ if ((label|0) == 13) {
+  $19 = $20 ? 59773 : 59792;
+  $21 = $19;
+ }
+ FUNCTION_TABLE_viiii[$2 & 63](61280,$$0$i20,59834,$21);
+ return 16777220;
+}
+function _rijndael_setkey($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (_do_setkey($0,$1,$2)|0);
+ return ($3|0);
+}
+function _rijndael_encrypt($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($0)) + 496|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ($4|0)==(0|0);
+ if (!($5)) {
+  FUNCTION_TABLE_v[$4 & 127]();
+ }
+ $6 = ((($0)) + 488|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = (FUNCTION_TABLE_iiii[$7 & 127]($0,$1,$2)|0);
+ return ($8|0);
+}
+function _rijndael_decrypt($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ _check_decryption_preparation($0);
+ $3 = ((($0)) + 500|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ($4|0)==(0|0);
+ if (!($5)) {
+  FUNCTION_TABLE_v[$4 & 127]();
+ }
+ $6 = ((($0)) + 492|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = (FUNCTION_TABLE_iiii[$7 & 127]($0,$1,$2)|0);
+ return ($8|0);
+}
+function _run_selftests($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$0$i = 0, $$0$i$ph$i = 0, $$0$i$ph$i10 = 0, $$0$i$ph$i14 = 0, 
$$011$i = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 
= 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
+ var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, 
$31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 
0, $4 = 0, $40 = 0, $41 = 0;
+ var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, 
$5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, 
$7 = 0, $8 = 0, $9 = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 1552|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(1552|0);
+ $3 = sp + 1040|0;
+ $4 = sp + 528|0;
+ $5 = sp + 16|0;
+ $6 = sp;
+ switch ($0|0) {
+ case 7:  {
+  (_do_setkey($5,4704,16)|0);
+  $7 = ((($5)) + 496|0);
+  $8 = HEAP32[$7>>2]|0;
+  $9 = ($8|0)==(0|0);
+  if (!($9)) {
+   FUNCTION_TABLE_v[$8 & 127]();
+  }
+  $10 = ((($5)) + 488|0);
+  $11 = HEAP32[$10>>2]|0;
+  (FUNCTION_TABLE_iiii[$11 & 127]($5,$6,4720)|0);
+  $12 = (_memcmp($6,4736,16)|0);
+  $13 = ($12|0)==(0);
+  if ($13) {
+   _check_decryption_preparation($5);
+   $14 = ((($5)) + 500|0);
+   $15 = HEAP32[$14>>2]|0;
+   $16 = ($15|0)==(0|0);
+   if (!($16)) {
+    FUNCTION_TABLE_v[$15 & 127]();
+   }
+   $17 = ((($5)) + 492|0);
+   $18 = HEAP32[$17>>2]|0;
+   (FUNCTION_TABLE_iiii[$18 & 127]($5,$6,$6)|0);
+   $19 = (_memcmp($6,4720,16)|0);
+   $20 = ($19|0)==(0);
+   if ($20) {
+    $21 = ($1|0)==(0);
+    if ($21) {
+     $$0 = 0;
+     STACKTOP = sp;return ($$0|0);
+    }
+    $22 = (_selftest_fips_128_38a(2)|0);
+    $23 = ($22|0)==(0|0);
+    if ($23) {
+     $24 = (_selftest_fips_128_38a(5)|0);
+     $25 = ($24|0)==(0|0);
+     if ($25) {
+      $$0 = 0;
+      STACKTOP = sp;return ($$0|0);
+     } else {
+      $$0$i = $24;$$011$i = 59913;
+     }
+    } else {
+     $$0$i = $22;$$011$i = 59909;
+    }
+   } else {
+    $$0$i$ph$i = 59845;
+    label = 8;
+   }
+  } else {
+   $$0$i$ph$i = 59877;
+   label = 8;
+  }
+  if ((label|0) == 8) {
+   $$0$i = $$0$i$ph$i;$$011$i = 59917;
+  }
+  $26 = ($2|0)==(0|0);
+  if ($26) {
+   $$0 = 50;
+   STACKTOP = sp;return ($$0|0);
+  }
+  FUNCTION_TABLE_viiii[$2 & 63](59927,7,$$011$i,$$0$i);
+  $$0 = 50;
+  STACKTOP = sp;return ($$0|0);
+  break;
+ }
+ case 8:  {
+  (_do_setkey($4,4752,24)|0);
+  $27 = ((($4)) + 496|0);
+  $28 = HEAP32[$27>>2]|0;
+  $29 = ($28|0)==(0|0);
+  if (!($29)) {
+   FUNCTION_TABLE_v[$28 & 127]();
+  }
+  $30 = ((($4)) + 488|0);
+  $31 = HEAP32[$30>>2]|0;
+  (FUNCTION_TABLE_iiii[$31 & 127]($4,$6,4784)|0);
+  $32 = (_memcmp($6,4800,16)|0);
+  $33 = ($32|0)==(0);
+  if ($33) {
+   _check_decryption_preparation($4);
+   $34 = ((($4)) + 500|0);
+   $35 = HEAP32[$34>>2]|0;
+   $36 = ($35|0)==(0|0);
+   if (!($36)) {
+    FUNCTION_TABLE_v[$35 & 127]();
+   }
+   $37 = ((($4)) + 492|0);
+   $38 = HEAP32[$37>>2]|0;
+   (FUNCTION_TABLE_iiii[$38 & 127]($4,$6,$6)|0);
+   $39 = (_memcmp($6,4784,16)|0);
+   $40 = ($39|0)==(0);
+   if ($40) {
+    $$0 = 0;
+    STACKTOP = sp;return ($$0|0);
+   } else {
+    $$0$i$ph$i10 = 59934;
+   }
+  } else {
+   $$0$i$ph$i10 = 59966;
+  }
+  $41 = ($2|0)==(0|0);
+  if ($41) {
+   $$0 = 50;
+   STACKTOP = sp;return ($$0|0);
+  }
+  FUNCTION_TABLE_viiii[$2 & 63](59927,8,59917,$$0$i$ph$i10);
+  $$0 = 50;
+  STACKTOP = sp;return ($$0|0);
+  break;
+ }
+ case 9:  {
+  (_do_setkey($3,4816,32)|0);
+  $42 = ((($3)) + 496|0);
+  $43 = HEAP32[$42>>2]|0;
+  $44 = ($43|0)==(0|0);
+  if (!($44)) {
+   FUNCTION_TABLE_v[$43 & 127]();
+  }
+  $45 = ((($3)) + 488|0);
+  $46 = HEAP32[$45>>2]|0;
+  (FUNCTION_TABLE_iiii[$46 & 127]($3,$6,4848)|0);
+  $47 = (_memcmp($6,4864,16)|0);
+  $48 = ($47|0)==(0);
+  if ($48) {
+   _check_decryption_preparation($3);
+   $49 = ((($3)) + 500|0);
+   $50 = HEAP32[$49>>2]|0;
+   $51 = ($50|0)==(0|0);
+   if (!($51)) {
+    FUNCTION_TABLE_v[$50 & 127]();
+   }
+   $52 = ((($3)) + 492|0);
+   $53 = HEAP32[$52>>2]|0;
+   (FUNCTION_TABLE_iiii[$53 & 127]($3,$6,$6)|0);
+   $54 = (_memcmp($6,4848,16)|0);
+   $55 = ($54|0)==(0);
+   if ($55) {
+    $$0 = 0;
+    STACKTOP = sp;return ($$0|0);
+   } else {
+    $$0$i$ph$i14 = 59998;
+   }
+  } else {
+   $$0$i$ph$i14 = 60030;
+  }
+  $56 = ($2|0)==(0|0);
+  if ($56) {
+   $$0 = 50;
+   STACKTOP = sp;return ($$0|0);
+  }
+  FUNCTION_TABLE_viiii[$2 & 63](59927,9,59917,$$0$i$ph$i14);
+  $$0 = 50;
+  STACKTOP = sp;return ($$0|0);
+  break;
+ }
+ default: {
+  $$0 = 12;
+  STACKTOP = sp;return ($$0|0);
+ }
+ }
+ return (0)|0;
+}
+function _do_setkey($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$0$i$i$ph = 0, $$0$i12$i$ph = 0, $$0$i9$i$ph = 0, $$0138 = 0, 
$$0144227 = 0, $$0146 = 0, $$0147213 = 0, $$0148225 = 0, $$0152224 = 0, 
$$0157226 = 0, $$06$i$ph = 0, $$06$i171 = 0, $$1149$lcssa = 0, $$1149217 = 0, 
$$1158223 = 0, $$2154211 = 0, $$2159$lcssa = 0, $$2159216 = 0, $$3151212 = 0;
+ var $$3155$lcssa = 0, $$3155205 = 0, $$3160185 = 0, $$4$lcssa = 0, $$4161186 
= 0, $$4206 = 0, $$5$lcssa = 0, $$5162 = 0, $$5162191 = 0, $$5162193 = 0, 
$$5197 = 0, $$6163204 = 0, $$7$lcssa = 0, $$7196 = 0, $$phi$trans$insert255 = 
0, $$pr = 0, $$pre = 0, $$pre254 = 0, $$pre256 = 0, $10 = 0;
+ var $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, 
$107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, 
$114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0;
+ var $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, $136 = 0;
+ var $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 
= 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 
= 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0;
+ var $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 
= 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 
= 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0;
+ var $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 
= 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 
= 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0;
+ var $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, 
$198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, 
$205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0;
+ var $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 
= 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 
= 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0;
+ var $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 
= 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 
= 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0;
+ var $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 
= 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 
= 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0;
+ var $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;
+ var $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, 
$289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $3 = 0, $30 = 0, $31 
= 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0;
+ var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, 
$43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, 
$51 = 0, $52 = 0, $53 = 0;
+ var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 
0, $7 = 0, $70 = 0, $71 = 0;
+ var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, 
$8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, 
$88 = 0, $89 = 0, $9 = 0;
+ var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, 
$98 = 0, $99 = 0, $exitcond = 0, $exitcond252 = 0, $or$cond = 0, $or$cond166 = 
0, $spec$select = 0, $spec$select165 = 0, $spec$select167 = 0, $spec$select168 
= 0, $uglygep = 0, $uglygep241 = 0;
+ var $uglygep244 = 0, $uglygep247 = 0, $umax = 0, $umax249 = 0, $vararg_buffer 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 1616|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(1616|0);
+ $vararg_buffer = sp + 1608|0;
+ $3 = sp + 1104|0;
+ $4 = sp + 592|0;
+ $5 = sp + 80|0;
+ $6 = sp + 64|0;
+ $7 = sp;
+ $8 = (__gcry_fips_mode()|0);
+ $9 = HEAP32[18116]|0;
+ $10 = $9 | $8;
+ $11 = ($10|0)==(0);
+ L1: do {
+  if ($11) {
+   HEAP32[18116] = 1;
+   (_do_setkey($3,4704,16)|0);
+   $12 = ((($3)) + 496|0);
+   $13 = HEAP32[$12>>2]|0;
+   $14 = ($13|0)==(0|0);
+   if (!($14)) {
+    FUNCTION_TABLE_v[$13 & 127]();
+   }
+   $15 = ((($3)) + 488|0);
+   $16 = HEAP32[$15>>2]|0;
+   (FUNCTION_TABLE_iiii[$16 & 127]($3,$6,4720)|0);
+   $17 = (_memcmp($6,4736,16)|0);
+   $18 = ($17|0)==(0);
+   do {
+    if ($18) {
+     _check_decryption_preparation($3);
+     $19 = ((($3)) + 500|0);
+     $20 = HEAP32[$19>>2]|0;
+     $21 = ($20|0)==(0|0);
+     if (!($21)) {
+      FUNCTION_TABLE_v[$20 & 127]();
+     }
+     $22 = ((($3)) + 492|0);
+     $23 = HEAP32[$22>>2]|0;
+     (FUNCTION_TABLE_iiii[$23 & 127]($3,$6,$6)|0);
+     $24 = (_memcmp($6,4720,16)|0);
+     $25 = ($24|0)==(0);
+     if ($25) {
+      (_do_setkey($4,4752,24)|0);
+      $26 = ((($4)) + 496|0);
+      $27 = HEAP32[$26>>2]|0;
+      $28 = ($27|0)==(0|0);
+      if (!($28)) {
+       FUNCTION_TABLE_v[$27 & 127]();
+      }
+      $29 = ((($4)) + 488|0);
+      $30 = HEAP32[$29>>2]|0;
+      (FUNCTION_TABLE_iiii[$30 & 127]($4,$6,4784)|0);
+      $31 = (_memcmp($6,4800,16)|0);
+      $32 = ($31|0)==(0);
+      if ($32) {
+       _check_decryption_preparation($4);
+       $33 = ((($4)) + 500|0);
+       $34 = HEAP32[$33>>2]|0;
+       $35 = ($34|0)==(0|0);
+       if (!($35)) {
+        FUNCTION_TABLE_v[$34 & 127]();
+       }
+       $36 = ((($4)) + 492|0);
+       $37 = HEAP32[$36>>2]|0;
+       (FUNCTION_TABLE_iiii[$37 & 127]($4,$6,$6)|0);
+       $38 = (_memcmp($6,4784,16)|0);
+       $39 = ($38|0)==(0);
+       if ($39) {
+        (_do_setkey($5,4816,32)|0);
+        $40 = ((($5)) + 496|0);
+        $41 = HEAP32[$40>>2]|0;
+        $42 = ($41|0)==(0|0);
+        if (!($42)) {
+         FUNCTION_TABLE_v[$41 & 127]();
+        }
+        $43 = ((($5)) + 488|0);
+        $44 = HEAP32[$43>>2]|0;
+        (FUNCTION_TABLE_iiii[$44 & 127]($5,$6,4848)|0);
+        $45 = (_memcmp($6,4864,16)|0);
+        $46 = ($45|0)==(0);
+        if ($46) {
+         _check_decryption_preparation($5);
+         $47 = ((($5)) + 500|0);
+         $48 = HEAP32[$47>>2]|0;
+         $49 = ($48|0)==(0|0);
+         if (!($49)) {
+          FUNCTION_TABLE_v[$48 & 127]();
+         }
+         $50 = ((($5)) + 492|0);
+         $51 = HEAP32[$50>>2]|0;
+         (FUNCTION_TABLE_iiii[$51 & 127]($5,$6,$6)|0);
+         $52 = (_memcmp($6,4848,16)|0);
+         $53 = ($52|0)==(0);
+         if ($53) {
+          $54 = (__gcry_selftest_helper_ctr(59841,1,2,65,9,16,504)|0);
+          $55 = ($54|0)==(0|0);
+          if (!($55)) {
+           $$06$i$ph = $54;
+           label = 25;
+           break;
+          }
+          $56 = (__gcry_selftest_helper_cbc(59841,1,2,64,10,16,504)|0);
+          $57 = ($56|0)==(0|0);
+          if (!($57)) {
+           $$06$i$ph = $56;
+           label = 25;
+           break;
+          }
+          $58 = (__gcry_selftest_helper_cfb(59841,1,2,62,10,16,504)|0);
+          HEAP32[18117] = $58;
+          $59 = ($58|0)==(0|0);
+          if ($59) {
+           break L1;
+          } else {
+           $$06$i171 = $58;
+           break;
+          }
+         } else {
+          $$0$i$i$ph = 59998;
+         }
+        } else {
+         $$0$i$i$ph = 60030;
+        }
+        $$06$i$ph = $$0$i$i$ph;
+        label = 25;
+        break;
+       } else {
+        $$0$i9$i$ph = 59934;
+       }
+      } else {
+       $$0$i9$i$ph = 59966;
+      }
+      $$06$i$ph = $$0$i9$i$ph;
+      label = 25;
+     } else {
+      $$0$i12$i$ph = 59845;
+      label = 8;
+     }
+    } else {
+     $$0$i12$i$ph = 59877;
+     label = 8;
+    }
+   } while(0);
+   if ((label|0) == 8) {
+    $$06$i$ph = $$0$i12$i$ph;
+    label = 25;
+   }
+   if ((label|0) == 25) {
+    HEAP32[18117] = $$06$i$ph;
+    $$06$i171 = $$06$i$ph;
+   }
+   HEAP32[$vararg_buffer>>2] = $$06$i171;
+   __gcry_log_error(63676,$vararg_buffer);
+   label = 28;
+  } else {
+   label = 28;
+  }
+ } while(0);
+ if ((label|0) == 28) {
+  $$pr = HEAP32[18117]|0;
+  $60 = ($$pr|0)==(0|0);
+  if (!($60)) {
+   $$0 = 50;
+   STACKTOP = sp;return ($$0|0);
+  }
+ }
+ switch ($2|0) {
+ case 16:  {
+  $$0138 = 10;$$0146 = 4;
+  break;
+ }
+ case 24:  {
+  $$0138 = 12;$$0146 = 6;
+  break;
+ }
+ case 32:  {
+  $$0138 = 14;$$0146 = 8;
+  break;
+ }
+ default: {
+  $$0 = 44;
+  STACKTOP = sp;return ($$0|0);
+ }
+ }
+ $61 = ((($0)) + 480|0);
+ HEAP32[$61>>2] = $$0138;
+ $62 = ((($0)) + 484|0);
+ $63 = HEAP8[$62>>0]|0;
+ $64 = $63 & -2;
+ HEAP8[$62>>0] = $64;
+ $65 = ((($0)) + 488|0);
+ HEAP32[$65>>2] = 72;
+ $66 = ((($0)) + 492|0);
+ HEAP32[$66>>2] = 73;
+ $67 = ((($0)) + 496|0);
+ HEAP32[$67>>2] = 74;
+ $68 = ((($0)) + 500|0);
+ HEAP32[$68>>2] = 75;
+ $69 = HEAP8[5216]|0;
+ $70 = HEAP8[(5248)>>0]|0;
+ $71 = HEAP8[(5280)>>0]|0;
+ $72 = HEAP8[(5312)>>0]|0;
+ $73 = HEAP8[(5344)>>0]|0;
+ $74 = HEAP8[(5376)>>0]|0;
+ $75 = HEAP8[(5408)>>0]|0;
+ $76 = HEAP8[(5440)>>0]|0;
+ $77 = HEAP8[(5472)>>0]|0;
+ $78 = HEAP8[(5504)>>0]|0;
+ $79 = HEAP8[(5536)>>0]|0;
+ $80 = HEAP8[(5568)>>0]|0;
+ $81 = HEAP8[(5600)>>0]|0;
+ $82 = HEAP8[(5632)>>0]|0;
+ $83 = HEAP8[(5664)>>0]|0;
+ $84 = HEAP8[(5696)>>0]|0;
+ $85 = HEAP8[(5728)>>0]|0;
+ $86 = HEAP8[(5760)>>0]|0;
+ $87 = HEAP8[(5792)>>0]|0;
+ $88 = HEAP8[(5824)>>0]|0;
+ $89 = HEAP8[(5856)>>0]|0;
+ $90 = HEAP8[(5888)>>0]|0;
+ $91 = HEAP8[(5920)>>0]|0;
+ $92 = HEAP8[(5952)>>0]|0;
+ $93 = HEAP8[(5984)>>0]|0;
+ $94 = HEAP8[(6016)>>0]|0;
+ $95 = HEAP8[(6048)>>0]|0;
+ $96 = HEAP8[(6080)>>0]|0;
+ $97 = HEAP8[(6112)>>0]|0;
+ $98 = HEAP8[(6144)>>0]|0;
+ $99 = HEAP8[(6176)>>0]|0;
+ $100 = HEAP8[(6208)>>0]|0;
+ $101 = HEAP8[(6239)>>0]|0;
+ $$0144227 = 0;
+ while(1) {
+  $102 = (($1) + ($$0144227)|0);
+  $103 = HEAP8[$102>>0]|0;
+  $104 = $$0144227 >>> 2;
+  $105 = $$0144227 & 3;
+  $106 = ((($7) + ($104<<2)|0) + ($105)|0);
+  HEAP8[$106>>0] = $103;
+  $107 = (($$0144227) + 1)|0;
+  $exitcond252 = ($107|0)==($2|0);
+  if ($exitcond252) {
+   break;
+  } else {
+   $$0144227 = $107;
+  }
+ }
+ $108 = (($$0146) + -1)|0;
+ $109 = ((($7)) + 32|0);
+ $$0157226 = $108;
+ while(1) {
+  $110 = (($7) + ($$0157226<<2)|0);
+  $111 = HEAP32[$110>>2]|0;
+  $112 = (($109) + ($$0157226<<2)|0);
+  HEAP32[$112>>2] = $111;
+  $113 = (($$0157226) + -1)|0;
+  $114 = ($$0157226|0)>(0);
+  if ($114) {
+   $$0157226 = $113;
+  } else {
+   break;
+  }
+ }
+ $115 = $$0138 | 1;
+ $$0148225 = 0;$$0152224 = 0;$$1158223 = 0;
+ while(1) {
+  $116 = ($$1158223|0)<($$0146|0);
+  $117 = ($$0148225|0)<(4);
+  $118 = $116 & $117;
+  if ($118) {
+   $119 = $$0152224 << 4;
+   $120 = $$0148225 << 2;
+   $121 = (($119) + ($120))|0;
+   $uglygep244 = (($0) + ($121)|0);
+   $122 = $$1158223 << 2;
+   $uglygep247 = (($109) + ($122)|0);
+   $123 = (($$0148225) + -4)|0;
+   $124 = (($$1158223) - ($$0146))|0;
+   $125 = ($123>>>0)>($124>>>0);
+   $umax249 = $125 ? $123 : $124;
+   $126 = Math_imul($umax249, -4)|0;
+   _memcpy(($uglygep244|0),($uglygep247|0),($126|0))|0;
+   $$1149217 = $$0148225;$$2159216 = $$1158223;
+   while(1) {
+    $127 = (($$2159216) + 1)|0;
+    $128 = (($$1149217) + 1)|0;
+    $129 = ($127|0)<($$0146|0);
+    $130 = ($$1149217|0)<(3);
+    $131 = $129 & $130;
+    if ($131) {
+     $$1149217 = $128;$$2159216 = $127;
+    } else {
+     $$1149$lcssa = $128;$$2159$lcssa = $127;
+     break;
+    }
+   }
+  } else {
+   $$1149$lcssa = $$0148225;$$2159$lcssa = $$1158223;
+  }
+  $132 = ($$1149$lcssa|0)==(4);
+  $133 = $132&1;
+  $spec$select = (($$0152224) + ($133))|0;
+  $spec$select165 = $132 ? 0 : $$1149$lcssa;
+  $134 = ($$2159$lcssa|0)<($$0146|0);
+  $135 = ($spec$select>>>0)<($115>>>0);
+  $or$cond = $134 & $135;
+  if ($or$cond) {
+   $$0148225 = $spec$select165;$$0152224 = $spec$select;$$1158223 = 
$$2159$lcssa;
+  } else {
+   break;
+  }
+ }
+ if ($135) {
+  $136 = (((($109) + ($108<<2)|0)) + 1|0);
+  $137 = (((($109) + ($108<<2)|0)) + 2|0);
+  $138 = ((($109)) + 1|0);
+  $139 = (((($109) + ($108<<2)|0)) + 3|0);
+  $140 = ((($109)) + 2|0);
+  $141 = (($109) + ($108<<2)|0);
+  $142 = ((($109)) + 3|0);
+  $143 = ($$0146|0)==(8);
+  $144 = $$0146 >>> 1;
+  $145 = (($144) + -1)|0;
+  $146 = (($109) + ($145<<2)|0);
+  $147 = (($109) + ($144<<2)|0);
+  $148 = (((($109) + ($145<<2)|0)) + 1|0);
+  $149 = (((($109) + ($144<<2)|0)) + 1|0);
+  $150 = (((($109) + ($145<<2)|0)) + 2|0);
+  $151 = (((($109) + ($144<<2)|0)) + 2|0);
+  $152 = (((($109) + ($145<<2)|0)) + 3|0);
+  $153 = (((($109) + ($144<<2)|0)) + 3|0);
+  $$5162191 = (($144) + 1)|0;
+  $154 = ($$5162191>>>0)<(8);
+  $$phi$trans$insert255 = (($109) + ($144<<2)|0);
+  $$0147213 = 0;$$2154211 = $spec$select;$$3151212 = $spec$select165;
+  while(1) {
+   $155 = HEAP8[$136>>0]|0;
+   $156 = $155&255;
+   $157 = $156 << 2;
+   $158 = ((5217) + ($157)|0);
+   $159 = HEAP8[$158>>0]|0;
+   $160 = HEAP8[$109>>0]|0;
+   $161 = $160 ^ $159;
+   HEAP8[$109>>0] = $161;
+   $162 = HEAP8[$137>>0]|0;
+   $163 = $162&255;
+   $164 = $163 << 2;
+   $165 = ((5217) + ($164)|0);
+   $166 = HEAP8[$165>>0]|0;
+   $167 = HEAP8[$138>>0]|0;
+   $168 = $167 ^ $166;
+   HEAP8[$138>>0] = $168;
+   $169 = HEAP8[$139>>0]|0;
+   $170 = $169&255;
+   $171 = $170 << 2;
+   $172 = ((5217) + ($171)|0);
+   $173 = HEAP8[$172>>0]|0;
+   $174 = HEAP8[$140>>0]|0;
+   $175 = $174 ^ $173;
+   HEAP8[$140>>0] = $175;
+   $176 = HEAP8[$141>>0]|0;
+   $177 = $176&255;
+   $178 = $177 << 2;
+   $179 = ((5217) + ($178)|0);
+   $180 = HEAP8[$179>>0]|0;
+   $181 = HEAP8[$142>>0]|0;
+   $182 = $181 ^ $180;
+   HEAP8[$142>>0] = $182;
+   $183 = (($$0147213) + 1)|0;
+   $184 = (6240 + ($$0147213<<2)|0);
+   $185 = HEAP32[$184>>2]|0;
+   $186 = $161&255;
+   $187 = $185 ^ $186;
+   $188 = $187&255;
+   HEAP8[$109>>0] = $188;
+   if ($143) {
+    $$pre254 = HEAP32[$109>>2]|0;
+    $$4161186 = 1;$198 = $$pre254;
+    while(1) {
+     $195 = (($109) + ($$4161186<<2)|0);
+     $196 = HEAP32[$195>>2]|0;
+     $197 = $196 ^ $198;
+     HEAP32[$195>>2] = $197;
+     $199 = (($$4161186) + 1)|0;
+     $200 = ($199>>>0)<($144>>>0);
+     if ($200) {
+      $$4161186 = $199;$198 = $197;
+     } else {
+      break;
+     }
+    }
+    $201 = HEAP8[$146>>0]|0;
+    $202 = $201&255;
+    $203 = $202 << 2;
+    $204 = ((5217) + ($203)|0);
+    $205 = HEAP8[$204>>0]|0;
+    $206 = HEAP8[$147>>0]|0;
+    $207 = $206 ^ $205;
+    HEAP8[$147>>0] = $207;
+    $208 = HEAP8[$148>>0]|0;
+    $209 = $208&255;
+    $210 = $209 << 2;
+    $211 = ((5217) + ($210)|0);
+    $212 = HEAP8[$211>>0]|0;
+    $213 = HEAP8[$149>>0]|0;
+    $214 = $213 ^ $212;
+    HEAP8[$149>>0] = $214;
+    $215 = HEAP8[$150>>0]|0;
+    $216 = $215&255;
+    $217 = $216 << 2;
+    $218 = ((5217) + ($217)|0);
+    $219 = HEAP8[$218>>0]|0;
+    $220 = HEAP8[$151>>0]|0;
+    $221 = $220 ^ $219;
+    HEAP8[$151>>0] = $221;
+    $222 = HEAP8[$152>>0]|0;
+    $223 = $222&255;
+    $224 = $223 << 2;
+    $225 = ((5217) + ($224)|0);
+    $226 = HEAP8[$225>>0]|0;
+    $227 = HEAP8[$153>>0]|0;
+    $228 = $227 ^ $226;
+    HEAP8[$153>>0] = $228;
+    if ($154) {
+     $$pre256 = HEAP32[$$phi$trans$insert255>>2]|0;
+     $$5162193 = $$5162191;$232 = $$pre256;
+     while(1) {
+      $229 = (($109) + ($$5162193<<2)|0);
+      $230 = HEAP32[$229>>2]|0;
+      $231 = $230 ^ $232;
+      HEAP32[$229>>2] = $231;
+      $$5162 = (($$5162193) + 1)|0;
+      $exitcond = ($$5162|0)==(8);
+      if ($exitcond) {
+       break;
+      } else {
+       $$5162193 = $$5162;$232 = $231;
+      }
+     }
+    }
+   } else {
+    $$pre = HEAP32[$109>>2]|0;
+    $$3160185 = 1;$192 = $$pre;
+    while(1) {
+     $189 = (($109) + ($$3160185<<2)|0);
+     $190 = HEAP32[$189>>2]|0;
+     $191 = $190 ^ $192;
+     HEAP32[$189>>2] = $191;
+     $193 = (($$3160185) + 1)|0;
+     $194 = ($193>>>0)<($$0146>>>0);
+     if ($194) {
+      $$3160185 = $193;$192 = $191;
+     } else {
+      break;
+     }
+    }
+   }
+   $233 = ($$2154211|0)<($115|0);
+   if ($233) {
+    $$3155205 = $$2154211;$$4206 = $$3151212;$$6163204 = 0;
+    while(1) {
+     $234 = ($$6163204|0)<($$0146|0);
+     $235 = ($$4206|0)<(4);
+     $236 = $234 & $235;
+     if ($236) {
+      $237 = $$3155205 << 4;
+      $238 = $$4206 << 2;
+      $239 = (($237) + ($238))|0;
+      $uglygep = (($0) + ($239)|0);
+      $240 = $$6163204 << 2;
+      $uglygep241 = (($109) + ($240)|0);
+      $241 = (($$4206) + -4)|0;
+      $242 = (($$6163204) - ($$0146))|0;
+      $243 = ($241>>>0)>($242>>>0);
+      $umax = $243 ? $241 : $242;
+      $244 = Math_imul($umax, -4)|0;
+      _memcpy(($uglygep|0),($uglygep241|0),($244|0))|0;
+      $$5197 = $$4206;$$7196 = $$6163204;
+      while(1) {
+       $245 = (($$7196) + 1)|0;
+       $246 = (($$5197) + 1)|0;
+       $247 = ($245|0)<($$0146|0);
+       $248 = ($$5197|0)<(3);
+       $249 = $247 & $248;
+       if ($249) {
+        $$5197 = $246;$$7196 = $245;
+       } else {
+        $$5$lcssa = $246;$$7$lcssa = $245;
+        break;
+       }
+      }
+     } else {
+      $$5$lcssa = $$4206;$$7$lcssa = $$6163204;
+     }
+     $250 = ($$5$lcssa|0)==(4);
+     $251 = $250&1;
+     $spec$select167 = (($$3155205) + ($251))|0;
+     $spec$select168 = $250 ? 0 : $$5$lcssa;
+     $252 = ($$7$lcssa|0)<($$0146|0);
+     $253 = ($spec$select167|0)<($115|0);
+     $or$cond166 = $252 & $253;
+     if ($or$cond166) {
+      $$3155205 = $spec$select167;$$4206 = $spec$select168;$$6163204 = 
$$7$lcssa;
+     } else {
+      $$3155$lcssa = $spec$select167;$$4$lcssa = $spec$select168;
+      break;
+     }
+    }
+   } else {
+    $$3155$lcssa = $$2154211;$$4$lcssa = $$3151212;
+   }
+   $254 = ($$3155$lcssa|0)<($115|0);
+   if ($254) {
+    $$0147213 = $183;$$2154211 = $$3155$lcssa;$$3151212 = $$4$lcssa;
+   } else {
+    break;
+   }
+  }
+ }
+ $255 = $7;
+ $256 = $255;
+ HEAP32[$256>>2] = 0;
+ $257 = (($255) + 4)|0;
+ $258 = $257;
+ HEAP32[$258>>2] = 0;
+ $259 = ((($7)) + 8|0);
+ $260 = $259;
+ $261 = $260;
+ HEAP32[$261>>2] = 0;
+ $262 = (($260) + 4)|0;
+ $263 = $262;
+ HEAP32[$263>>2] = 0;
+ $264 = ((($7)) + 16|0);
+ $265 = $264;
+ $266 = $265;
+ HEAP32[$266>>2] = 0;
+ $267 = (($265) + 4)|0;
+ $268 = $267;
+ HEAP32[$268>>2] = 0;
+ $269 = ((($7)) + 24|0);
+ $270 = $269;
+ $271 = $270;
+ HEAP32[$271>>2] = 0;
+ $272 = (($270) + 4)|0;
+ $273 = $272;
+ HEAP32[$273>>2] = 0;
+ $274 = ((($7)) + 32|0);
+ $275 = $274;
+ $276 = $275;
+ HEAP32[$276>>2] = 0;
+ $277 = (($275) + 4)|0;
+ $278 = $277;
+ HEAP32[$278>>2] = 0;
+ $279 = ((($7)) + 40|0);
+ $280 = $279;
+ $281 = $280;
+ HEAP32[$281>>2] = 0;
+ $282 = (($280) + 4)|0;
+ $283 = $282;
+ HEAP32[$283>>2] = 0;
+ $284 = ((($7)) + 48|0);
+ $285 = $284;
+ $286 = $285;
+ HEAP32[$286>>2] = 0;
+ $287 = (($285) + 4)|0;
+ $288 = $287;
+ HEAP32[$288>>2] = 0;
+ $289 = ((($7)) + 56|0);
+ $290 = $289;
+ $291 = $290;
+ HEAP32[$291>>2] = 0;
+ $292 = (($290) + 4)|0;
+ $293 = $292;
+ HEAP32[$293>>2] = 0;
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function _check_decryption_preparation($0) {
+ $0 = $0|0;
+ var $$0$lcssa$i = 0, $$079$i = 0, $$lcssa$i = 0, $1 = 0, $10 = 0, $100 = 0, 
$101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, 
$109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0;
+ var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 
= 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 
= 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0;
+ var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, 
$139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, 
$146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0;
+ var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, 
$157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, 
$164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0;
+ var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 
= 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 
= 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0;
+ var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 
= 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 
0, $200 = 0, $201 = 0, $202 = 0, $203 = 0;
+ var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 
= 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 
= 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0;
+ var $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, 
$229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, 
$236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0;
+ var $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, 
$247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, 
$254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0;
+ var $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 
= 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 
= 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0;
+ var $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $29 
= 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 
= 0, $38 = 0, $39 = 0, $4 = 0;
+ var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, 
$48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, 
$56 = 0, $57 = 0, $58 = 0;
+ var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, 
$66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, 
$74 = 0, $75 = 0, $76 = 0;
+ var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, 
$84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, 
$92 = 0, $93 = 0, $94 = 0;
+ var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 484|0);
+ $2 = HEAP8[$1>>0]|0;
+ $3 = $2 & 1;
+ $4 = ($3<<24>>24)==(0);
+ if (!($4)) {
+  return;
+ }
+ $5 = HEAP8[5216]|0;
+ $6 = HEAP8[(5248)>>0]|0;
+ $7 = HEAP8[(5280)>>0]|0;
+ $8 = HEAP8[(5312)>>0]|0;
+ $9 = HEAP8[(5344)>>0]|0;
+ $10 = HEAP8[(5376)>>0]|0;
+ $11 = HEAP8[(5408)>>0]|0;
+ $12 = HEAP8[(5440)>>0]|0;
+ $13 = HEAP8[(5472)>>0]|0;
+ $14 = HEAP8[(5504)>>0]|0;
+ $15 = HEAP8[(5536)>>0]|0;
+ $16 = HEAP8[(5568)>>0]|0;
+ $17 = HEAP8[(5600)>>0]|0;
+ $18 = HEAP8[(5632)>>0]|0;
+ $19 = HEAP8[(5664)>>0]|0;
+ $20 = HEAP8[(5696)>>0]|0;
+ $21 = HEAP8[(5728)>>0]|0;
+ $22 = HEAP8[(5760)>>0]|0;
+ $23 = HEAP8[(5792)>>0]|0;
+ $24 = HEAP8[(5824)>>0]|0;
+ $25 = HEAP8[(5856)>>0]|0;
+ $26 = HEAP8[(5888)>>0]|0;
+ $27 = HEAP8[(5920)>>0]|0;
+ $28 = HEAP8[(5952)>>0]|0;
+ $29 = HEAP8[(5984)>>0]|0;
+ $30 = HEAP8[(6016)>>0]|0;
+ $31 = HEAP8[(6048)>>0]|0;
+ $32 = HEAP8[(6080)>>0]|0;
+ $33 = HEAP8[(6112)>>0]|0;
+ $34 = HEAP8[(6144)>>0]|0;
+ $35 = HEAP8[(6176)>>0]|0;
+ $36 = HEAP8[(6208)>>0]|0;
+ $37 = HEAP8[(6239)>>0]|0;
+ $38 = HEAP8[38052]|0;
+ $39 = HEAP8[(38084)>>0]|0;
+ $40 = HEAP8[(38116)>>0]|0;
+ $41 = HEAP8[(38148)>>0]|0;
+ $42 = HEAP8[(38180)>>0]|0;
+ $43 = HEAP8[(38212)>>0]|0;
+ $44 = HEAP8[(38244)>>0]|0;
+ $45 = HEAP8[(38276)>>0]|0;
+ $46 = HEAP8[(38308)>>0]|0;
+ $47 = HEAP8[(38340)>>0]|0;
+ $48 = HEAP8[(38372)>>0]|0;
+ $49 = HEAP8[(38404)>>0]|0;
+ $50 = HEAP8[(38436)>>0]|0;
+ $51 = HEAP8[(38468)>>0]|0;
+ $52 = HEAP8[(38500)>>0]|0;
+ $53 = HEAP8[(38532)>>0]|0;
+ $54 = HEAP8[(38564)>>0]|0;
+ $55 = HEAP8[(38596)>>0]|0;
+ $56 = HEAP8[(38628)>>0]|0;
+ $57 = HEAP8[(38660)>>0]|0;
+ $58 = HEAP8[(38692)>>0]|0;
+ $59 = HEAP8[(38724)>>0]|0;
+ $60 = HEAP8[(38756)>>0]|0;
+ $61 = HEAP8[(38788)>>0]|0;
+ $62 = HEAP8[(38820)>>0]|0;
+ $63 = HEAP8[(38852)>>0]|0;
+ $64 = HEAP8[(38884)>>0]|0;
+ $65 = HEAP8[(38916)>>0]|0;
+ $66 = HEAP8[(38948)>>0]|0;
+ $67 = HEAP8[(38980)>>0]|0;
+ $68 = HEAP8[(39012)>>0]|0;
+ $69 = HEAP8[(39044)>>0]|0;
+ $70 = HEAP8[(39076)>>0]|0;
+ $71 = HEAP8[(39108)>>0]|0;
+ $72 = HEAP8[(39140)>>0]|0;
+ $73 = HEAP8[(39172)>>0]|0;
+ $74 = HEAP8[(39204)>>0]|0;
+ $75 = HEAP8[(39236)>>0]|0;
+ $76 = HEAP8[(39268)>>0]|0;
+ $77 = HEAP8[(39300)>>0]|0;
+ $78 = HEAP8[(39331)>>0]|0;
+ $79 = HEAP32[$0>>2]|0;
+ $80 = ((($0)) + 240|0);
+ HEAP32[$80>>2] = $79;
+ $81 = ((($0)) + 4|0);
+ $82 = HEAP32[$81>>2]|0;
+ $83 = ((($80)) + 4|0);
+ HEAP32[$83>>2] = $82;
+ $84 = ((($0)) + 8|0);
+ $85 = HEAP32[$84>>2]|0;
+ $86 = ((($0)) + 248|0);
+ HEAP32[$86>>2] = $85;
+ $87 = ((($0)) + 12|0);
+ $88 = HEAP32[$87>>2]|0;
+ $89 = ((($0)) + 252|0);
+ HEAP32[$89>>2] = $88;
+ $90 = ((($0)) + 480|0);
+ $91 = HEAP32[$90>>2]|0;
+ $92 = ($91|0)>(1);
+ $93 = ((($0)) + 16|0);
+ if ($92) {
+  $$079$i = 1;$96 = $93;
+  while(1) {
+   $94 = (($80) + ($$079$i<<4)|0);
+   $95 = HEAP32[$96>>2]|0;
+   $97 = $95 << 2;
+   $98 = $97 & 1020;
+   $99 = ((5217) + ($98)|0);
+   $100 = HEAP8[$99>>0]|0;
+   $101 = $100&255;
+   $102 = (38052 + ($101<<2)|0);
+   $103 = HEAP32[$102>>2]|0;
+   $104 = $95 >>> 6;
+   $105 = $104 & 1020;
+   $106 = ((5217) + ($105)|0);
+   $107 = HEAP8[$106>>0]|0;
+   $108 = $107&255;
+   $109 = (38052 + ($108<<2)|0);
+   $110 = HEAP32[$109>>2]|0;
+   $111 = $110 << 8;
+   $112 = $110 >>> 24;
+   $113 = $111 | $112;
+   $114 = $113 ^ $103;
+   $115 = $95 >>> 14;
+   $116 = $115 & 1020;
+   $117 = ((5217) + ($116)|0);
+   $118 = HEAP8[$117>>0]|0;
+   $119 = $118&255;
+   $120 = (38052 + ($119<<2)|0);
+   $121 = HEAP32[$120>>2]|0;
+   $122 = $121 << 16;
+   $123 = $121 >>> 16;
+   $124 = $122 | $123;
+   $125 = $114 ^ $124;
+   $126 = $95 >>> 24;
+   $127 = $126 << 2;
+   $128 = ((5217) + ($127)|0);
+   $129 = HEAP8[$128>>0]|0;
+   $130 = $129&255;
+   $131 = (38052 + ($130<<2)|0);
+   $132 = HEAP32[$131>>2]|0;
+   $133 = $132 << 24;
+   $134 = $132 >>> 8;
+   $135 = $133 | $134;
+   $136 = $125 ^ $135;
+   HEAP32[$94>>2] = $136;
+   $137 = (((($0) + ($$079$i<<4)|0)) + 4|0);
+   $138 = HEAP32[$137>>2]|0;
+   $139 = $138 << 2;
+   $140 = $139 & 1020;
+   $141 = ((5217) + ($140)|0);
+   $142 = HEAP8[$141>>0]|0;
+   $143 = $142&255;
+   $144 = (38052 + ($143<<2)|0);
+   $145 = HEAP32[$144>>2]|0;
+   $146 = $138 >>> 6;
+   $147 = $146 & 1020;
+   $148 = ((5217) + ($147)|0);
+   $149 = HEAP8[$148>>0]|0;
+   $150 = $149&255;
+   $151 = (38052 + ($150<<2)|0);
+   $152 = HEAP32[$151>>2]|0;
+   $153 = $152 << 8;
+   $154 = $152 >>> 24;
+   $155 = $153 | $154;
+   $156 = $155 ^ $145;
+   $157 = $138 >>> 14;
+   $158 = $157 & 1020;
+   $159 = ((5217) + ($158)|0);
+   $160 = HEAP8[$159>>0]|0;
+   $161 = $160&255;
+   $162 = (38052 + ($161<<2)|0);
+   $163 = HEAP32[$162>>2]|0;
+   $164 = $163 << 16;
+   $165 = $163 >>> 16;
+   $166 = $164 | $165;
+   $167 = $156 ^ $166;
+   $168 = $138 >>> 24;
+   $169 = $168 << 2;
+   $170 = ((5217) + ($169)|0);
+   $171 = HEAP8[$170>>0]|0;
+   $172 = $171&255;
+   $173 = (38052 + ($172<<2)|0);
+   $174 = HEAP32[$173>>2]|0;
+   $175 = $174 << 24;
+   $176 = $174 >>> 8;
+   $177 = $175 | $176;
+   $178 = $167 ^ $177;
+   $179 = (((($80) + ($$079$i<<4)|0)) + 4|0);
+   HEAP32[$179>>2] = $178;
+   $180 = (((($0) + ($$079$i<<4)|0)) + 8|0);
+   $181 = HEAP32[$180>>2]|0;
+   $182 = $181 << 2;
+   $183 = $182 & 1020;
+   $184 = ((5217) + ($183)|0);
+   $185 = HEAP8[$184>>0]|0;
+   $186 = $185&255;
+   $187 = (38052 + ($186<<2)|0);
+   $188 = HEAP32[$187>>2]|0;
+   $189 = $181 >>> 6;
+   $190 = $189 & 1020;
+   $191 = ((5217) + ($190)|0);
+   $192 = HEAP8[$191>>0]|0;
+   $193 = $192&255;
+   $194 = (38052 + ($193<<2)|0);
+   $195 = HEAP32[$194>>2]|0;
+   $196 = $195 << 8;
+   $197 = $195 >>> 24;
+   $198 = $196 | $197;
+   $199 = $198 ^ $188;
+   $200 = $181 >>> 14;
+   $201 = $200 & 1020;
+   $202 = ((5217) + ($201)|0);
+   $203 = HEAP8[$202>>0]|0;
+   $204 = $203&255;
+   $205 = (38052 + ($204<<2)|0);
+   $206 = HEAP32[$205>>2]|0;
+   $207 = $206 << 16;
+   $208 = $206 >>> 16;
+   $209 = $207 | $208;
+   $210 = $199 ^ $209;
+   $211 = $181 >>> 24;
+   $212 = $211 << 2;
+   $213 = ((5217) + ($212)|0);
+   $214 = HEAP8[$213>>0]|0;
+   $215 = $214&255;
+   $216 = (38052 + ($215<<2)|0);
+   $217 = HEAP32[$216>>2]|0;
+   $218 = $217 << 24;
+   $219 = $217 >>> 8;
+   $220 = $218 | $219;
+   $221 = $210 ^ $220;
+   $222 = (((($80) + ($$079$i<<4)|0)) + 8|0);
+   HEAP32[$222>>2] = $221;
+   $223 = (((($0) + ($$079$i<<4)|0)) + 12|0);
+   $224 = HEAP32[$223>>2]|0;
+   $225 = $224 << 2;
+   $226 = $225 & 1020;
+   $227 = ((5217) + ($226)|0);
+   $228 = HEAP8[$227>>0]|0;
+   $229 = $228&255;
+   $230 = (38052 + ($229<<2)|0);
+   $231 = HEAP32[$230>>2]|0;
+   $232 = $224 >>> 6;
+   $233 = $232 & 1020;
+   $234 = ((5217) + ($233)|0);
+   $235 = HEAP8[$234>>0]|0;
+   $236 = $235&255;
+   $237 = (38052 + ($236<<2)|0);
+   $238 = HEAP32[$237>>2]|0;
+   $239 = $238 << 8;
+   $240 = $238 >>> 24;
+   $241 = $239 | $240;
+   $242 = $241 ^ $231;
+   $243 = $224 >>> 14;
+   $244 = $243 & 1020;
+   $245 = ((5217) + ($244)|0);
+   $246 = HEAP8[$245>>0]|0;
+   $247 = $246&255;
+   $248 = (38052 + ($247<<2)|0);
+   $249 = HEAP32[$248>>2]|0;
+   $250 = $249 << 16;
+   $251 = $249 >>> 16;
+   $252 = $250 | $251;
+   $253 = $242 ^ $252;
+   $254 = $224 >>> 24;
+   $255 = $254 << 2;
+   $256 = ((5217) + ($255)|0);
+   $257 = HEAP8[$256>>0]|0;
+   $258 = $257&255;
+   $259 = (38052 + ($258<<2)|0);
+   $260 = HEAP32[$259>>2]|0;
+   $261 = $260 << 24;
+   $262 = $260 >>> 8;
+   $263 = $261 | $262;
+   $264 = $253 ^ $263;
+   $265 = (((($80) + ($$079$i<<4)|0)) + 12|0);
+   HEAP32[$265>>2] = $264;
+   $266 = (($$079$i) + 1)|0;
+   $267 = HEAP32[$90>>2]|0;
+   $268 = ($266|0)<($267|0);
+   $269 = (($0) + ($266<<4)|0);
+   if ($268) {
+    $$079$i = $266;$96 = $269;
+   } else {
+    $$0$lcssa$i = $266;$$lcssa$i = $269;
+    break;
+   }
+  }
+ } else {
+  $$0$lcssa$i = 1;$$lcssa$i = $93;
+ }
+ $270 = HEAP32[$$lcssa$i>>2]|0;
+ $271 = (($80) + ($$0$lcssa$i<<4)|0);
+ HEAP32[$271>>2] = $270;
+ $272 = (((($0) + ($$0$lcssa$i<<4)|0)) + 4|0);
+ $273 = HEAP32[$272>>2]|0;
+ $274 = (((($80) + ($$0$lcssa$i<<4)|0)) + 4|0);
+ HEAP32[$274>>2] = $273;
+ $275 = (((($0) + ($$0$lcssa$i<<4)|0)) + 8|0);
+ $276 = HEAP32[$275>>2]|0;
+ $277 = (((($80) + ($$0$lcssa$i<<4)|0)) + 8|0);
+ HEAP32[$277>>2] = $276;
+ $278 = (((($0) + ($$0$lcssa$i<<4)|0)) + 12|0);
+ $279 = HEAP32[$278>>2]|0;
+ $280 = (((($80) + ($$0$lcssa$i<<4)|0)) + 12|0);
+ HEAP32[$280>>2] = $279;
+ $281 = HEAP8[$1>>0]|0;
+ $282 = $281 | 1;
+ HEAP8[$1>>0] = $282;
+ return;
+}
+function _selftest_fips_128_38a($0) {
+ $0 = $0|0;
+ var $$03446$lcssa = 0, $$036 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, 
$14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, 
$22 = 0, $23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0;
+ var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, 
$51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 
0, $6 = 0, $60 = 0, $61 = 0;
+ var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, 
$7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, 
$78 = 0, $79 = 0, $8 = 0;
+ var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, 
$88 = 0, $89 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $1 = sp;
+ $2 = sp + 20|0;
+ $3 = sp + 16|0;
+ HEAP32[$2>>2] = 0;
+ HEAP32[$3>>2] = 0;
+ switch ($0|0) {
+ case 2:  {
+  $$03446$lcssa = 0;
+  break;
+ }
+ case 5:  {
+  $$03446$lcssa = 1;
+  break;
+ }
+ default: {
+  __gcry_cipher_close(0);
+  __gcry_cipher_close(0);
+  $$036 = 60062;
+  STACKTOP = sp;return ($$036|0);
+ }
+ }
+ $4 = (4880 + (($$03446$lcssa*164)|0)|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = (__gcry_cipher_open($2,7,$5,0)|0);
+ $7 = ($6|0)==(0);
+ if (!($7)) {
+  $8 = HEAP32[$2>>2]|0;
+  __gcry_cipher_close($8);
+  $9 = HEAP32[$3>>2]|0;
+  __gcry_cipher_close($9);
+  $$036 = 60089;
+  STACKTOP = sp;return ($$036|0);
+ }
+ $10 = (__gcry_cipher_open($3,7,$5,0)|0);
+ $11 = ($10|0)==(0);
+ $12 = HEAP32[$2>>2]|0;
+ if (!($11)) {
+  __gcry_cipher_close($12);
+  $13 = HEAP32[$3>>2]|0;
+  __gcry_cipher_close($13);
+  $$036 = 60089;
+  STACKTOP = sp;return ($$036|0);
+ }
+ $14 = (((4880 + (($$03446$lcssa*164)|0)|0)) + 4|0);
+ $15 = (__gcry_cipher_setkey($12,$14,16)|0);
+ $16 = ($15|0)==(0);
+ if ($16) {
+  $18 = HEAP32[$3>>2]|0;
+  $19 = (__gcry_cipher_setkey($18,$14,16)|0);
+  $20 = ($19|0)==(0);
+  $21 = HEAP32[$2>>2]|0;
+  if ($20) {
+   $24 = (((4880 + (($$03446$lcssa*164)|0)|0)) + 20|0);
+   $25 = (__gcry_cipher_setiv($21,$24,16)|0);
+   $26 = ($25|0)==(0);
+   if ($26) {
+    $27 = HEAP32[$3>>2]|0;
+    $28 = (__gcry_cipher_setiv($27,$24,16)|0);
+    $29 = ($28|0)==(0);
+    if ($29) {
+     $32 = HEAP32[$2>>2]|0;
+     $33 = (((4880 + (($$03446$lcssa*164)|0)|0)) + 36|0);
+     $34 = (__gcry_cipher_encrypt($32,$1,16,$33,16)|0);
+     $35 = ($34|0)==(0);
+     L20: do {
+      if ($35) {
+       $42 = (((4880 + (($$03446$lcssa*164)|0)|0)) + 52|0);
+       $43 = (_memcmp($1,$42,16)|0);
+       $44 = ($43|0)==(0);
+       L22: do {
+        if ($44) {
+         $47 = HEAP32[$3>>2]|0;
+         $48 = (__gcry_cipher_decrypt($47,$1,16,$42,16)|0);
+         $49 = ($48|0)==(0);
+         L24: do {
+          if ($49) {
+           $52 = (_memcmp($1,$33,16)|0);
+           $53 = ($52|0)==(0);
+           do {
+            if ($53) {
+             $36 = HEAP32[$2>>2]|0;
+             $37 = (((4880 + (($$03446$lcssa*164)|0)|0)) + 68|0);
+             $38 = (__gcry_cipher_encrypt($36,$1,16,$37,16)|0);
+             $39 = ($38|0)==(0);
+             if (!($39)) {
+              break L20;
+             }
+             $56 = (((4880 + (($$03446$lcssa*164)|0)|0)) + 84|0);
+             $57 = (_memcmp($1,$56,16)|0);
+             $58 = ($57|0)==(0);
+             if (!($58)) {
+              break L22;
+             }
+             $59 = HEAP32[$3>>2]|0;
+             $60 = (__gcry_cipher_decrypt($59,$1,16,$56,16)|0);
+             $61 = ($60|0)==(0);
+             if (!($61)) {
+              break L24;
+             }
+             $62 = (_memcmp($1,$37,16)|0);
+             $63 = ($62|0)==(0);
+             if ($63) {
+              $64 = HEAP32[$2>>2]|0;
+              $65 = (((4880 + (($$03446$lcssa*164)|0)|0)) + 100|0);
+              $66 = (__gcry_cipher_encrypt($64,$1,16,$65,16)|0);
+              $67 = ($66|0)==(0);
+              if (!($67)) {
+               break L20;
+              }
+              $68 = (((4880 + (($$03446$lcssa*164)|0)|0)) + 116|0);
+              $69 = (_memcmp($1,$68,16)|0);
+              $70 = ($69|0)==(0);
+              if (!($70)) {
+               break L22;
+              }
+              $71 = HEAP32[$3>>2]|0;
+              $72 = (__gcry_cipher_decrypt($71,$1,16,$68,16)|0);
+              $73 = ($72|0)==(0);
+              if (!($73)) {
+               break L24;
+              }
+              $74 = (_memcmp($1,$65,16)|0);
+              $75 = ($74|0)==(0);
+              if (!($75)) {
+               break;
+              }
+              $76 = HEAP32[$2>>2]|0;
+              $77 = (((4880 + (($$03446$lcssa*164)|0)|0)) + 132|0);
+              $78 = (__gcry_cipher_encrypt($76,$1,16,$77,16)|0);
+              $79 = ($78|0)==(0);
+              if (!($79)) {
+               break L20;
+              }
+              $80 = (((4880 + (($$03446$lcssa*164)|0)|0)) + 148|0);
+              $81 = (_memcmp($1,$80,16)|0);
+              $82 = ($81|0)==(0);
+              if (!($82)) {
+               break L22;
+              }
+              $83 = HEAP32[$3>>2]|0;
+              $84 = (__gcry_cipher_decrypt($83,$1,16,$80,16)|0);
+              $85 = ($84|0)==(0);
+              if (!($85)) {
+               break L24;
+              }
+              $86 = (_memcmp($1,$77,16)|0);
+              $87 = ($86|0)==(0);
+              if (!($87)) {
+               break;
+              }
+              $88 = HEAP32[$2>>2]|0;
+              __gcry_cipher_close($88);
+              $89 = HEAP32[$3>>2]|0;
+              __gcry_cipher_close($89);
+              $$036 = 0;
+              STACKTOP = sp;return ($$036|0);
+             }
+            }
+           } while(0);
+           $54 = HEAP32[$2>>2]|0;
+           __gcry_cipher_close($54);
+           $55 = HEAP32[$3>>2]|0;
+           __gcry_cipher_close($55);
+           $$036 = 60158;
+           STACKTOP = sp;return ($$036|0);
+          }
+         } while(0);
+         $50 = HEAP32[$2>>2]|0;
+         __gcry_cipher_close($50);
+         $51 = HEAP32[$3>>2]|0;
+         __gcry_cipher_close($51);
+         $$036 = 60142;
+         STACKTOP = sp;return ($$036|0);
+        }
+       } while(0);
+       $45 = HEAP32[$2>>2]|0;
+       __gcry_cipher_close($45);
+       $46 = HEAP32[$3>>2]|0;
+       __gcry_cipher_close($46);
+       $$036 = 60125;
+       STACKTOP = sp;return ($$036|0);
+      }
+     } while(0);
+     $40 = HEAP32[$2>>2]|0;
+     __gcry_cipher_close($40);
+     $41 = HEAP32[$3>>2]|0;
+     __gcry_cipher_close($41);
+     $$036 = 60109;
+     STACKTOP = sp;return ($$036|0);
+    }
+   }
+   $30 = HEAP32[$2>>2]|0;
+   __gcry_cipher_close($30);
+   $31 = HEAP32[$3>>2]|0;
+   __gcry_cipher_close($31);
+   $$036 = 60102;
+   STACKTOP = sp;return ($$036|0);
+  } else {
+   $22 = $21;
+  }
+ } else {
+  $17 = HEAP32[$2>>2]|0;
+  $22 = $17;
+ }
+ __gcry_cipher_close($22);
+ $23 = HEAP32[$3>>2]|0;
+ __gcry_cipher_close($23);
+ $$036 = 60094;
+ STACKTOP = sp;return ($$036|0);
+}
+function __gcry_aes_ctr_enc($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$06383 = 0, $$06982 = 0, $$07081 = 0, $$084 = 0, $10 = 0, $100 = 0, $101 
= 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 
= 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0;
+ var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 
= 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 
= 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0;
+ var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, 
$139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, 
$146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0;
+ var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, 
$157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $17 = 0, $18 = 0, 
$19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
+ var $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, $40 = 
0, $41 = 0, $42 = 0, $43 = 0;
+ var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, 
$51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 
0, $6 = 0, $60 = 0, $61 = 0;
+ var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, 
$7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, 
$78 = 0, $79 = 0, $8 = 0;
+ var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, 
$88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, 
$96 = 0, $97 = 0, $98 = 0;
+ var $99 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $5 = sp;
+ $6 = ((($0)) + 496|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($7|0)==(0|0);
+ if (!($8)) {
+  FUNCTION_TABLE_v[$7 & 127]();
+ }
+ $9 = ((($0)) + 488|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ($4|0)==(0);
+ if ($11) {
+  $12 = $5;
+  $13 = $12;
+  HEAP32[$13>>2] = 0;
+  $14 = (($12) + 4)|0;
+  $15 = $14;
+  HEAP32[$15>>2] = 0;
+  $16 = ((($5)) + 8|0);
+  $17 = $16;
+  $18 = $17;
+  HEAP32[$18>>2] = 0;
+  $19 = (($17) + 4)|0;
+  $20 = $19;
+  HEAP32[$20>>2] = 0;
+  STACKTOP = sp;return;
+ }
+ $21 = ((($5)) + 4|0);
+ $22 = ((($5)) + 8|0);
+ $23 = ((($5)) + 12|0);
+ $24 = ((($5)) + 1|0);
+ $25 = ((($5)) + 2|0);
+ $26 = ((($5)) + 3|0);
+ $27 = ((($5)) + 4|0);
+ $28 = ((($27)) + 1|0);
+ $29 = ((($27)) + 2|0);
+ $30 = ((($27)) + 3|0);
+ $31 = ((($5)) + 8|0);
+ $32 = ((($31)) + 1|0);
+ $33 = ((($31)) + 2|0);
+ $34 = ((($31)) + 3|0);
+ $35 = ((($5)) + 12|0);
+ $36 = ((($35)) + 1|0);
+ $37 = ((($35)) + 2|0);
+ $38 = ((($35)) + 3|0);
+ $$06383 = $2;$$06982 = $3;$$084 = $4;
+ while(1) {
+  $39 = (FUNCTION_TABLE_iiii[$10 & 127]($0,$5,$1)|0);
+  $40 = $$06383;
+  $41 = $$06982;
+  $42 = $40 | $41;
+  $43 = $42 & 3;
+  $44 = ($43|0)==(0);
+  if ($44) {
+   $45 = HEAP32[$5>>2]|0;
+   $46 = ((($$06982)) + 4|0);
+   $47 = HEAP32[$$06982>>2]|0;
+   $48 = $47 ^ $45;
+   $49 = ((($$06383)) + 4|0);
+   HEAP32[$$06383>>2] = $48;
+   $50 = HEAP32[$21>>2]|0;
+   $51 = ((($$06982)) + 8|0);
+   $52 = HEAP32[$46>>2]|0;
+   $53 = $52 ^ $50;
+   $54 = ((($$06383)) + 8|0);
+   HEAP32[$49>>2] = $53;
+   $55 = HEAP32[$22>>2]|0;
+   $56 = ((($$06982)) + 12|0);
+   $57 = HEAP32[$51>>2]|0;
+   $58 = $57 ^ $55;
+   $59 = ((($$06383)) + 12|0);
+   HEAP32[$54>>2] = $58;
+   $60 = HEAP32[$23>>2]|0;
+   $61 = HEAP32[$56>>2]|0;
+   $62 = $61 ^ $60;
+   HEAP32[$59>>2] = $62;
+  } else {
+   $63 = HEAP8[$5>>0]|0;
+   $64 = ((($$06982)) + 1|0);
+   $65 = HEAP8[$$06982>>0]|0;
+   $66 = $65 ^ $63;
+   $67 = ((($$06383)) + 1|0);
+   HEAP8[$$06383>>0] = $66;
+   $68 = HEAP8[$24>>0]|0;
+   $69 = ((($$06982)) + 2|0);
+   $70 = HEAP8[$64>>0]|0;
+   $71 = $70 ^ $68;
+   $72 = ((($$06383)) + 2|0);
+   HEAP8[$67>>0] = $71;
+   $73 = HEAP8[$25>>0]|0;
+   $74 = ((($$06982)) + 3|0);
+   $75 = HEAP8[$69>>0]|0;
+   $76 = $75 ^ $73;
+   $77 = ((($$06383)) + 3|0);
+   HEAP8[$72>>0] = $76;
+   $78 = HEAP8[$26>>0]|0;
+   $79 = ((($$06982)) + 4|0);
+   $80 = HEAP8[$74>>0]|0;
+   $81 = $80 ^ $78;
+   $82 = ((($$06383)) + 4|0);
+   HEAP8[$77>>0] = $81;
+   $83 = HEAP8[$27>>0]|0;
+   $84 = ((($$06982)) + 5|0);
+   $85 = HEAP8[$79>>0]|0;
+   $86 = $85 ^ $83;
+   $87 = ((($$06383)) + 5|0);
+   HEAP8[$82>>0] = $86;
+   $88 = HEAP8[$28>>0]|0;
+   $89 = ((($$06982)) + 6|0);
+   $90 = HEAP8[$84>>0]|0;
+   $91 = $90 ^ $88;
+   $92 = ((($$06383)) + 6|0);
+   HEAP8[$87>>0] = $91;
+   $93 = HEAP8[$29>>0]|0;
+   $94 = ((($$06982)) + 7|0);
+   $95 = HEAP8[$89>>0]|0;
+   $96 = $95 ^ $93;
+   $97 = ((($$06383)) + 7|0);
+   HEAP8[$92>>0] = $96;
+   $98 = HEAP8[$30>>0]|0;
+   $99 = ((($$06982)) + 8|0);
+   $100 = HEAP8[$94>>0]|0;
+   $101 = $100 ^ $98;
+   $102 = ((($$06383)) + 8|0);
+   HEAP8[$97>>0] = $101;
+   $103 = HEAP8[$31>>0]|0;
+   $104 = ((($$06982)) + 9|0);
+   $105 = HEAP8[$99>>0]|0;
+   $106 = $105 ^ $103;
+   $107 = ((($$06383)) + 9|0);
+   HEAP8[$102>>0] = $106;
+   $108 = HEAP8[$32>>0]|0;
+   $109 = ((($$06982)) + 10|0);
+   $110 = HEAP8[$104>>0]|0;
+   $111 = $110 ^ $108;
+   $112 = ((($$06383)) + 10|0);
+   HEAP8[$107>>0] = $111;
+   $113 = HEAP8[$33>>0]|0;
+   $114 = ((($$06982)) + 11|0);
+   $115 = HEAP8[$109>>0]|0;
+   $116 = $115 ^ $113;
+   $117 = ((($$06383)) + 11|0);
+   HEAP8[$112>>0] = $116;
+   $118 = HEAP8[$34>>0]|0;
+   $119 = ((($$06982)) + 12|0);
+   $120 = HEAP8[$114>>0]|0;
+   $121 = $120 ^ $118;
+   $122 = ((($$06383)) + 12|0);
+   HEAP8[$117>>0] = $121;
+   $123 = HEAP8[$35>>0]|0;
+   $124 = ((($$06982)) + 13|0);
+   $125 = HEAP8[$119>>0]|0;
+   $126 = $125 ^ $123;
+   $127 = ((($$06383)) + 13|0);
+   HEAP8[$122>>0] = $126;
+   $128 = HEAP8[$36>>0]|0;
+   $129 = ((($$06982)) + 14|0);
+   $130 = HEAP8[$124>>0]|0;
+   $131 = $130 ^ $128;
+   $132 = ((($$06383)) + 14|0);
+   HEAP8[$127>>0] = $131;
+   $133 = HEAP8[$37>>0]|0;
+   $134 = ((($$06982)) + 15|0);
+   $135 = HEAP8[$129>>0]|0;
+   $136 = $135 ^ $133;
+   $137 = ((($$06383)) + 15|0);
+   HEAP8[$132>>0] = $136;
+   $138 = HEAP8[$38>>0]|0;
+   $139 = HEAP8[$134>>0]|0;
+   $140 = $139 ^ $138;
+   HEAP8[$137>>0] = $140;
+  }
+  $141 = ((($$06383)) + 16|0);
+  $$07081 = 16;
+  while(1) {
+   $142 = (($$07081) + -1)|0;
+   $143 = (($1) + ($142)|0);
+   $144 = HEAP8[$143>>0]|0;
+   $145 = (($144) + 1)<<24>>24;
+   HEAP8[$143>>0] = $145;
+   $146 = ($145<<24>>24)==(0);
+   $147 = ($$07081>>>0)>(1);
+   $or$cond = $146 & $147;
+   if ($or$cond) {
+    $$07081 = $142;
+   } else {
+    break;
+   }
+  }
+  $148 = ((($$06982)) + 16|0);
+  $149 = (($$084) + -1)|0;
+  $150 = ($149|0)==(0);
+  if ($150) {
+   break;
+  } else {
+   $$06383 = $141;$$06982 = $148;$$084 = $149;
+  }
+ }
+ $151 = $5;
+ $152 = $151;
+ HEAP32[$152>>2] = 0;
+ $153 = (($151) + 4)|0;
+ $154 = $153;
+ HEAP32[$154>>2] = 0;
+ $155 = ((($5)) + 8|0);
+ $156 = $155;
+ $157 = $156;
+ HEAP32[$157>>2] = 0;
+ $158 = (($156) + 4)|0;
+ $159 = $158;
+ HEAP32[$159>>2] = 0;
+ $160 = ($39|0)==(0);
+ if ($160) {
+  STACKTOP = sp;return;
+ }
+ $161 = (($39) + 16)|0;
+ ___gcry_burn_stack($161);
+ STACKTOP = sp;return;
+}
+function __gcry_aes_cbc_dec($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$05775 = 0, $$06374 = 0, $$076 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 
0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 
0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0;
+ var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 
= 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 
= 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0;
+ var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 
= 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 
= 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0;
+ var $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, 
$158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, 
$165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0;
+ var $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 
= 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 
= 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0;
+ var $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 
= 0, $195 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, 
$27 = 0, $28 = 0, $29 = 0, $30 = 0;
+ var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, 
$39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 
0, $48 = 0, $49 = 0, $5 = 0;
+ var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, 
$58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, 
$66 = 0, $67 = 0, $68 = 0;
+ var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, 
$76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, 
$84 = 0, $85 = 0, $86 = 0;
+ var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, 
$94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $5 = sp;
+ _check_decryption_preparation($0);
+ $6 = ((($0)) + 500|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($7|0)==(0|0);
+ if (!($8)) {
+  FUNCTION_TABLE_v[$7 & 127]();
+ }
+ $9 = ((($0)) + 492|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ($4|0)==(0);
+ if ($11) {
+  $12 = $5;
+  $13 = $12;
+  HEAP32[$13>>2] = 0;
+  $14 = (($12) + 4)|0;
+  $15 = $14;
+  HEAP32[$15>>2] = 0;
+  $16 = ((($5)) + 8|0);
+  $17 = $16;
+  $18 = $17;
+  HEAP32[$18>>2] = 0;
+  $19 = (($17) + 4)|0;
+  $20 = $19;
+  HEAP32[$20>>2] = 0;
+  STACKTOP = sp;return;
+ }
+ $21 = $1;
+ $22 = ((($5)) + 4|0);
+ $23 = ((($1)) + 4|0);
+ $24 = ((($5)) + 8|0);
+ $25 = ((($1)) + 8|0);
+ $26 = ((($5)) + 12|0);
+ $27 = ((($1)) + 12|0);
+ $28 = ((($5)) + 1|0);
+ $29 = ((($1)) + 1|0);
+ $30 = ((($5)) + 2|0);
+ $31 = ((($1)) + 2|0);
+ $32 = ((($5)) + 3|0);
+ $33 = ((($1)) + 3|0);
+ $34 = ((($5)) + 4|0);
+ $35 = ((($1)) + 4|0);
+ $36 = ((($5)) + 5|0);
+ $37 = ((($1)) + 5|0);
+ $38 = ((($5)) + 6|0);
+ $39 = ((($1)) + 6|0);
+ $40 = ((($5)) + 7|0);
+ $41 = ((($1)) + 7|0);
+ $42 = ((($5)) + 8|0);
+ $43 = ((($1)) + 8|0);
+ $44 = ((($5)) + 9|0);
+ $45 = ((($1)) + 9|0);
+ $46 = ((($5)) + 10|0);
+ $47 = ((($1)) + 10|0);
+ $48 = ((($5)) + 11|0);
+ $49 = ((($1)) + 11|0);
+ $50 = ((($5)) + 12|0);
+ $51 = ((($1)) + 12|0);
+ $52 = ((($5)) + 13|0);
+ $53 = ((($1)) + 13|0);
+ $54 = ((($5)) + 14|0);
+ $55 = ((($1)) + 14|0);
+ $56 = ((($5)) + 15|0);
+ $57 = ((($1)) + 15|0);
+ $$05775 = $2;$$06374 = $3;$$076 = $4;
+ while(1) {
+  $58 = (FUNCTION_TABLE_iiii[$10 & 127]($0,$5,$$06374)|0);
+  $59 = $$06374;
+  $60 = $$05775;
+  $61 = $59 | $21;
+  $62 = $61 | $60;
+  $63 = $62 & 3;
+  $64 = ($63|0)==(0);
+  if ($64) {
+   $65 = ((($$06374)) + 4|0);
+   $66 = HEAP32[$$06374>>2]|0;
+   $67 = HEAP32[$1>>2]|0;
+   $68 = HEAP32[$5>>2]|0;
+   $69 = $68 ^ $67;
+   $70 = ((($$05775)) + 4|0);
+   HEAP32[$$05775>>2] = $69;
+   HEAP32[$1>>2] = $66;
+   $71 = ((($$06374)) + 8|0);
+   $72 = HEAP32[$65>>2]|0;
+   $73 = HEAP32[$23>>2]|0;
+   $74 = HEAP32[$22>>2]|0;
+   $75 = $74 ^ $73;
+   $76 = ((($$05775)) + 8|0);
+   HEAP32[$70>>2] = $75;
+   HEAP32[$23>>2] = $72;
+   $77 = ((($$06374)) + 12|0);
+   $78 = HEAP32[$71>>2]|0;
+   $79 = HEAP32[$25>>2]|0;
+   $80 = HEAP32[$24>>2]|0;
+   $81 = $80 ^ $79;
+   $82 = ((($$05775)) + 12|0);
+   HEAP32[$76>>2] = $81;
+   HEAP32[$25>>2] = $78;
+   $83 = HEAP32[$77>>2]|0;
+   $84 = HEAP32[$27>>2]|0;
+   $85 = HEAP32[$26>>2]|0;
+   $86 = $85 ^ $84;
+   HEAP32[$82>>2] = $86;
+   HEAP32[$27>>2] = $83;
+  } else {
+   $87 = ((($$06374)) + 1|0);
+   $88 = HEAP8[$$06374>>0]|0;
+   $89 = HEAP8[$1>>0]|0;
+   $90 = HEAP8[$5>>0]|0;
+   $91 = $90 ^ $89;
+   $92 = ((($$05775)) + 1|0);
+   HEAP8[$$05775>>0] = $91;
+   HEAP8[$1>>0] = $88;
+   $93 = ((($$06374)) + 2|0);
+   $94 = HEAP8[$87>>0]|0;
+   $95 = HEAP8[$29>>0]|0;
+   $96 = HEAP8[$28>>0]|0;
+   $97 = $96 ^ $95;
+   $98 = ((($$05775)) + 2|0);
+   HEAP8[$92>>0] = $97;
+   HEAP8[$29>>0] = $94;
+   $99 = ((($$06374)) + 3|0);
+   $100 = HEAP8[$93>>0]|0;
+   $101 = HEAP8[$31>>0]|0;
+   $102 = HEAP8[$30>>0]|0;
+   $103 = $102 ^ $101;
+   $104 = ((($$05775)) + 3|0);
+   HEAP8[$98>>0] = $103;
+   HEAP8[$31>>0] = $100;
+   $105 = ((($$06374)) + 4|0);
+   $106 = HEAP8[$99>>0]|0;
+   $107 = HEAP8[$33>>0]|0;
+   $108 = HEAP8[$32>>0]|0;
+   $109 = $108 ^ $107;
+   $110 = ((($$05775)) + 4|0);
+   HEAP8[$104>>0] = $109;
+   HEAP8[$33>>0] = $106;
+   $111 = ((($$06374)) + 5|0);
+   $112 = HEAP8[$105>>0]|0;
+   $113 = HEAP8[$35>>0]|0;
+   $114 = HEAP8[$34>>0]|0;
+   $115 = $114 ^ $113;
+   $116 = ((($$05775)) + 5|0);
+   HEAP8[$110>>0] = $115;
+   HEAP8[$35>>0] = $112;
+   $117 = ((($$06374)) + 6|0);
+   $118 = HEAP8[$111>>0]|0;
+   $119 = HEAP8[$37>>0]|0;
+   $120 = HEAP8[$36>>0]|0;
+   $121 = $120 ^ $119;
+   $122 = ((($$05775)) + 6|0);
+   HEAP8[$116>>0] = $121;
+   HEAP8[$37>>0] = $118;
+   $123 = ((($$06374)) + 7|0);
+   $124 = HEAP8[$117>>0]|0;
+   $125 = HEAP8[$39>>0]|0;
+   $126 = HEAP8[$38>>0]|0;
+   $127 = $126 ^ $125;
+   $128 = ((($$05775)) + 7|0);
+   HEAP8[$122>>0] = $127;
+   HEAP8[$39>>0] = $124;
+   $129 = ((($$06374)) + 8|0);
+   $130 = HEAP8[$123>>0]|0;
+   $131 = HEAP8[$41>>0]|0;
+   $132 = HEAP8[$40>>0]|0;
+   $133 = $132 ^ $131;
+   $134 = ((($$05775)) + 8|0);
+   HEAP8[$128>>0] = $133;
+   HEAP8[$41>>0] = $130;
+   $135 = ((($$06374)) + 9|0);
+   $136 = HEAP8[$129>>0]|0;
+   $137 = HEAP8[$43>>0]|0;
+   $138 = HEAP8[$42>>0]|0;
+   $139 = $138 ^ $137;
+   $140 = ((($$05775)) + 9|0);
+   HEAP8[$134>>0] = $139;
+   HEAP8[$43>>0] = $136;
+   $141 = ((($$06374)) + 10|0);
+   $142 = HEAP8[$135>>0]|0;
+   $143 = HEAP8[$45>>0]|0;
+   $144 = HEAP8[$44>>0]|0;
+   $145 = $144 ^ $143;
+   $146 = ((($$05775)) + 10|0);
+   HEAP8[$140>>0] = $145;
+   HEAP8[$45>>0] = $142;
+   $147 = ((($$06374)) + 11|0);
+   $148 = HEAP8[$141>>0]|0;
+   $149 = HEAP8[$47>>0]|0;
+   $150 = HEAP8[$46>>0]|0;
+   $151 = $150 ^ $149;
+   $152 = ((($$05775)) + 11|0);
+   HEAP8[$146>>0] = $151;
+   HEAP8[$47>>0] = $148;
+   $153 = ((($$06374)) + 12|0);
+   $154 = HEAP8[$147>>0]|0;
+   $155 = HEAP8[$49>>0]|0;
+   $156 = HEAP8[$48>>0]|0;
+   $157 = $156 ^ $155;
+   $158 = ((($$05775)) + 12|0);
+   HEAP8[$152>>0] = $157;
+   HEAP8[$49>>0] = $154;
+   $159 = ((($$06374)) + 13|0);
+   $160 = HEAP8[$153>>0]|0;
+   $161 = HEAP8[$51>>0]|0;
+   $162 = HEAP8[$50>>0]|0;
+   $163 = $162 ^ $161;
+   $164 = ((($$05775)) + 13|0);
+   HEAP8[$158>>0] = $163;
+   HEAP8[$51>>0] = $160;
+   $165 = ((($$06374)) + 14|0);
+   $166 = HEAP8[$159>>0]|0;
+   $167 = HEAP8[$53>>0]|0;
+   $168 = HEAP8[$52>>0]|0;
+   $169 = $168 ^ $167;
+   $170 = ((($$05775)) + 14|0);
+   HEAP8[$164>>0] = $169;
+   HEAP8[$53>>0] = $166;
+   $171 = ((($$06374)) + 15|0);
+   $172 = HEAP8[$165>>0]|0;
+   $173 = HEAP8[$55>>0]|0;
+   $174 = HEAP8[$54>>0]|0;
+   $175 = $174 ^ $173;
+   $176 = ((($$05775)) + 15|0);
+   HEAP8[$170>>0] = $175;
+   HEAP8[$55>>0] = $172;
+   $177 = HEAP8[$171>>0]|0;
+   $178 = HEAP8[$57>>0]|0;
+   $179 = HEAP8[$56>>0]|0;
+   $180 = $179 ^ $178;
+   HEAP8[$176>>0] = $180;
+   HEAP8[$57>>0] = $177;
+  }
+  $181 = ((($$06374)) + 16|0);
+  $182 = ((($$05775)) + 16|0);
+  $183 = (($$076) + -1)|0;
+  $184 = ($183|0)==(0);
+  if ($184) {
+   break;
+  } else {
+   $$05775 = $182;$$06374 = $181;$$076 = $183;
+  }
+ }
+ $185 = $5;
+ $186 = $185;
+ HEAP32[$186>>2] = 0;
+ $187 = (($185) + 4)|0;
+ $188 = $187;
+ HEAP32[$188>>2] = 0;
+ $189 = ((($5)) + 8|0);
+ $190 = $189;
+ $191 = $190;
+ HEAP32[$191>>2] = 0;
+ $192 = (($190) + 4)|0;
+ $193 = $192;
+ HEAP32[$193>>2] = 0;
+ $194 = ($58|0)==(0);
+ if ($194) {
+  STACKTOP = sp;return;
+ }
+ $195 = (($58) + 16)|0;
+ ___gcry_burn_stack($195);
+ STACKTOP = sp;return;
+}
+function __gcry_aes_cfb_dec($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$02831 = 0, $$02930 = 0, $$032 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 
0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 
0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0;
+ var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 
= 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 
= 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0;
+ var $133 = 0, $134 = 0, $135 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 
0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 
= 0, $28 = 0, $29 = 0, $30 = 0;
+ var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, 
$39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 
0, $48 = 0, $49 = 0, $5 = 0;
+ var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, 
$58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, 
$66 = 0, $67 = 0, $68 = 0;
+ var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, 
$76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, 
$84 = 0, $85 = 0, $86 = 0;
+ var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, 
$94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = ((($0)) + 496|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ($6|0)==(0|0);
+ if (!($7)) {
+  FUNCTION_TABLE_v[$6 & 127]();
+ }
+ $8 = ((($0)) + 488|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ($4|0)==(0);
+ if ($10) {
+  return;
+ }
+ $11 = $1;
+ $12 = ((($1)) + 4|0);
+ $13 = ((($1)) + 8|0);
+ $14 = ((($1)) + 12|0);
+ $15 = ((($1)) + 1|0);
+ $16 = ((($1)) + 2|0);
+ $17 = ((($1)) + 3|0);
+ $18 = ((($1)) + 5|0);
+ $19 = ((($1)) + 6|0);
+ $20 = ((($1)) + 7|0);
+ $21 = ((($1)) + 9|0);
+ $22 = ((($1)) + 10|0);
+ $23 = ((($1)) + 11|0);
+ $24 = ((($1)) + 13|0);
+ $25 = ((($1)) + 14|0);
+ $26 = ((($1)) + 15|0);
+ $$02831 = $3;$$02930 = $2;$$032 = $4;
+ while(1) {
+  $27 = (FUNCTION_TABLE_iiii[$9 & 127]($0,$1,$1)|0);
+  $28 = $$02831;
+  $29 = $$02930;
+  $30 = $29 | $11;
+  $31 = $30 | $28;
+  $32 = $31 & 3;
+  $33 = ($32|0)==(0);
+  if ($33) {
+   $34 = ((($$02831)) + 4|0);
+   $35 = HEAP32[$$02831>>2]|0;
+   $36 = HEAP32[$1>>2]|0;
+   $37 = $36 ^ $35;
+   $38 = ((($$02930)) + 4|0);
+   HEAP32[$$02930>>2] = $37;
+   HEAP32[$1>>2] = $35;
+   $39 = ((($$02831)) + 8|0);
+   $40 = HEAP32[$34>>2]|0;
+   $41 = HEAP32[$12>>2]|0;
+   $42 = $41 ^ $40;
+   $43 = ((($$02930)) + 8|0);
+   HEAP32[$38>>2] = $42;
+   HEAP32[$12>>2] = $40;
+   $44 = ((($$02831)) + 12|0);
+   $45 = HEAP32[$39>>2]|0;
+   $46 = HEAP32[$13>>2]|0;
+   $47 = $46 ^ $45;
+   $48 = ((($$02930)) + 12|0);
+   HEAP32[$43>>2] = $47;
+   HEAP32[$13>>2] = $45;
+   $49 = HEAP32[$44>>2]|0;
+   $50 = HEAP32[$14>>2]|0;
+   $51 = $50 ^ $49;
+   HEAP32[$48>>2] = $51;
+   HEAP32[$14>>2] = $49;
+  } else {
+   $52 = ((($$02831)) + 1|0);
+   $53 = HEAP8[$$02831>>0]|0;
+   $54 = HEAP8[$1>>0]|0;
+   $55 = $54 ^ $53;
+   $56 = ((($$02930)) + 1|0);
+   HEAP8[$$02930>>0] = $55;
+   HEAP8[$1>>0] = $53;
+   $57 = ((($$02831)) + 2|0);
+   $58 = HEAP8[$52>>0]|0;
+   $59 = HEAP8[$15>>0]|0;
+   $60 = $59 ^ $58;
+   $61 = ((($$02930)) + 2|0);
+   HEAP8[$56>>0] = $60;
+   HEAP8[$15>>0] = $58;
+   $62 = ((($$02831)) + 3|0);
+   $63 = HEAP8[$57>>0]|0;
+   $64 = HEAP8[$16>>0]|0;
+   $65 = $64 ^ $63;
+   $66 = ((($$02930)) + 3|0);
+   HEAP8[$61>>0] = $65;
+   HEAP8[$16>>0] = $63;
+   $67 = ((($$02831)) + 4|0);
+   $68 = HEAP8[$62>>0]|0;
+   $69 = HEAP8[$17>>0]|0;
+   $70 = $69 ^ $68;
+   $71 = ((($$02930)) + 4|0);
+   HEAP8[$66>>0] = $70;
+   HEAP8[$17>>0] = $68;
+   $72 = ((($$02831)) + 5|0);
+   $73 = HEAP8[$67>>0]|0;
+   $74 = HEAP8[$12>>0]|0;
+   $75 = $74 ^ $73;
+   $76 = ((($$02930)) + 5|0);
+   HEAP8[$71>>0] = $75;
+   HEAP8[$12>>0] = $73;
+   $77 = ((($$02831)) + 6|0);
+   $78 = HEAP8[$72>>0]|0;
+   $79 = HEAP8[$18>>0]|0;
+   $80 = $79 ^ $78;
+   $81 = ((($$02930)) + 6|0);
+   HEAP8[$76>>0] = $80;
+   HEAP8[$18>>0] = $78;
+   $82 = ((($$02831)) + 7|0);
+   $83 = HEAP8[$77>>0]|0;
+   $84 = HEAP8[$19>>0]|0;
+   $85 = $84 ^ $83;
+   $86 = ((($$02930)) + 7|0);
+   HEAP8[$81>>0] = $85;
+   HEAP8[$19>>0] = $83;
+   $87 = ((($$02831)) + 8|0);
+   $88 = HEAP8[$82>>0]|0;
+   $89 = HEAP8[$20>>0]|0;
+   $90 = $89 ^ $88;
+   $91 = ((($$02930)) + 8|0);
+   HEAP8[$86>>0] = $90;
+   HEAP8[$20>>0] = $88;
+   $92 = ((($$02831)) + 9|0);
+   $93 = HEAP8[$87>>0]|0;
+   $94 = HEAP8[$13>>0]|0;
+   $95 = $94 ^ $93;
+   $96 = ((($$02930)) + 9|0);
+   HEAP8[$91>>0] = $95;
+   HEAP8[$13>>0] = $93;
+   $97 = ((($$02831)) + 10|0);
+   $98 = HEAP8[$92>>0]|0;
+   $99 = HEAP8[$21>>0]|0;
+   $100 = $99 ^ $98;
+   $101 = ((($$02930)) + 10|0);
+   HEAP8[$96>>0] = $100;
+   HEAP8[$21>>0] = $98;
+   $102 = ((($$02831)) + 11|0);
+   $103 = HEAP8[$97>>0]|0;
+   $104 = HEAP8[$22>>0]|0;
+   $105 = $104 ^ $103;
+   $106 = ((($$02930)) + 11|0);
+   HEAP8[$101>>0] = $105;
+   HEAP8[$22>>0] = $103;
+   $107 = ((($$02831)) + 12|0);
+   $108 = HEAP8[$102>>0]|0;
+   $109 = HEAP8[$23>>0]|0;
+   $110 = $109 ^ $108;
+   $111 = ((($$02930)) + 12|0);
+   HEAP8[$106>>0] = $110;
+   HEAP8[$23>>0] = $108;
+   $112 = ((($$02831)) + 13|0);
+   $113 = HEAP8[$107>>0]|0;
+   $114 = HEAP8[$14>>0]|0;
+   $115 = $114 ^ $113;
+   $116 = ((($$02930)) + 13|0);
+   HEAP8[$111>>0] = $115;
+   HEAP8[$14>>0] = $113;
+   $117 = ((($$02831)) + 14|0);
+   $118 = HEAP8[$112>>0]|0;
+   $119 = HEAP8[$24>>0]|0;
+   $120 = $119 ^ $118;
+   $121 = ((($$02930)) + 14|0);
+   HEAP8[$116>>0] = $120;
+   HEAP8[$24>>0] = $118;
+   $122 = ((($$02831)) + 15|0);
+   $123 = HEAP8[$117>>0]|0;
+   $124 = HEAP8[$25>>0]|0;
+   $125 = $124 ^ $123;
+   $126 = ((($$02930)) + 15|0);
+   HEAP8[$121>>0] = $125;
+   HEAP8[$25>>0] = $123;
+   $127 = HEAP8[$122>>0]|0;
+   $128 = HEAP8[$26>>0]|0;
+   $129 = $128 ^ $127;
+   HEAP8[$126>>0] = $129;
+   HEAP8[$26>>0] = $127;
+  }
+  $130 = ((($$02930)) + 16|0);
+  $131 = ((($$02831)) + 16|0);
+  $132 = (($$032) + -1)|0;
+  $133 = ($132|0)==(0);
+  if ($133) {
+   break;
+  } else {
+   $$02831 = $131;$$02930 = $130;$$032 = $132;
+  }
+ }
+ $134 = ($27|0)==(0);
+ if ($134) {
+  return;
+ }
+ $135 = (($27) + 16)|0;
+ ___gcry_burn_stack($135);
+ return;
+}
+function _do_encrypt($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0$lcssa$i = 0, $$01$i = 0, $$sroa$045$0$lcssa$i = 0, $$sroa$045$05$i = 
0, $$sroa$116$0$lcssa$i = 0, $$sroa$116$02$i = 0, $$sroa$48$0$lcssa$i = 0, 
$$sroa$48$04$i = 0, $$sroa$86$0$lcssa$i = 0, $$sroa$86$03$i = 0, $10 = 0, $100 
= 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 
= 0;
+ var $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;
+ var $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 
= 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 
= 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0;
+ var $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 
= 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 
= 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0;
+ var $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 
= 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 
= 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0;
+ var $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, 
$188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, 
$195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0;
+ var $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 
= 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 
= 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0;
+ var $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 
= 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 
= 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0;
+ var $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 
= 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 
= 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0;
+ var $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 
= 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 
= 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0;
+ var $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, 
$279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, 
$286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0;
+ var $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, 
$297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, 
$303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0;
+ var $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 
= 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 
= 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0;
+ var $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 
= 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 
= 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0;
+ var $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 
= 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 
= 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0;
+ var $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, 
$369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, 
$376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0;
+ var $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, 
$387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, 
$394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0;
+ var $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 
0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 
0, $412 = 0, $413 = 0, $414 = 0, $415 = 0;
+ var $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 
= 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 
= 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0;
+ var $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 
= 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 
= 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0;
+ var $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, 
$459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, 
$466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0;
+ var $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, 
$477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, 
$484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0;
+ var $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 
= 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 
0, $502 = 0, $503 = 0, $504 = 0, $505 = 0;
+ var $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 
= 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 
= 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, 
$64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, 
$72 = 0, $73 = 0, $74 = 0;
+ var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, 
$82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, 
$90 = 0, $91 = 0, $92 = 0;
+ var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, 
sp = 0;
+ sp = STACKTOP;
+ $3 = ((($0)) + 480|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ((($2)) + 3|0);
+ $6 = HEAP8[$5>>0]|0;
+ $7 = $6&255;
+ $8 = $7 << 24;
+ $9 = ((($2)) + 2|0);
+ $10 = HEAP8[$9>>0]|0;
+ $11 = $10&255;
+ $12 = $11 << 16;
+ $13 = $12 | $8;
+ $14 = ((($2)) + 1|0);
+ $15 = HEAP8[$14>>0]|0;
+ $16 = $15&255;
+ $17 = $16 << 8;
+ $18 = $13 | $17;
+ $19 = HEAP8[$2>>0]|0;
+ $20 = $19&255;
+ $21 = $18 | $20;
+ $22 = ((($2)) + 4|0);
+ $23 = ((($2)) + 7|0);
+ $24 = HEAP8[$23>>0]|0;
+ $25 = $24&255;
+ $26 = $25 << 24;
+ $27 = ((($2)) + 6|0);
+ $28 = HEAP8[$27>>0]|0;
+ $29 = $28&255;
+ $30 = $29 << 16;
+ $31 = $30 | $26;
+ $32 = ((($2)) + 5|0);
+ $33 = HEAP8[$32>>0]|0;
+ $34 = $33&255;
+ $35 = $34 << 8;
+ $36 = $31 | $35;
+ $37 = HEAP8[$22>>0]|0;
+ $38 = $37&255;
+ $39 = $36 | $38;
+ $40 = ((($2)) + 8|0);
+ $41 = ((($2)) + 11|0);
+ $42 = HEAP8[$41>>0]|0;
+ $43 = $42&255;
+ $44 = $43 << 24;
+ $45 = ((($2)) + 10|0);
+ $46 = HEAP8[$45>>0]|0;
+ $47 = $46&255;
+ $48 = $47 << 16;
+ $49 = $48 | $44;
+ $50 = ((($2)) + 9|0);
+ $51 = HEAP8[$50>>0]|0;
+ $52 = $51&255;
+ $53 = $52 << 8;
+ $54 = $49 | $53;
+ $55 = HEAP8[$40>>0]|0;
+ $56 = $55&255;
+ $57 = $54 | $56;
+ $58 = ((($2)) + 12|0);
+ $59 = ((($2)) + 15|0);
+ $60 = HEAP8[$59>>0]|0;
+ $61 = $60&255;
+ $62 = $61 << 24;
+ $63 = ((($2)) + 14|0);
+ $64 = HEAP8[$63>>0]|0;
+ $65 = $64&255;
+ $66 = $65 << 16;
+ $67 = $66 | $62;
+ $68 = ((($2)) + 13|0);
+ $69 = HEAP8[$68>>0]|0;
+ $70 = $69&255;
+ $71 = $70 << 8;
+ $72 = $67 | $71;
+ $73 = HEAP8[$58>>0]|0;
+ $74 = $73&255;
+ $75 = $72 | $74;
+ $76 = HEAP32[$0>>2]|0;
+ $77 = $76 ^ $21;
+ $78 = ((($0)) + 4|0);
+ $79 = HEAP32[$78>>2]|0;
+ $80 = $79 ^ $39;
+ $81 = ((($0)) + 8|0);
+ $82 = HEAP32[$81>>2]|0;
+ $83 = $82 ^ $57;
+ $84 = ((($0)) + 12|0);
+ $85 = HEAP32[$84>>2]|0;
+ $86 = $85 ^ $75;
+ $87 = $77 & 255;
+ $88 = (5216 + ($87<<2)|0);
+ $89 = HEAP32[$88>>2]|0;
+ $90 = $77 >>> 8;
+ $91 = $90 & 255;
+ $92 = (5216 + ($91<<2)|0);
+ $93 = HEAP32[$92>>2]|0;
+ $94 = $93 << 8;
+ $95 = $93 >>> 24;
+ $96 = $94 | $95;
+ $97 = $77 >>> 16;
+ $98 = $97 & 255;
+ $99 = (5216 + ($98<<2)|0);
+ $100 = HEAP32[$99>>2]|0;
+ $101 = $100 << 16;
+ $102 = $100 >>> 16;
+ $103 = $101 | $102;
+ $104 = $77 >>> 24;
+ $105 = (5216 + ($104<<2)|0);
+ $106 = HEAP32[$105>>2]|0;
+ $107 = $106 << 24;
+ $108 = $106 >>> 8;
+ $109 = $107 | $108;
+ $110 = ((($0)) + 16|0);
+ $111 = HEAP32[$110>>2]|0;
+ $112 = $111 ^ $89;
+ $113 = $80 & 255;
+ $114 = (5216 + ($113<<2)|0);
+ $115 = HEAP32[$114>>2]|0;
+ $116 = $109 ^ $115;
+ $117 = $80 >>> 8;
+ $118 = $117 & 255;
+ $119 = (5216 + ($118<<2)|0);
+ $120 = HEAP32[$119>>2]|0;
+ $121 = $120 << 8;
+ $122 = $120 >>> 24;
+ $123 = $121 | $122;
+ $124 = $112 ^ $123;
+ $125 = $80 >>> 16;
+ $126 = $125 & 255;
+ $127 = (5216 + ($126<<2)|0);
+ $128 = HEAP32[$127>>2]|0;
+ $129 = $128 << 16;
+ $130 = $128 >>> 16;
+ $131 = $129 | $130;
+ $132 = $131 ^ $96;
+ $133 = $80 >>> 24;
+ $134 = (5216 + ($133<<2)|0);
+ $135 = HEAP32[$134>>2]|0;
+ $136 = $135 << 24;
+ $137 = $135 >>> 8;
+ $138 = $136 | $137;
+ $139 = $138 ^ $103;
+ $140 = ((($0)) + 20|0);
+ $141 = HEAP32[$140>>2]|0;
+ $142 = $116 ^ $141;
+ $143 = $83 & 255;
+ $144 = (5216 + ($143<<2)|0);
+ $145 = HEAP32[$144>>2]|0;
+ $146 = $139 ^ $145;
+ $147 = $83 >>> 8;
+ $148 = $147 & 255;
+ $149 = (5216 + ($148<<2)|0);
+ $150 = HEAP32[$149>>2]|0;
+ $151 = $150 << 8;
+ $152 = $150 >>> 24;
+ $153 = $151 | $152;
+ $154 = $142 ^ $153;
+ $155 = $83 >>> 16;
+ $156 = $155 & 255;
+ $157 = (5216 + ($156<<2)|0);
+ $158 = HEAP32[$157>>2]|0;
+ $159 = $158 << 16;
+ $160 = $158 >>> 16;
+ $161 = $159 | $160;
+ $162 = $124 ^ $161;
+ $163 = $83 >>> 24;
+ $164 = (5216 + ($163<<2)|0);
+ $165 = HEAP32[$164>>2]|0;
+ $166 = $165 << 24;
+ $167 = $165 >>> 8;
+ $168 = $166 | $167;
+ $169 = $132 ^ $168;
+ $170 = ((($0)) + 24|0);
+ $171 = HEAP32[$170>>2]|0;
+ $172 = $146 ^ $171;
+ $173 = $86 & 255;
+ $174 = (5216 + ($173<<2)|0);
+ $175 = HEAP32[$174>>2]|0;
+ $176 = $169 ^ $175;
+ $177 = $86 >>> 8;
+ $178 = $177 & 255;
+ $179 = (5216 + ($178<<2)|0);
+ $180 = HEAP32[$179>>2]|0;
+ $181 = $180 << 8;
+ $182 = $180 >>> 24;
+ $183 = $181 | $182;
+ $184 = $172 ^ $183;
+ $185 = $86 >>> 16;
+ $186 = $185 & 255;
+ $187 = (5216 + ($186<<2)|0);
+ $188 = HEAP32[$187>>2]|0;
+ $189 = $188 << 16;
+ $190 = $188 >>> 16;
+ $191 = $189 | $190;
+ $192 = $154 ^ $191;
+ $193 = $86 >>> 24;
+ $194 = (5216 + ($193<<2)|0);
+ $195 = HEAP32[$194>>2]|0;
+ $196 = $195 << 24;
+ $197 = $195 >>> 8;
+ $198 = $196 | $197;
+ $199 = $162 ^ $198;
+ $200 = ((($0)) + 28|0);
+ $201 = HEAP32[$200>>2]|0;
+ $202 = $176 ^ $201;
+ $203 = ($4|0)>(2);
+ if ($203) {
+  $$01$i = 2;$$sroa$045$05$i = $199;$$sroa$116$02$i = $202;$$sroa$48$04$i = 
$192;$$sroa$86$03$i = $184;
+  while(1) {
+   $204 = $$sroa$045$05$i & 255;
+   $205 = (5216 + ($204<<2)|0);
+   $206 = HEAP32[$205>>2]|0;
+   $207 = $$sroa$045$05$i >>> 8;
+   $208 = $207 & 255;
+   $209 = (5216 + ($208<<2)|0);
+   $210 = HEAP32[$209>>2]|0;
+   $211 = $210 << 8;
+   $212 = $210 >>> 24;
+   $213 = $211 | $212;
+   $214 = $$sroa$045$05$i >>> 16;
+   $215 = $214 & 255;
+   $216 = (5216 + ($215<<2)|0);
+   $217 = HEAP32[$216>>2]|0;
+   $218 = $217 << 16;
+   $219 = $217 >>> 16;
+   $220 = $218 | $219;
+   $221 = $$sroa$045$05$i >>> 24;
+   $222 = (5216 + ($221<<2)|0);
+   $223 = HEAP32[$222>>2]|0;
+   $224 = $223 << 24;
+   $225 = $223 >>> 8;
+   $226 = $224 | $225;
+   $227 = (($0) + ($$01$i<<4)|0);
+   $228 = HEAP32[$227>>2]|0;
+   $229 = $228 ^ $206;
+   $230 = $$sroa$48$04$i & 255;
+   $231 = (5216 + ($230<<2)|0);
+   $232 = HEAP32[$231>>2]|0;
+   $233 = $226 ^ $232;
+   $234 = $$sroa$48$04$i >>> 8;
+   $235 = $234 & 255;
+   $236 = (5216 + ($235<<2)|0);
+   $237 = HEAP32[$236>>2]|0;
+   $238 = $237 << 8;
+   $239 = $237 >>> 24;
+   $240 = $238 | $239;
+   $241 = $229 ^ $240;
+   $242 = $$sroa$48$04$i >>> 16;
+   $243 = $242 & 255;
+   $244 = (5216 + ($243<<2)|0);
+   $245 = HEAP32[$244>>2]|0;
+   $246 = $245 << 16;
+   $247 = $245 >>> 16;
+   $248 = $246 | $247;
+   $249 = $248 ^ $213;
+   $250 = $$sroa$48$04$i >>> 24;
+   $251 = (5216 + ($250<<2)|0);
+   $252 = HEAP32[$251>>2]|0;
+   $253 = $252 << 24;
+   $254 = $252 >>> 8;
+   $255 = $253 | $254;
+   $256 = $255 ^ $220;
+   $257 = (((($0) + ($$01$i<<4)|0)) + 4|0);
+   $258 = HEAP32[$257>>2]|0;
+   $259 = $233 ^ $258;
+   $260 = $$sroa$86$03$i & 255;
+   $261 = (5216 + ($260<<2)|0);
+   $262 = HEAP32[$261>>2]|0;
+   $263 = $256 ^ $262;
+   $264 = $$sroa$86$03$i >>> 8;
+   $265 = $264 & 255;
+   $266 = (5216 + ($265<<2)|0);
+   $267 = HEAP32[$266>>2]|0;
+   $268 = $267 << 8;
+   $269 = $267 >>> 24;
+   $270 = $268 | $269;
+   $271 = $259 ^ $270;
+   $272 = $$sroa$86$03$i >>> 16;
+   $273 = $272 & 255;
+   $274 = (5216 + ($273<<2)|0);
+   $275 = HEAP32[$274>>2]|0;
+   $276 = $275 << 16;
+   $277 = $275 >>> 16;
+   $278 = $276 | $277;
+   $279 = $241 ^ $278;
+   $280 = $$sroa$86$03$i >>> 24;
+   $281 = (5216 + ($280<<2)|0);
+   $282 = HEAP32[$281>>2]|0;
+   $283 = $282 << 24;
+   $284 = $282 >>> 8;
+   $285 = $283 | $284;
+   $286 = $249 ^ $285;
+   $287 = (((($0) + ($$01$i<<4)|0)) + 8|0);
+   $288 = HEAP32[$287>>2]|0;
+   $289 = $263 ^ $288;
+   $290 = $$sroa$116$02$i & 255;
+   $291 = (5216 + ($290<<2)|0);
+   $292 = HEAP32[$291>>2]|0;
+   $293 = $286 ^ $292;
+   $294 = $$sroa$116$02$i >>> 8;
+   $295 = $294 & 255;
+   $296 = (5216 + ($295<<2)|0);
+   $297 = HEAP32[$296>>2]|0;
+   $298 = $297 << 8;
+   $299 = $297 >>> 24;
+   $300 = $298 | $299;
+   $301 = $289 ^ $300;
+   $302 = $$sroa$116$02$i >>> 16;
+   $303 = $302 & 255;
+   $304 = (5216 + ($303<<2)|0);
+   $305 = HEAP32[$304>>2]|0;
+   $306 = $305 << 16;
+   $307 = $305 >>> 16;
+   $308 = $306 | $307;
+   $309 = $271 ^ $308;
+   $310 = $$sroa$116$02$i >>> 24;
+   $311 = (5216 + ($310<<2)|0);
+   $312 = HEAP32[$311>>2]|0;
+   $313 = $312 << 24;
+   $314 = $312 >>> 8;
+   $315 = $313 | $314;
+   $316 = $279 ^ $315;
+   $317 = (((($0) + ($$01$i<<4)|0)) + 12|0);
+   $318 = HEAP32[$317>>2]|0;
+   $319 = $293 ^ $318;
+   $320 = $$01$i | 1;
+   $321 = $316 & 255;
+   $322 = (5216 + ($321<<2)|0);
+   $323 = HEAP32[$322>>2]|0;
+   $324 = $316 >>> 8;
+   $325 = $324 & 255;
+   $326 = (5216 + ($325<<2)|0);
+   $327 = HEAP32[$326>>2]|0;
+   $328 = $327 << 8;
+   $329 = $327 >>> 24;
+   $330 = $328 | $329;
+   $331 = $316 >>> 16;
+   $332 = $331 & 255;
+   $333 = (5216 + ($332<<2)|0);
+   $334 = HEAP32[$333>>2]|0;
+   $335 = $334 << 16;
+   $336 = $334 >>> 16;
+   $337 = $335 | $336;
+   $338 = $316 >>> 24;
+   $339 = (5216 + ($338<<2)|0);
+   $340 = HEAP32[$339>>2]|0;
+   $341 = $340 << 24;
+   $342 = $340 >>> 8;
+   $343 = $341 | $342;
+   $344 = (($0) + ($320<<4)|0);
+   $345 = HEAP32[$344>>2]|0;
+   $346 = $345 ^ $323;
+   $347 = $309 & 255;
+   $348 = (5216 + ($347<<2)|0);
+   $349 = HEAP32[$348>>2]|0;
+   $350 = $343 ^ $349;
+   $351 = $309 >>> 8;
+   $352 = $351 & 255;
+   $353 = (5216 + ($352<<2)|0);
+   $354 = HEAP32[$353>>2]|0;
+   $355 = $354 << 8;
+   $356 = $354 >>> 24;
+   $357 = $355 | $356;
+   $358 = $346 ^ $357;
+   $359 = $309 >>> 16;
+   $360 = $359 & 255;
+   $361 = (5216 + ($360<<2)|0);
+   $362 = HEAP32[$361>>2]|0;
+   $363 = $362 << 16;
+   $364 = $362 >>> 16;
+   $365 = $363 | $364;
+   $366 = $365 ^ $330;
+   $367 = $309 >>> 24;
+   $368 = (5216 + ($367<<2)|0);
+   $369 = HEAP32[$368>>2]|0;
+   $370 = $369 << 24;
+   $371 = $369 >>> 8;
+   $372 = $370 | $371;
+   $373 = $372 ^ $337;
+   $374 = (((($0) + ($320<<4)|0)) + 4|0);
+   $375 = HEAP32[$374>>2]|0;
+   $376 = $350 ^ $375;
+   $377 = $301 & 255;
+   $378 = (5216 + ($377<<2)|0);
+   $379 = HEAP32[$378>>2]|0;
+   $380 = $373 ^ $379;
+   $381 = $301 >>> 8;
+   $382 = $381 & 255;
+   $383 = (5216 + ($382<<2)|0);
+   $384 = HEAP32[$383>>2]|0;
+   $385 = $384 << 8;
+   $386 = $384 >>> 24;
+   $387 = $385 | $386;
+   $388 = $376 ^ $387;
+   $389 = $301 >>> 16;
+   $390 = $389 & 255;
+   $391 = (5216 + ($390<<2)|0);
+   $392 = HEAP32[$391>>2]|0;
+   $393 = $392 << 16;
+   $394 = $392 >>> 16;
+   $395 = $393 | $394;
+   $396 = $358 ^ $395;
+   $397 = $301 >>> 24;
+   $398 = (5216 + ($397<<2)|0);
+   $399 = HEAP32[$398>>2]|0;
+   $400 = $399 << 24;
+   $401 = $399 >>> 8;
+   $402 = $400 | $401;
+   $403 = $366 ^ $402;
+   $404 = (((($0) + ($320<<4)|0)) + 8|0);
+   $405 = HEAP32[$404>>2]|0;
+   $406 = $380 ^ $405;
+   $407 = $319 & 255;
+   $408 = (5216 + ($407<<2)|0);
+   $409 = HEAP32[$408>>2]|0;
+   $410 = $403 ^ $409;
+   $411 = $319 >>> 8;
+   $412 = $411 & 255;
+   $413 = (5216 + ($412<<2)|0);
+   $414 = HEAP32[$413>>2]|0;
+   $415 = $414 << 8;
+   $416 = $414 >>> 24;
+   $417 = $415 | $416;
+   $418 = $406 ^ $417;
+   $419 = $319 >>> 16;
+   $420 = $419 & 255;
+   $421 = (5216 + ($420<<2)|0);
+   $422 = HEAP32[$421>>2]|0;
+   $423 = $422 << 16;
+   $424 = $422 >>> 16;
+   $425 = $423 | $424;
+   $426 = $388 ^ $425;
+   $427 = $319 >>> 24;
+   $428 = (5216 + ($427<<2)|0);
+   $429 = HEAP32[$428>>2]|0;
+   $430 = $429 << 24;
+   $431 = $429 >>> 8;
+   $432 = $430 | $431;
+   $433 = $396 ^ $432;
+   $434 = (((($0) + ($320<<4)|0)) + 12|0);
+   $435 = HEAP32[$434>>2]|0;
+   $436 = $410 ^ $435;
+   $437 = (($$01$i) + 2)|0;
+   $438 = ($437|0)<($4|0);
+   if ($438) {
+    $$01$i = $437;$$sroa$045$05$i = $433;$$sroa$116$02$i = $436;$$sroa$48$04$i 
= $426;$$sroa$86$03$i = $418;
+   } else {
+    break;
+   }
+  }
+  $439 = (($4) + 1)|0;
+  $440 = $439 & -2;
+  $$0$lcssa$i = $440;$$sroa$045$0$lcssa$i = $433;$$sroa$116$0$lcssa$i = 
$436;$$sroa$48$0$lcssa$i = $426;$$sroa$86$0$lcssa$i = $418;
+ } else {
+  $$0$lcssa$i = 2;$$sroa$045$0$lcssa$i = $199;$$sroa$116$0$lcssa$i = 
$202;$$sroa$48$0$lcssa$i = $192;$$sroa$86$0$lcssa$i = $184;
+ }
+ $441 = $$sroa$045$0$lcssa$i << 2;
+ $442 = $441 & 1020;
+ $443 = ((5217) + ($442)|0);
+ $444 = HEAP8[$443>>0]|0;
+ $445 = $444&255;
+ $446 = $$sroa$045$0$lcssa$i >>> 6;
+ $447 = $446 & 1020;
+ $448 = ((5217) + ($447)|0);
+ $449 = HEAP8[$448>>0]|0;
+ $450 = $449&255;
+ $451 = $450 << 8;
+ $452 = $$sroa$045$0$lcssa$i >>> 14;
+ $453 = $452 & 1020;
+ $454 = ((5217) + ($453)|0);
+ $455 = HEAP8[$454>>0]|0;
+ $456 = $455&255;
+ $457 = $456 << 16;
+ $458 = $$sroa$045$0$lcssa$i >>> 24;
+ $459 = $458 << 2;
+ $460 = ((5217) + ($459)|0);
+ $461 = HEAP8[$460>>0]|0;
+ $462 = $461&255;
+ $463 = $462 << 24;
+ $464 = (($0) + ($$0$lcssa$i<<4)|0);
+ $465 = HEAP32[$464>>2]|0;
+ $466 = $465 ^ $445;
+ $467 = $$sroa$48$0$lcssa$i << 2;
+ $468 = $467 & 1020;
+ $469 = ((5217) + ($468)|0);
+ $470 = HEAP8[$469>>0]|0;
+ $471 = $470&255;
+ $472 = $463 | $471;
+ $473 = $$sroa$48$0$lcssa$i >>> 6;
+ $474 = $473 & 1020;
+ $475 = ((5217) + ($474)|0);
+ $476 = HEAP8[$475>>0]|0;
+ $477 = $476&255;
+ $478 = $477 << 8;
+ $479 = $478 ^ $465;
+ $480 = $$sroa$48$0$lcssa$i >>> 14;
+ $481 = $480 & 1020;
+ $482 = ((5217) + ($481)|0);
+ $483 = HEAP8[$482>>0]|0;
+ $484 = $483&255;
+ $485 = $484 << 16;
+ $486 = $485 | $451;
+ $487 = $$sroa$48$0$lcssa$i >>> 24;
+ $488 = $487 << 2;
+ $489 = ((5217) + ($488)|0);
+ $490 = HEAP8[$489>>0]|0;
+ $491 = $490&255;
+ $492 = $491 << 24;
+ $493 = $492 | $457;
+ $494 = (((($0) + ($$0$lcssa$i<<4)|0)) + 4|0);
+ $495 = HEAP32[$494>>2]|0;
+ $496 = $495 ^ $472;
+ $497 = $$sroa$86$0$lcssa$i << 2;
+ $498 = $497 & 1020;
+ $499 = ((5217) + ($498)|0);
+ $500 = HEAP8[$499>>0]|0;
+ $501 = $500&255;
+ $502 = $493 | $501;
+ $503 = $$sroa$86$0$lcssa$i >>> 6;
+ $504 = $503 & 1020;
+ $505 = ((5217) + ($504)|0);
+ $506 = HEAP8[$505>>0]|0;
+ $507 = $506&255;
+ $508 = $507 << 8;
+ $509 = $508 ^ $495;
+ $510 = $$sroa$86$0$lcssa$i >>> 14;
+ $511 = $510 & 1020;
+ $512 = ((5217) + ($511)|0);
+ $513 = HEAP8[$512>>0]|0;
+ $514 = $513&255;
+ $515 = $514 << 16;
+ $516 = $515 ^ $465;
+ $517 = $$sroa$86$0$lcssa$i >>> 24;
+ $518 = $517 << 2;
+ $519 = ((5217) + ($518)|0);
+ $520 = HEAP8[$519>>0]|0;
+ $521 = $520&255;
+ $522 = $521 << 24;
+ $523 = $486 | $522;
+ $524 = (((($0) + ($$0$lcssa$i<<4)|0)) + 8|0);
+ $525 = HEAP32[$524>>2]|0;
+ $526 = $525 ^ $502;
+ $527 = $$sroa$116$0$lcssa$i << 2;
+ $528 = $527 & 1020;
+ $529 = ((5217) + ($528)|0);
+ $530 = HEAP8[$529>>0]|0;
+ $531 = $530&255;
+ $532 = $523 | $531;
+ $533 = $$sroa$116$0$lcssa$i >>> 6;
+ $534 = $533 & 1020;
+ $535 = ((5217) + ($534)|0);
+ $536 = HEAP8[$535>>0]|0;
+ $537 = $536&255;
+ $538 = $537 << 8;
+ $539 = $538 ^ $526;
+ $540 = $$sroa$116$0$lcssa$i >>> 14;
+ $541 = $540 & 1020;
+ $542 = ((5217) + ($541)|0);
+ $543 = HEAP8[$542>>0]|0;
+ $544 = $543&255;
+ $545 = $544 << 16;
+ $546 = $545 ^ $495;
+ $547 = $$sroa$116$0$lcssa$i >>> 24;
+ $548 = $547 << 2;
+ $549 = ((5217) + ($548)|0);
+ $550 = HEAP8[$549>>0]|0;
+ $551 = $550&255;
+ $552 = $551 << 24;
+ $553 = $552 ^ $465;
+ $554 = (((($0) + ($$0$lcssa$i<<4)|0)) + 12|0);
+ $555 = HEAP32[$554>>2]|0;
+ $556 = $555 ^ $532;
+ $557 = $553 >>> 24;
+ $558 = $557&255;
+ $559 = ((($1)) + 3|0);
+ HEAP8[$559>>0] = $558;
+ $560 = $516 >>> 16;
+ $561 = $560&255;
+ $562 = ((($1)) + 2|0);
+ HEAP8[$562>>0] = $561;
+ $563 = $479 >>> 8;
+ $564 = $563&255;
+ $565 = ((($1)) + 1|0);
+ HEAP8[$565>>0] = $564;
+ $566 = $466&255;
+ HEAP8[$1>>0] = $566;
+ $567 = ((($1)) + 4|0);
+ $568 = $496 >>> 24;
+ $569 = $568&255;
+ $570 = ((($1)) + 7|0);
+ HEAP8[$570>>0] = $569;
+ $571 = $546 >>> 16;
+ $572 = $571&255;
+ $573 = ((($1)) + 6|0);
+ HEAP8[$573>>0] = $572;
+ $574 = $509 >>> 8;
+ $575 = $574&255;
+ $576 = ((($1)) + 5|0);
+ HEAP8[$576>>0] = $575;
+ $577 = $496&255;
+ HEAP8[$567>>0] = $577;
+ $578 = ((($1)) + 8|0);
+ $579 = $526 >>> 24;
+ $580 = $579&255;
+ $581 = ((($1)) + 11|0);
+ HEAP8[$581>>0] = $580;
+ $582 = $526 >>> 16;
+ $583 = $582&255;
+ $584 = ((($1)) + 10|0);
+ HEAP8[$584>>0] = $583;
+ $585 = $539 >>> 8;
+ $586 = $585&255;
+ $587 = ((($1)) + 9|0);
+ HEAP8[$587>>0] = $586;
+ $588 = $526&255;
+ HEAP8[$578>>0] = $588;
+ $589 = ((($1)) + 12|0);
+ $590 = $556 >>> 24;
+ $591 = $590&255;
+ $592 = ((($1)) + 15|0);
+ HEAP8[$592>>0] = $591;
+ $593 = $556 >>> 16;
+ $594 = $593&255;
+ $595 = ((($1)) + 14|0);
+ HEAP8[$595>>0] = $594;
+ $596 = $556 >>> 8;
+ $597 = $596&255;
+ $598 = ((($1)) + 13|0);
+ HEAP8[$598>>0] = $597;
+ $599 = $556&255;
+ HEAP8[$589>>0] = $599;
+ return 64;
+}
+function _do_decrypt($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0$i = 0, $$0$in$i = 0, $$sink = 0, $$sink15 = 0, $$sroa$045$0$i = 0, 
$$sroa$44$0$i = 0, $$sroa$82$0$i = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, 
$103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, 
$110 = 0;
+ var $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;
+ var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 
= 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 
= 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0;
+ var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 
= 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 
= 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0;
+ var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 
= 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 
= 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0;
+ var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 
= 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 
= 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0;
+ var $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, 
$209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, 
$216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0;
+ var $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, 
$227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, 
$234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0;
+ var $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 
= 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 
= 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0;
+ var $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;
+ var $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 
= 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 
= 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0;
+ var $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 
= 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 
= 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0;
+ var $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, 
$317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, 
$324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0;
+ var $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 
= 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 
= 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0;
+ var $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 
= 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 
= 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0;
+ var $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 
= 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 
= 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0;
+ var $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 
= 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 
= 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0;
+ var $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, 
$407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, 
$414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0;
+ var $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 
= 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 
= 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0;
+ var $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 
= 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 
= 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0;
+ var $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 
= 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 
= 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0;
+ var $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 
= 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 
= 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0;
+ var $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, 
$498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, 
$504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0;
+ var $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 
= 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 
= 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0;
+ var $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;
+ var $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;
+ var $563 = 0, $564 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, 
$62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, 
$70 = 0, $71 = 0, $72 = 0;
+ var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, 
$80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 
0, $89 = 0, $9 = 0, $90 = 0;
+ var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, 
$99 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($0)) + 480|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ((($2)) + 3|0);
+ $6 = HEAP8[$5>>0]|0;
+ $7 = $6&255;
+ $8 = $7 << 24;
+ $9 = ((($2)) + 2|0);
+ $10 = HEAP8[$9>>0]|0;
+ $11 = $10&255;
+ $12 = $11 << 16;
+ $13 = $12 | $8;
+ $14 = ((($2)) + 1|0);
+ $15 = HEAP8[$14>>0]|0;
+ $16 = $15&255;
+ $17 = $16 << 8;
+ $18 = $13 | $17;
+ $19 = HEAP8[$2>>0]|0;
+ $20 = $19&255;
+ $21 = $18 | $20;
+ $22 = ((($2)) + 4|0);
+ $23 = ((($2)) + 7|0);
+ $24 = HEAP8[$23>>0]|0;
+ $25 = $24&255;
+ $26 = $25 << 24;
+ $27 = ((($2)) + 6|0);
+ $28 = HEAP8[$27>>0]|0;
+ $29 = $28&255;
+ $30 = $29 << 16;
+ $31 = $30 | $26;
+ $32 = ((($2)) + 5|0);
+ $33 = HEAP8[$32>>0]|0;
+ $34 = $33&255;
+ $35 = $34 << 8;
+ $36 = $31 | $35;
+ $37 = HEAP8[$22>>0]|0;
+ $38 = $37&255;
+ $39 = $36 | $38;
+ $40 = ((($2)) + 8|0);
+ $41 = ((($2)) + 11|0);
+ $42 = HEAP8[$41>>0]|0;
+ $43 = $42&255;
+ $44 = $43 << 24;
+ $45 = ((($2)) + 10|0);
+ $46 = HEAP8[$45>>0]|0;
+ $47 = $46&255;
+ $48 = $47 << 16;
+ $49 = $48 | $44;
+ $50 = ((($2)) + 9|0);
+ $51 = HEAP8[$50>>0]|0;
+ $52 = $51&255;
+ $53 = $52 << 8;
+ $54 = $49 | $53;
+ $55 = HEAP8[$40>>0]|0;
+ $56 = $55&255;
+ $57 = $54 | $56;
+ $58 = ((($2)) + 12|0);
+ $59 = ((($2)) + 15|0);
+ $60 = HEAP8[$59>>0]|0;
+ $61 = $60&255;
+ $62 = $61 << 24;
+ $63 = ((($2)) + 14|0);
+ $64 = HEAP8[$63>>0]|0;
+ $65 = $64&255;
+ $66 = $65 << 16;
+ $67 = $66 | $62;
+ $68 = ((($2)) + 13|0);
+ $69 = HEAP8[$68>>0]|0;
+ $70 = $69&255;
+ $71 = $70 << 8;
+ $72 = $67 | $71;
+ $73 = HEAP8[$58>>0]|0;
+ $74 = $73&255;
+ $75 = $72 | $74;
+ $76 = ((($0)) + 240|0);
+ $77 = (($76) + ($4<<4)|0);
+ $78 = HEAP32[$77>>2]|0;
+ $79 = $78 ^ $21;
+ $80 = (((($76) + ($4<<4)|0)) + 4|0);
+ $81 = HEAP32[$80>>2]|0;
+ $82 = $81 ^ $39;
+ $83 = (((($76) + ($4<<4)|0)) + 8|0);
+ $84 = HEAP32[$83>>2]|0;
+ $85 = $84 ^ $57;
+ $86 = (((($76) + ($4<<4)|0)) + 12|0);
+ $87 = HEAP32[$86>>2]|0;
+ $$0$in$i = $4;$$sink = $87;$$sink15 = $75;$$sroa$045$0$i = $79;$$sroa$44$0$i 
= $82;$$sroa$82$0$i = $85;
+ while(1) {
+  $88 = $$sink ^ $$sink15;
+  $$0$i = (($$0$in$i) + -1)|0;
+  $89 = ($$0$in$i|0)>(2);
+  $90 = $$sroa$045$0$i & 255;
+  $91 = (38052 + ($90<<2)|0);
+  $92 = HEAP32[$91>>2]|0;
+  $93 = $$sroa$045$0$i >>> 8;
+  $94 = $93 & 255;
+  $95 = (38052 + ($94<<2)|0);
+  $96 = HEAP32[$95>>2]|0;
+  $97 = $96 << 8;
+  $98 = $96 >>> 24;
+  $99 = $97 | $98;
+  $100 = $$sroa$045$0$i >>> 16;
+  $101 = $100 & 255;
+  $102 = (38052 + ($101<<2)|0);
+  $103 = HEAP32[$102>>2]|0;
+  $104 = $103 << 16;
+  $105 = $103 >>> 16;
+  $106 = $104 | $105;
+  $107 = $$sroa$045$0$i >>> 24;
+  $108 = (38052 + ($107<<2)|0);
+  $109 = HEAP32[$108>>2]|0;
+  $110 = $109 << 24;
+  $111 = $109 >>> 8;
+  $112 = $110 | $111;
+  if (!($89)) {
+   break;
+  }
+  $113 = (($76) + ($$0$i<<4)|0);
+  $114 = HEAP32[$113>>2]|0;
+  $115 = $114 ^ $92;
+  $116 = $$sroa$44$0$i & 255;
+  $117 = (38052 + ($116<<2)|0);
+  $118 = HEAP32[$117>>2]|0;
+  $119 = $118 ^ $99;
+  $120 = $$sroa$44$0$i >>> 8;
+  $121 = $120 & 255;
+  $122 = (38052 + ($121<<2)|0);
+  $123 = HEAP32[$122>>2]|0;
+  $124 = $123 << 8;
+  $125 = $123 >>> 24;
+  $126 = $124 | $125;
+  $127 = $126 ^ $106;
+  $128 = $$sroa$44$0$i >>> 16;
+  $129 = $128 & 255;
+  $130 = (38052 + ($129<<2)|0);
+  $131 = HEAP32[$130>>2]|0;
+  $132 = $131 << 16;
+  $133 = $131 >>> 16;
+  $134 = $132 | $133;
+  $135 = $134 ^ $112;
+  $136 = $$sroa$44$0$i >>> 24;
+  $137 = (38052 + ($136<<2)|0);
+  $138 = HEAP32[$137>>2]|0;
+  $139 = $138 << 24;
+  $140 = $138 >>> 8;
+  $141 = $139 | $140;
+  $142 = $115 ^ $141;
+  $143 = (((($76) + ($$0$i<<4)|0)) + 4|0);
+  $144 = HEAP32[$143>>2]|0;
+  $145 = $119 ^ $144;
+  $146 = $$sroa$82$0$i & 255;
+  $147 = (38052 + ($146<<2)|0);
+  $148 = HEAP32[$147>>2]|0;
+  $149 = $127 ^ $148;
+  $150 = $$sroa$82$0$i >>> 8;
+  $151 = $150 & 255;
+  $152 = (38052 + ($151<<2)|0);
+  $153 = HEAP32[$152>>2]|0;
+  $154 = $153 << 8;
+  $155 = $153 >>> 24;
+  $156 = $154 | $155;
+  $157 = $135 ^ $156;
+  $158 = $$sroa$82$0$i >>> 16;
+  $159 = $158 & 255;
+  $160 = (38052 + ($159<<2)|0);
+  $161 = HEAP32[$160>>2]|0;
+  $162 = $161 << 16;
+  $163 = $161 >>> 16;
+  $164 = $162 | $163;
+  $165 = $142 ^ $164;
+  $166 = $$sroa$82$0$i >>> 24;
+  $167 = (38052 + ($166<<2)|0);
+  $168 = HEAP32[$167>>2]|0;
+  $169 = $168 << 24;
+  $170 = $168 >>> 8;
+  $171 = $169 | $170;
+  $172 = $145 ^ $171;
+  $173 = (((($76) + ($$0$i<<4)|0)) + 8|0);
+  $174 = HEAP32[$173>>2]|0;
+  $175 = $149 ^ $174;
+  $176 = $88 & 255;
+  $177 = (38052 + ($176<<2)|0);
+  $178 = HEAP32[$177>>2]|0;
+  $179 = $157 ^ $178;
+  $180 = $88 >>> 8;
+  $181 = $180 & 255;
+  $182 = (38052 + ($181<<2)|0);
+  $183 = HEAP32[$182>>2]|0;
+  $184 = $183 << 8;
+  $185 = $183 >>> 24;
+  $186 = $184 | $185;
+  $187 = $165 ^ $186;
+  $188 = $88 >>> 16;
+  $189 = $188 & 255;
+  $190 = (38052 + ($189<<2)|0);
+  $191 = HEAP32[$190>>2]|0;
+  $192 = $191 << 16;
+  $193 = $191 >>> 16;
+  $194 = $192 | $193;
+  $195 = $172 ^ $194;
+  $196 = $88 >>> 24;
+  $197 = (38052 + ($196<<2)|0);
+  $198 = HEAP32[$197>>2]|0;
+  $199 = $198 << 24;
+  $200 = $198 >>> 8;
+  $201 = $199 | $200;
+  $202 = $175 ^ $201;
+  $203 = (((($76) + ($$0$i<<4)|0)) + 12|0);
+  $204 = HEAP32[$203>>2]|0;
+  $205 = $179 ^ $204;
+  $206 = (($$0$in$i) + -2)|0;
+  $207 = $187 & 255;
+  $208 = (38052 + ($207<<2)|0);
+  $209 = HEAP32[$208>>2]|0;
+  $210 = $187 >>> 8;
+  $211 = $210 & 255;
+  $212 = (38052 + ($211<<2)|0);
+  $213 = HEAP32[$212>>2]|0;
+  $214 = $213 << 8;
+  $215 = $213 >>> 24;
+  $216 = $214 | $215;
+  $217 = $187 >>> 16;
+  $218 = $217 & 255;
+  $219 = (38052 + ($218<<2)|0);
+  $220 = HEAP32[$219>>2]|0;
+  $221 = $220 << 16;
+  $222 = $220 >>> 16;
+  $223 = $221 | $222;
+  $224 = $187 >>> 24;
+  $225 = (38052 + ($224<<2)|0);
+  $226 = HEAP32[$225>>2]|0;
+  $227 = $226 << 24;
+  $228 = $226 >>> 8;
+  $229 = $227 | $228;
+  $230 = (($76) + ($206<<4)|0);
+  $231 = HEAP32[$230>>2]|0;
+  $232 = $231 ^ $209;
+  $233 = $195 & 255;
+  $234 = (38052 + ($233<<2)|0);
+  $235 = HEAP32[$234>>2]|0;
+  $236 = $235 ^ $216;
+  $237 = $195 >>> 8;
+  $238 = $237 & 255;
+  $239 = (38052 + ($238<<2)|0);
+  $240 = HEAP32[$239>>2]|0;
+  $241 = $240 << 8;
+  $242 = $240 >>> 24;
+  $243 = $241 | $242;
+  $244 = $243 ^ $223;
+  $245 = $195 >>> 16;
+  $246 = $245 & 255;
+  $247 = (38052 + ($246<<2)|0);
+  $248 = HEAP32[$247>>2]|0;
+  $249 = $248 << 16;
+  $250 = $248 >>> 16;
+  $251 = $249 | $250;
+  $252 = $251 ^ $229;
+  $253 = $195 >>> 24;
+  $254 = (38052 + ($253<<2)|0);
+  $255 = HEAP32[$254>>2]|0;
+  $256 = $255 << 24;
+  $257 = $255 >>> 8;
+  $258 = $256 | $257;
+  $259 = $232 ^ $258;
+  $260 = (((($76) + ($206<<4)|0)) + 4|0);
+  $261 = HEAP32[$260>>2]|0;
+  $262 = $236 ^ $261;
+  $263 = $202 & 255;
+  $264 = (38052 + ($263<<2)|0);
+  $265 = HEAP32[$264>>2]|0;
+  $266 = $244 ^ $265;
+  $267 = $202 >>> 8;
+  $268 = $267 & 255;
+  $269 = (38052 + ($268<<2)|0);
+  $270 = HEAP32[$269>>2]|0;
+  $271 = $270 << 8;
+  $272 = $270 >>> 24;
+  $273 = $271 | $272;
+  $274 = $252 ^ $273;
+  $275 = $202 >>> 16;
+  $276 = $275 & 255;
+  $277 = (38052 + ($276<<2)|0);
+  $278 = HEAP32[$277>>2]|0;
+  $279 = $278 << 16;
+  $280 = $278 >>> 16;
+  $281 = $279 | $280;
+  $282 = $259 ^ $281;
+  $283 = $202 >>> 24;
+  $284 = (38052 + ($283<<2)|0);
+  $285 = HEAP32[$284>>2]|0;
+  $286 = $285 << 24;
+  $287 = $285 >>> 8;
+  $288 = $286 | $287;
+  $289 = $262 ^ $288;
+  $290 = (((($76) + ($206<<4)|0)) + 8|0);
+  $291 = HEAP32[$290>>2]|0;
+  $292 = $266 ^ $291;
+  $293 = $205 & 255;
+  $294 = (38052 + ($293<<2)|0);
+  $295 = HEAP32[$294>>2]|0;
+  $296 = $274 ^ $295;
+  $297 = $205 >>> 8;
+  $298 = $297 & 255;
+  $299 = (38052 + ($298<<2)|0);
+  $300 = HEAP32[$299>>2]|0;
+  $301 = $300 << 8;
+  $302 = $300 >>> 24;
+  $303 = $301 | $302;
+  $304 = $282 ^ $303;
+  $305 = $205 >>> 16;
+  $306 = $305 & 255;
+  $307 = (38052 + ($306<<2)|0);
+  $308 = HEAP32[$307>>2]|0;
+  $309 = $308 << 16;
+  $310 = $308 >>> 16;
+  $311 = $309 | $310;
+  $312 = $289 ^ $311;
+  $313 = $205 >>> 24;
+  $314 = (38052 + ($313<<2)|0);
+  $315 = HEAP32[$314>>2]|0;
+  $316 = $315 << 24;
+  $317 = $315 >>> 8;
+  $318 = $316 | $317;
+  $319 = $292 ^ $318;
+  $320 = (((($76) + ($206<<4)|0)) + 12|0);
+  $321 = HEAP32[$320>>2]|0;
+  $$0$in$i = $206;$$sink = $296;$$sink15 = $321;$$sroa$045$0$i = 
$304;$$sroa$44$0$i = $312;$$sroa$82$0$i = $319;
+ }
+ $322 = ((($0)) + 256|0);
+ $323 = HEAP32[$322>>2]|0;
+ $324 = $323 ^ $92;
+ $325 = $$sroa$44$0$i & 255;
+ $326 = (38052 + ($325<<2)|0);
+ $327 = HEAP32[$326>>2]|0;
+ $328 = $327 ^ $99;
+ $329 = $$sroa$44$0$i >>> 8;
+ $330 = $329 & 255;
+ $331 = (38052 + ($330<<2)|0);
+ $332 = HEAP32[$331>>2]|0;
+ $333 = $332 << 8;
+ $334 = $332 >>> 24;
+ $335 = $333 | $334;
+ $336 = $335 ^ $106;
+ $337 = $$sroa$44$0$i >>> 16;
+ $338 = $337 & 255;
+ $339 = (38052 + ($338<<2)|0);
+ $340 = HEAP32[$339>>2]|0;
+ $341 = $340 << 16;
+ $342 = $340 >>> 16;
+ $343 = $341 | $342;
+ $344 = $343 ^ $112;
+ $345 = $$sroa$44$0$i >>> 24;
+ $346 = (38052 + ($345<<2)|0);
+ $347 = HEAP32[$346>>2]|0;
+ $348 = $347 << 24;
+ $349 = $347 >>> 8;
+ $350 = $348 | $349;
+ $351 = $324 ^ $350;
+ $352 = ((($0)) + 260|0);
+ $353 = HEAP32[$352>>2]|0;
+ $354 = $328 ^ $353;
+ $355 = $$sroa$82$0$i & 255;
+ $356 = (38052 + ($355<<2)|0);
+ $357 = HEAP32[$356>>2]|0;
+ $358 = $336 ^ $357;
+ $359 = $$sroa$82$0$i >>> 8;
+ $360 = $359 & 255;
+ $361 = (38052 + ($360<<2)|0);
+ $362 = HEAP32[$361>>2]|0;
+ $363 = $362 << 8;
+ $364 = $362 >>> 24;
+ $365 = $363 | $364;
+ $366 = $344 ^ $365;
+ $367 = $$sroa$82$0$i >>> 16;
+ $368 = $367 & 255;
+ $369 = (38052 + ($368<<2)|0);
+ $370 = HEAP32[$369>>2]|0;
+ $371 = $370 << 16;
+ $372 = $370 >>> 16;
+ $373 = $371 | $372;
+ $374 = $351 ^ $373;
+ $375 = $$sroa$82$0$i >>> 24;
+ $376 = (38052 + ($375<<2)|0);
+ $377 = HEAP32[$376>>2]|0;
+ $378 = $377 << 24;
+ $379 = $377 >>> 8;
+ $380 = $378 | $379;
+ $381 = $354 ^ $380;
+ $382 = ((($0)) + 264|0);
+ $383 = HEAP32[$382>>2]|0;
+ $384 = $358 ^ $383;
+ $385 = $88 & 255;
+ $386 = (38052 + ($385<<2)|0);
+ $387 = HEAP32[$386>>2]|0;
+ $388 = $366 ^ $387;
+ $389 = $88 >>> 8;
+ $390 = $389 & 255;
+ $391 = (38052 + ($390<<2)|0);
+ $392 = HEAP32[$391>>2]|0;
+ $393 = $392 << 8;
+ $394 = $392 >>> 24;
+ $395 = $393 | $394;
+ $396 = $374 ^ $395;
+ $397 = $88 >>> 16;
+ $398 = $397 & 255;
+ $399 = (38052 + ($398<<2)|0);
+ $400 = HEAP32[$399>>2]|0;
+ $401 = $400 << 16;
+ $402 = $400 >>> 16;
+ $403 = $401 | $402;
+ $404 = $381 ^ $403;
+ $405 = $88 >>> 24;
+ $406 = (38052 + ($405<<2)|0);
+ $407 = HEAP32[$406>>2]|0;
+ $408 = $407 << 24;
+ $409 = $407 >>> 8;
+ $410 = $408 | $409;
+ $411 = $384 ^ $410;
+ $412 = ((($0)) + 268|0);
+ $413 = HEAP32[$412>>2]|0;
+ $414 = $388 ^ $413;
+ $415 = $396 & 255;
+ $416 = (39076 + ($415)|0);
+ $417 = HEAP8[$416>>0]|0;
+ $418 = $417&255;
+ $419 = $396 >>> 8;
+ $420 = $419 & 255;
+ $421 = (39076 + ($420)|0);
+ $422 = HEAP8[$421>>0]|0;
+ $423 = $422&255;
+ $424 = $423 << 8;
+ $425 = $396 >>> 16;
+ $426 = $425 & 255;
+ $427 = (39076 + ($426)|0);
+ $428 = HEAP8[$427>>0]|0;
+ $429 = $428&255;
+ $430 = $429 << 16;
+ $431 = $396 >>> 24;
+ $432 = (39076 + ($431)|0);
+ $433 = HEAP8[$432>>0]|0;
+ $434 = $433&255;
+ $435 = $434 << 24;
+ $436 = HEAP32[$76>>2]|0;
+ $437 = $436 ^ $418;
+ $438 = $404 & 255;
+ $439 = (39076 + ($438)|0);
+ $440 = HEAP8[$439>>0]|0;
+ $441 = $440&255;
+ $442 = $424 | $441;
+ $443 = $404 >>> 8;
+ $444 = $443 & 255;
+ $445 = (39076 + ($444)|0);
+ $446 = HEAP8[$445>>0]|0;
+ $447 = $446&255;
+ $448 = $447 << 8;
+ $449 = $448 | $430;
+ $450 = $404 >>> 16;
+ $451 = $450 & 255;
+ $452 = (39076 + ($451)|0);
+ $453 = HEAP8[$452>>0]|0;
+ $454 = $453&255;
+ $455 = $454 << 16;
+ $456 = $455 | $435;
+ $457 = $404 >>> 24;
+ $458 = (39076 + ($457)|0);
+ $459 = HEAP8[$458>>0]|0;
+ $460 = $459&255;
+ $461 = $460 << 24;
+ $462 = $461 ^ $436;
+ $463 = ((($76)) + 4|0);
+ $464 = HEAP32[$463>>2]|0;
+ $465 = $464 ^ $442;
+ $466 = $411 & 255;
+ $467 = (39076 + ($466)|0);
+ $468 = HEAP8[$467>>0]|0;
+ $469 = $468&255;
+ $470 = $449 | $469;
+ $471 = $411 >>> 8;
+ $472 = $471 & 255;
+ $473 = (39076 + ($472)|0);
+ $474 = HEAP8[$473>>0]|0;
+ $475 = $474&255;
+ $476 = $475 << 8;
+ $477 = $456 | $476;
+ $478 = $411 >>> 16;
+ $479 = $478 & 255;
+ $480 = (39076 + ($479)|0);
+ $481 = HEAP8[$480>>0]|0;
+ $482 = $481&255;
+ $483 = $482 << 16;
+ $484 = $483 ^ $436;
+ $485 = $411 >>> 24;
+ $486 = (39076 + ($485)|0);
+ $487 = HEAP8[$486>>0]|0;
+ $488 = $487&255;
+ $489 = $488 << 24;
+ $490 = $489 ^ $464;
+ $491 = ((($0)) + 248|0);
+ $492 = HEAP32[$491>>2]|0;
+ $493 = $492 ^ $470;
+ $494 = $414 & 255;
+ $495 = (39076 + ($494)|0);
+ $496 = HEAP8[$495>>0]|0;
+ $497 = $496&255;
+ $498 = $477 | $497;
+ $499 = $414 >>> 8;
+ $500 = $499 & 255;
+ $501 = (39076 + ($500)|0);
+ $502 = HEAP8[$501>>0]|0;
+ $503 = $502&255;
+ $504 = $503 << 8;
+ $505 = $504 ^ $436;
+ $506 = $414 >>> 16;
+ $507 = $506 & 255;
+ $508 = (39076 + ($507)|0);
+ $509 = HEAP8[$508>>0]|0;
+ $510 = $509&255;
+ $511 = $510 << 16;
+ $512 = $511 ^ $464;
+ $513 = $414 >>> 24;
+ $514 = (39076 + ($513)|0);
+ $515 = HEAP8[$514>>0]|0;
+ $516 = $515&255;
+ $517 = $516 << 24;
+ $518 = $517 ^ $493;
+ $519 = ((($0)) + 252|0);
+ $520 = HEAP32[$519>>2]|0;
+ $521 = $520 ^ $498;
+ $522 = $462 >>> 24;
+ $523 = $522&255;
+ $524 = ((($1)) + 3|0);
+ HEAP8[$524>>0] = $523;
+ $525 = $484 >>> 16;
+ $526 = $525&255;
+ $527 = ((($1)) + 2|0);
+ HEAP8[$527>>0] = $526;
+ $528 = $505 >>> 8;
+ $529 = $528&255;
+ $530 = ((($1)) + 1|0);
+ HEAP8[$530>>0] = $529;
+ $531 = $437&255;
+ HEAP8[$1>>0] = $531;
+ $532 = ((($1)) + 4|0);
+ $533 = $490 >>> 24;
+ $534 = $533&255;
+ $535 = ((($1)) + 7|0);
+ HEAP8[$535>>0] = $534;
+ $536 = $512 >>> 16;
+ $537 = $536&255;
+ $538 = ((($1)) + 6|0);
+ HEAP8[$538>>0] = $537;
+ $539 = $465 >>> 8;
+ $540 = $539&255;
+ $541 = ((($1)) + 5|0);
+ HEAP8[$541>>0] = $540;
+ $542 = $465&255;
+ HEAP8[$532>>0] = $542;
+ $543 = ((($1)) + 8|0);
+ $544 = $518 >>> 24;
+ $545 = $544&255;
+ $546 = ((($1)) + 11|0);
+ HEAP8[$546>>0] = $545;
+ $547 = $493 >>> 16;
+ $548 = $547&255;
+ $549 = ((($1)) + 10|0);
+ HEAP8[$549>>0] = $548;
+ $550 = $493 >>> 8;
+ $551 = $550&255;
+ $552 = ((($1)) + 9|0);
+ HEAP8[$552>>0] = $551;
+ $553 = $493&255;
+ HEAP8[$543>>0] = $553;
+ $554 = ((($1)) + 12|0);
+ $555 = $521 >>> 24;
+ $556 = $555&255;
+ $557 = ((($1)) + 15|0);
+ HEAP8[$557>>0] = $556;
+ $558 = $521 >>> 16;
+ $559 = $558&255;
+ $560 = ((($1)) + 14|0);
+ HEAP8[$560>>0] = $559;
+ $561 = $521 >>> 8;
+ $562 = $561&255;
+ $563 = ((($1)) + 13|0);
+ HEAP8[$563>>0] = $562;
+ $564 = $521&255;
+ HEAP8[$554>>0] = $564;
+ return 64;
+}
+function _prefetch_enc() {
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 
= 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 
= 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 
= 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP8[5216]|0;
+ $1 = HEAP8[(5248)>>0]|0;
+ $2 = HEAP8[(5280)>>0]|0;
+ $3 = HEAP8[(5312)>>0]|0;
+ $4 = HEAP8[(5344)>>0]|0;
+ $5 = HEAP8[(5376)>>0]|0;
+ $6 = HEAP8[(5408)>>0]|0;
+ $7 = HEAP8[(5440)>>0]|0;
+ $8 = HEAP8[(5472)>>0]|0;
+ $9 = HEAP8[(5504)>>0]|0;
+ $10 = HEAP8[(5536)>>0]|0;
+ $11 = HEAP8[(5568)>>0]|0;
+ $12 = HEAP8[(5600)>>0]|0;
+ $13 = HEAP8[(5632)>>0]|0;
+ $14 = HEAP8[(5664)>>0]|0;
+ $15 = HEAP8[(5696)>>0]|0;
+ $16 = HEAP8[(5728)>>0]|0;
+ $17 = HEAP8[(5760)>>0]|0;
+ $18 = HEAP8[(5792)>>0]|0;
+ $19 = HEAP8[(5824)>>0]|0;
+ $20 = HEAP8[(5856)>>0]|0;
+ $21 = HEAP8[(5888)>>0]|0;
+ $22 = HEAP8[(5920)>>0]|0;
+ $23 = HEAP8[(5952)>>0]|0;
+ $24 = HEAP8[(5984)>>0]|0;
+ $25 = HEAP8[(6016)>>0]|0;
+ $26 = HEAP8[(6048)>>0]|0;
+ $27 = HEAP8[(6080)>>0]|0;
+ $28 = HEAP8[(6112)>>0]|0;
+ $29 = HEAP8[(6144)>>0]|0;
+ $30 = HEAP8[(6176)>>0]|0;
+ $31 = HEAP8[(6208)>>0]|0;
+ $32 = HEAP8[(6239)>>0]|0;
+ return;
+}
+function _prefetch_dec() {
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 
= 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 
= 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, 
$34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, 
$6 = 0, $7 = 0, $8 = 0;
+ var $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP8[38052]|0;
+ $1 = HEAP8[(38084)>>0]|0;
+ $2 = HEAP8[(38116)>>0]|0;
+ $3 = HEAP8[(38148)>>0]|0;
+ $4 = HEAP8[(38180)>>0]|0;
+ $5 = HEAP8[(38212)>>0]|0;
+ $6 = HEAP8[(38244)>>0]|0;
+ $7 = HEAP8[(38276)>>0]|0;
+ $8 = HEAP8[(38308)>>0]|0;
+ $9 = HEAP8[(38340)>>0]|0;
+ $10 = HEAP8[(38372)>>0]|0;
+ $11 = HEAP8[(38404)>>0]|0;
+ $12 = HEAP8[(38436)>>0]|0;
+ $13 = HEAP8[(38468)>>0]|0;
+ $14 = HEAP8[(38500)>>0]|0;
+ $15 = HEAP8[(38532)>>0]|0;
+ $16 = HEAP8[(38564)>>0]|0;
+ $17 = HEAP8[(38596)>>0]|0;
+ $18 = HEAP8[(38628)>>0]|0;
+ $19 = HEAP8[(38660)>>0]|0;
+ $20 = HEAP8[(38692)>>0]|0;
+ $21 = HEAP8[(38724)>>0]|0;
+ $22 = HEAP8[(38756)>>0]|0;
+ $23 = HEAP8[(38788)>>0]|0;
+ $24 = HEAP8[(38820)>>0]|0;
+ $25 = HEAP8[(38852)>>0]|0;
+ $26 = HEAP8[(38884)>>0]|0;
+ $27 = HEAP8[(38916)>>0]|0;
+ $28 = HEAP8[(38948)>>0]|0;
+ $29 = HEAP8[(38980)>>0]|0;
+ $30 = HEAP8[(39012)>>0]|0;
+ $31 = HEAP8[(39044)>>0]|0;
+ $32 = HEAP8[(39076)>>0]|0;
+ $33 = HEAP8[(39108)>>0]|0;
+ $34 = HEAP8[(39140)>>0]|0;
+ $35 = HEAP8[(39172)>>0]|0;
+ $36 = HEAP8[(39204)>>0]|0;
+ $37 = HEAP8[(39236)>>0]|0;
+ $38 = HEAP8[(39268)>>0]|0;
+ $39 = HEAP8[(39300)>>0]|0;
+ $40 = HEAP8[(39331)>>0]|0;
+ return;
+}
+function __gcry_aes_cfb_enc($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$02831 = 0, $$02930 = 0, $$032 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 
0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 
0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0;
+ var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 
= 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 
= 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0;
+ var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $14 = 0, $15 
= 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, 
$24 = 0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 
0, $45 = 0, $46 = 0, $47 = 0;
+ var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, 
$55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, 
$63 = 0, $64 = 0, $65 = 0;
+ var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, 
$73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, 
$81 = 0, $82 = 0, $83 = 0;
+ var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, 
$91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = ((($0)) + 496|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ($6|0)==(0|0);
+ if (!($7)) {
+  FUNCTION_TABLE_v[$6 & 127]();
+ }
+ $8 = ((($0)) + 488|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ($4|0)==(0);
+ if ($10) {
+  return;
+ }
+ $11 = $1;
+ $12 = ((($1)) + 4|0);
+ $13 = ((($1)) + 8|0);
+ $14 = ((($1)) + 12|0);
+ $15 = ((($1)) + 1|0);
+ $16 = ((($1)) + 2|0);
+ $17 = ((($1)) + 3|0);
+ $18 = ((($1)) + 4|0);
+ $19 = ((($1)) + 5|0);
+ $20 = ((($1)) + 6|0);
+ $21 = ((($1)) + 7|0);
+ $22 = ((($1)) + 8|0);
+ $23 = ((($1)) + 9|0);
+ $24 = ((($1)) + 10|0);
+ $25 = ((($1)) + 11|0);
+ $26 = ((($1)) + 12|0);
+ $27 = ((($1)) + 13|0);
+ $28 = ((($1)) + 14|0);
+ $29 = ((($1)) + 15|0);
+ $$02831 = $3;$$02930 = $2;$$032 = $4;
+ while(1) {
+  $30 = (FUNCTION_TABLE_iiii[$9 & 127]($0,$1,$1)|0);
+  $31 = $$02831;
+  $32 = $$02930;
+  $33 = $32 | $11;
+  $34 = $33 | $31;
+  $35 = $34 & 3;
+  $36 = ($35|0)==(0);
+  if ($36) {
+   $37 = ((($$02831)) + 4|0);
+   $38 = HEAP32[$$02831>>2]|0;
+   $39 = HEAP32[$1>>2]|0;
+   $40 = $39 ^ $38;
+   HEAP32[$1>>2] = $40;
+   $41 = ((($$02930)) + 4|0);
+   HEAP32[$$02930>>2] = $40;
+   $42 = ((($$02831)) + 8|0);
+   $43 = HEAP32[$37>>2]|0;
+   $44 = HEAP32[$12>>2]|0;
+   $45 = $44 ^ $43;
+   HEAP32[$12>>2] = $45;
+   $46 = ((($$02930)) + 8|0);
+   HEAP32[$41>>2] = $45;
+   $47 = ((($$02831)) + 12|0);
+   $48 = HEAP32[$42>>2]|0;
+   $49 = HEAP32[$13>>2]|0;
+   $50 = $49 ^ $48;
+   HEAP32[$13>>2] = $50;
+   $51 = ((($$02930)) + 12|0);
+   HEAP32[$46>>2] = $50;
+   $52 = HEAP32[$47>>2]|0;
+   $53 = HEAP32[$14>>2]|0;
+   $54 = $53 ^ $52;
+   HEAP32[$14>>2] = $54;
+   HEAP32[$51>>2] = $54;
+  } else {
+   $55 = ((($$02831)) + 1|0);
+   $56 = HEAP8[$$02831>>0]|0;
+   $57 = HEAP8[$1>>0]|0;
+   $58 = $57 ^ $56;
+   HEAP8[$1>>0] = $58;
+   $59 = ((($$02930)) + 1|0);
+   HEAP8[$$02930>>0] = $58;
+   $60 = ((($$02831)) + 2|0);
+   $61 = HEAP8[$55>>0]|0;
+   $62 = HEAP8[$15>>0]|0;
+   $63 = $62 ^ $61;
+   HEAP8[$15>>0] = $63;
+   $64 = ((($$02930)) + 2|0);
+   HEAP8[$59>>0] = $63;
+   $65 = ((($$02831)) + 3|0);
+   $66 = HEAP8[$60>>0]|0;
+   $67 = HEAP8[$16>>0]|0;
+   $68 = $67 ^ $66;
+   HEAP8[$16>>0] = $68;
+   $69 = ((($$02930)) + 3|0);
+   HEAP8[$64>>0] = $68;
+   $70 = ((($$02831)) + 4|0);
+   $71 = HEAP8[$65>>0]|0;
+   $72 = HEAP8[$17>>0]|0;
+   $73 = $72 ^ $71;
+   HEAP8[$17>>0] = $73;
+   $74 = ((($$02930)) + 4|0);
+   HEAP8[$69>>0] = $73;
+   $75 = ((($$02831)) + 5|0);
+   $76 = HEAP8[$70>>0]|0;
+   $77 = HEAP8[$18>>0]|0;
+   $78 = $77 ^ $76;
+   HEAP8[$18>>0] = $78;
+   $79 = ((($$02930)) + 5|0);
+   HEAP8[$74>>0] = $78;
+   $80 = ((($$02831)) + 6|0);
+   $81 = HEAP8[$75>>0]|0;
+   $82 = HEAP8[$19>>0]|0;
+   $83 = $82 ^ $81;
+   HEAP8[$19>>0] = $83;
+   $84 = ((($$02930)) + 6|0);
+   HEAP8[$79>>0] = $83;
+   $85 = ((($$02831)) + 7|0);
+   $86 = HEAP8[$80>>0]|0;
+   $87 = HEAP8[$20>>0]|0;
+   $88 = $87 ^ $86;
+   HEAP8[$20>>0] = $88;
+   $89 = ((($$02930)) + 7|0);
+   HEAP8[$84>>0] = $88;
+   $90 = ((($$02831)) + 8|0);
+   $91 = HEAP8[$85>>0]|0;
+   $92 = HEAP8[$21>>0]|0;
+   $93 = $92 ^ $91;
+   HEAP8[$21>>0] = $93;
+   $94 = ((($$02930)) + 8|0);
+   HEAP8[$89>>0] = $93;
+   $95 = ((($$02831)) + 9|0);
+   $96 = HEAP8[$90>>0]|0;
+   $97 = HEAP8[$22>>0]|0;
+   $98 = $97 ^ $96;
+   HEAP8[$22>>0] = $98;
+   $99 = ((($$02930)) + 9|0);
+   HEAP8[$94>>0] = $98;
+   $100 = ((($$02831)) + 10|0);
+   $101 = HEAP8[$95>>0]|0;
+   $102 = HEAP8[$23>>0]|0;
+   $103 = $102 ^ $101;
+   HEAP8[$23>>0] = $103;
+   $104 = ((($$02930)) + 10|0);
+   HEAP8[$99>>0] = $103;
+   $105 = ((($$02831)) + 11|0);
+   $106 = HEAP8[$100>>0]|0;
+   $107 = HEAP8[$24>>0]|0;
+   $108 = $107 ^ $106;
+   HEAP8[$24>>0] = $108;
+   $109 = ((($$02930)) + 11|0);
+   HEAP8[$104>>0] = $108;
+   $110 = ((($$02831)) + 12|0);
+   $111 = HEAP8[$105>>0]|0;
+   $112 = HEAP8[$25>>0]|0;
+   $113 = $112 ^ $111;
+   HEAP8[$25>>0] = $113;
+   $114 = ((($$02930)) + 12|0);
+   HEAP8[$109>>0] = $113;
+   $115 = ((($$02831)) + 13|0);
+   $116 = HEAP8[$110>>0]|0;
+   $117 = HEAP8[$26>>0]|0;
+   $118 = $117 ^ $116;
+   HEAP8[$26>>0] = $118;
+   $119 = ((($$02930)) + 13|0);
+   HEAP8[$114>>0] = $118;
+   $120 = ((($$02831)) + 14|0);
+   $121 = HEAP8[$115>>0]|0;
+   $122 = HEAP8[$27>>0]|0;
+   $123 = $122 ^ $121;
+   HEAP8[$27>>0] = $123;
+   $124 = ((($$02930)) + 14|0);
+   HEAP8[$119>>0] = $123;
+   $125 = ((($$02831)) + 15|0);
+   $126 = HEAP8[$120>>0]|0;
+   $127 = HEAP8[$28>>0]|0;
+   $128 = $127 ^ $126;
+   HEAP8[$28>>0] = $128;
+   $129 = ((($$02930)) + 15|0);
+   HEAP8[$124>>0] = $128;
+   $130 = HEAP8[$125>>0]|0;
+   $131 = HEAP8[$29>>0]|0;
+   $132 = $131 ^ $130;
+   HEAP8[$29>>0] = $132;
+   HEAP8[$129>>0] = $132;
+  }
+  $133 = ((($$02930)) + 16|0);
+  $134 = ((($$02831)) + 16|0);
+  $135 = (($$032) + -1)|0;
+  $136 = ($135|0)==(0);
+  if ($136) {
+   break;
+  } else {
+   $$02831 = $134;$$02930 = $133;$$032 = $135;
+  }
+ }
+ $137 = ($30|0)==(0);
+ if ($137) {
+  return;
+ }
+ $138 = (($30) + 16)|0;
+ ___gcry_burn_stack($138);
+ return;
+}
+function __gcry_aes_cbc_enc($0,$1,$2,$3,$4,$5) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ var $$036$lcssa = 0, $$037$lcssa = 0, $$03744$us = 0, $$03744$us$phi = 0, 
$$03843 = 0, $$03843$us = 0, $$03942$us = 0, $$045 = 0, $$045$us = 0, $$pn = 0, 
$10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, 
$107 = 0, $108 = 0;
+ var $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;
+ var $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 
= 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 
= 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0;
+ var $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 
= 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 
= 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0;
+ var $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 
= 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 
= 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0;
+ var $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, 
$188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, 
$195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0;
+ var $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 
= 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 
= 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0;
+ var $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 
= 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 
= 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0;
+ var $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 
= 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 
= 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0;
+ var $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 
= 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 
= 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0;
+ var $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, 
$279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, 
$286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0;
+ var $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, 
$297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, 
$304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0;
+ var $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 
= 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 
= 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0;
+ var $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 
= 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 
= 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0;
+ var $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 
= 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 
= 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0;
+ var $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 
= 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 
= 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0;
+ var $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, 
$388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, 
$395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0;
+ var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 
= 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 
= 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0;
+ var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 
= 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 
= 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0;
+ var $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, 
$56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, 
$64 = 0, $65 = 0, $66 = 0;
+ var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, 
$74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, 
$82 = 0, $83 = 0, $84 = 0;
+ var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, 
$92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, 
$scevgep = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $6 = ((($0)) + 496|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($7|0)==(0|0);
+ if (!($8)) {
+  FUNCTION_TABLE_v[$7 & 127]();
+ }
+ $9 = ((($0)) + 488|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ($4|0)==(0);
+ if ($11) {
+  return;
+ }
+ $12 = ($5|0)==(0);
+ if ($12) {
+  $13 = $4 << 4;
+  $14 = (($13) + -16)|0;
+  $$03744$us = $1;$$03843$us = $3;$$03942$us = $2;$$045$us = $4;
+  while(1) {
+   $15 = $$03942$us;
+   $16 = $$03843$us;
+   $17 = $16 | $15;
+   $18 = $$03744$us;
+   $19 = $17 | $18;
+   $20 = $19 & 3;
+   $21 = ($20|0)==(0);
+   if ($21) {
+    $115 = ((($$03843$us)) + 4|0);
+    $116 = HEAP32[$$03843$us>>2]|0;
+    $117 = ((($$03744$us)) + 4|0);
+    $118 = HEAP32[$$03744$us>>2]|0;
+    $119 = $118 ^ $116;
+    $120 = ((($$03942$us)) + 4|0);
+    HEAP32[$$03942$us>>2] = $119;
+    $121 = ((($$03843$us)) + 8|0);
+    $122 = HEAP32[$115>>2]|0;
+    $123 = ((($$03744$us)) + 8|0);
+    $124 = HEAP32[$117>>2]|0;
+    $125 = $124 ^ $122;
+    $126 = ((($$03942$us)) + 8|0);
+    HEAP32[$120>>2] = $125;
+    $127 = ((($$03843$us)) + 12|0);
+    $128 = HEAP32[$121>>2]|0;
+    $129 = ((($$03744$us)) + 12|0);
+    $130 = HEAP32[$123>>2]|0;
+    $131 = $130 ^ $128;
+    $132 = ((($$03942$us)) + 12|0);
+    HEAP32[$126>>2] = $131;
+    $133 = HEAP32[$127>>2]|0;
+    $134 = HEAP32[$129>>2]|0;
+    $135 = $134 ^ $133;
+    HEAP32[$132>>2] = $135;
+   } else {
+    $22 = ((($$03843$us)) + 1|0);
+    $23 = HEAP8[$$03843$us>>0]|0;
+    $24 = ((($$03744$us)) + 1|0);
+    $25 = HEAP8[$$03744$us>>0]|0;
+    $26 = $25 ^ $23;
+    $27 = ((($$03942$us)) + 1|0);
+    HEAP8[$$03942$us>>0] = $26;
+    $28 = ((($$03843$us)) + 2|0);
+    $29 = HEAP8[$22>>0]|0;
+    $30 = ((($$03744$us)) + 2|0);
+    $31 = HEAP8[$24>>0]|0;
+    $32 = $31 ^ $29;
+    $33 = ((($$03942$us)) + 2|0);
+    HEAP8[$27>>0] = $32;
+    $34 = ((($$03843$us)) + 3|0);
+    $35 = HEAP8[$28>>0]|0;
+    $36 = ((($$03744$us)) + 3|0);
+    $37 = HEAP8[$30>>0]|0;
+    $38 = $37 ^ $35;
+    $39 = ((($$03942$us)) + 3|0);
+    HEAP8[$33>>0] = $38;
+    $40 = ((($$03843$us)) + 4|0);
+    $41 = HEAP8[$34>>0]|0;
+    $42 = ((($$03744$us)) + 4|0);
+    $43 = HEAP8[$36>>0]|0;
+    $44 = $43 ^ $41;
+    $45 = ((($$03942$us)) + 4|0);
+    HEAP8[$39>>0] = $44;
+    $46 = ((($$03843$us)) + 5|0);
+    $47 = HEAP8[$40>>0]|0;
+    $48 = ((($$03744$us)) + 5|0);
+    $49 = HEAP8[$42>>0]|0;
+    $50 = $49 ^ $47;
+    $51 = ((($$03942$us)) + 5|0);
+    HEAP8[$45>>0] = $50;
+    $52 = ((($$03843$us)) + 6|0);
+    $53 = HEAP8[$46>>0]|0;
+    $54 = ((($$03744$us)) + 6|0);
+    $55 = HEAP8[$48>>0]|0;
+    $56 = $55 ^ $53;
+    $57 = ((($$03942$us)) + 6|0);
+    HEAP8[$51>>0] = $56;
+    $58 = ((($$03843$us)) + 7|0);
+    $59 = HEAP8[$52>>0]|0;
+    $60 = ((($$03744$us)) + 7|0);
+    $61 = HEAP8[$54>>0]|0;
+    $62 = $61 ^ $59;
+    $63 = ((($$03942$us)) + 7|0);
+    HEAP8[$57>>0] = $62;
+    $64 = ((($$03843$us)) + 8|0);
+    $65 = HEAP8[$58>>0]|0;
+    $66 = ((($$03744$us)) + 8|0);
+    $67 = HEAP8[$60>>0]|0;
+    $68 = $67 ^ $65;
+    $69 = ((($$03942$us)) + 8|0);
+    HEAP8[$63>>0] = $68;
+    $70 = ((($$03843$us)) + 9|0);
+    $71 = HEAP8[$64>>0]|0;
+    $72 = ((($$03744$us)) + 9|0);
+    $73 = HEAP8[$66>>0]|0;
+    $74 = $73 ^ $71;
+    $75 = ((($$03942$us)) + 9|0);
+    HEAP8[$69>>0] = $74;
+    $76 = ((($$03843$us)) + 10|0);
+    $77 = HEAP8[$70>>0]|0;
+    $78 = ((($$03744$us)) + 10|0);
+    $79 = HEAP8[$72>>0]|0;
+    $80 = $79 ^ $77;
+    $81 = ((($$03942$us)) + 10|0);
+    HEAP8[$75>>0] = $80;
+    $82 = ((($$03843$us)) + 11|0);
+    $83 = HEAP8[$76>>0]|0;
+    $84 = ((($$03744$us)) + 11|0);
+    $85 = HEAP8[$78>>0]|0;
+    $86 = $85 ^ $83;
+    $87 = ((($$03942$us)) + 11|0);
+    HEAP8[$81>>0] = $86;
+    $88 = ((($$03843$us)) + 12|0);
+    $89 = HEAP8[$82>>0]|0;
+    $90 = ((($$03744$us)) + 12|0);
+    $91 = HEAP8[$84>>0]|0;
+    $92 = $91 ^ $89;
+    $93 = ((($$03942$us)) + 12|0);
+    HEAP8[$87>>0] = $92;
+    $94 = ((($$03843$us)) + 13|0);
+    $95 = HEAP8[$88>>0]|0;
+    $96 = ((($$03744$us)) + 13|0);
+    $97 = HEAP8[$90>>0]|0;
+    $98 = $97 ^ $95;
+    $99 = ((($$03942$us)) + 13|0);
+    HEAP8[$93>>0] = $98;
+    $100 = ((($$03843$us)) + 14|0);
+    $101 = HEAP8[$94>>0]|0;
+    $102 = ((($$03744$us)) + 14|0);
+    $103 = HEAP8[$96>>0]|0;
+    $104 = $103 ^ $101;
+    $105 = ((($$03942$us)) + 14|0);
+    HEAP8[$99>>0] = $104;
+    $106 = ((($$03843$us)) + 15|0);
+    $107 = HEAP8[$100>>0]|0;
+    $108 = ((($$03744$us)) + 15|0);
+    $109 = HEAP8[$102>>0]|0;
+    $110 = $109 ^ $107;
+    $111 = ((($$03942$us)) + 15|0);
+    HEAP8[$105>>0] = $110;
+    $112 = HEAP8[$106>>0]|0;
+    $113 = HEAP8[$108>>0]|0;
+    $114 = $113 ^ $112;
+    HEAP8[$111>>0] = $114;
+   }
+   $136 = (FUNCTION_TABLE_iiii[$10 & 127]($0,$$03942$us,$$03942$us)|0);
+   $137 = ((($$03843$us)) + 16|0);
+   $138 = ((($$03942$us)) + 16|0);
+   $139 = (($$045$us) + -1)|0;
+   $140 = ($139|0)==(0);
+   if ($140) {
+    break;
+   } else {
+    $$03744$us$phi = $$03942$us;$$03843$us = $137;$$03942$us = $138;$$045$us = 
$139;$$03744$us = $$03744$us$phi;
+   }
+  }
+  $scevgep = (($2) + ($14)|0);
+  $$036$lcssa = $136;$$037$lcssa = $scevgep;
+ } else {
+  $141 = $2;
+  $142 = $3;
+  $143 = $142 | $141;
+  $144 = $1;
+  $145 = $143 | $144;
+  $146 = $145 & 3;
+  $147 = ($146|0)==(0);
+  if ($147) {
+   $241 = ((($3)) + 4|0);
+   $242 = HEAP32[$3>>2]|0;
+   $243 = ((($1)) + 4|0);
+   $244 = HEAP32[$1>>2]|0;
+   $245 = $244 ^ $242;
+   $246 = ((($2)) + 4|0);
+   HEAP32[$2>>2] = $245;
+   $247 = ((($3)) + 8|0);
+   $248 = HEAP32[$241>>2]|0;
+   $249 = ((($1)) + 8|0);
+   $250 = HEAP32[$243>>2]|0;
+   $251 = $250 ^ $248;
+   $252 = ((($2)) + 8|0);
+   HEAP32[$246>>2] = $251;
+   $253 = ((($3)) + 12|0);
+   $254 = HEAP32[$247>>2]|0;
+   $255 = ((($1)) + 12|0);
+   $256 = HEAP32[$249>>2]|0;
+   $257 = $256 ^ $254;
+   $258 = ((($2)) + 12|0);
+   HEAP32[$252>>2] = $257;
+   $259 = HEAP32[$253>>2]|0;
+   $260 = HEAP32[$255>>2]|0;
+   $261 = $260 ^ $259;
+   HEAP32[$258>>2] = $261;
+  } else {
+   $148 = ((($3)) + 1|0);
+   $149 = HEAP8[$3>>0]|0;
+   $150 = ((($1)) + 1|0);
+   $151 = HEAP8[$1>>0]|0;
+   $152 = $151 ^ $149;
+   $153 = ((($2)) + 1|0);
+   HEAP8[$2>>0] = $152;
+   $154 = ((($3)) + 2|0);
+   $155 = HEAP8[$148>>0]|0;
+   $156 = ((($1)) + 2|0);
+   $157 = HEAP8[$150>>0]|0;
+   $158 = $157 ^ $155;
+   $159 = ((($2)) + 2|0);
+   HEAP8[$153>>0] = $158;
+   $160 = ((($3)) + 3|0);
+   $161 = HEAP8[$154>>0]|0;
+   $162 = ((($1)) + 3|0);
+   $163 = HEAP8[$156>>0]|0;
+   $164 = $163 ^ $161;
+   $165 = ((($2)) + 3|0);
+   HEAP8[$159>>0] = $164;
+   $166 = ((($3)) + 4|0);
+   $167 = HEAP8[$160>>0]|0;
+   $168 = ((($1)) + 4|0);
+   $169 = HEAP8[$162>>0]|0;
+   $170 = $169 ^ $167;
+   $171 = ((($2)) + 4|0);
+   HEAP8[$165>>0] = $170;
+   $172 = ((($3)) + 5|0);
+   $173 = HEAP8[$166>>0]|0;
+   $174 = ((($1)) + 5|0);
+   $175 = HEAP8[$168>>0]|0;
+   $176 = $175 ^ $173;
+   $177 = ((($2)) + 5|0);
+   HEAP8[$171>>0] = $176;
+   $178 = ((($3)) + 6|0);
+   $179 = HEAP8[$172>>0]|0;
+   $180 = ((($1)) + 6|0);
+   $181 = HEAP8[$174>>0]|0;
+   $182 = $181 ^ $179;
+   $183 = ((($2)) + 6|0);
+   HEAP8[$177>>0] = $182;
+   $184 = ((($3)) + 7|0);
+   $185 = HEAP8[$178>>0]|0;
+   $186 = ((($1)) + 7|0);
+   $187 = HEAP8[$180>>0]|0;
+   $188 = $187 ^ $185;
+   $189 = ((($2)) + 7|0);
+   HEAP8[$183>>0] = $188;
+   $190 = ((($3)) + 8|0);
+   $191 = HEAP8[$184>>0]|0;
+   $192 = ((($1)) + 8|0);
+   $193 = HEAP8[$186>>0]|0;
+   $194 = $193 ^ $191;
+   $195 = ((($2)) + 8|0);
+   HEAP8[$189>>0] = $194;
+   $196 = ((($3)) + 9|0);
+   $197 = HEAP8[$190>>0]|0;
+   $198 = ((($1)) + 9|0);
+   $199 = HEAP8[$192>>0]|0;
+   $200 = $199 ^ $197;
+   $201 = ((($2)) + 9|0);
+   HEAP8[$195>>0] = $200;
+   $202 = ((($3)) + 10|0);
+   $203 = HEAP8[$196>>0]|0;
+   $204 = ((($1)) + 10|0);
+   $205 = HEAP8[$198>>0]|0;
+   $206 = $205 ^ $203;
+   $207 = ((($2)) + 10|0);
+   HEAP8[$201>>0] = $206;
+   $208 = ((($3)) + 11|0);
+   $209 = HEAP8[$202>>0]|0;
+   $210 = ((($1)) + 11|0);
+   $211 = HEAP8[$204>>0]|0;
+   $212 = $211 ^ $209;
+   $213 = ((($2)) + 11|0);
+   HEAP8[$207>>0] = $212;
+   $214 = ((($3)) + 12|0);
+   $215 = HEAP8[$208>>0]|0;
+   $216 = ((($1)) + 12|0);
+   $217 = HEAP8[$210>>0]|0;
+   $218 = $217 ^ $215;
+   $219 = ((($2)) + 12|0);
+   HEAP8[$213>>0] = $218;
+   $220 = ((($3)) + 13|0);
+   $221 = HEAP8[$214>>0]|0;
+   $222 = ((($1)) + 13|0);
+   $223 = HEAP8[$216>>0]|0;
+   $224 = $223 ^ $221;
+   $225 = ((($2)) + 13|0);
+   HEAP8[$219>>0] = $224;
+   $226 = ((($3)) + 14|0);
+   $227 = HEAP8[$220>>0]|0;
+   $228 = ((($1)) + 14|0);
+   $229 = HEAP8[$222>>0]|0;
+   $230 = $229 ^ $227;
+   $231 = ((($2)) + 14|0);
+   HEAP8[$225>>0] = $230;
+   $232 = ((($3)) + 15|0);
+   $233 = HEAP8[$226>>0]|0;
+   $234 = ((($1)) + 15|0);
+   $235 = HEAP8[$228>>0]|0;
+   $236 = $235 ^ $233;
+   $237 = ((($2)) + 15|0);
+   HEAP8[$231>>0] = $236;
+   $238 = HEAP8[$232>>0]|0;
+   $239 = HEAP8[$234>>0]|0;
+   $240 = $239 ^ $238;
+   HEAP8[$237>>0] = $240;
+  }
+  $262 = (FUNCTION_TABLE_iiii[$10 & 127]($0,$2,$2)|0);
+  $263 = (($4) + -1)|0;
+  $264 = ($263|0)==(0);
+  if ($264) {
+   $$036$lcssa = $262;$$037$lcssa = $2;
+  } else {
+   $265 = ((($2)) + 4|0);
+   $266 = ((($2)) + 8|0);
+   $267 = ((($2)) + 12|0);
+   $268 = ((($2)) + 1|0);
+   $269 = ((($2)) + 2|0);
+   $270 = ((($2)) + 3|0);
+   $271 = ((($2)) + 4|0);
+   $272 = ((($2)) + 5|0);
+   $273 = ((($2)) + 6|0);
+   $274 = ((($2)) + 7|0);
+   $275 = ((($2)) + 8|0);
+   $276 = ((($2)) + 9|0);
+   $277 = ((($2)) + 10|0);
+   $278 = ((($2)) + 11|0);
+   $279 = ((($2)) + 12|0);
+   $280 = ((($2)) + 13|0);
+   $281 = ((($2)) + 14|0);
+   $282 = ((($2)) + 15|0);
+   $$045 = $263;$$pn = $3;
+   while(1) {
+    $$03843 = ((($$pn)) + 16|0);
+    $283 = $$03843;
+    $284 = $283 | $141;
+    $285 = $284 & 3;
+    $286 = ($285|0)==(0);
+    if ($286) {
+     $287 = ((($$pn)) + 20|0);
+     $288 = HEAP32[$$03843>>2]|0;
+     $289 = HEAP32[$2>>2]|0;
+     $290 = $289 ^ $288;
+     HEAP32[$2>>2] = $290;
+     $291 = ((($$pn)) + 24|0);
+     $292 = HEAP32[$287>>2]|0;
+     $293 = HEAP32[$265>>2]|0;
+     $294 = $293 ^ $292;
+     HEAP32[$265>>2] = $294;
+     $295 = ((($$pn)) + 28|0);
+     $296 = HEAP32[$291>>2]|0;
+     $297 = HEAP32[$266>>2]|0;
+     $298 = $297 ^ $296;
+     HEAP32[$266>>2] = $298;
+     $299 = HEAP32[$295>>2]|0;
+     $300 = HEAP32[$267>>2]|0;
+     $301 = $300 ^ $299;
+     HEAP32[$267>>2] = $301;
+    } else {
+     $302 = ((($$pn)) + 17|0);
+     $303 = HEAP8[$$03843>>0]|0;
+     $304 = HEAP8[$2>>0]|0;
+     $305 = $304 ^ $303;
+     HEAP8[$2>>0] = $305;
+     $306 = ((($$pn)) + 18|0);
+     $307 = HEAP8[$302>>0]|0;
+     $308 = HEAP8[$268>>0]|0;
+     $309 = $308 ^ $307;
+     HEAP8[$268>>0] = $309;
+     $310 = ((($$pn)) + 19|0);
+     $311 = HEAP8[$306>>0]|0;
+     $312 = HEAP8[$269>>0]|0;
+     $313 = $312 ^ $311;
+     HEAP8[$269>>0] = $313;
+     $314 = ((($$pn)) + 20|0);
+     $315 = HEAP8[$310>>0]|0;
+     $316 = HEAP8[$270>>0]|0;
+     $317 = $316 ^ $315;
+     HEAP8[$270>>0] = $317;
+     $318 = ((($$pn)) + 21|0);
+     $319 = HEAP8[$314>>0]|0;
+     $320 = HEAP8[$271>>0]|0;
+     $321 = $320 ^ $319;
+     HEAP8[$271>>0] = $321;
+     $322 = ((($$pn)) + 22|0);
+     $323 = HEAP8[$318>>0]|0;
+     $324 = HEAP8[$272>>0]|0;
+     $325 = $324 ^ $323;
+     HEAP8[$272>>0] = $325;
+     $326 = ((($$pn)) + 23|0);
+     $327 = HEAP8[$322>>0]|0;
+     $328 = HEAP8[$273>>0]|0;
+     $329 = $328 ^ $327;
+     HEAP8[$273>>0] = $329;
+     $330 = ((($$pn)) + 24|0);
+     $331 = HEAP8[$326>>0]|0;
+     $332 = HEAP8[$274>>0]|0;
+     $333 = $332 ^ $331;
+     HEAP8[$274>>0] = $333;
+     $334 = ((($$pn)) + 25|0);
+     $335 = HEAP8[$330>>0]|0;
+     $336 = HEAP8[$275>>0]|0;
+     $337 = $336 ^ $335;
+     HEAP8[$275>>0] = $337;
+     $338 = ((($$pn)) + 26|0);
+     $339 = HEAP8[$334>>0]|0;
+     $340 = HEAP8[$276>>0]|0;
+     $341 = $340 ^ $339;
+     HEAP8[$276>>0] = $341;
+     $342 = ((($$pn)) + 27|0);
+     $343 = HEAP8[$338>>0]|0;
+     $344 = HEAP8[$277>>0]|0;
+     $345 = $344 ^ $343;
+     HEAP8[$277>>0] = $345;
+     $346 = ((($$pn)) + 28|0);
+     $347 = HEAP8[$342>>0]|0;
+     $348 = HEAP8[$278>>0]|0;
+     $349 = $348 ^ $347;
+     HEAP8[$278>>0] = $349;
+     $350 = ((($$pn)) + 29|0);
+     $351 = HEAP8[$346>>0]|0;
+     $352 = HEAP8[$279>>0]|0;
+     $353 = $352 ^ $351;
+     HEAP8[$279>>0] = $353;
+     $354 = ((($$pn)) + 30|0);
+     $355 = HEAP8[$350>>0]|0;
+     $356 = HEAP8[$280>>0]|0;
+     $357 = $356 ^ $355;
+     HEAP8[$280>>0] = $357;
+     $358 = ((($$pn)) + 31|0);
+     $359 = HEAP8[$354>>0]|0;
+     $360 = HEAP8[$281>>0]|0;
+     $361 = $360 ^ $359;
+     HEAP8[$281>>0] = $361;
+     $362 = HEAP8[$358>>0]|0;
+     $363 = HEAP8[$282>>0]|0;
+     $364 = $363 ^ $362;
+     HEAP8[$282>>0] = $364;
+    }
+    $365 = (FUNCTION_TABLE_iiii[$10 & 127]($0,$2,$2)|0);
+    $366 = (($$045) + -1)|0;
+    $367 = ($366|0)==(0);
+    if ($367) {
+     $$036$lcssa = $365;$$037$lcssa = $2;
+     break;
+    } else {
+     $$045 = $366;$$pn = $$03843;
+    }
+   }
+  }
+ }
+ $368 = ($$037$lcssa|0)==($1|0);
+ do {
+  if (!($368)) {
+   $369 = $1;
+   $370 = $$037$lcssa;
+   $371 = $370 | $369;
+   $372 = $371 & 3;
+   $373 = ($372|0)==(0);
+   if ($373) {
+    $374 = ((($$037$lcssa)) + 4|0);
+    $375 = HEAP32[$$037$lcssa>>2]|0;
+    $376 = ((($1)) + 4|0);
+    HEAP32[$1>>2] = $375;
+    $377 = ((($$037$lcssa)) + 8|0);
+    $378 = HEAP32[$374>>2]|0;
+    $379 = ((($1)) + 8|0);
+    HEAP32[$376>>2] = $378;
+    $380 = ((($$037$lcssa)) + 12|0);
+    $381 = HEAP32[$377>>2]|0;
+    $382 = ((($1)) + 12|0);
+    HEAP32[$379>>2] = $381;
+    $383 = HEAP32[$380>>2]|0;
+    HEAP32[$382>>2] = $383;
+    break;
+   } else {
+    $384 = ((($$037$lcssa)) + 1|0);
+    $385 = HEAP8[$$037$lcssa>>0]|0;
+    $386 = ((($1)) + 1|0);
+    HEAP8[$1>>0] = $385;
+    $387 = ((($$037$lcssa)) + 2|0);
+    $388 = HEAP8[$384>>0]|0;
+    $389 = ((($1)) + 2|0);
+    HEAP8[$386>>0] = $388;
+    $390 = ((($$037$lcssa)) + 3|0);
+    $391 = HEAP8[$387>>0]|0;
+    $392 = ((($1)) + 3|0);
+    HEAP8[$389>>0] = $391;
+    $393 = ((($$037$lcssa)) + 4|0);
+    $394 = HEAP8[$390>>0]|0;
+    $395 = ((($1)) + 4|0);
+    HEAP8[$392>>0] = $394;
+    $396 = ((($$037$lcssa)) + 5|0);
+    $397 = HEAP8[$393>>0]|0;
+    $398 = ((($1)) + 5|0);
+    HEAP8[$395>>0] = $397;
+    $399 = ((($$037$lcssa)) + 6|0);
+    $400 = HEAP8[$396>>0]|0;
+    $401 = ((($1)) + 6|0);
+    HEAP8[$398>>0] = $400;
+    $402 = ((($$037$lcssa)) + 7|0);
+    $403 = HEAP8[$399>>0]|0;
+    $404 = ((($1)) + 7|0);
+    HEAP8[$401>>0] = $403;
+    $405 = ((($$037$lcssa)) + 8|0);
+    $406 = HEAP8[$402>>0]|0;
+    $407 = ((($1)) + 8|0);
+    HEAP8[$404>>0] = $406;
+    $408 = ((($$037$lcssa)) + 9|0);
+    $409 = HEAP8[$405>>0]|0;
+    $410 = ((($1)) + 9|0);
+    HEAP8[$407>>0] = $409;
+    $411 = ((($$037$lcssa)) + 10|0);
+    $412 = HEAP8[$408>>0]|0;
+    $413 = ((($1)) + 10|0);
+    HEAP8[$410>>0] = $412;
+    $414 = ((($$037$lcssa)) + 11|0);
+    $415 = HEAP8[$411>>0]|0;
+    $416 = ((($1)) + 11|0);
+    HEAP8[$413>>0] = $415;
+    $417 = ((($$037$lcssa)) + 12|0);
+    $418 = HEAP8[$414>>0]|0;
+    $419 = ((($1)) + 12|0);
+    HEAP8[$416>>0] = $418;
+    $420 = ((($$037$lcssa)) + 13|0);
+    $421 = HEAP8[$417>>0]|0;
+    $422 = ((($1)) + 13|0);
+    HEAP8[$419>>0] = $421;
+    $423 = ((($$037$lcssa)) + 14|0);
+    $424 = HEAP8[$420>>0]|0;
+    $425 = ((($1)) + 14|0);
+    HEAP8[$422>>0] = $424;
+    $426 = ((($$037$lcssa)) + 15|0);
+    $427 = HEAP8[$423>>0]|0;
+    $428 = ((($1)) + 15|0);
+    HEAP8[$425>>0] = $427;
+    $429 = HEAP8[$426>>0]|0;
+    HEAP8[$428>>0] = $429;
+    break;
+   }
+  }
+ } while(0);
+ $430 = ($$036$lcssa|0)==(0);
+ if ($430) {
+  return;
+ }
+ $431 = (($$036$lcssa) + 16)|0;
+ ___gcry_burn_stack($431);
+ return;
+}
+function __gcry_aes_ocb_crypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $$073153 = 0, $$074152 = 0, $$076151 = 0, $$078 = 0, $$079$lcssa 
= 0, $$1150 = 0, $$175149 = 0, $$177148 = 0, $$180$lcssa = 0, $$2 = 0, $10 = 0, 
$100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, 
$1006 = 0;
+ var $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $102 = 0, $103 = 0, 
$104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, 
$111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
+ var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 
= 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 
= 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
+ var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 
= 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 
= 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
+ var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, 
$159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, 
$166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
+ var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, 
$177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, 
$184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
+ var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 
= 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 
= 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0;
+ var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 
= 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 
= 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0;
+ var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 
= 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 
= 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0;
+ var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 
= 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 
= 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0;
+ var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, 
$268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, 
$275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0;
+ var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 
= 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 
= 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0;
+ var $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 
= 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 
= 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0;
+ var $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 
= 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 
= 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0;
+ var $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 
= 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 
= 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0;
+ var $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, 
$359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, 
$366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0;
+ var $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, 
$377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, 
$384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0;
+ var $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 
= 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $40 = 0, $400 = 0, $401 = 0, $402 
= 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0;
+ var $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 
= 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 
= 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0;
+ var $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 
= 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 
= 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0;
+ var $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 
= 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 
= 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0;
+ var $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, 
$468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, 
$475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0;
+ var $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 
= 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 
= 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0;
+ var $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 
0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 
0, $511 = 0, $512 = 0, $513 = 0, $514 = 0;
+ var $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 
= 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 
= 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 
= 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 
= 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0;
+ var $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, 
$648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, 
$655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0;
+ var $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 
= 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 
= 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0;
+ var $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 
= 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 
= 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0;
+ var $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 
0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 
0, $71 = 0, $710 = 0, $711 = 0, $712 = 0;
+ var $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 
= 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 
= 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0;
+ var $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, 
$738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, 
$745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0;
+ var $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 
= 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 
= 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0;
+ var $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 
= 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 
= 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0;
+ var $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 
= 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 
0, $80 = 0, $800 = 0, $801 = 0, $802 = 0;
+ var $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 
= 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 
= 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0;
+ var $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, 
$828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, 
$835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0;
+ var $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 
= 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 
= 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0;
+ var $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 
= 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 
= 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0;
+ var $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 
= 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 
= 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0;
+ var $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 
0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 
0, $908 = 0, $909 = 0, $91 = 0, $910 = 0;
+ var $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, 
$918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, 
$925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0;
+ var $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 
= 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 
= 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0;
+ var $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 
= 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 
= 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0;
+ var $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 
= 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 
= 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0;
+ var $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 
= 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 
= 0, $999 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $5 = sp + 16|0;
+ $6 = sp;
+ $7 = ((($0)) + 496|0);
+ $8 = ($4|0)==(0);
+ if ($8) {
+  _check_decryption_preparation($7);
+  $12 = ((($7)) + 500|0);
+  $13 = HEAP32[$12>>2]|0;
+  $14 = ($13|0)==(0|0);
+  if (!($14)) {
+   FUNCTION_TABLE_v[$13 & 127]();
+  }
+  $511 = ((($7)) + 492|0);
+  $512 = HEAP32[$511>>2]|0;
+  $513 = ($3|0)==(0);
+  if ($513) {
+   $$180$lcssa = 0;
+  } else {
+   $514 = ((($0)) + 464|0);
+   $515 = ((($0)) + 64|0);
+   $516 = $515;
+   $517 = ((($515)) + 4|0);
+   $518 = ((($0)) + 72|0);
+   $519 = ((($0)) + 76|0);
+   $520 = ((($0)) + 160|0);
+   $521 = ((($6)) + 4|0);
+   $522 = ((($6)) + 8|0);
+   $523 = ((($6)) + 12|0);
+   $524 = $516 & 3;
+   $525 = ($524|0)==(0);
+   $526 = ((($0)) + 80|0);
+   $527 = $526;
+   $528 = $527 & 3;
+   $529 = ($528|0)==(0);
+   $530 = ((($526)) + 4|0);
+   $531 = ((($0)) + 88|0);
+   $532 = ((($0)) + 92|0);
+   $533 = ((($515)) + 1|0);
+   $534 = ((($515)) + 2|0);
+   $535 = ((($515)) + 3|0);
+   $536 = ((($515)) + 4|0);
+   $537 = ((($515)) + 5|0);
+   $538 = ((($515)) + 6|0);
+   $539 = ((($515)) + 7|0);
+   $540 = ((($0)) + 72|0);
+   $541 = ((($0)) + 73|0);
+   $542 = ((($0)) + 74|0);
+   $543 = ((($0)) + 75|0);
+   $544 = ((($0)) + 76|0);
+   $545 = ((($0)) + 77|0);
+   $546 = ((($0)) + 78|0);
+   $547 = ((($0)) + 79|0);
+   $548 = ((($6)) + 1|0);
+   $549 = ((($6)) + 2|0);
+   $550 = ((($6)) + 3|0);
+   $551 = ((($6)) + 4|0);
+   $552 = ((($551)) + 1|0);
+   $553 = ((($551)) + 2|0);
+   $554 = ((($551)) + 3|0);
+   $555 = ((($6)) + 8|0);
+   $556 = ((($555)) + 1|0);
+   $557 = ((($555)) + 2|0);
+   $558 = ((($555)) + 3|0);
+   $559 = ((($6)) + 12|0);
+   $560 = ((($559)) + 1|0);
+   $561 = ((($559)) + 2|0);
+   $562 = ((($559)) + 3|0);
+   $563 = ((($515)) + 1|0);
+   $564 = ((($6)) + 1|0);
+   $565 = ((($515)) + 2|0);
+   $566 = ((($6)) + 2|0);
+   $567 = ((($515)) + 3|0);
+   $568 = ((($6)) + 3|0);
+   $569 = ((($515)) + 4|0);
+   $570 = ((($6)) + 4|0);
+   $571 = ((($515)) + 5|0);
+   $572 = ((($570)) + 1|0);
+   $573 = ((($515)) + 6|0);
+   $574 = ((($570)) + 2|0);
+   $575 = ((($515)) + 7|0);
+   $576 = ((($570)) + 3|0);
+   $577 = ((($0)) + 72|0);
+   $578 = ((($6)) + 8|0);
+   $579 = ((($0)) + 73|0);
+   $580 = ((($578)) + 1|0);
+   $581 = ((($0)) + 74|0);
+   $582 = ((($578)) + 2|0);
+   $583 = ((($0)) + 75|0);
+   $584 = ((($578)) + 3|0);
+   $585 = ((($0)) + 76|0);
+   $586 = ((($6)) + 12|0);
+   $587 = ((($0)) + 77|0);
+   $588 = ((($586)) + 1|0);
+   $589 = ((($0)) + 78|0);
+   $590 = ((($586)) + 2|0);
+   $591 = ((($0)) + 79|0);
+   $592 = ((($586)) + 3|0);
+   $593 = ((($6)) + 1|0);
+   $594 = ((($526)) + 1|0);
+   $595 = ((($6)) + 2|0);
+   $596 = ((($526)) + 2|0);
+   $597 = ((($6)) + 3|0);
+   $598 = ((($526)) + 3|0);
+   $599 = ((($6)) + 4|0);
+   $600 = ((($526)) + 4|0);
+   $601 = ((($599)) + 1|0);
+   $602 = ((($526)) + 5|0);
+   $603 = ((($599)) + 2|0);
+   $604 = ((($526)) + 6|0);
+   $605 = ((($599)) + 3|0);
+   $606 = ((($526)) + 7|0);
+   $607 = ((($6)) + 8|0);
+   $608 = ((($0)) + 88|0);
+   $609 = ((($607)) + 1|0);
+   $610 = ((($0)) + 89|0);
+   $611 = ((($607)) + 2|0);
+   $612 = ((($0)) + 90|0);
+   $613 = ((($607)) + 3|0);
+   $614 = ((($0)) + 91|0);
+   $615 = ((($6)) + 12|0);
+   $616 = ((($0)) + 92|0);
+   $617 = ((($615)) + 1|0);
+   $618 = ((($0)) + 93|0);
+   $619 = ((($615)) + 2|0);
+   $620 = ((($0)) + 94|0);
+   $621 = ((($615)) + 3|0);
+   $622 = ((($0)) + 95|0);
+   $623 = ((($6)) + 1|0);
+   $624 = ((($6)) + 2|0);
+   $625 = ((($6)) + 3|0);
+   $626 = ((($6)) + 4|0);
+   $627 = ((($626)) + 1|0);
+   $628 = ((($626)) + 2|0);
+   $629 = ((($626)) + 3|0);
+   $630 = ((($6)) + 8|0);
+   $631 = ((($630)) + 1|0);
+   $632 = ((($630)) + 2|0);
+   $633 = ((($630)) + 3|0);
+   $634 = ((($6)) + 12|0);
+   $635 = ((($634)) + 1|0);
+   $636 = ((($634)) + 2|0);
+   $637 = ((($634)) + 3|0);
+   $$1150 = $3;$$175149 = $1;$$177148 = $2;
+   while(1) {
+    $638 = $514;
+    $639 = $638;
+    $640 = HEAP32[$639>>2]|0;
+    $641 = (($638) + 4)|0;
+    $642 = $641;
+    $643 = HEAP32[$642>>2]|0;
+    $644 = (_i64Add(($640|0),($643|0),1,0)|0);
+    $645 = tempRet0;
+    $646 = $514;
+    $647 = $646;
+    HEAP32[$647>>2] = $644;
+    $648 = (($646) + 4)|0;
+    $649 = $648;
+    HEAP32[$649>>2] = $645;
+    $650 = ($644|0)==(0);
+    $651 = (0)==(0);
+    $652 = $650 & $651;
+    if ($652) {
+     label = 34;
+    } else {
+     $653 = (_llvm_cttz_i32(($644|0))|0);
+     $654 = ($653>>>0)<(16);
+     if ($654) {
+      $655 = (($520) + ($653<<4)|0);
+      $$0 = $655;
+     } else {
+      label = 34;
+     }
+    }
+    if ((label|0) == 34) {
+     label = 0;
+     $656 = (__gcry_cipher_ocb_get_l($0,$6,$644,$645)|0);
+     $$0 = $656;
+    }
+    $657 = $$0;
+    $658 = $657 | $516;
+    $659 = $658 & 3;
+    $660 = ($659|0)==(0);
+    if ($660) {
+     $661 = ((($$0)) + 4|0);
+     $662 = HEAP32[$$0>>2]|0;
+     $663 = HEAP32[$515>>2]|0;
+     $664 = $663 ^ $662;
+     HEAP32[$515>>2] = $664;
+     $665 = ((($$0)) + 8|0);
+     $666 = HEAP32[$661>>2]|0;
+     $667 = HEAP32[$517>>2]|0;
+     $668 = $667 ^ $666;
+     HEAP32[$517>>2] = $668;
+     $669 = ((($$0)) + 12|0);
+     $670 = HEAP32[$665>>2]|0;
+     $671 = HEAP32[$518>>2]|0;
+     $672 = $671 ^ $670;
+     HEAP32[$518>>2] = $672;
+     $673 = HEAP32[$669>>2]|0;
+     $674 = HEAP32[$519>>2]|0;
+     $675 = $674 ^ $673;
+     HEAP32[$519>>2] = $675;
+    } else {
+     $676 = ((($$0)) + 1|0);
+     $677 = HEAP8[$$0>>0]|0;
+     $678 = HEAP8[$515>>0]|0;
+     $679 = $678 ^ $677;
+     HEAP8[$515>>0] = $679;
+     $680 = ((($$0)) + 2|0);
+     $681 = HEAP8[$676>>0]|0;
+     $682 = HEAP8[$533>>0]|0;
+     $683 = $682 ^ $681;
+     HEAP8[$533>>0] = $683;
+     $684 = ((($$0)) + 3|0);
+     $685 = HEAP8[$680>>0]|0;
+     $686 = HEAP8[$534>>0]|0;
+     $687 = $686 ^ $685;
+     HEAP8[$534>>0] = $687;
+     $688 = ((($$0)) + 4|0);
+     $689 = HEAP8[$684>>0]|0;
+     $690 = HEAP8[$535>>0]|0;
+     $691 = $690 ^ $689;
+     HEAP8[$535>>0] = $691;
+     $692 = ((($$0)) + 5|0);
+     $693 = HEAP8[$688>>0]|0;
+     $694 = HEAP8[$536>>0]|0;
+     $695 = $694 ^ $693;
+     HEAP8[$536>>0] = $695;
+     $696 = ((($$0)) + 6|0);
+     $697 = HEAP8[$692>>0]|0;
+     $698 = HEAP8[$537>>0]|0;
+     $699 = $698 ^ $697;
+     HEAP8[$537>>0] = $699;
+     $700 = ((($$0)) + 7|0);
+     $701 = HEAP8[$696>>0]|0;
+     $702 = HEAP8[$538>>0]|0;
+     $703 = $702 ^ $701;
+     HEAP8[$538>>0] = $703;
+     $704 = ((($$0)) + 8|0);
+     $705 = HEAP8[$700>>0]|0;
+     $706 = HEAP8[$539>>0]|0;
+     $707 = $706 ^ $705;
+     HEAP8[$539>>0] = $707;
+     $708 = ((($$0)) + 9|0);
+     $709 = HEAP8[$704>>0]|0;
+     $710 = HEAP8[$540>>0]|0;
+     $711 = $710 ^ $709;
+     HEAP8[$540>>0] = $711;
+     $712 = ((($$0)) + 10|0);
+     $713 = HEAP8[$708>>0]|0;
+     $714 = HEAP8[$541>>0]|0;
+     $715 = $714 ^ $713;
+     HEAP8[$541>>0] = $715;
+     $716 = ((($$0)) + 11|0);
+     $717 = HEAP8[$712>>0]|0;
+     $718 = HEAP8[$542>>0]|0;
+     $719 = $718 ^ $717;
+     HEAP8[$542>>0] = $719;
+     $720 = ((($$0)) + 12|0);
+     $721 = HEAP8[$716>>0]|0;
+     $722 = HEAP8[$543>>0]|0;
+     $723 = $722 ^ $721;
+     HEAP8[$543>>0] = $723;
+     $724 = ((($$0)) + 13|0);
+     $725 = HEAP8[$720>>0]|0;
+     $726 = HEAP8[$544>>0]|0;
+     $727 = $726 ^ $725;
+     HEAP8[$544>>0] = $727;
+     $728 = ((($$0)) + 14|0);
+     $729 = HEAP8[$724>>0]|0;
+     $730 = HEAP8[$545>>0]|0;
+     $731 = $730 ^ $729;
+     HEAP8[$545>>0] = $731;
+     $732 = ((($$0)) + 15|0);
+     $733 = HEAP8[$728>>0]|0;
+     $734 = HEAP8[$546>>0]|0;
+     $735 = $734 ^ $733;
+     HEAP8[$546>>0] = $735;
+     $736 = HEAP8[$732>>0]|0;
+     $737 = HEAP8[$547>>0]|0;
+     $738 = $737 ^ $736;
+     HEAP8[$547>>0] = $738;
+    }
+    $739 = $$177148;
+    $740 = $739 & 3;
+    $741 = ($740|0)==(0);
+    if ($741) {
+     $742 = ((($$177148)) + 4|0);
+     $743 = HEAP32[$$177148>>2]|0;
+     HEAP32[$6>>2] = $743;
+     $744 = ((($$177148)) + 8|0);
+     $745 = HEAP32[$742>>2]|0;
+     HEAP32[$521>>2] = $745;
+     $746 = ((($$177148)) + 12|0);
+     $747 = HEAP32[$744>>2]|0;
+     HEAP32[$522>>2] = $747;
+     $748 = HEAP32[$746>>2]|0;
+     HEAP32[$523>>2] = $748;
+    } else {
+     $749 = ((($$177148)) + 1|0);
+     $750 = HEAP8[$$177148>>0]|0;
+     HEAP8[$6>>0] = $750;
+     $751 = ((($$177148)) + 2|0);
+     $752 = HEAP8[$749>>0]|0;
+     HEAP8[$548>>0] = $752;
+     $753 = ((($$177148)) + 3|0);
+     $754 = HEAP8[$751>>0]|0;
+     HEAP8[$549>>0] = $754;
+     $755 = ((($$177148)) + 4|0);
+     $756 = HEAP8[$753>>0]|0;
+     HEAP8[$550>>0] = $756;
+     $757 = ((($$177148)) + 5|0);
+     $758 = HEAP8[$755>>0]|0;
+     HEAP8[$551>>0] = $758;
+     $759 = ((($$177148)) + 6|0);
+     $760 = HEAP8[$757>>0]|0;
+     HEAP8[$552>>0] = $760;
+     $761 = ((($$177148)) + 7|0);
+     $762 = HEAP8[$759>>0]|0;
+     HEAP8[$553>>0] = $762;
+     $763 = ((($$177148)) + 8|0);
+     $764 = HEAP8[$761>>0]|0;
+     HEAP8[$554>>0] = $764;
+     $765 = ((($$177148)) + 9|0);
+     $766 = HEAP8[$763>>0]|0;
+     HEAP8[$555>>0] = $766;
+     $767 = ((($$177148)) + 10|0);
+     $768 = HEAP8[$765>>0]|0;
+     HEAP8[$556>>0] = $768;
+     $769 = ((($$177148)) + 11|0);
+     $770 = HEAP8[$767>>0]|0;
+     HEAP8[$557>>0] = $770;
+     $771 = ((($$177148)) + 12|0);
+     $772 = HEAP8[$769>>0]|0;
+     HEAP8[$558>>0] = $772;
+     $773 = ((($$177148)) + 13|0);
+     $774 = HEAP8[$771>>0]|0;
+     HEAP8[$559>>0] = $774;
+     $775 = ((($$177148)) + 14|0);
+     $776 = HEAP8[$773>>0]|0;
+     HEAP8[$560>>0] = $776;
+     $777 = ((($$177148)) + 15|0);
+     $778 = HEAP8[$775>>0]|0;
+     HEAP8[$561>>0] = $778;
+     $779 = HEAP8[$777>>0]|0;
+     HEAP8[$562>>0] = $779;
+    }
+    if ($525) {
+     $780 = HEAP32[$515>>2]|0;
+     $781 = HEAP32[$6>>2]|0;
+     $782 = $781 ^ $780;
+     HEAP32[$6>>2] = $782;
+     $783 = HEAP32[$517>>2]|0;
+     $784 = HEAP32[$521>>2]|0;
+     $785 = $784 ^ $783;
+     HEAP32[$521>>2] = $785;
+     $786 = HEAP32[$518>>2]|0;
+     $787 = HEAP32[$522>>2]|0;
+     $788 = $787 ^ $786;
+     HEAP32[$522>>2] = $788;
+     $789 = HEAP32[$519>>2]|0;
+     $790 = HEAP32[$523>>2]|0;
+     $791 = $790 ^ $789;
+     HEAP32[$523>>2] = $791;
+     $792 = (FUNCTION_TABLE_iiii[$512 & 127]($7,$6,$6)|0);
+     $793 = HEAP32[$515>>2]|0;
+     $794 = HEAP32[$6>>2]|0;
+     $795 = $794 ^ $793;
+     HEAP32[$6>>2] = $795;
+     $796 = HEAP32[$517>>2]|0;
+     $797 = HEAP32[$521>>2]|0;
+     $798 = $797 ^ $796;
+     HEAP32[$521>>2] = $798;
+     $799 = HEAP32[$518>>2]|0;
+     $800 = HEAP32[$522>>2]|0;
+     $801 = $800 ^ $799;
+     HEAP32[$522>>2] = $801;
+     $802 = HEAP32[$519>>2]|0;
+     $803 = HEAP32[$523>>2]|0;
+     $804 = $803 ^ $802;
+     HEAP32[$523>>2] = $804;
+     $1010 = $792;
+    } else {
+     $805 = HEAP8[$515>>0]|0;
+     $806 = HEAP8[$6>>0]|0;
+     $807 = $806 ^ $805;
+     HEAP8[$6>>0] = $807;
+     $808 = HEAP8[$563>>0]|0;
+     $809 = HEAP8[$564>>0]|0;
+     $810 = $809 ^ $808;
+     HEAP8[$564>>0] = $810;
+     $811 = HEAP8[$565>>0]|0;
+     $812 = HEAP8[$566>>0]|0;
+     $813 = $812 ^ $811;
+     HEAP8[$566>>0] = $813;
+     $814 = HEAP8[$567>>0]|0;
+     $815 = HEAP8[$568>>0]|0;
+     $816 = $815 ^ $814;
+     HEAP8[$568>>0] = $816;
+     $817 = HEAP8[$569>>0]|0;
+     $818 = HEAP8[$570>>0]|0;
+     $819 = $818 ^ $817;
+     HEAP8[$570>>0] = $819;
+     $820 = HEAP8[$571>>0]|0;
+     $821 = HEAP8[$572>>0]|0;
+     $822 = $821 ^ $820;
+     HEAP8[$572>>0] = $822;
+     $823 = HEAP8[$573>>0]|0;
+     $824 = HEAP8[$574>>0]|0;
+     $825 = $824 ^ $823;
+     HEAP8[$574>>0] = $825;
+     $826 = HEAP8[$575>>0]|0;
+     $827 = HEAP8[$576>>0]|0;
+     $828 = $827 ^ $826;
+     HEAP8[$576>>0] = $828;
+     $829 = HEAP8[$577>>0]|0;
+     $830 = HEAP8[$578>>0]|0;
+     $831 = $830 ^ $829;
+     HEAP8[$578>>0] = $831;
+     $832 = HEAP8[$579>>0]|0;
+     $833 = HEAP8[$580>>0]|0;
+     $834 = $833 ^ $832;
+     HEAP8[$580>>0] = $834;
+     $835 = HEAP8[$581>>0]|0;
+     $836 = HEAP8[$582>>0]|0;
+     $837 = $836 ^ $835;
+     HEAP8[$582>>0] = $837;
+     $838 = HEAP8[$583>>0]|0;
+     $839 = HEAP8[$584>>0]|0;
+     $840 = $839 ^ $838;
+     HEAP8[$584>>0] = $840;
+     $841 = HEAP8[$585>>0]|0;
+     $842 = HEAP8[$586>>0]|0;
+     $843 = $842 ^ $841;
+     HEAP8[$586>>0] = $843;
+     $844 = HEAP8[$587>>0]|0;
+     $845 = HEAP8[$588>>0]|0;
+     $846 = $845 ^ $844;
+     HEAP8[$588>>0] = $846;
+     $847 = HEAP8[$589>>0]|0;
+     $848 = HEAP8[$590>>0]|0;
+     $849 = $848 ^ $847;
+     HEAP8[$590>>0] = $849;
+     $850 = HEAP8[$591>>0]|0;
+     $851 = HEAP8[$592>>0]|0;
+     $852 = $851 ^ $850;
+     HEAP8[$592>>0] = $852;
+     $853 = (FUNCTION_TABLE_iiii[$512 & 127]($7,$6,$6)|0);
+     $854 = HEAP8[$515>>0]|0;
+     $855 = HEAP8[$6>>0]|0;
+     $856 = $855 ^ $854;
+     HEAP8[$6>>0] = $856;
+     $857 = HEAP8[$563>>0]|0;
+     $858 = HEAP8[$564>>0]|0;
+     $859 = $858 ^ $857;
+     HEAP8[$564>>0] = $859;
+     $860 = HEAP8[$565>>0]|0;
+     $861 = HEAP8[$566>>0]|0;
+     $862 = $861 ^ $860;
+     HEAP8[$566>>0] = $862;
+     $863 = HEAP8[$567>>0]|0;
+     $864 = HEAP8[$568>>0]|0;
+     $865 = $864 ^ $863;
+     HEAP8[$568>>0] = $865;
+     $866 = HEAP8[$569>>0]|0;
+     $867 = HEAP8[$570>>0]|0;
+     $868 = $867 ^ $866;
+     HEAP8[$570>>0] = $868;
+     $869 = HEAP8[$571>>0]|0;
+     $870 = HEAP8[$572>>0]|0;
+     $871 = $870 ^ $869;
+     HEAP8[$572>>0] = $871;
+     $872 = HEAP8[$573>>0]|0;
+     $873 = HEAP8[$574>>0]|0;
+     $874 = $873 ^ $872;
+     HEAP8[$574>>0] = $874;
+     $875 = HEAP8[$575>>0]|0;
+     $876 = HEAP8[$576>>0]|0;
+     $877 = $876 ^ $875;
+     HEAP8[$576>>0] = $877;
+     $878 = HEAP8[$577>>0]|0;
+     $879 = HEAP8[$578>>0]|0;
+     $880 = $879 ^ $878;
+     HEAP8[$578>>0] = $880;
+     $881 = HEAP8[$579>>0]|0;
+     $882 = HEAP8[$580>>0]|0;
+     $883 = $882 ^ $881;
+     HEAP8[$580>>0] = $883;
+     $884 = HEAP8[$581>>0]|0;
+     $885 = HEAP8[$582>>0]|0;
+     $886 = $885 ^ $884;
+     HEAP8[$582>>0] = $886;
+     $887 = HEAP8[$583>>0]|0;
+     $888 = HEAP8[$584>>0]|0;
+     $889 = $888 ^ $887;
+     HEAP8[$584>>0] = $889;
+     $890 = HEAP8[$585>>0]|0;
+     $891 = HEAP8[$586>>0]|0;
+     $892 = $891 ^ $890;
+     HEAP8[$586>>0] = $892;
+     $893 = HEAP8[$587>>0]|0;
+     $894 = HEAP8[$588>>0]|0;
+     $895 = $894 ^ $893;
+     HEAP8[$588>>0] = $895;
+     $896 = HEAP8[$589>>0]|0;
+     $897 = HEAP8[$590>>0]|0;
+     $898 = $897 ^ $896;
+     HEAP8[$590>>0] = $898;
+     $899 = HEAP8[$591>>0]|0;
+     $900 = HEAP8[$592>>0]|0;
+     $901 = $900 ^ $899;
+     HEAP8[$592>>0] = $901;
+     $1010 = $853;
+    }
+    if ($529) {
+     $902 = HEAP32[$6>>2]|0;
+     $903 = HEAP32[$526>>2]|0;
+     $904 = $903 ^ $902;
+     HEAP32[$526>>2] = $904;
+     $905 = HEAP32[$521>>2]|0;
+     $906 = HEAP32[$530>>2]|0;
+     $907 = $906 ^ $905;
+     HEAP32[$530>>2] = $907;
+     $908 = HEAP32[$522>>2]|0;
+     $909 = HEAP32[$531>>2]|0;
+     $910 = $909 ^ $908;
+     HEAP32[$531>>2] = $910;
+     $911 = HEAP32[$523>>2]|0;
+     $912 = HEAP32[$532>>2]|0;
+     $913 = $912 ^ $911;
+     HEAP32[$532>>2] = $913;
+    } else {
+     $914 = HEAP8[$6>>0]|0;
+     $915 = HEAP8[$526>>0]|0;
+     $916 = $915 ^ $914;
+     HEAP8[$526>>0] = $916;
+     $917 = HEAP8[$593>>0]|0;
+     $918 = HEAP8[$594>>0]|0;
+     $919 = $918 ^ $917;
+     HEAP8[$594>>0] = $919;
+     $920 = HEAP8[$595>>0]|0;
+     $921 = HEAP8[$596>>0]|0;
+     $922 = $921 ^ $920;
+     HEAP8[$596>>0] = $922;
+     $923 = HEAP8[$597>>0]|0;
+     $924 = HEAP8[$598>>0]|0;
+     $925 = $924 ^ $923;
+     HEAP8[$598>>0] = $925;
+     $926 = HEAP8[$599>>0]|0;
+     $927 = HEAP8[$600>>0]|0;
+     $928 = $927 ^ $926;
+     HEAP8[$600>>0] = $928;
+     $929 = HEAP8[$601>>0]|0;
+     $930 = HEAP8[$602>>0]|0;
+     $931 = $930 ^ $929;
+     HEAP8[$602>>0] = $931;
+     $932 = HEAP8[$603>>0]|0;
+     $933 = HEAP8[$604>>0]|0;
+     $934 = $933 ^ $932;
+     HEAP8[$604>>0] = $934;
+     $935 = HEAP8[$605>>0]|0;
+     $936 = HEAP8[$606>>0]|0;
+     $937 = $936 ^ $935;
+     HEAP8[$606>>0] = $937;
+     $938 = HEAP8[$607>>0]|0;
+     $939 = HEAP8[$608>>0]|0;
+     $940 = $939 ^ $938;
+     HEAP8[$608>>0] = $940;
+     $941 = HEAP8[$609>>0]|0;
+     $942 = HEAP8[$610>>0]|0;
+     $943 = $942 ^ $941;
+     HEAP8[$610>>0] = $943;
+     $944 = HEAP8[$611>>0]|0;
+     $945 = HEAP8[$612>>0]|0;
+     $946 = $945 ^ $944;
+     HEAP8[$612>>0] = $946;
+     $947 = HEAP8[$613>>0]|0;
+     $948 = HEAP8[$614>>0]|0;
+     $949 = $948 ^ $947;
+     HEAP8[$614>>0] = $949;
+     $950 = HEAP8[$615>>0]|0;
+     $951 = HEAP8[$616>>0]|0;
+     $952 = $951 ^ $950;
+     HEAP8[$616>>0] = $952;
+     $953 = HEAP8[$617>>0]|0;
+     $954 = HEAP8[$618>>0]|0;
+     $955 = $954 ^ $953;
+     HEAP8[$618>>0] = $955;
+     $956 = HEAP8[$619>>0]|0;
+     $957 = HEAP8[$620>>0]|0;
+     $958 = $957 ^ $956;
+     HEAP8[$620>>0] = $958;
+     $959 = HEAP8[$621>>0]|0;
+     $960 = HEAP8[$622>>0]|0;
+     $961 = $960 ^ $959;
+     HEAP8[$622>>0] = $961;
+    }
+    $962 = $$175149;
+    $963 = $962 & 3;
+    $964 = ($963|0)==(0);
+    if ($964) {
+     $965 = HEAP32[$6>>2]|0;
+     $966 = ((($$175149)) + 4|0);
+     HEAP32[$$175149>>2] = $965;
+     $967 = HEAP32[$521>>2]|0;
+     $968 = ((($$175149)) + 8|0);
+     HEAP32[$966>>2] = $967;
+     $969 = HEAP32[$522>>2]|0;
+     $970 = ((($$175149)) + 12|0);
+     HEAP32[$968>>2] = $969;
+     $971 = HEAP32[$523>>2]|0;
+     HEAP32[$970>>2] = $971;
+    } else {
+     $972 = HEAP8[$6>>0]|0;
+     $973 = ((($$175149)) + 1|0);
+     HEAP8[$$175149>>0] = $972;
+     $974 = HEAP8[$623>>0]|0;
+     $975 = ((($$175149)) + 2|0);
+     HEAP8[$973>>0] = $974;
+     $976 = HEAP8[$624>>0]|0;
+     $977 = ((($$175149)) + 3|0);
+     HEAP8[$975>>0] = $976;
+     $978 = HEAP8[$625>>0]|0;
+     $979 = ((($$175149)) + 4|0);
+     HEAP8[$977>>0] = $978;
+     $980 = HEAP8[$626>>0]|0;
+     $981 = ((($$175149)) + 5|0);
+     HEAP8[$979>>0] = $980;
+     $982 = HEAP8[$627>>0]|0;
+     $983 = ((($$175149)) + 6|0);
+     HEAP8[$981>>0] = $982;
+     $984 = HEAP8[$628>>0]|0;
+     $985 = ((($$175149)) + 7|0);
+     HEAP8[$983>>0] = $984;
+     $986 = HEAP8[$629>>0]|0;
+     $987 = ((($$175149)) + 8|0);
+     HEAP8[$985>>0] = $986;
+     $988 = HEAP8[$630>>0]|0;
+     $989 = ((($$175149)) + 9|0);
+     HEAP8[$987>>0] = $988;
+     $990 = HEAP8[$631>>0]|0;
+     $991 = ((($$175149)) + 10|0);
+     HEAP8[$989>>0] = $990;
+     $992 = HEAP8[$632>>0]|0;
+     $993 = ((($$175149)) + 11|0);
+     HEAP8[$991>>0] = $992;
+     $994 = HEAP8[$633>>0]|0;
+     $995 = ((($$175149)) + 12|0);
+     HEAP8[$993>>0] = $994;
+     $996 = HEAP8[$634>>0]|0;
+     $997 = ((($$175149)) + 13|0);
+     HEAP8[$995>>0] = $996;
+     $998 = HEAP8[$635>>0]|0;
+     $999 = ((($$175149)) + 14|0);
+     HEAP8[$997>>0] = $998;
+     $1000 = HEAP8[$636>>0]|0;
+     $1001 = ((($$175149)) + 15|0);
+     HEAP8[$999>>0] = $1000;
+     $1002 = HEAP8[$637>>0]|0;
+     HEAP8[$1001>>0] = $1002;
+    }
+    $1003 = ((($$177148)) + 16|0);
+    $1004 = ((($$175149)) + 16|0);
+    $1005 = (($$1150) + -1)|0;
+    $1006 = ($1005|0)==(0);
+    if ($1006) {
+     $$180$lcssa = $1010;
+     break;
+    } else {
+     $$1150 = $1005;$$175149 = $1004;$$177148 = $1003;
+    }
+   }
+  }
+  $$2 = $$180$lcssa;
+ } else {
+  $9 = ((($7)) + 496|0);
+  $10 = HEAP32[$9>>2]|0;
+  $11 = ($10|0)==(0|0);
+  if (!($11)) {
+   FUNCTION_TABLE_v[$10 & 127]();
+  }
+  $15 = ((($7)) + 488|0);
+  $16 = HEAP32[$15>>2]|0;
+  $17 = ($3|0)==(0);
+  if ($17) {
+   $$079$lcssa = 0;
+  } else {
+   $18 = ((($0)) + 464|0);
+   $19 = ((($0)) + 64|0);
+   $20 = $19;
+   $21 = ((($19)) + 4|0);
+   $22 = ((($0)) + 72|0);
+   $23 = ((($0)) + 76|0);
+   $24 = ((($0)) + 160|0);
+   $25 = ((($5)) + 4|0);
+   $26 = ((($5)) + 8|0);
+   $27 = ((($5)) + 12|0);
+   $28 = ((($0)) + 80|0);
+   $29 = $28;
+   $30 = $29 & 3;
+   $31 = ($30|0)==(0);
+   $32 = ((($28)) + 4|0);
+   $33 = ((($0)) + 88|0);
+   $34 = ((($0)) + 92|0);
+   $35 = $20 & 3;
+   $36 = ($35|0)==(0);
+   $37 = ((($19)) + 1|0);
+   $38 = ((($19)) + 2|0);
+   $39 = ((($19)) + 3|0);
+   $40 = ((($19)) + 4|0);
+   $41 = ((($19)) + 5|0);
+   $42 = ((($19)) + 6|0);
+   $43 = ((($19)) + 7|0);
+   $44 = ((($0)) + 72|0);
+   $45 = ((($0)) + 73|0);
+   $46 = ((($0)) + 74|0);
+   $47 = ((($0)) + 75|0);
+   $48 = ((($0)) + 76|0);
+   $49 = ((($0)) + 77|0);
+   $50 = ((($0)) + 78|0);
+   $51 = ((($0)) + 79|0);
+   $52 = ((($5)) + 1|0);
+   $53 = ((($5)) + 2|0);
+   $54 = ((($5)) + 3|0);
+   $55 = ((($5)) + 4|0);
+   $56 = ((($55)) + 1|0);
+   $57 = ((($55)) + 2|0);
+   $58 = ((($55)) + 3|0);
+   $59 = ((($5)) + 8|0);
+   $60 = ((($59)) + 1|0);
+   $61 = ((($59)) + 2|0);
+   $62 = ((($59)) + 3|0);
+   $63 = ((($5)) + 12|0);
+   $64 = ((($63)) + 1|0);
+   $65 = ((($63)) + 2|0);
+   $66 = ((($63)) + 3|0);
+   $67 = ((($5)) + 1|0);
+   $68 = ((($28)) + 1|0);
+   $69 = ((($5)) + 2|0);
+   $70 = ((($28)) + 2|0);
+   $71 = ((($5)) + 3|0);
+   $72 = ((($28)) + 3|0);
+   $73 = ((($5)) + 4|0);
+   $74 = ((($28)) + 4|0);
+   $75 = ((($73)) + 1|0);
+   $76 = ((($28)) + 5|0);
+   $77 = ((($73)) + 2|0);
+   $78 = ((($28)) + 6|0);
+   $79 = ((($73)) + 3|0);
+   $80 = ((($28)) + 7|0);
+   $81 = ((($5)) + 8|0);
+   $82 = ((($0)) + 88|0);
+   $83 = ((($81)) + 1|0);
+   $84 = ((($0)) + 89|0);
+   $85 = ((($81)) + 2|0);
+   $86 = ((($0)) + 90|0);
+   $87 = ((($81)) + 3|0);
+   $88 = ((($0)) + 91|0);
+   $89 = ((($5)) + 12|0);
+   $90 = ((($0)) + 92|0);
+   $91 = ((($89)) + 1|0);
+   $92 = ((($0)) + 93|0);
+   $93 = ((($89)) + 2|0);
+   $94 = ((($0)) + 94|0);
+   $95 = ((($89)) + 3|0);
+   $96 = ((($0)) + 95|0);
+   $97 = ((($19)) + 1|0);
+   $98 = ((($5)) + 1|0);
+   $99 = ((($19)) + 2|0);
+   $100 = ((($5)) + 2|0);
+   $101 = ((($19)) + 3|0);
+   $102 = ((($5)) + 3|0);
+   $103 = ((($19)) + 4|0);
+   $104 = ((($5)) + 4|0);
+   $105 = ((($19)) + 5|0);
+   $106 = ((($104)) + 1|0);
+   $107 = ((($19)) + 6|0);
+   $108 = ((($104)) + 2|0);
+   $109 = ((($19)) + 7|0);
+   $110 = ((($104)) + 3|0);
+   $111 = ((($0)) + 72|0);
+   $112 = ((($5)) + 8|0);
+   $113 = ((($0)) + 73|0);
+   $114 = ((($112)) + 1|0);
+   $115 = ((($0)) + 74|0);
+   $116 = ((($112)) + 2|0);
+   $117 = ((($0)) + 75|0);
+   $118 = ((($112)) + 3|0);
+   $119 = ((($0)) + 76|0);
+   $120 = ((($5)) + 12|0);
+   $121 = ((($0)) + 77|0);
+   $122 = ((($120)) + 1|0);
+   $123 = ((($0)) + 78|0);
+   $124 = ((($120)) + 2|0);
+   $125 = ((($0)) + 79|0);
+   $126 = ((($120)) + 3|0);
+   $127 = ((($5)) + 1|0);
+   $128 = ((($5)) + 2|0);
+   $129 = ((($5)) + 3|0);
+   $130 = ((($5)) + 4|0);
+   $131 = ((($130)) + 1|0);
+   $132 = ((($130)) + 2|0);
+   $133 = ((($130)) + 3|0);
+   $134 = ((($5)) + 8|0);
+   $135 = ((($134)) + 1|0);
+   $136 = ((($134)) + 2|0);
+   $137 = ((($134)) + 3|0);
+   $138 = ((($5)) + 12|0);
+   $139 = ((($138)) + 1|0);
+   $140 = ((($138)) + 2|0);
+   $141 = ((($138)) + 3|0);
+   $$073153 = $3;$$074152 = $1;$$076151 = $2;
+   while(1) {
+    $142 = $18;
+    $143 = $142;
+    $144 = HEAP32[$143>>2]|0;
+    $145 = (($142) + 4)|0;
+    $146 = $145;
+    $147 = HEAP32[$146>>2]|0;
+    $148 = (_i64Add(($144|0),($147|0),1,0)|0);
+    $149 = tempRet0;
+    $150 = $18;
+    $151 = $150;
+    HEAP32[$151>>2] = $148;
+    $152 = (($150) + 4)|0;
+    $153 = $152;
+    HEAP32[$153>>2] = $149;
+    $154 = ($148|0)==(0);
+    $155 = (0)==(0);
+    $156 = $154 & $155;
+    if ($156) {
+     label = 11;
+    } else {
+     $157 = (_llvm_cttz_i32(($148|0))|0);
+     $158 = ($157>>>0)<(16);
+     if ($158) {
+      $159 = (($24) + ($157<<4)|0);
+      $$078 = $159;
+     } else {
+      label = 11;
+     }
+    }
+    if ((label|0) == 11) {
+     label = 0;
+     $160 = (__gcry_cipher_ocb_get_l($0,$5,$148,$149)|0);
+     $$078 = $160;
+    }
+    $161 = $$078;
+    $162 = $161 | $20;
+    $163 = $162 & 3;
+    $164 = ($163|0)==(0);
+    if ($164) {
+     $165 = ((($$078)) + 4|0);
+     $166 = HEAP32[$$078>>2]|0;
+     $167 = HEAP32[$19>>2]|0;
+     $168 = $167 ^ $166;
+     HEAP32[$19>>2] = $168;
+     $169 = ((($$078)) + 8|0);
+     $170 = HEAP32[$165>>2]|0;
+     $171 = HEAP32[$21>>2]|0;
+     $172 = $171 ^ $170;
+     HEAP32[$21>>2] = $172;
+     $173 = ((($$078)) + 12|0);
+     $174 = HEAP32[$169>>2]|0;
+     $175 = HEAP32[$22>>2]|0;
+     $176 = $175 ^ $174;
+     HEAP32[$22>>2] = $176;
+     $177 = HEAP32[$173>>2]|0;
+     $178 = HEAP32[$23>>2]|0;
+     $179 = $178 ^ $177;
+     HEAP32[$23>>2] = $179;
+    } else {
+     $180 = ((($$078)) + 1|0);
+     $181 = HEAP8[$$078>>0]|0;
+     $182 = HEAP8[$19>>0]|0;
+     $183 = $182 ^ $181;
+     HEAP8[$19>>0] = $183;
+     $184 = ((($$078)) + 2|0);
+     $185 = HEAP8[$180>>0]|0;
+     $186 = HEAP8[$37>>0]|0;
+     $187 = $186 ^ $185;
+     HEAP8[$37>>0] = $187;
+     $188 = ((($$078)) + 3|0);
+     $189 = HEAP8[$184>>0]|0;
+     $190 = HEAP8[$38>>0]|0;
+     $191 = $190 ^ $189;
+     HEAP8[$38>>0] = $191;
+     $192 = ((($$078)) + 4|0);
+     $193 = HEAP8[$188>>0]|0;
+     $194 = HEAP8[$39>>0]|0;
+     $195 = $194 ^ $193;
+     HEAP8[$39>>0] = $195;
+     $196 = ((($$078)) + 5|0);
+     $197 = HEAP8[$192>>0]|0;
+     $198 = HEAP8[$40>>0]|0;
+     $199 = $198 ^ $197;
+     HEAP8[$40>>0] = $199;
+     $200 = ((($$078)) + 6|0);
+     $201 = HEAP8[$196>>0]|0;
+     $202 = HEAP8[$41>>0]|0;
+     $203 = $202 ^ $201;
+     HEAP8[$41>>0] = $203;
+     $204 = ((($$078)) + 7|0);
+     $205 = HEAP8[$200>>0]|0;
+     $206 = HEAP8[$42>>0]|0;
+     $207 = $206 ^ $205;
+     HEAP8[$42>>0] = $207;
+     $208 = ((($$078)) + 8|0);
+     $209 = HEAP8[$204>>0]|0;
+     $210 = HEAP8[$43>>0]|0;
+     $211 = $210 ^ $209;
+     HEAP8[$43>>0] = $211;
+     $212 = ((($$078)) + 9|0);
+     $213 = HEAP8[$208>>0]|0;
+     $214 = HEAP8[$44>>0]|0;
+     $215 = $214 ^ $213;
+     HEAP8[$44>>0] = $215;
+     $216 = ((($$078)) + 10|0);
+     $217 = HEAP8[$212>>0]|0;
+     $218 = HEAP8[$45>>0]|0;
+     $219 = $218 ^ $217;
+     HEAP8[$45>>0] = $219;
+     $220 = ((($$078)) + 11|0);
+     $221 = HEAP8[$216>>0]|0;
+     $222 = HEAP8[$46>>0]|0;
+     $223 = $222 ^ $221;
+     HEAP8[$46>>0] = $223;
+     $224 = ((($$078)) + 12|0);
+     $225 = HEAP8[$220>>0]|0;
+     $226 = HEAP8[$47>>0]|0;
+     $227 = $226 ^ $225;
+     HEAP8[$47>>0] = $227;
+     $228 = ((($$078)) + 13|0);
+     $229 = HEAP8[$224>>0]|0;
+     $230 = HEAP8[$48>>0]|0;
+     $231 = $230 ^ $229;
+     HEAP8[$48>>0] = $231;
+     $232 = ((($$078)) + 14|0);
+     $233 = HEAP8[$228>>0]|0;
+     $234 = HEAP8[$49>>0]|0;
+     $235 = $234 ^ $233;
+     HEAP8[$49>>0] = $235;
+     $236 = ((($$078)) + 15|0);
+     $237 = HEAP8[$232>>0]|0;
+     $238 = HEAP8[$50>>0]|0;
+     $239 = $238 ^ $237;
+     HEAP8[$50>>0] = $239;
+     $240 = HEAP8[$236>>0]|0;
+     $241 = HEAP8[$51>>0]|0;
+     $242 = $241 ^ $240;
+     HEAP8[$51>>0] = $242;
+    }
+    $243 = $$076151;
+    $244 = $243 & 3;
+    $245 = ($244|0)==(0);
+    if ($245) {
+     $246 = ((($$076151)) + 4|0);
+     $247 = HEAP32[$$076151>>2]|0;
+     HEAP32[$5>>2] = $247;
+     $248 = ((($$076151)) + 8|0);
+     $249 = HEAP32[$246>>2]|0;
+     HEAP32[$25>>2] = $249;
+     $250 = ((($$076151)) + 12|0);
+     $251 = HEAP32[$248>>2]|0;
+     HEAP32[$26>>2] = $251;
+     $252 = HEAP32[$250>>2]|0;
+     HEAP32[$27>>2] = $252;
+    } else {
+     $253 = ((($$076151)) + 1|0);
+     $254 = HEAP8[$$076151>>0]|0;
+     HEAP8[$5>>0] = $254;
+     $255 = ((($$076151)) + 2|0);
+     $256 = HEAP8[$253>>0]|0;
+     HEAP8[$52>>0] = $256;
+     $257 = ((($$076151)) + 3|0);
+     $258 = HEAP8[$255>>0]|0;
+     HEAP8[$53>>0] = $258;
+     $259 = ((($$076151)) + 4|0);
+     $260 = HEAP8[$257>>0]|0;
+     HEAP8[$54>>0] = $260;
+     $261 = ((($$076151)) + 5|0);
+     $262 = HEAP8[$259>>0]|0;
+     HEAP8[$55>>0] = $262;
+     $263 = ((($$076151)) + 6|0);
+     $264 = HEAP8[$261>>0]|0;
+     HEAP8[$56>>0] = $264;
+     $265 = ((($$076151)) + 7|0);
+     $266 = HEAP8[$263>>0]|0;
+     HEAP8[$57>>0] = $266;
+     $267 = ((($$076151)) + 8|0);
+     $268 = HEAP8[$265>>0]|0;
+     HEAP8[$58>>0] = $268;
+     $269 = ((($$076151)) + 9|0);
+     $270 = HEAP8[$267>>0]|0;
+     HEAP8[$59>>0] = $270;
+     $271 = ((($$076151)) + 10|0);
+     $272 = HEAP8[$269>>0]|0;
+     HEAP8[$60>>0] = $272;
+     $273 = ((($$076151)) + 11|0);
+     $274 = HEAP8[$271>>0]|0;
+     HEAP8[$61>>0] = $274;
+     $275 = ((($$076151)) + 12|0);
+     $276 = HEAP8[$273>>0]|0;
+     HEAP8[$62>>0] = $276;
+     $277 = ((($$076151)) + 13|0);
+     $278 = HEAP8[$275>>0]|0;
+     HEAP8[$63>>0] = $278;
+     $279 = ((($$076151)) + 14|0);
+     $280 = HEAP8[$277>>0]|0;
+     HEAP8[$64>>0] = $280;
+     $281 = ((($$076151)) + 15|0);
+     $282 = HEAP8[$279>>0]|0;
+     HEAP8[$65>>0] = $282;
+     $283 = HEAP8[$281>>0]|0;
+     HEAP8[$66>>0] = $283;
+    }
+    if ($31) {
+     $284 = HEAP32[$5>>2]|0;
+     $285 = HEAP32[$28>>2]|0;
+     $286 = $285 ^ $284;
+     HEAP32[$28>>2] = $286;
+     $287 = HEAP32[$25>>2]|0;
+     $288 = HEAP32[$32>>2]|0;
+     $289 = $288 ^ $287;
+     HEAP32[$32>>2] = $289;
+     $290 = HEAP32[$26>>2]|0;
+     $291 = HEAP32[$33>>2]|0;
+     $292 = $291 ^ $290;
+     HEAP32[$33>>2] = $292;
+     $293 = HEAP32[$27>>2]|0;
+     $294 = HEAP32[$34>>2]|0;
+     $295 = $294 ^ $293;
+     HEAP32[$34>>2] = $295;
+    } else {
+     $296 = HEAP8[$5>>0]|0;
+     $297 = HEAP8[$28>>0]|0;
+     $298 = $297 ^ $296;
+     HEAP8[$28>>0] = $298;
+     $299 = HEAP8[$67>>0]|0;
+     $300 = HEAP8[$68>>0]|0;
+     $301 = $300 ^ $299;
+     HEAP8[$68>>0] = $301;
+     $302 = HEAP8[$69>>0]|0;
+     $303 = HEAP8[$70>>0]|0;
+     $304 = $303 ^ $302;
+     HEAP8[$70>>0] = $304;
+     $305 = HEAP8[$71>>0]|0;
+     $306 = HEAP8[$72>>0]|0;
+     $307 = $306 ^ $305;
+     HEAP8[$72>>0] = $307;
+     $308 = HEAP8[$73>>0]|0;
+     $309 = HEAP8[$74>>0]|0;
+     $310 = $309 ^ $308;
+     HEAP8[$74>>0] = $310;
+     $311 = HEAP8[$75>>0]|0;
+     $312 = HEAP8[$76>>0]|0;
+     $313 = $312 ^ $311;
+     HEAP8[$76>>0] = $313;
+     $314 = HEAP8[$77>>0]|0;
+     $315 = HEAP8[$78>>0]|0;
+     $316 = $315 ^ $314;
+     HEAP8[$78>>0] = $316;
+     $317 = HEAP8[$79>>0]|0;
+     $318 = HEAP8[$80>>0]|0;
+     $319 = $318 ^ $317;
+     HEAP8[$80>>0] = $319;
+     $320 = HEAP8[$81>>0]|0;
+     $321 = HEAP8[$82>>0]|0;
+     $322 = $321 ^ $320;
+     HEAP8[$82>>0] = $322;
+     $323 = HEAP8[$83>>0]|0;
+     $324 = HEAP8[$84>>0]|0;
+     $325 = $324 ^ $323;
+     HEAP8[$84>>0] = $325;
+     $326 = HEAP8[$85>>0]|0;
+     $327 = HEAP8[$86>>0]|0;
+     $328 = $327 ^ $326;
+     HEAP8[$86>>0] = $328;
+     $329 = HEAP8[$87>>0]|0;
+     $330 = HEAP8[$88>>0]|0;
+     $331 = $330 ^ $329;
+     HEAP8[$88>>0] = $331;
+     $332 = HEAP8[$89>>0]|0;
+     $333 = HEAP8[$90>>0]|0;
+     $334 = $333 ^ $332;
+     HEAP8[$90>>0] = $334;
+     $335 = HEAP8[$91>>0]|0;
+     $336 = HEAP8[$92>>0]|0;
+     $337 = $336 ^ $335;
+     HEAP8[$92>>0] = $337;
+     $338 = HEAP8[$93>>0]|0;
+     $339 = HEAP8[$94>>0]|0;
+     $340 = $339 ^ $338;
+     HEAP8[$94>>0] = $340;
+     $341 = HEAP8[$95>>0]|0;
+     $342 = HEAP8[$96>>0]|0;
+     $343 = $342 ^ $341;
+     HEAP8[$96>>0] = $343;
+    }
+    if ($36) {
+     $344 = HEAP32[$19>>2]|0;
+     $345 = HEAP32[$5>>2]|0;
+     $346 = $345 ^ $344;
+     HEAP32[$5>>2] = $346;
+     $347 = HEAP32[$21>>2]|0;
+     $348 = HEAP32[$25>>2]|0;
+     $349 = $348 ^ $347;
+     HEAP32[$25>>2] = $349;
+     $350 = HEAP32[$22>>2]|0;
+     $351 = HEAP32[$26>>2]|0;
+     $352 = $351 ^ $350;
+     HEAP32[$26>>2] = $352;
+     $353 = HEAP32[$23>>2]|0;
+     $354 = HEAP32[$27>>2]|0;
+     $355 = $354 ^ $353;
+     HEAP32[$27>>2] = $355;
+     $356 = (FUNCTION_TABLE_iiii[$16 & 127]($7,$5,$5)|0);
+     $357 = HEAP32[$19>>2]|0;
+     $358 = HEAP32[$5>>2]|0;
+     $359 = $358 ^ $357;
+     HEAP32[$5>>2] = $359;
+     $360 = HEAP32[$21>>2]|0;
+     $361 = HEAP32[$25>>2]|0;
+     $362 = $361 ^ $360;
+     HEAP32[$25>>2] = $362;
+     $363 = HEAP32[$22>>2]|0;
+     $364 = HEAP32[$26>>2]|0;
+     $365 = $364 ^ $363;
+     HEAP32[$26>>2] = $365;
+     $366 = HEAP32[$23>>2]|0;
+     $367 = HEAP32[$27>>2]|0;
+     $368 = $367 ^ $366;
+     HEAP32[$27>>2] = $368;
+     $1009 = $356;
+    } else {
+     $369 = HEAP8[$19>>0]|0;
+     $370 = HEAP8[$5>>0]|0;
+     $371 = $370 ^ $369;
+     HEAP8[$5>>0] = $371;
+     $372 = HEAP8[$97>>0]|0;
+     $373 = HEAP8[$98>>0]|0;
+     $374 = $373 ^ $372;
+     HEAP8[$98>>0] = $374;
+     $375 = HEAP8[$99>>0]|0;
+     $376 = HEAP8[$100>>0]|0;
+     $377 = $376 ^ $375;
+     HEAP8[$100>>0] = $377;
+     $378 = HEAP8[$101>>0]|0;
+     $379 = HEAP8[$102>>0]|0;
+     $380 = $379 ^ $378;
+     HEAP8[$102>>0] = $380;
+     $381 = HEAP8[$103>>0]|0;
+     $382 = HEAP8[$104>>0]|0;
+     $383 = $382 ^ $381;
+     HEAP8[$104>>0] = $383;
+     $384 = HEAP8[$105>>0]|0;
+     $385 = HEAP8[$106>>0]|0;
+     $386 = $385 ^ $384;
+     HEAP8[$106>>0] = $386;
+     $387 = HEAP8[$107>>0]|0;
+     $388 = HEAP8[$108>>0]|0;
+     $389 = $388 ^ $387;
+     HEAP8[$108>>0] = $389;
+     $390 = HEAP8[$109>>0]|0;
+     $391 = HEAP8[$110>>0]|0;
+     $392 = $391 ^ $390;
+     HEAP8[$110>>0] = $392;
+     $393 = HEAP8[$111>>0]|0;
+     $394 = HEAP8[$112>>0]|0;
+     $395 = $394 ^ $393;
+     HEAP8[$112>>0] = $395;
+     $396 = HEAP8[$113>>0]|0;
+     $397 = HEAP8[$114>>0]|0;
+     $398 = $397 ^ $396;
+     HEAP8[$114>>0] = $398;
+     $399 = HEAP8[$115>>0]|0;
+     $400 = HEAP8[$116>>0]|0;
+     $401 = $400 ^ $399;
+     HEAP8[$116>>0] = $401;
+     $402 = HEAP8[$117>>0]|0;
+     $403 = HEAP8[$118>>0]|0;
+     $404 = $403 ^ $402;
+     HEAP8[$118>>0] = $404;
+     $405 = HEAP8[$119>>0]|0;
+     $406 = HEAP8[$120>>0]|0;
+     $407 = $406 ^ $405;
+     HEAP8[$120>>0] = $407;
+     $408 = HEAP8[$121>>0]|0;
+     $409 = HEAP8[$122>>0]|0;
+     $410 = $409 ^ $408;
+     HEAP8[$122>>0] = $410;
+     $411 = HEAP8[$123>>0]|0;
+     $412 = HEAP8[$124>>0]|0;
+     $413 = $412 ^ $411;
+     HEAP8[$124>>0] = $413;
+     $414 = HEAP8[$125>>0]|0;
+     $415 = HEAP8[$126>>0]|0;
+     $416 = $415 ^ $414;
+     HEAP8[$126>>0] = $416;
+     $417 = (FUNCTION_TABLE_iiii[$16 & 127]($7,$5,$5)|0);
+     $418 = HEAP8[$19>>0]|0;
+     $419 = HEAP8[$5>>0]|0;
+     $420 = $419 ^ $418;
+     HEAP8[$5>>0] = $420;
+     $421 = HEAP8[$97>>0]|0;
+     $422 = HEAP8[$98>>0]|0;
+     $423 = $422 ^ $421;
+     HEAP8[$98>>0] = $423;
+     $424 = HEAP8[$99>>0]|0;
+     $425 = HEAP8[$100>>0]|0;
+     $426 = $425 ^ $424;
+     HEAP8[$100>>0] = $426;
+     $427 = HEAP8[$101>>0]|0;
+     $428 = HEAP8[$102>>0]|0;
+     $429 = $428 ^ $427;
+     HEAP8[$102>>0] = $429;
+     $430 = HEAP8[$103>>0]|0;
+     $431 = HEAP8[$104>>0]|0;
+     $432 = $431 ^ $430;
+     HEAP8[$104>>0] = $432;
+     $433 = HEAP8[$105>>0]|0;
+     $434 = HEAP8[$106>>0]|0;
+     $435 = $434 ^ $433;
+     HEAP8[$106>>0] = $435;
+     $436 = HEAP8[$107>>0]|0;
+     $437 = HEAP8[$108>>0]|0;
+     $438 = $437 ^ $436;
+     HEAP8[$108>>0] = $438;
+     $439 = HEAP8[$109>>0]|0;
+     $440 = HEAP8[$110>>0]|0;
+     $441 = $440 ^ $439;
+     HEAP8[$110>>0] = $441;
+     $442 = HEAP8[$111>>0]|0;
+     $443 = HEAP8[$112>>0]|0;
+     $444 = $443 ^ $442;
+     HEAP8[$112>>0] = $444;
+     $445 = HEAP8[$113>>0]|0;
+     $446 = HEAP8[$114>>0]|0;
+     $447 = $446 ^ $445;
+     HEAP8[$114>>0] = $447;
+     $448 = HEAP8[$115>>0]|0;
+     $449 = HEAP8[$116>>0]|0;
+     $450 = $449 ^ $448;
+     HEAP8[$116>>0] = $450;
+     $451 = HEAP8[$117>>0]|0;
+     $452 = HEAP8[$118>>0]|0;
+     $453 = $452 ^ $451;
+     HEAP8[$118>>0] = $453;
+     $454 = HEAP8[$119>>0]|0;
+     $455 = HEAP8[$120>>0]|0;
+     $456 = $455 ^ $454;
+     HEAP8[$120>>0] = $456;
+     $457 = HEAP8[$121>>0]|0;
+     $458 = HEAP8[$122>>0]|0;
+     $459 = $458 ^ $457;
+     HEAP8[$122>>0] = $459;
+     $460 = HEAP8[$123>>0]|0;
+     $461 = HEAP8[$124>>0]|0;
+     $462 = $461 ^ $460;
+     HEAP8[$124>>0] = $462;
+     $463 = HEAP8[$125>>0]|0;
+     $464 = HEAP8[$126>>0]|0;
+     $465 = $464 ^ $463;
+     HEAP8[$126>>0] = $465;
+     $1009 = $417;
+    }
+    $466 = $$074152;
+    $467 = $466 & 3;
+    $468 = ($467|0)==(0);
+    if ($468) {
+     $469 = HEAP32[$5>>2]|0;
+     $470 = ((($$074152)) + 4|0);
+     HEAP32[$$074152>>2] = $469;
+     $471 = HEAP32[$25>>2]|0;
+     $472 = ((($$074152)) + 8|0);
+     HEAP32[$470>>2] = $471;
+     $473 = HEAP32[$26>>2]|0;
+     $474 = ((($$074152)) + 12|0);
+     HEAP32[$472>>2] = $473;
+     $475 = HEAP32[$27>>2]|0;
+     HEAP32[$474>>2] = $475;
+    } else {
+     $476 = HEAP8[$5>>0]|0;
+     $477 = ((($$074152)) + 1|0);
+     HEAP8[$$074152>>0] = $476;
+     $478 = HEAP8[$127>>0]|0;
+     $479 = ((($$074152)) + 2|0);
+     HEAP8[$477>>0] = $478;
+     $480 = HEAP8[$128>>0]|0;
+     $481 = ((($$074152)) + 3|0);
+     HEAP8[$479>>0] = $480;
+     $482 = HEAP8[$129>>0]|0;
+     $483 = ((($$074152)) + 4|0);
+     HEAP8[$481>>0] = $482;
+     $484 = HEAP8[$130>>0]|0;
+     $485 = ((($$074152)) + 5|0);
+     HEAP8[$483>>0] = $484;
+     $486 = HEAP8[$131>>0]|0;
+     $487 = ((($$074152)) + 6|0);
+     HEAP8[$485>>0] = $486;
+     $488 = HEAP8[$132>>0]|0;
+     $489 = ((($$074152)) + 7|0);
+     HEAP8[$487>>0] = $488;
+     $490 = HEAP8[$133>>0]|0;
+     $491 = ((($$074152)) + 8|0);
+     HEAP8[$489>>0] = $490;
+     $492 = HEAP8[$134>>0]|0;
+     $493 = ((($$074152)) + 9|0);
+     HEAP8[$491>>0] = $492;
+     $494 = HEAP8[$135>>0]|0;
+     $495 = ((($$074152)) + 10|0);
+     HEAP8[$493>>0] = $494;
+     $496 = HEAP8[$136>>0]|0;
+     $497 = ((($$074152)) + 11|0);
+     HEAP8[$495>>0] = $496;
+     $498 = HEAP8[$137>>0]|0;
+     $499 = ((($$074152)) + 12|0);
+     HEAP8[$497>>0] = $498;
+     $500 = HEAP8[$138>>0]|0;
+     $501 = ((($$074152)) + 13|0);
+     HEAP8[$499>>0] = $500;
+     $502 = HEAP8[$139>>0]|0;
+     $503 = ((($$074152)) + 14|0);
+     HEAP8[$501>>0] = $502;
+     $504 = HEAP8[$140>>0]|0;
+     $505 = ((($$074152)) + 15|0);
+     HEAP8[$503>>0] = $504;
+     $506 = HEAP8[$141>>0]|0;
+     HEAP8[$505>>0] = $506;
+    }
+    $507 = ((($$076151)) + 16|0);
+    $508 = ((($$074152)) + 16|0);
+    $509 = (($$073153) + -1)|0;
+    $510 = ($509|0)==(0);
+    if ($510) {
+     $$079$lcssa = $1009;
+     break;
+    } else {
+     $$073153 = $509;$$074152 = $508;$$076151 = $507;
+    }
+   }
+  }
+  $$2 = $$079$lcssa;
+ }
+ $1007 = ($$2|0)==(0);
+ if ($1007) {
+  STACKTOP = sp;return;
+ }
+ $1008 = (($$2) + 16)|0;
+ ___gcry_burn_stack($1008);
+ STACKTOP = sp;return;
+}
+function __gcry_aes_ocb_auth($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$06590 = 0, $$071 = 0, $$091 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, 
$103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, 
$110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0;
+ var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 
= 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 
= 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0;
+ var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 
= 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 
= 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0;
+ var $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, 
$158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, 
$165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0;
+ var $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 
= 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 
= 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0;
+ var $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 
= 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 
= 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
+ var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 
= 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 
= 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
+ var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 
= 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 
= 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
+ var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, 
$249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, 
$256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
+ var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, 
$267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, 
$274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
+ var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 
= 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 
= 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
+ var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 
0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 
0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
+ var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 
= 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 
= 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
+ var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, 
$339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, 
$346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
+ var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, 
$357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, 
$364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
+ var $369 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, 
$43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, 
$51 = 0, $52 = 0, $53 = 0;
+ var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 
0, $7 = 0, $70 = 0, $71 = 0;
+ var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, 
$8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, 
$88 = 0, $89 = 0, $9 = 0;
+ var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, 
$98 = 0, $99 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $3 = sp;
+ $4 = ((($0)) + 496|0);
+ $5 = ((($4)) + 496|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ($6|0)==(0|0);
+ if (!($7)) {
+  FUNCTION_TABLE_v[$6 & 127]();
+ }
+ $8 = ((($4)) + 488|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ($2|0)==(0);
+ if ($10) {
+  $11 = $3;
+  $12 = $11;
+  HEAP32[$12>>2] = 0;
+  $13 = (($11) + 4)|0;
+  $14 = $13;
+  HEAP32[$14>>2] = 0;
+  $15 = ((($3)) + 8|0);
+  $16 = $15;
+  $17 = $16;
+  HEAP32[$17>>2] = 0;
+  $18 = (($16) + 4)|0;
+  $19 = $18;
+  HEAP32[$19>>2] = 0;
+  STACKTOP = sp;return;
+ }
+ $20 = ((($0)) + 472|0);
+ $21 = ((($0)) + 432|0);
+ $22 = $21;
+ $23 = ((($0)) + 436|0);
+ $24 = ((($0)) + 440|0);
+ $25 = ((($0)) + 444|0);
+ $26 = ((($0)) + 160|0);
+ $27 = ((($3)) + 4|0);
+ $28 = ((($3)) + 8|0);
+ $29 = ((($3)) + 12|0);
+ $30 = ((($0)) + 448|0);
+ $31 = $30;
+ $32 = $31 & 3;
+ $33 = ($32|0)==(0);
+ $34 = ((($0)) + 452|0);
+ $35 = ((($0)) + 456|0);
+ $36 = ((($0)) + 460|0);
+ $37 = ((($21)) + 1|0);
+ $38 = ((($21)) + 2|0);
+ $39 = ((($21)) + 3|0);
+ $40 = ((($0)) + 436|0);
+ $41 = ((($40)) + 1|0);
+ $42 = ((($40)) + 2|0);
+ $43 = ((($40)) + 3|0);
+ $44 = ((($0)) + 440|0);
+ $45 = ((($44)) + 1|0);
+ $46 = ((($44)) + 2|0);
+ $47 = ((($44)) + 3|0);
+ $48 = ((($0)) + 444|0);
+ $49 = ((($48)) + 1|0);
+ $50 = ((($48)) + 2|0);
+ $51 = ((($48)) + 3|0);
+ $52 = ((($21)) + 1|0);
+ $53 = ((($3)) + 1|0);
+ $54 = ((($21)) + 2|0);
+ $55 = ((($3)) + 2|0);
+ $56 = ((($21)) + 3|0);
+ $57 = ((($3)) + 3|0);
+ $58 = ((($0)) + 436|0);
+ $59 = ((($3)) + 4|0);
+ $60 = ((($58)) + 1|0);
+ $61 = ((($59)) + 1|0);
+ $62 = ((($58)) + 2|0);
+ $63 = ((($59)) + 2|0);
+ $64 = ((($58)) + 3|0);
+ $65 = ((($59)) + 3|0);
+ $66 = ((($0)) + 440|0);
+ $67 = ((($3)) + 8|0);
+ $68 = ((($66)) + 1|0);
+ $69 = ((($67)) + 1|0);
+ $70 = ((($66)) + 2|0);
+ $71 = ((($67)) + 2|0);
+ $72 = ((($66)) + 3|0);
+ $73 = ((($67)) + 3|0);
+ $74 = ((($0)) + 444|0);
+ $75 = ((($3)) + 12|0);
+ $76 = ((($74)) + 1|0);
+ $77 = ((($75)) + 1|0);
+ $78 = ((($74)) + 2|0);
+ $79 = ((($75)) + 2|0);
+ $80 = ((($74)) + 3|0);
+ $81 = ((($75)) + 3|0);
+ $82 = ((($3)) + 1|0);
+ $83 = ((($30)) + 1|0);
+ $84 = ((($3)) + 2|0);
+ $85 = ((($30)) + 2|0);
+ $86 = ((($3)) + 3|0);
+ $87 = ((($30)) + 3|0);
+ $88 = ((($3)) + 4|0);
+ $89 = ((($0)) + 452|0);
+ $90 = ((($88)) + 1|0);
+ $91 = ((($89)) + 1|0);
+ $92 = ((($88)) + 2|0);
+ $93 = ((($89)) + 2|0);
+ $94 = ((($88)) + 3|0);
+ $95 = ((($89)) + 3|0);
+ $96 = ((($3)) + 8|0);
+ $97 = ((($0)) + 456|0);
+ $98 = ((($96)) + 1|0);
+ $99 = ((($97)) + 1|0);
+ $100 = ((($96)) + 2|0);
+ $101 = ((($97)) + 2|0);
+ $102 = ((($96)) + 3|0);
+ $103 = ((($97)) + 3|0);
+ $104 = ((($3)) + 12|0);
+ $105 = ((($0)) + 460|0);
+ $106 = ((($104)) + 1|0);
+ $107 = ((($105)) + 1|0);
+ $108 = ((($104)) + 2|0);
+ $109 = ((($105)) + 2|0);
+ $110 = ((($104)) + 3|0);
+ $111 = ((($105)) + 3|0);
+ $$06590 = $1;$$091 = $2;
+ while(1) {
+  $112 = $20;
+  $113 = $112;
+  $114 = HEAP32[$113>>2]|0;
+  $115 = (($112) + 4)|0;
+  $116 = $115;
+  $117 = HEAP32[$116>>2]|0;
+  $118 = (_i64Add(($114|0),($117|0),1,0)|0);
+  $119 = tempRet0;
+  $120 = $20;
+  $121 = $120;
+  HEAP32[$121>>2] = $118;
+  $122 = (($120) + 4)|0;
+  $123 = $122;
+  HEAP32[$123>>2] = $119;
+  $124 = ($118|0)==(0);
+  $125 = (0)==(0);
+  $126 = $124 & $125;
+  if ($126) {
+   label = 9;
+  } else {
+   $127 = (_llvm_cttz_i32(($118|0))|0);
+   $128 = ($127>>>0)<(16);
+   if ($128) {
+    $129 = (($26) + ($127<<4)|0);
+    $$071 = $129;
+   } else {
+    label = 9;
+   }
+  }
+  if ((label|0) == 9) {
+   label = 0;
+   $130 = (__gcry_cipher_ocb_get_l($0,$3,$118,$119)|0);
+   $$071 = $130;
+  }
+  $131 = $$071;
+  $132 = $131 | $22;
+  $133 = $132 & 3;
+  $134 = ($133|0)==(0);
+  if ($134) {
+   $135 = ((($$071)) + 4|0);
+   $136 = HEAP32[$$071>>2]|0;
+   $137 = HEAP32[$21>>2]|0;
+   $138 = $137 ^ $136;
+   HEAP32[$21>>2] = $138;
+   $139 = ((($$071)) + 8|0);
+   $140 = HEAP32[$135>>2]|0;
+   $141 = HEAP32[$23>>2]|0;
+   $142 = $141 ^ $140;
+   HEAP32[$23>>2] = $142;
+   $143 = ((($$071)) + 12|0);
+   $144 = HEAP32[$139>>2]|0;
+   $145 = HEAP32[$24>>2]|0;
+   $146 = $145 ^ $144;
+   HEAP32[$24>>2] = $146;
+   $147 = HEAP32[$143>>2]|0;
+   $148 = HEAP32[$25>>2]|0;
+   $149 = $148 ^ $147;
+   HEAP32[$25>>2] = $149;
+  } else {
+   $150 = ((($$071)) + 1|0);
+   $151 = HEAP8[$$071>>0]|0;
+   $152 = HEAP8[$21>>0]|0;
+   $153 = $152 ^ $151;
+   HEAP8[$21>>0] = $153;
+   $154 = ((($$071)) + 2|0);
+   $155 = HEAP8[$150>>0]|0;
+   $156 = HEAP8[$37>>0]|0;
+   $157 = $156 ^ $155;
+   HEAP8[$37>>0] = $157;
+   $158 = ((($$071)) + 3|0);
+   $159 = HEAP8[$154>>0]|0;
+   $160 = HEAP8[$38>>0]|0;
+   $161 = $160 ^ $159;
+   HEAP8[$38>>0] = $161;
+   $162 = ((($$071)) + 4|0);
+   $163 = HEAP8[$158>>0]|0;
+   $164 = HEAP8[$39>>0]|0;
+   $165 = $164 ^ $163;
+   HEAP8[$39>>0] = $165;
+   $166 = ((($$071)) + 5|0);
+   $167 = HEAP8[$162>>0]|0;
+   $168 = HEAP8[$40>>0]|0;
+   $169 = $168 ^ $167;
+   HEAP8[$40>>0] = $169;
+   $170 = ((($$071)) + 6|0);
+   $171 = HEAP8[$166>>0]|0;
+   $172 = HEAP8[$41>>0]|0;
+   $173 = $172 ^ $171;
+   HEAP8[$41>>0] = $173;
+   $174 = ((($$071)) + 7|0);
+   $175 = HEAP8[$170>>0]|0;
+   $176 = HEAP8[$42>>0]|0;
+   $177 = $176 ^ $175;
+   HEAP8[$42>>0] = $177;
+   $178 = ((($$071)) + 8|0);
+   $179 = HEAP8[$174>>0]|0;
+   $180 = HEAP8[$43>>0]|0;
+   $181 = $180 ^ $179;
+   HEAP8[$43>>0] = $181;
+   $182 = ((($$071)) + 9|0);
+   $183 = HEAP8[$178>>0]|0;
+   $184 = HEAP8[$44>>0]|0;
+   $185 = $184 ^ $183;
+   HEAP8[$44>>0] = $185;
+   $186 = ((($$071)) + 10|0);
+   $187 = HEAP8[$182>>0]|0;
+   $188 = HEAP8[$45>>0]|0;
+   $189 = $188 ^ $187;
+   HEAP8[$45>>0] = $189;
+   $190 = ((($$071)) + 11|0);
+   $191 = HEAP8[$186>>0]|0;
+   $192 = HEAP8[$46>>0]|0;
+   $193 = $192 ^ $191;
+   HEAP8[$46>>0] = $193;
+   $194 = ((($$071)) + 12|0);
+   $195 = HEAP8[$190>>0]|0;
+   $196 = HEAP8[$47>>0]|0;
+   $197 = $196 ^ $195;
+   HEAP8[$47>>0] = $197;
+   $198 = ((($$071)) + 13|0);
+   $199 = HEAP8[$194>>0]|0;
+   $200 = HEAP8[$48>>0]|0;
+   $201 = $200 ^ $199;
+   HEAP8[$48>>0] = $201;
+   $202 = ((($$071)) + 14|0);
+   $203 = HEAP8[$198>>0]|0;
+   $204 = HEAP8[$49>>0]|0;
+   $205 = $204 ^ $203;
+   HEAP8[$49>>0] = $205;
+   $206 = ((($$071)) + 15|0);
+   $207 = HEAP8[$202>>0]|0;
+   $208 = HEAP8[$50>>0]|0;
+   $209 = $208 ^ $207;
+   HEAP8[$50>>0] = $209;
+   $210 = HEAP8[$206>>0]|0;
+   $211 = HEAP8[$51>>0]|0;
+   $212 = $211 ^ $210;
+   HEAP8[$51>>0] = $212;
+  }
+  $213 = $$06590;
+  $214 = $213 | $22;
+  $215 = $214 & 3;
+  $216 = ($215|0)==(0);
+  if ($216) {
+   $217 = HEAP32[$21>>2]|0;
+   $218 = ((($$06590)) + 4|0);
+   $219 = HEAP32[$$06590>>2]|0;
+   $220 = $219 ^ $217;
+   HEAP32[$3>>2] = $220;
+   $221 = HEAP32[$23>>2]|0;
+   $222 = ((($$06590)) + 8|0);
+   $223 = HEAP32[$218>>2]|0;
+   $224 = $223 ^ $221;
+   HEAP32[$27>>2] = $224;
+   $225 = HEAP32[$24>>2]|0;
+   $226 = ((($$06590)) + 12|0);
+   $227 = HEAP32[$222>>2]|0;
+   $228 = $227 ^ $225;
+   HEAP32[$28>>2] = $228;
+   $229 = HEAP32[$25>>2]|0;
+   $230 = HEAP32[$226>>2]|0;
+   $231 = $230 ^ $229;
+   HEAP32[$29>>2] = $231;
+  } else {
+   $232 = HEAP8[$21>>0]|0;
+   $233 = ((($$06590)) + 1|0);
+   $234 = HEAP8[$$06590>>0]|0;
+   $235 = $234 ^ $232;
+   HEAP8[$3>>0] = $235;
+   $236 = HEAP8[$52>>0]|0;
+   $237 = ((($$06590)) + 2|0);
+   $238 = HEAP8[$233>>0]|0;
+   $239 = $238 ^ $236;
+   HEAP8[$53>>0] = $239;
+   $240 = HEAP8[$54>>0]|0;
+   $241 = ((($$06590)) + 3|0);
+   $242 = HEAP8[$237>>0]|0;
+   $243 = $242 ^ $240;
+   HEAP8[$55>>0] = $243;
+   $244 = HEAP8[$56>>0]|0;
+   $245 = ((($$06590)) + 4|0);
+   $246 = HEAP8[$241>>0]|0;
+   $247 = $246 ^ $244;
+   HEAP8[$57>>0] = $247;
+   $248 = HEAP8[$58>>0]|0;
+   $249 = ((($$06590)) + 5|0);
+   $250 = HEAP8[$245>>0]|0;
+   $251 = $250 ^ $248;
+   HEAP8[$59>>0] = $251;
+   $252 = HEAP8[$60>>0]|0;
+   $253 = ((($$06590)) + 6|0);
+   $254 = HEAP8[$249>>0]|0;
+   $255 = $254 ^ $252;
+   HEAP8[$61>>0] = $255;
+   $256 = HEAP8[$62>>0]|0;
+   $257 = ((($$06590)) + 7|0);
+   $258 = HEAP8[$253>>0]|0;
+   $259 = $258 ^ $256;
+   HEAP8[$63>>0] = $259;
+   $260 = HEAP8[$64>>0]|0;
+   $261 = ((($$06590)) + 8|0);
+   $262 = HEAP8[$257>>0]|0;
+   $263 = $262 ^ $260;
+   HEAP8[$65>>0] = $263;
+   $264 = HEAP8[$66>>0]|0;
+   $265 = ((($$06590)) + 9|0);
+   $266 = HEAP8[$261>>0]|0;
+   $267 = $266 ^ $264;
+   HEAP8[$67>>0] = $267;
+   $268 = HEAP8[$68>>0]|0;
+   $269 = ((($$06590)) + 10|0);
+   $270 = HEAP8[$265>>0]|0;
+   $271 = $270 ^ $268;
+   HEAP8[$69>>0] = $271;
+   $272 = HEAP8[$70>>0]|0;
+   $273 = ((($$06590)) + 11|0);
+   $274 = HEAP8[$269>>0]|0;
+   $275 = $274 ^ $272;
+   HEAP8[$71>>0] = $275;
+   $276 = HEAP8[$72>>0]|0;
+   $277 = ((($$06590)) + 12|0);
+   $278 = HEAP8[$273>>0]|0;
+   $279 = $278 ^ $276;
+   HEAP8[$73>>0] = $279;
+   $280 = HEAP8[$74>>0]|0;
+   $281 = ((($$06590)) + 13|0);
+   $282 = HEAP8[$277>>0]|0;
+   $283 = $282 ^ $280;
+   HEAP8[$75>>0] = $283;
+   $284 = HEAP8[$76>>0]|0;
+   $285 = ((($$06590)) + 14|0);
+   $286 = HEAP8[$281>>0]|0;
+   $287 = $286 ^ $284;
+   HEAP8[$77>>0] = $287;
+   $288 = HEAP8[$78>>0]|0;
+   $289 = ((($$06590)) + 15|0);
+   $290 = HEAP8[$285>>0]|0;
+   $291 = $290 ^ $288;
+   HEAP8[$79>>0] = $291;
+   $292 = HEAP8[$80>>0]|0;
+   $293 = HEAP8[$289>>0]|0;
+   $294 = $293 ^ $292;
+   HEAP8[$81>>0] = $294;
+  }
+  $295 = (FUNCTION_TABLE_iiii[$9 & 127]($4,$3,$3)|0);
+  if ($33) {
+   $296 = HEAP32[$3>>2]|0;
+   $297 = HEAP32[$30>>2]|0;
+   $298 = $297 ^ $296;
+   HEAP32[$30>>2] = $298;
+   $299 = HEAP32[$27>>2]|0;
+   $300 = HEAP32[$34>>2]|0;
+   $301 = $300 ^ $299;
+   HEAP32[$34>>2] = $301;
+   $302 = HEAP32[$28>>2]|0;
+   $303 = HEAP32[$35>>2]|0;
+   $304 = $303 ^ $302;
+   HEAP32[$35>>2] = $304;
+   $305 = HEAP32[$29>>2]|0;
+   $306 = HEAP32[$36>>2]|0;
+   $307 = $306 ^ $305;
+   HEAP32[$36>>2] = $307;
+  } else {
+   $308 = HEAP8[$3>>0]|0;
+   $309 = HEAP8[$30>>0]|0;
+   $310 = $309 ^ $308;
+   HEAP8[$30>>0] = $310;
+   $311 = HEAP8[$82>>0]|0;
+   $312 = HEAP8[$83>>0]|0;
+   $313 = $312 ^ $311;
+   HEAP8[$83>>0] = $313;
+   $314 = HEAP8[$84>>0]|0;
+   $315 = HEAP8[$85>>0]|0;
+   $316 = $315 ^ $314;
+   HEAP8[$85>>0] = $316;
+   $317 = HEAP8[$86>>0]|0;
+   $318 = HEAP8[$87>>0]|0;
+   $319 = $318 ^ $317;
+   HEAP8[$87>>0] = $319;
+   $320 = HEAP8[$88>>0]|0;
+   $321 = HEAP8[$89>>0]|0;
+   $322 = $321 ^ $320;
+   HEAP8[$89>>0] = $322;
+   $323 = HEAP8[$90>>0]|0;
+   $324 = HEAP8[$91>>0]|0;
+   $325 = $324 ^ $323;
+   HEAP8[$91>>0] = $325;
+   $326 = HEAP8[$92>>0]|0;
+   $327 = HEAP8[$93>>0]|0;
+   $328 = $327 ^ $326;
+   HEAP8[$93>>0] = $328;
+   $329 = HEAP8[$94>>0]|0;
+   $330 = HEAP8[$95>>0]|0;
+   $331 = $330 ^ $329;
+   HEAP8[$95>>0] = $331;
+   $332 = HEAP8[$96>>0]|0;
+   $333 = HEAP8[$97>>0]|0;
+   $334 = $333 ^ $332;
+   HEAP8[$97>>0] = $334;
+   $335 = HEAP8[$98>>0]|0;
+   $336 = HEAP8[$99>>0]|0;
+   $337 = $336 ^ $335;
+   HEAP8[$99>>0] = $337;
+   $338 = HEAP8[$100>>0]|0;
+   $339 = HEAP8[$101>>0]|0;
+   $340 = $339 ^ $338;
+   HEAP8[$101>>0] = $340;
+   $341 = HEAP8[$102>>0]|0;
+   $342 = HEAP8[$103>>0]|0;
+   $343 = $342 ^ $341;
+   HEAP8[$103>>0] = $343;
+   $344 = HEAP8[$104>>0]|0;
+   $345 = HEAP8[$105>>0]|0;
+   $346 = $345 ^ $344;
+   HEAP8[$105>>0] = $346;
+   $347 = HEAP8[$106>>0]|0;
+   $348 = HEAP8[$107>>0]|0;
+   $349 = $348 ^ $347;
+   HEAP8[$107>>0] = $349;
+   $350 = HEAP8[$108>>0]|0;
+   $351 = HEAP8[$109>>0]|0;
+   $352 = $351 ^ $350;
+   HEAP8[$109>>0] = $352;
+   $353 = HEAP8[$110>>0]|0;
+   $354 = HEAP8[$111>>0]|0;
+   $355 = $354 ^ $353;
+   HEAP8[$111>>0] = $355;
+  }
+  $356 = ((($$06590)) + 16|0);
+  $357 = (($$091) + -1)|0;
+  $358 = ($357|0)==(0);
+  if ($358) {
+   break;
+  } else {
+   $$06590 = $356;$$091 = $357;
+  }
+ }
+ $359 = $3;
+ $360 = $359;
+ HEAP32[$360>>2] = 0;
+ $361 = (($359) + 4)|0;
+ $362 = $361;
+ HEAP32[$362>>2] = 0;
+ $363 = ((($3)) + 8|0);
+ $364 = $363;
+ $365 = $364;
+ HEAP32[$365>>2] = 0;
+ $366 = (($364) + 4)|0;
+ $367 = $366;
+ HEAP32[$367>>2] = 0;
+ $368 = ($295|0)==(0);
+ if ($368) {
+  STACKTOP = sp;return;
+ }
+ $369 = (($295) + 16)|0;
+ ___gcry_burn_stack($369);
+ STACKTOP = sp;return;
+}
+function _rmd160_init($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 160|0);
+ HEAP32[$2>>2] = 1732584193;
+ $3 = ((($0)) + 164|0);
+ HEAP32[$3>>2] = -271733879;
+ $4 = ((($0)) + 168|0);
+ HEAP32[$4>>2] = -1732584194;
+ $5 = ((($0)) + 172|0);
+ HEAP32[$5>>2] = 271733878;
+ $6 = ((($0)) + 176|0);
+ HEAP32[$6>>2] = -1009589776;
+ $7 = ((($0)) + 128|0);
+ $8 = ((($0)) + 148|0);
+ 
;HEAP32[$7>>2]=0|0;HEAP32[$7+4>>2]=0|0;HEAP32[$7+8>>2]=0|0;HEAP32[$7+12>>2]=0|0;HEAP32[$7+16>>2]=0|0;
+ HEAP32[$8>>2] = 64;
+ $9 = ((($0)) + 152|0);
+ HEAP32[$9>>2] = 76;
+ return;
+}
+function _rmd160_final($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 
0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 
0, $113 = 0, $114 = 0, $115 = 0, $116 = 0;
+ var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 
= 0, $124 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, 
$2 = 0, $20 = 0, $21 = 0, $22 = 0;
+ var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, 
$30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 
0, $39 = 0, $4 = 0, $40 = 0;
+ var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, 
$49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, 
$57 = 0, $58 = 0, $59 = 0;
+ var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, 
$67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, 
$75 = 0, $76 = 0, $77 = 0;
+ var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, 
$85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, 
$93 = 0, $94 = 0, $95 = 0;
+ var $96 = 0, $97 = 0, $98 = 0, $99 = 0, $spec$select = 0, dest = 0, label = 
0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ __gcry_md_block_write($0,0,0);
+ $1 = ((($0)) + 128|0);
+ $2 = $1;
+ $3 = $2;
+ $4 = HEAP32[$3>>2]|0;
+ $5 = (($2) + 4)|0;
+ $6 = $5;
+ $7 = HEAP32[$6>>2]|0;
+ $8 = $4 << 6;
+ $9 = (_bitshift64Lshr(($4|0),($7|0),26)|0);
+ $10 = tempRet0;
+ $11 = $9 & 536870848;
+ $12 = $4 >>> 26;
+ $13 = $11 | $12;
+ $14 = ((($0)) + 144|0);
+ $15 = HEAP32[$14>>2]|0;
+ $16 = (($8) + ($15))|0;
+ $17 = ($16>>>0)<($8>>>0);
+ $18 = $17&1;
+ $spec$select = (($13) + ($18))|0;
+ $19 = $16 << 3;
+ $20 = $spec$select << 3;
+ $21 = $16 >>> 29;
+ $22 = $20 | $21;
+ $23 = ($15|0)<(56);
+ $24 = (($15) + 1)|0;
+ HEAP32[$14>>2] = $24;
+ $25 = (($0) + ($15)|0);
+ HEAP8[$25>>0] = -128;
+ $26 = HEAP32[$14>>2]|0;
+ if ($23) {
+  $27 = ($26|0)<(56);
+  if ($27) {
+   $29 = $26;
+   while(1) {
+    $28 = (($29) + 1)|0;
+    HEAP32[$14>>2] = $28;
+    $30 = (($0) + ($29)|0);
+    HEAP8[$30>>0] = 0;
+    $31 = HEAP32[$14>>2]|0;
+    $32 = ($31|0)<(56);
+    if ($32) {
+     $29 = $31;
+    } else {
+     break;
+    }
+   }
+  }
+ } else {
+  $33 = ($26|0)<(64);
+  if ($33) {
+   $35 = $26;
+   while(1) {
+    $34 = (($35) + 1)|0;
+    HEAP32[$14>>2] = $34;
+    $36 = (($0) + ($35)|0);
+    HEAP8[$36>>0] = 0;
+    $37 = HEAP32[$14>>2]|0;
+    $38 = ($37|0)<(64);
+    if ($38) {
+     $35 = $37;
+    } else {
+     break;
+    }
+   }
+  }
+  __gcry_md_block_write($0,0,0);
+  dest=$0; stop=dest+56|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ }
+ $39 = ((($0)) + 56|0);
+ $40 = $16 >>> 21;
+ $41 = $40&255;
+ $42 = ((($0)) + 59|0);
+ HEAP8[$42>>0] = $41;
+ $43 = $16 >>> 13;
+ $44 = $43&255;
+ $45 = ((($0)) + 58|0);
+ HEAP8[$45>>0] = $44;
+ $46 = $16 >>> 5;
+ $47 = $46&255;
+ $48 = ((($0)) + 57|0);
+ HEAP8[$48>>0] = $47;
+ $49 = $19&255;
+ HEAP8[$39>>0] = $49;
+ $50 = ((($0)) + 60|0);
+ $51 = $spec$select >>> 21;
+ $52 = $51&255;
+ $53 = ((($0)) + 63|0);
+ HEAP8[$53>>0] = $52;
+ $54 = $spec$select >>> 13;
+ $55 = $54&255;
+ $56 = ((($0)) + 62|0);
+ HEAP8[$56>>0] = $55;
+ $57 = $spec$select >>> 5;
+ $58 = $57&255;
+ $59 = ((($0)) + 61|0);
+ HEAP8[$59>>0] = $58;
+ $60 = $22&255;
+ HEAP8[$50>>0] = $60;
+ (_transform($0,$0,1)|0);
+ ___gcry_burn_stack(124);
+ $61 = ((($0)) + 160|0);
+ $62 = HEAP32[$61>>2]|0;
+ $63 = $62 >>> 24;
+ $64 = $63&255;
+ $65 = ((($0)) + 3|0);
+ HEAP8[$65>>0] = $64;
+ $66 = $62 >>> 16;
+ $67 = $66&255;
+ $68 = ((($0)) + 2|0);
+ HEAP8[$68>>0] = $67;
+ $69 = $62 >>> 8;
+ $70 = $69&255;
+ $71 = ((($0)) + 1|0);
+ HEAP8[$71>>0] = $70;
+ $72 = $62&255;
+ HEAP8[$0>>0] = $72;
+ $73 = ((($0)) + 4|0);
+ $74 = ((($0)) + 164|0);
+ $75 = HEAP32[$74>>2]|0;
+ $76 = $75 >>> 24;
+ $77 = $76&255;
+ $78 = ((($0)) + 7|0);
+ HEAP8[$78>>0] = $77;
+ $79 = $75 >>> 16;
+ $80 = $79&255;
+ $81 = ((($0)) + 6|0);
+ HEAP8[$81>>0] = $80;
+ $82 = $75 >>> 8;
+ $83 = $82&255;
+ $84 = ((($0)) + 5|0);
+ HEAP8[$84>>0] = $83;
+ $85 = $75&255;
+ HEAP8[$73>>0] = $85;
+ $86 = ((($0)) + 8|0);
+ $87 = ((($0)) + 168|0);
+ $88 = HEAP32[$87>>2]|0;
+ $89 = $88 >>> 24;
+ $90 = $89&255;
+ $91 = ((($0)) + 11|0);
+ HEAP8[$91>>0] = $90;
+ $92 = $88 >>> 16;
+ $93 = $92&255;
+ $94 = ((($0)) + 10|0);
+ HEAP8[$94>>0] = $93;
+ $95 = $88 >>> 8;
+ $96 = $95&255;
+ $97 = ((($0)) + 9|0);
+ HEAP8[$97>>0] = $96;
+ $98 = $88&255;
+ HEAP8[$86>>0] = $98;
+ $99 = ((($0)) + 12|0);
+ $100 = ((($0)) + 172|0);
+ $101 = HEAP32[$100>>2]|0;
+ $102 = $101 >>> 24;
+ $103 = $102&255;
+ $104 = ((($0)) + 15|0);
+ HEAP8[$104>>0] = $103;
+ $105 = $101 >>> 16;
+ $106 = $105&255;
+ $107 = ((($0)) + 14|0);
+ HEAP8[$107>>0] = $106;
+ $108 = $101 >>> 8;
+ $109 = $108&255;
+ $110 = ((($0)) + 13|0);
+ HEAP8[$110>>0] = $109;
+ $111 = $101&255;
+ HEAP8[$99>>0] = $111;
+ $112 = ((($0)) + 16|0);
+ $113 = ((($0)) + 176|0);
+ $114 = HEAP32[$113>>2]|0;
+ $115 = $114 >>> 24;
+ $116 = $115&255;
+ $117 = ((($0)) + 19|0);
+ HEAP8[$117>>0] = $116;
+ $118 = $114 >>> 16;
+ $119 = $118&255;
+ $120 = ((($0)) + 18|0);
+ HEAP8[$120>>0] = $119;
+ $121 = $114 >>> 8;
+ $122 = $121&255;
+ $123 = ((($0)) + 17|0);
+ HEAP8[$123>>0] = $122;
+ $124 = $114&255;
+ HEAP8[$112>>0] = $124;
+ return;
+}
+function _rmd160_read($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return ($0|0);
+}
+function _transform($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$05 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, 
$1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, 
$101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0;
+ var $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 
0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, 
$1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0;
+ var $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 
0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, 
$1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0;
+ var $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 
0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, 
$1064 = 0, $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0;
+ var $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 
0, $1076 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, 
$1082 = 0, $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0;
+ var $1088 = 0, $1089 = 0, $109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 
0, $1094 = 0, $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, 
$110 = 0, $1100 = 0, $1101 = 0, $1102 = 0, $1103 = 0, $1104 = 0;
+ var $1105 = 0, $1106 = 0, $1107 = 0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 
0, $1111 = 0, $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, 
$1118 = 0, $1119 = 0, $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0;
+ var $1123 = 0, $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 
0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, 
$1136 = 0, $1137 = 0, $1138 = 0, $1139 = 0, $114 = 0, $1140 = 0;
+ var $1141 = 0, $1142 = 0, $1143 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 
0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0, $1151 = 0, $1152 = 0, $1153 = 0, 
$1154 = 0, $1155 = 0, $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0;
+ var $116 = 0, $1160 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1165 = 
0, $1166 = 0, $1167 = 0, $1168 = 0, $1169 = 0, $117 = 0, $1170 = 0, $1171 = 0, 
$1172 = 0, $1173 = 0, $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0;
+ var $1178 = 0, $1179 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 
0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, 
$1190 = 0, $1191 = 0, $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0;
+ var $1196 = 0, $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0, 
$1201 = 0, $1202 = 0, $1203 = 0, $1204 = 0, $1205 = 0, $1206 = 0, $1207 = 0, 
$1208 = 0, $1209 = 0, $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0;
+ var $1213 = 0, $1214 = 0, $1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 
0, $122 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0, 
$1226 = 0, $1227 = 0, $1228 = 0, $1229 = 0, $123 = 0, $1230 = 0;
+ var $1231 = 0, $1232 = 0, $1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0, $1237 = 
0, $1238 = 0, $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0, 
$1244 = 0, $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0;
+ var $125 = 0, $1250 = 0, $1251 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 
0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, $1260 = 0, $1261 = 0, 
$1262 = 0, $1263 = 0, $1264 = 0, $1265 = 0, $1266 = 0, $1267 = 0;
+ var $1268 = 0, $1269 = 0, $127 = 0, $1270 = 0, $1271 = 0, $1272 = 0, $1273 = 
0, $1274 = 0, $1275 = 0, $1276 = 0, $1277 = 0, $1278 = 0, $1279 = 0, $128 = 0, 
$1280 = 0, $1281 = 0, $1282 = 0, $1283 = 0, $1284 = 0, $1285 = 0;
+ var $1286 = 0, $1287 = 0, $1288 = 0, $1289 = 0, $129 = 0, $1290 = 0, $1291 = 
0, $1292 = 0, $1293 = 0, $1294 = 0, $1295 = 0, $1296 = 0, $1297 = 0, $1298 = 0, 
$1299 = 0, $13 = 0, $130 = 0, $1300 = 0, $1301 = 0, $1302 = 0;
+ var $1303 = 0, $1304 = 0, $1305 = 0, $1306 = 0, $1307 = 0, $1308 = 0, $1309 = 
0, $131 = 0, $1310 = 0, $1311 = 0, $1312 = 0, $1313 = 0, $1314 = 0, $1315 = 0, 
$1316 = 0, $1317 = 0, $1318 = 0, $1319 = 0, $132 = 0, $1320 = 0;
+ var $1321 = 0, $1322 = 0, $1323 = 0, $1324 = 0, $1325 = 0, $1326 = 0, $1327 = 
0, $1328 = 0, $1329 = 0, $133 = 0, $1330 = 0, $1331 = 0, $1332 = 0, $1333 = 0, 
$1334 = 0, $1335 = 0, $1336 = 0, $1337 = 0, $1338 = 0, $1339 = 0;
+ var $134 = 0, $1340 = 0, $1341 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $1345 = 
0, $1346 = 0, $1347 = 0, $1348 = 0, $1349 = 0, $135 = 0, $1350 = 0, $1351 = 0, 
$1352 = 0, $1353 = 0, $1354 = 0, $1355 = 0, $1356 = 0, $1357 = 0;
+ var $1358 = 0, $1359 = 0, $136 = 0, $1360 = 0, $1361 = 0, $1362 = 0, $1363 = 
0, $1364 = 0, $1365 = 0, $1366 = 0, $1367 = 0, $1368 = 0, $1369 = 0, $137 = 0, 
$1370 = 0, $1371 = 0, $1372 = 0, $1373 = 0, $1374 = 0, $1375 = 0;
+ var $1376 = 0, $1377 = 0, $1378 = 0, $1379 = 0, $138 = 0, $1380 = 0, $1381 = 
0, $1382 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $1388 = 0, 
$1389 = 0, $139 = 0, $1390 = 0, $1391 = 0, $1392 = 0, $1393 = 0;
+ var $1394 = 0, $1395 = 0, $1396 = 0, $1397 = 0, $1398 = 0, $1399 = 0, $14 = 
0, $140 = 0, $1400 = 0, $1401 = 0, $1402 = 0, $1403 = 0, $1404 = 0, $1405 = 0, 
$1406 = 0, $1407 = 0, $1408 = 0, $1409 = 0, $141 = 0, $1410 = 0;
+ var $1411 = 0, $1412 = 0, $1413 = 0, $1414 = 0, $1415 = 0, $1416 = 0, $1417 = 
0, $1418 = 0, $1419 = 0, $142 = 0, $1420 = 0, $1421 = 0, $1422 = 0, $1423 = 0, 
$1424 = 0, $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $1429 = 0;
+ var $143 = 0, $1430 = 0, $1431 = 0, $1432 = 0, $1433 = 0, $1434 = 0, $1435 = 
0, $1436 = 0, $1437 = 0, $1438 = 0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, 
$1442 = 0, $1443 = 0, $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0;
+ var $1448 = 0, $1449 = 0, $145 = 0, $1450 = 0, $1451 = 0, $1452 = 0, $1453 = 
0, $1454 = 0, $1455 = 0, $1456 = 0, $1457 = 0, $1458 = 0, $1459 = 0, $146 = 0, 
$1460 = 0, $1461 = 0, $1462 = 0, $1463 = 0, $1464 = 0, $1465 = 0;
+ var $1466 = 0, $1467 = 0, $1468 = 0, $1469 = 0, $147 = 0, $1470 = 0, $1471 = 
0, $1472 = 0, $1473 = 0, $1474 = 0, $1475 = 0, $1476 = 0, $1477 = 0, $1478 = 0, 
$1479 = 0, $148 = 0, $1480 = 0, $1481 = 0, $1482 = 0, $1483 = 0;
+ var $1484 = 0, $1485 = 0, $1486 = 0, $1487 = 0, $1488 = 0, $1489 = 0, $149 = 
0, $1490 = 0, $1491 = 0, $1492 = 0, $1493 = 0, $1494 = 0, $1495 = 0, $1496 = 0, 
$1497 = 0, $1498 = 0, $1499 = 0, $15 = 0, $150 = 0, $1500 = 0;
+ var $1501 = 0, $1502 = 0, $1503 = 0, $1504 = 0, $1505 = 0, $1506 = 0, $1507 = 
0, $1508 = 0, $1509 = 0, $151 = 0, $1510 = 0, $1511 = 0, $1512 = 0, $1513 = 0, 
$1514 = 0, $1515 = 0, $1516 = 0, $1517 = 0, $1518 = 0, $1519 = 0;
+ var $152 = 0, $1520 = 0, $1521 = 0, $1522 = 0, $1523 = 0, $1524 = 0, $1525 = 
0, $1526 = 0, $1527 = 0, $1528 = 0, $1529 = 0, $153 = 0, $1530 = 0, $1531 = 0, 
$1532 = 0, $1533 = 0, $1534 = 0, $1535 = 0, $1536 = 0, $1537 = 0;
+ var $1538 = 0, $1539 = 0, $154 = 0, $1540 = 0, $1541 = 0, $1542 = 0, $1543 = 
0, $1544 = 0, $1545 = 0, $1546 = 0, $1547 = 0, $1548 = 0, $1549 = 0, $155 = 0, 
$1550 = 0, $1551 = 0, $1552 = 0, $1553 = 0, $1554 = 0, $1555 = 0;
+ var $1556 = 0, $1557 = 0, $1558 = 0, $1559 = 0, $156 = 0, $1560 = 0, $1561 = 
0, $1562 = 0, $1563 = 0, $1564 = 0, $1565 = 0, $1566 = 0, $1567 = 0, $1568 = 0, 
$1569 = 0, $157 = 0, $1570 = 0, $1571 = 0, $1572 = 0, $1573 = 0;
+ var $1574 = 0, $1575 = 0, $1576 = 0, $1577 = 0, $1578 = 0, $1579 = 0, $158 = 
0, $1580 = 0, $1581 = 0, $1582 = 0, $1583 = 0, $1584 = 0, $1585 = 0, $1586 = 0, 
$1587 = 0, $1588 = 0, $1589 = 0, $159 = 0, $1590 = 0, $1591 = 0;
+ var $1592 = 0, $1593 = 0, $1594 = 0, $1595 = 0, $1596 = 0, $1597 = 0, $1598 = 
0, $1599 = 0, $16 = 0, $160 = 0, $1600 = 0, $1601 = 0, $1602 = 0, $1603 = 0, 
$1604 = 0, $1605 = 0, $1606 = 0, $1607 = 0, $1608 = 0, $1609 = 0;
+ var $161 = 0, $1610 = 0, $1611 = 0, $1612 = 0, $1613 = 0, $1614 = 0, $1615 = 
0, $1616 = 0, $1617 = 0, $1618 = 0, $1619 = 0, $162 = 0, $1620 = 0, $1621 = 0, 
$1622 = 0, $1623 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $1627 = 0;
+ var $1628 = 0, $1629 = 0, $163 = 0, $1630 = 0, $1631 = 0, $1632 = 0, $1633 = 
0, $1634 = 0, $1635 = 0, $1636 = 0, $1637 = 0, $1638 = 0, $1639 = 0, $164 = 0, 
$1640 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1645 = 0;
+ var $1646 = 0, $1647 = 0, $1648 = 0, $1649 = 0, $165 = 0, $1650 = 0, $1651 = 
0, $1652 = 0, $1653 = 0, $1654 = 0, $1655 = 0, $1656 = 0, $1657 = 0, $1658 = 0, 
$1659 = 0, $166 = 0, $1660 = 0, $1661 = 0, $1662 = 0, $1663 = 0;
+ var $1664 = 0, $1665 = 0, $1666 = 0, $1667 = 0, $1668 = 0, $1669 = 0, $167 = 
0, $1670 = 0, $1671 = 0, $1672 = 0, $1673 = 0, $1674 = 0, $1675 = 0, $1676 = 0, 
$1677 = 0, $1678 = 0, $1679 = 0, $168 = 0, $1680 = 0, $1681 = 0;
+ var $1682 = 0, $1683 = 0, $1684 = 0, $1685 = 0, $1686 = 0, $1687 = 0, $1688 = 
0, $1689 = 0, $169 = 0, $1690 = 0, $1691 = 0, $1692 = 0, $1693 = 0, $1694 = 0, 
$1695 = 0, $1696 = 0, $1697 = 0, $1698 = 0, $1699 = 0, $17 = 0;
+ var $170 = 0, $1700 = 0, $1701 = 0, $1702 = 0, $1703 = 0, $1704 = 0, $1705 = 
0, $1706 = 0, $1707 = 0, $1708 = 0, $1709 = 0, $171 = 0, $1710 = 0, $1711 = 0, 
$1712 = 0, $1713 = 0, $1714 = 0, $1715 = 0, $1716 = 0, $1717 = 0;
+ var $1718 = 0, $1719 = 0, $172 = 0, $1720 = 0, $1721 = 0, $1722 = 0, $1723 = 
0, $1724 = 0, $1725 = 0, $1726 = 0, $1727 = 0, $1728 = 0, $1729 = 0, $173 = 0, 
$1730 = 0, $1731 = 0, $1732 = 0, $1733 = 0, $1734 = 0, $1735 = 0;
+ var $1736 = 0, $1737 = 0, $1738 = 0, $1739 = 0, $174 = 0, $1740 = 0, $1741 = 
0, $1742 = 0, $1743 = 0, $1744 = 0, $1745 = 0, $1746 = 0, $1747 = 0, $1748 = 0, 
$1749 = 0, $175 = 0, $1750 = 0, $1751 = 0, $1752 = 0, $1753 = 0;
+ var $1754 = 0, $1755 = 0, $1756 = 0, $1757 = 0, $1758 = 0, $1759 = 0, $176 = 
0, $1760 = 0, $1761 = 0, $1762 = 0, $1763 = 0, $1764 = 0, $1765 = 0, $1766 = 0, 
$1767 = 0, $1768 = 0, $1769 = 0, $177 = 0, $1770 = 0, $1771 = 0;
+ var $1772 = 0, $1773 = 0, $1774 = 0, $1775 = 0, $1776 = 0, $1777 = 0, $1778 = 
0, $1779 = 0, $178 = 0, $1780 = 0, $1781 = 0, $1782 = 0, $1783 = 0, $1784 = 0, 
$1785 = 0, $1786 = 0, $1787 = 0, $1788 = 0, $1789 = 0, $179 = 0;
+ var $1790 = 0, $1791 = 0, $1792 = 0, $1793 = 0, $1794 = 0, $1795 = 0, $1796 = 
0, $1797 = 0, $1798 = 0, $1799 = 0, $18 = 0, $180 = 0, $1800 = 0, $1801 = 0, 
$1802 = 0, $1803 = 0, $1804 = 0, $1805 = 0, $1806 = 0, $1807 = 0;
+ var $1808 = 0, $1809 = 0, $181 = 0, $1810 = 0, $1811 = 0, $1812 = 0, $1813 = 
0, $1814 = 0, $1815 = 0, $1816 = 0, $1817 = 0, $1818 = 0, $1819 = 0, $182 = 0, 
$1820 = 0, $1821 = 0, $1822 = 0, $1823 = 0, $1824 = 0, $1825 = 0;
+ var $1826 = 0, $1827 = 0, $1828 = 0, $1829 = 0, $183 = 0, $1830 = 0, $1831 = 
0, $1832 = 0, $1833 = 0, $1834 = 0, $1835 = 0, $1836 = 0, $1837 = 0, $1838 = 0, 
$1839 = 0, $184 = 0, $1840 = 0, $1841 = 0, $1842 = 0, $1843 = 0;
+ var $1844 = 0, $1845 = 0, $1846 = 0, $1847 = 0, $1848 = 0, $1849 = 0, $185 = 
0, $1850 = 0, $1851 = 0, $1852 = 0, $1853 = 0, $1854 = 0, $1855 = 0, $1856 = 0, 
$1857 = 0, $1858 = 0, $1859 = 0, $186 = 0, $1860 = 0, $1861 = 0;
+ var $1862 = 0, $1863 = 0, $1864 = 0, $1865 = 0, $1866 = 0, $1867 = 0, $1868 = 
0, $1869 = 0, $187 = 0, $1870 = 0, $1871 = 0, $1872 = 0, $1873 = 0, $1874 = 0, 
$1875 = 0, $1876 = 0, $1877 = 0, $1878 = 0, $1879 = 0, $188 = 0;
+ var $1880 = 0, $1881 = 0, $1882 = 0, $1883 = 0, $1884 = 0, $1885 = 0, $1886 = 
0, $1887 = 0, $1888 = 0, $1889 = 0, $189 = 0, $1890 = 0, $1891 = 0, $1892 = 0, 
$1893 = 0, $1894 = 0, $1895 = 0, $1896 = 0, $1897 = 0, $1898 = 0;
+ var $1899 = 0, $19 = 0, $190 = 0, $1900 = 0, $1901 = 0, $1902 = 0, $1903 = 0, 
$1904 = 0, $1905 = 0, $1906 = 0, $1907 = 0, $1908 = 0, $1909 = 0, $191 = 0, 
$1910 = 0, $1911 = 0, $1912 = 0, $1913 = 0, $1914 = 0, $1915 = 0;
+ var $1916 = 0, $1917 = 0, $1918 = 0, $1919 = 0, $192 = 0, $1920 = 0, $1921 = 
0, $1922 = 0, $1923 = 0, $1924 = 0, $1925 = 0, $1926 = 0, $1927 = 0, $1928 = 0, 
$1929 = 0, $193 = 0, $1930 = 0, $1931 = 0, $1932 = 0, $1933 = 0;
+ var $1934 = 0, $1935 = 0, $1936 = 0, $1937 = 0, $1938 = 0, $1939 = 0, $194 = 
0, $1940 = 0, $1941 = 0, $1942 = 0, $1943 = 0, $1944 = 0, $1945 = 0, $1946 = 0, 
$1947 = 0, $1948 = 0, $1949 = 0, $195 = 0, $1950 = 0, $1951 = 0;
+ var $1952 = 0, $1953 = 0, $1954 = 0, $1955 = 0, $1956 = 0, $1957 = 0, $1958 = 
0, $1959 = 0, $196 = 0, $1960 = 0, $1961 = 0, $1962 = 0, $1963 = 0, $1964 = 0, 
$1965 = 0, $1966 = 0, $1967 = 0, $1968 = 0, $1969 = 0, $197 = 0;
+ var $1970 = 0, $1971 = 0, $1972 = 0, $1973 = 0, $1974 = 0, $1975 = 0, $1976 = 
0, $1977 = 0, $1978 = 0, $1979 = 0, $198 = 0, $1980 = 0, $1981 = 0, $1982 = 0, 
$1983 = 0, $1984 = 0, $1985 = 0, $1986 = 0, $1987 = 0, $1988 = 0;
+ var $1989 = 0, $199 = 0, $1990 = 0, $1991 = 0, $1992 = 0, $1993 = 0, $1994 = 
0, $1995 = 0, $1996 = 0, $1997 = 0, $1998 = 0, $1999 = 0, $20 = 0, $200 = 0, 
$2000 = 0, $2001 = 0, $2002 = 0, $2003 = 0, $2004 = 0, $2005 = 0;
+ var $2006 = 0, $2007 = 0, $2008 = 0, $2009 = 0, $201 = 0, $2010 = 0, $2011 = 
0, $2012 = 0, $2013 = 0, $2014 = 0, $2015 = 0, $2016 = 0, $2017 = 0, $2018 = 0, 
$2019 = 0, $202 = 0, $2020 = 0, $2021 = 0, $2022 = 0, $2023 = 0;
+ var $2024 = 0, $2025 = 0, $2026 = 0, $2027 = 0, $2028 = 0, $2029 = 0, $203 = 
0, $2030 = 0, $2031 = 0, $2032 = 0, $2033 = 0, $2034 = 0, $2035 = 0, $2036 = 0, 
$2037 = 0, $2038 = 0, $2039 = 0, $204 = 0, $2040 = 0, $2041 = 0;
+ var $2042 = 0, $2043 = 0, $2044 = 0, $2045 = 0, $2046 = 0, $2047 = 0, $2048 = 
0, $2049 = 0, $205 = 0, $2050 = 0, $2051 = 0, $2052 = 0, $2053 = 0, $2054 = 0, 
$2055 = 0, $2056 = 0, $2057 = 0, $2058 = 0, $2059 = 0, $206 = 0;
+ var $2060 = 0, $2061 = 0, $2062 = 0, $2063 = 0, $2064 = 0, $2065 = 0, $2066 = 
0, $2067 = 0, $2068 = 0, $2069 = 0, $207 = 0, $2070 = 0, $2071 = 0, $2072 = 0, 
$2073 = 0, $2074 = 0, $2075 = 0, $2076 = 0, $2077 = 0, $2078 = 0;
+ var $2079 = 0, $208 = 0, $2080 = 0, $2081 = 0, $2082 = 0, $2083 = 0, $2084 = 
0, $2085 = 0, $2086 = 0, $2087 = 0, $2088 = 0, $2089 = 0, $209 = 0, $2090 = 0, 
$2091 = 0, $2092 = 0, $2093 = 0, $2094 = 0, $2095 = 0, $2096 = 0;
+ var $2097 = 0, $2098 = 0, $2099 = 0, $21 = 0, $210 = 0, $2100 = 0, $2101 = 0, 
$2102 = 0, $2103 = 0, $2104 = 0, $2105 = 0, $2106 = 0, $2107 = 0, $2108 = 0, 
$2109 = 0, $211 = 0, $2110 = 0, $2111 = 0, $2112 = 0, $2113 = 0;
+ var $2114 = 0, $2115 = 0, $2116 = 0, $2117 = 0, $2118 = 0, $2119 = 0, $212 = 
0, $2120 = 0, $2121 = 0, $2122 = 0, $2123 = 0, $2124 = 0, $2125 = 0, $2126 = 0, 
$2127 = 0, $2128 = 0, $2129 = 0, $213 = 0, $2130 = 0, $2131 = 0;
+ var $2132 = 0, $2133 = 0, $2134 = 0, $2135 = 0, $2136 = 0, $2137 = 0, $2138 = 
0, $2139 = 0, $214 = 0, $2140 = 0, $2141 = 0, $2142 = 0, $2143 = 0, $2144 = 0, 
$2145 = 0, $2146 = 0, $2147 = 0, $2148 = 0, $2149 = 0, $215 = 0;
+ var $2150 = 0, $2151 = 0, $2152 = 0, $2153 = 0, $2154 = 0, $2155 = 0, $2156 = 
0, $2157 = 0, $2158 = 0, $2159 = 0, $216 = 0, $2160 = 0, $2161 = 0, $2162 = 0, 
$2163 = 0, $2164 = 0, $2165 = 0, $2166 = 0, $2167 = 0, $2168 = 0;
+ var $2169 = 0, $217 = 0, $2170 = 0, $2171 = 0, $2172 = 0, $2173 = 0, $2174 = 
0, $2175 = 0, $2176 = 0, $2177 = 0, $2178 = 0, $2179 = 0, $218 = 0, $2180 = 0, 
$2181 = 0, $2182 = 0, $2183 = 0, $2184 = 0, $2185 = 0, $2186 = 0;
+ var $2187 = 0, $2188 = 0, $2189 = 0, $219 = 0, $2190 = 0, $2191 = 0, $2192 = 
0, $2193 = 0, $2194 = 0, $2195 = 0, $2196 = 0, $2197 = 0, $2198 = 0, $2199 = 0, 
$22 = 0, $220 = 0, $2200 = 0, $2201 = 0, $2202 = 0, $2203 = 0;
+ var $2204 = 0, $2205 = 0, $2206 = 0, $2207 = 0, $2208 = 0, $2209 = 0, $221 = 
0, $2210 = 0, $2211 = 0, $2212 = 0, $2213 = 0, $2214 = 0, $2215 = 0, $2216 = 0, 
$2217 = 0, $2218 = 0, $2219 = 0, $222 = 0, $2220 = 0, $2221 = 0;
+ var $2222 = 0, $2223 = 0, $2224 = 0, $2225 = 0, $2226 = 0, $2227 = 0, $2228 = 
0, $2229 = 0, $223 = 0, $2230 = 0, $2231 = 0, $2232 = 0, $2233 = 0, $2234 = 0, 
$2235 = 0, $2236 = 0, $2237 = 0, $2238 = 0, $2239 = 0, $224 = 0;
+ var $2240 = 0, $2241 = 0, $2242 = 0, $2243 = 0, $2244 = 0, $2245 = 0, $2246 = 
0, $2247 = 0, $2248 = 0, $2249 = 0, $225 = 0, $2250 = 0, $2251 = 0, $2252 = 0, 
$2253 = 0, $2254 = 0, $2255 = 0, $2256 = 0, $2257 = 0, $2258 = 0;
+ var $2259 = 0, $226 = 0, $2260 = 0, $2261 = 0, $2262 = 0, $2263 = 0, $2264 = 
0, $2265 = 0, $2266 = 0, $2267 = 0, $2268 = 0, $2269 = 0, $227 = 0, $2270 = 0, 
$2271 = 0, $2272 = 0, $2273 = 0, $2274 = 0, $2275 = 0, $2276 = 0;
+ var $2277 = 0, $2278 = 0, $2279 = 0, $228 = 0, $2280 = 0, $2281 = 0, $2282 = 
0, $2283 = 0, $2284 = 0, $2285 = 0, $2286 = 0, $2287 = 0, $2288 = 0, $2289 = 0, 
$229 = 0, $2290 = 0, $2291 = 0, $2292 = 0, $2293 = 0, $2294 = 0;
+ var $2295 = 0, $2296 = 0, $2297 = 0, $2298 = 0, $2299 = 0, $23 = 0, $230 = 0, 
$2300 = 0, $2301 = 0, $2302 = 0, $2303 = 0, $2304 = 0, $2305 = 0, $2306 = 0, 
$2307 = 0, $2308 = 0, $2309 = 0, $231 = 0, $2310 = 0, $2311 = 0;
+ var $2312 = 0, $2313 = 0, $2314 = 0, $2315 = 0, $2316 = 0, $2317 = 0, $2318 = 
0, $2319 = 0, $232 = 0, $2320 = 0, $2321 = 0, $2322 = 0, $2323 = 0, $2324 = 0, 
$2325 = 0, $2326 = 0, $2327 = 0, $2328 = 0, $2329 = 0, $233 = 0;
+ var $2330 = 0, $2331 = 0, $2332 = 0, $2333 = 0, $2334 = 0, $2335 = 0, $2336 = 
0, $2337 = 0, $2338 = 0, $2339 = 0, $234 = 0, $2340 = 0, $2341 = 0, $2342 = 0, 
$2343 = 0, $2344 = 0, $2345 = 0, $2346 = 0, $2347 = 0, $2348 = 0;
+ var $2349 = 0, $235 = 0, $2350 = 0, $2351 = 0, $2352 = 0, $2353 = 0, $2354 = 
0, $2355 = 0, $2356 = 0, $2357 = 0, $2358 = 0, $2359 = 0, $236 = 0, $2360 = 0, 
$2361 = 0, $2362 = 0, $2363 = 0, $2364 = 0, $2365 = 0, $2366 = 0;
+ var $2367 = 0, $2368 = 0, $2369 = 0, $237 = 0, $2370 = 0, $2371 = 0, $2372 = 
0, $2373 = 0, $2374 = 0, $2375 = 0, $2376 = 0, $2377 = 0, $2378 = 0, $2379 = 0, 
$238 = 0, $2380 = 0, $2381 = 0, $2382 = 0, $2383 = 0, $2384 = 0;
+ var $2385 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, 
$244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, 
$251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0;
+ var $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;
+ var $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 
= 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 
= 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0;
+ var $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, 
$299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, 
$305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0;
+ var $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 
= 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 
= 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0;
+ var $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 
= 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 
= 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0;
+ var $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 
= 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 
= 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0;
+ var $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 
= 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 
= 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0;
+ var $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, 
$389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, 
$396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0;
+ var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 
= 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 
= 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0;
+ var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 
= 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 
= 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0;
+ var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 
= 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 
= 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0;
+ var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 
= 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 
= 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0;
+ var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, 
$479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, 
$486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0;
+ var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, 
$497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, 
$503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0;
+ var $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 
= 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 
= 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 
= 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 
= 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0;
+ var $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, 
$659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, 
$666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0;
+ var $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, 
$677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, 
$684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0;
+ var $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 
= 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 
0, $702 = 0, $703 = 0, $704 = 0, $705 = 0;
+ var $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 
= 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 
= 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0;
+ var $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 
= 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 
= 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0;
+ var $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, 
$749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, 
$756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0;
+ var $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, 
$767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, 
$774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0;
+ var $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 
= 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 
= 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0;
+ var $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 
0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 
0, $810 = 0, $811 = 0, $812 = 0, $813 = 0;
+ var $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 
= 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 
= 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0;
+ var $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, 
$839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, 
$846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0;
+ var $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, 
$857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, 
$864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0;
+ var $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 
= 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 
= 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0;
+ var $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 
= 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 
0, $900 = 0, $901 = 0, $902 = 0, $903 = 0;
+ var $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 
= 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 
= 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0;
+ var $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, 
$929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, 
$936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0;
+ var $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, 
$947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, 
$954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0;
+ var $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 
= 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 
= 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0;
+ var $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 
= 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 
= 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0;
+ var $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($0)) + 160|0);
+ $4 = ((($0)) + 164|0);
+ $5 = ((($0)) + 168|0);
+ $6 = ((($0)) + 172|0);
+ $7 = ((($0)) + 176|0);
+ $$0 = $1;$$05 = $2;
+ while(1) {
+  $8 = ((($$0)) + 3|0);
+  $9 = HEAP8[$8>>0]|0;
+  $10 = $9&255;
+  $11 = $10 << 24;
+  $12 = ((($$0)) + 2|0);
+  $13 = HEAP8[$12>>0]|0;
+  $14 = $13&255;
+  $15 = $14 << 16;
+  $16 = $15 | $11;
+  $17 = ((($$0)) + 1|0);
+  $18 = HEAP8[$17>>0]|0;
+  $19 = $18&255;
+  $20 = $19 << 8;
+  $21 = $16 | $20;
+  $22 = HEAP8[$$0>>0]|0;
+  $23 = $22&255;
+  $24 = $21 | $23;
+  $25 = ((($$0)) + 4|0);
+  $26 = ((($$0)) + 7|0);
+  $27 = HEAP8[$26>>0]|0;
+  $28 = $27&255;
+  $29 = $28 << 24;
+  $30 = ((($$0)) + 6|0);
+  $31 = HEAP8[$30>>0]|0;
+  $32 = $31&255;
+  $33 = $32 << 16;
+  $34 = $33 | $29;
+  $35 = ((($$0)) + 5|0);
+  $36 = HEAP8[$35>>0]|0;
+  $37 = $36&255;
+  $38 = $37 << 8;
+  $39 = $34 | $38;
+  $40 = HEAP8[$25>>0]|0;
+  $41 = $40&255;
+  $42 = $39 | $41;
+  $43 = ((($$0)) + 8|0);
+  $44 = ((($$0)) + 11|0);
+  $45 = HEAP8[$44>>0]|0;
+  $46 = $45&255;
+  $47 = $46 << 24;
+  $48 = ((($$0)) + 10|0);
+  $49 = HEAP8[$48>>0]|0;
+  $50 = $49&255;
+  $51 = $50 << 16;
+  $52 = $51 | $47;
+  $53 = ((($$0)) + 9|0);
+  $54 = HEAP8[$53>>0]|0;
+  $55 = $54&255;
+  $56 = $55 << 8;
+  $57 = $52 | $56;
+  $58 = HEAP8[$43>>0]|0;
+  $59 = $58&255;
+  $60 = $57 | $59;
+  $61 = ((($$0)) + 12|0);
+  $62 = ((($$0)) + 15|0);
+  $63 = HEAP8[$62>>0]|0;
+  $64 = $63&255;
+  $65 = $64 << 24;
+  $66 = ((($$0)) + 14|0);
+  $67 = HEAP8[$66>>0]|0;
+  $68 = $67&255;
+  $69 = $68 << 16;
+  $70 = $69 | $65;
+  $71 = ((($$0)) + 13|0);
+  $72 = HEAP8[$71>>0]|0;
+  $73 = $72&255;
+  $74 = $73 << 8;
+  $75 = $70 | $74;
+  $76 = HEAP8[$61>>0]|0;
+  $77 = $76&255;
+  $78 = $75 | $77;
+  $79 = ((($$0)) + 16|0);
+  $80 = ((($$0)) + 19|0);
+  $81 = HEAP8[$80>>0]|0;
+  $82 = $81&255;
+  $83 = $82 << 24;
+  $84 = ((($$0)) + 18|0);
+  $85 = HEAP8[$84>>0]|0;
+  $86 = $85&255;
+  $87 = $86 << 16;
+  $88 = $87 | $83;
+  $89 = ((($$0)) + 17|0);
+  $90 = HEAP8[$89>>0]|0;
+  $91 = $90&255;
+  $92 = $91 << 8;
+  $93 = $88 | $92;
+  $94 = HEAP8[$79>>0]|0;
+  $95 = $94&255;
+  $96 = $93 | $95;
+  $97 = ((($$0)) + 20|0);
+  $98 = ((($$0)) + 23|0);
+  $99 = HEAP8[$98>>0]|0;
+  $100 = $99&255;
+  $101 = $100 << 24;
+  $102 = ((($$0)) + 22|0);
+  $103 = HEAP8[$102>>0]|0;
+  $104 = $103&255;
+  $105 = $104 << 16;
+  $106 = $105 | $101;
+  $107 = ((($$0)) + 21|0);
+  $108 = HEAP8[$107>>0]|0;
+  $109 = $108&255;
+  $110 = $109 << 8;
+  $111 = $106 | $110;
+  $112 = HEAP8[$97>>0]|0;
+  $113 = $112&255;
+  $114 = $111 | $113;
+  $115 = ((($$0)) + 24|0);
+  $116 = ((($$0)) + 27|0);
+  $117 = HEAP8[$116>>0]|0;
+  $118 = $117&255;
+  $119 = $118 << 24;
+  $120 = ((($$0)) + 26|0);
+  $121 = HEAP8[$120>>0]|0;
+  $122 = $121&255;
+  $123 = $122 << 16;
+  $124 = $123 | $119;
+  $125 = ((($$0)) + 25|0);
+  $126 = HEAP8[$125>>0]|0;
+  $127 = $126&255;
+  $128 = $127 << 8;
+  $129 = $124 | $128;
+  $130 = HEAP8[$115>>0]|0;
+  $131 = $130&255;
+  $132 = $129 | $131;
+  $133 = ((($$0)) + 28|0);
+  $134 = ((($$0)) + 31|0);
+  $135 = HEAP8[$134>>0]|0;
+  $136 = $135&255;
+  $137 = $136 << 24;
+  $138 = ((($$0)) + 30|0);
+  $139 = HEAP8[$138>>0]|0;
+  $140 = $139&255;
+  $141 = $140 << 16;
+  $142 = $141 | $137;
+  $143 = ((($$0)) + 29|0);
+  $144 = HEAP8[$143>>0]|0;
+  $145 = $144&255;
+  $146 = $145 << 8;
+  $147 = $142 | $146;
+  $148 = HEAP8[$133>>0]|0;
+  $149 = $148&255;
+  $150 = $147 | $149;
+  $151 = ((($$0)) + 32|0);
+  $152 = ((($$0)) + 35|0);
+  $153 = HEAP8[$152>>0]|0;
+  $154 = $153&255;
+  $155 = $154 << 24;
+  $156 = ((($$0)) + 34|0);
+  $157 = HEAP8[$156>>0]|0;
+  $158 = $157&255;
+  $159 = $158 << 16;
+  $160 = $159 | $155;
+  $161 = ((($$0)) + 33|0);
+  $162 = HEAP8[$161>>0]|0;
+  $163 = $162&255;
+  $164 = $163 << 8;
+  $165 = $160 | $164;
+  $166 = HEAP8[$151>>0]|0;
+  $167 = $166&255;
+  $168 = $165 | $167;
+  $169 = ((($$0)) + 36|0);
+  $170 = ((($$0)) + 39|0);
+  $171 = HEAP8[$170>>0]|0;
+  $172 = $171&255;
+  $173 = $172 << 24;
+  $174 = ((($$0)) + 38|0);
+  $175 = HEAP8[$174>>0]|0;
+  $176 = $175&255;
+  $177 = $176 << 16;
+  $178 = $177 | $173;
+  $179 = ((($$0)) + 37|0);
+  $180 = HEAP8[$179>>0]|0;
+  $181 = $180&255;
+  $182 = $181 << 8;
+  $183 = $178 | $182;
+  $184 = HEAP8[$169>>0]|0;
+  $185 = $184&255;
+  $186 = $183 | $185;
+  $187 = ((($$0)) + 40|0);
+  $188 = ((($$0)) + 43|0);
+  $189 = HEAP8[$188>>0]|0;
+  $190 = $189&255;
+  $191 = $190 << 24;
+  $192 = ((($$0)) + 42|0);
+  $193 = HEAP8[$192>>0]|0;
+  $194 = $193&255;
+  $195 = $194 << 16;
+  $196 = $195 | $191;
+  $197 = ((($$0)) + 41|0);
+  $198 = HEAP8[$197>>0]|0;
+  $199 = $198&255;
+  $200 = $199 << 8;
+  $201 = $196 | $200;
+  $202 = HEAP8[$187>>0]|0;
+  $203 = $202&255;
+  $204 = $201 | $203;
+  $205 = ((($$0)) + 44|0);
+  $206 = ((($$0)) + 47|0);
+  $207 = HEAP8[$206>>0]|0;
+  $208 = $207&255;
+  $209 = $208 << 24;
+  $210 = ((($$0)) + 46|0);
+  $211 = HEAP8[$210>>0]|0;
+  $212 = $211&255;
+  $213 = $212 << 16;
+  $214 = $213 | $209;
+  $215 = ((($$0)) + 45|0);
+  $216 = HEAP8[$215>>0]|0;
+  $217 = $216&255;
+  $218 = $217 << 8;
+  $219 = $214 | $218;
+  $220 = HEAP8[$205>>0]|0;
+  $221 = $220&255;
+  $222 = $219 | $221;
+  $223 = ((($$0)) + 48|0);
+  $224 = ((($$0)) + 51|0);
+  $225 = HEAP8[$224>>0]|0;
+  $226 = $225&255;
+  $227 = $226 << 24;
+  $228 = ((($$0)) + 50|0);
+  $229 = HEAP8[$228>>0]|0;
+  $230 = $229&255;
+  $231 = $230 << 16;
+  $232 = $231 | $227;
+  $233 = ((($$0)) + 49|0);
+  $234 = HEAP8[$233>>0]|0;
+  $235 = $234&255;
+  $236 = $235 << 8;
+  $237 = $232 | $236;
+  $238 = HEAP8[$223>>0]|0;
+  $239 = $238&255;
+  $240 = $237 | $239;
+  $241 = ((($$0)) + 52|0);
+  $242 = ((($$0)) + 55|0);
+  $243 = HEAP8[$242>>0]|0;
+  $244 = $243&255;
+  $245 = $244 << 24;
+  $246 = ((($$0)) + 54|0);
+  $247 = HEAP8[$246>>0]|0;
+  $248 = $247&255;
+  $249 = $248 << 16;
+  $250 = $249 | $245;
+  $251 = ((($$0)) + 53|0);
+  $252 = HEAP8[$251>>0]|0;
+  $253 = $252&255;
+  $254 = $253 << 8;
+  $255 = $250 | $254;
+  $256 = HEAP8[$241>>0]|0;
+  $257 = $256&255;
+  $258 = $255 | $257;
+  $259 = ((($$0)) + 56|0);
+  $260 = ((($$0)) + 59|0);
+  $261 = HEAP8[$260>>0]|0;
+  $262 = $261&255;
+  $263 = $262 << 24;
+  $264 = ((($$0)) + 58|0);
+  $265 = HEAP8[$264>>0]|0;
+  $266 = $265&255;
+  $267 = $266 << 16;
+  $268 = $267 | $263;
+  $269 = ((($$0)) + 57|0);
+  $270 = HEAP8[$269>>0]|0;
+  $271 = $270&255;
+  $272 = $271 << 8;
+  $273 = $268 | $272;
+  $274 = HEAP8[$259>>0]|0;
+  $275 = $274&255;
+  $276 = $273 | $275;
+  $277 = ((($$0)) + 60|0);
+  $278 = ((($$0)) + 63|0);
+  $279 = HEAP8[$278>>0]|0;
+  $280 = $279&255;
+  $281 = $280 << 24;
+  $282 = ((($$0)) + 62|0);
+  $283 = HEAP8[$282>>0]|0;
+  $284 = $283&255;
+  $285 = $284 << 16;
+  $286 = $285 | $281;
+  $287 = ((($$0)) + 61|0);
+  $288 = HEAP8[$287>>0]|0;
+  $289 = $288&255;
+  $290 = $289 << 8;
+  $291 = $286 | $290;
+  $292 = HEAP8[$277>>0]|0;
+  $293 = $292&255;
+  $294 = $291 | $293;
+  $295 = HEAP32[$3>>2]|0;
+  $296 = HEAP32[$4>>2]|0;
+  $297 = HEAP32[$5>>2]|0;
+  $298 = HEAP32[$6>>2]|0;
+  $299 = HEAP32[$7>>2]|0;
+  $300 = $297 ^ $296;
+  $301 = $300 ^ $298;
+  $302 = (($295) + ($24))|0;
+  $303 = (($302) + ($301))|0;
+  $304 = $303 << 11;
+  $305 = $303 >>> 21;
+  $306 = $304 | $305;
+  $307 = (($306) + ($299))|0;
+  $308 = $297 << 10;
+  $309 = $297 >>> 22;
+  $310 = $308 | $309;
+  $311 = $298 ^ -1;
+  $312 = $297 | $311;
+  $313 = $312 ^ $296;
+  $314 = (($114) + 1352829926)|0;
+  $315 = (($314) + ($295))|0;
+  $316 = (($315) + ($313))|0;
+  $317 = $316 << 8;
+  $318 = $316 >>> 24;
+  $319 = $317 | $318;
+  $320 = (($319) + ($299))|0;
+  $321 = $310 ^ $296;
+  $322 = $321 ^ $307;
+  $323 = (($299) + ($42))|0;
+  $324 = (($323) + ($322))|0;
+  $325 = $324 << 14;
+  $326 = $324 >>> 18;
+  $327 = $325 | $326;
+  $328 = (($327) + ($298))|0;
+  $329 = $296 << 10;
+  $330 = $296 >>> 22;
+  $331 = $329 | $330;
+  $332 = $310 ^ -1;
+  $333 = $296 | $332;
+  $334 = $320 ^ $333;
+  $335 = (($276) + 1352829926)|0;
+  $336 = (($335) + ($299))|0;
+  $337 = (($336) + ($334))|0;
+  $338 = $337 << 9;
+  $339 = $337 >>> 23;
+  $340 = $338 | $339;
+  $341 = (($340) + ($298))|0;
+  $342 = $307 ^ $331;
+  $343 = $342 ^ $328;
+  $344 = (($298) + ($60))|0;
+  $345 = (($344) + ($343))|0;
+  $346 = $345 << 15;
+  $347 = $345 >>> 17;
+  $348 = $346 | $347;
+  $349 = (($348) + ($310))|0;
+  $350 = $307 << 10;
+  $351 = $307 >>> 22;
+  $352 = $350 | $351;
+  $353 = $331 ^ -1;
+  $354 = $320 | $353;
+  $355 = $341 ^ $354;
+  $356 = (($150) + 1352829926)|0;
+  $357 = (($356) + ($298))|0;
+  $358 = (($357) + ($355))|0;
+  $359 = $358 << 9;
+  $360 = $358 >>> 23;
+  $361 = $359 | $360;
+  $362 = (($361) + ($310))|0;
+  $363 = $320 << 10;
+  $364 = $320 >>> 22;
+  $365 = $363 | $364;
+  $366 = $328 ^ $352;
+  $367 = $366 ^ $349;
+  $368 = (($310) + ($78))|0;
+  $369 = (($368) + ($367))|0;
+  $370 = $369 << 12;
+  $371 = $369 >>> 20;
+  $372 = $370 | $371;
+  $373 = (($372) + ($331))|0;
+  $374 = $328 << 10;
+  $375 = $328 >>> 22;
+  $376 = $374 | $375;
+  $377 = $365 ^ -1;
+  $378 = $341 | $377;
+  $379 = $362 ^ $378;
+  $380 = (($24) + 1352829926)|0;
+  $381 = (($380) + ($310))|0;
+  $382 = (($381) + ($379))|0;
+  $383 = $382 << 11;
+  $384 = $382 >>> 21;
+  $385 = $383 | $384;
+  $386 = (($385) + ($331))|0;
+  $387 = $341 << 10;
+  $388 = $341 >>> 22;
+  $389 = $387 | $388;
+  $390 = $349 ^ $376;
+  $391 = $390 ^ $373;
+  $392 = (($331) + ($96))|0;
+  $393 = (($392) + ($391))|0;
+  $394 = $393 << 5;
+  $395 = $393 >>> 27;
+  $396 = $394 | $395;
+  $397 = (($396) + ($352))|0;
+  $398 = $349 << 10;
+  $399 = $349 >>> 22;
+  $400 = $398 | $399;
+  $401 = $389 ^ -1;
+  $402 = $362 | $401;
+  $403 = $386 ^ $402;
+  $404 = (($186) + 1352829926)|0;
+  $405 = (($404) + ($331))|0;
+  $406 = (($405) + ($403))|0;
+  $407 = $406 << 13;
+  $408 = $406 >>> 19;
+  $409 = $407 | $408;
+  $410 = (($409) + ($365))|0;
+  $411 = $362 << 10;
+  $412 = $362 >>> 22;
+  $413 = $411 | $412;
+  $414 = $373 ^ $400;
+  $415 = $414 ^ $397;
+  $416 = (($352) + ($114))|0;
+  $417 = (($416) + ($415))|0;
+  $418 = $417 << 8;
+  $419 = $417 >>> 24;
+  $420 = $418 | $419;
+  $421 = (($420) + ($376))|0;
+  $422 = $373 << 10;
+  $423 = $373 >>> 22;
+  $424 = $422 | $423;
+  $425 = $413 ^ -1;
+  $426 = $386 | $425;
+  $427 = $410 ^ $426;
+  $428 = (($60) + 1352829926)|0;
+  $429 = (($428) + ($365))|0;
+  $430 = (($429) + ($427))|0;
+  $431 = $430 << 15;
+  $432 = $430 >>> 17;
+  $433 = $431 | $432;
+  $434 = (($433) + ($389))|0;
+  $435 = $386 << 10;
+  $436 = $386 >>> 22;
+  $437 = $435 | $436;
+  $438 = $397 ^ $424;
+  $439 = $438 ^ $421;
+  $440 = (($376) + ($132))|0;
+  $441 = (($440) + ($439))|0;
+  $442 = $441 << 7;
+  $443 = $441 >>> 25;
+  $444 = $442 | $443;
+  $445 = (($444) + ($400))|0;
+  $446 = $397 << 10;
+  $447 = $397 >>> 22;
+  $448 = $446 | $447;
+  $449 = $437 ^ -1;
+  $450 = $410 | $449;
+  $451 = $434 ^ $450;
+  $452 = (($222) + 1352829926)|0;
+  $453 = (($452) + ($389))|0;
+  $454 = (($453) + ($451))|0;
+  $455 = $454 << 15;
+  $456 = $454 >>> 17;
+  $457 = $455 | $456;
+  $458 = (($457) + ($413))|0;
+  $459 = $410 << 10;
+  $460 = $410 >>> 22;
+  $461 = $459 | $460;
+  $462 = $421 ^ $448;
+  $463 = $462 ^ $445;
+  $464 = (($400) + ($150))|0;
+  $465 = (($464) + ($463))|0;
+  $466 = $465 << 9;
+  $467 = $465 >>> 23;
+  $468 = $466 | $467;
+  $469 = (($468) + ($424))|0;
+  $470 = $421 << 10;
+  $471 = $421 >>> 22;
+  $472 = $470 | $471;
+  $473 = $461 ^ -1;
+  $474 = $434 | $473;
+  $475 = $458 ^ $474;
+  $476 = (($96) + 1352829926)|0;
+  $477 = (($476) + ($413))|0;
+  $478 = (($477) + ($475))|0;
+  $479 = $478 << 5;
+  $480 = $478 >>> 27;
+  $481 = $479 | $480;
+  $482 = (($481) + ($437))|0;
+  $483 = $434 << 10;
+  $484 = $434 >>> 22;
+  $485 = $483 | $484;
+  $486 = $445 ^ $472;
+  $487 = $486 ^ $469;
+  $488 = (($424) + ($168))|0;
+  $489 = (($488) + ($487))|0;
+  $490 = $489 << 11;
+  $491 = $489 >>> 21;
+  $492 = $490 | $491;
+  $493 = (($492) + ($448))|0;
+  $494 = $445 << 10;
+  $495 = $445 >>> 22;
+  $496 = $494 | $495;
+  $497 = $485 ^ -1;
+  $498 = $458 | $497;
+  $499 = $482 ^ $498;
+  $500 = (($258) + 1352829926)|0;
+  $501 = (($500) + ($437))|0;
+  $502 = (($501) + ($499))|0;
+  $503 = $502 << 7;
+  $504 = $502 >>> 25;
+  $505 = $503 | $504;
+  $506 = (($505) + ($461))|0;
+  $507 = $458 << 10;
+  $508 = $458 >>> 22;
+  $509 = $507 | $508;
+  $510 = $469 ^ $496;
+  $511 = $510 ^ $493;
+  $512 = (($448) + ($186))|0;
+  $513 = (($512) + ($511))|0;
+  $514 = $513 << 13;
+  $515 = $513 >>> 19;
+  $516 = $514 | $515;
+  $517 = (($516) + ($472))|0;
+  $518 = $469 << 10;
+  $519 = $469 >>> 22;
+  $520 = $518 | $519;
+  $521 = $509 ^ -1;
+  $522 = $482 | $521;
+  $523 = $506 ^ $522;
+  $524 = (($132) + 1352829926)|0;
+  $525 = (($524) + ($461))|0;
+  $526 = (($525) + ($523))|0;
+  $527 = $526 << 7;
+  $528 = $526 >>> 25;
+  $529 = $527 | $528;
+  $530 = (($529) + ($485))|0;
+  $531 = $482 << 10;
+  $532 = $482 >>> 22;
+  $533 = $531 | $532;
+  $534 = $493 ^ $520;
+  $535 = $534 ^ $517;
+  $536 = (($472) + ($204))|0;
+  $537 = (($536) + ($535))|0;
+  $538 = $537 << 14;
+  $539 = $537 >>> 18;
+  $540 = $538 | $539;
+  $541 = (($540) + ($496))|0;
+  $542 = $493 << 10;
+  $543 = $493 >>> 22;
+  $544 = $542 | $543;
+  $545 = $533 ^ -1;
+  $546 = $506 | $545;
+  $547 = $530 ^ $546;
+  $548 = (($294) + 1352829926)|0;
+  $549 = (($548) + ($485))|0;
+  $550 = (($549) + ($547))|0;
+  $551 = $550 << 8;
+  $552 = $550 >>> 24;
+  $553 = $551 | $552;
+  $554 = (($553) + ($509))|0;
+  $555 = $506 << 10;
+  $556 = $506 >>> 22;
+  $557 = $555 | $556;
+  $558 = $517 ^ $544;
+  $559 = $558 ^ $541;
+  $560 = (($496) + ($222))|0;
+  $561 = (($560) + ($559))|0;
+  $562 = $561 << 15;
+  $563 = $561 >>> 17;
+  $564 = $562 | $563;
+  $565 = (($564) + ($520))|0;
+  $566 = $517 << 10;
+  $567 = $517 >>> 22;
+  $568 = $566 | $567;
+  $569 = $557 ^ -1;
+  $570 = $530 | $569;
+  $571 = $554 ^ $570;
+  $572 = (($168) + 1352829926)|0;
+  $573 = (($572) + ($509))|0;
+  $574 = (($573) + ($571))|0;
+  $575 = $574 << 11;
+  $576 = $574 >>> 21;
+  $577 = $575 | $576;
+  $578 = (($577) + ($533))|0;
+  $579 = $530 << 10;
+  $580 = $530 >>> 22;
+  $581 = $579 | $580;
+  $582 = $541 ^ $568;
+  $583 = $582 ^ $565;
+  $584 = (($520) + ($240))|0;
+  $585 = (($584) + ($583))|0;
+  $586 = $585 << 6;
+  $587 = $585 >>> 26;
+  $588 = $586 | $587;
+  $589 = (($588) + ($544))|0;
+  $590 = $541 << 10;
+  $591 = $541 >>> 22;
+  $592 = $590 | $591;
+  $593 = $581 ^ -1;
+  $594 = $554 | $593;
+  $595 = $578 ^ $594;
+  $596 = (($42) + 1352829926)|0;
+  $597 = (($596) + ($533))|0;
+  $598 = (($597) + ($595))|0;
+  $599 = $598 << 14;
+  $600 = $598 >>> 18;
+  $601 = $599 | $600;
+  $602 = (($601) + ($557))|0;
+  $603 = $554 << 10;
+  $604 = $554 >>> 22;
+  $605 = $603 | $604;
+  $606 = $565 ^ $592;
+  $607 = $606 ^ $589;
+  $608 = (($544) + ($258))|0;
+  $609 = (($608) + ($607))|0;
+  $610 = $609 << 7;
+  $611 = $609 >>> 25;
+  $612 = $610 | $611;
+  $613 = (($612) + ($568))|0;
+  $614 = $565 << 10;
+  $615 = $565 >>> 22;
+  $616 = $614 | $615;
+  $617 = $605 ^ -1;
+  $618 = $578 | $617;
+  $619 = $602 ^ $618;
+  $620 = (($204) + 1352829926)|0;
+  $621 = (($620) + ($557))|0;
+  $622 = (($621) + ($619))|0;
+  $623 = $622 << 14;
+  $624 = $622 >>> 18;
+  $625 = $623 | $624;
+  $626 = (($625) + ($581))|0;
+  $627 = $578 << 10;
+  $628 = $578 >>> 22;
+  $629 = $627 | $628;
+  $630 = $589 ^ $616;
+  $631 = $630 ^ $613;
+  $632 = (($568) + ($276))|0;
+  $633 = (($632) + ($631))|0;
+  $634 = $633 << 9;
+  $635 = $633 >>> 23;
+  $636 = $634 | $635;
+  $637 = (($636) + ($592))|0;
+  $638 = $589 << 10;
+  $639 = $589 >>> 22;
+  $640 = $638 | $639;
+  $641 = $629 ^ -1;
+  $642 = $602 | $641;
+  $643 = $626 ^ $642;
+  $644 = (($78) + 1352829926)|0;
+  $645 = (($644) + ($581))|0;
+  $646 = (($645) + ($643))|0;
+  $647 = $646 << 12;
+  $648 = $646 >>> 20;
+  $649 = $647 | $648;
+  $650 = (($649) + ($605))|0;
+  $651 = $602 << 10;
+  $652 = $602 >>> 22;
+  $653 = $651 | $652;
+  $654 = $613 ^ $640;
+  $655 = $654 ^ $637;
+  $656 = (($592) + ($294))|0;
+  $657 = (($656) + ($655))|0;
+  $658 = $657 << 8;
+  $659 = $657 >>> 24;
+  $660 = $658 | $659;
+  $661 = (($660) + ($616))|0;
+  $662 = $613 << 10;
+  $663 = $613 >>> 22;
+  $664 = $662 | $663;
+  $665 = $653 ^ -1;
+  $666 = $626 | $665;
+  $667 = $650 ^ $666;
+  $668 = (($240) + 1352829926)|0;
+  $669 = (($668) + ($605))|0;
+  $670 = (($669) + ($667))|0;
+  $671 = $670 << 6;
+  $672 = $670 >>> 26;
+  $673 = $671 | $672;
+  $674 = (($673) + ($629))|0;
+  $675 = $626 << 10;
+  $676 = $626 >>> 22;
+  $677 = $675 | $676;
+  $678 = $661 & $637;
+  $679 = $661 ^ -1;
+  $680 = $664 & $679;
+  $681 = $678 | $680;
+  $682 = (($150) + 1518500249)|0;
+  $683 = (($682) + ($616))|0;
+  $684 = (($683) + ($681))|0;
+  $685 = $684 << 7;
+  $686 = $684 >>> 25;
+  $687 = $685 | $686;
+  $688 = (($687) + ($640))|0;
+  $689 = $637 << 10;
+  $690 = $637 >>> 22;
+  $691 = $689 | $690;
+  $692 = $674 & $677;
+  $693 = $677 ^ -1;
+  $694 = $650 & $693;
+  $695 = $692 | $694;
+  $696 = (($132) + 1548603684)|0;
+  $697 = (($696) + ($629))|0;
+  $698 = (($697) + ($695))|0;
+  $699 = $698 << 9;
+  $700 = $698 >>> 23;
+  $701 = $699 | $700;
+  $702 = (($701) + ($653))|0;
+  $703 = $650 << 10;
+  $704 = $650 >>> 22;
+  $705 = $703 | $704;
+  $706 = $688 & $661;
+  $707 = $688 ^ -1;
+  $708 = $691 & $707;
+  $709 = $706 | $708;
+  $710 = (($96) + 1518500249)|0;
+  $711 = (($710) + ($640))|0;
+  $712 = (($711) + ($709))|0;
+  $713 = $712 << 6;
+  $714 = $712 >>> 26;
+  $715 = $713 | $714;
+  $716 = (($715) + ($664))|0;
+  $717 = $661 << 10;
+  $718 = $661 >>> 22;
+  $719 = $717 | $718;
+  $720 = $702 & $705;
+  $721 = $705 ^ -1;
+  $722 = $674 & $721;
+  $723 = $720 | $722;
+  $724 = (($222) + 1548603684)|0;
+  $725 = (($724) + ($653))|0;
+  $726 = (($725) + ($723))|0;
+  $727 = $726 << 13;
+  $728 = $726 >>> 19;
+  $729 = $727 | $728;
+  $730 = (($729) + ($677))|0;
+  $731 = $674 << 10;
+  $732 = $674 >>> 22;
+  $733 = $731 | $732;
+  $734 = $716 & $688;
+  $735 = $716 ^ -1;
+  $736 = $719 & $735;
+  $737 = $734 | $736;
+  $738 = (($258) + 1518500249)|0;
+  $739 = (($738) + ($664))|0;
+  $740 = (($739) + ($737))|0;
+  $741 = $740 << 8;
+  $742 = $740 >>> 24;
+  $743 = $741 | $742;
+  $744 = (($743) + ($691))|0;
+  $745 = $688 << 10;
+  $746 = $688 >>> 22;
+  $747 = $745 | $746;
+  $748 = $730 & $733;
+  $749 = $733 ^ -1;
+  $750 = $702 & $749;
+  $751 = $748 | $750;
+  $752 = (($78) + 1548603684)|0;
+  $753 = (($752) + ($677))|0;
+  $754 = (($753) + ($751))|0;
+  $755 = $754 << 15;
+  $756 = $754 >>> 17;
+  $757 = $755 | $756;
+  $758 = (($757) + ($705))|0;
+  $759 = $702 << 10;
+  $760 = $702 >>> 22;
+  $761 = $759 | $760;
+  $762 = $744 & $716;
+  $763 = $744 ^ -1;
+  $764 = $747 & $763;
+  $765 = $762 | $764;
+  $766 = (($42) + 1518500249)|0;
+  $767 = (($766) + ($691))|0;
+  $768 = (($767) + ($765))|0;
+  $769 = $768 << 13;
+  $770 = $768 >>> 19;
+  $771 = $769 | $770;
+  $772 = (($771) + ($719))|0;
+  $773 = $716 << 10;
+  $774 = $716 >>> 22;
+  $775 = $773 | $774;
+  $776 = $758 & $761;
+  $777 = $761 ^ -1;
+  $778 = $730 & $777;
+  $779 = $776 | $778;
+  $780 = (($150) + 1548603684)|0;
+  $781 = (($780) + ($705))|0;
+  $782 = (($781) + ($779))|0;
+  $783 = $782 << 7;
+  $784 = $782 >>> 25;
+  $785 = $783 | $784;
+  $786 = (($785) + ($733))|0;
+  $787 = $730 << 10;
+  $788 = $730 >>> 22;
+  $789 = $787 | $788;
+  $790 = $772 & $744;
+  $791 = $772 ^ -1;
+  $792 = $775 & $791;
+  $793 = $790 | $792;
+  $794 = (($204) + 1518500249)|0;
+  $795 = (($794) + ($719))|0;
+  $796 = (($795) + ($793))|0;
+  $797 = $796 << 11;
+  $798 = $796 >>> 21;
+  $799 = $797 | $798;
+  $800 = (($799) + ($747))|0;
+  $801 = $744 << 10;
+  $802 = $744 >>> 22;
+  $803 = $801 | $802;
+  $804 = $786 & $789;
+  $805 = $789 ^ -1;
+  $806 = $758 & $805;
+  $807 = $804 | $806;
+  $808 = (($24) + 1548603684)|0;
+  $809 = (($808) + ($733))|0;
+  $810 = (($809) + ($807))|0;
+  $811 = $810 << 12;
+  $812 = $810 >>> 20;
+  $813 = $811 | $812;
+  $814 = (($813) + ($761))|0;
+  $815 = $758 << 10;
+  $816 = $758 >>> 22;
+  $817 = $815 | $816;
+  $818 = $800 & $772;
+  $819 = $800 ^ -1;
+  $820 = $803 & $819;
+  $821 = $818 | $820;
+  $822 = (($132) + 1518500249)|0;
+  $823 = (($822) + ($747))|0;
+  $824 = (($823) + ($821))|0;
+  $825 = $824 << 9;
+  $826 = $824 >>> 23;
+  $827 = $825 | $826;
+  $828 = (($827) + ($775))|0;
+  $829 = $772 << 10;
+  $830 = $772 >>> 22;
+  $831 = $829 | $830;
+  $832 = $814 & $817;
+  $833 = $817 ^ -1;
+  $834 = $786 & $833;
+  $835 = $832 | $834;
+  $836 = (($258) + 1548603684)|0;
+  $837 = (($836) + ($761))|0;
+  $838 = (($837) + ($835))|0;
+  $839 = $838 << 8;
+  $840 = $838 >>> 24;
+  $841 = $839 | $840;
+  $842 = (($841) + ($789))|0;
+  $843 = $786 << 10;
+  $844 = $786 >>> 22;
+  $845 = $843 | $844;
+  $846 = $828 & $800;
+  $847 = $828 ^ -1;
+  $848 = $831 & $847;
+  $849 = $846 | $848;
+  $850 = (($294) + 1518500249)|0;
+  $851 = (($850) + ($775))|0;
+  $852 = (($851) + ($849))|0;
+  $853 = $852 << 7;
+  $854 = $852 >>> 25;
+  $855 = $853 | $854;
+  $856 = (($855) + ($803))|0;
+  $857 = $800 << 10;
+  $858 = $800 >>> 22;
+  $859 = $857 | $858;
+  $860 = $842 & $845;
+  $861 = $845 ^ -1;
+  $862 = $814 & $861;
+  $863 = $860 | $862;
+  $864 = (($114) + 1548603684)|0;
+  $865 = (($864) + ($789))|0;
+  $866 = (($865) + ($863))|0;
+  $867 = $866 << 9;
+  $868 = $866 >>> 23;
+  $869 = $867 | $868;
+  $870 = (($869) + ($817))|0;
+  $871 = $814 << 10;
+  $872 = $814 >>> 22;
+  $873 = $871 | $872;
+  $874 = $856 & $828;
+  $875 = $856 ^ -1;
+  $876 = $859 & $875;
+  $877 = $874 | $876;
+  $878 = (($78) + 1518500249)|0;
+  $879 = (($878) + ($803))|0;
+  $880 = (($879) + ($877))|0;
+  $881 = $880 << 15;
+  $882 = $880 >>> 17;
+  $883 = $881 | $882;
+  $884 = (($883) + ($831))|0;
+  $885 = $828 << 10;
+  $886 = $828 >>> 22;
+  $887 = $885 | $886;
+  $888 = $870 & $873;
+  $889 = $873 ^ -1;
+  $890 = $842 & $889;
+  $891 = $888 | $890;
+  $892 = (($204) + 1548603684)|0;
+  $893 = (($892) + ($817))|0;
+  $894 = (($893) + ($891))|0;
+  $895 = $894 << 11;
+  $896 = $894 >>> 21;
+  $897 = $895 | $896;
+  $898 = (($897) + ($845))|0;
+  $899 = $842 << 10;
+  $900 = $842 >>> 22;
+  $901 = $899 | $900;
+  $902 = $884 & $856;
+  $903 = $884 ^ -1;
+  $904 = $887 & $903;
+  $905 = $902 | $904;
+  $906 = (($240) + 1518500249)|0;
+  $907 = (($906) + ($831))|0;
+  $908 = (($907) + ($905))|0;
+  $909 = $908 << 7;
+  $910 = $908 >>> 25;
+  $911 = $909 | $910;
+  $912 = (($911) + ($859))|0;
+  $913 = $856 << 10;
+  $914 = $856 >>> 22;
+  $915 = $913 | $914;
+  $916 = $898 & $901;
+  $917 = $901 ^ -1;
+  $918 = $870 & $917;
+  $919 = $916 | $918;
+  $920 = (($276) + 1548603684)|0;
+  $921 = (($920) + ($845))|0;
+  $922 = (($921) + ($919))|0;
+  $923 = $922 << 7;
+  $924 = $922 >>> 25;
+  $925 = $923 | $924;
+  $926 = (($925) + ($873))|0;
+  $927 = $870 << 10;
+  $928 = $870 >>> 22;
+  $929 = $927 | $928;
+  $930 = $912 & $884;
+  $931 = $912 ^ -1;
+  $932 = $915 & $931;
+  $933 = $930 | $932;
+  $934 = (($24) + 1518500249)|0;
+  $935 = (($934) + ($859))|0;
+  $936 = (($935) + ($933))|0;
+  $937 = $936 << 12;
+  $938 = $936 >>> 20;
+  $939 = $937 | $938;
+  $940 = (($939) + ($887))|0;
+  $941 = $884 << 10;
+  $942 = $884 >>> 22;
+  $943 = $941 | $942;
+  $944 = $926 & $929;
+  $945 = $929 ^ -1;
+  $946 = $898 & $945;
+  $947 = $944 | $946;
+  $948 = (($294) + 1548603684)|0;
+  $949 = (($948) + ($873))|0;
+  $950 = (($949) + ($947))|0;
+  $951 = $950 << 7;
+  $952 = $950 >>> 25;
+  $953 = $951 | $952;
+  $954 = (($953) + ($901))|0;
+  $955 = $898 << 10;
+  $956 = $898 >>> 22;
+  $957 = $955 | $956;
+  $958 = $940 & $912;
+  $959 = $940 ^ -1;
+  $960 = $943 & $959;
+  $961 = $958 | $960;
+  $962 = (($186) + 1518500249)|0;
+  $963 = (($962) + ($887))|0;
+  $964 = (($963) + ($961))|0;
+  $965 = $964 << 15;
+  $966 = $964 >>> 17;
+  $967 = $965 | $966;
+  $968 = (($967) + ($915))|0;
+  $969 = $912 << 10;
+  $970 = $912 >>> 22;
+  $971 = $969 | $970;
+  $972 = $954 & $957;
+  $973 = $957 ^ -1;
+  $974 = $926 & $973;
+  $975 = $972 | $974;
+  $976 = (($168) + 1548603684)|0;
+  $977 = (($976) + ($901))|0;
+  $978 = (($977) + ($975))|0;
+  $979 = $978 << 12;
+  $980 = $978 >>> 20;
+  $981 = $979 | $980;
+  $982 = (($981) + ($929))|0;
+  $983 = $926 << 10;
+  $984 = $926 >>> 22;
+  $985 = $983 | $984;
+  $986 = $968 & $940;
+  $987 = $968 ^ -1;
+  $988 = $971 & $987;
+  $989 = $986 | $988;
+  $990 = (($114) + 1518500249)|0;
+  $991 = (($990) + ($915))|0;
+  $992 = (($991) + ($989))|0;
+  $993 = $992 << 9;
+  $994 = $992 >>> 23;
+  $995 = $993 | $994;
+  $996 = (($995) + ($943))|0;
+  $997 = $940 << 10;
+  $998 = $940 >>> 22;
+  $999 = $997 | $998;
+  $1000 = $982 & $985;
+  $1001 = $985 ^ -1;
+  $1002 = $954 & $1001;
+  $1003 = $1000 | $1002;
+  $1004 = (($240) + 1548603684)|0;
+  $1005 = (($1004) + ($929))|0;
+  $1006 = (($1005) + ($1003))|0;
+  $1007 = $1006 << 7;
+  $1008 = $1006 >>> 25;
+  $1009 = $1007 | $1008;
+  $1010 = (($1009) + ($957))|0;
+  $1011 = $954 << 10;
+  $1012 = $954 >>> 22;
+  $1013 = $1011 | $1012;
+  $1014 = $996 & $968;
+  $1015 = $996 ^ -1;
+  $1016 = $999 & $1015;
+  $1017 = $1014 | $1016;
+  $1018 = (($60) + 1518500249)|0;
+  $1019 = (($1018) + ($943))|0;
+  $1020 = (($1019) + ($1017))|0;
+  $1021 = $1020 << 11;
+  $1022 = $1020 >>> 21;
+  $1023 = $1021 | $1022;
+  $1024 = (($1023) + ($971))|0;
+  $1025 = $968 << 10;
+  $1026 = $968 >>> 22;
+  $1027 = $1025 | $1026;
+  $1028 = $1010 & $1013;
+  $1029 = $1013 ^ -1;
+  $1030 = $982 & $1029;
+  $1031 = $1028 | $1030;
+  $1032 = (($96) + 1548603684)|0;
+  $1033 = (($1032) + ($957))|0;
+  $1034 = (($1033) + ($1031))|0;
+  $1035 = $1034 << 6;
+  $1036 = $1034 >>> 26;
+  $1037 = $1035 | $1036;
+  $1038 = (($1037) + ($985))|0;
+  $1039 = $982 << 10;
+  $1040 = $982 >>> 22;
+  $1041 = $1039 | $1040;
+  $1042 = $1024 & $996;
+  $1043 = $1024 ^ -1;
+  $1044 = $1027 & $1043;
+  $1045 = $1042 | $1044;
+  $1046 = (($276) + 1518500249)|0;
+  $1047 = (($1046) + ($971))|0;
+  $1048 = (($1047) + ($1045))|0;
+  $1049 = $1048 << 7;
+  $1050 = $1048 >>> 25;
+  $1051 = $1049 | $1050;
+  $1052 = (($1051) + ($999))|0;
+  $1053 = $996 << 10;
+  $1054 = $996 >>> 22;
+  $1055 = $1053 | $1054;
+  $1056 = $1038 & $1041;
+  $1057 = $1041 ^ -1;
+  $1058 = $1010 & $1057;
+  $1059 = $1056 | $1058;
+  $1060 = (($186) + 1548603684)|0;
+  $1061 = (($1060) + ($985))|0;
+  $1062 = (($1061) + ($1059))|0;
+  $1063 = $1062 << 15;
+  $1064 = $1062 >>> 17;
+  $1065 = $1063 | $1064;
+  $1066 = (($1065) + ($1013))|0;
+  $1067 = $1010 << 10;
+  $1068 = $1010 >>> 22;
+  $1069 = $1067 | $1068;
+  $1070 = $1052 & $1024;
+  $1071 = $1052 ^ -1;
+  $1072 = $1055 & $1071;
+  $1073 = $1070 | $1072;
+  $1074 = (($222) + 1518500249)|0;
+  $1075 = (($1074) + ($999))|0;
+  $1076 = (($1075) + ($1073))|0;
+  $1077 = $1076 << 13;
+  $1078 = $1076 >>> 19;
+  $1079 = $1077 | $1078;
+  $1080 = (($1079) + ($1027))|0;
+  $1081 = $1024 << 10;
+  $1082 = $1024 >>> 22;
+  $1083 = $1081 | $1082;
+  $1084 = $1066 & $1069;
+  $1085 = $1069 ^ -1;
+  $1086 = $1038 & $1085;
+  $1087 = $1084 | $1086;
+  $1088 = (($42) + 1548603684)|0;
+  $1089 = (($1088) + ($1013))|0;
+  $1090 = (($1089) + ($1087))|0;
+  $1091 = $1090 << 13;
+  $1092 = $1090 >>> 19;
+  $1093 = $1091 | $1092;
+  $1094 = (($1093) + ($1041))|0;
+  $1095 = $1038 << 10;
+  $1096 = $1038 >>> 22;
+  $1097 = $1095 | $1096;
+  $1098 = $1080 & $1052;
+  $1099 = $1080 ^ -1;
+  $1100 = $1083 & $1099;
+  $1101 = $1098 | $1100;
+  $1102 = (($168) + 1518500249)|0;
+  $1103 = (($1102) + ($1027))|0;
+  $1104 = (($1103) + ($1101))|0;
+  $1105 = $1104 << 12;
+  $1106 = $1104 >>> 20;
+  $1107 = $1105 | $1106;
+  $1108 = (($1107) + ($1055))|0;
+  $1109 = $1052 << 10;
+  $1110 = $1052 >>> 22;
+  $1111 = $1109 | $1110;
+  $1112 = $1094 & $1097;
+  $1113 = $1097 ^ -1;
+  $1114 = $1066 & $1113;
+  $1115 = $1112 | $1114;
+  $1116 = (($60) + 1548603684)|0;
+  $1117 = (($1116) + ($1041))|0;
+  $1118 = (($1117) + ($1115))|0;
+  $1119 = $1118 << 11;
+  $1120 = $1118 >>> 21;
+  $1121 = $1119 | $1120;
+  $1122 = (($1121) + ($1069))|0;
+  $1123 = $1066 << 10;
+  $1124 = $1066 >>> 22;
+  $1125 = $1123 | $1124;
+  $1126 = $1108 | $1099;
+  $1127 = $1126 ^ $1111;
+  $1128 = (($78) + 1859775393)|0;
+  $1129 = (($1128) + ($1055))|0;
+  $1130 = (($1129) + ($1127))|0;
+  $1131 = $1130 << 11;
+  $1132 = $1130 >>> 21;
+  $1133 = $1131 | $1132;
+  $1134 = (($1133) + ($1083))|0;
+  $1135 = $1080 << 10;
+  $1136 = $1080 >>> 22;
+  $1137 = $1135 | $1136;
+  $1138 = $1094 ^ -1;
+  $1139 = $1122 | $1138;
+  $1140 = $1139 ^ $1125;
+  $1141 = (($294) + 1836072691)|0;
+  $1142 = (($1141) + ($1069))|0;
+  $1143 = (($1142) + ($1140))|0;
+  $1144 = $1143 << 9;
+  $1145 = $1143 >>> 23;
+  $1146 = $1144 | $1145;
+  $1147 = (($1146) + ($1097))|0;
+  $1148 = $1094 << 10;
+  $1149 = $1094 >>> 22;
+  $1150 = $1148 | $1149;
+  $1151 = $1108 ^ -1;
+  $1152 = $1134 | $1151;
+  $1153 = $1152 ^ $1137;
+  $1154 = (($204) + 1859775393)|0;
+  $1155 = (($1154) + ($1083))|0;
+  $1156 = (($1155) + ($1153))|0;
+  $1157 = $1156 << 13;
+  $1158 = $1156 >>> 19;
+  $1159 = $1157 | $1158;
+  $1160 = (($1159) + ($1111))|0;
+  $1161 = $1108 << 10;
+  $1162 = $1108 >>> 22;
+  $1163 = $1161 | $1162;
+  $1164 = $1122 ^ -1;
+  $1165 = $1147 | $1164;
+  $1166 = $1165 ^ $1150;
+  $1167 = (($114) + 1836072691)|0;
+  $1168 = (($1167) + ($1097))|0;
+  $1169 = (($1168) + ($1166))|0;
+  $1170 = $1169 << 7;
+  $1171 = $1169 >>> 25;
+  $1172 = $1170 | $1171;
+  $1173 = (($1172) + ($1125))|0;
+  $1174 = $1122 << 10;
+  $1175 = $1122 >>> 22;
+  $1176 = $1174 | $1175;
+  $1177 = $1134 ^ -1;
+  $1178 = $1160 | $1177;
+  $1179 = $1178 ^ $1163;
+  $1180 = (($276) + 1859775393)|0;
+  $1181 = (($1180) + ($1111))|0;
+  $1182 = (($1181) + ($1179))|0;
+  $1183 = $1182 << 6;
+  $1184 = $1182 >>> 26;
+  $1185 = $1183 | $1184;
+  $1186 = (($1185) + ($1137))|0;
+  $1187 = $1134 << 10;
+  $1188 = $1134 >>> 22;
+  $1189 = $1187 | $1188;
+  $1190 = $1147 ^ -1;
+  $1191 = $1173 | $1190;
+  $1192 = $1191 ^ $1176;
+  $1193 = (($42) + 1836072691)|0;
+  $1194 = (($1193) + ($1125))|0;
+  $1195 = (($1194) + ($1192))|0;
+  $1196 = $1195 << 15;
+  $1197 = $1195 >>> 17;
+  $1198 = $1196 | $1197;
+  $1199 = (($1198) + ($1150))|0;
+  $1200 = $1147 << 10;
+  $1201 = $1147 >>> 22;
+  $1202 = $1200 | $1201;
+  $1203 = $1160 ^ -1;
+  $1204 = $1186 | $1203;
+  $1205 = $1204 ^ $1189;
+  $1206 = (($96) + 1859775393)|0;
+  $1207 = (($1206) + ($1137))|0;
+  $1208 = (($1207) + ($1205))|0;
+  $1209 = $1208 << 7;
+  $1210 = $1208 >>> 25;
+  $1211 = $1209 | $1210;
+  $1212 = (($1211) + ($1163))|0;
+  $1213 = $1160 << 10;
+  $1214 = $1160 >>> 22;
+  $1215 = $1213 | $1214;
+  $1216 = $1173 ^ -1;
+  $1217 = $1199 | $1216;
+  $1218 = $1217 ^ $1202;
+  $1219 = (($78) + 1836072691)|0;
+  $1220 = (($1219) + ($1150))|0;
+  $1221 = (($1220) + ($1218))|0;
+  $1222 = $1221 << 11;
+  $1223 = $1221 >>> 21;
+  $1224 = $1222 | $1223;
+  $1225 = (($1224) + ($1176))|0;
+  $1226 = $1173 << 10;
+  $1227 = $1173 >>> 22;
+  $1228 = $1226 | $1227;
+  $1229 = $1186 ^ -1;
+  $1230 = $1212 | $1229;
+  $1231 = $1230 ^ $1215;
+  $1232 = (($186) + 1859775393)|0;
+  $1233 = (($1232) + ($1163))|0;
+  $1234 = (($1233) + ($1231))|0;
+  $1235 = $1234 << 14;
+  $1236 = $1234 >>> 18;
+  $1237 = $1235 | $1236;
+  $1238 = (($1237) + ($1189))|0;
+  $1239 = $1186 << 10;
+  $1240 = $1186 >>> 22;
+  $1241 = $1239 | $1240;
+  $1242 = $1199 ^ -1;
+  $1243 = $1225 | $1242;
+  $1244 = $1243 ^ $1228;
+  $1245 = (($150) + 1836072691)|0;
+  $1246 = (($1245) + ($1176))|0;
+  $1247 = (($1246) + ($1244))|0;
+  $1248 = $1247 << 8;
+  $1249 = $1247 >>> 24;
+  $1250 = $1248 | $1249;
+  $1251 = (($1250) + ($1202))|0;
+  $1252 = $1199 << 10;
+  $1253 = $1199 >>> 22;
+  $1254 = $1252 | $1253;
+  $1255 = $1212 ^ -1;
+  $1256 = $1238 | $1255;
+  $1257 = $1256 ^ $1241;
+  $1258 = (($294) + 1859775393)|0;
+  $1259 = (($1258) + ($1189))|0;
+  $1260 = (($1259) + ($1257))|0;
+  $1261 = $1260 << 9;
+  $1262 = $1260 >>> 23;
+  $1263 = $1261 | $1262;
+  $1264 = (($1263) + ($1215))|0;
+  $1265 = $1212 << 10;
+  $1266 = $1212 >>> 22;
+  $1267 = $1265 | $1266;
+  $1268 = $1225 ^ -1;
+  $1269 = $1251 | $1268;
+  $1270 = $1269 ^ $1254;
+  $1271 = (($276) + 1836072691)|0;
+  $1272 = (($1271) + ($1202))|0;
+  $1273 = (($1272) + ($1270))|0;
+  $1274 = $1273 << 6;
+  $1275 = $1273 >>> 26;
+  $1276 = $1274 | $1275;
+  $1277 = (($1276) + ($1228))|0;
+  $1278 = $1225 << 10;
+  $1279 = $1225 >>> 22;
+  $1280 = $1278 | $1279;
+  $1281 = $1238 ^ -1;
+  $1282 = $1264 | $1281;
+  $1283 = $1282 ^ $1267;
+  $1284 = (($168) + 1859775393)|0;
+  $1285 = (($1284) + ($1215))|0;
+  $1286 = (($1285) + ($1283))|0;
+  $1287 = $1286 << 13;
+  $1288 = $1286 >>> 19;
+  $1289 = $1287 | $1288;
+  $1290 = (($1289) + ($1241))|0;
+  $1291 = $1238 << 10;
+  $1292 = $1238 >>> 22;
+  $1293 = $1291 | $1292;
+  $1294 = $1251 ^ -1;
+  $1295 = $1277 | $1294;
+  $1296 = $1295 ^ $1280;
+  $1297 = (($132) + 1836072691)|0;
+  $1298 = (($1297) + ($1228))|0;
+  $1299 = (($1298) + ($1296))|0;
+  $1300 = $1299 << 6;
+  $1301 = $1299 >>> 26;
+  $1302 = $1300 | $1301;
+  $1303 = (($1302) + ($1254))|0;
+  $1304 = $1251 << 10;
+  $1305 = $1251 >>> 22;
+  $1306 = $1304 | $1305;
+  $1307 = $1264 ^ -1;
+  $1308 = $1290 | $1307;
+  $1309 = $1308 ^ $1293;
+  $1310 = (($42) + 1859775393)|0;
+  $1311 = (($1310) + ($1241))|0;
+  $1312 = (($1311) + ($1309))|0;
+  $1313 = $1312 << 15;
+  $1314 = $1312 >>> 17;
+  $1315 = $1313 | $1314;
+  $1316 = (($1315) + ($1267))|0;
+  $1317 = $1264 << 10;
+  $1318 = $1264 >>> 22;
+  $1319 = $1317 | $1318;
+  $1320 = $1277 ^ -1;
+  $1321 = $1303 | $1320;
+  $1322 = $1321 ^ $1306;
+  $1323 = (($186) + 1836072691)|0;
+  $1324 = (($1323) + ($1254))|0;
+  $1325 = (($1324) + ($1322))|0;
+  $1326 = $1325 << 14;
+  $1327 = $1325 >>> 18;
+  $1328 = $1326 | $1327;
+  $1329 = (($1328) + ($1280))|0;
+  $1330 = $1277 << 10;
+  $1331 = $1277 >>> 22;
+  $1332 = $1330 | $1331;
+  $1333 = $1290 ^ -1;
+  $1334 = $1316 | $1333;
+  $1335 = $1334 ^ $1319;
+  $1336 = (($60) + 1859775393)|0;
+  $1337 = (($1336) + ($1267))|0;
+  $1338 = (($1337) + ($1335))|0;
+  $1339 = $1338 << 14;
+  $1340 = $1338 >>> 18;
+  $1341 = $1339 | $1340;
+  $1342 = (($1341) + ($1293))|0;
+  $1343 = $1290 << 10;
+  $1344 = $1290 >>> 22;
+  $1345 = $1343 | $1344;
+  $1346 = $1303 ^ -1;
+  $1347 = $1329 | $1346;
+  $1348 = $1347 ^ $1332;
+  $1349 = (($222) + 1836072691)|0;
+  $1350 = (($1349) + ($1280))|0;
+  $1351 = (($1350) + ($1348))|0;
+  $1352 = $1351 << 12;
+  $1353 = $1351 >>> 20;
+  $1354 = $1352 | $1353;
+  $1355 = (($1354) + ($1306))|0;
+  $1356 = $1303 << 10;
+  $1357 = $1303 >>> 22;
+  $1358 = $1356 | $1357;
+  $1359 = $1316 ^ -1;
+  $1360 = $1342 | $1359;
+  $1361 = $1360 ^ $1345;
+  $1362 = (($150) + 1859775393)|0;
+  $1363 = (($1362) + ($1293))|0;
+  $1364 = (($1363) + ($1361))|0;
+  $1365 = $1364 << 8;
+  $1366 = $1364 >>> 24;
+  $1367 = $1365 | $1366;
+  $1368 = (($1367) + ($1319))|0;
+  $1369 = $1316 << 10;
+  $1370 = $1316 >>> 22;
+  $1371 = $1369 | $1370;
+  $1372 = $1329 ^ -1;
+  $1373 = $1355 | $1372;
+  $1374 = $1373 ^ $1358;
+  $1375 = (($168) + 1836072691)|0;
+  $1376 = (($1375) + ($1306))|0;
+  $1377 = (($1376) + ($1374))|0;
+  $1378 = $1377 << 13;
+  $1379 = $1377 >>> 19;
+  $1380 = $1378 | $1379;
+  $1381 = (($1380) + ($1332))|0;
+  $1382 = $1329 << 10;
+  $1383 = $1329 >>> 22;
+  $1384 = $1382 | $1383;
+  $1385 = $1342 ^ -1;
+  $1386 = $1368 | $1385;
+  $1387 = $1386 ^ $1371;
+  $1388 = (($24) + 1859775393)|0;
+  $1389 = (($1388) + ($1319))|0;
+  $1390 = (($1389) + ($1387))|0;
+  $1391 = $1390 << 13;
+  $1392 = $1390 >>> 19;
+  $1393 = $1391 | $1392;
+  $1394 = (($1393) + ($1345))|0;
+  $1395 = $1342 << 10;
+  $1396 = $1342 >>> 22;
+  $1397 = $1395 | $1396;
+  $1398 = $1355 ^ -1;
+  $1399 = $1381 | $1398;
+  $1400 = $1399 ^ $1384;
+  $1401 = (($240) + 1836072691)|0;
+  $1402 = (($1401) + ($1332))|0;
+  $1403 = (($1402) + ($1400))|0;
+  $1404 = $1403 << 5;
+  $1405 = $1403 >>> 27;
+  $1406 = $1404 | $1405;
+  $1407 = (($1406) + ($1358))|0;
+  $1408 = $1355 << 10;
+  $1409 = $1355 >>> 22;
+  $1410 = $1408 | $1409;
+  $1411 = $1368 ^ -1;
+  $1412 = $1394 | $1411;
+  $1413 = $1412 ^ $1397;
+  $1414 = (($132) + 1859775393)|0;
+  $1415 = (($1414) + ($1345))|0;
+  $1416 = (($1415) + ($1413))|0;
+  $1417 = $1416 << 6;
+  $1418 = $1416 >>> 26;
+  $1419 = $1417 | $1418;
+  $1420 = (($1419) + ($1371))|0;
+  $1421 = $1368 << 10;
+  $1422 = $1368 >>> 22;
+  $1423 = $1421 | $1422;
+  $1424 = $1381 ^ -1;
+  $1425 = $1407 | $1424;
+  $1426 = $1425 ^ $1410;
+  $1427 = (($60) + 1836072691)|0;
+  $1428 = (($1427) + ($1358))|0;
+  $1429 = (($1428) + ($1426))|0;
+  $1430 = $1429 << 14;
+  $1431 = $1429 >>> 18;
+  $1432 = $1430 | $1431;
+  $1433 = (($1432) + ($1384))|0;
+  $1434 = $1381 << 10;
+  $1435 = $1381 >>> 22;
+  $1436 = $1434 | $1435;
+  $1437 = $1394 ^ -1;
+  $1438 = $1420 | $1437;
+  $1439 = $1438 ^ $1423;
+  $1440 = (($258) + 1859775393)|0;
+  $1441 = (($1440) + ($1371))|0;
+  $1442 = (($1441) + ($1439))|0;
+  $1443 = $1442 << 5;
+  $1444 = $1442 >>> 27;
+  $1445 = $1443 | $1444;
+  $1446 = (($1445) + ($1397))|0;
+  $1447 = $1394 << 10;
+  $1448 = $1394 >>> 22;
+  $1449 = $1447 | $1448;
+  $1450 = $1407 ^ -1;
+  $1451 = $1433 | $1450;
+  $1452 = $1451 ^ $1436;
+  $1453 = (($204) + 1836072691)|0;
+  $1454 = (($1453) + ($1384))|0;
+  $1455 = (($1454) + ($1452))|0;
+  $1456 = $1455 << 13;
+  $1457 = $1455 >>> 19;
+  $1458 = $1456 | $1457;
+  $1459 = (($1458) + ($1410))|0;
+  $1460 = $1407 << 10;
+  $1461 = $1407 >>> 22;
+  $1462 = $1460 | $1461;
+  $1463 = $1420 ^ -1;
+  $1464 = $1446 | $1463;
+  $1465 = $1464 ^ $1449;
+  $1466 = (($222) + 1859775393)|0;
+  $1467 = (($1466) + ($1397))|0;
+  $1468 = (($1467) + ($1465))|0;
+  $1469 = $1468 << 12;
+  $1470 = $1468 >>> 20;
+  $1471 = $1469 | $1470;
+  $1472 = (($1471) + ($1423))|0;
+  $1473 = $1420 << 10;
+  $1474 = $1420 >>> 22;
+  $1475 = $1473 | $1474;
+  $1476 = $1433 ^ -1;
+  $1477 = $1459 | $1476;
+  $1478 = $1477 ^ $1462;
+  $1479 = (($24) + 1836072691)|0;
+  $1480 = (($1479) + ($1410))|0;
+  $1481 = (($1480) + ($1478))|0;
+  $1482 = $1481 << 13;
+  $1483 = $1481 >>> 19;
+  $1484 = $1482 | $1483;
+  $1485 = (($1484) + ($1436))|0;
+  $1486 = $1433 << 10;
+  $1487 = $1433 >>> 22;
+  $1488 = $1486 | $1487;
+  $1489 = $1446 ^ -1;
+  $1490 = $1472 | $1489;
+  $1491 = $1490 ^ $1475;
+  $1492 = (($114) + 1859775393)|0;
+  $1493 = (($1492) + ($1423))|0;
+  $1494 = (($1493) + ($1491))|0;
+  $1495 = $1494 << 7;
+  $1496 = $1494 >>> 25;
+  $1497 = $1495 | $1496;
+  $1498 = (($1497) + ($1449))|0;
+  $1499 = $1446 << 10;
+  $1500 = $1446 >>> 22;
+  $1501 = $1499 | $1500;
+  $1502 = $1459 ^ -1;
+  $1503 = $1485 | $1502;
+  $1504 = $1503 ^ $1488;
+  $1505 = (($96) + 1836072691)|0;
+  $1506 = (($1505) + ($1436))|0;
+  $1507 = (($1506) + ($1504))|0;
+  $1508 = $1507 << 7;
+  $1509 = $1507 >>> 25;
+  $1510 = $1508 | $1509;
+  $1511 = (($1510) + ($1462))|0;
+  $1512 = $1459 << 10;
+  $1513 = $1459 >>> 22;
+  $1514 = $1512 | $1513;
+  $1515 = $1472 ^ -1;
+  $1516 = $1498 | $1515;
+  $1517 = $1516 ^ $1501;
+  $1518 = (($240) + 1859775393)|0;
+  $1519 = (($1518) + ($1449))|0;
+  $1520 = (($1519) + ($1517))|0;
+  $1521 = $1520 << 5;
+  $1522 = $1520 >>> 27;
+  $1523 = $1521 | $1522;
+  $1524 = (($1523) + ($1475))|0;
+  $1525 = $1472 << 10;
+  $1526 = $1472 >>> 22;
+  $1527 = $1525 | $1526;
+  $1528 = $1485 ^ -1;
+  $1529 = $1511 | $1528;
+  $1530 = $1529 ^ $1514;
+  $1531 = (($258) + 1836072691)|0;
+  $1532 = (($1531) + ($1462))|0;
+  $1533 = (($1532) + ($1530))|0;
+  $1534 = $1533 << 5;
+  $1535 = $1533 >>> 27;
+  $1536 = $1534 | $1535;
+  $1537 = (($1536) + ($1488))|0;
+  $1538 = $1485 << 10;
+  $1539 = $1485 >>> 22;
+  $1540 = $1538 | $1539;
+  $1541 = $1524 & $1527;
+  $1542 = $1527 ^ -1;
+  $1543 = $1498 & $1542;
+  $1544 = $1541 | $1543;
+  $1545 = (($42) + -1894007588)|0;
+  $1546 = (($1545) + ($1475))|0;
+  $1547 = (($1546) + ($1544))|0;
+  $1548 = $1547 << 11;
+  $1549 = $1547 >>> 21;
+  $1550 = $1548 | $1549;
+  $1551 = (($1550) + ($1501))|0;
+  $1552 = $1498 << 10;
+  $1553 = $1498 >>> 22;
+  $1554 = $1552 | $1553;
+  $1555 = $1537 & $1511;
+  $1556 = $1537 ^ -1;
+  $1557 = $1540 & $1556;
+  $1558 = $1555 | $1557;
+  $1559 = (($168) + 2053994217)|0;
+  $1560 = (($1559) + ($1488))|0;
+  $1561 = (($1560) + ($1558))|0;
+  $1562 = $1561 << 15;
+  $1563 = $1561 >>> 17;
+  $1564 = $1562 | $1563;
+  $1565 = (($1564) + ($1514))|0;
+  $1566 = $1511 << 10;
+  $1567 = $1511 >>> 22;
+  $1568 = $1566 | $1567;
+  $1569 = $1551 & $1554;
+  $1570 = $1554 ^ -1;
+  $1571 = $1524 & $1570;
+  $1572 = $1569 | $1571;
+  $1573 = (($186) + -1894007588)|0;
+  $1574 = (($1573) + ($1501))|0;
+  $1575 = (($1574) + ($1572))|0;
+  $1576 = $1575 << 12;
+  $1577 = $1575 >>> 20;
+  $1578 = $1576 | $1577;
+  $1579 = (($1578) + ($1527))|0;
+  $1580 = $1524 << 10;
+  $1581 = $1524 >>> 22;
+  $1582 = $1580 | $1581;
+  $1583 = $1565 & $1537;
+  $1584 = $1565 ^ -1;
+  $1585 = $1568 & $1584;
+  $1586 = $1583 | $1585;
+  $1587 = (($132) + 2053994217)|0;
+  $1588 = (($1587) + ($1514))|0;
+  $1589 = (($1588) + ($1586))|0;
+  $1590 = $1589 << 5;
+  $1591 = $1589 >>> 27;
+  $1592 = $1590 | $1591;
+  $1593 = (($1592) + ($1540))|0;
+  $1594 = $1537 << 10;
+  $1595 = $1537 >>> 22;
+  $1596 = $1594 | $1595;
+  $1597 = $1579 & $1582;
+  $1598 = $1582 ^ -1;
+  $1599 = $1551 & $1598;
+  $1600 = $1597 | $1599;
+  $1601 = (($222) + -1894007588)|0;
+  $1602 = (($1601) + ($1527))|0;
+  $1603 = (($1602) + ($1600))|0;
+  $1604 = $1603 << 14;
+  $1605 = $1603 >>> 18;
+  $1606 = $1604 | $1605;
+  $1607 = (($1606) + ($1554))|0;
+  $1608 = $1551 << 10;
+  $1609 = $1551 >>> 22;
+  $1610 = $1608 | $1609;
+  $1611 = $1593 & $1565;
+  $1612 = $1593 ^ -1;
+  $1613 = $1596 & $1612;
+  $1614 = $1611 | $1613;
+  $1615 = (($96) + 2053994217)|0;
+  $1616 = (($1615) + ($1540))|0;
+  $1617 = (($1616) + ($1614))|0;
+  $1618 = $1617 << 8;
+  $1619 = $1617 >>> 24;
+  $1620 = $1618 | $1619;
+  $1621 = (($1620) + ($1568))|0;
+  $1622 = $1565 << 10;
+  $1623 = $1565 >>> 22;
+  $1624 = $1622 | $1623;
+  $1625 = $1607 & $1610;
+  $1626 = $1610 ^ -1;
+  $1627 = $1579 & $1626;
+  $1628 = $1625 | $1627;
+  $1629 = (($204) + -1894007588)|0;
+  $1630 = (($1629) + ($1554))|0;
+  $1631 = (($1630) + ($1628))|0;
+  $1632 = $1631 << 15;
+  $1633 = $1631 >>> 17;
+  $1634 = $1632 | $1633;
+  $1635 = (($1634) + ($1582))|0;
+  $1636 = $1579 << 10;
+  $1637 = $1579 >>> 22;
+  $1638 = $1636 | $1637;
+  $1639 = $1621 & $1593;
+  $1640 = $1621 ^ -1;
+  $1641 = $1624 & $1640;
+  $1642 = $1639 | $1641;
+  $1643 = (($42) + 2053994217)|0;
+  $1644 = (($1643) + ($1568))|0;
+  $1645 = (($1644) + ($1642))|0;
+  $1646 = $1645 << 11;
+  $1647 = $1645 >>> 21;
+  $1648 = $1646 | $1647;
+  $1649 = (($1648) + ($1596))|0;
+  $1650 = $1593 << 10;
+  $1651 = $1593 >>> 22;
+  $1652 = $1650 | $1651;
+  $1653 = $1635 & $1638;
+  $1654 = $1638 ^ -1;
+  $1655 = $1607 & $1654;
+  $1656 = $1653 | $1655;
+  $1657 = (($24) + -1894007588)|0;
+  $1658 = (($1657) + ($1582))|0;
+  $1659 = (($1658) + ($1656))|0;
+  $1660 = $1659 << 14;
+  $1661 = $1659 >>> 18;
+  $1662 = $1660 | $1661;
+  $1663 = (($1662) + ($1610))|0;
+  $1664 = $1607 << 10;
+  $1665 = $1607 >>> 22;
+  $1666 = $1664 | $1665;
+  $1667 = $1649 & $1621;
+  $1668 = $1649 ^ -1;
+  $1669 = $1652 & $1668;
+  $1670 = $1667 | $1669;
+  $1671 = (($78) + 2053994217)|0;
+  $1672 = (($1671) + ($1596))|0;
+  $1673 = (($1672) + ($1670))|0;
+  $1674 = $1673 << 14;
+  $1675 = $1673 >>> 18;
+  $1676 = $1674 | $1675;
+  $1677 = (($1676) + ($1624))|0;
+  $1678 = $1621 << 10;
+  $1679 = $1621 >>> 22;
+  $1680 = $1678 | $1679;
+  $1681 = $1663 & $1666;
+  $1682 = $1666 ^ -1;
+  $1683 = $1635 & $1682;
+  $1684 = $1681 | $1683;
+  $1685 = (($168) + -1894007588)|0;
+  $1686 = (($1685) + ($1610))|0;
+  $1687 = (($1686) + ($1684))|0;
+  $1688 = $1687 << 15;
+  $1689 = $1687 >>> 17;
+  $1690 = $1688 | $1689;
+  $1691 = (($1690) + ($1638))|0;
+  $1692 = $1635 << 10;
+  $1693 = $1635 >>> 22;
+  $1694 = $1692 | $1693;
+  $1695 = $1677 & $1649;
+  $1696 = $1677 ^ -1;
+  $1697 = $1680 & $1696;
+  $1698 = $1695 | $1697;
+  $1699 = (($222) + 2053994217)|0;
+  $1700 = (($1699) + ($1624))|0;
+  $1701 = (($1700) + ($1698))|0;
+  $1702 = $1701 << 14;
+  $1703 = $1701 >>> 18;
+  $1704 = $1702 | $1703;
+  $1705 = (($1704) + ($1652))|0;
+  $1706 = $1649 << 10;
+  $1707 = $1649 >>> 22;
+  $1708 = $1706 | $1707;
+  $1709 = $1691 & $1694;
+  $1710 = $1694 ^ -1;
+  $1711 = $1663 & $1710;
+  $1712 = $1709 | $1711;
+  $1713 = (($240) + -1894007588)|0;
+  $1714 = (($1713) + ($1638))|0;
+  $1715 = (($1714) + ($1712))|0;
+  $1716 = $1715 << 9;
+  $1717 = $1715 >>> 23;
+  $1718 = $1716 | $1717;
+  $1719 = (($1718) + ($1666))|0;
+  $1720 = $1663 << 10;
+  $1721 = $1663 >>> 22;
+  $1722 = $1720 | $1721;
+  $1723 = $1705 & $1677;
+  $1724 = $1705 ^ -1;
+  $1725 = $1708 & $1724;
+  $1726 = $1723 | $1725;
+  $1727 = (($294) + 2053994217)|0;
+  $1728 = (($1727) + ($1652))|0;
+  $1729 = (($1728) + ($1726))|0;
+  $1730 = $1729 << 6;
+  $1731 = $1729 >>> 26;
+  $1732 = $1730 | $1731;
+  $1733 = (($1732) + ($1680))|0;
+  $1734 = $1677 << 10;
+  $1735 = $1677 >>> 22;
+  $1736 = $1734 | $1735;
+  $1737 = $1719 & $1722;
+  $1738 = $1722 ^ -1;
+  $1739 = $1691 & $1738;
+  $1740 = $1737 | $1739;
+  $1741 = (($96) + -1894007588)|0;
+  $1742 = (($1741) + ($1666))|0;
+  $1743 = (($1742) + ($1740))|0;
+  $1744 = $1743 << 8;
+  $1745 = $1743 >>> 24;
+  $1746 = $1744 | $1745;
+  $1747 = (($1746) + ($1694))|0;
+  $1748 = $1691 << 10;
+  $1749 = $1691 >>> 22;
+  $1750 = $1748 | $1749;
+  $1751 = $1733 & $1705;
+  $1752 = $1733 ^ -1;
+  $1753 = $1736 & $1752;
+  $1754 = $1751 | $1753;
+  $1755 = (($24) + 2053994217)|0;
+  $1756 = (($1755) + ($1680))|0;
+  $1757 = (($1756) + ($1754))|0;
+  $1758 = $1757 << 14;
+  $1759 = $1757 >>> 18;
+  $1760 = $1758 | $1759;
+  $1761 = (($1760) + ($1708))|0;
+  $1762 = $1705 << 10;
+  $1763 = $1705 >>> 22;
+  $1764 = $1762 | $1763;
+  $1765 = $1747 & $1750;
+  $1766 = $1750 ^ -1;
+  $1767 = $1719 & $1766;
+  $1768 = $1765 | $1767;
+  $1769 = (($258) + -1894007588)|0;
+  $1770 = (($1769) + ($1694))|0;
+  $1771 = (($1770) + ($1768))|0;
+  $1772 = $1771 << 9;
+  $1773 = $1771 >>> 23;
+  $1774 = $1772 | $1773;
+  $1775 = (($1774) + ($1722))|0;
+  $1776 = $1719 << 10;
+  $1777 = $1719 >>> 22;
+  $1778 = $1776 | $1777;
+  $1779 = $1761 & $1733;
+  $1780 = $1761 ^ -1;
+  $1781 = $1764 & $1780;
+  $1782 = $1779 | $1781;
+  $1783 = (($114) + 2053994217)|0;
+  $1784 = (($1783) + ($1708))|0;
+  $1785 = (($1784) + ($1782))|0;
+  $1786 = $1785 << 6;
+  $1787 = $1785 >>> 26;
+  $1788 = $1786 | $1787;
+  $1789 = (($1788) + ($1736))|0;
+  $1790 = $1733 << 10;
+  $1791 = $1733 >>> 22;
+  $1792 = $1790 | $1791;
+  $1793 = $1775 & $1778;
+  $1794 = $1778 ^ -1;
+  $1795 = $1747 & $1794;
+  $1796 = $1793 | $1795;
+  $1797 = (($78) + -1894007588)|0;
+  $1798 = (($1797) + ($1722))|0;
+  $1799 = (($1798) + ($1796))|0;
+  $1800 = $1799 << 14;
+  $1801 = $1799 >>> 18;
+  $1802 = $1800 | $1801;
+  $1803 = (($1802) + ($1750))|0;
+  $1804 = $1747 << 10;
+  $1805 = $1747 >>> 22;
+  $1806 = $1804 | $1805;
+  $1807 = $1789 & $1761;
+  $1808 = $1789 ^ -1;
+  $1809 = $1792 & $1808;
+  $1810 = $1807 | $1809;
+  $1811 = (($240) + 2053994217)|0;
+  $1812 = (($1811) + ($1736))|0;
+  $1813 = (($1812) + ($1810))|0;
+  $1814 = $1813 << 9;
+  $1815 = $1813 >>> 23;
+  $1816 = $1814 | $1815;
+  $1817 = (($1816) + ($1764))|0;
+  $1818 = $1761 << 10;
+  $1819 = $1761 >>> 22;
+  $1820 = $1818 | $1819;
+  $1821 = $1803 & $1806;
+  $1822 = $1806 ^ -1;
+  $1823 = $1775 & $1822;
+  $1824 = $1821 | $1823;
+  $1825 = (($150) + -1894007588)|0;
+  $1826 = (($1825) + ($1750))|0;
+  $1827 = (($1826) + ($1824))|0;
+  $1828 = $1827 << 5;
+  $1829 = $1827 >>> 27;
+  $1830 = $1828 | $1829;
+  $1831 = (($1830) + ($1778))|0;
+  $1832 = $1775 << 10;
+  $1833 = $1775 >>> 22;
+  $1834 = $1832 | $1833;
+  $1835 = $1817 & $1789;
+  $1836 = $1817 ^ -1;
+  $1837 = $1820 & $1836;
+  $1838 = $1835 | $1837;
+  $1839 = (($60) + 2053994217)|0;
+  $1840 = (($1839) + ($1764))|0;
+  $1841 = (($1840) + ($1838))|0;
+  $1842 = $1841 << 12;
+  $1843 = $1841 >>> 20;
+  $1844 = $1842 | $1843;
+  $1845 = (($1844) + ($1792))|0;
+  $1846 = $1789 << 10;
+  $1847 = $1789 >>> 22;
+  $1848 = $1846 | $1847;
+  $1849 = $1831 & $1834;
+  $1850 = $1834 ^ -1;
+  $1851 = $1803 & $1850;
+  $1852 = $1849 | $1851;
+  $1853 = (($294) + -1894007588)|0;
+  $1854 = (($1853) + ($1778))|0;
+  $1855 = (($1854) + ($1852))|0;
+  $1856 = $1855 << 6;
+  $1857 = $1855 >>> 26;
+  $1858 = $1856 | $1857;
+  $1859 = (($1858) + ($1806))|0;
+  $1860 = $1803 << 10;
+  $1861 = $1803 >>> 22;
+  $1862 = $1860 | $1861;
+  $1863 = $1845 & $1817;
+  $1864 = $1845 ^ -1;
+  $1865 = $1848 & $1864;
+  $1866 = $1863 | $1865;
+  $1867 = (($258) + 2053994217)|0;
+  $1868 = (($1867) + ($1792))|0;
+  $1869 = (($1868) + ($1866))|0;
+  $1870 = $1869 << 9;
+  $1871 = $1869 >>> 23;
+  $1872 = $1870 | $1871;
+  $1873 = (($1872) + ($1820))|0;
+  $1874 = $1817 << 10;
+  $1875 = $1817 >>> 22;
+  $1876 = $1874 | $1875;
+  $1877 = $1859 & $1862;
+  $1878 = $1862 ^ -1;
+  $1879 = $1831 & $1878;
+  $1880 = $1877 | $1879;
+  $1881 = (($276) + -1894007588)|0;
+  $1882 = (($1881) + ($1806))|0;
+  $1883 = (($1882) + ($1880))|0;
+  $1884 = $1883 << 8;
+  $1885 = $1883 >>> 24;
+  $1886 = $1884 | $1885;
+  $1887 = (($1886) + ($1834))|0;
+  $1888 = $1831 << 10;
+  $1889 = $1831 >>> 22;
+  $1890 = $1888 | $1889;
+  $1891 = $1873 & $1845;
+  $1892 = $1873 ^ -1;
+  $1893 = $1876 & $1892;
+  $1894 = $1891 | $1893;
+  $1895 = (($186) + 2053994217)|0;
+  $1896 = (($1895) + ($1820))|0;
+  $1897 = (($1896) + ($1894))|0;
+  $1898 = $1897 << 12;
+  $1899 = $1897 >>> 20;
+  $1900 = $1898 | $1899;
+  $1901 = (($1900) + ($1848))|0;
+  $1902 = $1845 << 10;
+  $1903 = $1845 >>> 22;
+  $1904 = $1902 | $1903;
+  $1905 = $1887 & $1890;
+  $1906 = $1890 ^ -1;
+  $1907 = $1859 & $1906;
+  $1908 = $1905 | $1907;
+  $1909 = (($114) + -1894007588)|0;
+  $1910 = (($1909) + ($1834))|0;
+  $1911 = (($1910) + ($1908))|0;
+  $1912 = $1911 << 6;
+  $1913 = $1911 >>> 26;
+  $1914 = $1912 | $1913;
+  $1915 = (($1914) + ($1862))|0;
+  $1916 = $1859 << 10;
+  $1917 = $1859 >>> 22;
+  $1918 = $1916 | $1917;
+  $1919 = $1901 & $1873;
+  $1920 = $1901 ^ -1;
+  $1921 = $1904 & $1920;
+  $1922 = $1919 | $1921;
+  $1923 = (($150) + 2053994217)|0;
+  $1924 = (($1923) + ($1848))|0;
+  $1925 = (($1924) + ($1922))|0;
+  $1926 = $1925 << 5;
+  $1927 = $1925 >>> 27;
+  $1928 = $1926 | $1927;
+  $1929 = (($1928) + ($1876))|0;
+  $1930 = $1873 << 10;
+  $1931 = $1873 >>> 22;
+  $1932 = $1930 | $1931;
+  $1933 = $1915 & $1918;
+  $1934 = $1918 ^ -1;
+  $1935 = $1887 & $1934;
+  $1936 = $1933 | $1935;
+  $1937 = (($132) + -1894007588)|0;
+  $1938 = (($1937) + ($1862))|0;
+  $1939 = (($1938) + ($1936))|0;
+  $1940 = $1939 << 5;
+  $1941 = $1939 >>> 27;
+  $1942 = $1940 | $1941;
+  $1943 = (($1942) + ($1890))|0;
+  $1944 = $1887 << 10;
+  $1945 = $1887 >>> 22;
+  $1946 = $1944 | $1945;
+  $1947 = $1929 & $1901;
+  $1948 = $1929 ^ -1;
+  $1949 = $1932 & $1948;
+  $1950 = $1947 | $1949;
+  $1951 = (($204) + 2053994217)|0;
+  $1952 = (($1951) + ($1876))|0;
+  $1953 = (($1952) + ($1950))|0;
+  $1954 = $1953 << 15;
+  $1955 = $1953 >>> 17;
+  $1956 = $1954 | $1955;
+  $1957 = (($1956) + ($1904))|0;
+  $1958 = $1901 << 10;
+  $1959 = $1901 >>> 22;
+  $1960 = $1958 | $1959;
+  $1961 = $1943 & $1946;
+  $1962 = $1946 ^ -1;
+  $1963 = $1915 & $1962;
+  $1964 = $1961 | $1963;
+  $1965 = (($60) + -1894007588)|0;
+  $1966 = (($1965) + ($1890))|0;
+  $1967 = (($1966) + ($1964))|0;
+  $1968 = $1967 << 12;
+  $1969 = $1967 >>> 20;
+  $1970 = $1968 | $1969;
+  $1971 = (($1970) + ($1918))|0;
+  $1972 = $1915 << 10;
+  $1973 = $1915 >>> 22;
+  $1974 = $1972 | $1973;
+  $1975 = $1957 & $1929;
+  $1976 = $1957 ^ -1;
+  $1977 = $1960 & $1976;
+  $1978 = $1975 | $1977;
+  $1979 = (($276) + 2053994217)|0;
+  $1980 = (($1979) + ($1904))|0;
+  $1981 = (($1980) + ($1978))|0;
+  $1982 = $1981 << 8;
+  $1983 = $1981 >>> 24;
+  $1984 = $1982 | $1983;
+  $1985 = (($1984) + ($1932))|0;
+  $1986 = $1929 << 10;
+  $1987 = $1929 >>> 22;
+  $1988 = $1986 | $1987;
+  $1989 = $1974 ^ -1;
+  $1990 = $1943 | $1989;
+  $1991 = $1971 ^ $1990;
+  $1992 = (($96) + -1454113458)|0;
+  $1993 = (($1992) + ($1918))|0;
+  $1994 = (($1993) + ($1991))|0;
+  $1995 = $1994 << 9;
+  $1996 = $1994 >>> 23;
+  $1997 = $1995 | $1996;
+  $1998 = (($1997) + ($1946))|0;
+  $1999 = $1943 << 10;
+  $2000 = $1943 >>> 22;
+  $2001 = $1999 | $2000;
+  $2002 = $1957 ^ $1988;
+  $2003 = $2002 ^ $1985;
+  $2004 = (($1932) + ($240))|0;
+  $2005 = (($2004) + ($2003))|0;
+  $2006 = $2005 << 8;
+  $2007 = $2005 >>> 24;
+  $2008 = $2006 | $2007;
+  $2009 = (($2008) + ($1960))|0;
+  $2010 = $1957 << 10;
+  $2011 = $1957 >>> 22;
+  $2012 = $2010 | $2011;
+  $2013 = $2001 ^ -1;
+  $2014 = $1971 | $2013;
+  $2015 = $1998 ^ $2014;
+  $2016 = (($24) + -1454113458)|0;
+  $2017 = (($2016) + ($1946))|0;
+  $2018 = (($2017) + ($2015))|0;
+  $2019 = $2018 << 15;
+  $2020 = $2018 >>> 17;
+  $2021 = $2019 | $2020;
+  $2022 = (($2021) + ($1974))|0;
+  $2023 = $1971 << 10;
+  $2024 = $1971 >>> 22;
+  $2025 = $2023 | $2024;
+  $2026 = $1985 ^ $2012;
+  $2027 = $2026 ^ $2009;
+  $2028 = (($1960) + ($294))|0;
+  $2029 = (($2028) + ($2027))|0;
+  $2030 = $2029 << 5;
+  $2031 = $2029 >>> 27;
+  $2032 = $2030 | $2031;
+  $2033 = (($2032) + ($1988))|0;
+  $2034 = $1985 << 10;
+  $2035 = $1985 >>> 22;
+  $2036 = $2034 | $2035;
+  $2037 = $2025 ^ -1;
+  $2038 = $1998 | $2037;
+  $2039 = $2022 ^ $2038;
+  $2040 = (($114) + -1454113458)|0;
+  $2041 = (($2040) + ($1974))|0;
+  $2042 = (($2041) + ($2039))|0;
+  $2043 = $2042 << 5;
+  $2044 = $2042 >>> 27;
+  $2045 = $2043 | $2044;
+  $2046 = (($2045) + ($2001))|0;
+  $2047 = $1998 << 10;
+  $2048 = $1998 >>> 22;
+  $2049 = $2047 | $2048;
+  $2050 = $2009 ^ $2036;
+  $2051 = $2050 ^ $2033;
+  $2052 = (($1988) + ($204))|0;
+  $2053 = (($2052) + ($2051))|0;
+  $2054 = $2053 << 12;
+  $2055 = $2053 >>> 20;
+  $2056 = $2054 | $2055;
+  $2057 = (($2056) + ($2012))|0;
+  $2058 = $2009 << 10;
+  $2059 = $2009 >>> 22;
+  $2060 = $2058 | $2059;
+  $2061 = $2049 ^ -1;
+  $2062 = $2022 | $2061;
+  $2063 = $2046 ^ $2062;
+  $2064 = (($186) + -1454113458)|0;
+  $2065 = (($2064) + ($2001))|0;
+  $2066 = (($2065) + ($2063))|0;
+  $2067 = $2066 << 11;
+  $2068 = $2066 >>> 21;
+  $2069 = $2067 | $2068;
+  $2070 = (($2069) + ($2025))|0;
+  $2071 = $2022 << 10;
+  $2072 = $2022 >>> 22;
+  $2073 = $2071 | $2072;
+  $2074 = $2033 ^ $2060;
+  $2075 = $2074 ^ $2057;
+  $2076 = (($2012) + ($96))|0;
+  $2077 = (($2076) + ($2075))|0;
+  $2078 = $2077 << 9;
+  $2079 = $2077 >>> 23;
+  $2080 = $2078 | $2079;
+  $2081 = (($2080) + ($2036))|0;
+  $2082 = $2033 << 10;
+  $2083 = $2033 >>> 22;
+  $2084 = $2082 | $2083;
+  $2085 = $2073 ^ -1;
+  $2086 = $2046 | $2085;
+  $2087 = $2070 ^ $2086;
+  $2088 = (($150) + -1454113458)|0;
+  $2089 = (($2088) + ($2025))|0;
+  $2090 = (($2089) + ($2087))|0;
+  $2091 = $2090 << 6;
+  $2092 = $2090 >>> 26;
+  $2093 = $2091 | $2092;
+  $2094 = (($2093) + ($2049))|0;
+  $2095 = $2046 << 10;
+  $2096 = $2046 >>> 22;
+  $2097 = $2095 | $2096;
+  $2098 = $2057 ^ $2084;
+  $2099 = $2098 ^ $2081;
+  $2100 = (($2036) + ($42))|0;
+  $2101 = (($2100) + ($2099))|0;
+  $2102 = $2101 << 12;
+  $2103 = $2101 >>> 20;
+  $2104 = $2102 | $2103;
+  $2105 = (($2104) + ($2060))|0;
+  $2106 = $2057 << 10;
+  $2107 = $2057 >>> 22;
+  $2108 = $2106 | $2107;
+  $2109 = $2097 ^ -1;
+  $2110 = $2070 | $2109;
+  $2111 = $2094 ^ $2110;
+  $2112 = (($240) + -1454113458)|0;
+  $2113 = (($2112) + ($2049))|0;
+  $2114 = (($2113) + ($2111))|0;
+  $2115 = $2114 << 8;
+  $2116 = $2114 >>> 24;
+  $2117 = $2115 | $2116;
+  $2118 = (($2117) + ($2073))|0;
+  $2119 = $2070 << 10;
+  $2120 = $2070 >>> 22;
+  $2121 = $2119 | $2120;
+  $2122 = $2081 ^ $2108;
+  $2123 = $2122 ^ $2105;
+  $2124 = (($2060) + ($114))|0;
+  $2125 = (($2124) + ($2123))|0;
+  $2126 = $2125 << 5;
+  $2127 = $2125 >>> 27;
+  $2128 = $2126 | $2127;
+  $2129 = (($2128) + ($2084))|0;
+  $2130 = $2081 << 10;
+  $2131 = $2081 >>> 22;
+  $2132 = $2130 | $2131;
+  $2133 = $2121 ^ -1;
+  $2134 = $2094 | $2133;
+  $2135 = $2118 ^ $2134;
+  $2136 = (($60) + -1454113458)|0;
+  $2137 = (($2136) + ($2073))|0;
+  $2138 = (($2137) + ($2135))|0;
+  $2139 = $2138 << 13;
+  $2140 = $2138 >>> 19;
+  $2141 = $2139 | $2140;
+  $2142 = (($2141) + ($2097))|0;
+  $2143 = $2094 << 10;
+  $2144 = $2094 >>> 22;
+  $2145 = $2143 | $2144;
+  $2146 = $2105 ^ $2132;
+  $2147 = $2146 ^ $2129;
+  $2148 = (($2084) + ($168))|0;
+  $2149 = (($2148) + ($2147))|0;
+  $2150 = $2149 << 14;
+  $2151 = $2149 >>> 18;
+  $2152 = $2150 | $2151;
+  $2153 = (($2152) + ($2108))|0;
+  $2154 = $2105 << 10;
+  $2155 = $2105 >>> 22;
+  $2156 = $2154 | $2155;
+  $2157 = $2145 ^ -1;
+  $2158 = $2118 | $2157;
+  $2159 = $2142 ^ $2158;
+  $2160 = (($204) + -1454113458)|0;
+  $2161 = (($2160) + ($2097))|0;
+  $2162 = (($2161) + ($2159))|0;
+  $2163 = $2162 << 12;
+  $2164 = $2162 >>> 20;
+  $2165 = $2163 | $2164;
+  $2166 = (($2165) + ($2121))|0;
+  $2167 = $2118 << 10;
+  $2168 = $2118 >>> 22;
+  $2169 = $2167 | $2168;
+  $2170 = $2129 ^ $2156;
+  $2171 = $2170 ^ $2153;
+  $2172 = (($2108) + ($150))|0;
+  $2173 = (($2172) + ($2171))|0;
+  $2174 = $2173 << 6;
+  $2175 = $2173 >>> 26;
+  $2176 = $2174 | $2175;
+  $2177 = (($2176) + ($2132))|0;
+  $2178 = $2129 << 10;
+  $2179 = $2129 >>> 22;
+  $2180 = $2178 | $2179;
+  $2181 = $2169 ^ -1;
+  $2182 = $2142 | $2181;
+  $2183 = $2166 ^ $2182;
+  $2184 = (($276) + -1454113458)|0;
+  $2185 = (($2184) + ($2121))|0;
+  $2186 = (($2185) + ($2183))|0;
+  $2187 = $2186 << 5;
+  $2188 = $2186 >>> 27;
+  $2189 = $2187 | $2188;
+  $2190 = (($2189) + ($2145))|0;
+  $2191 = $2142 << 10;
+  $2192 = $2142 >>> 22;
+  $2193 = $2191 | $2192;
+  $2194 = $2153 ^ $2180;
+  $2195 = $2194 ^ $2177;
+  $2196 = (($2132) + ($132))|0;
+  $2197 = (($2196) + ($2195))|0;
+  $2198 = $2197 << 8;
+  $2199 = $2197 >>> 24;
+  $2200 = $2198 | $2199;
+  $2201 = (($2200) + ($2156))|0;
+  $2202 = $2153 << 10;
+  $2203 = $2153 >>> 22;
+  $2204 = $2202 | $2203;
+  $2205 = $2193 ^ -1;
+  $2206 = $2166 | $2205;
+  $2207 = $2190 ^ $2206;
+  $2208 = (($42) + -1454113458)|0;
+  $2209 = (($2208) + ($2145))|0;
+  $2210 = (($2209) + ($2207))|0;
+  $2211 = $2210 << 12;
+  $2212 = $2210 >>> 20;
+  $2213 = $2211 | $2212;
+  $2214 = (($2213) + ($2169))|0;
+  $2215 = $2166 << 10;
+  $2216 = $2166 >>> 22;
+  $2217 = $2215 | $2216;
+  $2218 = $2177 ^ $2204;
+  $2219 = $2218 ^ $2201;
+  $2220 = (($2156) + ($60))|0;
+  $2221 = (($2220) + ($2219))|0;
+  $2222 = $2221 << 13;
+  $2223 = $2221 >>> 19;
+  $2224 = $2222 | $2223;
+  $2225 = (($2224) + ($2180))|0;
+  $2226 = $2177 << 10;
+  $2227 = $2177 >>> 22;
+  $2228 = $2226 | $2227;
+  $2229 = $2217 ^ -1;
+  $2230 = $2190 | $2229;
+  $2231 = $2214 ^ $2230;
+  $2232 = (($78) + -1454113458)|0;
+  $2233 = (($2232) + ($2169))|0;
+  $2234 = (($2233) + ($2231))|0;
+  $2235 = $2234 << 13;
+  $2236 = $2234 >>> 19;
+  $2237 = $2235 | $2236;
+  $2238 = (($2237) + ($2193))|0;
+  $2239 = $2190 << 10;
+  $2240 = $2190 >>> 22;
+  $2241 = $2239 | $2240;
+  $2242 = $2201 ^ $2228;
+  $2243 = $2242 ^ $2225;
+  $2244 = (($2180) + ($258))|0;
+  $2245 = (($2244) + ($2243))|0;
+  $2246 = $2245 << 6;
+  $2247 = $2245 >>> 26;
+  $2248 = $2246 | $2247;
+  $2249 = (($2248) + ($2204))|0;
+  $2250 = $2201 << 10;
+  $2251 = $2201 >>> 22;
+  $2252 = $2250 | $2251;
+  $2253 = $2241 ^ -1;
+  $2254 = $2214 | $2253;
+  $2255 = $2238 ^ $2254;
+  $2256 = (($168) + -1454113458)|0;
+  $2257 = (($2256) + ($2193))|0;
+  $2258 = (($2257) + ($2255))|0;
+  $2259 = $2258 << 14;
+  $2260 = $2258 >>> 18;
+  $2261 = $2259 | $2260;
+  $2262 = (($2261) + ($2217))|0;
+  $2263 = $2214 << 10;
+  $2264 = $2214 >>> 22;
+  $2265 = $2263 | $2264;
+  $2266 = $2225 ^ $2252;
+  $2267 = $2266 ^ $2249;
+  $2268 = (($2204) + ($276))|0;
+  $2269 = (($2268) + ($2267))|0;
+  $2270 = $2269 << 5;
+  $2271 = $2269 >>> 27;
+  $2272 = $2270 | $2271;
+  $2273 = (($2272) + ($2228))|0;
+  $2274 = $2225 << 10;
+  $2275 = $2225 >>> 22;
+  $2276 = $2274 | $2275;
+  $2277 = $2265 ^ -1;
+  $2278 = $2238 | $2277;
+  $2279 = $2262 ^ $2278;
+  $2280 = (($222) + -1454113458)|0;
+  $2281 = (($2280) + ($2217))|0;
+  $2282 = (($2281) + ($2279))|0;
+  $2283 = $2282 << 11;
+  $2284 = $2282 >>> 21;
+  $2285 = $2283 | $2284;
+  $2286 = (($2285) + ($2241))|0;
+  $2287 = $2238 << 10;
+  $2288 = $2238 >>> 22;
+  $2289 = $2287 | $2288;
+  $2290 = $2249 ^ $2276;
+  $2291 = $2290 ^ $2273;
+  $2292 = (($2228) + ($24))|0;
+  $2293 = (($2292) + ($2291))|0;
+  $2294 = $2293 << 15;
+  $2295 = $2293 >>> 17;
+  $2296 = $2294 | $2295;
+  $2297 = (($2296) + ($2252))|0;
+  $2298 = $2249 << 10;
+  $2299 = $2249 >>> 22;
+  $2300 = $2298 | $2299;
+  $2301 = $2289 ^ -1;
+  $2302 = $2262 | $2301;
+  $2303 = $2286 ^ $2302;
+  $2304 = (($132) + -1454113458)|0;
+  $2305 = (($2304) + ($2241))|0;
+  $2306 = (($2305) + ($2303))|0;
+  $2307 = $2306 << 8;
+  $2308 = $2306 >>> 24;
+  $2309 = $2307 | $2308;
+  $2310 = (($2309) + ($2265))|0;
+  $2311 = $2262 << 10;
+  $2312 = $2262 >>> 22;
+  $2313 = $2311 | $2312;
+  $2314 = $2273 ^ $2300;
+  $2315 = $2314 ^ $2297;
+  $2316 = (($2252) + ($78))|0;
+  $2317 = (($2316) + ($2315))|0;
+  $2318 = $2317 << 13;
+  $2319 = $2317 >>> 19;
+  $2320 = $2318 | $2319;
+  $2321 = (($2320) + ($2276))|0;
+  $2322 = $2273 << 10;
+  $2323 = $2273 >>> 22;
+  $2324 = $2322 | $2323;
+  $2325 = $2313 ^ -1;
+  $2326 = $2286 | $2325;
+  $2327 = $2310 ^ $2326;
+  $2328 = (($294) + -1454113458)|0;
+  $2329 = (($2328) + ($2265))|0;
+  $2330 = (($2329) + ($2327))|0;
+  $2331 = $2330 << 5;
+  $2332 = $2330 >>> 27;
+  $2333 = $2331 | $2332;
+  $2334 = (($2333) + ($2289))|0;
+  $2335 = $2286 << 10;
+  $2336 = $2286 >>> 22;
+  $2337 = $2335 | $2336;
+  $2338 = $2297 ^ $2324;
+  $2339 = $2338 ^ $2321;
+  $2340 = (($2276) + ($186))|0;
+  $2341 = (($2340) + ($2339))|0;
+  $2342 = $2341 << 11;
+  $2343 = $2341 >>> 21;
+  $2344 = $2342 | $2343;
+  $2345 = (($2344) + ($2300))|0;
+  $2346 = $2297 << 10;
+  $2347 = $2297 >>> 22;
+  $2348 = $2346 | $2347;
+  $2349 = $2337 ^ -1;
+  $2350 = $2310 | $2349;
+  $2351 = $2334 ^ $2350;
+  $2352 = (($258) + -1454113458)|0;
+  $2353 = (($2352) + ($2289))|0;
+  $2354 = (($2353) + ($2351))|0;
+  $2355 = $2354 << 6;
+  $2356 = $2354 >>> 26;
+  $2357 = $2355 | $2356;
+  $2358 = $2310 << 10;
+  $2359 = $2310 >>> 22;
+  $2360 = $2358 | $2359;
+  $2361 = $2321 ^ $2348;
+  $2362 = $2361 ^ $2345;
+  $2363 = (($2300) + ($222))|0;
+  $2364 = (($2363) + ($2362))|0;
+  $2365 = $2364 << 11;
+  $2366 = $2364 >>> 21;
+  $2367 = $2365 | $2366;
+  $2368 = $2321 << 10;
+  $2369 = $2321 >>> 22;
+  $2370 = $2368 | $2369;
+  $2371 = (($2370) + ($296))|0;
+  $2372 = (($2371) + ($2334))|0;
+  $2373 = (($2348) + ($297))|0;
+  $2374 = (($2373) + ($2360))|0;
+  HEAP32[$4>>2] = $2374;
+  $2375 = (($2324) + ($298))|0;
+  $2376 = (($2375) + ($2337))|0;
+  HEAP32[$5>>2] = $2376;
+  $2377 = (($2313) + ($299))|0;
+  $2378 = (($2377) + ($2324))|0;
+  $2379 = (($2378) + ($2367))|0;
+  HEAP32[$6>>2] = $2379;
+  $2380 = (($2313) + ($295))|0;
+  $2381 = (($2380) + ($2345))|0;
+  $2382 = (($2381) + ($2357))|0;
+  HEAP32[$7>>2] = $2382;
+  HEAP32[$3>>2] = $2372;
+  $2383 = ((($$0)) + 64|0);
+  $2384 = (($$05) + -1)|0;
+  $2385 = ($2384|0)==(0);
+  if ($2385) {
+   break;
+  } else {
+   $$0 = $2383;$$05 = $2384;
+  }
+ }
+ return 124;
+}
+function __gcry_rmd160_init($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 160|0);
+ HEAP32[$1>>2] = 1732584193;
+ $2 = ((($0)) + 164|0);
+ HEAP32[$2>>2] = -271733879;
+ $3 = ((($0)) + 168|0);
+ HEAP32[$3>>2] = -1732584194;
+ $4 = ((($0)) + 172|0);
+ HEAP32[$4>>2] = 271733878;
+ $5 = ((($0)) + 176|0);
+ HEAP32[$5>>2] = -1009589776;
+ $6 = ((($0)) + 128|0);
+ $7 = ((($0)) + 148|0);
+ 
;HEAP32[$6>>2]=0|0;HEAP32[$6+4>>2]=0|0;HEAP32[$6+8>>2]=0|0;HEAP32[$6+12>>2]=0|0;HEAP32[$6+16>>2]=0|0;
+ HEAP32[$7>>2] = 64;
+ $8 = ((($0)) + 152|0);
+ HEAP32[$8>>2] = 76;
+ return;
+}
+function __gcry_rmd160_mixblock($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 
= 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ (_transform($0,$1,1)|0);
+ $2 = ((($0)) + 160|0);
+ $3 = HEAP32[$2>>2]|0;
+ HEAP32[$1>>2] = $3;
+ $4 = ((($0)) + 164|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = ((($1)) + 4|0);
+ HEAP32[$6>>2] = $5;
+ $7 = ((($0)) + 168|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ((($1)) + 8|0);
+ HEAP32[$9>>2] = $8;
+ $10 = ((($0)) + 172|0);
+ $11 = HEAP32[$10>>2]|0;
+ $12 = ((($1)) + 12|0);
+ HEAP32[$12>>2] = $11;
+ $13 = ((($0)) + 176|0);
+ $14 = HEAP32[$13>>2]|0;
+ $15 = ((($1)) + 16|0);
+ HEAP32[$15>>2] = $14;
+ return;
+}
+function __gcry_rmd160_hash_buffer($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
dest = 0, label = 0, sp = 0, src = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(192|0);
+ $3 = sp;
+ $4 = ((($3)) + 160|0);
+ HEAP32[$4>>2] = 1732584193;
+ $5 = ((($3)) + 164|0);
+ HEAP32[$5>>2] = -271733879;
+ $6 = ((($3)) + 168|0);
+ HEAP32[$6>>2] = -1732584194;
+ $7 = ((($3)) + 172|0);
+ HEAP32[$7>>2] = 271733878;
+ $8 = ((($3)) + 176|0);
+ HEAP32[$8>>2] = -1009589776;
+ $9 = ((($3)) + 128|0);
+ $10 = ((($3)) + 148|0);
+ 
;HEAP32[$9>>2]=0|0;HEAP32[$9+4>>2]=0|0;HEAP32[$9+8>>2]=0|0;HEAP32[$9+12>>2]=0|0;HEAP32[$9+16>>2]=0|0;
+ HEAP32[$10>>2] = 64;
+ $11 = ((($3)) + 152|0);
+ HEAP32[$11>>2] = 76;
+ __gcry_md_block_write($3,$1,$2);
+ _rmd160_final($3);
+ dest=$0; src=$3; stop=dest+20|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; 
dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
+ STACKTOP = sp;return;
+}
+function __gcry_rsa_pkcs1_encode_for_enc($0,$1,$2,$3,$4,$5) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ var $$091103$us = 0, $$091103$us$be = 0, $$093102$us = 0, $$093102$us$be = 0, 
$$096122 = 0, $$1 = 0, $$1100 = 0, $$1100$in = 0, $$194104$us = 0, $$2105$us = 
0, $$3$us = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0;
+ var $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;
+ var $39 = 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, $53 = 0, $54 = 0, $55 = 
0, $56 = 0, $57 = 0, $58 = 0;
+ var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $7 = 0, $8 = 0, $9 = 0, 
$exitcond = 0, $or$cond = 0, $spec$select$us = 0, $spec$select101$us = 0, label 
= 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $6 = sp;
+ $7 = (($1) + 7)|0;
+ $8 = $7 >>> 3;
+ HEAP32[$6>>2] = $8;
+ $9 = (($3) + 7)|0;
+ $10 = ($9>>>0)<=($8>>>0);
+ $11 = ($8|0)!=(0);
+ $or$cond = $11 & $10;
+ if (!($or$cond)) {
+  $$1 = 66;
+  STACKTOP = sp;return ($$1|0);
+ }
+ $12 = (__gcry_malloc_secure($8)|0);
+ $13 = ($12|0)==(0|0);
+ if ($13) {
+  $14 = (_gpg_err_code_from_syserror()|0);
+  $$1 = $14;
+  STACKTOP = sp;return ($$1|0);
+ }
+ HEAP8[$12>>0] = 0;
+ $15 = ((($12)) + 1|0);
+ HEAP8[$15>>0] = 2;
+ $16 = (-3 - ($3))|0;
+ $17 = (($16) + ($8))|0;
+ $18 = ($17|0)>(0);
+ if (!($18)) {
+  __gcry_assert_failed(60590,60596,95,60609);
+  // unreachable;
+ }
+ $19 = ($4|0)==(0|0);
+ if ($19) {
+  $28 = (__gcry_random_bytes_secure($17,1)|0);
+  $$091103$us = 0;$$093102$us = 0;
+  while(1) {
+   $46 = (($28) + ($$093102$us)|0);
+   $47 = HEAP8[$46>>0]|0;
+   $48 = ($47<<24>>24)==(0);
+   $49 = $48&1;
+   $spec$select$us = (($$091103$us) + ($49))|0;
+   $50 = (($$093102$us) + 1)|0;
+   $exitcond = ($50|0)==($17|0);
+   if ($exitcond) {
+    $51 = ($spec$select$us|0)==(0);
+    if ($51) {
+     break;
+    }
+    $29 = $spec$select$us >>> 7;
+    $30 = (($spec$select$us) + 3)|0;
+    $31 = (($30) + ($29))|0;
+    $32 = (__gcry_random_bytes_secure($31,1)|0);
+    $33 = ($31|0)==(0);
+    if (!($33)) {
+     $$194104$us = 0;$$2105$us = $31;
+     while(1) {
+      $34 = (($28) + ($$194104$us)|0);
+      $35 = HEAP8[$34>>0]|0;
+      $36 = ($35<<24>>24)==(0);
+      $37 = (($$2105$us) + -1)|0;
+      if ($36) {
+       $38 = (($32) + ($37)|0);
+       $39 = HEAP8[$38>>0]|0;
+       HEAP8[$34>>0] = $39;
+       $$3$us = $37;$41 = $39;
+      } else {
+       $$3$us = $$2105$us;$41 = $35;
+      }
+      $40 = ($41<<24>>24)!=(0);
+      $42 = $40&1;
+      $spec$select101$us = (($$194104$us) + ($42))|0;
+      $43 = ($spec$select101$us|0)<($17|0);
+      $44 = ($$3$us|0)!=(0);
+      $45 = $43 & $44;
+      if ($45) {
+       $$194104$us = $spec$select101$us;$$2105$us = $$3$us;
+      } else {
+       break;
+      }
+     }
+    }
+    __gcry_free($32);
+    $$091103$us$be = 0;$$093102$us$be = 0;
+   } else {
+    $$091103$us$be = $spec$select$us;$$093102$us$be = $50;
+   }
+   $$091103$us = $$091103$us$be;$$093102$us = $$093102$us$be;
+  }
+  $52 = ((($12)) + 2|0);
+  _memcpy(($52|0),($28|0),($17|0))|0;
+  __gcry_free($28);
+  $$1100$in = $17;
+ } else {
+  $20 = ($17|0)==($5|0);
+  if (!($20)) {
+   __gcry_free($12);
+   $$1 = 45;
+   STACKTOP = sp;return ($$1|0);
+  }
+  $21 = ($5|0)==(0);
+  L33: do {
+   if (!($21)) {
+    $$096122 = 0;
+    while(1) {
+     $24 = (($4) + ($$096122)|0);
+     $25 = HEAP8[$24>>0]|0;
+     $26 = ($25<<24>>24)==(0);
+     $23 = (($$096122) + 1)|0;
+     if ($26) {
+      break;
+     }
+     $22 = ($23>>>0)<($5>>>0);
+     if ($22) {
+      $$096122 = $23;
+     } else {
+      break L33;
+     }
+    }
+    __gcry_free($12);
+    $$1 = 45;
+    STACKTOP = sp;return ($$1|0);
+   }
+  } while(0);
+  $27 = ((($12)) + 2|0);
+  _memcpy(($27|0),($4|0),($5|0))|0;
+  $$1100$in = $5;
+ }
+ $$1100 = (($$1100$in) + 2)|0;
+ $53 = (($$1100$in) + 3)|0;
+ $54 = (($12) + ($$1100)|0);
+ HEAP8[$54>>0] = 0;
+ $55 = (($12) + ($53)|0);
+ _memcpy(($55|0),($2|0),($3|0))|0;
+ $56 = (($53) + ($3))|0;
+ $57 = ($56|0)==($8|0);
+ if (!($57)) {
+  __gcry_assert_failed(60640,60596,153,60609);
+  // unreachable;
+ }
+ $58 = (__gcry_mpi_scan($0,5,$12,$8,$6)|0);
+ $59 = ($58|0)==(0);
+ if ($59) {
+  $60 = (__gcry_get_debug_flag(1)|0);
+  $61 = ($60|0)==(0);
+  if (!($61)) {
+   $62 = HEAP32[$0>>2]|0;
+   __gcry_log_printmpi(60652,$62);
+  }
+ }
+ __gcry_free($12);
+ $$1 = $58;
+ STACKTOP = sp;return ($$1|0);
+}
+function __gcry_rsa_pkcs1_decode_for_enc($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 
0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 
= 0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$store$select = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $4 = sp;
+ $5 = (($2) + 7)|0;
+ $6 = $5 >>> 3;
+ HEAP32[$0>>2] = 0;
+ $7 = (__gcry_malloc_secure($6)|0);
+ $8 = ($7|0)==(0|0);
+ if ($8) {
+  $9 = (_gpg_err_code_from_syserror()|0);
+  $$0 = $9;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $10 = (__gcry_mpi_print(5,$7,$6,$4,$3)|0);
+ $11 = ($10|0)==(0);
+ if (!($11)) {
+  __gcry_free($7);
+  $12 = $10 & 65535;
+  $$0 = $12;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $13 = HEAP32[$4>>2]|0;
+ $14 = ($13>>>0)<(4);
+ if ($14) {
+  __gcry_free($7);
+  $$0 = 155;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $15 = HEAP8[$7>>0]|0;
+ $16 = ($15<<24>>24)==(0);
+ $spec$store$select = $16&1;
+ $17 = $16 ? 2 : 1;
+ HEAP32[$4>>2] = $17;
+ $18 = (($7) + ($spec$store$select)|0);
+ $19 = HEAP8[$18>>0]|0;
+ $20 = ($19<<24>>24)==(2);
+ if (!($20)) {
+  __gcry_free($7);
+  $$0 = 155;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $21 = ($17>>>0)<($13>>>0);
+ L17: do {
+  if ($21) {
+   $23 = $17;
+   while(1) {
+    $22 = (($7) + ($23)|0);
+    $24 = HEAP8[$22>>0]|0;
+    $25 = ($24<<24>>24)==(0);
+    if ($25) {
+     $$lcssa = $23;
+     break L17;
+    }
+    $26 = (($23) + 1)|0;
+    HEAP32[$4>>2] = $26;
+    $27 = ($26>>>0)<($13>>>0);
+    if ($27) {
+     $23 = $26;
+    } else {
+     $$lcssa = $26;
+     break;
+    }
+   }
+  } else {
+   $$lcssa = $17;
+  }
+ } while(0);
+ $28 = (($$lcssa) + 1)|0;
+ $29 = ($13>>>0)>($28>>>0);
+ if (!($29)) {
+  __gcry_free($7);
+  $$0 = 155;
+  STACKTOP = sp;return ($$0|0);
+ }
+ HEAP32[$4>>2] = $28;
+ $30 = (($7) + ($28)|0);
+ $31 = (($13) - ($28))|0;
+ _memmove(($7|0),($30|0),($31|0))|0;
+ HEAP32[$0>>2] = $7;
+ HEAP32[$1>>2] = $31;
+ $32 = (__gcry_get_debug_flag(1)|0);
+ $33 = ($32|0)==(0);
+ if ($33) {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $34 = HEAP32[$0>>2]|0;
+ $35 = HEAP32[$1>>2]|0;
+ __gcry_log_printhex(60685,$34,$35);
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_rsa_pkcs1_encode_for_sig($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, 
$37 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(112|0);
+ $5 = sp;
+ $6 = sp + 104|0;
+ $7 = sp + 100|0;
+ $8 = (($1) + 7)|0;
+ $9 = $8 >>> 3;
+ HEAP32[$6>>2] = $9;
+ HEAP32[$7>>2] = 100;
+ $10 = (__gcry_md_get_algo_dlen($4)|0);
+ $11 = (__gcry_md_algo_info($4,10,$5,$7)|0);
+ $12 = ($11|0)==(0);
+ if (!($12)) {
+  $$0 = 69;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $13 = ($10|0)==($3|0);
+ if (!($13)) {
+  $$0 = 70;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $14 = ($3|0)==(0);
+ if ($14) {
+  $$0 = 66;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $15 = HEAP32[$7>>2]|0;
+ $16 = (($3) + 4)|0;
+ $17 = (($16) + ($15))|0;
+ $18 = ($17>>>0)>($9>>>0);
+ if ($18) {
+  $$0 = 66;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $19 = (__gcry_malloc($9)|0);
+ $20 = ($19|0)==(0|0);
+ if ($20) {
+  $21 = (_gpg_err_code_from_syserror()|0);
+  $$0 = $21;
+  STACKTOP = sp;return ($$0|0);
+ }
+ HEAP8[$19>>0] = 0;
+ $22 = ((($19)) + 1|0);
+ HEAP8[$22>>0] = 1;
+ $23 = (($9) - ($3))|0;
+ $24 = HEAP32[$7>>2]|0;
+ $25 = (($23) - ($24))|0;
+ $26 = (($25) + -3)|0;
+ $27 = ($26|0)>(1);
+ if (!($27)) {
+  __gcry_assert_failed(60739,60596,303,60745);
+  // unreachable;
+ }
+ $28 = ((($19)) + 2|0);
+ _memset(($28|0),-1,($26|0))|0;
+ $29 = (($25) + -1)|0;
+ $30 = (($19) + ($29)|0);
+ HEAP8[$30>>0] = 0;
+ $31 = (($19) + ($25)|0);
+ _memcpy(($31|0),($5|0),($24|0))|0;
+ $32 = (($19) + ($23)|0);
+ _memcpy(($32|0),($2|0),($3|0))|0;
+ $33 = (__gcry_mpi_scan($0,5,$19,$9,$6)|0);
+ $34 = ($33|0)==(0);
+ if ($34) {
+  $35 = (__gcry_get_debug_flag(1)|0);
+  $36 = ($35|0)==(0);
+  if (!($36)) {
+   $37 = HEAP32[$0>>2]|0;
+   __gcry_log_printmpi(60776,$37);
+  }
+ }
+ __gcry_free($19);
+ $$0 = $33;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_rsa_pkcs1_encode_raw_for_sig($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$040 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $4 = 0;
+ var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $4 = sp;
+ $5 = (($1) + 7)|0;
+ $6 = $5 >>> 3;
+ HEAP32[$4>>2] = $6;
+ $7 = ($3|0)==(0);
+ $8 = (($3) + 4)|0;
+ $9 = ($8>>>0)>($6>>>0);
+ $or$cond = $7 | $9;
+ if ($or$cond) {
+  $$0 = 66;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $10 = (__gcry_malloc($6)|0);
+ $11 = ($10|0)==(0|0);
+ if ($11) {
+  $12 = (_gpg_err_code_from_syserror()|0);
+  $$0 = $12;
+  STACKTOP = sp;return ($$0|0);
+ }
+ HEAP8[$10>>0] = 0;
+ $13 = ((($10)) + 1|0);
+ HEAP8[$13>>0] = 1;
+ $14 = (($6) - ($3))|0;
+ $15 = (($14) + -3)|0;
+ $16 = ($15|0)>(1);
+ if (!($16)) {
+  __gcry_assert_failed(60739,60596,368,60809);
+  // unreachable;
+ }
+ $17 = ((($10)) + 2|0);
+ _memset(($17|0),-1,($15|0))|0;
+ $18 = (($14) + -1)|0;
+ $19 = (($10) + ($18)|0);
+ HEAP8[$19>>0] = 0;
+ $20 = (($10) + ($14)|0);
+ _memcpy(($20|0),($2|0),($3|0))|0;
+ $21 = (__gcry_mpi_scan($0,5,$10,$6,$4)|0);
+ $22 = ($21|0)==(0);
+ if ($22) {
+  $24 = (__gcry_get_debug_flag(1)|0);
+  $25 = ($24|0)==(0);
+  if ($25) {
+   $$040 = 0;
+  } else {
+   $26 = HEAP32[$0>>2]|0;
+   __gcry_log_printmpi(60776,$26);
+   $$040 = 0;
+  }
+ } else {
+  $23 = $21 & 65535;
+  $$040 = $23;
+ }
+ __gcry_free($10);
+ $$0 = $$040;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_rsa_oaep_encode($0,$1,$2,$3,$4,$5,$6,$7,$8) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ $7 = $7|0;
+ $8 = $8|0;
+ var $$0110 = 0, $$0110120 = 0, $$0110122 = 0, $$0113121 = 0, $$1111119 = 0, 
$$1114118 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0;
+ var $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, $40 = 0, $41 = 0, $42 = 0;
+ var $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, $9 = 0, $exitcond = 0, $exitcond126 = 0;
+ var $or$cond = 0, $or$cond4 = 0, $spec$select = 0, $spec$select115 = 0, label 
= 0, sp = 0;
+ sp = STACKTOP;
+ $9 = (($1) + 7)|0;
+ $10 = $9 >>> 3;
+ HEAP32[$0>>2] = 0;
+ $11 = ($5|0)!=(0|0);
+ $12 = ($6|0)!=(0);
+ $or$cond = $11 & $12;
+ $spec$select = $or$cond ? $6 : 0;
+ $spec$select115 = $or$cond ? $5 : 73338;
+ $13 = (__gcry_md_get_algo_dlen($2)|0);
+ $14 = $13 << 1;
+ $15 = (($10) + -2)|0;
+ $16 = (($15) - ($14))|0;
+ $17 = ($16>>>0)>=($4>>>0);
+ $18 = ($10|0)!=(0);
+ $or$cond4 = $18 & $17;
+ if (!($or$cond4)) {
+  $$2 = 66;
+  return ($$2|0);
+ }
+ $19 = (__gcry_calloc_secure(1,$10)|0);
+ $20 = ($19|0)==(0|0);
+ if ($20) {
+  $21 = (_gpg_err_code_from_syserror()|0);
+  $$2 = $21;
+  return ($$2|0);
+ }
+ $22 = ((($19)) + 1|0);
+ $23 = (($22) + ($13)|0);
+ __gcry_md_hash_buffer($2,$23,$spec$select115,$spec$select);
+ $24 = (($10) - ($4))|0;
+ $25 = (($24) + -1)|0;
+ $26 = (($19) + ($25)|0);
+ HEAP8[$26>>0] = 1;
+ $27 = (($19) + ($24)|0);
+ _memcpy(($27|0),($3|0),($4|0))|0;
+ $28 = ($7|0)==(0|0);
+ do {
+  if ($28) {
+   __gcry_randomize($22,$13,1);
+  } else {
+   $29 = ($13|0)==($8|0);
+   if ($29) {
+    _memcpy(($22|0),($7|0),($8|0))|0;
+    break;
+   }
+   __gcry_free($19);
+   $$2 = 45;
+   return ($$2|0);
+  }
+ } while(0);
+ $30 = (($10) - ($13))|0;
+ $31 = (($30) + -1)|0;
+ $32 = (__gcry_malloc_secure($31)|0);
+ $33 = ($32|0)==(0|0);
+ if ($33) {
+  $34 = (_gpg_err_code_from_syserror()|0);
+  __gcry_free($19);
+  $$2 = $34;
+  return ($$2|0);
+ }
+ $35 = (_mgf1($32,$31,$22,$13,$2)|0);
+ $36 = ($35|0)==(0);
+ if (!($36)) {
+  __gcry_free($32);
+  __gcry_free($19);
+  $$2 = $35;
+  return ($$2|0);
+ }
+ $$0110120 = (($13) + 1)|0;
+ $37 = ($$0110120>>>0)<($10>>>0);
+ if ($37) {
+  $$0110122 = $$0110120;$$0113121 = $32;
+  while(1) {
+   $38 = ((($$0113121)) + 1|0);
+   $39 = HEAP8[$$0113121>>0]|0;
+   $40 = (($19) + ($$0110122)|0);
+   $41 = HEAP8[$40>>0]|0;
+   $42 = $41 ^ $39;
+   HEAP8[$40>>0] = $42;
+   $$0110 = (($$0110122) + 1)|0;
+   $exitcond126 = ($$0110|0)==($10|0);
+   if ($exitcond126) {
+    break;
+   } else {
+    $$0110122 = $$0110;$$0113121 = $38;
+   }
+  }
+ }
+ __gcry_free($32);
+ $43 = (__gcry_malloc_secure($13)|0);
+ $44 = ($43|0)==(0|0);
+ if ($44) {
+  $45 = (_gpg_err_code_from_syserror()|0);
+  __gcry_free($19);
+  $$2 = $45;
+  return ($$2|0);
+ }
+ $46 = (_mgf1($43,$13,$23,$31,$2)|0);
+ $47 = ($46|0)==(0);
+ if (!($47)) {
+  __gcry_free($43);
+  __gcry_free($19);
+  $$2 = $46;
+  return ($$2|0);
+ }
+ $48 = ($$0110120>>>0)>(1);
+ if ($48) {
+  $$1111119 = 1;$$1114118 = $43;
+  while(1) {
+   $49 = ((($$1114118)) + 1|0);
+   $50 = HEAP8[$$1114118>>0]|0;
+   $51 = (($19) + ($$1111119)|0);
+   $52 = HEAP8[$51>>0]|0;
+   $53 = $52 ^ $50;
+   HEAP8[$51>>0] = $53;
+   $54 = (($$1111119) + 1)|0;
+   $exitcond = ($54|0)==($$0110120|0);
+   if ($exitcond) {
+    break;
+   } else {
+    $$1111119 = $54;$$1114118 = $49;
+   }
+  }
+ }
+ __gcry_free($43);
+ $55 = (__gcry_mpi_scan($0,5,$19,$10,0)|0);
+ $56 = ($55|0)==(0);
+ if ($56) {
+  $57 = (__gcry_get_debug_flag(1)|0);
+  $58 = ($57|0)==(0);
+  if (!($58)) {
+   $59 = HEAP32[$0>>2]|0;
+   __gcry_log_printmpi(60844,$59);
+  }
+ }
+ __gcry_free($19);
+ $$2 = $55;
+ return ($$2|0);
+}
+function _mgf1($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$ = 0, $$0 = 0, $$03740 = 0, $$03839 = 0, $10 = 0, $11 = 0, $12 = 0, $13 
= 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, 
$22 = 0, $23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, 
$5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $5 = sp;
+ $6 = sp + 4|0;
+ $7 = (__gcry_md_open($5,$4,0)|0);
+ $8 = ($7|0)==(0);
+ if (!($8)) {
+  $$0 = $7;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $9 = (__gcry_md_get_algo_dlen($4)|0);
+ $10 = ($1|0)==(0);
+ if (!($10)) {
+  $11 = ((($6)) + 1|0);
+  $12 = ((($6)) + 2|0);
+  $13 = ((($6)) + 3|0);
+  $$03740 = 0;$$03839 = 0;
+  while(1) {
+   $14 = ($$03839|0)==(0);
+   if (!($14)) {
+    $15 = HEAP32[$5>>2]|0;
+    __gcry_md_reset($15);
+   }
+   $16 = $$03839 >>> 24;
+   $17 = $16&255;
+   HEAP8[$6>>0] = $17;
+   $18 = $$03839 >>> 16;
+   $19 = $18&255;
+   HEAP8[$11>>0] = $19;
+   $20 = $$03839 >>> 8;
+   $21 = $20&255;
+   HEAP8[$12>>0] = $21;
+   $22 = $$03839&255;
+   HEAP8[$13>>0] = $22;
+   $23 = (($$03839) + 1)|0;
+   $24 = HEAP32[$5>>2]|0;
+   __gcry_md_write($24,$2,$3);
+   $25 = HEAP32[$5>>2]|0;
+   __gcry_md_write($25,$6,4);
+   $26 = HEAP32[$5>>2]|0;
+   $27 = (__gcry_md_read($26,0)|0);
+   $28 = (($1) - ($$03740))|0;
+   $29 = ($28>>>0)<($9>>>0);
+   $$ = $29 ? $28 : $9;
+   $30 = (($0) + ($$03740)|0);
+   _memcpy(($30|0),($27|0),($$|0))|0;
+   $31 = (($$) + ($$03740))|0;
+   $32 = ($31>>>0)<($1>>>0);
+   if ($32) {
+    $$03740 = $31;$$03839 = $23;
+   } else {
+    break;
+   }
+  }
+ }
+ $33 = HEAP32[$5>>2]|0;
+ __gcry_md_close($33);
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_rsa_oaep_decode($0,$1,$2,$3,$4,$5,$6) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ var $$0106 = 0, $$0122 = 0, $$1118 = 0, $$2$lcssa = 0, $$2115 = 0, $10 = 0, 
$11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 
0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $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, $40 = 0, $41 = 
0, $42 = 0, $43 = 0, $44 = 0;
+ var $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;
+ var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $8 = 0, $9 = 0, 
$exitcond = 0, $exitcond126 = 0, $narrow = 0, $narrow114 = 0, $or$cond = 0, 
$spec$select = 0, $spec$select109 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $7 = sp;
+ HEAP32[$7>>2] = 0;
+ $8 = (($2) + 7)|0;
+ $9 = $8 >>> 3;
+ HEAP32[$0>>2] = 0;
+ $10 = ($5|0)!=(0|0);
+ $11 = ($6|0)!=(0);
+ $or$cond = $10 & $11;
+ $12 = (__gcry_md_get_algo_dlen($3)|0);
+ $13 = (__gcry_malloc($12)|0);
+ $14 = ($13|0)==(0|0);
+ if ($14) {
+  $15 = (_gpg_err_code_from_syserror()|0);
+  $$0106 = $15;
+  STACKTOP = sp;return ($$0106|0);
+ }
+ $spec$select109 = $or$cond ? $5 : 73338;
+ $spec$select = $or$cond ? $6 : 0;
+ __gcry_md_hash_buffer($3,$13,$spec$select109,$spec$select);
+ $16 = (__gcry_mpi_to_octet_string($7,0,$4,$9)|0);
+ $17 = ($16|0)==(0);
+ if (!($17)) {
+  __gcry_free($13);
+  $$0106 = 155;
+  STACKTOP = sp;return ($$0106|0);
+ }
+ $18 = $12 << 1;
+ $19 = (($18) + 2)|0;
+ $20 = ($9>>>0)<($19>>>0);
+ if ($20) {
+  $21 = HEAP32[$7>>2]|0;
+  __gcry_free($21);
+  __gcry_free($13);
+  $$0106 = 155;
+  STACKTOP = sp;return ($$0106|0);
+ }
+ $22 = (($9) + -1)|0;
+ $23 = (__gcry_malloc_secure($22)|0);
+ $24 = ($23|0)==(0|0);
+ if ($24) {
+  $25 = (_gpg_err_code_from_syserror()|0);
+  $26 = HEAP32[$7>>2]|0;
+  __gcry_free($26);
+  __gcry_free($13);
+  $$0106 = $25;
+  STACKTOP = sp;return ($$0106|0);
+ }
+ $27 = (($23) + ($12)|0);
+ $28 = HEAP32[$7>>2]|0;
+ $29 = ((($28)) + 1|0);
+ $30 = (($29) + ($12)|0);
+ $31 = (($22) - ($12))|0;
+ $32 = (_mgf1($23,$12,$30,$31,$3)|0);
+ $33 = ($12|0)==(0);
+ if (!($33)) {
+  $$0122 = 0;
+  while(1) {
+   $34 = (($29) + ($$0122)|0);
+   $35 = HEAP8[$34>>0]|0;
+   $36 = (($23) + ($$0122)|0);
+   $37 = HEAP8[$36>>0]|0;
+   $38 = $37 ^ $35;
+   HEAP8[$36>>0] = $38;
+   $39 = (($$0122) + 1)|0;
+   $exitcond126 = ($39|0)==($12|0);
+   if ($exitcond126) {
+    break;
+   } else {
+    $$0122 = $39;
+   }
+  }
+ }
+ $40 = (_mgf1($27,$31,$23,$12,$3)|0);
+ $41 = $40 | $32;
+ $42 = ($31|0)==(0);
+ if (!($42)) {
+  $$1118 = 0;
+  while(1) {
+   $43 = (($30) + ($$1118)|0);
+   $44 = HEAP8[$43>>0]|0;
+   $45 = (($27) + ($$1118)|0);
+   $46 = HEAP8[$45>>0]|0;
+   $47 = $46 ^ $44;
+   HEAP8[$45>>0] = $47;
+   $48 = (($$1118) + 1)|0;
+   $exitcond = ($48|0)==($31|0);
+   if ($exitcond) {
+    break;
+   } else {
+    $$1118 = $48;
+   }
+  }
+ }
+ $49 = (_memcmp($13,$27,$12)|0);
+ $50 = $41 | $49;
+ $51 = ($50|0)!=(0);
+ $52 = ($12>>>0)<($31>>>0);
+ L27: do {
+  if ($52) {
+   $$2115 = $12;
+   while(1) {
+    $53 = (($27) + ($$2115)|0);
+    $54 = HEAP8[$53>>0]|0;
+    $55 = ($54<<24>>24)==(1);
+    if ($55) {
+     $$2$lcssa = $$2115;
+     break L27;
+    }
+    $56 = (($$2115) + 1)|0;
+    $57 = ($56>>>0)<($31>>>0);
+    if ($57) {
+     $$2115 = $56;
+    } else {
+     $$2$lcssa = $56;
+     break;
+    }
+   }
+  } else {
+   $$2$lcssa = $12;
+  }
+ } while(0);
+ $58 = ($$2$lcssa|0)==($31|0);
+ $narrow = $51 | $58;
+ $59 = HEAP32[$7>>2]|0;
+ $60 = HEAP8[$59>>0]|0;
+ $61 = ($60<<24>>24)!=(0);
+ $narrow114 = $narrow | $61;
+ __gcry_free($13);
+ $62 = HEAP32[$7>>2]|0;
+ __gcry_free($62);
+ if ($narrow114) {
+  __gcry_free($23);
+  $$0106 = 155;
+  STACKTOP = sp;return ($$0106|0);
+ }
+ $63 = (($$2$lcssa) + 1)|0;
+ $64 = (($27) + ($63)|0);
+ $65 = (($31) - ($63))|0;
+ _memmove(($23|0),($64|0),($65|0))|0;
+ HEAP32[$0>>2] = $23;
+ HEAP32[$1>>2] = $65;
+ $66 = (__gcry_get_debug_flag(1)|0);
+ $67 = ($66|0)==(0);
+ if ($67) {
+  $$0106 = 0;
+  STACKTOP = sp;return ($$0106|0);
+ }
+ $68 = HEAP32[$0>>2]|0;
+ $69 = HEAP32[$1>>2]|0;
+ __gcry_log_printhex(60862,$68,$69);
+ $$0106 = 0;
+ STACKTOP = sp;return ($$0106|0);
+}
+function __gcry_rsa_pss_encode($0,$1,$2,$3,$4,$5,$6,$7) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ $7 = $7|0;
+ var $$0 = 0, $$0169$lcssa = 0, $$0169197 = 0, $$0170$lcssa = 0, $$0170196 = 
0, $$0176213 = 0, $$0177$lcssa = 0, $$0177206 = 0, $$0181$lcssa = 0, $$0181205 
= 0, $$0185212 = 0, $$0186187 = 0, $$0186188 = 0, $$1 = 0, $$1171 = 0, $$1178 = 
0, $$1182 = 0, $$2 = 0, $$2172 = 0, $$2179 = 0;
+ var $$2183 = 0, $$3173194 = 0, $$3180202 = 0, $$3184201 = 0, $$3195 = 0, 
$$pre = 0, $$pre$phiZ2D = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, 
$104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0;
+ var $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, $13 = 0, 
$14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
+ var $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;
+ var $39 = 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, $53 = 0, $54 = 0, $55 = 
0, $56 = 0, $57 = 0, $58 = 0;
+ var $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;
+ var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, 
$86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, 
$94 = 0, $95 = 0, $96 = 0;
+ var $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $scevgep = 0, $scevgep224 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ $8 = (($1) + 7)|0;
+ $9 = $8 >>> 3;
+ $10 = (__gcry_md_get_algo_dlen($2)|0);
+ $11 = ($10|0)==(0);
+ if ($11) {
+  __gcry_assert_failed(60901,60596,800,60906);
+  // unreachable;
+ }
+ $12 = (($10) + ($5))|0;
+ $13 = (($12) + 8)|0;
+ $14 = (($9) - ($10))|0;
+ $15 = (($14) + -1)|0;
+ $16 = (($13) + ($15))|0;
+ $17 = (__gcry_malloc($16)|0);
+ $18 = ($17|0)==(0|0);
+ if ($18) {
+  $19 = (_gpg_err_code_from_syserror()|0);
+  $$0186187 = $19;
+  return ($$0186187|0);
+ }
+ $20 = ((($17)) + 8|0);
+ $21 = (($20) + ($10)|0);
+ $22 = (($21) + ($5)|0);
+ $23 = ($10|0)==($4|0);
+ do {
+  if ($23) {
+   _memcpy(($20|0),($3|0),($4|0))|0;
+   $24 = (($4) + ($5))|0;
+   $25 = (($24) + 2)|0;
+   $26 = ($9>>>0)<($25>>>0);
+   if ($26) {
+    $$0186188 = 66;
+   } else {
+    $27 = (__gcry_malloc($9)|0);
+    $28 = ($27|0)==(0|0);
+    if ($28) {
+     $29 = (_gpg_err_code_from_syserror()|0);
+     $$0186188 = $29;
+     break;
+    }
+    $30 = (($27) + ($9)|0);
+    $31 = ((($30)) + -1|0);
+    $32 = (0 - ($4))|0;
+    $33 = (($31) + ($32)|0);
+    $34 = ($5|0)==(0);
+    do {
+     if ($34) {
+      label = 15;
+     } else {
+      $35 = ($6|0)==(0|0);
+      if ($35) {
+       __gcry_randomize($21,$5,1);
+       label = 15;
+       break;
+      }
+      $36 = ($7|0)==($5|0);
+      if ($36) {
+       _memcpy(($21|0),($6|0),($5|0))|0;
+       label = 15;
+       break;
+      } else {
+       $$pre = $27;
+       $$0 = 45;$$pre$phiZ2D = $$pre;
+       break;
+      }
+     }
+    } while(0);
+    if ((label|0) == 15) {
+     $37 = $17;
+     $38 = $37;
+     
HEAP8[$38>>0]=0&255;HEAP8[$38+1>>0]=(0>>8)&255;HEAP8[$38+2>>0]=(0>>16)&255;HEAP8[$38+3>>0]=0>>24;
+     $39 = (($37) + 4)|0;
+     $40 = $39;
+     
HEAP8[$40>>0]=0&255;HEAP8[$40+1>>0]=(0>>8)&255;HEAP8[$40+2>>0]=(0>>16)&255;HEAP8[$40+3>>0]=0>>24;
+     __gcry_md_hash_buffer($2,$33,$17,$13);
+     $41 = (0 - ($5))|0;
+     $42 = (($33) + ($41)|0);
+     $43 = ((($42)) + -1|0);
+     $44 = $43;
+     $45 = $27;
+     $46 = (($44) - ($45))|0;
+     _memset(($27|0),0,($46|0))|0;
+     $47 = ((($43)) + 1|0);
+     HEAP8[$43>>0] = 1;
+     _memcpy(($47|0),($21|0),($5|0))|0;
+     (_mgf1($22,$15,$33,$4,$2)|0);
+     $48 = ($15|0)==(0);
+     if (!($48)) {
+      $$0176213 = $22;$$0185212 = 0;
+      while(1) {
+       $49 = HEAP8[$$0176213>>0]|0;
+       $50 = (($27) + ($$0185212)|0);
+       $51 = HEAP8[$50>>0]|0;
+       $52 = $51 ^ $49;
+       HEAP8[$50>>0] = $52;
+       $53 = (($$0185212) + 1)|0;
+       $54 = ((($$0176213)) + 1|0);
+       $exitcond = ($53|0)==($15|0);
+       if ($exitcond) {
+        break;
+       } else {
+        $$0176213 = $54;$$0185212 = $53;
+       }
+      }
+     }
+     $55 = $8 & -8;
+     $56 = (($55) - ($1))|0;
+     $57 = 255 >>> $56;
+     $58 = HEAP8[$27>>0]|0;
+     $59 = $58&255;
+     $60 = $57 & $59;
+     $61 = $60&255;
+     HEAP8[$27>>0] = $61;
+     $62 = (($9) + -1)|0;
+     $63 = (($27) + ($62)|0);
+     HEAP8[$63>>0] = -68;
+     $64 = (__gcry_mpi_scan($0,5,$27,$9,0)|0);
+     $65 = ($64|0)==(0);
+     if ($65) {
+      $66 = (__gcry_get_debug_flag(1)|0);
+      $67 = ($66|0)==(0);
+      if ($67) {
+       $$0 = 0;$$pre$phiZ2D = $45;
+      } else {
+       $68 = HEAP32[$0>>2]|0;
+       __gcry_log_printmpi(60927,$68);
+       $$0 = 0;$$pre$phiZ2D = $45;
+      }
+     } else {
+      $$0 = $64;$$pre$phiZ2D = $45;
+     }
+    }
+    $69 = $$pre$phiZ2D & 7;
+    $70 = ($69|0)!=(0);
+    $71 = ($9|0)!=(0);
+    $72 = $71 & $70;
+    if ($72) {
+     $$0177206 = $9;$$0181205 = $27;
+     while(1) {
+      HEAP8[$$0181205>>0] = 0;
+      $73 = ((($$0181205)) + 1|0);
+      $74 = (($$0177206) + -1)|0;
+      $75 = $73;
+      $76 = $75 & 7;
+      $77 = ($76|0)!=(0);
+      $78 = ($74|0)!=(0);
+      $79 = $78 & $77;
+      if ($79) {
+       $$0177206 = $74;$$0181205 = $73;
+      } else {
+       $$0177$lcssa = $74;$$0181$lcssa = $73;
+       break;
+      }
+     }
+    } else {
+     $$0177$lcssa = $9;$$0181$lcssa = $27;
+    }
+    $80 = ($$0177$lcssa>>>0)<(8);
+    if ($80) {
+     $$2179 = $$0177$lcssa;$$2183 = $$0181$lcssa;
+    } else {
+     $81 = (($$0177$lcssa) + -8)|0;
+     $82 = $81 & -8;
+     $83 = (($82) + 8)|0;
+     $$1178 = $$0177$lcssa;$$1182 = $$0181$lcssa;
+     while(1) {
+      $84 = $$1182;
+      $85 = $84;
+      HEAP32[$85>>2] = 0;
+      $86 = (($84) + 4)|0;
+      $87 = $86;
+      HEAP32[$87>>2] = 0;
+      $88 = (($$1178) + -8)|0;
+      $89 = ((($$1182)) + 8|0);
+      $90 = ($88>>>0)>(7);
+      if ($90) {
+       $$1178 = $88;$$1182 = $89;
+      } else {
+       break;
+      }
+     }
+     $91 = (($81) - ($82))|0;
+     $scevgep224 = (($$0181$lcssa) + ($83)|0);
+     $$2179 = $91;$$2183 = $scevgep224;
+    }
+    $92 = ($$2179|0)==(0);
+    if (!($92)) {
+     $$3180202 = $$2179;$$3184201 = $$2183;
+     while(1) {
+      HEAP8[$$3184201>>0] = 0;
+      $93 = ((($$3184201)) + 1|0);
+      $94 = (($$3180202) + -1)|0;
+      $95 = ($94|0)==(0);
+      if ($95) {
+       break;
+      } else {
+       $$3180202 = $94;$$3184201 = $93;
+      }
+     }
+    }
+    __gcry_free($27);
+    $$0186188 = $$0;
+   }
+  } else {
+   $$0186188 = 139;
+  }
+ } while(0);
+ $96 = $17;
+ $97 = $96 & 7;
+ $98 = ($97|0)!=(0);
+ $99 = ($16|0)!=(0);
+ $100 = $99 & $98;
+ if ($100) {
+  $$0169197 = $16;$$0170196 = $17;
+  while(1) {
+   HEAP8[$$0170196>>0] = 0;
+   $101 = ((($$0170196)) + 1|0);
+   $102 = (($$0169197) + -1)|0;
+   $103 = $101;
+   $104 = $103 & 7;
+   $105 = ($104|0)!=(0);
+   $106 = ($102|0)!=(0);
+   $107 = $106 & $105;
+   if ($107) {
+    $$0169197 = $102;$$0170196 = $101;
+   } else {
+    $$0169$lcssa = $102;$$0170$lcssa = $101;
+    break;
+   }
+  }
+ } else {
+  $$0169$lcssa = $16;$$0170$lcssa = $17;
+ }
+ $108 = ($$0169$lcssa>>>0)<(8);
+ if ($108) {
+  $$2 = $$0169$lcssa;$$2172 = $$0170$lcssa;
+ } else {
+  $109 = (($$0169$lcssa) + -8)|0;
+  $110 = $109 & -8;
+  $111 = (($110) + 8)|0;
+  $$1 = $$0169$lcssa;$$1171 = $$0170$lcssa;
+  while(1) {
+   $112 = $$1171;
+   $113 = $112;
+   HEAP32[$113>>2] = 0;
+   $114 = (($112) + 4)|0;
+   $115 = $114;
+   HEAP32[$115>>2] = 0;
+   $116 = (($$1) + -8)|0;
+   $117 = ((($$1171)) + 8|0);
+   $118 = ($116>>>0)>(7);
+   if ($118) {
+    $$1 = $116;$$1171 = $117;
+   } else {
+    break;
+   }
+  }
+  $119 = (($109) - ($110))|0;
+  $scevgep = (($$0170$lcssa) + ($111)|0);
+  $$2 = $119;$$2172 = $scevgep;
+ }
+ $120 = ($$2|0)==(0);
+ if (!($120)) {
+  $$3173194 = $$2172;$$3195 = $$2;
+  while(1) {
+   HEAP8[$$3173194>>0] = 0;
+   $121 = ((($$3173194)) + 1|0);
+   $122 = (($$3195) + -1)|0;
+   $123 = ($122|0)==(0);
+   if ($123) {
+    break;
+   } else {
+    $$3173194 = $121;$$3195 = $122;
+   }
+  }
+ }
+ __gcry_free($17);
+ $$0186187 = $$0186188;
+ return ($$0186187|0);
+}
+function __gcry_rsa_pss_verify($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $$0$ph = 0, $$0162$lcssa = 0, $$0162189 = 0, $$0163$lcssa = 0, 
$$0163188 = 0, $$0170215 = 0, $$0171$lcssa = 0, $$0171200 = 0, $$0175$lcssa = 
0, $$0175199 = 0, $$0179214 = 0, $$1 = 0, $$1164 = 0, $$1172 = 0, $$1176 = 0, 
$$1180$lcssa = 0, $$1180206 = 0, $$2 = 0, $$2165 = 0;
+ var $$2173 = 0, $$2177 = 0, $$3166186 = 0, $$3174195 = 0, $$3178194 = 0, 
$$3187 = 0, $$pr = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 
0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0;
+ var $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;
+ var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 
= 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, 
$19 = 0, $20 = 0, $21 = 0, $22 = 0;
+ var $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, $40 = 0, $41 = 0, $42 = 0;
+ var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 
0, $59 = 0, $6 = 0, $60 = 0;
+ var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, 
$69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, 
$77 = 0, $78 = 0, $79 = 0;
+ var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, 
$87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, 
$95 = 0, $96 = 0, $97 = 0;
+ var $98 = 0, $99 = 0, $exitcond = 0, $scevgep = 0, $scevgep226 = 0, 
$spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $5 = sp;
+ HEAP32[$5>>2] = 0;
+ $6 = (($2) + 7)|0;
+ $7 = $6 >>> 3;
+ $8 = (__gcry_md_get_algo_dlen($3)|0);
+ $9 = ($8|0)==(0);
+ if ($9) {
+  __gcry_assert_failed(60901,60596,926,60944);
+  // unreachable;
+ }
+ $10 = (($8) + ($4))|0;
+ $11 = (($10) + 8)|0;
+ $12 = (($7) - ($8))|0;
+ $13 = (($12) + -1)|0;
+ $14 = ($11>>>0)<($13>>>0);
+ $spec$select = $14 ? $13 : $11;
+ $15 = (($spec$select) + ($8))|0;
+ $16 = (__gcry_malloc($15)|0);
+ $17 = ($16|0)!=(0|0);
+ if ($17) {
+  $19 = (0 - ($8))|0;
+  $20 = (($16) + ($spec$select)|0);
+  $21 = (__gcry_mpi_to_octet_string(0,$20,$0,$8)|0);
+  $22 = ($21|0)==(0);
+  if ($22) {
+   $23 = (__gcry_mpi_to_octet_string($5,0,$1,$7)|0);
+   $24 = ($23|0)==(0);
+   if ($24) {
+    $25 = (($10) + 2)|0;
+    $26 = ($7>>>0)<($25>>>0);
+    if ($26) {
+     $$0$ph = 66;
+     label = 20;
+    } else {
+     $27 = HEAP32[$5>>2]|0;
+     $28 = (($7) + -1)|0;
+     $29 = (($27) + ($28)|0);
+     $30 = HEAP8[$29>>0]|0;
+     $31 = ($30<<24>>24)==(-68);
+     if ($31) {
+      $32 = (($27) + ($7)|0);
+      $33 = ((($32)) + -1|0);
+      $34 = (($33) + ($19)|0);
+      $35 = HEAP8[$27>>0]|0;
+      $36 = $35&255;
+      $37 = $6 & -8;
+      $38 = (($37) - ($2))|0;
+      $39 = 255 >>> $38;
+      $40 = -256 >> $38;
+      $41 = $40 & $36;
+      $42 = ($41|0)==(0);
+      if ($42) {
+       (_mgf1($16,$13,$34,$8,$3)|0);
+       $43 = ($13|0)==(0);
+       if (!($43)) {
+        $$0170215 = $16;$$0179214 = 0;
+        while(1) {
+         $44 = HEAP8[$$0170215>>0]|0;
+         $45 = HEAP32[$5>>2]|0;
+         $46 = (($45) + ($$0179214)|0);
+         $47 = HEAP8[$46>>0]|0;
+         $48 = $47 ^ $44;
+         HEAP8[$46>>0] = $48;
+         $49 = (($$0179214) + 1)|0;
+         $50 = ((($$0170215)) + 1|0);
+         $exitcond = ($49|0)==($13|0);
+         if ($exitcond) {
+          break;
+         } else {
+          $$0170215 = $50;$$0179214 = $49;
+         }
+        }
+       }
+       $51 = HEAP32[$5>>2]|0;
+       $52 = HEAP8[$51>>0]|0;
+       $53 = $52&255;
+       $54 = $39 & $53;
+       $55 = $54&255;
+       HEAP8[$51>>0] = $55;
+       $56 = (($12) - ($4))|0;
+       $57 = (($56) + -2)|0;
+       $58 = ($57|0)==(0);
+       L16: do {
+        if ($58) {
+         $$1180$lcssa = 0;
+        } else {
+         $59 = HEAP32[$5>>2]|0;
+         $$1180206 = 0;
+         while(1) {
+          $60 = (($59) + ($$1180206)|0);
+          $61 = HEAP8[$60>>0]|0;
+          $62 = ($61<<24>>24)==(0);
+          if (!($62)) {
+           $$1180$lcssa = $$1180206;
+           break L16;
+          }
+          $63 = (($$1180206) + 1)|0;
+          $64 = ($63>>>0)<($57>>>0);
+          if ($64) {
+           $$1180206 = $63;
+          } else {
+           $$1180$lcssa = $63;
+           break;
+          }
+         }
+        }
+       } while(0);
+       $65 = ($$1180$lcssa|0)==($57|0);
+       if ($65) {
+        $66 = HEAP32[$5>>2]|0;
+        $67 = (($66) + ($57)|0);
+        $68 = HEAP8[$67>>0]|0;
+        $69 = ($68<<24>>24)==(1);
+        if ($69) {
+         $70 = (($56) + -1)|0;
+         $71 = (($66) + ($70)|0);
+         $72 = $16;
+         $73 = $72;
+         
HEAP8[$73>>0]=0&255;HEAP8[$73+1>>0]=(0>>8)&255;HEAP8[$73+2>>0]=(0>>16)&255;HEAP8[$73+3>>0]=0>>24;
+         $74 = (($72) + 4)|0;
+         $75 = $74;
+         
HEAP8[$75>>0]=0&255;HEAP8[$75+1>>0]=(0>>8)&255;HEAP8[$75+2>>0]=(0>>16)&255;HEAP8[$75+3>>0]=0>>24;
+         $76 = ((($16)) + 8|0);
+         _memcpy(($76|0),($20|0),($8|0))|0;
+         $77 = (($76) + ($8)|0);
+         _memcpy(($77|0),($71|0),($4|0))|0;
+         __gcry_md_hash_buffer($3,$16,$16,$11);
+         $78 = (_memcmp($34,$16,$8)|0);
+         $79 = ($78|0)==(0);
+         $80 = $79 ? 0 : 8;
+         $$0$ph = $80;
+         label = 20;
+        } else {
+         $$0 = 8;$82 = $66;
+        }
+       } else {
+        $$0$ph = 8;
+        label = 20;
+       }
+      } else {
+       $$0$ph = 8;
+       label = 20;
+      }
+     } else {
+      $$0 = 8;$82 = $27;
+     }
+    }
+   } else {
+    $$0$ph = $23;
+    label = 20;
+   }
+  } else {
+   $$0$ph = $21;
+   label = 20;
+  }
+ } else {
+  $18 = (_gpg_err_code_from_syserror()|0);
+  $$0$ph = $18;
+  label = 20;
+ }
+ if ((label|0) == 20) {
+  $$pr = HEAP32[$5>>2]|0;
+  $$0 = $$0$ph;$82 = $$pr;
+ }
+ $81 = ($82|0)==(0|0);
+ if (!($81)) {
+  $83 = $82;
+  $84 = $83 & 7;
+  $85 = ($84|0)!=(0);
+  $86 = ($7|0)!=(0);
+  $87 = $86 & $85;
+  if ($87) {
+   $$0171200 = $7;$$0175199 = $82;
+   while(1) {
+    HEAP8[$$0175199>>0] = 0;
+    $88 = ((($$0175199)) + 1|0);
+    $89 = (($$0171200) + -1)|0;
+    $90 = $88;
+    $91 = $90 & 7;
+    $92 = ($91|0)!=(0);
+    $93 = ($89|0)!=(0);
+    $94 = $93 & $92;
+    if ($94) {
+     $$0171200 = $89;$$0175199 = $88;
+    } else {
+     $$0171$lcssa = $89;$$0175$lcssa = $88;
+     break;
+    }
+   }
+  } else {
+   $$0171$lcssa = $7;$$0175$lcssa = $82;
+  }
+  $95 = ($$0171$lcssa>>>0)<(8);
+  if ($95) {
+   $$2173 = $$0171$lcssa;$$2177 = $$0175$lcssa;
+  } else {
+   $96 = (($$0171$lcssa) + -8)|0;
+   $97 = $96 & -8;
+   $98 = (($97) + 8)|0;
+   $$1172 = $$0171$lcssa;$$1176 = $$0175$lcssa;
+   while(1) {
+    $99 = $$1176;
+    $100 = $99;
+    HEAP32[$100>>2] = 0;
+    $101 = (($99) + 4)|0;
+    $102 = $101;
+    HEAP32[$102>>2] = 0;
+    $103 = (($$1172) + -8)|0;
+    $104 = ((($$1176)) + 8|0);
+    $105 = ($103>>>0)>(7);
+    if ($105) {
+     $$1172 = $103;$$1176 = $104;
+    } else {
+     break;
+    }
+   }
+   $106 = (($96) - ($97))|0;
+   $scevgep226 = (($$0175$lcssa) + ($98)|0);
+   $$2173 = $106;$$2177 = $scevgep226;
+  }
+  $107 = ($$2173|0)==(0);
+  if (!($107)) {
+   $$3174195 = $$2173;$$3178194 = $$2177;
+   while(1) {
+    HEAP8[$$3178194>>0] = 0;
+    $108 = ((($$3178194)) + 1|0);
+    $109 = (($$3174195) + -1)|0;
+    $110 = ($109|0)==(0);
+    if ($110) {
+     break;
+    } else {
+     $$3174195 = $109;$$3178194 = $108;
+    }
+   }
+  }
+  $111 = HEAP32[$5>>2]|0;
+  __gcry_free($111);
+ }
+ if (!($17)) {
+  STACKTOP = sp;return ($$0|0);
+ }
+ $112 = $16;
+ $113 = $112 & 7;
+ $114 = ($113|0)!=(0);
+ $115 = ($15|0)!=(0);
+ $116 = $115 & $114;
+ if ($116) {
+  $$0162189 = $15;$$0163188 = $16;
+  while(1) {
+   HEAP8[$$0163188>>0] = 0;
+   $117 = ((($$0163188)) + 1|0);
+   $118 = (($$0162189) + -1)|0;
+   $119 = $117;
+   $120 = $119 & 7;
+   $121 = ($120|0)!=(0);
+   $122 = ($118|0)!=(0);
+   $123 = $122 & $121;
+   if ($123) {
+    $$0162189 = $118;$$0163188 = $117;
+   } else {
+    $$0162$lcssa = $118;$$0163$lcssa = $117;
+    break;
+   }
+  }
+ } else {
+  $$0162$lcssa = $15;$$0163$lcssa = $16;
+ }
+ $124 = ($$0162$lcssa>>>0)<(8);
+ if ($124) {
+  $$2 = $$0162$lcssa;$$2165 = $$0163$lcssa;
+ } else {
+  $125 = (($$0162$lcssa) + -8)|0;
+  $126 = $125 & -8;
+  $127 = (($126) + 8)|0;
+  $$1 = $$0162$lcssa;$$1164 = $$0163$lcssa;
+  while(1) {
+   $128 = $$1164;
+   $129 = $128;
+   HEAP32[$129>>2] = 0;
+   $130 = (($128) + 4)|0;
+   $131 = $130;
+   HEAP32[$131>>2] = 0;
+   $132 = (($$1) + -8)|0;
+   $133 = ((($$1164)) + 8|0);
+   $134 = ($132>>>0)>(7);
+   if ($134) {
+    $$1 = $132;$$1164 = $133;
+   } else {
+    break;
+   }
+  }
+  $135 = (($125) - ($126))|0;
+  $scevgep = (($$0163$lcssa) + ($127)|0);
+  $$2 = $135;$$2165 = $scevgep;
+ }
+ $136 = ($$2|0)==(0);
+ if (!($136)) {
+  $$3166186 = $$2165;$$3187 = $$2;
+  while(1) {
+   HEAP8[$$3166186>>0] = 0;
+   $137 = ((($$3166186)) + 1|0);
+   $138 = (($$3187) + -1)|0;
+   $139 = ($138|0)==(0);
+   if ($139) {
+    break;
+   } else {
+    $$3166186 = $137;$$3187 = $138;
+   }
+  }
+ }
+ __gcry_free($16);
+ STACKTOP = sp;return ($$0|0);
+}
+function _rsa_generate($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $$0130$i = 0, $$0131$i = 0, $$0131$us$i = 0, $$0133$i = 0, 
$$0133$us$i = 0, $$0141165$i = 0, $$0147$i = 0, $$0148$i = 0, $$0149$i = 0, 
$$041 = 0, $$1 = 0, $$1132$lcssa$i = 0, $$1134$lcssa$i = 0, $$1140$i = 0, 
$$1146$i = 0, $$142 = 0, $$2 = 0, $$2$i = 0, $$3$i = 0;
+ var $$lobit = 0, $$phi$trans$insert = 0, $$phi$trans$insert$i = 0, 
$$phi$trans$insert171$i = 0, $$pre = 0, $$pre$i = 0, $$pre$phi54Z2D = 0, 
$$pre$phi56Z2D = 0, $$pre$phi58Z2D = 0, $$pre$phi60Z2D = 0, $$pre$phi62Z2D = 0, 
$$pre$phiZ2D = 0, $$pre172$i = 0, $$pre53 = 0, $$pre55 = 0, $$pre57 = 0, 
$$pre59 = 0, $$pre61 = 0, $10 = 0, $100 = 0;
+ var $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;
+ var $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, $136 = 0, $137 = 0;
+ var $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 
= 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 
= 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0;
+ var $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 
= 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 
= 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0;
+ var $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 
= 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 
= 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0;
+ var $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, 
$199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, 
$205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0;
+ var $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 
= 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 
= 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0;
+ var $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 
= 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 
= 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0;
+ var $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 
0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 
0, $37 = 0, $38 = 0, $39 = 0;
+ var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, 
$47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, 
$55 = 0, $56 = 0, $57 = 0;
+ var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, 
$65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, 
$73 = 0, $74 = 0, $75 = 0;
+ var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, 
$83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, 
$91 = 0, $92 = 0, $93 = 0;
+ var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, 
$or$cond$i = 0, $or$cond$i35 = 0, $or$cond151$not$i = 0, $or$cond152$i = 0, 
$or$cond154$i = 0, $spec$select$i = 0, $spec$select$i36 = 0, $vararg_buffer = 
0, $vararg_buffer1 = 0, $vararg_ptr10 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, 
$vararg_ptr5 = 0;
+ var $vararg_ptr6 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 176|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(176|0);
+ $vararg_buffer1 = sp + 64|0;
+ $vararg_buffer = sp + 56|0;
+ $2 = sp + 164|0;
+ $3 = sp + 160|0;
+ $4 = sp + 156|0;
+ $5 = sp + 152|0;
+ $6 = sp + 148|0;
+ $7 = sp + 144|0;
+ $8 = sp;
+ $9 = sp + 140|0;
+ $10 = sp + 136|0;
+ $11 = sp + 112|0;
+ $12 = sp + 104|0;
+ $13 = sp + 100|0;
+ HEAP32[$12>>2] = 0;
+ HEAP32[$13>>2] = 0;
+ 
;HEAP32[$11>>2]=0|0;HEAP32[$11+4>>2]=0|0;HEAP32[$11+8>>2]=0|0;HEAP32[$11+12>>2]=0|0;HEAP32[$11+16>>2]=0|0;HEAP32[$11+20>>2]=0|0;
+ $14 = (__gcry_pk_util_get_nbits($0,$9)|0);
+ $15 = ($14|0)==(0);
+ if (!($15)) {
+  $$0 = $14;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $16 = (__gcry_pk_util_get_rsa_use_e($0,$10)|0);
+ $17 = ($16|0)==(0);
+ if (!($17)) {
+  $$0 = $16;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $18 = (__gcry_sexp_find_token($0,64705,0)|0);
+ $19 = ($18|0)==(0|0);
+ if (!($19)) {
+  $20 = (__gcry_pk_util_parse_flaglist($18,$12,0)|0);
+  __gcry_sexp_release($18);
+  $21 = ($20|0)==(0);
+  if (!($21)) {
+   $$0 = $20;
+   STACKTOP = sp;return ($$0|0);
+  }
+ }
+ $22 = ($0|0)==(0|0);
+ if ($22) {
+  label = 7;
+ } else {
+  $23 = (__gcry_sexp_find_token($0,61911,0)|0);
+  $24 = ($23|0)==(0|0);
+  if ($24) {
+   label = 7;
+  } else {
+   $44 = $23;
+   label = 11;
+  }
+ }
+ do {
+  if ((label|0) == 7) {
+   $25 = (__gcry_sexp_find_token($0,61924,0)|0);
+   $26 = ($25|0)==(0|0);
+   if (!($26)) {
+    $27 = HEAP32[$12>>2]|0;
+    $28 = $27 | 64;
+    HEAP32[$12>>2] = $28;
+    __gcry_sexp_release($25);
+   }
+   $29 = HEAP32[$12>>2]|0;
+   $30 = $29 & 64;
+   $31 = ($30|0)==(0);
+   if ($31) {
+    $32 = (__gcry_fips_mode()|0);
+    $33 = ($32|0)==(0);
+    if ($33) {
+     $157 = HEAP32[$12>>2]|0;
+     $158 = $157 & 32;
+     $159 = ($158|0)==(0);
+     if ($159) {
+      $160 = (__gcry_sexp_find_token($0,66452,0)|0);
+      $161 = ($160|0)==(0|0);
+      if (!($161)) {
+       $162 = HEAP32[$12>>2]|0;
+       $163 = $162 | 32;
+       HEAP32[$12>>2] = $163;
+       __gcry_sexp_release($160);
+      }
+     }
+     $164 = HEAP32[$9>>2]|0;
+     $165 = HEAP32[$10>>2]|0;
+     $166 = HEAP32[$12>>2]|0;
+     $167 = $166 >>> 5;
+     $$lobit = $167 & 1;
+     $168 = (__gcry_fips_mode()|0);
+     $169 = ($168|0)==(0);
+     if (!($169)) {
+      $170 = ($164>>>0)>(1023);
+      $171 = ($$lobit|0)==(0);
+      $or$cond$i35 = $170 & $171;
+      if (!($or$cond$i35)) {
+       $$2 = 55;
+       break;
+      }
+     }
+     $172 = (2 - ($$lobit))|0;
+     $173 = $164 & 1;
+     $spec$select$i36 = (($173) + ($164))|0;
+     $174 = ($165|0)==(1);
+     $$0130$i = $174 ? 65537 : $165;
+     $175 = (__gcry_mpi_alloc(1)|0);
+     $176 = ($$0130$i|0)==(0);
+     if ($176) {
+      (__gcry_mpi_set_ui($175,41)|0);
+      $188 = (__gcry_mpi_new($spec$select$i36)|0);
+      $189 = $spec$select$i36 >>> 1;
+      $$0131$i = 0;$$0133$i = 0;
+      while(1) {
+       $190 = ($$0131$i|0)==(0|0);
+       if (!($190)) {
+        __gcry_mpi_release($$0131$i);
+       }
+       $191 = ($$0133$i|0)==(0|0);
+       if (!($191)) {
+        __gcry_mpi_release($$0133$i);
+       }
+       $192 = (__gcry_generate_secret_prime($189,$172,0,0)|0);
+       $193 = (__gcry_generate_secret_prime($189,$172,0,0)|0);
+       $194 = (__gcry_mpi_cmp($192,$193)|0);
+       $195 = ($194|0)>(0);
+       if ($195) {
+        __gcry_mpi_swap($192,$193);
+       }
+       __gcry_mpi_mul($188,$192,$193);
+       $196 = (__gcry_mpi_get_nbits($188)|0);
+       $197 = ($196|0)==($spec$select$i36|0);
+       if ($197) {
+        $$1132$lcssa$i = $192;$$1134$lcssa$i = $193;$$1140$i = 0;$214 = $188;
+        break;
+       } else {
+        $$0131$i = $192;$$0133$i = $193;
+       }
+      }
+     } else {
+      $177 = $$0130$i | 1;
+      (__gcry_mpi_set_ui($175,$177)|0);
+      $178 = (__gcry_mpi_new($spec$select$i36)|0);
+      $179 = $spec$select$i36 >>> 1;
+      $$0131$us$i = 0;$$0133$us$i = 0;
+      while(1) {
+       $180 = ($$0131$us$i|0)==(0|0);
+       if (!($180)) {
+        __gcry_mpi_release($$0131$us$i);
+       }
+       $181 = ($$0133$us$i|0)==(0|0);
+       if (!($181)) {
+        __gcry_mpi_release($$0133$us$i);
+       }
+       $182 = (__gcry_generate_secret_prime($179,$172,77,$175)|0);
+       $183 = (__gcry_generate_secret_prime($179,$172,77,$175)|0);
+       $184 = (__gcry_mpi_cmp($182,$183)|0);
+       $185 = ($184|0)>(0);
+       if ($185) {
+        __gcry_mpi_swap($182,$183);
+       }
+       __gcry_mpi_mul($178,$182,$183);
+       $186 = (__gcry_mpi_get_nbits($178)|0);
+       $187 = ($186|0)==($spec$select$i36|0);
+       if ($187) {
+        $$1132$lcssa$i = $182;$$1134$lcssa$i = $183;$$1140$i = 1;$214 = $178;
+        break;
+       } else {
+        $$0131$us$i = $182;$$0133$us$i = $183;
+       }
+      }
+     }
+     $198 = ((($$1132$lcssa$i)) + 4|0);
+     $199 = HEAP32[$198>>2]|0;
+     $200 = (__gcry_mpi_alloc_secure($199)|0);
+     $201 = HEAP32[$198>>2]|0;
+     $202 = (__gcry_mpi_alloc_secure($201)|0);
+     $203 = (__gcry_mpi_snew($spec$select$i36)|0);
+     $204 = (__gcry_mpi_snew($spec$select$i36)|0);
+     $205 = (__gcry_mpi_snew($spec$select$i36)|0);
+     __gcry_mpi_sub_ui($200,$$1132$lcssa$i,1);
+     __gcry_mpi_sub_ui($202,$$1134$lcssa$i,1);
+     __gcry_mpi_mul($203,$200,$202);
+     (__gcry_mpi_gcd($204,$200,$202)|0);
+     __gcry_mpi_fdiv_q($205,$203,$204);
+     $206 = (__gcry_mpi_gcd($200,$175,$203)|0);
+     $207 = ($206|0)==(0);
+     if ($207) {
+      if ($$1140$i) {
+       __gcry_bug(61969,287,62221);
+       // unreachable;
+      }
+      while(1) {
+       __gcry_mpi_add_ui($175,$175,2);
+       $208 = (__gcry_mpi_gcd($200,$175,$203)|0);
+       $209 = ($208|0)==(0);
+       if (!($209)) {
+        break;
+       }
+      }
+     }
+     $210 = (__gcry_mpi_snew($spec$select$i36)|0);
+     (__gcry_mpi_invm($210,$175,$205)|0);
+     $211 = (__gcry_mpi_snew($spec$select$i36)|0);
+     (__gcry_mpi_invm($211,$$1132$lcssa$i,$$1134$lcssa$i)|0);
+     $212 = (__gcry_get_debug_flag(1)|0);
+     $213 = ($212|0)==(0);
+     if (!($213)) {
+      __gcry_log_printmpi(62234,$$1132$lcssa$i);
+      __gcry_log_printmpi(62240,$$1134$lcssa$i);
+      __gcry_log_printmpi(62246,$203);
+      __gcry_log_printmpi(62252,$204);
+      __gcry_log_printmpi(62258,$205);
+      __gcry_log_printmpi(62264,$214);
+      __gcry_log_printmpi(62270,$175);
+      __gcry_log_printmpi(62276,$210);
+      __gcry_log_printmpi(62282,$211);
+     }
+     __gcry_mpi_release($200);
+     __gcry_mpi_release($202);
+     __gcry_mpi_release($203);
+     __gcry_mpi_release($205);
+     __gcry_mpi_release($204);
+     HEAP32[$11>>2] = $214;
+     $215 = ((($11)) + 4|0);
+     HEAP32[$215>>2] = $175;
+     $216 = ((($11)) + 12|0);
+     HEAP32[$216>>2] = $$1132$lcssa$i;
+     $217 = ((($11)) + 16|0);
+     HEAP32[$217>>2] = $$1134$lcssa$i;
+     $218 = ((($11)) + 8|0);
+     HEAP32[$218>>2] = $210;
+     $219 = ((($11)) + 20|0);
+     HEAP32[$219>>2] = $211;
+     $220 = (($spec$select$i36) + -64)|0;
+     $221 = (_test_keys($11,$220)|0);
+     $222 = ($221|0)==(0);
+     if ($222) {
+      $$pre$phi54Z2D = $215;$$pre$phi56Z2D = $218;$$pre$phi58Z2D = 
$216;$$pre$phi60Z2D = $217;$$pre$phi62Z2D = $219;$$pre$phiZ2D = $11;
+      label = 88;
+     } else {
+      $223 = HEAP32[$11>>2]|0;
+      __gcry_mpi_release($223);
+      HEAP32[$11>>2] = 0;
+      $224 = HEAP32[$215>>2]|0;
+      __gcry_mpi_release($224);
+      HEAP32[$215>>2] = 0;
+      $225 = HEAP32[$216>>2]|0;
+      __gcry_mpi_release($225);
+      HEAP32[$216>>2] = 0;
+      $226 = HEAP32[$217>>2]|0;
+      __gcry_mpi_release($226);
+      HEAP32[$217>>2] = 0;
+      $227 = HEAP32[$218>>2]|0;
+      __gcry_mpi_release($227);
+      HEAP32[$218>>2] = 0;
+      $228 = HEAP32[$219>>2]|0;
+      __gcry_mpi_release($228);
+      HEAP32[$219>>2] = 0;
+      __gcry_fips_signal_error(61969,334,62221,0,62154);
+      $$2 = 50;
+     }
+    } else {
+     $44 = 0;
+     label = 11;
+    }
+   } else {
+    $44 = 0;
+    label = 11;
+   }
+  }
+ } while(0);
+ if ((label|0) == 11) {
+  $34 = HEAP32[$9>>2]|0;
+  $35 = HEAP32[$10>>2]|0;
+  $36 = ($35|0)==(1);
+  $spec$select$i = $36 ? 65537 : $35;
+  $37 = ($34>>>0)<(1024);
+  $38 = $34 & 255;
+  $39 = ($38|0)!=(0);
+  $or$cond151$not$i = $37 | $39;
+  $40 = ($spec$select$i>>>0)<(3);
+  $or$cond152$i = $or$cond151$not$i | $40;
+  $41 = $spec$select$i & 1;
+  $42 = ($41|0)==(0);
+  $or$cond154$i = $or$cond152$i | $42;
+  if ($or$cond154$i) {
+   $$142 = 0;$$3$i = 55;
+  } else {
+   HEAP32[$2>>2] = 0;
+   HEAP32[$3>>2] = 0;
+   HEAP32[$4>>2] = 0;
+   HEAP32[$5>>2] = 0;
+   HEAP32[$6>>2] = 0;
+   HEAP32[$7>>2] = 0;
+   $43 = ($44|0)==(0|0);
+   L69: do {
+    if ($43) {
+     $45 = $34 >>> 1;
+     $46 = (__gcry_mpi_snew($45)|0);
+     __gcry_mpi_randomize($46,$45,2);
+     $47 = (($45) + -1)|0;
+     __gcry_mpi_set_highbit($46,$47);
+     $48 = (($45) + -2)|0;
+     __gcry_mpi_set_bit($46,$48);
+     $49 = (__gcry_mpi_get_nbits($46)|0);
+     $50 = ($49|0)==($45|0);
+     if (!($50)) {
+      __gcry_assert_failed(61933,61969,360,61975);
+      // unreachable;
+     }
+     HEAP32[$4>>2] = $46;
+     $51 = (__gcry_mpi_snew($45)|0);
+     $52 = (($45) + -100)|0;
+     $53 = 0;
+     while(1) {
+      __gcry_mpi_release($53);
+      $54 = (__gcry_mpi_snew($45)|0);
+      __gcry_mpi_randomize($54,$45,2);
+      __gcry_mpi_set_highbit($54,$47);
+      __gcry_mpi_set_bit($54,$48);
+      $55 = (__gcry_mpi_get_nbits($54)|0);
+      $56 = ($55|0)==($45|0);
+      if (!($56)) {
+       label = 17;
+       break;
+      }
+      HEAP32[$7>>2] = $54;
+      __gcry_mpi_sub($51,$46,$54);
+      $57 = (__gcry_mpi_get_nbits($51)|0);
+      $58 = ($57>>>0)>($52>>>0);
+      if ($58) {
+       break;
+      } else {
+       $53 = $54;
+      }
+     }
+     if ((label|0) == 17) {
+      __gcry_assert_failed(61933,61969,360,61975);
+      // unreachable;
+     }
+     __gcry_mpi_release($51);
+     $59 = (__gcry_mpi_snew(101)|0);
+     __gcry_mpi_randomize($59,101,2);
+     __gcry_mpi_set_highbit($59,100);
+     $60 = (__gcry_mpi_get_nbits($59)|0);
+     $61 = ($60|0)==(101);
+     if (!($61)) {
+      __gcry_assert_failed(61992,61969,375,62026);
+      // unreachable;
+     }
+     HEAP32[$2>>2] = $59;
+     $62 = (__gcry_mpi_snew(101)|0);
+     __gcry_mpi_randomize($62,101,2);
+     __gcry_mpi_set_highbit($62,100);
+     $63 = (__gcry_mpi_get_nbits($62)|0);
+     $64 = ($63|0)==(101);
+     if (!($64)) {
+      __gcry_assert_failed(61992,61969,375,62026);
+      // unreachable;
+     }
+     HEAP32[$3>>2] = $62;
+     $65 = (__gcry_mpi_snew(101)|0);
+     __gcry_mpi_randomize($65,101,2);
+     __gcry_mpi_set_highbit($65,100);
+     $66 = (__gcry_mpi_get_nbits($65)|0);
+     $67 = ($66|0)==(101);
+     if (!($67)) {
+      __gcry_assert_failed(61992,61969,375,62026);
+      // unreachable;
+     }
+     HEAP32[$5>>2] = $65;
+     $68 = (__gcry_mpi_snew(101)|0);
+     __gcry_mpi_randomize($68,101,2);
+     __gcry_mpi_set_highbit($68,100);
+     $69 = (__gcry_mpi_get_nbits($68)|0);
+     $70 = ($69|0)==(101);
+     if ($70) {
+      HEAP32[$6>>2] = $68;
+      label = 40;
+      break;
+     } else {
+      __gcry_assert_failed(61992,61969,375,62026);
+      // unreachable;
+     }
+    } else {
+     $71 = ((($8)) + 48|0);
+     $72 = $71;
+     $73 = $72;
+     HEAP32[$73>>2] = 0;
+     $74 = (($72) + 4)|0;
+     $75 = $74;
+     HEAP32[$75>>2] = 0;
+     HEAP32[$8>>2] = 62043;
+     $76 = ((($8)) + 8|0);
+     HEAP32[$76>>2] = 62047;
+     $77 = ((($8)) + 16|0);
+     HEAP32[$77>>2] = 62051;
+     $78 = ((($8)) + 24|0);
+     HEAP32[$78>>2] = 62054;
+     $79 = ((($8)) + 32|0);
+     HEAP32[$79>>2] = 62058;
+     $80 = ((($8)) + 40|0);
+     HEAP32[$80>>2] = 62062;
+     $81 = ((($8)) + 4|0);
+     HEAP32[$81>>2] = $2;
+     $82 = ((($8)) + 12|0);
+     HEAP32[$82>>2] = $3;
+     $83 = ((($8)) + 20|0);
+     HEAP32[$83>>2] = $4;
+     $84 = ((($8)) + 28|0);
+     HEAP32[$84>>2] = $5;
+     $85 = ((($8)) + 36|0);
+     HEAP32[$85>>2] = $6;
+     $86 = ((($8)) + 44|0);
+     HEAP32[$86>>2] = $7;
+     $$0141165$i = 0;$87 = 62043;
+     while(1) {
+      $88 = (__gcry_sexp_find_token($44,$87,0)|0);
+      $89 = ($88|0)==(0|0);
+      if (!($89)) {
+       $90 = (((($8) + ($$0141165$i<<3)|0)) + 4|0);
+       $91 = (__gcry_sexp_nth_mpi($88,1,5)|0);
+       $92 = HEAP32[$90>>2]|0;
+       HEAP32[$92>>2] = $91;
+       __gcry_sexp_release($88);
+      }
+      $93 = (($$0141165$i) + 1)|0;
+      $94 = (($8) + ($93<<3)|0);
+      $95 = HEAP32[$94>>2]|0;
+      $96 = ($95|0)==(0|0);
+      if ($96) {
+       break;
+      } else {
+       $$0141165$i = $93;$87 = $95;
+      }
+     }
+     $97 = HEAP32[$2>>2]|0;
+     $98 = ($97|0)==(0|0);
+     L99: do {
+      if (!($98)) {
+       $99 = 1;
+       while(1) {
+        $$phi$trans$insert$i = (((($8) + ($99<<3)|0)) + 4|0);
+        $$pre$i = HEAP32[$$phi$trans$insert$i>>2]|0;
+        $100 = HEAP32[$$pre$i>>2]|0;
+        $101 = ($100|0)==(0|0);
+        $102 = (($99) + 1)|0;
+        if ($101) {
+         break L99;
+        }
+        $$phi$trans$insert = (($8) + ($102<<3)|0);
+        $$pre = HEAP32[$$phi$trans$insert>>2]|0;
+        $103 = ($$pre|0)==(0|0);
+        if ($103) {
+         break;
+        } else {
+         $99 = $102;
+        }
+       }
+       label = 40;
+       break L69;
+      }
+     } while(0);
+     __gcry_mpi_release($97);
+     $104 = 1;
+     while(1) {
+      $$phi$trans$insert171$i = (((($8) + ($104<<3)|0)) + 4|0);
+      $$pre172$i = HEAP32[$$phi$trans$insert171$i>>2]|0;
+      $105 = HEAP32[$$pre172$i>>2]|0;
+      __gcry_mpi_release($105);
+      $106 = (($104) + 1)|0;
+      $107 = (($8) + ($106<<3)|0);
+      $108 = HEAP32[$107>>2]|0;
+      $109 = ($108|0)==(0|0);
+      if ($109) {
+       break;
+      } else {
+       $104 = $106;
+      }
+     }
+     $$0147$i = 0;$$0148$i = 0;$$0149$i = 0;$$1146$i = 0;$$2$i = 128;
+    }
+   } while(0);
+   if ((label|0) == 40) {
+    $110 = (__gcry_mpi_alloc_set_ui($spec$select$i)|0);
+    $111 = HEAP32[$4>>2]|0;
+    $112 = HEAP32[$2>>2]|0;
+    $113 = HEAP32[$3>>2]|0;
+    $114 = (__gcry_derive_x931_prime($111,$112,$113,$110,0,0)|0);
+    $115 = HEAP32[$7>>2]|0;
+    $116 = HEAP32[$5>>2]|0;
+    $117 = HEAP32[$6>>2]|0;
+    $118 = (__gcry_derive_x931_prime($115,$116,$117,$110,0,0)|0);
+    $119 = HEAP32[$4>>2]|0;
+    __gcry_mpi_release($119);
+    HEAP32[$4>>2] = 0;
+    $120 = HEAP32[$2>>2]|0;
+    __gcry_mpi_release($120);
+    HEAP32[$2>>2] = 0;
+    $121 = HEAP32[$3>>2]|0;
+    __gcry_mpi_release($121);
+    HEAP32[$3>>2] = 0;
+    $122 = HEAP32[$7>>2]|0;
+    __gcry_mpi_release($122);
+    HEAP32[$7>>2] = 0;
+    $123 = HEAP32[$5>>2]|0;
+    __gcry_mpi_release($123);
+    HEAP32[$5>>2] = 0;
+    $124 = HEAP32[$6>>2]|0;
+    __gcry_mpi_release($124);
+    HEAP32[$6>>2] = 0;
+    $125 = ($114|0)!=(0|0);
+    $126 = ($118|0)!=(0|0);
+    $or$cond$i = $125 & $126;
+    if ($or$cond$i) {
+     $$0147$i = $114;$$0148$i = $118;$$0149$i = $110;$$1146$i = 1;$$2$i = 128;
+    } else {
+     __gcry_mpi_release($114);
+     __gcry_mpi_release($118);
+     __gcry_mpi_release($110);
+     $$0147$i = $114;$$0148$i = $118;$$0149$i = $110;$$1146$i = 0;$$2$i = 21;
+    }
+   }
+   if ($$1146$i) {
+    $127 = (__gcry_mpi_cmp($$0147$i,$$0148$i)|0);
+    $128 = ($127|0)>(0);
+    if ($128) {
+     __gcry_mpi_swap($$0147$i,$$0148$i);
+     $$041 = 1;
+    } else {
+     $$041 = 0;
+    }
+    $129 = (__gcry_mpi_new($34)|0);
+    __gcry_mpi_mul($129,$$0147$i,$$0148$i);
+    $130 = $34 >>> 1;
+    $131 = (__gcry_mpi_snew($130)|0);
+    $132 = (__gcry_mpi_snew($130)|0);
+    $133 = (__gcry_mpi_snew($34)|0);
+    __gcry_mpi_sub_ui($131,$$0147$i,1);
+    __gcry_mpi_sub_ui($132,$$0148$i,1);
+    __gcry_mpi_mul($133,$131,$132);
+    $134 = (__gcry_mpi_snew($34)|0);
+    $135 = (__gcry_mpi_gcd($134,$$0149$i,$133)|0);
+    $136 = ($135|0)==(0);
+    if ($136) {
+     __gcry_assert_failed(62065,61969,541,62099);
+     // unreachable;
+    }
+    (__gcry_mpi_gcd($134,$131,$132)|0);
+    __gcry_mpi_release($132);
+    __gcry_mpi_fdiv_q($131,$133,$134);
+    __gcry_mpi_release($133);
+    (__gcry_mpi_invm($134,$$0149$i,$131)|0);
+    (__gcry_mpi_invm($131,$$0147$i,$$0148$i)|0);
+    $137 = (__gcry_get_debug_flag(1)|0);
+    $138 = ($137|0)==(0);
+    if (!($138)) {
+     $139 = ($$041|0)==(0);
+     if (!($139)) {
+      __gcry_log_debug(62113,$vararg_buffer);
+     }
+     __gcry_log_printmpi(63829,$$0147$i);
+     __gcry_log_printmpi(62134,$$0148$i);
+     __gcry_log_printmpi(62138,$129);
+     __gcry_log_printmpi(62142,$$0149$i);
+     __gcry_log_printmpi(62146,$134);
+     __gcry_log_printmpi(62150,$131);
+    }
+    HEAP32[$11>>2] = $129;
+    $140 = ((($11)) + 4|0);
+    HEAP32[$140>>2] = $$0149$i;
+    $141 = ((($11)) + 12|0);
+    HEAP32[$141>>2] = $$0147$i;
+    $142 = ((($11)) + 16|0);
+    HEAP32[$142>>2] = $$0148$i;
+    $143 = ((($11)) + 8|0);
+    HEAP32[$143>>2] = $134;
+    $144 = ((($11)) + 20|0);
+    HEAP32[$144>>2] = $131;
+    $145 = (($34) + -64)|0;
+    $146 = (_test_keys($11,$145)|0);
+    $147 = ($146|0)==(0);
+    if ($147) {
+     $$142 = $$041;$$3$i = 0;
+    } else {
+     $148 = HEAP32[$11>>2]|0;
+     __gcry_mpi_release($148);
+     HEAP32[$11>>2] = 0;
+     $149 = HEAP32[$140>>2]|0;
+     __gcry_mpi_release($149);
+     HEAP32[$140>>2] = 0;
+     $150 = HEAP32[$141>>2]|0;
+     __gcry_mpi_release($150);
+     HEAP32[$141>>2] = 0;
+     $151 = HEAP32[$142>>2]|0;
+     __gcry_mpi_release($151);
+     HEAP32[$142>>2] = 0;
+     $152 = HEAP32[$143>>2]|0;
+     __gcry_mpi_release($152);
+     HEAP32[$143>>2] = 0;
+     $153 = HEAP32[$144>>2]|0;
+     __gcry_mpi_release($153);
+     HEAP32[$144>>2] = 0;
+     __gcry_fips_signal_error(61969,586,62099,0,62154);
+     $$142 = $$041;$$3$i = 50;
+    }
+   } else {
+    $$142 = 0;$$3$i = $$2$i;
+   }
+  }
+  __gcry_sexp_release($44);
+  $154 = ($$3$i|0)==(0);
+  $155 = ($$142|0)!=(0);
+  $or$cond = $155 & $154;
+  if ($or$cond) {
+   $156 = (__gcry_sexp_new($13,62192,0,1)|0);
+   $$1 = $156;
+  } else {
+   $$1 = $$3$i;
+  }
+  $229 = ($$1|0)==(0);
+  if ($229) {
+   $$pre53 = ((($11)) + 4|0);
+   $$pre55 = ((($11)) + 8|0);
+   $$pre57 = ((($11)) + 12|0);
+   $$pre59 = ((($11)) + 16|0);
+   $$pre61 = ((($11)) + 20|0);
+   $$pre$phi54Z2D = $$pre53;$$pre$phi56Z2D = $$pre55;$$pre$phi58Z2D = 
$$pre57;$$pre$phi60Z2D = $$pre59;$$pre$phi62Z2D = $$pre61;$$pre$phiZ2D = $11;
+   label = 88;
+  } else {
+   $$2 = $$1;
+  }
+ }
+ if ((label|0) == 88) {
+  $230 = HEAP32[$$pre$phiZ2D>>2]|0;
+  $231 = HEAP32[$$pre$phi54Z2D>>2]|0;
+  $232 = HEAP32[$$pre$phi56Z2D>>2]|0;
+  $233 = HEAP32[$$pre$phi58Z2D>>2]|0;
+  $234 = HEAP32[$$pre$phi60Z2D>>2]|0;
+  $235 = HEAP32[$$pre$phi62Z2D>>2]|0;
+  $236 = HEAP32[$13>>2]|0;
+  HEAP32[$vararg_buffer1>>2] = $230;
+  $vararg_ptr3 = ((($vararg_buffer1)) + 4|0);
+  HEAP32[$vararg_ptr3>>2] = $231;
+  $vararg_ptr4 = ((($vararg_buffer1)) + 8|0);
+  HEAP32[$vararg_ptr4>>2] = $230;
+  $vararg_ptr5 = ((($vararg_buffer1)) + 12|0);
+  HEAP32[$vararg_ptr5>>2] = $231;
+  $vararg_ptr6 = ((($vararg_buffer1)) + 16|0);
+  HEAP32[$vararg_ptr6>>2] = $232;
+  $vararg_ptr7 = ((($vararg_buffer1)) + 20|0);
+  HEAP32[$vararg_ptr7>>2] = $233;
+  $vararg_ptr8 = ((($vararg_buffer1)) + 24|0);
+  HEAP32[$vararg_ptr8>>2] = $234;
+  $vararg_ptr9 = ((($vararg_buffer1)) + 28|0);
+  HEAP32[$vararg_ptr9>>2] = $235;
+  $vararg_ptr10 = ((($vararg_buffer1)) + 32|0);
+  HEAP32[$vararg_ptr10>>2] = $236;
+  $237 = (__gcry_sexp_build($1,0,62288,$vararg_buffer1)|0);
+  $$2 = $237;
+ }
+ $238 = HEAP32[$11>>2]|0;
+ __gcry_mpi_free($238);
+ $239 = ((($11)) + 4|0);
+ $240 = HEAP32[$239>>2]|0;
+ __gcry_mpi_free($240);
+ $241 = ((($11)) + 12|0);
+ $242 = HEAP32[$241>>2]|0;
+ __gcry_mpi_free($242);
+ $243 = ((($11)) + 16|0);
+ $244 = HEAP32[$243>>2]|0;
+ __gcry_mpi_free($244);
+ $245 = ((($11)) + 8|0);
+ $246 = HEAP32[$245>>2]|0;
+ __gcry_mpi_free($246);
+ $247 = ((($11)) + 20|0);
+ $248 = HEAP32[$247>>2]|0;
+ __gcry_mpi_free($248);
+ $249 = HEAP32[$13>>2]|0;
+ __gcry_sexp_release($249);
+ $$0 = $$2;
+ STACKTOP = sp;return ($$0|0);
+}
+function _rsa_check_secret_key($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, 
$24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$spec$select = 0, $vararg_buffer = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0, 
$vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, 
$vararg_ptr6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(64|0);
+ $vararg_buffer7 = sp + 32|0;
+ $vararg_buffer = sp;
+ $1 = sp + 40|0;
+ 
;HEAP32[$1>>2]=0|0;HEAP32[$1+4>>2]=0|0;HEAP32[$1+8>>2]=0|0;HEAP32[$1+12>>2]=0|0;HEAP32[$1+16>>2]=0|0;HEAP32[$1+20>>2]=0|0;
+ $2 = ((($1)) + 4|0);
+ $3 = ((($1)) + 8|0);
+ $4 = ((($1)) + 12|0);
+ $5 = ((($1)) + 16|0);
+ $6 = ((($1)) + 20|0);
+ HEAP32[$vararg_buffer>>2] = $1;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $2;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = $3;
+ $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+ HEAP32[$vararg_ptr3>>2] = $4;
+ $vararg_ptr4 = ((($vararg_buffer)) + 16|0);
+ HEAP32[$vararg_ptr4>>2] = $5;
+ $vararg_ptr5 = ((($vararg_buffer)) + 20|0);
+ HEAP32[$vararg_ptr5>>2] = $6;
+ $vararg_ptr6 = ((($vararg_buffer)) + 24|0);
+ HEAP32[$vararg_ptr6>>2] = 0;
+ $7 = (__gcry_sexp_extract_param($0,0,60972,$vararg_buffer)|0);
+ $8 = ($7|0)==(0);
+ if ($8) {
+  $9 = HEAP32[$4>>2]|0;
+  $10 = ((($9)) + 4|0);
+  $11 = HEAP32[$10>>2]|0;
+  $12 = $11 << 1;
+  $13 = (__gcry_mpi_alloc($12)|0);
+  $14 = HEAP32[$4>>2]|0;
+  $15 = HEAP32[$5>>2]|0;
+  __gcry_mpi_mul($13,$14,$15);
+  $16 = HEAP32[$1>>2]|0;
+  $17 = (__gcry_mpi_cmp($13,$16)|0);
+  __gcry_mpi_free($13);
+  $18 = ($17|0)==(0);
+  $spec$select = $18 ? 0 : 7;
+  $$0 = $spec$select;
+ } else {
+  $$0 = $7;
+ }
+ $19 = HEAP32[$1>>2]|0;
+ __gcry_mpi_release($19);
+ $20 = HEAP32[$2>>2]|0;
+ __gcry_mpi_release($20);
+ $21 = HEAP32[$3>>2]|0;
+ __gcry_mpi_release($21);
+ $22 = HEAP32[$4>>2]|0;
+ __gcry_mpi_release($22);
+ $23 = HEAP32[$5>>2]|0;
+ __gcry_mpi_release($23);
+ $24 = HEAP32[$6>>2]|0;
+ __gcry_mpi_release($24);
+ $25 = (__gcry_get_debug_flag(1)|0);
+ $26 = ($25|0)==(0);
+ if ($26) {
+  STACKTOP = sp;return ($$0|0);
+ }
+ $27 = (_gpg_strerror($$0)|0);
+ HEAP32[$vararg_buffer7>>2] = $27;
+ __gcry_log_debug(61889,$vararg_buffer7);
+ STACKTOP = sp;return ($$0|0);
+}
+function _rsa_encrypt($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$0$i = 0, $$021 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 
0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 
= 0, $23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0;
+ var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, 
$51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 
0, $6 = 0, $60 = 0, $61 = 0;
+ var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $7 = 0, $8 
= 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer10 = 0, $vararg_buffer3 = 0, 
$vararg_buffer7 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(96|0);
+ $vararg_buffer10 = sp + 40|0;
+ $vararg_buffer7 = sp + 32|0;
+ $vararg_buffer3 = sp + 24|0;
+ $vararg_buffer = sp + 8|0;
+ $3 = sp + 56|0;
+ $4 = sp + 48|0;
+ $5 = sp;
+ $6 = sp + 44|0;
+ HEAP32[$4>>2] = 0;
+ $7 = $5;
+ $8 = $7;
+ HEAP32[$8>>2] = 0;
+ $9 = (($7) + 4)|0;
+ $10 = $9;
+ HEAP32[$10>>2] = 0;
+ $11 = (__gcry_sexp_find_token($2,60983,1)|0);
+ $12 = ($11|0)==(0|0);
+ if ($12) {
+  $$0$i = 0;
+ } else {
+  $13 = (__gcry_sexp_nth_mpi($11,1,5)|0);
+  __gcry_sexp_release($11);
+  $14 = ($13|0)==(0|0);
+  if ($14) {
+   $68 = 0;
+  } else {
+   $15 = (__gcry_mpi_get_nbits($13)|0);
+   $68 = $15;
+  }
+  __gcry_mpi_release($13);
+  $$0$i = $68;
+ }
+ __gcry_pk_util_init_encoding_ctx($3,0,$$0$i);
+ $16 = (__gcry_pk_util_data_to_mpi($1,$4,$3)|0);
+ $17 = ($16|0)==(0);
+ do {
+  if ($17) {
+   $18 = (__gcry_get_debug_flag(1)|0);
+   $19 = ($18|0)==(0);
+   if (!($19)) {
+    $20 = HEAP32[$4>>2]|0;
+    __gcry_log_printmpi(61759,$20);
+   }
+   $21 = HEAP32[$4>>2]|0;
+   $22 = ($21|0)==(0|0);
+   if (!($22)) {
+    $23 = ((($21)) + 12|0);
+    $24 = HEAP32[$23>>2]|0;
+    $25 = $24 & 4;
+    $26 = ($25|0)==(0);
+    if (!($26)) {
+     $$021 = 0;$$1 = 79;
+     break;
+    }
+   }
+   $27 = ((($5)) + 4|0);
+   HEAP32[$vararg_buffer>>2] = $5;
+   $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+   HEAP32[$vararg_ptr1>>2] = $27;
+   $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+   HEAP32[$vararg_ptr2>>2] = 0;
+   $28 = (__gcry_sexp_extract_param($2,0,60969,$vararg_buffer)|0);
+   $29 = ($28|0)==(0);
+   if ($29) {
+    $30 = (__gcry_get_debug_flag(1)|0);
+    $31 = ($30|0)==(0);
+    if (!($31)) {
+     $32 = HEAP32[$5>>2]|0;
+     __gcry_log_printmpi(61776,$32);
+     $33 = HEAP32[$27>>2]|0;
+     __gcry_log_printmpi(61793,$33);
+    }
+    $34 = (__gcry_mpi_new(0)|0);
+    $35 = HEAP32[$4>>2]|0;
+    $36 = ($34|0)==($35|0);
+    if ($36) {
+     $37 = ((($34)) + 4|0);
+     $38 = HEAP32[$37>>2]|0;
+     $39 = $38 << 1;
+     $40 = (__gcry_mpi_alloc($39)|0);
+     $41 = HEAP32[$27>>2]|0;
+     $42 = HEAP32[$5>>2]|0;
+     __gcry_mpi_powm($40,$34,$41,$42);
+     (__gcry_mpi_set($34,$40)|0);
+     __gcry_mpi_free($40);
+    } else {
+     $43 = HEAP32[$27>>2]|0;
+     $44 = HEAP32[$5>>2]|0;
+     __gcry_mpi_powm($34,$35,$43,$44);
+    }
+    $45 = (__gcry_get_debug_flag(1)|0);
+    $46 = ($45|0)==(0);
+    if (!($46)) {
+     __gcry_log_printmpi(61810,$34);
+    }
+    $47 = ((($3)) + 12|0);
+    $48 = HEAP32[$47>>2]|0;
+    $49 = $48 & 4;
+    $50 = ($49|0)==(0);
+    if ($50) {
+     HEAP32[$vararg_buffer7>>2] = $34;
+     $60 = (__gcry_sexp_build($0,0,61847,$vararg_buffer7)|0);
+     $$021 = $34;$$1 = $60;
+     break;
+    }
+    $51 = HEAP32[$5>>2]|0;
+    $52 = (__gcry_mpi_get_nbits($51)|0);
+    $53 = (($52) + 7)|0;
+    $54 = $53 >>> 3;
+    $55 = (__gcry_mpi_to_octet_string($6,0,$34,$54)|0);
+    $56 = ($55|0)==(0);
+    if ($56) {
+     $57 = HEAP32[$6>>2]|0;
+     HEAP32[$vararg_buffer3>>2] = $54;
+     $vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
+     HEAP32[$vararg_ptr6>>2] = $57;
+     $58 = (__gcry_sexp_build($0,0,61827,$vararg_buffer3)|0);
+     $59 = HEAP32[$6>>2]|0;
+     __gcry_free($59);
+     $$0 = $58;
+    } else {
+     $$0 = $55;
+    }
+    $$021 = $34;$$1 = $$0;
+   } else {
+    $$021 = 0;$$1 = $28;
+   }
+  } else {
+   $$021 = 0;$$1 = $16;
+  }
+ } while(0);
+ __gcry_mpi_release($$021);
+ $61 = HEAP32[$5>>2]|0;
+ __gcry_mpi_release($61);
+ $62 = ((($5)) + 4|0);
+ $63 = HEAP32[$62>>2]|0;
+ __gcry_mpi_release($63);
+ $64 = HEAP32[$4>>2]|0;
+ __gcry_mpi_release($64);
+ __gcry_pk_util_free_encoding_ctx($3);
+ $65 = (__gcry_get_debug_flag(1)|0);
+ $66 = ($65|0)==(0);
+ if ($66) {
+  STACKTOP = sp;return ($$1|0);
+ }
+ $67 = (_gpg_strerror($$1)|0);
+ HEAP32[$vararg_buffer10>>2] = $67;
+ __gcry_log_debug(61867,$vararg_buffer10);
+ STACKTOP = sp;return ($$1|0);
+}
+function _rsa_decrypt($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0$i = 0, $$053 = 0, $$054 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, 
$103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, 
$110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0;
+ var $115 = 0, $116 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 
0, $27 = 0, $28 = 0, $29 = 0;
+ var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, 
$37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, 
$45 = 0, $46 = 0, $47 = 0;
+ var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, 
$55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, 
$63 = 0, $64 = 0, $65 = 0;
+ var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, 
$73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, 
$81 = 0, $82 = 0, $83 = 0;
+ var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, 
$91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 
0, $vararg_buffer = 0, $vararg_buffer11 = 0, $vararg_buffer15 = 0;
+ var $vararg_buffer19 = 0, $vararg_buffer2 = 0, $vararg_buffer22 = 0, 
$vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr14 = 0, $vararg_ptr18 = 0, 
$vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, 
$vararg_ptr9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(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;
+ $3 = sp + 112|0;
+ $4 = sp + 108|0;
+ $5 = sp + 104|0;
+ $6 = sp + 80|0;
+ $7 = sp + 72|0;
+ $8 = sp + 68|0;
+ HEAP32[$4>>2] = 0;
+ HEAP32[$5>>2] = 0;
+ 
;HEAP32[$6>>2]=0|0;HEAP32[$6+4>>2]=0|0;HEAP32[$6+8>>2]=0|0;HEAP32[$6+12>>2]=0|0;HEAP32[$6+16>>2]=0|0;HEAP32[$6+20>>2]=0|0;
+ HEAP32[$7>>2] = 0;
+ HEAP32[$8>>2] = 0;
+ $9 = (__gcry_sexp_find_token($2,60983,1)|0);
+ $10 = ($9|0)==(0|0);
+ if ($10) {
+  $$0$i = 0;
+ } else {
+  $11 = (__gcry_sexp_nth_mpi($9,1,5)|0);
+  __gcry_sexp_release($9);
+  $12 = ($11|0)==(0|0);
+  if ($12) {
+   $116 = 0;
+  } else {
+   $13 = (__gcry_mpi_get_nbits($11)|0);
+   $116 = $13;
+  }
+  __gcry_mpi_release($11);
+  $$0$i = $116;
+ }
+ __gcry_pk_util_init_encoding_ctx($3,1,$$0$i);
+ $14 = (__gcry_pk_util_preparse_encval($1,6464,$4,$3)|0);
+ $15 = ($14|0)==(0);
+ L7: do {
+  if ($15) {
+   $16 = HEAP32[$4>>2]|0;
+   HEAP32[$vararg_buffer>>2] = $5;
+   $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+   HEAP32[$vararg_ptr1>>2] = 0;
+   $17 = (__gcry_sexp_extract_param($16,0,60979,$vararg_buffer)|0);
+   $18 = ($17|0)==(0);
+   if ($18) {
+    $19 = (__gcry_get_debug_flag(1)|0);
+    $20 = ($19|0)==(0);
+    if (!($20)) {
+     $21 = HEAP32[$5>>2]|0;
+     __gcry_log_printmpi(61587,$21);
+    }
+    $22 = HEAP32[$5>>2]|0;
+    $23 = ($22|0)==(0|0);
+    if (!($23)) {
+     $24 = ((($22)) + 12|0);
+     $25 = HEAP32[$24>>2]|0;
+     $26 = $25 & 4;
+     $27 = ($26|0)==(0);
+     if (!($27)) {
+      $$053 = 0;$$054 = 79;
+      break;
+     }
+    }
+    $28 = ((($6)) + 4|0);
+    $29 = ((($6)) + 8|0);
+    $30 = ((($6)) + 12|0);
+    $31 = ((($6)) + 16|0);
+    $32 = ((($6)) + 20|0);
+    HEAP32[$vararg_buffer2>>2] = $6;
+    $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+    HEAP32[$vararg_ptr5>>2] = $28;
+    $vararg_ptr6 = ((($vararg_buffer2)) + 8|0);
+    HEAP32[$vararg_ptr6>>2] = $29;
+    $vararg_ptr7 = ((($vararg_buffer2)) + 12|0);
+    HEAP32[$vararg_ptr7>>2] = $30;
+    $vararg_ptr8 = ((($vararg_buffer2)) + 16|0);
+    HEAP32[$vararg_ptr8>>2] = $31;
+    $vararg_ptr9 = ((($vararg_buffer2)) + 20|0);
+    HEAP32[$vararg_ptr9>>2] = $32;
+    $vararg_ptr10 = ((($vararg_buffer2)) + 24|0);
+    HEAP32[$vararg_ptr10>>2] = 0;
+    $33 = (__gcry_sexp_extract_param($2,0,61404,$vararg_buffer2)|0);
+    $34 = ($33|0)==(0);
+    if ($34) {
+     $35 = (__gcry_get_debug_flag(1)|0);
+     $36 = ($35|0)==(0);
+     if (!($36)) {
+      $37 = HEAP32[$6>>2]|0;
+      __gcry_log_printmpi(61604,$37);
+      $38 = HEAP32[$28>>2]|0;
+      __gcry_log_printmpi(61621,$38);
+      $39 = (__gcry_fips_mode()|0);
+      $40 = ($39|0)==(0);
+      if ($40) {
+       $41 = HEAP32[$29>>2]|0;
+       __gcry_log_printmpi(61638,$41);
+       $42 = HEAP32[$30>>2]|0;
+       __gcry_log_printmpi(61655,$42);
+       $43 = HEAP32[$31>>2]|0;
+       __gcry_log_printmpi(61672,$43);
+       $44 = HEAP32[$32>>2]|0;
+       __gcry_log_printmpi(61689,$44);
+      }
+     }
+     $45 = HEAP32[$5>>2]|0;
+     __gcry_mpi_normalize($45);
+     $46 = HEAP32[$5>>2]|0;
+     $47 = HEAP32[$6>>2]|0;
+     __gcry_mpi_fdiv_r($46,$46,$47);
+     $48 = ((($3)) + 4|0);
+     $49 = HEAP32[$48>>2]|0;
+     $50 = (__gcry_mpi_snew($49)|0);
+     $51 = ((($3)) + 12|0);
+     $52 = HEAP32[$51>>2]|0;
+     $53 = $52 & 1;
+     $54 = ($53|0)==(0);
+     if ($54) {
+      $55 = HEAP32[$48>>2]|0;
+      $56 = (__gcry_mpi_snew($55)|0);
+      $57 = HEAP32[$48>>2]|0;
+      $58 = (__gcry_mpi_snew($57)|0);
+      $59 = HEAP32[$48>>2]|0;
+      $60 = (__gcry_mpi_snew($59)|0);
+      while(1) {
+       $61 = HEAP32[$48>>2]|0;
+       __gcry_mpi_randomize($56,$61,0);
+       $62 = HEAP32[$6>>2]|0;
+       __gcry_mpi_mod($56,$56,$62);
+       $63 = HEAP32[$6>>2]|0;
+       $64 = (__gcry_mpi_invm($58,$56,$63)|0);
+       $65 = ($64|0)==(0);
+       if (!($65)) {
+        break;
+       }
+      }
+      $66 = HEAP32[$28>>2]|0;
+      $67 = HEAP32[$6>>2]|0;
+      __gcry_mpi_powm($60,$56,$66,$67);
+      $68 = HEAP32[$5>>2]|0;
+      $69 = HEAP32[$6>>2]|0;
+      __gcry_mpi_mulm($60,$60,$68,$69);
+      _secret($50,$60,$6);
+      __gcry_mpi_release($60);
+      $70 = HEAP32[$6>>2]|0;
+      __gcry_mpi_mulm($50,$50,$58,$70);
+      __gcry_mpi_release($56);
+      __gcry_mpi_release($58);
+     } else {
+      $71 = HEAP32[$5>>2]|0;
+      _secret($50,$71,$6);
+     }
+     $72 = (__gcry_get_debug_flag(1)|0);
+     $73 = ($72|0)==(0);
+     if (!($73)) {
+      __gcry_log_printmpi(61706,$50);
+     }
+     $74 = ((($3)) + 8|0);
+     $75 = HEAP32[$74>>2]|0;
+     switch ($75|0) {
+     case 1:  {
+      $76 = HEAP32[$48>>2]|0;
+      $77 = (__gcry_rsa_pkcs1_decode_for_enc($7,$8,$76,$50)|0);
+      __gcry_mpi_free($50);
+      $78 = ($77|0)==(0);
+      if (!($78)) {
+       $$053 = 0;$$054 = $77;
+       break L7;
+      }
+      $79 = HEAP32[$8>>2]|0;
+      $80 = HEAP32[$7>>2]|0;
+      HEAP32[$vararg_buffer11>>2] = $79;
+      $vararg_ptr14 = ((($vararg_buffer11)) + 4|0);
+      HEAP32[$vararg_ptr14>>2] = $80;
+      $81 = (__gcry_sexp_build($0,0,61723,$vararg_buffer11)|0);
+      $$053 = 0;$$054 = $81;
+      break L7;
+      break;
+     }
+     case 3:  {
+      $82 = HEAP32[$48>>2]|0;
+      $83 = ((($3)) + 16|0);
+      $84 = HEAP32[$83>>2]|0;
+      $85 = ((($3)) + 20|0);
+      $86 = HEAP32[$85>>2]|0;
+      $87 = ((($3)) + 24|0);
+      $88 = HEAP32[$87>>2]|0;
+      $89 = (__gcry_rsa_oaep_decode($7,$8,$82,$84,$50,$86,$88)|0);
+      __gcry_mpi_free($50);
+      $90 = ($89|0)==(0);
+      if (!($90)) {
+       $$053 = 0;$$054 = $89;
+       break L7;
+      }
+      $91 = HEAP32[$8>>2]|0;
+      $92 = HEAP32[$7>>2]|0;
+      HEAP32[$vararg_buffer15>>2] = $91;
+      $vararg_ptr18 = ((($vararg_buffer15)) + 4|0);
+      HEAP32[$vararg_ptr18>>2] = $92;
+      $93 = (__gcry_sexp_build($0,0,61723,$vararg_buffer15)|0);
+      $$053 = 0;$$054 = $93;
+      break L7;
+      break;
+     }
+     default: {
+      $94 = HEAP32[$51>>2]|0;
+      $95 = $94 & 8;
+      $96 = ($95|0)==(0);
+      $97 = $96 ? 65600 : 61734;
+      HEAP32[$vararg_buffer19>>2] = $50;
+      $98 = (__gcry_sexp_build($0,0,$97,$vararg_buffer19)|0);
+      $$053 = $50;$$054 = $98;
+      break L7;
+     }
+     }
+    } else {
+     $$053 = 0;$$054 = $33;
+    }
+   } else {
+    $$053 = 0;$$054 = $17;
+   }
+  } else {
+   $$053 = 0;$$054 = $14;
+  }
+ } while(0);
+ $99 = HEAP32[$7>>2]|0;
+ __gcry_free($99);
+ __gcry_mpi_release($$053);
+ $100 = HEAP32[$6>>2]|0;
+ __gcry_mpi_release($100);
+ $101 = ((($6)) + 4|0);
+ $102 = HEAP32[$101>>2]|0;
+ __gcry_mpi_release($102);
+ $103 = ((($6)) + 8|0);
+ $104 = HEAP32[$103>>2]|0;
+ __gcry_mpi_release($104);
+ $105 = ((($6)) + 12|0);
+ $106 = HEAP32[$105>>2]|0;
+ __gcry_mpi_release($106);
+ $107 = ((($6)) + 16|0);
+ $108 = HEAP32[$107>>2]|0;
+ __gcry_mpi_release($108);
+ $109 = ((($6)) + 20|0);
+ $110 = HEAP32[$109>>2]|0;
+ __gcry_mpi_release($110);
+ $111 = HEAP32[$5>>2]|0;
+ __gcry_mpi_release($111);
+ __gcry_mpi_release(0);
+ __gcry_mpi_release(0);
+ __gcry_mpi_release(0);
+ $112 = HEAP32[$4>>2]|0;
+ __gcry_sexp_release($112);
+ __gcry_pk_util_free_encoding_ctx($3);
+ $113 = (__gcry_get_debug_flag(1)|0);
+ $114 = ($113|0)==(0);
+ if ($114) {
+  STACKTOP = sp;return ($$054|0);
+ }
+ $115 = (_gpg_strerror($$054)|0);
+ HEAP32[$vararg_buffer22>>2] = $115;
+ __gcry_log_debug(61737,$vararg_buffer22);
+ STACKTOP = sp;return ($$054|0);
+}
+function _rsa_sign($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$0$i = 0, $$021 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 
0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 
= 0, $23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0;
+ var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, 
$51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 
0, $6 = 0, $60 = 0, $61 = 0;
+ var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, 
$7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, 
$vararg_buffer11 = 0, $vararg_buffer14 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 
0;
+ var $vararg_ptr10 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, 
$vararg_ptr5 = 0, $vararg_ptr6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(128|0);
+ $vararg_buffer14 = sp + 48|0;
+ $vararg_buffer11 = sp + 40|0;
+ $vararg_buffer7 = sp + 32|0;
+ $vararg_buffer = sp;
+ $3 = sp + 88|0;
+ $4 = sp + 80|0;
+ $5 = sp + 56|0;
+ $6 = sp + 52|0;
+ HEAP32[$4>>2] = 0;
+ 
;HEAP32[$5>>2]=0|0;HEAP32[$5+4>>2]=0|0;HEAP32[$5+8>>2]=0|0;HEAP32[$5+12>>2]=0|0;HEAP32[$5+16>>2]=0|0;HEAP32[$5+20>>2]=0|0;
+ $7 = (__gcry_sexp_find_token($2,60983,1)|0);
+ $8 = ($7|0)==(0|0);
+ if ($8) {
+  $$0$i = 0;
+ } else {
+  $9 = (__gcry_sexp_nth_mpi($7,1,5)|0);
+  __gcry_sexp_release($7);
+  $10 = ($9|0)==(0|0);
+  if ($10) {
+   $73 = 0;
+  } else {
+   $11 = (__gcry_mpi_get_nbits($9)|0);
+   $73 = $11;
+  }
+  __gcry_mpi_release($9);
+  $$0$i = $73;
+ }
+ __gcry_pk_util_init_encoding_ctx($3,2,$$0$i);
+ $12 = (__gcry_pk_util_data_to_mpi($1,$4,$3)|0);
+ $13 = ($12|0)==(0);
+ do {
+  if ($13) {
+   $14 = (__gcry_get_debug_flag(1)|0);
+   $15 = ($14|0)==(0);
+   if (!($15)) {
+    $16 = HEAP32[$4>>2]|0;
+    __gcry_log_printmpi(61388,$16);
+   }
+   $17 = HEAP32[$4>>2]|0;
+   $18 = ($17|0)==(0|0);
+   if (!($18)) {
+    $19 = ((($17)) + 12|0);
+    $20 = HEAP32[$19>>2]|0;
+    $21 = $20 & 4;
+    $22 = ($21|0)==(0);
+    if (!($22)) {
+     $$021 = 0;$$1 = 79;
+     break;
+    }
+   }
+   $23 = ((($5)) + 4|0);
+   $24 = ((($5)) + 8|0);
+   $25 = ((($5)) + 12|0);
+   $26 = ((($5)) + 16|0);
+   $27 = ((($5)) + 20|0);
+   HEAP32[$vararg_buffer>>2] = $5;
+   $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+   HEAP32[$vararg_ptr1>>2] = $23;
+   $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+   HEAP32[$vararg_ptr2>>2] = $24;
+   $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+   HEAP32[$vararg_ptr3>>2] = $25;
+   $vararg_ptr4 = ((($vararg_buffer)) + 16|0);
+   HEAP32[$vararg_ptr4>>2] = $26;
+   $vararg_ptr5 = ((($vararg_buffer)) + 20|0);
+   HEAP32[$vararg_ptr5>>2] = $27;
+   $vararg_ptr6 = ((($vararg_buffer)) + 24|0);
+   HEAP32[$vararg_ptr6>>2] = 0;
+   $28 = (__gcry_sexp_extract_param($2,0,61404,$vararg_buffer)|0);
+   $29 = ($28|0)==(0);
+   if ($29) {
+    $30 = (__gcry_get_debug_flag(1)|0);
+    $31 = ($30|0)==(0);
+    if (!($31)) {
+     $32 = HEAP32[$5>>2]|0;
+     __gcry_log_printmpi(61414,$32);
+     $33 = HEAP32[$23>>2]|0;
+     __gcry_log_printmpi(61430,$33);
+     $34 = (__gcry_fips_mode()|0);
+     $35 = ($34|0)==(0);
+     if ($35) {
+      $36 = HEAP32[$24>>2]|0;
+      __gcry_log_printmpi(61446,$36);
+      $37 = HEAP32[$25>>2]|0;
+      __gcry_log_printmpi(61462,$37);
+      $38 = HEAP32[$26>>2]|0;
+      __gcry_log_printmpi(61478,$38);
+      $39 = HEAP32[$27>>2]|0;
+      __gcry_log_printmpi(61494,$39);
+     }
+    }
+    $40 = (__gcry_mpi_new(0)|0);
+    $41 = HEAP32[$4>>2]|0;
+    _secret($40,$41,$5);
+    $42 = (__gcry_get_debug_flag(1)|0);
+    $43 = ($42|0)==(0);
+    if (!($43)) {
+     __gcry_log_printmpi(61510,$40);
+    }
+    $44 = ((($3)) + 12|0);
+    $45 = HEAP32[$44>>2]|0;
+    $46 = $45 & 4;
+    $47 = ($46|0)==(0);
+    if ($47) {
+     HEAP32[$vararg_buffer11>>2] = $40;
+     $57 = (__gcry_sexp_build($0,0,61546,$vararg_buffer11)|0);
+     $$021 = $40;$$1 = $57;
+     break;
+    }
+    $48 = HEAP32[$5>>2]|0;
+    $49 = (__gcry_mpi_get_nbits($48)|0);
+    $50 = (($49) + 7)|0;
+    $51 = $50 >>> 3;
+    $52 = (__gcry_mpi_to_octet_string($6,0,$40,$51)|0);
+    $53 = ($52|0)==(0);
+    if ($53) {
+     $54 = HEAP32[$6>>2]|0;
+     HEAP32[$vararg_buffer7>>2] = $51;
+     $vararg_ptr10 = ((($vararg_buffer7)) + 4|0);
+     HEAP32[$vararg_ptr10>>2] = $54;
+     $55 = (__gcry_sexp_build($0,0,61526,$vararg_buffer7)|0);
+     $56 = HEAP32[$6>>2]|0;
+     __gcry_free($56);
+     $$0 = $55;
+    } else {
+     $$0 = $52;
+    }
+    $$021 = $40;$$1 = $$0;
+   } else {
+    $$021 = 0;$$1 = $28;
+   }
+  } else {
+   $$021 = 0;$$1 = $12;
+  }
+ } while(0);
+ __gcry_mpi_release($$021);
+ $58 = HEAP32[$5>>2]|0;
+ __gcry_mpi_release($58);
+ $59 = ((($5)) + 4|0);
+ $60 = HEAP32[$59>>2]|0;
+ __gcry_mpi_release($60);
+ $61 = ((($5)) + 8|0);
+ $62 = HEAP32[$61>>2]|0;
+ __gcry_mpi_release($62);
+ $63 = ((($5)) + 12|0);
+ $64 = HEAP32[$63>>2]|0;
+ __gcry_mpi_release($64);
+ $65 = ((($5)) + 16|0);
+ $66 = HEAP32[$65>>2]|0;
+ __gcry_mpi_release($66);
+ $67 = ((($5)) + 20|0);
+ $68 = HEAP32[$67>>2]|0;
+ __gcry_mpi_release($68);
+ $69 = HEAP32[$4>>2]|0;
+ __gcry_mpi_release($69);
+ __gcry_pk_util_free_encoding_ctx($3);
+ $70 = (__gcry_get_debug_flag(1)|0);
+ $71 = ($70|0)==(0);
+ if ($71) {
+  STACKTOP = sp;return ($$1|0);
+ }
+ $72 = (_gpg_strerror($$1)|0);
+ HEAP32[$vararg_buffer14>>2] = $72;
+ __gcry_log_debug(61566,$vararg_buffer14);
+ STACKTOP = sp;return ($$1|0);
+}
+function _rsa_verify($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$0$i = 0, $$018 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 
0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 
= 0, $24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, 
$34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, 
$42 = 0, $43 = 0, $44 = 0;
+ var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, 
$52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, 
$60 = 0, $61 = 0, $62 = 0;
+ var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, 
$70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $8 = 0, $9 = 0, 
$vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0;
+ var $vararg_ptr5 = 0, $vararg_ptr6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(96|0);
+ $vararg_buffer7 = sp + 32|0;
+ $vararg_buffer2 = sp + 16|0;
+ $vararg_buffer = sp + 8|0;
+ $3 = sp + 48|0;
+ $4 = sp + 44|0;
+ $5 = sp + 40|0;
+ $6 = sp + 36|0;
+ $7 = sp;
+ HEAP32[$4>>2] = 0;
+ HEAP32[$5>>2] = 0;
+ HEAP32[$6>>2] = 0;
+ $8 = $7;
+ $9 = $8;
+ HEAP32[$9>>2] = 0;
+ $10 = (($8) + 4)|0;
+ $11 = $10;
+ HEAP32[$11>>2] = 0;
+ $12 = (__gcry_sexp_find_token($2,60983,1)|0);
+ $13 = ($12|0)==(0|0);
+ if ($13) {
+  $$0$i = 0;
+ } else {
+  $14 = (__gcry_sexp_nth_mpi($12,1,5)|0);
+  __gcry_sexp_release($12);
+  $15 = ($14|0)==(0|0);
+  if ($15) {
+   $75 = 0;
+  } else {
+   $16 = (__gcry_mpi_get_nbits($14)|0);
+   $75 = $16;
+  }
+  __gcry_mpi_release($14);
+  $$0$i = $75;
+ }
+ __gcry_pk_util_init_encoding_ctx($3,3,$$0$i);
+ $17 = (__gcry_pk_util_data_to_mpi($1,$6,$3)|0);
+ $18 = ($17|0)==(0);
+ do {
+  if ($18) {
+   $19 = (__gcry_get_debug_flag(1)|0);
+   $20 = ($19|0)==(0);
+   if (!($20)) {
+    $21 = HEAP32[$6>>2]|0;
+    __gcry_log_printmpi(61287,$21);
+   }
+   $22 = HEAP32[$6>>2]|0;
+   $23 = ($22|0)==(0|0);
+   if (!($23)) {
+    $24 = ((($22)) + 12|0);
+    $25 = HEAP32[$24>>2]|0;
+    $26 = $25 & 4;
+    $27 = ($26|0)==(0);
+    if (!($27)) {
+     $$0 = 0;$$018 = 79;
+     break;
+    }
+   }
+   $28 = (__gcry_pk_util_preparse_sigval($0,6464,$4,0)|0);
+   $29 = ($28|0)==(0);
+   if ($29) {
+    $30 = HEAP32[$4>>2]|0;
+    HEAP32[$vararg_buffer>>2] = $5;
+    $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+    HEAP32[$vararg_ptr1>>2] = 0;
+    $31 = (__gcry_sexp_extract_param($30,0,60981,$vararg_buffer)|0);
+    $32 = ($31|0)==(0);
+    if ($32) {
+     $33 = (__gcry_get_debug_flag(1)|0);
+     $34 = ($33|0)==(0);
+     if (!($34)) {
+      $35 = HEAP32[$5>>2]|0;
+      __gcry_log_printmpi(61303,$35);
+     }
+     $36 = ((($7)) + 4|0);
+     HEAP32[$vararg_buffer2>>2] = $7;
+     $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+     HEAP32[$vararg_ptr5>>2] = $36;
+     $vararg_ptr6 = ((($vararg_buffer2)) + 8|0);
+     HEAP32[$vararg_ptr6>>2] = 0;
+     $37 = (__gcry_sexp_extract_param($2,0,60969,$vararg_buffer2)|0);
+     $38 = ($37|0)==(0);
+     if ($38) {
+      $39 = (__gcry_get_debug_flag(1)|0);
+      $40 = ($39|0)==(0);
+      if (!($40)) {
+       $41 = HEAP32[$7>>2]|0;
+       __gcry_log_printmpi(61319,$41);
+       $42 = HEAP32[$36>>2]|0;
+       __gcry_log_printmpi(61335,$42);
+      }
+      $43 = (__gcry_mpi_new(0)|0);
+      $44 = HEAP32[$5>>2]|0;
+      $45 = ($43|0)==($44|0);
+      if ($45) {
+       $46 = ((($43)) + 4|0);
+       $47 = HEAP32[$46>>2]|0;
+       $48 = $47 << 1;
+       $49 = (__gcry_mpi_alloc($48)|0);
+       $50 = HEAP32[$36>>2]|0;
+       $51 = HEAP32[$7>>2]|0;
+       __gcry_mpi_powm($49,$43,$50,$51);
+       (__gcry_mpi_set($43,$49)|0);
+       __gcry_mpi_free($49);
+      } else {
+       $52 = HEAP32[$36>>2]|0;
+       $53 = HEAP32[$7>>2]|0;
+       __gcry_mpi_powm($43,$44,$52,$53);
+      }
+      $54 = (__gcry_get_debug_flag(1)|0);
+      $55 = ($54|0)==(0);
+      if (!($55)) {
+       __gcry_log_printmpi(61351,$43);
+      }
+      $56 = ((($3)) + 32|0);
+      $57 = HEAP32[$56>>2]|0;
+      $58 = ($57|0)==(0|0);
+      if ($58) {
+       $60 = HEAP32[$6>>2]|0;
+       $61 = (__gcry_mpi_cmp($43,$60)|0);
+       $62 = ($61|0)==(0);
+       $63 = $62 ? 0 : 8;
+       $$0 = $43;$$018 = $63;
+       break;
+      } else {
+       $59 = (FUNCTION_TABLE_iii[$57 & 127]($3,$43)|0);
+       $$0 = $43;$$018 = $59;
+       break;
+      }
+     } else {
+      $$0 = 0;$$018 = $37;
+     }
+    } else {
+     $$0 = 0;$$018 = $31;
+    }
+   } else {
+    $$0 = 0;$$018 = $28;
+   }
+  } else {
+   $$0 = 0;$$018 = $17;
+  }
+ } while(0);
+ __gcry_mpi_release($$0);
+ $64 = HEAP32[$7>>2]|0;
+ __gcry_mpi_release($64);
+ $65 = ((($7)) + 4|0);
+ $66 = HEAP32[$65>>2]|0;
+ __gcry_mpi_release($66);
+ $67 = HEAP32[$6>>2]|0;
+ __gcry_mpi_release($67);
+ $68 = HEAP32[$5>>2]|0;
+ __gcry_mpi_release($68);
+ $69 = HEAP32[$4>>2]|0;
+ __gcry_sexp_release($69);
+ __gcry_pk_util_free_encoding_ctx($3);
+ $70 = (__gcry_get_debug_flag(1)|0);
+ $71 = ($70|0)==(0);
+ if ($71) {
+  STACKTOP = sp;return ($$018|0);
+ }
+ $72 = ($$018|0)==(0);
+ if ($72) {
+  $74 = 65003;
+ } else {
+  $73 = (_gpg_strerror($$018)|0);
+  $74 = $73;
+ }
+ HEAP32[$vararg_buffer7>>2] = $74;
+ __gcry_log_debug(61367,$vararg_buffer7);
+ STACKTOP = sp;return ($$018|0);
+}
+function _rsa_get_nbits($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ $1 = (__gcry_sexp_find_token($0,60983,1)|0);
+ $2 = ($1|0)==(0|0);
+ if ($2) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $3 = (__gcry_sexp_nth_mpi($1,1,5)|0);
+ __gcry_sexp_release($1);
+ $4 = ($3|0)==(0|0);
+ if ($4) {
+  $6 = 0;
+ } else {
+  $5 = (__gcry_mpi_get_nbits($3)|0);
+  $6 = $5;
+ }
+ __gcry_mpi_release($3);
+ $$0 = $6;
+ return ($$0|0);
+}
+function _run_selftests_1209($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$0$i$i = 0, $$011$i$i = 0, $$016$i = 0, $$017$i = 0, $$018$i = 
0, $$020$i = 0, $$032$i$i = 0, $$033$i$i = 0, $$034$i$i = 0, $$1$i$i = 0, $10 = 
0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
+ var $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, 
$27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $36 = 0, $37 = 0;
+ var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, 
$45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0;
+ var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, 
$63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, 
$71 = 0, $72 = 0, $73 = 0;
+ var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, 
$81 = 0, $9 = 0, $cond = 0, $spec$select = 0, $spec$select7 = 0, $vararg_buffer 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $vararg_buffer = sp;
+ $3 = sp + 32|0;
+ $4 = sp + 28|0;
+ $5 = sp + 24|0;
+ $6 = sp + 20|0;
+ $7 = sp + 16|0;
+ $8 = sp + 12|0;
+ $9 = sp + 8|0;
+ $10 = sp + 4|0;
+ $cond = ($0|0)==(1);
+ if (!($cond)) {
+  $$0 = 4;
+  STACKTOP = sp;return ($$0|0);
+ }
+ HEAP32[$9>>2] = 0;
+ HEAP32[$10>>2] = 0;
+ $11 = (__gcry_sexp_sscan($9,0,6480,1029)|0);
+ $12 = ($11|0)==(0);
+ do {
+  if ($12) {
+   $13 = (__gcry_sexp_sscan($10,0,7520,316)|0);
+   $14 = ($13|0)==(0);
+   if ($14) {
+    $16 = HEAP32[$9>>2]|0;
+    $17 = (__gcry_pk_testkey($16)|0);
+    $18 = ($17|0)==(0);
+    if (!($18)) {
+     $19 = (_gpg_strerror($17)|0);
+     $$016$i = $19;$$017$i = 61251;
+     label = 28;
+     break;
+    }
+    $20 = HEAP32[$10>>2]|0;
+    $21 = HEAP32[$9>>2]|0;
+    HEAP32[$6>>2] = 0;
+    HEAP32[$7>>2] = 0;
+    HEAP32[$8>>2] = 0;
+    $22 = (__gcry_sexp_sscan($6,0,7840,75)|0);
+    $23 = ($22|0)==(0);
+    if ($23) {
+     $24 = (__gcry_sexp_sscan($7,0,7920,75)|0);
+     $25 = ($24|0)==(0);
+     if ($25) {
+      $26 = HEAP32[$6>>2]|0;
+      $27 = (__gcry_pk_sign($8,$26,$21)|0);
+      $28 = ($27|0)==(0);
+      if ($28) {
+       $29 = HEAP32[$8>>2]|0;
+       $30 = HEAP32[$6>>2]|0;
+       $31 = (__gcry_pk_verify($29,$30,$20)|0);
+       $32 = ($31|0)==(0);
+       if ($32) {
+        $33 = HEAP32[$8>>2]|0;
+        $34 = HEAP32[$7>>2]|0;
+        $35 = (__gcry_pk_verify($33,$34,$20)|0);
+        $36 = $35 & 65535;
+        $37 = ($36|0)==(8);
+        $spec$select = $37 ? 0 : 60985;
+        $$011$i$i = $spec$select;
+       } else {
+        $$011$i$i = 61050;
+       }
+      } else {
+       $$011$i$i = 61035;
+      }
+     } else {
+      $$011$i$i = 61012;
+     }
+    } else {
+     $$011$i$i = 61012;
+    }
+    $38 = HEAP32[$8>>2]|0;
+    __gcry_sexp_release($38);
+    $39 = HEAP32[$7>>2]|0;
+    __gcry_sexp_release($39);
+    $40 = HEAP32[$6>>2]|0;
+    __gcry_sexp_release($40);
+    $41 = ($$011$i$i|0)==(0|0);
+    if ($41) {
+     $42 = HEAP32[$10>>2]|0;
+     $43 = HEAP32[$9>>2]|0;
+     HEAP32[$3>>2] = 0;
+     HEAP32[$4>>2] = 0;
+     HEAP32[$5>>2] = 0;
+     $44 = (__gcry_mpi_new(1000)|0);
+     __gcry_mpi_randomize($44,1000,0);
+     HEAP32[$vararg_buffer>>2] = $44;
+     $45 = (__gcry_sexp_build($3,0,61064,$vararg_buffer)|0);
+     $46 = ($45|0)==(0);
+     if ($46) {
+      $47 = HEAP32[$3>>2]|0;
+      $48 = (__gcry_pk_encrypt($4,$47,$42)|0);
+      $49 = ($48|0)==(0);
+      if ($49) {
+       $50 = HEAP32[$4>>2]|0;
+       $51 = (__gcry_sexp_find_token($50,61094,0)|0);
+       $52 = ($51|0)==(0|0);
+       if ($52) {
+        $$0$i$i = 0;$$033$i$i = 0;$$034$i$i = 61136;$$1$i$i = 0;
+       } else {
+        $53 = (__gcry_sexp_find_token($51,61102,0)|0);
+        __gcry_sexp_release($51);
+        $54 = ($53|0)==(0|0);
+        if ($54) {
+         $$0$i$i = 0;$$033$i$i = 0;$$034$i$i = 61136;$$1$i$i = 0;
+        } else {
+         $55 = (__gcry_sexp_find_token($53,60979,0)|0);
+         __gcry_sexp_release($53);
+         $56 = ($55|0)==(0|0);
+         if ($56) {
+          $$0$i$i = 0;$$033$i$i = 0;$$034$i$i = 61136;$$1$i$i = 0;
+         } else {
+          $57 = (__gcry_sexp_nth_mpi($55,1,0)|0);
+          __gcry_sexp_release($55);
+          $58 = ($57|0)==(0|0);
+          if ($58) {
+           $$0$i$i = 0;$$033$i$i = 0;$$034$i$i = 61136;$$1$i$i = 0;
+          } else {
+           $59 = (__gcry_mpi_cmp($44,$57)|0);
+           $60 = ($59|0)==(0);
+           if ($60) {
+            $$0$i$i = 0;$$033$i$i = $57;$$034$i$i = 61169;$$1$i$i = 0;
+           } else {
+            $61 = HEAP32[$4>>2]|0;
+            $62 = (__gcry_pk_decrypt($5,$61,$43)|0);
+            $63 = ($62|0)==(0);
+            if ($63) {
+             $64 = HEAP32[$5>>2]|0;
+             $65 = (__gcry_sexp_find_token($64,61106,0)|0);
+             $66 = ($65|0)==(0|0);
+             if ($66) {
+              $68 = HEAP32[$5>>2]|0;
+              $69 = (__gcry_sexp_nth_mpi($68,0,5)|0);
+              $$032$i$i = $69;
+             } else {
+              $67 = (__gcry_sexp_nth_mpi($65,1,5)|0);
+              $$032$i$i = $67;
+             }
+             $70 = ($$032$i$i|0)==(0|0);
+             if ($70) {
+              $$0$i$i = $65;$$033$i$i = $57;$$034$i$i = 61213;$$1$i$i = 0;
+             } else {
+              $71 = (__gcry_mpi_cmp($44,$$032$i$i)|0);
+              $72 = ($71|0)==(0);
+              $spec$select7 = $72 ? 0 : 61112;
+              $$0$i$i = $65;$$033$i$i = $57;$$034$i$i = $spec$select7;$$1$i$i 
= $$032$i$i;
+             }
+            } else {
+             $$0$i$i = 0;$$033$i$i = $57;$$034$i$i = 61198;$$1$i$i = 0;
+            }
+           }
+          }
+         }
+        }
+       }
+      } else {
+       $$0$i$i = 0;$$033$i$i = 0;$$034$i$i = 61121;$$1$i$i = 0;
+      }
+     } else {
+      $$0$i$i = 0;$$033$i$i = 0;$$034$i$i = 61012;$$1$i$i = 0;
+     }
+     __gcry_sexp_release($$0$i$i);
+     __gcry_mpi_release($$1$i$i);
+     $73 = HEAP32[$5>>2]|0;
+     __gcry_sexp_release($73);
+     __gcry_mpi_release($$033$i$i);
+     $74 = HEAP32[$4>>2]|0;
+     __gcry_sexp_release($74);
+     $75 = HEAP32[$3>>2]|0;
+     __gcry_sexp_release($75);
+     __gcry_mpi_release($44);
+     $76 = ($$034$i$i|0)==(0|0);
+     if ($76) {
+      $77 = HEAP32[$10>>2]|0;
+      __gcry_sexp_release($77);
+      $78 = HEAP32[$9>>2]|0;
+      __gcry_sexp_release($78);
+      $$018$i = 0;
+     } else {
+      $$016$i = $$034$i$i;$$017$i = 61272;
+      label = 28;
+     }
+    } else {
+     $$016$i = $$011$i$i;$$017$i = 61267;
+     label = 28;
+    }
+   } else {
+    $$020$i = $13;
+    label = 4;
+   }
+  } else {
+   $$020$i = $11;
+   label = 4;
+  }
+ } while(0);
+ if ((label|0) == 4) {
+  $15 = (_gpg_strerror($$020$i)|0);
+  $$016$i = $15;$$017$i = 61243;
+  label = 28;
+ }
+ if ((label|0) == 28) {
+  $79 = HEAP32[$10>>2]|0;
+  __gcry_sexp_release($79);
+  $80 = HEAP32[$9>>2]|0;
+  __gcry_sexp_release($80);
+  $81 = ($2|0)==(0|0);
+  if ($81) {
+   $$018$i = 50;
+  } else {
+   FUNCTION_TABLE_viiii[$2 & 63](61280,1,$$017$i,$$016$i);
+   $$018$i = 50;
+  }
+ }
+ $$0 = $$018$i;
+ STACKTOP = sp;return ($$0|0);
+}
+function _compute_keygrip($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $2 = sp;
+ $3 = (__gcry_sexp_find_token($1,60983,1)|0);
+ $4 = ($3|0)==(0|0);
+ do {
+  if ($4) {
+   $$0 = 68;
+  } else {
+   $5 = (__gcry_sexp_nth_data($3,1,$2)|0);
+   $6 = ($5|0)==(0|0);
+   if ($6) {
+    __gcry_sexp_release($3);
+    $$0 = 68;
+    break;
+   } else {
+    $7 = HEAP32[$2>>2]|0;
+    __gcry_md_write($0,$5,$7);
+    __gcry_sexp_release($3);
+    $$0 = 0;
+    break;
+   }
+  }
+ } while(0);
+ STACKTOP = sp;return ($$0|0);
+}
+function _secret($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 
0, $27 = 0, $28 = 0, $29 = 0;
+ var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, 
$37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0, 
$6 = 0, $7 = 0, $8 = 0;
+ var $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_mpi_normalize($1);
+ $3 = ((($2)) + 12|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ($4|0)==(0|0);
+ if (!($5)) {
+  $6 = ((($2)) + 16|0);
+  $7 = HEAP32[$6>>2]|0;
+  $8 = ($7|0)==(0|0);
+  if (!($8)) {
+   $9 = ((($2)) + 20|0);
+   $10 = HEAP32[$9>>2]|0;
+   $11 = ($10|0)==(0|0);
+   if (!($11)) {
+    $15 = HEAP32[$2>>2]|0;
+    $16 = ((($15)) + 4|0);
+    $17 = HEAP32[$16>>2]|0;
+    $18 = (($17) + 1)|0;
+    $19 = (__gcry_mpi_alloc_secure($18)|0);
+    $20 = HEAP32[$2>>2]|0;
+    $21 = ((($20)) + 4|0);
+    $22 = HEAP32[$21>>2]|0;
+    $23 = (($22) + 1)|0;
+    $24 = (__gcry_mpi_alloc_secure($23)|0);
+    $25 = HEAP32[$2>>2]|0;
+    $26 = ((($25)) + 4|0);
+    $27 = HEAP32[$26>>2]|0;
+    $28 = (($27) + 1)|0;
+    $29 = (__gcry_mpi_alloc_secure($28)|0);
+    $30 = HEAP32[$3>>2]|0;
+    __gcry_mpi_sub_ui($29,$30,1);
+    $31 = ((($2)) + 8|0);
+    $32 = HEAP32[$31>>2]|0;
+    __gcry_mpi_fdiv_r($29,$32,$29);
+    $33 = HEAP32[$3>>2]|0;
+    __gcry_mpi_powm($19,$1,$29,$33);
+    $34 = HEAP32[$6>>2]|0;
+    __gcry_mpi_sub_ui($29,$34,1);
+    $35 = HEAP32[$31>>2]|0;
+    __gcry_mpi_fdiv_r($29,$35,$29);
+    $36 = HEAP32[$6>>2]|0;
+    __gcry_mpi_powm($24,$1,$29,$36);
+    __gcry_mpi_sub($29,$24,$19);
+    $37 = ((($29)) + 8|0);
+    $38 = HEAP32[$37>>2]|0;
+    $39 = ($38|0)==(0);
+    if (!($39)) {
+     $40 = HEAP32[$6>>2]|0;
+     __gcry_mpi_add($29,$29,$40);
+    }
+    $41 = HEAP32[$9>>2]|0;
+    $42 = HEAP32[$6>>2]|0;
+    __gcry_mpi_mulm($29,$41,$29,$42);
+    $43 = HEAP32[$3>>2]|0;
+    __gcry_mpi_mul($29,$29,$43);
+    __gcry_mpi_add($0,$19,$29);
+    __gcry_mpi_free($29);
+    __gcry_mpi_free($19);
+    __gcry_mpi_free($24);
+    return;
+   }
+  }
+ }
+ $12 = ((($2)) + 8|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = HEAP32[$2>>2]|0;
+ __gcry_mpi_powm($0,$1,$13,$14);
+ return;
+}
+function _test_keys($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, 
$25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, 
$5 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (__gcry_mpi_new($1)|0);
+ $3 = (__gcry_mpi_new($1)|0);
+ $4 = (__gcry_mpi_new($1)|0);
+ $5 = (__gcry_mpi_new($1)|0);
+ $6 = HEAP32[$0>>2]|0;
+ $7 = ((($0)) + 4|0);
+ $8 = HEAP32[$7>>2]|0;
+ __gcry_mpi_randomize($2,$1,0);
+ $9 = ($3|0)==($2|0);
+ if ($9) {
+  $10 = ((($2)) + 4|0);
+  $11 = HEAP32[$10>>2]|0;
+  $12 = $11 << 1;
+  $13 = (__gcry_mpi_alloc($12)|0);
+  $14 = $8;
+  $15 = $6;
+  __gcry_mpi_powm($13,$2,$14,$15);
+  (__gcry_mpi_set($2,$13)|0);
+  __gcry_mpi_free($13);
+ } else {
+  $16 = $8;
+  $17 = $6;
+  __gcry_mpi_powm($3,$2,$16,$17);
+ }
+ $18 = (__gcry_mpi_cmp($3,$2)|0);
+ $19 = ($18|0)==(0);
+ if ($19) {
+  $$0 = -1;
+ } else {
+  _secret($4,$3,$0);
+  $20 = (__gcry_mpi_cmp($4,$2)|0);
+  $21 = ($20|0)==(0);
+  if ($21) {
+   __gcry_mpi_randomize($2,$1,0);
+   _secret($5,$2,$0);
+   $22 = ($4|0)==($5|0);
+   if ($22) {
+    $23 = ((($4)) + 4|0);
+    $24 = HEAP32[$23>>2]|0;
+    $25 = $24 << 1;
+    $26 = (__gcry_mpi_alloc($25)|0);
+    $27 = $8;
+    $28 = $6;
+    __gcry_mpi_powm($26,$4,$27,$28);
+    (__gcry_mpi_set($4,$26)|0);
+    __gcry_mpi_free($26);
+   } else {
+    $29 = $8;
+    $30 = $6;
+    __gcry_mpi_powm($4,$5,$29,$30);
+   }
+   $31 = (__gcry_mpi_cmp($4,$2)|0);
+   $32 = ($31|0)==(0);
+   if ($32) {
+    __gcry_mpi_add_ui($5,$5,1);
+    if ($22) {
+     $33 = ((($4)) + 4|0);
+     $34 = HEAP32[$33>>2]|0;
+     $35 = $34 << 1;
+     $36 = (__gcry_mpi_alloc($35)|0);
+     $37 = $8;
+     $38 = $6;
+     __gcry_mpi_powm($36,$4,$37,$38);
+     (__gcry_mpi_set($4,$36)|0);
+     __gcry_mpi_free($36);
+    } else {
+     $39 = $8;
+     $40 = $6;
+     __gcry_mpi_powm($4,$5,$39,$40);
+    }
+    $41 = (__gcry_mpi_cmp($4,$2)|0);
+    $42 = ($41|0)==(0);
+    $spec$select = $42 << 31 >> 31;
+    $$0 = $spec$select;
+   } else {
+    $$0 = -1;
+   }
+  } else {
+   $$0 = -1;
+  }
+ }
+ __gcry_mpi_release($5);
+ __gcry_mpi_release($4);
+ __gcry_mpi_release($3);
+ __gcry_mpi_release($2);
+ return ($$0|0);
+}
+function _check_exponent($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_mpi_sub_ui($1,$1,1);
+ $2 = (__gcry_mpi_alloc_like($1)|0);
+ $3 = (__gcry_mpi_gcd($2,$0,$1)|0);
+ $4 = ($3|0)==(0);
+ $5 = $4&1;
+ __gcry_mpi_release($2);
+ __gcry_mpi_add_ui($1,$1,1);
+ return ($5|0);
+}
+function _sha1_init($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 160|0);
+ HEAP32[$2>>2] = 1732584193;
+ $3 = ((($0)) + 164|0);
+ HEAP32[$3>>2] = -271733879;
+ $4 = ((($0)) + 168|0);
+ HEAP32[$4>>2] = -1732584194;
+ $5 = ((($0)) + 172|0);
+ HEAP32[$5>>2] = 271733878;
+ $6 = ((($0)) + 176|0);
+ HEAP32[$6>>2] = -1009589776;
+ $7 = ((($0)) + 128|0);
+ $8 = ((($0)) + 148|0);
+ 
;HEAP32[$7>>2]=0|0;HEAP32[$7+4>>2]=0|0;HEAP32[$7+8>>2]=0|0;HEAP32[$7+12>>2]=0|0;HEAP32[$7+16>>2]=0|0;
+ HEAP32[$8>>2] = 64;
+ $9 = ((($0)) + 152|0);
+ HEAP32[$9>>2] = 78;
+ return;
+}
+function _sha1_final($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 
0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 
0, $113 = 0, $114 = 0, $115 = 0, $116 = 0;
+ var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 
= 0, $124 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, 
$2 = 0, $20 = 0, $21 = 0, $22 = 0;
+ var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, 
$30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 
0, $39 = 0, $4 = 0, $40 = 0;
+ var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, 
$49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, 
$57 = 0, $58 = 0, $59 = 0;
+ var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, 
$67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, 
$75 = 0, $76 = 0, $77 = 0;
+ var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, 
$85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, 
$93 = 0, $94 = 0, $95 = 0;
+ var $96 = 0, $97 = 0, $98 = 0, $99 = 0, $spec$select = 0, dest = 0, label = 
0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ __gcry_md_block_write($0,0,0);
+ $1 = ((($0)) + 128|0);
+ $2 = $1;
+ $3 = $2;
+ $4 = HEAP32[$3>>2]|0;
+ $5 = (($2) + 4)|0;
+ $6 = $5;
+ $7 = HEAP32[$6>>2]|0;
+ $8 = $4 << 6;
+ $9 = (_bitshift64Lshr(($4|0),($7|0),26)|0);
+ $10 = tempRet0;
+ $11 = $9 & 536870848;
+ $12 = $4 >>> 26;
+ $13 = $11 | $12;
+ $14 = ((($0)) + 144|0);
+ $15 = HEAP32[$14>>2]|0;
+ $16 = (($8) + ($15))|0;
+ $17 = ($16>>>0)<($8>>>0);
+ $18 = $17&1;
+ $spec$select = (($13) + ($18))|0;
+ $19 = $16 << 3;
+ $20 = $spec$select << 3;
+ $21 = $16 >>> 29;
+ $22 = $20 | $21;
+ $23 = ($15|0)<(56);
+ $24 = (($15) + 1)|0;
+ HEAP32[$14>>2] = $24;
+ $25 = (($0) + ($15)|0);
+ HEAP8[$25>>0] = -128;
+ $26 = HEAP32[$14>>2]|0;
+ if ($23) {
+  $27 = ($26|0)<(56);
+  if ($27) {
+   $29 = $26;
+   while(1) {
+    $28 = (($29) + 1)|0;
+    HEAP32[$14>>2] = $28;
+    $30 = (($0) + ($29)|0);
+    HEAP8[$30>>0] = 0;
+    $31 = HEAP32[$14>>2]|0;
+    $32 = ($31|0)<(56);
+    if ($32) {
+     $29 = $31;
+    } else {
+     break;
+    }
+   }
+  }
+ } else {
+  $33 = ($26|0)<(64);
+  if ($33) {
+   $35 = $26;
+   while(1) {
+    $34 = (($35) + 1)|0;
+    HEAP32[$14>>2] = $34;
+    $36 = (($0) + ($35)|0);
+    HEAP8[$36>>0] = 0;
+    $37 = HEAP32[$14>>2]|0;
+    $38 = ($37|0)<(64);
+    if ($38) {
+     $35 = $37;
+    } else {
+     break;
+    }
+   }
+  }
+  __gcry_md_block_write($0,0,0);
+  dest=$0; stop=dest+56|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ }
+ $39 = ((($0)) + 56|0);
+ $40 = $spec$select >>> 21;
+ $41 = $40&255;
+ HEAP8[$39>>0] = $41;
+ $42 = $spec$select >>> 13;
+ $43 = $42&255;
+ $44 = ((($0)) + 57|0);
+ HEAP8[$44>>0] = $43;
+ $45 = $spec$select >>> 5;
+ $46 = $45&255;
+ $47 = ((($0)) + 58|0);
+ HEAP8[$47>>0] = $46;
+ $48 = $22&255;
+ $49 = ((($0)) + 59|0);
+ HEAP8[$49>>0] = $48;
+ $50 = ((($0)) + 60|0);
+ $51 = $16 >>> 21;
+ $52 = $51&255;
+ HEAP8[$50>>0] = $52;
+ $53 = $16 >>> 13;
+ $54 = $53&255;
+ $55 = ((($0)) + 61|0);
+ HEAP8[$55>>0] = $54;
+ $56 = $16 >>> 5;
+ $57 = $56&255;
+ $58 = ((($0)) + 62|0);
+ HEAP8[$58>>0] = $57;
+ $59 = $19&255;
+ $60 = ((($0)) + 63|0);
+ HEAP8[$60>>0] = $59;
+ (_transform_1319($0,$0,1)|0);
+ ___gcry_burn_stack(104);
+ $61 = ((($0)) + 160|0);
+ $62 = HEAP32[$61>>2]|0;
+ $63 = $62 >>> 24;
+ $64 = $63&255;
+ HEAP8[$0>>0] = $64;
+ $65 = $62 >>> 16;
+ $66 = $65&255;
+ $67 = ((($0)) + 1|0);
+ HEAP8[$67>>0] = $66;
+ $68 = $62 >>> 8;
+ $69 = $68&255;
+ $70 = ((($0)) + 2|0);
+ HEAP8[$70>>0] = $69;
+ $71 = $62&255;
+ $72 = ((($0)) + 3|0);
+ HEAP8[$72>>0] = $71;
+ $73 = ((($0)) + 4|0);
+ $74 = ((($0)) + 164|0);
+ $75 = HEAP32[$74>>2]|0;
+ $76 = $75 >>> 24;
+ $77 = $76&255;
+ HEAP8[$73>>0] = $77;
+ $78 = $75 >>> 16;
+ $79 = $78&255;
+ $80 = ((($0)) + 5|0);
+ HEAP8[$80>>0] = $79;
+ $81 = $75 >>> 8;
+ $82 = $81&255;
+ $83 = ((($0)) + 6|0);
+ HEAP8[$83>>0] = $82;
+ $84 = $75&255;
+ $85 = ((($0)) + 7|0);
+ HEAP8[$85>>0] = $84;
+ $86 = ((($0)) + 8|0);
+ $87 = ((($0)) + 168|0);
+ $88 = HEAP32[$87>>2]|0;
+ $89 = $88 >>> 24;
+ $90 = $89&255;
+ HEAP8[$86>>0] = $90;
+ $91 = $88 >>> 16;
+ $92 = $91&255;
+ $93 = ((($0)) + 9|0);
+ HEAP8[$93>>0] = $92;
+ $94 = $88 >>> 8;
+ $95 = $94&255;
+ $96 = ((($0)) + 10|0);
+ HEAP8[$96>>0] = $95;
+ $97 = $88&255;
+ $98 = ((($0)) + 11|0);
+ HEAP8[$98>>0] = $97;
+ $99 = ((($0)) + 12|0);
+ $100 = ((($0)) + 172|0);
+ $101 = HEAP32[$100>>2]|0;
+ $102 = $101 >>> 24;
+ $103 = $102&255;
+ HEAP8[$99>>0] = $103;
+ $104 = $101 >>> 16;
+ $105 = $104&255;
+ $106 = ((($0)) + 13|0);
+ HEAP8[$106>>0] = $105;
+ $107 = $101 >>> 8;
+ $108 = $107&255;
+ $109 = ((($0)) + 14|0);
+ HEAP8[$109>>0] = $108;
+ $110 = $101&255;
+ $111 = ((($0)) + 15|0);
+ HEAP8[$111>>0] = $110;
+ $112 = ((($0)) + 16|0);
+ $113 = ((($0)) + 176|0);
+ $114 = HEAP32[$113>>2]|0;
+ $115 = $114 >>> 24;
+ $116 = $115&255;
+ HEAP8[$112>>0] = $116;
+ $117 = $114 >>> 16;
+ $118 = $117&255;
+ $119 = ((($0)) + 17|0);
+ HEAP8[$119>>0] = $118;
+ $120 = $114 >>> 8;
+ $121 = $120&255;
+ $122 = ((($0)) + 18|0);
+ HEAP8[$122>>0] = $121;
+ $123 = $114&255;
+ $124 = ((($0)) + 19|0);
+ HEAP8[$124>>0] = $123;
+ return;
+}
+function _sha1_read($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return ($0|0);
+}
+function _run_selftests_1309($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$0$i = 0, $$011$i = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, 
$7 = 0, $8 = 0, $9 = 0, $cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $cond = ($0|0)==(2);
+ if (!($cond)) {
+  $$0 = 5;
+  return ($$0|0);
+ }
+ $3 = (__gcry_hash_selftest_check_one(2,0,62920,3,62440,20)|0);
+ $4 = ($3|0)==(0|0);
+ if ($4) {
+  $5 = ($1|0)==(0);
+  if ($5) {
+   $$0 = 0;
+   return ($$0|0);
+  }
+  $6 = (__gcry_hash_selftest_check_one(2,0,62624,56,62461,20)|0);
+  $7 = ($6|0)==(0|0);
+  if ($7) {
+   $8 = (__gcry_hash_selftest_check_one(2,1,0,0,62482,20)|0);
+   $9 = ($8|0)==(0|0);
+   if ($9) {
+    $$0 = 0;
+    return ($$0|0);
+   } else {
+    $$0$i = $8;$$011$i = 63209;
+   }
+  } else {
+   $$0$i = $6;$$011$i = 63197;
+  }
+ } else {
+  $$0$i = $3;$$011$i = 63184;
+ }
+ $10 = ($2|0)==(0|0);
+ if ($10) {
+  $$0 = 50;
+  return ($$0|0);
+ }
+ FUNCTION_TABLE_viiii[$2 & 63](63225,2,$$011$i,$$0$i);
+ $$0 = 50;
+ return ($$0|0);
+}
+function _transform_1319($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$08 = 0, $$pre = 0, $$pre10 = 0, $$pre11 = 0, $$pre12 = 0, 
$$pre9 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, 
$1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0;
+ var $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 
0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, 
$1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0;
+ var $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 
0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, 
$1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0;
+ var $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 
0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, 
$106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0;
+ var $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0, $107 = 0, $1070 = 
0, $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, 
$1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, $1082 = 0;
+ var $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0, $1088 = 0, $1089 = 
0, $109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 0, $1094 = 0, $1095 = 0, 
$1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0;
+ var $1100 = 0, $1101 = 0, $1102 = 0, $1103 = 0, $1104 = 0, $1105 = 0, $1106 = 
0, $1107 = 0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 0, $1111 = 0, $1112 = 0, 
$1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 0;
+ var $1119 = 0, $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0, $1123 = 0, $1124 = 
0, $1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 0, $113 = 0, $1130 = 0, 
$1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 0;
+ var $1137 = 0, $1138 = 0, $1139 = 0, $114 = 0, $1140 = 0, $1141 = 0, $1142 = 
0, $1143 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0, $1149 = 0, 
$115 = 0, $1150 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1154 = 0;
+ var $1155 = 0, $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0, $116 = 0, $1160 = 
0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, 
$1168 = 0, $1169 = 0, $117 = 0, $1170 = 0, $1171 = 0, $1172 = 0;
+ var $1173 = 0, $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0, $1178 = 0, $1179 = 
0, $118 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, 
$1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, $1190 = 0;
+ var $1191 = 0, $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0, $1196 = 0, $1197 = 
0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0, $1201 = 0, $1202 = 0, 
$1203 = 0, $1204 = 0, $1205 = 0, $1206 = 0, $1207 = 0, $1208 = 0;
+ var $1209 = 0, $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0, $1213 = 0, $1214 = 
0, $1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 0, $122 = 0, $1220 = 0, 
$1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0, $1226 = 0;
+ var $1227 = 0, $1228 = 0, $1229 = 0, $123 = 0, $1230 = 0, $1231 = 0, $1232 = 
0, $1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0, $1237 = 0, $1238 = 0, $1239 = 0, 
$124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0, $1244 = 0;
+ var $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0, $125 = 0, $1250 = 
0, $1251 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, 
$1258 = 0, $1259 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1262 = 0;
+ var $1263 = 0, $1264 = 0, $1265 = 0, $1266 = 0, $1267 = 0, $1268 = 0, $1269 = 
0, $127 = 0, $1270 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1275 = 0, 
$1276 = 0, $1277 = 0, $1278 = 0, $1279 = 0, $128 = 0, $1280 = 0;
+ var $1281 = 0, $1282 = 0, $1283 = 0, $1284 = 0, $1285 = 0, $1286 = 0, $1287 = 
0, $1288 = 0, $1289 = 0, $129 = 0, $1290 = 0, $1291 = 0, $1292 = 0, $1293 = 0, 
$1294 = 0, $1295 = 0, $1296 = 0, $1297 = 0, $1298 = 0, $1299 = 0;
+ var $13 = 0, $130 = 0, $1300 = 0, $1301 = 0, $1302 = 0, $1303 = 0, $1304 = 0, 
$1305 = 0, $1306 = 0, $1307 = 0, $1308 = 0, $1309 = 0, $131 = 0, $1310 = 0, 
$1311 = 0, $1312 = 0, $1313 = 0, $1314 = 0, $1315 = 0, $1316 = 0;
+ var $1317 = 0, $1318 = 0, $1319 = 0, $132 = 0, $1320 = 0, $1321 = 0, $1322 = 
0, $1323 = 0, $1324 = 0, $1325 = 0, $1326 = 0, $1327 = 0, $1328 = 0, $1329 = 0, 
$133 = 0, $1330 = 0, $1331 = 0, $1332 = 0, $1333 = 0, $1334 = 0;
+ var $1335 = 0, $1336 = 0, $1337 = 0, $1338 = 0, $1339 = 0, $134 = 0, $1340 = 
0, $1341 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $1345 = 0, $1346 = 0, $1347 = 0, 
$1348 = 0, $1349 = 0, $135 = 0, $1350 = 0, $1351 = 0, $1352 = 0;
+ var $1353 = 0, $1354 = 0, $1355 = 0, $1356 = 0, $1357 = 0, $1358 = 0, $1359 = 
0, $136 = 0, $1360 = 0, $1361 = 0, $1362 = 0, $1363 = 0, $1364 = 0, $1365 = 0, 
$1366 = 0, $1367 = 0, $1368 = 0, $1369 = 0, $137 = 0, $1370 = 0;
+ var $1371 = 0, $1372 = 0, $1373 = 0, $1374 = 0, $1375 = 0, $1376 = 0, $1377 = 
0, $1378 = 0, $1379 = 0, $138 = 0, $1380 = 0, $1381 = 0, $1382 = 0, $1383 = 0, 
$1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $1388 = 0, $1389 = 0;
+ var $139 = 0, $1390 = 0, $1391 = 0, $1392 = 0, $1393 = 0, $1394 = 0, $1395 = 
0, $1396 = 0, $1397 = 0, $1398 = 0, $1399 = 0, $14 = 0, $140 = 0, $1400 = 0, 
$1401 = 0, $1402 = 0, $1403 = 0, $1404 = 0, $1405 = 0, $1406 = 0;
+ var $1407 = 0, $1408 = 0, $1409 = 0, $141 = 0, $1410 = 0, $1411 = 0, $1412 = 
0, $1413 = 0, $1414 = 0, $1415 = 0, $1416 = 0, $1417 = 0, $1418 = 0, $1419 = 0, 
$142 = 0, $1420 = 0, $1421 = 0, $1422 = 0, $1423 = 0, $1424 = 0;
+ var $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $1429 = 0, $143 = 0, $1430 = 
0, $1431 = 0, $1432 = 0, $1433 = 0, $1434 = 0, $1435 = 0, $1436 = 0, $1437 = 0, 
$1438 = 0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, $1442 = 0;
+ var $1443 = 0, $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0, $1448 = 0, $1449 = 
0, $145 = 0, $1450 = 0, $1451 = 0, $1452 = 0, $1453 = 0, $1454 = 0, $1455 = 0, 
$1456 = 0, $1457 = 0, $1458 = 0, $1459 = 0, $146 = 0, $1460 = 0;
+ var $1461 = 0, $1462 = 0, $1463 = 0, $1464 = 0, $1465 = 0, $1466 = 0, $1467 = 
0, $1468 = 0, $1469 = 0, $147 = 0, $1470 = 0, $1471 = 0, $1472 = 0, $1473 = 0, 
$1474 = 0, $1475 = 0, $1476 = 0, $1477 = 0, $1478 = 0, $1479 = 0;
+ var $148 = 0, $1480 = 0, $1481 = 0, $1482 = 0, $1483 = 0, $1484 = 0, $1485 = 
0, $1486 = 0, $1487 = 0, $1488 = 0, $1489 = 0, $149 = 0, $1490 = 0, $1491 = 0, 
$1492 = 0, $1493 = 0, $1494 = 0, $1495 = 0, $1496 = 0, $1497 = 0;
+ var $1498 = 0, $1499 = 0, $15 = 0, $150 = 0, $1500 = 0, $1501 = 0, $1502 = 0, 
$1503 = 0, $1504 = 0, $1505 = 0, $1506 = 0, $1507 = 0, $1508 = 0, $1509 = 0, 
$151 = 0, $1510 = 0, $1511 = 0, $1512 = 0, $1513 = 0, $1514 = 0;
+ var $1515 = 0, $1516 = 0, $1517 = 0, $1518 = 0, $1519 = 0, $152 = 0, $1520 = 
0, $1521 = 0, $1522 = 0, $1523 = 0, $1524 = 0, $1525 = 0, $1526 = 0, $1527 = 0, 
$1528 = 0, $1529 = 0, $153 = 0, $1530 = 0, $1531 = 0, $1532 = 0;
+ var $1533 = 0, $1534 = 0, $1535 = 0, $1536 = 0, $1537 = 0, $1538 = 0, $1539 = 
0, $154 = 0, $1540 = 0, $1541 = 0, $1542 = 0, $1543 = 0, $1544 = 0, $1545 = 0, 
$1546 = 0, $1547 = 0, $1548 = 0, $1549 = 0, $155 = 0, $1550 = 0;
+ var $1551 = 0, $1552 = 0, $1553 = 0, $1554 = 0, $1555 = 0, $1556 = 0, $1557 = 
0, $1558 = 0, $1559 = 0, $156 = 0, $1560 = 0, $1561 = 0, $1562 = 0, $1563 = 0, 
$1564 = 0, $1565 = 0, $1566 = 0, $1567 = 0, $1568 = 0, $1569 = 0;
+ var $157 = 0, $1570 = 0, $1571 = 0, $1572 = 0, $1573 = 0, $1574 = 0, $1575 = 
0, $1576 = 0, $1577 = 0, $1578 = 0, $1579 = 0, $158 = 0, $1580 = 0, $1581 = 0, 
$1582 = 0, $1583 = 0, $1584 = 0, $1585 = 0, $1586 = 0, $1587 = 0;
+ var $1588 = 0, $1589 = 0, $159 = 0, $1590 = 0, $1591 = 0, $1592 = 0, $1593 = 
0, $1594 = 0, $1595 = 0, $1596 = 0, $1597 = 0, $1598 = 0, $1599 = 0, $16 = 0, 
$160 = 0, $1600 = 0, $1601 = 0, $1602 = 0, $1603 = 0, $1604 = 0;
+ var $1605 = 0, $1606 = 0, $1607 = 0, $1608 = 0, $1609 = 0, $161 = 0, $1610 = 
0, $1611 = 0, $1612 = 0, $1613 = 0, $1614 = 0, $1615 = 0, $1616 = 0, $1617 = 0, 
$1618 = 0, $1619 = 0, $162 = 0, $1620 = 0, $1621 = 0, $1622 = 0;
+ var $1623 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $1627 = 0, $1628 = 0, $1629 = 
0, $163 = 0, $1630 = 0, $1631 = 0, $1632 = 0, $1633 = 0, $1634 = 0, $1635 = 0, 
$1636 = 0, $1637 = 0, $1638 = 0, $1639 = 0, $164 = 0, $1640 = 0;
+ var $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1645 = 0, $1646 = 0, $1647 = 
0, $1648 = 0, $1649 = 0, $165 = 0, $1650 = 0, $1651 = 0, $1652 = 0, $1653 = 0, 
$1654 = 0, $1655 = 0, $1656 = 0, $1657 = 0, $1658 = 0, $1659 = 0;
+ var $166 = 0, $1660 = 0, $1661 = 0, $1662 = 0, $1663 = 0, $1664 = 0, $1665 = 
0, $1666 = 0, $1667 = 0, $1668 = 0, $1669 = 0, $167 = 0, $1670 = 0, $1671 = 0, 
$1672 = 0, $1673 = 0, $1674 = 0, $1675 = 0, $1676 = 0, $1677 = 0;
+ var $1678 = 0, $1679 = 0, $168 = 0, $1680 = 0, $1681 = 0, $1682 = 0, $1683 = 
0, $1684 = 0, $1685 = 0, $1686 = 0, $1687 = 0, $1688 = 0, $1689 = 0, $169 = 0, 
$1690 = 0, $1691 = 0, $1692 = 0, $1693 = 0, $1694 = 0, $1695 = 0;
+ var $1696 = 0, $1697 = 0, $1698 = 0, $1699 = 0, $17 = 0, $170 = 0, $1700 = 0, 
$1701 = 0, $1702 = 0, $1703 = 0, $1704 = 0, $1705 = 0, $1706 = 0, $1707 = 0, 
$1708 = 0, $1709 = 0, $171 = 0, $1710 = 0, $1711 = 0, $172 = 0;
+ var $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 
= 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 
= 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0;
+ var $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, 
$198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, 
$205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0;
+ var $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 
= 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 
= 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0;
+ var $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 
= 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 
= 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0;
+ var $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 
= 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 
= 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0;
+ var $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;
+ var $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, 
$289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, 
$296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0;
+ var $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 
= 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 
= 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0;
+ var $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 
= 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 
= 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0;
+ var $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 
= 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 
= 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0;
+ var $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 
= 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 
= 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0;
+ var $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, 
$379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, 
$386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0;
+ var $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, 
$397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, 
$403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0;
+ var $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 
= 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 
= 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0;
+ var $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 
= 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 
= 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0;
+ var $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 
= 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 
= 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0;
+ var $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, 
$469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, 
$476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0;
+ var $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, 
$487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, 
$494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0;
+ var $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 
0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 
0, $512 = 0, $513 = 0, $514 = 0, $515 = 0;
+ var $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 
= 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 
= 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 
= 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 
= 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0;
+ var $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, 
$649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, 
$656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0;
+ var $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, 
$667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, 
$674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0;
+ var $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 
= 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 
= 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0;
+ var $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 
0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 
0, $710 = 0, $711 = 0, $712 = 0, $713 = 0;
+ var $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 
= 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 
= 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0;
+ var $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, 
$739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, 
$746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0;
+ var $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, 
$757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, 
$764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0;
+ var $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 
= 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 
= 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0;
+ var $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 
= 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 
0, $800 = 0, $801 = 0, $802 = 0, $803 = 0;
+ var $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 
= 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 
= 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0;
+ var $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, 
$829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, 
$836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0;
+ var $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, 
$847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, 
$854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0;
+ var $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 
= 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 
= 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0;
+ var $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 
= 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 
= 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0;
+ var $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 
0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 
0, $909 = 0, $91 = 0, $910 = 0, $911 = 0;
+ var $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, 
$919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, 
$926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0;
+ var $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, 
$937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, 
$944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0;
+ var $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 
= 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 
= 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0;
+ var $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 
= 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 
= 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0;
+ var $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 
= 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($0)) + 160|0);
+ $4 = ((($0)) + 164|0);
+ $5 = ((($0)) + 168|0);
+ $6 = ((($0)) + 172|0);
+ $7 = ((($0)) + 176|0);
+ $$pre = HEAP32[$3>>2]|0;
+ $$pre9 = HEAP32[$4>>2]|0;
+ $$pre10 = HEAP32[$5>>2]|0;
+ $$pre11 = HEAP32[$6>>2]|0;
+ $$pre12 = HEAP32[$7>>2]|0;
+ $$0 = $1;$$08 = $2;$13 = $$pre11;$14 = $$pre10;$16 = $$pre9;$37 = $$pre12;$9 
= $$pre;
+ while(1) {
+  $8 = $9 << 5;
+  $10 = $9 >>> 27;
+  $11 = $8 | $10;
+  $12 = $13 ^ $14;
+  $15 = $12 & $16;
+  $17 = $15 ^ $13;
+  $18 = HEAP8[$$0>>0]|0;
+  $19 = $18&255;
+  $20 = $19 << 24;
+  $21 = ((($$0)) + 1|0);
+  $22 = HEAP8[$21>>0]|0;
+  $23 = $22&255;
+  $24 = $23 << 16;
+  $25 = $24 | $20;
+  $26 = ((($$0)) + 2|0);
+  $27 = HEAP8[$26>>0]|0;
+  $28 = $27&255;
+  $29 = $28 << 8;
+  $30 = $25 | $29;
+  $31 = ((($$0)) + 3|0);
+  $32 = HEAP8[$31>>0]|0;
+  $33 = $32&255;
+  $34 = $30 | $33;
+  $35 = (($11) + 1518500249)|0;
+  $36 = (($35) + ($37))|0;
+  $38 = (($36) + ($17))|0;
+  $39 = (($38) + ($34))|0;
+  $40 = $16 << 30;
+  $41 = $16 >>> 2;
+  $42 = $40 | $41;
+  $43 = $39 << 5;
+  $44 = $39 >>> 27;
+  $45 = $43 | $44;
+  $46 = $42 ^ $14;
+  $47 = $46 & $9;
+  $48 = $47 ^ $14;
+  $49 = ((($$0)) + 4|0);
+  $50 = HEAP8[$49>>0]|0;
+  $51 = $50&255;
+  $52 = $51 << 24;
+  $53 = ((($$0)) + 5|0);
+  $54 = HEAP8[$53>>0]|0;
+  $55 = $54&255;
+  $56 = $55 << 16;
+  $57 = $56 | $52;
+  $58 = ((($$0)) + 6|0);
+  $59 = HEAP8[$58>>0]|0;
+  $60 = $59&255;
+  $61 = $60 << 8;
+  $62 = $57 | $61;
+  $63 = ((($$0)) + 7|0);
+  $64 = HEAP8[$63>>0]|0;
+  $65 = $64&255;
+  $66 = $62 | $65;
+  $67 = (($13) + 1518500249)|0;
+  $68 = (($67) + ($48))|0;
+  $69 = (($68) + ($45))|0;
+  $70 = (($69) + ($66))|0;
+  $71 = $9 << 30;
+  $72 = $9 >>> 2;
+  $73 = $71 | $72;
+  $74 = $70 << 5;
+  $75 = $70 >>> 27;
+  $76 = $74 | $75;
+  $77 = $42 ^ $73;
+  $78 = $39 & $77;
+  $79 = $78 ^ $42;
+  $80 = ((($$0)) + 8|0);
+  $81 = HEAP8[$80>>0]|0;
+  $82 = $81&255;
+  $83 = $82 << 24;
+  $84 = ((($$0)) + 9|0);
+  $85 = HEAP8[$84>>0]|0;
+  $86 = $85&255;
+  $87 = $86 << 16;
+  $88 = $87 | $83;
+  $89 = ((($$0)) + 10|0);
+  $90 = HEAP8[$89>>0]|0;
+  $91 = $90&255;
+  $92 = $91 << 8;
+  $93 = $88 | $92;
+  $94 = ((($$0)) + 11|0);
+  $95 = HEAP8[$94>>0]|0;
+  $96 = $95&255;
+  $97 = $93 | $96;
+  $98 = (($14) + 1518500249)|0;
+  $99 = (($98) + ($79))|0;
+  $100 = (($99) + ($76))|0;
+  $101 = (($100) + ($97))|0;
+  $102 = $39 << 30;
+  $103 = $39 >>> 2;
+  $104 = $102 | $103;
+  $105 = $101 << 5;
+  $106 = $101 >>> 27;
+  $107 = $105 | $106;
+  $108 = $104 ^ $73;
+  $109 = $70 & $108;
+  $110 = $109 ^ $73;
+  $111 = ((($$0)) + 12|0);
+  $112 = HEAP8[$111>>0]|0;
+  $113 = $112&255;
+  $114 = $113 << 24;
+  $115 = ((($$0)) + 13|0);
+  $116 = HEAP8[$115>>0]|0;
+  $117 = $116&255;
+  $118 = $117 << 16;
+  $119 = $118 | $114;
+  $120 = ((($$0)) + 14|0);
+  $121 = HEAP8[$120>>0]|0;
+  $122 = $121&255;
+  $123 = $122 << 8;
+  $124 = $119 | $123;
+  $125 = ((($$0)) + 15|0);
+  $126 = HEAP8[$125>>0]|0;
+  $127 = $126&255;
+  $128 = $124 | $127;
+  $129 = (($42) + 1518500249)|0;
+  $130 = (($129) + ($110))|0;
+  $131 = (($130) + ($128))|0;
+  $132 = (($131) + ($107))|0;
+  $133 = $70 << 30;
+  $134 = $70 >>> 2;
+  $135 = $133 | $134;
+  $136 = $132 << 5;
+  $137 = $132 >>> 27;
+  $138 = $136 | $137;
+  $139 = $135 ^ $104;
+  $140 = $101 & $139;
+  $141 = $140 ^ $104;
+  $142 = ((($$0)) + 16|0);
+  $143 = HEAP8[$142>>0]|0;
+  $144 = $143&255;
+  $145 = $144 << 24;
+  $146 = ((($$0)) + 17|0);
+  $147 = HEAP8[$146>>0]|0;
+  $148 = $147&255;
+  $149 = $148 << 16;
+  $150 = $149 | $145;
+  $151 = ((($$0)) + 18|0);
+  $152 = HEAP8[$151>>0]|0;
+  $153 = $152&255;
+  $154 = $153 << 8;
+  $155 = $150 | $154;
+  $156 = ((($$0)) + 19|0);
+  $157 = HEAP8[$156>>0]|0;
+  $158 = $157&255;
+  $159 = $155 | $158;
+  $160 = (($73) + 1518500249)|0;
+  $161 = (($160) + ($141))|0;
+  $162 = (($161) + ($159))|0;
+  $163 = (($162) + ($138))|0;
+  $164 = $101 << 30;
+  $165 = $101 >>> 2;
+  $166 = $164 | $165;
+  $167 = $163 << 5;
+  $168 = $163 >>> 27;
+  $169 = $167 | $168;
+  $170 = $166 ^ $135;
+  $171 = $132 & $170;
+  $172 = $171 ^ $135;
+  $173 = ((($$0)) + 20|0);
+  $174 = HEAP8[$173>>0]|0;
+  $175 = $174&255;
+  $176 = $175 << 24;
+  $177 = ((($$0)) + 21|0);
+  $178 = HEAP8[$177>>0]|0;
+  $179 = $178&255;
+  $180 = $179 << 16;
+  $181 = $180 | $176;
+  $182 = ((($$0)) + 22|0);
+  $183 = HEAP8[$182>>0]|0;
+  $184 = $183&255;
+  $185 = $184 << 8;
+  $186 = $181 | $185;
+  $187 = ((($$0)) + 23|0);
+  $188 = HEAP8[$187>>0]|0;
+  $189 = $188&255;
+  $190 = $186 | $189;
+  $191 = (($104) + 1518500249)|0;
+  $192 = (($191) + ($172))|0;
+  $193 = (($192) + ($190))|0;
+  $194 = (($193) + ($169))|0;
+  $195 = $132 << 30;
+  $196 = $132 >>> 2;
+  $197 = $195 | $196;
+  $198 = $194 << 5;
+  $199 = $194 >>> 27;
+  $200 = $198 | $199;
+  $201 = $197 ^ $166;
+  $202 = $163 & $201;
+  $203 = $202 ^ $166;
+  $204 = ((($$0)) + 24|0);
+  $205 = HEAP8[$204>>0]|0;
+  $206 = $205&255;
+  $207 = $206 << 24;
+  $208 = ((($$0)) + 25|0);
+  $209 = HEAP8[$208>>0]|0;
+  $210 = $209&255;
+  $211 = $210 << 16;
+  $212 = $211 | $207;
+  $213 = ((($$0)) + 26|0);
+  $214 = HEAP8[$213>>0]|0;
+  $215 = $214&255;
+  $216 = $215 << 8;
+  $217 = $212 | $216;
+  $218 = ((($$0)) + 27|0);
+  $219 = HEAP8[$218>>0]|0;
+  $220 = $219&255;
+  $221 = $217 | $220;
+  $222 = (($135) + 1518500249)|0;
+  $223 = (($222) + ($203))|0;
+  $224 = (($223) + ($221))|0;
+  $225 = (($224) + ($200))|0;
+  $226 = $163 << 30;
+  $227 = $163 >>> 2;
+  $228 = $226 | $227;
+  $229 = $225 << 5;
+  $230 = $225 >>> 27;
+  $231 = $229 | $230;
+  $232 = $228 ^ $197;
+  $233 = $194 & $232;
+  $234 = $233 ^ $197;
+  $235 = ((($$0)) + 28|0);
+  $236 = HEAP8[$235>>0]|0;
+  $237 = $236&255;
+  $238 = $237 << 24;
+  $239 = ((($$0)) + 29|0);
+  $240 = HEAP8[$239>>0]|0;
+  $241 = $240&255;
+  $242 = $241 << 16;
+  $243 = $242 | $238;
+  $244 = ((($$0)) + 30|0);
+  $245 = HEAP8[$244>>0]|0;
+  $246 = $245&255;
+  $247 = $246 << 8;
+  $248 = $243 | $247;
+  $249 = ((($$0)) + 31|0);
+  $250 = HEAP8[$249>>0]|0;
+  $251 = $250&255;
+  $252 = $248 | $251;
+  $253 = (($166) + 1518500249)|0;
+  $254 = (($253) + ($234))|0;
+  $255 = (($254) + ($252))|0;
+  $256 = (($255) + ($231))|0;
+  $257 = $194 << 30;
+  $258 = $194 >>> 2;
+  $259 = $257 | $258;
+  $260 = $256 << 5;
+  $261 = $256 >>> 27;
+  $262 = $260 | $261;
+  $263 = $259 ^ $228;
+  $264 = $225 & $263;
+  $265 = $264 ^ $228;
+  $266 = ((($$0)) + 32|0);
+  $267 = HEAP8[$266>>0]|0;
+  $268 = $267&255;
+  $269 = $268 << 24;
+  $270 = ((($$0)) + 33|0);
+  $271 = HEAP8[$270>>0]|0;
+  $272 = $271&255;
+  $273 = $272 << 16;
+  $274 = $273 | $269;
+  $275 = ((($$0)) + 34|0);
+  $276 = HEAP8[$275>>0]|0;
+  $277 = $276&255;
+  $278 = $277 << 8;
+  $279 = $274 | $278;
+  $280 = ((($$0)) + 35|0);
+  $281 = HEAP8[$280>>0]|0;
+  $282 = $281&255;
+  $283 = $279 | $282;
+  $284 = (($197) + 1518500249)|0;
+  $285 = (($284) + ($265))|0;
+  $286 = (($285) + ($283))|0;
+  $287 = (($286) + ($262))|0;
+  $288 = $225 << 30;
+  $289 = $225 >>> 2;
+  $290 = $288 | $289;
+  $291 = $287 << 5;
+  $292 = $287 >>> 27;
+  $293 = $291 | $292;
+  $294 = $290 ^ $259;
+  $295 = $256 & $294;
+  $296 = $295 ^ $259;
+  $297 = ((($$0)) + 36|0);
+  $298 = HEAP8[$297>>0]|0;
+  $299 = $298&255;
+  $300 = $299 << 24;
+  $301 = ((($$0)) + 37|0);
+  $302 = HEAP8[$301>>0]|0;
+  $303 = $302&255;
+  $304 = $303 << 16;
+  $305 = $304 | $300;
+  $306 = ((($$0)) + 38|0);
+  $307 = HEAP8[$306>>0]|0;
+  $308 = $307&255;
+  $309 = $308 << 8;
+  $310 = $305 | $309;
+  $311 = ((($$0)) + 39|0);
+  $312 = HEAP8[$311>>0]|0;
+  $313 = $312&255;
+  $314 = $310 | $313;
+  $315 = (($228) + 1518500249)|0;
+  $316 = (($315) + ($296))|0;
+  $317 = (($316) + ($314))|0;
+  $318 = (($317) + ($293))|0;
+  $319 = $256 << 30;
+  $320 = $256 >>> 2;
+  $321 = $319 | $320;
+  $322 = $318 << 5;
+  $323 = $318 >>> 27;
+  $324 = $322 | $323;
+  $325 = $321 ^ $290;
+  $326 = $287 & $325;
+  $327 = $326 ^ $290;
+  $328 = ((($$0)) + 40|0);
+  $329 = HEAP8[$328>>0]|0;
+  $330 = $329&255;
+  $331 = $330 << 24;
+  $332 = ((($$0)) + 41|0);
+  $333 = HEAP8[$332>>0]|0;
+  $334 = $333&255;
+  $335 = $334 << 16;
+  $336 = $335 | $331;
+  $337 = ((($$0)) + 42|0);
+  $338 = HEAP8[$337>>0]|0;
+  $339 = $338&255;
+  $340 = $339 << 8;
+  $341 = $336 | $340;
+  $342 = ((($$0)) + 43|0);
+  $343 = HEAP8[$342>>0]|0;
+  $344 = $343&255;
+  $345 = $341 | $344;
+  $346 = (($259) + 1518500249)|0;
+  $347 = (($346) + ($327))|0;
+  $348 = (($347) + ($345))|0;
+  $349 = (($348) + ($324))|0;
+  $350 = $287 << 30;
+  $351 = $287 >>> 2;
+  $352 = $350 | $351;
+  $353 = $349 << 5;
+  $354 = $349 >>> 27;
+  $355 = $353 | $354;
+  $356 = $352 ^ $321;
+  $357 = $318 & $356;
+  $358 = $357 ^ $321;
+  $359 = ((($$0)) + 44|0);
+  $360 = HEAP8[$359>>0]|0;
+  $361 = $360&255;
+  $362 = $361 << 24;
+  $363 = ((($$0)) + 45|0);
+  $364 = HEAP8[$363>>0]|0;
+  $365 = $364&255;
+  $366 = $365 << 16;
+  $367 = $366 | $362;
+  $368 = ((($$0)) + 46|0);
+  $369 = HEAP8[$368>>0]|0;
+  $370 = $369&255;
+  $371 = $370 << 8;
+  $372 = $367 | $371;
+  $373 = ((($$0)) + 47|0);
+  $374 = HEAP8[$373>>0]|0;
+  $375 = $374&255;
+  $376 = $372 | $375;
+  $377 = (($290) + 1518500249)|0;
+  $378 = (($377) + ($358))|0;
+  $379 = (($378) + ($376))|0;
+  $380 = (($379) + ($355))|0;
+  $381 = $318 << 30;
+  $382 = $318 >>> 2;
+  $383 = $381 | $382;
+  $384 = $380 << 5;
+  $385 = $380 >>> 27;
+  $386 = $384 | $385;
+  $387 = $383 ^ $352;
+  $388 = $349 & $387;
+  $389 = $388 ^ $352;
+  $390 = ((($$0)) + 48|0);
+  $391 = HEAP8[$390>>0]|0;
+  $392 = $391&255;
+  $393 = $392 << 24;
+  $394 = ((($$0)) + 49|0);
+  $395 = HEAP8[$394>>0]|0;
+  $396 = $395&255;
+  $397 = $396 << 16;
+  $398 = $397 | $393;
+  $399 = ((($$0)) + 50|0);
+  $400 = HEAP8[$399>>0]|0;
+  $401 = $400&255;
+  $402 = $401 << 8;
+  $403 = $398 | $402;
+  $404 = ((($$0)) + 51|0);
+  $405 = HEAP8[$404>>0]|0;
+  $406 = $405&255;
+  $407 = $403 | $406;
+  $408 = (($321) + 1518500249)|0;
+  $409 = (($408) + ($389))|0;
+  $410 = (($409) + ($407))|0;
+  $411 = (($410) + ($386))|0;
+  $412 = $349 << 30;
+  $413 = $349 >>> 2;
+  $414 = $412 | $413;
+  $415 = $411 << 5;
+  $416 = $411 >>> 27;
+  $417 = $415 | $416;
+  $418 = $414 ^ $383;
+  $419 = $380 & $418;
+  $420 = $419 ^ $383;
+  $421 = ((($$0)) + 52|0);
+  $422 = HEAP8[$421>>0]|0;
+  $423 = $422&255;
+  $424 = $423 << 24;
+  $425 = ((($$0)) + 53|0);
+  $426 = HEAP8[$425>>0]|0;
+  $427 = $426&255;
+  $428 = $427 << 16;
+  $429 = $428 | $424;
+  $430 = ((($$0)) + 54|0);
+  $431 = HEAP8[$430>>0]|0;
+  $432 = $431&255;
+  $433 = $432 << 8;
+  $434 = $429 | $433;
+  $435 = ((($$0)) + 55|0);
+  $436 = HEAP8[$435>>0]|0;
+  $437 = $436&255;
+  $438 = $434 | $437;
+  $439 = (($352) + 1518500249)|0;
+  $440 = (($439) + ($420))|0;
+  $441 = (($440) + ($438))|0;
+  $442 = (($441) + ($417))|0;
+  $443 = $380 << 30;
+  $444 = $380 >>> 2;
+  $445 = $443 | $444;
+  $446 = $442 << 5;
+  $447 = $442 >>> 27;
+  $448 = $446 | $447;
+  $449 = $445 ^ $414;
+  $450 = $411 & $449;
+  $451 = $450 ^ $414;
+  $452 = ((($$0)) + 56|0);
+  $453 = HEAP8[$452>>0]|0;
+  $454 = $453&255;
+  $455 = $454 << 24;
+  $456 = ((($$0)) + 57|0);
+  $457 = HEAP8[$456>>0]|0;
+  $458 = $457&255;
+  $459 = $458 << 16;
+  $460 = $459 | $455;
+  $461 = ((($$0)) + 58|0);
+  $462 = HEAP8[$461>>0]|0;
+  $463 = $462&255;
+  $464 = $463 << 8;
+  $465 = $460 | $464;
+  $466 = ((($$0)) + 59|0);
+  $467 = HEAP8[$466>>0]|0;
+  $468 = $467&255;
+  $469 = $465 | $468;
+  $470 = (($383) + 1518500249)|0;
+  $471 = (($470) + ($451))|0;
+  $472 = (($471) + ($469))|0;
+  $473 = (($472) + ($448))|0;
+  $474 = $411 << 30;
+  $475 = $411 >>> 2;
+  $476 = $474 | $475;
+  $477 = $473 << 5;
+  $478 = $473 >>> 27;
+  $479 = $477 | $478;
+  $480 = $476 ^ $445;
+  $481 = $442 & $480;
+  $482 = $481 ^ $445;
+  $483 = ((($$0)) + 60|0);
+  $484 = HEAP8[$483>>0]|0;
+  $485 = $484&255;
+  $486 = $485 << 24;
+  $487 = ((($$0)) + 61|0);
+  $488 = HEAP8[$487>>0]|0;
+  $489 = $488&255;
+  $490 = $489 << 16;
+  $491 = $490 | $486;
+  $492 = ((($$0)) + 62|0);
+  $493 = HEAP8[$492>>0]|0;
+  $494 = $493&255;
+  $495 = $494 << 8;
+  $496 = $491 | $495;
+  $497 = ((($$0)) + 63|0);
+  $498 = HEAP8[$497>>0]|0;
+  $499 = $498&255;
+  $500 = $496 | $499;
+  $501 = (($414) + 1518500249)|0;
+  $502 = (($501) + ($482))|0;
+  $503 = (($502) + ($500))|0;
+  $504 = (($503) + ($479))|0;
+  $505 = $442 << 30;
+  $506 = $442 >>> 2;
+  $507 = $505 | $506;
+  $508 = $504 << 5;
+  $509 = $504 >>> 27;
+  $510 = $508 | $509;
+  $511 = $507 ^ $476;
+  $512 = $473 & $511;
+  $513 = $512 ^ $476;
+  $514 = $97 ^ $34;
+  $515 = $514 ^ $283;
+  $516 = $515 ^ $438;
+  $517 = $516 << 1;
+  $518 = $516 >>> 31;
+  $519 = $517 | $518;
+  $520 = (($445) + 1518500249)|0;
+  $521 = (($520) + ($519))|0;
+  $522 = (($521) + ($513))|0;
+  $523 = (($522) + ($510))|0;
+  $524 = $473 << 30;
+  $525 = $473 >>> 2;
+  $526 = $524 | $525;
+  $527 = $523 << 5;
+  $528 = $523 >>> 27;
+  $529 = $527 | $528;
+  $530 = $526 ^ $507;
+  $531 = $504 & $530;
+  $532 = $531 ^ $507;
+  $533 = $128 ^ $66;
+  $534 = $533 ^ $314;
+  $535 = $534 ^ $469;
+  $536 = $535 << 1;
+  $537 = $535 >>> 31;
+  $538 = $536 | $537;
+  $539 = (($476) + 1518500249)|0;
+  $540 = (($539) + ($538))|0;
+  $541 = (($540) + ($532))|0;
+  $542 = (($541) + ($529))|0;
+  $543 = $504 << 30;
+  $544 = $504 >>> 2;
+  $545 = $543 | $544;
+  $546 = $542 << 5;
+  $547 = $542 >>> 27;
+  $548 = $546 | $547;
+  $549 = $545 ^ $526;
+  $550 = $523 & $549;
+  $551 = $550 ^ $526;
+  $552 = $159 ^ $97;
+  $553 = $552 ^ $345;
+  $554 = $553 ^ $500;
+  $555 = $554 << 1;
+  $556 = $554 >>> 31;
+  $557 = $555 | $556;
+  $558 = (($507) + 1518500249)|0;
+  $559 = (($558) + ($557))|0;
+  $560 = (($559) + ($551))|0;
+  $561 = (($560) + ($548))|0;
+  $562 = $523 << 30;
+  $563 = $523 >>> 2;
+  $564 = $562 | $563;
+  $565 = $561 << 5;
+  $566 = $561 >>> 27;
+  $567 = $565 | $566;
+  $568 = $564 ^ $545;
+  $569 = $542 & $568;
+  $570 = $569 ^ $545;
+  $571 = $190 ^ $128;
+  $572 = $571 ^ $376;
+  $573 = $572 ^ $519;
+  $574 = $573 << 1;
+  $575 = $573 >>> 31;
+  $576 = $574 | $575;
+  $577 = (($576) + 1518500249)|0;
+  $578 = (($577) + ($526))|0;
+  $579 = (($578) + ($570))|0;
+  $580 = (($579) + ($567))|0;
+  $581 = $542 << 30;
+  $582 = $542 >>> 2;
+  $583 = $581 | $582;
+  $584 = $580 << 5;
+  $585 = $580 >>> 27;
+  $586 = $584 | $585;
+  $587 = $583 ^ $564;
+  $588 = $587 ^ $561;
+  $589 = $221 ^ $159;
+  $590 = $589 ^ $407;
+  $591 = $590 ^ $538;
+  $592 = $591 << 1;
+  $593 = $591 >>> 31;
+  $594 = $592 | $593;
+  $595 = (($594) + 1859775393)|0;
+  $596 = (($595) + ($545))|0;
+  $597 = (($596) + ($588))|0;
+  $598 = (($597) + ($586))|0;
+  $599 = $561 << 30;
+  $600 = $561 >>> 2;
+  $601 = $599 | $600;
+  $602 = $598 << 5;
+  $603 = $598 >>> 27;
+  $604 = $602 | $603;
+  $605 = $601 ^ $583;
+  $606 = $605 ^ $580;
+  $607 = $252 ^ $190;
+  $608 = $607 ^ $438;
+  $609 = $608 ^ $557;
+  $610 = $609 << 1;
+  $611 = $609 >>> 31;
+  $612 = $610 | $611;
+  $613 = (($612) + 1859775393)|0;
+  $614 = (($613) + ($564))|0;
+  $615 = (($614) + ($606))|0;
+  $616 = (($615) + ($604))|0;
+  $617 = $580 << 30;
+  $618 = $580 >>> 2;
+  $619 = $617 | $618;
+  $620 = $616 << 5;
+  $621 = $616 >>> 27;
+  $622 = $620 | $621;
+  $623 = $619 ^ $601;
+  $624 = $623 ^ $598;
+  $625 = $283 ^ $221;
+  $626 = $625 ^ $469;
+  $627 = $626 ^ $576;
+  $628 = $627 << 1;
+  $629 = $627 >>> 31;
+  $630 = $628 | $629;
+  $631 = (($630) + 1859775393)|0;
+  $632 = (($631) + ($583))|0;
+  $633 = (($632) + ($624))|0;
+  $634 = (($633) + ($622))|0;
+  $635 = $598 << 30;
+  $636 = $598 >>> 2;
+  $637 = $635 | $636;
+  $638 = $634 << 5;
+  $639 = $634 >>> 27;
+  $640 = $638 | $639;
+  $641 = $637 ^ $619;
+  $642 = $641 ^ $616;
+  $643 = $314 ^ $252;
+  $644 = $643 ^ $500;
+  $645 = $644 ^ $594;
+  $646 = $645 << 1;
+  $647 = $645 >>> 31;
+  $648 = $646 | $647;
+  $649 = (($648) + 1859775393)|0;
+  $650 = (($649) + ($601))|0;
+  $651 = (($650) + ($642))|0;
+  $652 = (($651) + ($640))|0;
+  $653 = $616 << 30;
+  $654 = $616 >>> 2;
+  $655 = $653 | $654;
+  $656 = $652 << 5;
+  $657 = $652 >>> 27;
+  $658 = $656 | $657;
+  $659 = $655 ^ $637;
+  $660 = $659 ^ $634;
+  $661 = $345 ^ $283;
+  $662 = $661 ^ $519;
+  $663 = $662 ^ $612;
+  $664 = $663 << 1;
+  $665 = $663 >>> 31;
+  $666 = $664 | $665;
+  $667 = (($666) + 1859775393)|0;
+  $668 = (($667) + ($619))|0;
+  $669 = (($668) + ($660))|0;
+  $670 = (($669) + ($658))|0;
+  $671 = $634 << 30;
+  $672 = $634 >>> 2;
+  $673 = $671 | $672;
+  $674 = $670 << 5;
+  $675 = $670 >>> 27;
+  $676 = $674 | $675;
+  $677 = $673 ^ $655;
+  $678 = $677 ^ $652;
+  $679 = $376 ^ $314;
+  $680 = $679 ^ $538;
+  $681 = $680 ^ $630;
+  $682 = $681 << 1;
+  $683 = $681 >>> 31;
+  $684 = $682 | $683;
+  $685 = (($684) + 1859775393)|0;
+  $686 = (($685) + ($637))|0;
+  $687 = (($686) + ($678))|0;
+  $688 = (($687) + ($676))|0;
+  $689 = $652 << 30;
+  $690 = $652 >>> 2;
+  $691 = $689 | $690;
+  $692 = $688 << 5;
+  $693 = $688 >>> 27;
+  $694 = $692 | $693;
+  $695 = $691 ^ $673;
+  $696 = $695 ^ $670;
+  $697 = $407 ^ $345;
+  $698 = $697 ^ $557;
+  $699 = $698 ^ $648;
+  $700 = $699 << 1;
+  $701 = $699 >>> 31;
+  $702 = $700 | $701;
+  $703 = (($702) + 1859775393)|0;
+  $704 = (($703) + ($655))|0;
+  $705 = (($704) + ($696))|0;
+  $706 = (($705) + ($694))|0;
+  $707 = $670 << 30;
+  $708 = $670 >>> 2;
+  $709 = $707 | $708;
+  $710 = $706 << 5;
+  $711 = $706 >>> 27;
+  $712 = $710 | $711;
+  $713 = $709 ^ $691;
+  $714 = $713 ^ $688;
+  $715 = $438 ^ $376;
+  $716 = $715 ^ $576;
+  $717 = $716 ^ $666;
+  $718 = $717 << 1;
+  $719 = $717 >>> 31;
+  $720 = $718 | $719;
+  $721 = (($720) + 1859775393)|0;
+  $722 = (($721) + ($673))|0;
+  $723 = (($722) + ($714))|0;
+  $724 = (($723) + ($712))|0;
+  $725 = $688 << 30;
+  $726 = $688 >>> 2;
+  $727 = $725 | $726;
+  $728 = $724 << 5;
+  $729 = $724 >>> 27;
+  $730 = $728 | $729;
+  $731 = $727 ^ $709;
+  $732 = $731 ^ $706;
+  $733 = $469 ^ $407;
+  $734 = $733 ^ $594;
+  $735 = $734 ^ $684;
+  $736 = $735 << 1;
+  $737 = $735 >>> 31;
+  $738 = $736 | $737;
+  $739 = (($738) + 1859775393)|0;
+  $740 = (($739) + ($691))|0;
+  $741 = (($740) + ($732))|0;
+  $742 = (($741) + ($730))|0;
+  $743 = $706 << 30;
+  $744 = $706 >>> 2;
+  $745 = $743 | $744;
+  $746 = $742 << 5;
+  $747 = $742 >>> 27;
+  $748 = $746 | $747;
+  $749 = $745 ^ $727;
+  $750 = $749 ^ $724;
+  $751 = $500 ^ $438;
+  $752 = $751 ^ $612;
+  $753 = $752 ^ $702;
+  $754 = $753 << 1;
+  $755 = $753 >>> 31;
+  $756 = $754 | $755;
+  $757 = (($756) + 1859775393)|0;
+  $758 = (($757) + ($709))|0;
+  $759 = (($758) + ($750))|0;
+  $760 = (($759) + ($748))|0;
+  $761 = $724 << 30;
+  $762 = $724 >>> 2;
+  $763 = $761 | $762;
+  $764 = $760 << 5;
+  $765 = $760 >>> 27;
+  $766 = $764 | $765;
+  $767 = $763 ^ $745;
+  $768 = $767 ^ $742;
+  $769 = $469 ^ $519;
+  $770 = $769 ^ $630;
+  $771 = $770 ^ $720;
+  $772 = $771 << 1;
+  $773 = $771 >>> 31;
+  $774 = $772 | $773;
+  $775 = (($774) + 1859775393)|0;
+  $776 = (($775) + ($727))|0;
+  $777 = (($776) + ($768))|0;
+  $778 = (($777) + ($766))|0;
+  $779 = $742 << 30;
+  $780 = $742 >>> 2;
+  $781 = $779 | $780;
+  $782 = $778 << 5;
+  $783 = $778 >>> 27;
+  $784 = $782 | $783;
+  $785 = $781 ^ $763;
+  $786 = $785 ^ $760;
+  $787 = $500 ^ $538;
+  $788 = $787 ^ $648;
+  $789 = $788 ^ $738;
+  $790 = $789 << 1;
+  $791 = $789 >>> 31;
+  $792 = $790 | $791;
+  $793 = (($792) + 1859775393)|0;
+  $794 = (($793) + ($745))|0;
+  $795 = (($794) + ($786))|0;
+  $796 = (($795) + ($784))|0;
+  $797 = $760 << 30;
+  $798 = $760 >>> 2;
+  $799 = $797 | $798;
+  $800 = $796 << 5;
+  $801 = $796 >>> 27;
+  $802 = $800 | $801;
+  $803 = $799 ^ $781;
+  $804 = $803 ^ $778;
+  $805 = $557 ^ $519;
+  $806 = $805 ^ $666;
+  $807 = $806 ^ $756;
+  $808 = $807 << 1;
+  $809 = $807 >>> 31;
+  $810 = $808 | $809;
+  $811 = (($810) + 1859775393)|0;
+  $812 = (($811) + ($763))|0;
+  $813 = (($812) + ($804))|0;
+  $814 = (($813) + ($802))|0;
+  $815 = $778 << 30;
+  $816 = $778 >>> 2;
+  $817 = $815 | $816;
+  $818 = $814 << 5;
+  $819 = $814 >>> 27;
+  $820 = $818 | $819;
+  $821 = $817 ^ $799;
+  $822 = $821 ^ $796;
+  $823 = $538 ^ $576;
+  $824 = $823 ^ $684;
+  $825 = $824 ^ $774;
+  $826 = $825 << 1;
+  $827 = $825 >>> 31;
+  $828 = $826 | $827;
+  $829 = (($828) + 1859775393)|0;
+  $830 = (($829) + ($781))|0;
+  $831 = (($830) + ($822))|0;
+  $832 = (($831) + ($820))|0;
+  $833 = $796 << 30;
+  $834 = $796 >>> 2;
+  $835 = $833 | $834;
+  $836 = $832 << 5;
+  $837 = $832 >>> 27;
+  $838 = $836 | $837;
+  $839 = $835 ^ $817;
+  $840 = $839 ^ $814;
+  $841 = $557 ^ $594;
+  $842 = $841 ^ $702;
+  $843 = $842 ^ $792;
+  $844 = $843 << 1;
+  $845 = $843 >>> 31;
+  $846 = $844 | $845;
+  $847 = (($846) + 1859775393)|0;
+  $848 = (($847) + ($799))|0;
+  $849 = (($848) + ($840))|0;
+  $850 = (($849) + ($838))|0;
+  $851 = $814 << 30;
+  $852 = $814 >>> 2;
+  $853 = $851 | $852;
+  $854 = $850 << 5;
+  $855 = $850 >>> 27;
+  $856 = $854 | $855;
+  $857 = $853 ^ $835;
+  $858 = $857 ^ $832;
+  $859 = $612 ^ $576;
+  $860 = $859 ^ $720;
+  $861 = $860 ^ $810;
+  $862 = $861 << 1;
+  $863 = $861 >>> 31;
+  $864 = $862 | $863;
+  $865 = (($864) + 1859775393)|0;
+  $866 = (($865) + ($817))|0;
+  $867 = (($866) + ($858))|0;
+  $868 = (($867) + ($856))|0;
+  $869 = $832 << 30;
+  $870 = $832 >>> 2;
+  $871 = $869 | $870;
+  $872 = $868 << 5;
+  $873 = $868 >>> 27;
+  $874 = $872 | $873;
+  $875 = $871 ^ $853;
+  $876 = $875 ^ $850;
+  $877 = $594 ^ $630;
+  $878 = $877 ^ $738;
+  $879 = $878 ^ $828;
+  $880 = $879 << 1;
+  $881 = $879 >>> 31;
+  $882 = $880 | $881;
+  $883 = (($882) + 1859775393)|0;
+  $884 = (($883) + ($835))|0;
+  $885 = (($884) + ($876))|0;
+  $886 = (($885) + ($874))|0;
+  $887 = $850 << 30;
+  $888 = $850 >>> 2;
+  $889 = $887 | $888;
+  $890 = $886 << 5;
+  $891 = $886 >>> 27;
+  $892 = $890 | $891;
+  $893 = $889 ^ $871;
+  $894 = $893 ^ $868;
+  $895 = $612 ^ $648;
+  $896 = $895 ^ $756;
+  $897 = $896 ^ $846;
+  $898 = $897 << 1;
+  $899 = $897 >>> 31;
+  $900 = $898 | $899;
+  $901 = (($900) + 1859775393)|0;
+  $902 = (($901) + ($853))|0;
+  $903 = (($902) + ($894))|0;
+  $904 = (($903) + ($892))|0;
+  $905 = $868 << 30;
+  $906 = $868 >>> 2;
+  $907 = $905 | $906;
+  $908 = $904 << 5;
+  $909 = $904 >>> 27;
+  $910 = $908 | $909;
+  $911 = $907 ^ $889;
+  $912 = $911 ^ $886;
+  $913 = $666 ^ $630;
+  $914 = $913 ^ $774;
+  $915 = $914 ^ $864;
+  $916 = $915 << 1;
+  $917 = $915 >>> 31;
+  $918 = $916 | $917;
+  $919 = (($918) + 1859775393)|0;
+  $920 = (($919) + ($871))|0;
+  $921 = (($920) + ($912))|0;
+  $922 = (($921) + ($910))|0;
+  $923 = $886 << 30;
+  $924 = $886 >>> 2;
+  $925 = $923 | $924;
+  $926 = $922 << 5;
+  $927 = $922 >>> 27;
+  $928 = $926 | $927;
+  $929 = $925 ^ $907;
+  $930 = $929 ^ $904;
+  $931 = $648 ^ $684;
+  $932 = $931 ^ $792;
+  $933 = $932 ^ $882;
+  $934 = $933 << 1;
+  $935 = $933 >>> 31;
+  $936 = $934 | $935;
+  $937 = (($936) + 1859775393)|0;
+  $938 = (($937) + ($889))|0;
+  $939 = (($938) + ($930))|0;
+  $940 = (($939) + ($928))|0;
+  $941 = $904 << 30;
+  $942 = $904 >>> 2;
+  $943 = $941 | $942;
+  $944 = $940 << 5;
+  $945 = $940 >>> 27;
+  $946 = $944 | $945;
+  $947 = $922 & $943;
+  $948 = $922 | $943;
+  $949 = $948 & $925;
+  $950 = $949 | $947;
+  $951 = $666 ^ $702;
+  $952 = $951 ^ $810;
+  $953 = $952 ^ $900;
+  $954 = $953 << 1;
+  $955 = $953 >>> 31;
+  $956 = $954 | $955;
+  $957 = (($956) + -1894007588)|0;
+  $958 = (($957) + ($907))|0;
+  $959 = (($958) + ($950))|0;
+  $960 = (($959) + ($946))|0;
+  $961 = $922 << 30;
+  $962 = $922 >>> 2;
+  $963 = $961 | $962;
+  $964 = $960 << 5;
+  $965 = $960 >>> 27;
+  $966 = $964 | $965;
+  $967 = $940 & $963;
+  $968 = $940 | $963;
+  $969 = $968 & $943;
+  $970 = $969 | $967;
+  $971 = $720 ^ $684;
+  $972 = $971 ^ $828;
+  $973 = $972 ^ $918;
+  $974 = $973 << 1;
+  $975 = $973 >>> 31;
+  $976 = $974 | $975;
+  $977 = (($976) + -1894007588)|0;
+  $978 = (($977) + ($925))|0;
+  $979 = (($978) + ($970))|0;
+  $980 = (($979) + ($966))|0;
+  $981 = $940 << 30;
+  $982 = $940 >>> 2;
+  $983 = $981 | $982;
+  $984 = $980 << 5;
+  $985 = $980 >>> 27;
+  $986 = $984 | $985;
+  $987 = $960 & $983;
+  $988 = $960 | $983;
+  $989 = $988 & $963;
+  $990 = $989 | $987;
+  $991 = $702 ^ $738;
+  $992 = $991 ^ $846;
+  $993 = $992 ^ $936;
+  $994 = $993 << 1;
+  $995 = $993 >>> 31;
+  $996 = $994 | $995;
+  $997 = (($996) + -1894007588)|0;
+  $998 = (($997) + ($943))|0;
+  $999 = (($998) + ($990))|0;
+  $1000 = (($999) + ($986))|0;
+  $1001 = $960 << 30;
+  $1002 = $960 >>> 2;
+  $1003 = $1001 | $1002;
+  $1004 = $1000 << 5;
+  $1005 = $1000 >>> 27;
+  $1006 = $1004 | $1005;
+  $1007 = $980 & $1003;
+  $1008 = $980 | $1003;
+  $1009 = $1008 & $983;
+  $1010 = $1009 | $1007;
+  $1011 = $720 ^ $756;
+  $1012 = $1011 ^ $864;
+  $1013 = $1012 ^ $956;
+  $1014 = $1013 << 1;
+  $1015 = $1013 >>> 31;
+  $1016 = $1014 | $1015;
+  $1017 = (($1016) + -1894007588)|0;
+  $1018 = (($1017) + ($963))|0;
+  $1019 = (($1018) + ($1010))|0;
+  $1020 = (($1019) + ($1006))|0;
+  $1021 = $980 << 30;
+  $1022 = $980 >>> 2;
+  $1023 = $1021 | $1022;
+  $1024 = $1020 << 5;
+  $1025 = $1020 >>> 27;
+  $1026 = $1024 | $1025;
+  $1027 = $1000 & $1023;
+  $1028 = $1000 | $1023;
+  $1029 = $1028 & $1003;
+  $1030 = $1029 | $1027;
+  $1031 = $774 ^ $738;
+  $1032 = $1031 ^ $882;
+  $1033 = $1032 ^ $976;
+  $1034 = $1033 << 1;
+  $1035 = $1033 >>> 31;
+  $1036 = $1034 | $1035;
+  $1037 = (($1036) + -1894007588)|0;
+  $1038 = (($1037) + ($983))|0;
+  $1039 = (($1038) + ($1030))|0;
+  $1040 = (($1039) + ($1026))|0;
+  $1041 = $1000 << 30;
+  $1042 = $1000 >>> 2;
+  $1043 = $1041 | $1042;
+  $1044 = $1040 << 5;
+  $1045 = $1040 >>> 27;
+  $1046 = $1044 | $1045;
+  $1047 = $1020 & $1043;
+  $1048 = $1020 | $1043;
+  $1049 = $1048 & $1023;
+  $1050 = $1049 | $1047;
+  $1051 = $756 ^ $792;
+  $1052 = $1051 ^ $900;
+  $1053 = $1052 ^ $996;
+  $1054 = $1053 << 1;
+  $1055 = $1053 >>> 31;
+  $1056 = $1054 | $1055;
+  $1057 = (($1056) + -1894007588)|0;
+  $1058 = (($1057) + ($1003))|0;
+  $1059 = (($1058) + ($1050))|0;
+  $1060 = (($1059) + ($1046))|0;
+  $1061 = $1020 << 30;
+  $1062 = $1020 >>> 2;
+  $1063 = $1061 | $1062;
+  $1064 = $1060 << 5;
+  $1065 = $1060 >>> 27;
+  $1066 = $1064 | $1065;
+  $1067 = $1040 & $1063;
+  $1068 = $1040 | $1063;
+  $1069 = $1068 & $1043;
+  $1070 = $1069 | $1067;
+  $1071 = $774 ^ $810;
+  $1072 = $1071 ^ $918;
+  $1073 = $1072 ^ $1016;
+  $1074 = $1073 << 1;
+  $1075 = $1073 >>> 31;
+  $1076 = $1074 | $1075;
+  $1077 = (($1076) + -1894007588)|0;
+  $1078 = (($1077) + ($1023))|0;
+  $1079 = (($1078) + ($1070))|0;
+  $1080 = (($1079) + ($1066))|0;
+  $1081 = $1040 << 30;
+  $1082 = $1040 >>> 2;
+  $1083 = $1081 | $1082;
+  $1084 = $1080 << 5;
+  $1085 = $1080 >>> 27;
+  $1086 = $1084 | $1085;
+  $1087 = $1060 & $1083;
+  $1088 = $1060 | $1083;
+  $1089 = $1088 & $1063;
+  $1090 = $1089 | $1087;
+  $1091 = $828 ^ $792;
+  $1092 = $1091 ^ $936;
+  $1093 = $1092 ^ $1036;
+  $1094 = $1093 << 1;
+  $1095 = $1093 >>> 31;
+  $1096 = $1094 | $1095;
+  $1097 = (($1096) + -1894007588)|0;
+  $1098 = (($1097) + ($1043))|0;
+  $1099 = (($1098) + ($1090))|0;
+  $1100 = (($1099) + ($1086))|0;
+  $1101 = $1060 << 30;
+  $1102 = $1060 >>> 2;
+  $1103 = $1101 | $1102;
+  $1104 = $1100 << 5;
+  $1105 = $1100 >>> 27;
+  $1106 = $1104 | $1105;
+  $1107 = $1080 & $1103;
+  $1108 = $1080 | $1103;
+  $1109 = $1108 & $1083;
+  $1110 = $1109 | $1107;
+  $1111 = $810 ^ $846;
+  $1112 = $1111 ^ $956;
+  $1113 = $1112 ^ $1056;
+  $1114 = $1113 << 1;
+  $1115 = $1113 >>> 31;
+  $1116 = $1114 | $1115;
+  $1117 = (($1116) + -1894007588)|0;
+  $1118 = (($1117) + ($1063))|0;
+  $1119 = (($1118) + ($1110))|0;
+  $1120 = (($1119) + ($1106))|0;
+  $1121 = $1080 << 30;
+  $1122 = $1080 >>> 2;
+  $1123 = $1121 | $1122;
+  $1124 = $1120 << 5;
+  $1125 = $1120 >>> 27;
+  $1126 = $1124 | $1125;
+  $1127 = $1100 & $1123;
+  $1128 = $1100 | $1123;
+  $1129 = $1128 & $1103;
+  $1130 = $1129 | $1127;
+  $1131 = $828 ^ $864;
+  $1132 = $1131 ^ $976;
+  $1133 = $1132 ^ $1076;
+  $1134 = $1133 << 1;
+  $1135 = $1133 >>> 31;
+  $1136 = $1134 | $1135;
+  $1137 = (($1136) + -1894007588)|0;
+  $1138 = (($1137) + ($1083))|0;
+  $1139 = (($1138) + ($1130))|0;
+  $1140 = (($1139) + ($1126))|0;
+  $1141 = $1100 << 30;
+  $1142 = $1100 >>> 2;
+  $1143 = $1141 | $1142;
+  $1144 = $1140 << 5;
+  $1145 = $1140 >>> 27;
+  $1146 = $1144 | $1145;
+  $1147 = $1120 & $1143;
+  $1148 = $1120 | $1143;
+  $1149 = $1148 & $1123;
+  $1150 = $1149 | $1147;
+  $1151 = $882 ^ $846;
+  $1152 = $1151 ^ $996;
+  $1153 = $1152 ^ $1096;
+  $1154 = $1153 << 1;
+  $1155 = $1153 >>> 31;
+  $1156 = $1154 | $1155;
+  $1157 = (($1156) + -1894007588)|0;
+  $1158 = (($1157) + ($1103))|0;
+  $1159 = (($1158) + ($1150))|0;
+  $1160 = (($1159) + ($1146))|0;
+  $1161 = $1120 << 30;
+  $1162 = $1120 >>> 2;
+  $1163 = $1161 | $1162;
+  $1164 = $1160 << 5;
+  $1165 = $1160 >>> 27;
+  $1166 = $1164 | $1165;
+  $1167 = $1140 & $1163;
+  $1168 = $1140 | $1163;
+  $1169 = $1168 & $1143;
+  $1170 = $1169 | $1167;
+  $1171 = $864 ^ $900;
+  $1172 = $1171 ^ $1016;
+  $1173 = $1172 ^ $1116;
+  $1174 = $1173 << 1;
+  $1175 = $1173 >>> 31;
+  $1176 = $1174 | $1175;
+  $1177 = (($1176) + -1894007588)|0;
+  $1178 = (($1177) + ($1123))|0;
+  $1179 = (($1178) + ($1170))|0;
+  $1180 = (($1179) + ($1166))|0;
+  $1181 = $1140 << 30;
+  $1182 = $1140 >>> 2;
+  $1183 = $1181 | $1182;
+  $1184 = $1180 << 5;
+  $1185 = $1180 >>> 27;
+  $1186 = $1184 | $1185;
+  $1187 = $1160 & $1183;
+  $1188 = $1160 | $1183;
+  $1189 = $1188 & $1163;
+  $1190 = $1189 | $1187;
+  $1191 = $882 ^ $918;
+  $1192 = $1191 ^ $1036;
+  $1193 = $1192 ^ $1136;
+  $1194 = $1193 << 1;
+  $1195 = $1193 >>> 31;
+  $1196 = $1194 | $1195;
+  $1197 = (($1196) + -1894007588)|0;
+  $1198 = (($1197) + ($1143))|0;
+  $1199 = (($1198) + ($1190))|0;
+  $1200 = (($1199) + ($1186))|0;
+  $1201 = $1160 << 30;
+  $1202 = $1160 >>> 2;
+  $1203 = $1201 | $1202;
+  $1204 = $1200 << 5;
+  $1205 = $1200 >>> 27;
+  $1206 = $1204 | $1205;
+  $1207 = $1180 & $1203;
+  $1208 = $1180 | $1203;
+  $1209 = $1208 & $1183;
+  $1210 = $1209 | $1207;
+  $1211 = $936 ^ $900;
+  $1212 = $1211 ^ $1056;
+  $1213 = $1212 ^ $1156;
+  $1214 = $1213 << 1;
+  $1215 = $1213 >>> 31;
+  $1216 = $1214 | $1215;
+  $1217 = (($1216) + -1894007588)|0;
+  $1218 = (($1217) + ($1163))|0;
+  $1219 = (($1218) + ($1210))|0;
+  $1220 = (($1219) + ($1206))|0;
+  $1221 = $1180 << 30;
+  $1222 = $1180 >>> 2;
+  $1223 = $1221 | $1222;
+  $1224 = $1220 << 5;
+  $1225 = $1220 >>> 27;
+  $1226 = $1224 | $1225;
+  $1227 = $1200 & $1223;
+  $1228 = $1200 | $1223;
+  $1229 = $1228 & $1203;
+  $1230 = $1229 | $1227;
+  $1231 = $918 ^ $956;
+  $1232 = $1231 ^ $1076;
+  $1233 = $1232 ^ $1176;
+  $1234 = $1233 << 1;
+  $1235 = $1233 >>> 31;
+  $1236 = $1234 | $1235;
+  $1237 = (($1236) + -1894007588)|0;
+  $1238 = (($1237) + ($1183))|0;
+  $1239 = (($1238) + ($1230))|0;
+  $1240 = (($1239) + ($1226))|0;
+  $1241 = $1200 << 30;
+  $1242 = $1200 >>> 2;
+  $1243 = $1241 | $1242;
+  $1244 = $1240 << 5;
+  $1245 = $1240 >>> 27;
+  $1246 = $1244 | $1245;
+  $1247 = $1220 & $1243;
+  $1248 = $1220 | $1243;
+  $1249 = $1248 & $1223;
+  $1250 = $1249 | $1247;
+  $1251 = $936 ^ $976;
+  $1252 = $1251 ^ $1096;
+  $1253 = $1252 ^ $1196;
+  $1254 = $1253 << 1;
+  $1255 = $1253 >>> 31;
+  $1256 = $1254 | $1255;
+  $1257 = (($1256) + -1894007588)|0;
+  $1258 = (($1257) + ($1203))|0;
+  $1259 = (($1258) + ($1250))|0;
+  $1260 = (($1259) + ($1246))|0;
+  $1261 = $1220 << 30;
+  $1262 = $1220 >>> 2;
+  $1263 = $1261 | $1262;
+  $1264 = $1260 << 5;
+  $1265 = $1260 >>> 27;
+  $1266 = $1264 | $1265;
+  $1267 = $1240 & $1263;
+  $1268 = $1240 | $1263;
+  $1269 = $1268 & $1243;
+  $1270 = $1269 | $1267;
+  $1271 = $996 ^ $956;
+  $1272 = $1271 ^ $1116;
+  $1273 = $1272 ^ $1216;
+  $1274 = $1273 << 1;
+  $1275 = $1273 >>> 31;
+  $1276 = $1274 | $1275;
+  $1277 = (($1276) + -1894007588)|0;
+  $1278 = (($1277) + ($1223))|0;
+  $1279 = (($1278) + ($1270))|0;
+  $1280 = (($1279) + ($1266))|0;
+  $1281 = $1240 << 30;
+  $1282 = $1240 >>> 2;
+  $1283 = $1281 | $1282;
+  $1284 = $1280 << 5;
+  $1285 = $1280 >>> 27;
+  $1286 = $1284 | $1285;
+  $1287 = $1260 & $1283;
+  $1288 = $1260 | $1283;
+  $1289 = $1288 & $1263;
+  $1290 = $1289 | $1287;
+  $1291 = $976 ^ $1016;
+  $1292 = $1291 ^ $1136;
+  $1293 = $1292 ^ $1236;
+  $1294 = $1293 << 1;
+  $1295 = $1293 >>> 31;
+  $1296 = $1294 | $1295;
+  $1297 = (($1296) + -1894007588)|0;
+  $1298 = (($1297) + ($1243))|0;
+  $1299 = (($1298) + ($1290))|0;
+  $1300 = (($1299) + ($1286))|0;
+  $1301 = $1260 << 30;
+  $1302 = $1260 >>> 2;
+  $1303 = $1301 | $1302;
+  $1304 = $1300 << 5;
+  $1305 = $1300 >>> 27;
+  $1306 = $1304 | $1305;
+  $1307 = $1280 & $1303;
+  $1308 = $1280 | $1303;
+  $1309 = $1308 & $1283;
+  $1310 = $1309 | $1307;
+  $1311 = $996 ^ $1036;
+  $1312 = $1311 ^ $1156;
+  $1313 = $1312 ^ $1256;
+  $1314 = $1313 << 1;
+  $1315 = $1313 >>> 31;
+  $1316 = $1314 | $1315;
+  $1317 = (($1316) + -1894007588)|0;
+  $1318 = (($1317) + ($1263))|0;
+  $1319 = (($1318) + ($1310))|0;
+  $1320 = (($1319) + ($1306))|0;
+  $1321 = $1280 << 30;
+  $1322 = $1280 >>> 2;
+  $1323 = $1321 | $1322;
+  $1324 = $1320 << 5;
+  $1325 = $1320 >>> 27;
+  $1326 = $1324 | $1325;
+  $1327 = $1300 & $1323;
+  $1328 = $1300 | $1323;
+  $1329 = $1328 & $1303;
+  $1330 = $1329 | $1327;
+  $1331 = $1056 ^ $1016;
+  $1332 = $1331 ^ $1176;
+  $1333 = $1332 ^ $1276;
+  $1334 = $1333 << 1;
+  $1335 = $1333 >>> 31;
+  $1336 = $1334 | $1335;
+  $1337 = (($1336) + -1894007588)|0;
+  $1338 = (($1337) + ($1283))|0;
+  $1339 = (($1338) + ($1330))|0;
+  $1340 = (($1339) + ($1326))|0;
+  $1341 = $1300 << 30;
+  $1342 = $1300 >>> 2;
+  $1343 = $1341 | $1342;
+  $1344 = $1340 << 5;
+  $1345 = $1340 >>> 27;
+  $1346 = $1344 | $1345;
+  $1347 = $1343 ^ $1323;
+  $1348 = $1347 ^ $1320;
+  $1349 = $1036 ^ $1076;
+  $1350 = $1349 ^ $1196;
+  $1351 = $1350 ^ $1296;
+  $1352 = $1351 << 1;
+  $1353 = $1351 >>> 31;
+  $1354 = $1352 | $1353;
+  $1355 = (($1354) + -899497514)|0;
+  $1356 = (($1355) + ($1303))|0;
+  $1357 = (($1356) + ($1348))|0;
+  $1358 = (($1357) + ($1346))|0;
+  $1359 = $1320 << 30;
+  $1360 = $1320 >>> 2;
+  $1361 = $1359 | $1360;
+  $1362 = $1358 << 5;
+  $1363 = $1358 >>> 27;
+  $1364 = $1362 | $1363;
+  $1365 = $1361 ^ $1343;
+  $1366 = $1365 ^ $1340;
+  $1367 = $1056 ^ $1096;
+  $1368 = $1367 ^ $1216;
+  $1369 = $1368 ^ $1316;
+  $1370 = $1369 << 1;
+  $1371 = $1369 >>> 31;
+  $1372 = $1370 | $1371;
+  $1373 = (($1372) + -899497514)|0;
+  $1374 = (($1373) + ($1323))|0;
+  $1375 = (($1374) + ($1366))|0;
+  $1376 = (($1375) + ($1364))|0;
+  $1377 = $1340 << 30;
+  $1378 = $1340 >>> 2;
+  $1379 = $1377 | $1378;
+  $1380 = $1376 << 5;
+  $1381 = $1376 >>> 27;
+  $1382 = $1380 | $1381;
+  $1383 = $1379 ^ $1361;
+  $1384 = $1383 ^ $1358;
+  $1385 = $1116 ^ $1076;
+  $1386 = $1385 ^ $1236;
+  $1387 = $1386 ^ $1336;
+  $1388 = $1387 << 1;
+  $1389 = $1387 >>> 31;
+  $1390 = $1388 | $1389;
+  $1391 = (($1390) + -899497514)|0;
+  $1392 = (($1391) + ($1343))|0;
+  $1393 = (($1392) + ($1384))|0;
+  $1394 = (($1393) + ($1382))|0;
+  $1395 = $1358 << 30;
+  $1396 = $1358 >>> 2;
+  $1397 = $1395 | $1396;
+  $1398 = $1394 << 5;
+  $1399 = $1394 >>> 27;
+  $1400 = $1398 | $1399;
+  $1401 = $1397 ^ $1379;
+  $1402 = $1401 ^ $1376;
+  $1403 = $1096 ^ $1136;
+  $1404 = $1403 ^ $1256;
+  $1405 = $1404 ^ $1354;
+  $1406 = $1405 << 1;
+  $1407 = $1405 >>> 31;
+  $1408 = $1406 | $1407;
+  $1409 = (($1408) + -899497514)|0;
+  $1410 = (($1409) + ($1361))|0;
+  $1411 = (($1410) + ($1402))|0;
+  $1412 = (($1411) + ($1400))|0;
+  $1413 = $1376 << 30;
+  $1414 = $1376 >>> 2;
+  $1415 = $1413 | $1414;
+  $1416 = $1412 << 5;
+  $1417 = $1412 >>> 27;
+  $1418 = $1416 | $1417;
+  $1419 = $1415 ^ $1397;
+  $1420 = $1419 ^ $1394;
+  $1421 = $1116 ^ $1156;
+  $1422 = $1421 ^ $1276;
+  $1423 = $1422 ^ $1372;
+  $1424 = $1423 << 1;
+  $1425 = $1423 >>> 31;
+  $1426 = $1424 | $1425;
+  $1427 = (($1426) + -899497514)|0;
+  $1428 = (($1427) + ($1379))|0;
+  $1429 = (($1428) + ($1420))|0;
+  $1430 = (($1429) + ($1418))|0;
+  $1431 = $1394 << 30;
+  $1432 = $1394 >>> 2;
+  $1433 = $1431 | $1432;
+  $1434 = $1430 << 5;
+  $1435 = $1430 >>> 27;
+  $1436 = $1434 | $1435;
+  $1437 = $1433 ^ $1415;
+  $1438 = $1437 ^ $1412;
+  $1439 = $1176 ^ $1136;
+  $1440 = $1439 ^ $1296;
+  $1441 = $1440 ^ $1390;
+  $1442 = $1441 << 1;
+  $1443 = $1441 >>> 31;
+  $1444 = $1442 | $1443;
+  $1445 = (($1444) + -899497514)|0;
+  $1446 = (($1445) + ($1397))|0;
+  $1447 = (($1446) + ($1438))|0;
+  $1448 = (($1447) + ($1436))|0;
+  $1449 = $1412 << 30;
+  $1450 = $1412 >>> 2;
+  $1451 = $1449 | $1450;
+  $1452 = $1448 << 5;
+  $1453 = $1448 >>> 27;
+  $1454 = $1452 | $1453;
+  $1455 = $1451 ^ $1433;
+  $1456 = $1455 ^ $1430;
+  $1457 = $1156 ^ $1196;
+  $1458 = $1457 ^ $1316;
+  $1459 = $1458 ^ $1408;
+  $1460 = $1459 << 1;
+  $1461 = $1459 >>> 31;
+  $1462 = $1460 | $1461;
+  $1463 = (($1462) + -899497514)|0;
+  $1464 = (($1463) + ($1415))|0;
+  $1465 = (($1464) + ($1456))|0;
+  $1466 = (($1465) + ($1454))|0;
+  $1467 = $1430 << 30;
+  $1468 = $1430 >>> 2;
+  $1469 = $1467 | $1468;
+  $1470 = $1466 << 5;
+  $1471 = $1466 >>> 27;
+  $1472 = $1470 | $1471;
+  $1473 = $1469 ^ $1451;
+  $1474 = $1473 ^ $1448;
+  $1475 = $1176 ^ $1216;
+  $1476 = $1475 ^ $1336;
+  $1477 = $1476 ^ $1426;
+  $1478 = $1477 << 1;
+  $1479 = $1477 >>> 31;
+  $1480 = $1478 | $1479;
+  $1481 = (($1480) + -899497514)|0;
+  $1482 = (($1481) + ($1433))|0;
+  $1483 = (($1482) + ($1474))|0;
+  $1484 = (($1483) + ($1472))|0;
+  $1485 = $1448 << 30;
+  $1486 = $1448 >>> 2;
+  $1487 = $1485 | $1486;
+  $1488 = $1484 << 5;
+  $1489 = $1484 >>> 27;
+  $1490 = $1488 | $1489;
+  $1491 = $1487 ^ $1469;
+  $1492 = $1491 ^ $1466;
+  $1493 = $1236 ^ $1196;
+  $1494 = $1493 ^ $1354;
+  $1495 = $1494 ^ $1444;
+  $1496 = $1495 << 1;
+  $1497 = $1495 >>> 31;
+  $1498 = $1496 | $1497;
+  $1499 = (($1498) + -899497514)|0;
+  $1500 = (($1499) + ($1451))|0;
+  $1501 = (($1500) + ($1492))|0;
+  $1502 = (($1501) + ($1490))|0;
+  $1503 = $1466 << 30;
+  $1504 = $1466 >>> 2;
+  $1505 = $1503 | $1504;
+  $1506 = $1502 << 5;
+  $1507 = $1502 >>> 27;
+  $1508 = $1506 | $1507;
+  $1509 = $1505 ^ $1487;
+  $1510 = $1509 ^ $1484;
+  $1511 = $1216 ^ $1256;
+  $1512 = $1511 ^ $1372;
+  $1513 = $1512 ^ $1462;
+  $1514 = $1513 << 1;
+  $1515 = $1513 >>> 31;
+  $1516 = $1514 | $1515;
+  $1517 = (($1516) + -899497514)|0;
+  $1518 = (($1517) + ($1469))|0;
+  $1519 = (($1518) + ($1510))|0;
+  $1520 = (($1519) + ($1508))|0;
+  $1521 = $1484 << 30;
+  $1522 = $1484 >>> 2;
+  $1523 = $1521 | $1522;
+  $1524 = $1520 << 5;
+  $1525 = $1520 >>> 27;
+  $1526 = $1524 | $1525;
+  $1527 = $1523 ^ $1505;
+  $1528 = $1527 ^ $1502;
+  $1529 = $1236 ^ $1276;
+  $1530 = $1529 ^ $1390;
+  $1531 = $1530 ^ $1480;
+  $1532 = $1531 << 1;
+  $1533 = $1531 >>> 31;
+  $1534 = $1532 | $1533;
+  $1535 = (($1534) + -899497514)|0;
+  $1536 = (($1535) + ($1487))|0;
+  $1537 = (($1536) + ($1528))|0;
+  $1538 = (($1537) + ($1526))|0;
+  $1539 = $1502 << 30;
+  $1540 = $1502 >>> 2;
+  $1541 = $1539 | $1540;
+  $1542 = $1538 << 5;
+  $1543 = $1538 >>> 27;
+  $1544 = $1542 | $1543;
+  $1545 = $1541 ^ $1523;
+  $1546 = $1545 ^ $1520;
+  $1547 = $1296 ^ $1256;
+  $1548 = $1547 ^ $1408;
+  $1549 = $1548 ^ $1498;
+  $1550 = $1549 << 1;
+  $1551 = $1549 >>> 31;
+  $1552 = $1550 | $1551;
+  $1553 = (($1552) + -899497514)|0;
+  $1554 = (($1553) + ($1505))|0;
+  $1555 = (($1554) + ($1546))|0;
+  $1556 = (($1555) + ($1544))|0;
+  $1557 = $1520 << 30;
+  $1558 = $1520 >>> 2;
+  $1559 = $1557 | $1558;
+  $1560 = $1556 << 5;
+  $1561 = $1556 >>> 27;
+  $1562 = $1560 | $1561;
+  $1563 = $1559 ^ $1541;
+  $1564 = $1563 ^ $1538;
+  $1565 = $1276 ^ $1316;
+  $1566 = $1565 ^ $1426;
+  $1567 = $1566 ^ $1516;
+  $1568 = $1567 << 1;
+  $1569 = $1567 >>> 31;
+  $1570 = $1568 | $1569;
+  $1571 = (($1570) + -899497514)|0;
+  $1572 = (($1571) + ($1523))|0;
+  $1573 = (($1572) + ($1564))|0;
+  $1574 = (($1573) + ($1562))|0;
+  $1575 = $1538 << 30;
+  $1576 = $1538 >>> 2;
+  $1577 = $1575 | $1576;
+  $1578 = $1574 << 5;
+  $1579 = $1574 >>> 27;
+  $1580 = $1578 | $1579;
+  $1581 = $1577 ^ $1559;
+  $1582 = $1581 ^ $1556;
+  $1583 = $1296 ^ $1336;
+  $1584 = $1583 ^ $1444;
+  $1585 = $1584 ^ $1534;
+  $1586 = $1585 << 1;
+  $1587 = $1585 >>> 31;
+  $1588 = $1586 | $1587;
+  $1589 = (($1588) + -899497514)|0;
+  $1590 = (($1589) + ($1541))|0;
+  $1591 = (($1590) + ($1582))|0;
+  $1592 = (($1591) + ($1580))|0;
+  $1593 = $1556 << 30;
+  $1594 = $1556 >>> 2;
+  $1595 = $1593 | $1594;
+  $1596 = $1592 << 5;
+  $1597 = $1592 >>> 27;
+  $1598 = $1596 | $1597;
+  $1599 = $1595 ^ $1577;
+  $1600 = $1599 ^ $1574;
+  $1601 = $1354 ^ $1316;
+  $1602 = $1601 ^ $1462;
+  $1603 = $1602 ^ $1552;
+  $1604 = $1603 << 1;
+  $1605 = $1603 >>> 31;
+  $1606 = $1604 | $1605;
+  $1607 = (($1606) + -899497514)|0;
+  $1608 = (($1607) + ($1559))|0;
+  $1609 = (($1608) + ($1600))|0;
+  $1610 = (($1609) + ($1598))|0;
+  $1611 = $1574 << 30;
+  $1612 = $1574 >>> 2;
+  $1613 = $1611 | $1612;
+  $1614 = $1610 << 5;
+  $1615 = $1610 >>> 27;
+  $1616 = $1614 | $1615;
+  $1617 = $1613 ^ $1595;
+  $1618 = $1617 ^ $1592;
+  $1619 = $1336 ^ $1372;
+  $1620 = $1619 ^ $1480;
+  $1621 = $1620 ^ $1570;
+  $1622 = $1621 << 1;
+  $1623 = $1621 >>> 31;
+  $1624 = $1622 | $1623;
+  $1625 = (($1624) + -899497514)|0;
+  $1626 = (($1625) + ($1577))|0;
+  $1627 = (($1626) + ($1618))|0;
+  $1628 = (($1627) + ($1616))|0;
+  $1629 = $1592 << 30;
+  $1630 = $1592 >>> 2;
+  $1631 = $1629 | $1630;
+  $1632 = $1628 << 5;
+  $1633 = $1628 >>> 27;
+  $1634 = $1632 | $1633;
+  $1635 = $1631 ^ $1613;
+  $1636 = $1635 ^ $1610;
+  $1637 = $1354 ^ $1390;
+  $1638 = $1637 ^ $1498;
+  $1639 = $1638 ^ $1588;
+  $1640 = $1639 << 1;
+  $1641 = $1639 >>> 31;
+  $1642 = $1640 | $1641;
+  $1643 = (($1642) + -899497514)|0;
+  $1644 = (($1643) + ($1595))|0;
+  $1645 = (($1644) + ($1636))|0;
+  $1646 = (($1645) + ($1634))|0;
+  $1647 = $1610 << 30;
+  $1648 = $1610 >>> 2;
+  $1649 = $1647 | $1648;
+  $1650 = $1646 << 5;
+  $1651 = $1646 >>> 27;
+  $1652 = $1650 | $1651;
+  $1653 = $1649 ^ $1631;
+  $1654 = $1653 ^ $1628;
+  $1655 = $1408 ^ $1372;
+  $1656 = $1655 ^ $1516;
+  $1657 = $1656 ^ $1606;
+  $1658 = $1657 << 1;
+  $1659 = $1657 >>> 31;
+  $1660 = $1658 | $1659;
+  $1661 = (($1660) + -899497514)|0;
+  $1662 = (($1661) + ($1613))|0;
+  $1663 = (($1662) + ($1654))|0;
+  $1664 = (($1663) + ($1652))|0;
+  $1665 = $1628 << 30;
+  $1666 = $1628 >>> 2;
+  $1667 = $1665 | $1666;
+  $1668 = $1664 << 5;
+  $1669 = $1664 >>> 27;
+  $1670 = $1668 | $1669;
+  $1671 = $1667 ^ $1649;
+  $1672 = $1671 ^ $1646;
+  $1673 = $1390 ^ $1426;
+  $1674 = $1673 ^ $1534;
+  $1675 = $1674 ^ $1624;
+  $1676 = $1675 << 1;
+  $1677 = $1675 >>> 31;
+  $1678 = $1676 | $1677;
+  $1679 = (($1678) + -899497514)|0;
+  $1680 = (($1679) + ($1631))|0;
+  $1681 = (($1680) + ($1672))|0;
+  $1682 = (($1681) + ($1670))|0;
+  $1683 = $1646 << 30;
+  $1684 = $1646 >>> 2;
+  $1685 = $1683 | $1684;
+  $1686 = $1682 << 5;
+  $1687 = $1682 >>> 27;
+  $1688 = $1686 | $1687;
+  $1689 = $1685 ^ $1667;
+  $1690 = $1689 ^ $1664;
+  $1691 = $1408 ^ $1444;
+  $1692 = $1691 ^ $1552;
+  $1693 = $1692 ^ $1642;
+  $1694 = $1693 << 1;
+  $1695 = $1693 >>> 31;
+  $1696 = $1694 | $1695;
+  $1697 = $1664 << 30;
+  $1698 = $1664 >>> 2;
+  $1699 = $1697 | $1698;
+  $1700 = (($9) + -899497514)|0;
+  $1701 = (($1700) + ($1696))|0;
+  $1702 = (($1701) + ($1649))|0;
+  $1703 = (($1702) + ($1690))|0;
+  $1704 = (($1703) + ($1688))|0;
+  HEAP32[$3>>2] = $1704;
+  $1705 = (($1682) + ($16))|0;
+  HEAP32[$4>>2] = $1705;
+  $1706 = (($1699) + ($14))|0;
+  HEAP32[$5>>2] = $1706;
+  $1707 = (($1685) + ($13))|0;
+  HEAP32[$6>>2] = $1707;
+  $1708 = (($1667) + ($37))|0;
+  HEAP32[$7>>2] = $1708;
+  $1709 = ((($$0)) + 64|0);
+  $1710 = (($$08) + -1)|0;
+  $1711 = ($1710|0)==(0);
+  if ($1711) {
+   break;
+  } else {
+   $$0 = $1709;$$08 = $1710;$13 = $1707;$14 = $1706;$16 = $1705;$37 = $1708;$9 
= $1704;
+  }
+ }
+ return 104;
+}
+function __gcry_sha1_hash_buffer($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
dest = 0, label = 0, sp = 0, src = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(192|0);
+ $3 = sp;
+ $4 = ((($3)) + 160|0);
+ HEAP32[$4>>2] = 1732584193;
+ $5 = ((($3)) + 164|0);
+ HEAP32[$5>>2] = -271733879;
+ $6 = ((($3)) + 168|0);
+ HEAP32[$6>>2] = -1732584194;
+ $7 = ((($3)) + 172|0);
+ HEAP32[$7>>2] = 271733878;
+ $8 = ((($3)) + 176|0);
+ HEAP32[$8>>2] = -1009589776;
+ $9 = ((($3)) + 128|0);
+ $10 = ((($3)) + 148|0);
+ 
;HEAP32[$9>>2]=0|0;HEAP32[$9+4>>2]=0|0;HEAP32[$9+8>>2]=0|0;HEAP32[$9+12>>2]=0|0;HEAP32[$9+16>>2]=0|0;
+ HEAP32[$10>>2] = 64;
+ $11 = ((($3)) + 152|0);
+ HEAP32[$11>>2] = 78;
+ __gcry_md_block_write($3,$1,$2);
+ _sha1_final($3);
+ dest=$0; src=$3; stop=dest+20|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; 
dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
+ STACKTOP = sp;return;
+}
+function __gcry_sha1_hash_buffers($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$067 = 0, $$08 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 
0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 
0, $5 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(192|0);
+ $3 = sp;
+ $4 = ((($3)) + 160|0);
+ HEAP32[$4>>2] = 1732584193;
+ $5 = ((($3)) + 164|0);
+ HEAP32[$5>>2] = -271733879;
+ $6 = ((($3)) + 168|0);
+ HEAP32[$6>>2] = -1732584194;
+ $7 = ((($3)) + 172|0);
+ HEAP32[$7>>2] = 271733878;
+ $8 = ((($3)) + 176|0);
+ HEAP32[$8>>2] = -1009589776;
+ $9 = ((($3)) + 128|0);
+ $10 = ((($3)) + 148|0);
+ 
;HEAP32[$9>>2]=0|0;HEAP32[$9+4>>2]=0|0;HEAP32[$9+8>>2]=0|0;HEAP32[$9+12>>2]=0|0;HEAP32[$9+16>>2]=0|0;
+ HEAP32[$10>>2] = 64;
+ $11 = ((($3)) + 152|0);
+ HEAP32[$11>>2] = 78;
+ $12 = ($2|0)>(0);
+ if (!($12)) {
+  _sha1_final($3);
+  dest=$0; src=$3; 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;
+ }
+ $$067 = $1;$$08 = $2;
+ while(1) {
+  $13 = ((($$067)) + 12|0);
+  $14 = HEAP32[$13>>2]|0;
+  $15 = ((($$067)) + 4|0);
+  $16 = HEAP32[$15>>2]|0;
+  $17 = (($14) + ($16)|0);
+  $18 = ((($$067)) + 8|0);
+  $19 = HEAP32[$18>>2]|0;
+  __gcry_md_block_write($3,$17,$19);
+  $20 = ((($$067)) + 16|0);
+  $21 = (($$08) + -1)|0;
+  $22 = ($$08|0)>(1);
+  if ($22) {
+   $$067 = $20;$$08 = $21;
+  } else {
+   break;
+  }
+ }
+ _sha1_final($3);
+ dest=$0; src=$3; stop=dest+20|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; 
dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
+ STACKTOP = sp;return;
+}
+function _sha224_init($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 
0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 160|0);
+ HEAP32[$2>>2] = -1056596264;
+ $3 = ((($0)) + 164|0);
+ HEAP32[$3>>2] = 914150663;
+ $4 = ((($0)) + 168|0);
+ HEAP32[$4>>2] = 812702999;
+ $5 = ((($0)) + 172|0);
+ HEAP32[$5>>2] = -150054599;
+ $6 = ((($0)) + 176|0);
+ HEAP32[$6>>2] = -4191439;
+ $7 = ((($0)) + 180|0);
+ HEAP32[$7>>2] = 1750603025;
+ $8 = ((($0)) + 184|0);
+ HEAP32[$8>>2] = 1694076839;
+ $9 = ((($0)) + 188|0);
+ HEAP32[$9>>2] = -1090891868;
+ $10 = ((($0)) + 128|0);
+ $11 = ((($0)) + 148|0);
+ 
;HEAP32[$10>>2]=0|0;HEAP32[$10+4>>2]=0|0;HEAP32[$10+8>>2]=0|0;HEAP32[$10+12>>2]=0|0;HEAP32[$10+16>>2]=0|0;
+ HEAP32[$11>>2] = 64;
+ $12 = ((($0)) + 152|0);
+ HEAP32[$12>>2] = 79;
+ return;
+}
+function _sha256_final($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 
0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 
0, $113 = 0, $114 = 0, $115 = 0, $116 = 0;
+ var $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;
+ var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 
= 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 
= 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0;
+ var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 
= 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, 
$20 = 0, $21 = 0, $22 = 0, $23 = 0;
+ var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, 
$31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 
0, $4 = 0, $40 = 0, $41 = 0;
+ var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, 
$5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, 
$58 = 0, $59 = 0, $6 = 0;
+ var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, 
$68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, 
$76 = 0, $77 = 0, $78 = 0;
+ var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, 
$86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, 
$94 = 0, $95 = 0, $96 = 0;
+ var $97 = 0, $98 = 0, $99 = 0, $spec$select = 0, dest = 0, label = 0, sp = 0, 
stop = 0;
+ sp = STACKTOP;
+ __gcry_md_block_write($0,0,0);
+ $1 = ((($0)) + 128|0);
+ $2 = $1;
+ $3 = $2;
+ $4 = HEAP32[$3>>2]|0;
+ $5 = (($2) + 4)|0;
+ $6 = $5;
+ $7 = HEAP32[$6>>2]|0;
+ $8 = $4 << 6;
+ $9 = (_bitshift64Lshr(($4|0),($7|0),26)|0);
+ $10 = tempRet0;
+ $11 = $9 & 536870848;
+ $12 = $4 >>> 26;
+ $13 = $11 | $12;
+ $14 = ((($0)) + 144|0);
+ $15 = HEAP32[$14>>2]|0;
+ $16 = (($8) + ($15))|0;
+ $17 = ($16>>>0)<($8>>>0);
+ $18 = $17&1;
+ $spec$select = (($13) + ($18))|0;
+ $19 = $16 << 3;
+ $20 = $spec$select << 3;
+ $21 = $16 >>> 29;
+ $22 = $20 | $21;
+ $23 = ($15|0)<(56);
+ $24 = (($15) + 1)|0;
+ HEAP32[$14>>2] = $24;
+ $25 = (($0) + ($15)|0);
+ HEAP8[$25>>0] = -128;
+ $26 = HEAP32[$14>>2]|0;
+ if ($23) {
+  $27 = ($26|0)<(56);
+  if ($27) {
+   $29 = $26;
+   while(1) {
+    $28 = (($29) + 1)|0;
+    HEAP32[$14>>2] = $28;
+    $30 = (($0) + ($29)|0);
+    HEAP8[$30>>0] = 0;
+    $31 = HEAP32[$14>>2]|0;
+    $32 = ($31|0)<(56);
+    if ($32) {
+     $29 = $31;
+    } else {
+     break;
+    }
+   }
+  }
+ } else {
+  $33 = ($26|0)<(64);
+  if ($33) {
+   $35 = $26;
+   while(1) {
+    $34 = (($35) + 1)|0;
+    HEAP32[$14>>2] = $34;
+    $36 = (($0) + ($35)|0);
+    HEAP8[$36>>0] = 0;
+    $37 = HEAP32[$14>>2]|0;
+    $38 = ($37|0)<(64);
+    if ($38) {
+     $35 = $37;
+    } else {
+     break;
+    }
+   }
+  }
+  __gcry_md_block_write($0,0,0);
+  dest=$0; stop=dest+56|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ }
+ $39 = ((($0)) + 56|0);
+ $40 = $spec$select >>> 21;
+ $41 = $40&255;
+ HEAP8[$39>>0] = $41;
+ $42 = $spec$select >>> 13;
+ $43 = $42&255;
+ $44 = ((($0)) + 57|0);
+ HEAP8[$44>>0] = $43;
+ $45 = $spec$select >>> 5;
+ $46 = $45&255;
+ $47 = ((($0)) + 58|0);
+ HEAP8[$47>>0] = $46;
+ $48 = $22&255;
+ $49 = ((($0)) + 59|0);
+ HEAP8[$49>>0] = $48;
+ $50 = ((($0)) + 60|0);
+ $51 = $16 >>> 21;
+ $52 = $51&255;
+ HEAP8[$50>>0] = $52;
+ $53 = $16 >>> 13;
+ $54 = $53&255;
+ $55 = ((($0)) + 61|0);
+ HEAP8[$55>>0] = $54;
+ $56 = $16 >>> 5;
+ $57 = $56&255;
+ $58 = ((($0)) + 62|0);
+ HEAP8[$58>>0] = $57;
+ $59 = $19&255;
+ $60 = ((($0)) + 63|0);
+ HEAP8[$60>>0] = $59;
+ (_transform_1345($0,$0,1)|0);
+ ___gcry_burn_stack(328);
+ $61 = ((($0)) + 160|0);
+ $62 = HEAP32[$61>>2]|0;
+ $63 = $62 >>> 24;
+ $64 = $63&255;
+ HEAP8[$0>>0] = $64;
+ $65 = $62 >>> 16;
+ $66 = $65&255;
+ $67 = ((($0)) + 1|0);
+ HEAP8[$67>>0] = $66;
+ $68 = $62 >>> 8;
+ $69 = $68&255;
+ $70 = ((($0)) + 2|0);
+ HEAP8[$70>>0] = $69;
+ $71 = $62&255;
+ $72 = ((($0)) + 3|0);
+ HEAP8[$72>>0] = $71;
+ $73 = ((($0)) + 4|0);
+ $74 = ((($0)) + 164|0);
+ $75 = HEAP32[$74>>2]|0;
+ $76 = $75 >>> 24;
+ $77 = $76&255;
+ HEAP8[$73>>0] = $77;
+ $78 = $75 >>> 16;
+ $79 = $78&255;
+ $80 = ((($0)) + 5|0);
+ HEAP8[$80>>0] = $79;
+ $81 = $75 >>> 8;
+ $82 = $81&255;
+ $83 = ((($0)) + 6|0);
+ HEAP8[$83>>0] = $82;
+ $84 = $75&255;
+ $85 = ((($0)) + 7|0);
+ HEAP8[$85>>0] = $84;
+ $86 = ((($0)) + 8|0);
+ $87 = ((($0)) + 168|0);
+ $88 = HEAP32[$87>>2]|0;
+ $89 = $88 >>> 24;
+ $90 = $89&255;
+ HEAP8[$86>>0] = $90;
+ $91 = $88 >>> 16;
+ $92 = $91&255;
+ $93 = ((($0)) + 9|0);
+ HEAP8[$93>>0] = $92;
+ $94 = $88 >>> 8;
+ $95 = $94&255;
+ $96 = ((($0)) + 10|0);
+ HEAP8[$96>>0] = $95;
+ $97 = $88&255;
+ $98 = ((($0)) + 11|0);
+ HEAP8[$98>>0] = $97;
+ $99 = ((($0)) + 12|0);
+ $100 = ((($0)) + 172|0);
+ $101 = HEAP32[$100>>2]|0;
+ $102 = $101 >>> 24;
+ $103 = $102&255;
+ HEAP8[$99>>0] = $103;
+ $104 = $101 >>> 16;
+ $105 = $104&255;
+ $106 = ((($0)) + 13|0);
+ HEAP8[$106>>0] = $105;
+ $107 = $101 >>> 8;
+ $108 = $107&255;
+ $109 = ((($0)) + 14|0);
+ HEAP8[$109>>0] = $108;
+ $110 = $101&255;
+ $111 = ((($0)) + 15|0);
+ HEAP8[$111>>0] = $110;
+ $112 = ((($0)) + 16|0);
+ $113 = ((($0)) + 176|0);
+ $114 = HEAP32[$113>>2]|0;
+ $115 = $114 >>> 24;
+ $116 = $115&255;
+ HEAP8[$112>>0] = $116;
+ $117 = $114 >>> 16;
+ $118 = $117&255;
+ $119 = ((($0)) + 17|0);
+ HEAP8[$119>>0] = $118;
+ $120 = $114 >>> 8;
+ $121 = $120&255;
+ $122 = ((($0)) + 18|0);
+ HEAP8[$122>>0] = $121;
+ $123 = $114&255;
+ $124 = ((($0)) + 19|0);
+ HEAP8[$124>>0] = $123;
+ $125 = ((($0)) + 20|0);
+ $126 = ((($0)) + 180|0);
+ $127 = HEAP32[$126>>2]|0;
+ $128 = $127 >>> 24;
+ $129 = $128&255;
+ HEAP8[$125>>0] = $129;
+ $130 = $127 >>> 16;
+ $131 = $130&255;
+ $132 = ((($0)) + 21|0);
+ HEAP8[$132>>0] = $131;
+ $133 = $127 >>> 8;
+ $134 = $133&255;
+ $135 = ((($0)) + 22|0);
+ HEAP8[$135>>0] = $134;
+ $136 = $127&255;
+ $137 = ((($0)) + 23|0);
+ HEAP8[$137>>0] = $136;
+ $138 = ((($0)) + 24|0);
+ $139 = ((($0)) + 184|0);
+ $140 = HEAP32[$139>>2]|0;
+ $141 = $140 >>> 24;
+ $142 = $141&255;
+ HEAP8[$138>>0] = $142;
+ $143 = $140 >>> 16;
+ $144 = $143&255;
+ $145 = ((($0)) + 25|0);
+ HEAP8[$145>>0] = $144;
+ $146 = $140 >>> 8;
+ $147 = $146&255;
+ $148 = ((($0)) + 26|0);
+ HEAP8[$148>>0] = $147;
+ $149 = $140&255;
+ $150 = ((($0)) + 27|0);
+ HEAP8[$150>>0] = $149;
+ $151 = ((($0)) + 28|0);
+ $152 = ((($0)) + 188|0);
+ $153 = HEAP32[$152>>2]|0;
+ $154 = $153 >>> 24;
+ $155 = $154&255;
+ HEAP8[$151>>0] = $155;
+ $156 = $153 >>> 16;
+ $157 = $156&255;
+ $158 = ((($0)) + 29|0);
+ HEAP8[$158>>0] = $157;
+ $159 = $153 >>> 8;
+ $160 = $159&255;
+ $161 = ((($0)) + 30|0);
+ HEAP8[$161>>0] = $160;
+ $162 = $153&255;
+ $163 = ((($0)) + 31|0);
+ HEAP8[$163>>0] = $162;
+ return;
+}
+function _sha256_read($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return ($0|0);
+}
+function _run_selftests_1332($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$0$i = 0, $$0$i7 = 0, $$011$i = 0, $$011$i6 = 0, $10 = 0, $11 = 
0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $4 = 
0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
+ var $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ switch ($0|0) {
+ case 11:  {
+  $3 = (__gcry_hash_selftest_check_one(11,0,62920,3,62595,28)|0);
+  $4 = ($3|0)==(0|0);
+  if ($4) {
+   $5 = ($1|0)==(0);
+   if ($5) {
+    $$0 = 0;
+    return ($$0|0);
+   }
+   $6 = (__gcry_hash_selftest_check_one(11,0,62624,56,62681,28)|0);
+   $7 = ($6|0)==(0|0);
+   if ($7) {
+    $8 = (__gcry_hash_selftest_check_one(11,1,0,0,62710,28)|0);
+    $9 = ($8|0)==(0|0);
+    if ($9) {
+     $$0 = 0;
+     return ($$0|0);
+    } else {
+     $$0$i = $8;$$011$i = 63209;
+    }
+   } else {
+    $$0$i = $6;$$011$i = 63197;
+   }
+  } else {
+   $$0$i = $3;$$011$i = 63184;
+  }
+  $10 = ($2|0)==(0|0);
+  if ($10) {
+   $$0 = 50;
+   return ($$0|0);
+  }
+  FUNCTION_TABLE_viiii[$2 & 63](63225,11,$$011$i,$$0$i);
+  $$0 = 50;
+  return ($$0|0);
+  break;
+ }
+ case 8:  {
+  $11 = (__gcry_hash_selftest_check_one(8,0,62920,3,62739,32)|0);
+  $12 = ($11|0)==(0|0);
+  if ($12) {
+   $13 = ($1|0)==(0);
+   if ($13) {
+    $$0 = 0;
+    return ($$0|0);
+   }
+   $14 = (__gcry_hash_selftest_check_one(8,0,62624,56,62772,32)|0);
+   $15 = ($14|0)==(0|0);
+   if ($15) {
+    $16 = (__gcry_hash_selftest_check_one(8,1,0,0,62805,32)|0);
+    $17 = ($16|0)==(0|0);
+    if ($17) {
+     $$0 = 0;
+     return ($$0|0);
+    } else {
+     $$0$i7 = $16;$$011$i6 = 63209;
+    }
+   } else {
+    $$0$i7 = $14;$$011$i6 = 63197;
+   }
+  } else {
+   $$0$i7 = $11;$$011$i6 = 63184;
+  }
+  $18 = ($2|0)==(0|0);
+  if ($18) {
+   $$0 = 50;
+   return ($$0|0);
+  }
+  FUNCTION_TABLE_viiii[$2 & 63](63225,8,$$011$i6,$$0$i7);
+  $$0 = 50;
+  return ($$0|0);
+  break;
+ }
+ default: {
+  $$0 = 5;
+  return ($$0|0);
+ }
+ }
+ return (0)|0;
+}
+function _transform_1345($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$01858$i = 0, $$01867$i = 0, $$01876$i = 0, $$01885$i = 0, 
$$01894$i = 0, $$01903$i = 0, $$01912$i = 0, $$01921$i = 0, $$08 = 0, $$110$i = 
0, $$29$i = 0, $$pre = 0, $$pre23 = 0, $$pre24 = 0, $$pre25 = 0, $$pre26 = 0, 
$$pre27 = 0, $$pre28 = 0, $$pre29 = 0;
+ var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 
= 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 
= 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0;
+ var $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;
+ var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 
= 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 
= 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0;
+ var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 
= 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 
= 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0;
+ var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, 
$179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, 
$186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0;
+ var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, 
$197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, 
$204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0;
+ var $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 
= 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 
= 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0;
+ var $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 
= 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 
= 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0;
+ var $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 
= 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 
= 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0;
+ var $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;
+ var $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, 
$288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, 
$295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0;
+ var $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 
0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 
0, $313 = 0, $314 = 0, $315 = 0, $316 = 0;
+ var $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 
= 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 
= 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0;
+ var $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 
= 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 
= 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0;
+ var $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 
= 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 
= 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0;
+ var $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, 
$378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, 
$385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0;
+ var $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 
= 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 
0, $403 = 0, $404 = 0, $405 = 0, $406 = 0;
+ var $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 
= 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 
= 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0;
+ var $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 
= 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 
= 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0;
+ var $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 
= 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 
= 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0;
+ var $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, 
$468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, 
$475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0;
+ var $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 
= 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 
= 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0;
+ var $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 
0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 
0, $511 = 0, $512 = 0, $513 = 0, $514 = 0;
+ var $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 
= 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 
= 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 
= 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 
= 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0;
+ var $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, 
$648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, 
$655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0;
+ var $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 
= 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 
= 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0;
+ var $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 
= 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 
= 0, $692 = 0, $693 = 0, $694 = 0, $7 = 0;
+ var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, 
$78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, 
$86 = 0, $87 = 0, $88 = 0;
+ var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, 
$96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(256|0);
+ $3 = sp;
+ $4 = ((($0)) + 160|0);
+ $5 = ((($0)) + 164|0);
+ $6 = ((($0)) + 168|0);
+ $7 = ((($0)) + 172|0);
+ $8 = ((($0)) + 176|0);
+ $9 = ((($0)) + 180|0);
+ $10 = ((($0)) + 184|0);
+ $11 = ((($0)) + 188|0);
+ $12 = ((($3)) + 4|0);
+ $13 = ((($3)) + 8|0);
+ $14 = ((($3)) + 12|0);
+ $15 = ((($3)) + 16|0);
+ $16 = ((($3)) + 20|0);
+ $17 = ((($3)) + 24|0);
+ $18 = ((($3)) + 28|0);
+ $19 = ((($3)) + 32|0);
+ $20 = ((($3)) + 36|0);
+ $21 = ((($3)) + 40|0);
+ $22 = ((($3)) + 44|0);
+ $23 = ((($3)) + 48|0);
+ $24 = ((($3)) + 52|0);
+ $25 = ((($3)) + 56|0);
+ $26 = ((($3)) + 60|0);
+ $$pre = HEAP32[$4>>2]|0;
+ $$pre23 = HEAP32[$5>>2]|0;
+ $$pre24 = HEAP32[$6>>2]|0;
+ $$pre25 = HEAP32[$7>>2]|0;
+ $$pre26 = HEAP32[$8>>2]|0;
+ $$pre27 = HEAP32[$9>>2]|0;
+ $$pre28 = HEAP32[$10>>2]|0;
+ $$pre29 = HEAP32[$11>>2]|0;
+ $$0 = $1;$$08 = $2;$677 = $$pre;$679 = $$pre23;$681 = $$pre24;$683 = 
$$pre25;$685 = $$pre26;$687 = $$pre27;$689 = $$pre28;$691 = $$pre29;
+ while(1) {
+  $27 = HEAP8[$$0>>0]|0;
+  $28 = $27&255;
+  $29 = $28 << 24;
+  $30 = ((($$0)) + 1|0);
+  $31 = HEAP8[$30>>0]|0;
+  $32 = $31&255;
+  $33 = $32 << 16;
+  $34 = $33 | $29;
+  $35 = ((($$0)) + 2|0);
+  $36 = HEAP8[$35>>0]|0;
+  $37 = $36&255;
+  $38 = $37 << 8;
+  $39 = $34 | $38;
+  $40 = ((($$0)) + 3|0);
+  $41 = HEAP8[$40>>0]|0;
+  $42 = $41&255;
+  $43 = $39 | $42;
+  HEAP32[$3>>2] = $43;
+  $44 = ((($$0)) + 4|0);
+  $45 = HEAP8[$44>>0]|0;
+  $46 = $45&255;
+  $47 = $46 << 24;
+  $48 = ((($$0)) + 5|0);
+  $49 = HEAP8[$48>>0]|0;
+  $50 = $49&255;
+  $51 = $50 << 16;
+  $52 = $51 | $47;
+  $53 = ((($$0)) + 6|0);
+  $54 = HEAP8[$53>>0]|0;
+  $55 = $54&255;
+  $56 = $55 << 8;
+  $57 = $52 | $56;
+  $58 = ((($$0)) + 7|0);
+  $59 = HEAP8[$58>>0]|0;
+  $60 = $59&255;
+  $61 = $57 | $60;
+  HEAP32[$12>>2] = $61;
+  $62 = ((($$0)) + 8|0);
+  $63 = HEAP8[$62>>0]|0;
+  $64 = $63&255;
+  $65 = $64 << 24;
+  $66 = ((($$0)) + 9|0);
+  $67 = HEAP8[$66>>0]|0;
+  $68 = $67&255;
+  $69 = $68 << 16;
+  $70 = $69 | $65;
+  $71 = ((($$0)) + 10|0);
+  $72 = HEAP8[$71>>0]|0;
+  $73 = $72&255;
+  $74 = $73 << 8;
+  $75 = $70 | $74;
+  $76 = ((($$0)) + 11|0);
+  $77 = HEAP8[$76>>0]|0;
+  $78 = $77&255;
+  $79 = $75 | $78;
+  HEAP32[$13>>2] = $79;
+  $80 = ((($$0)) + 12|0);
+  $81 = HEAP8[$80>>0]|0;
+  $82 = $81&255;
+  $83 = $82 << 24;
+  $84 = ((($$0)) + 13|0);
+  $85 = HEAP8[$84>>0]|0;
+  $86 = $85&255;
+  $87 = $86 << 16;
+  $88 = $87 | $83;
+  $89 = ((($$0)) + 14|0);
+  $90 = HEAP8[$89>>0]|0;
+  $91 = $90&255;
+  $92 = $91 << 8;
+  $93 = $88 | $92;
+  $94 = ((($$0)) + 15|0);
+  $95 = HEAP8[$94>>0]|0;
+  $96 = $95&255;
+  $97 = $93 | $96;
+  HEAP32[$14>>2] = $97;
+  $98 = ((($$0)) + 16|0);
+  $99 = HEAP8[$98>>0]|0;
+  $100 = $99&255;
+  $101 = $100 << 24;
+  $102 = ((($$0)) + 17|0);
+  $103 = HEAP8[$102>>0]|0;
+  $104 = $103&255;
+  $105 = $104 << 16;
+  $106 = $105 | $101;
+  $107 = ((($$0)) + 18|0);
+  $108 = HEAP8[$107>>0]|0;
+  $109 = $108&255;
+  $110 = $109 << 8;
+  $111 = $106 | $110;
+  $112 = ((($$0)) + 19|0);
+  $113 = HEAP8[$112>>0]|0;
+  $114 = $113&255;
+  $115 = $111 | $114;
+  HEAP32[$15>>2] = $115;
+  $116 = ((($$0)) + 20|0);
+  $117 = HEAP8[$116>>0]|0;
+  $118 = $117&255;
+  $119 = $118 << 24;
+  $120 = ((($$0)) + 21|0);
+  $121 = HEAP8[$120>>0]|0;
+  $122 = $121&255;
+  $123 = $122 << 16;
+  $124 = $123 | $119;
+  $125 = ((($$0)) + 22|0);
+  $126 = HEAP8[$125>>0]|0;
+  $127 = $126&255;
+  $128 = $127 << 8;
+  $129 = $124 | $128;
+  $130 = ((($$0)) + 23|0);
+  $131 = HEAP8[$130>>0]|0;
+  $132 = $131&255;
+  $133 = $129 | $132;
+  HEAP32[$16>>2] = $133;
+  $134 = ((($$0)) + 24|0);
+  $135 = HEAP8[$134>>0]|0;
+  $136 = $135&255;
+  $137 = $136 << 24;
+  $138 = ((($$0)) + 25|0);
+  $139 = HEAP8[$138>>0]|0;
+  $140 = $139&255;
+  $141 = $140 << 16;
+  $142 = $141 | $137;
+  $143 = ((($$0)) + 26|0);
+  $144 = HEAP8[$143>>0]|0;
+  $145 = $144&255;
+  $146 = $145 << 8;
+  $147 = $142 | $146;
+  $148 = ((($$0)) + 27|0);
+  $149 = HEAP8[$148>>0]|0;
+  $150 = $149&255;
+  $151 = $147 | $150;
+  HEAP32[$17>>2] = $151;
+  $152 = ((($$0)) + 28|0);
+  $153 = HEAP8[$152>>0]|0;
+  $154 = $153&255;
+  $155 = $154 << 24;
+  $156 = ((($$0)) + 29|0);
+  $157 = HEAP8[$156>>0]|0;
+  $158 = $157&255;
+  $159 = $158 << 16;
+  $160 = $159 | $155;
+  $161 = ((($$0)) + 30|0);
+  $162 = HEAP8[$161>>0]|0;
+  $163 = $162&255;
+  $164 = $163 << 8;
+  $165 = $160 | $164;
+  $166 = ((($$0)) + 31|0);
+  $167 = HEAP8[$166>>0]|0;
+  $168 = $167&255;
+  $169 = $165 | $168;
+  HEAP32[$18>>2] = $169;
+  $170 = ((($$0)) + 32|0);
+  $171 = HEAP8[$170>>0]|0;
+  $172 = $171&255;
+  $173 = $172 << 24;
+  $174 = ((($$0)) + 33|0);
+  $175 = HEAP8[$174>>0]|0;
+  $176 = $175&255;
+  $177 = $176 << 16;
+  $178 = $177 | $173;
+  $179 = ((($$0)) + 34|0);
+  $180 = HEAP8[$179>>0]|0;
+  $181 = $180&255;
+  $182 = $181 << 8;
+  $183 = $178 | $182;
+  $184 = ((($$0)) + 35|0);
+  $185 = HEAP8[$184>>0]|0;
+  $186 = $185&255;
+  $187 = $183 | $186;
+  HEAP32[$19>>2] = $187;
+  $188 = ((($$0)) + 36|0);
+  $189 = HEAP8[$188>>0]|0;
+  $190 = $189&255;
+  $191 = $190 << 24;
+  $192 = ((($$0)) + 37|0);
+  $193 = HEAP8[$192>>0]|0;
+  $194 = $193&255;
+  $195 = $194 << 16;
+  $196 = $195 | $191;
+  $197 = ((($$0)) + 38|0);
+  $198 = HEAP8[$197>>0]|0;
+  $199 = $198&255;
+  $200 = $199 << 8;
+  $201 = $196 | $200;
+  $202 = ((($$0)) + 39|0);
+  $203 = HEAP8[$202>>0]|0;
+  $204 = $203&255;
+  $205 = $201 | $204;
+  HEAP32[$20>>2] = $205;
+  $206 = ((($$0)) + 40|0);
+  $207 = HEAP8[$206>>0]|0;
+  $208 = $207&255;
+  $209 = $208 << 24;
+  $210 = ((($$0)) + 41|0);
+  $211 = HEAP8[$210>>0]|0;
+  $212 = $211&255;
+  $213 = $212 << 16;
+  $214 = $213 | $209;
+  $215 = ((($$0)) + 42|0);
+  $216 = HEAP8[$215>>0]|0;
+  $217 = $216&255;
+  $218 = $217 << 8;
+  $219 = $214 | $218;
+  $220 = ((($$0)) + 43|0);
+  $221 = HEAP8[$220>>0]|0;
+  $222 = $221&255;
+  $223 = $219 | $222;
+  HEAP32[$21>>2] = $223;
+  $224 = ((($$0)) + 44|0);
+  $225 = HEAP8[$224>>0]|0;
+  $226 = $225&255;
+  $227 = $226 << 24;
+  $228 = ((($$0)) + 45|0);
+  $229 = HEAP8[$228>>0]|0;
+  $230 = $229&255;
+  $231 = $230 << 16;
+  $232 = $231 | $227;
+  $233 = ((($$0)) + 46|0);
+  $234 = HEAP8[$233>>0]|0;
+  $235 = $234&255;
+  $236 = $235 << 8;
+  $237 = $232 | $236;
+  $238 = ((($$0)) + 47|0);
+  $239 = HEAP8[$238>>0]|0;
+  $240 = $239&255;
+  $241 = $237 | $240;
+  HEAP32[$22>>2] = $241;
+  $242 = ((($$0)) + 48|0);
+  $243 = HEAP8[$242>>0]|0;
+  $244 = $243&255;
+  $245 = $244 << 24;
+  $246 = ((($$0)) + 49|0);
+  $247 = HEAP8[$246>>0]|0;
+  $248 = $247&255;
+  $249 = $248 << 16;
+  $250 = $249 | $245;
+  $251 = ((($$0)) + 50|0);
+  $252 = HEAP8[$251>>0]|0;
+  $253 = $252&255;
+  $254 = $253 << 8;
+  $255 = $250 | $254;
+  $256 = ((($$0)) + 51|0);
+  $257 = HEAP8[$256>>0]|0;
+  $258 = $257&255;
+  $259 = $255 | $258;
+  HEAP32[$23>>2] = $259;
+  $260 = ((($$0)) + 52|0);
+  $261 = HEAP8[$260>>0]|0;
+  $262 = $261&255;
+  $263 = $262 << 24;
+  $264 = ((($$0)) + 53|0);
+  $265 = HEAP8[$264>>0]|0;
+  $266 = $265&255;
+  $267 = $266 << 16;
+  $268 = $267 | $263;
+  $269 = ((($$0)) + 54|0);
+  $270 = HEAP8[$269>>0]|0;
+  $271 = $270&255;
+  $272 = $271 << 8;
+  $273 = $268 | $272;
+  $274 = ((($$0)) + 55|0);
+  $275 = HEAP8[$274>>0]|0;
+  $276 = $275&255;
+  $277 = $273 | $276;
+  HEAP32[$24>>2] = $277;
+  $278 = ((($$0)) + 56|0);
+  $279 = HEAP8[$278>>0]|0;
+  $280 = $279&255;
+  $281 = $280 << 24;
+  $282 = ((($$0)) + 57|0);
+  $283 = HEAP8[$282>>0]|0;
+  $284 = $283&255;
+  $285 = $284 << 16;
+  $286 = $285 | $281;
+  $287 = ((($$0)) + 58|0);
+  $288 = HEAP8[$287>>0]|0;
+  $289 = $288&255;
+  $290 = $289 << 8;
+  $291 = $286 | $290;
+  $292 = ((($$0)) + 59|0);
+  $293 = HEAP8[$292>>0]|0;
+  $294 = $293&255;
+  $295 = $291 | $294;
+  HEAP32[$25>>2] = $295;
+  $296 = ((($$0)) + 60|0);
+  $297 = HEAP8[$296>>0]|0;
+  $298 = $297&255;
+  $299 = $298 << 24;
+  $300 = ((($$0)) + 61|0);
+  $301 = HEAP8[$300>>0]|0;
+  $302 = $301&255;
+  $303 = $302 << 16;
+  $304 = $303 | $299;
+  $305 = ((($$0)) + 62|0);
+  $306 = HEAP8[$305>>0]|0;
+  $307 = $306&255;
+  $308 = $307 << 8;
+  $309 = $304 | $308;
+  $310 = ((($$0)) + 63|0);
+  $311 = HEAP8[$310>>0]|0;
+  $312 = $311&255;
+  $313 = $309 | $312;
+  HEAP32[$26>>2] = $313;
+  $$110$i = 16;$342 = $43;
+  while(1) {
+   $314 = (($$110$i) + -2)|0;
+   $315 = (($3) + ($314<<2)|0);
+   $316 = HEAP32[$315>>2]|0;
+   $317 = $316 >>> 17;
+   $318 = $316 << 15;
+   $319 = $317 | $318;
+   $320 = $316 >>> 19;
+   $321 = $316 << 13;
+   $322 = $320 | $321;
+   $323 = $316 >>> 10;
+   $324 = $322 ^ $323;
+   $325 = $324 ^ $319;
+   $326 = (($$110$i) + -7)|0;
+   $327 = (($3) + ($326<<2)|0);
+   $328 = HEAP32[$327>>2]|0;
+   $329 = (($$110$i) + -15)|0;
+   $330 = (($3) + ($329<<2)|0);
+   $331 = HEAP32[$330>>2]|0;
+   $332 = $331 >>> 7;
+   $333 = $331 << 25;
+   $334 = $332 | $333;
+   $335 = $331 >>> 18;
+   $336 = $331 << 14;
+   $337 = $335 | $336;
+   $338 = $331 >>> 3;
+   $339 = $337 ^ $338;
+   $340 = $339 ^ $334;
+   $341 = (($328) + ($342))|0;
+   $343 = (($341) + ($325))|0;
+   $344 = (($343) + ($340))|0;
+   $345 = (($3) + ($$110$i<<2)|0);
+   HEAP32[$345>>2] = $344;
+   $346 = (($$110$i) + 1)|0;
+   $exitcond$i = ($346|0)==(64);
+   if ($exitcond$i) {
+    break;
+   } else {
+    $$110$i = $346;$342 = $331;
+   }
+  }
+  $$01858$i = $677;$$01867$i = $679;$$01876$i = $691;$$01885$i = 
$689;$$01894$i = $687;$$01903$i = $685;$$01912$i = $683;$$01921$i = $681;$$29$i 
= 0;
+  while(1) {
+   $347 = $$01903$i >>> 6;
+   $348 = $$01903$i << 26;
+   $349 = $347 | $348;
+   $350 = $$01903$i >>> 11;
+   $351 = $$01903$i << 21;
+   $352 = $350 | $351;
+   $353 = $349 ^ $352;
+   $354 = $$01903$i >>> 25;
+   $355 = $$01903$i << 7;
+   $356 = $354 | $355;
+   $357 = $353 ^ $356;
+   $358 = $$01894$i ^ $$01885$i;
+   $359 = $358 & $$01903$i;
+   $360 = $359 ^ $$01885$i;
+   $361 = (15440 + ($$29$i<<2)|0);
+   $362 = HEAP32[$361>>2]|0;
+   $363 = (($3) + ($$29$i<<2)|0);
+   $364 = HEAP32[$363>>2]|0;
+   $365 = (($360) + ($$01876$i))|0;
+   $366 = (($365) + ($362))|0;
+   $367 = (($366) + ($357))|0;
+   $368 = (($367) + ($364))|0;
+   $369 = $$01858$i >>> 2;
+   $370 = $$01858$i << 30;
+   $371 = $369 | $370;
+   $372 = $$01858$i >>> 13;
+   $373 = $$01858$i << 19;
+   $374 = $372 | $373;
+   $375 = $371 ^ $374;
+   $376 = $$01858$i >>> 22;
+   $377 = $$01858$i << 10;
+   $378 = $376 | $377;
+   $379 = $375 ^ $378;
+   $380 = $$01867$i & $$01858$i;
+   $381 = $$01867$i | $$01858$i;
+   $382 = $$01921$i & $381;
+   $383 = $382 | $380;
+   $384 = (($383) + ($379))|0;
+   $385 = (($368) + ($$01912$i))|0;
+   $386 = (($384) + ($368))|0;
+   $387 = $385 >>> 6;
+   $388 = $385 << 26;
+   $389 = $387 | $388;
+   $390 = $385 >>> 11;
+   $391 = $385 << 21;
+   $392 = $390 | $391;
+   $393 = $389 ^ $392;
+   $394 = $385 >>> 25;
+   $395 = $385 << 7;
+   $396 = $394 | $395;
+   $397 = $393 ^ $396;
+   $398 = $$01903$i ^ $$01894$i;
+   $399 = $385 & $398;
+   $400 = $399 ^ $$01894$i;
+   $401 = $$29$i | 1;
+   $402 = (15440 + ($401<<2)|0);
+   $403 = HEAP32[$402>>2]|0;
+   $404 = (($3) + ($401<<2)|0);
+   $405 = HEAP32[$404>>2]|0;
+   $406 = (($403) + ($$01885$i))|0;
+   $407 = (($406) + ($405))|0;
+   $408 = (($407) + ($400))|0;
+   $409 = (($408) + ($397))|0;
+   $410 = $386 >>> 2;
+   $411 = $386 << 30;
+   $412 = $410 | $411;
+   $413 = $386 >>> 13;
+   $414 = $386 << 19;
+   $415 = $413 | $414;
+   $416 = $412 ^ $415;
+   $417 = $386 >>> 22;
+   $418 = $386 << 10;
+   $419 = $417 | $418;
+   $420 = $416 ^ $419;
+   $421 = $386 & $$01858$i;
+   $422 = $386 | $$01858$i;
+   $423 = $422 & $$01867$i;
+   $424 = $423 | $421;
+   $425 = (($420) + ($424))|0;
+   $426 = (($409) + ($$01921$i))|0;
+   $427 = (($425) + ($409))|0;
+   $428 = $426 >>> 6;
+   $429 = $426 << 26;
+   $430 = $428 | $429;
+   $431 = $426 >>> 11;
+   $432 = $426 << 21;
+   $433 = $431 | $432;
+   $434 = $430 ^ $433;
+   $435 = $426 >>> 25;
+   $436 = $426 << 7;
+   $437 = $435 | $436;
+   $438 = $434 ^ $437;
+   $439 = $385 ^ $$01903$i;
+   $440 = $426 & $439;
+   $441 = $440 ^ $$01903$i;
+   $442 = $$29$i | 2;
+   $443 = (15440 + ($442<<2)|0);
+   $444 = HEAP32[$443>>2]|0;
+   $445 = (($3) + ($442<<2)|0);
+   $446 = HEAP32[$445>>2]|0;
+   $447 = (($444) + ($$01894$i))|0;
+   $448 = (($447) + ($446))|0;
+   $449 = (($448) + ($441))|0;
+   $450 = (($449) + ($438))|0;
+   $451 = $427 >>> 2;
+   $452 = $427 << 30;
+   $453 = $451 | $452;
+   $454 = $427 >>> 13;
+   $455 = $427 << 19;
+   $456 = $454 | $455;
+   $457 = $453 ^ $456;
+   $458 = $427 >>> 22;
+   $459 = $427 << 10;
+   $460 = $458 | $459;
+   $461 = $457 ^ $460;
+   $462 = $427 & $386;
+   $463 = $427 | $386;
+   $464 = $463 & $$01858$i;
+   $465 = $464 | $462;
+   $466 = (($461) + ($465))|0;
+   $467 = (($450) + ($$01867$i))|0;
+   $468 = (($466) + ($450))|0;
+   $469 = $467 >>> 6;
+   $470 = $467 << 26;
+   $471 = $469 | $470;
+   $472 = $467 >>> 11;
+   $473 = $467 << 21;
+   $474 = $472 | $473;
+   $475 = $471 ^ $474;
+   $476 = $467 >>> 25;
+   $477 = $467 << 7;
+   $478 = $476 | $477;
+   $479 = $475 ^ $478;
+   $480 = $426 ^ $385;
+   $481 = $467 & $480;
+   $482 = $481 ^ $385;
+   $483 = $$29$i | 3;
+   $484 = (15440 + ($483<<2)|0);
+   $485 = HEAP32[$484>>2]|0;
+   $486 = (($3) + ($483<<2)|0);
+   $487 = HEAP32[$486>>2]|0;
+   $488 = (($485) + ($$01903$i))|0;
+   $489 = (($488) + ($487))|0;
+   $490 = (($489) + ($482))|0;
+   $491 = (($490) + ($479))|0;
+   $492 = $468 >>> 2;
+   $493 = $468 << 30;
+   $494 = $492 | $493;
+   $495 = $468 >>> 13;
+   $496 = $468 << 19;
+   $497 = $495 | $496;
+   $498 = $494 ^ $497;
+   $499 = $468 >>> 22;
+   $500 = $468 << 10;
+   $501 = $499 | $500;
+   $502 = $498 ^ $501;
+   $503 = $468 & $427;
+   $504 = $468 | $427;
+   $505 = $504 & $386;
+   $506 = $505 | $503;
+   $507 = (($502) + ($506))|0;
+   $508 = (($491) + ($$01858$i))|0;
+   $509 = (($507) + ($491))|0;
+   $510 = $508 >>> 6;
+   $511 = $508 << 26;
+   $512 = $510 | $511;
+   $513 = $508 >>> 11;
+   $514 = $508 << 21;
+   $515 = $513 | $514;
+   $516 = $512 ^ $515;
+   $517 = $508 >>> 25;
+   $518 = $508 << 7;
+   $519 = $517 | $518;
+   $520 = $516 ^ $519;
+   $521 = $467 ^ $426;
+   $522 = $508 & $521;
+   $523 = $522 ^ $426;
+   $524 = $$29$i | 4;
+   $525 = (15440 + ($524<<2)|0);
+   $526 = HEAP32[$525>>2]|0;
+   $527 = (($3) + ($524<<2)|0);
+   $528 = HEAP32[$527>>2]|0;
+   $529 = (($526) + ($385))|0;
+   $530 = (($529) + ($528))|0;
+   $531 = (($530) + ($523))|0;
+   $532 = (($531) + ($520))|0;
+   $533 = $509 >>> 2;
+   $534 = $509 << 30;
+   $535 = $533 | $534;
+   $536 = $509 >>> 13;
+   $537 = $509 << 19;
+   $538 = $536 | $537;
+   $539 = $535 ^ $538;
+   $540 = $509 >>> 22;
+   $541 = $509 << 10;
+   $542 = $540 | $541;
+   $543 = $539 ^ $542;
+   $544 = $509 & $468;
+   $545 = $509 | $468;
+   $546 = $545 & $427;
+   $547 = $546 | $544;
+   $548 = (($543) + ($547))|0;
+   $549 = (($532) + ($386))|0;
+   $550 = (($548) + ($532))|0;
+   $551 = $549 >>> 6;
+   $552 = $549 << 26;
+   $553 = $551 | $552;
+   $554 = $549 >>> 11;
+   $555 = $549 << 21;
+   $556 = $554 | $555;
+   $557 = $553 ^ $556;
+   $558 = $549 >>> 25;
+   $559 = $549 << 7;
+   $560 = $558 | $559;
+   $561 = $557 ^ $560;
+   $562 = $508 ^ $467;
+   $563 = $549 & $562;
+   $564 = $563 ^ $467;
+   $565 = $$29$i | 5;
+   $566 = (15440 + ($565<<2)|0);
+   $567 = HEAP32[$566>>2]|0;
+   $568 = (($3) + ($565<<2)|0);
+   $569 = HEAP32[$568>>2]|0;
+   $570 = (($569) + ($567))|0;
+   $571 = (($570) + ($426))|0;
+   $572 = (($571) + ($564))|0;
+   $573 = (($572) + ($561))|0;
+   $574 = $550 >>> 2;
+   $575 = $550 << 30;
+   $576 = $574 | $575;
+   $577 = $550 >>> 13;
+   $578 = $550 << 19;
+   $579 = $577 | $578;
+   $580 = $576 ^ $579;
+   $581 = $550 >>> 22;
+   $582 = $550 << 10;
+   $583 = $581 | $582;
+   $584 = $580 ^ $583;
+   $585 = $550 & $509;
+   $586 = $550 | $509;
+   $587 = $586 & $468;
+   $588 = $587 | $585;
+   $589 = (($584) + ($588))|0;
+   $590 = (($573) + ($427))|0;
+   $591 = (($589) + ($573))|0;
+   $592 = $590 >>> 6;
+   $593 = $590 << 26;
+   $594 = $592 | $593;
+   $595 = $590 >>> 11;
+   $596 = $590 << 21;
+   $597 = $595 | $596;
+   $598 = $594 ^ $597;
+   $599 = $590 >>> 25;
+   $600 = $590 << 7;
+   $601 = $599 | $600;
+   $602 = $598 ^ $601;
+   $603 = $549 ^ $508;
+   $604 = $590 & $603;
+   $605 = $604 ^ $508;
+   $606 = $$29$i | 6;
+   $607 = (15440 + ($606<<2)|0);
+   $608 = HEAP32[$607>>2]|0;
+   $609 = (($3) + ($606<<2)|0);
+   $610 = HEAP32[$609>>2]|0;
+   $611 = (($610) + ($608))|0;
+   $612 = (($611) + ($467))|0;
+   $613 = (($612) + ($605))|0;
+   $614 = (($613) + ($602))|0;
+   $615 = $591 >>> 2;
+   $616 = $591 << 30;
+   $617 = $615 | $616;
+   $618 = $591 >>> 13;
+   $619 = $591 << 19;
+   $620 = $618 | $619;
+   $621 = $617 ^ $620;
+   $622 = $591 >>> 22;
+   $623 = $591 << 10;
+   $624 = $622 | $623;
+   $625 = $621 ^ $624;
+   $626 = $591 & $550;
+   $627 = $591 | $550;
+   $628 = $627 & $509;
+   $629 = $628 | $626;
+   $630 = (($625) + ($629))|0;
+   $631 = (($614) + ($468))|0;
+   $632 = (($630) + ($614))|0;
+   $633 = $631 >>> 6;
+   $634 = $631 << 26;
+   $635 = $633 | $634;
+   $636 = $631 >>> 11;
+   $637 = $631 << 21;
+   $638 = $636 | $637;
+   $639 = $635 ^ $638;
+   $640 = $631 >>> 25;
+   $641 = $631 << 7;
+   $642 = $640 | $641;
+   $643 = $639 ^ $642;
+   $644 = $590 ^ $549;
+   $645 = $631 & $644;
+   $646 = $645 ^ $549;
+   $647 = $$29$i | 7;
+   $648 = (15440 + ($647<<2)|0);
+   $649 = HEAP32[$648>>2]|0;
+   $650 = (($3) + ($647<<2)|0);
+   $651 = HEAP32[$650>>2]|0;
+   $652 = (($651) + ($649))|0;
+   $653 = (($652) + ($508))|0;
+   $654 = (($653) + ($646))|0;
+   $655 = (($654) + ($643))|0;
+   $656 = $632 >>> 2;
+   $657 = $632 << 30;
+   $658 = $656 | $657;
+   $659 = $632 >>> 13;
+   $660 = $632 << 19;
+   $661 = $659 | $660;
+   $662 = $658 ^ $661;
+   $663 = $632 >>> 22;
+   $664 = $632 << 10;
+   $665 = $663 | $664;
+   $666 = $662 ^ $665;
+   $667 = $632 & $591;
+   $668 = $632 | $591;
+   $669 = $668 & $550;
+   $670 = $669 | $667;
+   $671 = (($666) + ($670))|0;
+   $672 = (($655) + ($509))|0;
+   $673 = (($671) + ($655))|0;
+   $674 = (($$29$i) + 8)|0;
+   $675 = ($674>>>0)<(64);
+   if ($675) {
+    $$01858$i = $673;$$01867$i = $632;$$01876$i = $549;$$01885$i = 
$590;$$01894$i = $631;$$01903$i = $672;$$01912$i = $550;$$01921$i = $591;$$29$i 
= $674;
+   } else {
+    break;
+   }
+  }
+  $676 = (($673) + ($677))|0;
+  HEAP32[$4>>2] = $676;
+  $678 = (($632) + ($679))|0;
+  HEAP32[$5>>2] = $678;
+  $680 = (($591) + ($681))|0;
+  HEAP32[$6>>2] = $680;
+  $682 = (($550) + ($683))|0;
+  HEAP32[$7>>2] = $682;
+  $684 = (($672) + ($685))|0;
+  HEAP32[$8>>2] = $684;
+  $686 = (($631) + ($687))|0;
+  HEAP32[$9>>2] = $686;
+  $688 = (($590) + ($689))|0;
+  HEAP32[$10>>2] = $688;
+  $690 = (($549) + ($691))|0;
+  HEAP32[$11>>2] = $690;
+  $692 = ((($$0)) + 64|0);
+  $693 = (($$08) + -1)|0;
+  $694 = ($693|0)==(0);
+  if ($694) {
+   break;
+  } else {
+   $$0 = $692;$$08 = $693;$677 = $676;$679 = $678;$681 = $680;$683 = $682;$685 
= $684;$687 = $686;$689 = $688;$691 = $690;
+  }
+ }
+ STACKTOP = sp;return 328;
+}
+function _sha256_init($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 
0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 160|0);
+ HEAP32[$2>>2] = 1779033703;
+ $3 = ((($0)) + 164|0);
+ HEAP32[$3>>2] = -1150833019;
+ $4 = ((($0)) + 168|0);
+ HEAP32[$4>>2] = 1013904242;
+ $5 = ((($0)) + 172|0);
+ HEAP32[$5>>2] = -1521486534;
+ $6 = ((($0)) + 176|0);
+ HEAP32[$6>>2] = 1359893119;
+ $7 = ((($0)) + 180|0);
+ HEAP32[$7>>2] = -1694144372;
+ $8 = ((($0)) + 184|0);
+ HEAP32[$8>>2] = 528734635;
+ $9 = ((($0)) + 188|0);
+ HEAP32[$9>>2] = 1541459225;
+ $10 = ((($0)) + 128|0);
+ $11 = ((($0)) + 148|0);
+ 
;HEAP32[$10>>2]=0|0;HEAP32[$10+4>>2]=0|0;HEAP32[$10+8>>2]=0|0;HEAP32[$10+12>>2]=0|0;HEAP32[$10+16>>2]=0|0;
+ HEAP32[$11>>2] = 64;
+ $12 = ((($0)) + 152|0);
+ HEAP32[$12>>2] = 79;
+ return;
+}
+function _sha512_init($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, 
$26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $5 = 0, $6 = 0;
+ var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 160|0);
+ $3 = $2;
+ $4 = $3;
+ HEAP32[$4>>2] = -205731576;
+ $5 = (($3) + 4)|0;
+ $6 = $5;
+ HEAP32[$6>>2] = 1779033703;
+ $7 = ((($0)) + 168|0);
+ $8 = $7;
+ $9 = $8;
+ HEAP32[$9>>2] = -2067093701;
+ $10 = (($8) + 4)|0;
+ $11 = $10;
+ HEAP32[$11>>2] = -1150833019;
+ $12 = ((($0)) + 176|0);
+ $13 = $12;
+ $14 = $13;
+ HEAP32[$14>>2] = -23791573;
+ $15 = (($13) + 4)|0;
+ $16 = $15;
+ HEAP32[$16>>2] = 1013904242;
+ $17 = ((($0)) + 184|0);
+ $18 = $17;
+ $19 = $18;
+ HEAP32[$19>>2] = 1595750129;
+ $20 = (($18) + 4)|0;
+ $21 = $20;
+ HEAP32[$21>>2] = -1521486534;
+ $22 = ((($0)) + 192|0);
+ $23 = $22;
+ $24 = $23;
+ HEAP32[$24>>2] = -1377402159;
+ $25 = (($23) + 4)|0;
+ $26 = $25;
+ HEAP32[$26>>2] = 1359893119;
+ $27 = ((($0)) + 200|0);
+ $28 = $27;
+ $29 = $28;
+ HEAP32[$29>>2] = 725511199;
+ $30 = (($28) + 4)|0;
+ $31 = $30;
+ HEAP32[$31>>2] = -1694144372;
+ $32 = ((($0)) + 208|0);
+ $33 = $32;
+ $34 = $33;
+ HEAP32[$34>>2] = -79577749;
+ $35 = (($33) + 4)|0;
+ $36 = $35;
+ HEAP32[$36>>2] = 528734635;
+ $37 = ((($0)) + 216|0);
+ $38 = $37;
+ $39 = $38;
+ HEAP32[$39>>2] = 327033209;
+ $40 = (($38) + 4)|0;
+ $41 = $40;
+ HEAP32[$41>>2] = 1541459225;
+ $42 = ((($0)) + 128|0);
+ $43 = ((($0)) + 148|0);
+ 
;HEAP32[$42>>2]=0|0;HEAP32[$42+4>>2]=0|0;HEAP32[$42+8>>2]=0|0;HEAP32[$42+12>>2]=0|0;HEAP32[$42+16>>2]=0|0;
+ HEAP32[$43>>2] = 128;
+ $44 = ((($0)) + 152|0);
+ HEAP32[$44>>2] = 80;
+ return;
+}
+function _sha512_final($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 
0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 
0, $113 = 0, $114 = 0, $115 = 0, $116 = 0;
+ var $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;
+ var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 
= 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 
= 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0;
+ var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 
= 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 
= 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0;
+ var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, 
$178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, 
$185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0;
+ var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 
= 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 
0, $203 = 0, $204 = 0, $205 = 0, $206 = 0;
+ var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 
= 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 
= 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0;
+ var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 
= 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 
= 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0;
+ var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 
= 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 
= 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0;
+ var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, 
$268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, 
$275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0;
+ var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 
= 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 
= 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0;
+ var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 
0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 
0, $311 = 0, $312 = 0, $313 = 0, $314 = 0;
+ var $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 
= 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 
= 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0;
+ var $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 
= 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 
= 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0;
+ var $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, 
$358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, 
$365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0;
+ var $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 
= 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 
= 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0;
+ var $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 
= 0, $395 = 0, $396 = 0, $397 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $45 = 0, $46 = 0, $47 = 0;
+ var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, 
$55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, 
$63 = 0, $64 = 0, $65 = 0;
+ var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, 
$73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, 
$81 = 0, $82 = 0, $83 = 0;
+ var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, 
$91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 
0, dest = 0, label = 0, sp = 0;
+ var stop = 0;
+ sp = STACKTOP;
+ __gcry_md_block_write($0,0,0);
+ $1 = ((($0)) + 128|0);
+ $2 = $1;
+ $3 = $2;
+ $4 = HEAP32[$3>>2]|0;
+ $5 = (($2) + 4)|0;
+ $6 = $5;
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ((($0)) + 136|0);
+ $9 = $8;
+ $10 = $9;
+ $11 = HEAP32[$10>>2]|0;
+ $12 = (($9) + 4)|0;
+ $13 = $12;
+ $14 = HEAP32[$13>>2]|0;
+ $15 = (_bitshift64Shl(($4|0),($7|0),7)|0);
+ $16 = tempRet0;
+ $17 = (_bitshift64Shl(($11|0),($14|0),7)|0);
+ $18 = tempRet0;
+ $19 = (_bitshift64Lshr(($4|0),($7|0),57)|0);
+ $20 = tempRet0;
+ $21 = $17 | $19;
+ $22 = $18 | $20;
+ $23 = ((($0)) + 144|0);
+ $24 = HEAP32[$23>>2]|0;
+ $25 = ($24|0)<(0);
+ $26 = $25 << 31 >> 31;
+ $27 = (_i64Add(($15|0),($16|0),($24|0),($26|0))|0);
+ $28 = tempRet0;
+ $29 = ($28>>>0)<($16>>>0);
+ $30 = ($27>>>0)<($15>>>0);
+ $31 = ($28|0)==($16|0);
+ $32 = $31 & $30;
+ $33 = $29 | $32;
+ $34 = $33&1;
+ $35 = (_i64Add(($21|0),($22|0),($34|0),0)|0);
+ $36 = tempRet0;
+ $37 = (_bitshift64Shl(($35|0),($36|0),3)|0);
+ $38 = tempRet0;
+ $39 = (_bitshift64Lshr(($27|0),($28|0),61)|0);
+ $40 = tempRet0;
+ $41 = $37 | $39;
+ $38 | $40;
+ $42 = ($24|0)<(112);
+ $43 = (($24) + 1)|0;
+ HEAP32[$23>>2] = $43;
+ $44 = (($0) + ($24)|0);
+ HEAP8[$44>>0] = -128;
+ $45 = HEAP32[$23>>2]|0;
+ if ($42) {
+  $46 = ($45|0)<(112);
+  if ($46) {
+   $48 = $45;
+   while(1) {
+    $47 = (($48) + 1)|0;
+    HEAP32[$23>>2] = $47;
+    $49 = (($0) + ($48)|0);
+    HEAP8[$49>>0] = 0;
+    $50 = HEAP32[$23>>2]|0;
+    $51 = ($50|0)<(112);
+    if ($51) {
+     $48 = $50;
+    } else {
+     break;
+    }
+   }
+  }
+ } else {
+  $52 = ($45|0)<(128);
+  if ($52) {
+   $54 = $45;
+   while(1) {
+    $53 = (($54) + 1)|0;
+    HEAP32[$23>>2] = $53;
+    $55 = (($0) + ($54)|0);
+    HEAP8[$55>>0] = 0;
+    $56 = HEAP32[$23>>2]|0;
+    $57 = ($56|0)<(128);
+    if ($57) {
+     $54 = $56;
+    } else {
+     break;
+    }
+   }
+  }
+  __gcry_md_block_write($0,0,0);
+  dest=$0; stop=dest+112|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ }
+ $58 = ((($0)) + 112|0);
+ $59 = (_bitshift64Lshr(($35|0),($36|0),53)|0);
+ $60 = tempRet0;
+ $61 = $59&255;
+ HEAP8[$58>>0] = $61;
+ $62 = (_bitshift64Lshr(($35|0),($36|0),45)|0);
+ $63 = tempRet0;
+ $64 = $62&255;
+ $65 = ((($0)) + 113|0);
+ HEAP8[$65>>0] = $64;
+ $66 = (_bitshift64Lshr(($35|0),($36|0),37)|0);
+ $67 = tempRet0;
+ $68 = $66&255;
+ $69 = ((($0)) + 114|0);
+ HEAP8[$69>>0] = $68;
+ $70 = (_bitshift64Lshr(($35|0),($36|0),29)|0);
+ $71 = tempRet0;
+ $72 = $70&255;
+ $73 = ((($0)) + 115|0);
+ HEAP8[$73>>0] = $72;
+ $74 = (_bitshift64Lshr(($35|0),($36|0),21)|0);
+ $75 = tempRet0;
+ $76 = $74&255;
+ $77 = ((($0)) + 116|0);
+ HEAP8[$77>>0] = $76;
+ $78 = (_bitshift64Lshr(($35|0),($36|0),13)|0);
+ $79 = tempRet0;
+ $80 = $78&255;
+ $81 = ((($0)) + 117|0);
+ HEAP8[$81>>0] = $80;
+ $82 = (_bitshift64Lshr(($35|0),($36|0),5)|0);
+ $83 = tempRet0;
+ $84 = $82&255;
+ $85 = ((($0)) + 118|0);
+ HEAP8[$85>>0] = $84;
+ $86 = $41&255;
+ $87 = ((($0)) + 119|0);
+ HEAP8[$87>>0] = $86;
+ $88 = ((($0)) + 120|0);
+ $89 = (_bitshift64Lshr(($27|0),($28|0),53)|0);
+ $90 = tempRet0;
+ $91 = $89&255;
+ HEAP8[$88>>0] = $91;
+ $92 = (_bitshift64Lshr(($27|0),($28|0),45)|0);
+ $93 = tempRet0;
+ $94 = $92&255;
+ $95 = ((($0)) + 121|0);
+ HEAP8[$95>>0] = $94;
+ $96 = (_bitshift64Lshr(($27|0),($28|0),37)|0);
+ $97 = tempRet0;
+ $98 = $96&255;
+ $99 = ((($0)) + 122|0);
+ HEAP8[$99>>0] = $98;
+ $100 = (_bitshift64Lshr(($27|0),($28|0),29)|0);
+ $101 = tempRet0;
+ $102 = $100&255;
+ $103 = ((($0)) + 123|0);
+ HEAP8[$103>>0] = $102;
+ $104 = (_bitshift64Lshr(($27|0),($28|0),21)|0);
+ $105 = tempRet0;
+ $106 = $104&255;
+ $107 = ((($0)) + 124|0);
+ HEAP8[$107>>0] = $106;
+ $108 = (_bitshift64Lshr(($27|0),($28|0),13)|0);
+ $109 = tempRet0;
+ $110 = $108&255;
+ $111 = ((($0)) + 125|0);
+ HEAP8[$111>>0] = $110;
+ $112 = (_bitshift64Lshr(($27|0),($28|0),5)|0);
+ $113 = tempRet0;
+ $114 = $112&255;
+ $115 = ((($0)) + 126|0);
+ HEAP8[$115>>0] = $114;
+ $116 = $27&255;
+ $117 = ($116 << 3)&255;
+ $118 = ((($0)) + 127|0);
+ HEAP8[$118>>0] = $117;
+ (_transform_1368($0,$0,1)|0);
+ ___gcry_burn_stack(220);
+ $119 = ((($0)) + 160|0);
+ $120 = $119;
+ $121 = $120;
+ $122 = HEAP32[$121>>2]|0;
+ $123 = (($120) + 4)|0;
+ $124 = $123;
+ $125 = HEAP32[$124>>2]|0;
+ $126 = (_bitshift64Lshr(($122|0),($125|0),56)|0);
+ $127 = tempRet0;
+ $128 = $126&255;
+ HEAP8[$0>>0] = $128;
+ $129 = (_bitshift64Lshr(($122|0),($125|0),48)|0);
+ $130 = tempRet0;
+ $131 = $129&255;
+ $132 = ((($0)) + 1|0);
+ HEAP8[$132>>0] = $131;
+ $133 = (_bitshift64Lshr(($122|0),($125|0),40)|0);
+ $134 = tempRet0;
+ $135 = $133&255;
+ $136 = ((($0)) + 2|0);
+ HEAP8[$136>>0] = $135;
+ $137 = $125&255;
+ $138 = ((($0)) + 3|0);
+ HEAP8[$138>>0] = $137;
+ $139 = (_bitshift64Lshr(($122|0),($125|0),24)|0);
+ $140 = tempRet0;
+ $141 = $139&255;
+ $142 = ((($0)) + 4|0);
+ HEAP8[$142>>0] = $141;
+ $143 = (_bitshift64Lshr(($122|0),($125|0),16)|0);
+ $144 = tempRet0;
+ $145 = $143&255;
+ $146 = ((($0)) + 5|0);
+ HEAP8[$146>>0] = $145;
+ $147 = (_bitshift64Lshr(($122|0),($125|0),8)|0);
+ $148 = tempRet0;
+ $149 = $147&255;
+ $150 = ((($0)) + 6|0);
+ HEAP8[$150>>0] = $149;
+ $151 = $122&255;
+ $152 = ((($0)) + 7|0);
+ HEAP8[$152>>0] = $151;
+ $153 = ((($0)) + 8|0);
+ $154 = ((($0)) + 168|0);
+ $155 = $154;
+ $156 = $155;
+ $157 = HEAP32[$156>>2]|0;
+ $158 = (($155) + 4)|0;
+ $159 = $158;
+ $160 = HEAP32[$159>>2]|0;
+ $161 = (_bitshift64Lshr(($157|0),($160|0),56)|0);
+ $162 = tempRet0;
+ $163 = $161&255;
+ HEAP8[$153>>0] = $163;
+ $164 = (_bitshift64Lshr(($157|0),($160|0),48)|0);
+ $165 = tempRet0;
+ $166 = $164&255;
+ $167 = ((($0)) + 9|0);
+ HEAP8[$167>>0] = $166;
+ $168 = (_bitshift64Lshr(($157|0),($160|0),40)|0);
+ $169 = tempRet0;
+ $170 = $168&255;
+ $171 = ((($0)) + 10|0);
+ HEAP8[$171>>0] = $170;
+ $172 = $160&255;
+ $173 = ((($0)) + 11|0);
+ HEAP8[$173>>0] = $172;
+ $174 = (_bitshift64Lshr(($157|0),($160|0),24)|0);
+ $175 = tempRet0;
+ $176 = $174&255;
+ $177 = ((($0)) + 12|0);
+ HEAP8[$177>>0] = $176;
+ $178 = (_bitshift64Lshr(($157|0),($160|0),16)|0);
+ $179 = tempRet0;
+ $180 = $178&255;
+ $181 = ((($0)) + 13|0);
+ HEAP8[$181>>0] = $180;
+ $182 = (_bitshift64Lshr(($157|0),($160|0),8)|0);
+ $183 = tempRet0;
+ $184 = $182&255;
+ $185 = ((($0)) + 14|0);
+ HEAP8[$185>>0] = $184;
+ $186 = $157&255;
+ $187 = ((($0)) + 15|0);
+ HEAP8[$187>>0] = $186;
+ $188 = ((($0)) + 16|0);
+ $189 = ((($0)) + 176|0);
+ $190 = $189;
+ $191 = $190;
+ $192 = HEAP32[$191>>2]|0;
+ $193 = (($190) + 4)|0;
+ $194 = $193;
+ $195 = HEAP32[$194>>2]|0;
+ $196 = (_bitshift64Lshr(($192|0),($195|0),56)|0);
+ $197 = tempRet0;
+ $198 = $196&255;
+ HEAP8[$188>>0] = $198;
+ $199 = (_bitshift64Lshr(($192|0),($195|0),48)|0);
+ $200 = tempRet0;
+ $201 = $199&255;
+ $202 = ((($0)) + 17|0);
+ HEAP8[$202>>0] = $201;
+ $203 = (_bitshift64Lshr(($192|0),($195|0),40)|0);
+ $204 = tempRet0;
+ $205 = $203&255;
+ $206 = ((($0)) + 18|0);
+ HEAP8[$206>>0] = $205;
+ $207 = $195&255;
+ $208 = ((($0)) + 19|0);
+ HEAP8[$208>>0] = $207;
+ $209 = (_bitshift64Lshr(($192|0),($195|0),24)|0);
+ $210 = tempRet0;
+ $211 = $209&255;
+ $212 = ((($0)) + 20|0);
+ HEAP8[$212>>0] = $211;
+ $213 = (_bitshift64Lshr(($192|0),($195|0),16)|0);
+ $214 = tempRet0;
+ $215 = $213&255;
+ $216 = ((($0)) + 21|0);
+ HEAP8[$216>>0] = $215;
+ $217 = (_bitshift64Lshr(($192|0),($195|0),8)|0);
+ $218 = tempRet0;
+ $219 = $217&255;
+ $220 = ((($0)) + 22|0);
+ HEAP8[$220>>0] = $219;
+ $221 = $192&255;
+ $222 = ((($0)) + 23|0);
+ HEAP8[$222>>0] = $221;
+ $223 = ((($0)) + 24|0);
+ $224 = ((($0)) + 184|0);
+ $225 = $224;
+ $226 = $225;
+ $227 = HEAP32[$226>>2]|0;
+ $228 = (($225) + 4)|0;
+ $229 = $228;
+ $230 = HEAP32[$229>>2]|0;
+ $231 = (_bitshift64Lshr(($227|0),($230|0),56)|0);
+ $232 = tempRet0;
+ $233 = $231&255;
+ HEAP8[$223>>0] = $233;
+ $234 = (_bitshift64Lshr(($227|0),($230|0),48)|0);
+ $235 = tempRet0;
+ $236 = $234&255;
+ $237 = ((($0)) + 25|0);
+ HEAP8[$237>>0] = $236;
+ $238 = (_bitshift64Lshr(($227|0),($230|0),40)|0);
+ $239 = tempRet0;
+ $240 = $238&255;
+ $241 = ((($0)) + 26|0);
+ HEAP8[$241>>0] = $240;
+ $242 = $230&255;
+ $243 = ((($0)) + 27|0);
+ HEAP8[$243>>0] = $242;
+ $244 = (_bitshift64Lshr(($227|0),($230|0),24)|0);
+ $245 = tempRet0;
+ $246 = $244&255;
+ $247 = ((($0)) + 28|0);
+ HEAP8[$247>>0] = $246;
+ $248 = (_bitshift64Lshr(($227|0),($230|0),16)|0);
+ $249 = tempRet0;
+ $250 = $248&255;
+ $251 = ((($0)) + 29|0);
+ HEAP8[$251>>0] = $250;
+ $252 = (_bitshift64Lshr(($227|0),($230|0),8)|0);
+ $253 = tempRet0;
+ $254 = $252&255;
+ $255 = ((($0)) + 30|0);
+ HEAP8[$255>>0] = $254;
+ $256 = $227&255;
+ $257 = ((($0)) + 31|0);
+ HEAP8[$257>>0] = $256;
+ $258 = ((($0)) + 32|0);
+ $259 = ((($0)) + 192|0);
+ $260 = $259;
+ $261 = $260;
+ $262 = HEAP32[$261>>2]|0;
+ $263 = (($260) + 4)|0;
+ $264 = $263;
+ $265 = HEAP32[$264>>2]|0;
+ $266 = (_bitshift64Lshr(($262|0),($265|0),56)|0);
+ $267 = tempRet0;
+ $268 = $266&255;
+ HEAP8[$258>>0] = $268;
+ $269 = (_bitshift64Lshr(($262|0),($265|0),48)|0);
+ $270 = tempRet0;
+ $271 = $269&255;
+ $272 = ((($0)) + 33|0);
+ HEAP8[$272>>0] = $271;
+ $273 = (_bitshift64Lshr(($262|0),($265|0),40)|0);
+ $274 = tempRet0;
+ $275 = $273&255;
+ $276 = ((($0)) + 34|0);
+ HEAP8[$276>>0] = $275;
+ $277 = $265&255;
+ $278 = ((($0)) + 35|0);
+ HEAP8[$278>>0] = $277;
+ $279 = (_bitshift64Lshr(($262|0),($265|0),24)|0);
+ $280 = tempRet0;
+ $281 = $279&255;
+ $282 = ((($0)) + 36|0);
+ HEAP8[$282>>0] = $281;
+ $283 = (_bitshift64Lshr(($262|0),($265|0),16)|0);
+ $284 = tempRet0;
+ $285 = $283&255;
+ $286 = ((($0)) + 37|0);
+ HEAP8[$286>>0] = $285;
+ $287 = (_bitshift64Lshr(($262|0),($265|0),8)|0);
+ $288 = tempRet0;
+ $289 = $287&255;
+ $290 = ((($0)) + 38|0);
+ HEAP8[$290>>0] = $289;
+ $291 = $262&255;
+ $292 = ((($0)) + 39|0);
+ HEAP8[$292>>0] = $291;
+ $293 = ((($0)) + 40|0);
+ $294 = ((($0)) + 200|0);
+ $295 = $294;
+ $296 = $295;
+ $297 = HEAP32[$296>>2]|0;
+ $298 = (($295) + 4)|0;
+ $299 = $298;
+ $300 = HEAP32[$299>>2]|0;
+ $301 = (_bitshift64Lshr(($297|0),($300|0),56)|0);
+ $302 = tempRet0;
+ $303 = $301&255;
+ HEAP8[$293>>0] = $303;
+ $304 = (_bitshift64Lshr(($297|0),($300|0),48)|0);
+ $305 = tempRet0;
+ $306 = $304&255;
+ $307 = ((($0)) + 41|0);
+ HEAP8[$307>>0] = $306;
+ $308 = (_bitshift64Lshr(($297|0),($300|0),40)|0);
+ $309 = tempRet0;
+ $310 = $308&255;
+ $311 = ((($0)) + 42|0);
+ HEAP8[$311>>0] = $310;
+ $312 = $300&255;
+ $313 = ((($0)) + 43|0);
+ HEAP8[$313>>0] = $312;
+ $314 = (_bitshift64Lshr(($297|0),($300|0),24)|0);
+ $315 = tempRet0;
+ $316 = $314&255;
+ $317 = ((($0)) + 44|0);
+ HEAP8[$317>>0] = $316;
+ $318 = (_bitshift64Lshr(($297|0),($300|0),16)|0);
+ $319 = tempRet0;
+ $320 = $318&255;
+ $321 = ((($0)) + 45|0);
+ HEAP8[$321>>0] = $320;
+ $322 = (_bitshift64Lshr(($297|0),($300|0),8)|0);
+ $323 = tempRet0;
+ $324 = $322&255;
+ $325 = ((($0)) + 46|0);
+ HEAP8[$325>>0] = $324;
+ $326 = $297&255;
+ $327 = ((($0)) + 47|0);
+ HEAP8[$327>>0] = $326;
+ $328 = ((($0)) + 48|0);
+ $329 = ((($0)) + 208|0);
+ $330 = $329;
+ $331 = $330;
+ $332 = HEAP32[$331>>2]|0;
+ $333 = (($330) + 4)|0;
+ $334 = $333;
+ $335 = HEAP32[$334>>2]|0;
+ $336 = (_bitshift64Lshr(($332|0),($335|0),56)|0);
+ $337 = tempRet0;
+ $338 = $336&255;
+ HEAP8[$328>>0] = $338;
+ $339 = (_bitshift64Lshr(($332|0),($335|0),48)|0);
+ $340 = tempRet0;
+ $341 = $339&255;
+ $342 = ((($0)) + 49|0);
+ HEAP8[$342>>0] = $341;
+ $343 = (_bitshift64Lshr(($332|0),($335|0),40)|0);
+ $344 = tempRet0;
+ $345 = $343&255;
+ $346 = ((($0)) + 50|0);
+ HEAP8[$346>>0] = $345;
+ $347 = $335&255;
+ $348 = ((($0)) + 51|0);
+ HEAP8[$348>>0] = $347;
+ $349 = (_bitshift64Lshr(($332|0),($335|0),24)|0);
+ $350 = tempRet0;
+ $351 = $349&255;
+ $352 = ((($0)) + 52|0);
+ HEAP8[$352>>0] = $351;
+ $353 = (_bitshift64Lshr(($332|0),($335|0),16)|0);
+ $354 = tempRet0;
+ $355 = $353&255;
+ $356 = ((($0)) + 53|0);
+ HEAP8[$356>>0] = $355;
+ $357 = (_bitshift64Lshr(($332|0),($335|0),8)|0);
+ $358 = tempRet0;
+ $359 = $357&255;
+ $360 = ((($0)) + 54|0);
+ HEAP8[$360>>0] = $359;
+ $361 = $332&255;
+ $362 = ((($0)) + 55|0);
+ HEAP8[$362>>0] = $361;
+ $363 = ((($0)) + 56|0);
+ $364 = ((($0)) + 216|0);
+ $365 = $364;
+ $366 = $365;
+ $367 = HEAP32[$366>>2]|0;
+ $368 = (($365) + 4)|0;
+ $369 = $368;
+ $370 = HEAP32[$369>>2]|0;
+ $371 = (_bitshift64Lshr(($367|0),($370|0),56)|0);
+ $372 = tempRet0;
+ $373 = $371&255;
+ HEAP8[$363>>0] = $373;
+ $374 = (_bitshift64Lshr(($367|0),($370|0),48)|0);
+ $375 = tempRet0;
+ $376 = $374&255;
+ $377 = ((($0)) + 57|0);
+ HEAP8[$377>>0] = $376;
+ $378 = (_bitshift64Lshr(($367|0),($370|0),40)|0);
+ $379 = tempRet0;
+ $380 = $378&255;
+ $381 = ((($0)) + 58|0);
+ HEAP8[$381>>0] = $380;
+ $382 = $370&255;
+ $383 = ((($0)) + 59|0);
+ HEAP8[$383>>0] = $382;
+ $384 = (_bitshift64Lshr(($367|0),($370|0),24)|0);
+ $385 = tempRet0;
+ $386 = $384&255;
+ $387 = ((($0)) + 60|0);
+ HEAP8[$387>>0] = $386;
+ $388 = (_bitshift64Lshr(($367|0),($370|0),16)|0);
+ $389 = tempRet0;
+ $390 = $388&255;
+ $391 = ((($0)) + 61|0);
+ HEAP8[$391>>0] = $390;
+ $392 = (_bitshift64Lshr(($367|0),($370|0),8)|0);
+ $393 = tempRet0;
+ $394 = $392&255;
+ $395 = ((($0)) + 62|0);
+ HEAP8[$395>>0] = $394;
+ $396 = $367&255;
+ $397 = ((($0)) + 63|0);
+ HEAP8[$397>>0] = $396;
+ return;
+}
+function _sha512_read($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return ($0|0);
+}
+function _run_selftests_1355($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$0$i = 0, $$0$i7 = 0, $$011$i = 0, $$011$i6 = 0, $10 = 0, $11 = 
0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $4 = 
0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
+ var $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ switch ($0|0) {
+ case 9:  {
+  $3 = (__gcry_hash_selftest_check_one(9,0,62920,3,62924,48)|0);
+  $4 = ($3|0)==(0|0);
+  if ($4) {
+   $5 = ($1|0)==(0);
+   if ($5) {
+    $$0 = 0;
+    return ($$0|0);
+   }
+   $6 = (__gcry_hash_selftest_check_one(9,0,62973,112,63086,48)|0);
+   $7 = ($6|0)==(0|0);
+   if ($7) {
+    $8 = (__gcry_hash_selftest_check_one(9,1,0,0,63135,48)|0);
+    $9 = ($8|0)==(0|0);
+    if ($9) {
+     $$0 = 0;
+     return ($$0|0);
+    } else {
+     $$0$i = $8;$$011$i = 63209;
+    }
+   } else {
+    $$0$i = $6;$$011$i = 63197;
+   }
+  } else {
+   $$0$i = $3;$$011$i = 63184;
+  }
+  $10 = ($2|0)==(0|0);
+  if ($10) {
+   $$0 = 50;
+   return ($$0|0);
+  }
+  FUNCTION_TABLE_viiii[$2 & 63](63225,9,$$011$i,$$0$i);
+  $$0 = 50;
+  return ($$0|0);
+  break;
+ }
+ case 10:  {
+  $11 = (__gcry_hash_selftest_check_one(10,0,62920,3,63232,64)|0);
+  $12 = ($11|0)==(0|0);
+  if ($12) {
+   $13 = ($1|0)==(0);
+   if ($13) {
+    $$0 = 0;
+    return ($$0|0);
+   }
+   $14 = (__gcry_hash_selftest_check_one(10,0,62973,112,63297,64)|0);
+   $15 = ($14|0)==(0|0);
+   if ($15) {
+    $16 = (__gcry_hash_selftest_check_one(10,1,0,0,63362,64)|0);
+    $17 = ($16|0)==(0|0);
+    if ($17) {
+     $$0 = 0;
+     return ($$0|0);
+    } else {
+     $$0$i7 = $16;$$011$i6 = 63209;
+    }
+   } else {
+    $$0$i7 = $14;$$011$i6 = 63197;
+   }
+  } else {
+   $$0$i7 = $11;$$011$i6 = 63184;
+  }
+  $18 = ($2|0)==(0|0);
+  if ($18) {
+   $$0 = 50;
+   return ($$0|0);
+  }
+  FUNCTION_TABLE_viiii[$2 & 63](63225,10,$$011$i6,$$0$i7);
+  $$0 = 50;
+  return ($$0|0);
+  break;
+ }
+ default: {
+  $$0 = 5;
+  return ($$0|0);
+ }
+ }
+ return (0)|0;
+}
+function _transform_1368($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$051156$i = 0, $$08 = 0, $$151221$i = 0, $10 = 0, $100 = 0, 
$1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, 
$1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0;
+ var $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 
0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, 
$1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0;
+ var $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 
0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, 
$1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0;
+ var $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 
0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, 
$1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0, $1066 = 0, $1067 = 0;
+ var $1068 = 0, $1069 = 0, $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1073 = 
0, $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, 
$1080 = 0, $1081 = 0, $1082 = 0, $1083 = 0, $1084 = 0, $1085 = 0;
+ var $1086 = 0, $1087 = 0, $1088 = 0, $1089 = 0, $109 = 0, $1090 = 0, $1091 = 
0, $1092 = 0, $1093 = 0, $1094 = 0, $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, 
$1099 = 0, $11 = 0, $110 = 0, $1100 = 0, $1101 = 0, $1102 = 0;
+ var $1103 = 0, $1104 = 0, $1105 = 0, $1106 = 0, $1107 = 0, $1108 = 0, $1109 = 
0, $111 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, 
$1116 = 0, $1117 = 0, $1118 = 0, $1119 = 0, $112 = 0, $1120 = 0;
+ var $1121 = 0, $1122 = 0, $1123 = 0, $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 
0, $1128 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, 
$1134 = 0, $1135 = 0, $1136 = 0, $1137 = 0, $1138 = 0, $1139 = 0;
+ var $114 = 0, $1140 = 0, $1141 = 0, $1142 = 0, $1143 = 0, $1144 = 0, $1145 = 
0, $1146 = 0, $1147 = 0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0, $1151 = 0, 
$1152 = 0, $1153 = 0, $1154 = 0, $1155 = 0, $1156 = 0, $1157 = 0;
+ var $1158 = 0, $1159 = 0, $116 = 0, $1160 = 0, $1161 = 0, $1162 = 0, $1163 = 
0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, $1168 = 0, $1169 = 0, $117 = 0, 
$1170 = 0, $1171 = 0, $1172 = 0, $1173 = 0, $1174 = 0, $1175 = 0;
+ var $1176 = 0, $1177 = 0, $1178 = 0, $1179 = 0, $118 = 0, $1180 = 0, $1181 = 
0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $1188 = 0, 
$1189 = 0, $119 = 0, $1190 = 0, $1191 = 0, $1192 = 0, $1193 = 0;
+ var $1194 = 0, $1195 = 0, $1196 = 0, $1197 = 0, $1198 = 0, $1199 = 0, $12 = 
0, $120 = 0, $1200 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1204 = 0, $1205 = 0, 
$1206 = 0, $1207 = 0, $1208 = 0, $1209 = 0, $121 = 0, $1210 = 0;
+ var $1211 = 0, $1212 = 0, $1213 = 0, $1214 = 0, $1215 = 0, $1216 = 0, $1217 = 
0, $1218 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1223 = 0, 
$1224 = 0, $1225 = 0, $1226 = 0, $1227 = 0, $1228 = 0, $1229 = 0;
+ var $123 = 0, $1230 = 0, $1231 = 0, $1232 = 0, $1233 = 0, $1234 = 0, $1235 = 
0, $1236 = 0, $1237 = 0, $1238 = 0, $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, 
$1242 = 0, $1243 = 0, $1244 = 0, $1245 = 0, $1246 = 0, $1247 = 0;
+ var $1248 = 0, $1249 = 0, $125 = 0, $1250 = 0, $1251 = 0, $1252 = 0, $1253 = 
0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, 
$1260 = 0, $1261 = 0, $1262 = 0, $1263 = 0, $1264 = 0, $1265 = 0;
+ var $1266 = 0, $1267 = 0, $1268 = 0, $1269 = 0, $127 = 0, $1270 = 0, $1271 = 
0, $1272 = 0, $1273 = 0, $1274 = 0, $1275 = 0, $1276 = 0, $1277 = 0, $1278 = 0, 
$1279 = 0, $128 = 0, $1280 = 0, $1281 = 0, $1282 = 0, $1283 = 0;
+ var $1284 = 0, $1285 = 0, $1286 = 0, $1287 = 0, $1288 = 0, $1289 = 0, $129 = 
0, $1290 = 0, $1291 = 0, $1292 = 0, $1293 = 0, $1294 = 0, $1295 = 0, $1296 = 0, 
$1297 = 0, $1298 = 0, $1299 = 0, $13 = 0, $130 = 0, $1300 = 0;
+ var $1301 = 0, $1302 = 0, $1303 = 0, $1304 = 0, $1305 = 0, $1306 = 0, $1307 = 
0, $1308 = 0, $1309 = 0, $131 = 0, $1310 = 0, $1311 = 0, $1312 = 0, $1313 = 0, 
$1314 = 0, $1315 = 0, $1316 = 0, $1317 = 0, $1318 = 0, $1319 = 0;
+ var $132 = 0, $1320 = 0, $1321 = 0, $1322 = 0, $1323 = 0, $1324 = 0, $1325 = 
0, $1326 = 0, $1327 = 0, $1328 = 0, $1329 = 0, $133 = 0, $1330 = 0, $1331 = 0, 
$1332 = 0, $1333 = 0, $1334 = 0, $1335 = 0, $1336 = 0, $1337 = 0;
+ var $1338 = 0, $1339 = 0, $134 = 0, $1340 = 0, $1341 = 0, $1342 = 0, $1343 = 
0, $1344 = 0, $1345 = 0, $1346 = 0, $1347 = 0, $1348 = 0, $1349 = 0, $135 = 0, 
$1350 = 0, $1351 = 0, $1352 = 0, $1353 = 0, $1354 = 0, $1355 = 0;
+ var $1356 = 0, $1357 = 0, $1358 = 0, $1359 = 0, $136 = 0, $1360 = 0, $1361 = 
0, $1362 = 0, $1363 = 0, $1364 = 0, $1365 = 0, $1366 = 0, $1367 = 0, $1368 = 0, 
$1369 = 0, $137 = 0, $1370 = 0, $1371 = 0, $1372 = 0, $1373 = 0;
+ var $1374 = 0, $1375 = 0, $1376 = 0, $1377 = 0, $1378 = 0, $1379 = 0, $138 = 
0, $1380 = 0, $1381 = 0, $1382 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, 
$1387 = 0, $1388 = 0, $1389 = 0, $139 = 0, $1390 = 0, $1391 = 0;
+ var $1392 = 0, $1393 = 0, $1394 = 0, $1395 = 0, $1396 = 0, $1397 = 0, $1398 = 
0, $1399 = 0, $14 = 0, $140 = 0, $1400 = 0, $1401 = 0, $1402 = 0, $1403 = 0, 
$1404 = 0, $1405 = 0, $1406 = 0, $1407 = 0, $1408 = 0, $1409 = 0;
+ var $141 = 0, $1410 = 0, $1411 = 0, $1412 = 0, $1413 = 0, $1414 = 0, $1415 = 
0, $1416 = 0, $1417 = 0, $1418 = 0, $1419 = 0, $142 = 0, $1420 = 0, $1421 = 0, 
$1422 = 0, $1423 = 0, $1424 = 0, $1425 = 0, $1426 = 0, $1427 = 0;
+ var $1428 = 0, $1429 = 0, $143 = 0, $1430 = 0, $1431 = 0, $1432 = 0, $1433 = 
0, $1434 = 0, $1435 = 0, $1436 = 0, $1437 = 0, $1438 = 0, $1439 = 0, $144 = 0, 
$1440 = 0, $1441 = 0, $1442 = 0, $1443 = 0, $1444 = 0, $1445 = 0;
+ var $1446 = 0, $1447 = 0, $1448 = 0, $1449 = 0, $145 = 0, $1450 = 0, $1451 = 
0, $1452 = 0, $1453 = 0, $1454 = 0, $1455 = 0, $1456 = 0, $1457 = 0, $1458 = 0, 
$1459 = 0, $146 = 0, $1460 = 0, $1461 = 0, $1462 = 0, $1463 = 0;
+ var $1464 = 0, $1465 = 0, $1466 = 0, $1467 = 0, $1468 = 0, $1469 = 0, $147 = 
0, $1470 = 0, $1471 = 0, $1472 = 0, $1473 = 0, $1474 = 0, $1475 = 0, $1476 = 0, 
$1477 = 0, $1478 = 0, $1479 = 0, $148 = 0, $1480 = 0, $1481 = 0;
+ var $1482 = 0, $1483 = 0, $1484 = 0, $1485 = 0, $1486 = 0, $1487 = 0, $1488 = 
0, $1489 = 0, $149 = 0, $1490 = 0, $1491 = 0, $1492 = 0, $1493 = 0, $1494 = 0, 
$1495 = 0, $1496 = 0, $1497 = 0, $1498 = 0, $1499 = 0, $15 = 0;
+ var $150 = 0, $1500 = 0, $1501 = 0, $1502 = 0, $1503 = 0, $1504 = 0, $1505 = 
0, $1506 = 0, $1507 = 0, $1508 = 0, $1509 = 0, $151 = 0, $1510 = 0, $1511 = 0, 
$1512 = 0, $1513 = 0, $1514 = 0, $1515 = 0, $1516 = 0, $1517 = 0;
+ var $1518 = 0, $1519 = 0, $152 = 0, $1520 = 0, $1521 = 0, $1522 = 0, $1523 = 
0, $1524 = 0, $1525 = 0, $1526 = 0, $1527 = 0, $1528 = 0, $1529 = 0, $153 = 0, 
$1530 = 0, $1531 = 0, $1532 = 0, $1533 = 0, $1534 = 0, $1535 = 0;
+ var $1536 = 0, $1537 = 0, $1538 = 0, $1539 = 0, $154 = 0, $1540 = 0, $1541 = 
0, $1542 = 0, $1543 = 0, $1544 = 0, $1545 = 0, $1546 = 0, $1547 = 0, $1548 = 0, 
$1549 = 0, $155 = 0, $1550 = 0, $1551 = 0, $1552 = 0, $1553 = 0;
+ var $1554 = 0, $1555 = 0, $1556 = 0, $1557 = 0, $1558 = 0, $1559 = 0, $156 = 
0, $1560 = 0, $1561 = 0, $1562 = 0, $1563 = 0, $1564 = 0, $1565 = 0, $1566 = 0, 
$1567 = 0, $1568 = 0, $1569 = 0, $157 = 0, $1570 = 0, $1571 = 0;
+ var $1572 = 0, $1573 = 0, $1574 = 0, $1575 = 0, $1576 = 0, $1577 = 0, $1578 = 
0, $1579 = 0, $158 = 0, $1580 = 0, $1581 = 0, $1582 = 0, $1583 = 0, $1584 = 0, 
$1585 = 0, $1586 = 0, $1587 = 0, $1588 = 0, $1589 = 0, $159 = 0;
+ var $1590 = 0, $1591 = 0, $1592 = 0, $1593 = 0, $1594 = 0, $1595 = 0, $1596 = 
0, $1597 = 0, $1598 = 0, $1599 = 0, $16 = 0, $160 = 0, $1600 = 0, $1601 = 0, 
$1602 = 0, $1603 = 0, $1604 = 0, $1605 = 0, $1606 = 0, $1607 = 0;
+ var $1608 = 0, $1609 = 0, $161 = 0, $1610 = 0, $1611 = 0, $1612 = 0, $1613 = 
0, $1614 = 0, $1615 = 0, $1616 = 0, $1617 = 0, $1618 = 0, $1619 = 0, $162 = 0, 
$1620 = 0, $1621 = 0, $1622 = 0, $1623 = 0, $1624 = 0, $1625 = 0;
+ var $1626 = 0, $1627 = 0, $1628 = 0, $1629 = 0, $163 = 0, $1630 = 0, $1631 = 
0, $1632 = 0, $1633 = 0, $1634 = 0, $1635 = 0, $1636 = 0, $1637 = 0, $1638 = 0, 
$1639 = 0, $164 = 0, $1640 = 0, $1641 = 0, $1642 = 0, $1643 = 0;
+ var $1644 = 0, $1645 = 0, $1646 = 0, $1647 = 0, $1648 = 0, $1649 = 0, $165 = 
0, $1650 = 0, $1651 = 0, $1652 = 0, $1653 = 0, $1654 = 0, $1655 = 0, $1656 = 0, 
$1657 = 0, $1658 = 0, $1659 = 0, $166 = 0, $1660 = 0, $1661 = 0;
+ var $1662 = 0, $1663 = 0, $1664 = 0, $1665 = 0, $1666 = 0, $1667 = 0, $1668 = 
0, $1669 = 0, $167 = 0, $1670 = 0, $1671 = 0, $1672 = 0, $1673 = 0, $1674 = 0, 
$1675 = 0, $1676 = 0, $1677 = 0, $1678 = 0, $1679 = 0, $168 = 0;
+ var $1680 = 0, $1681 = 0, $1682 = 0, $1683 = 0, $1684 = 0, $1685 = 0, $1686 = 
0, $1687 = 0, $1688 = 0, $1689 = 0, $169 = 0, $1690 = 0, $1691 = 0, $1692 = 0, 
$1693 = 0, $1694 = 0, $1695 = 0, $1696 = 0, $1697 = 0, $1698 = 0;
+ var $1699 = 0, $17 = 0, $170 = 0, $1700 = 0, $1701 = 0, $1702 = 0, $1703 = 0, 
$1704 = 0, $1705 = 0, $1706 = 0, $1707 = 0, $1708 = 0, $1709 = 0, $171 = 0, 
$1710 = 0, $1711 = 0, $1712 = 0, $1713 = 0, $1714 = 0, $1715 = 0;
+ var $1716 = 0, $1717 = 0, $1718 = 0, $1719 = 0, $172 = 0, $1720 = 0, $1721 = 
0, $1722 = 0, $1723 = 0, $1724 = 0, $1725 = 0, $1726 = 0, $1727 = 0, $1728 = 0, 
$1729 = 0, $173 = 0, $1730 = 0, $1731 = 0, $1732 = 0, $1733 = 0;
+ var $1734 = 0, $1735 = 0, $1736 = 0, $1737 = 0, $1738 = 0, $1739 = 0, $174 = 
0, $1740 = 0, $1741 = 0, $1742 = 0, $1743 = 0, $1744 = 0, $1745 = 0, $1746 = 0, 
$1747 = 0, $1748 = 0, $1749 = 0, $175 = 0, $1750 = 0, $1751 = 0;
+ var $1752 = 0, $1753 = 0, $1754 = 0, $1755 = 0, $1756 = 0, $1757 = 0, $1758 = 
0, $1759 = 0, $176 = 0, $1760 = 0, $1761 = 0, $1762 = 0, $1763 = 0, $1764 = 0, 
$1765 = 0, $1766 = 0, $1767 = 0, $1768 = 0, $1769 = 0, $177 = 0;
+ var $1770 = 0, $1771 = 0, $1772 = 0, $1773 = 0, $1774 = 0, $1775 = 0, $1776 = 
0, $1777 = 0, $1778 = 0, $1779 = 0, $178 = 0, $1780 = 0, $1781 = 0, $1782 = 0, 
$1783 = 0, $1784 = 0, $1785 = 0, $1786 = 0, $1787 = 0, $1788 = 0;
+ var $1789 = 0, $179 = 0, $1790 = 0, $1791 = 0, $1792 = 0, $1793 = 0, $1794 = 
0, $1795 = 0, $1796 = 0, $1797 = 0, $1798 = 0, $1799 = 0, $18 = 0, $180 = 0, 
$1800 = 0, $1801 = 0, $1802 = 0, $1803 = 0, $1804 = 0, $1805 = 0;
+ var $1806 = 0, $1807 = 0, $1808 = 0, $1809 = 0, $181 = 0, $1810 = 0, $1811 = 
0, $1812 = 0, $1813 = 0, $1814 = 0, $1815 = 0, $1816 = 0, $1817 = 0, $1818 = 0, 
$1819 = 0, $182 = 0, $1820 = 0, $1821 = 0, $1822 = 0, $1823 = 0;
+ var $1824 = 0, $1825 = 0, $1826 = 0, $1827 = 0, $1828 = 0, $1829 = 0, $183 = 
0, $1830 = 0, $1831 = 0, $1832 = 0, $1833 = 0, $1834 = 0, $1835 = 0, $1836 = 0, 
$1837 = 0, $1838 = 0, $1839 = 0, $184 = 0, $1840 = 0, $1841 = 0;
+ var $1842 = 0, $1843 = 0, $1844 = 0, $1845 = 0, $1846 = 0, $1847 = 0, $1848 = 
0, $1849 = 0, $185 = 0, $1850 = 0, $1851 = 0, $1852 = 0, $1853 = 0, $1854 = 0, 
$1855 = 0, $1856 = 0, $1857 = 0, $1858 = 0, $1859 = 0, $186 = 0;
+ var $1860 = 0, $1861 = 0, $1862 = 0, $1863 = 0, $1864 = 0, $1865 = 0, $1866 = 
0, $1867 = 0, $1868 = 0, $1869 = 0, $187 = 0, $1870 = 0, $1871 = 0, $1872 = 0, 
$1873 = 0, $1874 = 0, $1875 = 0, $1876 = 0, $1877 = 0, $1878 = 0;
+ var $1879 = 0, $188 = 0, $1880 = 0, $1881 = 0, $1882 = 0, $1883 = 0, $1884 = 
0, $1885 = 0, $1886 = 0, $1887 = 0, $1888 = 0, $1889 = 0, $189 = 0, $1890 = 0, 
$1891 = 0, $1892 = 0, $1893 = 0, $1894 = 0, $1895 = 0, $1896 = 0;
+ var $1897 = 0, $1898 = 0, $1899 = 0, $19 = 0, $190 = 0, $1900 = 0, $1901 = 0, 
$1902 = 0, $1903 = 0, $1904 = 0, $1905 = 0, $1906 = 0, $1907 = 0, $1908 = 0, 
$1909 = 0, $191 = 0, $1910 = 0, $1911 = 0, $1912 = 0, $1913 = 0;
+ var $1914 = 0, $1915 = 0, $1916 = 0, $1917 = 0, $1918 = 0, $1919 = 0, $192 = 
0, $1920 = 0, $1921 = 0, $1922 = 0, $1923 = 0, $1924 = 0, $1925 = 0, $1926 = 0, 
$1927 = 0, $1928 = 0, $1929 = 0, $193 = 0, $1930 = 0, $1931 = 0;
+ var $1932 = 0, $1933 = 0, $1934 = 0, $1935 = 0, $1936 = 0, $1937 = 0, $1938 = 
0, $1939 = 0, $194 = 0, $1940 = 0, $1941 = 0, $1942 = 0, $1943 = 0, $1944 = 0, 
$1945 = 0, $1946 = 0, $1947 = 0, $1948 = 0, $1949 = 0, $195 = 0;
+ var $1950 = 0, $1951 = 0, $1952 = 0, $1953 = 0, $1954 = 0, $1955 = 0, $1956 = 
0, $1957 = 0, $1958 = 0, $1959 = 0, $196 = 0, $1960 = 0, $1961 = 0, $1962 = 0, 
$1963 = 0, $1964 = 0, $1965 = 0, $1966 = 0, $1967 = 0, $1968 = 0;
+ var $1969 = 0, $197 = 0, $1970 = 0, $1971 = 0, $1972 = 0, $1973 = 0, $1974 = 
0, $1975 = 0, $1976 = 0, $1977 = 0, $1978 = 0, $1979 = 0, $198 = 0, $1980 = 0, 
$1981 = 0, $1982 = 0, $1983 = 0, $1984 = 0, $1985 = 0, $1986 = 0;
+ var $1987 = 0, $1988 = 0, $1989 = 0, $199 = 0, $1990 = 0, $1991 = 0, $1992 = 
0, $1993 = 0, $1994 = 0, $1995 = 0, $1996 = 0, $1997 = 0, $1998 = 0, $1999 = 0, 
$20 = 0, $200 = 0, $2000 = 0, $2001 = 0, $2002 = 0, $2003 = 0;
+ var $2004 = 0, $2005 = 0, $2006 = 0, $2007 = 0, $2008 = 0, $2009 = 0, $201 = 
0, $2010 = 0, $2011 = 0, $2012 = 0, $2013 = 0, $2014 = 0, $2015 = 0, $2016 = 0, 
$2017 = 0, $2018 = 0, $2019 = 0, $202 = 0, $2020 = 0, $2021 = 0;
+ var $2022 = 0, $2023 = 0, $2024 = 0, $2025 = 0, $2026 = 0, $2027 = 0, $2028 = 
0, $2029 = 0, $203 = 0, $2030 = 0, $2031 = 0, $2032 = 0, $2033 = 0, $2034 = 0, 
$2035 = 0, $2036 = 0, $2037 = 0, $2038 = 0, $2039 = 0, $204 = 0;
+ var $2040 = 0, $2041 = 0, $2042 = 0, $2043 = 0, $2044 = 0, $2045 = 0, $2046 = 
0, $2047 = 0, $2048 = 0, $2049 = 0, $205 = 0, $2050 = 0, $2051 = 0, $2052 = 0, 
$2053 = 0, $2054 = 0, $2055 = 0, $2056 = 0, $2057 = 0, $2058 = 0;
+ var $2059 = 0, $206 = 0, $2060 = 0, $2061 = 0, $2062 = 0, $2063 = 0, $2064 = 
0, $2065 = 0, $2066 = 0, $2067 = 0, $2068 = 0, $2069 = 0, $207 = 0, $2070 = 0, 
$2071 = 0, $2072 = 0, $2073 = 0, $2074 = 0, $2075 = 0, $2076 = 0;
+ var $2077 = 0, $2078 = 0, $2079 = 0, $208 = 0, $2080 = 0, $2081 = 0, $2082 = 
0, $2083 = 0, $2084 = 0, $2085 = 0, $2086 = 0, $2087 = 0, $2088 = 0, $2089 = 0, 
$209 = 0, $2090 = 0, $2091 = 0, $2092 = 0, $2093 = 0, $2094 = 0;
+ var $2095 = 0, $2096 = 0, $2097 = 0, $2098 = 0, $2099 = 0, $21 = 0, $210 = 0, 
$2100 = 0, $2101 = 0, $2102 = 0, $2103 = 0, $2104 = 0, $2105 = 0, $2106 = 0, 
$2107 = 0, $2108 = 0, $2109 = 0, $211 = 0, $2110 = 0, $2111 = 0;
+ var $2112 = 0, $2113 = 0, $2114 = 0, $2115 = 0, $2116 = 0, $2117 = 0, $2118 = 
0, $2119 = 0, $212 = 0, $2120 = 0, $2121 = 0, $2122 = 0, $2123 = 0, $2124 = 0, 
$2125 = 0, $2126 = 0, $2127 = 0, $2128 = 0, $2129 = 0, $213 = 0;
+ var $2130 = 0, $2131 = 0, $2132 = 0, $2133 = 0, $2134 = 0, $2135 = 0, $2136 = 
0, $2137 = 0, $2138 = 0, $2139 = 0, $214 = 0, $2140 = 0, $2141 = 0, $2142 = 0, 
$2143 = 0, $2144 = 0, $2145 = 0, $2146 = 0, $2147 = 0, $2148 = 0;
+ var $2149 = 0, $215 = 0, $2150 = 0, $2151 = 0, $2152 = 0, $2153 = 0, $2154 = 
0, $2155 = 0, $2156 = 0, $2157 = 0, $2158 = 0, $2159 = 0, $216 = 0, $2160 = 0, 
$2161 = 0, $2162 = 0, $2163 = 0, $2164 = 0, $2165 = 0, $2166 = 0;
+ var $2167 = 0, $2168 = 0, $2169 = 0, $217 = 0, $2170 = 0, $2171 = 0, $2172 = 
0, $2173 = 0, $2174 = 0, $2175 = 0, $2176 = 0, $2177 = 0, $2178 = 0, $2179 = 0, 
$218 = 0, $2180 = 0, $2181 = 0, $2182 = 0, $2183 = 0, $2184 = 0;
+ var $2185 = 0, $2186 = 0, $2187 = 0, $2188 = 0, $2189 = 0, $219 = 0, $2190 = 
0, $2191 = 0, $2192 = 0, $2193 = 0, $2194 = 0, $2195 = 0, $2196 = 0, $2197 = 0, 
$2198 = 0, $2199 = 0, $22 = 0, $220 = 0, $2200 = 0, $2201 = 0;
+ var $2202 = 0, $2203 = 0, $2204 = 0, $2205 = 0, $2206 = 0, $2207 = 0, $2208 = 
0, $2209 = 0, $221 = 0, $2210 = 0, $2211 = 0, $2212 = 0, $2213 = 0, $2214 = 0, 
$2215 = 0, $2216 = 0, $2217 = 0, $2218 = 0, $2219 = 0, $222 = 0;
+ var $2220 = 0, $2221 = 0, $2222 = 0, $2223 = 0, $2224 = 0, $2225 = 0, $2226 = 
0, $2227 = 0, $2228 = 0, $2229 = 0, $223 = 0, $2230 = 0, $2231 = 0, $2232 = 0, 
$2233 = 0, $2234 = 0, $2235 = 0, $2236 = 0, $2237 = 0, $2238 = 0;
+ var $2239 = 0, $224 = 0, $2240 = 0, $2241 = 0, $2242 = 0, $2243 = 0, $2244 = 
0, $2245 = 0, $2246 = 0, $2247 = 0, $2248 = 0, $2249 = 0, $225 = 0, $2250 = 0, 
$2251 = 0, $2252 = 0, $2253 = 0, $2254 = 0, $2255 = 0, $2256 = 0;
+ var $2257 = 0, $2258 = 0, $2259 = 0, $226 = 0, $2260 = 0, $2261 = 0, $2262 = 
0, $2263 = 0, $2264 = 0, $2265 = 0, $2266 = 0, $2267 = 0, $2268 = 0, $2269 = 0, 
$227 = 0, $2270 = 0, $2271 = 0, $2272 = 0, $2273 = 0, $2274 = 0;
+ var $2275 = 0, $2276 = 0, $2277 = 0, $2278 = 0, $2279 = 0, $228 = 0, $2280 = 
0, $2281 = 0, $2282 = 0, $2283 = 0, $2284 = 0, $2285 = 0, $2286 = 0, $2287 = 0, 
$2288 = 0, $2289 = 0, $229 = 0, $2290 = 0, $2291 = 0, $2292 = 0;
+ var $2293 = 0, $2294 = 0, $2295 = 0, $2296 = 0, $2297 = 0, $2298 = 0, $2299 = 
0, $23 = 0, $230 = 0, $2300 = 0, $2301 = 0, $2302 = 0, $2303 = 0, $2304 = 0, 
$2305 = 0, $2306 = 0, $2307 = 0, $2308 = 0, $2309 = 0, $231 = 0;
+ var $2310 = 0, $2311 = 0, $2312 = 0, $2313 = 0, $2314 = 0, $2315 = 0, $2316 = 
0, $2317 = 0, $2318 = 0, $2319 = 0, $232 = 0, $2320 = 0, $2321 = 0, $2322 = 0, 
$2323 = 0, $2324 = 0, $2325 = 0, $2326 = 0, $2327 = 0, $2328 = 0;
+ var $2329 = 0, $233 = 0, $2330 = 0, $2331 = 0, $2332 = 0, $2333 = 0, $2334 = 
0, $2335 = 0, $2336 = 0, $2337 = 0, $2338 = 0, $2339 = 0, $234 = 0, $2340 = 0, 
$2341 = 0, $2342 = 0, $2343 = 0, $2344 = 0, $2345 = 0, $2346 = 0;
+ var $2347 = 0, $2348 = 0, $2349 = 0, $235 = 0, $2350 = 0, $2351 = 0, $2352 = 
0, $2353 = 0, $2354 = 0, $2355 = 0, $2356 = 0, $2357 = 0, $2358 = 0, $2359 = 0, 
$236 = 0, $2360 = 0, $2361 = 0, $2362 = 0, $2363 = 0, $2364 = 0;
+ var $2365 = 0, $2366 = 0, $2367 = 0, $2368 = 0, $2369 = 0, $237 = 0, $2370 = 
0, $2371 = 0, $2372 = 0, $2373 = 0, $2374 = 0, $2375 = 0, $2376 = 0, $2377 = 0, 
$2378 = 0, $2379 = 0, $238 = 0, $2380 = 0, $2381 = 0, $2382 = 0;
+ var $2383 = 0, $2384 = 0, $2385 = 0, $2386 = 0, $2387 = 0, $2388 = 0, $2389 = 
0, $239 = 0, $2390 = 0, $2391 = 0, $2392 = 0, $2393 = 0, $2394 = 0, $2395 = 0, 
$2396 = 0, $2397 = 0, $2398 = 0, $2399 = 0, $24 = 0, $240 = 0;
+ var $2400 = 0, $2401 = 0, $2402 = 0, $2403 = 0, $2404 = 0, $2405 = 0, $2406 = 
0, $2407 = 0, $2408 = 0, $2409 = 0, $241 = 0, $2410 = 0, $2411 = 0, $2412 = 0, 
$2413 = 0, $2414 = 0, $2415 = 0, $2416 = 0, $2417 = 0, $2418 = 0;
+ var $2419 = 0, $242 = 0, $2420 = 0, $2421 = 0, $2422 = 0, $2423 = 0, $2424 = 
0, $2425 = 0, $2426 = 0, $2427 = 0, $2428 = 0, $2429 = 0, $243 = 0, $2430 = 0, 
$2431 = 0, $2432 = 0, $2433 = 0, $2434 = 0, $2435 = 0, $2436 = 0;
+ var $2437 = 0, $2438 = 0, $2439 = 0, $244 = 0, $2440 = 0, $2441 = 0, $2442 = 
0, $2443 = 0, $2444 = 0, $2445 = 0, $2446 = 0, $2447 = 0, $2448 = 0, $2449 = 0, 
$245 = 0, $2450 = 0, $2451 = 0, $2452 = 0, $2453 = 0, $2454 = 0;
+ var $2455 = 0, $2456 = 0, $2457 = 0, $2458 = 0, $2459 = 0, $246 = 0, $2460 = 
0, $2461 = 0, $2462 = 0, $2463 = 0, $2464 = 0, $2465 = 0, $2466 = 0, $2467 = 0, 
$2468 = 0, $2469 = 0, $247 = 0, $2470 = 0, $2471 = 0, $2472 = 0;
+ var $2473 = 0, $2474 = 0, $2475 = 0, $2476 = 0, $2477 = 0, $2478 = 0, $2479 = 
0, $248 = 0, $2480 = 0, $2481 = 0, $2482 = 0, $2483 = 0, $2484 = 0, $2485 = 0, 
$2486 = 0, $2487 = 0, $2488 = 0, $2489 = 0, $249 = 0, $2490 = 0;
+ var $2491 = 0, $2492 = 0, $2493 = 0, $2494 = 0, $2495 = 0, $2496 = 0, $2497 = 
0, $2498 = 0, $2499 = 0, $25 = 0, $250 = 0, $2500 = 0, $2501 = 0, $2502 = 0, 
$2503 = 0, $2504 = 0, $2505 = 0, $2506 = 0, $2507 = 0, $2508 = 0;
+ var $2509 = 0, $251 = 0, $2510 = 0, $2511 = 0, $2512 = 0, $2513 = 0, $2514 = 
0, $2515 = 0, $2516 = 0, $2517 = 0, $2518 = 0, $2519 = 0, $252 = 0, $2520 = 0, 
$2521 = 0, $2522 = 0, $2523 = 0, $2524 = 0, $2525 = 0, $2526 = 0;
+ var $2527 = 0, $2528 = 0, $2529 = 0, $253 = 0, $2530 = 0, $2531 = 0, $2532 = 
0, $2533 = 0, $2534 = 0, $2535 = 0, $2536 = 0, $2537 = 0, $2538 = 0, $2539 = 0, 
$254 = 0, $2540 = 0, $2541 = 0, $2542 = 0, $2543 = 0, $2544 = 0;
+ var $2545 = 0, $2546 = 0, $2547 = 0, $2548 = 0, $2549 = 0, $255 = 0, $2550 = 
0, $2551 = 0, $2552 = 0, $2553 = 0, $2554 = 0, $2555 = 0, $2556 = 0, $2557 = 0, 
$2558 = 0, $2559 = 0, $256 = 0, $2560 = 0, $2561 = 0, $2562 = 0;
+ var $2563 = 0, $2564 = 0, $2565 = 0, $2566 = 0, $2567 = 0, $2568 = 0, $2569 = 
0, $257 = 0, $2570 = 0, $2571 = 0, $2572 = 0, $2573 = 0, $2574 = 0, $2575 = 0, 
$2576 = 0, $2577 = 0, $2578 = 0, $2579 = 0, $258 = 0, $2580 = 0;
+ var $2581 = 0, $2582 = 0, $2583 = 0, $2584 = 0, $2585 = 0, $2586 = 0, $2587 = 
0, $2588 = 0, $2589 = 0, $259 = 0, $2590 = 0, $2591 = 0, $2592 = 0, $2593 = 0, 
$2594 = 0, $2595 = 0, $2596 = 0, $2597 = 0, $2598 = 0, $2599 = 0;
+ var $26 = 0, $260 = 0, $2600 = 0, $2601 = 0, $2602 = 0, $2603 = 0, $2604 = 0, 
$2605 = 0, $2606 = 0, $2607 = 0, $2608 = 0, $2609 = 0, $261 = 0, $2610 = 0, 
$2611 = 0, $2612 = 0, $2613 = 0, $2614 = 0, $2615 = 0, $2616 = 0;
+ var $2617 = 0, $2618 = 0, $2619 = 0, $262 = 0, $2620 = 0, $2621 = 0, $2622 = 
0, $2623 = 0, $2624 = 0, $2625 = 0, $2626 = 0, $2627 = 0, $2628 = 0, $2629 = 0, 
$263 = 0, $2630 = 0, $2631 = 0, $2632 = 0, $2633 = 0, $2634 = 0;
+ var $2635 = 0, $2636 = 0, $2637 = 0, $2638 = 0, $2639 = 0, $264 = 0, $2640 = 
0, $2641 = 0, $2642 = 0, $2643 = 0, $2644 = 0, $2645 = 0, $2646 = 0, $2647 = 0, 
$2648 = 0, $2649 = 0, $265 = 0, $2650 = 0, $2651 = 0, $2652 = 0;
+ var $2653 = 0, $2654 = 0, $2655 = 0, $2656 = 0, $2657 = 0, $2658 = 0, $2659 = 
0, $266 = 0, $2660 = 0, $2661 = 0, $2662 = 0, $2663 = 0, $2664 = 0, $2665 = 0, 
$2666 = 0, $2667 = 0, $2668 = 0, $2669 = 0, $267 = 0, $2670 = 0;
+ var $2671 = 0, $2672 = 0, $2673 = 0, $2674 = 0, $2675 = 0, $2676 = 0, $2677 = 
0, $2678 = 0, $2679 = 0, $268 = 0, $2680 = 0, $2681 = 0, $2682 = 0, $2683 = 0, 
$2684 = 0, $2685 = 0, $2686 = 0, $2687 = 0, $2688 = 0, $2689 = 0;
+ var $269 = 0, $2690 = 0, $2691 = 0, $2692 = 0, $2693 = 0, $2694 = 0, $2695 = 
0, $2696 = 0, $2697 = 0, $2698 = 0, $2699 = 0, $27 = 0, $270 = 0, $2700 = 0, 
$2701 = 0, $2702 = 0, $2703 = 0, $2704 = 0, $2705 = 0, $2706 = 0;
+ var $2707 = 0, $2708 = 0, $2709 = 0, $271 = 0, $2710 = 0, $2711 = 0, $2712 = 
0, $2713 = 0, $2714 = 0, $2715 = 0, $2716 = 0, $2717 = 0, $2718 = 0, $2719 = 0, 
$272 = 0, $2720 = 0, $2721 = 0, $2722 = 0, $2723 = 0, $2724 = 0;
+ var $2725 = 0, $2726 = 0, $2727 = 0, $2728 = 0, $2729 = 0, $273 = 0, $2730 = 
0, $2731 = 0, $2732 = 0, $2733 = 0, $2734 = 0, $2735 = 0, $2736 = 0, $2737 = 0, 
$2738 = 0, $2739 = 0, $274 = 0, $2740 = 0, $2741 = 0, $2742 = 0;
+ var $2743 = 0, $2744 = 0, $2745 = 0, $2746 = 0, $2747 = 0, $2748 = 0, $2749 = 
0, $275 = 0, $2750 = 0, $2751 = 0, $2752 = 0, $2753 = 0, $2754 = 0, $2755 = 0, 
$2756 = 0, $2757 = 0, $2758 = 0, $2759 = 0, $276 = 0, $2760 = 0;
+ var $2761 = 0, $2762 = 0, $2763 = 0, $2764 = 0, $2765 = 0, $2766 = 0, $2767 = 
0, $2768 = 0, $2769 = 0, $277 = 0, $2770 = 0, $2771 = 0, $2772 = 0, $2773 = 0, 
$2774 = 0, $2775 = 0, $2776 = 0, $2777 = 0, $2778 = 0, $2779 = 0;
+ var $278 = 0, $2780 = 0, $2781 = 0, $2782 = 0, $2783 = 0, $2784 = 0, $2785 = 
0, $2786 = 0, $2787 = 0, $2788 = 0, $2789 = 0, $279 = 0, $2790 = 0, $2791 = 0, 
$2792 = 0, $2793 = 0, $2794 = 0, $2795 = 0, $2796 = 0, $2797 = 0;
+ var $2798 = 0, $2799 = 0, $28 = 0, $280 = 0, $2800 = 0, $2801 = 0, $2802 = 0, 
$2803 = 0, $2804 = 0, $2805 = 0, $2806 = 0, $2807 = 0, $2808 = 0, $2809 = 0, 
$281 = 0, $2810 = 0, $2811 = 0, $2812 = 0, $2813 = 0, $2814 = 0;
+ var $2815 = 0, $2816 = 0, $2817 = 0, $2818 = 0, $2819 = 0, $282 = 0, $2820 = 
0, $2821 = 0, $2822 = 0, $2823 = 0, $2824 = 0, $2825 = 0, $2826 = 0, $2827 = 0, 
$2828 = 0, $2829 = 0, $283 = 0, $2830 = 0, $2831 = 0, $2832 = 0;
+ var $2833 = 0, $2834 = 0, $2835 = 0, $2836 = 0, $2837 = 0, $2838 = 0, $2839 = 
0, $284 = 0, $2840 = 0, $2841 = 0, $2842 = 0, $2843 = 0, $2844 = 0, $2845 = 0, 
$2846 = 0, $2847 = 0, $2848 = 0, $2849 = 0, $285 = 0, $2850 = 0;
+ var $2851 = 0, $2852 = 0, $2853 = 0, $2854 = 0, $2855 = 0, $2856 = 0, $2857 = 
0, $2858 = 0, $2859 = 0, $286 = 0, $2860 = 0, $2861 = 0, $2862 = 0, $2863 = 0, 
$2864 = 0, $2865 = 0, $2866 = 0, $2867 = 0, $2868 = 0, $2869 = 0;
+ var $287 = 0, $2870 = 0, $2871 = 0, $2872 = 0, $2873 = 0, $2874 = 0, $2875 = 
0, $2876 = 0, $2877 = 0, $2878 = 0, $2879 = 0, $288 = 0, $2880 = 0, $2881 = 0, 
$2882 = 0, $2883 = 0, $2884 = 0, $2885 = 0, $2886 = 0, $2887 = 0;
+ var $2888 = 0, $2889 = 0, $289 = 0, $2890 = 0, $2891 = 0, $2892 = 0, $2893 = 
0, $2894 = 0, $2895 = 0, $2896 = 0, $2897 = 0, $2898 = 0, $2899 = 0, $29 = 0, 
$290 = 0, $2900 = 0, $2901 = 0, $2902 = 0, $2903 = 0, $2904 = 0;
+ var $2905 = 0, $2906 = 0, $2907 = 0, $2908 = 0, $2909 = 0, $291 = 0, $2910 = 
0, $2911 = 0, $2912 = 0, $2913 = 0, $2914 = 0, $2915 = 0, $2916 = 0, $2917 = 0, 
$2918 = 0, $2919 = 0, $292 = 0, $2920 = 0, $2921 = 0, $2922 = 0;
+ var $2923 = 0, $2924 = 0, $2925 = 0, $2926 = 0, $2927 = 0, $2928 = 0, $2929 = 
0, $293 = 0, $2930 = 0, $2931 = 0, $2932 = 0, $2933 = 0, $2934 = 0, $2935 = 0, 
$2936 = 0, $2937 = 0, $2938 = 0, $2939 = 0, $294 = 0, $2940 = 0;
+ var $2941 = 0, $2942 = 0, $2943 = 0, $2944 = 0, $2945 = 0, $2946 = 0, $2947 = 
0, $2948 = 0, $2949 = 0, $295 = 0, $2950 = 0, $2951 = 0, $2952 = 0, $2953 = 0, 
$2954 = 0, $2955 = 0, $2956 = 0, $2957 = 0, $2958 = 0, $2959 = 0;
+ var $296 = 0, $2960 = 0, $2961 = 0, $2962 = 0, $2963 = 0, $2964 = 0, $2965 = 
0, $2966 = 0, $2967 = 0, $2968 = 0, $2969 = 0, $297 = 0, $2970 = 0, $2971 = 0, 
$2972 = 0, $2973 = 0, $2974 = 0, $2975 = 0, $2976 = 0, $2977 = 0;
+ var $2978 = 0, $2979 = 0, $298 = 0, $2980 = 0, $2981 = 0, $2982 = 0, $2983 = 
0, $2984 = 0, $2985 = 0, $2986 = 0, $2987 = 0, $2988 = 0, $2989 = 0, $299 = 0, 
$2990 = 0, $2991 = 0, $2992 = 0, $2993 = 0, $2994 = 0, $2995 = 0;
+ var $2996 = 0, $2997 = 0, $2998 = 0, $2999 = 0, $3 = 0, $30 = 0, $300 = 0, 
$3000 = 0, $3001 = 0, $3002 = 0, $3003 = 0, $3004 = 0, $3005 = 0, $3006 = 0, 
$3007 = 0, $3008 = 0, $3009 = 0, $301 = 0, $3010 = 0, $3011 = 0;
+ var $3012 = 0, $3013 = 0, $3014 = 0, $3015 = 0, $3016 = 0, $3017 = 0, $3018 = 
0, $3019 = 0, $302 = 0, $3020 = 0, $3021 = 0, $3022 = 0, $3023 = 0, $3024 = 0, 
$3025 = 0, $3026 = 0, $3027 = 0, $3028 = 0, $3029 = 0, $303 = 0;
+ var $3030 = 0, $3031 = 0, $3032 = 0, $3033 = 0, $3034 = 0, $3035 = 0, $3036 = 
0, $3037 = 0, $3038 = 0, $3039 = 0, $304 = 0, $3040 = 0, $3041 = 0, $3042 = 0, 
$3043 = 0, $3044 = 0, $3045 = 0, $3046 = 0, $3047 = 0, $3048 = 0;
+ var $3049 = 0, $305 = 0, $3050 = 0, $3051 = 0, $3052 = 0, $3053 = 0, $3054 = 
0, $3055 = 0, $3056 = 0, $3057 = 0, $3058 = 0, $3059 = 0, $306 = 0, $3060 = 0, 
$3061 = 0, $3062 = 0, $3063 = 0, $3064 = 0, $3065 = 0, $3066 = 0;
+ var $3067 = 0, $3068 = 0, $3069 = 0, $307 = 0, $3070 = 0, $3071 = 0, $3072 = 
0, $3073 = 0, $3074 = 0, $3075 = 0, $3076 = 0, $3077 = 0, $3078 = 0, $3079 = 0, 
$308 = 0, $3080 = 0, $3081 = 0, $3082 = 0, $3083 = 0, $3084 = 0;
+ var $3085 = 0, $3086 = 0, $3087 = 0, $3088 = 0, $3089 = 0, $309 = 0, $3090 = 
0, $3091 = 0, $3092 = 0, $3093 = 0, $3094 = 0, $3095 = 0, $3096 = 0, $3097 = 0, 
$3098 = 0, $3099 = 0, $31 = 0, $310 = 0, $3100 = 0, $3101 = 0;
+ var $3102 = 0, $3103 = 0, $3104 = 0, $3105 = 0, $3106 = 0, $3107 = 0, $3108 = 
0, $3109 = 0, $311 = 0, $3110 = 0, $3111 = 0, $3112 = 0, $3113 = 0, $3114 = 0, 
$3115 = 0, $3116 = 0, $3117 = 0, $3118 = 0, $3119 = 0, $312 = 0;
+ var $3120 = 0, $3121 = 0, $3122 = 0, $3123 = 0, $3124 = 0, $3125 = 0, $3126 = 
0, $3127 = 0, $3128 = 0, $3129 = 0, $313 = 0, $3130 = 0, $3131 = 0, $3132 = 0, 
$3133 = 0, $3134 = 0, $3135 = 0, $3136 = 0, $3137 = 0, $3138 = 0;
+ var $3139 = 0, $314 = 0, $3140 = 0, $3141 = 0, $3142 = 0, $3143 = 0, $3144 = 
0, $3145 = 0, $3146 = 0, $3147 = 0, $3148 = 0, $3149 = 0, $315 = 0, $3150 = 0, 
$3151 = 0, $3152 = 0, $3153 = 0, $3154 = 0, $3155 = 0, $3156 = 0;
+ var $3157 = 0, $3158 = 0, $3159 = 0, $316 = 0, $3160 = 0, $3161 = 0, $3162 = 
0, $3163 = 0, $3164 = 0, $3165 = 0, $3166 = 0, $3167 = 0, $3168 = 0, $3169 = 0, 
$317 = 0, $3170 = 0, $3171 = 0, $3172 = 0, $3173 = 0, $3174 = 0;
+ var $3175 = 0, $3176 = 0, $3177 = 0, $3178 = 0, $3179 = 0, $318 = 0, $3180 = 
0, $3181 = 0, $3182 = 0, $3183 = 0, $3184 = 0, $3185 = 0, $3186 = 0, $3187 = 0, 
$3188 = 0, $3189 = 0, $319 = 0, $3190 = 0, $3191 = 0, $3192 = 0;
+ var $3193 = 0, $3194 = 0, $3195 = 0, $3196 = 0, $3197 = 0, $3198 = 0, $3199 = 
0, $32 = 0, $320 = 0, $3200 = 0, $3201 = 0, $3202 = 0, $3203 = 0, $3204 = 0, 
$3205 = 0, $3206 = 0, $3207 = 0, $3208 = 0, $3209 = 0, $321 = 0;
+ var $3210 = 0, $3211 = 0, $3212 = 0, $3213 = 0, $3214 = 0, $3215 = 0, $3216 = 
0, $3217 = 0, $3218 = 0, $3219 = 0, $322 = 0, $3220 = 0, $3221 = 0, $3222 = 0, 
$3223 = 0, $3224 = 0, $3225 = 0, $3226 = 0, $3227 = 0, $3228 = 0;
+ var $3229 = 0, $323 = 0, $3230 = 0, $3231 = 0, $3232 = 0, $3233 = 0, $3234 = 
0, $3235 = 0, $3236 = 0, $3237 = 0, $3238 = 0, $3239 = 0, $324 = 0, $3240 = 0, 
$3241 = 0, $3242 = 0, $3243 = 0, $3244 = 0, $3245 = 0, $3246 = 0;
+ var $3247 = 0, $3248 = 0, $3249 = 0, $325 = 0, $3250 = 0, $3251 = 0, $3252 = 
0, $3253 = 0, $3254 = 0, $3255 = 0, $3256 = 0, $3257 = 0, $3258 = 0, $3259 = 0, 
$326 = 0, $3260 = 0, $3261 = 0, $3262 = 0, $3263 = 0, $3264 = 0;
+ var $3265 = 0, $3266 = 0, $3267 = 0, $3268 = 0, $3269 = 0, $327 = 0, $3270 = 
0, $3271 = 0, $3272 = 0, $3273 = 0, $3274 = 0, $3275 = 0, $3276 = 0, $3277 = 0, 
$3278 = 0, $3279 = 0, $328 = 0, $3280 = 0, $3281 = 0, $3282 = 0;
+ var $3283 = 0, $3284 = 0, $3285 = 0, $3286 = 0, $3287 = 0, $3288 = 0, $3289 = 
0, $329 = 0, $3290 = 0, $3291 = 0, $3292 = 0, $3293 = 0, $3294 = 0, $3295 = 0, 
$3296 = 0, $3297 = 0, $3298 = 0, $3299 = 0, $33 = 0, $330 = 0;
+ var $3300 = 0, $3301 = 0, $3302 = 0, $3303 = 0, $3304 = 0, $3305 = 0, $3306 = 
0, $3307 = 0, $3308 = 0, $3309 = 0, $331 = 0, $3310 = 0, $3311 = 0, $3312 = 0, 
$3313 = 0, $3314 = 0, $3315 = 0, $3316 = 0, $3317 = 0, $3318 = 0;
+ var $3319 = 0, $332 = 0, $3320 = 0, $3321 = 0, $3322 = 0, $3323 = 0, $3324 = 
0, $3325 = 0, $3326 = 0, $3327 = 0, $3328 = 0, $3329 = 0, $333 = 0, $3330 = 0, 
$3331 = 0, $3332 = 0, $3333 = 0, $3334 = 0, $3335 = 0, $3336 = 0;
+ var $3337 = 0, $3338 = 0, $3339 = 0, $334 = 0, $3340 = 0, $3341 = 0, $3342 = 
0, $3343 = 0, $3344 = 0, $3345 = 0, $3346 = 0, $3347 = 0, $3348 = 0, $3349 = 0, 
$335 = 0, $3350 = 0, $3351 = 0, $3352 = 0, $3353 = 0, $3354 = 0;
+ var $3355 = 0, $3356 = 0, $3357 = 0, $3358 = 0, $3359 = 0, $336 = 0, $3360 = 
0, $3361 = 0, $3362 = 0, $3363 = 0, $3364 = 0, $3365 = 0, $3366 = 0, $3367 = 0, 
$3368 = 0, $3369 = 0, $337 = 0, $3370 = 0, $3371 = 0, $3372 = 0;
+ var $3373 = 0, $3374 = 0, $3375 = 0, $3376 = 0, $3377 = 0, $3378 = 0, $3379 = 
0, $338 = 0, $3380 = 0, $3381 = 0, $3382 = 0, $3383 = 0, $3384 = 0, $3385 = 0, 
$3386 = 0, $3387 = 0, $3388 = 0, $3389 = 0, $339 = 0, $3390 = 0;
+ var $3391 = 0, $3392 = 0, $3393 = 0, $3394 = 0, $3395 = 0, $3396 = 0, $3397 = 
0, $3398 = 0, $3399 = 0, $34 = 0, $340 = 0, $3400 = 0, $3401 = 0, $3402 = 0, 
$3403 = 0, $3404 = 0, $3405 = 0, $3406 = 0, $3407 = 0, $3408 = 0;
+ var $3409 = 0, $341 = 0, $3410 = 0, $3411 = 0, $3412 = 0, $3413 = 0, $3414 = 
0, $3415 = 0, $3416 = 0, $3417 = 0, $3418 = 0, $3419 = 0, $342 = 0, $3420 = 0, 
$3421 = 0, $3422 = 0, $3423 = 0, $3424 = 0, $3425 = 0, $3426 = 0;
+ var $3427 = 0, $3428 = 0, $3429 = 0, $343 = 0, $3430 = 0, $3431 = 0, $3432 = 
0, $3433 = 0, $3434 = 0, $3435 = 0, $3436 = 0, $3437 = 0, $3438 = 0, $3439 = 0, 
$344 = 0, $3440 = 0, $3441 = 0, $3442 = 0, $3443 = 0, $3444 = 0;
+ var $3445 = 0, $3446 = 0, $3447 = 0, $3448 = 0, $3449 = 0, $345 = 0, $3450 = 
0, $3451 = 0, $3452 = 0, $3453 = 0, $3454 = 0, $3455 = 0, $3456 = 0, $3457 = 0, 
$3458 = 0, $3459 = 0, $346 = 0, $3460 = 0, $3461 = 0, $3462 = 0;
+ var $3463 = 0, $3464 = 0, $3465 = 0, $3466 = 0, $3467 = 0, $3468 = 0, $3469 = 
0, $347 = 0, $3470 = 0, $3471 = 0, $3472 = 0, $3473 = 0, $3474 = 0, $3475 = 0, 
$3476 = 0, $3477 = 0, $3478 = 0, $3479 = 0, $348 = 0, $3480 = 0;
+ var $3481 = 0, $3482 = 0, $3483 = 0, $3484 = 0, $3485 = 0, $3486 = 0, $3487 = 
0, $3488 = 0, $3489 = 0, $349 = 0, $3490 = 0, $3491 = 0, $3492 = 0, $3493 = 0, 
$3494 = 0, $3495 = 0, $3496 = 0, $3497 = 0, $3498 = 0, $3499 = 0;
+ var $35 = 0, $350 = 0, $3500 = 0, $3501 = 0, $3502 = 0, $3503 = 0, $3504 = 0, 
$3505 = 0, $3506 = 0, $3507 = 0, $3508 = 0, $3509 = 0, $351 = 0, $3510 = 0, 
$3511 = 0, $3512 = 0, $3513 = 0, $3514 = 0, $3515 = 0, $3516 = 0;
+ var $3517 = 0, $3518 = 0, $3519 = 0, $352 = 0, $3520 = 0, $3521 = 0, $3522 = 
0, $3523 = 0, $3524 = 0, $3525 = 0, $3526 = 0, $3527 = 0, $3528 = 0, $3529 = 0, 
$353 = 0, $3530 = 0, $3531 = 0, $3532 = 0, $3533 = 0, $3534 = 0;
+ var $3535 = 0, $3536 = 0, $3537 = 0, $3538 = 0, $3539 = 0, $354 = 0, $3540 = 
0, $3541 = 0, $3542 = 0, $3543 = 0, $3544 = 0, $3545 = 0, $3546 = 0, $3547 = 0, 
$3548 = 0, $3549 = 0, $355 = 0, $3550 = 0, $3551 = 0, $3552 = 0;
+ var $3553 = 0, $3554 = 0, $3555 = 0, $3556 = 0, $3557 = 0, $3558 = 0, $3559 = 
0, $356 = 0, $3560 = 0, $3561 = 0, $3562 = 0, $3563 = 0, $3564 = 0, $3565 = 0, 
$3566 = 0, $3567 = 0, $3568 = 0, $3569 = 0, $357 = 0, $3570 = 0;
+ var $3571 = 0, $3572 = 0, $3573 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, 
$361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, 
$369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0;
+ var $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 
= 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 
= 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0;
+ var $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, 
$398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, 
$404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0;
+ var $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 
= 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 
= 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0;
+ var $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 
= 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 
= 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0;
+ var $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 
= 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 
= 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0;
+ var $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 
= 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 
= 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0;
+ var $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, 
$488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, 
$495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0;
+ var $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 
0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 
0, $513 = 0, $514 = 0, $515 = 0, $516 = 0;
+ var $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 
= 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 
= 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 
= 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 
= 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0;
+ var $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 
= 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 
= 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0;
+ var $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, 
$668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, 
$675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0;
+ var $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 
= 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 
= 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0;
+ var $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 
0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 
0, $711 = 0, $712 = 0, $713 = 0, $714 = 0;
+ var $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 
= 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 
= 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0;
+ var $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 
= 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 
= 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0;
+ var $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, 
$758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, 
$765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0;
+ var $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 
= 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 
= 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0;
+ var $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 
= 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 
0, $801 = 0, $802 = 0, $803 = 0, $804 = 0;
+ var $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 
= 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 
= 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0;
+ var $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 
= 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 
= 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0;
+ var $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, 
$848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, 
$855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0;
+ var $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 
= 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 
= 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0;
+ var $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 
= 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 
= 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0;
+ var $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 
0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 
0, $91 = 0, $910 = 0, $911 = 0, $912 = 0;
+ var $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 
= 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 
= 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0;
+ var $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, 
$938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, 
$945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0;
+ var $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 
= 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 
= 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0;
+ var $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 
= 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 
= 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0;
+ var $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 
= 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, 
$exitcond$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(128|0);
+ $3 = sp;
+ $4 = ((($0)) + 160|0);
+ $5 = ((($0)) + 168|0);
+ $6 = ((($0)) + 176|0);
+ $7 = ((($0)) + 184|0);
+ $8 = ((($0)) + 192|0);
+ $9 = ((($0)) + 200|0);
+ $10 = ((($0)) + 208|0);
+ $11 = ((($0)) + 216|0);
+ $12 = ((($3)) + 112|0);
+ $13 = ((($3)) + 72|0);
+ $14 = ((($3)) + 8|0);
+ $15 = ((($3)) + 120|0);
+ $16 = ((($3)) + 80|0);
+ $17 = ((($3)) + 16|0);
+ $18 = ((($3)) + 88|0);
+ $19 = ((($3)) + 24|0);
+ $20 = ((($3)) + 96|0);
+ $21 = ((($3)) + 32|0);
+ $22 = ((($3)) + 104|0);
+ $23 = ((($3)) + 40|0);
+ $24 = ((($3)) + 48|0);
+ $25 = ((($3)) + 56|0);
+ $26 = ((($3)) + 64|0);
+ $27 = $4;
+ $28 = $27;
+ $29 = HEAP32[$28>>2]|0;
+ $30 = (($27) + 4)|0;
+ $31 = $30;
+ $32 = HEAP32[$31>>2]|0;
+ $33 = $5;
+ $34 = $33;
+ $35 = HEAP32[$34>>2]|0;
+ $36 = (($33) + 4)|0;
+ $37 = $36;
+ $38 = HEAP32[$37>>2]|0;
+ $39 = $6;
+ $40 = $39;
+ $41 = HEAP32[$40>>2]|0;
+ $42 = (($39) + 4)|0;
+ $43 = $42;
+ $44 = HEAP32[$43>>2]|0;
+ $45 = $7;
+ $46 = $45;
+ $47 = HEAP32[$46>>2]|0;
+ $48 = (($45) + 4)|0;
+ $49 = $48;
+ $50 = HEAP32[$49>>2]|0;
+ $51 = $8;
+ $52 = $51;
+ $53 = HEAP32[$52>>2]|0;
+ $54 = (($51) + 4)|0;
+ $55 = $54;
+ $56 = HEAP32[$55>>2]|0;
+ $57 = $9;
+ $58 = $57;
+ $59 = HEAP32[$58>>2]|0;
+ $60 = (($57) + 4)|0;
+ $61 = $60;
+ $62 = HEAP32[$61>>2]|0;
+ $63 = $10;
+ $64 = $63;
+ $65 = HEAP32[$64>>2]|0;
+ $66 = (($63) + 4)|0;
+ $67 = $66;
+ $68 = HEAP32[$67>>2]|0;
+ $69 = $11;
+ $70 = $69;
+ $71 = HEAP32[$70>>2]|0;
+ $72 = (($69) + 4)|0;
+ $73 = $72;
+ $74 = HEAP32[$73>>2]|0;
+ $$0 = $1;$$08 = $2;$3501 = $29;$3502 = $32;$3513 = $35;$3514 = $38;$3521 = 
$41;$3522 = $44;$3529 = $47;$3530 = $50;$3537 = $53;$3538 = $56;$3547 = 
$59;$3548 = $62;$3555 = $65;$3556 = $68;$3563 = $71;$3564 = $74;
+ while(1) {
+  $$051156$i = 0;
+  while(1) {
+   $75 = $$051156$i << 3;
+   $76 = (($$0) + ($75)|0);
+   $77 = HEAP8[$76>>0]|0;
+   $78 = $77&255;
+   $79 = (_bitshift64Shl(($78|0),0,56)|0);
+   $80 = tempRet0;
+   $81 = ((($76)) + 1|0);
+   $82 = HEAP8[$81>>0]|0;
+   $83 = $82&255;
+   $84 = (_bitshift64Shl(($83|0),0,48)|0);
+   $85 = tempRet0;
+   $86 = $84 | $79;
+   $87 = $85 | $80;
+   $88 = ((($76)) + 2|0);
+   $89 = HEAP8[$88>>0]|0;
+   $90 = $89&255;
+   $91 = (_bitshift64Shl(($90|0),0,40)|0);
+   $92 = tempRet0;
+   $93 = $86 | $91;
+   $94 = $87 | $92;
+   $95 = ((($76)) + 3|0);
+   $96 = HEAP8[$95>>0]|0;
+   $97 = $96&255;
+   $98 = $94 | $97;
+   $99 = ((($76)) + 4|0);
+   $100 = HEAP8[$99>>0]|0;
+   $101 = $100&255;
+   $102 = (_bitshift64Shl(($101|0),0,24)|0);
+   $103 = tempRet0;
+   $104 = $93 | $102;
+   $105 = $98 | $103;
+   $106 = ((($76)) + 5|0);
+   $107 = HEAP8[$106>>0]|0;
+   $108 = $107&255;
+   $109 = (_bitshift64Shl(($108|0),0,16)|0);
+   $110 = tempRet0;
+   $111 = $104 | $109;
+   $112 = $105 | $110;
+   $113 = ((($76)) + 6|0);
+   $114 = HEAP8[$113>>0]|0;
+   $115 = $114&255;
+   $116 = (_bitshift64Shl(($115|0),0,8)|0);
+   $117 = tempRet0;
+   $118 = $111 | $116;
+   $119 = $112 | $117;
+   $120 = ((($76)) + 7|0);
+   $121 = HEAP8[$120>>0]|0;
+   $122 = $121&255;
+   $123 = $118 | $122;
+   $124 = (($3) + ($$051156$i<<3)|0);
+   $125 = $124;
+   $126 = $125;
+   HEAP32[$126>>2] = $123;
+   $127 = (($125) + 4)|0;
+   $128 = $127;
+   HEAP32[$128>>2] = $119;
+   $129 = (($$051156$i) + 1)|0;
+   $exitcond$i = ($129|0)==(16);
+   if ($exitcond$i) {
+    break;
+   } else {
+    $$051156$i = $129;
+   }
+  }
+  $130 = $3;
+  $131 = $130;
+  $132 = HEAP32[$131>>2]|0;
+  $133 = (($130) + 4)|0;
+  $134 = $133;
+  $135 = HEAP32[$134>>2]|0;
+  $136 = $12;
+  $137 = $136;
+  $138 = HEAP32[$137>>2]|0;
+  $139 = (($136) + 4)|0;
+  $140 = $139;
+  $141 = HEAP32[$140>>2]|0;
+  $142 = $13;
+  $143 = $142;
+  $144 = HEAP32[$143>>2]|0;
+  $145 = (($142) + 4)|0;
+  $146 = $145;
+  $147 = HEAP32[$146>>2]|0;
+  $148 = $14;
+  $149 = $148;
+  $150 = HEAP32[$149>>2]|0;
+  $151 = (($148) + 4)|0;
+  $152 = $151;
+  $153 = HEAP32[$152>>2]|0;
+  $154 = $15;
+  $155 = $154;
+  $156 = HEAP32[$155>>2]|0;
+  $157 = (($154) + 4)|0;
+  $158 = $157;
+  $159 = HEAP32[$158>>2]|0;
+  $160 = $16;
+  $161 = $160;
+  $162 = HEAP32[$161>>2]|0;
+  $163 = (($160) + 4)|0;
+  $164 = $163;
+  $165 = HEAP32[$164>>2]|0;
+  $166 = $17;
+  $167 = $166;
+  $168 = HEAP32[$167>>2]|0;
+  $169 = (($166) + 4)|0;
+  $170 = $169;
+  $171 = HEAP32[$170>>2]|0;
+  $172 = $18;
+  $173 = $172;
+  $174 = HEAP32[$173>>2]|0;
+  $175 = (($172) + 4)|0;
+  $176 = $175;
+  $177 = HEAP32[$176>>2]|0;
+  $178 = $19;
+  $179 = $178;
+  $180 = HEAP32[$179>>2]|0;
+  $181 = (($178) + 4)|0;
+  $182 = $181;
+  $183 = HEAP32[$182>>2]|0;
+  $184 = $20;
+  $185 = $184;
+  $186 = HEAP32[$185>>2]|0;
+  $187 = (($184) + 4)|0;
+  $188 = $187;
+  $189 = HEAP32[$188>>2]|0;
+  $190 = $21;
+  $191 = $190;
+  $192 = HEAP32[$191>>2]|0;
+  $193 = (($190) + 4)|0;
+  $194 = $193;
+  $195 = HEAP32[$194>>2]|0;
+  $196 = $22;
+  $197 = $196;
+  $198 = HEAP32[$197>>2]|0;
+  $199 = (($196) + 4)|0;
+  $200 = $199;
+  $201 = HEAP32[$200>>2]|0;
+  $202 = $23;
+  $203 = $202;
+  $204 = HEAP32[$203>>2]|0;
+  $205 = (($202) + 4)|0;
+  $206 = $205;
+  $207 = HEAP32[$206>>2]|0;
+  $208 = $24;
+  $209 = $208;
+  $210 = HEAP32[$209>>2]|0;
+  $211 = (($208) + 4)|0;
+  $212 = $211;
+  $213 = HEAP32[$212>>2]|0;
+  $214 = $25;
+  $215 = $214;
+  $216 = HEAP32[$215>>2]|0;
+  $217 = (($214) + 4)|0;
+  $218 = $217;
+  $219 = HEAP32[$218>>2]|0;
+  $220 = $26;
+  $221 = $220;
+  $222 = HEAP32[$221>>2]|0;
+  $223 = (($220) + 4)|0;
+  $224 = $223;
+  $225 = HEAP32[$224>>2]|0;
+  $$151221$i = 0;$1077 = $216;$1078 = $219;$1203 = $222;$1204 = $225;$226 = 
$3537;$227 = $3538;$251 = $3547;$253 = $3548;$257 = $3555;$259 = $3556;$269 = 
$3563;$270 = $3564;$271 = $132;$272 = $135;$281 = $138;$282 = $141;$301 = 
$150;$302 = $153;$321 = $144;$322 = $147;$329 = $3501;$330 = $3502;$354 = 
$3521;$355 = $3513;$357 = $3522;$358 = $3514;$367 = $3529;$368 = $3530;$419 = 
$156;$420 = $159;$439 = $168;$440 = $171;$459 = $162;$460 = $165;$567 = 
$180;$568 = $183;$587 = $174;$588 = $177 [...]
+  while(1) {
+   $228 = (_bitshift64Lshr(($226|0),($227|0),14)|0);
+   $229 = tempRet0;
+   $230 = (_bitshift64Shl(($226|0),($227|0),50)|0);
+   $231 = tempRet0;
+   $232 = $230 | $228;
+   $233 = $231 | $229;
+   $234 = (_bitshift64Lshr(($226|0),($227|0),18)|0);
+   $235 = tempRet0;
+   $236 = (_bitshift64Shl(($226|0),($227|0),46)|0);
+   $237 = tempRet0;
+   $238 = $236 | $234;
+   $239 = $237 | $235;
+   $240 = $232 ^ $238;
+   $241 = $233 ^ $239;
+   $242 = (_bitshift64Lshr(($226|0),($227|0),41)|0);
+   $243 = tempRet0;
+   $244 = (_bitshift64Shl(($226|0),($227|0),23)|0);
+   $245 = tempRet0;
+   $246 = $244 | $242;
+   $247 = $245 | $243;
+   $248 = $240 ^ $246;
+   $249 = $241 ^ $247;
+   $250 = $226 & $251;
+   $252 = $227 & $253;
+   $254 = $226 ^ -1;
+   $255 = $227 ^ -1;
+   $256 = $257 & $254;
+   $258 = $259 & $255;
+   $260 = $256 ^ $250;
+   $261 = $258 ^ $252;
+   $262 = (8128 + ($$151221$i<<3)|0);
+   $263 = $262;
+   $264 = $263;
+   $265 = HEAP32[$264>>2]|0;
+   $266 = (($263) + 4)|0;
+   $267 = $266;
+   $268 = HEAP32[$267>>2]|0;
+   $273 = (_i64Add(($269|0),($270|0),($271|0),($272|0))|0);
+   $274 = tempRet0;
+   $275 = (_i64Add(($273|0),($274|0),($265|0),($268|0))|0);
+   $276 = tempRet0;
+   $277 = (_i64Add(($275|0),($276|0),($260|0),($261|0))|0);
+   $278 = tempRet0;
+   $279 = (_i64Add(($277|0),($278|0),($248|0),($249|0))|0);
+   $280 = tempRet0;
+   $283 = (_bitshift64Lshr(($281|0),($282|0),19)|0);
+   $284 = tempRet0;
+   $285 = (_bitshift64Shl(($281|0),($282|0),45)|0);
+   $286 = tempRet0;
+   $287 = $285 | $283;
+   $288 = $286 | $284;
+   $289 = (_bitshift64Lshr(($281|0),($282|0),61)|0);
+   $290 = tempRet0;
+   $291 = (_bitshift64Shl(($281|0),($282|0),3)|0);
+   $292 = tempRet0;
+   $293 = $291 | $289;
+   $294 = $292 | $290;
+   $295 = (_bitshift64Lshr(($281|0),($282|0),6)|0);
+   $296 = tempRet0;
+   $297 = $293 ^ $295;
+   $298 = $294 ^ $296;
+   $299 = $297 ^ $287;
+   $300 = $298 ^ $288;
+   $303 = (_bitshift64Lshr(($301|0),($302|0),1)|0);
+   $304 = tempRet0;
+   $305 = (_bitshift64Shl(($301|0),($302|0),63)|0);
+   $306 = tempRet0;
+   $307 = $305 | $303;
+   $308 = $306 | $304;
+   $309 = (_bitshift64Lshr(($301|0),($302|0),8)|0);
+   $310 = tempRet0;
+   $311 = (_bitshift64Shl(($301|0),($302|0),56)|0);
+   $312 = tempRet0;
+   $313 = $311 | $309;
+   $314 = $312 | $310;
+   $315 = (_bitshift64Lshr(($301|0),($302|0),7)|0);
+   $316 = tempRet0;
+   $317 = $313 ^ $315;
+   $318 = $314 ^ $316;
+   $319 = $317 ^ $307;
+   $320 = $318 ^ $308;
+   $323 = (_i64Add(($271|0),($272|0),($321|0),($322|0))|0);
+   $324 = tempRet0;
+   $325 = (_i64Add(($323|0),($324|0),($319|0),($320|0))|0);
+   $326 = tempRet0;
+   $327 = (_i64Add(($325|0),($326|0),($299|0),($300|0))|0);
+   $328 = tempRet0;
+   $331 = (_bitshift64Lshr(($329|0),($330|0),28)|0);
+   $332 = tempRet0;
+   $333 = (_bitshift64Shl(($329|0),($330|0),36)|0);
+   $334 = tempRet0;
+   $335 = $333 | $331;
+   $336 = $334 | $332;
+   $337 = (_bitshift64Lshr(($329|0),($330|0),34)|0);
+   $338 = tempRet0;
+   $339 = (_bitshift64Shl(($329|0),($330|0),30)|0);
+   $340 = tempRet0;
+   $341 = $339 | $337;
+   $342 = $340 | $338;
+   $343 = $335 ^ $341;
+   $344 = $336 ^ $342;
+   $345 = (_bitshift64Lshr(($329|0),($330|0),39)|0);
+   $346 = tempRet0;
+   $347 = (_bitshift64Shl(($329|0),($330|0),25)|0);
+   $348 = tempRet0;
+   $349 = $347 | $345;
+   $350 = $348 | $346;
+   $351 = $343 ^ $349;
+   $352 = $344 ^ $350;
+   $353 = $354 ^ $355;
+   $356 = $357 ^ $358;
+   $359 = $353 & $329;
+   $360 = $356 & $330;
+   $361 = $354 & $355;
+   $362 = $357 & $358;
+   $363 = $359 ^ $361;
+   $364 = $360 ^ $362;
+   $365 = (_i64Add(($363|0),($364|0),($351|0),($352|0))|0);
+   $366 = tempRet0;
+   $369 = (_i64Add(($279|0),($280|0),($367|0),($368|0))|0);
+   $370 = tempRet0;
+   $371 = (_i64Add(($365|0),($366|0),($279|0),($280|0))|0);
+   $372 = tempRet0;
+   $373 = (_bitshift64Lshr(($369|0),($370|0),14)|0);
+   $374 = tempRet0;
+   $375 = (_bitshift64Shl(($369|0),($370|0),50)|0);
+   $376 = tempRet0;
+   $377 = $375 | $373;
+   $378 = $376 | $374;
+   $379 = (_bitshift64Lshr(($369|0),($370|0),18)|0);
+   $380 = tempRet0;
+   $381 = (_bitshift64Shl(($369|0),($370|0),46)|0);
+   $382 = tempRet0;
+   $383 = $381 | $379;
+   $384 = $382 | $380;
+   $385 = $377 ^ $383;
+   $386 = $378 ^ $384;
+   $387 = (_bitshift64Lshr(($369|0),($370|0),41)|0);
+   $388 = tempRet0;
+   $389 = (_bitshift64Shl(($369|0),($370|0),23)|0);
+   $390 = tempRet0;
+   $391 = $389 | $387;
+   $392 = $390 | $388;
+   $393 = $385 ^ $391;
+   $394 = $386 ^ $392;
+   $395 = $369 & $226;
+   $396 = $370 & $227;
+   $397 = $369 ^ -1;
+   $398 = $370 ^ -1;
+   $399 = $251 & $397;
+   $400 = $253 & $398;
+   $401 = $399 ^ $395;
+   $402 = $400 ^ $396;
+   $403 = $$151221$i | 1;
+   $404 = (8128 + ($403<<3)|0);
+   $405 = $404;
+   $406 = $405;
+   $407 = HEAP32[$406>>2]|0;
+   $408 = (($405) + 4)|0;
+   $409 = $408;
+   $410 = HEAP32[$409>>2]|0;
+   $411 = (_i64Add(($257|0),($259|0),($301|0),($302|0))|0);
+   $412 = tempRet0;
+   $413 = (_i64Add(($411|0),($412|0),($407|0),($410|0))|0);
+   $414 = tempRet0;
+   $415 = (_i64Add(($413|0),($414|0),($401|0),($402|0))|0);
+   $416 = tempRet0;
+   $417 = (_i64Add(($415|0),($416|0),($393|0),($394|0))|0);
+   $418 = tempRet0;
+   $421 = (_bitshift64Lshr(($419|0),($420|0),19)|0);
+   $422 = tempRet0;
+   $423 = (_bitshift64Shl(($419|0),($420|0),45)|0);
+   $424 = tempRet0;
+   $425 = $423 | $421;
+   $426 = $424 | $422;
+   $427 = (_bitshift64Lshr(($419|0),($420|0),61)|0);
+   $428 = tempRet0;
+   $429 = (_bitshift64Shl(($419|0),($420|0),3)|0);
+   $430 = tempRet0;
+   $431 = $429 | $427;
+   $432 = $430 | $428;
+   $433 = (_bitshift64Lshr(($419|0),($420|0),6)|0);
+   $434 = tempRet0;
+   $435 = $431 ^ $433;
+   $436 = $432 ^ $434;
+   $437 = $435 ^ $425;
+   $438 = $436 ^ $426;
+   $441 = (_bitshift64Lshr(($439|0),($440|0),1)|0);
+   $442 = tempRet0;
+   $443 = (_bitshift64Shl(($439|0),($440|0),63)|0);
+   $444 = tempRet0;
+   $445 = $443 | $441;
+   $446 = $444 | $442;
+   $447 = (_bitshift64Lshr(($439|0),($440|0),8)|0);
+   $448 = tempRet0;
+   $449 = (_bitshift64Shl(($439|0),($440|0),56)|0);
+   $450 = tempRet0;
+   $451 = $449 | $447;
+   $452 = $450 | $448;
+   $453 = (_bitshift64Lshr(($439|0),($440|0),7)|0);
+   $454 = tempRet0;
+   $455 = $451 ^ $453;
+   $456 = $452 ^ $454;
+   $457 = $455 ^ $445;
+   $458 = $456 ^ $446;
+   $461 = (_i64Add(($301|0),($302|0),($459|0),($460|0))|0);
+   $462 = tempRet0;
+   $463 = (_i64Add(($461|0),($462|0),($457|0),($458|0))|0);
+   $464 = tempRet0;
+   $465 = (_i64Add(($463|0),($464|0),($437|0),($438|0))|0);
+   $466 = tempRet0;
+   $467 = (_bitshift64Lshr(($371|0),($372|0),28)|0);
+   $468 = tempRet0;
+   $469 = (_bitshift64Shl(($371|0),($372|0),36)|0);
+   $470 = tempRet0;
+   $471 = $469 | $467;
+   $472 = $470 | $468;
+   $473 = (_bitshift64Lshr(($371|0),($372|0),34)|0);
+   $474 = tempRet0;
+   $475 = (_bitshift64Shl(($371|0),($372|0),30)|0);
+   $476 = tempRet0;
+   $477 = $475 | $473;
+   $478 = $476 | $474;
+   $479 = $471 ^ $477;
+   $480 = $472 ^ $478;
+   $481 = (_bitshift64Lshr(($371|0),($372|0),39)|0);
+   $482 = tempRet0;
+   $483 = (_bitshift64Shl(($371|0),($372|0),25)|0);
+   $484 = tempRet0;
+   $485 = $483 | $481;
+   $486 = $484 | $482;
+   $487 = $479 ^ $485;
+   $488 = $480 ^ $486;
+   $489 = $355 ^ $329;
+   $490 = $358 ^ $330;
+   $491 = $371 & $489;
+   $492 = $372 & $490;
+   $493 = $355 & $329;
+   $494 = $358 & $330;
+   $495 = $491 ^ $493;
+   $496 = $492 ^ $494;
+   $497 = (_i64Add(($487|0),($488|0),($495|0),($496|0))|0);
+   $498 = tempRet0;
+   $499 = (_i64Add(($417|0),($418|0),($354|0),($357|0))|0);
+   $500 = tempRet0;
+   $501 = (_i64Add(($497|0),($498|0),($417|0),($418|0))|0);
+   $502 = tempRet0;
+   $503 = (_bitshift64Lshr(($499|0),($500|0),14)|0);
+   $504 = tempRet0;
+   $505 = (_bitshift64Shl(($499|0),($500|0),50)|0);
+   $506 = tempRet0;
+   $507 = $505 | $503;
+   $508 = $506 | $504;
+   $509 = (_bitshift64Lshr(($499|0),($500|0),18)|0);
+   $510 = tempRet0;
+   $511 = (_bitshift64Shl(($499|0),($500|0),46)|0);
+   $512 = tempRet0;
+   $513 = $511 | $509;
+   $514 = $512 | $510;
+   $515 = $507 ^ $513;
+   $516 = $508 ^ $514;
+   $517 = (_bitshift64Lshr(($499|0),($500|0),41)|0);
+   $518 = tempRet0;
+   $519 = (_bitshift64Shl(($499|0),($500|0),23)|0);
+   $520 = tempRet0;
+   $521 = $519 | $517;
+   $522 = $520 | $518;
+   $523 = $515 ^ $521;
+   $524 = $516 ^ $522;
+   $525 = $499 & $369;
+   $526 = $500 & $370;
+   $527 = $499 ^ -1;
+   $528 = $500 ^ -1;
+   $529 = $226 & $527;
+   $530 = $227 & $528;
+   $531 = $529 ^ $525;
+   $532 = $530 ^ $526;
+   $533 = $$151221$i | 2;
+   $534 = (8128 + ($533<<3)|0);
+   $535 = $534;
+   $536 = $535;
+   $537 = HEAP32[$536>>2]|0;
+   $538 = (($535) + 4)|0;
+   $539 = $538;
+   $540 = HEAP32[$539>>2]|0;
+   $541 = (_i64Add(($251|0),($253|0),($439|0),($440|0))|0);
+   $542 = tempRet0;
+   $543 = (_i64Add(($541|0),($542|0),($537|0),($540|0))|0);
+   $544 = tempRet0;
+   $545 = (_i64Add(($543|0),($544|0),($531|0),($532|0))|0);
+   $546 = tempRet0;
+   $547 = (_i64Add(($545|0),($546|0),($523|0),($524|0))|0);
+   $548 = tempRet0;
+   $549 = (_bitshift64Lshr(($327|0),($328|0),19)|0);
+   $550 = tempRet0;
+   $551 = (_bitshift64Shl(($327|0),($328|0),45)|0);
+   $552 = tempRet0;
+   $553 = $551 | $549;
+   $554 = $552 | $550;
+   $555 = (_bitshift64Lshr(($327|0),($328|0),61)|0);
+   $556 = tempRet0;
+   $557 = (_bitshift64Shl(($327|0),($328|0),3)|0);
+   $558 = tempRet0;
+   $559 = $557 | $555;
+   $560 = $558 | $556;
+   $561 = (_bitshift64Lshr(($327|0),($328|0),6)|0);
+   $562 = tempRet0;
+   $563 = $559 ^ $561;
+   $564 = $560 ^ $562;
+   $565 = $563 ^ $553;
+   $566 = $564 ^ $554;
+   $569 = (_bitshift64Lshr(($567|0),($568|0),1)|0);
+   $570 = tempRet0;
+   $571 = (_bitshift64Shl(($567|0),($568|0),63)|0);
+   $572 = tempRet0;
+   $573 = $571 | $569;
+   $574 = $572 | $570;
+   $575 = (_bitshift64Lshr(($567|0),($568|0),8)|0);
+   $576 = tempRet0;
+   $577 = (_bitshift64Shl(($567|0),($568|0),56)|0);
+   $578 = tempRet0;
+   $579 = $577 | $575;
+   $580 = $578 | $576;
+   $581 = (_bitshift64Lshr(($567|0),($568|0),7)|0);
+   $582 = tempRet0;
+   $583 = $579 ^ $581;
+   $584 = $580 ^ $582;
+   $585 = $583 ^ $573;
+   $586 = $584 ^ $574;
+   $589 = (_i64Add(($439|0),($440|0),($587|0),($588|0))|0);
+   $590 = tempRet0;
+   $591 = (_i64Add(($589|0),($590|0),($585|0),($586|0))|0);
+   $592 = tempRet0;
+   $593 = (_i64Add(($591|0),($592|0),($565|0),($566|0))|0);
+   $594 = tempRet0;
+   $595 = (_bitshift64Lshr(($501|0),($502|0),28)|0);
+   $596 = tempRet0;
+   $597 = (_bitshift64Shl(($501|0),($502|0),36)|0);
+   $598 = tempRet0;
+   $599 = $597 | $595;
+   $600 = $598 | $596;
+   $601 = (_bitshift64Lshr(($501|0),($502|0),34)|0);
+   $602 = tempRet0;
+   $603 = (_bitshift64Shl(($501|0),($502|0),30)|0);
+   $604 = tempRet0;
+   $605 = $603 | $601;
+   $606 = $604 | $602;
+   $607 = $599 ^ $605;
+   $608 = $600 ^ $606;
+   $609 = (_bitshift64Lshr(($501|0),($502|0),39)|0);
+   $610 = tempRet0;
+   $611 = (_bitshift64Shl(($501|0),($502|0),25)|0);
+   $612 = tempRet0;
+   $613 = $611 | $609;
+   $614 = $612 | $610;
+   $615 = $607 ^ $613;
+   $616 = $608 ^ $614;
+   $617 = $371 ^ $329;
+   $618 = $372 ^ $330;
+   $619 = $501 & $617;
+   $620 = $502 & $618;
+   $621 = $371 & $329;
+   $622 = $372 & $330;
+   $623 = $619 ^ $621;
+   $624 = $620 ^ $622;
+   $625 = (_i64Add(($615|0),($616|0),($623|0),($624|0))|0);
+   $626 = tempRet0;
+   $627 = (_i64Add(($547|0),($548|0),($355|0),($358|0))|0);
+   $628 = tempRet0;
+   $629 = (_i64Add(($625|0),($626|0),($547|0),($548|0))|0);
+   $630 = tempRet0;
+   $631 = (_bitshift64Lshr(($627|0),($628|0),14)|0);
+   $632 = tempRet0;
+   $633 = (_bitshift64Shl(($627|0),($628|0),50)|0);
+   $634 = tempRet0;
+   $635 = $633 | $631;
+   $636 = $634 | $632;
+   $637 = (_bitshift64Lshr(($627|0),($628|0),18)|0);
+   $638 = tempRet0;
+   $639 = (_bitshift64Shl(($627|0),($628|0),46)|0);
+   $640 = tempRet0;
+   $641 = $639 | $637;
+   $642 = $640 | $638;
+   $643 = $635 ^ $641;
+   $644 = $636 ^ $642;
+   $645 = (_bitshift64Lshr(($627|0),($628|0),41)|0);
+   $646 = tempRet0;
+   $647 = (_bitshift64Shl(($627|0),($628|0),23)|0);
+   $648 = tempRet0;
+   $649 = $647 | $645;
+   $650 = $648 | $646;
+   $651 = $643 ^ $649;
+   $652 = $644 ^ $650;
+   $653 = $627 & $499;
+   $654 = $628 & $500;
+   $655 = $627 ^ -1;
+   $656 = $628 ^ -1;
+   $657 = $369 & $655;
+   $658 = $370 & $656;
+   $659 = $657 ^ $653;
+   $660 = $658 ^ $654;
+   $661 = $$151221$i | 3;
+   $662 = (8128 + ($661<<3)|0);
+   $663 = $662;
+   $664 = $663;
+   $665 = HEAP32[$664>>2]|0;
+   $666 = (($663) + 4)|0;
+   $667 = $666;
+   $668 = HEAP32[$667>>2]|0;
+   $669 = (_i64Add(($226|0),($227|0),($567|0),($568|0))|0);
+   $670 = tempRet0;
+   $671 = (_i64Add(($669|0),($670|0),($665|0),($668|0))|0);
+   $672 = tempRet0;
+   $673 = (_i64Add(($671|0),($672|0),($659|0),($660|0))|0);
+   $674 = tempRet0;
+   $675 = (_i64Add(($673|0),($674|0),($651|0),($652|0))|0);
+   $676 = tempRet0;
+   $677 = (_bitshift64Lshr(($465|0),($466|0),19)|0);
+   $678 = tempRet0;
+   $679 = (_bitshift64Shl(($465|0),($466|0),45)|0);
+   $680 = tempRet0;
+   $681 = $679 | $677;
+   $682 = $680 | $678;
+   $683 = (_bitshift64Lshr(($465|0),($466|0),61)|0);
+   $684 = tempRet0;
+   $685 = (_bitshift64Shl(($465|0),($466|0),3)|0);
+   $686 = tempRet0;
+   $687 = $685 | $683;
+   $688 = $686 | $684;
+   $689 = (_bitshift64Lshr(($465|0),($466|0),6)|0);
+   $690 = tempRet0;
+   $691 = $687 ^ $689;
+   $692 = $688 ^ $690;
+   $693 = $691 ^ $681;
+   $694 = $692 ^ $682;
+   $697 = (_bitshift64Lshr(($695|0),($696|0),1)|0);
+   $698 = tempRet0;
+   $699 = (_bitshift64Shl(($695|0),($696|0),63)|0);
+   $700 = tempRet0;
+   $701 = $699 | $697;
+   $702 = $700 | $698;
+   $703 = (_bitshift64Lshr(($695|0),($696|0),8)|0);
+   $704 = tempRet0;
+   $705 = (_bitshift64Shl(($695|0),($696|0),56)|0);
+   $706 = tempRet0;
+   $707 = $705 | $703;
+   $708 = $706 | $704;
+   $709 = (_bitshift64Lshr(($695|0),($696|0),7)|0);
+   $710 = tempRet0;
+   $711 = $707 ^ $709;
+   $712 = $708 ^ $710;
+   $713 = $711 ^ $701;
+   $714 = $712 ^ $702;
+   $717 = (_i64Add(($567|0),($568|0),($715|0),($716|0))|0);
+   $718 = tempRet0;
+   $719 = (_i64Add(($717|0),($718|0),($713|0),($714|0))|0);
+   $720 = tempRet0;
+   $721 = (_i64Add(($719|0),($720|0),($693|0),($694|0))|0);
+   $722 = tempRet0;
+   $723 = (_bitshift64Lshr(($629|0),($630|0),28)|0);
+   $724 = tempRet0;
+   $725 = (_bitshift64Shl(($629|0),($630|0),36)|0);
+   $726 = tempRet0;
+   $727 = $725 | $723;
+   $728 = $726 | $724;
+   $729 = (_bitshift64Lshr(($629|0),($630|0),34)|0);
+   $730 = tempRet0;
+   $731 = (_bitshift64Shl(($629|0),($630|0),30)|0);
+   $732 = tempRet0;
+   $733 = $731 | $729;
+   $734 = $732 | $730;
+   $735 = $727 ^ $733;
+   $736 = $728 ^ $734;
+   $737 = (_bitshift64Lshr(($629|0),($630|0),39)|0);
+   $738 = tempRet0;
+   $739 = (_bitshift64Shl(($629|0),($630|0),25)|0);
+   $740 = tempRet0;
+   $741 = $739 | $737;
+   $742 = $740 | $738;
+   $743 = $735 ^ $741;
+   $744 = $736 ^ $742;
+   $745 = $501 ^ $371;
+   $746 = $502 ^ $372;
+   $747 = $629 & $745;
+   $748 = $630 & $746;
+   $749 = $501 & $371;
+   $750 = $502 & $372;
+   $751 = $747 ^ $749;
+   $752 = $748 ^ $750;
+   $753 = (_i64Add(($743|0),($744|0),($751|0),($752|0))|0);
+   $754 = tempRet0;
+   $755 = (_i64Add(($675|0),($676|0),($329|0),($330|0))|0);
+   $756 = tempRet0;
+   $757 = (_i64Add(($753|0),($754|0),($675|0),($676|0))|0);
+   $758 = tempRet0;
+   $759 = (_bitshift64Lshr(($755|0),($756|0),14)|0);
+   $760 = tempRet0;
+   $761 = (_bitshift64Shl(($755|0),($756|0),50)|0);
+   $762 = tempRet0;
+   $763 = $761 | $759;
+   $764 = $762 | $760;
+   $765 = (_bitshift64Lshr(($755|0),($756|0),18)|0);
+   $766 = tempRet0;
+   $767 = (_bitshift64Shl(($755|0),($756|0),46)|0);
+   $768 = tempRet0;
+   $769 = $767 | $765;
+   $770 = $768 | $766;
+   $771 = $763 ^ $769;
+   $772 = $764 ^ $770;
+   $773 = (_bitshift64Lshr(($755|0),($756|0),41)|0);
+   $774 = tempRet0;
+   $775 = (_bitshift64Shl(($755|0),($756|0),23)|0);
+   $776 = tempRet0;
+   $777 = $775 | $773;
+   $778 = $776 | $774;
+   $779 = $771 ^ $777;
+   $780 = $772 ^ $778;
+   $781 = $755 & $627;
+   $782 = $756 & $628;
+   $783 = $755 ^ -1;
+   $784 = $756 ^ -1;
+   $785 = $499 & $783;
+   $786 = $500 & $784;
+   $787 = $785 ^ $781;
+   $788 = $786 ^ $782;
+   $789 = $$151221$i | 4;
+   $790 = (8128 + ($789<<3)|0);
+   $791 = $790;
+   $792 = $791;
+   $793 = HEAP32[$792>>2]|0;
+   $794 = (($791) + 4)|0;
+   $795 = $794;
+   $796 = HEAP32[$795>>2]|0;
+   $797 = (_i64Add(($793|0),($796|0),($695|0),($696|0))|0);
+   $798 = tempRet0;
+   $799 = (_i64Add(($797|0),($798|0),($369|0),($370|0))|0);
+   $800 = tempRet0;
+   $801 = (_i64Add(($799|0),($800|0),($787|0),($788|0))|0);
+   $802 = tempRet0;
+   $803 = (_i64Add(($801|0),($802|0),($779|0),($780|0))|0);
+   $804 = tempRet0;
+   $805 = (_bitshift64Lshr(($593|0),($594|0),19)|0);
+   $806 = tempRet0;
+   $807 = (_bitshift64Shl(($593|0),($594|0),45)|0);
+   $808 = tempRet0;
+   $809 = $807 | $805;
+   $810 = $808 | $806;
+   $811 = (_bitshift64Lshr(($593|0),($594|0),61)|0);
+   $812 = tempRet0;
+   $813 = (_bitshift64Shl(($593|0),($594|0),3)|0);
+   $814 = tempRet0;
+   $815 = $813 | $811;
+   $816 = $814 | $812;
+   $817 = (_bitshift64Lshr(($593|0),($594|0),6)|0);
+   $818 = tempRet0;
+   $819 = $815 ^ $817;
+   $820 = $816 ^ $818;
+   $821 = $819 ^ $809;
+   $822 = $820 ^ $810;
+   $825 = (_bitshift64Lshr(($823|0),($824|0),1)|0);
+   $826 = tempRet0;
+   $827 = (_bitshift64Shl(($823|0),($824|0),63)|0);
+   $828 = tempRet0;
+   $829 = $827 | $825;
+   $830 = $828 | $826;
+   $831 = (_bitshift64Lshr(($823|0),($824|0),8)|0);
+   $832 = tempRet0;
+   $833 = (_bitshift64Shl(($823|0),($824|0),56)|0);
+   $834 = tempRet0;
+   $835 = $833 | $831;
+   $836 = $834 | $832;
+   $837 = (_bitshift64Lshr(($823|0),($824|0),7)|0);
+   $838 = tempRet0;
+   $839 = $835 ^ $837;
+   $840 = $836 ^ $838;
+   $841 = $839 ^ $829;
+   $842 = $840 ^ $830;
+   $845 = (_i64Add(($695|0),($696|0),($843|0),($844|0))|0);
+   $846 = tempRet0;
+   $847 = (_i64Add(($845|0),($846|0),($841|0),($842|0))|0);
+   $848 = tempRet0;
+   $849 = (_i64Add(($847|0),($848|0),($821|0),($822|0))|0);
+   $850 = tempRet0;
+   $851 = (_bitshift64Lshr(($757|0),($758|0),28)|0);
+   $852 = tempRet0;
+   $853 = (_bitshift64Shl(($757|0),($758|0),36)|0);
+   $854 = tempRet0;
+   $855 = $853 | $851;
+   $856 = $854 | $852;
+   $857 = (_bitshift64Lshr(($757|0),($758|0),34)|0);
+   $858 = tempRet0;
+   $859 = (_bitshift64Shl(($757|0),($758|0),30)|0);
+   $860 = tempRet0;
+   $861 = $859 | $857;
+   $862 = $860 | $858;
+   $863 = $855 ^ $861;
+   $864 = $856 ^ $862;
+   $865 = (_bitshift64Lshr(($757|0),($758|0),39)|0);
+   $866 = tempRet0;
+   $867 = (_bitshift64Shl(($757|0),($758|0),25)|0);
+   $868 = tempRet0;
+   $869 = $867 | $865;
+   $870 = $868 | $866;
+   $871 = $863 ^ $869;
+   $872 = $864 ^ $870;
+   $873 = $629 ^ $501;
+   $874 = $630 ^ $502;
+   $875 = $757 & $873;
+   $876 = $758 & $874;
+   $877 = $629 & $501;
+   $878 = $630 & $502;
+   $879 = $875 ^ $877;
+   $880 = $876 ^ $878;
+   $881 = (_i64Add(($871|0),($872|0),($879|0),($880|0))|0);
+   $882 = tempRet0;
+   $883 = (_i64Add(($803|0),($804|0),($371|0),($372|0))|0);
+   $884 = tempRet0;
+   $885 = (_i64Add(($881|0),($882|0),($803|0),($804|0))|0);
+   $886 = tempRet0;
+   $887 = (_bitshift64Lshr(($883|0),($884|0),14)|0);
+   $888 = tempRet0;
+   $889 = (_bitshift64Shl(($883|0),($884|0),50)|0);
+   $890 = tempRet0;
+   $891 = $889 | $887;
+   $892 = $890 | $888;
+   $893 = (_bitshift64Lshr(($883|0),($884|0),18)|0);
+   $894 = tempRet0;
+   $895 = (_bitshift64Shl(($883|0),($884|0),46)|0);
+   $896 = tempRet0;
+   $897 = $895 | $893;
+   $898 = $896 | $894;
+   $899 = $891 ^ $897;
+   $900 = $892 ^ $898;
+   $901 = (_bitshift64Lshr(($883|0),($884|0),41)|0);
+   $902 = tempRet0;
+   $903 = (_bitshift64Shl(($883|0),($884|0),23)|0);
+   $904 = tempRet0;
+   $905 = $903 | $901;
+   $906 = $904 | $902;
+   $907 = $899 ^ $905;
+   $908 = $900 ^ $906;
+   $909 = $883 & $755;
+   $910 = $884 & $756;
+   $911 = $883 ^ -1;
+   $912 = $884 ^ -1;
+   $913 = $627 & $911;
+   $914 = $628 & $912;
+   $915 = $913 ^ $909;
+   $916 = $914 ^ $910;
+   $917 = $$151221$i | 5;
+   $918 = (8128 + ($917<<3)|0);
+   $919 = $918;
+   $920 = $919;
+   $921 = HEAP32[$920>>2]|0;
+   $922 = (($919) + 4)|0;
+   $923 = $922;
+   $924 = HEAP32[$923>>2]|0;
+   $925 = (_i64Add(($921|0),($924|0),($823|0),($824|0))|0);
+   $926 = tempRet0;
+   $927 = (_i64Add(($925|0),($926|0),($499|0),($500|0))|0);
+   $928 = tempRet0;
+   $929 = (_i64Add(($927|0),($928|0),($915|0),($916|0))|0);
+   $930 = tempRet0;
+   $931 = (_i64Add(($929|0),($930|0),($907|0),($908|0))|0);
+   $932 = tempRet0;
+   $933 = (_bitshift64Lshr(($721|0),($722|0),19)|0);
+   $934 = tempRet0;
+   $935 = (_bitshift64Shl(($721|0),($722|0),45)|0);
+   $936 = tempRet0;
+   $937 = $935 | $933;
+   $938 = $936 | $934;
+   $939 = (_bitshift64Lshr(($721|0),($722|0),61)|0);
+   $940 = tempRet0;
+   $941 = (_bitshift64Shl(($721|0),($722|0),3)|0);
+   $942 = tempRet0;
+   $943 = $941 | $939;
+   $944 = $942 | $940;
+   $945 = (_bitshift64Lshr(($721|0),($722|0),6)|0);
+   $946 = tempRet0;
+   $947 = $943 ^ $945;
+   $948 = $944 ^ $946;
+   $949 = $947 ^ $937;
+   $950 = $948 ^ $938;
+   $953 = (_bitshift64Lshr(($951|0),($952|0),1)|0);
+   $954 = tempRet0;
+   $955 = (_bitshift64Shl(($951|0),($952|0),63)|0);
+   $956 = tempRet0;
+   $957 = $955 | $953;
+   $958 = $956 | $954;
+   $959 = (_bitshift64Lshr(($951|0),($952|0),8)|0);
+   $960 = tempRet0;
+   $961 = (_bitshift64Shl(($951|0),($952|0),56)|0);
+   $962 = tempRet0;
+   $963 = $961 | $959;
+   $964 = $962 | $960;
+   $965 = (_bitshift64Lshr(($951|0),($952|0),7)|0);
+   $966 = tempRet0;
+   $967 = $963 ^ $965;
+   $968 = $964 ^ $966;
+   $969 = $967 ^ $957;
+   $970 = $968 ^ $958;
+   $971 = (_i64Add(($969|0),($970|0),($823|0),($824|0))|0);
+   $972 = tempRet0;
+   $973 = (_i64Add(($971|0),($972|0),($281|0),($282|0))|0);
+   $974 = tempRet0;
+   $975 = (_i64Add(($973|0),($974|0),($949|0),($950|0))|0);
+   $976 = tempRet0;
+   $977 = (_bitshift64Lshr(($885|0),($886|0),28)|0);
+   $978 = tempRet0;
+   $979 = (_bitshift64Shl(($885|0),($886|0),36)|0);
+   $980 = tempRet0;
+   $981 = $979 | $977;
+   $982 = $980 | $978;
+   $983 = (_bitshift64Lshr(($885|0),($886|0),34)|0);
+   $984 = tempRet0;
+   $985 = (_bitshift64Shl(($885|0),($886|0),30)|0);
+   $986 = tempRet0;
+   $987 = $985 | $983;
+   $988 = $986 | $984;
+   $989 = $981 ^ $987;
+   $990 = $982 ^ $988;
+   $991 = (_bitshift64Lshr(($885|0),($886|0),39)|0);
+   $992 = tempRet0;
+   $993 = (_bitshift64Shl(($885|0),($886|0),25)|0);
+   $994 = tempRet0;
+   $995 = $993 | $991;
+   $996 = $994 | $992;
+   $997 = $989 ^ $995;
+   $998 = $990 ^ $996;
+   $999 = $757 ^ $629;
+   $1000 = $758 ^ $630;
+   $1001 = $885 & $999;
+   $1002 = $886 & $1000;
+   $1003 = $757 & $629;
+   $1004 = $758 & $630;
+   $1005 = $1001 ^ $1003;
+   $1006 = $1002 ^ $1004;
+   $1007 = (_i64Add(($997|0),($998|0),($1005|0),($1006|0))|0);
+   $1008 = tempRet0;
+   $1009 = (_i64Add(($931|0),($932|0),($501|0),($502|0))|0);
+   $1010 = tempRet0;
+   $1011 = (_i64Add(($1007|0),($1008|0),($931|0),($932|0))|0);
+   $1012 = tempRet0;
+   $1013 = (_bitshift64Lshr(($1009|0),($1010|0),14)|0);
+   $1014 = tempRet0;
+   $1015 = (_bitshift64Shl(($1009|0),($1010|0),50)|0);
+   $1016 = tempRet0;
+   $1017 = $1015 | $1013;
+   $1018 = $1016 | $1014;
+   $1019 = (_bitshift64Lshr(($1009|0),($1010|0),18)|0);
+   $1020 = tempRet0;
+   $1021 = (_bitshift64Shl(($1009|0),($1010|0),46)|0);
+   $1022 = tempRet0;
+   $1023 = $1021 | $1019;
+   $1024 = $1022 | $1020;
+   $1025 = $1017 ^ $1023;
+   $1026 = $1018 ^ $1024;
+   $1027 = (_bitshift64Lshr(($1009|0),($1010|0),41)|0);
+   $1028 = tempRet0;
+   $1029 = (_bitshift64Shl(($1009|0),($1010|0),23)|0);
+   $1030 = tempRet0;
+   $1031 = $1029 | $1027;
+   $1032 = $1030 | $1028;
+   $1033 = $1025 ^ $1031;
+   $1034 = $1026 ^ $1032;
+   $1035 = $1009 & $883;
+   $1036 = $1010 & $884;
+   $1037 = $1009 ^ -1;
+   $1038 = $1010 ^ -1;
+   $1039 = $755 & $1037;
+   $1040 = $756 & $1038;
+   $1041 = $1039 ^ $1035;
+   $1042 = $1040 ^ $1036;
+   $1043 = $$151221$i | 6;
+   $1044 = (8128 + ($1043<<3)|0);
+   $1045 = $1044;
+   $1046 = $1045;
+   $1047 = HEAP32[$1046>>2]|0;
+   $1048 = (($1045) + 4)|0;
+   $1049 = $1048;
+   $1050 = HEAP32[$1049>>2]|0;
+   $1051 = (_i64Add(($1047|0),($1050|0),($951|0),($952|0))|0);
+   $1052 = tempRet0;
+   $1053 = (_i64Add(($1051|0),($1052|0),($627|0),($628|0))|0);
+   $1054 = tempRet0;
+   $1055 = (_i64Add(($1053|0),($1054|0),($1041|0),($1042|0))|0);
+   $1056 = tempRet0;
+   $1057 = (_i64Add(($1055|0),($1056|0),($1033|0),($1034|0))|0);
+   $1058 = tempRet0;
+   $1059 = (_bitshift64Lshr(($849|0),($850|0),19)|0);
+   $1060 = tempRet0;
+   $1061 = (_bitshift64Shl(($849|0),($850|0),45)|0);
+   $1062 = tempRet0;
+   $1063 = $1061 | $1059;
+   $1064 = $1062 | $1060;
+   $1065 = (_bitshift64Lshr(($849|0),($850|0),61)|0);
+   $1066 = tempRet0;
+   $1067 = (_bitshift64Shl(($849|0),($850|0),3)|0);
+   $1068 = tempRet0;
+   $1069 = $1067 | $1065;
+   $1070 = $1068 | $1066;
+   $1071 = (_bitshift64Lshr(($849|0),($850|0),6)|0);
+   $1072 = tempRet0;
+   $1073 = $1069 ^ $1071;
+   $1074 = $1070 ^ $1072;
+   $1075 = $1073 ^ $1063;
+   $1076 = $1074 ^ $1064;
+   $1079 = (_bitshift64Lshr(($1077|0),($1078|0),1)|0);
+   $1080 = tempRet0;
+   $1081 = (_bitshift64Shl(($1077|0),($1078|0),63)|0);
+   $1082 = tempRet0;
+   $1083 = $1081 | $1079;
+   $1084 = $1082 | $1080;
+   $1085 = (_bitshift64Lshr(($1077|0),($1078|0),8)|0);
+   $1086 = tempRet0;
+   $1087 = (_bitshift64Shl(($1077|0),($1078|0),56)|0);
+   $1088 = tempRet0;
+   $1089 = $1087 | $1085;
+   $1090 = $1088 | $1086;
+   $1091 = (_bitshift64Lshr(($1077|0),($1078|0),7)|0);
+   $1092 = tempRet0;
+   $1093 = $1089 ^ $1091;
+   $1094 = $1090 ^ $1092;
+   $1095 = $1093 ^ $1083;
+   $1096 = $1094 ^ $1084;
+   $1097 = (_i64Add(($1095|0),($1096|0),($951|0),($952|0))|0);
+   $1098 = tempRet0;
+   $1099 = (_i64Add(($1097|0),($1098|0),($419|0),($420|0))|0);
+   $1100 = tempRet0;
+   $1101 = (_i64Add(($1099|0),($1100|0),($1075|0),($1076|0))|0);
+   $1102 = tempRet0;
+   $1103 = (_bitshift64Lshr(($1011|0),($1012|0),28)|0);
+   $1104 = tempRet0;
+   $1105 = (_bitshift64Shl(($1011|0),($1012|0),36)|0);
+   $1106 = tempRet0;
+   $1107 = $1105 | $1103;
+   $1108 = $1106 | $1104;
+   $1109 = (_bitshift64Lshr(($1011|0),($1012|0),34)|0);
+   $1110 = tempRet0;
+   $1111 = (_bitshift64Shl(($1011|0),($1012|0),30)|0);
+   $1112 = tempRet0;
+   $1113 = $1111 | $1109;
+   $1114 = $1112 | $1110;
+   $1115 = $1107 ^ $1113;
+   $1116 = $1108 ^ $1114;
+   $1117 = (_bitshift64Lshr(($1011|0),($1012|0),39)|0);
+   $1118 = tempRet0;
+   $1119 = (_bitshift64Shl(($1011|0),($1012|0),25)|0);
+   $1120 = tempRet0;
+   $1121 = $1119 | $1117;
+   $1122 = $1120 | $1118;
+   $1123 = $1115 ^ $1121;
+   $1124 = $1116 ^ $1122;
+   $1125 = $885 ^ $757;
+   $1126 = $886 ^ $758;
+   $1127 = $1011 & $1125;
+   $1128 = $1012 & $1126;
+   $1129 = $885 & $757;
+   $1130 = $886 & $758;
+   $1131 = $1127 ^ $1129;
+   $1132 = $1128 ^ $1130;
+   $1133 = (_i64Add(($1123|0),($1124|0),($1131|0),($1132|0))|0);
+   $1134 = tempRet0;
+   $1135 = (_i64Add(($1057|0),($1058|0),($629|0),($630|0))|0);
+   $1136 = tempRet0;
+   $1137 = (_i64Add(($1133|0),($1134|0),($1057|0),($1058|0))|0);
+   $1138 = tempRet0;
+   $1139 = (_bitshift64Lshr(($1135|0),($1136|0),14)|0);
+   $1140 = tempRet0;
+   $1141 = (_bitshift64Shl(($1135|0),($1136|0),50)|0);
+   $1142 = tempRet0;
+   $1143 = $1141 | $1139;
+   $1144 = $1142 | $1140;
+   $1145 = (_bitshift64Lshr(($1135|0),($1136|0),18)|0);
+   $1146 = tempRet0;
+   $1147 = (_bitshift64Shl(($1135|0),($1136|0),46)|0);
+   $1148 = tempRet0;
+   $1149 = $1147 | $1145;
+   $1150 = $1148 | $1146;
+   $1151 = $1143 ^ $1149;
+   $1152 = $1144 ^ $1150;
+   $1153 = (_bitshift64Lshr(($1135|0),($1136|0),41)|0);
+   $1154 = tempRet0;
+   $1155 = (_bitshift64Shl(($1135|0),($1136|0),23)|0);
+   $1156 = tempRet0;
+   $1157 = $1155 | $1153;
+   $1158 = $1156 | $1154;
+   $1159 = $1151 ^ $1157;
+   $1160 = $1152 ^ $1158;
+   $1161 = $1135 & $1009;
+   $1162 = $1136 & $1010;
+   $1163 = $1135 ^ -1;
+   $1164 = $1136 ^ -1;
+   $1165 = $883 & $1163;
+   $1166 = $884 & $1164;
+   $1167 = $1165 ^ $1161;
+   $1168 = $1166 ^ $1162;
+   $1169 = $$151221$i | 7;
+   $1170 = (8128 + ($1169<<3)|0);
+   $1171 = $1170;
+   $1172 = $1171;
+   $1173 = HEAP32[$1172>>2]|0;
+   $1174 = (($1171) + 4)|0;
+   $1175 = $1174;
+   $1176 = HEAP32[$1175>>2]|0;
+   $1177 = (_i64Add(($1173|0),($1176|0),($1077|0),($1078|0))|0);
+   $1178 = tempRet0;
+   $1179 = (_i64Add(($1177|0),($1178|0),($755|0),($756|0))|0);
+   $1180 = tempRet0;
+   $1181 = (_i64Add(($1179|0),($1180|0),($1167|0),($1168|0))|0);
+   $1182 = tempRet0;
+   $1183 = (_i64Add(($1181|0),($1182|0),($1159|0),($1160|0))|0);
+   $1184 = tempRet0;
+   $1185 = (_bitshift64Lshr(($975|0),($976|0),19)|0);
+   $1186 = tempRet0;
+   $1187 = (_bitshift64Shl(($975|0),($976|0),45)|0);
+   $1188 = tempRet0;
+   $1189 = $1187 | $1185;
+   $1190 = $1188 | $1186;
+   $1191 = (_bitshift64Lshr(($975|0),($976|0),61)|0);
+   $1192 = tempRet0;
+   $1193 = (_bitshift64Shl(($975|0),($976|0),3)|0);
+   $1194 = tempRet0;
+   $1195 = $1193 | $1191;
+   $1196 = $1194 | $1192;
+   $1197 = (_bitshift64Lshr(($975|0),($976|0),6)|0);
+   $1198 = tempRet0;
+   $1199 = $1195 ^ $1197;
+   $1200 = $1196 ^ $1198;
+   $1201 = $1199 ^ $1189;
+   $1202 = $1200 ^ $1190;
+   $1205 = (_bitshift64Lshr(($1203|0),($1204|0),1)|0);
+   $1206 = tempRet0;
+   $1207 = (_bitshift64Shl(($1203|0),($1204|0),63)|0);
+   $1208 = tempRet0;
+   $1209 = $1207 | $1205;
+   $1210 = $1208 | $1206;
+   $1211 = (_bitshift64Lshr(($1203|0),($1204|0),8)|0);
+   $1212 = tempRet0;
+   $1213 = (_bitshift64Shl(($1203|0),($1204|0),56)|0);
+   $1214 = tempRet0;
+   $1215 = $1213 | $1211;
+   $1216 = $1214 | $1212;
+   $1217 = (_bitshift64Lshr(($1203|0),($1204|0),7)|0);
+   $1218 = tempRet0;
+   $1219 = $1215 ^ $1217;
+   $1220 = $1216 ^ $1218;
+   $1221 = $1219 ^ $1209;
+   $1222 = $1220 ^ $1210;
+   $1223 = (_i64Add(($1221|0),($1222|0),($1077|0),($1078|0))|0);
+   $1224 = tempRet0;
+   $1225 = (_i64Add(($1223|0),($1224|0),($327|0),($328|0))|0);
+   $1226 = tempRet0;
+   $1227 = (_i64Add(($1225|0),($1226|0),($1201|0),($1202|0))|0);
+   $1228 = tempRet0;
+   $1229 = (_bitshift64Lshr(($1137|0),($1138|0),28)|0);
+   $1230 = tempRet0;
+   $1231 = (_bitshift64Shl(($1137|0),($1138|0),36)|0);
+   $1232 = tempRet0;
+   $1233 = $1231 | $1229;
+   $1234 = $1232 | $1230;
+   $1235 = (_bitshift64Lshr(($1137|0),($1138|0),34)|0);
+   $1236 = tempRet0;
+   $1237 = (_bitshift64Shl(($1137|0),($1138|0),30)|0);
+   $1238 = tempRet0;
+   $1239 = $1237 | $1235;
+   $1240 = $1238 | $1236;
+   $1241 = $1233 ^ $1239;
+   $1242 = $1234 ^ $1240;
+   $1243 = (_bitshift64Lshr(($1137|0),($1138|0),39)|0);
+   $1244 = tempRet0;
+   $1245 = (_bitshift64Shl(($1137|0),($1138|0),25)|0);
+   $1246 = tempRet0;
+   $1247 = $1245 | $1243;
+   $1248 = $1246 | $1244;
+   $1249 = $1241 ^ $1247;
+   $1250 = $1242 ^ $1248;
+   $1251 = $1011 ^ $885;
+   $1252 = $1012 ^ $886;
+   $1253 = $1137 & $1251;
+   $1254 = $1138 & $1252;
+   $1255 = $1011 & $885;
+   $1256 = $1012 & $886;
+   $1257 = $1253 ^ $1255;
+   $1258 = $1254 ^ $1256;
+   $1259 = (_i64Add(($1249|0),($1250|0),($1257|0),($1258|0))|0);
+   $1260 = tempRet0;
+   $1261 = (_i64Add(($1183|0),($1184|0),($757|0),($758|0))|0);
+   $1262 = tempRet0;
+   $1263 = (_i64Add(($1259|0),($1260|0),($1183|0),($1184|0))|0);
+   $1264 = tempRet0;
+   $1265 = (_bitshift64Lshr(($1261|0),($1262|0),14)|0);
+   $1266 = tempRet0;
+   $1267 = (_bitshift64Shl(($1261|0),($1262|0),50)|0);
+   $1268 = tempRet0;
+   $1269 = $1267 | $1265;
+   $1270 = $1268 | $1266;
+   $1271 = (_bitshift64Lshr(($1261|0),($1262|0),18)|0);
+   $1272 = tempRet0;
+   $1273 = (_bitshift64Shl(($1261|0),($1262|0),46)|0);
+   $1274 = tempRet0;
+   $1275 = $1273 | $1271;
+   $1276 = $1274 | $1272;
+   $1277 = $1269 ^ $1275;
+   $1278 = $1270 ^ $1276;
+   $1279 = (_bitshift64Lshr(($1261|0),($1262|0),41)|0);
+   $1280 = tempRet0;
+   $1281 = (_bitshift64Shl(($1261|0),($1262|0),23)|0);
+   $1282 = tempRet0;
+   $1283 = $1281 | $1279;
+   $1284 = $1282 | $1280;
+   $1285 = $1277 ^ $1283;
+   $1286 = $1278 ^ $1284;
+   $1287 = $1261 & $1135;
+   $1288 = $1262 & $1136;
+   $1289 = $1261 ^ -1;
+   $1290 = $1262 ^ -1;
+   $1291 = $1009 & $1289;
+   $1292 = $1010 & $1290;
+   $1293 = $1291 ^ $1287;
+   $1294 = $1292 ^ $1288;
+   $1295 = $$151221$i | 8;
+   $1296 = (8128 + ($1295<<3)|0);
+   $1297 = $1296;
+   $1298 = $1297;
+   $1299 = HEAP32[$1298>>2]|0;
+   $1300 = (($1297) + 4)|0;
+   $1301 = $1300;
+   $1302 = HEAP32[$1301>>2]|0;
+   $1303 = (_i64Add(($1299|0),($1302|0),($1203|0),($1204|0))|0);
+   $1304 = tempRet0;
+   $1305 = (_i64Add(($1303|0),($1304|0),($883|0),($884|0))|0);
+   $1306 = tempRet0;
+   $1307 = (_i64Add(($1305|0),($1306|0),($1293|0),($1294|0))|0);
+   $1308 = tempRet0;
+   $1309 = (_i64Add(($1307|0),($1308|0),($1285|0),($1286|0))|0);
+   $1310 = tempRet0;
+   $1311 = (_bitshift64Lshr(($1101|0),($1102|0),19)|0);
+   $1312 = tempRet0;
+   $1313 = (_bitshift64Shl(($1101|0),($1102|0),45)|0);
+   $1314 = tempRet0;
+   $1315 = $1313 | $1311;
+   $1316 = $1314 | $1312;
+   $1317 = (_bitshift64Lshr(($1101|0),($1102|0),61)|0);
+   $1318 = tempRet0;
+   $1319 = (_bitshift64Shl(($1101|0),($1102|0),3)|0);
+   $1320 = tempRet0;
+   $1321 = $1319 | $1317;
+   $1322 = $1320 | $1318;
+   $1323 = (_bitshift64Lshr(($1101|0),($1102|0),6)|0);
+   $1324 = tempRet0;
+   $1325 = $1321 ^ $1323;
+   $1326 = $1322 ^ $1324;
+   $1327 = $1325 ^ $1315;
+   $1328 = $1326 ^ $1316;
+   $1329 = (_bitshift64Lshr(($321|0),($322|0),1)|0);
+   $1330 = tempRet0;
+   $1331 = (_bitshift64Shl(($321|0),($322|0),63)|0);
+   $1332 = tempRet0;
+   $1333 = $1331 | $1329;
+   $1334 = $1332 | $1330;
+   $1335 = (_bitshift64Lshr(($321|0),($322|0),8)|0);
+   $1336 = tempRet0;
+   $1337 = (_bitshift64Shl(($321|0),($322|0),56)|0);
+   $1338 = tempRet0;
+   $1339 = $1337 | $1335;
+   $1340 = $1338 | $1336;
+   $1341 = (_bitshift64Lshr(($321|0),($322|0),7)|0);
+   $1342 = tempRet0;
+   $1343 = $1339 ^ $1341;
+   $1344 = $1340 ^ $1342;
+   $1345 = $1343 ^ $1333;
+   $1346 = $1344 ^ $1334;
+   $1347 = (_i64Add(($1345|0),($1346|0),($1203|0),($1204|0))|0);
+   $1348 = tempRet0;
+   $1349 = (_i64Add(($1347|0),($1348|0),($465|0),($466|0))|0);
+   $1350 = tempRet0;
+   $1351 = (_i64Add(($1349|0),($1350|0),($1327|0),($1328|0))|0);
+   $1352 = tempRet0;
+   $1353 = (_bitshift64Lshr(($1263|0),($1264|0),28)|0);
+   $1354 = tempRet0;
+   $1355 = (_bitshift64Shl(($1263|0),($1264|0),36)|0);
+   $1356 = tempRet0;
+   $1357 = $1355 | $1353;
+   $1358 = $1356 | $1354;
+   $1359 = (_bitshift64Lshr(($1263|0),($1264|0),34)|0);
+   $1360 = tempRet0;
+   $1361 = (_bitshift64Shl(($1263|0),($1264|0),30)|0);
+   $1362 = tempRet0;
+   $1363 = $1361 | $1359;
+   $1364 = $1362 | $1360;
+   $1365 = $1357 ^ $1363;
+   $1366 = $1358 ^ $1364;
+   $1367 = (_bitshift64Lshr(($1263|0),($1264|0),39)|0);
+   $1368 = tempRet0;
+   $1369 = (_bitshift64Shl(($1263|0),($1264|0),25)|0);
+   $1370 = tempRet0;
+   $1371 = $1369 | $1367;
+   $1372 = $1370 | $1368;
+   $1373 = $1365 ^ $1371;
+   $1374 = $1366 ^ $1372;
+   $1375 = $1137 ^ $1011;
+   $1376 = $1138 ^ $1012;
+   $1377 = $1263 & $1375;
+   $1378 = $1264 & $1376;
+   $1379 = $1137 & $1011;
+   $1380 = $1138 & $1012;
+   $1381 = $1377 ^ $1379;
+   $1382 = $1378 ^ $1380;
+   $1383 = (_i64Add(($1373|0),($1374|0),($1381|0),($1382|0))|0);
+   $1384 = tempRet0;
+   $1385 = (_i64Add(($1309|0),($1310|0),($885|0),($886|0))|0);
+   $1386 = tempRet0;
+   $1387 = (_i64Add(($1383|0),($1384|0),($1309|0),($1310|0))|0);
+   $1388 = tempRet0;
+   $1389 = (_bitshift64Lshr(($1385|0),($1386|0),14)|0);
+   $1390 = tempRet0;
+   $1391 = (_bitshift64Shl(($1385|0),($1386|0),50)|0);
+   $1392 = tempRet0;
+   $1393 = $1391 | $1389;
+   $1394 = $1392 | $1390;
+   $1395 = (_bitshift64Lshr(($1385|0),($1386|0),18)|0);
+   $1396 = tempRet0;
+   $1397 = (_bitshift64Shl(($1385|0),($1386|0),46)|0);
+   $1398 = tempRet0;
+   $1399 = $1397 | $1395;
+   $1400 = $1398 | $1396;
+   $1401 = $1393 ^ $1399;
+   $1402 = $1394 ^ $1400;
+   $1403 = (_bitshift64Lshr(($1385|0),($1386|0),41)|0);
+   $1404 = tempRet0;
+   $1405 = (_bitshift64Shl(($1385|0),($1386|0),23)|0);
+   $1406 = tempRet0;
+   $1407 = $1405 | $1403;
+   $1408 = $1406 | $1404;
+   $1409 = $1401 ^ $1407;
+   $1410 = $1402 ^ $1408;
+   $1411 = $1385 & $1261;
+   $1412 = $1386 & $1262;
+   $1413 = $1385 ^ -1;
+   $1414 = $1386 ^ -1;
+   $1415 = $1135 & $1413;
+   $1416 = $1136 & $1414;
+   $1417 = $1415 ^ $1411;
+   $1418 = $1416 ^ $1412;
+   $1419 = $$151221$i | 9;
+   $1420 = (8128 + ($1419<<3)|0);
+   $1421 = $1420;
+   $1422 = $1421;
+   $1423 = HEAP32[$1422>>2]|0;
+   $1424 = (($1421) + 4)|0;
+   $1425 = $1424;
+   $1426 = HEAP32[$1425>>2]|0;
+   $1427 = (_i64Add(($1423|0),($1426|0),($321|0),($322|0))|0);
+   $1428 = tempRet0;
+   $1429 = (_i64Add(($1427|0),($1428|0),($1009|0),($1010|0))|0);
+   $1430 = tempRet0;
+   $1431 = (_i64Add(($1429|0),($1430|0),($1417|0),($1418|0))|0);
+   $1432 = tempRet0;
+   $1433 = (_i64Add(($1431|0),($1432|0),($1409|0),($1410|0))|0);
+   $1434 = tempRet0;
+   $1435 = (_bitshift64Lshr(($1227|0),($1228|0),19)|0);
+   $1436 = tempRet0;
+   $1437 = (_bitshift64Shl(($1227|0),($1228|0),45)|0);
+   $1438 = tempRet0;
+   $1439 = $1437 | $1435;
+   $1440 = $1438 | $1436;
+   $1441 = (_bitshift64Lshr(($1227|0),($1228|0),61)|0);
+   $1442 = tempRet0;
+   $1443 = (_bitshift64Shl(($1227|0),($1228|0),3)|0);
+   $1444 = tempRet0;
+   $1445 = $1443 | $1441;
+   $1446 = $1444 | $1442;
+   $1447 = (_bitshift64Lshr(($1227|0),($1228|0),6)|0);
+   $1448 = tempRet0;
+   $1449 = $1445 ^ $1447;
+   $1450 = $1446 ^ $1448;
+   $1451 = $1449 ^ $1439;
+   $1452 = $1450 ^ $1440;
+   $1453 = (_bitshift64Lshr(($459|0),($460|0),1)|0);
+   $1454 = tempRet0;
+   $1455 = (_bitshift64Shl(($459|0),($460|0),63)|0);
+   $1456 = tempRet0;
+   $1457 = $1455 | $1453;
+   $1458 = $1456 | $1454;
+   $1459 = (_bitshift64Lshr(($459|0),($460|0),8)|0);
+   $1460 = tempRet0;
+   $1461 = (_bitshift64Shl(($459|0),($460|0),56)|0);
+   $1462 = tempRet0;
+   $1463 = $1461 | $1459;
+   $1464 = $1462 | $1460;
+   $1465 = (_bitshift64Lshr(($459|0),($460|0),7)|0);
+   $1466 = tempRet0;
+   $1467 = $1463 ^ $1465;
+   $1468 = $1464 ^ $1466;
+   $1469 = $1467 ^ $1457;
+   $1470 = $1468 ^ $1458;
+   $1471 = (_i64Add(($1469|0),($1470|0),($321|0),($322|0))|0);
+   $1472 = tempRet0;
+   $1473 = (_i64Add(($1471|0),($1472|0),($593|0),($594|0))|0);
+   $1474 = tempRet0;
+   $1475 = (_i64Add(($1473|0),($1474|0),($1451|0),($1452|0))|0);
+   $1476 = tempRet0;
+   $1477 = (_bitshift64Lshr(($1387|0),($1388|0),28)|0);
+   $1478 = tempRet0;
+   $1479 = (_bitshift64Shl(($1387|0),($1388|0),36)|0);
+   $1480 = tempRet0;
+   $1481 = $1479 | $1477;
+   $1482 = $1480 | $1478;
+   $1483 = (_bitshift64Lshr(($1387|0),($1388|0),34)|0);
+   $1484 = tempRet0;
+   $1485 = (_bitshift64Shl(($1387|0),($1388|0),30)|0);
+   $1486 = tempRet0;
+   $1487 = $1485 | $1483;
+   $1488 = $1486 | $1484;
+   $1489 = $1481 ^ $1487;
+   $1490 = $1482 ^ $1488;
+   $1491 = (_bitshift64Lshr(($1387|0),($1388|0),39)|0);
+   $1492 = tempRet0;
+   $1493 = (_bitshift64Shl(($1387|0),($1388|0),25)|0);
+   $1494 = tempRet0;
+   $1495 = $1493 | $1491;
+   $1496 = $1494 | $1492;
+   $1497 = $1489 ^ $1495;
+   $1498 = $1490 ^ $1496;
+   $1499 = $1263 ^ $1137;
+   $1500 = $1264 ^ $1138;
+   $1501 = $1387 & $1499;
+   $1502 = $1388 & $1500;
+   $1503 = $1263 & $1137;
+   $1504 = $1264 & $1138;
+   $1505 = $1501 ^ $1503;
+   $1506 = $1502 ^ $1504;
+   $1507 = (_i64Add(($1497|0),($1498|0),($1505|0),($1506|0))|0);
+   $1508 = tempRet0;
+   $1509 = (_i64Add(($1433|0),($1434|0),($1011|0),($1012|0))|0);
+   $1510 = tempRet0;
+   $1511 = (_i64Add(($1507|0),($1508|0),($1433|0),($1434|0))|0);
+   $1512 = tempRet0;
+   $1513 = (_bitshift64Lshr(($1509|0),($1510|0),14)|0);
+   $1514 = tempRet0;
+   $1515 = (_bitshift64Shl(($1509|0),($1510|0),50)|0);
+   $1516 = tempRet0;
+   $1517 = $1515 | $1513;
+   $1518 = $1516 | $1514;
+   $1519 = (_bitshift64Lshr(($1509|0),($1510|0),18)|0);
+   $1520 = tempRet0;
+   $1521 = (_bitshift64Shl(($1509|0),($1510|0),46)|0);
+   $1522 = tempRet0;
+   $1523 = $1521 | $1519;
+   $1524 = $1522 | $1520;
+   $1525 = $1517 ^ $1523;
+   $1526 = $1518 ^ $1524;
+   $1527 = (_bitshift64Lshr(($1509|0),($1510|0),41)|0);
+   $1528 = tempRet0;
+   $1529 = (_bitshift64Shl(($1509|0),($1510|0),23)|0);
+   $1530 = tempRet0;
+   $1531 = $1529 | $1527;
+   $1532 = $1530 | $1528;
+   $1533 = $1525 ^ $1531;
+   $1534 = $1526 ^ $1532;
+   $1535 = $1509 & $1385;
+   $1536 = $1510 & $1386;
+   $1537 = $1509 ^ -1;
+   $1538 = $1510 ^ -1;
+   $1539 = $1261 & $1537;
+   $1540 = $1262 & $1538;
+   $1541 = $1539 ^ $1535;
+   $1542 = $1540 ^ $1536;
+   $1543 = $$151221$i | 10;
+   $1544 = (8128 + ($1543<<3)|0);
+   $1545 = $1544;
+   $1546 = $1545;
+   $1547 = HEAP32[$1546>>2]|0;
+   $1548 = (($1545) + 4)|0;
+   $1549 = $1548;
+   $1550 = HEAP32[$1549>>2]|0;
+   $1551 = (_i64Add(($1547|0),($1550|0),($459|0),($460|0))|0);
+   $1552 = tempRet0;
+   $1553 = (_i64Add(($1551|0),($1552|0),($1135|0),($1136|0))|0);
+   $1554 = tempRet0;
+   $1555 = (_i64Add(($1553|0),($1554|0),($1541|0),($1542|0))|0);
+   $1556 = tempRet0;
+   $1557 = (_i64Add(($1555|0),($1556|0),($1533|0),($1534|0))|0);
+   $1558 = tempRet0;
+   $1559 = (_bitshift64Lshr(($1351|0),($1352|0),19)|0);
+   $1560 = tempRet0;
+   $1561 = (_bitshift64Shl(($1351|0),($1352|0),45)|0);
+   $1562 = tempRet0;
+   $1563 = $1561 | $1559;
+   $1564 = $1562 | $1560;
+   $1565 = (_bitshift64Lshr(($1351|0),($1352|0),61)|0);
+   $1566 = tempRet0;
+   $1567 = (_bitshift64Shl(($1351|0),($1352|0),3)|0);
+   $1568 = tempRet0;
+   $1569 = $1567 | $1565;
+   $1570 = $1568 | $1566;
+   $1571 = (_bitshift64Lshr(($1351|0),($1352|0),6)|0);
+   $1572 = tempRet0;
+   $1573 = $1569 ^ $1571;
+   $1574 = $1570 ^ $1572;
+   $1575 = $1573 ^ $1563;
+   $1576 = $1574 ^ $1564;
+   $1577 = (_bitshift64Lshr(($587|0),($588|0),1)|0);
+   $1578 = tempRet0;
+   $1579 = (_bitshift64Shl(($587|0),($588|0),63)|0);
+   $1580 = tempRet0;
+   $1581 = $1579 | $1577;
+   $1582 = $1580 | $1578;
+   $1583 = (_bitshift64Lshr(($587|0),($588|0),8)|0);
+   $1584 = tempRet0;
+   $1585 = (_bitshift64Shl(($587|0),($588|0),56)|0);
+   $1586 = tempRet0;
+   $1587 = $1585 | $1583;
+   $1588 = $1586 | $1584;
+   $1589 = (_bitshift64Lshr(($587|0),($588|0),7)|0);
+   $1590 = tempRet0;
+   $1591 = $1587 ^ $1589;
+   $1592 = $1588 ^ $1590;
+   $1593 = $1591 ^ $1581;
+   $1594 = $1592 ^ $1582;
+   $1595 = (_i64Add(($1593|0),($1594|0),($459|0),($460|0))|0);
+   $1596 = tempRet0;
+   $1597 = (_i64Add(($1595|0),($1596|0),($721|0),($722|0))|0);
+   $1598 = tempRet0;
+   $1599 = (_i64Add(($1597|0),($1598|0),($1575|0),($1576|0))|0);
+   $1600 = tempRet0;
+   $1601 = (_bitshift64Lshr(($1511|0),($1512|0),28)|0);
+   $1602 = tempRet0;
+   $1603 = (_bitshift64Shl(($1511|0),($1512|0),36)|0);
+   $1604 = tempRet0;
+   $1605 = $1603 | $1601;
+   $1606 = $1604 | $1602;
+   $1607 = (_bitshift64Lshr(($1511|0),($1512|0),34)|0);
+   $1608 = tempRet0;
+   $1609 = (_bitshift64Shl(($1511|0),($1512|0),30)|0);
+   $1610 = tempRet0;
+   $1611 = $1609 | $1607;
+   $1612 = $1610 | $1608;
+   $1613 = $1605 ^ $1611;
+   $1614 = $1606 ^ $1612;
+   $1615 = (_bitshift64Lshr(($1511|0),($1512|0),39)|0);
+   $1616 = tempRet0;
+   $1617 = (_bitshift64Shl(($1511|0),($1512|0),25)|0);
+   $1618 = tempRet0;
+   $1619 = $1617 | $1615;
+   $1620 = $1618 | $1616;
+   $1621 = $1613 ^ $1619;
+   $1622 = $1614 ^ $1620;
+   $1623 = $1387 ^ $1263;
+   $1624 = $1388 ^ $1264;
+   $1625 = $1511 & $1623;
+   $1626 = $1512 & $1624;
+   $1627 = $1387 & $1263;
+   $1628 = $1388 & $1264;
+   $1629 = $1625 ^ $1627;
+   $1630 = $1626 ^ $1628;
+   $1631 = (_i64Add(($1621|0),($1622|0),($1629|0),($1630|0))|0);
+   $1632 = tempRet0;
+   $1633 = (_i64Add(($1557|0),($1558|0),($1137|0),($1138|0))|0);
+   $1634 = tempRet0;
+   $1635 = (_i64Add(($1631|0),($1632|0),($1557|0),($1558|0))|0);
+   $1636 = tempRet0;
+   $1637 = (_bitshift64Lshr(($1633|0),($1634|0),14)|0);
+   $1638 = tempRet0;
+   $1639 = (_bitshift64Shl(($1633|0),($1634|0),50)|0);
+   $1640 = tempRet0;
+   $1641 = $1639 | $1637;
+   $1642 = $1640 | $1638;
+   $1643 = (_bitshift64Lshr(($1633|0),($1634|0),18)|0);
+   $1644 = tempRet0;
+   $1645 = (_bitshift64Shl(($1633|0),($1634|0),46)|0);
+   $1646 = tempRet0;
+   $1647 = $1645 | $1643;
+   $1648 = $1646 | $1644;
+   $1649 = $1641 ^ $1647;
+   $1650 = $1642 ^ $1648;
+   $1651 = (_bitshift64Lshr(($1633|0),($1634|0),41)|0);
+   $1652 = tempRet0;
+   $1653 = (_bitshift64Shl(($1633|0),($1634|0),23)|0);
+   $1654 = tempRet0;
+   $1655 = $1653 | $1651;
+   $1656 = $1654 | $1652;
+   $1657 = $1649 ^ $1655;
+   $1658 = $1650 ^ $1656;
+   $1659 = $1633 & $1509;
+   $1660 = $1634 & $1510;
+   $1661 = $1633 ^ -1;
+   $1662 = $1634 ^ -1;
+   $1663 = $1385 & $1661;
+   $1664 = $1386 & $1662;
+   $1665 = $1663 ^ $1659;
+   $1666 = $1664 ^ $1660;
+   $1667 = $$151221$i | 11;
+   $1668 = (8128 + ($1667<<3)|0);
+   $1669 = $1668;
+   $1670 = $1669;
+   $1671 = HEAP32[$1670>>2]|0;
+   $1672 = (($1669) + 4)|0;
+   $1673 = $1672;
+   $1674 = HEAP32[$1673>>2]|0;
+   $1675 = (_i64Add(($1671|0),($1674|0),($587|0),($588|0))|0);
+   $1676 = tempRet0;
+   $1677 = (_i64Add(($1675|0),($1676|0),($1261|0),($1262|0))|0);
+   $1678 = tempRet0;
+   $1679 = (_i64Add(($1677|0),($1678|0),($1665|0),($1666|0))|0);
+   $1680 = tempRet0;
+   $1681 = (_i64Add(($1679|0),($1680|0),($1657|0),($1658|0))|0);
+   $1682 = tempRet0;
+   $1683 = (_bitshift64Lshr(($1475|0),($1476|0),19)|0);
+   $1684 = tempRet0;
+   $1685 = (_bitshift64Shl(($1475|0),($1476|0),45)|0);
+   $1686 = tempRet0;
+   $1687 = $1685 | $1683;
+   $1688 = $1686 | $1684;
+   $1689 = (_bitshift64Lshr(($1475|0),($1476|0),61)|0);
+   $1690 = tempRet0;
+   $1691 = (_bitshift64Shl(($1475|0),($1476|0),3)|0);
+   $1692 = tempRet0;
+   $1693 = $1691 | $1689;
+   $1694 = $1692 | $1690;
+   $1695 = (_bitshift64Lshr(($1475|0),($1476|0),6)|0);
+   $1696 = tempRet0;
+   $1697 = $1693 ^ $1695;
+   $1698 = $1694 ^ $1696;
+   $1699 = $1697 ^ $1687;
+   $1700 = $1698 ^ $1688;
+   $1701 = (_bitshift64Lshr(($715|0),($716|0),1)|0);
+   $1702 = tempRet0;
+   $1703 = (_bitshift64Shl(($715|0),($716|0),63)|0);
+   $1704 = tempRet0;
+   $1705 = $1703 | $1701;
+   $1706 = $1704 | $1702;
+   $1707 = (_bitshift64Lshr(($715|0),($716|0),8)|0);
+   $1708 = tempRet0;
+   $1709 = (_bitshift64Shl(($715|0),($716|0),56)|0);
+   $1710 = tempRet0;
+   $1711 = $1709 | $1707;
+   $1712 = $1710 | $1708;
+   $1713 = (_bitshift64Lshr(($715|0),($716|0),7)|0);
+   $1714 = tempRet0;
+   $1715 = $1711 ^ $1713;
+   $1716 = $1712 ^ $1714;
+   $1717 = $1715 ^ $1705;
+   $1718 = $1716 ^ $1706;
+   $1719 = (_i64Add(($1717|0),($1718|0),($587|0),($588|0))|0);
+   $1720 = tempRet0;
+   $1721 = (_i64Add(($1719|0),($1720|0),($849|0),($850|0))|0);
+   $1722 = tempRet0;
+   $1723 = (_i64Add(($1721|0),($1722|0),($1699|0),($1700|0))|0);
+   $1724 = tempRet0;
+   $1725 = (_bitshift64Lshr(($1635|0),($1636|0),28)|0);
+   $1726 = tempRet0;
+   $1727 = (_bitshift64Shl(($1635|0),($1636|0),36)|0);
+   $1728 = tempRet0;
+   $1729 = $1727 | $1725;
+   $1730 = $1728 | $1726;
+   $1731 = (_bitshift64Lshr(($1635|0),($1636|0),34)|0);
+   $1732 = tempRet0;
+   $1733 = (_bitshift64Shl(($1635|0),($1636|0),30)|0);
+   $1734 = tempRet0;
+   $1735 = $1733 | $1731;
+   $1736 = $1734 | $1732;
+   $1737 = $1729 ^ $1735;
+   $1738 = $1730 ^ $1736;
+   $1739 = (_bitshift64Lshr(($1635|0),($1636|0),39)|0);
+   $1740 = tempRet0;
+   $1741 = (_bitshift64Shl(($1635|0),($1636|0),25)|0);
+   $1742 = tempRet0;
+   $1743 = $1741 | $1739;
+   $1744 = $1742 | $1740;
+   $1745 = $1737 ^ $1743;
+   $1746 = $1738 ^ $1744;
+   $1747 = $1511 ^ $1387;
+   $1748 = $1512 ^ $1388;
+   $1749 = $1635 & $1747;
+   $1750 = $1636 & $1748;
+   $1751 = $1511 & $1387;
+   $1752 = $1512 & $1388;
+   $1753 = $1749 ^ $1751;
+   $1754 = $1750 ^ $1752;
+   $1755 = (_i64Add(($1745|0),($1746|0),($1753|0),($1754|0))|0);
+   $1756 = tempRet0;
+   $1757 = (_i64Add(($1681|0),($1682|0),($1263|0),($1264|0))|0);
+   $1758 = tempRet0;
+   $1759 = (_i64Add(($1755|0),($1756|0),($1681|0),($1682|0))|0);
+   $1760 = tempRet0;
+   $1761 = (_bitshift64Lshr(($1757|0),($1758|0),14)|0);
+   $1762 = tempRet0;
+   $1763 = (_bitshift64Shl(($1757|0),($1758|0),50)|0);
+   $1764 = tempRet0;
+   $1765 = $1763 | $1761;
+   $1766 = $1764 | $1762;
+   $1767 = (_bitshift64Lshr(($1757|0),($1758|0),18)|0);
+   $1768 = tempRet0;
+   $1769 = (_bitshift64Shl(($1757|0),($1758|0),46)|0);
+   $1770 = tempRet0;
+   $1771 = $1769 | $1767;
+   $1772 = $1770 | $1768;
+   $1773 = $1765 ^ $1771;
+   $1774 = $1766 ^ $1772;
+   $1775 = (_bitshift64Lshr(($1757|0),($1758|0),41)|0);
+   $1776 = tempRet0;
+   $1777 = (_bitshift64Shl(($1757|0),($1758|0),23)|0);
+   $1778 = tempRet0;
+   $1779 = $1777 | $1775;
+   $1780 = $1778 | $1776;
+   $1781 = $1773 ^ $1779;
+   $1782 = $1774 ^ $1780;
+   $1783 = $1757 & $1633;
+   $1784 = $1758 & $1634;
+   $1785 = $1757 ^ -1;
+   $1786 = $1758 ^ -1;
+   $1787 = $1509 & $1785;
+   $1788 = $1510 & $1786;
+   $1789 = $1787 ^ $1783;
+   $1790 = $1788 ^ $1784;
+   $1791 = $$151221$i | 12;
+   $1792 = (8128 + ($1791<<3)|0);
+   $1793 = $1792;
+   $1794 = $1793;
+   $1795 = HEAP32[$1794>>2]|0;
+   $1796 = (($1793) + 4)|0;
+   $1797 = $1796;
+   $1798 = HEAP32[$1797>>2]|0;
+   $1799 = (_i64Add(($1795|0),($1798|0),($715|0),($716|0))|0);
+   $1800 = tempRet0;
+   $1801 = (_i64Add(($1799|0),($1800|0),($1385|0),($1386|0))|0);
+   $1802 = tempRet0;
+   $1803 = (_i64Add(($1801|0),($1802|0),($1789|0),($1790|0))|0);
+   $1804 = tempRet0;
+   $1805 = (_i64Add(($1803|0),($1804|0),($1781|0),($1782|0))|0);
+   $1806 = tempRet0;
+   $1807 = (_bitshift64Lshr(($1599|0),($1600|0),19)|0);
+   $1808 = tempRet0;
+   $1809 = (_bitshift64Shl(($1599|0),($1600|0),45)|0);
+   $1810 = tempRet0;
+   $1811 = $1809 | $1807;
+   $1812 = $1810 | $1808;
+   $1813 = (_bitshift64Lshr(($1599|0),($1600|0),61)|0);
+   $1814 = tempRet0;
+   $1815 = (_bitshift64Shl(($1599|0),($1600|0),3)|0);
+   $1816 = tempRet0;
+   $1817 = $1815 | $1813;
+   $1818 = $1816 | $1814;
+   $1819 = (_bitshift64Lshr(($1599|0),($1600|0),6)|0);
+   $1820 = tempRet0;
+   $1821 = $1817 ^ $1819;
+   $1822 = $1818 ^ $1820;
+   $1823 = $1821 ^ $1811;
+   $1824 = $1822 ^ $1812;
+   $1825 = (_bitshift64Lshr(($843|0),($844|0),1)|0);
+   $1826 = tempRet0;
+   $1827 = (_bitshift64Shl(($843|0),($844|0),63)|0);
+   $1828 = tempRet0;
+   $1829 = $1827 | $1825;
+   $1830 = $1828 | $1826;
+   $1831 = (_bitshift64Lshr(($843|0),($844|0),8)|0);
+   $1832 = tempRet0;
+   $1833 = (_bitshift64Shl(($843|0),($844|0),56)|0);
+   $1834 = tempRet0;
+   $1835 = $1833 | $1831;
+   $1836 = $1834 | $1832;
+   $1837 = (_bitshift64Lshr(($843|0),($844|0),7)|0);
+   $1838 = tempRet0;
+   $1839 = $1835 ^ $1837;
+   $1840 = $1836 ^ $1838;
+   $1841 = $1839 ^ $1829;
+   $1842 = $1840 ^ $1830;
+   $1843 = (_i64Add(($1841|0),($1842|0),($715|0),($716|0))|0);
+   $1844 = tempRet0;
+   $1845 = (_i64Add(($1843|0),($1844|0),($975|0),($976|0))|0);
+   $1846 = tempRet0;
+   $1847 = (_i64Add(($1845|0),($1846|0),($1823|0),($1824|0))|0);
+   $1848 = tempRet0;
+   $1849 = (_bitshift64Lshr(($1759|0),($1760|0),28)|0);
+   $1850 = tempRet0;
+   $1851 = (_bitshift64Shl(($1759|0),($1760|0),36)|0);
+   $1852 = tempRet0;
+   $1853 = $1851 | $1849;
+   $1854 = $1852 | $1850;
+   $1855 = (_bitshift64Lshr(($1759|0),($1760|0),34)|0);
+   $1856 = tempRet0;
+   $1857 = (_bitshift64Shl(($1759|0),($1760|0),30)|0);
+   $1858 = tempRet0;
+   $1859 = $1857 | $1855;
+   $1860 = $1858 | $1856;
+   $1861 = $1853 ^ $1859;
+   $1862 = $1854 ^ $1860;
+   $1863 = (_bitshift64Lshr(($1759|0),($1760|0),39)|0);
+   $1864 = tempRet0;
+   $1865 = (_bitshift64Shl(($1759|0),($1760|0),25)|0);
+   $1866 = tempRet0;
+   $1867 = $1865 | $1863;
+   $1868 = $1866 | $1864;
+   $1869 = $1861 ^ $1867;
+   $1870 = $1862 ^ $1868;
+   $1871 = $1635 ^ $1511;
+   $1872 = $1636 ^ $1512;
+   $1873 = $1759 & $1871;
+   $1874 = $1760 & $1872;
+   $1875 = $1635 & $1511;
+   $1876 = $1636 & $1512;
+   $1877 = $1873 ^ $1875;
+   $1878 = $1874 ^ $1876;
+   $1879 = (_i64Add(($1869|0),($1870|0),($1877|0),($1878|0))|0);
+   $1880 = tempRet0;
+   $1881 = (_i64Add(($1805|0),($1806|0),($1387|0),($1388|0))|0);
+   $1882 = tempRet0;
+   $1883 = (_i64Add(($1879|0),($1880|0),($1805|0),($1806|0))|0);
+   $1884 = tempRet0;
+   $1885 = (_bitshift64Lshr(($1881|0),($1882|0),14)|0);
+   $1886 = tempRet0;
+   $1887 = (_bitshift64Shl(($1881|0),($1882|0),50)|0);
+   $1888 = tempRet0;
+   $1889 = $1887 | $1885;
+   $1890 = $1888 | $1886;
+   $1891 = (_bitshift64Lshr(($1881|0),($1882|0),18)|0);
+   $1892 = tempRet0;
+   $1893 = (_bitshift64Shl(($1881|0),($1882|0),46)|0);
+   $1894 = tempRet0;
+   $1895 = $1893 | $1891;
+   $1896 = $1894 | $1892;
+   $1897 = $1889 ^ $1895;
+   $1898 = $1890 ^ $1896;
+   $1899 = (_bitshift64Lshr(($1881|0),($1882|0),41)|0);
+   $1900 = tempRet0;
+   $1901 = (_bitshift64Shl(($1881|0),($1882|0),23)|0);
+   $1902 = tempRet0;
+   $1903 = $1901 | $1899;
+   $1904 = $1902 | $1900;
+   $1905 = $1897 ^ $1903;
+   $1906 = $1898 ^ $1904;
+   $1907 = $1881 & $1757;
+   $1908 = $1882 & $1758;
+   $1909 = $1881 ^ -1;
+   $1910 = $1882 ^ -1;
+   $1911 = $1633 & $1909;
+   $1912 = $1634 & $1910;
+   $1913 = $1911 ^ $1907;
+   $1914 = $1912 ^ $1908;
+   $1915 = $$151221$i | 13;
+   $1916 = (8128 + ($1915<<3)|0);
+   $1917 = $1916;
+   $1918 = $1917;
+   $1919 = HEAP32[$1918>>2]|0;
+   $1920 = (($1917) + 4)|0;
+   $1921 = $1920;
+   $1922 = HEAP32[$1921>>2]|0;
+   $1923 = (_i64Add(($1919|0),($1922|0),($843|0),($844|0))|0);
+   $1924 = tempRet0;
+   $1925 = (_i64Add(($1923|0),($1924|0),($1509|0),($1510|0))|0);
+   $1926 = tempRet0;
+   $1927 = (_i64Add(($1925|0),($1926|0),($1913|0),($1914|0))|0);
+   $1928 = tempRet0;
+   $1929 = (_i64Add(($1927|0),($1928|0),($1905|0),($1906|0))|0);
+   $1930 = tempRet0;
+   $1931 = (_bitshift64Lshr(($1723|0),($1724|0),19)|0);
+   $1932 = tempRet0;
+   $1933 = (_bitshift64Shl(($1723|0),($1724|0),45)|0);
+   $1934 = tempRet0;
+   $1935 = $1933 | $1931;
+   $1936 = $1934 | $1932;
+   $1937 = (_bitshift64Lshr(($1723|0),($1724|0),61)|0);
+   $1938 = tempRet0;
+   $1939 = (_bitshift64Shl(($1723|0),($1724|0),3)|0);
+   $1940 = tempRet0;
+   $1941 = $1939 | $1937;
+   $1942 = $1940 | $1938;
+   $1943 = (_bitshift64Lshr(($1723|0),($1724|0),6)|0);
+   $1944 = tempRet0;
+   $1945 = $1941 ^ $1943;
+   $1946 = $1942 ^ $1944;
+   $1947 = $1945 ^ $1935;
+   $1948 = $1946 ^ $1936;
+   $1949 = (_bitshift64Lshr(($281|0),($282|0),1)|0);
+   $1950 = tempRet0;
+   $1951 = (_bitshift64Shl(($281|0),($282|0),63)|0);
+   $1952 = tempRet0;
+   $1953 = $1951 | $1949;
+   $1954 = $1952 | $1950;
+   $1955 = (_bitshift64Lshr(($281|0),($282|0),8)|0);
+   $1956 = tempRet0;
+   $1957 = (_bitshift64Shl(($281|0),($282|0),56)|0);
+   $1958 = tempRet0;
+   $1959 = $1957 | $1955;
+   $1960 = $1958 | $1956;
+   $1961 = (_bitshift64Lshr(($281|0),($282|0),7)|0);
+   $1962 = tempRet0;
+   $1963 = $1959 ^ $1961;
+   $1964 = $1960 ^ $1962;
+   $1965 = $1963 ^ $1953;
+   $1966 = $1964 ^ $1954;
+   $1967 = (_i64Add(($1965|0),($1966|0),($843|0),($844|0))|0);
+   $1968 = tempRet0;
+   $1969 = (_i64Add(($1967|0),($1968|0),($1101|0),($1102|0))|0);
+   $1970 = tempRet0;
+   $1971 = (_i64Add(($1969|0),($1970|0),($1947|0),($1948|0))|0);
+   $1972 = tempRet0;
+   $1973 = (_bitshift64Lshr(($1883|0),($1884|0),28)|0);
+   $1974 = tempRet0;
+   $1975 = (_bitshift64Shl(($1883|0),($1884|0),36)|0);
+   $1976 = tempRet0;
+   $1977 = $1975 | $1973;
+   $1978 = $1976 | $1974;
+   $1979 = (_bitshift64Lshr(($1883|0),($1884|0),34)|0);
+   $1980 = tempRet0;
+   $1981 = (_bitshift64Shl(($1883|0),($1884|0),30)|0);
+   $1982 = tempRet0;
+   $1983 = $1981 | $1979;
+   $1984 = $1982 | $1980;
+   $1985 = $1977 ^ $1983;
+   $1986 = $1978 ^ $1984;
+   $1987 = (_bitshift64Lshr(($1883|0),($1884|0),39)|0);
+   $1988 = tempRet0;
+   $1989 = (_bitshift64Shl(($1883|0),($1884|0),25)|0);
+   $1990 = tempRet0;
+   $1991 = $1989 | $1987;
+   $1992 = $1990 | $1988;
+   $1993 = $1985 ^ $1991;
+   $1994 = $1986 ^ $1992;
+   $1995 = $1759 ^ $1635;
+   $1996 = $1760 ^ $1636;
+   $1997 = $1883 & $1995;
+   $1998 = $1884 & $1996;
+   $1999 = $1759 & $1635;
+   $2000 = $1760 & $1636;
+   $2001 = $1997 ^ $1999;
+   $2002 = $1998 ^ $2000;
+   $2003 = (_i64Add(($1993|0),($1994|0),($2001|0),($2002|0))|0);
+   $2004 = tempRet0;
+   $2005 = (_i64Add(($1929|0),($1930|0),($1511|0),($1512|0))|0);
+   $2006 = tempRet0;
+   $2007 = (_i64Add(($2003|0),($2004|0),($1929|0),($1930|0))|0);
+   $2008 = tempRet0;
+   $2009 = (_bitshift64Lshr(($2005|0),($2006|0),14)|0);
+   $2010 = tempRet0;
+   $2011 = (_bitshift64Shl(($2005|0),($2006|0),50)|0);
+   $2012 = tempRet0;
+   $2013 = $2011 | $2009;
+   $2014 = $2012 | $2010;
+   $2015 = (_bitshift64Lshr(($2005|0),($2006|0),18)|0);
+   $2016 = tempRet0;
+   $2017 = (_bitshift64Shl(($2005|0),($2006|0),46)|0);
+   $2018 = tempRet0;
+   $2019 = $2017 | $2015;
+   $2020 = $2018 | $2016;
+   $2021 = $2013 ^ $2019;
+   $2022 = $2014 ^ $2020;
+   $2023 = (_bitshift64Lshr(($2005|0),($2006|0),41)|0);
+   $2024 = tempRet0;
+   $2025 = (_bitshift64Shl(($2005|0),($2006|0),23)|0);
+   $2026 = tempRet0;
+   $2027 = $2025 | $2023;
+   $2028 = $2026 | $2024;
+   $2029 = $2021 ^ $2027;
+   $2030 = $2022 ^ $2028;
+   $2031 = $2005 & $1881;
+   $2032 = $2006 & $1882;
+   $2033 = $2005 ^ -1;
+   $2034 = $2006 ^ -1;
+   $2035 = $1757 & $2033;
+   $2036 = $1758 & $2034;
+   $2037 = $2035 ^ $2031;
+   $2038 = $2036 ^ $2032;
+   $2039 = $$151221$i | 14;
+   $2040 = (8128 + ($2039<<3)|0);
+   $2041 = $2040;
+   $2042 = $2041;
+   $2043 = HEAP32[$2042>>2]|0;
+   $2044 = (($2041) + 4)|0;
+   $2045 = $2044;
+   $2046 = HEAP32[$2045>>2]|0;
+   $2047 = (_i64Add(($2043|0),($2046|0),($281|0),($282|0))|0);
+   $2048 = tempRet0;
+   $2049 = (_i64Add(($2047|0),($2048|0),($1633|0),($1634|0))|0);
+   $2050 = tempRet0;
+   $2051 = (_i64Add(($2049|0),($2050|0),($2037|0),($2038|0))|0);
+   $2052 = tempRet0;
+   $2053 = (_i64Add(($2051|0),($2052|0),($2029|0),($2030|0))|0);
+   $2054 = tempRet0;
+   $2055 = (_bitshift64Lshr(($1847|0),($1848|0),19)|0);
+   $2056 = tempRet0;
+   $2057 = (_bitshift64Shl(($1847|0),($1848|0),45)|0);
+   $2058 = tempRet0;
+   $2059 = $2057 | $2055;
+   $2060 = $2058 | $2056;
+   $2061 = (_bitshift64Lshr(($1847|0),($1848|0),61)|0);
+   $2062 = tempRet0;
+   $2063 = (_bitshift64Shl(($1847|0),($1848|0),3)|0);
+   $2064 = tempRet0;
+   $2065 = $2063 | $2061;
+   $2066 = $2064 | $2062;
+   $2067 = (_bitshift64Lshr(($1847|0),($1848|0),6)|0);
+   $2068 = tempRet0;
+   $2069 = $2065 ^ $2067;
+   $2070 = $2066 ^ $2068;
+   $2071 = $2069 ^ $2059;
+   $2072 = $2070 ^ $2060;
+   $2073 = (_bitshift64Lshr(($419|0),($420|0),1)|0);
+   $2074 = tempRet0;
+   $2075 = (_bitshift64Shl(($419|0),($420|0),63)|0);
+   $2076 = tempRet0;
+   $2077 = $2075 | $2073;
+   $2078 = $2076 | $2074;
+   $2079 = (_bitshift64Lshr(($419|0),($420|0),8)|0);
+   $2080 = tempRet0;
+   $2081 = (_bitshift64Shl(($419|0),($420|0),56)|0);
+   $2082 = tempRet0;
+   $2083 = $2081 | $2079;
+   $2084 = $2082 | $2080;
+   $2085 = (_bitshift64Lshr(($419|0),($420|0),7)|0);
+   $2086 = tempRet0;
+   $2087 = $2083 ^ $2085;
+   $2088 = $2084 ^ $2086;
+   $2089 = $2087 ^ $2077;
+   $2090 = $2088 ^ $2078;
+   $2091 = (_i64Add(($2089|0),($2090|0),($281|0),($282|0))|0);
+   $2092 = tempRet0;
+   $2093 = (_i64Add(($2091|0),($2092|0),($1227|0),($1228|0))|0);
+   $2094 = tempRet0;
+   $2095 = (_i64Add(($2093|0),($2094|0),($2071|0),($2072|0))|0);
+   $2096 = tempRet0;
+   $2097 = (_bitshift64Lshr(($2007|0),($2008|0),28)|0);
+   $2098 = tempRet0;
+   $2099 = (_bitshift64Shl(($2007|0),($2008|0),36)|0);
+   $2100 = tempRet0;
+   $2101 = $2099 | $2097;
+   $2102 = $2100 | $2098;
+   $2103 = (_bitshift64Lshr(($2007|0),($2008|0),34)|0);
+   $2104 = tempRet0;
+   $2105 = (_bitshift64Shl(($2007|0),($2008|0),30)|0);
+   $2106 = tempRet0;
+   $2107 = $2105 | $2103;
+   $2108 = $2106 | $2104;
+   $2109 = $2101 ^ $2107;
+   $2110 = $2102 ^ $2108;
+   $2111 = (_bitshift64Lshr(($2007|0),($2008|0),39)|0);
+   $2112 = tempRet0;
+   $2113 = (_bitshift64Shl(($2007|0),($2008|0),25)|0);
+   $2114 = tempRet0;
+   $2115 = $2113 | $2111;
+   $2116 = $2114 | $2112;
+   $2117 = $2109 ^ $2115;
+   $2118 = $2110 ^ $2116;
+   $2119 = $1883 ^ $1759;
+   $2120 = $1884 ^ $1760;
+   $2121 = $2007 & $2119;
+   $2122 = $2008 & $2120;
+   $2123 = $1883 & $1759;
+   $2124 = $1884 & $1760;
+   $2125 = $2121 ^ $2123;
+   $2126 = $2122 ^ $2124;
+   $2127 = (_i64Add(($2117|0),($2118|0),($2125|0),($2126|0))|0);
+   $2128 = tempRet0;
+   $2129 = (_i64Add(($2053|0),($2054|0),($1635|0),($1636|0))|0);
+   $2130 = tempRet0;
+   $2131 = (_i64Add(($2127|0),($2128|0),($2053|0),($2054|0))|0);
+   $2132 = tempRet0;
+   $2133 = (_bitshift64Lshr(($2129|0),($2130|0),14)|0);
+   $2134 = tempRet0;
+   $2135 = (_bitshift64Shl(($2129|0),($2130|0),50)|0);
+   $2136 = tempRet0;
+   $2137 = $2135 | $2133;
+   $2138 = $2136 | $2134;
+   $2139 = (_bitshift64Lshr(($2129|0),($2130|0),18)|0);
+   $2140 = tempRet0;
+   $2141 = (_bitshift64Shl(($2129|0),($2130|0),46)|0);
+   $2142 = tempRet0;
+   $2143 = $2141 | $2139;
+   $2144 = $2142 | $2140;
+   $2145 = $2137 ^ $2143;
+   $2146 = $2138 ^ $2144;
+   $2147 = (_bitshift64Lshr(($2129|0),($2130|0),41)|0);
+   $2148 = tempRet0;
+   $2149 = (_bitshift64Shl(($2129|0),($2130|0),23)|0);
+   $2150 = tempRet0;
+   $2151 = $2149 | $2147;
+   $2152 = $2150 | $2148;
+   $2153 = $2145 ^ $2151;
+   $2154 = $2146 ^ $2152;
+   $2155 = $2129 & $2005;
+   $2156 = $2130 & $2006;
+   $2157 = $2129 ^ -1;
+   $2158 = $2130 ^ -1;
+   $2159 = $1881 & $2157;
+   $2160 = $1882 & $2158;
+   $2161 = $2159 ^ $2155;
+   $2162 = $2160 ^ $2156;
+   $2163 = $$151221$i | 15;
+   $2164 = (8128 + ($2163<<3)|0);
+   $2165 = $2164;
+   $2166 = $2165;
+   $2167 = HEAP32[$2166>>2]|0;
+   $2168 = (($2165) + 4)|0;
+   $2169 = $2168;
+   $2170 = HEAP32[$2169>>2]|0;
+   $2171 = (_i64Add(($2167|0),($2170|0),($419|0),($420|0))|0);
+   $2172 = tempRet0;
+   $2173 = (_i64Add(($2171|0),($2172|0),($1757|0),($1758|0))|0);
+   $2174 = tempRet0;
+   $2175 = (_i64Add(($2173|0),($2174|0),($2161|0),($2162|0))|0);
+   $2176 = tempRet0;
+   $2177 = (_i64Add(($2175|0),($2176|0),($2153|0),($2154|0))|0);
+   $2178 = tempRet0;
+   $2179 = (_bitshift64Lshr(($1971|0),($1972|0),19)|0);
+   $2180 = tempRet0;
+   $2181 = (_bitshift64Shl(($1971|0),($1972|0),45)|0);
+   $2182 = tempRet0;
+   $2183 = $2181 | $2179;
+   $2184 = $2182 | $2180;
+   $2185 = (_bitshift64Lshr(($1971|0),($1972|0),61)|0);
+   $2186 = tempRet0;
+   $2187 = (_bitshift64Shl(($1971|0),($1972|0),3)|0);
+   $2188 = tempRet0;
+   $2189 = $2187 | $2185;
+   $2190 = $2188 | $2186;
+   $2191 = (_bitshift64Lshr(($1971|0),($1972|0),6)|0);
+   $2192 = tempRet0;
+   $2193 = $2189 ^ $2191;
+   $2194 = $2190 ^ $2192;
+   $2195 = $2193 ^ $2183;
+   $2196 = $2194 ^ $2184;
+   $2197 = (_bitshift64Lshr(($327|0),($328|0),1)|0);
+   $2198 = tempRet0;
+   $2199 = (_bitshift64Shl(($327|0),($328|0),63)|0);
+   $2200 = tempRet0;
+   $2201 = $2199 | $2197;
+   $2202 = $2200 | $2198;
+   $2203 = (_bitshift64Lshr(($327|0),($328|0),8)|0);
+   $2204 = tempRet0;
+   $2205 = (_bitshift64Shl(($327|0),($328|0),56)|0);
+   $2206 = tempRet0;
+   $2207 = $2205 | $2203;
+   $2208 = $2206 | $2204;
+   $2209 = (_bitshift64Lshr(($327|0),($328|0),7)|0);
+   $2210 = tempRet0;
+   $2211 = $2207 ^ $2209;
+   $2212 = $2208 ^ $2210;
+   $2213 = $2211 ^ $2201;
+   $2214 = $2212 ^ $2202;
+   $2215 = (_i64Add(($2213|0),($2214|0),($419|0),($420|0))|0);
+   $2216 = tempRet0;
+   $2217 = (_i64Add(($2215|0),($2216|0),($1351|0),($1352|0))|0);
+   $2218 = tempRet0;
+   $2219 = (_i64Add(($2217|0),($2218|0),($2195|0),($2196|0))|0);
+   $2220 = tempRet0;
+   $2221 = (_bitshift64Lshr(($2131|0),($2132|0),28)|0);
+   $2222 = tempRet0;
+   $2223 = (_bitshift64Shl(($2131|0),($2132|0),36)|0);
+   $2224 = tempRet0;
+   $2225 = $2223 | $2221;
+   $2226 = $2224 | $2222;
+   $2227 = (_bitshift64Lshr(($2131|0),($2132|0),34)|0);
+   $2228 = tempRet0;
+   $2229 = (_bitshift64Shl(($2131|0),($2132|0),30)|0);
+   $2230 = tempRet0;
+   $2231 = $2229 | $2227;
+   $2232 = $2230 | $2228;
+   $2233 = $2225 ^ $2231;
+   $2234 = $2226 ^ $2232;
+   $2235 = (_bitshift64Lshr(($2131|0),($2132|0),39)|0);
+   $2236 = tempRet0;
+   $2237 = (_bitshift64Shl(($2131|0),($2132|0),25)|0);
+   $2238 = tempRet0;
+   $2239 = $2237 | $2235;
+   $2240 = $2238 | $2236;
+   $2241 = $2233 ^ $2239;
+   $2242 = $2234 ^ $2240;
+   $2243 = $2007 ^ $1883;
+   $2244 = $2008 ^ $1884;
+   $2245 = $2131 & $2243;
+   $2246 = $2132 & $2244;
+   $2247 = $2007 & $1883;
+   $2248 = $2008 & $1884;
+   $2249 = $2245 ^ $2247;
+   $2250 = $2246 ^ $2248;
+   $2251 = (_i64Add(($2241|0),($2242|0),($2249|0),($2250|0))|0);
+   $2252 = tempRet0;
+   $2253 = (_i64Add(($2177|0),($2178|0),($1759|0),($1760|0))|0);
+   $2254 = tempRet0;
+   $2255 = (_i64Add(($2251|0),($2252|0),($2177|0),($2178|0))|0);
+   $2256 = tempRet0;
+   $2257 = (($$151221$i) + 16)|0;
+   $2258 = ($2257>>>0)<(64);
+   if ($2258) {
+    $$151221$i = $2257;$1077 = $1227;$1078 = $1228;$1203 = $1351;$1204 = 
$1352;$226 = $2253;$227 = $2254;$251 = $2129;$253 = $2130;$257 = $2005;$259 = 
$2006;$269 = $1881;$270 = $1882;$271 = $327;$272 = $328;$281 = $2095;$282 = 
$2096;$301 = $465;$302 = $466;$321 = $1475;$322 = $1476;$329 = $2255;$330 = 
$2256;$354 = $2007;$355 = $2131;$357 = $2008;$358 = $2132;$367 = $1883;$368 = 
$1884;$419 = $2219;$420 = $2220;$439 = $593;$440 = $594;$459 = $1599;$460 = 
$1600;$567 = $721;$568 = $722;$587  [...]
+   } else {
+    break;
+   }
+  }
+  $2259 = $3;
+  $2260 = $2259;
+  HEAP32[$2260>>2] = $327;
+  $2261 = (($2259) + 4)|0;
+  $2262 = $2261;
+  HEAP32[$2262>>2] = $328;
+  $2263 = $12;
+  $2264 = $2263;
+  HEAP32[$2264>>2] = $2095;
+  $2265 = (($2263) + 4)|0;
+  $2266 = $2265;
+  HEAP32[$2266>>2] = $2096;
+  $2267 = $13;
+  $2268 = $2267;
+  HEAP32[$2268>>2] = $1475;
+  $2269 = (($2267) + 4)|0;
+  $2270 = $2269;
+  HEAP32[$2270>>2] = $1476;
+  $2271 = $14;
+  $2272 = $2271;
+  HEAP32[$2272>>2] = $465;
+  $2273 = (($2271) + 4)|0;
+  $2274 = $2273;
+  HEAP32[$2274>>2] = $466;
+  $2275 = $15;
+  $2276 = $2275;
+  HEAP32[$2276>>2] = $2219;
+  $2277 = (($2275) + 4)|0;
+  $2278 = $2277;
+  HEAP32[$2278>>2] = $2220;
+  $2279 = $16;
+  $2280 = $2279;
+  HEAP32[$2280>>2] = $1599;
+  $2281 = (($2279) + 4)|0;
+  $2282 = $2281;
+  HEAP32[$2282>>2] = $1600;
+  $2283 = $17;
+  $2284 = $2283;
+  HEAP32[$2284>>2] = $593;
+  $2285 = (($2283) + 4)|0;
+  $2286 = $2285;
+  HEAP32[$2286>>2] = $594;
+  $2287 = $18;
+  $2288 = $2287;
+  HEAP32[$2288>>2] = $1723;
+  $2289 = (($2287) + 4)|0;
+  $2290 = $2289;
+  HEAP32[$2290>>2] = $1724;
+  $2291 = $19;
+  $2292 = $2291;
+  HEAP32[$2292>>2] = $721;
+  $2293 = (($2291) + 4)|0;
+  $2294 = $2293;
+  HEAP32[$2294>>2] = $722;
+  $2295 = $20;
+  $2296 = $2295;
+  HEAP32[$2296>>2] = $1847;
+  $2297 = (($2295) + 4)|0;
+  $2298 = $2297;
+  HEAP32[$2298>>2] = $1848;
+  $2299 = $21;
+  $2300 = $2299;
+  HEAP32[$2300>>2] = $849;
+  $2301 = (($2299) + 4)|0;
+  $2302 = $2301;
+  HEAP32[$2302>>2] = $850;
+  $2303 = $22;
+  $2304 = $2303;
+  HEAP32[$2304>>2] = $1971;
+  $2305 = (($2303) + 4)|0;
+  $2306 = $2305;
+  HEAP32[$2306>>2] = $1972;
+  $2307 = $23;
+  $2308 = $2307;
+  HEAP32[$2308>>2] = $975;
+  $2309 = (($2307) + 4)|0;
+  $2310 = $2309;
+  HEAP32[$2310>>2] = $976;
+  $2311 = $24;
+  $2312 = $2311;
+  HEAP32[$2312>>2] = $1101;
+  $2313 = (($2311) + 4)|0;
+  $2314 = $2313;
+  HEAP32[$2314>>2] = $1102;
+  $2315 = $25;
+  $2316 = $2315;
+  HEAP32[$2316>>2] = $1227;
+  $2317 = (($2315) + 4)|0;
+  $2318 = $2317;
+  HEAP32[$2318>>2] = $1228;
+  $2319 = $26;
+  $2320 = $2319;
+  HEAP32[$2320>>2] = $1351;
+  $2321 = (($2319) + 4)|0;
+  $2322 = $2321;
+  HEAP32[$2322>>2] = $1352;
+  $2323 = (_bitshift64Lshr(($2253|0),($2254|0),14)|0);
+  $2324 = tempRet0;
+  $2325 = (_bitshift64Shl(($2253|0),($2254|0),50)|0);
+  $2326 = tempRet0;
+  $2327 = $2325 | $2323;
+  $2328 = $2326 | $2324;
+  $2329 = (_bitshift64Lshr(($2253|0),($2254|0),18)|0);
+  $2330 = tempRet0;
+  $2331 = (_bitshift64Shl(($2253|0),($2254|0),46)|0);
+  $2332 = tempRet0;
+  $2333 = $2331 | $2329;
+  $2334 = $2332 | $2330;
+  $2335 = $2327 ^ $2333;
+  $2336 = $2328 ^ $2334;
+  $2337 = (_bitshift64Lshr(($2253|0),($2254|0),41)|0);
+  $2338 = tempRet0;
+  $2339 = (_bitshift64Shl(($2253|0),($2254|0),23)|0);
+  $2340 = tempRet0;
+  $2341 = $2339 | $2337;
+  $2342 = $2340 | $2338;
+  $2343 = $2335 ^ $2341;
+  $2344 = $2336 ^ $2342;
+  $2345 = $2253 & $2129;
+  $2346 = $2254 & $2130;
+  $2347 = $2253 ^ -1;
+  $2348 = $2254 ^ -1;
+  $2349 = $2005 & $2347;
+  $2350 = $2006 & $2348;
+  $2351 = $2349 ^ $2345;
+  $2352 = $2350 ^ $2346;
+  $2353 = (_i64Add(($327|0),($328|0),-366583396,-903397682)|0);
+  $2354 = tempRet0;
+  $2355 = (_i64Add(($2353|0),($2354|0),($1881|0),($1882|0))|0);
+  $2356 = tempRet0;
+  $2357 = (_i64Add(($2355|0),($2356|0),($2351|0),($2352|0))|0);
+  $2358 = tempRet0;
+  $2359 = (_i64Add(($2357|0),($2358|0),($2343|0),($2344|0))|0);
+  $2360 = tempRet0;
+  $2361 = (_bitshift64Lshr(($2255|0),($2256|0),28)|0);
+  $2362 = tempRet0;
+  $2363 = (_bitshift64Shl(($2255|0),($2256|0),36)|0);
+  $2364 = tempRet0;
+  $2365 = $2363 | $2361;
+  $2366 = $2364 | $2362;
+  $2367 = (_bitshift64Lshr(($2255|0),($2256|0),34)|0);
+  $2368 = tempRet0;
+  $2369 = (_bitshift64Shl(($2255|0),($2256|0),30)|0);
+  $2370 = tempRet0;
+  $2371 = $2369 | $2367;
+  $2372 = $2370 | $2368;
+  $2373 = $2365 ^ $2371;
+  $2374 = $2366 ^ $2372;
+  $2375 = (_bitshift64Lshr(($2255|0),($2256|0),39)|0);
+  $2376 = tempRet0;
+  $2377 = (_bitshift64Shl(($2255|0),($2256|0),25)|0);
+  $2378 = tempRet0;
+  $2379 = $2377 | $2375;
+  $2380 = $2378 | $2376;
+  $2381 = $2373 ^ $2379;
+  $2382 = $2374 ^ $2380;
+  $2383 = $2131 ^ $2007;
+  $2384 = $2132 ^ $2008;
+  $2385 = $2255 & $2383;
+  $2386 = $2256 & $2384;
+  $2387 = $2131 & $2007;
+  $2388 = $2132 & $2008;
+  $2389 = $2385 ^ $2387;
+  $2390 = $2386 ^ $2388;
+  $2391 = (_i64Add(($2381|0),($2382|0),($2389|0),($2390|0))|0);
+  $2392 = tempRet0;
+  $2393 = (_i64Add(($2359|0),($2360|0),($1883|0),($1884|0))|0);
+  $2394 = tempRet0;
+  $2395 = (_i64Add(($2391|0),($2392|0),($2359|0),($2360|0))|0);
+  $2396 = tempRet0;
+  $2397 = (_bitshift64Lshr(($2393|0),($2394|0),14)|0);
+  $2398 = tempRet0;
+  $2399 = (_bitshift64Shl(($2393|0),($2394|0),50)|0);
+  $2400 = tempRet0;
+  $2401 = $2399 | $2397;
+  $2402 = $2400 | $2398;
+  $2403 = (_bitshift64Lshr(($2393|0),($2394|0),18)|0);
+  $2404 = tempRet0;
+  $2405 = (_bitshift64Shl(($2393|0),($2394|0),46)|0);
+  $2406 = tempRet0;
+  $2407 = $2405 | $2403;
+  $2408 = $2406 | $2404;
+  $2409 = $2401 ^ $2407;
+  $2410 = $2402 ^ $2408;
+  $2411 = (_bitshift64Lshr(($2393|0),($2394|0),41)|0);
+  $2412 = tempRet0;
+  $2413 = (_bitshift64Shl(($2393|0),($2394|0),23)|0);
+  $2414 = tempRet0;
+  $2415 = $2413 | $2411;
+  $2416 = $2414 | $2412;
+  $2417 = $2409 ^ $2415;
+  $2418 = $2410 ^ $2416;
+  $2419 = $2393 & $2253;
+  $2420 = $2394 & $2254;
+  $2421 = $2393 ^ -1;
+  $2422 = $2394 ^ -1;
+  $2423 = $2129 & $2421;
+  $2424 = $2130 & $2422;
+  $2425 = $2423 ^ $2419;
+  $2426 = $2424 ^ $2420;
+  $2427 = (_i64Add(($465|0),($466|0),566280711,-779700025)|0);
+  $2428 = tempRet0;
+  $2429 = (_i64Add(($2427|0),($2428|0),($2005|0),($2006|0))|0);
+  $2430 = tempRet0;
+  $2431 = (_i64Add(($2429|0),($2430|0),($2425|0),($2426|0))|0);
+  $2432 = tempRet0;
+  $2433 = (_i64Add(($2431|0),($2432|0),($2417|0),($2418|0))|0);
+  $2434 = tempRet0;
+  $2435 = (_bitshift64Lshr(($2395|0),($2396|0),28)|0);
+  $2436 = tempRet0;
+  $2437 = (_bitshift64Shl(($2395|0),($2396|0),36)|0);
+  $2438 = tempRet0;
+  $2439 = $2437 | $2435;
+  $2440 = $2438 | $2436;
+  $2441 = (_bitshift64Lshr(($2395|0),($2396|0),34)|0);
+  $2442 = tempRet0;
+  $2443 = (_bitshift64Shl(($2395|0),($2396|0),30)|0);
+  $2444 = tempRet0;
+  $2445 = $2443 | $2441;
+  $2446 = $2444 | $2442;
+  $2447 = $2439 ^ $2445;
+  $2448 = $2440 ^ $2446;
+  $2449 = (_bitshift64Lshr(($2395|0),($2396|0),39)|0);
+  $2450 = tempRet0;
+  $2451 = (_bitshift64Shl(($2395|0),($2396|0),25)|0);
+  $2452 = tempRet0;
+  $2453 = $2451 | $2449;
+  $2454 = $2452 | $2450;
+  $2455 = $2447 ^ $2453;
+  $2456 = $2448 ^ $2454;
+  $2457 = $2255 ^ $2131;
+  $2458 = $2256 ^ $2132;
+  $2459 = $2395 & $2457;
+  $2460 = $2396 & $2458;
+  $2461 = $2255 & $2131;
+  $2462 = $2256 & $2132;
+  $2463 = $2459 ^ $2461;
+  $2464 = $2460 ^ $2462;
+  $2465 = (_i64Add(($2455|0),($2456|0),($2463|0),($2464|0))|0);
+  $2466 = tempRet0;
+  $2467 = (_i64Add(($2433|0),($2434|0),($2007|0),($2008|0))|0);
+  $2468 = tempRet0;
+  $2469 = (_i64Add(($2465|0),($2466|0),($2433|0),($2434|0))|0);
+  $2470 = tempRet0;
+  $2471 = (_bitshift64Lshr(($2467|0),($2468|0),14)|0);
+  $2472 = tempRet0;
+  $2473 = (_bitshift64Shl(($2467|0),($2468|0),50)|0);
+  $2474 = tempRet0;
+  $2475 = $2473 | $2471;
+  $2476 = $2474 | $2472;
+  $2477 = (_bitshift64Lshr(($2467|0),($2468|0),18)|0);
+  $2478 = tempRet0;
+  $2479 = (_bitshift64Shl(($2467|0),($2468|0),46)|0);
+  $2480 = tempRet0;
+  $2481 = $2479 | $2477;
+  $2482 = $2480 | $2478;
+  $2483 = $2475 ^ $2481;
+  $2484 = $2476 ^ $2482;
+  $2485 = (_bitshift64Lshr(($2467|0),($2468|0),41)|0);
+  $2486 = tempRet0;
+  $2487 = (_bitshift64Shl(($2467|0),($2468|0),23)|0);
+  $2488 = tempRet0;
+  $2489 = $2487 | $2485;
+  $2490 = $2488 | $2486;
+  $2491 = $2483 ^ $2489;
+  $2492 = $2484 ^ $2490;
+  $2493 = $2467 & $2393;
+  $2494 = $2468 & $2394;
+  $2495 = $2467 ^ -1;
+  $2496 = $2468 ^ -1;
+  $2497 = $2253 & $2495;
+  $2498 = $2254 & $2496;
+  $2499 = $2497 ^ $2493;
+  $2500 = $2498 ^ $2494;
+  $2501 = (_i64Add(($593|0),($594|0),-840897762,-354779690)|0);
+  $2502 = tempRet0;
+  $2503 = (_i64Add(($2501|0),($2502|0),($2129|0),($2130|0))|0);
+  $2504 = tempRet0;
+  $2505 = (_i64Add(($2503|0),($2504|0),($2499|0),($2500|0))|0);
+  $2506 = tempRet0;
+  $2507 = (_i64Add(($2505|0),($2506|0),($2491|0),($2492|0))|0);
+  $2508 = tempRet0;
+  $2509 = (_bitshift64Lshr(($2469|0),($2470|0),28)|0);
+  $2510 = tempRet0;
+  $2511 = (_bitshift64Shl(($2469|0),($2470|0),36)|0);
+  $2512 = tempRet0;
+  $2513 = $2511 | $2509;
+  $2514 = $2512 | $2510;
+  $2515 = (_bitshift64Lshr(($2469|0),($2470|0),34)|0);
+  $2516 = tempRet0;
+  $2517 = (_bitshift64Shl(($2469|0),($2470|0),30)|0);
+  $2518 = tempRet0;
+  $2519 = $2517 | $2515;
+  $2520 = $2518 | $2516;
+  $2521 = $2513 ^ $2519;
+  $2522 = $2514 ^ $2520;
+  $2523 = (_bitshift64Lshr(($2469|0),($2470|0),39)|0);
+  $2524 = tempRet0;
+  $2525 = (_bitshift64Shl(($2469|0),($2470|0),25)|0);
+  $2526 = tempRet0;
+  $2527 = $2525 | $2523;
+  $2528 = $2526 | $2524;
+  $2529 = $2521 ^ $2527;
+  $2530 = $2522 ^ $2528;
+  $2531 = $2395 ^ $2255;
+  $2532 = $2396 ^ $2256;
+  $2533 = $2469 & $2531;
+  $2534 = $2470 & $2532;
+  $2535 = $2395 & $2255;
+  $2536 = $2396 & $2256;
+  $2537 = $2533 ^ $2535;
+  $2538 = $2534 ^ $2536;
+  $2539 = (_i64Add(($2529|0),($2530|0),($2537|0),($2538|0))|0);
+  $2540 = tempRet0;
+  $2541 = (_i64Add(($2507|0),($2508|0),($2131|0),($2132|0))|0);
+  $2542 = tempRet0;
+  $2543 = (_i64Add(($2539|0),($2540|0),($2507|0),($2508|0))|0);
+  $2544 = tempRet0;
+  $2545 = (_bitshift64Lshr(($2541|0),($2542|0),14)|0);
+  $2546 = tempRet0;
+  $2547 = (_bitshift64Shl(($2541|0),($2542|0),50)|0);
+  $2548 = tempRet0;
+  $2549 = $2547 | $2545;
+  $2550 = $2548 | $2546;
+  $2551 = (_bitshift64Lshr(($2541|0),($2542|0),18)|0);
+  $2552 = tempRet0;
+  $2553 = (_bitshift64Shl(($2541|0),($2542|0),46)|0);
+  $2554 = tempRet0;
+  $2555 = $2553 | $2551;
+  $2556 = $2554 | $2552;
+  $2557 = $2549 ^ $2555;
+  $2558 = $2550 ^ $2556;
+  $2559 = (_bitshift64Lshr(($2541|0),($2542|0),41)|0);
+  $2560 = tempRet0;
+  $2561 = (_bitshift64Shl(($2541|0),($2542|0),23)|0);
+  $2562 = tempRet0;
+  $2563 = $2561 | $2559;
+  $2564 = $2562 | $2560;
+  $2565 = $2557 ^ $2563;
+  $2566 = $2558 ^ $2564;
+  $2567 = $2541 & $2467;
+  $2568 = $2542 & $2468;
+  $2569 = $2541 ^ -1;
+  $2570 = $2542 ^ -1;
+  $2571 = $2393 & $2569;
+  $2572 = $2394 & $2570;
+  $2573 = $2571 ^ $2567;
+  $2574 = $2572 ^ $2568;
+  $2575 = (_i64Add(($721|0),($722|0),-294727304,-176337025)|0);
+  $2576 = tempRet0;
+  $2577 = (_i64Add(($2575|0),($2576|0),($2253|0),($2254|0))|0);
+  $2578 = tempRet0;
+  $2579 = (_i64Add(($2577|0),($2578|0),($2573|0),($2574|0))|0);
+  $2580 = tempRet0;
+  $2581 = (_i64Add(($2579|0),($2580|0),($2565|0),($2566|0))|0);
+  $2582 = tempRet0;
+  $2583 = (_bitshift64Lshr(($2543|0),($2544|0),28)|0);
+  $2584 = tempRet0;
+  $2585 = (_bitshift64Shl(($2543|0),($2544|0),36)|0);
+  $2586 = tempRet0;
+  $2587 = $2585 | $2583;
+  $2588 = $2586 | $2584;
+  $2589 = (_bitshift64Lshr(($2543|0),($2544|0),34)|0);
+  $2590 = tempRet0;
+  $2591 = (_bitshift64Shl(($2543|0),($2544|0),30)|0);
+  $2592 = tempRet0;
+  $2593 = $2591 | $2589;
+  $2594 = $2592 | $2590;
+  $2595 = $2587 ^ $2593;
+  $2596 = $2588 ^ $2594;
+  $2597 = (_bitshift64Lshr(($2543|0),($2544|0),39)|0);
+  $2598 = tempRet0;
+  $2599 = (_bitshift64Shl(($2543|0),($2544|0),25)|0);
+  $2600 = tempRet0;
+  $2601 = $2599 | $2597;
+  $2602 = $2600 | $2598;
+  $2603 = $2595 ^ $2601;
+  $2604 = $2596 ^ $2602;
+  $2605 = $2469 ^ $2395;
+  $2606 = $2470 ^ $2396;
+  $2607 = $2543 & $2605;
+  $2608 = $2544 & $2606;
+  $2609 = $2469 & $2395;
+  $2610 = $2470 & $2396;
+  $2611 = $2607 ^ $2609;
+  $2612 = $2608 ^ $2610;
+  $2613 = (_i64Add(($2603|0),($2604|0),($2611|0),($2612|0))|0);
+  $2614 = tempRet0;
+  $2615 = (_i64Add(($2581|0),($2582|0),($2255|0),($2256|0))|0);
+  $2616 = tempRet0;
+  $2617 = (_i64Add(($2613|0),($2614|0),($2581|0),($2582|0))|0);
+  $2618 = tempRet0;
+  $2619 = (_bitshift64Lshr(($2615|0),($2616|0),14)|0);
+  $2620 = tempRet0;
+  $2621 = (_bitshift64Shl(($2615|0),($2616|0),50)|0);
+  $2622 = tempRet0;
+  $2623 = $2621 | $2619;
+  $2624 = $2622 | $2620;
+  $2625 = (_bitshift64Lshr(($2615|0),($2616|0),18)|0);
+  $2626 = tempRet0;
+  $2627 = (_bitshift64Shl(($2615|0),($2616|0),46)|0);
+  $2628 = tempRet0;
+  $2629 = $2627 | $2625;
+  $2630 = $2628 | $2626;
+  $2631 = $2623 ^ $2629;
+  $2632 = $2624 ^ $2630;
+  $2633 = (_bitshift64Lshr(($2615|0),($2616|0),41)|0);
+  $2634 = tempRet0;
+  $2635 = (_bitshift64Shl(($2615|0),($2616|0),23)|0);
+  $2636 = tempRet0;
+  $2637 = $2635 | $2633;
+  $2638 = $2636 | $2634;
+  $2639 = $2631 ^ $2637;
+  $2640 = $2632 ^ $2638;
+  $2641 = $2615 & $2541;
+  $2642 = $2616 & $2542;
+  $2643 = $2615 ^ -1;
+  $2644 = $2616 ^ -1;
+  $2645 = $2467 & $2643;
+  $2646 = $2468 & $2644;
+  $2647 = $2645 ^ $2641;
+  $2648 = $2646 ^ $2642;
+  $2649 = (_i64Add(($849|0),($850|0),1914138554,116418474)|0);
+  $2650 = tempRet0;
+  $2651 = (_i64Add(($2649|0),($2650|0),($2393|0),($2394|0))|0);
+  $2652 = tempRet0;
+  $2653 = (_i64Add(($2651|0),($2652|0),($2647|0),($2648|0))|0);
+  $2654 = tempRet0;
+  $2655 = (_i64Add(($2653|0),($2654|0),($2639|0),($2640|0))|0);
+  $2656 = tempRet0;
+  $2657 = (_bitshift64Lshr(($2617|0),($2618|0),28)|0);
+  $2658 = tempRet0;
+  $2659 = (_bitshift64Shl(($2617|0),($2618|0),36)|0);
+  $2660 = tempRet0;
+  $2661 = $2659 | $2657;
+  $2662 = $2660 | $2658;
+  $2663 = (_bitshift64Lshr(($2617|0),($2618|0),34)|0);
+  $2664 = tempRet0;
+  $2665 = (_bitshift64Shl(($2617|0),($2618|0),30)|0);
+  $2666 = tempRet0;
+  $2667 = $2665 | $2663;
+  $2668 = $2666 | $2664;
+  $2669 = $2661 ^ $2667;
+  $2670 = $2662 ^ $2668;
+  $2671 = (_bitshift64Lshr(($2617|0),($2618|0),39)|0);
+  $2672 = tempRet0;
+  $2673 = (_bitshift64Shl(($2617|0),($2618|0),25)|0);
+  $2674 = tempRet0;
+  $2675 = $2673 | $2671;
+  $2676 = $2674 | $2672;
+  $2677 = $2669 ^ $2675;
+  $2678 = $2670 ^ $2676;
+  $2679 = $2543 ^ $2469;
+  $2680 = $2544 ^ $2470;
+  $2681 = $2617 & $2679;
+  $2682 = $2618 & $2680;
+  $2683 = $2543 & $2469;
+  $2684 = $2544 & $2470;
+  $2685 = $2681 ^ $2683;
+  $2686 = $2682 ^ $2684;
+  $2687 = (_i64Add(($2677|0),($2678|0),($2685|0),($2686|0))|0);
+  $2688 = tempRet0;
+  $2689 = (_i64Add(($2655|0),($2656|0),($2395|0),($2396|0))|0);
+  $2690 = tempRet0;
+  $2691 = (_i64Add(($2687|0),($2688|0),($2655|0),($2656|0))|0);
+  $2692 = tempRet0;
+  $2693 = (_bitshift64Lshr(($2689|0),($2690|0),14)|0);
+  $2694 = tempRet0;
+  $2695 = (_bitshift64Shl(($2689|0),($2690|0),50)|0);
+  $2696 = tempRet0;
+  $2697 = $2695 | $2693;
+  $2698 = $2696 | $2694;
+  $2699 = (_bitshift64Lshr(($2689|0),($2690|0),18)|0);
+  $2700 = tempRet0;
+  $2701 = (_bitshift64Shl(($2689|0),($2690|0),46)|0);
+  $2702 = tempRet0;
+  $2703 = $2701 | $2699;
+  $2704 = $2702 | $2700;
+  $2705 = $2697 ^ $2703;
+  $2706 = $2698 ^ $2704;
+  $2707 = (_bitshift64Lshr(($2689|0),($2690|0),41)|0);
+  $2708 = tempRet0;
+  $2709 = (_bitshift64Shl(($2689|0),($2690|0),23)|0);
+  $2710 = tempRet0;
+  $2711 = $2709 | $2707;
+  $2712 = $2710 | $2708;
+  $2713 = $2705 ^ $2711;
+  $2714 = $2706 ^ $2712;
+  $2715 = $2689 & $2615;
+  $2716 = $2690 & $2616;
+  $2717 = $2689 ^ -1;
+  $2718 = $2690 ^ -1;
+  $2719 = $2541 & $2717;
+  $2720 = $2542 & $2718;
+  $2721 = $2719 ^ $2715;
+  $2722 = $2720 ^ $2716;
+  $2723 = (_i64Add(($975|0),($976|0),-1563912026,174292421)|0);
+  $2724 = tempRet0;
+  $2725 = (_i64Add(($2723|0),($2724|0),($2467|0),($2468|0))|0);
+  $2726 = tempRet0;
+  $2727 = (_i64Add(($2725|0),($2726|0),($2721|0),($2722|0))|0);
+  $2728 = tempRet0;
+  $2729 = (_i64Add(($2727|0),($2728|0),($2713|0),($2714|0))|0);
+  $2730 = tempRet0;
+  $2731 = (_bitshift64Lshr(($2691|0),($2692|0),28)|0);
+  $2732 = tempRet0;
+  $2733 = (_bitshift64Shl(($2691|0),($2692|0),36)|0);
+  $2734 = tempRet0;
+  $2735 = $2733 | $2731;
+  $2736 = $2734 | $2732;
+  $2737 = (_bitshift64Lshr(($2691|0),($2692|0),34)|0);
+  $2738 = tempRet0;
+  $2739 = (_bitshift64Shl(($2691|0),($2692|0),30)|0);
+  $2740 = tempRet0;
+  $2741 = $2739 | $2737;
+  $2742 = $2740 | $2738;
+  $2743 = $2735 ^ $2741;
+  $2744 = $2736 ^ $2742;
+  $2745 = (_bitshift64Lshr(($2691|0),($2692|0),39)|0);
+  $2746 = tempRet0;
+  $2747 = (_bitshift64Shl(($2691|0),($2692|0),25)|0);
+  $2748 = tempRet0;
+  $2749 = $2747 | $2745;
+  $2750 = $2748 | $2746;
+  $2751 = $2743 ^ $2749;
+  $2752 = $2744 ^ $2750;
+  $2753 = $2617 ^ $2543;
+  $2754 = $2618 ^ $2544;
+  $2755 = $2691 & $2753;
+  $2756 = $2692 & $2754;
+  $2757 = $2617 & $2543;
+  $2758 = $2618 & $2544;
+  $2759 = $2755 ^ $2757;
+  $2760 = $2756 ^ $2758;
+  $2761 = (_i64Add(($2751|0),($2752|0),($2759|0),($2760|0))|0);
+  $2762 = tempRet0;
+  $2763 = (_i64Add(($2729|0),($2730|0),($2469|0),($2470|0))|0);
+  $2764 = tempRet0;
+  $2765 = (_i64Add(($2761|0),($2762|0),($2729|0),($2730|0))|0);
+  $2766 = tempRet0;
+  $2767 = (_bitshift64Lshr(($2763|0),($2764|0),14)|0);
+  $2768 = tempRet0;
+  $2769 = (_bitshift64Shl(($2763|0),($2764|0),50)|0);
+  $2770 = tempRet0;
+  $2771 = $2769 | $2767;
+  $2772 = $2770 | $2768;
+  $2773 = (_bitshift64Lshr(($2763|0),($2764|0),18)|0);
+  $2774 = tempRet0;
+  $2775 = (_bitshift64Shl(($2763|0),($2764|0),46)|0);
+  $2776 = tempRet0;
+  $2777 = $2775 | $2773;
+  $2778 = $2776 | $2774;
+  $2779 = $2771 ^ $2777;
+  $2780 = $2772 ^ $2778;
+  $2781 = (_bitshift64Lshr(($2763|0),($2764|0),41)|0);
+  $2782 = tempRet0;
+  $2783 = (_bitshift64Shl(($2763|0),($2764|0),23)|0);
+  $2784 = tempRet0;
+  $2785 = $2783 | $2781;
+  $2786 = $2784 | $2782;
+  $2787 = $2779 ^ $2785;
+  $2788 = $2780 ^ $2786;
+  $2789 = $2763 & $2689;
+  $2790 = $2764 & $2690;
+  $2791 = $2763 ^ -1;
+  $2792 = $2764 ^ -1;
+  $2793 = $2615 & $2791;
+  $2794 = $2616 & $2792;
+  $2795 = $2793 ^ $2789;
+  $2796 = $2794 ^ $2790;
+  $2797 = (_i64Add(($1101|0),($1102|0),-1090974290,289380356)|0);
+  $2798 = tempRet0;
+  $2799 = (_i64Add(($2797|0),($2798|0),($2541|0),($2542|0))|0);
+  $2800 = tempRet0;
+  $2801 = (_i64Add(($2799|0),($2800|0),($2795|0),($2796|0))|0);
+  $2802 = tempRet0;
+  $2803 = (_i64Add(($2801|0),($2802|0),($2787|0),($2788|0))|0);
+  $2804 = tempRet0;
+  $2805 = (_bitshift64Lshr(($2765|0),($2766|0),28)|0);
+  $2806 = tempRet0;
+  $2807 = (_bitshift64Shl(($2765|0),($2766|0),36)|0);
+  $2808 = tempRet0;
+  $2809 = $2807 | $2805;
+  $2810 = $2808 | $2806;
+  $2811 = (_bitshift64Lshr(($2765|0),($2766|0),34)|0);
+  $2812 = tempRet0;
+  $2813 = (_bitshift64Shl(($2765|0),($2766|0),30)|0);
+  $2814 = tempRet0;
+  $2815 = $2813 | $2811;
+  $2816 = $2814 | $2812;
+  $2817 = $2809 ^ $2815;
+  $2818 = $2810 ^ $2816;
+  $2819 = (_bitshift64Lshr(($2765|0),($2766|0),39)|0);
+  $2820 = tempRet0;
+  $2821 = (_bitshift64Shl(($2765|0),($2766|0),25)|0);
+  $2822 = tempRet0;
+  $2823 = $2821 | $2819;
+  $2824 = $2822 | $2820;
+  $2825 = $2817 ^ $2823;
+  $2826 = $2818 ^ $2824;
+  $2827 = $2691 ^ $2617;
+  $2828 = $2692 ^ $2618;
+  $2829 = $2765 & $2827;
+  $2830 = $2766 & $2828;
+  $2831 = $2691 & $2617;
+  $2832 = $2692 & $2618;
+  $2833 = $2829 ^ $2831;
+  $2834 = $2830 ^ $2832;
+  $2835 = (_i64Add(($2825|0),($2826|0),($2833|0),($2834|0))|0);
+  $2836 = tempRet0;
+  $2837 = (_i64Add(($2803|0),($2804|0),($2543|0),($2544|0))|0);
+  $2838 = tempRet0;
+  $2839 = (_i64Add(($2835|0),($2836|0),($2803|0),($2804|0))|0);
+  $2840 = tempRet0;
+  $2841 = (_bitshift64Lshr(($2837|0),($2838|0),14)|0);
+  $2842 = tempRet0;
+  $2843 = (_bitshift64Shl(($2837|0),($2838|0),50)|0);
+  $2844 = tempRet0;
+  $2845 = $2843 | $2841;
+  $2846 = $2844 | $2842;
+  $2847 = (_bitshift64Lshr(($2837|0),($2838|0),18)|0);
+  $2848 = tempRet0;
+  $2849 = (_bitshift64Shl(($2837|0),($2838|0),46)|0);
+  $2850 = tempRet0;
+  $2851 = $2849 | $2847;
+  $2852 = $2850 | $2848;
+  $2853 = $2845 ^ $2851;
+  $2854 = $2846 ^ $2852;
+  $2855 = (_bitshift64Lshr(($2837|0),($2838|0),41)|0);
+  $2856 = tempRet0;
+  $2857 = (_bitshift64Shl(($2837|0),($2838|0),23)|0);
+  $2858 = tempRet0;
+  $2859 = $2857 | $2855;
+  $2860 = $2858 | $2856;
+  $2861 = $2853 ^ $2859;
+  $2862 = $2854 ^ $2860;
+  $2863 = $2837 & $2763;
+  $2864 = $2838 & $2764;
+  $2865 = $2837 ^ -1;
+  $2866 = $2838 ^ -1;
+  $2867 = $2689 & $2865;
+  $2868 = $2690 & $2866;
+  $2869 = $2867 ^ $2863;
+  $2870 = $2868 ^ $2864;
+  $2871 = (_i64Add(($1227|0),($1228|0),320620315,460393269)|0);
+  $2872 = tempRet0;
+  $2873 = (_i64Add(($2871|0),($2872|0),($2615|0),($2616|0))|0);
+  $2874 = tempRet0;
+  $2875 = (_i64Add(($2873|0),($2874|0),($2869|0),($2870|0))|0);
+  $2876 = tempRet0;
+  $2877 = (_i64Add(($2875|0),($2876|0),($2861|0),($2862|0))|0);
+  $2878 = tempRet0;
+  $2879 = (_bitshift64Lshr(($2839|0),($2840|0),28)|0);
+  $2880 = tempRet0;
+  $2881 = (_bitshift64Shl(($2839|0),($2840|0),36)|0);
+  $2882 = tempRet0;
+  $2883 = $2881 | $2879;
+  $2884 = $2882 | $2880;
+  $2885 = (_bitshift64Lshr(($2839|0),($2840|0),34)|0);
+  $2886 = tempRet0;
+  $2887 = (_bitshift64Shl(($2839|0),($2840|0),30)|0);
+  $2888 = tempRet0;
+  $2889 = $2887 | $2885;
+  $2890 = $2888 | $2886;
+  $2891 = $2883 ^ $2889;
+  $2892 = $2884 ^ $2890;
+  $2893 = (_bitshift64Lshr(($2839|0),($2840|0),39)|0);
+  $2894 = tempRet0;
+  $2895 = (_bitshift64Shl(($2839|0),($2840|0),25)|0);
+  $2896 = tempRet0;
+  $2897 = $2895 | $2893;
+  $2898 = $2896 | $2894;
+  $2899 = $2891 ^ $2897;
+  $2900 = $2892 ^ $2898;
+  $2901 = $2765 ^ $2691;
+  $2902 = $2766 ^ $2692;
+  $2903 = $2839 & $2901;
+  $2904 = $2840 & $2902;
+  $2905 = $2765 & $2691;
+  $2906 = $2766 & $2692;
+  $2907 = $2903 ^ $2905;
+  $2908 = $2904 ^ $2906;
+  $2909 = (_i64Add(($2899|0),($2900|0),($2907|0),($2908|0))|0);
+  $2910 = tempRet0;
+  $2911 = (_i64Add(($2877|0),($2878|0),($2617|0),($2618|0))|0);
+  $2912 = tempRet0;
+  $2913 = (_i64Add(($2909|0),($2910|0),($2877|0),($2878|0))|0);
+  $2914 = tempRet0;
+  $2915 = (_bitshift64Lshr(($2911|0),($2912|0),14)|0);
+  $2916 = tempRet0;
+  $2917 = (_bitshift64Shl(($2911|0),($2912|0),50)|0);
+  $2918 = tempRet0;
+  $2919 = $2917 | $2915;
+  $2920 = $2918 | $2916;
+  $2921 = (_bitshift64Lshr(($2911|0),($2912|0),18)|0);
+  $2922 = tempRet0;
+  $2923 = (_bitshift64Shl(($2911|0),($2912|0),46)|0);
+  $2924 = tempRet0;
+  $2925 = $2923 | $2921;
+  $2926 = $2924 | $2922;
+  $2927 = $2919 ^ $2925;
+  $2928 = $2920 ^ $2926;
+  $2929 = (_bitshift64Lshr(($2911|0),($2912|0),41)|0);
+  $2930 = tempRet0;
+  $2931 = (_bitshift64Shl(($2911|0),($2912|0),23)|0);
+  $2932 = tempRet0;
+  $2933 = $2931 | $2929;
+  $2934 = $2932 | $2930;
+  $2935 = $2927 ^ $2933;
+  $2936 = $2928 ^ $2934;
+  $2937 = $2911 & $2837;
+  $2938 = $2912 & $2838;
+  $2939 = $2911 ^ -1;
+  $2940 = $2912 ^ -1;
+  $2941 = $2763 & $2939;
+  $2942 = $2764 & $2940;
+  $2943 = $2941 ^ $2937;
+  $2944 = $2942 ^ $2938;
+  $2945 = (_i64Add(($1351|0),($1352|0),587496836,685471733)|0);
+  $2946 = tempRet0;
+  $2947 = (_i64Add(($2945|0),($2946|0),($2689|0),($2690|0))|0);
+  $2948 = tempRet0;
+  $2949 = (_i64Add(($2947|0),($2948|0),($2943|0),($2944|0))|0);
+  $2950 = tempRet0;
+  $2951 = (_i64Add(($2949|0),($2950|0),($2935|0),($2936|0))|0);
+  $2952 = tempRet0;
+  $2953 = (_bitshift64Lshr(($2913|0),($2914|0),28)|0);
+  $2954 = tempRet0;
+  $2955 = (_bitshift64Shl(($2913|0),($2914|0),36)|0);
+  $2956 = tempRet0;
+  $2957 = $2955 | $2953;
+  $2958 = $2956 | $2954;
+  $2959 = (_bitshift64Lshr(($2913|0),($2914|0),34)|0);
+  $2960 = tempRet0;
+  $2961 = (_bitshift64Shl(($2913|0),($2914|0),30)|0);
+  $2962 = tempRet0;
+  $2963 = $2961 | $2959;
+  $2964 = $2962 | $2960;
+  $2965 = $2957 ^ $2963;
+  $2966 = $2958 ^ $2964;
+  $2967 = (_bitshift64Lshr(($2913|0),($2914|0),39)|0);
+  $2968 = tempRet0;
+  $2969 = (_bitshift64Shl(($2913|0),($2914|0),25)|0);
+  $2970 = tempRet0;
+  $2971 = $2969 | $2967;
+  $2972 = $2970 | $2968;
+  $2973 = $2965 ^ $2971;
+  $2974 = $2966 ^ $2972;
+  $2975 = $2839 ^ $2765;
+  $2976 = $2840 ^ $2766;
+  $2977 = $2913 & $2975;
+  $2978 = $2914 & $2976;
+  $2979 = $2839 & $2765;
+  $2980 = $2840 & $2766;
+  $2981 = $2977 ^ $2979;
+  $2982 = $2978 ^ $2980;
+  $2983 = (_i64Add(($2973|0),($2974|0),($2981|0),($2982|0))|0);
+  $2984 = tempRet0;
+  $2985 = (_i64Add(($2951|0),($2952|0),($2691|0),($2692|0))|0);
+  $2986 = tempRet0;
+  $2987 = (_i64Add(($2983|0),($2984|0),($2951|0),($2952|0))|0);
+  $2988 = tempRet0;
+  $2989 = (_bitshift64Lshr(($2985|0),($2986|0),14)|0);
+  $2990 = tempRet0;
+  $2991 = (_bitshift64Shl(($2985|0),($2986|0),50)|0);
+  $2992 = tempRet0;
+  $2993 = $2991 | $2989;
+  $2994 = $2992 | $2990;
+  $2995 = (_bitshift64Lshr(($2985|0),($2986|0),18)|0);
+  $2996 = tempRet0;
+  $2997 = (_bitshift64Shl(($2985|0),($2986|0),46)|0);
+  $2998 = tempRet0;
+  $2999 = $2997 | $2995;
+  $3000 = $2998 | $2996;
+  $3001 = $2993 ^ $2999;
+  $3002 = $2994 ^ $3000;
+  $3003 = (_bitshift64Lshr(($2985|0),($2986|0),41)|0);
+  $3004 = tempRet0;
+  $3005 = (_bitshift64Shl(($2985|0),($2986|0),23)|0);
+  $3006 = tempRet0;
+  $3007 = $3005 | $3003;
+  $3008 = $3006 | $3004;
+  $3009 = $3001 ^ $3007;
+  $3010 = $3002 ^ $3008;
+  $3011 = $2985 & $2911;
+  $3012 = $2986 & $2912;
+  $3013 = $2985 ^ -1;
+  $3014 = $2986 ^ -1;
+  $3015 = $2837 & $3013;
+  $3016 = $2838 & $3014;
+  $3017 = $3015 ^ $3011;
+  $3018 = $3016 ^ $3012;
+  $3019 = (_i64Add(($1475|0),($1476|0),1086792851,852142971)|0);
+  $3020 = tempRet0;
+  $3021 = (_i64Add(($3019|0),($3020|0),($2763|0),($2764|0))|0);
+  $3022 = tempRet0;
+  $3023 = (_i64Add(($3021|0),($3022|0),($3017|0),($3018|0))|0);
+  $3024 = tempRet0;
+  $3025 = (_i64Add(($3023|0),($3024|0),($3009|0),($3010|0))|0);
+  $3026 = tempRet0;
+  $3027 = (_bitshift64Lshr(($2987|0),($2988|0),28)|0);
+  $3028 = tempRet0;
+  $3029 = (_bitshift64Shl(($2987|0),($2988|0),36)|0);
+  $3030 = tempRet0;
+  $3031 = $3029 | $3027;
+  $3032 = $3030 | $3028;
+  $3033 = (_bitshift64Lshr(($2987|0),($2988|0),34)|0);
+  $3034 = tempRet0;
+  $3035 = (_bitshift64Shl(($2987|0),($2988|0),30)|0);
+  $3036 = tempRet0;
+  $3037 = $3035 | $3033;
+  $3038 = $3036 | $3034;
+  $3039 = $3031 ^ $3037;
+  $3040 = $3032 ^ $3038;
+  $3041 = (_bitshift64Lshr(($2987|0),($2988|0),39)|0);
+  $3042 = tempRet0;
+  $3043 = (_bitshift64Shl(($2987|0),($2988|0),25)|0);
+  $3044 = tempRet0;
+  $3045 = $3043 | $3041;
+  $3046 = $3044 | $3042;
+  $3047 = $3039 ^ $3045;
+  $3048 = $3040 ^ $3046;
+  $3049 = $2913 ^ $2839;
+  $3050 = $2914 ^ $2840;
+  $3051 = $2987 & $3049;
+  $3052 = $2988 & $3050;
+  $3053 = $2913 & $2839;
+  $3054 = $2914 & $2840;
+  $3055 = $3051 ^ $3053;
+  $3056 = $3052 ^ $3054;
+  $3057 = (_i64Add(($3047|0),($3048|0),($3055|0),($3056|0))|0);
+  $3058 = tempRet0;
+  $3059 = (_i64Add(($3025|0),($3026|0),($2765|0),($2766|0))|0);
+  $3060 = tempRet0;
+  $3061 = (_i64Add(($3057|0),($3058|0),($3025|0),($3026|0))|0);
+  $3062 = tempRet0;
+  $3063 = (_bitshift64Lshr(($3059|0),($3060|0),14)|0);
+  $3064 = tempRet0;
+  $3065 = (_bitshift64Shl(($3059|0),($3060|0),50)|0);
+  $3066 = tempRet0;
+  $3067 = $3065 | $3063;
+  $3068 = $3066 | $3064;
+  $3069 = (_bitshift64Lshr(($3059|0),($3060|0),18)|0);
+  $3070 = tempRet0;
+  $3071 = (_bitshift64Shl(($3059|0),($3060|0),46)|0);
+  $3072 = tempRet0;
+  $3073 = $3071 | $3069;
+  $3074 = $3072 | $3070;
+  $3075 = $3067 ^ $3073;
+  $3076 = $3068 ^ $3074;
+  $3077 = (_bitshift64Lshr(($3059|0),($3060|0),41)|0);
+  $3078 = tempRet0;
+  $3079 = (_bitshift64Shl(($3059|0),($3060|0),23)|0);
+  $3080 = tempRet0;
+  $3081 = $3079 | $3077;
+  $3082 = $3080 | $3078;
+  $3083 = $3075 ^ $3081;
+  $3084 = $3076 ^ $3082;
+  $3085 = $3059 & $2985;
+  $3086 = $3060 & $2986;
+  $3087 = $3059 ^ -1;
+  $3088 = $3060 ^ -1;
+  $3089 = $2911 & $3087;
+  $3090 = $2912 & $3088;
+  $3091 = $3089 ^ $3085;
+  $3092 = $3090 ^ $3086;
+  $3093 = (_i64Add(($1599|0),($1600|0),365543100,1017036298)|0);
+  $3094 = tempRet0;
+  $3095 = (_i64Add(($3093|0),($3094|0),($2837|0),($2838|0))|0);
+  $3096 = tempRet0;
+  $3097 = (_i64Add(($3095|0),($3096|0),($3091|0),($3092|0))|0);
+  $3098 = tempRet0;
+  $3099 = (_i64Add(($3097|0),($3098|0),($3083|0),($3084|0))|0);
+  $3100 = tempRet0;
+  $3101 = (_bitshift64Lshr(($3061|0),($3062|0),28)|0);
+  $3102 = tempRet0;
+  $3103 = (_bitshift64Shl(($3061|0),($3062|0),36)|0);
+  $3104 = tempRet0;
+  $3105 = $3103 | $3101;
+  $3106 = $3104 | $3102;
+  $3107 = (_bitshift64Lshr(($3061|0),($3062|0),34)|0);
+  $3108 = tempRet0;
+  $3109 = (_bitshift64Shl(($3061|0),($3062|0),30)|0);
+  $3110 = tempRet0;
+  $3111 = $3109 | $3107;
+  $3112 = $3110 | $3108;
+  $3113 = $3105 ^ $3111;
+  $3114 = $3106 ^ $3112;
+  $3115 = (_bitshift64Lshr(($3061|0),($3062|0),39)|0);
+  $3116 = tempRet0;
+  $3117 = (_bitshift64Shl(($3061|0),($3062|0),25)|0);
+  $3118 = tempRet0;
+  $3119 = $3117 | $3115;
+  $3120 = $3118 | $3116;
+  $3121 = $3113 ^ $3119;
+  $3122 = $3114 ^ $3120;
+  $3123 = $2987 ^ $2913;
+  $3124 = $2988 ^ $2914;
+  $3125 = $3061 & $3123;
+  $3126 = $3062 & $3124;
+  $3127 = $2987 & $2913;
+  $3128 = $2988 & $2914;
+  $3129 = $3125 ^ $3127;
+  $3130 = $3126 ^ $3128;
+  $3131 = (_i64Add(($3121|0),($3122|0),($3129|0),($3130|0))|0);
+  $3132 = tempRet0;
+  $3133 = (_i64Add(($3099|0),($3100|0),($2839|0),($2840|0))|0);
+  $3134 = tempRet0;
+  $3135 = (_i64Add(($3131|0),($3132|0),($3099|0),($3100|0))|0);
+  $3136 = tempRet0;
+  $3137 = (_bitshift64Lshr(($3133|0),($3134|0),14)|0);
+  $3138 = tempRet0;
+  $3139 = (_bitshift64Shl(($3133|0),($3134|0),50)|0);
+  $3140 = tempRet0;
+  $3141 = $3139 | $3137;
+  $3142 = $3140 | $3138;
+  $3143 = (_bitshift64Lshr(($3133|0),($3134|0),18)|0);
+  $3144 = tempRet0;
+  $3145 = (_bitshift64Shl(($3133|0),($3134|0),46)|0);
+  $3146 = tempRet0;
+  $3147 = $3145 | $3143;
+  $3148 = $3146 | $3144;
+  $3149 = $3141 ^ $3147;
+  $3150 = $3142 ^ $3148;
+  $3151 = (_bitshift64Lshr(($3133|0),($3134|0),41)|0);
+  $3152 = tempRet0;
+  $3153 = (_bitshift64Shl(($3133|0),($3134|0),23)|0);
+  $3154 = tempRet0;
+  $3155 = $3153 | $3151;
+  $3156 = $3154 | $3152;
+  $3157 = $3149 ^ $3155;
+  $3158 = $3150 ^ $3156;
+  $3159 = $3133 & $3059;
+  $3160 = $3134 & $3060;
+  $3161 = $3133 ^ -1;
+  $3162 = $3134 ^ -1;
+  $3163 = $2985 & $3161;
+  $3164 = $2986 & $3162;
+  $3165 = $3163 ^ $3159;
+  $3166 = $3164 ^ $3160;
+  $3167 = (_i64Add(($1723|0),($1724|0),-1676669620,1126000580)|0);
+  $3168 = tempRet0;
+  $3169 = (_i64Add(($3167|0),($3168|0),($2911|0),($2912|0))|0);
+  $3170 = tempRet0;
+  $3171 = (_i64Add(($3169|0),($3170|0),($3165|0),($3166|0))|0);
+  $3172 = tempRet0;
+  $3173 = (_i64Add(($3171|0),($3172|0),($3157|0),($3158|0))|0);
+  $3174 = tempRet0;
+  $3175 = (_bitshift64Lshr(($3135|0),($3136|0),28)|0);
+  $3176 = tempRet0;
+  $3177 = (_bitshift64Shl(($3135|0),($3136|0),36)|0);
+  $3178 = tempRet0;
+  $3179 = $3177 | $3175;
+  $3180 = $3178 | $3176;
+  $3181 = (_bitshift64Lshr(($3135|0),($3136|0),34)|0);
+  $3182 = tempRet0;
+  $3183 = (_bitshift64Shl(($3135|0),($3136|0),30)|0);
+  $3184 = tempRet0;
+  $3185 = $3183 | $3181;
+  $3186 = $3184 | $3182;
+  $3187 = $3179 ^ $3185;
+  $3188 = $3180 ^ $3186;
+  $3189 = (_bitshift64Lshr(($3135|0),($3136|0),39)|0);
+  $3190 = tempRet0;
+  $3191 = (_bitshift64Shl(($3135|0),($3136|0),25)|0);
+  $3192 = tempRet0;
+  $3193 = $3191 | $3189;
+  $3194 = $3192 | $3190;
+  $3195 = $3187 ^ $3193;
+  $3196 = $3188 ^ $3194;
+  $3197 = $3061 ^ $2987;
+  $3198 = $3062 ^ $2988;
+  $3199 = $3135 & $3197;
+  $3200 = $3136 & $3198;
+  $3201 = $3061 & $2987;
+  $3202 = $3062 & $2988;
+  $3203 = $3199 ^ $3201;
+  $3204 = $3200 ^ $3202;
+  $3205 = (_i64Add(($3195|0),($3196|0),($3203|0),($3204|0))|0);
+  $3206 = tempRet0;
+  $3207 = (_i64Add(($3173|0),($3174|0),($2913|0),($2914|0))|0);
+  $3208 = tempRet0;
+  $3209 = (_i64Add(($3205|0),($3206|0),($3173|0),($3174|0))|0);
+  $3210 = tempRet0;
+  $3211 = (_bitshift64Lshr(($3207|0),($3208|0),14)|0);
+  $3212 = tempRet0;
+  $3213 = (_bitshift64Shl(($3207|0),($3208|0),50)|0);
+  $3214 = tempRet0;
+  $3215 = $3213 | $3211;
+  $3216 = $3214 | $3212;
+  $3217 = (_bitshift64Lshr(($3207|0),($3208|0),18)|0);
+  $3218 = tempRet0;
+  $3219 = (_bitshift64Shl(($3207|0),($3208|0),46)|0);
+  $3220 = tempRet0;
+  $3221 = $3219 | $3217;
+  $3222 = $3220 | $3218;
+  $3223 = $3215 ^ $3221;
+  $3224 = $3216 ^ $3222;
+  $3225 = (_bitshift64Lshr(($3207|0),($3208|0),41)|0);
+  $3226 = tempRet0;
+  $3227 = (_bitshift64Shl(($3207|0),($3208|0),23)|0);
+  $3228 = tempRet0;
+  $3229 = $3227 | $3225;
+  $3230 = $3228 | $3226;
+  $3231 = $3223 ^ $3229;
+  $3232 = $3224 ^ $3230;
+  $3233 = $3207 & $3133;
+  $3234 = $3208 & $3134;
+  $3235 = $3207 ^ -1;
+  $3236 = $3208 ^ -1;
+  $3237 = $3059 & $3235;
+  $3238 = $3060 & $3236;
+  $3239 = $3237 ^ $3233;
+  $3240 = $3238 ^ $3234;
+  $3241 = (_i64Add(($1847|0),($1848|0),-885112138,1288033470)|0);
+  $3242 = tempRet0;
+  $3243 = (_i64Add(($3241|0),($3242|0),($2985|0),($2986|0))|0);
+  $3244 = tempRet0;
+  $3245 = (_i64Add(($3243|0),($3244|0),($3239|0),($3240|0))|0);
+  $3246 = tempRet0;
+  $3247 = (_i64Add(($3245|0),($3246|0),($3231|0),($3232|0))|0);
+  $3248 = tempRet0;
+  $3249 = (_bitshift64Lshr(($3209|0),($3210|0),28)|0);
+  $3250 = tempRet0;
+  $3251 = (_bitshift64Shl(($3209|0),($3210|0),36)|0);
+  $3252 = tempRet0;
+  $3253 = $3251 | $3249;
+  $3254 = $3252 | $3250;
+  $3255 = (_bitshift64Lshr(($3209|0),($3210|0),34)|0);
+  $3256 = tempRet0;
+  $3257 = (_bitshift64Shl(($3209|0),($3210|0),30)|0);
+  $3258 = tempRet0;
+  $3259 = $3257 | $3255;
+  $3260 = $3258 | $3256;
+  $3261 = $3253 ^ $3259;
+  $3262 = $3254 ^ $3260;
+  $3263 = (_bitshift64Lshr(($3209|0),($3210|0),39)|0);
+  $3264 = tempRet0;
+  $3265 = (_bitshift64Shl(($3209|0),($3210|0),25)|0);
+  $3266 = tempRet0;
+  $3267 = $3265 | $3263;
+  $3268 = $3266 | $3264;
+  $3269 = $3261 ^ $3267;
+  $3270 = $3262 ^ $3268;
+  $3271 = $3135 ^ $3061;
+  $3272 = $3136 ^ $3062;
+  $3273 = $3209 & $3271;
+  $3274 = $3210 & $3272;
+  $3275 = $3135 & $3061;
+  $3276 = $3136 & $3062;
+  $3277 = $3273 ^ $3275;
+  $3278 = $3274 ^ $3276;
+  $3279 = (_i64Add(($3269|0),($3270|0),($3277|0),($3278|0))|0);
+  $3280 = tempRet0;
+  $3281 = (_i64Add(($3247|0),($3248|0),($2987|0),($2988|0))|0);
+  $3282 = tempRet0;
+  $3283 = (_i64Add(($3279|0),($3280|0),($3247|0),($3248|0))|0);
+  $3284 = tempRet0;
+  $3285 = (_bitshift64Lshr(($3281|0),($3282|0),14)|0);
+  $3286 = tempRet0;
+  $3287 = (_bitshift64Shl(($3281|0),($3282|0),50)|0);
+  $3288 = tempRet0;
+  $3289 = $3287 | $3285;
+  $3290 = $3288 | $3286;
+  $3291 = (_bitshift64Lshr(($3281|0),($3282|0),18)|0);
+  $3292 = tempRet0;
+  $3293 = (_bitshift64Shl(($3281|0),($3282|0),46)|0);
+  $3294 = tempRet0;
+  $3295 = $3293 | $3291;
+  $3296 = $3294 | $3292;
+  $3297 = $3289 ^ $3295;
+  $3298 = $3290 ^ $3296;
+  $3299 = (_bitshift64Lshr(($3281|0),($3282|0),41)|0);
+  $3300 = tempRet0;
+  $3301 = (_bitshift64Shl(($3281|0),($3282|0),23)|0);
+  $3302 = tempRet0;
+  $3303 = $3301 | $3299;
+  $3304 = $3302 | $3300;
+  $3305 = $3297 ^ $3303;
+  $3306 = $3298 ^ $3304;
+  $3307 = $3281 & $3207;
+  $3308 = $3282 & $3208;
+  $3309 = $3281 ^ -1;
+  $3310 = $3282 ^ -1;
+  $3311 = $3133 & $3309;
+  $3312 = $3134 & $3310;
+  $3313 = $3311 ^ $3307;
+  $3314 = $3312 ^ $3308;
+  $3315 = (_i64Add(($1971|0),($1972|0),-60457430,1501505948)|0);
+  $3316 = tempRet0;
+  $3317 = (_i64Add(($3315|0),($3316|0),($3059|0),($3060|0))|0);
+  $3318 = tempRet0;
+  $3319 = (_i64Add(($3317|0),($3318|0),($3313|0),($3314|0))|0);
+  $3320 = tempRet0;
+  $3321 = (_i64Add(($3319|0),($3320|0),($3305|0),($3306|0))|0);
+  $3322 = tempRet0;
+  $3323 = (_bitshift64Lshr(($3283|0),($3284|0),28)|0);
+  $3324 = tempRet0;
+  $3325 = (_bitshift64Shl(($3283|0),($3284|0),36)|0);
+  $3326 = tempRet0;
+  $3327 = $3325 | $3323;
+  $3328 = $3326 | $3324;
+  $3329 = (_bitshift64Lshr(($3283|0),($3284|0),34)|0);
+  $3330 = tempRet0;
+  $3331 = (_bitshift64Shl(($3283|0),($3284|0),30)|0);
+  $3332 = tempRet0;
+  $3333 = $3331 | $3329;
+  $3334 = $3332 | $3330;
+  $3335 = $3327 ^ $3333;
+  $3336 = $3328 ^ $3334;
+  $3337 = (_bitshift64Lshr(($3283|0),($3284|0),39)|0);
+  $3338 = tempRet0;
+  $3339 = (_bitshift64Shl(($3283|0),($3284|0),25)|0);
+  $3340 = tempRet0;
+  $3341 = $3339 | $3337;
+  $3342 = $3340 | $3338;
+  $3343 = $3335 ^ $3341;
+  $3344 = $3336 ^ $3342;
+  $3345 = $3209 ^ $3135;
+  $3346 = $3210 ^ $3136;
+  $3347 = $3283 & $3345;
+  $3348 = $3284 & $3346;
+  $3349 = $3209 & $3135;
+  $3350 = $3210 & $3136;
+  $3351 = $3347 ^ $3349;
+  $3352 = $3348 ^ $3350;
+  $3353 = (_i64Add(($3343|0),($3344|0),($3351|0),($3352|0))|0);
+  $3354 = tempRet0;
+  $3355 = (_i64Add(($3321|0),($3322|0),($3061|0),($3062|0))|0);
+  $3356 = tempRet0;
+  $3357 = (_i64Add(($3353|0),($3354|0),($3321|0),($3322|0))|0);
+  $3358 = tempRet0;
+  $3359 = (_bitshift64Lshr(($3355|0),($3356|0),14)|0);
+  $3360 = tempRet0;
+  $3361 = (_bitshift64Shl(($3355|0),($3356|0),50)|0);
+  $3362 = tempRet0;
+  $3363 = $3361 | $3359;
+  $3364 = $3362 | $3360;
+  $3365 = (_bitshift64Lshr(($3355|0),($3356|0),18)|0);
+  $3366 = tempRet0;
+  $3367 = (_bitshift64Shl(($3355|0),($3356|0),46)|0);
+  $3368 = tempRet0;
+  $3369 = $3367 | $3365;
+  $3370 = $3368 | $3366;
+  $3371 = $3363 ^ $3369;
+  $3372 = $3364 ^ $3370;
+  $3373 = (_bitshift64Lshr(($3355|0),($3356|0),41)|0);
+  $3374 = tempRet0;
+  $3375 = (_bitshift64Shl(($3355|0),($3356|0),23)|0);
+  $3376 = tempRet0;
+  $3377 = $3375 | $3373;
+  $3378 = $3376 | $3374;
+  $3379 = $3371 ^ $3377;
+  $3380 = $3372 ^ $3378;
+  $3381 = $3355 & $3281;
+  $3382 = $3356 & $3282;
+  $3383 = $3355 ^ -1;
+  $3384 = $3356 ^ -1;
+  $3385 = $3207 & $3383;
+  $3386 = $3208 & $3384;
+  $3387 = $3385 ^ $3381;
+  $3388 = $3386 ^ $3382;
+  $3389 = (_i64Add(($2095|0),($2096|0),987167468,1607167915)|0);
+  $3390 = tempRet0;
+  $3391 = (_i64Add(($3389|0),($3390|0),($3133|0),($3134|0))|0);
+  $3392 = tempRet0;
+  $3393 = (_i64Add(($3391|0),($3392|0),($3387|0),($3388|0))|0);
+  $3394 = tempRet0;
+  $3395 = (_i64Add(($3393|0),($3394|0),($3379|0),($3380|0))|0);
+  $3396 = tempRet0;
+  $3397 = (_bitshift64Lshr(($3357|0),($3358|0),28)|0);
+  $3398 = tempRet0;
+  $3399 = (_bitshift64Shl(($3357|0),($3358|0),36)|0);
+  $3400 = tempRet0;
+  $3401 = $3399 | $3397;
+  $3402 = $3400 | $3398;
+  $3403 = (_bitshift64Lshr(($3357|0),($3358|0),34)|0);
+  $3404 = tempRet0;
+  $3405 = (_bitshift64Shl(($3357|0),($3358|0),30)|0);
+  $3406 = tempRet0;
+  $3407 = $3405 | $3403;
+  $3408 = $3406 | $3404;
+  $3409 = $3401 ^ $3407;
+  $3410 = $3402 ^ $3408;
+  $3411 = (_bitshift64Lshr(($3357|0),($3358|0),39)|0);
+  $3412 = tempRet0;
+  $3413 = (_bitshift64Shl(($3357|0),($3358|0),25)|0);
+  $3414 = tempRet0;
+  $3415 = $3413 | $3411;
+  $3416 = $3414 | $3412;
+  $3417 = $3409 ^ $3415;
+  $3418 = $3410 ^ $3416;
+  $3419 = $3283 ^ $3209;
+  $3420 = $3284 ^ $3210;
+  $3421 = $3357 & $3419;
+  $3422 = $3358 & $3420;
+  $3423 = $3283 & $3209;
+  $3424 = $3284 & $3210;
+  $3425 = $3421 ^ $3423;
+  $3426 = $3422 ^ $3424;
+  $3427 = (_i64Add(($3417|0),($3418|0),($3425|0),($3426|0))|0);
+  $3428 = tempRet0;
+  $3429 = (_i64Add(($3395|0),($3396|0),($3135|0),($3136|0))|0);
+  $3430 = tempRet0;
+  $3431 = (_i64Add(($3427|0),($3428|0),($3395|0),($3396|0))|0);
+  $3432 = tempRet0;
+  $3433 = (_bitshift64Lshr(($3429|0),($3430|0),14)|0);
+  $3434 = tempRet0;
+  $3435 = (_bitshift64Shl(($3429|0),($3430|0),50)|0);
+  $3436 = tempRet0;
+  $3437 = $3435 | $3433;
+  $3438 = $3436 | $3434;
+  $3439 = (_bitshift64Lshr(($3429|0),($3430|0),18)|0);
+  $3440 = tempRet0;
+  $3441 = (_bitshift64Shl(($3429|0),($3430|0),46)|0);
+  $3442 = tempRet0;
+  $3443 = $3441 | $3439;
+  $3444 = $3442 | $3440;
+  $3445 = $3437 ^ $3443;
+  $3446 = $3438 ^ $3444;
+  $3447 = (_bitshift64Lshr(($3429|0),($3430|0),41)|0);
+  $3448 = tempRet0;
+  $3449 = (_bitshift64Shl(($3429|0),($3430|0),23)|0);
+  $3450 = tempRet0;
+  $3451 = $3449 | $3447;
+  $3452 = $3450 | $3448;
+  $3453 = $3445 ^ $3451;
+  $3454 = $3446 ^ $3452;
+  $3455 = $3429 & $3355;
+  $3456 = $3430 & $3356;
+  $3457 = $3429 ^ -1;
+  $3458 = $3430 ^ -1;
+  $3459 = $3281 & $3457;
+  $3460 = $3282 & $3458;
+  $3461 = $3459 ^ $3455;
+  $3462 = $3460 ^ $3456;
+  $3463 = (_i64Add(($2219|0),($2220|0),1246189591,1816402316)|0);
+  $3464 = tempRet0;
+  $3465 = (_i64Add(($3463|0),($3464|0),($3207|0),($3208|0))|0);
+  $3466 = tempRet0;
+  $3467 = (_i64Add(($3465|0),($3466|0),($3461|0),($3462|0))|0);
+  $3468 = tempRet0;
+  $3469 = (_i64Add(($3467|0),($3468|0),($3453|0),($3454|0))|0);
+  $3470 = tempRet0;
+  $3471 = (_bitshift64Lshr(($3431|0),($3432|0),28)|0);
+  $3472 = tempRet0;
+  $3473 = (_bitshift64Shl(($3431|0),($3432|0),36)|0);
+  $3474 = tempRet0;
+  $3475 = $3473 | $3471;
+  $3476 = $3474 | $3472;
+  $3477 = (_bitshift64Lshr(($3431|0),($3432|0),34)|0);
+  $3478 = tempRet0;
+  $3479 = (_bitshift64Shl(($3431|0),($3432|0),30)|0);
+  $3480 = tempRet0;
+  $3481 = $3479 | $3477;
+  $3482 = $3480 | $3478;
+  $3483 = $3475 ^ $3481;
+  $3484 = $3476 ^ $3482;
+  $3485 = (_bitshift64Lshr(($3431|0),($3432|0),39)|0);
+  $3486 = tempRet0;
+  $3487 = (_bitshift64Shl(($3431|0),($3432|0),25)|0);
+  $3488 = tempRet0;
+  $3489 = $3487 | $3485;
+  $3490 = $3488 | $3486;
+  $3491 = $3483 ^ $3489;
+  $3492 = $3484 ^ $3490;
+  $3493 = $3357 ^ $3283;
+  $3494 = $3358 ^ $3284;
+  $3495 = $3431 & $3493;
+  $3496 = $3432 & $3494;
+  $3497 = $3357 & $3283;
+  $3498 = $3358 & $3284;
+  $3499 = $3495 ^ $3497;
+  $3500 = $3496 ^ $3498;
+  $3503 = (_i64Add(($3499|0),($3500|0),($3501|0),($3502|0))|0);
+  $3504 = tempRet0;
+  $3505 = (_i64Add(($3503|0),($3504|0),($3491|0),($3492|0))|0);
+  $3506 = tempRet0;
+  $3507 = (_i64Add(($3505|0),($3506|0),($3469|0),($3470|0))|0);
+  $3508 = tempRet0;
+  $3509 = $4;
+  $3510 = $3509;
+  HEAP32[$3510>>2] = $3507;
+  $3511 = (($3509) + 4)|0;
+  $3512 = $3511;
+  HEAP32[$3512>>2] = $3508;
+  $3515 = (_i64Add(($3431|0),($3432|0),($3513|0),($3514|0))|0);
+  $3516 = tempRet0;
+  $3517 = $5;
+  $3518 = $3517;
+  HEAP32[$3518>>2] = $3515;
+  $3519 = (($3517) + 4)|0;
+  $3520 = $3519;
+  HEAP32[$3520>>2] = $3516;
+  $3523 = (_i64Add(($3357|0),($3358|0),($3521|0),($3522|0))|0);
+  $3524 = tempRet0;
+  $3525 = $6;
+  $3526 = $3525;
+  HEAP32[$3526>>2] = $3523;
+  $3527 = (($3525) + 4)|0;
+  $3528 = $3527;
+  HEAP32[$3528>>2] = $3524;
+  $3531 = (_i64Add(($3283|0),($3284|0),($3529|0),($3530|0))|0);
+  $3532 = tempRet0;
+  $3533 = $7;
+  $3534 = $3533;
+  HEAP32[$3534>>2] = $3531;
+  $3535 = (($3533) + 4)|0;
+  $3536 = $3535;
+  HEAP32[$3536>>2] = $3532;
+  $3539 = (_i64Add(($3209|0),($3210|0),($3537|0),($3538|0))|0);
+  $3540 = tempRet0;
+  $3541 = (_i64Add(($3539|0),($3540|0),($3469|0),($3470|0))|0);
+  $3542 = tempRet0;
+  $3543 = $8;
+  $3544 = $3543;
+  HEAP32[$3544>>2] = $3541;
+  $3545 = (($3543) + 4)|0;
+  $3546 = $3545;
+  HEAP32[$3546>>2] = $3542;
+  $3549 = (_i64Add(($3429|0),($3430|0),($3547|0),($3548|0))|0);
+  $3550 = tempRet0;
+  $3551 = $9;
+  $3552 = $3551;
+  HEAP32[$3552>>2] = $3549;
+  $3553 = (($3551) + 4)|0;
+  $3554 = $3553;
+  HEAP32[$3554>>2] = $3550;
+  $3557 = (_i64Add(($3355|0),($3356|0),($3555|0),($3556|0))|0);
+  $3558 = tempRet0;
+  $3559 = $10;
+  $3560 = $3559;
+  HEAP32[$3560>>2] = $3557;
+  $3561 = (($3559) + 4)|0;
+  $3562 = $3561;
+  HEAP32[$3562>>2] = $3558;
+  $3565 = (_i64Add(($3281|0),($3282|0),($3563|0),($3564|0))|0);
+  $3566 = tempRet0;
+  $3567 = $11;
+  $3568 = $3567;
+  HEAP32[$3568>>2] = $3565;
+  $3569 = (($3567) + 4)|0;
+  $3570 = $3569;
+  HEAP32[$3570>>2] = $3566;
+  $3571 = ((($$0)) + 128|0);
+  $3572 = (($$08) + -1)|0;
+  $3573 = ($3572|0)==(0);
+  if ($3573) {
+   break;
+  } else {
+   $$0 = $3571;$$08 = $3572;$3501 = $3507;$3502 = $3508;$3513 = $3515;$3514 = 
$3516;$3521 = $3523;$3522 = $3524;$3529 = $3531;$3530 = $3532;$3537 = 
$3541;$3538 = $3542;$3547 = $3549;$3548 = $3550;$3555 = $3557;$3556 = 
$3558;$3563 = $3565;$3564 = $3566;
+  }
+ }
+ STACKTOP = sp;return 220;
+}
+function _sha384_init($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, 
$26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $5 = 0, $6 = 0;
+ var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 160|0);
+ $3 = $2;
+ $4 = $3;
+ HEAP32[$4>>2] = -1056596264;
+ $5 = (($3) + 4)|0;
+ $6 = $5;
+ HEAP32[$6>>2] = -876896931;
+ $7 = ((($0)) + 168|0);
+ $8 = $7;
+ $9 = $8;
+ HEAP32[$9>>2] = 914150663;
+ $10 = (($8) + 4)|0;
+ $11 = $10;
+ HEAP32[$11>>2] = 1654270250;
+ $12 = ((($0)) + 176|0);
+ $13 = $12;
+ $14 = $13;
+ HEAP32[$14>>2] = 812702999;
+ $15 = (($13) + 4)|0;
+ $16 = $15;
+ HEAP32[$16>>2] = -1856437926;
+ $17 = ((($0)) + 184|0);
+ $18 = $17;
+ $19 = $18;
+ HEAP32[$19>>2] = -150054599;
+ $20 = (($18) + 4)|0;
+ $21 = $20;
+ HEAP32[$21>>2] = 355462360;
+ $22 = ((($0)) + 192|0);
+ $23 = $22;
+ $24 = $23;
+ HEAP32[$24>>2] = -4191439;
+ $25 = (($23) + 4)|0;
+ $26 = $25;
+ HEAP32[$26>>2] = 1731405415;
+ $27 = ((($0)) + 200|0);
+ $28 = $27;
+ $29 = $28;
+ HEAP32[$29>>2] = 1750603025;
+ $30 = (($28) + 4)|0;
+ $31 = $30;
+ HEAP32[$31>>2] = -1900787065;
+ $32 = ((($0)) + 208|0);
+ $33 = $32;
+ $34 = $33;
+ HEAP32[$34>>2] = 1694076839;
+ $35 = (($33) + 4)|0;
+ $36 = $35;
+ HEAP32[$36>>2] = -619958771;
+ $37 = ((($0)) + 216|0);
+ $38 = $37;
+ $39 = $38;
+ HEAP32[$39>>2] = -1090891868;
+ $40 = (($38) + 4)|0;
+ $41 = $40;
+ HEAP32[$41>>2] = 1203062813;
+ $42 = ((($0)) + 128|0);
+ $43 = ((($0)) + 148|0);
+ 
;HEAP32[$42>>2]=0|0;HEAP32[$42+4>>2]=0|0;HEAP32[$42+8>>2]=0|0;HEAP32[$42+12>>2]=0|0;HEAP32[$42+16>>2]=0|0;
+ HEAP32[$43>>2] = 128;
+ $44 = ((($0)) + 152|0);
+ HEAP32[$44>>2] = 80;
+ return;
+}
+function _twofish_setkey($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (_do_twofish_setkey($0,$1,$2)|0);
+ ___gcry_burn_stack(47);
+ return ($3|0);
+}
+function _twofish_encrypt($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 
= 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 
= 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0;
+ var $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;
+ var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 
= 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 
= 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0;
+ var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 
= 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 
= 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0;
+ var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, 
$179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, 
$186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0;
+ var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, 
$197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, 
$204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0;
+ var $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 
= 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 
= 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0;
+ var $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 
= 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 
= 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0;
+ var $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 
= 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 
= 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0;
+ var $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;
+ var $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, 
$288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, 
$295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0;
+ var $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 
0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 
0, $313 = 0, $314 = 0, $315 = 0, $316 = 0;
+ var $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 
= 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 
= 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0;
+ var $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 
= 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 
= 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0;
+ var $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 
= 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 
= 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0;
+ var $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, 
$378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, 
$385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0;
+ var $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 
= 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 
0, $403 = 0, $404 = 0, $405 = 0, $406 = 0;
+ var $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 
= 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 
= 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0;
+ var $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 
= 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 
= 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0;
+ var $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 
= 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 
= 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0;
+ var $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, 
$468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, 
$475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0;
+ var $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 
= 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 
= 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0;
+ var $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 
0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 
0, $511 = 0, $512 = 0, $513 = 0, $514 = 0;
+ var $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 
= 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 
= 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 
= 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 
= 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0;
+ var $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, 
$648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, 
$655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0;
+ var $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 
= 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 
= 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0;
+ var $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 
= 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 
= 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0;
+ var $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 
0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 
0, $71 = 0, $710 = 0, $711 = 0, $712 = 0;
+ var $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 
= 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 
= 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0;
+ var $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, 
$738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, 
$745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0;
+ var $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 
= 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 
= 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0;
+ var $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 
= 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 
= 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0;
+ var $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 
= 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 
0, $80 = 0, $800 = 0, $801 = 0, $802 = 0;
+ var $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 
= 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 
= 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0;
+ var $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, 
$828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, 
$835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0;
+ var $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 
= 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 
= 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0;
+ var $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 
= 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 
= 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0;
+ var $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 
= 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 
= 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0;
+ var $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 
0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 
0, $908 = 0, $909 = 0, $91 = 0, $910 = 0;
+ var $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, 
$918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, 
$925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0;
+ var $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 
= 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $95 = 0, $96 = 0, $97 = 
0, $98 = 0, $99 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($2)) + 3|0);
+ $4 = HEAP8[$3>>0]|0;
+ $5 = $4&255;
+ $6 = $5 << 24;
+ $7 = ((($2)) + 2|0);
+ $8 = HEAP8[$7>>0]|0;
+ $9 = $8&255;
+ $10 = $9 << 16;
+ $11 = $10 | $6;
+ $12 = ((($2)) + 1|0);
+ $13 = HEAP8[$12>>0]|0;
+ $14 = $13&255;
+ $15 = $14 << 8;
+ $16 = $11 | $15;
+ $17 = HEAP8[$2>>0]|0;
+ $18 = $17&255;
+ $19 = $16 | $18;
+ $20 = ((($0)) + 4096|0);
+ $21 = HEAP32[$20>>2]|0;
+ $22 = $19 ^ $21;
+ $23 = ((($2)) + 4|0);
+ $24 = ((($2)) + 7|0);
+ $25 = HEAP8[$24>>0]|0;
+ $26 = $25&255;
+ $27 = $26 << 24;
+ $28 = ((($2)) + 6|0);
+ $29 = HEAP8[$28>>0]|0;
+ $30 = $29&255;
+ $31 = $30 << 16;
+ $32 = $31 | $27;
+ $33 = ((($2)) + 5|0);
+ $34 = HEAP8[$33>>0]|0;
+ $35 = $34&255;
+ $36 = $35 << 8;
+ $37 = $32 | $36;
+ $38 = HEAP8[$23>>0]|0;
+ $39 = $38&255;
+ $40 = $37 | $39;
+ $41 = ((($0)) + 4100|0);
+ $42 = HEAP32[$41>>2]|0;
+ $43 = $40 ^ $42;
+ $44 = ((($2)) + 8|0);
+ $45 = ((($2)) + 11|0);
+ $46 = HEAP8[$45>>0]|0;
+ $47 = $46&255;
+ $48 = $47 << 24;
+ $49 = ((($2)) + 10|0);
+ $50 = HEAP8[$49>>0]|0;
+ $51 = $50&255;
+ $52 = $51 << 16;
+ $53 = $52 | $48;
+ $54 = ((($2)) + 9|0);
+ $55 = HEAP8[$54>>0]|0;
+ $56 = $55&255;
+ $57 = $56 << 8;
+ $58 = $53 | $57;
+ $59 = HEAP8[$44>>0]|0;
+ $60 = $59&255;
+ $61 = $58 | $60;
+ $62 = ((($0)) + 4104|0);
+ $63 = HEAP32[$62>>2]|0;
+ $64 = $61 ^ $63;
+ $65 = ((($2)) + 12|0);
+ $66 = ((($2)) + 15|0);
+ $67 = HEAP8[$66>>0]|0;
+ $68 = $67&255;
+ $69 = $68 << 24;
+ $70 = ((($2)) + 14|0);
+ $71 = HEAP8[$70>>0]|0;
+ $72 = $71&255;
+ $73 = $72 << 16;
+ $74 = $73 | $69;
+ $75 = ((($2)) + 13|0);
+ $76 = HEAP8[$75>>0]|0;
+ $77 = $76&255;
+ $78 = $77 << 8;
+ $79 = $74 | $78;
+ $80 = HEAP8[$65>>0]|0;
+ $81 = $80&255;
+ $82 = $79 | $81;
+ $83 = ((($0)) + 4108|0);
+ $84 = HEAP32[$83>>2]|0;
+ $85 = $82 ^ $84;
+ $86 = $22 & 255;
+ $87 = (($0) + ($86<<2)|0);
+ $88 = HEAP32[$87>>2]|0;
+ $89 = $22 >>> 8;
+ $90 = $89 & 255;
+ $91 = (((($0)) + 1024|0) + ($90<<2)|0);
+ $92 = HEAP32[$91>>2]|0;
+ $93 = $92 ^ $88;
+ $94 = $22 >>> 16;
+ $95 = $94 & 255;
+ $96 = (((($0)) + 2048|0) + ($95<<2)|0);
+ $97 = HEAP32[$96>>2]|0;
+ $98 = $93 ^ $97;
+ $99 = $22 >>> 24;
+ $100 = (((($0)) + 3072|0) + ($99<<2)|0);
+ $101 = HEAP32[$100>>2]|0;
+ $102 = $98 ^ $101;
+ $103 = $43 & 255;
+ $104 = (((($0)) + 1024|0) + ($103<<2)|0);
+ $105 = HEAP32[$104>>2]|0;
+ $106 = $43 >>> 8;
+ $107 = $106 & 255;
+ $108 = (((($0)) + 2048|0) + ($107<<2)|0);
+ $109 = HEAP32[$108>>2]|0;
+ $110 = $109 ^ $105;
+ $111 = $43 >>> 16;
+ $112 = $111 & 255;
+ $113 = (((($0)) + 3072|0) + ($112<<2)|0);
+ $114 = HEAP32[$113>>2]|0;
+ $115 = $110 ^ $114;
+ $116 = $43 >>> 24;
+ $117 = (($0) + ($116<<2)|0);
+ $118 = HEAP32[$117>>2]|0;
+ $119 = $115 ^ $118;
+ $120 = (($119) + ($102))|0;
+ $121 = ((($0)) + 4132|0);
+ $122 = HEAP32[$121>>2]|0;
+ $123 = (($119) + ($122))|0;
+ $124 = (($123) + ($120))|0;
+ $125 = ((($0)) + 4128|0);
+ $126 = HEAP32[$125>>2]|0;
+ $127 = (($120) + ($126))|0;
+ $128 = $64 ^ $127;
+ $129 = $128 >>> 1;
+ $130 = $128 << 31;
+ $131 = $129 | $130;
+ $132 = $85 << 1;
+ $133 = $85 >>> 31;
+ $134 = $132 | $133;
+ $135 = $124 ^ $134;
+ $136 = $129 & 255;
+ $137 = (($0) + ($136<<2)|0);
+ $138 = HEAP32[$137>>2]|0;
+ $139 = $128 >>> 9;
+ $140 = $139 & 255;
+ $141 = (((($0)) + 1024|0) + ($140<<2)|0);
+ $142 = HEAP32[$141>>2]|0;
+ $143 = $142 ^ $138;
+ $144 = $128 >>> 17;
+ $145 = $144 & 255;
+ $146 = (((($0)) + 2048|0) + ($145<<2)|0);
+ $147 = HEAP32[$146>>2]|0;
+ $148 = $143 ^ $147;
+ $149 = $131 >>> 24;
+ $150 = (((($0)) + 3072|0) + ($149<<2)|0);
+ $151 = HEAP32[$150>>2]|0;
+ $152 = $148 ^ $151;
+ $153 = $135 & 255;
+ $154 = (((($0)) + 1024|0) + ($153<<2)|0);
+ $155 = HEAP32[$154>>2]|0;
+ $156 = $135 >>> 8;
+ $157 = $156 & 255;
+ $158 = (((($0)) + 2048|0) + ($157<<2)|0);
+ $159 = HEAP32[$158>>2]|0;
+ $160 = $159 ^ $155;
+ $161 = $135 >>> 16;
+ $162 = $161 & 255;
+ $163 = (((($0)) + 3072|0) + ($162<<2)|0);
+ $164 = HEAP32[$163>>2]|0;
+ $165 = $160 ^ $164;
+ $166 = $135 >>> 24;
+ $167 = (($0) + ($166<<2)|0);
+ $168 = HEAP32[$167>>2]|0;
+ $169 = $165 ^ $168;
+ $170 = (($169) + ($152))|0;
+ $171 = ((($0)) + 4140|0);
+ $172 = HEAP32[$171>>2]|0;
+ $173 = (($169) + ($172))|0;
+ $174 = (($173) + ($170))|0;
+ $175 = ((($0)) + 4136|0);
+ $176 = HEAP32[$175>>2]|0;
+ $177 = (($170) + ($176))|0;
+ $178 = $177 ^ $22;
+ $179 = $178 >>> 1;
+ $180 = $178 << 31;
+ $181 = $179 | $180;
+ $182 = $43 << 1;
+ $183 = $43 >>> 31;
+ $184 = $182 | $183;
+ $185 = $174 ^ $184;
+ $186 = $179 & 255;
+ $187 = (($0) + ($186<<2)|0);
+ $188 = HEAP32[$187>>2]|0;
+ $189 = $178 >>> 9;
+ $190 = $189 & 255;
+ $191 = (((($0)) + 1024|0) + ($190<<2)|0);
+ $192 = HEAP32[$191>>2]|0;
+ $193 = $192 ^ $188;
+ $194 = $178 >>> 17;
+ $195 = $194 & 255;
+ $196 = (((($0)) + 2048|0) + ($195<<2)|0);
+ $197 = HEAP32[$196>>2]|0;
+ $198 = $193 ^ $197;
+ $199 = $181 >>> 24;
+ $200 = (((($0)) + 3072|0) + ($199<<2)|0);
+ $201 = HEAP32[$200>>2]|0;
+ $202 = $198 ^ $201;
+ $203 = $185 & 255;
+ $204 = (((($0)) + 1024|0) + ($203<<2)|0);
+ $205 = HEAP32[$204>>2]|0;
+ $206 = $185 >>> 8;
+ $207 = $206 & 255;
+ $208 = (((($0)) + 2048|0) + ($207<<2)|0);
+ $209 = HEAP32[$208>>2]|0;
+ $210 = $209 ^ $205;
+ $211 = $185 >>> 16;
+ $212 = $211 & 255;
+ $213 = (((($0)) + 3072|0) + ($212<<2)|0);
+ $214 = HEAP32[$213>>2]|0;
+ $215 = $210 ^ $214;
+ $216 = $185 >>> 24;
+ $217 = (($0) + ($216<<2)|0);
+ $218 = HEAP32[$217>>2]|0;
+ $219 = $215 ^ $218;
+ $220 = (($219) + ($202))|0;
+ $221 = ((($0)) + 4148|0);
+ $222 = HEAP32[$221>>2]|0;
+ $223 = (($219) + ($222))|0;
+ $224 = (($223) + ($220))|0;
+ $225 = ((($0)) + 4144|0);
+ $226 = HEAP32[$225>>2]|0;
+ $227 = (($220) + ($226))|0;
+ $228 = $227 ^ $131;
+ $229 = $228 >>> 1;
+ $230 = $228 << 31;
+ $231 = $229 | $230;
+ $232 = $135 << 1;
+ $233 = $135 >>> 31;
+ $234 = $232 | $233;
+ $235 = $224 ^ $234;
+ $236 = $229 & 255;
+ $237 = (($0) + ($236<<2)|0);
+ $238 = HEAP32[$237>>2]|0;
+ $239 = $228 >>> 9;
+ $240 = $239 & 255;
+ $241 = (((($0)) + 1024|0) + ($240<<2)|0);
+ $242 = HEAP32[$241>>2]|0;
+ $243 = $242 ^ $238;
+ $244 = $228 >>> 17;
+ $245 = $244 & 255;
+ $246 = (((($0)) + 2048|0) + ($245<<2)|0);
+ $247 = HEAP32[$246>>2]|0;
+ $248 = $243 ^ $247;
+ $249 = $231 >>> 24;
+ $250 = (((($0)) + 3072|0) + ($249<<2)|0);
+ $251 = HEAP32[$250>>2]|0;
+ $252 = $248 ^ $251;
+ $253 = $235 & 255;
+ $254 = (((($0)) + 1024|0) + ($253<<2)|0);
+ $255 = HEAP32[$254>>2]|0;
+ $256 = $235 >>> 8;
+ $257 = $256 & 255;
+ $258 = (((($0)) + 2048|0) + ($257<<2)|0);
+ $259 = HEAP32[$258>>2]|0;
+ $260 = $259 ^ $255;
+ $261 = $235 >>> 16;
+ $262 = $261 & 255;
+ $263 = (((($0)) + 3072|0) + ($262<<2)|0);
+ $264 = HEAP32[$263>>2]|0;
+ $265 = $260 ^ $264;
+ $266 = $235 >>> 24;
+ $267 = (($0) + ($266<<2)|0);
+ $268 = HEAP32[$267>>2]|0;
+ $269 = $265 ^ $268;
+ $270 = (($269) + ($252))|0;
+ $271 = ((($0)) + 4156|0);
+ $272 = HEAP32[$271>>2]|0;
+ $273 = (($269) + ($272))|0;
+ $274 = (($273) + ($270))|0;
+ $275 = ((($0)) + 4152|0);
+ $276 = HEAP32[$275>>2]|0;
+ $277 = (($270) + ($276))|0;
+ $278 = $277 ^ $181;
+ $279 = $278 >>> 1;
+ $280 = $278 << 31;
+ $281 = $279 | $280;
+ $282 = $185 << 1;
+ $283 = $185 >>> 31;
+ $284 = $282 | $283;
+ $285 = $274 ^ $284;
+ $286 = $279 & 255;
+ $287 = (($0) + ($286<<2)|0);
+ $288 = HEAP32[$287>>2]|0;
+ $289 = $278 >>> 9;
+ $290 = $289 & 255;
+ $291 = (((($0)) + 1024|0) + ($290<<2)|0);
+ $292 = HEAP32[$291>>2]|0;
+ $293 = $292 ^ $288;
+ $294 = $278 >>> 17;
+ $295 = $294 & 255;
+ $296 = (((($0)) + 2048|0) + ($295<<2)|0);
+ $297 = HEAP32[$296>>2]|0;
+ $298 = $293 ^ $297;
+ $299 = $281 >>> 24;
+ $300 = (((($0)) + 3072|0) + ($299<<2)|0);
+ $301 = HEAP32[$300>>2]|0;
+ $302 = $298 ^ $301;
+ $303 = $285 & 255;
+ $304 = (((($0)) + 1024|0) + ($303<<2)|0);
+ $305 = HEAP32[$304>>2]|0;
+ $306 = $285 >>> 8;
+ $307 = $306 & 255;
+ $308 = (((($0)) + 2048|0) + ($307<<2)|0);
+ $309 = HEAP32[$308>>2]|0;
+ $310 = $309 ^ $305;
+ $311 = $285 >>> 16;
+ $312 = $311 & 255;
+ $313 = (((($0)) + 3072|0) + ($312<<2)|0);
+ $314 = HEAP32[$313>>2]|0;
+ $315 = $310 ^ $314;
+ $316 = $285 >>> 24;
+ $317 = (($0) + ($316<<2)|0);
+ $318 = HEAP32[$317>>2]|0;
+ $319 = $315 ^ $318;
+ $320 = (($319) + ($302))|0;
+ $321 = ((($0)) + 4164|0);
+ $322 = HEAP32[$321>>2]|0;
+ $323 = (($319) + ($322))|0;
+ $324 = (($323) + ($320))|0;
+ $325 = ((($0)) + 4160|0);
+ $326 = HEAP32[$325>>2]|0;
+ $327 = (($320) + ($326))|0;
+ $328 = $327 ^ $231;
+ $329 = $328 >>> 1;
+ $330 = $328 << 31;
+ $331 = $329 | $330;
+ $332 = $235 << 1;
+ $333 = $235 >>> 31;
+ $334 = $332 | $333;
+ $335 = $324 ^ $334;
+ $336 = $329 & 255;
+ $337 = (($0) + ($336<<2)|0);
+ $338 = HEAP32[$337>>2]|0;
+ $339 = $328 >>> 9;
+ $340 = $339 & 255;
+ $341 = (((($0)) + 1024|0) + ($340<<2)|0);
+ $342 = HEAP32[$341>>2]|0;
+ $343 = $342 ^ $338;
+ $344 = $328 >>> 17;
+ $345 = $344 & 255;
+ $346 = (((($0)) + 2048|0) + ($345<<2)|0);
+ $347 = HEAP32[$346>>2]|0;
+ $348 = $343 ^ $347;
+ $349 = $331 >>> 24;
+ $350 = (((($0)) + 3072|0) + ($349<<2)|0);
+ $351 = HEAP32[$350>>2]|0;
+ $352 = $348 ^ $351;
+ $353 = $335 & 255;
+ $354 = (((($0)) + 1024|0) + ($353<<2)|0);
+ $355 = HEAP32[$354>>2]|0;
+ $356 = $335 >>> 8;
+ $357 = $356 & 255;
+ $358 = (((($0)) + 2048|0) + ($357<<2)|0);
+ $359 = HEAP32[$358>>2]|0;
+ $360 = $359 ^ $355;
+ $361 = $335 >>> 16;
+ $362 = $361 & 255;
+ $363 = (((($0)) + 3072|0) + ($362<<2)|0);
+ $364 = HEAP32[$363>>2]|0;
+ $365 = $360 ^ $364;
+ $366 = $335 >>> 24;
+ $367 = (($0) + ($366<<2)|0);
+ $368 = HEAP32[$367>>2]|0;
+ $369 = $365 ^ $368;
+ $370 = (($369) + ($352))|0;
+ $371 = ((($0)) + 4172|0);
+ $372 = HEAP32[$371>>2]|0;
+ $373 = (($369) + ($372))|0;
+ $374 = (($373) + ($370))|0;
+ $375 = ((($0)) + 4168|0);
+ $376 = HEAP32[$375>>2]|0;
+ $377 = (($370) + ($376))|0;
+ $378 = $377 ^ $281;
+ $379 = $378 >>> 1;
+ $380 = $378 << 31;
+ $381 = $379 | $380;
+ $382 = $285 << 1;
+ $383 = $285 >>> 31;
+ $384 = $382 | $383;
+ $385 = $374 ^ $384;
+ $386 = $379 & 255;
+ $387 = (($0) + ($386<<2)|0);
+ $388 = HEAP32[$387>>2]|0;
+ $389 = $378 >>> 9;
+ $390 = $389 & 255;
+ $391 = (((($0)) + 1024|0) + ($390<<2)|0);
+ $392 = HEAP32[$391>>2]|0;
+ $393 = $392 ^ $388;
+ $394 = $378 >>> 17;
+ $395 = $394 & 255;
+ $396 = (((($0)) + 2048|0) + ($395<<2)|0);
+ $397 = HEAP32[$396>>2]|0;
+ $398 = $393 ^ $397;
+ $399 = $381 >>> 24;
+ $400 = (((($0)) + 3072|0) + ($399<<2)|0);
+ $401 = HEAP32[$400>>2]|0;
+ $402 = $398 ^ $401;
+ $403 = $385 & 255;
+ $404 = (((($0)) + 1024|0) + ($403<<2)|0);
+ $405 = HEAP32[$404>>2]|0;
+ $406 = $385 >>> 8;
+ $407 = $406 & 255;
+ $408 = (((($0)) + 2048|0) + ($407<<2)|0);
+ $409 = HEAP32[$408>>2]|0;
+ $410 = $409 ^ $405;
+ $411 = $385 >>> 16;
+ $412 = $411 & 255;
+ $413 = (((($0)) + 3072|0) + ($412<<2)|0);
+ $414 = HEAP32[$413>>2]|0;
+ $415 = $410 ^ $414;
+ $416 = $385 >>> 24;
+ $417 = (($0) + ($416<<2)|0);
+ $418 = HEAP32[$417>>2]|0;
+ $419 = $415 ^ $418;
+ $420 = (($419) + ($402))|0;
+ $421 = ((($0)) + 4180|0);
+ $422 = HEAP32[$421>>2]|0;
+ $423 = (($419) + ($422))|0;
+ $424 = (($423) + ($420))|0;
+ $425 = ((($0)) + 4176|0);
+ $426 = HEAP32[$425>>2]|0;
+ $427 = (($420) + ($426))|0;
+ $428 = $427 ^ $331;
+ $429 = $428 >>> 1;
+ $430 = $428 << 31;
+ $431 = $429 | $430;
+ $432 = $335 << 1;
+ $433 = $335 >>> 31;
+ $434 = $432 | $433;
+ $435 = $424 ^ $434;
+ $436 = $429 & 255;
+ $437 = (($0) + ($436<<2)|0);
+ $438 = HEAP32[$437>>2]|0;
+ $439 = $428 >>> 9;
+ $440 = $439 & 255;
+ $441 = (((($0)) + 1024|0) + ($440<<2)|0);
+ $442 = HEAP32[$441>>2]|0;
+ $443 = $442 ^ $438;
+ $444 = $428 >>> 17;
+ $445 = $444 & 255;
+ $446 = (((($0)) + 2048|0) + ($445<<2)|0);
+ $447 = HEAP32[$446>>2]|0;
+ $448 = $443 ^ $447;
+ $449 = $431 >>> 24;
+ $450 = (((($0)) + 3072|0) + ($449<<2)|0);
+ $451 = HEAP32[$450>>2]|0;
+ $452 = $448 ^ $451;
+ $453 = $435 & 255;
+ $454 = (((($0)) + 1024|0) + ($453<<2)|0);
+ $455 = HEAP32[$454>>2]|0;
+ $456 = $435 >>> 8;
+ $457 = $456 & 255;
+ $458 = (((($0)) + 2048|0) + ($457<<2)|0);
+ $459 = HEAP32[$458>>2]|0;
+ $460 = $459 ^ $455;
+ $461 = $435 >>> 16;
+ $462 = $461 & 255;
+ $463 = (((($0)) + 3072|0) + ($462<<2)|0);
+ $464 = HEAP32[$463>>2]|0;
+ $465 = $460 ^ $464;
+ $466 = $435 >>> 24;
+ $467 = (($0) + ($466<<2)|0);
+ $468 = HEAP32[$467>>2]|0;
+ $469 = $465 ^ $468;
+ $470 = (($469) + ($452))|0;
+ $471 = ((($0)) + 4188|0);
+ $472 = HEAP32[$471>>2]|0;
+ $473 = (($469) + ($472))|0;
+ $474 = (($473) + ($470))|0;
+ $475 = ((($0)) + 4184|0);
+ $476 = HEAP32[$475>>2]|0;
+ $477 = (($470) + ($476))|0;
+ $478 = $477 ^ $381;
+ $479 = $478 >>> 1;
+ $480 = $478 << 31;
+ $481 = $479 | $480;
+ $482 = $385 << 1;
+ $483 = $385 >>> 31;
+ $484 = $482 | $483;
+ $485 = $474 ^ $484;
+ $486 = $479 & 255;
+ $487 = (($0) + ($486<<2)|0);
+ $488 = HEAP32[$487>>2]|0;
+ $489 = $478 >>> 9;
+ $490 = $489 & 255;
+ $491 = (((($0)) + 1024|0) + ($490<<2)|0);
+ $492 = HEAP32[$491>>2]|0;
+ $493 = $492 ^ $488;
+ $494 = $478 >>> 17;
+ $495 = $494 & 255;
+ $496 = (((($0)) + 2048|0) + ($495<<2)|0);
+ $497 = HEAP32[$496>>2]|0;
+ $498 = $493 ^ $497;
+ $499 = $481 >>> 24;
+ $500 = (((($0)) + 3072|0) + ($499<<2)|0);
+ $501 = HEAP32[$500>>2]|0;
+ $502 = $498 ^ $501;
+ $503 = $485 & 255;
+ $504 = (((($0)) + 1024|0) + ($503<<2)|0);
+ $505 = HEAP32[$504>>2]|0;
+ $506 = $485 >>> 8;
+ $507 = $506 & 255;
+ $508 = (((($0)) + 2048|0) + ($507<<2)|0);
+ $509 = HEAP32[$508>>2]|0;
+ $510 = $509 ^ $505;
+ $511 = $485 >>> 16;
+ $512 = $511 & 255;
+ $513 = (((($0)) + 3072|0) + ($512<<2)|0);
+ $514 = HEAP32[$513>>2]|0;
+ $515 = $510 ^ $514;
+ $516 = $485 >>> 24;
+ $517 = (($0) + ($516<<2)|0);
+ $518 = HEAP32[$517>>2]|0;
+ $519 = $515 ^ $518;
+ $520 = (($519) + ($502))|0;
+ $521 = ((($0)) + 4196|0);
+ $522 = HEAP32[$521>>2]|0;
+ $523 = (($519) + ($522))|0;
+ $524 = (($523) + ($520))|0;
+ $525 = ((($0)) + 4192|0);
+ $526 = HEAP32[$525>>2]|0;
+ $527 = (($520) + ($526))|0;
+ $528 = $527 ^ $431;
+ $529 = $528 >>> 1;
+ $530 = $528 << 31;
+ $531 = $529 | $530;
+ $532 = $435 << 1;
+ $533 = $435 >>> 31;
+ $534 = $532 | $533;
+ $535 = $524 ^ $534;
+ $536 = $529 & 255;
+ $537 = (($0) + ($536<<2)|0);
+ $538 = HEAP32[$537>>2]|0;
+ $539 = $528 >>> 9;
+ $540 = $539 & 255;
+ $541 = (((($0)) + 1024|0) + ($540<<2)|0);
+ $542 = HEAP32[$541>>2]|0;
+ $543 = $542 ^ $538;
+ $544 = $528 >>> 17;
+ $545 = $544 & 255;
+ $546 = (((($0)) + 2048|0) + ($545<<2)|0);
+ $547 = HEAP32[$546>>2]|0;
+ $548 = $543 ^ $547;
+ $549 = $531 >>> 24;
+ $550 = (((($0)) + 3072|0) + ($549<<2)|0);
+ $551 = HEAP32[$550>>2]|0;
+ $552 = $548 ^ $551;
+ $553 = $535 & 255;
+ $554 = (((($0)) + 1024|0) + ($553<<2)|0);
+ $555 = HEAP32[$554>>2]|0;
+ $556 = $535 >>> 8;
+ $557 = $556 & 255;
+ $558 = (((($0)) + 2048|0) + ($557<<2)|0);
+ $559 = HEAP32[$558>>2]|0;
+ $560 = $559 ^ $555;
+ $561 = $535 >>> 16;
+ $562 = $561 & 255;
+ $563 = (((($0)) + 3072|0) + ($562<<2)|0);
+ $564 = HEAP32[$563>>2]|0;
+ $565 = $560 ^ $564;
+ $566 = $535 >>> 24;
+ $567 = (($0) + ($566<<2)|0);
+ $568 = HEAP32[$567>>2]|0;
+ $569 = $565 ^ $568;
+ $570 = (($569) + ($552))|0;
+ $571 = ((($0)) + 4204|0);
+ $572 = HEAP32[$571>>2]|0;
+ $573 = (($569) + ($572))|0;
+ $574 = (($573) + ($570))|0;
+ $575 = ((($0)) + 4200|0);
+ $576 = HEAP32[$575>>2]|0;
+ $577 = (($570) + ($576))|0;
+ $578 = $577 ^ $481;
+ $579 = $578 >>> 1;
+ $580 = $578 << 31;
+ $581 = $579 | $580;
+ $582 = $485 << 1;
+ $583 = $485 >>> 31;
+ $584 = $582 | $583;
+ $585 = $574 ^ $584;
+ $586 = $579 & 255;
+ $587 = (($0) + ($586<<2)|0);
+ $588 = HEAP32[$587>>2]|0;
+ $589 = $578 >>> 9;
+ $590 = $589 & 255;
+ $591 = (((($0)) + 1024|0) + ($590<<2)|0);
+ $592 = HEAP32[$591>>2]|0;
+ $593 = $592 ^ $588;
+ $594 = $578 >>> 17;
+ $595 = $594 & 255;
+ $596 = (((($0)) + 2048|0) + ($595<<2)|0);
+ $597 = HEAP32[$596>>2]|0;
+ $598 = $593 ^ $597;
+ $599 = $581 >>> 24;
+ $600 = (((($0)) + 3072|0) + ($599<<2)|0);
+ $601 = HEAP32[$600>>2]|0;
+ $602 = $598 ^ $601;
+ $603 = $585 & 255;
+ $604 = (((($0)) + 1024|0) + ($603<<2)|0);
+ $605 = HEAP32[$604>>2]|0;
+ $606 = $585 >>> 8;
+ $607 = $606 & 255;
+ $608 = (((($0)) + 2048|0) + ($607<<2)|0);
+ $609 = HEAP32[$608>>2]|0;
+ $610 = $609 ^ $605;
+ $611 = $585 >>> 16;
+ $612 = $611 & 255;
+ $613 = (((($0)) + 3072|0) + ($612<<2)|0);
+ $614 = HEAP32[$613>>2]|0;
+ $615 = $610 ^ $614;
+ $616 = $585 >>> 24;
+ $617 = (($0) + ($616<<2)|0);
+ $618 = HEAP32[$617>>2]|0;
+ $619 = $615 ^ $618;
+ $620 = (($619) + ($602))|0;
+ $621 = ((($0)) + 4212|0);
+ $622 = HEAP32[$621>>2]|0;
+ $623 = (($619) + ($622))|0;
+ $624 = (($623) + ($620))|0;
+ $625 = ((($0)) + 4208|0);
+ $626 = HEAP32[$625>>2]|0;
+ $627 = (($620) + ($626))|0;
+ $628 = $627 ^ $531;
+ $629 = $628 >>> 1;
+ $630 = $628 << 31;
+ $631 = $629 | $630;
+ $632 = $535 << 1;
+ $633 = $535 >>> 31;
+ $634 = $632 | $633;
+ $635 = $624 ^ $634;
+ $636 = $629 & 255;
+ $637 = (($0) + ($636<<2)|0);
+ $638 = HEAP32[$637>>2]|0;
+ $639 = $628 >>> 9;
+ $640 = $639 & 255;
+ $641 = (((($0)) + 1024|0) + ($640<<2)|0);
+ $642 = HEAP32[$641>>2]|0;
+ $643 = $642 ^ $638;
+ $644 = $628 >>> 17;
+ $645 = $644 & 255;
+ $646 = (((($0)) + 2048|0) + ($645<<2)|0);
+ $647 = HEAP32[$646>>2]|0;
+ $648 = $643 ^ $647;
+ $649 = $631 >>> 24;
+ $650 = (((($0)) + 3072|0) + ($649<<2)|0);
+ $651 = HEAP32[$650>>2]|0;
+ $652 = $648 ^ $651;
+ $653 = $635 & 255;
+ $654 = (((($0)) + 1024|0) + ($653<<2)|0);
+ $655 = HEAP32[$654>>2]|0;
+ $656 = $635 >>> 8;
+ $657 = $656 & 255;
+ $658 = (((($0)) + 2048|0) + ($657<<2)|0);
+ $659 = HEAP32[$658>>2]|0;
+ $660 = $659 ^ $655;
+ $661 = $635 >>> 16;
+ $662 = $661 & 255;
+ $663 = (((($0)) + 3072|0) + ($662<<2)|0);
+ $664 = HEAP32[$663>>2]|0;
+ $665 = $660 ^ $664;
+ $666 = $635 >>> 24;
+ $667 = (($0) + ($666<<2)|0);
+ $668 = HEAP32[$667>>2]|0;
+ $669 = $665 ^ $668;
+ $670 = (($669) + ($652))|0;
+ $671 = ((($0)) + 4220|0);
+ $672 = HEAP32[$671>>2]|0;
+ $673 = (($669) + ($672))|0;
+ $674 = (($673) + ($670))|0;
+ $675 = ((($0)) + 4216|0);
+ $676 = HEAP32[$675>>2]|0;
+ $677 = (($670) + ($676))|0;
+ $678 = $677 ^ $581;
+ $679 = $678 >>> 1;
+ $680 = $678 << 31;
+ $681 = $679 | $680;
+ $682 = $585 << 1;
+ $683 = $585 >>> 31;
+ $684 = $682 | $683;
+ $685 = $674 ^ $684;
+ $686 = $679 & 255;
+ $687 = (($0) + ($686<<2)|0);
+ $688 = HEAP32[$687>>2]|0;
+ $689 = $678 >>> 9;
+ $690 = $689 & 255;
+ $691 = (((($0)) + 1024|0) + ($690<<2)|0);
+ $692 = HEAP32[$691>>2]|0;
+ $693 = $692 ^ $688;
+ $694 = $678 >>> 17;
+ $695 = $694 & 255;
+ $696 = (((($0)) + 2048|0) + ($695<<2)|0);
+ $697 = HEAP32[$696>>2]|0;
+ $698 = $693 ^ $697;
+ $699 = $681 >>> 24;
+ $700 = (((($0)) + 3072|0) + ($699<<2)|0);
+ $701 = HEAP32[$700>>2]|0;
+ $702 = $698 ^ $701;
+ $703 = $685 & 255;
+ $704 = (((($0)) + 1024|0) + ($703<<2)|0);
+ $705 = HEAP32[$704>>2]|0;
+ $706 = $685 >>> 8;
+ $707 = $706 & 255;
+ $708 = (((($0)) + 2048|0) + ($707<<2)|0);
+ $709 = HEAP32[$708>>2]|0;
+ $710 = $709 ^ $705;
+ $711 = $685 >>> 16;
+ $712 = $711 & 255;
+ $713 = (((($0)) + 3072|0) + ($712<<2)|0);
+ $714 = HEAP32[$713>>2]|0;
+ $715 = $710 ^ $714;
+ $716 = $685 >>> 24;
+ $717 = (($0) + ($716<<2)|0);
+ $718 = HEAP32[$717>>2]|0;
+ $719 = $715 ^ $718;
+ $720 = (($719) + ($702))|0;
+ $721 = ((($0)) + 4228|0);
+ $722 = HEAP32[$721>>2]|0;
+ $723 = (($719) + ($722))|0;
+ $724 = (($723) + ($720))|0;
+ $725 = ((($0)) + 4224|0);
+ $726 = HEAP32[$725>>2]|0;
+ $727 = (($720) + ($726))|0;
+ $728 = $727 ^ $631;
+ $729 = $728 >>> 1;
+ $730 = $728 << 31;
+ $731 = $729 | $730;
+ $732 = $635 << 1;
+ $733 = $635 >>> 31;
+ $734 = $732 | $733;
+ $735 = $724 ^ $734;
+ $736 = $729 & 255;
+ $737 = (($0) + ($736<<2)|0);
+ $738 = HEAP32[$737>>2]|0;
+ $739 = $728 >>> 9;
+ $740 = $739 & 255;
+ $741 = (((($0)) + 1024|0) + ($740<<2)|0);
+ $742 = HEAP32[$741>>2]|0;
+ $743 = $742 ^ $738;
+ $744 = $728 >>> 17;
+ $745 = $744 & 255;
+ $746 = (((($0)) + 2048|0) + ($745<<2)|0);
+ $747 = HEAP32[$746>>2]|0;
+ $748 = $743 ^ $747;
+ $749 = $731 >>> 24;
+ $750 = (((($0)) + 3072|0) + ($749<<2)|0);
+ $751 = HEAP32[$750>>2]|0;
+ $752 = $748 ^ $751;
+ $753 = $735 & 255;
+ $754 = (((($0)) + 1024|0) + ($753<<2)|0);
+ $755 = HEAP32[$754>>2]|0;
+ $756 = $735 >>> 8;
+ $757 = $756 & 255;
+ $758 = (((($0)) + 2048|0) + ($757<<2)|0);
+ $759 = HEAP32[$758>>2]|0;
+ $760 = $759 ^ $755;
+ $761 = $735 >>> 16;
+ $762 = $761 & 255;
+ $763 = (((($0)) + 3072|0) + ($762<<2)|0);
+ $764 = HEAP32[$763>>2]|0;
+ $765 = $760 ^ $764;
+ $766 = $735 >>> 24;
+ $767 = (($0) + ($766<<2)|0);
+ $768 = HEAP32[$767>>2]|0;
+ $769 = $765 ^ $768;
+ $770 = (($769) + ($752))|0;
+ $771 = ((($0)) + 4236|0);
+ $772 = HEAP32[$771>>2]|0;
+ $773 = (($769) + ($772))|0;
+ $774 = (($773) + ($770))|0;
+ $775 = ((($0)) + 4232|0);
+ $776 = HEAP32[$775>>2]|0;
+ $777 = (($770) + ($776))|0;
+ $778 = $777 ^ $681;
+ $779 = $778 >>> 1;
+ $780 = $778 << 31;
+ $781 = $779 | $780;
+ $782 = $685 << 1;
+ $783 = $685 >>> 31;
+ $784 = $782 | $783;
+ $785 = $774 ^ $784;
+ $786 = $779 & 255;
+ $787 = (($0) + ($786<<2)|0);
+ $788 = HEAP32[$787>>2]|0;
+ $789 = $778 >>> 9;
+ $790 = $789 & 255;
+ $791 = (((($0)) + 1024|0) + ($790<<2)|0);
+ $792 = HEAP32[$791>>2]|0;
+ $793 = $792 ^ $788;
+ $794 = $778 >>> 17;
+ $795 = $794 & 255;
+ $796 = (((($0)) + 2048|0) + ($795<<2)|0);
+ $797 = HEAP32[$796>>2]|0;
+ $798 = $793 ^ $797;
+ $799 = $781 >>> 24;
+ $800 = (((($0)) + 3072|0) + ($799<<2)|0);
+ $801 = HEAP32[$800>>2]|0;
+ $802 = $798 ^ $801;
+ $803 = $785 & 255;
+ $804 = (((($0)) + 1024|0) + ($803<<2)|0);
+ $805 = HEAP32[$804>>2]|0;
+ $806 = $785 >>> 8;
+ $807 = $806 & 255;
+ $808 = (((($0)) + 2048|0) + ($807<<2)|0);
+ $809 = HEAP32[$808>>2]|0;
+ $810 = $809 ^ $805;
+ $811 = $785 >>> 16;
+ $812 = $811 & 255;
+ $813 = (((($0)) + 3072|0) + ($812<<2)|0);
+ $814 = HEAP32[$813>>2]|0;
+ $815 = $810 ^ $814;
+ $816 = $785 >>> 24;
+ $817 = (($0) + ($816<<2)|0);
+ $818 = HEAP32[$817>>2]|0;
+ $819 = $815 ^ $818;
+ $820 = (($819) + ($802))|0;
+ $821 = ((($0)) + 4244|0);
+ $822 = HEAP32[$821>>2]|0;
+ $823 = (($819) + ($822))|0;
+ $824 = (($823) + ($820))|0;
+ $825 = ((($0)) + 4240|0);
+ $826 = HEAP32[$825>>2]|0;
+ $827 = (($820) + ($826))|0;
+ $828 = $827 ^ $731;
+ $829 = $828 >>> 1;
+ $830 = $828 << 31;
+ $831 = $829 | $830;
+ $832 = $735 << 1;
+ $833 = $735 >>> 31;
+ $834 = $832 | $833;
+ $835 = $824 ^ $834;
+ $836 = $829 & 255;
+ $837 = (($0) + ($836<<2)|0);
+ $838 = HEAP32[$837>>2]|0;
+ $839 = $828 >>> 9;
+ $840 = $839 & 255;
+ $841 = (((($0)) + 1024|0) + ($840<<2)|0);
+ $842 = HEAP32[$841>>2]|0;
+ $843 = $842 ^ $838;
+ $844 = $828 >>> 17;
+ $845 = $844 & 255;
+ $846 = (((($0)) + 2048|0) + ($845<<2)|0);
+ $847 = HEAP32[$846>>2]|0;
+ $848 = $843 ^ $847;
+ $849 = $831 >>> 24;
+ $850 = (((($0)) + 3072|0) + ($849<<2)|0);
+ $851 = HEAP32[$850>>2]|0;
+ $852 = $848 ^ $851;
+ $853 = $835 & 255;
+ $854 = (((($0)) + 1024|0) + ($853<<2)|0);
+ $855 = HEAP32[$854>>2]|0;
+ $856 = $835 >>> 8;
+ $857 = $856 & 255;
+ $858 = (((($0)) + 2048|0) + ($857<<2)|0);
+ $859 = HEAP32[$858>>2]|0;
+ $860 = $859 ^ $855;
+ $861 = $835 >>> 16;
+ $862 = $861 & 255;
+ $863 = (((($0)) + 3072|0) + ($862<<2)|0);
+ $864 = HEAP32[$863>>2]|0;
+ $865 = $860 ^ $864;
+ $866 = $835 >>> 24;
+ $867 = (($0) + ($866<<2)|0);
+ $868 = HEAP32[$867>>2]|0;
+ $869 = $865 ^ $868;
+ $870 = (($869) + ($852))|0;
+ $871 = ((($0)) + 4252|0);
+ $872 = HEAP32[$871>>2]|0;
+ $873 = (($869) + ($872))|0;
+ $874 = (($873) + ($870))|0;
+ $875 = ((($0)) + 4248|0);
+ $876 = HEAP32[$875>>2]|0;
+ $877 = (($870) + ($876))|0;
+ $878 = $877 ^ $781;
+ $879 = $878 >>> 1;
+ $880 = $878 << 31;
+ $881 = $879 | $880;
+ $882 = $785 << 1;
+ $883 = $785 >>> 31;
+ $884 = $882 | $883;
+ $885 = $874 ^ $884;
+ $886 = ((($0)) + 4112|0);
+ $887 = HEAP32[$886>>2]|0;
+ $888 = $887 ^ $831;
+ $889 = $888 >>> 24;
+ $890 = $889&255;
+ $891 = ((($1)) + 3|0);
+ HEAP8[$891>>0] = $890;
+ $892 = $888 >>> 16;
+ $893 = $892&255;
+ $894 = ((($1)) + 2|0);
+ HEAP8[$894>>0] = $893;
+ $895 = $888 >>> 8;
+ $896 = $895&255;
+ $897 = ((($1)) + 1|0);
+ HEAP8[$897>>0] = $896;
+ $898 = $888&255;
+ HEAP8[$1>>0] = $898;
+ $899 = ((($0)) + 4116|0);
+ $900 = HEAP32[$899>>2]|0;
+ $901 = $900 ^ $835;
+ $902 = ((($1)) + 4|0);
+ $903 = $901 >>> 24;
+ $904 = $903&255;
+ $905 = ((($1)) + 7|0);
+ HEAP8[$905>>0] = $904;
+ $906 = $901 >>> 16;
+ $907 = $906&255;
+ $908 = ((($1)) + 6|0);
+ HEAP8[$908>>0] = $907;
+ $909 = $901 >>> 8;
+ $910 = $909&255;
+ $911 = ((($1)) + 5|0);
+ HEAP8[$911>>0] = $910;
+ $912 = $901&255;
+ HEAP8[$902>>0] = $912;
+ $913 = ((($0)) + 4120|0);
+ $914 = HEAP32[$913>>2]|0;
+ $915 = $914 ^ $881;
+ $916 = ((($1)) + 8|0);
+ $917 = $915 >>> 24;
+ $918 = $917&255;
+ $919 = ((($1)) + 11|0);
+ HEAP8[$919>>0] = $918;
+ $920 = $915 >>> 16;
+ $921 = $920&255;
+ $922 = ((($1)) + 10|0);
+ HEAP8[$922>>0] = $921;
+ $923 = $915 >>> 8;
+ $924 = $923&255;
+ $925 = ((($1)) + 9|0);
+ HEAP8[$925>>0] = $924;
+ $926 = $915&255;
+ HEAP8[$916>>0] = $926;
+ $927 = ((($0)) + 4124|0);
+ $928 = HEAP32[$927>>2]|0;
+ $929 = $885 ^ $928;
+ $930 = ((($1)) + 12|0);
+ $931 = $929 >>> 24;
+ $932 = $931&255;
+ $933 = ((($1)) + 15|0);
+ HEAP8[$933>>0] = $932;
+ $934 = $929 >>> 16;
+ $935 = $934&255;
+ $936 = ((($1)) + 14|0);
+ HEAP8[$936>>0] = $935;
+ $937 = $929 >>> 8;
+ $938 = $937&255;
+ $939 = ((($1)) + 13|0);
+ HEAP8[$939>>0] = $938;
+ $940 = $929&255;
+ HEAP8[$930>>0] = $940;
+ return 36;
+}
+function _twofish_decrypt($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 
= 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 
= 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0;
+ var $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;
+ var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 
= 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 
= 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0;
+ var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 
= 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 
= 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0;
+ var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, 
$179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, 
$186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0;
+ var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, 
$197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, 
$204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0;
+ var $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 
= 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 
= 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0;
+ var $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 
= 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 
= 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0;
+ var $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 
= 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 
= 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0;
+ var $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;
+ var $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, 
$288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, 
$295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0;
+ var $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 
0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 
0, $313 = 0, $314 = 0, $315 = 0, $316 = 0;
+ var $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 
= 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 
= 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0;
+ var $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 
= 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 
= 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0;
+ var $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 
= 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 
= 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0;
+ var $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, 
$378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, 
$385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0;
+ var $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 
= 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 
0, $403 = 0, $404 = 0, $405 = 0, $406 = 0;
+ var $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 
= 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 
= 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0;
+ var $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 
= 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 
= 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0;
+ var $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 
= 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 
= 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0;
+ var $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, 
$468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, 
$475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0;
+ var $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 
= 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 
= 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0;
+ var $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 
0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 
0, $511 = 0, $512 = 0, $513 = 0, $514 = 0;
+ var $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 
= 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 
= 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 
= 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 
= 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0;
+ var $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, 
$648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, 
$655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0;
+ var $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 
= 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 
= 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0;
+ var $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 
= 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 
= 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0;
+ var $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 
0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 
0, $71 = 0, $710 = 0, $711 = 0, $712 = 0;
+ var $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 
= 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 
= 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0;
+ var $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, 
$738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, 
$745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0;
+ var $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 
= 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 
= 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0;
+ var $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 
= 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 
= 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0;
+ var $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 
= 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 
0, $80 = 0, $800 = 0, $801 = 0, $802 = 0;
+ var $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 
= 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 
= 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0;
+ var $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, 
$828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, 
$835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0;
+ var $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 
= 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 
= 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0;
+ var $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 
= 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 
= 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0;
+ var $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 
= 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 
= 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0;
+ var $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 
0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 
0, $908 = 0, $909 = 0, $91 = 0, $910 = 0;
+ var $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, 
$918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, 
$925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0;
+ var $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 
= 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $95 = 0, $96 = 0, $97 = 
0, $98 = 0, $99 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($2)) + 3|0);
+ $4 = HEAP8[$3>>0]|0;
+ $5 = $4&255;
+ $6 = $5 << 24;
+ $7 = ((($2)) + 2|0);
+ $8 = HEAP8[$7>>0]|0;
+ $9 = $8&255;
+ $10 = $9 << 16;
+ $11 = $10 | $6;
+ $12 = ((($2)) + 1|0);
+ $13 = HEAP8[$12>>0]|0;
+ $14 = $13&255;
+ $15 = $14 << 8;
+ $16 = $11 | $15;
+ $17 = HEAP8[$2>>0]|0;
+ $18 = $17&255;
+ $19 = $16 | $18;
+ $20 = ((($0)) + 4112|0);
+ $21 = HEAP32[$20>>2]|0;
+ $22 = $19 ^ $21;
+ $23 = ((($2)) + 4|0);
+ $24 = ((($2)) + 7|0);
+ $25 = HEAP8[$24>>0]|0;
+ $26 = $25&255;
+ $27 = $26 << 24;
+ $28 = ((($2)) + 6|0);
+ $29 = HEAP8[$28>>0]|0;
+ $30 = $29&255;
+ $31 = $30 << 16;
+ $32 = $31 | $27;
+ $33 = ((($2)) + 5|0);
+ $34 = HEAP8[$33>>0]|0;
+ $35 = $34&255;
+ $36 = $35 << 8;
+ $37 = $32 | $36;
+ $38 = HEAP8[$23>>0]|0;
+ $39 = $38&255;
+ $40 = $37 | $39;
+ $41 = ((($0)) + 4116|0);
+ $42 = HEAP32[$41>>2]|0;
+ $43 = $40 ^ $42;
+ $44 = ((($2)) + 8|0);
+ $45 = ((($2)) + 11|0);
+ $46 = HEAP8[$45>>0]|0;
+ $47 = $46&255;
+ $48 = $47 << 24;
+ $49 = ((($2)) + 10|0);
+ $50 = HEAP8[$49>>0]|0;
+ $51 = $50&255;
+ $52 = $51 << 16;
+ $53 = $52 | $48;
+ $54 = ((($2)) + 9|0);
+ $55 = HEAP8[$54>>0]|0;
+ $56 = $55&255;
+ $57 = $56 << 8;
+ $58 = $53 | $57;
+ $59 = HEAP8[$44>>0]|0;
+ $60 = $59&255;
+ $61 = $58 | $60;
+ $62 = ((($0)) + 4120|0);
+ $63 = HEAP32[$62>>2]|0;
+ $64 = $61 ^ $63;
+ $65 = ((($2)) + 12|0);
+ $66 = ((($2)) + 15|0);
+ $67 = HEAP8[$66>>0]|0;
+ $68 = $67&255;
+ $69 = $68 << 24;
+ $70 = ((($2)) + 14|0);
+ $71 = HEAP8[$70>>0]|0;
+ $72 = $71&255;
+ $73 = $72 << 16;
+ $74 = $73 | $69;
+ $75 = ((($2)) + 13|0);
+ $76 = HEAP8[$75>>0]|0;
+ $77 = $76&255;
+ $78 = $77 << 8;
+ $79 = $74 | $78;
+ $80 = HEAP8[$65>>0]|0;
+ $81 = $80&255;
+ $82 = $79 | $81;
+ $83 = ((($0)) + 4124|0);
+ $84 = HEAP32[$83>>2]|0;
+ $85 = $82 ^ $84;
+ $86 = $22 & 255;
+ $87 = (($0) + ($86<<2)|0);
+ $88 = HEAP32[$87>>2]|0;
+ $89 = $22 >>> 8;
+ $90 = $89 & 255;
+ $91 = (((($0)) + 1024|0) + ($90<<2)|0);
+ $92 = HEAP32[$91>>2]|0;
+ $93 = $92 ^ $88;
+ $94 = $22 >>> 16;
+ $95 = $94 & 255;
+ $96 = (((($0)) + 2048|0) + ($95<<2)|0);
+ $97 = HEAP32[$96>>2]|0;
+ $98 = $93 ^ $97;
+ $99 = $22 >>> 24;
+ $100 = (((($0)) + 3072|0) + ($99<<2)|0);
+ $101 = HEAP32[$100>>2]|0;
+ $102 = $98 ^ $101;
+ $103 = $43 & 255;
+ $104 = (((($0)) + 1024|0) + ($103<<2)|0);
+ $105 = HEAP32[$104>>2]|0;
+ $106 = $43 >>> 8;
+ $107 = $106 & 255;
+ $108 = (((($0)) + 2048|0) + ($107<<2)|0);
+ $109 = HEAP32[$108>>2]|0;
+ $110 = $109 ^ $105;
+ $111 = $43 >>> 16;
+ $112 = $111 & 255;
+ $113 = (((($0)) + 3072|0) + ($112<<2)|0);
+ $114 = HEAP32[$113>>2]|0;
+ $115 = $110 ^ $114;
+ $116 = $43 >>> 24;
+ $117 = (($0) + ($116<<2)|0);
+ $118 = HEAP32[$117>>2]|0;
+ $119 = $115 ^ $118;
+ $120 = (($119) + ($102))|0;
+ $121 = ((($0)) + 4252|0);
+ $122 = HEAP32[$121>>2]|0;
+ $123 = (($122) + ($119))|0;
+ $124 = (($123) + ($120))|0;
+ $125 = $85 ^ $124;
+ $126 = $125 >>> 1;
+ $127 = $125 << 31;
+ $128 = $126 | $127;
+ $129 = $64 << 1;
+ $130 = $64 >>> 31;
+ $131 = $129 | $130;
+ $132 = ((($0)) + 4248|0);
+ $133 = HEAP32[$132>>2]|0;
+ $134 = (($120) + ($133))|0;
+ $135 = $134 ^ $131;
+ $136 = $135 & 255;
+ $137 = (($0) + ($136<<2)|0);
+ $138 = HEAP32[$137>>2]|0;
+ $139 = $135 >>> 8;
+ $140 = $139 & 255;
+ $141 = (((($0)) + 1024|0) + ($140<<2)|0);
+ $142 = HEAP32[$141>>2]|0;
+ $143 = $142 ^ $138;
+ $144 = $135 >>> 16;
+ $145 = $144 & 255;
+ $146 = (((($0)) + 2048|0) + ($145<<2)|0);
+ $147 = HEAP32[$146>>2]|0;
+ $148 = $143 ^ $147;
+ $149 = $135 >>> 24;
+ $150 = (((($0)) + 3072|0) + ($149<<2)|0);
+ $151 = HEAP32[$150>>2]|0;
+ $152 = $148 ^ $151;
+ $153 = $126 & 255;
+ $154 = (((($0)) + 1024|0) + ($153<<2)|0);
+ $155 = HEAP32[$154>>2]|0;
+ $156 = $125 >>> 9;
+ $157 = $156 & 255;
+ $158 = (((($0)) + 2048|0) + ($157<<2)|0);
+ $159 = HEAP32[$158>>2]|0;
+ $160 = $159 ^ $155;
+ $161 = $125 >>> 17;
+ $162 = $161 & 255;
+ $163 = (((($0)) + 3072|0) + ($162<<2)|0);
+ $164 = HEAP32[$163>>2]|0;
+ $165 = $160 ^ $164;
+ $166 = $128 >>> 24;
+ $167 = (($0) + ($166<<2)|0);
+ $168 = HEAP32[$167>>2]|0;
+ $169 = $165 ^ $168;
+ $170 = (($169) + ($152))|0;
+ $171 = ((($0)) + 4244|0);
+ $172 = HEAP32[$171>>2]|0;
+ $173 = (($172) + ($169))|0;
+ $174 = (($173) + ($170))|0;
+ $175 = $174 ^ $43;
+ $176 = $175 >>> 1;
+ $177 = $175 << 31;
+ $178 = $176 | $177;
+ $179 = $22 << 1;
+ $180 = $22 >>> 31;
+ $181 = $179 | $180;
+ $182 = ((($0)) + 4240|0);
+ $183 = HEAP32[$182>>2]|0;
+ $184 = (($170) + ($183))|0;
+ $185 = $184 ^ $181;
+ $186 = $185 & 255;
+ $187 = (($0) + ($186<<2)|0);
+ $188 = HEAP32[$187>>2]|0;
+ $189 = $185 >>> 8;
+ $190 = $189 & 255;
+ $191 = (((($0)) + 1024|0) + ($190<<2)|0);
+ $192 = HEAP32[$191>>2]|0;
+ $193 = $192 ^ $188;
+ $194 = $185 >>> 16;
+ $195 = $194 & 255;
+ $196 = (((($0)) + 2048|0) + ($195<<2)|0);
+ $197 = HEAP32[$196>>2]|0;
+ $198 = $193 ^ $197;
+ $199 = $185 >>> 24;
+ $200 = (((($0)) + 3072|0) + ($199<<2)|0);
+ $201 = HEAP32[$200>>2]|0;
+ $202 = $198 ^ $201;
+ $203 = $176 & 255;
+ $204 = (((($0)) + 1024|0) + ($203<<2)|0);
+ $205 = HEAP32[$204>>2]|0;
+ $206 = $175 >>> 9;
+ $207 = $206 & 255;
+ $208 = (((($0)) + 2048|0) + ($207<<2)|0);
+ $209 = HEAP32[$208>>2]|0;
+ $210 = $209 ^ $205;
+ $211 = $175 >>> 17;
+ $212 = $211 & 255;
+ $213 = (((($0)) + 3072|0) + ($212<<2)|0);
+ $214 = HEAP32[$213>>2]|0;
+ $215 = $210 ^ $214;
+ $216 = $178 >>> 24;
+ $217 = (($0) + ($216<<2)|0);
+ $218 = HEAP32[$217>>2]|0;
+ $219 = $215 ^ $218;
+ $220 = (($219) + ($202))|0;
+ $221 = ((($0)) + 4236|0);
+ $222 = HEAP32[$221>>2]|0;
+ $223 = (($222) + ($219))|0;
+ $224 = (($223) + ($220))|0;
+ $225 = $224 ^ $128;
+ $226 = $225 >>> 1;
+ $227 = $225 << 31;
+ $228 = $226 | $227;
+ $229 = $135 << 1;
+ $230 = $135 >>> 31;
+ $231 = $229 | $230;
+ $232 = ((($0)) + 4232|0);
+ $233 = HEAP32[$232>>2]|0;
+ $234 = (($220) + ($233))|0;
+ $235 = $234 ^ $231;
+ $236 = $235 & 255;
+ $237 = (($0) + ($236<<2)|0);
+ $238 = HEAP32[$237>>2]|0;
+ $239 = $235 >>> 8;
+ $240 = $239 & 255;
+ $241 = (((($0)) + 1024|0) + ($240<<2)|0);
+ $242 = HEAP32[$241>>2]|0;
+ $243 = $242 ^ $238;
+ $244 = $235 >>> 16;
+ $245 = $244 & 255;
+ $246 = (((($0)) + 2048|0) + ($245<<2)|0);
+ $247 = HEAP32[$246>>2]|0;
+ $248 = $243 ^ $247;
+ $249 = $235 >>> 24;
+ $250 = (((($0)) + 3072|0) + ($249<<2)|0);
+ $251 = HEAP32[$250>>2]|0;
+ $252 = $248 ^ $251;
+ $253 = $226 & 255;
+ $254 = (((($0)) + 1024|0) + ($253<<2)|0);
+ $255 = HEAP32[$254>>2]|0;
+ $256 = $225 >>> 9;
+ $257 = $256 & 255;
+ $258 = (((($0)) + 2048|0) + ($257<<2)|0);
+ $259 = HEAP32[$258>>2]|0;
+ $260 = $259 ^ $255;
+ $261 = $225 >>> 17;
+ $262 = $261 & 255;
+ $263 = (((($0)) + 3072|0) + ($262<<2)|0);
+ $264 = HEAP32[$263>>2]|0;
+ $265 = $260 ^ $264;
+ $266 = $228 >>> 24;
+ $267 = (($0) + ($266<<2)|0);
+ $268 = HEAP32[$267>>2]|0;
+ $269 = $265 ^ $268;
+ $270 = (($269) + ($252))|0;
+ $271 = ((($0)) + 4228|0);
+ $272 = HEAP32[$271>>2]|0;
+ $273 = (($272) + ($269))|0;
+ $274 = (($273) + ($270))|0;
+ $275 = $274 ^ $178;
+ $276 = $275 >>> 1;
+ $277 = $275 << 31;
+ $278 = $276 | $277;
+ $279 = $185 << 1;
+ $280 = $185 >>> 31;
+ $281 = $279 | $280;
+ $282 = ((($0)) + 4224|0);
+ $283 = HEAP32[$282>>2]|0;
+ $284 = (($270) + ($283))|0;
+ $285 = $284 ^ $281;
+ $286 = $285 & 255;
+ $287 = (($0) + ($286<<2)|0);
+ $288 = HEAP32[$287>>2]|0;
+ $289 = $285 >>> 8;
+ $290 = $289 & 255;
+ $291 = (((($0)) + 1024|0) + ($290<<2)|0);
+ $292 = HEAP32[$291>>2]|0;
+ $293 = $292 ^ $288;
+ $294 = $285 >>> 16;
+ $295 = $294 & 255;
+ $296 = (((($0)) + 2048|0) + ($295<<2)|0);
+ $297 = HEAP32[$296>>2]|0;
+ $298 = $293 ^ $297;
+ $299 = $285 >>> 24;
+ $300 = (((($0)) + 3072|0) + ($299<<2)|0);
+ $301 = HEAP32[$300>>2]|0;
+ $302 = $298 ^ $301;
+ $303 = $276 & 255;
+ $304 = (((($0)) + 1024|0) + ($303<<2)|0);
+ $305 = HEAP32[$304>>2]|0;
+ $306 = $275 >>> 9;
+ $307 = $306 & 255;
+ $308 = (((($0)) + 2048|0) + ($307<<2)|0);
+ $309 = HEAP32[$308>>2]|0;
+ $310 = $309 ^ $305;
+ $311 = $275 >>> 17;
+ $312 = $311 & 255;
+ $313 = (((($0)) + 3072|0) + ($312<<2)|0);
+ $314 = HEAP32[$313>>2]|0;
+ $315 = $310 ^ $314;
+ $316 = $278 >>> 24;
+ $317 = (($0) + ($316<<2)|0);
+ $318 = HEAP32[$317>>2]|0;
+ $319 = $315 ^ $318;
+ $320 = (($319) + ($302))|0;
+ $321 = ((($0)) + 4220|0);
+ $322 = HEAP32[$321>>2]|0;
+ $323 = (($322) + ($319))|0;
+ $324 = (($323) + ($320))|0;
+ $325 = $324 ^ $228;
+ $326 = $325 >>> 1;
+ $327 = $325 << 31;
+ $328 = $326 | $327;
+ $329 = $235 << 1;
+ $330 = $235 >>> 31;
+ $331 = $329 | $330;
+ $332 = ((($0)) + 4216|0);
+ $333 = HEAP32[$332>>2]|0;
+ $334 = (($320) + ($333))|0;
+ $335 = $334 ^ $331;
+ $336 = $335 & 255;
+ $337 = (($0) + ($336<<2)|0);
+ $338 = HEAP32[$337>>2]|0;
+ $339 = $335 >>> 8;
+ $340 = $339 & 255;
+ $341 = (((($0)) + 1024|0) + ($340<<2)|0);
+ $342 = HEAP32[$341>>2]|0;
+ $343 = $342 ^ $338;
+ $344 = $335 >>> 16;
+ $345 = $344 & 255;
+ $346 = (((($0)) + 2048|0) + ($345<<2)|0);
+ $347 = HEAP32[$346>>2]|0;
+ $348 = $343 ^ $347;
+ $349 = $335 >>> 24;
+ $350 = (((($0)) + 3072|0) + ($349<<2)|0);
+ $351 = HEAP32[$350>>2]|0;
+ $352 = $348 ^ $351;
+ $353 = $326 & 255;
+ $354 = (((($0)) + 1024|0) + ($353<<2)|0);
+ $355 = HEAP32[$354>>2]|0;
+ $356 = $325 >>> 9;
+ $357 = $356 & 255;
+ $358 = (((($0)) + 2048|0) + ($357<<2)|0);
+ $359 = HEAP32[$358>>2]|0;
+ $360 = $359 ^ $355;
+ $361 = $325 >>> 17;
+ $362 = $361 & 255;
+ $363 = (((($0)) + 3072|0) + ($362<<2)|0);
+ $364 = HEAP32[$363>>2]|0;
+ $365 = $360 ^ $364;
+ $366 = $328 >>> 24;
+ $367 = (($0) + ($366<<2)|0);
+ $368 = HEAP32[$367>>2]|0;
+ $369 = $365 ^ $368;
+ $370 = (($369) + ($352))|0;
+ $371 = ((($0)) + 4212|0);
+ $372 = HEAP32[$371>>2]|0;
+ $373 = (($372) + ($369))|0;
+ $374 = (($373) + ($370))|0;
+ $375 = $374 ^ $278;
+ $376 = $375 >>> 1;
+ $377 = $375 << 31;
+ $378 = $376 | $377;
+ $379 = $285 << 1;
+ $380 = $285 >>> 31;
+ $381 = $379 | $380;
+ $382 = ((($0)) + 4208|0);
+ $383 = HEAP32[$382>>2]|0;
+ $384 = (($370) + ($383))|0;
+ $385 = $384 ^ $381;
+ $386 = $385 & 255;
+ $387 = (($0) + ($386<<2)|0);
+ $388 = HEAP32[$387>>2]|0;
+ $389 = $385 >>> 8;
+ $390 = $389 & 255;
+ $391 = (((($0)) + 1024|0) + ($390<<2)|0);
+ $392 = HEAP32[$391>>2]|0;
+ $393 = $392 ^ $388;
+ $394 = $385 >>> 16;
+ $395 = $394 & 255;
+ $396 = (((($0)) + 2048|0) + ($395<<2)|0);
+ $397 = HEAP32[$396>>2]|0;
+ $398 = $393 ^ $397;
+ $399 = $385 >>> 24;
+ $400 = (((($0)) + 3072|0) + ($399<<2)|0);
+ $401 = HEAP32[$400>>2]|0;
+ $402 = $398 ^ $401;
+ $403 = $376 & 255;
+ $404 = (((($0)) + 1024|0) + ($403<<2)|0);
+ $405 = HEAP32[$404>>2]|0;
+ $406 = $375 >>> 9;
+ $407 = $406 & 255;
+ $408 = (((($0)) + 2048|0) + ($407<<2)|0);
+ $409 = HEAP32[$408>>2]|0;
+ $410 = $409 ^ $405;
+ $411 = $375 >>> 17;
+ $412 = $411 & 255;
+ $413 = (((($0)) + 3072|0) + ($412<<2)|0);
+ $414 = HEAP32[$413>>2]|0;
+ $415 = $410 ^ $414;
+ $416 = $378 >>> 24;
+ $417 = (($0) + ($416<<2)|0);
+ $418 = HEAP32[$417>>2]|0;
+ $419 = $415 ^ $418;
+ $420 = (($419) + ($402))|0;
+ $421 = ((($0)) + 4204|0);
+ $422 = HEAP32[$421>>2]|0;
+ $423 = (($422) + ($419))|0;
+ $424 = (($423) + ($420))|0;
+ $425 = $424 ^ $328;
+ $426 = $425 >>> 1;
+ $427 = $425 << 31;
+ $428 = $426 | $427;
+ $429 = $335 << 1;
+ $430 = $335 >>> 31;
+ $431 = $429 | $430;
+ $432 = ((($0)) + 4200|0);
+ $433 = HEAP32[$432>>2]|0;
+ $434 = (($420) + ($433))|0;
+ $435 = $434 ^ $431;
+ $436 = $435 & 255;
+ $437 = (($0) + ($436<<2)|0);
+ $438 = HEAP32[$437>>2]|0;
+ $439 = $435 >>> 8;
+ $440 = $439 & 255;
+ $441 = (((($0)) + 1024|0) + ($440<<2)|0);
+ $442 = HEAP32[$441>>2]|0;
+ $443 = $442 ^ $438;
+ $444 = $435 >>> 16;
+ $445 = $444 & 255;
+ $446 = (((($0)) + 2048|0) + ($445<<2)|0);
+ $447 = HEAP32[$446>>2]|0;
+ $448 = $443 ^ $447;
+ $449 = $435 >>> 24;
+ $450 = (((($0)) + 3072|0) + ($449<<2)|0);
+ $451 = HEAP32[$450>>2]|0;
+ $452 = $448 ^ $451;
+ $453 = $426 & 255;
+ $454 = (((($0)) + 1024|0) + ($453<<2)|0);
+ $455 = HEAP32[$454>>2]|0;
+ $456 = $425 >>> 9;
+ $457 = $456 & 255;
+ $458 = (((($0)) + 2048|0) + ($457<<2)|0);
+ $459 = HEAP32[$458>>2]|0;
+ $460 = $459 ^ $455;
+ $461 = $425 >>> 17;
+ $462 = $461 & 255;
+ $463 = (((($0)) + 3072|0) + ($462<<2)|0);
+ $464 = HEAP32[$463>>2]|0;
+ $465 = $460 ^ $464;
+ $466 = $428 >>> 24;
+ $467 = (($0) + ($466<<2)|0);
+ $468 = HEAP32[$467>>2]|0;
+ $469 = $465 ^ $468;
+ $470 = (($469) + ($452))|0;
+ $471 = ((($0)) + 4196|0);
+ $472 = HEAP32[$471>>2]|0;
+ $473 = (($472) + ($469))|0;
+ $474 = (($473) + ($470))|0;
+ $475 = $474 ^ $378;
+ $476 = $475 >>> 1;
+ $477 = $475 << 31;
+ $478 = $476 | $477;
+ $479 = $385 << 1;
+ $480 = $385 >>> 31;
+ $481 = $479 | $480;
+ $482 = ((($0)) + 4192|0);
+ $483 = HEAP32[$482>>2]|0;
+ $484 = (($470) + ($483))|0;
+ $485 = $484 ^ $481;
+ $486 = $485 & 255;
+ $487 = (($0) + ($486<<2)|0);
+ $488 = HEAP32[$487>>2]|0;
+ $489 = $485 >>> 8;
+ $490 = $489 & 255;
+ $491 = (((($0)) + 1024|0) + ($490<<2)|0);
+ $492 = HEAP32[$491>>2]|0;
+ $493 = $492 ^ $488;
+ $494 = $485 >>> 16;
+ $495 = $494 & 255;
+ $496 = (((($0)) + 2048|0) + ($495<<2)|0);
+ $497 = HEAP32[$496>>2]|0;
+ $498 = $493 ^ $497;
+ $499 = $485 >>> 24;
+ $500 = (((($0)) + 3072|0) + ($499<<2)|0);
+ $501 = HEAP32[$500>>2]|0;
+ $502 = $498 ^ $501;
+ $503 = $476 & 255;
+ $504 = (((($0)) + 1024|0) + ($503<<2)|0);
+ $505 = HEAP32[$504>>2]|0;
+ $506 = $475 >>> 9;
+ $507 = $506 & 255;
+ $508 = (((($0)) + 2048|0) + ($507<<2)|0);
+ $509 = HEAP32[$508>>2]|0;
+ $510 = $509 ^ $505;
+ $511 = $475 >>> 17;
+ $512 = $511 & 255;
+ $513 = (((($0)) + 3072|0) + ($512<<2)|0);
+ $514 = HEAP32[$513>>2]|0;
+ $515 = $510 ^ $514;
+ $516 = $478 >>> 24;
+ $517 = (($0) + ($516<<2)|0);
+ $518 = HEAP32[$517>>2]|0;
+ $519 = $515 ^ $518;
+ $520 = (($519) + ($502))|0;
+ $521 = ((($0)) + 4188|0);
+ $522 = HEAP32[$521>>2]|0;
+ $523 = (($522) + ($519))|0;
+ $524 = (($523) + ($520))|0;
+ $525 = $524 ^ $428;
+ $526 = $525 >>> 1;
+ $527 = $525 << 31;
+ $528 = $526 | $527;
+ $529 = $435 << 1;
+ $530 = $435 >>> 31;
+ $531 = $529 | $530;
+ $532 = ((($0)) + 4184|0);
+ $533 = HEAP32[$532>>2]|0;
+ $534 = (($520) + ($533))|0;
+ $535 = $534 ^ $531;
+ $536 = $535 & 255;
+ $537 = (($0) + ($536<<2)|0);
+ $538 = HEAP32[$537>>2]|0;
+ $539 = $535 >>> 8;
+ $540 = $539 & 255;
+ $541 = (((($0)) + 1024|0) + ($540<<2)|0);
+ $542 = HEAP32[$541>>2]|0;
+ $543 = $542 ^ $538;
+ $544 = $535 >>> 16;
+ $545 = $544 & 255;
+ $546 = (((($0)) + 2048|0) + ($545<<2)|0);
+ $547 = HEAP32[$546>>2]|0;
+ $548 = $543 ^ $547;
+ $549 = $535 >>> 24;
+ $550 = (((($0)) + 3072|0) + ($549<<2)|0);
+ $551 = HEAP32[$550>>2]|0;
+ $552 = $548 ^ $551;
+ $553 = $526 & 255;
+ $554 = (((($0)) + 1024|0) + ($553<<2)|0);
+ $555 = HEAP32[$554>>2]|0;
+ $556 = $525 >>> 9;
+ $557 = $556 & 255;
+ $558 = (((($0)) + 2048|0) + ($557<<2)|0);
+ $559 = HEAP32[$558>>2]|0;
+ $560 = $559 ^ $555;
+ $561 = $525 >>> 17;
+ $562 = $561 & 255;
+ $563 = (((($0)) + 3072|0) + ($562<<2)|0);
+ $564 = HEAP32[$563>>2]|0;
+ $565 = $560 ^ $564;
+ $566 = $528 >>> 24;
+ $567 = (($0) + ($566<<2)|0);
+ $568 = HEAP32[$567>>2]|0;
+ $569 = $565 ^ $568;
+ $570 = (($569) + ($552))|0;
+ $571 = ((($0)) + 4180|0);
+ $572 = HEAP32[$571>>2]|0;
+ $573 = (($572) + ($569))|0;
+ $574 = (($573) + ($570))|0;
+ $575 = $574 ^ $478;
+ $576 = $575 >>> 1;
+ $577 = $575 << 31;
+ $578 = $576 | $577;
+ $579 = $485 << 1;
+ $580 = $485 >>> 31;
+ $581 = $579 | $580;
+ $582 = ((($0)) + 4176|0);
+ $583 = HEAP32[$582>>2]|0;
+ $584 = (($570) + ($583))|0;
+ $585 = $584 ^ $581;
+ $586 = $585 & 255;
+ $587 = (($0) + ($586<<2)|0);
+ $588 = HEAP32[$587>>2]|0;
+ $589 = $585 >>> 8;
+ $590 = $589 & 255;
+ $591 = (((($0)) + 1024|0) + ($590<<2)|0);
+ $592 = HEAP32[$591>>2]|0;
+ $593 = $592 ^ $588;
+ $594 = $585 >>> 16;
+ $595 = $594 & 255;
+ $596 = (((($0)) + 2048|0) + ($595<<2)|0);
+ $597 = HEAP32[$596>>2]|0;
+ $598 = $593 ^ $597;
+ $599 = $585 >>> 24;
+ $600 = (((($0)) + 3072|0) + ($599<<2)|0);
+ $601 = HEAP32[$600>>2]|0;
+ $602 = $598 ^ $601;
+ $603 = $576 & 255;
+ $604 = (((($0)) + 1024|0) + ($603<<2)|0);
+ $605 = HEAP32[$604>>2]|0;
+ $606 = $575 >>> 9;
+ $607 = $606 & 255;
+ $608 = (((($0)) + 2048|0) + ($607<<2)|0);
+ $609 = HEAP32[$608>>2]|0;
+ $610 = $609 ^ $605;
+ $611 = $575 >>> 17;
+ $612 = $611 & 255;
+ $613 = (((($0)) + 3072|0) + ($612<<2)|0);
+ $614 = HEAP32[$613>>2]|0;
+ $615 = $610 ^ $614;
+ $616 = $578 >>> 24;
+ $617 = (($0) + ($616<<2)|0);
+ $618 = HEAP32[$617>>2]|0;
+ $619 = $615 ^ $618;
+ $620 = (($619) + ($602))|0;
+ $621 = ((($0)) + 4172|0);
+ $622 = HEAP32[$621>>2]|0;
+ $623 = (($622) + ($619))|0;
+ $624 = (($623) + ($620))|0;
+ $625 = $624 ^ $528;
+ $626 = $625 >>> 1;
+ $627 = $625 << 31;
+ $628 = $626 | $627;
+ $629 = $535 << 1;
+ $630 = $535 >>> 31;
+ $631 = $629 | $630;
+ $632 = ((($0)) + 4168|0);
+ $633 = HEAP32[$632>>2]|0;
+ $634 = (($620) + ($633))|0;
+ $635 = $634 ^ $631;
+ $636 = $635 & 255;
+ $637 = (($0) + ($636<<2)|0);
+ $638 = HEAP32[$637>>2]|0;
+ $639 = $635 >>> 8;
+ $640 = $639 & 255;
+ $641 = (((($0)) + 1024|0) + ($640<<2)|0);
+ $642 = HEAP32[$641>>2]|0;
+ $643 = $642 ^ $638;
+ $644 = $635 >>> 16;
+ $645 = $644 & 255;
+ $646 = (((($0)) + 2048|0) + ($645<<2)|0);
+ $647 = HEAP32[$646>>2]|0;
+ $648 = $643 ^ $647;
+ $649 = $635 >>> 24;
+ $650 = (((($0)) + 3072|0) + ($649<<2)|0);
+ $651 = HEAP32[$650>>2]|0;
+ $652 = $648 ^ $651;
+ $653 = $626 & 255;
+ $654 = (((($0)) + 1024|0) + ($653<<2)|0);
+ $655 = HEAP32[$654>>2]|0;
+ $656 = $625 >>> 9;
+ $657 = $656 & 255;
+ $658 = (((($0)) + 2048|0) + ($657<<2)|0);
+ $659 = HEAP32[$658>>2]|0;
+ $660 = $659 ^ $655;
+ $661 = $625 >>> 17;
+ $662 = $661 & 255;
+ $663 = (((($0)) + 3072|0) + ($662<<2)|0);
+ $664 = HEAP32[$663>>2]|0;
+ $665 = $660 ^ $664;
+ $666 = $628 >>> 24;
+ $667 = (($0) + ($666<<2)|0);
+ $668 = HEAP32[$667>>2]|0;
+ $669 = $665 ^ $668;
+ $670 = (($669) + ($652))|0;
+ $671 = ((($0)) + 4164|0);
+ $672 = HEAP32[$671>>2]|0;
+ $673 = (($672) + ($669))|0;
+ $674 = (($673) + ($670))|0;
+ $675 = $674 ^ $578;
+ $676 = $675 >>> 1;
+ $677 = $675 << 31;
+ $678 = $676 | $677;
+ $679 = $585 << 1;
+ $680 = $585 >>> 31;
+ $681 = $679 | $680;
+ $682 = ((($0)) + 4160|0);
+ $683 = HEAP32[$682>>2]|0;
+ $684 = (($670) + ($683))|0;
+ $685 = $684 ^ $681;
+ $686 = $685 & 255;
+ $687 = (($0) + ($686<<2)|0);
+ $688 = HEAP32[$687>>2]|0;
+ $689 = $685 >>> 8;
+ $690 = $689 & 255;
+ $691 = (((($0)) + 1024|0) + ($690<<2)|0);
+ $692 = HEAP32[$691>>2]|0;
+ $693 = $692 ^ $688;
+ $694 = $685 >>> 16;
+ $695 = $694 & 255;
+ $696 = (((($0)) + 2048|0) + ($695<<2)|0);
+ $697 = HEAP32[$696>>2]|0;
+ $698 = $693 ^ $697;
+ $699 = $685 >>> 24;
+ $700 = (((($0)) + 3072|0) + ($699<<2)|0);
+ $701 = HEAP32[$700>>2]|0;
+ $702 = $698 ^ $701;
+ $703 = $676 & 255;
+ $704 = (((($0)) + 1024|0) + ($703<<2)|0);
+ $705 = HEAP32[$704>>2]|0;
+ $706 = $675 >>> 9;
+ $707 = $706 & 255;
+ $708 = (((($0)) + 2048|0) + ($707<<2)|0);
+ $709 = HEAP32[$708>>2]|0;
+ $710 = $709 ^ $705;
+ $711 = $675 >>> 17;
+ $712 = $711 & 255;
+ $713 = (((($0)) + 3072|0) + ($712<<2)|0);
+ $714 = HEAP32[$713>>2]|0;
+ $715 = $710 ^ $714;
+ $716 = $678 >>> 24;
+ $717 = (($0) + ($716<<2)|0);
+ $718 = HEAP32[$717>>2]|0;
+ $719 = $715 ^ $718;
+ $720 = (($719) + ($702))|0;
+ $721 = ((($0)) + 4156|0);
+ $722 = HEAP32[$721>>2]|0;
+ $723 = (($722) + ($719))|0;
+ $724 = (($723) + ($720))|0;
+ $725 = $724 ^ $628;
+ $726 = $725 >>> 1;
+ $727 = $725 << 31;
+ $728 = $726 | $727;
+ $729 = $635 << 1;
+ $730 = $635 >>> 31;
+ $731 = $729 | $730;
+ $732 = ((($0)) + 4152|0);
+ $733 = HEAP32[$732>>2]|0;
+ $734 = (($720) + ($733))|0;
+ $735 = $734 ^ $731;
+ $736 = $735 & 255;
+ $737 = (($0) + ($736<<2)|0);
+ $738 = HEAP32[$737>>2]|0;
+ $739 = $735 >>> 8;
+ $740 = $739 & 255;
+ $741 = (((($0)) + 1024|0) + ($740<<2)|0);
+ $742 = HEAP32[$741>>2]|0;
+ $743 = $742 ^ $738;
+ $744 = $735 >>> 16;
+ $745 = $744 & 255;
+ $746 = (((($0)) + 2048|0) + ($745<<2)|0);
+ $747 = HEAP32[$746>>2]|0;
+ $748 = $743 ^ $747;
+ $749 = $735 >>> 24;
+ $750 = (((($0)) + 3072|0) + ($749<<2)|0);
+ $751 = HEAP32[$750>>2]|0;
+ $752 = $748 ^ $751;
+ $753 = $726 & 255;
+ $754 = (((($0)) + 1024|0) + ($753<<2)|0);
+ $755 = HEAP32[$754>>2]|0;
+ $756 = $725 >>> 9;
+ $757 = $756 & 255;
+ $758 = (((($0)) + 2048|0) + ($757<<2)|0);
+ $759 = HEAP32[$758>>2]|0;
+ $760 = $759 ^ $755;
+ $761 = $725 >>> 17;
+ $762 = $761 & 255;
+ $763 = (((($0)) + 3072|0) + ($762<<2)|0);
+ $764 = HEAP32[$763>>2]|0;
+ $765 = $760 ^ $764;
+ $766 = $728 >>> 24;
+ $767 = (($0) + ($766<<2)|0);
+ $768 = HEAP32[$767>>2]|0;
+ $769 = $765 ^ $768;
+ $770 = (($769) + ($752))|0;
+ $771 = ((($0)) + 4148|0);
+ $772 = HEAP32[$771>>2]|0;
+ $773 = (($772) + ($769))|0;
+ $774 = (($773) + ($770))|0;
+ $775 = $774 ^ $678;
+ $776 = $775 >>> 1;
+ $777 = $775 << 31;
+ $778 = $776 | $777;
+ $779 = $685 << 1;
+ $780 = $685 >>> 31;
+ $781 = $779 | $780;
+ $782 = ((($0)) + 4144|0);
+ $783 = HEAP32[$782>>2]|0;
+ $784 = (($770) + ($783))|0;
+ $785 = $784 ^ $781;
+ $786 = $785 & 255;
+ $787 = (($0) + ($786<<2)|0);
+ $788 = HEAP32[$787>>2]|0;
+ $789 = $785 >>> 8;
+ $790 = $789 & 255;
+ $791 = (((($0)) + 1024|0) + ($790<<2)|0);
+ $792 = HEAP32[$791>>2]|0;
+ $793 = $792 ^ $788;
+ $794 = $785 >>> 16;
+ $795 = $794 & 255;
+ $796 = (((($0)) + 2048|0) + ($795<<2)|0);
+ $797 = HEAP32[$796>>2]|0;
+ $798 = $793 ^ $797;
+ $799 = $785 >>> 24;
+ $800 = (((($0)) + 3072|0) + ($799<<2)|0);
+ $801 = HEAP32[$800>>2]|0;
+ $802 = $798 ^ $801;
+ $803 = $776 & 255;
+ $804 = (((($0)) + 1024|0) + ($803<<2)|0);
+ $805 = HEAP32[$804>>2]|0;
+ $806 = $775 >>> 9;
+ $807 = $806 & 255;
+ $808 = (((($0)) + 2048|0) + ($807<<2)|0);
+ $809 = HEAP32[$808>>2]|0;
+ $810 = $809 ^ $805;
+ $811 = $775 >>> 17;
+ $812 = $811 & 255;
+ $813 = (((($0)) + 3072|0) + ($812<<2)|0);
+ $814 = HEAP32[$813>>2]|0;
+ $815 = $810 ^ $814;
+ $816 = $778 >>> 24;
+ $817 = (($0) + ($816<<2)|0);
+ $818 = HEAP32[$817>>2]|0;
+ $819 = $815 ^ $818;
+ $820 = (($819) + ($802))|0;
+ $821 = ((($0)) + 4140|0);
+ $822 = HEAP32[$821>>2]|0;
+ $823 = (($822) + ($819))|0;
+ $824 = (($823) + ($820))|0;
+ $825 = $824 ^ $728;
+ $826 = $825 >>> 1;
+ $827 = $825 << 31;
+ $828 = $826 | $827;
+ $829 = $735 << 1;
+ $830 = $735 >>> 31;
+ $831 = $829 | $830;
+ $832 = ((($0)) + 4136|0);
+ $833 = HEAP32[$832>>2]|0;
+ $834 = (($820) + ($833))|0;
+ $835 = $834 ^ $831;
+ $836 = $835 & 255;
+ $837 = (($0) + ($836<<2)|0);
+ $838 = HEAP32[$837>>2]|0;
+ $839 = $835 >>> 8;
+ $840 = $839 & 255;
+ $841 = (((($0)) + 1024|0) + ($840<<2)|0);
+ $842 = HEAP32[$841>>2]|0;
+ $843 = $842 ^ $838;
+ $844 = $835 >>> 16;
+ $845 = $844 & 255;
+ $846 = (((($0)) + 2048|0) + ($845<<2)|0);
+ $847 = HEAP32[$846>>2]|0;
+ $848 = $843 ^ $847;
+ $849 = $835 >>> 24;
+ $850 = (((($0)) + 3072|0) + ($849<<2)|0);
+ $851 = HEAP32[$850>>2]|0;
+ $852 = $848 ^ $851;
+ $853 = $826 & 255;
+ $854 = (((($0)) + 1024|0) + ($853<<2)|0);
+ $855 = HEAP32[$854>>2]|0;
+ $856 = $825 >>> 9;
+ $857 = $856 & 255;
+ $858 = (((($0)) + 2048|0) + ($857<<2)|0);
+ $859 = HEAP32[$858>>2]|0;
+ $860 = $859 ^ $855;
+ $861 = $825 >>> 17;
+ $862 = $861 & 255;
+ $863 = (((($0)) + 3072|0) + ($862<<2)|0);
+ $864 = HEAP32[$863>>2]|0;
+ $865 = $860 ^ $864;
+ $866 = $828 >>> 24;
+ $867 = (($0) + ($866<<2)|0);
+ $868 = HEAP32[$867>>2]|0;
+ $869 = $865 ^ $868;
+ $870 = (($869) + ($852))|0;
+ $871 = ((($0)) + 4132|0);
+ $872 = HEAP32[$871>>2]|0;
+ $873 = (($872) + ($869))|0;
+ $874 = (($873) + ($870))|0;
+ $875 = $874 ^ $778;
+ $876 = $875 >>> 1;
+ $877 = $875 << 31;
+ $878 = $876 | $877;
+ $879 = $785 << 1;
+ $880 = $785 >>> 31;
+ $881 = $879 | $880;
+ $882 = ((($0)) + 4128|0);
+ $883 = HEAP32[$882>>2]|0;
+ $884 = (($870) + ($883))|0;
+ $885 = $884 ^ $881;
+ $886 = ((($0)) + 4096|0);
+ $887 = HEAP32[$886>>2]|0;
+ $888 = $887 ^ $835;
+ $889 = $888 >>> 24;
+ $890 = $889&255;
+ $891 = ((($1)) + 3|0);
+ HEAP8[$891>>0] = $890;
+ $892 = $888 >>> 16;
+ $893 = $892&255;
+ $894 = ((($1)) + 2|0);
+ HEAP8[$894>>0] = $893;
+ $895 = $888 >>> 8;
+ $896 = $895&255;
+ $897 = ((($1)) + 1|0);
+ HEAP8[$897>>0] = $896;
+ $898 = $888&255;
+ HEAP8[$1>>0] = $898;
+ $899 = ((($0)) + 4100|0);
+ $900 = HEAP32[$899>>2]|0;
+ $901 = $900 ^ $828;
+ $902 = ((($1)) + 4|0);
+ $903 = $901 >>> 24;
+ $904 = $903&255;
+ $905 = ((($1)) + 7|0);
+ HEAP8[$905>>0] = $904;
+ $906 = $901 >>> 16;
+ $907 = $906&255;
+ $908 = ((($1)) + 6|0);
+ HEAP8[$908>>0] = $907;
+ $909 = $901 >>> 8;
+ $910 = $909&255;
+ $911 = ((($1)) + 5|0);
+ HEAP8[$911>>0] = $910;
+ $912 = $901&255;
+ HEAP8[$902>>0] = $912;
+ $913 = ((($0)) + 4104|0);
+ $914 = HEAP32[$913>>2]|0;
+ $915 = $885 ^ $914;
+ $916 = ((($1)) + 8|0);
+ $917 = $915 >>> 24;
+ $918 = $917&255;
+ $919 = ((($1)) + 11|0);
+ HEAP8[$919>>0] = $918;
+ $920 = $915 >>> 16;
+ $921 = $920&255;
+ $922 = ((($1)) + 10|0);
+ HEAP8[$922>>0] = $921;
+ $923 = $915 >>> 8;
+ $924 = $923&255;
+ $925 = ((($1)) + 9|0);
+ HEAP8[$925>>0] = $924;
+ $926 = $915&255;
+ HEAP8[$916>>0] = $926;
+ $927 = ((($0)) + 4108|0);
+ $928 = HEAP32[$927>>2]|0;
+ $929 = $928 ^ $878;
+ $930 = ((($1)) + 12|0);
+ $931 = $929 >>> 24;
+ $932 = $931&255;
+ $933 = ((($1)) + 15|0);
+ HEAP8[$933>>0] = $932;
+ $934 = $929 >>> 16;
+ $935 = $934&255;
+ $936 = ((($1)) + 14|0);
+ HEAP8[$936>>0] = $935;
+ $937 = $929 >>> 8;
+ $938 = $937&255;
+ $939 = ((($1)) + 13|0);
+ HEAP8[$939>>0] = $938;
+ $940 = $929&255;
+ HEAP8[$930>>0] = $940;
+ return 36;
+}
+function _do_twofish_setkey($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0$i$ph = 0, $$0$i1914 = 0, $$01787 = 0, $$01795 = 0, $$01803 = 0, 
$$01819 = 0, $$01827 = 0, $$01835 = 0, $$01851 = 0, $$01859 = 0, $$01867 = 0, 
$$01883 = 0, $$01891 = 0, $$01899 = 0, $$019071917 = 0, $$019091916 = 0, 
$$019111915 = 0, $$01913 = 0, $$1 = 0, $$11788 = 0;
+ var $$11796 = 0, $$11804 = 0, $$11812 = 0, $$11820 = 0, $$11828 = 0, $$11836 
= 0, $$11844 = 0, $$11852 = 0, $$11860 = 0, $$11868 = 0, $$11876 = 0, $$11884 = 
0, $$11892 = 0, $$11900 = 0, $$119081920 = 0, $$119101919 = 0, $$119121918 = 0, 
$$2 = 0, $$21789 = 0, $$21797 = 0;
+ var $$21805 = 0, $$21813 = 0, $$21821 = 0, $$21829 = 0, $$21837 = 0, $$21845 
= 0, $$21853 = 0, $$21861 = 0, $$21869 = 0, $$21877 = 0, $$21885 = 0, $$21893 = 
0, $$21901 = 0, $$3 = 0, $$31790 = 0, $$31798 = 0, $$31806 = 0, $$31814 = 0, 
$$31822 = 0, $$31830 = 0;
+ var $$31838 = 0, $$31846 = 0, $$31854 = 0, $$31862 = 0, $$31870 = 0, $$31878 
= 0, $$31886 = 0, $$31894 = 0, $$31902 = 0, $$4 = 0, $$41791 = 0, $$41799 = 0, 
$$41807 = 0, $$41815 = 0, $$41823 = 0, $$41831 = 0, $$41839 = 0, $$41847 = 0, 
$$41855 = 0, $$41863 = 0;
+ var $$41871 = 0, $$41879 = 0, $$41887 = 0, $$41895 = 0, $$41903 = 0, $$5 = 0, 
$$51792 = 0, $$51800 = 0, $$51808 = 0, $$51816 = 0, $$51824 = 0, $$51832 = 0, 
$$51840 = 0, $$51848 = 0, $$51856 = 0, $$51864 = 0, $$51872 = 0, $$51880 = 0, 
$$51888 = 0, $$51896 = 0;
+ var $$51904 = 0, $$6 = 0, $$61793 = 0, $$61801 = 0, $$61809 = 0, $$61817 = 0, 
$$61825 = 0, $$61833 = 0, $$61841 = 0, $$61849 = 0, $$61857 = 0, $$61865 = 0, 
$$61873 = 0, $$61881 = 0, $$61889 = 0, $$61897 = 0, $$61905 = 0, $$7 = 0, 
$$71794 = 0, $$71802 = 0;
+ var $$71810 = 0, $$71818 = 0, $$71826 = 0, $$71834 = 0, $$71842 = 0, $$71850 
= 0, $$71858 = 0, $$71866 = 0, $$71874 = 0, $$71882 = 0, $$71890 = 0, $$71898 = 
0, $$71906 = 0, $$pr = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, 
$1003 = 0;
+ var $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 
0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, 
$1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0;
+ var $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 
0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, 
$1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0;
+ var $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 
0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, 
$1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0;
+ var $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 
0, $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0, $107 = 0, $1070 = 0, 
$1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0;
+ var $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, $1082 = 
0, $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0, $1088 = 0, $1089 = 0, 
$109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 0, $1094 = 0;
+ var $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0, 
$1100 = 0, $1101 = 0, $1102 = 0, $1103 = 0, $1104 = 0, $1105 = 0, $1106 = 0, 
$1107 = 0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 0, $1111 = 0;
+ var $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 
0, $1119 = 0, $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0, $1123 = 0, $1124 = 0, 
$1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 0, $113 = 0;
+ var $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 
0, $1137 = 0, $1138 = 0, $1139 = 0, $114 = 0, $1140 = 0, $1141 = 0, $1142 = 0, 
$1143 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0;
+ var $1149 = 0, $115 = 0, $1150 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1154 = 
0, $1155 = 0, $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0, $116 = 0, $1160 = 0, 
$1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1165 = 0, $1166 = 0;
+ var $1167 = 0, $1168 = 0, $1169 = 0, $117 = 0, $1170 = 0, $1171 = 0, $1172 = 
0, $1173 = 0, $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0, $1178 = 0, $1179 = 0, 
$118 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 0, $1184 = 0;
+ var $1185 = 0, $1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, $1190 = 
0, $1191 = 0, $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0, $1196 = 0, $1197 = 0, 
$1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0, $1201 = 0;
+ var $1202 = 0, $1203 = 0, $1204 = 0, $1205 = 0, $1206 = 0, $1207 = 0, $1208 = 
0, $1209 = 0, $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0, $1213 = 0, $1214 = 0, 
$1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 0, $122 = 0;
+ var $1220 = 0, $1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0, $1226 = 
0, $1227 = 0, $1228 = 0, $1229 = 0, $123 = 0, $1230 = 0, $1231 = 0, $1232 = 0, 
$1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0, $1237 = 0, $1238 = 0;
+ var $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0, $1244 = 
0, $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0, $125 = 0, $1250 = 0, 
$1251 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0;
+ var $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1262 = 
0, $1263 = 0, $1264 = 0, $1265 = 0, $1266 = 0, $1267 = 0, $1268 = 0, $1269 = 0, 
$127 = 0, $1270 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0;
+ var $1275 = 0, $1276 = 0, $1277 = 0, $1278 = 0, $1279 = 0, $128 = 0, $1280 = 
0, $1281 = 0, $1282 = 0, $1283 = 0, $1284 = 0, $1285 = 0, $1286 = 0, $1287 = 0, 
$1288 = 0, $1289 = 0, $129 = 0, $1290 = 0, $1291 = 0, $1292 = 0;
+ var $1293 = 0, $1294 = 0, $1295 = 0, $1296 = 0, $1297 = 0, $1298 = 0, $1299 = 
0, $13 = 0, $130 = 0, $1300 = 0, $1301 = 0, $1302 = 0, $1303 = 0, $1304 = 0, 
$1305 = 0, $1306 = 0, $1307 = 0, $1308 = 0, $1309 = 0, $131 = 0;
+ var $1310 = 0, $1311 = 0, $1312 = 0, $1313 = 0, $1314 = 0, $1315 = 0, $1316 = 
0, $1317 = 0, $1318 = 0, $1319 = 0, $132 = 0, $1320 = 0, $1321 = 0, $1322 = 0, 
$1323 = 0, $1324 = 0, $1325 = 0, $1326 = 0, $1327 = 0, $1328 = 0;
+ var $1329 = 0, $133 = 0, $1330 = 0, $1331 = 0, $1332 = 0, $1333 = 0, $1334 = 
0, $1335 = 0, $1336 = 0, $1337 = 0, $1338 = 0, $1339 = 0, $134 = 0, $1340 = 0, 
$1341 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $1345 = 0, $1346 = 0;
+ var $1347 = 0, $1348 = 0, $1349 = 0, $135 = 0, $1350 = 0, $1351 = 0, $1352 = 
0, $1353 = 0, $1354 = 0, $1355 = 0, $1356 = 0, $1357 = 0, $1358 = 0, $1359 = 0, 
$136 = 0, $1360 = 0, $1361 = 0, $1362 = 0, $1363 = 0, $1364 = 0;
+ var $1365 = 0, $1366 = 0, $1367 = 0, $1368 = 0, $1369 = 0, $137 = 0, $1370 = 
0, $1371 = 0, $1372 = 0, $1373 = 0, $1374 = 0, $1375 = 0, $1376 = 0, $1377 = 0, 
$1378 = 0, $1379 = 0, $138 = 0, $1380 = 0, $1381 = 0, $1382 = 0;
+ var $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $1388 = 0, $1389 = 
0, $139 = 0, $1390 = 0, $1391 = 0, $1392 = 0, $1393 = 0, $1394 = 0, $1395 = 0, 
$1396 = 0, $1397 = 0, $1398 = 0, $1399 = 0, $14 = 0, $140 = 0;
+ var $1400 = 0, $1401 = 0, $1402 = 0, $1403 = 0, $1404 = 0, $1405 = 0, $1406 = 
0, $1407 = 0, $1408 = 0, $1409 = 0, $141 = 0, $1410 = 0, $1411 = 0, $1412 = 0, 
$1413 = 0, $1414 = 0, $1415 = 0, $1416 = 0, $1417 = 0, $1418 = 0;
+ var $1419 = 0, $142 = 0, $1420 = 0, $1421 = 0, $1422 = 0, $1423 = 0, $1424 = 
0, $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $1429 = 0, $143 = 0, $1430 = 0, 
$1431 = 0, $1432 = 0, $1433 = 0, $1434 = 0, $1435 = 0, $1436 = 0;
+ var $1437 = 0, $1438 = 0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, $1442 = 
0, $1443 = 0, $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0, $1448 = 0, $1449 = 0, 
$145 = 0, $1450 = 0, $1451 = 0, $1452 = 0, $1453 = 0, $1454 = 0;
+ var $1455 = 0, $1456 = 0, $1457 = 0, $1458 = 0, $1459 = 0, $146 = 0, $1460 = 
0, $1461 = 0, $1462 = 0, $1463 = 0, $1464 = 0, $1465 = 0, $1466 = 0, $1467 = 0, 
$1468 = 0, $1469 = 0, $147 = 0, $1470 = 0, $1471 = 0, $1472 = 0;
+ var $1473 = 0, $1474 = 0, $1475 = 0, $1476 = 0, $1477 = 0, $1478 = 0, $1479 = 
0, $148 = 0, $1480 = 0, $1481 = 0, $1482 = 0, $1483 = 0, $1484 = 0, $1485 = 0, 
$1486 = 0, $1487 = 0, $1488 = 0, $1489 = 0, $149 = 0, $1490 = 0;
+ var $1491 = 0, $1492 = 0, $1493 = 0, $1494 = 0, $1495 = 0, $1496 = 0, $1497 = 
0, $1498 = 0, $1499 = 0, $15 = 0, $150 = 0, $1500 = 0, $1501 = 0, $1502 = 0, 
$1503 = 0, $1504 = 0, $1505 = 0, $1506 = 0, $1507 = 0, $1508 = 0;
+ var $1509 = 0, $151 = 0, $1510 = 0, $1511 = 0, $1512 = 0, $1513 = 0, $1514 = 
0, $1515 = 0, $1516 = 0, $1517 = 0, $1518 = 0, $1519 = 0, $152 = 0, $1520 = 0, 
$1521 = 0, $1522 = 0, $1523 = 0, $1524 = 0, $1525 = 0, $1526 = 0;
+ var $1527 = 0, $1528 = 0, $1529 = 0, $153 = 0, $1530 = 0, $1531 = 0, $1532 = 
0, $1533 = 0, $1534 = 0, $1535 = 0, $1536 = 0, $1537 = 0, $1538 = 0, $1539 = 0, 
$154 = 0, $1540 = 0, $1541 = 0, $1542 = 0, $1543 = 0, $1544 = 0;
+ var $1545 = 0, $1546 = 0, $1547 = 0, $1548 = 0, $1549 = 0, $155 = 0, $1550 = 
0, $1551 = 0, $1552 = 0, $1553 = 0, $1554 = 0, $1555 = 0, $1556 = 0, $1557 = 0, 
$1558 = 0, $1559 = 0, $156 = 0, $1560 = 0, $1561 = 0, $1562 = 0;
+ var $1563 = 0, $1564 = 0, $1565 = 0, $1566 = 0, $1567 = 0, $1568 = 0, $1569 = 
0, $157 = 0, $1570 = 0, $1571 = 0, $1572 = 0, $1573 = 0, $1574 = 0, $1575 = 0, 
$1576 = 0, $1577 = 0, $1578 = 0, $1579 = 0, $158 = 0, $1580 = 0;
+ var $1581 = 0, $1582 = 0, $1583 = 0, $1584 = 0, $1585 = 0, $1586 = 0, $1587 = 
0, $1588 = 0, $1589 = 0, $159 = 0, $1590 = 0, $1591 = 0, $1592 = 0, $1593 = 0, 
$1594 = 0, $1595 = 0, $1596 = 0, $1597 = 0, $1598 = 0, $1599 = 0;
+ var $16 = 0, $160 = 0, $1600 = 0, $1601 = 0, $1602 = 0, $1603 = 0, $1604 = 0, 
$1605 = 0, $1606 = 0, $1607 = 0, $1608 = 0, $1609 = 0, $161 = 0, $1610 = 0, 
$1611 = 0, $1612 = 0, $1613 = 0, $1614 = 0, $1615 = 0, $1616 = 0;
+ var $1617 = 0, $1618 = 0, $1619 = 0, $162 = 0, $1620 = 0, $1621 = 0, $1622 = 
0, $1623 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $1627 = 0, $1628 = 0, $1629 = 0, 
$163 = 0, $1630 = 0, $1631 = 0, $1632 = 0, $1633 = 0, $1634 = 0;
+ var $1635 = 0, $1636 = 0, $1637 = 0, $1638 = 0, $1639 = 0, $164 = 0, $1640 = 
0, $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1645 = 0, $1646 = 0, $1647 = 0, 
$1648 = 0, $1649 = 0, $165 = 0, $1650 = 0, $1651 = 0, $1652 = 0;
+ var $1653 = 0, $1654 = 0, $1655 = 0, $1656 = 0, $1657 = 0, $1658 = 0, $1659 = 
0, $166 = 0, $1660 = 0, $1661 = 0, $1662 = 0, $1663 = 0, $1664 = 0, $1665 = 0, 
$1666 = 0, $1667 = 0, $1668 = 0, $1669 = 0, $167 = 0, $1670 = 0;
+ var $1671 = 0, $1672 = 0, $1673 = 0, $1674 = 0, $1675 = 0, $1676 = 0, $1677 = 
0, $1678 = 0, $1679 = 0, $168 = 0, $1680 = 0, $1681 = 0, $1682 = 0, $1683 = 0, 
$1684 = 0, $1685 = 0, $1686 = 0, $1687 = 0, $1688 = 0, $1689 = 0;
+ var $169 = 0, $1690 = 0, $1691 = 0, $1692 = 0, $1693 = 0, $1694 = 0, $1695 = 
0, $1696 = 0, $1697 = 0, $1698 = 0, $1699 = 0, $17 = 0, $170 = 0, $1700 = 0, 
$1701 = 0, $1702 = 0, $1703 = 0, $1704 = 0, $1705 = 0, $1706 = 0;
+ var $1707 = 0, $1708 = 0, $1709 = 0, $171 = 0, $1710 = 0, $1711 = 0, $1712 = 
0, $1713 = 0, $1714 = 0, $1715 = 0, $1716 = 0, $1717 = 0, $1718 = 0, $1719 = 0, 
$172 = 0, $1720 = 0, $1721 = 0, $1722 = 0, $1723 = 0, $1724 = 0;
+ var $1725 = 0, $1726 = 0, $1727 = 0, $1728 = 0, $1729 = 0, $173 = 0, $1730 = 
0, $1731 = 0, $1732 = 0, $1733 = 0, $1734 = 0, $1735 = 0, $1736 = 0, $1737 = 0, 
$1738 = 0, $1739 = 0, $174 = 0, $1740 = 0, $1741 = 0, $1742 = 0;
+ var $1743 = 0, $1744 = 0, $1745 = 0, $1746 = 0, $1747 = 0, $1748 = 0, $1749 = 
0, $175 = 0, $1750 = 0, $1751 = 0, $1752 = 0, $1753 = 0, $1754 = 0, $1755 = 0, 
$1756 = 0, $1757 = 0, $1758 = 0, $1759 = 0, $176 = 0, $1760 = 0;
+ var $1761 = 0, $1762 = 0, $1763 = 0, $1764 = 0, $1765 = 0, $1766 = 0, $1767 = 
0, $1768 = 0, $1769 = 0, $177 = 0, $1770 = 0, $1771 = 0, $1772 = 0, $1773 = 0, 
$1774 = 0, $1775 = 0, $1776 = 0, $1777 = 0, $1778 = 0, $1779 = 0;
+ var $178 = 0, $1780 = 0, $1781 = 0, $1782 = 0, $1783 = 0, $1784 = 0, $1785 = 
0, $1786 = 0, $1787 = 0, $1788 = 0, $1789 = 0, $179 = 0, $1790 = 0, $1791 = 0, 
$1792 = 0, $1793 = 0, $1794 = 0, $1795 = 0, $1796 = 0, $1797 = 0;
+ var $1798 = 0, $1799 = 0, $18 = 0, $180 = 0, $1800 = 0, $1801 = 0, $1802 = 0, 
$1803 = 0, $1804 = 0, $1805 = 0, $1806 = 0, $1807 = 0, $1808 = 0, $1809 = 0, 
$181 = 0, $1810 = 0, $1811 = 0, $1812 = 0, $1813 = 0, $1814 = 0;
+ var $1815 = 0, $1816 = 0, $1817 = 0, $1818 = 0, $1819 = 0, $182 = 0, $1820 = 
0, $1821 = 0, $1822 = 0, $1823 = 0, $1824 = 0, $1825 = 0, $1826 = 0, $1827 = 0, 
$1828 = 0, $1829 = 0, $183 = 0, $1830 = 0, $1831 = 0, $1832 = 0;
+ var $1833 = 0, $1834 = 0, $1835 = 0, $1836 = 0, $1837 = 0, $1838 = 0, $1839 = 
0, $184 = 0, $1840 = 0, $1841 = 0, $1842 = 0, $1843 = 0, $1844 = 0, $1845 = 0, 
$1846 = 0, $1847 = 0, $1848 = 0, $1849 = 0, $185 = 0, $1850 = 0;
+ var $1851 = 0, $1852 = 0, $1853 = 0, $1854 = 0, $1855 = 0, $1856 = 0, $1857 = 
0, $1858 = 0, $1859 = 0, $186 = 0, $1860 = 0, $1861 = 0, $1862 = 0, $1863 = 0, 
$1864 = 0, $1865 = 0, $1866 = 0, $1867 = 0, $1868 = 0, $1869 = 0;
+ var $187 = 0, $1870 = 0, $1871 = 0, $1872 = 0, $1873 = 0, $1874 = 0, $1875 = 
0, $1876 = 0, $1877 = 0, $1878 = 0, $1879 = 0, $188 = 0, $1880 = 0, $1881 = 0, 
$1882 = 0, $1883 = 0, $1884 = 0, $1885 = 0, $1886 = 0, $1887 = 0;
+ var $1888 = 0, $1889 = 0, $189 = 0, $1890 = 0, $1891 = 0, $1892 = 0, $1893 = 
0, $1894 = 0, $1895 = 0, $1896 = 0, $1897 = 0, $1898 = 0, $1899 = 0, $19 = 0, 
$190 = 0, $1900 = 0, $1901 = 0, $1902 = 0, $1903 = 0, $1904 = 0;
+ var $1905 = 0, $1906 = 0, $1907 = 0, $1908 = 0, $1909 = 0, $191 = 0, $1910 = 
0, $1911 = 0, $1912 = 0, $1913 = 0, $1914 = 0, $1915 = 0, $1916 = 0, $1917 = 0, 
$1918 = 0, $1919 = 0, $192 = 0, $1920 = 0, $1921 = 0, $1922 = 0;
+ var $1923 = 0, $1924 = 0, $1925 = 0, $1926 = 0, $1927 = 0, $1928 = 0, $1929 = 
0, $193 = 0, $1930 = 0, $1931 = 0, $1932 = 0, $1933 = 0, $1934 = 0, $1935 = 0, 
$1936 = 0, $1937 = 0, $1938 = 0, $1939 = 0, $194 = 0, $1940 = 0;
+ var $1941 = 0, $1942 = 0, $1943 = 0, $1944 = 0, $1945 = 0, $1946 = 0, $1947 = 
0, $1948 = 0, $1949 = 0, $195 = 0, $1950 = 0, $1951 = 0, $1952 = 0, $1953 = 0, 
$1954 = 0, $1955 = 0, $1956 = 0, $1957 = 0, $1958 = 0, $1959 = 0;
+ var $196 = 0, $1960 = 0, $1961 = 0, $1962 = 0, $1963 = 0, $1964 = 0, $1965 = 
0, $1966 = 0, $1967 = 0, $1968 = 0, $1969 = 0, $197 = 0, $1970 = 0, $1971 = 0, 
$1972 = 0, $1973 = 0, $1974 = 0, $1975 = 0, $1976 = 0, $1977 = 0;
+ var $1978 = 0, $1979 = 0, $198 = 0, $1980 = 0, $1981 = 0, $1982 = 0, $1983 = 
0, $1984 = 0, $1985 = 0, $1986 = 0, $1987 = 0, $1988 = 0, $1989 = 0, $199 = 0, 
$1990 = 0, $1991 = 0, $1992 = 0, $1993 = 0, $1994 = 0, $1995 = 0;
+ var $1996 = 0, $1997 = 0, $1998 = 0, $1999 = 0, $20 = 0, $200 = 0, $2000 = 0, 
$2001 = 0, $2002 = 0, $2003 = 0, $2004 = 0, $2005 = 0, $2006 = 0, $2007 = 0, 
$2008 = 0, $2009 = 0, $201 = 0, $2010 = 0, $2011 = 0, $2012 = 0;
+ var $2013 = 0, $2014 = 0, $2015 = 0, $2016 = 0, $2017 = 0, $2018 = 0, $2019 = 
0, $202 = 0, $2020 = 0, $2021 = 0, $2022 = 0, $2023 = 0, $2024 = 0, $2025 = 0, 
$2026 = 0, $2027 = 0, $2028 = 0, $2029 = 0, $203 = 0, $2030 = 0;
+ var $2031 = 0, $2032 = 0, $2033 = 0, $2034 = 0, $2035 = 0, $2036 = 0, $2037 = 
0, $2038 = 0, $2039 = 0, $204 = 0, $2040 = 0, $2041 = 0, $2042 = 0, $2043 = 0, 
$2044 = 0, $2045 = 0, $2046 = 0, $2047 = 0, $2048 = 0, $2049 = 0;
+ var $205 = 0, $2050 = 0, $2051 = 0, $2052 = 0, $2053 = 0, $2054 = 0, $2055 = 
0, $2056 = 0, $2057 = 0, $2058 = 0, $2059 = 0, $206 = 0, $2060 = 0, $2061 = 0, 
$2062 = 0, $2063 = 0, $2064 = 0, $2065 = 0, $2066 = 0, $2067 = 0;
+ var $2068 = 0, $2069 = 0, $207 = 0, $2070 = 0, $2071 = 0, $2072 = 0, $2073 = 
0, $2074 = 0, $2075 = 0, $2076 = 0, $2077 = 0, $2078 = 0, $2079 = 0, $208 = 0, 
$2080 = 0, $2081 = 0, $2082 = 0, $2083 = 0, $2084 = 0, $2085 = 0;
+ var $2086 = 0, $2087 = 0, $2088 = 0, $2089 = 0, $209 = 0, $2090 = 0, $2091 = 
0, $2092 = 0, $2093 = 0, $2094 = 0, $2095 = 0, $2096 = 0, $2097 = 0, $2098 = 0, 
$2099 = 0, $21 = 0, $210 = 0, $2100 = 0, $2101 = 0, $2102 = 0;
+ var $2103 = 0, $2104 = 0, $2105 = 0, $2106 = 0, $2107 = 0, $2108 = 0, $2109 = 
0, $211 = 0, $2110 = 0, $2111 = 0, $2112 = 0, $2113 = 0, $2114 = 0, $2115 = 0, 
$2116 = 0, $2117 = 0, $2118 = 0, $2119 = 0, $212 = 0, $2120 = 0;
+ var $2121 = 0, $2122 = 0, $2123 = 0, $2124 = 0, $2125 = 0, $2126 = 0, $2127 = 
0, $2128 = 0, $2129 = 0, $213 = 0, $2130 = 0, $2131 = 0, $2132 = 0, $2133 = 0, 
$2134 = 0, $2135 = 0, $2136 = 0, $2137 = 0, $2138 = 0, $2139 = 0;
+ var $214 = 0, $2140 = 0, $2141 = 0, $2142 = 0, $2143 = 0, $2144 = 0, $2145 = 
0, $2146 = 0, $2147 = 0, $2148 = 0, $2149 = 0, $215 = 0, $2150 = 0, $2151 = 0, 
$2152 = 0, $2153 = 0, $2154 = 0, $2155 = 0, $2156 = 0, $2157 = 0;
+ var $2158 = 0, $2159 = 0, $216 = 0, $2160 = 0, $2161 = 0, $2162 = 0, $2163 = 
0, $2164 = 0, $2165 = 0, $2166 = 0, $2167 = 0, $2168 = 0, $2169 = 0, $217 = 0, 
$2170 = 0, $2171 = 0, $2172 = 0, $2173 = 0, $2174 = 0, $2175 = 0;
+ var $2176 = 0, $2177 = 0, $2178 = 0, $2179 = 0, $218 = 0, $2180 = 0, $2181 = 
0, $2182 = 0, $2183 = 0, $2184 = 0, $2185 = 0, $2186 = 0, $2187 = 0, $2188 = 0, 
$2189 = 0, $219 = 0, $2190 = 0, $2191 = 0, $2192 = 0, $2193 = 0;
+ var $2194 = 0, $2195 = 0, $2196 = 0, $2197 = 0, $2198 = 0, $2199 = 0, $22 = 
0, $220 = 0, $2200 = 0, $2201 = 0, $2202 = 0, $2203 = 0, $2204 = 0, $2205 = 0, 
$2206 = 0, $2207 = 0, $2208 = 0, $2209 = 0, $221 = 0, $2210 = 0;
+ var $2211 = 0, $2212 = 0, $2213 = 0, $2214 = 0, $2215 = 0, $2216 = 0, $2217 = 
0, $2218 = 0, $2219 = 0, $222 = 0, $2220 = 0, $2221 = 0, $2222 = 0, $2223 = 0, 
$2224 = 0, $2225 = 0, $2226 = 0, $2227 = 0, $2228 = 0, $2229 = 0;
+ var $223 = 0, $2230 = 0, $2231 = 0, $2232 = 0, $2233 = 0, $2234 = 0, $2235 = 
0, $2236 = 0, $2237 = 0, $2238 = 0, $2239 = 0, $224 = 0, $2240 = 0, $2241 = 0, 
$2242 = 0, $2243 = 0, $2244 = 0, $2245 = 0, $2246 = 0, $2247 = 0;
+ var $2248 = 0, $2249 = 0, $225 = 0, $2250 = 0, $2251 = 0, $2252 = 0, $2253 = 
0, $2254 = 0, $2255 = 0, $2256 = 0, $2257 = 0, $2258 = 0, $2259 = 0, $226 = 0, 
$2260 = 0, $2261 = 0, $2262 = 0, $2263 = 0, $2264 = 0, $2265 = 0;
+ var $2266 = 0, $2267 = 0, $2268 = 0, $2269 = 0, $227 = 0, $2270 = 0, $2271 = 
0, $2272 = 0, $2273 = 0, $2274 = 0, $2275 = 0, $2276 = 0, $2277 = 0, $2278 = 0, 
$2279 = 0, $228 = 0, $2280 = 0, $2281 = 0, $2282 = 0, $2283 = 0;
+ var $2284 = 0, $2285 = 0, $2286 = 0, $2287 = 0, $2288 = 0, $2289 = 0, $229 = 
0, $2290 = 0, $2291 = 0, $2292 = 0, $2293 = 0, $2294 = 0, $2295 = 0, $2296 = 0, 
$2297 = 0, $2298 = 0, $2299 = 0, $23 = 0, $230 = 0, $2300 = 0;
+ var $2301 = 0, $2302 = 0, $2303 = 0, $2304 = 0, $2305 = 0, $2306 = 0, $2307 = 
0, $2308 = 0, $2309 = 0, $231 = 0, $2310 = 0, $2311 = 0, $2312 = 0, $2313 = 0, 
$2314 = 0, $2315 = 0, $2316 = 0, $2317 = 0, $2318 = 0, $2319 = 0;
+ var $232 = 0, $2320 = 0, $2321 = 0, $2322 = 0, $2323 = 0, $2324 = 0, $2325 = 
0, $2326 = 0, $2327 = 0, $2328 = 0, $2329 = 0, $233 = 0, $2330 = 0, $2331 = 0, 
$2332 = 0, $2333 = 0, $2334 = 0, $2335 = 0, $2336 = 0, $2337 = 0;
+ var $2338 = 0, $2339 = 0, $234 = 0, $2340 = 0, $2341 = 0, $2342 = 0, $2343 = 
0, $2344 = 0, $2345 = 0, $2346 = 0, $2347 = 0, $2348 = 0, $2349 = 0, $235 = 0, 
$2350 = 0, $2351 = 0, $2352 = 0, $2353 = 0, $2354 = 0, $2355 = 0;
+ var $2356 = 0, $2357 = 0, $2358 = 0, $2359 = 0, $236 = 0, $2360 = 0, $2361 = 
0, $2362 = 0, $2363 = 0, $2364 = 0, $2365 = 0, $2366 = 0, $2367 = 0, $2368 = 0, 
$2369 = 0, $237 = 0, $2370 = 0, $2371 = 0, $2372 = 0, $2373 = 0;
+ var $2374 = 0, $2375 = 0, $2376 = 0, $2377 = 0, $2378 = 0, $2379 = 0, $238 = 
0, $2380 = 0, $2381 = 0, $2382 = 0, $2383 = 0, $2384 = 0, $2385 = 0, $2386 = 0, 
$2387 = 0, $2388 = 0, $2389 = 0, $239 = 0, $2390 = 0, $2391 = 0;
+ var $2392 = 0, $2393 = 0, $2394 = 0, $2395 = 0, $2396 = 0, $2397 = 0, $2398 = 
0, $2399 = 0, $24 = 0, $240 = 0, $2400 = 0, $2401 = 0, $2402 = 0, $2403 = 0, 
$2404 = 0, $2405 = 0, $2406 = 0, $2407 = 0, $2408 = 0, $2409 = 0;
+ var $241 = 0, $2410 = 0, $2411 = 0, $2412 = 0, $2413 = 0, $2414 = 0, $2415 = 
0, $2416 = 0, $2417 = 0, $2418 = 0, $2419 = 0, $242 = 0, $2420 = 0, $2421 = 0, 
$2422 = 0, $2423 = 0, $2424 = 0, $2425 = 0, $2426 = 0, $2427 = 0;
+ var $2428 = 0, $2429 = 0, $243 = 0, $2430 = 0, $2431 = 0, $2432 = 0, $2433 = 
0, $2434 = 0, $2435 = 0, $2436 = 0, $2437 = 0, $2438 = 0, $2439 = 0, $244 = 0, 
$2440 = 0, $2441 = 0, $2442 = 0, $2443 = 0, $2444 = 0, $2445 = 0;
+ var $2446 = 0, $2447 = 0, $2448 = 0, $2449 = 0, $245 = 0, $2450 = 0, $2451 = 
0, $2452 = 0, $2453 = 0, $2454 = 0, $2455 = 0, $2456 = 0, $2457 = 0, $2458 = 0, 
$2459 = 0, $246 = 0, $2460 = 0, $2461 = 0, $2462 = 0, $2463 = 0;
+ var $2464 = 0, $2465 = 0, $2466 = 0, $2467 = 0, $2468 = 0, $2469 = 0, $247 = 
0, $2470 = 0, $2471 = 0, $2472 = 0, $2473 = 0, $2474 = 0, $2475 = 0, $2476 = 0, 
$2477 = 0, $2478 = 0, $2479 = 0, $248 = 0, $2480 = 0, $2481 = 0;
+ var $2482 = 0, $2483 = 0, $2484 = 0, $2485 = 0, $2486 = 0, $2487 = 0, $2488 = 
0, $2489 = 0, $249 = 0, $2490 = 0, $2491 = 0, $2492 = 0, $2493 = 0, $2494 = 0, 
$2495 = 0, $2496 = 0, $2497 = 0, $2498 = 0, $2499 = 0, $25 = 0;
+ var $250 = 0, $2500 = 0, $2501 = 0, $2502 = 0, $2503 = 0, $2504 = 0, $2505 = 
0, $2506 = 0, $2507 = 0, $2508 = 0, $2509 = 0, $251 = 0, $2510 = 0, $2511 = 0, 
$2512 = 0, $2513 = 0, $2514 = 0, $2515 = 0, $2516 = 0, $2517 = 0;
+ var $2518 = 0, $2519 = 0, $252 = 0, $2520 = 0, $2521 = 0, $2522 = 0, $2523 = 
0, $2524 = 0, $2525 = 0, $2526 = 0, $2527 = 0, $2528 = 0, $2529 = 0, $253 = 0, 
$2530 = 0, $2531 = 0, $2532 = 0, $2533 = 0, $2534 = 0, $2535 = 0;
+ var $2536 = 0, $2537 = 0, $2538 = 0, $2539 = 0, $254 = 0, $2540 = 0, $2541 = 
0, $2542 = 0, $2543 = 0, $2544 = 0, $2545 = 0, $2546 = 0, $2547 = 0, $2548 = 0, 
$2549 = 0, $255 = 0, $2550 = 0, $2551 = 0, $2552 = 0, $2553 = 0;
+ var $2554 = 0, $2555 = 0, $2556 = 0, $2557 = 0, $2558 = 0, $2559 = 0, $256 = 
0, $2560 = 0, $2561 = 0, $2562 = 0, $2563 = 0, $2564 = 0, $2565 = 0, $2566 = 0, 
$2567 = 0, $2568 = 0, $2569 = 0, $257 = 0, $2570 = 0, $2571 = 0;
+ var $2572 = 0, $2573 = 0, $2574 = 0, $2575 = 0, $2576 = 0, $2577 = 0, $2578 = 
0, $2579 = 0, $258 = 0, $2580 = 0, $2581 = 0, $2582 = 0, $2583 = 0, $2584 = 0, 
$2585 = 0, $2586 = 0, $2587 = 0, $2588 = 0, $2589 = 0, $259 = 0;
+ var $2590 = 0, $2591 = 0, $2592 = 0, $2593 = 0, $2594 = 0, $2595 = 0, $2596 = 
0, $2597 = 0, $2598 = 0, $2599 = 0, $26 = 0, $260 = 0, $2600 = 0, $2601 = 0, 
$2602 = 0, $2603 = 0, $2604 = 0, $2605 = 0, $2606 = 0, $2607 = 0;
+ var $2608 = 0, $2609 = 0, $261 = 0, $2610 = 0, $2611 = 0, $2612 = 0, $2613 = 
0, $2614 = 0, $2615 = 0, $2616 = 0, $2617 = 0, $2618 = 0, $2619 = 0, $262 = 0, 
$2620 = 0, $2621 = 0, $2622 = 0, $2623 = 0, $2624 = 0, $2625 = 0;
+ var $2626 = 0, $2627 = 0, $2628 = 0, $2629 = 0, $263 = 0, $2630 = 0, $2631 = 
0, $2632 = 0, $2633 = 0, $2634 = 0, $2635 = 0, $2636 = 0, $2637 = 0, $2638 = 0, 
$2639 = 0, $264 = 0, $2640 = 0, $2641 = 0, $2642 = 0, $2643 = 0;
+ var $2644 = 0, $2645 = 0, $2646 = 0, $2647 = 0, $2648 = 0, $2649 = 0, $265 = 
0, $2650 = 0, $2651 = 0, $2652 = 0, $2653 = 0, $2654 = 0, $2655 = 0, $2656 = 0, 
$2657 = 0, $2658 = 0, $2659 = 0, $266 = 0, $2660 = 0, $2661 = 0;
+ var $2662 = 0, $2663 = 0, $2664 = 0, $2665 = 0, $2666 = 0, $2667 = 0, $2668 = 
0, $2669 = 0, $267 = 0, $2670 = 0, $2671 = 0, $2672 = 0, $2673 = 0, $2674 = 0, 
$2675 = 0, $2676 = 0, $2677 = 0, $2678 = 0, $2679 = 0, $268 = 0;
+ var $2680 = 0, $2681 = 0, $2682 = 0, $2683 = 0, $2684 = 0, $2685 = 0, $2686 = 
0, $2687 = 0, $2688 = 0, $2689 = 0, $269 = 0, $2690 = 0, $2691 = 0, $2692 = 0, 
$2693 = 0, $2694 = 0, $2695 = 0, $2696 = 0, $2697 = 0, $2698 = 0;
+ var $2699 = 0, $27 = 0, $270 = 0, $2700 = 0, $2701 = 0, $2702 = 0, $2703 = 0, 
$2704 = 0, $2705 = 0, $2706 = 0, $2707 = 0, $2708 = 0, $2709 = 0, $271 = 0, 
$2710 = 0, $2711 = 0, $2712 = 0, $2713 = 0, $2714 = 0, $2715 = 0;
+ var $2716 = 0, $2717 = 0, $2718 = 0, $2719 = 0, $272 = 0, $2720 = 0, $2721 = 
0, $2722 = 0, $2723 = 0, $2724 = 0, $2725 = 0, $2726 = 0, $2727 = 0, $2728 = 0, 
$2729 = 0, $273 = 0, $2730 = 0, $2731 = 0, $2732 = 0, $2733 = 0;
+ var $2734 = 0, $2735 = 0, $2736 = 0, $2737 = 0, $2738 = 0, $2739 = 0, $274 = 
0, $2740 = 0, $2741 = 0, $2742 = 0, $2743 = 0, $2744 = 0, $2745 = 0, $2746 = 0, 
$2747 = 0, $2748 = 0, $2749 = 0, $275 = 0, $2750 = 0, $2751 = 0;
+ var $2752 = 0, $2753 = 0, $2754 = 0, $2755 = 0, $2756 = 0, $2757 = 0, $2758 = 
0, $2759 = 0, $276 = 0, $2760 = 0, $2761 = 0, $2762 = 0, $2763 = 0, $2764 = 0, 
$2765 = 0, $2766 = 0, $2767 = 0, $2768 = 0, $2769 = 0, $277 = 0;
+ var $2770 = 0, $2771 = 0, $2772 = 0, $2773 = 0, $2774 = 0, $2775 = 0, $2776 = 
0, $2777 = 0, $2778 = 0, $2779 = 0, $278 = 0, $2780 = 0, $2781 = 0, $2782 = 0, 
$2783 = 0, $2784 = 0, $2785 = 0, $2786 = 0, $2787 = 0, $2788 = 0;
+ var $2789 = 0, $279 = 0, $2790 = 0, $2791 = 0, $2792 = 0, $2793 = 0, $2794 = 
0, $2795 = 0, $2796 = 0, $2797 = 0, $2798 = 0, $2799 = 0, $28 = 0, $280 = 0, 
$2800 = 0, $2801 = 0, $2802 = 0, $2803 = 0, $2804 = 0, $2805 = 0;
+ var $2806 = 0, $2807 = 0, $2808 = 0, $2809 = 0, $281 = 0, $2810 = 0, $2811 = 
0, $2812 = 0, $2813 = 0, $2814 = 0, $2815 = 0, $2816 = 0, $2817 = 0, $2818 = 0, 
$2819 = 0, $282 = 0, $2820 = 0, $2821 = 0, $2822 = 0, $2823 = 0;
+ var $2824 = 0, $2825 = 0, $2826 = 0, $2827 = 0, $2828 = 0, $2829 = 0, $283 = 
0, $2830 = 0, $2831 = 0, $2832 = 0, $2833 = 0, $2834 = 0, $2835 = 0, $2836 = 0, 
$2837 = 0, $2838 = 0, $2839 = 0, $284 = 0, $2840 = 0, $2841 = 0;
+ var $2842 = 0, $2843 = 0, $2844 = 0, $2845 = 0, $2846 = 0, $2847 = 0, $2848 = 
0, $2849 = 0, $285 = 0, $2850 = 0, $2851 = 0, $2852 = 0, $2853 = 0, $2854 = 0, 
$2855 = 0, $2856 = 0, $2857 = 0, $2858 = 0, $2859 = 0, $286 = 0;
+ var $2860 = 0, $2861 = 0, $2862 = 0, $2863 = 0, $2864 = 0, $2865 = 0, $2866 = 
0, $2867 = 0, $2868 = 0, $2869 = 0, $287 = 0, $2870 = 0, $2871 = 0, $2872 = 0, 
$2873 = 0, $2874 = 0, $2875 = 0, $2876 = 0, $2877 = 0, $2878 = 0;
+ var $2879 = 0, $288 = 0, $2880 = 0, $2881 = 0, $2882 = 0, $2883 = 0, $2884 = 
0, $2885 = 0, $2886 = 0, $2887 = 0, $2888 = 0, $2889 = 0, $289 = 0, $2890 = 0, 
$2891 = 0, $2892 = 0, $2893 = 0, $2894 = 0, $2895 = 0, $2896 = 0;
+ var $2897 = 0, $2898 = 0, $2899 = 0, $29 = 0, $290 = 0, $2900 = 0, $2901 = 0, 
$2902 = 0, $2903 = 0, $2904 = 0, $2905 = 0, $2906 = 0, $2907 = 0, $2908 = 0, 
$2909 = 0, $291 = 0, $2910 = 0, $2911 = 0, $2912 = 0, $2913 = 0;
+ var $2914 = 0, $2915 = 0, $2916 = 0, $2917 = 0, $2918 = 0, $2919 = 0, $292 = 
0, $2920 = 0, $2921 = 0, $2922 = 0, $2923 = 0, $2924 = 0, $2925 = 0, $2926 = 0, 
$2927 = 0, $2928 = 0, $2929 = 0, $293 = 0, $2930 = 0, $2931 = 0;
+ var $2932 = 0, $2933 = 0, $2934 = 0, $2935 = 0, $2936 = 0, $2937 = 0, $2938 = 
0, $2939 = 0, $294 = 0, $2940 = 0, $2941 = 0, $2942 = 0, $2943 = 0, $2944 = 0, 
$2945 = 0, $2946 = 0, $2947 = 0, $2948 = 0, $2949 = 0, $295 = 0;
+ var $2950 = 0, $2951 = 0, $2952 = 0, $2953 = 0, $2954 = 0, $2955 = 0, $2956 = 
0, $2957 = 0, $2958 = 0, $2959 = 0, $296 = 0, $2960 = 0, $2961 = 0, $2962 = 0, 
$2963 = 0, $2964 = 0, $2965 = 0, $2966 = 0, $2967 = 0, $2968 = 0;
+ var $2969 = 0, $297 = 0, $2970 = 0, $2971 = 0, $2972 = 0, $2973 = 0, $2974 = 
0, $2975 = 0, $2976 = 0, $2977 = 0, $2978 = 0, $2979 = 0, $298 = 0, $2980 = 0, 
$2981 = 0, $2982 = 0, $2983 = 0, $2984 = 0, $2985 = 0, $2986 = 0;
+ var $2987 = 0, $2988 = 0, $2989 = 0, $299 = 0, $2990 = 0, $2991 = 0, $2992 = 
0, $2993 = 0, $2994 = 0, $2995 = 0, $2996 = 0, $2997 = 0, $2998 = 0, $2999 = 0, 
$3 = 0, $30 = 0, $300 = 0, $3000 = 0, $3001 = 0, $3002 = 0;
+ var $3003 = 0, $3004 = 0, $3005 = 0, $3006 = 0, $3007 = 0, $3008 = 0, $3009 = 
0, $301 = 0, $3010 = 0, $3011 = 0, $3012 = 0, $3013 = 0, $3014 = 0, $3015 = 0, 
$3016 = 0, $3017 = 0, $3018 = 0, $3019 = 0, $302 = 0, $3020 = 0;
+ var $3021 = 0, $3022 = 0, $3023 = 0, $3024 = 0, $3025 = 0, $3026 = 0, $3027 = 
0, $3028 = 0, $3029 = 0, $303 = 0, $3030 = 0, $3031 = 0, $3032 = 0, $3033 = 0, 
$3034 = 0, $3035 = 0, $3036 = 0, $3037 = 0, $3038 = 0, $3039 = 0;
+ var $304 = 0, $3040 = 0, $3041 = 0, $3042 = 0, $3043 = 0, $3044 = 0, $3045 = 
0, $3046 = 0, $3047 = 0, $3048 = 0, $3049 = 0, $305 = 0, $3050 = 0, $3051 = 0, 
$3052 = 0, $3053 = 0, $3054 = 0, $3055 = 0, $3056 = 0, $3057 = 0;
+ var $3058 = 0, $3059 = 0, $306 = 0, $3060 = 0, $3061 = 0, $3062 = 0, $3063 = 
0, $3064 = 0, $3065 = 0, $3066 = 0, $3067 = 0, $3068 = 0, $3069 = 0, $307 = 0, 
$3070 = 0, $3071 = 0, $3072 = 0, $3073 = 0, $3074 = 0, $3075 = 0;
+ var $3076 = 0, $3077 = 0, $3078 = 0, $3079 = 0, $308 = 0, $3080 = 0, $3081 = 
0, $3082 = 0, $3083 = 0, $3084 = 0, $3085 = 0, $3086 = 0, $3087 = 0, $3088 = 0, 
$3089 = 0, $309 = 0, $3090 = 0, $3091 = 0, $3092 = 0, $3093 = 0;
+ var $3094 = 0, $3095 = 0, $3096 = 0, $3097 = 0, $3098 = 0, $3099 = 0, $31 = 
0, $310 = 0, $3100 = 0, $3101 = 0, $3102 = 0, $3103 = 0, $3104 = 0, $3105 = 0, 
$3106 = 0, $3107 = 0, $3108 = 0, $3109 = 0, $311 = 0, $3110 = 0;
+ var $3111 = 0, $3112 = 0, $3113 = 0, $3114 = 0, $3115 = 0, $3116 = 0, $3117 = 
0, $3118 = 0, $3119 = 0, $312 = 0, $3120 = 0, $3121 = 0, $3122 = 0, $3123 = 0, 
$3124 = 0, $3125 = 0, $3126 = 0, $3127 = 0, $3128 = 0, $3129 = 0;
+ var $313 = 0, $3130 = 0, $3131 = 0, $3132 = 0, $3133 = 0, $3134 = 0, $3135 = 
0, $3136 = 0, $3137 = 0, $3138 = 0, $3139 = 0, $314 = 0, $3140 = 0, $3141 = 0, 
$3142 = 0, $3143 = 0, $3144 = 0, $3145 = 0, $3146 = 0, $3147 = 0;
+ var $3148 = 0, $3149 = 0, $315 = 0, $3150 = 0, $3151 = 0, $3152 = 0, $3153 = 
0, $3154 = 0, $3155 = 0, $3156 = 0, $3157 = 0, $3158 = 0, $3159 = 0, $316 = 0, 
$3160 = 0, $3161 = 0, $3162 = 0, $3163 = 0, $3164 = 0, $3165 = 0;
+ var $3166 = 0, $3167 = 0, $3168 = 0, $3169 = 0, $317 = 0, $3170 = 0, $3171 = 
0, $3172 = 0, $3173 = 0, $3174 = 0, $3175 = 0, $3176 = 0, $3177 = 0, $3178 = 0, 
$3179 = 0, $318 = 0, $3180 = 0, $3181 = 0, $3182 = 0, $3183 = 0;
+ var $3184 = 0, $3185 = 0, $3186 = 0, $3187 = 0, $3188 = 0, $3189 = 0, $319 = 
0, $3190 = 0, $3191 = 0, $3192 = 0, $3193 = 0, $3194 = 0, $3195 = 0, $3196 = 0, 
$3197 = 0, $3198 = 0, $3199 = 0, $32 = 0, $320 = 0, $3200 = 0;
+ var $3201 = 0, $3202 = 0, $3203 = 0, $3204 = 0, $3205 = 0, $3206 = 0, $3207 = 
0, $3208 = 0, $3209 = 0, $321 = 0, $3210 = 0, $3211 = 0, $3212 = 0, $3213 = 0, 
$3214 = 0, $3215 = 0, $3216 = 0, $3217 = 0, $3218 = 0, $3219 = 0;
+ var $322 = 0, $3220 = 0, $3221 = 0, $3222 = 0, $3223 = 0, $3224 = 0, $3225 = 
0, $3226 = 0, $3227 = 0, $3228 = 0, $3229 = 0, $323 = 0, $3230 = 0, $3231 = 0, 
$3232 = 0, $3233 = 0, $3234 = 0, $3235 = 0, $3236 = 0, $3237 = 0;
+ var $3238 = 0, $3239 = 0, $324 = 0, $3240 = 0, $3241 = 0, $3242 = 0, $3243 = 
0, $3244 = 0, $3245 = 0, $3246 = 0, $3247 = 0, $3248 = 0, $3249 = 0, $325 = 0, 
$3250 = 0, $3251 = 0, $3252 = 0, $3253 = 0, $3254 = 0, $3255 = 0;
+ var $3256 = 0, $3257 = 0, $3258 = 0, $3259 = 0, $326 = 0, $3260 = 0, $3261 = 
0, $3262 = 0, $3263 = 0, $3264 = 0, $3265 = 0, $3266 = 0, $3267 = 0, $3268 = 0, 
$3269 = 0, $327 = 0, $3270 = 0, $3271 = 0, $3272 = 0, $3273 = 0;
+ var $3274 = 0, $3275 = 0, $3276 = 0, $3277 = 0, $3278 = 0, $3279 = 0, $328 = 
0, $3280 = 0, $3281 = 0, $3282 = 0, $3283 = 0, $3284 = 0, $3285 = 0, $3286 = 0, 
$3287 = 0, $3288 = 0, $3289 = 0, $329 = 0, $3290 = 0, $3291 = 0;
+ var $3292 = 0, $3293 = 0, $3294 = 0, $3295 = 0, $3296 = 0, $3297 = 0, $3298 = 
0, $3299 = 0, $33 = 0, $330 = 0, $3300 = 0, $3301 = 0, $3302 = 0, $3303 = 0, 
$3304 = 0, $3305 = 0, $3306 = 0, $3307 = 0, $3308 = 0, $3309 = 0;
+ var $331 = 0, $3310 = 0, $3311 = 0, $3312 = 0, $3313 = 0, $3314 = 0, $3315 = 
0, $3316 = 0, $3317 = 0, $3318 = 0, $3319 = 0, $332 = 0, $3320 = 0, $3321 = 0, 
$3322 = 0, $3323 = 0, $3324 = 0, $3325 = 0, $3326 = 0, $3327 = 0;
+ var $3328 = 0, $3329 = 0, $333 = 0, $3330 = 0, $3331 = 0, $3332 = 0, $3333 = 
0, $3334 = 0, $3335 = 0, $3336 = 0, $3337 = 0, $3338 = 0, $3339 = 0, $334 = 0, 
$3340 = 0, $3341 = 0, $3342 = 0, $3343 = 0, $3344 = 0, $3345 = 0;
+ var $3346 = 0, $3347 = 0, $3348 = 0, $3349 = 0, $335 = 0, $3350 = 0, $3351 = 
0, $3352 = 0, $3353 = 0, $3354 = 0, $3355 = 0, $3356 = 0, $3357 = 0, $3358 = 0, 
$3359 = 0, $336 = 0, $3360 = 0, $3361 = 0, $3362 = 0, $3363 = 0;
+ var $3364 = 0, $3365 = 0, $3366 = 0, $3367 = 0, $3368 = 0, $3369 = 0, $337 = 
0, $3370 = 0, $3371 = 0, $3372 = 0, $3373 = 0, $3374 = 0, $3375 = 0, $3376 = 0, 
$3377 = 0, $3378 = 0, $3379 = 0, $338 = 0, $3380 = 0, $3381 = 0;
+ var $3382 = 0, $3383 = 0, $3384 = 0, $3385 = 0, $3386 = 0, $3387 = 0, $3388 = 
0, $3389 = 0, $339 = 0, $3390 = 0, $3391 = 0, $3392 = 0, $3393 = 0, $3394 = 0, 
$3395 = 0, $3396 = 0, $3397 = 0, $3398 = 0, $3399 = 0, $34 = 0;
+ var $340 = 0, $3400 = 0, $3401 = 0, $3402 = 0, $3403 = 0, $3404 = 0, $3405 = 
0, $3406 = 0, $3407 = 0, $3408 = 0, $3409 = 0, $341 = 0, $3410 = 0, $3411 = 0, 
$3412 = 0, $3413 = 0, $3414 = 0, $3415 = 0, $3416 = 0, $3417 = 0;
+ var $3418 = 0, $3419 = 0, $342 = 0, $3420 = 0, $3421 = 0, $3422 = 0, $3423 = 
0, $3424 = 0, $3425 = 0, $3426 = 0, $3427 = 0, $3428 = 0, $3429 = 0, $343 = 0, 
$3430 = 0, $3431 = 0, $3432 = 0, $3433 = 0, $3434 = 0, $3435 = 0;
+ var $3436 = 0, $3437 = 0, $3438 = 0, $3439 = 0, $344 = 0, $3440 = 0, $3441 = 
0, $3442 = 0, $3443 = 0, $3444 = 0, $3445 = 0, $3446 = 0, $3447 = 0, $3448 = 0, 
$3449 = 0, $345 = 0, $3450 = 0, $3451 = 0, $3452 = 0, $3453 = 0;
+ var $3454 = 0, $3455 = 0, $3456 = 0, $3457 = 0, $3458 = 0, $3459 = 0, $346 = 
0, $3460 = 0, $3461 = 0, $3462 = 0, $3463 = 0, $3464 = 0, $3465 = 0, $3466 = 0, 
$3467 = 0, $3468 = 0, $3469 = 0, $347 = 0, $3470 = 0, $3471 = 0;
+ var $3472 = 0, $3473 = 0, $3474 = 0, $3475 = 0, $3476 = 0, $3477 = 0, $3478 = 
0, $3479 = 0, $348 = 0, $3480 = 0, $3481 = 0, $3482 = 0, $3483 = 0, $3484 = 0, 
$3485 = 0, $3486 = 0, $3487 = 0, $3488 = 0, $3489 = 0, $349 = 0;
+ var $3490 = 0, $3491 = 0, $3492 = 0, $3493 = 0, $3494 = 0, $3495 = 0, $3496 = 
0, $3497 = 0, $3498 = 0, $3499 = 0, $35 = 0, $350 = 0, $3500 = 0, $3501 = 0, 
$3502 = 0, $3503 = 0, $3504 = 0, $3505 = 0, $3506 = 0, $3507 = 0;
+ var $3508 = 0, $3509 = 0, $351 = 0, $3510 = 0, $3511 = 0, $3512 = 0, $3513 = 
0, $3514 = 0, $3515 = 0, $3516 = 0, $3517 = 0, $3518 = 0, $3519 = 0, $352 = 0, 
$3520 = 0, $3521 = 0, $3522 = 0, $3523 = 0, $3524 = 0, $3525 = 0;
+ var $3526 = 0, $3527 = 0, $3528 = 0, $3529 = 0, $353 = 0, $3530 = 0, $3531 = 
0, $3532 = 0, $3533 = 0, $3534 = 0, $3535 = 0, $3536 = 0, $3537 = 0, $3538 = 0, 
$3539 = 0, $354 = 0, $3540 = 0, $3541 = 0, $3542 = 0, $3543 = 0;
+ var $3544 = 0, $3545 = 0, $3546 = 0, $3547 = 0, $3548 = 0, $3549 = 0, $355 = 
0, $3550 = 0, $3551 = 0, $3552 = 0, $3553 = 0, $3554 = 0, $3555 = 0, $3556 = 0, 
$3557 = 0, $3558 = 0, $3559 = 0, $356 = 0, $3560 = 0, $3561 = 0;
+ var $3562 = 0, $3563 = 0, $3564 = 0, $3565 = 0, $3566 = 0, $3567 = 0, $3568 = 
0, $3569 = 0, $357 = 0, $3570 = 0, $3571 = 0, $3572 = 0, $3573 = 0, $3574 = 0, 
$3575 = 0, $3576 = 0, $3577 = 0, $3578 = 0, $3579 = 0, $358 = 0;
+ var $3580 = 0, $3581 = 0, $3582 = 0, $3583 = 0, $3584 = 0, $3585 = 0, $3586 = 
0, $3587 = 0, $3588 = 0, $3589 = 0, $359 = 0, $3590 = 0, $3591 = 0, $3592 = 0, 
$3593 = 0, $3594 = 0, $3595 = 0, $3596 = 0, $3597 = 0, $3598 = 0;
+ var $3599 = 0, $36 = 0, $360 = 0, $3600 = 0, $3601 = 0, $3602 = 0, $3603 = 0, 
$3604 = 0, $3605 = 0, $3606 = 0, $3607 = 0, $3608 = 0, $3609 = 0, $361 = 0, 
$3610 = 0, $3611 = 0, $3612 = 0, $3613 = 0, $3614 = 0, $3615 = 0;
+ var $3616 = 0, $3617 = 0, $3618 = 0, $3619 = 0, $362 = 0, $3620 = 0, $3621 = 
0, $3622 = 0, $3623 = 0, $3624 = 0, $3625 = 0, $3626 = 0, $3627 = 0, $3628 = 0, 
$3629 = 0, $363 = 0, $3630 = 0, $3631 = 0, $3632 = 0, $3633 = 0;
+ var $3634 = 0, $3635 = 0, $3636 = 0, $3637 = 0, $3638 = 0, $3639 = 0, $364 = 
0, $3640 = 0, $3641 = 0, $3642 = 0, $3643 = 0, $3644 = 0, $3645 = 0, $3646 = 0, 
$3647 = 0, $3648 = 0, $3649 = 0, $365 = 0, $3650 = 0, $3651 = 0;
+ var $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, $3666 = 0, $3667 = 0, $3668 = 0, $3669 = 0, $367 = 0;
+ var $3670 = 0, $3671 = 0, $3672 = 0, $3673 = 0, $3674 = 0, $3675 = 0, $3676 = 
0, $3677 = 0, $3678 = 0, $3679 = 0, $368 = 0, $3680 = 0, $3681 = 0, $3682 = 0, 
$3683 = 0, $3684 = 0, $3685 = 0, $3686 = 0, $3687 = 0, $3688 = 0;
+ var $3689 = 0, $369 = 0, $3690 = 0, $3691 = 0, $3692 = 0, $3693 = 0, $3694 = 
0, $3695 = 0, $3696 = 0, $3697 = 0, $3698 = 0, $3699 = 0, $37 = 0, $370 = 0, 
$3700 = 0, $3701 = 0, $3702 = 0, $3703 = 0, $3704 = 0, $3705 = 0;
+ var $3706 = 0, $3707 = 0, $3708 = 0, $3709 = 0, $371 = 0, $3710 = 0, $3711 = 
0, $3712 = 0, $3713 = 0, $3714 = 0, $3715 = 0, $3716 = 0, $3717 = 0, $3718 = 0, 
$3719 = 0, $372 = 0, $3720 = 0, $3721 = 0, $3722 = 0, $3723 = 0;
+ var $3724 = 0, $3725 = 0, $3726 = 0, $3727 = 0, $3728 = 0, $3729 = 0, $373 = 
0, $3730 = 0, $3731 = 0, $3732 = 0, $3733 = 0, $3734 = 0, $3735 = 0, $3736 = 0, 
$3737 = 0, $3738 = 0, $3739 = 0, $374 = 0, $3740 = 0, $3741 = 0;
+ var $3742 = 0, $3743 = 0, $3744 = 0, $3745 = 0, $3746 = 0, $3747 = 0, $3748 = 
0, $3749 = 0, $375 = 0, $3750 = 0, $3751 = 0, $3752 = 0, $3753 = 0, $3754 = 0, 
$3755 = 0, $3756 = 0, $3757 = 0, $3758 = 0, $3759 = 0, $376 = 0;
+ var $3760 = 0, $3761 = 0, $3762 = 0, $3763 = 0, $3764 = 0, $3765 = 0, $3766 = 
0, $3767 = 0, $3768 = 0, $3769 = 0, $377 = 0, $3770 = 0, $3771 = 0, $3772 = 0, 
$3773 = 0, $3774 = 0, $3775 = 0, $3776 = 0, $3777 = 0, $3778 = 0;
+ var $3779 = 0, $378 = 0, $3780 = 0, $3781 = 0, $3782 = 0, $3783 = 0, $3784 = 
0, $3785 = 0, $3786 = 0, $3787 = 0, $3788 = 0, $3789 = 0, $379 = 0, $3790 = 0, 
$3791 = 0, $3792 = 0, $3793 = 0, $3794 = 0, $3795 = 0, $3796 = 0;
+ var $3797 = 0, $3798 = 0, $3799 = 0, $38 = 0, $380 = 0, $3800 = 0, $3801 = 0, 
$3802 = 0, $3803 = 0, $3804 = 0, $3805 = 0, $3806 = 0, $3807 = 0, $3808 = 0, 
$3809 = 0, $381 = 0, $3810 = 0, $3811 = 0, $3812 = 0, $3813 = 0;
+ var $3814 = 0, $3815 = 0, $3816 = 0, $3817 = 0, $3818 = 0, $3819 = 0, $382 = 
0, $3820 = 0, $3821 = 0, $3822 = 0, $3823 = 0, $3824 = 0, $3825 = 0, $3826 = 0, 
$3827 = 0, $3828 = 0, $3829 = 0, $383 = 0, $3830 = 0, $3831 = 0;
+ var $3832 = 0, $3833 = 0, $3834 = 0, $3835 = 0, $3836 = 0, $3837 = 0, $3838 = 
0, $3839 = 0, $384 = 0, $3840 = 0, $3841 = 0, $3842 = 0, $3843 = 0, $3844 = 0, 
$3845 = 0, $3846 = 0, $3847 = 0, $3848 = 0, $3849 = 0, $385 = 0;
+ var $3850 = 0, $3851 = 0, $3852 = 0, $3853 = 0, $3854 = 0, $3855 = 0, $3856 = 
0, $3857 = 0, $3858 = 0, $3859 = 0, $386 = 0, $3860 = 0, $3861 = 0, $3862 = 0, 
$3863 = 0, $3864 = 0, $3865 = 0, $3866 = 0, $3867 = 0, $3868 = 0;
+ var $3869 = 0, $387 = 0, $3870 = 0, $3871 = 0, $3872 = 0, $3873 = 0, $3874 = 
0, $3875 = 0, $3876 = 0, $3877 = 0, $3878 = 0, $3879 = 0, $388 = 0, $3880 = 0, 
$3881 = 0, $3882 = 0, $3883 = 0, $3884 = 0, $3885 = 0, $3886 = 0;
+ var $3887 = 0, $3888 = 0, $3889 = 0, $389 = 0, $3890 = 0, $3891 = 0, $3892 = 
0, $3893 = 0, $3894 = 0, $3895 = 0, $3896 = 0, $3897 = 0, $3898 = 0, $3899 = 0, 
$39 = 0, $390 = 0, $3900 = 0, $3901 = 0, $3902 = 0, $3903 = 0;
+ var $3904 = 0, $3905 = 0, $3906 = 0, $3907 = 0, $3908 = 0, $3909 = 0, $391 = 
0, $3910 = 0, $3911 = 0, $3912 = 0, $3913 = 0, $3914 = 0, $3915 = 0, $3916 = 0, 
$3917 = 0, $3918 = 0, $3919 = 0, $392 = 0, $3920 = 0, $3921 = 0;
+ var $3922 = 0, $3923 = 0, $3924 = 0, $3925 = 0, $3926 = 0, $3927 = 0, $3928 = 
0, $3929 = 0, $393 = 0, $3930 = 0, $3931 = 0, $3932 = 0, $3933 = 0, $3934 = 0, 
$3935 = 0, $3936 = 0, $3937 = 0, $3938 = 0, $3939 = 0, $394 = 0;
+ var $3940 = 0, $3941 = 0, $3942 = 0, $3943 = 0, $3944 = 0, $3945 = 0, $3946 = 
0, $3947 = 0, $3948 = 0, $3949 = 0, $395 = 0, $3950 = 0, $3951 = 0, $3952 = 0, 
$3953 = 0, $3954 = 0, $3955 = 0, $3956 = 0, $3957 = 0, $3958 = 0;
+ var $3959 = 0, $396 = 0, $3960 = 0, $3961 = 0, $3962 = 0, $3963 = 0, $3964 = 
0, $3965 = 0, $3966 = 0, $3967 = 0, $3968 = 0, $3969 = 0, $397 = 0, $3970 = 0, 
$3971 = 0, $3972 = 0, $3973 = 0, $3974 = 0, $3975 = 0, $3976 = 0;
+ var $3977 = 0, $3978 = 0, $3979 = 0, $398 = 0, $3980 = 0, $3981 = 0, $3982 = 
0, $3983 = 0, $3984 = 0, $3985 = 0, $3986 = 0, $3987 = 0, $3988 = 0, $3989 = 0, 
$399 = 0, $3990 = 0, $3991 = 0, $3992 = 0, $3993 = 0, $3994 = 0;
+ var $3995 = 0, $3996 = 0, $3997 = 0, $3998 = 0, $3999 = 0, $4 = 0, $40 = 0, 
$400 = 0, $4000 = 0, $4001 = 0, $4002 = 0, $4003 = 0, $4004 = 0, $4005 = 0, 
$4006 = 0, $4007 = 0, $4008 = 0, $4009 = 0, $401 = 0, $4010 = 0;
+ var $4011 = 0, $4012 = 0, $4013 = 0, $4014 = 0, $4015 = 0, $4016 = 0, $4017 = 
0, $4018 = 0, $4019 = 0, $402 = 0, $4020 = 0, $4021 = 0, $4022 = 0, $4023 = 0, 
$4024 = 0, $4025 = 0, $4026 = 0, $4027 = 0, $4028 = 0, $4029 = 0;
+ var $403 = 0, $4030 = 0, $4031 = 0, $4032 = 0, $4033 = 0, $4034 = 0, $4035 = 
0, $4036 = 0, $4037 = 0, $4038 = 0, $4039 = 0, $404 = 0, $4040 = 0, $4041 = 0, 
$4042 = 0, $4043 = 0, $4044 = 0, $4045 = 0, $4046 = 0, $4047 = 0;
+ var $4048 = 0, $4049 = 0, $405 = 0, $4050 = 0, $4051 = 0, $4052 = 0, $4053 = 
0, $4054 = 0, $4055 = 0, $4056 = 0, $4057 = 0, $4058 = 0, $4059 = 0, $406 = 0, 
$4060 = 0, $4061 = 0, $4062 = 0, $4063 = 0, $4064 = 0, $4065 = 0;
+ var $4066 = 0, $4067 = 0, $4068 = 0, $4069 = 0, $407 = 0, $4070 = 0, $4071 = 
0, $4072 = 0, $4073 = 0, $4074 = 0, $4075 = 0, $4076 = 0, $4077 = 0, $4078 = 0, 
$4079 = 0, $408 = 0, $4080 = 0, $4081 = 0, $4082 = 0, $4083 = 0;
+ var $4084 = 0, $4085 = 0, $4086 = 0, $4087 = 0, $4088 = 0, $4089 = 0, $409 = 
0, $4090 = 0, $4091 = 0, $4092 = 0, $4093 = 0, $4094 = 0, $4095 = 0, $4096 = 0, 
$4097 = 0, $4098 = 0, $4099 = 0, $41 = 0, $410 = 0, $4100 = 0;
+ var $4101 = 0, $4102 = 0, $4103 = 0, $4104 = 0, $4105 = 0, $4106 = 0, $4107 = 
0, $4108 = 0, $4109 = 0, $411 = 0, $4110 = 0, $4111 = 0, $4112 = 0, $4113 = 0, 
$4114 = 0, $4115 = 0, $4116 = 0, $4117 = 0, $4118 = 0, $4119 = 0;
+ var $412 = 0, $4120 = 0, $4121 = 0, $4122 = 0, $4123 = 0, $4124 = 0, $4125 = 
0, $4126 = 0, $4127 = 0, $4128 = 0, $4129 = 0, $413 = 0, $4130 = 0, $4131 = 0, 
$4132 = 0, $4133 = 0, $4134 = 0, $4135 = 0, $4136 = 0, $4137 = 0;
+ var $4138 = 0, $4139 = 0, $414 = 0, $4140 = 0, $4141 = 0, $4142 = 0, $4143 = 
0, $4144 = 0, $4145 = 0, $4146 = 0, $4147 = 0, $4148 = 0, $4149 = 0, $415 = 0, 
$4150 = 0, $4151 = 0, $4152 = 0, $4153 = 0, $4154 = 0, $4155 = 0;
+ var $4156 = 0, $4157 = 0, $4158 = 0, $4159 = 0, $416 = 0, $4160 = 0, $4161 = 
0, $4162 = 0, $4163 = 0, $4164 = 0, $4165 = 0, $4166 = 0, $4167 = 0, $4168 = 0, 
$4169 = 0, $417 = 0, $4170 = 0, $4171 = 0, $4172 = 0, $4173 = 0;
+ var $4174 = 0, $4175 = 0, $4176 = 0, $4177 = 0, $4178 = 0, $4179 = 0, $418 = 
0, $4180 = 0, $4181 = 0, $4182 = 0, $4183 = 0, $4184 = 0, $4185 = 0, $4186 = 0, 
$4187 = 0, $4188 = 0, $4189 = 0, $419 = 0, $4190 = 0, $4191 = 0;
+ var $4192 = 0, $4193 = 0, $4194 = 0, $4195 = 0, $4196 = 0, $4197 = 0, $4198 = 
0, $4199 = 0, $42 = 0, $420 = 0, $4200 = 0, $4201 = 0, $4202 = 0, $4203 = 0, 
$4204 = 0, $4205 = 0, $4206 = 0, $4207 = 0, $4208 = 0, $4209 = 0;
+ var $421 = 0, $4210 = 0, $4211 = 0, $4212 = 0, $4213 = 0, $4214 = 0, $4215 = 
0, $4216 = 0, $4217 = 0, $4218 = 0, $4219 = 0, $422 = 0, $4220 = 0, $4221 = 0, 
$4222 = 0, $4223 = 0, $4224 = 0, $4225 = 0, $4226 = 0, $4227 = 0;
+ var $4228 = 0, $4229 = 0, $423 = 0, $4230 = 0, $4231 = 0, $4232 = 0, $4233 = 
0, $4234 = 0, $4235 = 0, $4236 = 0, $4237 = 0, $4238 = 0, $4239 = 0, $424 = 0, 
$4240 = 0, $4241 = 0, $4242 = 0, $4243 = 0, $4244 = 0, $4245 = 0;
+ var $4246 = 0, $4247 = 0, $4248 = 0, $4249 = 0, $425 = 0, $4250 = 0, $4251 = 
0, $4252 = 0, $4253 = 0, $4254 = 0, $4255 = 0, $4256 = 0, $4257 = 0, $4258 = 0, 
$4259 = 0, $426 = 0, $4260 = 0, $4261 = 0, $4262 = 0, $4263 = 0;
+ var $4264 = 0, $4265 = 0, $4266 = 0, $4267 = 0, $4268 = 0, $4269 = 0, $427 = 
0, $4270 = 0, $4271 = 0, $4272 = 0, $4273 = 0, $4274 = 0, $4275 = 0, $4276 = 0, 
$4277 = 0, $4278 = 0, $4279 = 0, $428 = 0, $4280 = 0, $4281 = 0;
+ var $4282 = 0, $4283 = 0, $4284 = 0, $4285 = 0, $4286 = 0, $4287 = 0, $4288 = 
0, $4289 = 0, $429 = 0, $4290 = 0, $4291 = 0, $4292 = 0, $4293 = 0, $4294 = 0, 
$4295 = 0, $4296 = 0, $4297 = 0, $4298 = 0, $4299 = 0, $43 = 0;
+ var $430 = 0, $4300 = 0, $4301 = 0, $4302 = 0, $4303 = 0, $4304 = 0, $4305 = 
0, $4306 = 0, $4307 = 0, $4308 = 0, $4309 = 0, $431 = 0, $4310 = 0, $4311 = 0, 
$4312 = 0, $4313 = 0, $4314 = 0, $4315 = 0, $4316 = 0, $4317 = 0;
+ var $4318 = 0, $4319 = 0, $432 = 0, $4320 = 0, $4321 = 0, $4322 = 0, $4323 = 
0, $4324 = 0, $4325 = 0, $4326 = 0, $4327 = 0, $4328 = 0, $4329 = 0, $433 = 0, 
$4330 = 0, $4331 = 0, $4332 = 0, $4333 = 0, $4334 = 0, $4335 = 0;
+ var $4336 = 0, $4337 = 0, $4338 = 0, $4339 = 0, $434 = 0, $4340 = 0, $4341 = 
0, $4342 = 0, $4343 = 0, $4344 = 0, $4345 = 0, $4346 = 0, $4347 = 0, $4348 = 0, 
$4349 = 0, $435 = 0, $4350 = 0, $4351 = 0, $4352 = 0, $4353 = 0;
+ var $4354 = 0, $4355 = 0, $4356 = 0, $4357 = 0, $4358 = 0, $4359 = 0, $436 = 
0, $4360 = 0, $4361 = 0, $4362 = 0, $4363 = 0, $4364 = 0, $4365 = 0, $4366 = 0, 
$4367 = 0, $4368 = 0, $4369 = 0, $437 = 0, $4370 = 0, $4371 = 0;
+ var $4372 = 0, $4373 = 0, $4374 = 0, $4375 = 0, $4376 = 0, $4377 = 0, $4378 = 
0, $4379 = 0, $438 = 0, $4380 = 0, $4381 = 0, $4382 = 0, $4383 = 0, $4384 = 0, 
$4385 = 0, $4386 = 0, $4387 = 0, $4388 = 0, $4389 = 0, $439 = 0;
+ var $4390 = 0, $4391 = 0, $4392 = 0, $4393 = 0, $4394 = 0, $4395 = 0, $4396 = 
0, $4397 = 0, $4398 = 0, $4399 = 0, $44 = 0, $440 = 0, $4400 = 0, $4401 = 0, 
$4402 = 0, $4403 = 0, $4404 = 0, $4405 = 0, $4406 = 0, $4407 = 0;
+ var $4408 = 0, $4409 = 0, $441 = 0, $4410 = 0, $4411 = 0, $4412 = 0, $4413 = 
0, $4414 = 0, $4415 = 0, $4416 = 0, $4417 = 0, $4418 = 0, $4419 = 0, $442 = 0, 
$4420 = 0, $4421 = 0, $4422 = 0, $4423 = 0, $4424 = 0, $4425 = 0;
+ var $4426 = 0, $4427 = 0, $4428 = 0, $4429 = 0, $443 = 0, $4430 = 0, $4431 = 
0, $4432 = 0, $4433 = 0, $4434 = 0, $4435 = 0, $4436 = 0, $4437 = 0, $4438 = 0, 
$4439 = 0, $444 = 0, $4440 = 0, $4441 = 0, $4442 = 0, $4443 = 0;
+ var $4444 = 0, $4445 = 0, $4446 = 0, $4447 = 0, $4448 = 0, $4449 = 0, $445 = 
0, $4450 = 0, $4451 = 0, $4452 = 0, $4453 = 0, $4454 = 0, $4455 = 0, $4456 = 0, 
$4457 = 0, $4458 = 0, $4459 = 0, $446 = 0, $4460 = 0, $4461 = 0;
+ var $4462 = 0, $4463 = 0, $4464 = 0, $4465 = 0, $4466 = 0, $4467 = 0, $4468 = 
0, $4469 = 0, $447 = 0, $4470 = 0, $4471 = 0, $4472 = 0, $4473 = 0, $4474 = 0, 
$4475 = 0, $4476 = 0, $4477 = 0, $4478 = 0, $4479 = 0, $448 = 0;
+ var $4480 = 0, $4481 = 0, $4482 = 0, $4483 = 0, $4484 = 0, $4485 = 0, $4486 = 
0, $4487 = 0, $4488 = 0, $4489 = 0, $449 = 0, $4490 = 0, $4491 = 0, $4492 = 0, 
$4493 = 0, $4494 = 0, $4495 = 0, $4496 = 0, $4497 = 0, $4498 = 0;
+ var $4499 = 0, $45 = 0, $450 = 0, $4500 = 0, $4501 = 0, $4502 = 0, $4503 = 0, 
$4504 = 0, $4505 = 0, $4506 = 0, $4507 = 0, $4508 = 0, $4509 = 0, $451 = 0, 
$4510 = 0, $4511 = 0, $4512 = 0, $4513 = 0, $4514 = 0, $4515 = 0;
+ var $4516 = 0, $4517 = 0, $4518 = 0, $4519 = 0, $452 = 0, $4520 = 0, $4521 = 
0, $4522 = 0, $4523 = 0, $4524 = 0, $4525 = 0, $4526 = 0, $4527 = 0, $4528 = 0, 
$4529 = 0, $453 = 0, $4530 = 0, $4531 = 0, $4532 = 0, $4533 = 0;
+ var $4534 = 0, $4535 = 0, $4536 = 0, $4537 = 0, $4538 = 0, $4539 = 0, $454 = 
0, $4540 = 0, $4541 = 0, $4542 = 0, $4543 = 0, $4544 = 0, $4545 = 0, $4546 = 0, 
$4547 = 0, $4548 = 0, $4549 = 0, $455 = 0, $4550 = 0, $4551 = 0;
+ var $4552 = 0, $4553 = 0, $4554 = 0, $4555 = 0, $4556 = 0, $4557 = 0, $4558 = 
0, $4559 = 0, $456 = 0, $4560 = 0, $4561 = 0, $4562 = 0, $4563 = 0, $4564 = 0, 
$4565 = 0, $4566 = 0, $4567 = 0, $4568 = 0, $4569 = 0, $457 = 0;
+ var $4570 = 0, $4571 = 0, $4572 = 0, $4573 = 0, $4574 = 0, $4575 = 0, $4576 = 
0, $4577 = 0, $4578 = 0, $4579 = 0, $458 = 0, $4580 = 0, $4581 = 0, $4582 = 0, 
$4583 = 0, $4584 = 0, $4585 = 0, $4586 = 0, $4587 = 0, $4588 = 0;
+ var $4589 = 0, $459 = 0, $4590 = 0, $4591 = 0, $4592 = 0, $4593 = 0, $4594 = 
0, $4595 = 0, $4596 = 0, $4597 = 0, $4598 = 0, $4599 = 0, $46 = 0, $460 = 0, 
$4600 = 0, $4601 = 0, $4602 = 0, $4603 = 0, $4604 = 0, $4605 = 0;
+ var $4606 = 0, $4607 = 0, $4608 = 0, $4609 = 0, $461 = 0, $4610 = 0, $4611 = 
0, $4612 = 0, $4613 = 0, $4614 = 0, $4615 = 0, $4616 = 0, $4617 = 0, $4618 = 0, 
$4619 = 0, $462 = 0, $4620 = 0, $4621 = 0, $4622 = 0, $4623 = 0;
+ var $4624 = 0, $4625 = 0, $4626 = 0, $4627 = 0, $4628 = 0, $4629 = 0, $463 = 
0, $4630 = 0, $4631 = 0, $4632 = 0, $4633 = 0, $4634 = 0, $4635 = 0, $4636 = 0, 
$4637 = 0, $4638 = 0, $4639 = 0, $464 = 0, $4640 = 0, $4641 = 0;
+ var $4642 = 0, $4643 = 0, $4644 = 0, $4645 = 0, $4646 = 0, $4647 = 0, $4648 = 
0, $4649 = 0, $465 = 0, $4650 = 0, $4651 = 0, $4652 = 0, $4653 = 0, $4654 = 0, 
$4655 = 0, $4656 = 0, $4657 = 0, $4658 = 0, $4659 = 0, $466 = 0;
+ var $4660 = 0, $4661 = 0, $4662 = 0, $4663 = 0, $4664 = 0, $4665 = 0, $4666 = 
0, $4667 = 0, $4668 = 0, $4669 = 0, $467 = 0, $4670 = 0, $4671 = 0, $4672 = 0, 
$4673 = 0, $4674 = 0, $4675 = 0, $4676 = 0, $4677 = 0, $4678 = 0;
+ var $4679 = 0, $468 = 0, $4680 = 0, $4681 = 0, $4682 = 0, $4683 = 0, $4684 = 
0, $4685 = 0, $4686 = 0, $4687 = 0, $4688 = 0, $4689 = 0, $469 = 0, $4690 = 0, 
$4691 = 0, $4692 = 0, $4693 = 0, $4694 = 0, $4695 = 0, $4696 = 0;
+ var $4697 = 0, $4698 = 0, $4699 = 0, $47 = 0, $470 = 0, $4700 = 0, $4701 = 0, 
$4702 = 0, $4703 = 0, $4704 = 0, $4705 = 0, $4706 = 0, $4707 = 0, $4708 = 0, 
$4709 = 0, $471 = 0, $4710 = 0, $4711 = 0, $4712 = 0, $4713 = 0;
+ var $4714 = 0, $4715 = 0, $4716 = 0, $4717 = 0, $4718 = 0, $4719 = 0, $472 = 
0, $4720 = 0, $4721 = 0, $4722 = 0, $4723 = 0, $4724 = 0, $4725 = 0, $4726 = 0, 
$4727 = 0, $4728 = 0, $4729 = 0, $473 = 0, $4730 = 0, $4731 = 0;
+ var $4732 = 0, $4733 = 0, $4734 = 0, $4735 = 0, $4736 = 0, $4737 = 0, $4738 = 
0, $4739 = 0, $474 = 0, $4740 = 0, $4741 = 0, $4742 = 0, $4743 = 0, $4744 = 0, 
$4745 = 0, $4746 = 0, $4747 = 0, $4748 = 0, $4749 = 0, $475 = 0;
+ var $4750 = 0, $4751 = 0, $4752 = 0, $4753 = 0, $4754 = 0, $4755 = 0, $4756 = 
0, $4757 = 0, $4758 = 0, $4759 = 0, $476 = 0, $4760 = 0, $4761 = 0, $4762 = 0, 
$4763 = 0, $4764 = 0, $4765 = 0, $4766 = 0, $4767 = 0, $4768 = 0;
+ var $4769 = 0, $477 = 0, $4770 = 0, $4771 = 0, $4772 = 0, $4773 = 0, $4774 = 
0, $4775 = 0, $4776 = 0, $4777 = 0, $4778 = 0, $4779 = 0, $478 = 0, $4780 = 0, 
$4781 = 0, $4782 = 0, $4783 = 0, $4784 = 0, $4785 = 0, $4786 = 0;
+ var $4787 = 0, $4788 = 0, $4789 = 0, $479 = 0, $4790 = 0, $4791 = 0, $4792 = 
0, $4793 = 0, $4794 = 0, $4795 = 0, $4796 = 0, $4797 = 0, $4798 = 0, $4799 = 0, 
$48 = 0, $480 = 0, $4800 = 0, $4801 = 0, $4802 = 0, $4803 = 0;
+ var $4804 = 0, $4805 = 0, $4806 = 0, $4807 = 0, $4808 = 0, $4809 = 0, $481 = 
0, $4810 = 0, $4811 = 0, $4812 = 0, $4813 = 0, $4814 = 0, $4815 = 0, $4816 = 0, 
$4817 = 0, $4818 = 0, $4819 = 0, $482 = 0, $4820 = 0, $4821 = 0;
+ var $4822 = 0, $4823 = 0, $4824 = 0, $4825 = 0, $4826 = 0, $4827 = 0, $4828 = 
0, $4829 = 0, $483 = 0, $4830 = 0, $4831 = 0, $4832 = 0, $4833 = 0, $4834 = 0, 
$4835 = 0, $4836 = 0, $4837 = 0, $4838 = 0, $4839 = 0, $484 = 0;
+ var $4840 = 0, $4841 = 0, $4842 = 0, $4843 = 0, $4844 = 0, $4845 = 0, $4846 = 
0, $4847 = 0, $4848 = 0, $4849 = 0, $485 = 0, $4850 = 0, $4851 = 0, $4852 = 0, 
$4853 = 0, $4854 = 0, $4855 = 0, $4856 = 0, $4857 = 0, $4858 = 0;
+ var $4859 = 0, $486 = 0, $4860 = 0, $4861 = 0, $4862 = 0, $4863 = 0, $4864 = 
0, $4865 = 0, $4866 = 0, $4867 = 0, $4868 = 0, $4869 = 0, $487 = 0, $4870 = 0, 
$4871 = 0, $4872 = 0, $4873 = 0, $4874 = 0, $4875 = 0, $4876 = 0;
+ var $4877 = 0, $4878 = 0, $4879 = 0, $488 = 0, $4880 = 0, $4881 = 0, $4882 = 
0, $4883 = 0, $4884 = 0, $4885 = 0, $4886 = 0, $4887 = 0, $4888 = 0, $4889 = 0, 
$489 = 0, $4890 = 0, $4891 = 0, $4892 = 0, $4893 = 0, $4894 = 0;
+ var $4895 = 0, $4896 = 0, $4897 = 0, $4898 = 0, $4899 = 0, $49 = 0, $490 = 0, 
$4900 = 0, $4901 = 0, $4902 = 0, $4903 = 0, $4904 = 0, $4905 = 0, $4906 = 0, 
$4907 = 0, $4908 = 0, $4909 = 0, $491 = 0, $4910 = 0, $4911 = 0;
+ var $4912 = 0, $4913 = 0, $4914 = 0, $4915 = 0, $4916 = 0, $4917 = 0, $4918 = 
0, $4919 = 0, $492 = 0, $4920 = 0, $4921 = 0, $4922 = 0, $4923 = 0, $4924 = 0, 
$4925 = 0, $4926 = 0, $4927 = 0, $4928 = 0, $4929 = 0, $493 = 0;
+ var $4930 = 0, $4931 = 0, $4932 = 0, $4933 = 0, $4934 = 0, $4935 = 0, $4936 = 
0, $4937 = 0, $4938 = 0, $4939 = 0, $494 = 0, $4940 = 0, $4941 = 0, $4942 = 0, 
$4943 = 0, $4944 = 0, $4945 = 0, $4946 = 0, $4947 = 0, $4948 = 0;
+ var $4949 = 0, $495 = 0, $4950 = 0, $4951 = 0, $4952 = 0, $4953 = 0, $4954 = 
0, $4955 = 0, $4956 = 0, $4957 = 0, $4958 = 0, $4959 = 0, $496 = 0, $4960 = 0, 
$4961 = 0, $4962 = 0, $4963 = 0, $4964 = 0, $4965 = 0, $4966 = 0;
+ var $4967 = 0, $4968 = 0, $4969 = 0, $497 = 0, $4970 = 0, $4971 = 0, $4972 = 
0, $4973 = 0, $4974 = 0, $4975 = 0, $4976 = 0, $4977 = 0, $4978 = 0, $4979 = 0, 
$498 = 0, $4980 = 0, $4981 = 0, $4982 = 0, $4983 = 0, $4984 = 0;
+ var $4985 = 0, $4986 = 0, $4987 = 0, $4988 = 0, $4989 = 0, $499 = 0, $4990 = 
0, $4991 = 0, $4992 = 0, $4993 = 0, $4994 = 0, $4995 = 0, $4996 = 0, $4997 = 0, 
$4998 = 0, $4999 = 0, $5 = 0, $50 = 0, $500 = 0, $5000 = 0;
+ var $5001 = 0, $5002 = 0, $5003 = 0, $5004 = 0, $5005 = 0, $5006 = 0, $5007 = 
0, $5008 = 0, $5009 = 0, $501 = 0, $5010 = 0, $5011 = 0, $5012 = 0, $5013 = 0, 
$5014 = 0, $5015 = 0, $5016 = 0, $5017 = 0, $5018 = 0, $5019 = 0;
+ var $502 = 0, $5020 = 0, $5021 = 0, $5022 = 0, $5023 = 0, $5024 = 0, $5025 = 
0, $5026 = 0, $5027 = 0, $5028 = 0, $5029 = 0, $503 = 0, $5030 = 0, $5031 = 0, 
$5032 = 0, $5033 = 0, $5034 = 0, $5035 = 0, $5036 = 0, $5037 = 0;
+ var $5038 = 0, $5039 = 0, $504 = 0, $5040 = 0, $5041 = 0, $5042 = 0, $5043 = 
0, $5044 = 0, $5045 = 0, $5046 = 0, $5047 = 0, $5048 = 0, $5049 = 0, $505 = 0, 
$5050 = 0, $5051 = 0, $5052 = 0, $5053 = 0, $5054 = 0, $5055 = 0;
+ var $5056 = 0, $5057 = 0, $5058 = 0, $5059 = 0, $506 = 0, $5060 = 0, $5061 = 
0, $5062 = 0, $5063 = 0, $5064 = 0, $5065 = 0, $5066 = 0, $5067 = 0, $5068 = 0, 
$5069 = 0, $507 = 0, $5070 = 0, $5071 = 0, $5072 = 0, $5073 = 0;
+ var $5074 = 0, $5075 = 0, $5076 = 0, $5077 = 0, $5078 = 0, $5079 = 0, $508 = 
0, $5080 = 0, $5081 = 0, $5082 = 0, $5083 = 0, $5084 = 0, $5085 = 0, $5086 = 0, 
$5087 = 0, $5088 = 0, $5089 = 0, $509 = 0, $5090 = 0, $5091 = 0;
+ var $5092 = 0, $5093 = 0, $5094 = 0, $5095 = 0, $5096 = 0, $5097 = 0, $5098 = 
0, $5099 = 0, $51 = 0, $510 = 0, $5100 = 0, $5101 = 0, $5102 = 0, $5103 = 0, 
$5104 = 0, $5105 = 0, $5106 = 0, $5107 = 0, $5108 = 0, $5109 = 0;
+ var $511 = 0, $5110 = 0, $5111 = 0, $5112 = 0, $5113 = 0, $5114 = 0, $5115 = 
0, $5116 = 0, $5117 = 0, $5118 = 0, $5119 = 0, $512 = 0, $5120 = 0, $5121 = 0, 
$5122 = 0, $5123 = 0, $5124 = 0, $5125 = 0, $5126 = 0, $5127 = 0;
+ var $5128 = 0, $5129 = 0, $513 = 0, $5130 = 0, $5131 = 0, $5132 = 0, $5133 = 
0, $5134 = 0, $5135 = 0, $5136 = 0, $5137 = 0, $5138 = 0, $5139 = 0, $514 = 0, 
$5140 = 0, $5141 = 0, $5142 = 0, $5143 = 0, $5144 = 0, $5145 = 0;
+ var $5146 = 0, $5147 = 0, $5148 = 0, $5149 = 0, $515 = 0, $5150 = 0, $5151 = 
0, $5152 = 0, $5153 = 0, $5154 = 0, $5155 = 0, $5156 = 0, $5157 = 0, $5158 = 0, 
$5159 = 0, $516 = 0, $5160 = 0, $5161 = 0, $5162 = 0, $5163 = 0;
+ var $5164 = 0, $5165 = 0, $5166 = 0, $5167 = 0, $5168 = 0, $5169 = 0, $517 = 
0, $5170 = 0, $5171 = 0, $5172 = 0, $5173 = 0, $5174 = 0, $5175 = 0, $5176 = 0, 
$5177 = 0, $5178 = 0, $5179 = 0, $518 = 0, $5180 = 0, $5181 = 0;
+ var $5182 = 0, $5183 = 0, $5184 = 0, $5185 = 0, $5186 = 0, $5187 = 0, $5188 = 
0, $5189 = 0, $519 = 0, $5190 = 0, $5191 = 0, $5192 = 0, $5193 = 0, $5194 = 0, 
$5195 = 0, $5196 = 0, $5197 = 0, $5198 = 0, $5199 = 0, $52 = 0;
+ var $520 = 0, $5200 = 0, $5201 = 0, $5202 = 0, $5203 = 0, $5204 = 0, $5205 = 
0, $5206 = 0, $5207 = 0, $5208 = 0, $5209 = 0, $521 = 0, $5210 = 0, $5211 = 0, 
$5212 = 0, $5213 = 0, $5214 = 0, $5215 = 0, $5216 = 0, $5217 = 0;
+ var $5218 = 0, $5219 = 0, $522 = 0, $5220 = 0, $5221 = 0, $5222 = 0, $5223 = 
0, $5224 = 0, $5225 = 0, $5226 = 0, $5227 = 0, $5228 = 0, $5229 = 0, $523 = 0, 
$5230 = 0, $5231 = 0, $5232 = 0, $5233 = 0, $5234 = 0, $5235 = 0;
+ var $5236 = 0, $5237 = 0, $5238 = 0, $5239 = 0, $524 = 0, $5240 = 0, $5241 = 
0, $5242 = 0, $5243 = 0, $5244 = 0, $5245 = 0, $5246 = 0, $5247 = 0, $5248 = 0, 
$5249 = 0, $525 = 0, $5250 = 0, $5251 = 0, $5252 = 0, $5253 = 0;
+ var $5254 = 0, $5255 = 0, $5256 = 0, $5257 = 0, $5258 = 0, $5259 = 0, $526 = 
0, $5260 = 0, $5261 = 0, $5262 = 0, $5263 = 0, $5264 = 0, $5265 = 0, $5266 = 0, 
$5267 = 0, $5268 = 0, $5269 = 0, $527 = 0, $5270 = 0, $5271 = 0;
+ var $5272 = 0, $5273 = 0, $5274 = 0, $5275 = 0, $5276 = 0, $5277 = 0, $5278 = 
0, $5279 = 0, $528 = 0, $5280 = 0, $5281 = 0, $5282 = 0, $5283 = 0, $5284 = 0, 
$5285 = 0, $5286 = 0, $5287 = 0, $5288 = 0, $5289 = 0, $529 = 0;
+ var $5290 = 0, $5291 = 0, $5292 = 0, $5293 = 0, $5294 = 0, $5295 = 0, $5296 = 
0, $5297 = 0, $5298 = 0, $5299 = 0, $53 = 0, $530 = 0, $5300 = 0, $5301 = 0, 
$5302 = 0, $5303 = 0, $5304 = 0, $5305 = 0, $5306 = 0, $5307 = 0;
+ var $5308 = 0, $5309 = 0, $531 = 0, $5310 = 0, $5311 = 0, $5312 = 0, $5313 = 
0, $5314 = 0, $5315 = 0, $5316 = 0, $5317 = 0, $5318 = 0, $5319 = 0, $532 = 0, 
$5320 = 0, $5321 = 0, $5322 = 0, $5323 = 0, $5324 = 0, $5325 = 0;
+ var $5326 = 0, $5327 = 0, $5328 = 0, $5329 = 0, $533 = 0, $5330 = 0, $5331 = 
0, $5332 = 0, $5333 = 0, $5334 = 0, $5335 = 0, $5336 = 0, $5337 = 0, $5338 = 0, 
$5339 = 0, $534 = 0, $5340 = 0, $5341 = 0, $5342 = 0, $5343 = 0;
+ var $5344 = 0, $5345 = 0, $5346 = 0, $5347 = 0, $5348 = 0, $5349 = 0, $535 = 
0, $5350 = 0, $5351 = 0, $5352 = 0, $5353 = 0, $5354 = 0, $5355 = 0, $5356 = 0, 
$5357 = 0, $5358 = 0, $5359 = 0, $536 = 0, $5360 = 0, $5361 = 0;
+ var $5362 = 0, $5363 = 0, $5364 = 0, $5365 = 0, $5366 = 0, $5367 = 0, $5368 = 
0, $5369 = 0, $537 = 0, $5370 = 0, $5371 = 0, $5372 = 0, $5373 = 0, $5374 = 0, 
$5375 = 0, $5376 = 0, $5377 = 0, $5378 = 0, $5379 = 0, $538 = 0;
+ var $5380 = 0, $5381 = 0, $5382 = 0, $5383 = 0, $5384 = 0, $5385 = 0, $5386 = 
0, $5387 = 0, $5388 = 0, $5389 = 0, $539 = 0, $5390 = 0, $5391 = 0, $5392 = 0, 
$5393 = 0, $5394 = 0, $5395 = 0, $5396 = 0, $5397 = 0, $5398 = 0;
+ var $5399 = 0, $54 = 0, $540 = 0, $5400 = 0, $5401 = 0, $5402 = 0, $5403 = 0, 
$5404 = 0, $5405 = 0, $5406 = 0, $5407 = 0, $5408 = 0, $5409 = 0, $541 = 0, 
$5410 = 0, $5411 = 0, $5412 = 0, $5413 = 0, $5414 = 0, $5415 = 0;
+ var $5416 = 0, $5417 = 0, $5418 = 0, $5419 = 0, $542 = 0, $5420 = 0, $5421 = 
0, $5422 = 0, $5423 = 0, $5424 = 0, $5425 = 0, $5426 = 0, $5427 = 0, $5428 = 0, 
$5429 = 0, $543 = 0, $5430 = 0, $5431 = 0, $5432 = 0, $5433 = 0;
+ var $5434 = 0, $5435 = 0, $5436 = 0, $5437 = 0, $5438 = 0, $5439 = 0, $544 = 
0, $5440 = 0, $5441 = 0, $5442 = 0, $5443 = 0, $5444 = 0, $5445 = 0, $5446 = 0, 
$5447 = 0, $5448 = 0, $5449 = 0, $545 = 0, $5450 = 0, $5451 = 0;
+ var $5452 = 0, $5453 = 0, $5454 = 0, $5455 = 0, $5456 = 0, $5457 = 0, $5458 = 
0, $5459 = 0, $546 = 0, $5460 = 0, $5461 = 0, $5462 = 0, $5463 = 0, $5464 = 0, 
$5465 = 0, $5466 = 0, $5467 = 0, $5468 = 0, $5469 = 0, $547 = 0;
+ var $5470 = 0, $5471 = 0, $5472 = 0, $5473 = 0, $5474 = 0, $5475 = 0, $5476 = 
0, $5477 = 0, $5478 = 0, $5479 = 0, $548 = 0, $5480 = 0, $5481 = 0, $5482 = 0, 
$5483 = 0, $5484 = 0, $5485 = 0, $5486 = 0, $5487 = 0, $5488 = 0;
+ var $5489 = 0, $549 = 0, $5490 = 0, $5491 = 0, $5492 = 0, $5493 = 0, $5494 = 
0, $5495 = 0, $5496 = 0, $5497 = 0, $5498 = 0, $5499 = 0, $55 = 0, $550 = 0, 
$5500 = 0, $5501 = 0, $5502 = 0, $5503 = 0, $5504 = 0, $5505 = 0;
+ var $5506 = 0, $5507 = 0, $5508 = 0, $5509 = 0, $551 = 0, $5510 = 0, $5511 = 
0, $5512 = 0, $5513 = 0, $5514 = 0, $5515 = 0, $5516 = 0, $5517 = 0, $5518 = 0, 
$5519 = 0, $552 = 0, $5520 = 0, $5521 = 0, $5522 = 0, $5523 = 0;
+ var $5524 = 0, $5525 = 0, $5526 = 0, $5527 = 0, $5528 = 0, $5529 = 0, $553 = 
0, $5530 = 0, $5531 = 0, $5532 = 0, $5533 = 0, $5534 = 0, $5535 = 0, $5536 = 0, 
$5537 = 0, $5538 = 0, $5539 = 0, $554 = 0, $5540 = 0, $5541 = 0;
+ var $5542 = 0, $5543 = 0, $5544 = 0, $5545 = 0, $5546 = 0, $5547 = 0, $5548 = 
0, $5549 = 0, $555 = 0, $5550 = 0, $5551 = 0, $5552 = 0, $5553 = 0, $5554 = 0, 
$5555 = 0, $5556 = 0, $5557 = 0, $5558 = 0, $5559 = 0, $556 = 0;
+ var $5560 = 0, $5561 = 0, $5562 = 0, $5563 = 0, $5564 = 0, $5565 = 0, $5566 = 
0, $5567 = 0, $5568 = 0, $5569 = 0, $557 = 0, $5570 = 0, $5571 = 0, $5572 = 0, 
$5573 = 0, $5574 = 0, $5575 = 0, $5576 = 0, $5577 = 0, $5578 = 0;
+ var $5579 = 0, $558 = 0, $5580 = 0, $5581 = 0, $5582 = 0, $5583 = 0, $5584 = 
0, $5585 = 0, $5586 = 0, $5587 = 0, $5588 = 0, $5589 = 0, $559 = 0, $5590 = 0, 
$5591 = 0, $5592 = 0, $5593 = 0, $5594 = 0, $5595 = 0, $5596 = 0;
+ var $5597 = 0, $5598 = 0, $5599 = 0, $56 = 0, $560 = 0, $5600 = 0, $5601 = 0, 
$5602 = 0, $5603 = 0, $5604 = 0, $5605 = 0, $5606 = 0, $5607 = 0, $5608 = 0, 
$5609 = 0, $561 = 0, $5610 = 0, $5611 = 0, $5612 = 0, $5613 = 0;
+ var $5614 = 0, $5615 = 0, $5616 = 0, $5617 = 0, $5618 = 0, $5619 = 0, $562 = 
0, $5620 = 0, $5621 = 0, $5622 = 0, $5623 = 0, $5624 = 0, $5625 = 0, $5626 = 0, 
$5627 = 0, $5628 = 0, $5629 = 0, $563 = 0, $5630 = 0, $5631 = 0;
+ var $5632 = 0, $5633 = 0, $5634 = 0, $5635 = 0, $5636 = 0, $5637 = 0, $5638 = 
0, $5639 = 0, $564 = 0, $5640 = 0, $5641 = 0, $5642 = 0, $5643 = 0, $5644 = 0, 
$5645 = 0, $5646 = 0, $5647 = 0, $5648 = 0, $5649 = 0, $565 = 0;
+ var $5650 = 0, $5651 = 0, $5652 = 0, $5653 = 0, $5654 = 0, $5655 = 0, $5656 = 
0, $5657 = 0, $5658 = 0, $5659 = 0, $566 = 0, $5660 = 0, $5661 = 0, $5662 = 0, 
$5663 = 0, $5664 = 0, $5665 = 0, $5666 = 0, $5667 = 0, $5668 = 0;
+ var $5669 = 0, $567 = 0, $5670 = 0, $5671 = 0, $5672 = 0, $5673 = 0, $5674 = 
0, $5675 = 0, $5676 = 0, $5677 = 0, $5678 = 0, $5679 = 0, $568 = 0, $5680 = 0, 
$5681 = 0, $5682 = 0, $5683 = 0, $5684 = 0, $5685 = 0, $5686 = 0;
+ var $5687 = 0, $5688 = 0, $5689 = 0, $569 = 0, $5690 = 0, $5691 = 0, $5692 = 
0, $5693 = 0, $5694 = 0, $5695 = 0, $5696 = 0, $5697 = 0, $5698 = 0, $5699 = 0, 
$57 = 0, $570 = 0, $5700 = 0, $5701 = 0, $5702 = 0, $5703 = 0;
+ var $5704 = 0, $5705 = 0, $5706 = 0, $5707 = 0, $5708 = 0, $5709 = 0, $571 = 
0, $5710 = 0, $5711 = 0, $5712 = 0, $5713 = 0, $5714 = 0, $5715 = 0, $5716 = 0, 
$5717 = 0, $5718 = 0, $5719 = 0, $572 = 0, $5720 = 0, $5721 = 0;
+ var $5722 = 0, $5723 = 0, $5724 = 0, $5725 = 0, $5726 = 0, $5727 = 0, $5728 = 
0, $5729 = 0, $573 = 0, $5730 = 0, $5731 = 0, $5732 = 0, $5733 = 0, $5734 = 0, 
$5735 = 0, $5736 = 0, $5737 = 0, $5738 = 0, $5739 = 0, $574 = 0;
+ var $5740 = 0, $5741 = 0, $5742 = 0, $5743 = 0, $5744 = 0, $5745 = 0, $5746 = 
0, $5747 = 0, $5748 = 0, $5749 = 0, $575 = 0, $5750 = 0, $5751 = 0, $5752 = 0, 
$5753 = 0, $5754 = 0, $5755 = 0, $5756 = 0, $5757 = 0, $5758 = 0;
+ var $5759 = 0, $576 = 0, $5760 = 0, $5761 = 0, $5762 = 0, $5763 = 0, $5764 = 
0, $5765 = 0, $5766 = 0, $5767 = 0, $5768 = 0, $5769 = 0, $577 = 0, $5770 = 0, 
$5771 = 0, $5772 = 0, $5773 = 0, $5774 = 0, $5775 = 0, $5776 = 0;
+ var $5777 = 0, $5778 = 0, $5779 = 0, $578 = 0, $5780 = 0, $5781 = 0, $5782 = 
0, $5783 = 0, $5784 = 0, $5785 = 0, $5786 = 0, $5787 = 0, $5788 = 0, $5789 = 0, 
$579 = 0, $5790 = 0, $5791 = 0, $5792 = 0, $5793 = 0, $5794 = 0;
+ var $5795 = 0, $5796 = 0, $5797 = 0, $5798 = 0, $5799 = 0, $58 = 0, $580 = 0, 
$5800 = 0, $5801 = 0, $5802 = 0, $5803 = 0, $5804 = 0, $5805 = 0, $5806 = 0, 
$5807 = 0, $5808 = 0, $5809 = 0, $581 = 0, $5810 = 0, $5811 = 0;
+ var $5812 = 0, $5813 = 0, $5814 = 0, $5815 = 0, $5816 = 0, $5817 = 0, $5818 = 
0, $5819 = 0, $582 = 0, $5820 = 0, $5821 = 0, $5822 = 0, $5823 = 0, $5824 = 0, 
$5825 = 0, $5826 = 0, $5827 = 0, $5828 = 0, $5829 = 0, $583 = 0;
+ var $5830 = 0, $5831 = 0, $5832 = 0, $5833 = 0, $5834 = 0, $5835 = 0, $5836 = 
0, $5837 = 0, $5838 = 0, $5839 = 0, $584 = 0, $5840 = 0, $5841 = 0, $5842 = 0, 
$5843 = 0, $5844 = 0, $5845 = 0, $5846 = 0, $5847 = 0, $5848 = 0;
+ var $5849 = 0, $585 = 0, $5850 = 0, $5851 = 0, $5852 = 0, $5853 = 0, $5854 = 
0, $5855 = 0, $5856 = 0, $5857 = 0, $5858 = 0, $5859 = 0, $586 = 0, $5860 = 0, 
$5861 = 0, $5862 = 0, $5863 = 0, $5864 = 0, $5865 = 0, $5866 = 0;
+ var $5867 = 0, $5868 = 0, $5869 = 0, $587 = 0, $5870 = 0, $5871 = 0, $5872 = 
0, $5873 = 0, $5874 = 0, $5875 = 0, $5876 = 0, $5877 = 0, $5878 = 0, $5879 = 0, 
$588 = 0, $5880 = 0, $5881 = 0, $5882 = 0, $5883 = 0, $5884 = 0;
+ var $5885 = 0, $5886 = 0, $5887 = 0, $5888 = 0, $5889 = 0, $589 = 0, $5890 = 
0, $5891 = 0, $5892 = 0, $5893 = 0, $5894 = 0, $5895 = 0, $5896 = 0, $5897 = 0, 
$5898 = 0, $5899 = 0, $59 = 0, $590 = 0, $5900 = 0, $5901 = 0;
+ var $5902 = 0, $5903 = 0, $5904 = 0, $5905 = 0, $5906 = 0, $5907 = 0, $5908 = 
0, $5909 = 0, $591 = 0, $5910 = 0, $5911 = 0, $5912 = 0, $5913 = 0, $5914 = 0, 
$5915 = 0, $5916 = 0, $5917 = 0, $5918 = 0, $5919 = 0, $592 = 0;
+ var $5920 = 0, $5921 = 0, $5922 = 0, $5923 = 0, $5924 = 0, $5925 = 0, $5926 = 
0, $5927 = 0, $5928 = 0, $5929 = 0, $593 = 0, $5930 = 0, $5931 = 0, $5932 = 0, 
$5933 = 0, $5934 = 0, $5935 = 0, $5936 = 0, $5937 = 0, $5938 = 0;
+ var $5939 = 0, $594 = 0, $5940 = 0, $5941 = 0, $5942 = 0, $5943 = 0, $5944 = 
0, $5945 = 0, $5946 = 0, $5947 = 0, $5948 = 0, $5949 = 0, $595 = 0, $5950 = 0, 
$5951 = 0, $5952 = 0, $5953 = 0, $5954 = 0, $5955 = 0, $5956 = 0;
+ var $5957 = 0, $5958 = 0, $5959 = 0, $596 = 0, $5960 = 0, $5961 = 0, $5962 = 
0, $5963 = 0, $5964 = 0, $5965 = 0, $5966 = 0, $5967 = 0, $5968 = 0, $5969 = 0, 
$597 = 0, $5970 = 0, $5971 = 0, $5972 = 0, $5973 = 0, $5974 = 0;
+ var $5975 = 0, $5976 = 0, $5977 = 0, $5978 = 0, $5979 = 0, $598 = 0, $5980 = 
0, $5981 = 0, $5982 = 0, $5983 = 0, $5984 = 0, $5985 = 0, $5986 = 0, $5987 = 0, 
$5988 = 0, $5989 = 0, $599 = 0, $5990 = 0, $5991 = 0, $5992 = 0;
+ var $5993 = 0, $5994 = 0, $5995 = 0, $5996 = 0, $5997 = 0, $5998 = 0, $5999 = 
0, $6 = 0, $60 = 0, $600 = 0, $6000 = 0, $6001 = 0, $6002 = 0, $6003 = 0, $6004 
= 0, $6005 = 0, $6006 = 0, $6007 = 0, $6008 = 0, $6009 = 0;
+ var $601 = 0, $6010 = 0, $6011 = 0, $6012 = 0, $6013 = 0, $6014 = 0, $6015 = 
0, $6016 = 0, $6017 = 0, $6018 = 0, $6019 = 0, $602 = 0, $6020 = 0, $6021 = 0, 
$6022 = 0, $6023 = 0, $6024 = 0, $6025 = 0, $6026 = 0, $6027 = 0;
+ var $6028 = 0, $6029 = 0, $603 = 0, $6030 = 0, $6031 = 0, $6032 = 0, $6033 = 
0, $6034 = 0, $6035 = 0, $6036 = 0, $6037 = 0, $6038 = 0, $6039 = 0, $604 = 0, 
$6040 = 0, $6041 = 0, $6042 = 0, $6043 = 0, $6044 = 0, $6045 = 0;
+ var $6046 = 0, $6047 = 0, $6048 = 0, $6049 = 0, $605 = 0, $6050 = 0, $6051 = 
0, $6052 = 0, $6053 = 0, $6054 = 0, $6055 = 0, $6056 = 0, $6057 = 0, $6058 = 0, 
$6059 = 0, $606 = 0, $6060 = 0, $6061 = 0, $6062 = 0, $6063 = 0;
+ var $6064 = 0, $6065 = 0, $6066 = 0, $6067 = 0, $6068 = 0, $6069 = 0, $607 = 
0, $6070 = 0, $6071 = 0, $6072 = 0, $6073 = 0, $6074 = 0, $6075 = 0, $6076 = 0, 
$6077 = 0, $6078 = 0, $6079 = 0, $608 = 0, $6080 = 0, $6081 = 0;
+ var $6082 = 0, $6083 = 0, $6084 = 0, $6085 = 0, $6086 = 0, $6087 = 0, $6088 = 
0, $6089 = 0, $609 = 0, $6090 = 0, $6091 = 0, $6092 = 0, $6093 = 0, $6094 = 0, 
$6095 = 0, $6096 = 0, $6097 = 0, $6098 = 0, $6099 = 0, $61 = 0;
+ var $610 = 0, $6100 = 0, $6101 = 0, $6102 = 0, $6103 = 0, $6104 = 0, $6105 = 
0, $6106 = 0, $6107 = 0, $6108 = 0, $6109 = 0, $611 = 0, $6110 = 0, $6111 = 0, 
$6112 = 0, $6113 = 0, $6114 = 0, $6115 = 0, $6116 = 0, $6117 = 0;
+ var $6118 = 0, $6119 = 0, $612 = 0, $6120 = 0, $6121 = 0, $6122 = 0, $6123 = 
0, $6124 = 0, $6125 = 0, $6126 = 0, $6127 = 0, $6128 = 0, $6129 = 0, $613 = 0, 
$6130 = 0, $6131 = 0, $6132 = 0, $6133 = 0, $6134 = 0, $6135 = 0;
+ var $6136 = 0, $6137 = 0, $6138 = 0, $6139 = 0, $614 = 0, $6140 = 0, $6141 = 
0, $6142 = 0, $6143 = 0, $6144 = 0, $6145 = 0, $6146 = 0, $6147 = 0, $6148 = 0, 
$6149 = 0, $615 = 0, $6150 = 0, $6151 = 0, $6152 = 0, $6153 = 0;
+ var $6154 = 0, $6155 = 0, $6156 = 0, $6157 = 0, $6158 = 0, $6159 = 0, $616 = 
0, $6160 = 0, $6161 = 0, $6162 = 0, $6163 = 0, $6164 = 0, $6165 = 0, $6166 = 0, 
$6167 = 0, $6168 = 0, $6169 = 0, $617 = 0, $6170 = 0, $6171 = 0;
+ var $6172 = 0, $6173 = 0, $6174 = 0, $6175 = 0, $6176 = 0, $6177 = 0, $6178 = 
0, $6179 = 0, $618 = 0, $6180 = 0, $6181 = 0, $6182 = 0, $6183 = 0, $6184 = 0, 
$6185 = 0, $6186 = 0, $6187 = 0, $6188 = 0, $6189 = 0, $619 = 0;
+ var $6190 = 0, $6191 = 0, $6192 = 0, $6193 = 0, $6194 = 0, $6195 = 0, $6196 = 
0, $6197 = 0, $6198 = 0, $6199 = 0, $62 = 0, $620 = 0, $6200 = 0, $6201 = 0, 
$6202 = 0, $6203 = 0, $6204 = 0, $6205 = 0, $6206 = 0, $6207 = 0;
+ var $6208 = 0, $6209 = 0, $621 = 0, $6210 = 0, $6211 = 0, $6212 = 0, $6213 = 
0, $6214 = 0, $6215 = 0, $6216 = 0, $6217 = 0, $6218 = 0, $6219 = 0, $622 = 0, 
$6220 = 0, $6221 = 0, $6222 = 0, $6223 = 0, $6224 = 0, $6225 = 0;
+ var $6226 = 0, $6227 = 0, $6228 = 0, $6229 = 0, $623 = 0, $6230 = 0, $6231 = 
0, $6232 = 0, $6233 = 0, $6234 = 0, $6235 = 0, $6236 = 0, $6237 = 0, $6238 = 0, 
$6239 = 0, $624 = 0, $6240 = 0, $6241 = 0, $6242 = 0, $6243 = 0;
+ var $6244 = 0, $6245 = 0, $6246 = 0, $6247 = 0, $6248 = 0, $6249 = 0, $625 = 
0, $6250 = 0, $6251 = 0, $6252 = 0, $6253 = 0, $6254 = 0, $6255 = 0, $6256 = 0, 
$6257 = 0, $6258 = 0, $6259 = 0, $626 = 0, $6260 = 0, $6261 = 0;
+ var $6262 = 0, $6263 = 0, $6264 = 0, $6265 = 0, $6266 = 0, $6267 = 0, $6268 = 
0, $6269 = 0, $627 = 0, $6270 = 0, $6271 = 0, $6272 = 0, $6273 = 0, $6274 = 0, 
$6275 = 0, $6276 = 0, $6277 = 0, $6278 = 0, $6279 = 0, $628 = 0;
+ var $6280 = 0, $6281 = 0, $6282 = 0, $6283 = 0, $6284 = 0, $6285 = 0, $6286 = 
0, $6287 = 0, $6288 = 0, $6289 = 0, $629 = 0, $6290 = 0, $6291 = 0, $6292 = 0, 
$6293 = 0, $6294 = 0, $6295 = 0, $6296 = 0, $6297 = 0, $6298 = 0;
+ var $6299 = 0, $63 = 0, $630 = 0, $6300 = 0, $6301 = 0, $6302 = 0, $6303 = 0, 
$6304 = 0, $6305 = 0, $6306 = 0, $6307 = 0, $6308 = 0, $6309 = 0, $631 = 0, 
$6310 = 0, $6311 = 0, $6312 = 0, $6313 = 0, $6314 = 0, $632 = 0;
+ var $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 
= 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 
= 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0;
+ var $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, 
$658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, 
$665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0;
+ var $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 
= 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 
= 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0;
+ var $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 
= 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 
0, $701 = 0, $702 = 0, $703 = 0, $704 = 0;
+ var $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 
= 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 
= 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0;
+ var $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 
= 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 
= 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0;
+ var $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, 
$748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, 
$755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0;
+ var $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 
= 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 
= 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0;
+ var $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 
= 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 
= 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0;
+ var $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 
0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 
0, $81 = 0, $810 = 0, $811 = 0, $812 = 0;
+ var $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 
= 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 
= 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0;
+ var $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, 
$838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, 
$845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0;
+ var $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 
= 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 
= 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0;
+ var $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 
= 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 
= 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0;
+ var $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 
= 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 
0, $90 = 0, $900 = 0, $901 = 0, $902 = 0;
+ var $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 
= 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 
= 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0;
+ var $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, 
$928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, 
$935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0;
+ var $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 
= 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 
= 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0;
+ var $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 
= 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 
= 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0;
+ var $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 
= 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 
= 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0;
+ var $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $exitcond = 
0, $exitcond1921 = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 4288|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(4288|0);
+ $vararg_buffer = sp + 16|0;
+ $3 = sp + 24|0;
+ $4 = sp;
+ $5 = (($2) + -16)|0;
+ $6 = $5 | 16;
+ $7 = ($6|0)==(16);
+ if (!($7)) {
+  $$01913 = 44;
+  STACKTOP = sp;return ($$01913|0);
+ }
+ $8 = HEAP32[18118]|0;
+ $9 = ($8|0)==(0);
+ do {
+  if ($9) {
+   HEAP32[18118] = 1;
+   (_do_twofish_setkey($3,8800,16)|0);
+   ___gcry_burn_stack(47);
+   (_twofish_encrypt($3,$4,8816)|0);
+   $10 = (_memcmp($4,8832,16)|0);
+   $11 = ($10|0)==(0);
+   if ($11) {
+    (_twofish_decrypt($3,$4,$4)|0);
+    $12 = (_memcmp($4,8816,16)|0);
+    $13 = ($12|0)==(0);
+    if ($13) {
+     (_do_twofish_setkey($3,8848,32)|0);
+     ___gcry_burn_stack(47);
+     (_twofish_encrypt($3,$4,8880)|0);
+     $14 = (_memcmp($4,8896,16)|0);
+     $15 = ($14|0)==(0);
+     if ($15) {
+      (_twofish_decrypt($3,$4,$4)|0);
+      $16 = (_memcmp($4,8880,16)|0);
+      $17 = ($16|0)==(0);
+      if ($17) {
+       $18 = (__gcry_selftest_helper_ctr(63524,32,33,70,4,16,4256)|0);
+       $19 = ($18|0)==(0|0);
+       if ($19) {
+        $20 = (__gcry_selftest_helper_cbc(63524,32,33,68,5,16,4256)|0);
+        $21 = ($20|0)==(0|0);
+        if ($21) {
+         $22 = (__gcry_selftest_helper_cfb(63524,32,33,69,5,16,4256)|0);
+         HEAP32[18119] = $22;
+         $23 = ($22|0)==(0|0);
+         if ($23) {
+          break;
+         } else {
+          $$0$i1914 = $22;
+         }
+        } else {
+         $$0$i$ph = $20;
+         label = 9;
+        }
+       } else {
+        $$0$i$ph = $18;
+        label = 9;
+       }
+      } else {
+       $$0$i$ph = 63532;
+       label = 9;
+      }
+     } else {
+      $$0$i$ph = 63568;
+      label = 9;
+     }
+    } else {
+     $$0$i$ph = 63604;
+     label = 9;
+    }
+   } else {
+    $$0$i$ph = 63640;
+    label = 9;
+   }
+   if ((label|0) == 9) {
+    HEAP32[18119] = $$0$i$ph;
+    $$0$i1914 = $$0$i$ph;
+   }
+   HEAP32[$vararg_buffer>>2] = $$0$i1914;
+   __gcry_log_error(63676,$vararg_buffer);
+   label = 12;
+  } else {
+   label = 12;
+  }
+ } while(0);
+ if ((label|0) == 12) {
+  $$pr = HEAP32[18119]|0;
+  $24 = ($$pr|0)==(0|0);
+  if (!($24)) {
+   $$01913 = 50;
+   STACKTOP = sp;return ($$01913|0);
+  }
+ }
+ $25 = HEAP8[$1>>0]|0;
+ $26 = ($25<<24>>24)==(0);
+ if ($26) {
+  $$01883 = 0;$$01891 = 0;$$01899 = 0;
+ } else {
+  $27 = $25&255;
+  $28 = (($27) + -1)|0;
+  $29 = (8912 + ($28)|0);
+  $30 = HEAP8[$29>>0]|0;
+  $31 = $30&255;
+  $32 = (9168 + ($31)|0);
+  $33 = HEAP8[$32>>0]|0;
+  $34 = (($31) + 45)|0;
+  $35 = (9168 + ($34)|0);
+  $36 = HEAP8[$35>>0]|0;
+  $37 = (($31) + 1)|0;
+  $38 = (9168 + ($37)|0);
+  $39 = HEAP8[$38>>0]|0;
+  $$01883 = $39;$$01891 = $36;$$01899 = $33;
+ }
+ $40 = ((($1)) + 1|0);
+ $41 = HEAP8[$40>>0]|0;
+ $42 = ($41<<24>>24)==(0);
+ if ($42) {
+  $$11876 = $$01891;$$11884 = $$01883;$$11892 = $$01891;$$11900 = $$01899;
+ } else {
+  $43 = $41&255;
+  $44 = (($43) + -1)|0;
+  $45 = (8912 + ($44)|0);
+  $46 = HEAP8[$45>>0]|0;
+  $47 = $46&255;
+  $48 = (($47) + 45)|0;
+  $49 = (9168 + ($48)|0);
+  $50 = HEAP8[$49>>0]|0;
+  $51 = $50 ^ $$01899;
+  $52 = (($47) + 164)|0;
+  $53 = (9168 + ($52)|0);
+  $54 = HEAP8[$53>>0]|0;
+  $55 = $54 ^ $$01891;
+  $56 = (($47) + 68)|0;
+  $57 = (9168 + ($56)|0);
+  $58 = HEAP8[$57>>0]|0;
+  $59 = $58 ^ $$01883;
+  $60 = (($47) + 138)|0;
+  $61 = (9168 + ($60)|0);
+  $62 = HEAP8[$61>>0]|0;
+  $63 = $62 ^ $$01891;
+  $$11876 = $63;$$11884 = $59;$$11892 = $55;$$11900 = $51;
+ }
+ $64 = ((($1)) + 2|0);
+ $65 = HEAP8[$64>>0]|0;
+ $66 = ($65<<24>>24)==(0);
+ if ($66) {
+  $$21877 = $$11876;$$21885 = $$11884;$$21893 = $$11892;$$21901 = $$11900;
+ } else {
+  $67 = $65&255;
+  $68 = (($67) + -1)|0;
+  $69 = (8912 + ($68)|0);
+  $70 = HEAP8[$69>>0]|0;
+  $71 = $70&255;
+  $72 = (($71) + 138)|0;
+  $73 = (9168 + ($72)|0);
+  $74 = HEAP8[$73>>0]|0;
+  $75 = $74 ^ $$11900;
+  $76 = (($71) + 213)|0;
+  $77 = (9168 + ($76)|0);
+  $78 = HEAP8[$77>>0]|0;
+  $79 = $78 ^ $$11892;
+  $80 = (($71) + 191)|0;
+  $81 = (9168 + ($80)|0);
+  $82 = HEAP8[$81>>0]|0;
+  $83 = $82 ^ $$11884;
+  $84 = (($71) + 209)|0;
+  $85 = (9168 + ($84)|0);
+  $86 = HEAP8[$85>>0]|0;
+  $87 = $86 ^ $$11876;
+  $$21877 = $87;$$21885 = $83;$$21893 = $79;$$21901 = $75;
+ }
+ $88 = ((($1)) + 3|0);
+ $89 = HEAP8[$88>>0]|0;
+ $90 = ($89<<24>>24)==(0);
+ if ($90) {
+  $$31878 = $$21877;$$31886 = $$21885;$$31894 = $$21893;$$31902 = $$21901;
+ } else {
+  $91 = $89&255;
+  $92 = (($91) + -1)|0;
+  $93 = (8912 + ($92)|0);
+  $94 = HEAP8[$93>>0]|0;
+  $95 = $94&255;
+  $96 = (($95) + 209)|0;
+  $97 = (9168 + ($96)|0);
+  $98 = HEAP8[$97>>0]|0;
+  $99 = $98 ^ $$21901;
+  $100 = (($95) + 127)|0;
+  $101 = (9168 + ($100)|0);
+  $102 = HEAP8[$101>>0]|0;
+  $103 = $102 ^ $$21893;
+  $104 = (($95) + 61)|0;
+  $105 = (9168 + ($104)|0);
+  $106 = HEAP8[$105>>0]|0;
+  $107 = $106 ^ $$21885;
+  $108 = (($95) + 153)|0;
+  $109 = (9168 + ($108)|0);
+  $110 = HEAP8[$109>>0]|0;
+  $111 = $110 ^ $$21877;
+  $$31878 = $111;$$31886 = $107;$$31894 = $103;$$31902 = $99;
+ }
+ $112 = ((($1)) + 4|0);
+ $113 = HEAP8[$112>>0]|0;
+ $114 = ($113<<24>>24)==(0);
+ if ($114) {
+  $$41879 = $$31878;$$41887 = $$31886;$$41895 = $$31894;$$41903 = $$31902;
+ } else {
+  $115 = $113&255;
+  $116 = (($115) + -1)|0;
+  $117 = (8912 + ($116)|0);
+  $118 = HEAP8[$117>>0]|0;
+  $119 = $118&255;
+  $120 = (($119) + 153)|0;
+  $121 = (9168 + ($120)|0);
+  $122 = HEAP8[$121>>0]|0;
+  $123 = $122 ^ $$31902;
+  $124 = (($119) + 70)|0;
+  $125 = (9168 + ($124)|0);
+  $126 = HEAP8[$125>>0]|0;
+  $127 = $126 ^ $$31894;
+  $128 = (($119) + 102)|0;
+  $129 = (9168 + ($128)|0);
+  $130 = HEAP8[$129>>0]|0;
+  $131 = $130 ^ $$31886;
+  $132 = (($119) + 150)|0;
+  $133 = (9168 + ($132)|0);
+  $134 = HEAP8[$133>>0]|0;
+  $135 = $134 ^ $$31878;
+  $$41879 = $135;$$41887 = $131;$$41895 = $127;$$41903 = $123;
+ }
+ $136 = ((($1)) + 5|0);
+ $137 = HEAP8[$136>>0]|0;
+ $138 = ($137<<24>>24)==(0);
+ if ($138) {
+  $$51880 = $$41879;$$51888 = $$41887;$$51896 = $$41895;$$51904 = $$41903;
+ } else {
+  $139 = $137&255;
+  $140 = (($139) + -1)|0;
+  $141 = (8912 + ($140)|0);
+  $142 = HEAP8[$141>>0]|0;
+  $143 = $142&255;
+  $144 = (($143) + 150)|0;
+  $145 = (9168 + ($144)|0);
+  $146 = HEAP8[$145>>0]|0;
+  $147 = $146 ^ $$41903;
+  $148 = (($143) + 60)|0;
+  $149 = (9168 + ($148)|0);
+  $150 = HEAP8[$149>>0]|0;
+  $151 = $150 ^ $$41895;
+  $152 = (($143) + 91)|0;
+  $153 = (9168 + ($152)|0);
+  $154 = HEAP8[$153>>0]|0;
+  $155 = $154 ^ $$41887;
+  $156 = (($143) + 237)|0;
+  $157 = (9168 + ($156)|0);
+  $158 = HEAP8[$157>>0]|0;
+  $159 = $158 ^ $$41879;
+  $$51880 = $159;$$51888 = $155;$$51896 = $151;$$51904 = $147;
+ }
+ $160 = ((($1)) + 6|0);
+ $161 = HEAP8[$160>>0]|0;
+ $162 = ($161<<24>>24)==(0);
+ if ($162) {
+  $$61881 = $$51880;$$61889 = $$51888;$$61897 = $$51896;$$61905 = $$51904;
+ } else {
+  $163 = $161&255;
+  $164 = (($163) + -1)|0;
+  $165 = (8912 + ($164)|0);
+  $166 = HEAP8[$165>>0]|0;
+  $167 = $166&255;
+  $168 = (($167) + 237)|0;
+  $169 = (9168 + ($168)|0);
+  $170 = HEAP8[$169>>0]|0;
+  $171 = $170 ^ $$51904;
+  $172 = (($167) + 55)|0;
+  $173 = (9168 + ($172)|0);
+  $174 = HEAP8[$173>>0]|0;
+  $175 = $174 ^ $$51896;
+  $176 = (($167) + 79)|0;
+  $177 = (9168 + ($176)|0);
+  $178 = HEAP8[$177>>0]|0;
+  $179 = $178 ^ $$51888;
+  $180 = (($167) + 224)|0;
+  $181 = (9168 + ($180)|0);
+  $182 = HEAP8[$181>>0]|0;
+  $183 = $182 ^ $$51880;
+  $$61881 = $183;$$61889 = $179;$$61897 = $175;$$61905 = $171;
+ }
+ $184 = ((($1)) + 7|0);
+ $185 = HEAP8[$184>>0]|0;
+ $186 = ($185<<24>>24)==(0);
+ if ($186) {
+  $$71882 = $$61881;$$71890 = $$61889;$$71898 = $$61897;$$71906 = $$61905;
+ } else {
+  $187 = $185&255;
+  $188 = (($187) + -1)|0;
+  $189 = (8912 + ($188)|0);
+  $190 = HEAP8[$189>>0]|0;
+  $191 = $190&255;
+  $192 = (($191) + 224)|0;
+  $193 = (9168 + ($192)|0);
+  $194 = HEAP8[$193>>0]|0;
+  $195 = $194 ^ $$61905;
+  $196 = (($191) + 208)|0;
+  $197 = (9168 + ($196)|0);
+  $198 = HEAP8[$197>>0]|0;
+  $199 = $198 ^ $$61897;
+  $200 = (($191) + 140)|0;
+  $201 = (9168 + ($200)|0);
+  $202 = HEAP8[$201>>0]|0;
+  $203 = $202 ^ $$61889;
+  $204 = (($191) + 23)|0;
+  $205 = (9168 + ($204)|0);
+  $206 = HEAP8[$205>>0]|0;
+  $207 = $206 ^ $$61881;
+  $$71882 = $207;$$71890 = $203;$$71898 = $199;$$71906 = $195;
+ }
+ $208 = ((($1)) + 8|0);
+ $209 = HEAP8[$208>>0]|0;
+ $210 = ($209<<24>>24)==(0);
+ if ($210) {
+  $$01851 = 0;$$01859 = 0;$$01867 = 0;
+ } else {
+  $211 = $209&255;
+  $212 = (($211) + -1)|0;
+  $213 = (8912 + ($212)|0);
+  $214 = HEAP8[$213>>0]|0;
+  $215 = $214&255;
+  $216 = (9168 + ($215)|0);
+  $217 = HEAP8[$216>>0]|0;
+  $218 = (($215) + 45)|0;
+  $219 = (9168 + ($218)|0);
+  $220 = HEAP8[$219>>0]|0;
+  $221 = (($215) + 1)|0;
+  $222 = (9168 + ($221)|0);
+  $223 = HEAP8[$222>>0]|0;
+  $$01851 = $223;$$01859 = $220;$$01867 = $217;
+ }
+ $224 = ((($1)) + 9|0);
+ $225 = HEAP8[$224>>0]|0;
+ $226 = ($225<<24>>24)==(0);
+ if ($226) {
+  $$11844 = $$01859;$$11852 = $$01851;$$11860 = $$01859;$$11868 = $$01867;
+ } else {
+  $227 = $225&255;
+  $228 = (($227) + -1)|0;
+  $229 = (8912 + ($228)|0);
+  $230 = HEAP8[$229>>0]|0;
+  $231 = $230&255;
+  $232 = (($231) + 45)|0;
+  $233 = (9168 + ($232)|0);
+  $234 = HEAP8[$233>>0]|0;
+  $235 = $234 ^ $$01867;
+  $236 = (($231) + 164)|0;
+  $237 = (9168 + ($236)|0);
+  $238 = HEAP8[$237>>0]|0;
+  $239 = $238 ^ $$01859;
+  $240 = (($231) + 68)|0;
+  $241 = (9168 + ($240)|0);
+  $242 = HEAP8[$241>>0]|0;
+  $243 = $242 ^ $$01851;
+  $244 = (($231) + 138)|0;
+  $245 = (9168 + ($244)|0);
+  $246 = HEAP8[$245>>0]|0;
+  $247 = $246 ^ $$01859;
+  $$11844 = $247;$$11852 = $243;$$11860 = $239;$$11868 = $235;
+ }
+ $248 = ((($1)) + 10|0);
+ $249 = HEAP8[$248>>0]|0;
+ $250 = ($249<<24>>24)==(0);
+ if ($250) {
+  $$21845 = $$11844;$$21853 = $$11852;$$21861 = $$11860;$$21869 = $$11868;
+ } else {
+  $251 = $249&255;
+  $252 = (($251) + -1)|0;
+  $253 = (8912 + ($252)|0);
+  $254 = HEAP8[$253>>0]|0;
+  $255 = $254&255;
+  $256 = (($255) + 138)|0;
+  $257 = (9168 + ($256)|0);
+  $258 = HEAP8[$257>>0]|0;
+  $259 = $258 ^ $$11868;
+  $260 = (($255) + 213)|0;
+  $261 = (9168 + ($260)|0);
+  $262 = HEAP8[$261>>0]|0;
+  $263 = $262 ^ $$11860;
+  $264 = (($255) + 191)|0;
+  $265 = (9168 + ($264)|0);
+  $266 = HEAP8[$265>>0]|0;
+  $267 = $266 ^ $$11852;
+  $268 = (($255) + 209)|0;
+  $269 = (9168 + ($268)|0);
+  $270 = HEAP8[$269>>0]|0;
+  $271 = $270 ^ $$11844;
+  $$21845 = $271;$$21853 = $267;$$21861 = $263;$$21869 = $259;
+ }
+ $272 = ((($1)) + 11|0);
+ $273 = HEAP8[$272>>0]|0;
+ $274 = ($273<<24>>24)==(0);
+ if ($274) {
+  $$31846 = $$21845;$$31854 = $$21853;$$31862 = $$21861;$$31870 = $$21869;
+ } else {
+  $275 = $273&255;
+  $276 = (($275) + -1)|0;
+  $277 = (8912 + ($276)|0);
+  $278 = HEAP8[$277>>0]|0;
+  $279 = $278&255;
+  $280 = (($279) + 209)|0;
+  $281 = (9168 + ($280)|0);
+  $282 = HEAP8[$281>>0]|0;
+  $283 = $282 ^ $$21869;
+  $284 = (($279) + 127)|0;
+  $285 = (9168 + ($284)|0);
+  $286 = HEAP8[$285>>0]|0;
+  $287 = $286 ^ $$21861;
+  $288 = (($279) + 61)|0;
+  $289 = (9168 + ($288)|0);
+  $290 = HEAP8[$289>>0]|0;
+  $291 = $290 ^ $$21853;
+  $292 = (($279) + 153)|0;
+  $293 = (9168 + ($292)|0);
+  $294 = HEAP8[$293>>0]|0;
+  $295 = $294 ^ $$21845;
+  $$31846 = $295;$$31854 = $291;$$31862 = $287;$$31870 = $283;
+ }
+ $296 = ((($1)) + 12|0);
+ $297 = HEAP8[$296>>0]|0;
+ $298 = ($297<<24>>24)==(0);
+ if ($298) {
+  $$41847 = $$31846;$$41855 = $$31854;$$41863 = $$31862;$$41871 = $$31870;
+ } else {
+  $299 = $297&255;
+  $300 = (($299) + -1)|0;
+  $301 = (8912 + ($300)|0);
+  $302 = HEAP8[$301>>0]|0;
+  $303 = $302&255;
+  $304 = (($303) + 153)|0;
+  $305 = (9168 + ($304)|0);
+  $306 = HEAP8[$305>>0]|0;
+  $307 = $306 ^ $$31870;
+  $308 = (($303) + 70)|0;
+  $309 = (9168 + ($308)|0);
+  $310 = HEAP8[$309>>0]|0;
+  $311 = $310 ^ $$31862;
+  $312 = (($303) + 102)|0;
+  $313 = (9168 + ($312)|0);
+  $314 = HEAP8[$313>>0]|0;
+  $315 = $314 ^ $$31854;
+  $316 = (($303) + 150)|0;
+  $317 = (9168 + ($316)|0);
+  $318 = HEAP8[$317>>0]|0;
+  $319 = $318 ^ $$31846;
+  $$41847 = $319;$$41855 = $315;$$41863 = $311;$$41871 = $307;
+ }
+ $320 = ((($1)) + 13|0);
+ $321 = HEAP8[$320>>0]|0;
+ $322 = ($321<<24>>24)==(0);
+ if ($322) {
+  $$51848 = $$41847;$$51856 = $$41855;$$51864 = $$41863;$$51872 = $$41871;
+ } else {
+  $323 = $321&255;
+  $324 = (($323) + -1)|0;
+  $325 = (8912 + ($324)|0);
+  $326 = HEAP8[$325>>0]|0;
+  $327 = $326&255;
+  $328 = (($327) + 150)|0;
+  $329 = (9168 + ($328)|0);
+  $330 = HEAP8[$329>>0]|0;
+  $331 = $330 ^ $$41871;
+  $332 = (($327) + 60)|0;
+  $333 = (9168 + ($332)|0);
+  $334 = HEAP8[$333>>0]|0;
+  $335 = $334 ^ $$41863;
+  $336 = (($327) + 91)|0;
+  $337 = (9168 + ($336)|0);
+  $338 = HEAP8[$337>>0]|0;
+  $339 = $338 ^ $$41855;
+  $340 = (($327) + 237)|0;
+  $341 = (9168 + ($340)|0);
+  $342 = HEAP8[$341>>0]|0;
+  $343 = $342 ^ $$41847;
+  $$51848 = $343;$$51856 = $339;$$51864 = $335;$$51872 = $331;
+ }
+ $344 = ((($1)) + 14|0);
+ $345 = HEAP8[$344>>0]|0;
+ $346 = ($345<<24>>24)==(0);
+ if ($346) {
+  $$61849 = $$51848;$$61857 = $$51856;$$61865 = $$51864;$$61873 = $$51872;
+ } else {
+  $347 = $345&255;
+  $348 = (($347) + -1)|0;
+  $349 = (8912 + ($348)|0);
+  $350 = HEAP8[$349>>0]|0;
+  $351 = $350&255;
+  $352 = (($351) + 237)|0;
+  $353 = (9168 + ($352)|0);
+  $354 = HEAP8[$353>>0]|0;
+  $355 = $354 ^ $$51872;
+  $356 = (($351) + 55)|0;
+  $357 = (9168 + ($356)|0);
+  $358 = HEAP8[$357>>0]|0;
+  $359 = $358 ^ $$51864;
+  $360 = (($351) + 79)|0;
+  $361 = (9168 + ($360)|0);
+  $362 = HEAP8[$361>>0]|0;
+  $363 = $362 ^ $$51856;
+  $364 = (($351) + 224)|0;
+  $365 = (9168 + ($364)|0);
+  $366 = HEAP8[$365>>0]|0;
+  $367 = $366 ^ $$51848;
+  $$61849 = $367;$$61857 = $363;$$61865 = $359;$$61873 = $355;
+ }
+ $368 = ((($1)) + 15|0);
+ $369 = HEAP8[$368>>0]|0;
+ $370 = ($369<<24>>24)==(0);
+ if ($370) {
+  $$71850 = $$61849;$$71858 = $$61857;$$71866 = $$61865;$$71874 = $$61873;
+ } else {
+  $371 = $369&255;
+  $372 = (($371) + -1)|0;
+  $373 = (8912 + ($372)|0);
+  $374 = HEAP8[$373>>0]|0;
+  $375 = $374&255;
+  $376 = (($375) + 224)|0;
+  $377 = (9168 + ($376)|0);
+  $378 = HEAP8[$377>>0]|0;
+  $379 = $378 ^ $$61873;
+  $380 = (($375) + 208)|0;
+  $381 = (9168 + ($380)|0);
+  $382 = HEAP8[$381>>0]|0;
+  $383 = $382 ^ $$61865;
+  $384 = (($375) + 140)|0;
+  $385 = (9168 + ($384)|0);
+  $386 = HEAP8[$385>>0]|0;
+  $387 = $386 ^ $$61857;
+  $388 = (($375) + 23)|0;
+  $389 = (9168 + ($388)|0);
+  $390 = HEAP8[$389>>0]|0;
+  $391 = $390 ^ $$61849;
+  $$71850 = $391;$$71858 = $387;$$71866 = $383;$$71874 = $379;
+ }
+ $392 = ($2|0)==(32);
+ if (!($392)) {
+  $$119081920 = 1;$$119101919 = 0;$$119121918 = 0;
+  while(1) {
+   $4354 = (9664 + ($$119101919)|0);
+   $4355 = HEAP8[$4354>>0]|0;
+   $4356 = $4355 ^ $$71906;
+   $4357 = $4356&255;
+   $4358 = (10432 + ($4357)|0);
+   $4359 = HEAP8[$4358>>0]|0;
+   $4360 = $4359 ^ $$71874;
+   $4361 = $4360&255;
+   $4362 = (10688 + ($4361<<2)|0);
+   $4363 = HEAP32[$4362>>2]|0;
+   $4364 = (($0) + ($$119121918<<2)|0);
+   HEAP32[$4364>>2] = $4363;
+   $4365 = (9664 + ($$119081920)|0);
+   $4366 = HEAP8[$4365>>0]|0;
+   $4367 = $4366 ^ $$71898;
+   $4368 = $4367&255;
+   $4369 = (10432 + ($4368)|0);
+   $4370 = HEAP8[$4369>>0]|0;
+   $4371 = $4370 ^ $$71866;
+   $4372 = $4371&255;
+   $4373 = (11712 + ($4372<<2)|0);
+   $4374 = HEAP32[$4373>>2]|0;
+   $4375 = (((($0)) + 1024|0) + ($$119121918<<2)|0);
+   HEAP32[$4375>>2] = $4374;
+   $4376 = $4355 ^ $$71890;
+   $4377 = $4376&255;
+   $4378 = (10176 + ($4377)|0);
+   $4379 = HEAP8[$4378>>0]|0;
+   $4380 = $4379 ^ $$71858;
+   $4381 = $4380&255;
+   $4382 = (12736 + ($4381<<2)|0);
+   $4383 = HEAP32[$4382>>2]|0;
+   $4384 = (((($0)) + 2048|0) + ($$119121918<<2)|0);
+   HEAP32[$4384>>2] = $4383;
+   $4385 = $4366 ^ $$71882;
+   $4386 = $4385&255;
+   $4387 = (10176 + ($4386)|0);
+   $4388 = HEAP8[$4387>>0]|0;
+   $4389 = $4388 ^ $$71850;
+   $4390 = $4389&255;
+   $4391 = (13760 + ($4390<<2)|0);
+   $4392 = HEAP32[$4391>>2]|0;
+   $4393 = (((($0)) + 3072|0) + ($$119121918<<2)|0);
+   HEAP32[$4393>>2] = $4392;
+   $4394 = (($$119121918) + 1)|0;
+   $4395 = (($$119101919) + 2)|0;
+   $4396 = (($$119081920) + 2)|0;
+   $exitcond1921 = ($4394|0)==(256);
+   if ($exitcond1921) {
+    break;
+   } else {
+    $$119081920 = $4396;$$119101919 = $4395;$$119121918 = $4394;
+   }
+  }
+  $4397 = HEAP8[$208>>0]|0;
+  $4398 = $4397 ^ -87;
+  $4399 = $4398&255;
+  $4400 = (10432 + ($4399)|0);
+  $4401 = HEAP8[$4400>>0]|0;
+  $4402 = HEAP8[$1>>0]|0;
+  $4403 = $4402 ^ $4401;
+  $4404 = $4403&255;
+  $4405 = (10688 + ($4404<<2)|0);
+  $4406 = HEAP32[$4405>>2]|0;
+  $4407 = HEAP8[$224>>0]|0;
+  $4408 = $4407 ^ 117;
+  $4409 = $4408&255;
+  $4410 = (10432 + ($4409)|0);
+  $4411 = HEAP8[$4410>>0]|0;
+  $4412 = HEAP8[$40>>0]|0;
+  $4413 = $4412 ^ $4411;
+  $4414 = $4413&255;
+  $4415 = (11712 + ($4414<<2)|0);
+  $4416 = HEAP32[$4415>>2]|0;
+  $4417 = $4416 ^ $4406;
+  $4418 = HEAP8[$248>>0]|0;
+  $4419 = $4418 ^ -87;
+  $4420 = $4419&255;
+  $4421 = (10176 + ($4420)|0);
+  $4422 = HEAP8[$4421>>0]|0;
+  $4423 = HEAP8[$64>>0]|0;
+  $4424 = $4423 ^ $4422;
+  $4425 = $4424&255;
+  $4426 = (12736 + ($4425<<2)|0);
+  $4427 = HEAP32[$4426>>2]|0;
+  $4428 = $4417 ^ $4427;
+  $4429 = HEAP8[$272>>0]|0;
+  $4430 = $4429 ^ 117;
+  $4431 = $4430&255;
+  $4432 = (10176 + ($4431)|0);
+  $4433 = HEAP8[$4432>>0]|0;
+  $4434 = HEAP8[$88>>0]|0;
+  $4435 = $4434 ^ $4433;
+  $4436 = $4435&255;
+  $4437 = (13760 + ($4436<<2)|0);
+  $4438 = HEAP32[$4437>>2]|0;
+  $4439 = $4428 ^ $4438;
+  $4440 = HEAP8[$296>>0]|0;
+  $4441 = $4440 ^ 103;
+  $4442 = $4441&255;
+  $4443 = (10432 + ($4442)|0);
+  $4444 = HEAP8[$4443>>0]|0;
+  $4445 = HEAP8[$112>>0]|0;
+  $4446 = $4445 ^ $4444;
+  $4447 = $4446&255;
+  $4448 = (10688 + ($4447<<2)|0);
+  $4449 = HEAP32[$4448>>2]|0;
+  $4450 = HEAP8[$320>>0]|0;
+  $4451 = $4450 ^ -13;
+  $4452 = $4451&255;
+  $4453 = (10432 + ($4452)|0);
+  $4454 = HEAP8[$4453>>0]|0;
+  $4455 = HEAP8[$136>>0]|0;
+  $4456 = $4455 ^ $4454;
+  $4457 = $4456&255;
+  $4458 = (11712 + ($4457<<2)|0);
+  $4459 = HEAP32[$4458>>2]|0;
+  $4460 = $4459 ^ $4449;
+  $4461 = HEAP8[$344>>0]|0;
+  $4462 = $4461 ^ 103;
+  $4463 = $4462&255;
+  $4464 = (10176 + ($4463)|0);
+  $4465 = HEAP8[$4464>>0]|0;
+  $4466 = HEAP8[$160>>0]|0;
+  $4467 = $4466 ^ $4465;
+  $4468 = $4467&255;
+  $4469 = (12736 + ($4468<<2)|0);
+  $4470 = HEAP32[$4469>>2]|0;
+  $4471 = $4460 ^ $4470;
+  $4472 = HEAP8[$368>>0]|0;
+  $4473 = $4472 ^ -13;
+  $4474 = $4473&255;
+  $4475 = (10176 + ($4474)|0);
+  $4476 = HEAP8[$4475>>0]|0;
+  $4477 = HEAP8[$184>>0]|0;
+  $4478 = $4477 ^ $4476;
+  $4479 = $4478&255;
+  $4480 = (13760 + ($4479<<2)|0);
+  $4481 = HEAP32[$4480>>2]|0;
+  $4482 = $4471 ^ $4481;
+  $4483 = $4482 << 8;
+  $4484 = $4482 >>> 24;
+  $4485 = $4483 | $4484;
+  $4486 = (($4485) + ($4439))|0;
+  $4487 = (($4486) + ($4485))|0;
+  $4488 = ((($0)) + 4096|0);
+  HEAP32[$4488>>2] = $4486;
+  $4489 = $4487 << 9;
+  $4490 = $4487 >>> 23;
+  $4491 = $4489 | $4490;
+  $4492 = ((($0)) + 4100|0);
+  HEAP32[$4492>>2] = $4491;
+  $4493 = HEAP8[$208>>0]|0;
+  $4494 = $4493 ^ -77;
+  $4495 = $4494&255;
+  $4496 = (10432 + ($4495)|0);
+  $4497 = HEAP8[$4496>>0]|0;
+  $4498 = HEAP8[$1>>0]|0;
+  $4499 = $4498 ^ $4497;
+  $4500 = $4499&255;
+  $4501 = (10688 + ($4500<<2)|0);
+  $4502 = HEAP32[$4501>>2]|0;
+  $4503 = HEAP8[$224>>0]|0;
+  $4504 = $4503 ^ -58;
+  $4505 = $4504&255;
+  $4506 = (10432 + ($4505)|0);
+  $4507 = HEAP8[$4506>>0]|0;
+  $4508 = HEAP8[$40>>0]|0;
+  $4509 = $4508 ^ $4507;
+  $4510 = $4509&255;
+  $4511 = (11712 + ($4510<<2)|0);
+  $4512 = HEAP32[$4511>>2]|0;
+  $4513 = $4512 ^ $4502;
+  $4514 = HEAP8[$248>>0]|0;
+  $4515 = $4514 ^ -77;
+  $4516 = $4515&255;
+  $4517 = (10176 + ($4516)|0);
+  $4518 = HEAP8[$4517>>0]|0;
+  $4519 = HEAP8[$64>>0]|0;
+  $4520 = $4519 ^ $4518;
+  $4521 = $4520&255;
+  $4522 = (12736 + ($4521<<2)|0);
+  $4523 = HEAP32[$4522>>2]|0;
+  $4524 = $4513 ^ $4523;
+  $4525 = HEAP8[$272>>0]|0;
+  $4526 = $4525 ^ -58;
+  $4527 = $4526&255;
+  $4528 = (10176 + ($4527)|0);
+  $4529 = HEAP8[$4528>>0]|0;
+  $4530 = HEAP8[$88>>0]|0;
+  $4531 = $4530 ^ $4529;
+  $4532 = $4531&255;
+  $4533 = (13760 + ($4532<<2)|0);
+  $4534 = HEAP32[$4533>>2]|0;
+  $4535 = $4524 ^ $4534;
+  $4536 = HEAP8[$296>>0]|0;
+  $4537 = $4536 ^ -24;
+  $4538 = $4537&255;
+  $4539 = (10432 + ($4538)|0);
+  $4540 = HEAP8[$4539>>0]|0;
+  $4541 = HEAP8[$112>>0]|0;
+  $4542 = $4541 ^ $4540;
+  $4543 = $4542&255;
+  $4544 = (10688 + ($4543<<2)|0);
+  $4545 = HEAP32[$4544>>2]|0;
+  $4546 = HEAP8[$320>>0]|0;
+  $4547 = $4546 ^ -12;
+  $4548 = $4547&255;
+  $4549 = (10432 + ($4548)|0);
+  $4550 = HEAP8[$4549>>0]|0;
+  $4551 = HEAP8[$136>>0]|0;
+  $4552 = $4551 ^ $4550;
+  $4553 = $4552&255;
+  $4554 = (11712 + ($4553<<2)|0);
+  $4555 = HEAP32[$4554>>2]|0;
+  $4556 = $4555 ^ $4545;
+  $4557 = HEAP8[$344>>0]|0;
+  $4558 = $4557 ^ -24;
+  $4559 = $4558&255;
+  $4560 = (10176 + ($4559)|0);
+  $4561 = HEAP8[$4560>>0]|0;
+  $4562 = HEAP8[$160>>0]|0;
+  $4563 = $4562 ^ $4561;
+  $4564 = $4563&255;
+  $4565 = (12736 + ($4564<<2)|0);
+  $4566 = HEAP32[$4565>>2]|0;
+  $4567 = $4556 ^ $4566;
+  $4568 = HEAP8[$368>>0]|0;
+  $4569 = $4568 ^ -12;
+  $4570 = $4569&255;
+  $4571 = (10176 + ($4570)|0);
+  $4572 = HEAP8[$4571>>0]|0;
+  $4573 = HEAP8[$184>>0]|0;
+  $4574 = $4573 ^ $4572;
+  $4575 = $4574&255;
+  $4576 = (13760 + ($4575<<2)|0);
+  $4577 = HEAP32[$4576>>2]|0;
+  $4578 = $4567 ^ $4577;
+  $4579 = $4578 << 8;
+  $4580 = $4578 >>> 24;
+  $4581 = $4579 | $4580;
+  $4582 = (($4581) + ($4535))|0;
+  $4583 = (($4582) + ($4581))|0;
+  $4584 = ((($0)) + 4104|0);
+  HEAP32[$4584>>2] = $4582;
+  $4585 = $4583 << 9;
+  $4586 = $4583 >>> 23;
+  $4587 = $4585 | $4586;
+  $4588 = ((($0)) + 4108|0);
+  HEAP32[$4588>>2] = $4587;
+  $4589 = HEAP8[$208>>0]|0;
+  $4590 = $4589 ^ 4;
+  $4591 = $4590&255;
+  $4592 = (10432 + ($4591)|0);
+  $4593 = HEAP8[$4592>>0]|0;
+  $4594 = HEAP8[$1>>0]|0;
+  $4595 = $4594 ^ $4593;
+  $4596 = $4595&255;
+  $4597 = (10688 + ($4596<<2)|0);
+  $4598 = HEAP32[$4597>>2]|0;
+  $4599 = HEAP8[$224>>0]|0;
+  $4600 = $4599 ^ -37;
+  $4601 = $4600&255;
+  $4602 = (10432 + ($4601)|0);
+  $4603 = HEAP8[$4602>>0]|0;
+  $4604 = HEAP8[$40>>0]|0;
+  $4605 = $4604 ^ $4603;
+  $4606 = $4605&255;
+  $4607 = (11712 + ($4606<<2)|0);
+  $4608 = HEAP32[$4607>>2]|0;
+  $4609 = $4608 ^ $4598;
+  $4610 = HEAP8[$248>>0]|0;
+  $4611 = $4610 ^ 4;
+  $4612 = $4611&255;
+  $4613 = (10176 + ($4612)|0);
+  $4614 = HEAP8[$4613>>0]|0;
+  $4615 = HEAP8[$64>>0]|0;
+  $4616 = $4615 ^ $4614;
+  $4617 = $4616&255;
+  $4618 = (12736 + ($4617<<2)|0);
+  $4619 = HEAP32[$4618>>2]|0;
+  $4620 = $4609 ^ $4619;
+  $4621 = HEAP8[$272>>0]|0;
+  $4622 = $4621 ^ -37;
+  $4623 = $4622&255;
+  $4624 = (10176 + ($4623)|0);
+  $4625 = HEAP8[$4624>>0]|0;
+  $4626 = HEAP8[$88>>0]|0;
+  $4627 = $4626 ^ $4625;
+  $4628 = $4627&255;
+  $4629 = (13760 + ($4628<<2)|0);
+  $4630 = HEAP32[$4629>>2]|0;
+  $4631 = $4620 ^ $4630;
+  $4632 = HEAP8[$296>>0]|0;
+  $4633 = $4632 ^ -3;
+  $4634 = $4633&255;
+  $4635 = (10432 + ($4634)|0);
+  $4636 = HEAP8[$4635>>0]|0;
+  $4637 = HEAP8[$112>>0]|0;
+  $4638 = $4637 ^ $4636;
+  $4639 = $4638&255;
+  $4640 = (10688 + ($4639<<2)|0);
+  $4641 = HEAP32[$4640>>2]|0;
+  $4642 = HEAP8[$320>>0]|0;
+  $4643 = $4642 ^ 123;
+  $4644 = $4643&255;
+  $4645 = (10432 + ($4644)|0);
+  $4646 = HEAP8[$4645>>0]|0;
+  $4647 = HEAP8[$136>>0]|0;
+  $4648 = $4647 ^ $4646;
+  $4649 = $4648&255;
+  $4650 = (11712 + ($4649<<2)|0);
+  $4651 = HEAP32[$4650>>2]|0;
+  $4652 = $4651 ^ $4641;
+  $4653 = HEAP8[$344>>0]|0;
+  $4654 = $4653 ^ -3;
+  $4655 = $4654&255;
+  $4656 = (10176 + ($4655)|0);
+  $4657 = HEAP8[$4656>>0]|0;
+  $4658 = HEAP8[$160>>0]|0;
+  $4659 = $4658 ^ $4657;
+  $4660 = $4659&255;
+  $4661 = (12736 + ($4660<<2)|0);
+  $4662 = HEAP32[$4661>>2]|0;
+  $4663 = $4652 ^ $4662;
+  $4664 = HEAP8[$368>>0]|0;
+  $4665 = $4664 ^ 123;
+  $4666 = $4665&255;
+  $4667 = (10176 + ($4666)|0);
+  $4668 = HEAP8[$4667>>0]|0;
+  $4669 = HEAP8[$184>>0]|0;
+  $4670 = $4669 ^ $4668;
+  $4671 = $4670&255;
+  $4672 = (13760 + ($4671<<2)|0);
+  $4673 = HEAP32[$4672>>2]|0;
+  $4674 = $4663 ^ $4673;
+  $4675 = $4674 << 8;
+  $4676 = $4674 >>> 24;
+  $4677 = $4675 | $4676;
+  $4678 = (($4677) + ($4631))|0;
+  $4679 = (($4678) + ($4677))|0;
+  $4680 = ((($0)) + 4112|0);
+  HEAP32[$4680>>2] = $4678;
+  $4681 = $4679 << 9;
+  $4682 = $4679 >>> 23;
+  $4683 = $4681 | $4682;
+  $4684 = ((($0)) + 4116|0);
+  HEAP32[$4684>>2] = $4683;
+  $4685 = HEAP8[$208>>0]|0;
+  $4686 = $4685 ^ -93;
+  $4687 = $4686&255;
+  $4688 = (10432 + ($4687)|0);
+  $4689 = HEAP8[$4688>>0]|0;
+  $4690 = HEAP8[$1>>0]|0;
+  $4691 = $4690 ^ $4689;
+  $4692 = $4691&255;
+  $4693 = (10688 + ($4692<<2)|0);
+  $4694 = HEAP32[$4693>>2]|0;
+  $4695 = HEAP8[$224>>0]|0;
+  $4696 = $4695 ^ -5;
+  $4697 = $4696&255;
+  $4698 = (10432 + ($4697)|0);
+  $4699 = HEAP8[$4698>>0]|0;
+  $4700 = HEAP8[$40>>0]|0;
+  $4701 = $4700 ^ $4699;
+  $4702 = $4701&255;
+  $4703 = (11712 + ($4702<<2)|0);
+  $4704 = HEAP32[$4703>>2]|0;
+  $4705 = $4704 ^ $4694;
+  $4706 = HEAP8[$248>>0]|0;
+  $4707 = $4706 ^ -93;
+  $4708 = $4707&255;
+  $4709 = (10176 + ($4708)|0);
+  $4710 = HEAP8[$4709>>0]|0;
+  $4711 = HEAP8[$64>>0]|0;
+  $4712 = $4711 ^ $4710;
+  $4713 = $4712&255;
+  $4714 = (12736 + ($4713<<2)|0);
+  $4715 = HEAP32[$4714>>2]|0;
+  $4716 = $4705 ^ $4715;
+  $4717 = HEAP8[$272>>0]|0;
+  $4718 = $4717 ^ -5;
+  $4719 = $4718&255;
+  $4720 = (10176 + ($4719)|0);
+  $4721 = HEAP8[$4720>>0]|0;
+  $4722 = HEAP8[$88>>0]|0;
+  $4723 = $4722 ^ $4721;
+  $4724 = $4723&255;
+  $4725 = (13760 + ($4724<<2)|0);
+  $4726 = HEAP32[$4725>>2]|0;
+  $4727 = $4716 ^ $4726;
+  $4728 = HEAP8[$296>>0]|0;
+  $4729 = $4728 ^ 118;
+  $4730 = $4729&255;
+  $4731 = (10432 + ($4730)|0);
+  $4732 = HEAP8[$4731>>0]|0;
+  $4733 = HEAP8[$112>>0]|0;
+  $4734 = $4733 ^ $4732;
+  $4735 = $4734&255;
+  $4736 = (10688 + ($4735<<2)|0);
+  $4737 = HEAP32[$4736>>2]|0;
+  $4738 = HEAP8[$320>>0]|0;
+  $4739 = $4738 ^ -56;
+  $4740 = $4739&255;
+  $4741 = (10432 + ($4740)|0);
+  $4742 = HEAP8[$4741>>0]|0;
+  $4743 = HEAP8[$136>>0]|0;
+  $4744 = $4743 ^ $4742;
+  $4745 = $4744&255;
+  $4746 = (11712 + ($4745<<2)|0);
+  $4747 = HEAP32[$4746>>2]|0;
+  $4748 = $4747 ^ $4737;
+  $4749 = HEAP8[$344>>0]|0;
+  $4750 = $4749 ^ 118;
+  $4751 = $4750&255;
+  $4752 = (10176 + ($4751)|0);
+  $4753 = HEAP8[$4752>>0]|0;
+  $4754 = HEAP8[$160>>0]|0;
+  $4755 = $4754 ^ $4753;
+  $4756 = $4755&255;
+  $4757 = (12736 + ($4756<<2)|0);
+  $4758 = HEAP32[$4757>>2]|0;
+  $4759 = $4748 ^ $4758;
+  $4760 = HEAP8[$368>>0]|0;
+  $4761 = $4760 ^ -56;
+  $4762 = $4761&255;
+  $4763 = (10176 + ($4762)|0);
+  $4764 = HEAP8[$4763>>0]|0;
+  $4765 = HEAP8[$184>>0]|0;
+  $4766 = $4765 ^ $4764;
+  $4767 = $4766&255;
+  $4768 = (13760 + ($4767<<2)|0);
+  $4769 = HEAP32[$4768>>2]|0;
+  $4770 = $4759 ^ $4769;
+  $4771 = $4770 << 8;
+  $4772 = $4770 >>> 24;
+  $4773 = $4771 | $4772;
+  $4774 = (($4773) + ($4727))|0;
+  $4775 = (($4774) + ($4773))|0;
+  $4776 = ((($0)) + 4120|0);
+  HEAP32[$4776>>2] = $4774;
+  $4777 = $4775 << 9;
+  $4778 = $4775 >>> 23;
+  $4779 = $4777 | $4778;
+  $4780 = ((($0)) + 4124|0);
+  HEAP32[$4780>>2] = $4779;
+  $4781 = HEAP8[$208>>0]|0;
+  $4782 = $4781 ^ -102;
+  $4783 = $4782&255;
+  $4784 = (10432 + ($4783)|0);
+  $4785 = HEAP8[$4784>>0]|0;
+  $4786 = HEAP8[$1>>0]|0;
+  $4787 = $4786 ^ $4785;
+  $4788 = $4787&255;
+  $4789 = (10688 + ($4788<<2)|0);
+  $4790 = HEAP32[$4789>>2]|0;
+  $4791 = HEAP8[$224>>0]|0;
+  $4792 = $4791 ^ 74;
+  $4793 = $4792&255;
+  $4794 = (10432 + ($4793)|0);
+  $4795 = HEAP8[$4794>>0]|0;
+  $4796 = HEAP8[$40>>0]|0;
+  $4797 = $4796 ^ $4795;
+  $4798 = $4797&255;
+  $4799 = (11712 + ($4798<<2)|0);
+  $4800 = HEAP32[$4799>>2]|0;
+  $4801 = $4800 ^ $4790;
+  $4802 = HEAP8[$248>>0]|0;
+  $4803 = $4802 ^ -102;
+  $4804 = $4803&255;
+  $4805 = (10176 + ($4804)|0);
+  $4806 = HEAP8[$4805>>0]|0;
+  $4807 = HEAP8[$64>>0]|0;
+  $4808 = $4807 ^ $4806;
+  $4809 = $4808&255;
+  $4810 = (12736 + ($4809<<2)|0);
+  $4811 = HEAP32[$4810>>2]|0;
+  $4812 = $4801 ^ $4811;
+  $4813 = HEAP8[$272>>0]|0;
+  $4814 = $4813 ^ 74;
+  $4815 = $4814&255;
+  $4816 = (10176 + ($4815)|0);
+  $4817 = HEAP8[$4816>>0]|0;
+  $4818 = HEAP8[$88>>0]|0;
+  $4819 = $4818 ^ $4817;
+  $4820 = $4819&255;
+  $4821 = (13760 + ($4820<<2)|0);
+  $4822 = HEAP32[$4821>>2]|0;
+  $4823 = $4812 ^ $4822;
+  $4824 = HEAP8[$296>>0]|0;
+  $4825 = $4824 ^ -110;
+  $4826 = $4825&255;
+  $4827 = (10432 + ($4826)|0);
+  $4828 = HEAP8[$4827>>0]|0;
+  $4829 = HEAP8[$112>>0]|0;
+  $4830 = $4829 ^ $4828;
+  $4831 = $4830&255;
+  $4832 = (10688 + ($4831<<2)|0);
+  $4833 = HEAP32[$4832>>2]|0;
+  $4834 = HEAP8[$320>>0]|0;
+  $4835 = $4834 ^ -45;
+  $4836 = $4835&255;
+  $4837 = (10432 + ($4836)|0);
+  $4838 = HEAP8[$4837>>0]|0;
+  $4839 = HEAP8[$136>>0]|0;
+  $4840 = $4839 ^ $4838;
+  $4841 = $4840&255;
+  $4842 = (11712 + ($4841<<2)|0);
+  $4843 = HEAP32[$4842>>2]|0;
+  $4844 = $4843 ^ $4833;
+  $4845 = HEAP8[$344>>0]|0;
+  $4846 = $4845 ^ -110;
+  $4847 = $4846&255;
+  $4848 = (10176 + ($4847)|0);
+  $4849 = HEAP8[$4848>>0]|0;
+  $4850 = HEAP8[$160>>0]|0;
+  $4851 = $4850 ^ $4849;
+  $4852 = $4851&255;
+  $4853 = (12736 + ($4852<<2)|0);
+  $4854 = HEAP32[$4853>>2]|0;
+  $4855 = $4844 ^ $4854;
+  $4856 = HEAP8[$368>>0]|0;
+  $4857 = $4856 ^ -45;
+  $4858 = $4857&255;
+  $4859 = (10176 + ($4858)|0);
+  $4860 = HEAP8[$4859>>0]|0;
+  $4861 = HEAP8[$184>>0]|0;
+  $4862 = $4861 ^ $4860;
+  $4863 = $4862&255;
+  $4864 = (13760 + ($4863<<2)|0);
+  $4865 = HEAP32[$4864>>2]|0;
+  $4866 = $4855 ^ $4865;
+  $4867 = $4866 << 8;
+  $4868 = $4866 >>> 24;
+  $4869 = $4867 | $4868;
+  $4870 = (($4869) + ($4823))|0;
+  $4871 = (($4870) + ($4869))|0;
+  $4872 = ((($0)) + 4128|0);
+  HEAP32[$4872>>2] = $4870;
+  $4873 = $4871 << 9;
+  $4874 = $4871 >>> 23;
+  $4875 = $4873 | $4874;
+  $4876 = ((($0)) + 4132|0);
+  HEAP32[$4876>>2] = $4875;
+  $4877 = HEAP8[$208>>0]|0;
+  $4878 = $4877 ^ -128;
+  $4879 = $4878&255;
+  $4880 = (10432 + ($4879)|0);
+  $4881 = HEAP8[$4880>>0]|0;
+  $4882 = HEAP8[$1>>0]|0;
+  $4883 = $4882 ^ $4881;
+  $4884 = $4883&255;
+  $4885 = (10688 + ($4884<<2)|0);
+  $4886 = HEAP32[$4885>>2]|0;
+  $4887 = HEAP8[$224>>0]|0;
+  $4888 = $4887 ^ -26;
+  $4889 = $4888&255;
+  $4890 = (10432 + ($4889)|0);
+  $4891 = HEAP8[$4890>>0]|0;
+  $4892 = HEAP8[$40>>0]|0;
+  $4893 = $4892 ^ $4891;
+  $4894 = $4893&255;
+  $4895 = (11712 + ($4894<<2)|0);
+  $4896 = HEAP32[$4895>>2]|0;
+  $4897 = $4896 ^ $4886;
+  $4898 = HEAP8[$248>>0]|0;
+  $4899 = $4898 ^ -128;
+  $4900 = $4899&255;
+  $4901 = (10176 + ($4900)|0);
+  $4902 = HEAP8[$4901>>0]|0;
+  $4903 = HEAP8[$64>>0]|0;
+  $4904 = $4903 ^ $4902;
+  $4905 = $4904&255;
+  $4906 = (12736 + ($4905<<2)|0);
+  $4907 = HEAP32[$4906>>2]|0;
+  $4908 = $4897 ^ $4907;
+  $4909 = HEAP8[$272>>0]|0;
+  $4910 = $4909 ^ -26;
+  $4911 = $4910&255;
+  $4912 = (10176 + ($4911)|0);
+  $4913 = HEAP8[$4912>>0]|0;
+  $4914 = HEAP8[$88>>0]|0;
+  $4915 = $4914 ^ $4913;
+  $4916 = $4915&255;
+  $4917 = (13760 + ($4916<<2)|0);
+  $4918 = HEAP32[$4917>>2]|0;
+  $4919 = $4908 ^ $4918;
+  $4920 = HEAP8[$296>>0]|0;
+  $4921 = $4920 ^ 120;
+  $4922 = $4921&255;
+  $4923 = (10432 + ($4922)|0);
+  $4924 = HEAP8[$4923>>0]|0;
+  $4925 = HEAP8[$112>>0]|0;
+  $4926 = $4925 ^ $4924;
+  $4927 = $4926&255;
+  $4928 = (10688 + ($4927<<2)|0);
+  $4929 = HEAP32[$4928>>2]|0;
+  $4930 = HEAP8[$320>>0]|0;
+  $4931 = $4930 ^ 107;
+  $4932 = $4931&255;
+  $4933 = (10432 + ($4932)|0);
+  $4934 = HEAP8[$4933>>0]|0;
+  $4935 = HEAP8[$136>>0]|0;
+  $4936 = $4935 ^ $4934;
+  $4937 = $4936&255;
+  $4938 = (11712 + ($4937<<2)|0);
+  $4939 = HEAP32[$4938>>2]|0;
+  $4940 = $4939 ^ $4929;
+  $4941 = HEAP8[$344>>0]|0;
+  $4942 = $4941 ^ 120;
+  $4943 = $4942&255;
+  $4944 = (10176 + ($4943)|0);
+  $4945 = HEAP8[$4944>>0]|0;
+  $4946 = HEAP8[$160>>0]|0;
+  $4947 = $4946 ^ $4945;
+  $4948 = $4947&255;
+  $4949 = (12736 + ($4948<<2)|0);
+  $4950 = HEAP32[$4949>>2]|0;
+  $4951 = $4940 ^ $4950;
+  $4952 = HEAP8[$368>>0]|0;
+  $4953 = $4952 ^ 107;
+  $4954 = $4953&255;
+  $4955 = (10176 + ($4954)|0);
+  $4956 = HEAP8[$4955>>0]|0;
+  $4957 = HEAP8[$184>>0]|0;
+  $4958 = $4957 ^ $4956;
+  $4959 = $4958&255;
+  $4960 = (13760 + ($4959<<2)|0);
+  $4961 = HEAP32[$4960>>2]|0;
+  $4962 = $4951 ^ $4961;
+  $4963 = $4962 << 8;
+  $4964 = $4962 >>> 24;
+  $4965 = $4963 | $4964;
+  $4966 = (($4965) + ($4919))|0;
+  $4967 = (($4966) + ($4965))|0;
+  $4968 = ((($0)) + 4136|0);
+  HEAP32[$4968>>2] = $4966;
+  $4969 = $4967 << 9;
+  $4970 = $4967 >>> 23;
+  $4971 = $4969 | $4970;
+  $4972 = ((($0)) + 4140|0);
+  HEAP32[$4972>>2] = $4971;
+  $4973 = HEAP8[$208>>0]|0;
+  $4974 = $4973 ^ -28;
+  $4975 = $4974&255;
+  $4976 = (10432 + ($4975)|0);
+  $4977 = HEAP8[$4976>>0]|0;
+  $4978 = HEAP8[$1>>0]|0;
+  $4979 = $4978 ^ $4977;
+  $4980 = $4979&255;
+  $4981 = (10688 + ($4980<<2)|0);
+  $4982 = HEAP32[$4981>>2]|0;
+  $4983 = HEAP8[$224>>0]|0;
+  $4984 = $4983 ^ 69;
+  $4985 = $4984&255;
+  $4986 = (10432 + ($4985)|0);
+  $4987 = HEAP8[$4986>>0]|0;
+  $4988 = HEAP8[$40>>0]|0;
+  $4989 = $4988 ^ $4987;
+  $4990 = $4989&255;
+  $4991 = (11712 + ($4990<<2)|0);
+  $4992 = HEAP32[$4991>>2]|0;
+  $4993 = $4992 ^ $4982;
+  $4994 = HEAP8[$248>>0]|0;
+  $4995 = $4994 ^ -28;
+  $4996 = $4995&255;
+  $4997 = (10176 + ($4996)|0);
+  $4998 = HEAP8[$4997>>0]|0;
+  $4999 = HEAP8[$64>>0]|0;
+  $5000 = $4999 ^ $4998;
+  $5001 = $5000&255;
+  $5002 = (12736 + ($5001<<2)|0);
+  $5003 = HEAP32[$5002>>2]|0;
+  $5004 = $4993 ^ $5003;
+  $5005 = HEAP8[$272>>0]|0;
+  $5006 = $5005 ^ 69;
+  $5007 = $5006&255;
+  $5008 = (10176 + ($5007)|0);
+  $5009 = HEAP8[$5008>>0]|0;
+  $5010 = HEAP8[$88>>0]|0;
+  $5011 = $5010 ^ $5009;
+  $5012 = $5011&255;
+  $5013 = (13760 + ($5012<<2)|0);
+  $5014 = HEAP32[$5013>>2]|0;
+  $5015 = $5004 ^ $5014;
+  $5016 = HEAP8[$296>>0]|0;
+  $5017 = $5016 ^ -35;
+  $5018 = $5017&255;
+  $5019 = (10432 + ($5018)|0);
+  $5020 = HEAP8[$5019>>0]|0;
+  $5021 = HEAP8[$112>>0]|0;
+  $5022 = $5021 ^ $5020;
+  $5023 = $5022&255;
+  $5024 = (10688 + ($5023<<2)|0);
+  $5025 = HEAP32[$5024>>2]|0;
+  $5026 = HEAP8[$320>>0]|0;
+  $5027 = $5026 ^ 125;
+  $5028 = $5027&255;
+  $5029 = (10432 + ($5028)|0);
+  $5030 = HEAP8[$5029>>0]|0;
+  $5031 = HEAP8[$136>>0]|0;
+  $5032 = $5031 ^ $5030;
+  $5033 = $5032&255;
+  $5034 = (11712 + ($5033<<2)|0);
+  $5035 = HEAP32[$5034>>2]|0;
+  $5036 = $5035 ^ $5025;
+  $5037 = HEAP8[$344>>0]|0;
+  $5038 = $5037 ^ -35;
+  $5039 = $5038&255;
+  $5040 = (10176 + ($5039)|0);
+  $5041 = HEAP8[$5040>>0]|0;
+  $5042 = HEAP8[$160>>0]|0;
+  $5043 = $5042 ^ $5041;
+  $5044 = $5043&255;
+  $5045 = (12736 + ($5044<<2)|0);
+  $5046 = HEAP32[$5045>>2]|0;
+  $5047 = $5036 ^ $5046;
+  $5048 = HEAP8[$368>>0]|0;
+  $5049 = $5048 ^ 125;
+  $5050 = $5049&255;
+  $5051 = (10176 + ($5050)|0);
+  $5052 = HEAP8[$5051>>0]|0;
+  $5053 = HEAP8[$184>>0]|0;
+  $5054 = $5053 ^ $5052;
+  $5055 = $5054&255;
+  $5056 = (13760 + ($5055<<2)|0);
+  $5057 = HEAP32[$5056>>2]|0;
+  $5058 = $5047 ^ $5057;
+  $5059 = $5058 << 8;
+  $5060 = $5058 >>> 24;
+  $5061 = $5059 | $5060;
+  $5062 = (($5061) + ($5015))|0;
+  $5063 = (($5062) + ($5061))|0;
+  $5064 = ((($0)) + 4144|0);
+  HEAP32[$5064>>2] = $5062;
+  $5065 = $5063 << 9;
+  $5066 = $5063 >>> 23;
+  $5067 = $5065 | $5066;
+  $5068 = ((($0)) + 4148|0);
+  HEAP32[$5068>>2] = $5067;
+  $5069 = HEAP8[$208>>0]|0;
+  $5070 = $5069 ^ -47;
+  $5071 = $5070&255;
+  $5072 = (10432 + ($5071)|0);
+  $5073 = HEAP8[$5072>>0]|0;
+  $5074 = HEAP8[$1>>0]|0;
+  $5075 = $5074 ^ $5073;
+  $5076 = $5075&255;
+  $5077 = (10688 + ($5076<<2)|0);
+  $5078 = HEAP32[$5077>>2]|0;
+  $5079 = HEAP8[$224>>0]|0;
+  $5080 = $5079 ^ -24;
+  $5081 = $5080&255;
+  $5082 = (10432 + ($5081)|0);
+  $5083 = HEAP8[$5082>>0]|0;
+  $5084 = HEAP8[$40>>0]|0;
+  $5085 = $5084 ^ $5083;
+  $5086 = $5085&255;
+  $5087 = (11712 + ($5086<<2)|0);
+  $5088 = HEAP32[$5087>>2]|0;
+  $5089 = $5088 ^ $5078;
+  $5090 = HEAP8[$248>>0]|0;
+  $5091 = $5090 ^ -47;
+  $5092 = $5091&255;
+  $5093 = (10176 + ($5092)|0);
+  $5094 = HEAP8[$5093>>0]|0;
+  $5095 = HEAP8[$64>>0]|0;
+  $5096 = $5095 ^ $5094;
+  $5097 = $5096&255;
+  $5098 = (12736 + ($5097<<2)|0);
+  $5099 = HEAP32[$5098>>2]|0;
+  $5100 = $5089 ^ $5099;
+  $5101 = HEAP8[$272>>0]|0;
+  $5102 = $5101 ^ -24;
+  $5103 = $5102&255;
+  $5104 = (10176 + ($5103)|0);
+  $5105 = HEAP8[$5104>>0]|0;
+  $5106 = HEAP8[$88>>0]|0;
+  $5107 = $5106 ^ $5105;
+  $5108 = $5107&255;
+  $5109 = (13760 + ($5108<<2)|0);
+  $5110 = HEAP32[$5109>>2]|0;
+  $5111 = $5100 ^ $5110;
+  $5112 = HEAP8[$296>>0]|0;
+  $5113 = $5112 ^ 56;
+  $5114 = $5113&255;
+  $5115 = (10432 + ($5114)|0);
+  $5116 = HEAP8[$5115>>0]|0;
+  $5117 = HEAP8[$112>>0]|0;
+  $5118 = $5117 ^ $5116;
+  $5119 = $5118&255;
+  $5120 = (10688 + ($5119<<2)|0);
+  $5121 = HEAP32[$5120>>2]|0;
+  $5122 = HEAP8[$320>>0]|0;
+  $5123 = $5122 ^ 75;
+  $5124 = $5123&255;
+  $5125 = (10432 + ($5124)|0);
+  $5126 = HEAP8[$5125>>0]|0;
+  $5127 = HEAP8[$136>>0]|0;
+  $5128 = $5127 ^ $5126;
+  $5129 = $5128&255;
+  $5130 = (11712 + ($5129<<2)|0);
+  $5131 = HEAP32[$5130>>2]|0;
+  $5132 = $5131 ^ $5121;
+  $5133 = HEAP8[$344>>0]|0;
+  $5134 = $5133 ^ 56;
+  $5135 = $5134&255;
+  $5136 = (10176 + ($5135)|0);
+  $5137 = HEAP8[$5136>>0]|0;
+  $5138 = HEAP8[$160>>0]|0;
+  $5139 = $5138 ^ $5137;
+  $5140 = $5139&255;
+  $5141 = (12736 + ($5140<<2)|0);
+  $5142 = HEAP32[$5141>>2]|0;
+  $5143 = $5132 ^ $5142;
+  $5144 = HEAP8[$368>>0]|0;
+  $5145 = $5144 ^ 75;
+  $5146 = $5145&255;
+  $5147 = (10176 + ($5146)|0);
+  $5148 = HEAP8[$5147>>0]|0;
+  $5149 = HEAP8[$184>>0]|0;
+  $5150 = $5149 ^ $5148;
+  $5151 = $5150&255;
+  $5152 = (13760 + ($5151<<2)|0);
+  $5153 = HEAP32[$5152>>2]|0;
+  $5154 = $5143 ^ $5153;
+  $5155 = $5154 << 8;
+  $5156 = $5154 >>> 24;
+  $5157 = $5155 | $5156;
+  $5158 = (($5157) + ($5111))|0;
+  $5159 = (($5158) + ($5157))|0;
+  $5160 = ((($0)) + 4152|0);
+  HEAP32[$5160>>2] = $5158;
+  $5161 = $5159 << 9;
+  $5162 = $5159 >>> 23;
+  $5163 = $5161 | $5162;
+  $5164 = ((($0)) + 4156|0);
+  HEAP32[$5164>>2] = $5163;
+  $5165 = HEAP8[$208>>0]|0;
+  $5166 = $5165 ^ 13;
+  $5167 = $5166&255;
+  $5168 = (10432 + ($5167)|0);
+  $5169 = HEAP8[$5168>>0]|0;
+  $5170 = HEAP8[$1>>0]|0;
+  $5171 = $5170 ^ $5169;
+  $5172 = $5171&255;
+  $5173 = (10688 + ($5172<<2)|0);
+  $5174 = HEAP32[$5173>>2]|0;
+  $5175 = HEAP8[$224>>0]|0;
+  $5176 = $5175 ^ -42;
+  $5177 = $5176&255;
+  $5178 = (10432 + ($5177)|0);
+  $5179 = HEAP8[$5178>>0]|0;
+  $5180 = HEAP8[$40>>0]|0;
+  $5181 = $5180 ^ $5179;
+  $5182 = $5181&255;
+  $5183 = (11712 + ($5182<<2)|0);
+  $5184 = HEAP32[$5183>>2]|0;
+  $5185 = $5184 ^ $5174;
+  $5186 = HEAP8[$248>>0]|0;
+  $5187 = $5186 ^ 13;
+  $5188 = $5187&255;
+  $5189 = (10176 + ($5188)|0);
+  $5190 = HEAP8[$5189>>0]|0;
+  $5191 = HEAP8[$64>>0]|0;
+  $5192 = $5191 ^ $5190;
+  $5193 = $5192&255;
+  $5194 = (12736 + ($5193<<2)|0);
+  $5195 = HEAP32[$5194>>2]|0;
+  $5196 = $5185 ^ $5195;
+  $5197 = HEAP8[$272>>0]|0;
+  $5198 = $5197 ^ -42;
+  $5199 = $5198&255;
+  $5200 = (10176 + ($5199)|0);
+  $5201 = HEAP8[$5200>>0]|0;
+  $5202 = HEAP8[$88>>0]|0;
+  $5203 = $5202 ^ $5201;
+  $5204 = $5203&255;
+  $5205 = (13760 + ($5204<<2)|0);
+  $5206 = HEAP32[$5205>>2]|0;
+  $5207 = $5196 ^ $5206;
+  $5208 = HEAP8[$296>>0]|0;
+  $5209 = $5208 ^ -58;
+  $5210 = $5209&255;
+  $5211 = (10432 + ($5210)|0);
+  $5212 = HEAP8[$5211>>0]|0;
+  $5213 = HEAP8[$112>>0]|0;
+  $5214 = $5213 ^ $5212;
+  $5215 = $5214&255;
+  $5216 = (10688 + ($5215<<2)|0);
+  $5217 = HEAP32[$5216>>2]|0;
+  $5218 = HEAP8[$320>>0]|0;
+  $5219 = $5218 ^ 50;
+  $5220 = $5219&255;
+  $5221 = (10432 + ($5220)|0);
+  $5222 = HEAP8[$5221>>0]|0;
+  $5223 = HEAP8[$136>>0]|0;
+  $5224 = $5223 ^ $5222;
+  $5225 = $5224&255;
+  $5226 = (11712 + ($5225<<2)|0);
+  $5227 = HEAP32[$5226>>2]|0;
+  $5228 = $5227 ^ $5217;
+  $5229 = HEAP8[$344>>0]|0;
+  $5230 = $5229 ^ -58;
+  $5231 = $5230&255;
+  $5232 = (10176 + ($5231)|0);
+  $5233 = HEAP8[$5232>>0]|0;
+  $5234 = HEAP8[$160>>0]|0;
+  $5235 = $5234 ^ $5233;
+  $5236 = $5235&255;
+  $5237 = (12736 + ($5236<<2)|0);
+  $5238 = HEAP32[$5237>>2]|0;
+  $5239 = $5228 ^ $5238;
+  $5240 = HEAP8[$368>>0]|0;
+  $5241 = $5240 ^ 50;
+  $5242 = $5241&255;
+  $5243 = (10176 + ($5242)|0);
+  $5244 = HEAP8[$5243>>0]|0;
+  $5245 = HEAP8[$184>>0]|0;
+  $5246 = $5245 ^ $5244;
+  $5247 = $5246&255;
+  $5248 = (13760 + ($5247<<2)|0);
+  $5249 = HEAP32[$5248>>2]|0;
+  $5250 = $5239 ^ $5249;
+  $5251 = $5250 << 8;
+  $5252 = $5250 >>> 24;
+  $5253 = $5251 | $5252;
+  $5254 = (($5253) + ($5207))|0;
+  $5255 = (($5254) + ($5253))|0;
+  $5256 = ((($0)) + 4160|0);
+  HEAP32[$5256>>2] = $5254;
+  $5257 = $5255 << 9;
+  $5258 = $5255 >>> 23;
+  $5259 = $5257 | $5258;
+  $5260 = ((($0)) + 4164|0);
+  HEAP32[$5260>>2] = $5259;
+  $5261 = HEAP8[$208>>0]|0;
+  $5262 = $5261 ^ 53;
+  $5263 = $5262&255;
+  $5264 = (10432 + ($5263)|0);
+  $5265 = HEAP8[$5264>>0]|0;
+  $5266 = HEAP8[$1>>0]|0;
+  $5267 = $5266 ^ $5265;
+  $5268 = $5267&255;
+  $5269 = (10688 + ($5268<<2)|0);
+  $5270 = HEAP32[$5269>>2]|0;
+  $5271 = HEAP8[$224>>0]|0;
+  $5272 = $5271 ^ -40;
+  $5273 = $5272&255;
+  $5274 = (10432 + ($5273)|0);
+  $5275 = HEAP8[$5274>>0]|0;
+  $5276 = HEAP8[$40>>0]|0;
+  $5277 = $5276 ^ $5275;
+  $5278 = $5277&255;
+  $5279 = (11712 + ($5278<<2)|0);
+  $5280 = HEAP32[$5279>>2]|0;
+  $5281 = $5280 ^ $5270;
+  $5282 = HEAP8[$248>>0]|0;
+  $5283 = $5282 ^ 53;
+  $5284 = $5283&255;
+  $5285 = (10176 + ($5284)|0);
+  $5286 = HEAP8[$5285>>0]|0;
+  $5287 = HEAP8[$64>>0]|0;
+  $5288 = $5287 ^ $5286;
+  $5289 = $5288&255;
+  $5290 = (12736 + ($5289<<2)|0);
+  $5291 = HEAP32[$5290>>2]|0;
+  $5292 = $5281 ^ $5291;
+  $5293 = HEAP8[$272>>0]|0;
+  $5294 = $5293 ^ -40;
+  $5295 = $5294&255;
+  $5296 = (10176 + ($5295)|0);
+  $5297 = HEAP8[$5296>>0]|0;
+  $5298 = HEAP8[$88>>0]|0;
+  $5299 = $5298 ^ $5297;
+  $5300 = $5299&255;
+  $5301 = (13760 + ($5300<<2)|0);
+  $5302 = HEAP32[$5301>>2]|0;
+  $5303 = $5292 ^ $5302;
+  $5304 = HEAP8[$296>>0]|0;
+  $5305 = $5304 ^ -104;
+  $5306 = $5305&255;
+  $5307 = (10432 + ($5306)|0);
+  $5308 = HEAP8[$5307>>0]|0;
+  $5309 = HEAP8[$112>>0]|0;
+  $5310 = $5309 ^ $5308;
+  $5311 = $5310&255;
+  $5312 = (10688 + ($5311<<2)|0);
+  $5313 = HEAP32[$5312>>2]|0;
+  $5314 = HEAP8[$320>>0]|0;
+  $5315 = $5314 ^ -3;
+  $5316 = $5315&255;
+  $5317 = (10432 + ($5316)|0);
+  $5318 = HEAP8[$5317>>0]|0;
+  $5319 = HEAP8[$136>>0]|0;
+  $5320 = $5319 ^ $5318;
+  $5321 = $5320&255;
+  $5322 = (11712 + ($5321<<2)|0);
+  $5323 = HEAP32[$5322>>2]|0;
+  $5324 = $5323 ^ $5313;
+  $5325 = HEAP8[$344>>0]|0;
+  $5326 = $5325 ^ -104;
+  $5327 = $5326&255;
+  $5328 = (10176 + ($5327)|0);
+  $5329 = HEAP8[$5328>>0]|0;
+  $5330 = HEAP8[$160>>0]|0;
+  $5331 = $5330 ^ $5329;
+  $5332 = $5331&255;
+  $5333 = (12736 + ($5332<<2)|0);
+  $5334 = HEAP32[$5333>>2]|0;
+  $5335 = $5324 ^ $5334;
+  $5336 = HEAP8[$368>>0]|0;
+  $5337 = $5336 ^ -3;
+  $5338 = $5337&255;
+  $5339 = (10176 + ($5338)|0);
+  $5340 = HEAP8[$5339>>0]|0;
+  $5341 = HEAP8[$184>>0]|0;
+  $5342 = $5341 ^ $5340;
+  $5343 = $5342&255;
+  $5344 = (13760 + ($5343<<2)|0);
+  $5345 = HEAP32[$5344>>2]|0;
+  $5346 = $5335 ^ $5345;
+  $5347 = $5346 << 8;
+  $5348 = $5346 >>> 24;
+  $5349 = $5347 | $5348;
+  $5350 = (($5349) + ($5303))|0;
+  $5351 = (($5350) + ($5349))|0;
+  $5352 = ((($0)) + 4168|0);
+  HEAP32[$5352>>2] = $5350;
+  $5353 = $5351 << 9;
+  $5354 = $5351 >>> 23;
+  $5355 = $5353 | $5354;
+  $5356 = ((($0)) + 4172|0);
+  HEAP32[$5356>>2] = $5355;
+  $5357 = HEAP8[$208>>0]|0;
+  $5358 = $5357 ^ 24;
+  $5359 = $5358&255;
+  $5360 = (10432 + ($5359)|0);
+  $5361 = HEAP8[$5360>>0]|0;
+  $5362 = HEAP8[$1>>0]|0;
+  $5363 = $5362 ^ $5361;
+  $5364 = $5363&255;
+  $5365 = (10688 + ($5364<<2)|0);
+  $5366 = HEAP32[$5365>>2]|0;
+  $5367 = HEAP8[$224>>0]|0;
+  $5368 = $5367 ^ 55;
+  $5369 = $5368&255;
+  $5370 = (10432 + ($5369)|0);
+  $5371 = HEAP8[$5370>>0]|0;
+  $5372 = HEAP8[$40>>0]|0;
+  $5373 = $5372 ^ $5371;
+  $5374 = $5373&255;
+  $5375 = (11712 + ($5374<<2)|0);
+  $5376 = HEAP32[$5375>>2]|0;
+  $5377 = $5376 ^ $5366;
+  $5378 = HEAP8[$248>>0]|0;
+  $5379 = $5378 ^ 24;
+  $5380 = $5379&255;
+  $5381 = (10176 + ($5380)|0);
+  $5382 = HEAP8[$5381>>0]|0;
+  $5383 = HEAP8[$64>>0]|0;
+  $5384 = $5383 ^ $5382;
+  $5385 = $5384&255;
+  $5386 = (12736 + ($5385<<2)|0);
+  $5387 = HEAP32[$5386>>2]|0;
+  $5388 = $5377 ^ $5387;
+  $5389 = HEAP8[$272>>0]|0;
+  $5390 = $5389 ^ 55;
+  $5391 = $5390&255;
+  $5392 = (10176 + ($5391)|0);
+  $5393 = HEAP8[$5392>>0]|0;
+  $5394 = HEAP8[$88>>0]|0;
+  $5395 = $5394 ^ $5393;
+  $5396 = $5395&255;
+  $5397 = (13760 + ($5396<<2)|0);
+  $5398 = HEAP32[$5397>>2]|0;
+  $5399 = $5388 ^ $5398;
+  $5400 = HEAP8[$296>>0]|0;
+  $5401 = $5400 ^ -9;
+  $5402 = $5401&255;
+  $5403 = (10432 + ($5402)|0);
+  $5404 = HEAP8[$5403>>0]|0;
+  $5405 = HEAP8[$112>>0]|0;
+  $5406 = $5405 ^ $5404;
+  $5407 = $5406&255;
+  $5408 = (10688 + ($5407<<2)|0);
+  $5409 = HEAP32[$5408>>2]|0;
+  $5410 = HEAP8[$320>>0]|0;
+  $5411 = $5410 ^ 113;
+  $5412 = $5411&255;
+  $5413 = (10432 + ($5412)|0);
+  $5414 = HEAP8[$5413>>0]|0;
+  $5415 = HEAP8[$136>>0]|0;
+  $5416 = $5415 ^ $5414;
+  $5417 = $5416&255;
+  $5418 = (11712 + ($5417<<2)|0);
+  $5419 = HEAP32[$5418>>2]|0;
+  $5420 = $5419 ^ $5409;
+  $5421 = HEAP8[$344>>0]|0;
+  $5422 = $5421 ^ -9;
+  $5423 = $5422&255;
+  $5424 = (10176 + ($5423)|0);
+  $5425 = HEAP8[$5424>>0]|0;
+  $5426 = HEAP8[$160>>0]|0;
+  $5427 = $5426 ^ $5425;
+  $5428 = $5427&255;
+  $5429 = (12736 + ($5428<<2)|0);
+  $5430 = HEAP32[$5429>>2]|0;
+  $5431 = $5420 ^ $5430;
+  $5432 = HEAP8[$368>>0]|0;
+  $5433 = $5432 ^ 113;
+  $5434 = $5433&255;
+  $5435 = (10176 + ($5434)|0);
+  $5436 = HEAP8[$5435>>0]|0;
+  $5437 = HEAP8[$184>>0]|0;
+  $5438 = $5437 ^ $5436;
+  $5439 = $5438&255;
+  $5440 = (13760 + ($5439<<2)|0);
+  $5441 = HEAP32[$5440>>2]|0;
+  $5442 = $5431 ^ $5441;
+  $5443 = $5442 << 8;
+  $5444 = $5442 >>> 24;
+  $5445 = $5443 | $5444;
+  $5446 = (($5445) + ($5399))|0;
+  $5447 = (($5446) + ($5445))|0;
+  $5448 = ((($0)) + 4176|0);
+  HEAP32[$5448>>2] = $5446;
+  $5449 = $5447 << 9;
+  $5450 = $5447 >>> 23;
+  $5451 = $5449 | $5450;
+  $5452 = ((($0)) + 4180|0);
+  HEAP32[$5452>>2] = $5451;
+  $5453 = HEAP8[$208>>0]|0;
+  $5454 = $5453 ^ -20;
+  $5455 = $5454&255;
+  $5456 = (10432 + ($5455)|0);
+  $5457 = HEAP8[$5456>>0]|0;
+  $5458 = HEAP8[$1>>0]|0;
+  $5459 = $5458 ^ $5457;
+  $5460 = $5459&255;
+  $5461 = (10688 + ($5460<<2)|0);
+  $5462 = HEAP32[$5461>>2]|0;
+  $5463 = HEAP8[$224>>0]|0;
+  $5464 = $5463 ^ -15;
+  $5465 = $5464&255;
+  $5466 = (10432 + ($5465)|0);
+  $5467 = HEAP8[$5466>>0]|0;
+  $5468 = HEAP8[$40>>0]|0;
+  $5469 = $5468 ^ $5467;
+  $5470 = $5469&255;
+  $5471 = (11712 + ($5470<<2)|0);
+  $5472 = HEAP32[$5471>>2]|0;
+  $5473 = $5472 ^ $5462;
+  $5474 = HEAP8[$248>>0]|0;
+  $5475 = $5474 ^ -20;
+  $5476 = $5475&255;
+  $5477 = (10176 + ($5476)|0);
+  $5478 = HEAP8[$5477>>0]|0;
+  $5479 = HEAP8[$64>>0]|0;
+  $5480 = $5479 ^ $5478;
+  $5481 = $5480&255;
+  $5482 = (12736 + ($5481<<2)|0);
+  $5483 = HEAP32[$5482>>2]|0;
+  $5484 = $5473 ^ $5483;
+  $5485 = HEAP8[$272>>0]|0;
+  $5486 = $5485 ^ -15;
+  $5487 = $5486&255;
+  $5488 = (10176 + ($5487)|0);
+  $5489 = HEAP8[$5488>>0]|0;
+  $5490 = HEAP8[$88>>0]|0;
+  $5491 = $5490 ^ $5489;
+  $5492 = $5491&255;
+  $5493 = (13760 + ($5492<<2)|0);
+  $5494 = HEAP32[$5493>>2]|0;
+  $5495 = $5484 ^ $5494;
+  $5496 = HEAP8[$296>>0]|0;
+  $5497 = $5496 ^ 108;
+  $5498 = $5497&255;
+  $5499 = (10432 + ($5498)|0);
+  $5500 = HEAP8[$5499>>0]|0;
+  $5501 = HEAP8[$112>>0]|0;
+  $5502 = $5501 ^ $5500;
+  $5503 = $5502&255;
+  $5504 = (10688 + ($5503<<2)|0);
+  $5505 = HEAP32[$5504>>2]|0;
+  $5506 = HEAP8[$320>>0]|0;
+  $5507 = $5506 ^ -31;
+  $5508 = $5507&255;
+  $5509 = (10432 + ($5508)|0);
+  $5510 = HEAP8[$5509>>0]|0;
+  $5511 = HEAP8[$136>>0]|0;
+  $5512 = $5511 ^ $5510;
+  $5513 = $5512&255;
+  $5514 = (11712 + ($5513<<2)|0);
+  $5515 = HEAP32[$5514>>2]|0;
+  $5516 = $5515 ^ $5505;
+  $5517 = HEAP8[$344>>0]|0;
+  $5518 = $5517 ^ 108;
+  $5519 = $5518&255;
+  $5520 = (10176 + ($5519)|0);
+  $5521 = HEAP8[$5520>>0]|0;
+  $5522 = HEAP8[$160>>0]|0;
+  $5523 = $5522 ^ $5521;
+  $5524 = $5523&255;
+  $5525 = (12736 + ($5524<<2)|0);
+  $5526 = HEAP32[$5525>>2]|0;
+  $5527 = $5516 ^ $5526;
+  $5528 = HEAP8[$368>>0]|0;
+  $5529 = $5528 ^ -31;
+  $5530 = $5529&255;
+  $5531 = (10176 + ($5530)|0);
+  $5532 = HEAP8[$5531>>0]|0;
+  $5533 = HEAP8[$184>>0]|0;
+  $5534 = $5533 ^ $5532;
+  $5535 = $5534&255;
+  $5536 = (13760 + ($5535<<2)|0);
+  $5537 = HEAP32[$5536>>2]|0;
+  $5538 = $5527 ^ $5537;
+  $5539 = $5538 << 8;
+  $5540 = $5538 >>> 24;
+  $5541 = $5539 | $5540;
+  $5542 = (($5541) + ($5495))|0;
+  $5543 = (($5542) + ($5541))|0;
+  $5544 = ((($0)) + 4184|0);
+  HEAP32[$5544>>2] = $5542;
+  $5545 = $5543 << 9;
+  $5546 = $5543 >>> 23;
+  $5547 = $5545 | $5546;
+  $5548 = ((($0)) + 4188|0);
+  HEAP32[$5548>>2] = $5547;
+  $5549 = HEAP8[$208>>0]|0;
+  $5550 = $5549 ^ 67;
+  $5551 = $5550&255;
+  $5552 = (10432 + ($5551)|0);
+  $5553 = HEAP8[$5552>>0]|0;
+  $5554 = HEAP8[$1>>0]|0;
+  $5555 = $5554 ^ $5553;
+  $5556 = $5555&255;
+  $5557 = (10688 + ($5556<<2)|0);
+  $5558 = HEAP32[$5557>>2]|0;
+  $5559 = HEAP8[$224>>0]|0;
+  $5560 = $5559 ^ 48;
+  $5561 = $5560&255;
+  $5562 = (10432 + ($5561)|0);
+  $5563 = HEAP8[$5562>>0]|0;
+  $5564 = HEAP8[$40>>0]|0;
+  $5565 = $5564 ^ $5563;
+  $5566 = $5565&255;
+  $5567 = (11712 + ($5566<<2)|0);
+  $5568 = HEAP32[$5567>>2]|0;
+  $5569 = $5568 ^ $5558;
+  $5570 = HEAP8[$248>>0]|0;
+  $5571 = $5570 ^ 67;
+  $5572 = $5571&255;
+  $5573 = (10176 + ($5572)|0);
+  $5574 = HEAP8[$5573>>0]|0;
+  $5575 = HEAP8[$64>>0]|0;
+  $5576 = $5575 ^ $5574;
+  $5577 = $5576&255;
+  $5578 = (12736 + ($5577<<2)|0);
+  $5579 = HEAP32[$5578>>2]|0;
+  $5580 = $5569 ^ $5579;
+  $5581 = HEAP8[$272>>0]|0;
+  $5582 = $5581 ^ 48;
+  $5583 = $5582&255;
+  $5584 = (10176 + ($5583)|0);
+  $5585 = HEAP8[$5584>>0]|0;
+  $5586 = HEAP8[$88>>0]|0;
+  $5587 = $5586 ^ $5585;
+  $5588 = $5587&255;
+  $5589 = (13760 + ($5588<<2)|0);
+  $5590 = HEAP32[$5589>>2]|0;
+  $5591 = $5580 ^ $5590;
+  $5592 = HEAP8[$296>>0]|0;
+  $5593 = $5592 ^ 117;
+  $5594 = $5593&255;
+  $5595 = (10432 + ($5594)|0);
+  $5596 = HEAP8[$5595>>0]|0;
+  $5597 = HEAP8[$112>>0]|0;
+  $5598 = $5597 ^ $5596;
+  $5599 = $5598&255;
+  $5600 = (10688 + ($5599<<2)|0);
+  $5601 = HEAP32[$5600>>2]|0;
+  $5602 = HEAP8[$320>>0]|0;
+  $5603 = $5602 ^ 15;
+  $5604 = $5603&255;
+  $5605 = (10432 + ($5604)|0);
+  $5606 = HEAP8[$5605>>0]|0;
+  $5607 = HEAP8[$136>>0]|0;
+  $5608 = $5607 ^ $5606;
+  $5609 = $5608&255;
+  $5610 = (11712 + ($5609<<2)|0);
+  $5611 = HEAP32[$5610>>2]|0;
+  $5612 = $5611 ^ $5601;
+  $5613 = HEAP8[$344>>0]|0;
+  $5614 = $5613 ^ 117;
+  $5615 = $5614&255;
+  $5616 = (10176 + ($5615)|0);
+  $5617 = HEAP8[$5616>>0]|0;
+  $5618 = HEAP8[$160>>0]|0;
+  $5619 = $5618 ^ $5617;
+  $5620 = $5619&255;
+  $5621 = (12736 + ($5620<<2)|0);
+  $5622 = HEAP32[$5621>>2]|0;
+  $5623 = $5612 ^ $5622;
+  $5624 = HEAP8[$368>>0]|0;
+  $5625 = $5624 ^ 15;
+  $5626 = $5625&255;
+  $5627 = (10176 + ($5626)|0);
+  $5628 = HEAP8[$5627>>0]|0;
+  $5629 = HEAP8[$184>>0]|0;
+  $5630 = $5629 ^ $5628;
+  $5631 = $5630&255;
+  $5632 = (13760 + ($5631<<2)|0);
+  $5633 = HEAP32[$5632>>2]|0;
+  $5634 = $5623 ^ $5633;
+  $5635 = $5634 << 8;
+  $5636 = $5634 >>> 24;
+  $5637 = $5635 | $5636;
+  $5638 = (($5637) + ($5591))|0;
+  $5639 = (($5638) + ($5637))|0;
+  $5640 = ((($0)) + 4192|0);
+  HEAP32[$5640>>2] = $5638;
+  $5641 = $5639 << 9;
+  $5642 = $5639 >>> 23;
+  $5643 = $5641 | $5642;
+  $5644 = ((($0)) + 4196|0);
+  HEAP32[$5644>>2] = $5643;
+  $5645 = HEAP8[$208>>0]|0;
+  $5646 = $5645 ^ 55;
+  $5647 = $5646&255;
+  $5648 = (10432 + ($5647)|0);
+  $5649 = HEAP8[$5648>>0]|0;
+  $5650 = HEAP8[$1>>0]|0;
+  $5651 = $5650 ^ $5649;
+  $5652 = $5651&255;
+  $5653 = (10688 + ($5652<<2)|0);
+  $5654 = HEAP32[$5653>>2]|0;
+  $5655 = HEAP8[$224>>0]|0;
+  $5656 = $5655 ^ -8;
+  $5657 = $5656&255;
+  $5658 = (10432 + ($5657)|0);
+  $5659 = HEAP8[$5658>>0]|0;
+  $5660 = HEAP8[$40>>0]|0;
+  $5661 = $5660 ^ $5659;
+  $5662 = $5661&255;
+  $5663 = (11712 + ($5662<<2)|0);
+  $5664 = HEAP32[$5663>>2]|0;
+  $5665 = $5664 ^ $5654;
+  $5666 = HEAP8[$248>>0]|0;
+  $5667 = $5666 ^ 55;
+  $5668 = $5667&255;
+  $5669 = (10176 + ($5668)|0);
+  $5670 = HEAP8[$5669>>0]|0;
+  $5671 = HEAP8[$64>>0]|0;
+  $5672 = $5671 ^ $5670;
+  $5673 = $5672&255;
+  $5674 = (12736 + ($5673<<2)|0);
+  $5675 = HEAP32[$5674>>2]|0;
+  $5676 = $5665 ^ $5675;
+  $5677 = HEAP8[$272>>0]|0;
+  $5678 = $5677 ^ -8;
+  $5679 = $5678&255;
+  $5680 = (10176 + ($5679)|0);
+  $5681 = HEAP8[$5680>>0]|0;
+  $5682 = HEAP8[$88>>0]|0;
+  $5683 = $5682 ^ $5681;
+  $5684 = $5683&255;
+  $5685 = (13760 + ($5684<<2)|0);
+  $5686 = HEAP32[$5685>>2]|0;
+  $5687 = $5676 ^ $5686;
+  $5688 = HEAP8[$296>>0]|0;
+  $5689 = $5688 ^ 38;
+  $5690 = $5689&255;
+  $5691 = (10432 + ($5690)|0);
+  $5692 = HEAP8[$5691>>0]|0;
+  $5693 = HEAP8[$112>>0]|0;
+  $5694 = $5693 ^ $5692;
+  $5695 = $5694&255;
+  $5696 = (10688 + ($5695<<2)|0);
+  $5697 = HEAP32[$5696>>2]|0;
+  $5698 = HEAP8[$320>>0]|0;
+  $5699 = $5698 ^ 27;
+  $5700 = $5699&255;
+  $5701 = (10432 + ($5700)|0);
+  $5702 = HEAP8[$5701>>0]|0;
+  $5703 = HEAP8[$136>>0]|0;
+  $5704 = $5703 ^ $5702;
+  $5705 = $5704&255;
+  $5706 = (11712 + ($5705<<2)|0);
+  $5707 = HEAP32[$5706>>2]|0;
+  $5708 = $5707 ^ $5697;
+  $5709 = HEAP8[$344>>0]|0;
+  $5710 = $5709 ^ 38;
+  $5711 = $5710&255;
+  $5712 = (10176 + ($5711)|0);
+  $5713 = HEAP8[$5712>>0]|0;
+  $5714 = HEAP8[$160>>0]|0;
+  $5715 = $5714 ^ $5713;
+  $5716 = $5715&255;
+  $5717 = (12736 + ($5716<<2)|0);
+  $5718 = HEAP32[$5717>>2]|0;
+  $5719 = $5708 ^ $5718;
+  $5720 = HEAP8[$368>>0]|0;
+  $5721 = $5720 ^ 27;
+  $5722 = $5721&255;
+  $5723 = (10176 + ($5722)|0);
+  $5724 = HEAP8[$5723>>0]|0;
+  $5725 = HEAP8[$184>>0]|0;
+  $5726 = $5725 ^ $5724;
+  $5727 = $5726&255;
+  $5728 = (13760 + ($5727<<2)|0);
+  $5729 = HEAP32[$5728>>2]|0;
+  $5730 = $5719 ^ $5729;
+  $5731 = $5730 << 8;
+  $5732 = $5730 >>> 24;
+  $5733 = $5731 | $5732;
+  $5734 = (($5733) + ($5687))|0;
+  $5735 = (($5734) + ($5733))|0;
+  $5736 = ((($0)) + 4200|0);
+  HEAP32[$5736>>2] = $5734;
+  $5737 = $5735 << 9;
+  $5738 = $5735 >>> 23;
+  $5739 = $5737 | $5738;
+  $5740 = ((($0)) + 4204|0);
+  HEAP32[$5740>>2] = $5739;
+  $5741 = HEAP8[$208>>0]|0;
+  $5742 = $5741 ^ -6;
+  $5743 = $5742&255;
+  $5744 = (10432 + ($5743)|0);
+  $5745 = HEAP8[$5744>>0]|0;
+  $5746 = HEAP8[$1>>0]|0;
+  $5747 = $5746 ^ $5745;
+  $5748 = $5747&255;
+  $5749 = (10688 + ($5748<<2)|0);
+  $5750 = HEAP32[$5749>>2]|0;
+  $5751 = HEAP8[$224>>0]|0;
+  $5752 = $5751 ^ -121;
+  $5753 = $5752&255;
+  $5754 = (10432 + ($5753)|0);
+  $5755 = HEAP8[$5754>>0]|0;
+  $5756 = HEAP8[$40>>0]|0;
+  $5757 = $5756 ^ $5755;
+  $5758 = $5757&255;
+  $5759 = (11712 + ($5758<<2)|0);
+  $5760 = HEAP32[$5759>>2]|0;
+  $5761 = $5760 ^ $5750;
+  $5762 = HEAP8[$248>>0]|0;
+  $5763 = $5762 ^ -6;
+  $5764 = $5763&255;
+  $5765 = (10176 + ($5764)|0);
+  $5766 = HEAP8[$5765>>0]|0;
+  $5767 = HEAP8[$64>>0]|0;
+  $5768 = $5767 ^ $5766;
+  $5769 = $5768&255;
+  $5770 = (12736 + ($5769<<2)|0);
+  $5771 = HEAP32[$5770>>2]|0;
+  $5772 = $5761 ^ $5771;
+  $5773 = HEAP8[$272>>0]|0;
+  $5774 = $5773 ^ -121;
+  $5775 = $5774&255;
+  $5776 = (10176 + ($5775)|0);
+  $5777 = HEAP8[$5776>>0]|0;
+  $5778 = HEAP8[$88>>0]|0;
+  $5779 = $5778 ^ $5777;
+  $5780 = $5779&255;
+  $5781 = (13760 + ($5780<<2)|0);
+  $5782 = HEAP32[$5781>>2]|0;
+  $5783 = $5772 ^ $5782;
+  $5784 = HEAP8[$296>>0]|0;
+  $5785 = $5784 ^ 19;
+  $5786 = $5785&255;
+  $5787 = (10432 + ($5786)|0);
+  $5788 = HEAP8[$5787>>0]|0;
+  $5789 = HEAP8[$112>>0]|0;
+  $5790 = $5789 ^ $5788;
+  $5791 = $5790&255;
+  $5792 = (10688 + ($5791<<2)|0);
+  $5793 = HEAP32[$5792>>2]|0;
+  $5794 = HEAP8[$320>>0]|0;
+  $5795 = $5794 ^ -6;
+  $5796 = $5795&255;
+  $5797 = (10432 + ($5796)|0);
+  $5798 = HEAP8[$5797>>0]|0;
+  $5799 = HEAP8[$136>>0]|0;
+  $5800 = $5799 ^ $5798;
+  $5801 = $5800&255;
+  $5802 = (11712 + ($5801<<2)|0);
+  $5803 = HEAP32[$5802>>2]|0;
+  $5804 = $5803 ^ $5793;
+  $5805 = HEAP8[$344>>0]|0;
+  $5806 = $5805 ^ 19;
+  $5807 = $5806&255;
+  $5808 = (10176 + ($5807)|0);
+  $5809 = HEAP8[$5808>>0]|0;
+  $5810 = HEAP8[$160>>0]|0;
+  $5811 = $5810 ^ $5809;
+  $5812 = $5811&255;
+  $5813 = (12736 + ($5812<<2)|0);
+  $5814 = HEAP32[$5813>>2]|0;
+  $5815 = $5804 ^ $5814;
+  $5816 = HEAP8[$368>>0]|0;
+  $5817 = $5816 ^ -6;
+  $5818 = $5817&255;
+  $5819 = (10176 + ($5818)|0);
+  $5820 = HEAP8[$5819>>0]|0;
+  $5821 = HEAP8[$184>>0]|0;
+  $5822 = $5821 ^ $5820;
+  $5823 = $5822&255;
+  $5824 = (13760 + ($5823<<2)|0);
+  $5825 = HEAP32[$5824>>2]|0;
+  $5826 = $5815 ^ $5825;
+  $5827 = $5826 << 8;
+  $5828 = $5826 >>> 24;
+  $5829 = $5827 | $5828;
+  $5830 = (($5829) + ($5783))|0;
+  $5831 = (($5830) + ($5829))|0;
+  $5832 = ((($0)) + 4208|0);
+  HEAP32[$5832>>2] = $5830;
+  $5833 = $5831 << 9;
+  $5834 = $5831 >>> 23;
+  $5835 = $5833 | $5834;
+  $5836 = ((($0)) + 4212|0);
+  HEAP32[$5836>>2] = $5835;
+  $5837 = HEAP8[$208>>0]|0;
+  $5838 = $5837 ^ -108;
+  $5839 = $5838&255;
+  $5840 = (10432 + ($5839)|0);
+  $5841 = HEAP8[$5840>>0]|0;
+  $5842 = HEAP8[$1>>0]|0;
+  $5843 = $5842 ^ $5841;
+  $5844 = $5843&255;
+  $5845 = (10688 + ($5844<<2)|0);
+  $5846 = HEAP32[$5845>>2]|0;
+  $5847 = HEAP8[$224>>0]|0;
+  $5848 = $5847 ^ 6;
+  $5849 = $5848&255;
+  $5850 = (10432 + ($5849)|0);
+  $5851 = HEAP8[$5850>>0]|0;
+  $5852 = HEAP8[$40>>0]|0;
+  $5853 = $5852 ^ $5851;
+  $5854 = $5853&255;
+  $5855 = (11712 + ($5854<<2)|0);
+  $5856 = HEAP32[$5855>>2]|0;
+  $5857 = $5856 ^ $5846;
+  $5858 = HEAP8[$248>>0]|0;
+  $5859 = $5858 ^ -108;
+  $5860 = $5859&255;
+  $5861 = (10176 + ($5860)|0);
+  $5862 = HEAP8[$5861>>0]|0;
+  $5863 = HEAP8[$64>>0]|0;
+  $5864 = $5863 ^ $5862;
+  $5865 = $5864&255;
+  $5866 = (12736 + ($5865<<2)|0);
+  $5867 = HEAP32[$5866>>2]|0;
+  $5868 = $5857 ^ $5867;
+  $5869 = HEAP8[$272>>0]|0;
+  $5870 = $5869 ^ 6;
+  $5871 = $5870&255;
+  $5872 = (10176 + ($5871)|0);
+  $5873 = HEAP8[$5872>>0]|0;
+  $5874 = HEAP8[$88>>0]|0;
+  $5875 = $5874 ^ $5873;
+  $5876 = $5875&255;
+  $5877 = (13760 + ($5876<<2)|0);
+  $5878 = HEAP32[$5877>>2]|0;
+  $5879 = $5868 ^ $5878;
+  $5880 = HEAP8[$296>>0]|0;
+  $5881 = $5880 ^ 72;
+  $5882 = $5881&255;
+  $5883 = (10432 + ($5882)|0);
+  $5884 = HEAP8[$5883>>0]|0;
+  $5885 = HEAP8[$112>>0]|0;
+  $5886 = $5885 ^ $5884;
+  $5887 = $5886&255;
+  $5888 = (10688 + ($5887<<2)|0);
+  $5889 = HEAP32[$5888>>2]|0;
+  $5890 = HEAP8[$320>>0]|0;
+  $5891 = $5890 ^ 63;
+  $5892 = $5891&255;
+  $5893 = (10432 + ($5892)|0);
+  $5894 = HEAP8[$5893>>0]|0;
+  $5895 = HEAP8[$136>>0]|0;
+  $5896 = $5895 ^ $5894;
+  $5897 = $5896&255;
+  $5898 = (11712 + ($5897<<2)|0);
+  $5899 = HEAP32[$5898>>2]|0;
+  $5900 = $5899 ^ $5889;
+  $5901 = HEAP8[$344>>0]|0;
+  $5902 = $5901 ^ 72;
+  $5903 = $5902&255;
+  $5904 = (10176 + ($5903)|0);
+  $5905 = HEAP8[$5904>>0]|0;
+  $5906 = HEAP8[$160>>0]|0;
+  $5907 = $5906 ^ $5905;
+  $5908 = $5907&255;
+  $5909 = (12736 + ($5908<<2)|0);
+  $5910 = HEAP32[$5909>>2]|0;
+  $5911 = $5900 ^ $5910;
+  $5912 = HEAP8[$368>>0]|0;
+  $5913 = $5912 ^ 63;
+  $5914 = $5913&255;
+  $5915 = (10176 + ($5914)|0);
+  $5916 = HEAP8[$5915>>0]|0;
+  $5917 = HEAP8[$184>>0]|0;
+  $5918 = $5917 ^ $5916;
+  $5919 = $5918&255;
+  $5920 = (13760 + ($5919<<2)|0);
+  $5921 = HEAP32[$5920>>2]|0;
+  $5922 = $5911 ^ $5921;
+  $5923 = $5922 << 8;
+  $5924 = $5922 >>> 24;
+  $5925 = $5923 | $5924;
+  $5926 = (($5925) + ($5879))|0;
+  $5927 = (($5926) + ($5925))|0;
+  $5928 = ((($0)) + 4216|0);
+  HEAP32[$5928>>2] = $5926;
+  $5929 = $5927 << 9;
+  $5930 = $5927 >>> 23;
+  $5931 = $5929 | $5930;
+  $5932 = ((($0)) + 4220|0);
+  HEAP32[$5932>>2] = $5931;
+  $5933 = HEAP8[$208>>0]|0;
+  $5934 = $5933 ^ -14;
+  $5935 = $5934&255;
+  $5936 = (10432 + ($5935)|0);
+  $5937 = HEAP8[$5936>>0]|0;
+  $5938 = HEAP8[$1>>0]|0;
+  $5939 = $5938 ^ $5937;
+  $5940 = $5939&255;
+  $5941 = (10688 + ($5940<<2)|0);
+  $5942 = HEAP32[$5941>>2]|0;
+  $5943 = HEAP8[$224>>0]|0;
+  $5944 = $5943 ^ 94;
+  $5945 = $5944&255;
+  $5946 = (10432 + ($5945)|0);
+  $5947 = HEAP8[$5946>>0]|0;
+  $5948 = HEAP8[$40>>0]|0;
+  $5949 = $5948 ^ $5947;
+  $5950 = $5949&255;
+  $5951 = (11712 + ($5950<<2)|0);
+  $5952 = HEAP32[$5951>>2]|0;
+  $5953 = $5952 ^ $5942;
+  $5954 = HEAP8[$248>>0]|0;
+  $5955 = $5954 ^ -14;
+  $5956 = $5955&255;
+  $5957 = (10176 + ($5956)|0);
+  $5958 = HEAP8[$5957>>0]|0;
+  $5959 = HEAP8[$64>>0]|0;
+  $5960 = $5959 ^ $5958;
+  $5961 = $5960&255;
+  $5962 = (12736 + ($5961<<2)|0);
+  $5963 = HEAP32[$5962>>2]|0;
+  $5964 = $5953 ^ $5963;
+  $5965 = HEAP8[$272>>0]|0;
+  $5966 = $5965 ^ 94;
+  $5967 = $5966&255;
+  $5968 = (10176 + ($5967)|0);
+  $5969 = HEAP8[$5968>>0]|0;
+  $5970 = HEAP8[$88>>0]|0;
+  $5971 = $5970 ^ $5969;
+  $5972 = $5971&255;
+  $5973 = (13760 + ($5972<<2)|0);
+  $5974 = HEAP32[$5973>>2]|0;
+  $5975 = $5964 ^ $5974;
+  $5976 = HEAP8[$296>>0]|0;
+  $5977 = $5976 ^ -48;
+  $5978 = $5977&255;
+  $5979 = (10432 + ($5978)|0);
+  $5980 = HEAP8[$5979>>0]|0;
+  $5981 = HEAP8[$112>>0]|0;
+  $5982 = $5981 ^ $5980;
+  $5983 = $5982&255;
+  $5984 = (10688 + ($5983<<2)|0);
+  $5985 = HEAP32[$5984>>2]|0;
+  $5986 = HEAP8[$320>>0]|0;
+  $5987 = $5986 ^ -70;
+  $5988 = $5987&255;
+  $5989 = (10432 + ($5988)|0);
+  $5990 = HEAP8[$5989>>0]|0;
+  $5991 = HEAP8[$136>>0]|0;
+  $5992 = $5991 ^ $5990;
+  $5993 = $5992&255;
+  $5994 = (11712 + ($5993<<2)|0);
+  $5995 = HEAP32[$5994>>2]|0;
+  $5996 = $5995 ^ $5985;
+  $5997 = HEAP8[$344>>0]|0;
+  $5998 = $5997 ^ -48;
+  $5999 = $5998&255;
+  $6000 = (10176 + ($5999)|0);
+  $6001 = HEAP8[$6000>>0]|0;
+  $6002 = HEAP8[$160>>0]|0;
+  $6003 = $6002 ^ $6001;
+  $6004 = $6003&255;
+  $6005 = (12736 + ($6004<<2)|0);
+  $6006 = HEAP32[$6005>>2]|0;
+  $6007 = $5996 ^ $6006;
+  $6008 = HEAP8[$368>>0]|0;
+  $6009 = $6008 ^ -70;
+  $6010 = $6009&255;
+  $6011 = (10176 + ($6010)|0);
+  $6012 = HEAP8[$6011>>0]|0;
+  $6013 = HEAP8[$184>>0]|0;
+  $6014 = $6013 ^ $6012;
+  $6015 = $6014&255;
+  $6016 = (13760 + ($6015<<2)|0);
+  $6017 = HEAP32[$6016>>2]|0;
+  $6018 = $6007 ^ $6017;
+  $6019 = $6018 << 8;
+  $6020 = $6018 >>> 24;
+  $6021 = $6019 | $6020;
+  $6022 = (($6021) + ($5975))|0;
+  $6023 = (($6022) + ($6021))|0;
+  $6024 = ((($0)) + 4224|0);
+  HEAP32[$6024>>2] = $6022;
+  $6025 = $6023 << 9;
+  $6026 = $6023 >>> 23;
+  $6027 = $6025 | $6026;
+  $6028 = ((($0)) + 4228|0);
+  HEAP32[$6028>>2] = $6027;
+  $6029 = HEAP8[$208>>0]|0;
+  $6030 = $6029 ^ -117;
+  $6031 = $6030&255;
+  $6032 = (10432 + ($6031)|0);
+  $6033 = HEAP8[$6032>>0]|0;
+  $6034 = HEAP8[$1>>0]|0;
+  $6035 = $6034 ^ $6033;
+  $6036 = $6035&255;
+  $6037 = (10688 + ($6036<<2)|0);
+  $6038 = HEAP32[$6037>>2]|0;
+  $6039 = HEAP8[$224>>0]|0;
+  $6040 = $6039 ^ -82;
+  $6041 = $6040&255;
+  $6042 = (10432 + ($6041)|0);
+  $6043 = HEAP8[$6042>>0]|0;
+  $6044 = HEAP8[$40>>0]|0;
+  $6045 = $6044 ^ $6043;
+  $6046 = $6045&255;
+  $6047 = (11712 + ($6046<<2)|0);
+  $6048 = HEAP32[$6047>>2]|0;
+  $6049 = $6048 ^ $6038;
+  $6050 = HEAP8[$248>>0]|0;
+  $6051 = $6050 ^ -117;
+  $6052 = $6051&255;
+  $6053 = (10176 + ($6052)|0);
+  $6054 = HEAP8[$6053>>0]|0;
+  $6055 = HEAP8[$64>>0]|0;
+  $6056 = $6055 ^ $6054;
+  $6057 = $6056&255;
+  $6058 = (12736 + ($6057<<2)|0);
+  $6059 = HEAP32[$6058>>2]|0;
+  $6060 = $6049 ^ $6059;
+  $6061 = HEAP8[$272>>0]|0;
+  $6062 = $6061 ^ -82;
+  $6063 = $6062&255;
+  $6064 = (10176 + ($6063)|0);
+  $6065 = HEAP8[$6064>>0]|0;
+  $6066 = HEAP8[$88>>0]|0;
+  $6067 = $6066 ^ $6065;
+  $6068 = $6067&255;
+  $6069 = (13760 + ($6068<<2)|0);
+  $6070 = HEAP32[$6069>>2]|0;
+  $6071 = $6060 ^ $6070;
+  $6072 = HEAP8[$296>>0]|0;
+  $6073 = $6072 ^ 48;
+  $6074 = $6073&255;
+  $6075 = (10432 + ($6074)|0);
+  $6076 = HEAP8[$6075>>0]|0;
+  $6077 = HEAP8[$112>>0]|0;
+  $6078 = $6077 ^ $6076;
+  $6079 = $6078&255;
+  $6080 = (10688 + ($6079<<2)|0);
+  $6081 = HEAP32[$6080>>2]|0;
+  $6082 = HEAP8[$320>>0]|0;
+  $6083 = $6082 ^ 91;
+  $6084 = $6083&255;
+  $6085 = (10432 + ($6084)|0);
+  $6086 = HEAP8[$6085>>0]|0;
+  $6087 = HEAP8[$136>>0]|0;
+  $6088 = $6087 ^ $6086;
+  $6089 = $6088&255;
+  $6090 = (11712 + ($6089<<2)|0);
+  $6091 = HEAP32[$6090>>2]|0;
+  $6092 = $6091 ^ $6081;
+  $6093 = HEAP8[$344>>0]|0;
+  $6094 = $6093 ^ 48;
+  $6095 = $6094&255;
+  $6096 = (10176 + ($6095)|0);
+  $6097 = HEAP8[$6096>>0]|0;
+  $6098 = HEAP8[$160>>0]|0;
+  $6099 = $6098 ^ $6097;
+  $6100 = $6099&255;
+  $6101 = (12736 + ($6100<<2)|0);
+  $6102 = HEAP32[$6101>>2]|0;
+  $6103 = $6092 ^ $6102;
+  $6104 = HEAP8[$368>>0]|0;
+  $6105 = $6104 ^ 91;
+  $6106 = $6105&255;
+  $6107 = (10176 + ($6106)|0);
+  $6108 = HEAP8[$6107>>0]|0;
+  $6109 = HEAP8[$184>>0]|0;
+  $6110 = $6109 ^ $6108;
+  $6111 = $6110&255;
+  $6112 = (13760 + ($6111<<2)|0);
+  $6113 = HEAP32[$6112>>2]|0;
+  $6114 = $6103 ^ $6113;
+  $6115 = $6114 << 8;
+  $6116 = $6114 >>> 24;
+  $6117 = $6115 | $6116;
+  $6118 = (($6117) + ($6071))|0;
+  $6119 = (($6118) + ($6117))|0;
+  $6120 = ((($0)) + 4232|0);
+  HEAP32[$6120>>2] = $6118;
+  $6121 = $6119 << 9;
+  $6122 = $6119 >>> 23;
+  $6123 = $6121 | $6122;
+  $6124 = ((($0)) + 4236|0);
+  HEAP32[$6124>>2] = $6123;
+  $6125 = HEAP8[$208>>0]|0;
+  $6126 = $6125 ^ -124;
+  $6127 = $6126&255;
+  $6128 = (10432 + ($6127)|0);
+  $6129 = HEAP8[$6128>>0]|0;
+  $6130 = HEAP8[$1>>0]|0;
+  $6131 = $6130 ^ $6129;
+  $6132 = $6131&255;
+  $6133 = (10688 + ($6132<<2)|0);
+  $6134 = HEAP32[$6133>>2]|0;
+  $6135 = HEAP8[$224>>0]|0;
+  $6136 = $6135 ^ -118;
+  $6137 = $6136&255;
+  $6138 = (10432 + ($6137)|0);
+  $6139 = HEAP8[$6138>>0]|0;
+  $6140 = HEAP8[$40>>0]|0;
+  $6141 = $6140 ^ $6139;
+  $6142 = $6141&255;
+  $6143 = (11712 + ($6142<<2)|0);
+  $6144 = HEAP32[$6143>>2]|0;
+  $6145 = $6144 ^ $6134;
+  $6146 = HEAP8[$248>>0]|0;
+  $6147 = $6146 ^ -124;
+  $6148 = $6147&255;
+  $6149 = (10176 + ($6148)|0);
+  $6150 = HEAP8[$6149>>0]|0;
+  $6151 = HEAP8[$64>>0]|0;
+  $6152 = $6151 ^ $6150;
+  $6153 = $6152&255;
+  $6154 = (12736 + ($6153<<2)|0);
+  $6155 = HEAP32[$6154>>2]|0;
+  $6156 = $6145 ^ $6155;
+  $6157 = HEAP8[$272>>0]|0;
+  $6158 = $6157 ^ -118;
+  $6159 = $6158&255;
+  $6160 = (10176 + ($6159)|0);
+  $6161 = HEAP8[$6160>>0]|0;
+  $6162 = HEAP8[$88>>0]|0;
+  $6163 = $6162 ^ $6161;
+  $6164 = $6163&255;
+  $6165 = (13760 + ($6164<<2)|0);
+  $6166 = HEAP32[$6165>>2]|0;
+  $6167 = $6156 ^ $6166;
+  $6168 = HEAP8[$296>>0]|0;
+  $6169 = $6168 ^ 84;
+  $6170 = $6169&255;
+  $6171 = (10432 + ($6170)|0);
+  $6172 = HEAP8[$6171>>0]|0;
+  $6173 = HEAP8[$112>>0]|0;
+  $6174 = $6173 ^ $6172;
+  $6175 = $6174&255;
+  $6176 = (10688 + ($6175<<2)|0);
+  $6177 = HEAP32[$6176>>2]|0;
+  $6178 = HEAP8[$320>>0]|0;
+  $6179 = $6178&255;
+  $6180 = (10432 + ($6179)|0);
+  $6181 = HEAP8[$6180>>0]|0;
+  $6182 = HEAP8[$136>>0]|0;
+  $6183 = $6182 ^ $6181;
+  $6184 = $6183&255;
+  $6185 = (11712 + ($6184<<2)|0);
+  $6186 = HEAP32[$6185>>2]|0;
+  $6187 = $6186 ^ $6177;
+  $6188 = HEAP8[$344>>0]|0;
+  $6189 = $6188 ^ 84;
+  $6190 = $6189&255;
+  $6191 = (10176 + ($6190)|0);
+  $6192 = HEAP8[$6191>>0]|0;
+  $6193 = HEAP8[$160>>0]|0;
+  $6194 = $6193 ^ $6192;
+  $6195 = $6194&255;
+  $6196 = (12736 + ($6195<<2)|0);
+  $6197 = HEAP32[$6196>>2]|0;
+  $6198 = $6187 ^ $6197;
+  $6199 = HEAP8[$368>>0]|0;
+  $6200 = $6199&255;
+  $6201 = (10176 + ($6200)|0);
+  $6202 = HEAP8[$6201>>0]|0;
+  $6203 = HEAP8[$184>>0]|0;
+  $6204 = $6203 ^ $6202;
+  $6205 = $6204&255;
+  $6206 = (13760 + ($6205<<2)|0);
+  $6207 = HEAP32[$6206>>2]|0;
+  $6208 = $6198 ^ $6207;
+  $6209 = $6208 << 8;
+  $6210 = $6208 >>> 24;
+  $6211 = $6209 | $6210;
+  $6212 = (($6211) + ($6167))|0;
+  $6213 = (($6212) + ($6211))|0;
+  $6214 = ((($0)) + 4240|0);
+  HEAP32[$6214>>2] = $6212;
+  $6215 = $6213 << 9;
+  $6216 = $6213 >>> 23;
+  $6217 = $6215 | $6216;
+  $6218 = ((($0)) + 4244|0);
+  HEAP32[$6218>>2] = $6217;
+  $6219 = HEAP8[$208>>0]|0;
+  $6220 = $6219 ^ -33;
+  $6221 = $6220&255;
+  $6222 = (10432 + ($6221)|0);
+  $6223 = HEAP8[$6222>>0]|0;
+  $6224 = HEAP8[$1>>0]|0;
+  $6225 = $6224 ^ $6223;
+  $6226 = $6225&255;
+  $6227 = (10688 + ($6226<<2)|0);
+  $6228 = HEAP32[$6227>>2]|0;
+  $6229 = HEAP8[$224>>0]|0;
+  $6230 = $6229 ^ -68;
+  $6231 = $6230&255;
+  $6232 = (10432 + ($6231)|0);
+  $6233 = HEAP8[$6232>>0]|0;
+  $6234 = HEAP8[$40>>0]|0;
+  $6235 = $6234 ^ $6233;
+  $6236 = $6235&255;
+  $6237 = (11712 + ($6236<<2)|0);
+  $6238 = HEAP32[$6237>>2]|0;
+  $6239 = $6238 ^ $6228;
+  $6240 = HEAP8[$248>>0]|0;
+  $6241 = $6240 ^ -33;
+  $6242 = $6241&255;
+  $6243 = (10176 + ($6242)|0);
+  $6244 = HEAP8[$6243>>0]|0;
+  $6245 = HEAP8[$64>>0]|0;
+  $6246 = $6245 ^ $6244;
+  $6247 = $6246&255;
+  $6248 = (12736 + ($6247<<2)|0);
+  $6249 = HEAP32[$6248>>2]|0;
+  $6250 = $6239 ^ $6249;
+  $6251 = HEAP8[$272>>0]|0;
+  $6252 = $6251 ^ -68;
+  $6253 = $6252&255;
+  $6254 = (10176 + ($6253)|0);
+  $6255 = HEAP8[$6254>>0]|0;
+  $6256 = HEAP8[$88>>0]|0;
+  $6257 = $6256 ^ $6255;
+  $6258 = $6257&255;
+  $6259 = (13760 + ($6258<<2)|0);
+  $6260 = HEAP32[$6259>>2]|0;
+  $6261 = $6250 ^ $6260;
+  $6262 = HEAP8[$296>>0]|0;
+  $6263 = $6262 ^ 35;
+  $6264 = $6263&255;
+  $6265 = (10432 + ($6264)|0);
+  $6266 = HEAP8[$6265>>0]|0;
+  $6267 = HEAP8[$112>>0]|0;
+  $6268 = $6267 ^ $6266;
+  $6269 = $6268&255;
+  $6270 = (10688 + ($6269<<2)|0);
+  $6271 = HEAP32[$6270>>2]|0;
+  $6272 = HEAP8[$320>>0]|0;
+  $6273 = $6272 ^ -99;
+  $6274 = $6273&255;
+  $6275 = (10432 + ($6274)|0);
+  $6276 = HEAP8[$6275>>0]|0;
+  $6277 = HEAP8[$136>>0]|0;
+  $6278 = $6277 ^ $6276;
+  $6279 = $6278&255;
+  $6280 = (11712 + ($6279<<2)|0);
+  $6281 = HEAP32[$6280>>2]|0;
+  $6282 = $6281 ^ $6271;
+  $6283 = HEAP8[$344>>0]|0;
+  $6284 = $6283 ^ 35;
+  $6285 = $6284&255;
+  $6286 = (10176 + ($6285)|0);
+  $6287 = HEAP8[$6286>>0]|0;
+  $6288 = HEAP8[$160>>0]|0;
+  $6289 = $6288 ^ $6287;
+  $6290 = $6289&255;
+  $6291 = (12736 + ($6290<<2)|0);
+  $6292 = HEAP32[$6291>>2]|0;
+  $6293 = $6282 ^ $6292;
+  $6294 = HEAP8[$368>>0]|0;
+  $6295 = $6294 ^ -99;
+  $6296 = $6295&255;
+  $6297 = (10176 + ($6296)|0);
+  $6298 = HEAP8[$6297>>0]|0;
+  $6299 = HEAP8[$184>>0]|0;
+  $6300 = $6299 ^ $6298;
+  $6301 = $6300&255;
+  $6302 = (13760 + ($6301<<2)|0);
+  $6303 = HEAP32[$6302>>2]|0;
+  $6304 = $6293 ^ $6303;
+  $6305 = $6304 << 8;
+  $6306 = $6304 >>> 24;
+  $6307 = $6305 | $6306;
+  $6308 = (($6307) + ($6261))|0;
+  $6309 = (($6308) + ($6307))|0;
+  $6310 = ((($0)) + 4248|0);
+  HEAP32[$6310>>2] = $6308;
+  $6311 = $6309 << 9;
+  $6312 = $6309 >>> 23;
+  $6313 = $6311 | $6312;
+  $6314 = ((($0)) + 4252|0);
+  HEAP32[$6314>>2] = $6313;
+  $$01913 = 0;
+  STACKTOP = sp;return ($$01913|0);
+ }
+ $393 = ((($1)) + 16|0);
+ $394 = HEAP8[$393>>0]|0;
+ $395 = ($394<<24>>24)==(0);
+ if ($395) {
+  $$01819 = 0;$$01827 = 0;$$01835 = 0;
+ } else {
+  $396 = $394&255;
+  $397 = (($396) + -1)|0;
+  $398 = (8912 + ($397)|0);
+  $399 = HEAP8[$398>>0]|0;
+  $400 = $399&255;
+  $401 = (9168 + ($400)|0);
+  $402 = HEAP8[$401>>0]|0;
+  $403 = (($400) + 45)|0;
+  $404 = (9168 + ($403)|0);
+  $405 = HEAP8[$404>>0]|0;
+  $406 = (($400) + 1)|0;
+  $407 = (9168 + ($406)|0);
+  $408 = HEAP8[$407>>0]|0;
+  $$01819 = $408;$$01827 = $405;$$01835 = $402;
+ }
+ $409 = ((($1)) + 17|0);
+ $410 = HEAP8[$409>>0]|0;
+ $411 = ($410<<24>>24)==(0);
+ if ($411) {
+  $$11812 = $$01827;$$11820 = $$01819;$$11828 = $$01827;$$11836 = $$01835;
+ } else {
+  $412 = $410&255;
+  $413 = (($412) + -1)|0;
+  $414 = (8912 + ($413)|0);
+  $415 = HEAP8[$414>>0]|0;
+  $416 = $415&255;
+  $417 = (($416) + 45)|0;
+  $418 = (9168 + ($417)|0);
+  $419 = HEAP8[$418>>0]|0;
+  $420 = $419 ^ $$01835;
+  $421 = (($416) + 164)|0;
+  $422 = (9168 + ($421)|0);
+  $423 = HEAP8[$422>>0]|0;
+  $424 = $423 ^ $$01827;
+  $425 = (($416) + 68)|0;
+  $426 = (9168 + ($425)|0);
+  $427 = HEAP8[$426>>0]|0;
+  $428 = $427 ^ $$01819;
+  $429 = (($416) + 138)|0;
+  $430 = (9168 + ($429)|0);
+  $431 = HEAP8[$430>>0]|0;
+  $432 = $431 ^ $$01827;
+  $$11812 = $432;$$11820 = $428;$$11828 = $424;$$11836 = $420;
+ }
+ $433 = ((($1)) + 18|0);
+ $434 = HEAP8[$433>>0]|0;
+ $435 = ($434<<24>>24)==(0);
+ if ($435) {
+  $$21813 = $$11812;$$21821 = $$11820;$$21829 = $$11828;$$21837 = $$11836;
+ } else {
+  $436 = $434&255;
+  $437 = (($436) + -1)|0;
+  $438 = (8912 + ($437)|0);
+  $439 = HEAP8[$438>>0]|0;
+  $440 = $439&255;
+  $441 = (($440) + 138)|0;
+  $442 = (9168 + ($441)|0);
+  $443 = HEAP8[$442>>0]|0;
+  $444 = $443 ^ $$11836;
+  $445 = (($440) + 213)|0;
+  $446 = (9168 + ($445)|0);
+  $447 = HEAP8[$446>>0]|0;
+  $448 = $447 ^ $$11828;
+  $449 = (($440) + 191)|0;
+  $450 = (9168 + ($449)|0);
+  $451 = HEAP8[$450>>0]|0;
+  $452 = $451 ^ $$11820;
+  $453 = (($440) + 209)|0;
+  $454 = (9168 + ($453)|0);
+  $455 = HEAP8[$454>>0]|0;
+  $456 = $455 ^ $$11812;
+  $$21813 = $456;$$21821 = $452;$$21829 = $448;$$21837 = $444;
+ }
+ $457 = ((($1)) + 19|0);
+ $458 = HEAP8[$457>>0]|0;
+ $459 = ($458<<24>>24)==(0);
+ if ($459) {
+  $$31814 = $$21813;$$31822 = $$21821;$$31830 = $$21829;$$31838 = $$21837;
+ } else {
+  $460 = $458&255;
+  $461 = (($460) + -1)|0;
+  $462 = (8912 + ($461)|0);
+  $463 = HEAP8[$462>>0]|0;
+  $464 = $463&255;
+  $465 = (($464) + 209)|0;
+  $466 = (9168 + ($465)|0);
+  $467 = HEAP8[$466>>0]|0;
+  $468 = $467 ^ $$21837;
+  $469 = (($464) + 127)|0;
+  $470 = (9168 + ($469)|0);
+  $471 = HEAP8[$470>>0]|0;
+  $472 = $471 ^ $$21829;
+  $473 = (($464) + 61)|0;
+  $474 = (9168 + ($473)|0);
+  $475 = HEAP8[$474>>0]|0;
+  $476 = $475 ^ $$21821;
+  $477 = (($464) + 153)|0;
+  $478 = (9168 + ($477)|0);
+  $479 = HEAP8[$478>>0]|0;
+  $480 = $479 ^ $$21813;
+  $$31814 = $480;$$31822 = $476;$$31830 = $472;$$31838 = $468;
+ }
+ $481 = ((($1)) + 20|0);
+ $482 = HEAP8[$481>>0]|0;
+ $483 = ($482<<24>>24)==(0);
+ if ($483) {
+  $$41815 = $$31814;$$41823 = $$31822;$$41831 = $$31830;$$41839 = $$31838;
+ } else {
+  $484 = $482&255;
+  $485 = (($484) + -1)|0;
+  $486 = (8912 + ($485)|0);
+  $487 = HEAP8[$486>>0]|0;
+  $488 = $487&255;
+  $489 = (($488) + 153)|0;
+  $490 = (9168 + ($489)|0);
+  $491 = HEAP8[$490>>0]|0;
+  $492 = $491 ^ $$31838;
+  $493 = (($488) + 70)|0;
+  $494 = (9168 + ($493)|0);
+  $495 = HEAP8[$494>>0]|0;
+  $496 = $495 ^ $$31830;
+  $497 = (($488) + 102)|0;
+  $498 = (9168 + ($497)|0);
+  $499 = HEAP8[$498>>0]|0;
+  $500 = $499 ^ $$31822;
+  $501 = (($488) + 150)|0;
+  $502 = (9168 + ($501)|0);
+  $503 = HEAP8[$502>>0]|0;
+  $504 = $503 ^ $$31814;
+  $$41815 = $504;$$41823 = $500;$$41831 = $496;$$41839 = $492;
+ }
+ $505 = ((($1)) + 21|0);
+ $506 = HEAP8[$505>>0]|0;
+ $507 = ($506<<24>>24)==(0);
+ if ($507) {
+  $$51816 = $$41815;$$51824 = $$41823;$$51832 = $$41831;$$51840 = $$41839;
+ } else {
+  $508 = $506&255;
+  $509 = (($508) + -1)|0;
+  $510 = (8912 + ($509)|0);
+  $511 = HEAP8[$510>>0]|0;
+  $512 = $511&255;
+  $513 = (($512) + 150)|0;
+  $514 = (9168 + ($513)|0);
+  $515 = HEAP8[$514>>0]|0;
+  $516 = $515 ^ $$41839;
+  $517 = (($512) + 60)|0;
+  $518 = (9168 + ($517)|0);
+  $519 = HEAP8[$518>>0]|0;
+  $520 = $519 ^ $$41831;
+  $521 = (($512) + 91)|0;
+  $522 = (9168 + ($521)|0);
+  $523 = HEAP8[$522>>0]|0;
+  $524 = $523 ^ $$41823;
+  $525 = (($512) + 237)|0;
+  $526 = (9168 + ($525)|0);
+  $527 = HEAP8[$526>>0]|0;
+  $528 = $527 ^ $$41815;
+  $$51816 = $528;$$51824 = $524;$$51832 = $520;$$51840 = $516;
+ }
+ $529 = ((($1)) + 22|0);
+ $530 = HEAP8[$529>>0]|0;
+ $531 = ($530<<24>>24)==(0);
+ if ($531) {
+  $$61817 = $$51816;$$61825 = $$51824;$$61833 = $$51832;$$61841 = $$51840;
+ } else {
+  $532 = $530&255;
+  $533 = (($532) + -1)|0;
+  $534 = (8912 + ($533)|0);
+  $535 = HEAP8[$534>>0]|0;
+  $536 = $535&255;
+  $537 = (($536) + 237)|0;
+  $538 = (9168 + ($537)|0);
+  $539 = HEAP8[$538>>0]|0;
+  $540 = $539 ^ $$51840;
+  $541 = (($536) + 55)|0;
+  $542 = (9168 + ($541)|0);
+  $543 = HEAP8[$542>>0]|0;
+  $544 = $543 ^ $$51832;
+  $545 = (($536) + 79)|0;
+  $546 = (9168 + ($545)|0);
+  $547 = HEAP8[$546>>0]|0;
+  $548 = $547 ^ $$51824;
+  $549 = (($536) + 224)|0;
+  $550 = (9168 + ($549)|0);
+  $551 = HEAP8[$550>>0]|0;
+  $552 = $551 ^ $$51816;
+  $$61817 = $552;$$61825 = $548;$$61833 = $544;$$61841 = $540;
+ }
+ $553 = ((($1)) + 23|0);
+ $554 = HEAP8[$553>>0]|0;
+ $555 = ($554<<24>>24)==(0);
+ if ($555) {
+  $$71818 = $$61817;$$71826 = $$61825;$$71834 = $$61833;$$71842 = $$61841;
+ } else {
+  $556 = $554&255;
+  $557 = (($556) + -1)|0;
+  $558 = (8912 + ($557)|0);
+  $559 = HEAP8[$558>>0]|0;
+  $560 = $559&255;
+  $561 = (($560) + 224)|0;
+  $562 = (9168 + ($561)|0);
+  $563 = HEAP8[$562>>0]|0;
+  $564 = $563 ^ $$61841;
+  $565 = (($560) + 208)|0;
+  $566 = (9168 + ($565)|0);
+  $567 = HEAP8[$566>>0]|0;
+  $568 = $567 ^ $$61833;
+  $569 = (($560) + 140)|0;
+  $570 = (9168 + ($569)|0);
+  $571 = HEAP8[$570>>0]|0;
+  $572 = $571 ^ $$61825;
+  $573 = (($560) + 23)|0;
+  $574 = (9168 + ($573)|0);
+  $575 = HEAP8[$574>>0]|0;
+  $576 = $575 ^ $$61817;
+  $$71818 = $576;$$71826 = $572;$$71834 = $568;$$71842 = $564;
+ }
+ $577 = ((($1)) + 24|0);
+ $578 = HEAP8[$577>>0]|0;
+ $579 = ($578<<24>>24)==(0);
+ if ($579) {
+  $$01787 = 0;$$01795 = 0;$$01803 = 0;
+ } else {
+  $580 = $578&255;
+  $581 = (($580) + -1)|0;
+  $582 = (8912 + ($581)|0);
+  $583 = HEAP8[$582>>0]|0;
+  $584 = $583&255;
+  $585 = (9168 + ($584)|0);
+  $586 = HEAP8[$585>>0]|0;
+  $587 = (($584) + 45)|0;
+  $588 = (9168 + ($587)|0);
+  $589 = HEAP8[$588>>0]|0;
+  $590 = (($584) + 1)|0;
+  $591 = (9168 + ($590)|0);
+  $592 = HEAP8[$591>>0]|0;
+  $$01787 = $592;$$01795 = $589;$$01803 = $586;
+ }
+ $593 = ((($1)) + 25|0);
+ $594 = HEAP8[$593>>0]|0;
+ $595 = ($594<<24>>24)==(0);
+ if ($595) {
+  $$1 = $$01795;$$11788 = $$01787;$$11796 = $$01795;$$11804 = $$01803;
+ } else {
+  $596 = $594&255;
+  $597 = (($596) + -1)|0;
+  $598 = (8912 + ($597)|0);
+  $599 = HEAP8[$598>>0]|0;
+  $600 = $599&255;
+  $601 = (($600) + 45)|0;
+  $602 = (9168 + ($601)|0);
+  $603 = HEAP8[$602>>0]|0;
+  $604 = $603 ^ $$01803;
+  $605 = (($600) + 164)|0;
+  $606 = (9168 + ($605)|0);
+  $607 = HEAP8[$606>>0]|0;
+  $608 = $607 ^ $$01795;
+  $609 = (($600) + 68)|0;
+  $610 = (9168 + ($609)|0);
+  $611 = HEAP8[$610>>0]|0;
+  $612 = $611 ^ $$01787;
+  $613 = (($600) + 138)|0;
+  $614 = (9168 + ($613)|0);
+  $615 = HEAP8[$614>>0]|0;
+  $616 = $615 ^ $$01795;
+  $$1 = $616;$$11788 = $612;$$11796 = $608;$$11804 = $604;
+ }
+ $617 = ((($1)) + 26|0);
+ $618 = HEAP8[$617>>0]|0;
+ $619 = ($618<<24>>24)==(0);
+ if ($619) {
+  $$2 = $$1;$$21789 = $$11788;$$21797 = $$11796;$$21805 = $$11804;
+ } else {
+  $620 = $618&255;
+  $621 = (($620) + -1)|0;
+  $622 = (8912 + ($621)|0);
+  $623 = HEAP8[$622>>0]|0;
+  $624 = $623&255;
+  $625 = (($624) + 138)|0;
+  $626 = (9168 + ($625)|0);
+  $627 = HEAP8[$626>>0]|0;
+  $628 = $627 ^ $$11804;
+  $629 = (($624) + 213)|0;
+  $630 = (9168 + ($629)|0);
+  $631 = HEAP8[$630>>0]|0;
+  $632 = $631 ^ $$11796;
+  $633 = (($624) + 191)|0;
+  $634 = (9168 + ($633)|0);
+  $635 = HEAP8[$634>>0]|0;
+  $636 = $635 ^ $$11788;
+  $637 = (($624) + 209)|0;
+  $638 = (9168 + ($637)|0);
+  $639 = HEAP8[$638>>0]|0;
+  $640 = $639 ^ $$1;
+  $$2 = $640;$$21789 = $636;$$21797 = $632;$$21805 = $628;
+ }
+ $641 = ((($1)) + 27|0);
+ $642 = HEAP8[$641>>0]|0;
+ $643 = ($642<<24>>24)==(0);
+ if ($643) {
+  $$3 = $$2;$$31790 = $$21789;$$31798 = $$21797;$$31806 = $$21805;
+ } else {
+  $644 = $642&255;
+  $645 = (($644) + -1)|0;
+  $646 = (8912 + ($645)|0);
+  $647 = HEAP8[$646>>0]|0;
+  $648 = $647&255;
+  $649 = (($648) + 209)|0;
+  $650 = (9168 + ($649)|0);
+  $651 = HEAP8[$650>>0]|0;
+  $652 = $651 ^ $$21805;
+  $653 = (($648) + 127)|0;
+  $654 = (9168 + ($653)|0);
+  $655 = HEAP8[$654>>0]|0;
+  $656 = $655 ^ $$21797;
+  $657 = (($648) + 61)|0;
+  $658 = (9168 + ($657)|0);
+  $659 = HEAP8[$658>>0]|0;
+  $660 = $659 ^ $$21789;
+  $661 = (($648) + 153)|0;
+  $662 = (9168 + ($661)|0);
+  $663 = HEAP8[$662>>0]|0;
+  $664 = $663 ^ $$2;
+  $$3 = $664;$$31790 = $660;$$31798 = $656;$$31806 = $652;
+ }
+ $665 = ((($1)) + 28|0);
+ $666 = HEAP8[$665>>0]|0;
+ $667 = ($666<<24>>24)==(0);
+ if ($667) {
+  $$4 = $$3;$$41791 = $$31790;$$41799 = $$31798;$$41807 = $$31806;
+ } else {
+  $668 = $666&255;
+  $669 = (($668) + -1)|0;
+  $670 = (8912 + ($669)|0);
+  $671 = HEAP8[$670>>0]|0;
+  $672 = $671&255;
+  $673 = (($672) + 153)|0;
+  $674 = (9168 + ($673)|0);
+  $675 = HEAP8[$674>>0]|0;
+  $676 = $675 ^ $$31806;
+  $677 = (($672) + 70)|0;
+  $678 = (9168 + ($677)|0);
+  $679 = HEAP8[$678>>0]|0;
+  $680 = $679 ^ $$31798;
+  $681 = (($672) + 102)|0;
+  $682 = (9168 + ($681)|0);
+  $683 = HEAP8[$682>>0]|0;
+  $684 = $683 ^ $$31790;
+  $685 = (($672) + 150)|0;
+  $686 = (9168 + ($685)|0);
+  $687 = HEAP8[$686>>0]|0;
+  $688 = $687 ^ $$3;
+  $$4 = $688;$$41791 = $684;$$41799 = $680;$$41807 = $676;
+ }
+ $689 = ((($1)) + 29|0);
+ $690 = HEAP8[$689>>0]|0;
+ $691 = ($690<<24>>24)==(0);
+ if ($691) {
+  $$5 = $$4;$$51792 = $$41791;$$51800 = $$41799;$$51808 = $$41807;
+ } else {
+  $692 = $690&255;
+  $693 = (($692) + -1)|0;
+  $694 = (8912 + ($693)|0);
+  $695 = HEAP8[$694>>0]|0;
+  $696 = $695&255;
+  $697 = (($696) + 150)|0;
+  $698 = (9168 + ($697)|0);
+  $699 = HEAP8[$698>>0]|0;
+  $700 = $699 ^ $$41807;
+  $701 = (($696) + 60)|0;
+  $702 = (9168 + ($701)|0);
+  $703 = HEAP8[$702>>0]|0;
+  $704 = $703 ^ $$41799;
+  $705 = (($696) + 91)|0;
+  $706 = (9168 + ($705)|0);
+  $707 = HEAP8[$706>>0]|0;
+  $708 = $707 ^ $$41791;
+  $709 = (($696) + 237)|0;
+  $710 = (9168 + ($709)|0);
+  $711 = HEAP8[$710>>0]|0;
+  $712 = $711 ^ $$4;
+  $$5 = $712;$$51792 = $708;$$51800 = $704;$$51808 = $700;
+ }
+ $713 = ((($1)) + 30|0);
+ $714 = HEAP8[$713>>0]|0;
+ $715 = ($714<<24>>24)==(0);
+ if ($715) {
+  $$6 = $$5;$$61793 = $$51792;$$61801 = $$51800;$$61809 = $$51808;
+ } else {
+  $716 = $714&255;
+  $717 = (($716) + -1)|0;
+  $718 = (8912 + ($717)|0);
+  $719 = HEAP8[$718>>0]|0;
+  $720 = $719&255;
+  $721 = (($720) + 237)|0;
+  $722 = (9168 + ($721)|0);
+  $723 = HEAP8[$722>>0]|0;
+  $724 = $723 ^ $$51808;
+  $725 = (($720) + 55)|0;
+  $726 = (9168 + ($725)|0);
+  $727 = HEAP8[$726>>0]|0;
+  $728 = $727 ^ $$51800;
+  $729 = (($720) + 79)|0;
+  $730 = (9168 + ($729)|0);
+  $731 = HEAP8[$730>>0]|0;
+  $732 = $731 ^ $$51792;
+  $733 = (($720) + 224)|0;
+  $734 = (9168 + ($733)|0);
+  $735 = HEAP8[$734>>0]|0;
+  $736 = $735 ^ $$5;
+  $$6 = $736;$$61793 = $732;$$61801 = $728;$$61809 = $724;
+ }
+ $737 = ((($1)) + 31|0);
+ $738 = HEAP8[$737>>0]|0;
+ $739 = ($738<<24>>24)==(0);
+ if ($739) {
+  $$7 = $$6;$$71794 = $$61793;$$71802 = $$61801;$$71810 = $$61809;
+ } else {
+  $740 = $738&255;
+  $741 = (($740) + -1)|0;
+  $742 = (8912 + ($741)|0);
+  $743 = HEAP8[$742>>0]|0;
+  $744 = $743&255;
+  $745 = (($744) + 224)|0;
+  $746 = (9168 + ($745)|0);
+  $747 = HEAP8[$746>>0]|0;
+  $748 = $747 ^ $$61809;
+  $749 = (($744) + 208)|0;
+  $750 = (9168 + ($749)|0);
+  $751 = HEAP8[$750>>0]|0;
+  $752 = $751 ^ $$61801;
+  $753 = (($744) + 140)|0;
+  $754 = (9168 + ($753)|0);
+  $755 = HEAP8[$754>>0]|0;
+  $756 = $755 ^ $$61793;
+  $757 = (($744) + 23)|0;
+  $758 = (9168 + ($757)|0);
+  $759 = HEAP8[$758>>0]|0;
+  $760 = $759 ^ $$6;
+  $$7 = $760;$$71794 = $756;$$71802 = $752;$$71810 = $748;
+ }
+ $$019071917 = 1;$$019091916 = 0;$$019111915 = 0;
+ while(1) {
+  $761 = (9664 + ($$019071917)|0);
+  $762 = HEAP8[$761>>0]|0;
+  $763 = $762 ^ $$71906;
+  $764 = $763&255;
+  $765 = (10176 + ($764)|0);
+  $766 = HEAP8[$765>>0]|0;
+  $767 = $766 ^ $$71874;
+  $768 = $767&255;
+  $769 = (10432 + ($768)|0);
+  $770 = HEAP8[$769>>0]|0;
+  $771 = $770 ^ $$71842;
+  $772 = $771&255;
+  $773 = (10432 + ($772)|0);
+  $774 = HEAP8[$773>>0]|0;
+  $775 = $774 ^ $$71810;
+  $776 = $775&255;
+  $777 = (10688 + ($776<<2)|0);
+  $778 = HEAP32[$777>>2]|0;
+  $779 = (($0) + ($$019111915<<2)|0);
+  HEAP32[$779>>2] = $778;
+  $780 = (9664 + ($$019091916)|0);
+  $781 = HEAP8[$780>>0]|0;
+  $782 = $781 ^ $$71898;
+  $783 = $782&255;
+  $784 = (10176 + ($783)|0);
+  $785 = HEAP8[$784>>0]|0;
+  $786 = $785 ^ $$71866;
+  $787 = $786&255;
+  $788 = (10176 + ($787)|0);
+  $789 = HEAP8[$788>>0]|0;
+  $790 = $789 ^ $$71834;
+  $791 = $790&255;
+  $792 = (10432 + ($791)|0);
+  $793 = HEAP8[$792>>0]|0;
+  $794 = $793 ^ $$71802;
+  $795 = $794&255;
+  $796 = (11712 + ($795<<2)|0);
+  $797 = HEAP32[$796>>2]|0;
+  $798 = (((($0)) + 1024|0) + ($$019111915<<2)|0);
+  HEAP32[$798>>2] = $797;
+  $799 = $781 ^ $$71890;
+  $800 = $799&255;
+  $801 = (10432 + ($800)|0);
+  $802 = HEAP8[$801>>0]|0;
+  $803 = $802 ^ $$71858;
+  $804 = $803&255;
+  $805 = (10432 + ($804)|0);
+  $806 = HEAP8[$805>>0]|0;
+  $807 = $806 ^ $$71826;
+  $808 = $807&255;
+  $809 = (10176 + ($808)|0);
+  $810 = HEAP8[$809>>0]|0;
+  $811 = $810 ^ $$71794;
+  $812 = $811&255;
+  $813 = (12736 + ($812<<2)|0);
+  $814 = HEAP32[$813>>2]|0;
+  $815 = (((($0)) + 2048|0) + ($$019111915<<2)|0);
+  HEAP32[$815>>2] = $814;
+  $816 = $762 ^ $$71882;
+  $817 = $816&255;
+  $818 = (10432 + ($817)|0);
+  $819 = HEAP8[$818>>0]|0;
+  $820 = $819 ^ $$71850;
+  $821 = $820&255;
+  $822 = (10176 + ($821)|0);
+  $823 = HEAP8[$822>>0]|0;
+  $824 = $823 ^ $$71818;
+  $825 = $824&255;
+  $826 = (10176 + ($825)|0);
+  $827 = HEAP8[$826>>0]|0;
+  $828 = $827 ^ $$7;
+  $829 = $828&255;
+  $830 = (13760 + ($829<<2)|0);
+  $831 = HEAP32[$830>>2]|0;
+  $832 = (((($0)) + 3072|0) + ($$019111915<<2)|0);
+  HEAP32[$832>>2] = $831;
+  $833 = (($$019111915) + 1)|0;
+  $834 = (($$019091916) + 2)|0;
+  $835 = (($$019071917) + 2)|0;
+  $exitcond = ($833|0)==(256);
+  if ($exitcond) {
+   break;
+  } else {
+   $$019071917 = $835;$$019091916 = $834;$$019111915 = $833;
+  }
+ }
+ $836 = HEAP8[$577>>0]|0;
+ $837 = $836 ^ 117;
+ $838 = $837&255;
+ $839 = (10176 + ($838)|0);
+ $840 = HEAP8[$839>>0]|0;
+ $841 = HEAP8[$393>>0]|0;
+ $842 = $841 ^ $840;
+ $843 = $842&255;
+ $844 = (10432 + ($843)|0);
+ $845 = HEAP8[$844>>0]|0;
+ $846 = HEAP8[$208>>0]|0;
+ $847 = $846 ^ $845;
+ $848 = $847&255;
+ $849 = (10432 + ($848)|0);
+ $850 = HEAP8[$849>>0]|0;
+ $851 = HEAP8[$1>>0]|0;
+ $852 = $851 ^ $850;
+ $853 = $852&255;
+ $854 = (10688 + ($853<<2)|0);
+ $855 = HEAP32[$854>>2]|0;
+ $856 = HEAP8[$593>>0]|0;
+ $857 = $856 ^ -87;
+ $858 = $857&255;
+ $859 = (10176 + ($858)|0);
+ $860 = HEAP8[$859>>0]|0;
+ $861 = HEAP8[$409>>0]|0;
+ $862 = $861 ^ $860;
+ $863 = $862&255;
+ $864 = (10176 + ($863)|0);
+ $865 = HEAP8[$864>>0]|0;
+ $866 = HEAP8[$224>>0]|0;
+ $867 = $866 ^ $865;
+ $868 = $867&255;
+ $869 = (10432 + ($868)|0);
+ $870 = HEAP8[$869>>0]|0;
+ $871 = HEAP8[$40>>0]|0;
+ $872 = $871 ^ $870;
+ $873 = $872&255;
+ $874 = (11712 + ($873<<2)|0);
+ $875 = HEAP32[$874>>2]|0;
+ $876 = $875 ^ $855;
+ $877 = HEAP8[$617>>0]|0;
+ $878 = $877 ^ -87;
+ $879 = $878&255;
+ $880 = (10432 + ($879)|0);
+ $881 = HEAP8[$880>>0]|0;
+ $882 = HEAP8[$433>>0]|0;
+ $883 = $882 ^ $881;
+ $884 = $883&255;
+ $885 = (10432 + ($884)|0);
+ $886 = HEAP8[$885>>0]|0;
+ $887 = HEAP8[$248>>0]|0;
+ $888 = $887 ^ $886;
+ $889 = $888&255;
+ $890 = (10176 + ($889)|0);
+ $891 = HEAP8[$890>>0]|0;
+ $892 = HEAP8[$64>>0]|0;
+ $893 = $892 ^ $891;
+ $894 = $893&255;
+ $895 = (12736 + ($894<<2)|0);
+ $896 = HEAP32[$895>>2]|0;
+ $897 = $876 ^ $896;
+ $898 = HEAP8[$641>>0]|0;
+ $899 = $898 ^ 117;
+ $900 = $899&255;
+ $901 = (10432 + ($900)|0);
+ $902 = HEAP8[$901>>0]|0;
+ $903 = HEAP8[$457>>0]|0;
+ $904 = $903 ^ $902;
+ $905 = $904&255;
+ $906 = (10176 + ($905)|0);
+ $907 = HEAP8[$906>>0]|0;
+ $908 = HEAP8[$272>>0]|0;
+ $909 = $908 ^ $907;
+ $910 = $909&255;
+ $911 = (10176 + ($910)|0);
+ $912 = HEAP8[$911>>0]|0;
+ $913 = HEAP8[$88>>0]|0;
+ $914 = $913 ^ $912;
+ $915 = $914&255;
+ $916 = (13760 + ($915<<2)|0);
+ $917 = HEAP32[$916>>2]|0;
+ $918 = $897 ^ $917;
+ $919 = HEAP8[$665>>0]|0;
+ $920 = $919 ^ -13;
+ $921 = $920&255;
+ $922 = (10176 + ($921)|0);
+ $923 = HEAP8[$922>>0]|0;
+ $924 = HEAP8[$481>>0]|0;
+ $925 = $924 ^ $923;
+ $926 = $925&255;
+ $927 = (10432 + ($926)|0);
+ $928 = HEAP8[$927>>0]|0;
+ $929 = HEAP8[$296>>0]|0;
+ $930 = $929 ^ $928;
+ $931 = $930&255;
+ $932 = (10432 + ($931)|0);
+ $933 = HEAP8[$932>>0]|0;
+ $934 = HEAP8[$112>>0]|0;
+ $935 = $934 ^ $933;
+ $936 = $935&255;
+ $937 = (10688 + ($936<<2)|0);
+ $938 = HEAP32[$937>>2]|0;
+ $939 = HEAP8[$689>>0]|0;
+ $940 = $939 ^ 103;
+ $941 = $940&255;
+ $942 = (10176 + ($941)|0);
+ $943 = HEAP8[$942>>0]|0;
+ $944 = HEAP8[$505>>0]|0;
+ $945 = $944 ^ $943;
+ $946 = $945&255;
+ $947 = (10176 + ($946)|0);
+ $948 = HEAP8[$947>>0]|0;
+ $949 = HEAP8[$320>>0]|0;
+ $950 = $949 ^ $948;
+ $951 = $950&255;
+ $952 = (10432 + ($951)|0);
+ $953 = HEAP8[$952>>0]|0;
+ $954 = HEAP8[$136>>0]|0;
+ $955 = $954 ^ $953;
+ $956 = $955&255;
+ $957 = (11712 + ($956<<2)|0);
+ $958 = HEAP32[$957>>2]|0;
+ $959 = $958 ^ $938;
+ $960 = HEAP8[$713>>0]|0;
+ $961 = $960 ^ 103;
+ $962 = $961&255;
+ $963 = (10432 + ($962)|0);
+ $964 = HEAP8[$963>>0]|0;
+ $965 = HEAP8[$529>>0]|0;
+ $966 = $965 ^ $964;
+ $967 = $966&255;
+ $968 = (10432 + ($967)|0);
+ $969 = HEAP8[$968>>0]|0;
+ $970 = HEAP8[$344>>0]|0;
+ $971 = $970 ^ $969;
+ $972 = $971&255;
+ $973 = (10176 + ($972)|0);
+ $974 = HEAP8[$973>>0]|0;
+ $975 = HEAP8[$160>>0]|0;
+ $976 = $975 ^ $974;
+ $977 = $976&255;
+ $978 = (12736 + ($977<<2)|0);
+ $979 = HEAP32[$978>>2]|0;
+ $980 = $959 ^ $979;
+ $981 = HEAP8[$737>>0]|0;
+ $982 = $981 ^ -13;
+ $983 = $982&255;
+ $984 = (10432 + ($983)|0);
+ $985 = HEAP8[$984>>0]|0;
+ $986 = HEAP8[$553>>0]|0;
+ $987 = $986 ^ $985;
+ $988 = $987&255;
+ $989 = (10176 + ($988)|0);
+ $990 = HEAP8[$989>>0]|0;
+ $991 = HEAP8[$368>>0]|0;
+ $992 = $991 ^ $990;
+ $993 = $992&255;
+ $994 = (10176 + ($993)|0);
+ $995 = HEAP8[$994>>0]|0;
+ $996 = HEAP8[$184>>0]|0;
+ $997 = $996 ^ $995;
+ $998 = $997&255;
+ $999 = (13760 + ($998<<2)|0);
+ $1000 = HEAP32[$999>>2]|0;
+ $1001 = $980 ^ $1000;
+ $1002 = $1001 << 8;
+ $1003 = $1001 >>> 24;
+ $1004 = $1002 | $1003;
+ $1005 = (($1004) + ($918))|0;
+ $1006 = (($1005) + ($1004))|0;
+ $1007 = ((($0)) + 4096|0);
+ HEAP32[$1007>>2] = $1005;
+ $1008 = $1006 << 9;
+ $1009 = $1006 >>> 23;
+ $1010 = $1008 | $1009;
+ $1011 = ((($0)) + 4100|0);
+ HEAP32[$1011>>2] = $1010;
+ $1012 = HEAP8[$577>>0]|0;
+ $1013 = $1012 ^ -58;
+ $1014 = $1013&255;
+ $1015 = (10176 + ($1014)|0);
+ $1016 = HEAP8[$1015>>0]|0;
+ $1017 = HEAP8[$393>>0]|0;
+ $1018 = $1017 ^ $1016;
+ $1019 = $1018&255;
+ $1020 = (10432 + ($1019)|0);
+ $1021 = HEAP8[$1020>>0]|0;
+ $1022 = HEAP8[$208>>0]|0;
+ $1023 = $1022 ^ $1021;
+ $1024 = $1023&255;
+ $1025 = (10432 + ($1024)|0);
+ $1026 = HEAP8[$1025>>0]|0;
+ $1027 = HEAP8[$1>>0]|0;
+ $1028 = $1027 ^ $1026;
+ $1029 = $1028&255;
+ $1030 = (10688 + ($1029<<2)|0);
+ $1031 = HEAP32[$1030>>2]|0;
+ $1032 = HEAP8[$593>>0]|0;
+ $1033 = $1032 ^ -77;
+ $1034 = $1033&255;
+ $1035 = (10176 + ($1034)|0);
+ $1036 = HEAP8[$1035>>0]|0;
+ $1037 = HEAP8[$409>>0]|0;
+ $1038 = $1037 ^ $1036;
+ $1039 = $1038&255;
+ $1040 = (10176 + ($1039)|0);
+ $1041 = HEAP8[$1040>>0]|0;
+ $1042 = HEAP8[$224>>0]|0;
+ $1043 = $1042 ^ $1041;
+ $1044 = $1043&255;
+ $1045 = (10432 + ($1044)|0);
+ $1046 = HEAP8[$1045>>0]|0;
+ $1047 = HEAP8[$40>>0]|0;
+ $1048 = $1047 ^ $1046;
+ $1049 = $1048&255;
+ $1050 = (11712 + ($1049<<2)|0);
+ $1051 = HEAP32[$1050>>2]|0;
+ $1052 = $1051 ^ $1031;
+ $1053 = HEAP8[$617>>0]|0;
+ $1054 = $1053 ^ -77;
+ $1055 = $1054&255;
+ $1056 = (10432 + ($1055)|0);
+ $1057 = HEAP8[$1056>>0]|0;
+ $1058 = HEAP8[$433>>0]|0;
+ $1059 = $1058 ^ $1057;
+ $1060 = $1059&255;
+ $1061 = (10432 + ($1060)|0);
+ $1062 = HEAP8[$1061>>0]|0;
+ $1063 = HEAP8[$248>>0]|0;
+ $1064 = $1063 ^ $1062;
+ $1065 = $1064&255;
+ $1066 = (10176 + ($1065)|0);
+ $1067 = HEAP8[$1066>>0]|0;
+ $1068 = HEAP8[$64>>0]|0;
+ $1069 = $1068 ^ $1067;
+ $1070 = $1069&255;
+ $1071 = (12736 + ($1070<<2)|0);
+ $1072 = HEAP32[$1071>>2]|0;
+ $1073 = $1052 ^ $1072;
+ $1074 = HEAP8[$641>>0]|0;
+ $1075 = $1074 ^ -58;
+ $1076 = $1075&255;
+ $1077 = (10432 + ($1076)|0);
+ $1078 = HEAP8[$1077>>0]|0;
+ $1079 = HEAP8[$457>>0]|0;
+ $1080 = $1079 ^ $1078;
+ $1081 = $1080&255;
+ $1082 = (10176 + ($1081)|0);
+ $1083 = HEAP8[$1082>>0]|0;
+ $1084 = HEAP8[$272>>0]|0;
+ $1085 = $1084 ^ $1083;
+ $1086 = $1085&255;
+ $1087 = (10176 + ($1086)|0);
+ $1088 = HEAP8[$1087>>0]|0;
+ $1089 = HEAP8[$88>>0]|0;
+ $1090 = $1089 ^ $1088;
+ $1091 = $1090&255;
+ $1092 = (13760 + ($1091<<2)|0);
+ $1093 = HEAP32[$1092>>2]|0;
+ $1094 = $1073 ^ $1093;
+ $1095 = HEAP8[$665>>0]|0;
+ $1096 = $1095 ^ -12;
+ $1097 = $1096&255;
+ $1098 = (10176 + ($1097)|0);
+ $1099 = HEAP8[$1098>>0]|0;
+ $1100 = HEAP8[$481>>0]|0;
+ $1101 = $1100 ^ $1099;
+ $1102 = $1101&255;
+ $1103 = (10432 + ($1102)|0);
+ $1104 = HEAP8[$1103>>0]|0;
+ $1105 = HEAP8[$296>>0]|0;
+ $1106 = $1105 ^ $1104;
+ $1107 = $1106&255;
+ $1108 = (10432 + ($1107)|0);
+ $1109 = HEAP8[$1108>>0]|0;
+ $1110 = HEAP8[$112>>0]|0;
+ $1111 = $1110 ^ $1109;
+ $1112 = $1111&255;
+ $1113 = (10688 + ($1112<<2)|0);
+ $1114 = HEAP32[$1113>>2]|0;
+ $1115 = HEAP8[$689>>0]|0;
+ $1116 = $1115 ^ -24;
+ $1117 = $1116&255;
+ $1118 = (10176 + ($1117)|0);
+ $1119 = HEAP8[$1118>>0]|0;
+ $1120 = HEAP8[$505>>0]|0;
+ $1121 = $1120 ^ $1119;
+ $1122 = $1121&255;
+ $1123 = (10176 + ($1122)|0);
+ $1124 = HEAP8[$1123>>0]|0;
+ $1125 = HEAP8[$320>>0]|0;
+ $1126 = $1125 ^ $1124;
+ $1127 = $1126&255;
+ $1128 = (10432 + ($1127)|0);
+ $1129 = HEAP8[$1128>>0]|0;
+ $1130 = HEAP8[$136>>0]|0;
+ $1131 = $1130 ^ $1129;
+ $1132 = $1131&255;
+ $1133 = (11712 + ($1132<<2)|0);
+ $1134 = HEAP32[$1133>>2]|0;
+ $1135 = $1134 ^ $1114;
+ $1136 = HEAP8[$713>>0]|0;
+ $1137 = $1136 ^ -24;
+ $1138 = $1137&255;
+ $1139 = (10432 + ($1138)|0);
+ $1140 = HEAP8[$1139>>0]|0;
+ $1141 = HEAP8[$529>>0]|0;
+ $1142 = $1141 ^ $1140;
+ $1143 = $1142&255;
+ $1144 = (10432 + ($1143)|0);
+ $1145 = HEAP8[$1144>>0]|0;
+ $1146 = HEAP8[$344>>0]|0;
+ $1147 = $1146 ^ $1145;
+ $1148 = $1147&255;
+ $1149 = (10176 + ($1148)|0);
+ $1150 = HEAP8[$1149>>0]|0;
+ $1151 = HEAP8[$160>>0]|0;
+ $1152 = $1151 ^ $1150;
+ $1153 = $1152&255;
+ $1154 = (12736 + ($1153<<2)|0);
+ $1155 = HEAP32[$1154>>2]|0;
+ $1156 = $1135 ^ $1155;
+ $1157 = HEAP8[$737>>0]|0;
+ $1158 = $1157 ^ -12;
+ $1159 = $1158&255;
+ $1160 = (10432 + ($1159)|0);
+ $1161 = HEAP8[$1160>>0]|0;
+ $1162 = HEAP8[$553>>0]|0;
+ $1163 = $1162 ^ $1161;
+ $1164 = $1163&255;
+ $1165 = (10176 + ($1164)|0);
+ $1166 = HEAP8[$1165>>0]|0;
+ $1167 = HEAP8[$368>>0]|0;
+ $1168 = $1167 ^ $1166;
+ $1169 = $1168&255;
+ $1170 = (10176 + ($1169)|0);
+ $1171 = HEAP8[$1170>>0]|0;
+ $1172 = HEAP8[$184>>0]|0;
+ $1173 = $1172 ^ $1171;
+ $1174 = $1173&255;
+ $1175 = (13760 + ($1174<<2)|0);
+ $1176 = HEAP32[$1175>>2]|0;
+ $1177 = $1156 ^ $1176;
+ $1178 = $1177 << 8;
+ $1179 = $1177 >>> 24;
+ $1180 = $1178 | $1179;
+ $1181 = (($1180) + ($1094))|0;
+ $1182 = (($1181) + ($1180))|0;
+ $1183 = ((($0)) + 4104|0);
+ HEAP32[$1183>>2] = $1181;
+ $1184 = $1182 << 9;
+ $1185 = $1182 >>> 23;
+ $1186 = $1184 | $1185;
+ $1187 = ((($0)) + 4108|0);
+ HEAP32[$1187>>2] = $1186;
+ $1188 = HEAP8[$577>>0]|0;
+ $1189 = $1188 ^ -37;
+ $1190 = $1189&255;
+ $1191 = (10176 + ($1190)|0);
+ $1192 = HEAP8[$1191>>0]|0;
+ $1193 = HEAP8[$393>>0]|0;
+ $1194 = $1193 ^ $1192;
+ $1195 = $1194&255;
+ $1196 = (10432 + ($1195)|0);
+ $1197 = HEAP8[$1196>>0]|0;
+ $1198 = HEAP8[$208>>0]|0;
+ $1199 = $1198 ^ $1197;
+ $1200 = $1199&255;
+ $1201 = (10432 + ($1200)|0);
+ $1202 = HEAP8[$1201>>0]|0;
+ $1203 = HEAP8[$1>>0]|0;
+ $1204 = $1203 ^ $1202;
+ $1205 = $1204&255;
+ $1206 = (10688 + ($1205<<2)|0);
+ $1207 = HEAP32[$1206>>2]|0;
+ $1208 = HEAP8[$593>>0]|0;
+ $1209 = $1208 ^ 4;
+ $1210 = $1209&255;
+ $1211 = (10176 + ($1210)|0);
+ $1212 = HEAP8[$1211>>0]|0;
+ $1213 = HEAP8[$409>>0]|0;
+ $1214 = $1213 ^ $1212;
+ $1215 = $1214&255;
+ $1216 = (10176 + ($1215)|0);
+ $1217 = HEAP8[$1216>>0]|0;
+ $1218 = HEAP8[$224>>0]|0;
+ $1219 = $1218 ^ $1217;
+ $1220 = $1219&255;
+ $1221 = (10432 + ($1220)|0);
+ $1222 = HEAP8[$1221>>0]|0;
+ $1223 = HEAP8[$40>>0]|0;
+ $1224 = $1223 ^ $1222;
+ $1225 = $1224&255;
+ $1226 = (11712 + ($1225<<2)|0);
+ $1227 = HEAP32[$1226>>2]|0;
+ $1228 = $1227 ^ $1207;
+ $1229 = HEAP8[$617>>0]|0;
+ $1230 = $1229 ^ 4;
+ $1231 = $1230&255;
+ $1232 = (10432 + ($1231)|0);
+ $1233 = HEAP8[$1232>>0]|0;
+ $1234 = HEAP8[$433>>0]|0;
+ $1235 = $1234 ^ $1233;
+ $1236 = $1235&255;
+ $1237 = (10432 + ($1236)|0);
+ $1238 = HEAP8[$1237>>0]|0;
+ $1239 = HEAP8[$248>>0]|0;
+ $1240 = $1239 ^ $1238;
+ $1241 = $1240&255;
+ $1242 = (10176 + ($1241)|0);
+ $1243 = HEAP8[$1242>>0]|0;
+ $1244 = HEAP8[$64>>0]|0;
+ $1245 = $1244 ^ $1243;
+ $1246 = $1245&255;
+ $1247 = (12736 + ($1246<<2)|0);
+ $1248 = HEAP32[$1247>>2]|0;
+ $1249 = $1228 ^ $1248;
+ $1250 = HEAP8[$641>>0]|0;
+ $1251 = $1250 ^ -37;
+ $1252 = $1251&255;
+ $1253 = (10432 + ($1252)|0);
+ $1254 = HEAP8[$1253>>0]|0;
+ $1255 = HEAP8[$457>>0]|0;
+ $1256 = $1255 ^ $1254;
+ $1257 = $1256&255;
+ $1258 = (10176 + ($1257)|0);
+ $1259 = HEAP8[$1258>>0]|0;
+ $1260 = HEAP8[$272>>0]|0;
+ $1261 = $1260 ^ $1259;
+ $1262 = $1261&255;
+ $1263 = (10176 + ($1262)|0);
+ $1264 = HEAP8[$1263>>0]|0;
+ $1265 = HEAP8[$88>>0]|0;
+ $1266 = $1265 ^ $1264;
+ $1267 = $1266&255;
+ $1268 = (13760 + ($1267<<2)|0);
+ $1269 = HEAP32[$1268>>2]|0;
+ $1270 = $1249 ^ $1269;
+ $1271 = HEAP8[$665>>0]|0;
+ $1272 = $1271 ^ 123;
+ $1273 = $1272&255;
+ $1274 = (10176 + ($1273)|0);
+ $1275 = HEAP8[$1274>>0]|0;
+ $1276 = HEAP8[$481>>0]|0;
+ $1277 = $1276 ^ $1275;
+ $1278 = $1277&255;
+ $1279 = (10432 + ($1278)|0);
+ $1280 = HEAP8[$1279>>0]|0;
+ $1281 = HEAP8[$296>>0]|0;
+ $1282 = $1281 ^ $1280;
+ $1283 = $1282&255;
+ $1284 = (10432 + ($1283)|0);
+ $1285 = HEAP8[$1284>>0]|0;
+ $1286 = HEAP8[$112>>0]|0;
+ $1287 = $1286 ^ $1285;
+ $1288 = $1287&255;
+ $1289 = (10688 + ($1288<<2)|0);
+ $1290 = HEAP32[$1289>>2]|0;
+ $1291 = HEAP8[$689>>0]|0;
+ $1292 = $1291 ^ -3;
+ $1293 = $1292&255;
+ $1294 = (10176 + ($1293)|0);
+ $1295 = HEAP8[$1294>>0]|0;
+ $1296 = HEAP8[$505>>0]|0;
+ $1297 = $1296 ^ $1295;
+ $1298 = $1297&255;
+ $1299 = (10176 + ($1298)|0);
+ $1300 = HEAP8[$1299>>0]|0;
+ $1301 = HEAP8[$320>>0]|0;
+ $1302 = $1301 ^ $1300;
+ $1303 = $1302&255;
+ $1304 = (10432 + ($1303)|0);
+ $1305 = HEAP8[$1304>>0]|0;
+ $1306 = HEAP8[$136>>0]|0;
+ $1307 = $1306 ^ $1305;
+ $1308 = $1307&255;
+ $1309 = (11712 + ($1308<<2)|0);
+ $1310 = HEAP32[$1309>>2]|0;
+ $1311 = $1310 ^ $1290;
+ $1312 = HEAP8[$713>>0]|0;
+ $1313 = $1312 ^ -3;
+ $1314 = $1313&255;
+ $1315 = (10432 + ($1314)|0);
+ $1316 = HEAP8[$1315>>0]|0;
+ $1317 = HEAP8[$529>>0]|0;
+ $1318 = $1317 ^ $1316;
+ $1319 = $1318&255;
+ $1320 = (10432 + ($1319)|0);
+ $1321 = HEAP8[$1320>>0]|0;
+ $1322 = HEAP8[$344>>0]|0;
+ $1323 = $1322 ^ $1321;
+ $1324 = $1323&255;
+ $1325 = (10176 + ($1324)|0);
+ $1326 = HEAP8[$1325>>0]|0;
+ $1327 = HEAP8[$160>>0]|0;
+ $1328 = $1327 ^ $1326;
+ $1329 = $1328&255;
+ $1330 = (12736 + ($1329<<2)|0);
+ $1331 = HEAP32[$1330>>2]|0;
+ $1332 = $1311 ^ $1331;
+ $1333 = HEAP8[$737>>0]|0;
+ $1334 = $1333 ^ 123;
+ $1335 = $1334&255;
+ $1336 = (10432 + ($1335)|0);
+ $1337 = HEAP8[$1336>>0]|0;
+ $1338 = HEAP8[$553>>0]|0;
+ $1339 = $1338 ^ $1337;
+ $1340 = $1339&255;
+ $1341 = (10176 + ($1340)|0);
+ $1342 = HEAP8[$1341>>0]|0;
+ $1343 = HEAP8[$368>>0]|0;
+ $1344 = $1343 ^ $1342;
+ $1345 = $1344&255;
+ $1346 = (10176 + ($1345)|0);
+ $1347 = HEAP8[$1346>>0]|0;
+ $1348 = HEAP8[$184>>0]|0;
+ $1349 = $1348 ^ $1347;
+ $1350 = $1349&255;
+ $1351 = (13760 + ($1350<<2)|0);
+ $1352 = HEAP32[$1351>>2]|0;
+ $1353 = $1332 ^ $1352;
+ $1354 = $1353 << 8;
+ $1355 = $1353 >>> 24;
+ $1356 = $1354 | $1355;
+ $1357 = (($1356) + ($1270))|0;
+ $1358 = (($1357) + ($1356))|0;
+ $1359 = ((($0)) + 4112|0);
+ HEAP32[$1359>>2] = $1357;
+ $1360 = $1358 << 9;
+ $1361 = $1358 >>> 23;
+ $1362 = $1360 | $1361;
+ $1363 = ((($0)) + 4116|0);
+ HEAP32[$1363>>2] = $1362;
+ $1364 = HEAP8[$577>>0]|0;
+ $1365 = $1364 ^ -5;
+ $1366 = $1365&255;
+ $1367 = (10176 + ($1366)|0);
+ $1368 = HEAP8[$1367>>0]|0;
+ $1369 = HEAP8[$393>>0]|0;
+ $1370 = $1369 ^ $1368;
+ $1371 = $1370&255;
+ $1372 = (10432 + ($1371)|0);
+ $1373 = HEAP8[$1372>>0]|0;
+ $1374 = HEAP8[$208>>0]|0;
+ $1375 = $1374 ^ $1373;
+ $1376 = $1375&255;
+ $1377 = (10432 + ($1376)|0);
+ $1378 = HEAP8[$1377>>0]|0;
+ $1379 = HEAP8[$1>>0]|0;
+ $1380 = $1379 ^ $1378;
+ $1381 = $1380&255;
+ $1382 = (10688 + ($1381<<2)|0);
+ $1383 = HEAP32[$1382>>2]|0;
+ $1384 = HEAP8[$593>>0]|0;
+ $1385 = $1384 ^ -93;
+ $1386 = $1385&255;
+ $1387 = (10176 + ($1386)|0);
+ $1388 = HEAP8[$1387>>0]|0;
+ $1389 = HEAP8[$409>>0]|0;
+ $1390 = $1389 ^ $1388;
+ $1391 = $1390&255;
+ $1392 = (10176 + ($1391)|0);
+ $1393 = HEAP8[$1392>>0]|0;
+ $1394 = HEAP8[$224>>0]|0;
+ $1395 = $1394 ^ $1393;
+ $1396 = $1395&255;
+ $1397 = (10432 + ($1396)|0);
+ $1398 = HEAP8[$1397>>0]|0;
+ $1399 = HEAP8[$40>>0]|0;
+ $1400 = $1399 ^ $1398;
+ $1401 = $1400&255;
+ $1402 = (11712 + ($1401<<2)|0);
+ $1403 = HEAP32[$1402>>2]|0;
+ $1404 = $1403 ^ $1383;
+ $1405 = HEAP8[$617>>0]|0;
+ $1406 = $1405 ^ -93;
+ $1407 = $1406&255;
+ $1408 = (10432 + ($1407)|0);
+ $1409 = HEAP8[$1408>>0]|0;
+ $1410 = HEAP8[$433>>0]|0;
+ $1411 = $1410 ^ $1409;
+ $1412 = $1411&255;
+ $1413 = (10432 + ($1412)|0);
+ $1414 = HEAP8[$1413>>0]|0;
+ $1415 = HEAP8[$248>>0]|0;
+ $1416 = $1415 ^ $1414;
+ $1417 = $1416&255;
+ $1418 = (10176 + ($1417)|0);
+ $1419 = HEAP8[$1418>>0]|0;
+ $1420 = HEAP8[$64>>0]|0;
+ $1421 = $1420 ^ $1419;
+ $1422 = $1421&255;
+ $1423 = (12736 + ($1422<<2)|0);
+ $1424 = HEAP32[$1423>>2]|0;
+ $1425 = $1404 ^ $1424;
+ $1426 = HEAP8[$641>>0]|0;
+ $1427 = $1426 ^ -5;
+ $1428 = $1427&255;
+ $1429 = (10432 + ($1428)|0);
+ $1430 = HEAP8[$1429>>0]|0;
+ $1431 = HEAP8[$457>>0]|0;
+ $1432 = $1431 ^ $1430;
+ $1433 = $1432&255;
+ $1434 = (10176 + ($1433)|0);
+ $1435 = HEAP8[$1434>>0]|0;
+ $1436 = HEAP8[$272>>0]|0;
+ $1437 = $1436 ^ $1435;
+ $1438 = $1437&255;
+ $1439 = (10176 + ($1438)|0);
+ $1440 = HEAP8[$1439>>0]|0;
+ $1441 = HEAP8[$88>>0]|0;
+ $1442 = $1441 ^ $1440;
+ $1443 = $1442&255;
+ $1444 = (13760 + ($1443<<2)|0);
+ $1445 = HEAP32[$1444>>2]|0;
+ $1446 = $1425 ^ $1445;
+ $1447 = HEAP8[$665>>0]|0;
+ $1448 = $1447 ^ -56;
+ $1449 = $1448&255;
+ $1450 = (10176 + ($1449)|0);
+ $1451 = HEAP8[$1450>>0]|0;
+ $1452 = HEAP8[$481>>0]|0;
+ $1453 = $1452 ^ $1451;
+ $1454 = $1453&255;
+ $1455 = (10432 + ($1454)|0);
+ $1456 = HEAP8[$1455>>0]|0;
+ $1457 = HEAP8[$296>>0]|0;
+ $1458 = $1457 ^ $1456;
+ $1459 = $1458&255;
+ $1460 = (10432 + ($1459)|0);
+ $1461 = HEAP8[$1460>>0]|0;
+ $1462 = HEAP8[$112>>0]|0;
+ $1463 = $1462 ^ $1461;
+ $1464 = $1463&255;
+ $1465 = (10688 + ($1464<<2)|0);
+ $1466 = HEAP32[$1465>>2]|0;
+ $1467 = HEAP8[$689>>0]|0;
+ $1468 = $1467 ^ 118;
+ $1469 = $1468&255;
+ $1470 = (10176 + ($1469)|0);
+ $1471 = HEAP8[$1470>>0]|0;
+ $1472 = HEAP8[$505>>0]|0;
+ $1473 = $1472 ^ $1471;
+ $1474 = $1473&255;
+ $1475 = (10176 + ($1474)|0);
+ $1476 = HEAP8[$1475>>0]|0;
+ $1477 = HEAP8[$320>>0]|0;
+ $1478 = $1477 ^ $1476;
+ $1479 = $1478&255;
+ $1480 = (10432 + ($1479)|0);
+ $1481 = HEAP8[$1480>>0]|0;
+ $1482 = HEAP8[$136>>0]|0;
+ $1483 = $1482 ^ $1481;
+ $1484 = $1483&255;
+ $1485 = (11712 + ($1484<<2)|0);
+ $1486 = HEAP32[$1485>>2]|0;
+ $1487 = $1486 ^ $1466;
+ $1488 = HEAP8[$713>>0]|0;
+ $1489 = $1488 ^ 118;
+ $1490 = $1489&255;
+ $1491 = (10432 + ($1490)|0);
+ $1492 = HEAP8[$1491>>0]|0;
+ $1493 = HEAP8[$529>>0]|0;
+ $1494 = $1493 ^ $1492;
+ $1495 = $1494&255;
+ $1496 = (10432 + ($1495)|0);
+ $1497 = HEAP8[$1496>>0]|0;
+ $1498 = HEAP8[$344>>0]|0;
+ $1499 = $1498 ^ $1497;
+ $1500 = $1499&255;
+ $1501 = (10176 + ($1500)|0);
+ $1502 = HEAP8[$1501>>0]|0;
+ $1503 = HEAP8[$160>>0]|0;
+ $1504 = $1503 ^ $1502;
+ $1505 = $1504&255;
+ $1506 = (12736 + ($1505<<2)|0);
+ $1507 = HEAP32[$1506>>2]|0;
+ $1508 = $1487 ^ $1507;
+ $1509 = HEAP8[$737>>0]|0;
+ $1510 = $1509 ^ -56;
+ $1511 = $1510&255;
+ $1512 = (10432 + ($1511)|0);
+ $1513 = HEAP8[$1512>>0]|0;
+ $1514 = HEAP8[$553>>0]|0;
+ $1515 = $1514 ^ $1513;
+ $1516 = $1515&255;
+ $1517 = (10176 + ($1516)|0);
+ $1518 = HEAP8[$1517>>0]|0;
+ $1519 = HEAP8[$368>>0]|0;
+ $1520 = $1519 ^ $1518;
+ $1521 = $1520&255;
+ $1522 = (10176 + ($1521)|0);
+ $1523 = HEAP8[$1522>>0]|0;
+ $1524 = HEAP8[$184>>0]|0;
+ $1525 = $1524 ^ $1523;
+ $1526 = $1525&255;
+ $1527 = (13760 + ($1526<<2)|0);
+ $1528 = HEAP32[$1527>>2]|0;
+ $1529 = $1508 ^ $1528;
+ $1530 = $1529 << 8;
+ $1531 = $1529 >>> 24;
+ $1532 = $1530 | $1531;
+ $1533 = (($1532) + ($1446))|0;
+ $1534 = (($1533) + ($1532))|0;
+ $1535 = ((($0)) + 4120|0);
+ HEAP32[$1535>>2] = $1533;
+ $1536 = $1534 << 9;
+ $1537 = $1534 >>> 23;
+ $1538 = $1536 | $1537;
+ $1539 = ((($0)) + 4124|0);
+ HEAP32[$1539>>2] = $1538;
+ $1540 = HEAP8[$577>>0]|0;
+ $1541 = $1540 ^ 74;
+ $1542 = $1541&255;
+ $1543 = (10176 + ($1542)|0);
+ $1544 = HEAP8[$1543>>0]|0;
+ $1545 = HEAP8[$393>>0]|0;
+ $1546 = $1545 ^ $1544;
+ $1547 = $1546&255;
+ $1548 = (10432 + ($1547)|0);
+ $1549 = HEAP8[$1548>>0]|0;
+ $1550 = HEAP8[$208>>0]|0;
+ $1551 = $1550 ^ $1549;
+ $1552 = $1551&255;
+ $1553 = (10432 + ($1552)|0);
+ $1554 = HEAP8[$1553>>0]|0;
+ $1555 = HEAP8[$1>>0]|0;
+ $1556 = $1555 ^ $1554;
+ $1557 = $1556&255;
+ $1558 = (10688 + ($1557<<2)|0);
+ $1559 = HEAP32[$1558>>2]|0;
+ $1560 = HEAP8[$593>>0]|0;
+ $1561 = $1560 ^ -102;
+ $1562 = $1561&255;
+ $1563 = (10176 + ($1562)|0);
+ $1564 = HEAP8[$1563>>0]|0;
+ $1565 = HEAP8[$409>>0]|0;
+ $1566 = $1565 ^ $1564;
+ $1567 = $1566&255;
+ $1568 = (10176 + ($1567)|0);
+ $1569 = HEAP8[$1568>>0]|0;
+ $1570 = HEAP8[$224>>0]|0;
+ $1571 = $1570 ^ $1569;
+ $1572 = $1571&255;
+ $1573 = (10432 + ($1572)|0);
+ $1574 = HEAP8[$1573>>0]|0;
+ $1575 = HEAP8[$40>>0]|0;
+ $1576 = $1575 ^ $1574;
+ $1577 = $1576&255;
+ $1578 = (11712 + ($1577<<2)|0);
+ $1579 = HEAP32[$1578>>2]|0;
+ $1580 = $1579 ^ $1559;
+ $1581 = HEAP8[$617>>0]|0;
+ $1582 = $1581 ^ -102;
+ $1583 = $1582&255;
+ $1584 = (10432 + ($1583)|0);
+ $1585 = HEAP8[$1584>>0]|0;
+ $1586 = HEAP8[$433>>0]|0;
+ $1587 = $1586 ^ $1585;
+ $1588 = $1587&255;
+ $1589 = (10432 + ($1588)|0);
+ $1590 = HEAP8[$1589>>0]|0;
+ $1591 = HEAP8[$248>>0]|0;
+ $1592 = $1591 ^ $1590;
+ $1593 = $1592&255;
+ $1594 = (10176 + ($1593)|0);
+ $1595 = HEAP8[$1594>>0]|0;
+ $1596 = HEAP8[$64>>0]|0;
+ $1597 = $1596 ^ $1595;
+ $1598 = $1597&255;
+ $1599 = (12736 + ($1598<<2)|0);
+ $1600 = HEAP32[$1599>>2]|0;
+ $1601 = $1580 ^ $1600;
+ $1602 = HEAP8[$641>>0]|0;
+ $1603 = $1602 ^ 74;
+ $1604 = $1603&255;
+ $1605 = (10432 + ($1604)|0);
+ $1606 = HEAP8[$1605>>0]|0;
+ $1607 = HEAP8[$457>>0]|0;
+ $1608 = $1607 ^ $1606;
+ $1609 = $1608&255;
+ $1610 = (10176 + ($1609)|0);
+ $1611 = HEAP8[$1610>>0]|0;
+ $1612 = HEAP8[$272>>0]|0;
+ $1613 = $1612 ^ $1611;
+ $1614 = $1613&255;
+ $1615 = (10176 + ($1614)|0);
+ $1616 = HEAP8[$1615>>0]|0;
+ $1617 = HEAP8[$88>>0]|0;
+ $1618 = $1617 ^ $1616;
+ $1619 = $1618&255;
+ $1620 = (13760 + ($1619<<2)|0);
+ $1621 = HEAP32[$1620>>2]|0;
+ $1622 = $1601 ^ $1621;
+ $1623 = HEAP8[$665>>0]|0;
+ $1624 = $1623 ^ -45;
+ $1625 = $1624&255;
+ $1626 = (10176 + ($1625)|0);
+ $1627 = HEAP8[$1626>>0]|0;
+ $1628 = HEAP8[$481>>0]|0;
+ $1629 = $1628 ^ $1627;
+ $1630 = $1629&255;
+ $1631 = (10432 + ($1630)|0);
+ $1632 = HEAP8[$1631>>0]|0;
+ $1633 = HEAP8[$296>>0]|0;
+ $1634 = $1633 ^ $1632;
+ $1635 = $1634&255;
+ $1636 = (10432 + ($1635)|0);
+ $1637 = HEAP8[$1636>>0]|0;
+ $1638 = HEAP8[$112>>0]|0;
+ $1639 = $1638 ^ $1637;
+ $1640 = $1639&255;
+ $1641 = (10688 + ($1640<<2)|0);
+ $1642 = HEAP32[$1641>>2]|0;
+ $1643 = HEAP8[$689>>0]|0;
+ $1644 = $1643 ^ -110;
+ $1645 = $1644&255;
+ $1646 = (10176 + ($1645)|0);
+ $1647 = HEAP8[$1646>>0]|0;
+ $1648 = HEAP8[$505>>0]|0;
+ $1649 = $1648 ^ $1647;
+ $1650 = $1649&255;
+ $1651 = (10176 + ($1650)|0);
+ $1652 = HEAP8[$1651>>0]|0;
+ $1653 = HEAP8[$320>>0]|0;
+ $1654 = $1653 ^ $1652;
+ $1655 = $1654&255;
+ $1656 = (10432 + ($1655)|0);
+ $1657 = HEAP8[$1656>>0]|0;
+ $1658 = HEAP8[$136>>0]|0;
+ $1659 = $1658 ^ $1657;
+ $1660 = $1659&255;
+ $1661 = (11712 + ($1660<<2)|0);
+ $1662 = HEAP32[$1661>>2]|0;
+ $1663 = $1662 ^ $1642;
+ $1664 = HEAP8[$713>>0]|0;
+ $1665 = $1664 ^ -110;
+ $1666 = $1665&255;
+ $1667 = (10432 + ($1666)|0);
+ $1668 = HEAP8[$1667>>0]|0;
+ $1669 = HEAP8[$529>>0]|0;
+ $1670 = $1669 ^ $1668;
+ $1671 = $1670&255;
+ $1672 = (10432 + ($1671)|0);
+ $1673 = HEAP8[$1672>>0]|0;
+ $1674 = HEAP8[$344>>0]|0;
+ $1675 = $1674 ^ $1673;
+ $1676 = $1675&255;
+ $1677 = (10176 + ($1676)|0);
+ $1678 = HEAP8[$1677>>0]|0;
+ $1679 = HEAP8[$160>>0]|0;
+ $1680 = $1679 ^ $1678;
+ $1681 = $1680&255;
+ $1682 = (12736 + ($1681<<2)|0);
+ $1683 = HEAP32[$1682>>2]|0;
+ $1684 = $1663 ^ $1683;
+ $1685 = HEAP8[$737>>0]|0;
+ $1686 = $1685 ^ -45;
+ $1687 = $1686&255;
+ $1688 = (10432 + ($1687)|0);
+ $1689 = HEAP8[$1688>>0]|0;
+ $1690 = HEAP8[$553>>0]|0;
+ $1691 = $1690 ^ $1689;
+ $1692 = $1691&255;
+ $1693 = (10176 + ($1692)|0);
+ $1694 = HEAP8[$1693>>0]|0;
+ $1695 = HEAP8[$368>>0]|0;
+ $1696 = $1695 ^ $1694;
+ $1697 = $1696&255;
+ $1698 = (10176 + ($1697)|0);
+ $1699 = HEAP8[$1698>>0]|0;
+ $1700 = HEAP8[$184>>0]|0;
+ $1701 = $1700 ^ $1699;
+ $1702 = $1701&255;
+ $1703 = (13760 + ($1702<<2)|0);
+ $1704 = HEAP32[$1703>>2]|0;
+ $1705 = $1684 ^ $1704;
+ $1706 = $1705 << 8;
+ $1707 = $1705 >>> 24;
+ $1708 = $1706 | $1707;
+ $1709 = (($1708) + ($1622))|0;
+ $1710 = (($1709) + ($1708))|0;
+ $1711 = ((($0)) + 4128|0);
+ HEAP32[$1711>>2] = $1709;
+ $1712 = $1710 << 9;
+ $1713 = $1710 >>> 23;
+ $1714 = $1712 | $1713;
+ $1715 = ((($0)) + 4132|0);
+ HEAP32[$1715>>2] = $1714;
+ $1716 = HEAP8[$577>>0]|0;
+ $1717 = $1716 ^ -26;
+ $1718 = $1717&255;
+ $1719 = (10176 + ($1718)|0);
+ $1720 = HEAP8[$1719>>0]|0;
+ $1721 = HEAP8[$393>>0]|0;
+ $1722 = $1721 ^ $1720;
+ $1723 = $1722&255;
+ $1724 = (10432 + ($1723)|0);
+ $1725 = HEAP8[$1724>>0]|0;
+ $1726 = HEAP8[$208>>0]|0;
+ $1727 = $1726 ^ $1725;
+ $1728 = $1727&255;
+ $1729 = (10432 + ($1728)|0);
+ $1730 = HEAP8[$1729>>0]|0;
+ $1731 = HEAP8[$1>>0]|0;
+ $1732 = $1731 ^ $1730;
+ $1733 = $1732&255;
+ $1734 = (10688 + ($1733<<2)|0);
+ $1735 = HEAP32[$1734>>2]|0;
+ $1736 = HEAP8[$593>>0]|0;
+ $1737 = $1736 ^ -128;
+ $1738 = $1737&255;
+ $1739 = (10176 + ($1738)|0);
+ $1740 = HEAP8[$1739>>0]|0;
+ $1741 = HEAP8[$409>>0]|0;
+ $1742 = $1741 ^ $1740;
+ $1743 = $1742&255;
+ $1744 = (10176 + ($1743)|0);
+ $1745 = HEAP8[$1744>>0]|0;
+ $1746 = HEAP8[$224>>0]|0;
+ $1747 = $1746 ^ $1745;
+ $1748 = $1747&255;
+ $1749 = (10432 + ($1748)|0);
+ $1750 = HEAP8[$1749>>0]|0;
+ $1751 = HEAP8[$40>>0]|0;
+ $1752 = $1751 ^ $1750;
+ $1753 = $1752&255;
+ $1754 = (11712 + ($1753<<2)|0);
+ $1755 = HEAP32[$1754>>2]|0;
+ $1756 = $1755 ^ $1735;
+ $1757 = HEAP8[$617>>0]|0;
+ $1758 = $1757 ^ -128;
+ $1759 = $1758&255;
+ $1760 = (10432 + ($1759)|0);
+ $1761 = HEAP8[$1760>>0]|0;
+ $1762 = HEAP8[$433>>0]|0;
+ $1763 = $1762 ^ $1761;
+ $1764 = $1763&255;
+ $1765 = (10432 + ($1764)|0);
+ $1766 = HEAP8[$1765>>0]|0;
+ $1767 = HEAP8[$248>>0]|0;
+ $1768 = $1767 ^ $1766;
+ $1769 = $1768&255;
+ $1770 = (10176 + ($1769)|0);
+ $1771 = HEAP8[$1770>>0]|0;
+ $1772 = HEAP8[$64>>0]|0;
+ $1773 = $1772 ^ $1771;
+ $1774 = $1773&255;
+ $1775 = (12736 + ($1774<<2)|0);
+ $1776 = HEAP32[$1775>>2]|0;
+ $1777 = $1756 ^ $1776;
+ $1778 = HEAP8[$641>>0]|0;
+ $1779 = $1778 ^ -26;
+ $1780 = $1779&255;
+ $1781 = (10432 + ($1780)|0);
+ $1782 = HEAP8[$1781>>0]|0;
+ $1783 = HEAP8[$457>>0]|0;
+ $1784 = $1783 ^ $1782;
+ $1785 = $1784&255;
+ $1786 = (10176 + ($1785)|0);
+ $1787 = HEAP8[$1786>>0]|0;
+ $1788 = HEAP8[$272>>0]|0;
+ $1789 = $1788 ^ $1787;
+ $1790 = $1789&255;
+ $1791 = (10176 + ($1790)|0);
+ $1792 = HEAP8[$1791>>0]|0;
+ $1793 = HEAP8[$88>>0]|0;
+ $1794 = $1793 ^ $1792;
+ $1795 = $1794&255;
+ $1796 = (13760 + ($1795<<2)|0);
+ $1797 = HEAP32[$1796>>2]|0;
+ $1798 = $1777 ^ $1797;
+ $1799 = HEAP8[$665>>0]|0;
+ $1800 = $1799 ^ 107;
+ $1801 = $1800&255;
+ $1802 = (10176 + ($1801)|0);
+ $1803 = HEAP8[$1802>>0]|0;
+ $1804 = HEAP8[$481>>0]|0;
+ $1805 = $1804 ^ $1803;
+ $1806 = $1805&255;
+ $1807 = (10432 + ($1806)|0);
+ $1808 = HEAP8[$1807>>0]|0;
+ $1809 = HEAP8[$296>>0]|0;
+ $1810 = $1809 ^ $1808;
+ $1811 = $1810&255;
+ $1812 = (10432 + ($1811)|0);
+ $1813 = HEAP8[$1812>>0]|0;
+ $1814 = HEAP8[$112>>0]|0;
+ $1815 = $1814 ^ $1813;
+ $1816 = $1815&255;
+ $1817 = (10688 + ($1816<<2)|0);
+ $1818 = HEAP32[$1817>>2]|0;
+ $1819 = HEAP8[$689>>0]|0;
+ $1820 = $1819 ^ 120;
+ $1821 = $1820&255;
+ $1822 = (10176 + ($1821)|0);
+ $1823 = HEAP8[$1822>>0]|0;
+ $1824 = HEAP8[$505>>0]|0;
+ $1825 = $1824 ^ $1823;
+ $1826 = $1825&255;
+ $1827 = (10176 + ($1826)|0);
+ $1828 = HEAP8[$1827>>0]|0;
+ $1829 = HEAP8[$320>>0]|0;
+ $1830 = $1829 ^ $1828;
+ $1831 = $1830&255;
+ $1832 = (10432 + ($1831)|0);
+ $1833 = HEAP8[$1832>>0]|0;
+ $1834 = HEAP8[$136>>0]|0;
+ $1835 = $1834 ^ $1833;
+ $1836 = $1835&255;
+ $1837 = (11712 + ($1836<<2)|0);
+ $1838 = HEAP32[$1837>>2]|0;
+ $1839 = $1838 ^ $1818;
+ $1840 = HEAP8[$713>>0]|0;
+ $1841 = $1840 ^ 120;
+ $1842 = $1841&255;
+ $1843 = (10432 + ($1842)|0);
+ $1844 = HEAP8[$1843>>0]|0;
+ $1845 = HEAP8[$529>>0]|0;
+ $1846 = $1845 ^ $1844;
+ $1847 = $1846&255;
+ $1848 = (10432 + ($1847)|0);
+ $1849 = HEAP8[$1848>>0]|0;
+ $1850 = HEAP8[$344>>0]|0;
+ $1851 = $1850 ^ $1849;
+ $1852 = $1851&255;
+ $1853 = (10176 + ($1852)|0);
+ $1854 = HEAP8[$1853>>0]|0;
+ $1855 = HEAP8[$160>>0]|0;
+ $1856 = $1855 ^ $1854;
+ $1857 = $1856&255;
+ $1858 = (12736 + ($1857<<2)|0);
+ $1859 = HEAP32[$1858>>2]|0;
+ $1860 = $1839 ^ $1859;
+ $1861 = HEAP8[$737>>0]|0;
+ $1862 = $1861 ^ 107;
+ $1863 = $1862&255;
+ $1864 = (10432 + ($1863)|0);
+ $1865 = HEAP8[$1864>>0]|0;
+ $1866 = HEAP8[$553>>0]|0;
+ $1867 = $1866 ^ $1865;
+ $1868 = $1867&255;
+ $1869 = (10176 + ($1868)|0);
+ $1870 = HEAP8[$1869>>0]|0;
+ $1871 = HEAP8[$368>>0]|0;
+ $1872 = $1871 ^ $1870;
+ $1873 = $1872&255;
+ $1874 = (10176 + ($1873)|0);
+ $1875 = HEAP8[$1874>>0]|0;
+ $1876 = HEAP8[$184>>0]|0;
+ $1877 = $1876 ^ $1875;
+ $1878 = $1877&255;
+ $1879 = (13760 + ($1878<<2)|0);
+ $1880 = HEAP32[$1879>>2]|0;
+ $1881 = $1860 ^ $1880;
+ $1882 = $1881 << 8;
+ $1883 = $1881 >>> 24;
+ $1884 = $1882 | $1883;
+ $1885 = (($1884) + ($1798))|0;
+ $1886 = (($1885) + ($1884))|0;
+ $1887 = ((($0)) + 4136|0);
+ HEAP32[$1887>>2] = $1885;
+ $1888 = $1886 << 9;
+ $1889 = $1886 >>> 23;
+ $1890 = $1888 | $1889;
+ $1891 = ((($0)) + 4140|0);
+ HEAP32[$1891>>2] = $1890;
+ $1892 = HEAP8[$577>>0]|0;
+ $1893 = $1892 ^ 69;
+ $1894 = $1893&255;
+ $1895 = (10176 + ($1894)|0);
+ $1896 = HEAP8[$1895>>0]|0;
+ $1897 = HEAP8[$393>>0]|0;
+ $1898 = $1897 ^ $1896;
+ $1899 = $1898&255;
+ $1900 = (10432 + ($1899)|0);
+ $1901 = HEAP8[$1900>>0]|0;
+ $1902 = HEAP8[$208>>0]|0;
+ $1903 = $1902 ^ $1901;
+ $1904 = $1903&255;
+ $1905 = (10432 + ($1904)|0);
+ $1906 = HEAP8[$1905>>0]|0;
+ $1907 = HEAP8[$1>>0]|0;
+ $1908 = $1907 ^ $1906;
+ $1909 = $1908&255;
+ $1910 = (10688 + ($1909<<2)|0);
+ $1911 = HEAP32[$1910>>2]|0;
+ $1912 = HEAP8[$593>>0]|0;
+ $1913 = $1912 ^ -28;
+ $1914 = $1913&255;
+ $1915 = (10176 + ($1914)|0);
+ $1916 = HEAP8[$1915>>0]|0;
+ $1917 = HEAP8[$409>>0]|0;
+ $1918 = $1917 ^ $1916;
+ $1919 = $1918&255;
+ $1920 = (10176 + ($1919)|0);
+ $1921 = HEAP8[$1920>>0]|0;
+ $1922 = HEAP8[$224>>0]|0;
+ $1923 = $1922 ^ $1921;
+ $1924 = $1923&255;
+ $1925 = (10432 + ($1924)|0);
+ $1926 = HEAP8[$1925>>0]|0;
+ $1927 = HEAP8[$40>>0]|0;
+ $1928 = $1927 ^ $1926;
+ $1929 = $1928&255;
+ $1930 = (11712 + ($1929<<2)|0);
+ $1931 = HEAP32[$1930>>2]|0;
+ $1932 = $1931 ^ $1911;
+ $1933 = HEAP8[$617>>0]|0;
+ $1934 = $1933 ^ -28;
+ $1935 = $1934&255;
+ $1936 = (10432 + ($1935)|0);
+ $1937 = HEAP8[$1936>>0]|0;
+ $1938 = HEAP8[$433>>0]|0;
+ $1939 = $1938 ^ $1937;
+ $1940 = $1939&255;
+ $1941 = (10432 + ($1940)|0);
+ $1942 = HEAP8[$1941>>0]|0;
+ $1943 = HEAP8[$248>>0]|0;
+ $1944 = $1943 ^ $1942;
+ $1945 = $1944&255;
+ $1946 = (10176 + ($1945)|0);
+ $1947 = HEAP8[$1946>>0]|0;
+ $1948 = HEAP8[$64>>0]|0;
+ $1949 = $1948 ^ $1947;
+ $1950 = $1949&255;
+ $1951 = (12736 + ($1950<<2)|0);
+ $1952 = HEAP32[$1951>>2]|0;
+ $1953 = $1932 ^ $1952;
+ $1954 = HEAP8[$641>>0]|0;
+ $1955 = $1954 ^ 69;
+ $1956 = $1955&255;
+ $1957 = (10432 + ($1956)|0);
+ $1958 = HEAP8[$1957>>0]|0;
+ $1959 = HEAP8[$457>>0]|0;
+ $1960 = $1959 ^ $1958;
+ $1961 = $1960&255;
+ $1962 = (10176 + ($1961)|0);
+ $1963 = HEAP8[$1962>>0]|0;
+ $1964 = HEAP8[$272>>0]|0;
+ $1965 = $1964 ^ $1963;
+ $1966 = $1965&255;
+ $1967 = (10176 + ($1966)|0);
+ $1968 = HEAP8[$1967>>0]|0;
+ $1969 = HEAP8[$88>>0]|0;
+ $1970 = $1969 ^ $1968;
+ $1971 = $1970&255;
+ $1972 = (13760 + ($1971<<2)|0);
+ $1973 = HEAP32[$1972>>2]|0;
+ $1974 = $1953 ^ $1973;
+ $1975 = HEAP8[$665>>0]|0;
+ $1976 = $1975 ^ 125;
+ $1977 = $1976&255;
+ $1978 = (10176 + ($1977)|0);
+ $1979 = HEAP8[$1978>>0]|0;
+ $1980 = HEAP8[$481>>0]|0;
+ $1981 = $1980 ^ $1979;
+ $1982 = $1981&255;
+ $1983 = (10432 + ($1982)|0);
+ $1984 = HEAP8[$1983>>0]|0;
+ $1985 = HEAP8[$296>>0]|0;
+ $1986 = $1985 ^ $1984;
+ $1987 = $1986&255;
+ $1988 = (10432 + ($1987)|0);
+ $1989 = HEAP8[$1988>>0]|0;
+ $1990 = HEAP8[$112>>0]|0;
+ $1991 = $1990 ^ $1989;
+ $1992 = $1991&255;
+ $1993 = (10688 + ($1992<<2)|0);
+ $1994 = HEAP32[$1993>>2]|0;
+ $1995 = HEAP8[$689>>0]|0;
+ $1996 = $1995 ^ -35;
+ $1997 = $1996&255;
+ $1998 = (10176 + ($1997)|0);
+ $1999 = HEAP8[$1998>>0]|0;
+ $2000 = HEAP8[$505>>0]|0;
+ $2001 = $2000 ^ $1999;
+ $2002 = $2001&255;
+ $2003 = (10176 + ($2002)|0);
+ $2004 = HEAP8[$2003>>0]|0;
+ $2005 = HEAP8[$320>>0]|0;
+ $2006 = $2005 ^ $2004;
+ $2007 = $2006&255;
+ $2008 = (10432 + ($2007)|0);
+ $2009 = HEAP8[$2008>>0]|0;
+ $2010 = HEAP8[$136>>0]|0;
+ $2011 = $2010 ^ $2009;
+ $2012 = $2011&255;
+ $2013 = (11712 + ($2012<<2)|0);
+ $2014 = HEAP32[$2013>>2]|0;
+ $2015 = $2014 ^ $1994;
+ $2016 = HEAP8[$713>>0]|0;
+ $2017 = $2016 ^ -35;
+ $2018 = $2017&255;
+ $2019 = (10432 + ($2018)|0);
+ $2020 = HEAP8[$2019>>0]|0;
+ $2021 = HEAP8[$529>>0]|0;
+ $2022 = $2021 ^ $2020;
+ $2023 = $2022&255;
+ $2024 = (10432 + ($2023)|0);
+ $2025 = HEAP8[$2024>>0]|0;
+ $2026 = HEAP8[$344>>0]|0;
+ $2027 = $2026 ^ $2025;
+ $2028 = $2027&255;
+ $2029 = (10176 + ($2028)|0);
+ $2030 = HEAP8[$2029>>0]|0;
+ $2031 = HEAP8[$160>>0]|0;
+ $2032 = $2031 ^ $2030;
+ $2033 = $2032&255;
+ $2034 = (12736 + ($2033<<2)|0);
+ $2035 = HEAP32[$2034>>2]|0;
+ $2036 = $2015 ^ $2035;
+ $2037 = HEAP8[$737>>0]|0;
+ $2038 = $2037 ^ 125;
+ $2039 = $2038&255;
+ $2040 = (10432 + ($2039)|0);
+ $2041 = HEAP8[$2040>>0]|0;
+ $2042 = HEAP8[$553>>0]|0;
+ $2043 = $2042 ^ $2041;
+ $2044 = $2043&255;
+ $2045 = (10176 + ($2044)|0);
+ $2046 = HEAP8[$2045>>0]|0;
+ $2047 = HEAP8[$368>>0]|0;
+ $2048 = $2047 ^ $2046;
+ $2049 = $2048&255;
+ $2050 = (10176 + ($2049)|0);
+ $2051 = HEAP8[$2050>>0]|0;
+ $2052 = HEAP8[$184>>0]|0;
+ $2053 = $2052 ^ $2051;
+ $2054 = $2053&255;
+ $2055 = (13760 + ($2054<<2)|0);
+ $2056 = HEAP32[$2055>>2]|0;
+ $2057 = $2036 ^ $2056;
+ $2058 = $2057 << 8;
+ $2059 = $2057 >>> 24;
+ $2060 = $2058 | $2059;
+ $2061 = (($2060) + ($1974))|0;
+ $2062 = (($2061) + ($2060))|0;
+ $2063 = ((($0)) + 4144|0);
+ HEAP32[$2063>>2] = $2061;
+ $2064 = $2062 << 9;
+ $2065 = $2062 >>> 23;
+ $2066 = $2064 | $2065;
+ $2067 = ((($0)) + 4148|0);
+ HEAP32[$2067>>2] = $2066;
+ $2068 = HEAP8[$577>>0]|0;
+ $2069 = $2068 ^ -24;
+ $2070 = $2069&255;
+ $2071 = (10176 + ($2070)|0);
+ $2072 = HEAP8[$2071>>0]|0;
+ $2073 = HEAP8[$393>>0]|0;
+ $2074 = $2073 ^ $2072;
+ $2075 = $2074&255;
+ $2076 = (10432 + ($2075)|0);
+ $2077 = HEAP8[$2076>>0]|0;
+ $2078 = HEAP8[$208>>0]|0;
+ $2079 = $2078 ^ $2077;
+ $2080 = $2079&255;
+ $2081 = (10432 + ($2080)|0);
+ $2082 = HEAP8[$2081>>0]|0;
+ $2083 = HEAP8[$1>>0]|0;
+ $2084 = $2083 ^ $2082;
+ $2085 = $2084&255;
+ $2086 = (10688 + ($2085<<2)|0);
+ $2087 = HEAP32[$2086>>2]|0;
+ $2088 = HEAP8[$593>>0]|0;
+ $2089 = $2088 ^ -47;
+ $2090 = $2089&255;
+ $2091 = (10176 + ($2090)|0);
+ $2092 = HEAP8[$2091>>0]|0;
+ $2093 = HEAP8[$409>>0]|0;
+ $2094 = $2093 ^ $2092;
+ $2095 = $2094&255;
+ $2096 = (10176 + ($2095)|0);
+ $2097 = HEAP8[$2096>>0]|0;
+ $2098 = HEAP8[$224>>0]|0;
+ $2099 = $2098 ^ $2097;
+ $2100 = $2099&255;
+ $2101 = (10432 + ($2100)|0);
+ $2102 = HEAP8[$2101>>0]|0;
+ $2103 = HEAP8[$40>>0]|0;
+ $2104 = $2103 ^ $2102;
+ $2105 = $2104&255;
+ $2106 = (11712 + ($2105<<2)|0);
+ $2107 = HEAP32[$2106>>2]|0;
+ $2108 = $2107 ^ $2087;
+ $2109 = HEAP8[$617>>0]|0;
+ $2110 = $2109 ^ -47;
+ $2111 = $2110&255;
+ $2112 = (10432 + ($2111)|0);
+ $2113 = HEAP8[$2112>>0]|0;
+ $2114 = HEAP8[$433>>0]|0;
+ $2115 = $2114 ^ $2113;
+ $2116 = $2115&255;
+ $2117 = (10432 + ($2116)|0);
+ $2118 = HEAP8[$2117>>0]|0;
+ $2119 = HEAP8[$248>>0]|0;
+ $2120 = $2119 ^ $2118;
+ $2121 = $2120&255;
+ $2122 = (10176 + ($2121)|0);
+ $2123 = HEAP8[$2122>>0]|0;
+ $2124 = HEAP8[$64>>0]|0;
+ $2125 = $2124 ^ $2123;
+ $2126 = $2125&255;
+ $2127 = (12736 + ($2126<<2)|0);
+ $2128 = HEAP32[$2127>>2]|0;
+ $2129 = $2108 ^ $2128;
+ $2130 = HEAP8[$641>>0]|0;
+ $2131 = $2130 ^ -24;
+ $2132 = $2131&255;
+ $2133 = (10432 + ($2132)|0);
+ $2134 = HEAP8[$2133>>0]|0;
+ $2135 = HEAP8[$457>>0]|0;
+ $2136 = $2135 ^ $2134;
+ $2137 = $2136&255;
+ $2138 = (10176 + ($2137)|0);
+ $2139 = HEAP8[$2138>>0]|0;
+ $2140 = HEAP8[$272>>0]|0;
+ $2141 = $2140 ^ $2139;
+ $2142 = $2141&255;
+ $2143 = (10176 + ($2142)|0);
+ $2144 = HEAP8[$2143>>0]|0;
+ $2145 = HEAP8[$88>>0]|0;
+ $2146 = $2145 ^ $2144;
+ $2147 = $2146&255;
+ $2148 = (13760 + ($2147<<2)|0);
+ $2149 = HEAP32[$2148>>2]|0;
+ $2150 = $2129 ^ $2149;
+ $2151 = HEAP8[$665>>0]|0;
+ $2152 = $2151 ^ 75;
+ $2153 = $2152&255;
+ $2154 = (10176 + ($2153)|0);
+ $2155 = HEAP8[$2154>>0]|0;
+ $2156 = HEAP8[$481>>0]|0;
+ $2157 = $2156 ^ $2155;
+ $2158 = $2157&255;
+ $2159 = (10432 + ($2158)|0);
+ $2160 = HEAP8[$2159>>0]|0;
+ $2161 = HEAP8[$296>>0]|0;
+ $2162 = $2161 ^ $2160;
+ $2163 = $2162&255;
+ $2164 = (10432 + ($2163)|0);
+ $2165 = HEAP8[$2164>>0]|0;
+ $2166 = HEAP8[$112>>0]|0;
+ $2167 = $2166 ^ $2165;
+ $2168 = $2167&255;
+ $2169 = (10688 + ($2168<<2)|0);
+ $2170 = HEAP32[$2169>>2]|0;
+ $2171 = HEAP8[$689>>0]|0;
+ $2172 = $2171 ^ 56;
+ $2173 = $2172&255;
+ $2174 = (10176 + ($2173)|0);
+ $2175 = HEAP8[$2174>>0]|0;
+ $2176 = HEAP8[$505>>0]|0;
+ $2177 = $2176 ^ $2175;
+ $2178 = $2177&255;
+ $2179 = (10176 + ($2178)|0);
+ $2180 = HEAP8[$2179>>0]|0;
+ $2181 = HEAP8[$320>>0]|0;
+ $2182 = $2181 ^ $2180;
+ $2183 = $2182&255;
+ $2184 = (10432 + ($2183)|0);
+ $2185 = HEAP8[$2184>>0]|0;
+ $2186 = HEAP8[$136>>0]|0;
+ $2187 = $2186 ^ $2185;
+ $2188 = $2187&255;
+ $2189 = (11712 + ($2188<<2)|0);
+ $2190 = HEAP32[$2189>>2]|0;
+ $2191 = $2190 ^ $2170;
+ $2192 = HEAP8[$713>>0]|0;
+ $2193 = $2192 ^ 56;
+ $2194 = $2193&255;
+ $2195 = (10432 + ($2194)|0);
+ $2196 = HEAP8[$2195>>0]|0;
+ $2197 = HEAP8[$529>>0]|0;
+ $2198 = $2197 ^ $2196;
+ $2199 = $2198&255;
+ $2200 = (10432 + ($2199)|0);
+ $2201 = HEAP8[$2200>>0]|0;
+ $2202 = HEAP8[$344>>0]|0;
+ $2203 = $2202 ^ $2201;
+ $2204 = $2203&255;
+ $2205 = (10176 + ($2204)|0);
+ $2206 = HEAP8[$2205>>0]|0;
+ $2207 = HEAP8[$160>>0]|0;
+ $2208 = $2207 ^ $2206;
+ $2209 = $2208&255;
+ $2210 = (12736 + ($2209<<2)|0);
+ $2211 = HEAP32[$2210>>2]|0;
+ $2212 = $2191 ^ $2211;
+ $2213 = HEAP8[$737>>0]|0;
+ $2214 = $2213 ^ 75;
+ $2215 = $2214&255;
+ $2216 = (10432 + ($2215)|0);
+ $2217 = HEAP8[$2216>>0]|0;
+ $2218 = HEAP8[$553>>0]|0;
+ $2219 = $2218 ^ $2217;
+ $2220 = $2219&255;
+ $2221 = (10176 + ($2220)|0);
+ $2222 = HEAP8[$2221>>0]|0;
+ $2223 = HEAP8[$368>>0]|0;
+ $2224 = $2223 ^ $2222;
+ $2225 = $2224&255;
+ $2226 = (10176 + ($2225)|0);
+ $2227 = HEAP8[$2226>>0]|0;
+ $2228 = HEAP8[$184>>0]|0;
+ $2229 = $2228 ^ $2227;
+ $2230 = $2229&255;
+ $2231 = (13760 + ($2230<<2)|0);
+ $2232 = HEAP32[$2231>>2]|0;
+ $2233 = $2212 ^ $2232;
+ $2234 = $2233 << 8;
+ $2235 = $2233 >>> 24;
+ $2236 = $2234 | $2235;
+ $2237 = (($2236) + ($2150))|0;
+ $2238 = (($2237) + ($2236))|0;
+ $2239 = ((($0)) + 4152|0);
+ HEAP32[$2239>>2] = $2237;
+ $2240 = $2238 << 9;
+ $2241 = $2238 >>> 23;
+ $2242 = $2240 | $2241;
+ $2243 = ((($0)) + 4156|0);
+ HEAP32[$2243>>2] = $2242;
+ $2244 = HEAP8[$577>>0]|0;
+ $2245 = $2244 ^ -42;
+ $2246 = $2245&255;
+ $2247 = (10176 + ($2246)|0);
+ $2248 = HEAP8[$2247>>0]|0;
+ $2249 = HEAP8[$393>>0]|0;
+ $2250 = $2249 ^ $2248;
+ $2251 = $2250&255;
+ $2252 = (10432 + ($2251)|0);
+ $2253 = HEAP8[$2252>>0]|0;
+ $2254 = HEAP8[$208>>0]|0;
+ $2255 = $2254 ^ $2253;
+ $2256 = $2255&255;
+ $2257 = (10432 + ($2256)|0);
+ $2258 = HEAP8[$2257>>0]|0;
+ $2259 = HEAP8[$1>>0]|0;
+ $2260 = $2259 ^ $2258;
+ $2261 = $2260&255;
+ $2262 = (10688 + ($2261<<2)|0);
+ $2263 = HEAP32[$2262>>2]|0;
+ $2264 = HEAP8[$593>>0]|0;
+ $2265 = $2264 ^ 13;
+ $2266 = $2265&255;
+ $2267 = (10176 + ($2266)|0);
+ $2268 = HEAP8[$2267>>0]|0;
+ $2269 = HEAP8[$409>>0]|0;
+ $2270 = $2269 ^ $2268;
+ $2271 = $2270&255;
+ $2272 = (10176 + ($2271)|0);
+ $2273 = HEAP8[$2272>>0]|0;
+ $2274 = HEAP8[$224>>0]|0;
+ $2275 = $2274 ^ $2273;
+ $2276 = $2275&255;
+ $2277 = (10432 + ($2276)|0);
+ $2278 = HEAP8[$2277>>0]|0;
+ $2279 = HEAP8[$40>>0]|0;
+ $2280 = $2279 ^ $2278;
+ $2281 = $2280&255;
+ $2282 = (11712 + ($2281<<2)|0);
+ $2283 = HEAP32[$2282>>2]|0;
+ $2284 = $2283 ^ $2263;
+ $2285 = HEAP8[$617>>0]|0;
+ $2286 = $2285 ^ 13;
+ $2287 = $2286&255;
+ $2288 = (10432 + ($2287)|0);
+ $2289 = HEAP8[$2288>>0]|0;
+ $2290 = HEAP8[$433>>0]|0;
+ $2291 = $2290 ^ $2289;
+ $2292 = $2291&255;
+ $2293 = (10432 + ($2292)|0);
+ $2294 = HEAP8[$2293>>0]|0;
+ $2295 = HEAP8[$248>>0]|0;
+ $2296 = $2295 ^ $2294;
+ $2297 = $2296&255;
+ $2298 = (10176 + ($2297)|0);
+ $2299 = HEAP8[$2298>>0]|0;
+ $2300 = HEAP8[$64>>0]|0;
+ $2301 = $2300 ^ $2299;
+ $2302 = $2301&255;
+ $2303 = (12736 + ($2302<<2)|0);
+ $2304 = HEAP32[$2303>>2]|0;
+ $2305 = $2284 ^ $2304;
+ $2306 = HEAP8[$641>>0]|0;
+ $2307 = $2306 ^ -42;
+ $2308 = $2307&255;
+ $2309 = (10432 + ($2308)|0);
+ $2310 = HEAP8[$2309>>0]|0;
+ $2311 = HEAP8[$457>>0]|0;
+ $2312 = $2311 ^ $2310;
+ $2313 = $2312&255;
+ $2314 = (10176 + ($2313)|0);
+ $2315 = HEAP8[$2314>>0]|0;
+ $2316 = HEAP8[$272>>0]|0;
+ $2317 = $2316 ^ $2315;
+ $2318 = $2317&255;
+ $2319 = (10176 + ($2318)|0);
+ $2320 = HEAP8[$2319>>0]|0;
+ $2321 = HEAP8[$88>>0]|0;
+ $2322 = $2321 ^ $2320;
+ $2323 = $2322&255;
+ $2324 = (13760 + ($2323<<2)|0);
+ $2325 = HEAP32[$2324>>2]|0;
+ $2326 = $2305 ^ $2325;
+ $2327 = HEAP8[$665>>0]|0;
+ $2328 = $2327 ^ 50;
+ $2329 = $2328&255;
+ $2330 = (10176 + ($2329)|0);
+ $2331 = HEAP8[$2330>>0]|0;
+ $2332 = HEAP8[$481>>0]|0;
+ $2333 = $2332 ^ $2331;
+ $2334 = $2333&255;
+ $2335 = (10432 + ($2334)|0);
+ $2336 = HEAP8[$2335>>0]|0;
+ $2337 = HEAP8[$296>>0]|0;
+ $2338 = $2337 ^ $2336;
+ $2339 = $2338&255;
+ $2340 = (10432 + ($2339)|0);
+ $2341 = HEAP8[$2340>>0]|0;
+ $2342 = HEAP8[$112>>0]|0;
+ $2343 = $2342 ^ $2341;
+ $2344 = $2343&255;
+ $2345 = (10688 + ($2344<<2)|0);
+ $2346 = HEAP32[$2345>>2]|0;
+ $2347 = HEAP8[$689>>0]|0;
+ $2348 = $2347 ^ -58;
+ $2349 = $2348&255;
+ $2350 = (10176 + ($2349)|0);
+ $2351 = HEAP8[$2350>>0]|0;
+ $2352 = HEAP8[$505>>0]|0;
+ $2353 = $2352 ^ $2351;
+ $2354 = $2353&255;
+ $2355 = (10176 + ($2354)|0);
+ $2356 = HEAP8[$2355>>0]|0;
+ $2357 = HEAP8[$320>>0]|0;
+ $2358 = $2357 ^ $2356;
+ $2359 = $2358&255;
+ $2360 = (10432 + ($2359)|0);
+ $2361 = HEAP8[$2360>>0]|0;
+ $2362 = HEAP8[$136>>0]|0;
+ $2363 = $2362 ^ $2361;
+ $2364 = $2363&255;
+ $2365 = (11712 + ($2364<<2)|0);
+ $2366 = HEAP32[$2365>>2]|0;
+ $2367 = $2366 ^ $2346;
+ $2368 = HEAP8[$713>>0]|0;
+ $2369 = $2368 ^ -58;
+ $2370 = $2369&255;
+ $2371 = (10432 + ($2370)|0);
+ $2372 = HEAP8[$2371>>0]|0;
+ $2373 = HEAP8[$529>>0]|0;
+ $2374 = $2373 ^ $2372;
+ $2375 = $2374&255;
+ $2376 = (10432 + ($2375)|0);
+ $2377 = HEAP8[$2376>>0]|0;
+ $2378 = HEAP8[$344>>0]|0;
+ $2379 = $2378 ^ $2377;
+ $2380 = $2379&255;
+ $2381 = (10176 + ($2380)|0);
+ $2382 = HEAP8[$2381>>0]|0;
+ $2383 = HEAP8[$160>>0]|0;
+ $2384 = $2383 ^ $2382;
+ $2385 = $2384&255;
+ $2386 = (12736 + ($2385<<2)|0);
+ $2387 = HEAP32[$2386>>2]|0;
+ $2388 = $2367 ^ $2387;
+ $2389 = HEAP8[$737>>0]|0;
+ $2390 = $2389 ^ 50;
+ $2391 = $2390&255;
+ $2392 = (10432 + ($2391)|0);
+ $2393 = HEAP8[$2392>>0]|0;
+ $2394 = HEAP8[$553>>0]|0;
+ $2395 = $2394 ^ $2393;
+ $2396 = $2395&255;
+ $2397 = (10176 + ($2396)|0);
+ $2398 = HEAP8[$2397>>0]|0;
+ $2399 = HEAP8[$368>>0]|0;
+ $2400 = $2399 ^ $2398;
+ $2401 = $2400&255;
+ $2402 = (10176 + ($2401)|0);
+ $2403 = HEAP8[$2402>>0]|0;
+ $2404 = HEAP8[$184>>0]|0;
+ $2405 = $2404 ^ $2403;
+ $2406 = $2405&255;
+ $2407 = (13760 + ($2406<<2)|0);
+ $2408 = HEAP32[$2407>>2]|0;
+ $2409 = $2388 ^ $2408;
+ $2410 = $2409 << 8;
+ $2411 = $2409 >>> 24;
+ $2412 = $2410 | $2411;
+ $2413 = (($2412) + ($2326))|0;
+ $2414 = (($2413) + ($2412))|0;
+ $2415 = ((($0)) + 4160|0);
+ HEAP32[$2415>>2] = $2413;
+ $2416 = $2414 << 9;
+ $2417 = $2414 >>> 23;
+ $2418 = $2416 | $2417;
+ $2419 = ((($0)) + 4164|0);
+ HEAP32[$2419>>2] = $2418;
+ $2420 = HEAP8[$577>>0]|0;
+ $2421 = $2420 ^ -40;
+ $2422 = $2421&255;
+ $2423 = (10176 + ($2422)|0);
+ $2424 = HEAP8[$2423>>0]|0;
+ $2425 = HEAP8[$393>>0]|0;
+ $2426 = $2425 ^ $2424;
+ $2427 = $2426&255;
+ $2428 = (10432 + ($2427)|0);
+ $2429 = HEAP8[$2428>>0]|0;
+ $2430 = HEAP8[$208>>0]|0;
+ $2431 = $2430 ^ $2429;
+ $2432 = $2431&255;
+ $2433 = (10432 + ($2432)|0);
+ $2434 = HEAP8[$2433>>0]|0;
+ $2435 = HEAP8[$1>>0]|0;
+ $2436 = $2435 ^ $2434;
+ $2437 = $2436&255;
+ $2438 = (10688 + ($2437<<2)|0);
+ $2439 = HEAP32[$2438>>2]|0;
+ $2440 = HEAP8[$593>>0]|0;
+ $2441 = $2440 ^ 53;
+ $2442 = $2441&255;
+ $2443 = (10176 + ($2442)|0);
+ $2444 = HEAP8[$2443>>0]|0;
+ $2445 = HEAP8[$409>>0]|0;
+ $2446 = $2445 ^ $2444;
+ $2447 = $2446&255;
+ $2448 = (10176 + ($2447)|0);
+ $2449 = HEAP8[$2448>>0]|0;
+ $2450 = HEAP8[$224>>0]|0;
+ $2451 = $2450 ^ $2449;
+ $2452 = $2451&255;
+ $2453 = (10432 + ($2452)|0);
+ $2454 = HEAP8[$2453>>0]|0;
+ $2455 = HEAP8[$40>>0]|0;
+ $2456 = $2455 ^ $2454;
+ $2457 = $2456&255;
+ $2458 = (11712 + ($2457<<2)|0);
+ $2459 = HEAP32[$2458>>2]|0;
+ $2460 = $2459 ^ $2439;
+ $2461 = HEAP8[$617>>0]|0;
+ $2462 = $2461 ^ 53;
+ $2463 = $2462&255;
+ $2464 = (10432 + ($2463)|0);
+ $2465 = HEAP8[$2464>>0]|0;
+ $2466 = HEAP8[$433>>0]|0;
+ $2467 = $2466 ^ $2465;
+ $2468 = $2467&255;
+ $2469 = (10432 + ($2468)|0);
+ $2470 = HEAP8[$2469>>0]|0;
+ $2471 = HEAP8[$248>>0]|0;
+ $2472 = $2471 ^ $2470;
+ $2473 = $2472&255;
+ $2474 = (10176 + ($2473)|0);
+ $2475 = HEAP8[$2474>>0]|0;
+ $2476 = HEAP8[$64>>0]|0;
+ $2477 = $2476 ^ $2475;
+ $2478 = $2477&255;
+ $2479 = (12736 + ($2478<<2)|0);
+ $2480 = HEAP32[$2479>>2]|0;
+ $2481 = $2460 ^ $2480;
+ $2482 = HEAP8[$641>>0]|0;
+ $2483 = $2482 ^ -40;
+ $2484 = $2483&255;
+ $2485 = (10432 + ($2484)|0);
+ $2486 = HEAP8[$2485>>0]|0;
+ $2487 = HEAP8[$457>>0]|0;
+ $2488 = $2487 ^ $2486;
+ $2489 = $2488&255;
+ $2490 = (10176 + ($2489)|0);
+ $2491 = HEAP8[$2490>>0]|0;
+ $2492 = HEAP8[$272>>0]|0;
+ $2493 = $2492 ^ $2491;
+ $2494 = $2493&255;
+ $2495 = (10176 + ($2494)|0);
+ $2496 = HEAP8[$2495>>0]|0;
+ $2497 = HEAP8[$88>>0]|0;
+ $2498 = $2497 ^ $2496;
+ $2499 = $2498&255;
+ $2500 = (13760 + ($2499<<2)|0);
+ $2501 = HEAP32[$2500>>2]|0;
+ $2502 = $2481 ^ $2501;
+ $2503 = HEAP8[$665>>0]|0;
+ $2504 = $2503 ^ -3;
+ $2505 = $2504&255;
+ $2506 = (10176 + ($2505)|0);
+ $2507 = HEAP8[$2506>>0]|0;
+ $2508 = HEAP8[$481>>0]|0;
+ $2509 = $2508 ^ $2507;
+ $2510 = $2509&255;
+ $2511 = (10432 + ($2510)|0);
+ $2512 = HEAP8[$2511>>0]|0;
+ $2513 = HEAP8[$296>>0]|0;
+ $2514 = $2513 ^ $2512;
+ $2515 = $2514&255;
+ $2516 = (10432 + ($2515)|0);
+ $2517 = HEAP8[$2516>>0]|0;
+ $2518 = HEAP8[$112>>0]|0;
+ $2519 = $2518 ^ $2517;
+ $2520 = $2519&255;
+ $2521 = (10688 + ($2520<<2)|0);
+ $2522 = HEAP32[$2521>>2]|0;
+ $2523 = HEAP8[$689>>0]|0;
+ $2524 = $2523 ^ -104;
+ $2525 = $2524&255;
+ $2526 = (10176 + ($2525)|0);
+ $2527 = HEAP8[$2526>>0]|0;
+ $2528 = HEAP8[$505>>0]|0;
+ $2529 = $2528 ^ $2527;
+ $2530 = $2529&255;
+ $2531 = (10176 + ($2530)|0);
+ $2532 = HEAP8[$2531>>0]|0;
+ $2533 = HEAP8[$320>>0]|0;
+ $2534 = $2533 ^ $2532;
+ $2535 = $2534&255;
+ $2536 = (10432 + ($2535)|0);
+ $2537 = HEAP8[$2536>>0]|0;
+ $2538 = HEAP8[$136>>0]|0;
+ $2539 = $2538 ^ $2537;
+ $2540 = $2539&255;
+ $2541 = (11712 + ($2540<<2)|0);
+ $2542 = HEAP32[$2541>>2]|0;
+ $2543 = $2542 ^ $2522;
+ $2544 = HEAP8[$713>>0]|0;
+ $2545 = $2544 ^ -104;
+ $2546 = $2545&255;
+ $2547 = (10432 + ($2546)|0);
+ $2548 = HEAP8[$2547>>0]|0;
+ $2549 = HEAP8[$529>>0]|0;
+ $2550 = $2549 ^ $2548;
+ $2551 = $2550&255;
+ $2552 = (10432 + ($2551)|0);
+ $2553 = HEAP8[$2552>>0]|0;
+ $2554 = HEAP8[$344>>0]|0;
+ $2555 = $2554 ^ $2553;
+ $2556 = $2555&255;
+ $2557 = (10176 + ($2556)|0);
+ $2558 = HEAP8[$2557>>0]|0;
+ $2559 = HEAP8[$160>>0]|0;
+ $2560 = $2559 ^ $2558;
+ $2561 = $2560&255;
+ $2562 = (12736 + ($2561<<2)|0);
+ $2563 = HEAP32[$2562>>2]|0;
+ $2564 = $2543 ^ $2563;
+ $2565 = HEAP8[$737>>0]|0;
+ $2566 = $2565 ^ -3;
+ $2567 = $2566&255;
+ $2568 = (10432 + ($2567)|0);
+ $2569 = HEAP8[$2568>>0]|0;
+ $2570 = HEAP8[$553>>0]|0;
+ $2571 = $2570 ^ $2569;
+ $2572 = $2571&255;
+ $2573 = (10176 + ($2572)|0);
+ $2574 = HEAP8[$2573>>0]|0;
+ $2575 = HEAP8[$368>>0]|0;
+ $2576 = $2575 ^ $2574;
+ $2577 = $2576&255;
+ $2578 = (10176 + ($2577)|0);
+ $2579 = HEAP8[$2578>>0]|0;
+ $2580 = HEAP8[$184>>0]|0;
+ $2581 = $2580 ^ $2579;
+ $2582 = $2581&255;
+ $2583 = (13760 + ($2582<<2)|0);
+ $2584 = HEAP32[$2583>>2]|0;
+ $2585 = $2564 ^ $2584;
+ $2586 = $2585 << 8;
+ $2587 = $2585 >>> 24;
+ $2588 = $2586 | $2587;
+ $2589 = (($2588) + ($2502))|0;
+ $2590 = (($2589) + ($2588))|0;
+ $2591 = ((($0)) + 4168|0);
+ HEAP32[$2591>>2] = $2589;
+ $2592 = $2590 << 9;
+ $2593 = $2590 >>> 23;
+ $2594 = $2592 | $2593;
+ $2595 = ((($0)) + 4172|0);
+ HEAP32[$2595>>2] = $2594;
+ $2596 = HEAP8[$577>>0]|0;
+ $2597 = $2596 ^ 55;
+ $2598 = $2597&255;
+ $2599 = (10176 + ($2598)|0);
+ $2600 = HEAP8[$2599>>0]|0;
+ $2601 = HEAP8[$393>>0]|0;
+ $2602 = $2601 ^ $2600;
+ $2603 = $2602&255;
+ $2604 = (10432 + ($2603)|0);
+ $2605 = HEAP8[$2604>>0]|0;
+ $2606 = HEAP8[$208>>0]|0;
+ $2607 = $2606 ^ $2605;
+ $2608 = $2607&255;
+ $2609 = (10432 + ($2608)|0);
+ $2610 = HEAP8[$2609>>0]|0;
+ $2611 = HEAP8[$1>>0]|0;
+ $2612 = $2611 ^ $2610;
+ $2613 = $2612&255;
+ $2614 = (10688 + ($2613<<2)|0);
+ $2615 = HEAP32[$2614>>2]|0;
+ $2616 = HEAP8[$593>>0]|0;
+ $2617 = $2616 ^ 24;
+ $2618 = $2617&255;
+ $2619 = (10176 + ($2618)|0);
+ $2620 = HEAP8[$2619>>0]|0;
+ $2621 = HEAP8[$409>>0]|0;
+ $2622 = $2621 ^ $2620;
+ $2623 = $2622&255;
+ $2624 = (10176 + ($2623)|0);
+ $2625 = HEAP8[$2624>>0]|0;
+ $2626 = HEAP8[$224>>0]|0;
+ $2627 = $2626 ^ $2625;
+ $2628 = $2627&255;
+ $2629 = (10432 + ($2628)|0);
+ $2630 = HEAP8[$2629>>0]|0;
+ $2631 = HEAP8[$40>>0]|0;
+ $2632 = $2631 ^ $2630;
+ $2633 = $2632&255;
+ $2634 = (11712 + ($2633<<2)|0);
+ $2635 = HEAP32[$2634>>2]|0;
+ $2636 = $2635 ^ $2615;
+ $2637 = HEAP8[$617>>0]|0;
+ $2638 = $2637 ^ 24;
+ $2639 = $2638&255;
+ $2640 = (10432 + ($2639)|0);
+ $2641 = HEAP8[$2640>>0]|0;
+ $2642 = HEAP8[$433>>0]|0;
+ $2643 = $2642 ^ $2641;
+ $2644 = $2643&255;
+ $2645 = (10432 + ($2644)|0);
+ $2646 = HEAP8[$2645>>0]|0;
+ $2647 = HEAP8[$248>>0]|0;
+ $2648 = $2647 ^ $2646;
+ $2649 = $2648&255;
+ $2650 = (10176 + ($2649)|0);
+ $2651 = HEAP8[$2650>>0]|0;
+ $2652 = HEAP8[$64>>0]|0;
+ $2653 = $2652 ^ $2651;
+ $2654 = $2653&255;
+ $2655 = (12736 + ($2654<<2)|0);
+ $2656 = HEAP32[$2655>>2]|0;
+ $2657 = $2636 ^ $2656;
+ $2658 = HEAP8[$641>>0]|0;
+ $2659 = $2658 ^ 55;
+ $2660 = $2659&255;
+ $2661 = (10432 + ($2660)|0);
+ $2662 = HEAP8[$2661>>0]|0;
+ $2663 = HEAP8[$457>>0]|0;
+ $2664 = $2663 ^ $2662;
+ $2665 = $2664&255;
+ $2666 = (10176 + ($2665)|0);
+ $2667 = HEAP8[$2666>>0]|0;
+ $2668 = HEAP8[$272>>0]|0;
+ $2669 = $2668 ^ $2667;
+ $2670 = $2669&255;
+ $2671 = (10176 + ($2670)|0);
+ $2672 = HEAP8[$2671>>0]|0;
+ $2673 = HEAP8[$88>>0]|0;
+ $2674 = $2673 ^ $2672;
+ $2675 = $2674&255;
+ $2676 = (13760 + ($2675<<2)|0);
+ $2677 = HEAP32[$2676>>2]|0;
+ $2678 = $2657 ^ $2677;
+ $2679 = HEAP8[$665>>0]|0;
+ $2680 = $2679 ^ 113;
+ $2681 = $2680&255;
+ $2682 = (10176 + ($2681)|0);
+ $2683 = HEAP8[$2682>>0]|0;
+ $2684 = HEAP8[$481>>0]|0;
+ $2685 = $2684 ^ $2683;
+ $2686 = $2685&255;
+ $2687 = (10432 + ($2686)|0);
+ $2688 = HEAP8[$2687>>0]|0;
+ $2689 = HEAP8[$296>>0]|0;
+ $2690 = $2689 ^ $2688;
+ $2691 = $2690&255;
+ $2692 = (10432 + ($2691)|0);
+ $2693 = HEAP8[$2692>>0]|0;
+ $2694 = HEAP8[$112>>0]|0;
+ $2695 = $2694 ^ $2693;
+ $2696 = $2695&255;
+ $2697 = (10688 + ($2696<<2)|0);
+ $2698 = HEAP32[$2697>>2]|0;
+ $2699 = HEAP8[$689>>0]|0;
+ $2700 = $2699 ^ -9;
+ $2701 = $2700&255;
+ $2702 = (10176 + ($2701)|0);
+ $2703 = HEAP8[$2702>>0]|0;
+ $2704 = HEAP8[$505>>0]|0;
+ $2705 = $2704 ^ $2703;
+ $2706 = $2705&255;
+ $2707 = (10176 + ($2706)|0);
+ $2708 = HEAP8[$2707>>0]|0;
+ $2709 = HEAP8[$320>>0]|0;
+ $2710 = $2709 ^ $2708;
+ $2711 = $2710&255;
+ $2712 = (10432 + ($2711)|0);
+ $2713 = HEAP8[$2712>>0]|0;
+ $2714 = HEAP8[$136>>0]|0;
+ $2715 = $2714 ^ $2713;
+ $2716 = $2715&255;
+ $2717 = (11712 + ($2716<<2)|0);
+ $2718 = HEAP32[$2717>>2]|0;
+ $2719 = $2718 ^ $2698;
+ $2720 = HEAP8[$713>>0]|0;
+ $2721 = $2720 ^ -9;
+ $2722 = $2721&255;
+ $2723 = (10432 + ($2722)|0);
+ $2724 = HEAP8[$2723>>0]|0;
+ $2725 = HEAP8[$529>>0]|0;
+ $2726 = $2725 ^ $2724;
+ $2727 = $2726&255;
+ $2728 = (10432 + ($2727)|0);
+ $2729 = HEAP8[$2728>>0]|0;
+ $2730 = HEAP8[$344>>0]|0;
+ $2731 = $2730 ^ $2729;
+ $2732 = $2731&255;
+ $2733 = (10176 + ($2732)|0);
+ $2734 = HEAP8[$2733>>0]|0;
+ $2735 = HEAP8[$160>>0]|0;
+ $2736 = $2735 ^ $2734;
+ $2737 = $2736&255;
+ $2738 = (12736 + ($2737<<2)|0);
+ $2739 = HEAP32[$2738>>2]|0;
+ $2740 = $2719 ^ $2739;
+ $2741 = HEAP8[$737>>0]|0;
+ $2742 = $2741 ^ 113;
+ $2743 = $2742&255;
+ $2744 = (10432 + ($2743)|0);
+ $2745 = HEAP8[$2744>>0]|0;
+ $2746 = HEAP8[$553>>0]|0;
+ $2747 = $2746 ^ $2745;
+ $2748 = $2747&255;
+ $2749 = (10176 + ($2748)|0);
+ $2750 = HEAP8[$2749>>0]|0;
+ $2751 = HEAP8[$368>>0]|0;
+ $2752 = $2751 ^ $2750;
+ $2753 = $2752&255;
+ $2754 = (10176 + ($2753)|0);
+ $2755 = HEAP8[$2754>>0]|0;
+ $2756 = HEAP8[$184>>0]|0;
+ $2757 = $2756 ^ $2755;
+ $2758 = $2757&255;
+ $2759 = (13760 + ($2758<<2)|0);
+ $2760 = HEAP32[$2759>>2]|0;
+ $2761 = $2740 ^ $2760;
+ $2762 = $2761 << 8;
+ $2763 = $2761 >>> 24;
+ $2764 = $2762 | $2763;
+ $2765 = (($2764) + ($2678))|0;
+ $2766 = (($2765) + ($2764))|0;
+ $2767 = ((($0)) + 4176|0);
+ HEAP32[$2767>>2] = $2765;
+ $2768 = $2766 << 9;
+ $2769 = $2766 >>> 23;
+ $2770 = $2768 | $2769;
+ $2771 = ((($0)) + 4180|0);
+ HEAP32[$2771>>2] = $2770;
+ $2772 = HEAP8[$577>>0]|0;
+ $2773 = $2772 ^ -15;
+ $2774 = $2773&255;
+ $2775 = (10176 + ($2774)|0);
+ $2776 = HEAP8[$2775>>0]|0;
+ $2777 = HEAP8[$393>>0]|0;
+ $2778 = $2777 ^ $2776;
+ $2779 = $2778&255;
+ $2780 = (10432 + ($2779)|0);
+ $2781 = HEAP8[$2780>>0]|0;
+ $2782 = HEAP8[$208>>0]|0;
+ $2783 = $2782 ^ $2781;
+ $2784 = $2783&255;
+ $2785 = (10432 + ($2784)|0);
+ $2786 = HEAP8[$2785>>0]|0;
+ $2787 = HEAP8[$1>>0]|0;
+ $2788 = $2787 ^ $2786;
+ $2789 = $2788&255;
+ $2790 = (10688 + ($2789<<2)|0);
+ $2791 = HEAP32[$2790>>2]|0;
+ $2792 = HEAP8[$593>>0]|0;
+ $2793 = $2792 ^ -20;
+ $2794 = $2793&255;
+ $2795 = (10176 + ($2794)|0);
+ $2796 = HEAP8[$2795>>0]|0;
+ $2797 = HEAP8[$409>>0]|0;
+ $2798 = $2797 ^ $2796;
+ $2799 = $2798&255;
+ $2800 = (10176 + ($2799)|0);
+ $2801 = HEAP8[$2800>>0]|0;
+ $2802 = HEAP8[$224>>0]|0;
+ $2803 = $2802 ^ $2801;
+ $2804 = $2803&255;
+ $2805 = (10432 + ($2804)|0);
+ $2806 = HEAP8[$2805>>0]|0;
+ $2807 = HEAP8[$40>>0]|0;
+ $2808 = $2807 ^ $2806;
+ $2809 = $2808&255;
+ $2810 = (11712 + ($2809<<2)|0);
+ $2811 = HEAP32[$2810>>2]|0;
+ $2812 = $2811 ^ $2791;
+ $2813 = HEAP8[$617>>0]|0;
+ $2814 = $2813 ^ -20;
+ $2815 = $2814&255;
+ $2816 = (10432 + ($2815)|0);
+ $2817 = HEAP8[$2816>>0]|0;
+ $2818 = HEAP8[$433>>0]|0;
+ $2819 = $2818 ^ $2817;
+ $2820 = $2819&255;
+ $2821 = (10432 + ($2820)|0);
+ $2822 = HEAP8[$2821>>0]|0;
+ $2823 = HEAP8[$248>>0]|0;
+ $2824 = $2823 ^ $2822;
+ $2825 = $2824&255;
+ $2826 = (10176 + ($2825)|0);
+ $2827 = HEAP8[$2826>>0]|0;
+ $2828 = HEAP8[$64>>0]|0;
+ $2829 = $2828 ^ $2827;
+ $2830 = $2829&255;
+ $2831 = (12736 + ($2830<<2)|0);
+ $2832 = HEAP32[$2831>>2]|0;
+ $2833 = $2812 ^ $2832;
+ $2834 = HEAP8[$641>>0]|0;
+ $2835 = $2834 ^ -15;
+ $2836 = $2835&255;
+ $2837 = (10432 + ($2836)|0);
+ $2838 = HEAP8[$2837>>0]|0;
+ $2839 = HEAP8[$457>>0]|0;
+ $2840 = $2839 ^ $2838;
+ $2841 = $2840&255;
+ $2842 = (10176 + ($2841)|0);
+ $2843 = HEAP8[$2842>>0]|0;
+ $2844 = HEAP8[$272>>0]|0;
+ $2845 = $2844 ^ $2843;
+ $2846 = $2845&255;
+ $2847 = (10176 + ($2846)|0);
+ $2848 = HEAP8[$2847>>0]|0;
+ $2849 = HEAP8[$88>>0]|0;
+ $2850 = $2849 ^ $2848;
+ $2851 = $2850&255;
+ $2852 = (13760 + ($2851<<2)|0);
+ $2853 = HEAP32[$2852>>2]|0;
+ $2854 = $2833 ^ $2853;
+ $2855 = HEAP8[$665>>0]|0;
+ $2856 = $2855 ^ -31;
+ $2857 = $2856&255;
+ $2858 = (10176 + ($2857)|0);
+ $2859 = HEAP8[$2858>>0]|0;
+ $2860 = HEAP8[$481>>0]|0;
+ $2861 = $2860 ^ $2859;
+ $2862 = $2861&255;
+ $2863 = (10432 + ($2862)|0);
+ $2864 = HEAP8[$2863>>0]|0;
+ $2865 = HEAP8[$296>>0]|0;
+ $2866 = $2865 ^ $2864;
+ $2867 = $2866&255;
+ $2868 = (10432 + ($2867)|0);
+ $2869 = HEAP8[$2868>>0]|0;
+ $2870 = HEAP8[$112>>0]|0;
+ $2871 = $2870 ^ $2869;
+ $2872 = $2871&255;
+ $2873 = (10688 + ($2872<<2)|0);
+ $2874 = HEAP32[$2873>>2]|0;
+ $2875 = HEAP8[$689>>0]|0;
+ $2876 = $2875 ^ 108;
+ $2877 = $2876&255;
+ $2878 = (10176 + ($2877)|0);
+ $2879 = HEAP8[$2878>>0]|0;
+ $2880 = HEAP8[$505>>0]|0;
+ $2881 = $2880 ^ $2879;
+ $2882 = $2881&255;
+ $2883 = (10176 + ($2882)|0);
+ $2884 = HEAP8[$2883>>0]|0;
+ $2885 = HEAP8[$320>>0]|0;
+ $2886 = $2885 ^ $2884;
+ $2887 = $2886&255;
+ $2888 = (10432 + ($2887)|0);
+ $2889 = HEAP8[$2888>>0]|0;
+ $2890 = HEAP8[$136>>0]|0;
+ $2891 = $2890 ^ $2889;
+ $2892 = $2891&255;
+ $2893 = (11712 + ($2892<<2)|0);
+ $2894 = HEAP32[$2893>>2]|0;
+ $2895 = $2894 ^ $2874;
+ $2896 = HEAP8[$713>>0]|0;
+ $2897 = $2896 ^ 108;
+ $2898 = $2897&255;
+ $2899 = (10432 + ($2898)|0);
+ $2900 = HEAP8[$2899>>0]|0;
+ $2901 = HEAP8[$529>>0]|0;
+ $2902 = $2901 ^ $2900;
+ $2903 = $2902&255;
+ $2904 = (10432 + ($2903)|0);
+ $2905 = HEAP8[$2904>>0]|0;
+ $2906 = HEAP8[$344>>0]|0;
+ $2907 = $2906 ^ $2905;
+ $2908 = $2907&255;
+ $2909 = (10176 + ($2908)|0);
+ $2910 = HEAP8[$2909>>0]|0;
+ $2911 = HEAP8[$160>>0]|0;
+ $2912 = $2911 ^ $2910;
+ $2913 = $2912&255;
+ $2914 = (12736 + ($2913<<2)|0);
+ $2915 = HEAP32[$2914>>2]|0;
+ $2916 = $2895 ^ $2915;
+ $2917 = HEAP8[$737>>0]|0;
+ $2918 = $2917 ^ -31;
+ $2919 = $2918&255;
+ $2920 = (10432 + ($2919)|0);
+ $2921 = HEAP8[$2920>>0]|0;
+ $2922 = HEAP8[$553>>0]|0;
+ $2923 = $2922 ^ $2921;
+ $2924 = $2923&255;
+ $2925 = (10176 + ($2924)|0);
+ $2926 = HEAP8[$2925>>0]|0;
+ $2927 = HEAP8[$368>>0]|0;
+ $2928 = $2927 ^ $2926;
+ $2929 = $2928&255;
+ $2930 = (10176 + ($2929)|0);
+ $2931 = HEAP8[$2930>>0]|0;
+ $2932 = HEAP8[$184>>0]|0;
+ $2933 = $2932 ^ $2931;
+ $2934 = $2933&255;
+ $2935 = (13760 + ($2934<<2)|0);
+ $2936 = HEAP32[$2935>>2]|0;
+ $2937 = $2916 ^ $2936;
+ $2938 = $2937 << 8;
+ $2939 = $2937 >>> 24;
+ $2940 = $2938 | $2939;
+ $2941 = (($2940) + ($2854))|0;
+ $2942 = (($2941) + ($2940))|0;
+ $2943 = ((($0)) + 4184|0);
+ HEAP32[$2943>>2] = $2941;
+ $2944 = $2942 << 9;
+ $2945 = $2942 >>> 23;
+ $2946 = $2944 | $2945;
+ $2947 = ((($0)) + 4188|0);
+ HEAP32[$2947>>2] = $2946;
+ $2948 = HEAP8[$577>>0]|0;
+ $2949 = $2948 ^ 48;
+ $2950 = $2949&255;
+ $2951 = (10176 + ($2950)|0);
+ $2952 = HEAP8[$2951>>0]|0;
+ $2953 = HEAP8[$393>>0]|0;
+ $2954 = $2953 ^ $2952;
+ $2955 = $2954&255;
+ $2956 = (10432 + ($2955)|0);
+ $2957 = HEAP8[$2956>>0]|0;
+ $2958 = HEAP8[$208>>0]|0;
+ $2959 = $2958 ^ $2957;
+ $2960 = $2959&255;
+ $2961 = (10432 + ($2960)|0);
+ $2962 = HEAP8[$2961>>0]|0;
+ $2963 = HEAP8[$1>>0]|0;
+ $2964 = $2963 ^ $2962;
+ $2965 = $2964&255;
+ $2966 = (10688 + ($2965<<2)|0);
+ $2967 = HEAP32[$2966>>2]|0;
+ $2968 = HEAP8[$593>>0]|0;
+ $2969 = $2968 ^ 67;
+ $2970 = $2969&255;
+ $2971 = (10176 + ($2970)|0);
+ $2972 = HEAP8[$2971>>0]|0;
+ $2973 = HEAP8[$409>>0]|0;
+ $2974 = $2973 ^ $2972;
+ $2975 = $2974&255;
+ $2976 = (10176 + ($2975)|0);
+ $2977 = HEAP8[$2976>>0]|0;
+ $2978 = HEAP8[$224>>0]|0;
+ $2979 = $2978 ^ $2977;
+ $2980 = $2979&255;
+ $2981 = (10432 + ($2980)|0);
+ $2982 = HEAP8[$2981>>0]|0;
+ $2983 = HEAP8[$40>>0]|0;
+ $2984 = $2983 ^ $2982;
+ $2985 = $2984&255;
+ $2986 = (11712 + ($2985<<2)|0);
+ $2987 = HEAP32[$2986>>2]|0;
+ $2988 = $2987 ^ $2967;
+ $2989 = HEAP8[$617>>0]|0;
+ $2990 = $2989 ^ 67;
+ $2991 = $2990&255;
+ $2992 = (10432 + ($2991)|0);
+ $2993 = HEAP8[$2992>>0]|0;
+ $2994 = HEAP8[$433>>0]|0;
+ $2995 = $2994 ^ $2993;
+ $2996 = $2995&255;
+ $2997 = (10432 + ($2996)|0);
+ $2998 = HEAP8[$2997>>0]|0;
+ $2999 = HEAP8[$248>>0]|0;
+ $3000 = $2999 ^ $2998;
+ $3001 = $3000&255;
+ $3002 = (10176 + ($3001)|0);
+ $3003 = HEAP8[$3002>>0]|0;
+ $3004 = HEAP8[$64>>0]|0;
+ $3005 = $3004 ^ $3003;
+ $3006 = $3005&255;
+ $3007 = (12736 + ($3006<<2)|0);
+ $3008 = HEAP32[$3007>>2]|0;
+ $3009 = $2988 ^ $3008;
+ $3010 = HEAP8[$641>>0]|0;
+ $3011 = $3010 ^ 48;
+ $3012 = $3011&255;
+ $3013 = (10432 + ($3012)|0);
+ $3014 = HEAP8[$3013>>0]|0;
+ $3015 = HEAP8[$457>>0]|0;
+ $3016 = $3015 ^ $3014;
+ $3017 = $3016&255;
+ $3018 = (10176 + ($3017)|0);
+ $3019 = HEAP8[$3018>>0]|0;
+ $3020 = HEAP8[$272>>0]|0;
+ $3021 = $3020 ^ $3019;
+ $3022 = $3021&255;
+ $3023 = (10176 + ($3022)|0);
+ $3024 = HEAP8[$3023>>0]|0;
+ $3025 = HEAP8[$88>>0]|0;
+ $3026 = $3025 ^ $3024;
+ $3027 = $3026&255;
+ $3028 = (13760 + ($3027<<2)|0);
+ $3029 = HEAP32[$3028>>2]|0;
+ $3030 = $3009 ^ $3029;
+ $3031 = HEAP8[$665>>0]|0;
+ $3032 = $3031 ^ 15;
+ $3033 = $3032&255;
+ $3034 = (10176 + ($3033)|0);
+ $3035 = HEAP8[$3034>>0]|0;
+ $3036 = HEAP8[$481>>0]|0;
+ $3037 = $3036 ^ $3035;
+ $3038 = $3037&255;
+ $3039 = (10432 + ($3038)|0);
+ $3040 = HEAP8[$3039>>0]|0;
+ $3041 = HEAP8[$296>>0]|0;
+ $3042 = $3041 ^ $3040;
+ $3043 = $3042&255;
+ $3044 = (10432 + ($3043)|0);
+ $3045 = HEAP8[$3044>>0]|0;
+ $3046 = HEAP8[$112>>0]|0;
+ $3047 = $3046 ^ $3045;
+ $3048 = $3047&255;
+ $3049 = (10688 + ($3048<<2)|0);
+ $3050 = HEAP32[$3049>>2]|0;
+ $3051 = HEAP8[$689>>0]|0;
+ $3052 = $3051 ^ 117;
+ $3053 = $3052&255;
+ $3054 = (10176 + ($3053)|0);
+ $3055 = HEAP8[$3054>>0]|0;
+ $3056 = HEAP8[$505>>0]|0;
+ $3057 = $3056 ^ $3055;
+ $3058 = $3057&255;
+ $3059 = (10176 + ($3058)|0);
+ $3060 = HEAP8[$3059>>0]|0;
+ $3061 = HEAP8[$320>>0]|0;
+ $3062 = $3061 ^ $3060;
+ $3063 = $3062&255;
+ $3064 = (10432 + ($3063)|0);
+ $3065 = HEAP8[$3064>>0]|0;
+ $3066 = HEAP8[$136>>0]|0;
+ $3067 = $3066 ^ $3065;
+ $3068 = $3067&255;
+ $3069 = (11712 + ($3068<<2)|0);
+ $3070 = HEAP32[$3069>>2]|0;
+ $3071 = $3070 ^ $3050;
+ $3072 = HEAP8[$713>>0]|0;
+ $3073 = $3072 ^ 117;
+ $3074 = $3073&255;
+ $3075 = (10432 + ($3074)|0);
+ $3076 = HEAP8[$3075>>0]|0;
+ $3077 = HEAP8[$529>>0]|0;
+ $3078 = $3077 ^ $3076;
+ $3079 = $3078&255;
+ $3080 = (10432 + ($3079)|0);
+ $3081 = HEAP8[$3080>>0]|0;
+ $3082 = HEAP8[$344>>0]|0;
+ $3083 = $3082 ^ $3081;
+ $3084 = $3083&255;
+ $3085 = (10176 + ($3084)|0);
+ $3086 = HEAP8[$3085>>0]|0;
+ $3087 = HEAP8[$160>>0]|0;
+ $3088 = $3087 ^ $3086;
+ $3089 = $3088&255;
+ $3090 = (12736 + ($3089<<2)|0);
+ $3091 = HEAP32[$3090>>2]|0;
+ $3092 = $3071 ^ $3091;
+ $3093 = HEAP8[$737>>0]|0;
+ $3094 = $3093 ^ 15;
+ $3095 = $3094&255;
+ $3096 = (10432 + ($3095)|0);
+ $3097 = HEAP8[$3096>>0]|0;
+ $3098 = HEAP8[$553>>0]|0;
+ $3099 = $3098 ^ $3097;
+ $3100 = $3099&255;
+ $3101 = (10176 + ($3100)|0);
+ $3102 = HEAP8[$3101>>0]|0;
+ $3103 = HEAP8[$368>>0]|0;
+ $3104 = $3103 ^ $3102;
+ $3105 = $3104&255;
+ $3106 = (10176 + ($3105)|0);
+ $3107 = HEAP8[$3106>>0]|0;
+ $3108 = HEAP8[$184>>0]|0;
+ $3109 = $3108 ^ $3107;
+ $3110 = $3109&255;
+ $3111 = (13760 + ($3110<<2)|0);
+ $3112 = HEAP32[$3111>>2]|0;
+ $3113 = $3092 ^ $3112;
+ $3114 = $3113 << 8;
+ $3115 = $3113 >>> 24;
+ $3116 = $3114 | $3115;
+ $3117 = (($3116) + ($3030))|0;
+ $3118 = (($3117) + ($3116))|0;
+ $3119 = ((($0)) + 4192|0);
+ HEAP32[$3119>>2] = $3117;
+ $3120 = $3118 << 9;
+ $3121 = $3118 >>> 23;
+ $3122 = $3120 | $3121;
+ $3123 = ((($0)) + 4196|0);
+ HEAP32[$3123>>2] = $3122;
+ $3124 = HEAP8[$577>>0]|0;
+ $3125 = $3124 ^ -8;
+ $3126 = $3125&255;
+ $3127 = (10176 + ($3126)|0);
+ $3128 = HEAP8[$3127>>0]|0;
+ $3129 = HEAP8[$393>>0]|0;
+ $3130 = $3129 ^ $3128;
+ $3131 = $3130&255;
+ $3132 = (10432 + ($3131)|0);
+ $3133 = HEAP8[$3132>>0]|0;
+ $3134 = HEAP8[$208>>0]|0;
+ $3135 = $3134 ^ $3133;
+ $3136 = $3135&255;
+ $3137 = (10432 + ($3136)|0);
+ $3138 = HEAP8[$3137>>0]|0;
+ $3139 = HEAP8[$1>>0]|0;
+ $3140 = $3139 ^ $3138;
+ $3141 = $3140&255;
+ $3142 = (10688 + ($3141<<2)|0);
+ $3143 = HEAP32[$3142>>2]|0;
+ $3144 = HEAP8[$593>>0]|0;
+ $3145 = $3144 ^ 55;
+ $3146 = $3145&255;
+ $3147 = (10176 + ($3146)|0);
+ $3148 = HEAP8[$3147>>0]|0;
+ $3149 = HEAP8[$409>>0]|0;
+ $3150 = $3149 ^ $3148;
+ $3151 = $3150&255;
+ $3152 = (10176 + ($3151)|0);
+ $3153 = HEAP8[$3152>>0]|0;
+ $3154 = HEAP8[$224>>0]|0;
+ $3155 = $3154 ^ $3153;
+ $3156 = $3155&255;
+ $3157 = (10432 + ($3156)|0);
+ $3158 = HEAP8[$3157>>0]|0;
+ $3159 = HEAP8[$40>>0]|0;
+ $3160 = $3159 ^ $3158;
+ $3161 = $3160&255;
+ $3162 = (11712 + ($3161<<2)|0);
+ $3163 = HEAP32[$3162>>2]|0;
+ $3164 = $3163 ^ $3143;
+ $3165 = HEAP8[$617>>0]|0;
+ $3166 = $3165 ^ 55;
+ $3167 = $3166&255;
+ $3168 = (10432 + ($3167)|0);
+ $3169 = HEAP8[$3168>>0]|0;
+ $3170 = HEAP8[$433>>0]|0;
+ $3171 = $3170 ^ $3169;
+ $3172 = $3171&255;
+ $3173 = (10432 + ($3172)|0);
+ $3174 = HEAP8[$3173>>0]|0;
+ $3175 = HEAP8[$248>>0]|0;
+ $3176 = $3175 ^ $3174;
+ $3177 = $3176&255;
+ $3178 = (10176 + ($3177)|0);
+ $3179 = HEAP8[$3178>>0]|0;
+ $3180 = HEAP8[$64>>0]|0;
+ $3181 = $3180 ^ $3179;
+ $3182 = $3181&255;
+ $3183 = (12736 + ($3182<<2)|0);
+ $3184 = HEAP32[$3183>>2]|0;
+ $3185 = $3164 ^ $3184;
+ $3186 = HEAP8[$641>>0]|0;
+ $3187 = $3186 ^ -8;
+ $3188 = $3187&255;
+ $3189 = (10432 + ($3188)|0);
+ $3190 = HEAP8[$3189>>0]|0;
+ $3191 = HEAP8[$457>>0]|0;
+ $3192 = $3191 ^ $3190;
+ $3193 = $3192&255;
+ $3194 = (10176 + ($3193)|0);
+ $3195 = HEAP8[$3194>>0]|0;
+ $3196 = HEAP8[$272>>0]|0;
+ $3197 = $3196 ^ $3195;
+ $3198 = $3197&255;
+ $3199 = (10176 + ($3198)|0);
+ $3200 = HEAP8[$3199>>0]|0;
+ $3201 = HEAP8[$88>>0]|0;
+ $3202 = $3201 ^ $3200;
+ $3203 = $3202&255;
+ $3204 = (13760 + ($3203<<2)|0);
+ $3205 = HEAP32[$3204>>2]|0;
+ $3206 = $3185 ^ $3205;
+ $3207 = HEAP8[$665>>0]|0;
+ $3208 = $3207 ^ 27;
+ $3209 = $3208&255;
+ $3210 = (10176 + ($3209)|0);
+ $3211 = HEAP8[$3210>>0]|0;
+ $3212 = HEAP8[$481>>0]|0;
+ $3213 = $3212 ^ $3211;
+ $3214 = $3213&255;
+ $3215 = (10432 + ($3214)|0);
+ $3216 = HEAP8[$3215>>0]|0;
+ $3217 = HEAP8[$296>>0]|0;
+ $3218 = $3217 ^ $3216;
+ $3219 = $3218&255;
+ $3220 = (10432 + ($3219)|0);
+ $3221 = HEAP8[$3220>>0]|0;
+ $3222 = HEAP8[$112>>0]|0;
+ $3223 = $3222 ^ $3221;
+ $3224 = $3223&255;
+ $3225 = (10688 + ($3224<<2)|0);
+ $3226 = HEAP32[$3225>>2]|0;
+ $3227 = HEAP8[$689>>0]|0;
+ $3228 = $3227 ^ 38;
+ $3229 = $3228&255;
+ $3230 = (10176 + ($3229)|0);
+ $3231 = HEAP8[$3230>>0]|0;
+ $3232 = HEAP8[$505>>0]|0;
+ $3233 = $3232 ^ $3231;
+ $3234 = $3233&255;
+ $3235 = (10176 + ($3234)|0);
+ $3236 = HEAP8[$3235>>0]|0;
+ $3237 = HEAP8[$320>>0]|0;
+ $3238 = $3237 ^ $3236;
+ $3239 = $3238&255;
+ $3240 = (10432 + ($3239)|0);
+ $3241 = HEAP8[$3240>>0]|0;
+ $3242 = HEAP8[$136>>0]|0;
+ $3243 = $3242 ^ $3241;
+ $3244 = $3243&255;
+ $3245 = (11712 + ($3244<<2)|0);
+ $3246 = HEAP32[$3245>>2]|0;
+ $3247 = $3246 ^ $3226;
+ $3248 = HEAP8[$713>>0]|0;
+ $3249 = $3248 ^ 38;
+ $3250 = $3249&255;
+ $3251 = (10432 + ($3250)|0);
+ $3252 = HEAP8[$3251>>0]|0;
+ $3253 = HEAP8[$529>>0]|0;
+ $3254 = $3253 ^ $3252;
+ $3255 = $3254&255;
+ $3256 = (10432 + ($3255)|0);
+ $3257 = HEAP8[$3256>>0]|0;
+ $3258 = HEAP8[$344>>0]|0;
+ $3259 = $3258 ^ $3257;
+ $3260 = $3259&255;
+ $3261 = (10176 + ($3260)|0);
+ $3262 = HEAP8[$3261>>0]|0;
+ $3263 = HEAP8[$160>>0]|0;
+ $3264 = $3263 ^ $3262;
+ $3265 = $3264&255;
+ $3266 = (12736 + ($3265<<2)|0);
+ $3267 = HEAP32[$3266>>2]|0;
+ $3268 = $3247 ^ $3267;
+ $3269 = HEAP8[$737>>0]|0;
+ $3270 = $3269 ^ 27;
+ $3271 = $3270&255;
+ $3272 = (10432 + ($3271)|0);
+ $3273 = HEAP8[$3272>>0]|0;
+ $3274 = HEAP8[$553>>0]|0;
+ $3275 = $3274 ^ $3273;
+ $3276 = $3275&255;
+ $3277 = (10176 + ($3276)|0);
+ $3278 = HEAP8[$3277>>0]|0;
+ $3279 = HEAP8[$368>>0]|0;
+ $3280 = $3279 ^ $3278;
+ $3281 = $3280&255;
+ $3282 = (10176 + ($3281)|0);
+ $3283 = HEAP8[$3282>>0]|0;
+ $3284 = HEAP8[$184>>0]|0;
+ $3285 = $3284 ^ $3283;
+ $3286 = $3285&255;
+ $3287 = (13760 + ($3286<<2)|0);
+ $3288 = HEAP32[$3287>>2]|0;
+ $3289 = $3268 ^ $3288;
+ $3290 = $3289 << 8;
+ $3291 = $3289 >>> 24;
+ $3292 = $3290 | $3291;
+ $3293 = (($3292) + ($3206))|0;
+ $3294 = (($3293) + ($3292))|0;
+ $3295 = ((($0)) + 4200|0);
+ HEAP32[$3295>>2] = $3293;
+ $3296 = $3294 << 9;
+ $3297 = $3294 >>> 23;
+ $3298 = $3296 | $3297;
+ $3299 = ((($0)) + 4204|0);
+ HEAP32[$3299>>2] = $3298;
+ $3300 = HEAP8[$577>>0]|0;
+ $3301 = $3300 ^ -121;
+ $3302 = $3301&255;
+ $3303 = (10176 + ($3302)|0);
+ $3304 = HEAP8[$3303>>0]|0;
+ $3305 = HEAP8[$393>>0]|0;
+ $3306 = $3305 ^ $3304;
+ $3307 = $3306&255;
+ $3308 = (10432 + ($3307)|0);
+ $3309 = HEAP8[$3308>>0]|0;
+ $3310 = HEAP8[$208>>0]|0;
+ $3311 = $3310 ^ $3309;
+ $3312 = $3311&255;
+ $3313 = (10432 + ($3312)|0);
+ $3314 = HEAP8[$3313>>0]|0;
+ $3315 = HEAP8[$1>>0]|0;
+ $3316 = $3315 ^ $3314;
+ $3317 = $3316&255;
+ $3318 = (10688 + ($3317<<2)|0);
+ $3319 = HEAP32[$3318>>2]|0;
+ $3320 = HEAP8[$593>>0]|0;
+ $3321 = $3320 ^ -6;
+ $3322 = $3321&255;
+ $3323 = (10176 + ($3322)|0);
+ $3324 = HEAP8[$3323>>0]|0;
+ $3325 = HEAP8[$409>>0]|0;
+ $3326 = $3325 ^ $3324;
+ $3327 = $3326&255;
+ $3328 = (10176 + ($3327)|0);
+ $3329 = HEAP8[$3328>>0]|0;
+ $3330 = HEAP8[$224>>0]|0;
+ $3331 = $3330 ^ $3329;
+ $3332 = $3331&255;
+ $3333 = (10432 + ($3332)|0);
+ $3334 = HEAP8[$3333>>0]|0;
+ $3335 = HEAP8[$40>>0]|0;
+ $3336 = $3335 ^ $3334;
+ $3337 = $3336&255;
+ $3338 = (11712 + ($3337<<2)|0);
+ $3339 = HEAP32[$3338>>2]|0;
+ $3340 = $3339 ^ $3319;
+ $3341 = HEAP8[$617>>0]|0;
+ $3342 = $3341 ^ -6;
+ $3343 = $3342&255;
+ $3344 = (10432 + ($3343)|0);
+ $3345 = HEAP8[$3344>>0]|0;
+ $3346 = HEAP8[$433>>0]|0;
+ $3347 = $3346 ^ $3345;
+ $3348 = $3347&255;
+ $3349 = (10432 + ($3348)|0);
+ $3350 = HEAP8[$3349>>0]|0;
+ $3351 = HEAP8[$248>>0]|0;
+ $3352 = $3351 ^ $3350;
+ $3353 = $3352&255;
+ $3354 = (10176 + ($3353)|0);
+ $3355 = HEAP8[$3354>>0]|0;
+ $3356 = HEAP8[$64>>0]|0;
+ $3357 = $3356 ^ $3355;
+ $3358 = $3357&255;
+ $3359 = (12736 + ($3358<<2)|0);
+ $3360 = HEAP32[$3359>>2]|0;
+ $3361 = $3340 ^ $3360;
+ $3362 = HEAP8[$641>>0]|0;
+ $3363 = $3362 ^ -121;
+ $3364 = $3363&255;
+ $3365 = (10432 + ($3364)|0);
+ $3366 = HEAP8[$3365>>0]|0;
+ $3367 = HEAP8[$457>>0]|0;
+ $3368 = $3367 ^ $3366;
+ $3369 = $3368&255;
+ $3370 = (10176 + ($3369)|0);
+ $3371 = HEAP8[$3370>>0]|0;
+ $3372 = HEAP8[$272>>0]|0;
+ $3373 = $3372 ^ $3371;
+ $3374 = $3373&255;
+ $3375 = (10176 + ($3374)|0);
+ $3376 = HEAP8[$3375>>0]|0;
+ $3377 = HEAP8[$88>>0]|0;
+ $3378 = $3377 ^ $3376;
+ $3379 = $3378&255;
+ $3380 = (13760 + ($3379<<2)|0);
+ $3381 = HEAP32[$3380>>2]|0;
+ $3382 = $3361 ^ $3381;
+ $3383 = HEAP8[$665>>0]|0;
+ $3384 = $3383 ^ -6;
+ $3385 = $3384&255;
+ $3386 = (10176 + ($3385)|0);
+ $3387 = HEAP8[$3386>>0]|0;
+ $3388 = HEAP8[$481>>0]|0;
+ $3389 = $3388 ^ $3387;
+ $3390 = $3389&255;
+ $3391 = (10432 + ($3390)|0);
+ $3392 = HEAP8[$3391>>0]|0;
+ $3393 = HEAP8[$296>>0]|0;
+ $3394 = $3393 ^ $3392;
+ $3395 = $3394&255;
+ $3396 = (10432 + ($3395)|0);
+ $3397 = HEAP8[$3396>>0]|0;
+ $3398 = HEAP8[$112>>0]|0;
+ $3399 = $3398 ^ $3397;
+ $3400 = $3399&255;
+ $3401 = (10688 + ($3400<<2)|0);
+ $3402 = HEAP32[$3401>>2]|0;
+ $3403 = HEAP8[$689>>0]|0;
+ $3404 = $3403 ^ 19;
+ $3405 = $3404&255;
+ $3406 = (10176 + ($3405)|0);
+ $3407 = HEAP8[$3406>>0]|0;
+ $3408 = HEAP8[$505>>0]|0;
+ $3409 = $3408 ^ $3407;
+ $3410 = $3409&255;
+ $3411 = (10176 + ($3410)|0);
+ $3412 = HEAP8[$3411>>0]|0;
+ $3413 = HEAP8[$320>>0]|0;
+ $3414 = $3413 ^ $3412;
+ $3415 = $3414&255;
+ $3416 = (10432 + ($3415)|0);
+ $3417 = HEAP8[$3416>>0]|0;
+ $3418 = HEAP8[$136>>0]|0;
+ $3419 = $3418 ^ $3417;
+ $3420 = $3419&255;
+ $3421 = (11712 + ($3420<<2)|0);
+ $3422 = HEAP32[$3421>>2]|0;
+ $3423 = $3422 ^ $3402;
+ $3424 = HEAP8[$713>>0]|0;
+ $3425 = $3424 ^ 19;
+ $3426 = $3425&255;
+ $3427 = (10432 + ($3426)|0);
+ $3428 = HEAP8[$3427>>0]|0;
+ $3429 = HEAP8[$529>>0]|0;
+ $3430 = $3429 ^ $3428;
+ $3431 = $3430&255;
+ $3432 = (10432 + ($3431)|0);
+ $3433 = HEAP8[$3432>>0]|0;
+ $3434 = HEAP8[$344>>0]|0;
+ $3435 = $3434 ^ $3433;
+ $3436 = $3435&255;
+ $3437 = (10176 + ($3436)|0);
+ $3438 = HEAP8[$3437>>0]|0;
+ $3439 = HEAP8[$160>>0]|0;
+ $3440 = $3439 ^ $3438;
+ $3441 = $3440&255;
+ $3442 = (12736 + ($3441<<2)|0);
+ $3443 = HEAP32[$3442>>2]|0;
+ $3444 = $3423 ^ $3443;
+ $3445 = HEAP8[$737>>0]|0;
+ $3446 = $3445 ^ -6;
+ $3447 = $3446&255;
+ $3448 = (10432 + ($3447)|0);
+ $3449 = HEAP8[$3448>>0]|0;
+ $3450 = HEAP8[$553>>0]|0;
+ $3451 = $3450 ^ $3449;
+ $3452 = $3451&255;
+ $3453 = (10176 + ($3452)|0);
+ $3454 = HEAP8[$3453>>0]|0;
+ $3455 = HEAP8[$368>>0]|0;
+ $3456 = $3455 ^ $3454;
+ $3457 = $3456&255;
+ $3458 = (10176 + ($3457)|0);
+ $3459 = HEAP8[$3458>>0]|0;
+ $3460 = HEAP8[$184>>0]|0;
+ $3461 = $3460 ^ $3459;
+ $3462 = $3461&255;
+ $3463 = (13760 + ($3462<<2)|0);
+ $3464 = HEAP32[$3463>>2]|0;
+ $3465 = $3444 ^ $3464;
+ $3466 = $3465 << 8;
+ $3467 = $3465 >>> 24;
+ $3468 = $3466 | $3467;
+ $3469 = (($3468) + ($3382))|0;
+ $3470 = (($3469) + ($3468))|0;
+ $3471 = ((($0)) + 4208|0);
+ HEAP32[$3471>>2] = $3469;
+ $3472 = $3470 << 9;
+ $3473 = $3470 >>> 23;
+ $3474 = $3472 | $3473;
+ $3475 = ((($0)) + 4212|0);
+ HEAP32[$3475>>2] = $3474;
+ $3476 = HEAP8[$577>>0]|0;
+ $3477 = $3476 ^ 6;
+ $3478 = $3477&255;
+ $3479 = (10176 + ($3478)|0);
+ $3480 = HEAP8[$3479>>0]|0;
+ $3481 = HEAP8[$393>>0]|0;
+ $3482 = $3481 ^ $3480;
+ $3483 = $3482&255;
+ $3484 = (10432 + ($3483)|0);
+ $3485 = HEAP8[$3484>>0]|0;
+ $3486 = HEAP8[$208>>0]|0;
+ $3487 = $3486 ^ $3485;
+ $3488 = $3487&255;
+ $3489 = (10432 + ($3488)|0);
+ $3490 = HEAP8[$3489>>0]|0;
+ $3491 = HEAP8[$1>>0]|0;
+ $3492 = $3491 ^ $3490;
+ $3493 = $3492&255;
+ $3494 = (10688 + ($3493<<2)|0);
+ $3495 = HEAP32[$3494>>2]|0;
+ $3496 = HEAP8[$593>>0]|0;
+ $3497 = $3496 ^ -108;
+ $3498 = $3497&255;
+ $3499 = (10176 + ($3498)|0);
+ $3500 = HEAP8[$3499>>0]|0;
+ $3501 = HEAP8[$409>>0]|0;
+ $3502 = $3501 ^ $3500;
+ $3503 = $3502&255;
+ $3504 = (10176 + ($3503)|0);
+ $3505 = HEAP8[$3504>>0]|0;
+ $3506 = HEAP8[$224>>0]|0;
+ $3507 = $3506 ^ $3505;
+ $3508 = $3507&255;
+ $3509 = (10432 + ($3508)|0);
+ $3510 = HEAP8[$3509>>0]|0;
+ $3511 = HEAP8[$40>>0]|0;
+ $3512 = $3511 ^ $3510;
+ $3513 = $3512&255;
+ $3514 = (11712 + ($3513<<2)|0);
+ $3515 = HEAP32[$3514>>2]|0;
+ $3516 = $3515 ^ $3495;
+ $3517 = HEAP8[$617>>0]|0;
+ $3518 = $3517 ^ -108;
+ $3519 = $3518&255;
+ $3520 = (10432 + ($3519)|0);
+ $3521 = HEAP8[$3520>>0]|0;
+ $3522 = HEAP8[$433>>0]|0;
+ $3523 = $3522 ^ $3521;
+ $3524 = $3523&255;
+ $3525 = (10432 + ($3524)|0);
+ $3526 = HEAP8[$3525>>0]|0;
+ $3527 = HEAP8[$248>>0]|0;
+ $3528 = $3527 ^ $3526;
+ $3529 = $3528&255;
+ $3530 = (10176 + ($3529)|0);
+ $3531 = HEAP8[$3530>>0]|0;
+ $3532 = HEAP8[$64>>0]|0;
+ $3533 = $3532 ^ $3531;
+ $3534 = $3533&255;
+ $3535 = (12736 + ($3534<<2)|0);
+ $3536 = HEAP32[$3535>>2]|0;
+ $3537 = $3516 ^ $3536;
+ $3538 = HEAP8[$641>>0]|0;
+ $3539 = $3538 ^ 6;
+ $3540 = $3539&255;
+ $3541 = (10432 + ($3540)|0);
+ $3542 = HEAP8[$3541>>0]|0;
+ $3543 = HEAP8[$457>>0]|0;
+ $3544 = $3543 ^ $3542;
+ $3545 = $3544&255;
+ $3546 = (10176 + ($3545)|0);
+ $3547 = HEAP8[$3546>>0]|0;
+ $3548 = HEAP8[$272>>0]|0;
+ $3549 = $3548 ^ $3547;
+ $3550 = $3549&255;
+ $3551 = (10176 + ($3550)|0);
+ $3552 = HEAP8[$3551>>0]|0;
+ $3553 = HEAP8[$88>>0]|0;
+ $3554 = $3553 ^ $3552;
+ $3555 = $3554&255;
+ $3556 = (13760 + ($3555<<2)|0);
+ $3557 = HEAP32[$3556>>2]|0;
+ $3558 = $3537 ^ $3557;
+ $3559 = HEAP8[$665>>0]|0;
+ $3560 = $3559 ^ 63;
+ $3561 = $3560&255;
+ $3562 = (10176 + ($3561)|0);
+ $3563 = HEAP8[$3562>>0]|0;
+ $3564 = HEAP8[$481>>0]|0;
+ $3565 = $3564 ^ $3563;
+ $3566 = $3565&255;
+ $3567 = (10432 + ($3566)|0);
+ $3568 = HEAP8[$3567>>0]|0;
+ $3569 = HEAP8[$296>>0]|0;
+ $3570 = $3569 ^ $3568;
+ $3571 = $3570&255;
+ $3572 = (10432 + ($3571)|0);
+ $3573 = HEAP8[$3572>>0]|0;
+ $3574 = HEAP8[$112>>0]|0;
+ $3575 = $3574 ^ $3573;
+ $3576 = $3575&255;
+ $3577 = (10688 + ($3576<<2)|0);
+ $3578 = HEAP32[$3577>>2]|0;
+ $3579 = HEAP8[$689>>0]|0;
+ $3580 = $3579 ^ 72;
+ $3581 = $3580&255;
+ $3582 = (10176 + ($3581)|0);
+ $3583 = HEAP8[$3582>>0]|0;
+ $3584 = HEAP8[$505>>0]|0;
+ $3585 = $3584 ^ $3583;
+ $3586 = $3585&255;
+ $3587 = (10176 + ($3586)|0);
+ $3588 = HEAP8[$3587>>0]|0;
+ $3589 = HEAP8[$320>>0]|0;
+ $3590 = $3589 ^ $3588;
+ $3591 = $3590&255;
+ $3592 = (10432 + ($3591)|0);
+ $3593 = HEAP8[$3592>>0]|0;
+ $3594 = HEAP8[$136>>0]|0;
+ $3595 = $3594 ^ $3593;
+ $3596 = $3595&255;
+ $3597 = (11712 + ($3596<<2)|0);
+ $3598 = HEAP32[$3597>>2]|0;
+ $3599 = $3598 ^ $3578;
+ $3600 = HEAP8[$713>>0]|0;
+ $3601 = $3600 ^ 72;
+ $3602 = $3601&255;
+ $3603 = (10432 + ($3602)|0);
+ $3604 = HEAP8[$3603>>0]|0;
+ $3605 = HEAP8[$529>>0]|0;
+ $3606 = $3605 ^ $3604;
+ $3607 = $3606&255;
+ $3608 = (10432 + ($3607)|0);
+ $3609 = HEAP8[$3608>>0]|0;
+ $3610 = HEAP8[$344>>0]|0;
+ $3611 = $3610 ^ $3609;
+ $3612 = $3611&255;
+ $3613 = (10176 + ($3612)|0);
+ $3614 = HEAP8[$3613>>0]|0;
+ $3615 = HEAP8[$160>>0]|0;
+ $3616 = $3615 ^ $3614;
+ $3617 = $3616&255;
+ $3618 = (12736 + ($3617<<2)|0);
+ $3619 = HEAP32[$3618>>2]|0;
+ $3620 = $3599 ^ $3619;
+ $3621 = HEAP8[$737>>0]|0;
+ $3622 = $3621 ^ 63;
+ $3623 = $3622&255;
+ $3624 = (10432 + ($3623)|0);
+ $3625 = HEAP8[$3624>>0]|0;
+ $3626 = HEAP8[$553>>0]|0;
+ $3627 = $3626 ^ $3625;
+ $3628 = $3627&255;
+ $3629 = (10176 + ($3628)|0);
+ $3630 = HEAP8[$3629>>0]|0;
+ $3631 = HEAP8[$368>>0]|0;
+ $3632 = $3631 ^ $3630;
+ $3633 = $3632&255;
+ $3634 = (10176 + ($3633)|0);
+ $3635 = HEAP8[$3634>>0]|0;
+ $3636 = HEAP8[$184>>0]|0;
+ $3637 = $3636 ^ $3635;
+ $3638 = $3637&255;
+ $3639 = (13760 + ($3638<<2)|0);
+ $3640 = HEAP32[$3639>>2]|0;
+ $3641 = $3620 ^ $3640;
+ $3642 = $3641 << 8;
+ $3643 = $3641 >>> 24;
+ $3644 = $3642 | $3643;
+ $3645 = (($3644) + ($3558))|0;
+ $3646 = (($3645) + ($3644))|0;
+ $3647 = ((($0)) + 4216|0);
+ HEAP32[$3647>>2] = $3645;
+ $3648 = $3646 << 9;
+ $3649 = $3646 >>> 23;
+ $3650 = $3648 | $3649;
+ $3651 = ((($0)) + 4220|0);
+ HEAP32[$3651>>2] = $3650;
+ $3652 = HEAP8[$577>>0]|0;
+ $3653 = $3652 ^ 94;
+ $3654 = $3653&255;
+ $3655 = (10176 + ($3654)|0);
+ $3656 = HEAP8[$3655>>0]|0;
+ $3657 = HEAP8[$393>>0]|0;
+ $3658 = $3657 ^ $3656;
+ $3659 = $3658&255;
+ $3660 = (10432 + ($3659)|0);
+ $3661 = HEAP8[$3660>>0]|0;
+ $3662 = HEAP8[$208>>0]|0;
+ $3663 = $3662 ^ $3661;
+ $3664 = $3663&255;
+ $3665 = (10432 + ($3664)|0);
+ $3666 = HEAP8[$3665>>0]|0;
+ $3667 = HEAP8[$1>>0]|0;
+ $3668 = $3667 ^ $3666;
+ $3669 = $3668&255;
+ $3670 = (10688 + ($3669<<2)|0);
+ $3671 = HEAP32[$3670>>2]|0;
+ $3672 = HEAP8[$593>>0]|0;
+ $3673 = $3672 ^ -14;
+ $3674 = $3673&255;
+ $3675 = (10176 + ($3674)|0);
+ $3676 = HEAP8[$3675>>0]|0;
+ $3677 = HEAP8[$409>>0]|0;
+ $3678 = $3677 ^ $3676;
+ $3679 = $3678&255;
+ $3680 = (10176 + ($3679)|0);
+ $3681 = HEAP8[$3680>>0]|0;
+ $3682 = HEAP8[$224>>0]|0;
+ $3683 = $3682 ^ $3681;
+ $3684 = $3683&255;
+ $3685 = (10432 + ($3684)|0);
+ $3686 = HEAP8[$3685>>0]|0;
+ $3687 = HEAP8[$40>>0]|0;
+ $3688 = $3687 ^ $3686;
+ $3689 = $3688&255;
+ $3690 = (11712 + ($3689<<2)|0);
+ $3691 = HEAP32[$3690>>2]|0;
+ $3692 = $3691 ^ $3671;
+ $3693 = HEAP8[$617>>0]|0;
+ $3694 = $3693 ^ -14;
+ $3695 = $3694&255;
+ $3696 = (10432 + ($3695)|0);
+ $3697 = HEAP8[$3696>>0]|0;
+ $3698 = HEAP8[$433>>0]|0;
+ $3699 = $3698 ^ $3697;
+ $3700 = $3699&255;
+ $3701 = (10432 + ($3700)|0);
+ $3702 = HEAP8[$3701>>0]|0;
+ $3703 = HEAP8[$248>>0]|0;
+ $3704 = $3703 ^ $3702;
+ $3705 = $3704&255;
+ $3706 = (10176 + ($3705)|0);
+ $3707 = HEAP8[$3706>>0]|0;
+ $3708 = HEAP8[$64>>0]|0;
+ $3709 = $3708 ^ $3707;
+ $3710 = $3709&255;
+ $3711 = (12736 + ($3710<<2)|0);
+ $3712 = HEAP32[$3711>>2]|0;
+ $3713 = $3692 ^ $3712;
+ $3714 = HEAP8[$641>>0]|0;
+ $3715 = $3714 ^ 94;
+ $3716 = $3715&255;
+ $3717 = (10432 + ($3716)|0);
+ $3718 = HEAP8[$3717>>0]|0;
+ $3719 = HEAP8[$457>>0]|0;
+ $3720 = $3719 ^ $3718;
+ $3721 = $3720&255;
+ $3722 = (10176 + ($3721)|0);
+ $3723 = HEAP8[$3722>>0]|0;
+ $3724 = HEAP8[$272>>0]|0;
+ $3725 = $3724 ^ $3723;
+ $3726 = $3725&255;
+ $3727 = (10176 + ($3726)|0);
+ $3728 = HEAP8[$3727>>0]|0;
+ $3729 = HEAP8[$88>>0]|0;
+ $3730 = $3729 ^ $3728;
+ $3731 = $3730&255;
+ $3732 = (13760 + ($3731<<2)|0);
+ $3733 = HEAP32[$3732>>2]|0;
+ $3734 = $3713 ^ $3733;
+ $3735 = HEAP8[$665>>0]|0;
+ $3736 = $3735 ^ -70;
+ $3737 = $3736&255;
+ $3738 = (10176 + ($3737)|0);
+ $3739 = HEAP8[$3738>>0]|0;
+ $3740 = HEAP8[$481>>0]|0;
+ $3741 = $3740 ^ $3739;
+ $3742 = $3741&255;
+ $3743 = (10432 + ($3742)|0);
+ $3744 = HEAP8[$3743>>0]|0;
+ $3745 = HEAP8[$296>>0]|0;
+ $3746 = $3745 ^ $3744;
+ $3747 = $3746&255;
+ $3748 = (10432 + ($3747)|0);
+ $3749 = HEAP8[$3748>>0]|0;
+ $3750 = HEAP8[$112>>0]|0;
+ $3751 = $3750 ^ $3749;
+ $3752 = $3751&255;
+ $3753 = (10688 + ($3752<<2)|0);
+ $3754 = HEAP32[$3753>>2]|0;
+ $3755 = HEAP8[$689>>0]|0;
+ $3756 = $3755 ^ -48;
+ $3757 = $3756&255;
+ $3758 = (10176 + ($3757)|0);
+ $3759 = HEAP8[$3758>>0]|0;
+ $3760 = HEAP8[$505>>0]|0;
+ $3761 = $3760 ^ $3759;
+ $3762 = $3761&255;
+ $3763 = (10176 + ($3762)|0);
+ $3764 = HEAP8[$3763>>0]|0;
+ $3765 = HEAP8[$320>>0]|0;
+ $3766 = $3765 ^ $3764;
+ $3767 = $3766&255;
+ $3768 = (10432 + ($3767)|0);
+ $3769 = HEAP8[$3768>>0]|0;
+ $3770 = HEAP8[$136>>0]|0;
+ $3771 = $3770 ^ $3769;
+ $3772 = $3771&255;
+ $3773 = (11712 + ($3772<<2)|0);
+ $3774 = HEAP32[$3773>>2]|0;
+ $3775 = $3774 ^ $3754;
+ $3776 = HEAP8[$713>>0]|0;
+ $3777 = $3776 ^ -48;
+ $3778 = $3777&255;
+ $3779 = (10432 + ($3778)|0);
+ $3780 = HEAP8[$3779>>0]|0;
+ $3781 = HEAP8[$529>>0]|0;
+ $3782 = $3781 ^ $3780;
+ $3783 = $3782&255;
+ $3784 = (10432 + ($3783)|0);
+ $3785 = HEAP8[$3784>>0]|0;
+ $3786 = HEAP8[$344>>0]|0;
+ $3787 = $3786 ^ $3785;
+ $3788 = $3787&255;
+ $3789 = (10176 + ($3788)|0);
+ $3790 = HEAP8[$3789>>0]|0;
+ $3791 = HEAP8[$160>>0]|0;
+ $3792 = $3791 ^ $3790;
+ $3793 = $3792&255;
+ $3794 = (12736 + ($3793<<2)|0);
+ $3795 = HEAP32[$3794>>2]|0;
+ $3796 = $3775 ^ $3795;
+ $3797 = HEAP8[$737>>0]|0;
+ $3798 = $3797 ^ -70;
+ $3799 = $3798&255;
+ $3800 = (10432 + ($3799)|0);
+ $3801 = HEAP8[$3800>>0]|0;
+ $3802 = HEAP8[$553>>0]|0;
+ $3803 = $3802 ^ $3801;
+ $3804 = $3803&255;
+ $3805 = (10176 + ($3804)|0);
+ $3806 = HEAP8[$3805>>0]|0;
+ $3807 = HEAP8[$368>>0]|0;
+ $3808 = $3807 ^ $3806;
+ $3809 = $3808&255;
+ $3810 = (10176 + ($3809)|0);
+ $3811 = HEAP8[$3810>>0]|0;
+ $3812 = HEAP8[$184>>0]|0;
+ $3813 = $3812 ^ $3811;
+ $3814 = $3813&255;
+ $3815 = (13760 + ($3814<<2)|0);
+ $3816 = HEAP32[$3815>>2]|0;
+ $3817 = $3796 ^ $3816;
+ $3818 = $3817 << 8;
+ $3819 = $3817 >>> 24;
+ $3820 = $3818 | $3819;
+ $3821 = (($3820) + ($3734))|0;
+ $3822 = (($3821) + ($3820))|0;
+ $3823 = ((($0)) + 4224|0);
+ HEAP32[$3823>>2] = $3821;
+ $3824 = $3822 << 9;
+ $3825 = $3822 >>> 23;
+ $3826 = $3824 | $3825;
+ $3827 = ((($0)) + 4228|0);
+ HEAP32[$3827>>2] = $3826;
+ $3828 = HEAP8[$577>>0]|0;
+ $3829 = $3828 ^ -82;
+ $3830 = $3829&255;
+ $3831 = (10176 + ($3830)|0);
+ $3832 = HEAP8[$3831>>0]|0;
+ $3833 = HEAP8[$393>>0]|0;
+ $3834 = $3833 ^ $3832;
+ $3835 = $3834&255;
+ $3836 = (10432 + ($3835)|0);
+ $3837 = HEAP8[$3836>>0]|0;
+ $3838 = HEAP8[$208>>0]|0;
+ $3839 = $3838 ^ $3837;
+ $3840 = $3839&255;
+ $3841 = (10432 + ($3840)|0);
+ $3842 = HEAP8[$3841>>0]|0;
+ $3843 = HEAP8[$1>>0]|0;
+ $3844 = $3843 ^ $3842;
+ $3845 = $3844&255;
+ $3846 = (10688 + ($3845<<2)|0);
+ $3847 = HEAP32[$3846>>2]|0;
+ $3848 = HEAP8[$593>>0]|0;
+ $3849 = $3848 ^ -117;
+ $3850 = $3849&255;
+ $3851 = (10176 + ($3850)|0);
+ $3852 = HEAP8[$3851>>0]|0;
+ $3853 = HEAP8[$409>>0]|0;
+ $3854 = $3853 ^ $3852;
+ $3855 = $3854&255;
+ $3856 = (10176 + ($3855)|0);
+ $3857 = HEAP8[$3856>>0]|0;
+ $3858 = HEAP8[$224>>0]|0;
+ $3859 = $3858 ^ $3857;
+ $3860 = $3859&255;
+ $3861 = (10432 + ($3860)|0);
+ $3862 = HEAP8[$3861>>0]|0;
+ $3863 = HEAP8[$40>>0]|0;
+ $3864 = $3863 ^ $3862;
+ $3865 = $3864&255;
+ $3866 = (11712 + ($3865<<2)|0);
+ $3867 = HEAP32[$3866>>2]|0;
+ $3868 = $3867 ^ $3847;
+ $3869 = HEAP8[$617>>0]|0;
+ $3870 = $3869 ^ -117;
+ $3871 = $3870&255;
+ $3872 = (10432 + ($3871)|0);
+ $3873 = HEAP8[$3872>>0]|0;
+ $3874 = HEAP8[$433>>0]|0;
+ $3875 = $3874 ^ $3873;
+ $3876 = $3875&255;
+ $3877 = (10432 + ($3876)|0);
+ $3878 = HEAP8[$3877>>0]|0;
+ $3879 = HEAP8[$248>>0]|0;
+ $3880 = $3879 ^ $3878;
+ $3881 = $3880&255;
+ $3882 = (10176 + ($3881)|0);
+ $3883 = HEAP8[$3882>>0]|0;
+ $3884 = HEAP8[$64>>0]|0;
+ $3885 = $3884 ^ $3883;
+ $3886 = $3885&255;
+ $3887 = (12736 + ($3886<<2)|0);
+ $3888 = HEAP32[$3887>>2]|0;
+ $3889 = $3868 ^ $3888;
+ $3890 = HEAP8[$641>>0]|0;
+ $3891 = $3890 ^ -82;
+ $3892 = $3891&255;
+ $3893 = (10432 + ($3892)|0);
+ $3894 = HEAP8[$3893>>0]|0;
+ $3895 = HEAP8[$457>>0]|0;
+ $3896 = $3895 ^ $3894;
+ $3897 = $3896&255;
+ $3898 = (10176 + ($3897)|0);
+ $3899 = HEAP8[$3898>>0]|0;
+ $3900 = HEAP8[$272>>0]|0;
+ $3901 = $3900 ^ $3899;
+ $3902 = $3901&255;
+ $3903 = (10176 + ($3902)|0);
+ $3904 = HEAP8[$3903>>0]|0;
+ $3905 = HEAP8[$88>>0]|0;
+ $3906 = $3905 ^ $3904;
+ $3907 = $3906&255;
+ $3908 = (13760 + ($3907<<2)|0);
+ $3909 = HEAP32[$3908>>2]|0;
+ $3910 = $3889 ^ $3909;
+ $3911 = HEAP8[$665>>0]|0;
+ $3912 = $3911 ^ 91;
+ $3913 = $3912&255;
+ $3914 = (10176 + ($3913)|0);
+ $3915 = HEAP8[$3914>>0]|0;
+ $3916 = HEAP8[$481>>0]|0;
+ $3917 = $3916 ^ $3915;
+ $3918 = $3917&255;
+ $3919 = (10432 + ($3918)|0);
+ $3920 = HEAP8[$3919>>0]|0;
+ $3921 = HEAP8[$296>>0]|0;
+ $3922 = $3921 ^ $3920;
+ $3923 = $3922&255;
+ $3924 = (10432 + ($3923)|0);
+ $3925 = HEAP8[$3924>>0]|0;
+ $3926 = HEAP8[$112>>0]|0;
+ $3927 = $3926 ^ $3925;
+ $3928 = $3927&255;
+ $3929 = (10688 + ($3928<<2)|0);
+ $3930 = HEAP32[$3929>>2]|0;
+ $3931 = HEAP8[$689>>0]|0;
+ $3932 = $3931 ^ 48;
+ $3933 = $3932&255;
+ $3934 = (10176 + ($3933)|0);
+ $3935 = HEAP8[$3934>>0]|0;
+ $3936 = HEAP8[$505>>0]|0;
+ $3937 = $3936 ^ $3935;
+ $3938 = $3937&255;
+ $3939 = (10176 + ($3938)|0);
+ $3940 = HEAP8[$3939>>0]|0;
+ $3941 = HEAP8[$320>>0]|0;
+ $3942 = $3941 ^ $3940;
+ $3943 = $3942&255;
+ $3944 = (10432 + ($3943)|0);
+ $3945 = HEAP8[$3944>>0]|0;
+ $3946 = HEAP8[$136>>0]|0;
+ $3947 = $3946 ^ $3945;
+ $3948 = $3947&255;
+ $3949 = (11712 + ($3948<<2)|0);
+ $3950 = HEAP32[$3949>>2]|0;
+ $3951 = $3950 ^ $3930;
+ $3952 = HEAP8[$713>>0]|0;
+ $3953 = $3952 ^ 48;
+ $3954 = $3953&255;
+ $3955 = (10432 + ($3954)|0);
+ $3956 = HEAP8[$3955>>0]|0;
+ $3957 = HEAP8[$529>>0]|0;
+ $3958 = $3957 ^ $3956;
+ $3959 = $3958&255;
+ $3960 = (10432 + ($3959)|0);
+ $3961 = HEAP8[$3960>>0]|0;
+ $3962 = HEAP8[$344>>0]|0;
+ $3963 = $3962 ^ $3961;
+ $3964 = $3963&255;
+ $3965 = (10176 + ($3964)|0);
+ $3966 = HEAP8[$3965>>0]|0;
+ $3967 = HEAP8[$160>>0]|0;
+ $3968 = $3967 ^ $3966;
+ $3969 = $3968&255;
+ $3970 = (12736 + ($3969<<2)|0);
+ $3971 = HEAP32[$3970>>2]|0;
+ $3972 = $3951 ^ $3971;
+ $3973 = HEAP8[$737>>0]|0;
+ $3974 = $3973 ^ 91;
+ $3975 = $3974&255;
+ $3976 = (10432 + ($3975)|0);
+ $3977 = HEAP8[$3976>>0]|0;
+ $3978 = HEAP8[$553>>0]|0;
+ $3979 = $3978 ^ $3977;
+ $3980 = $3979&255;
+ $3981 = (10176 + ($3980)|0);
+ $3982 = HEAP8[$3981>>0]|0;
+ $3983 = HEAP8[$368>>0]|0;
+ $3984 = $3983 ^ $3982;
+ $3985 = $3984&255;
+ $3986 = (10176 + ($3985)|0);
+ $3987 = HEAP8[$3986>>0]|0;
+ $3988 = HEAP8[$184>>0]|0;
+ $3989 = $3988 ^ $3987;
+ $3990 = $3989&255;
+ $3991 = (13760 + ($3990<<2)|0);
+ $3992 = HEAP32[$3991>>2]|0;
+ $3993 = $3972 ^ $3992;
+ $3994 = $3993 << 8;
+ $3995 = $3993 >>> 24;
+ $3996 = $3994 | $3995;
+ $3997 = (($3996) + ($3910))|0;
+ $3998 = (($3997) + ($3996))|0;
+ $3999 = ((($0)) + 4232|0);
+ HEAP32[$3999>>2] = $3997;
+ $4000 = $3998 << 9;
+ $4001 = $3998 >>> 23;
+ $4002 = $4000 | $4001;
+ $4003 = ((($0)) + 4236|0);
+ HEAP32[$4003>>2] = $4002;
+ $4004 = HEAP8[$577>>0]|0;
+ $4005 = $4004 ^ -118;
+ $4006 = $4005&255;
+ $4007 = (10176 + ($4006)|0);
+ $4008 = HEAP8[$4007>>0]|0;
+ $4009 = HEAP8[$393>>0]|0;
+ $4010 = $4009 ^ $4008;
+ $4011 = $4010&255;
+ $4012 = (10432 + ($4011)|0);
+ $4013 = HEAP8[$4012>>0]|0;
+ $4014 = HEAP8[$208>>0]|0;
+ $4015 = $4014 ^ $4013;
+ $4016 = $4015&255;
+ $4017 = (10432 + ($4016)|0);
+ $4018 = HEAP8[$4017>>0]|0;
+ $4019 = HEAP8[$1>>0]|0;
+ $4020 = $4019 ^ $4018;
+ $4021 = $4020&255;
+ $4022 = (10688 + ($4021<<2)|0);
+ $4023 = HEAP32[$4022>>2]|0;
+ $4024 = HEAP8[$593>>0]|0;
+ $4025 = $4024 ^ -124;
+ $4026 = $4025&255;
+ $4027 = (10176 + ($4026)|0);
+ $4028 = HEAP8[$4027>>0]|0;
+ $4029 = HEAP8[$409>>0]|0;
+ $4030 = $4029 ^ $4028;
+ $4031 = $4030&255;
+ $4032 = (10176 + ($4031)|0);
+ $4033 = HEAP8[$4032>>0]|0;
+ $4034 = HEAP8[$224>>0]|0;
+ $4035 = $4034 ^ $4033;
+ $4036 = $4035&255;
+ $4037 = (10432 + ($4036)|0);
+ $4038 = HEAP8[$4037>>0]|0;
+ $4039 = HEAP8[$40>>0]|0;
+ $4040 = $4039 ^ $4038;
+ $4041 = $4040&255;
+ $4042 = (11712 + ($4041<<2)|0);
+ $4043 = HEAP32[$4042>>2]|0;
+ $4044 = $4043 ^ $4023;
+ $4045 = HEAP8[$617>>0]|0;
+ $4046 = $4045 ^ -124;
+ $4047 = $4046&255;
+ $4048 = (10432 + ($4047)|0);
+ $4049 = HEAP8[$4048>>0]|0;
+ $4050 = HEAP8[$433>>0]|0;
+ $4051 = $4050 ^ $4049;
+ $4052 = $4051&255;
+ $4053 = (10432 + ($4052)|0);
+ $4054 = HEAP8[$4053>>0]|0;
+ $4055 = HEAP8[$248>>0]|0;
+ $4056 = $4055 ^ $4054;
+ $4057 = $4056&255;
+ $4058 = (10176 + ($4057)|0);
+ $4059 = HEAP8[$4058>>0]|0;
+ $4060 = HEAP8[$64>>0]|0;
+ $4061 = $4060 ^ $4059;
+ $4062 = $4061&255;
+ $4063 = (12736 + ($4062<<2)|0);
+ $4064 = HEAP32[$4063>>2]|0;
+ $4065 = $4044 ^ $4064;
+ $4066 = HEAP8[$641>>0]|0;
+ $4067 = $4066 ^ -118;
+ $4068 = $4067&255;
+ $4069 = (10432 + ($4068)|0);
+ $4070 = HEAP8[$4069>>0]|0;
+ $4071 = HEAP8[$457>>0]|0;
+ $4072 = $4071 ^ $4070;
+ $4073 = $4072&255;
+ $4074 = (10176 + ($4073)|0);
+ $4075 = HEAP8[$4074>>0]|0;
+ $4076 = HEAP8[$272>>0]|0;
+ $4077 = $4076 ^ $4075;
+ $4078 = $4077&255;
+ $4079 = (10176 + ($4078)|0);
+ $4080 = HEAP8[$4079>>0]|0;
+ $4081 = HEAP8[$88>>0]|0;
+ $4082 = $4081 ^ $4080;
+ $4083 = $4082&255;
+ $4084 = (13760 + ($4083<<2)|0);
+ $4085 = HEAP32[$4084>>2]|0;
+ $4086 = $4065 ^ $4085;
+ $4087 = HEAP8[$665>>0]|0;
+ $4088 = $4087&255;
+ $4089 = (10176 + ($4088)|0);
+ $4090 = HEAP8[$4089>>0]|0;
+ $4091 = HEAP8[$481>>0]|0;
+ $4092 = $4091 ^ $4090;
+ $4093 = $4092&255;
+ $4094 = (10432 + ($4093)|0);
+ $4095 = HEAP8[$4094>>0]|0;
+ $4096 = HEAP8[$296>>0]|0;
+ $4097 = $4096 ^ $4095;
+ $4098 = $4097&255;
+ $4099 = (10432 + ($4098)|0);
+ $4100 = HEAP8[$4099>>0]|0;
+ $4101 = HEAP8[$112>>0]|0;
+ $4102 = $4101 ^ $4100;
+ $4103 = $4102&255;
+ $4104 = (10688 + ($4103<<2)|0);
+ $4105 = HEAP32[$4104>>2]|0;
+ $4106 = HEAP8[$689>>0]|0;
+ $4107 = $4106 ^ 84;
+ $4108 = $4107&255;
+ $4109 = (10176 + ($4108)|0);
+ $4110 = HEAP8[$4109>>0]|0;
+ $4111 = HEAP8[$505>>0]|0;
+ $4112 = $4111 ^ $4110;
+ $4113 = $4112&255;
+ $4114 = (10176 + ($4113)|0);
+ $4115 = HEAP8[$4114>>0]|0;
+ $4116 = HEAP8[$320>>0]|0;
+ $4117 = $4116 ^ $4115;
+ $4118 = $4117&255;
+ $4119 = (10432 + ($4118)|0);
+ $4120 = HEAP8[$4119>>0]|0;
+ $4121 = HEAP8[$136>>0]|0;
+ $4122 = $4121 ^ $4120;
+ $4123 = $4122&255;
+ $4124 = (11712 + ($4123<<2)|0);
+ $4125 = HEAP32[$4124>>2]|0;
+ $4126 = $4125 ^ $4105;
+ $4127 = HEAP8[$713>>0]|0;
+ $4128 = $4127 ^ 84;
+ $4129 = $4128&255;
+ $4130 = (10432 + ($4129)|0);
+ $4131 = HEAP8[$4130>>0]|0;
+ $4132 = HEAP8[$529>>0]|0;
+ $4133 = $4132 ^ $4131;
+ $4134 = $4133&255;
+ $4135 = (10432 + ($4134)|0);
+ $4136 = HEAP8[$4135>>0]|0;
+ $4137 = HEAP8[$344>>0]|0;
+ $4138 = $4137 ^ $4136;
+ $4139 = $4138&255;
+ $4140 = (10176 + ($4139)|0);
+ $4141 = HEAP8[$4140>>0]|0;
+ $4142 = HEAP8[$160>>0]|0;
+ $4143 = $4142 ^ $4141;
+ $4144 = $4143&255;
+ $4145 = (12736 + ($4144<<2)|0);
+ $4146 = HEAP32[$4145>>2]|0;
+ $4147 = $4126 ^ $4146;
+ $4148 = HEAP8[$737>>0]|0;
+ $4149 = $4148&255;
+ $4150 = (10432 + ($4149)|0);
+ $4151 = HEAP8[$4150>>0]|0;
+ $4152 = HEAP8[$553>>0]|0;
+ $4153 = $4152 ^ $4151;
+ $4154 = $4153&255;
+ $4155 = (10176 + ($4154)|0);
+ $4156 = HEAP8[$4155>>0]|0;
+ $4157 = HEAP8[$368>>0]|0;
+ $4158 = $4157 ^ $4156;
+ $4159 = $4158&255;
+ $4160 = (10176 + ($4159)|0);
+ $4161 = HEAP8[$4160>>0]|0;
+ $4162 = HEAP8[$184>>0]|0;
+ $4163 = $4162 ^ $4161;
+ $4164 = $4163&255;
+ $4165 = (13760 + ($4164<<2)|0);
+ $4166 = HEAP32[$4165>>2]|0;
+ $4167 = $4147 ^ $4166;
+ $4168 = $4167 << 8;
+ $4169 = $4167 >>> 24;
+ $4170 = $4168 | $4169;
+ $4171 = (($4170) + ($4086))|0;
+ $4172 = (($4171) + ($4170))|0;
+ $4173 = ((($0)) + 4240|0);
+ HEAP32[$4173>>2] = $4171;
+ $4174 = $4172 << 9;
+ $4175 = $4172 >>> 23;
+ $4176 = $4174 | $4175;
+ $4177 = ((($0)) + 4244|0);
+ HEAP32[$4177>>2] = $4176;
+ $4178 = HEAP8[$577>>0]|0;
+ $4179 = $4178 ^ -68;
+ $4180 = $4179&255;
+ $4181 = (10176 + ($4180)|0);
+ $4182 = HEAP8[$4181>>0]|0;
+ $4183 = HEAP8[$393>>0]|0;
+ $4184 = $4183 ^ $4182;
+ $4185 = $4184&255;
+ $4186 = (10432 + ($4185)|0);
+ $4187 = HEAP8[$4186>>0]|0;
+ $4188 = HEAP8[$208>>0]|0;
+ $4189 = $4188 ^ $4187;
+ $4190 = $4189&255;
+ $4191 = (10432 + ($4190)|0);
+ $4192 = HEAP8[$4191>>0]|0;
+ $4193 = HEAP8[$1>>0]|0;
+ $4194 = $4193 ^ $4192;
+ $4195 = $4194&255;
+ $4196 = (10688 + ($4195<<2)|0);
+ $4197 = HEAP32[$4196>>2]|0;
+ $4198 = HEAP8[$593>>0]|0;
+ $4199 = $4198 ^ -33;
+ $4200 = $4199&255;
+ $4201 = (10176 + ($4200)|0);
+ $4202 = HEAP8[$4201>>0]|0;
+ $4203 = HEAP8[$409>>0]|0;
+ $4204 = $4203 ^ $4202;
+ $4205 = $4204&255;
+ $4206 = (10176 + ($4205)|0);
+ $4207 = HEAP8[$4206>>0]|0;
+ $4208 = HEAP8[$224>>0]|0;
+ $4209 = $4208 ^ $4207;
+ $4210 = $4209&255;
+ $4211 = (10432 + ($4210)|0);
+ $4212 = HEAP8[$4211>>0]|0;
+ $4213 = HEAP8[$40>>0]|0;
+ $4214 = $4213 ^ $4212;
+ $4215 = $4214&255;
+ $4216 = (11712 + ($4215<<2)|0);
+ $4217 = HEAP32[$4216>>2]|0;
+ $4218 = $4217 ^ $4197;
+ $4219 = HEAP8[$617>>0]|0;
+ $4220 = $4219 ^ -33;
+ $4221 = $4220&255;
+ $4222 = (10432 + ($4221)|0);
+ $4223 = HEAP8[$4222>>0]|0;
+ $4224 = HEAP8[$433>>0]|0;
+ $4225 = $4224 ^ $4223;
+ $4226 = $4225&255;
+ $4227 = (10432 + ($4226)|0);
+ $4228 = HEAP8[$4227>>0]|0;
+ $4229 = HEAP8[$248>>0]|0;
+ $4230 = $4229 ^ $4228;
+ $4231 = $4230&255;
+ $4232 = (10176 + ($4231)|0);
+ $4233 = HEAP8[$4232>>0]|0;
+ $4234 = HEAP8[$64>>0]|0;
+ $4235 = $4234 ^ $4233;
+ $4236 = $4235&255;
+ $4237 = (12736 + ($4236<<2)|0);
+ $4238 = HEAP32[$4237>>2]|0;
+ $4239 = $4218 ^ $4238;
+ $4240 = HEAP8[$641>>0]|0;
+ $4241 = $4240 ^ -68;
+ $4242 = $4241&255;
+ $4243 = (10432 + ($4242)|0);
+ $4244 = HEAP8[$4243>>0]|0;
+ $4245 = HEAP8[$457>>0]|0;
+ $4246 = $4245 ^ $4244;
+ $4247 = $4246&255;
+ $4248 = (10176 + ($4247)|0);
+ $4249 = HEAP8[$4248>>0]|0;
+ $4250 = HEAP8[$272>>0]|0;
+ $4251 = $4250 ^ $4249;
+ $4252 = $4251&255;
+ $4253 = (10176 + ($4252)|0);
+ $4254 = HEAP8[$4253>>0]|0;
+ $4255 = HEAP8[$88>>0]|0;
+ $4256 = $4255 ^ $4254;
+ $4257 = $4256&255;
+ $4258 = (13760 + ($4257<<2)|0);
+ $4259 = HEAP32[$4258>>2]|0;
+ $4260 = $4239 ^ $4259;
+ $4261 = HEAP8[$665>>0]|0;
+ $4262 = $4261 ^ -99;
+ $4263 = $4262&255;
+ $4264 = (10176 + ($4263)|0);
+ $4265 = HEAP8[$4264>>0]|0;
+ $4266 = HEAP8[$481>>0]|0;
+ $4267 = $4266 ^ $4265;
+ $4268 = $4267&255;
+ $4269 = (10432 + ($4268)|0);
+ $4270 = HEAP8[$4269>>0]|0;
+ $4271 = HEAP8[$296>>0]|0;
+ $4272 = $4271 ^ $4270;
+ $4273 = $4272&255;
+ $4274 = (10432 + ($4273)|0);
+ $4275 = HEAP8[$4274>>0]|0;
+ $4276 = HEAP8[$112>>0]|0;
+ $4277 = $4276 ^ $4275;
+ $4278 = $4277&255;
+ $4279 = (10688 + ($4278<<2)|0);
+ $4280 = HEAP32[$4279>>2]|0;
+ $4281 = HEAP8[$689>>0]|0;
+ $4282 = $4281 ^ 35;
+ $4283 = $4282&255;
+ $4284 = (10176 + ($4283)|0);
+ $4285 = HEAP8[$4284>>0]|0;
+ $4286 = HEAP8[$505>>0]|0;
+ $4287 = $4286 ^ $4285;
+ $4288 = $4287&255;
+ $4289 = (10176 + ($4288)|0);
+ $4290 = HEAP8[$4289>>0]|0;
+ $4291 = HEAP8[$320>>0]|0;
+ $4292 = $4291 ^ $4290;
+ $4293 = $4292&255;
+ $4294 = (10432 + ($4293)|0);
+ $4295 = HEAP8[$4294>>0]|0;
+ $4296 = HEAP8[$136>>0]|0;
+ $4297 = $4296 ^ $4295;
+ $4298 = $4297&255;
+ $4299 = (11712 + ($4298<<2)|0);
+ $4300 = HEAP32[$4299>>2]|0;
+ $4301 = $4300 ^ $4280;
+ $4302 = HEAP8[$713>>0]|0;
+ $4303 = $4302 ^ 35;
+ $4304 = $4303&255;
+ $4305 = (10432 + ($4304)|0);
+ $4306 = HEAP8[$4305>>0]|0;
+ $4307 = HEAP8[$529>>0]|0;
+ $4308 = $4307 ^ $4306;
+ $4309 = $4308&255;
+ $4310 = (10432 + ($4309)|0);
+ $4311 = HEAP8[$4310>>0]|0;
+ $4312 = HEAP8[$344>>0]|0;
+ $4313 = $4312 ^ $4311;
+ $4314 = $4313&255;
+ $4315 = (10176 + ($4314)|0);
+ $4316 = HEAP8[$4315>>0]|0;
+ $4317 = HEAP8[$160>>0]|0;
+ $4318 = $4317 ^ $4316;
+ $4319 = $4318&255;
+ $4320 = (12736 + ($4319<<2)|0);
+ $4321 = HEAP32[$4320>>2]|0;
+ $4322 = $4301 ^ $4321;
+ $4323 = HEAP8[$737>>0]|0;
+ $4324 = $4323 ^ -99;
+ $4325 = $4324&255;
+ $4326 = (10432 + ($4325)|0);
+ $4327 = HEAP8[$4326>>0]|0;
+ $4328 = HEAP8[$553>>0]|0;
+ $4329 = $4328 ^ $4327;
+ $4330 = $4329&255;
+ $4331 = (10176 + ($4330)|0);
+ $4332 = HEAP8[$4331>>0]|0;
+ $4333 = HEAP8[$368>>0]|0;
+ $4334 = $4333 ^ $4332;
+ $4335 = $4334&255;
+ $4336 = (10176 + ($4335)|0);
+ $4337 = HEAP8[$4336>>0]|0;
+ $4338 = HEAP8[$184>>0]|0;
+ $4339 = $4338 ^ $4337;
+ $4340 = $4339&255;
+ $4341 = (13760 + ($4340<<2)|0);
+ $4342 = HEAP32[$4341>>2]|0;
+ $4343 = $4322 ^ $4342;
+ $4344 = $4343 << 8;
+ $4345 = $4343 >>> 24;
+ $4346 = $4344 | $4345;
+ $4347 = (($4346) + ($4260))|0;
+ $4348 = (($4347) + ($4346))|0;
+ $4349 = ((($0)) + 4248|0);
+ HEAP32[$4349>>2] = $4347;
+ $4350 = $4348 << 9;
+ $4351 = $4348 >>> 23;
+ $4352 = $4350 | $4351;
+ $4353 = ((($0)) + 4252|0);
+ HEAP32[$4353>>2] = $4352;
+ $$01913 = 0;
+ STACKTOP = sp;return ($$01913|0);
+}
+function __gcry_twofish_ctr_enc($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$06183 = 0, $$06780 = 0, $$068$lcssa = 0, $$06882 = 0, $$07081 = 0, 
$$084 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, 
$106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0;
+ var $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;
+ var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, 
$137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, 
$144 = 0, $145 = 0, $15 = 0, $16 = 0, $17 = 0;
+ var $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, $34 = 
0, $35 = 0, $36 = 0, $37 = 0;
+ var $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;
+ var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, 
$64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, 
$72 = 0, $73 = 0, $74 = 0;
+ var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, 
$82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, 
$90 = 0, $91 = 0, $92 = 0;
+ var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 
0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $5 = sp;
+ $6 = ($4|0)==(0);
+ if ($6) {
+  $$068$lcssa = 0;
+  $137 = $5;
+  $138 = $137;
+  HEAP32[$138>>2] = 0;
+  $139 = (($137) + 4)|0;
+  $140 = $139;
+  HEAP32[$140>>2] = 0;
+  $141 = ((($5)) + 8|0);
+  $142 = $141;
+  $143 = $142;
+  HEAP32[$143>>2] = 0;
+  $144 = (($142) + 4)|0;
+  $145 = $144;
+  HEAP32[$145>>2] = 0;
+  ___gcry_burn_stack($$068$lcssa);
+  STACKTOP = sp;return;
+ }
+ $7 = ((($5)) + 4|0);
+ $8 = ((($5)) + 8|0);
+ $9 = ((($5)) + 12|0);
+ $10 = ((($5)) + 1|0);
+ $11 = ((($5)) + 2|0);
+ $12 = ((($5)) + 3|0);
+ $13 = ((($5)) + 4|0);
+ $14 = ((($5)) + 5|0);
+ $15 = ((($5)) + 6|0);
+ $16 = ((($5)) + 7|0);
+ $17 = ((($5)) + 8|0);
+ $18 = ((($5)) + 9|0);
+ $19 = ((($5)) + 10|0);
+ $20 = ((($5)) + 11|0);
+ $21 = ((($5)) + 12|0);
+ $22 = ((($5)) + 13|0);
+ $23 = ((($5)) + 14|0);
+ $24 = ((($5)) + 15|0);
+ $$06183 = $2;$$06882 = 0;$$07081 = $3;$$084 = $4;
+ while(1) {
+  (_twofish_encrypt($0,$5,$1)|0);
+  $25 = ($$06882>>>0)>(36);
+  $spec$select = $25 ? $$06882 : 36;
+  $26 = $$06183;
+  $27 = $$07081;
+  $28 = $26 | $27;
+  $29 = $28 & 3;
+  $30 = ($29|0)==(0);
+  if ($30) {
+   $31 = HEAP32[$5>>2]|0;
+   $32 = ((($$07081)) + 4|0);
+   $33 = HEAP32[$$07081>>2]|0;
+   $34 = $33 ^ $31;
+   $35 = ((($$06183)) + 4|0);
+   HEAP32[$$06183>>2] = $34;
+   $36 = HEAP32[$7>>2]|0;
+   $37 = ((($$07081)) + 8|0);
+   $38 = HEAP32[$32>>2]|0;
+   $39 = $38 ^ $36;
+   $40 = ((($$06183)) + 8|0);
+   HEAP32[$35>>2] = $39;
+   $41 = HEAP32[$8>>2]|0;
+   $42 = ((($$07081)) + 12|0);
+   $43 = HEAP32[$37>>2]|0;
+   $44 = $43 ^ $41;
+   $45 = ((($$06183)) + 12|0);
+   HEAP32[$40>>2] = $44;
+   $46 = HEAP32[$9>>2]|0;
+   $47 = HEAP32[$42>>2]|0;
+   $48 = $47 ^ $46;
+   HEAP32[$45>>2] = $48;
+  } else {
+   $49 = HEAP8[$5>>0]|0;
+   $50 = ((($$07081)) + 1|0);
+   $51 = HEAP8[$$07081>>0]|0;
+   $52 = $51 ^ $49;
+   $53 = ((($$06183)) + 1|0);
+   HEAP8[$$06183>>0] = $52;
+   $54 = HEAP8[$10>>0]|0;
+   $55 = ((($$07081)) + 2|0);
+   $56 = HEAP8[$50>>0]|0;
+   $57 = $56 ^ $54;
+   $58 = ((($$06183)) + 2|0);
+   HEAP8[$53>>0] = $57;
+   $59 = HEAP8[$11>>0]|0;
+   $60 = ((($$07081)) + 3|0);
+   $61 = HEAP8[$55>>0]|0;
+   $62 = $61 ^ $59;
+   $63 = ((($$06183)) + 3|0);
+   HEAP8[$58>>0] = $62;
+   $64 = HEAP8[$12>>0]|0;
+   $65 = ((($$07081)) + 4|0);
+   $66 = HEAP8[$60>>0]|0;
+   $67 = $66 ^ $64;
+   $68 = ((($$06183)) + 4|0);
+   HEAP8[$63>>0] = $67;
+   $69 = HEAP8[$13>>0]|0;
+   $70 = ((($$07081)) + 5|0);
+   $71 = HEAP8[$65>>0]|0;
+   $72 = $71 ^ $69;
+   $73 = ((($$06183)) + 5|0);
+   HEAP8[$68>>0] = $72;
+   $74 = HEAP8[$14>>0]|0;
+   $75 = ((($$07081)) + 6|0);
+   $76 = HEAP8[$70>>0]|0;
+   $77 = $76 ^ $74;
+   $78 = ((($$06183)) + 6|0);
+   HEAP8[$73>>0] = $77;
+   $79 = HEAP8[$15>>0]|0;
+   $80 = ((($$07081)) + 7|0);
+   $81 = HEAP8[$75>>0]|0;
+   $82 = $81 ^ $79;
+   $83 = ((($$06183)) + 7|0);
+   HEAP8[$78>>0] = $82;
+   $84 = HEAP8[$16>>0]|0;
+   $85 = ((($$07081)) + 8|0);
+   $86 = HEAP8[$80>>0]|0;
+   $87 = $86 ^ $84;
+   $88 = ((($$06183)) + 8|0);
+   HEAP8[$83>>0] = $87;
+   $89 = HEAP8[$17>>0]|0;
+   $90 = ((($$07081)) + 9|0);
+   $91 = HEAP8[$85>>0]|0;
+   $92 = $91 ^ $89;
+   $93 = ((($$06183)) + 9|0);
+   HEAP8[$88>>0] = $92;
+   $94 = HEAP8[$18>>0]|0;
+   $95 = ((($$07081)) + 10|0);
+   $96 = HEAP8[$90>>0]|0;
+   $97 = $96 ^ $94;
+   $98 = ((($$06183)) + 10|0);
+   HEAP8[$93>>0] = $97;
+   $99 = HEAP8[$19>>0]|0;
+   $100 = ((($$07081)) + 11|0);
+   $101 = HEAP8[$95>>0]|0;
+   $102 = $101 ^ $99;
+   $103 = ((($$06183)) + 11|0);
+   HEAP8[$98>>0] = $102;
+   $104 = HEAP8[$20>>0]|0;
+   $105 = ((($$07081)) + 12|0);
+   $106 = HEAP8[$100>>0]|0;
+   $107 = $106 ^ $104;
+   $108 = ((($$06183)) + 12|0);
+   HEAP8[$103>>0] = $107;
+   $109 = HEAP8[$21>>0]|0;
+   $110 = ((($$07081)) + 13|0);
+   $111 = HEAP8[$105>>0]|0;
+   $112 = $111 ^ $109;
+   $113 = ((($$06183)) + 13|0);
+   HEAP8[$108>>0] = $112;
+   $114 = HEAP8[$22>>0]|0;
+   $115 = ((($$07081)) + 14|0);
+   $116 = HEAP8[$110>>0]|0;
+   $117 = $116 ^ $114;
+   $118 = ((($$06183)) + 14|0);
+   HEAP8[$113>>0] = $117;
+   $119 = HEAP8[$23>>0]|0;
+   $120 = ((($$07081)) + 15|0);
+   $121 = HEAP8[$115>>0]|0;
+   $122 = $121 ^ $119;
+   $123 = ((($$06183)) + 15|0);
+   HEAP8[$118>>0] = $122;
+   $124 = HEAP8[$24>>0]|0;
+   $125 = HEAP8[$120>>0]|0;
+   $126 = $125 ^ $124;
+   HEAP8[$123>>0] = $126;
+  }
+  $127 = ((($$06183)) + 16|0);
+  $$06780 = 16;
+  while(1) {
+   $128 = (($$06780) + -1)|0;
+   $129 = (($1) + ($128)|0);
+   $130 = HEAP8[$129>>0]|0;
+   $131 = (($130) + 1)<<24>>24;
+   HEAP8[$129>>0] = $131;
+   $132 = ($131<<24>>24)==(0);
+   $133 = ($$06780>>>0)>(1);
+   $or$cond = $132 & $133;
+   if ($or$cond) {
+    $$06780 = $128;
+   } else {
+    break;
+   }
+  }
+  $134 = ((($$07081)) + 16|0);
+  $135 = (($$084) + -1)|0;
+  $136 = ($135|0)==(0);
+  if ($136) {
+   $$068$lcssa = $spec$select;
+   break;
+  } else {
+   $$06183 = $127;$$06882 = $spec$select;$$07081 = $134;$$084 = $135;
+  }
+ }
+ $137 = $5;
+ $138 = $137;
+ HEAP32[$138>>2] = 0;
+ $139 = (($137) + 4)|0;
+ $140 = $139;
+ HEAP32[$140>>2] = 0;
+ $141 = ((($5)) + 8|0);
+ $142 = $141;
+ $143 = $142;
+ HEAP32[$143>>2] = 0;
+ $144 = (($142) + 4)|0;
+ $145 = $144;
+ HEAP32[$145>>2] = 0;
+ ___gcry_burn_stack($$068$lcssa);
+ STACKTOP = sp;return;
+}
+function __gcry_twofish_cbc_dec($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$05474 = 0, $$060$lcssa = 0, $$06073 = 0, $$06272 = 0, $$075 = 0, $10 = 
0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 
0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0;
+ var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 
= 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 
= 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0;
+ var $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, 
$138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, 
$145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0;
+ var $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 
= 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 
= 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0;
+ var $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 
= 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $19 = 0, $20 = 
0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $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, $40 = 0, $41 = 
0, $42 = 0, $43 = 0, $44 = 0;
+ var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, 
$52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, 
$60 = 0, $61 = 0, $62 = 0;
+ var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, 
$70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 
0, $79 = 0, $8 = 0, $80 = 0;
+ var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, 
$89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, 
$97 = 0, $98 = 0, $99 = 0;
+ var $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $5 = sp;
+ $6 = ($4|0)==(0);
+ if ($6) {
+  $$060$lcssa = 0;
+  $171 = $5;
+  $172 = $171;
+  HEAP32[$172>>2] = 0;
+  $173 = (($171) + 4)|0;
+  $174 = $173;
+  HEAP32[$174>>2] = 0;
+  $175 = ((($5)) + 8|0);
+  $176 = $175;
+  $177 = $176;
+  HEAP32[$177>>2] = 0;
+  $178 = (($176) + 4)|0;
+  $179 = $178;
+  HEAP32[$179>>2] = 0;
+  ___gcry_burn_stack($$060$lcssa);
+  STACKTOP = sp;return;
+ }
+ $7 = $1;
+ $8 = ((($5)) + 4|0);
+ $9 = ((($1)) + 4|0);
+ $10 = ((($5)) + 8|0);
+ $11 = ((($1)) + 8|0);
+ $12 = ((($5)) + 12|0);
+ $13 = ((($1)) + 12|0);
+ $14 = ((($5)) + 1|0);
+ $15 = ((($1)) + 1|0);
+ $16 = ((($5)) + 2|0);
+ $17 = ((($1)) + 2|0);
+ $18 = ((($5)) + 3|0);
+ $19 = ((($1)) + 3|0);
+ $20 = ((($5)) + 4|0);
+ $21 = ((($1)) + 4|0);
+ $22 = ((($5)) + 5|0);
+ $23 = ((($1)) + 5|0);
+ $24 = ((($5)) + 6|0);
+ $25 = ((($1)) + 6|0);
+ $26 = ((($5)) + 7|0);
+ $27 = ((($1)) + 7|0);
+ $28 = ((($5)) + 8|0);
+ $29 = ((($1)) + 8|0);
+ $30 = ((($5)) + 9|0);
+ $31 = ((($1)) + 9|0);
+ $32 = ((($5)) + 10|0);
+ $33 = ((($1)) + 10|0);
+ $34 = ((($5)) + 11|0);
+ $35 = ((($1)) + 11|0);
+ $36 = ((($5)) + 12|0);
+ $37 = ((($1)) + 12|0);
+ $38 = ((($5)) + 13|0);
+ $39 = ((($1)) + 13|0);
+ $40 = ((($5)) + 14|0);
+ $41 = ((($1)) + 14|0);
+ $42 = ((($5)) + 15|0);
+ $43 = ((($1)) + 15|0);
+ $$05474 = $2;$$06073 = 0;$$06272 = $3;$$075 = $4;
+ while(1) {
+  (_twofish_decrypt($0,$5,$$06272)|0);
+  $44 = ($$06073>>>0)>(36);
+  $spec$select = $44 ? $$06073 : 36;
+  $45 = $$06272;
+  $46 = $$05474;
+  $47 = $45 | $7;
+  $48 = $47 | $46;
+  $49 = $48 & 3;
+  $50 = ($49|0)==(0);
+  if ($50) {
+   $51 = ((($$06272)) + 4|0);
+   $52 = HEAP32[$$06272>>2]|0;
+   $53 = HEAP32[$1>>2]|0;
+   $54 = HEAP32[$5>>2]|0;
+   $55 = $54 ^ $53;
+   $56 = ((($$05474)) + 4|0);
+   HEAP32[$$05474>>2] = $55;
+   HEAP32[$1>>2] = $52;
+   $57 = ((($$06272)) + 8|0);
+   $58 = HEAP32[$51>>2]|0;
+   $59 = HEAP32[$9>>2]|0;
+   $60 = HEAP32[$8>>2]|0;
+   $61 = $60 ^ $59;
+   $62 = ((($$05474)) + 8|0);
+   HEAP32[$56>>2] = $61;
+   HEAP32[$9>>2] = $58;
+   $63 = ((($$06272)) + 12|0);
+   $64 = HEAP32[$57>>2]|0;
+   $65 = HEAP32[$11>>2]|0;
+   $66 = HEAP32[$10>>2]|0;
+   $67 = $66 ^ $65;
+   $68 = ((($$05474)) + 12|0);
+   HEAP32[$62>>2] = $67;
+   HEAP32[$11>>2] = $64;
+   $69 = HEAP32[$63>>2]|0;
+   $70 = HEAP32[$13>>2]|0;
+   $71 = HEAP32[$12>>2]|0;
+   $72 = $71 ^ $70;
+   HEAP32[$68>>2] = $72;
+   HEAP32[$13>>2] = $69;
+  } else {
+   $73 = ((($$06272)) + 1|0);
+   $74 = HEAP8[$$06272>>0]|0;
+   $75 = HEAP8[$1>>0]|0;
+   $76 = HEAP8[$5>>0]|0;
+   $77 = $76 ^ $75;
+   $78 = ((($$05474)) + 1|0);
+   HEAP8[$$05474>>0] = $77;
+   HEAP8[$1>>0] = $74;
+   $79 = ((($$06272)) + 2|0);
+   $80 = HEAP8[$73>>0]|0;
+   $81 = HEAP8[$15>>0]|0;
+   $82 = HEAP8[$14>>0]|0;
+   $83 = $82 ^ $81;
+   $84 = ((($$05474)) + 2|0);
+   HEAP8[$78>>0] = $83;
+   HEAP8[$15>>0] = $80;
+   $85 = ((($$06272)) + 3|0);
+   $86 = HEAP8[$79>>0]|0;
+   $87 = HEAP8[$17>>0]|0;
+   $88 = HEAP8[$16>>0]|0;
+   $89 = $88 ^ $87;
+   $90 = ((($$05474)) + 3|0);
+   HEAP8[$84>>0] = $89;
+   HEAP8[$17>>0] = $86;
+   $91 = ((($$06272)) + 4|0);
+   $92 = HEAP8[$85>>0]|0;
+   $93 = HEAP8[$19>>0]|0;
+   $94 = HEAP8[$18>>0]|0;
+   $95 = $94 ^ $93;
+   $96 = ((($$05474)) + 4|0);
+   HEAP8[$90>>0] = $95;
+   HEAP8[$19>>0] = $92;
+   $97 = ((($$06272)) + 5|0);
+   $98 = HEAP8[$91>>0]|0;
+   $99 = HEAP8[$21>>0]|0;
+   $100 = HEAP8[$20>>0]|0;
+   $101 = $100 ^ $99;
+   $102 = ((($$05474)) + 5|0);
+   HEAP8[$96>>0] = $101;
+   HEAP8[$21>>0] = $98;
+   $103 = ((($$06272)) + 6|0);
+   $104 = HEAP8[$97>>0]|0;
+   $105 = HEAP8[$23>>0]|0;
+   $106 = HEAP8[$22>>0]|0;
+   $107 = $106 ^ $105;
+   $108 = ((($$05474)) + 6|0);
+   HEAP8[$102>>0] = $107;
+   HEAP8[$23>>0] = $104;
+   $109 = ((($$06272)) + 7|0);
+   $110 = HEAP8[$103>>0]|0;
+   $111 = HEAP8[$25>>0]|0;
+   $112 = HEAP8[$24>>0]|0;
+   $113 = $112 ^ $111;
+   $114 = ((($$05474)) + 7|0);
+   HEAP8[$108>>0] = $113;
+   HEAP8[$25>>0] = $110;
+   $115 = ((($$06272)) + 8|0);
+   $116 = HEAP8[$109>>0]|0;
+   $117 = HEAP8[$27>>0]|0;
+   $118 = HEAP8[$26>>0]|0;
+   $119 = $118 ^ $117;
+   $120 = ((($$05474)) + 8|0);
+   HEAP8[$114>>0] = $119;
+   HEAP8[$27>>0] = $116;
+   $121 = ((($$06272)) + 9|0);
+   $122 = HEAP8[$115>>0]|0;
+   $123 = HEAP8[$29>>0]|0;
+   $124 = HEAP8[$28>>0]|0;
+   $125 = $124 ^ $123;
+   $126 = ((($$05474)) + 9|0);
+   HEAP8[$120>>0] = $125;
+   HEAP8[$29>>0] = $122;
+   $127 = ((($$06272)) + 10|0);
+   $128 = HEAP8[$121>>0]|0;
+   $129 = HEAP8[$31>>0]|0;
+   $130 = HEAP8[$30>>0]|0;
+   $131 = $130 ^ $129;
+   $132 = ((($$05474)) + 10|0);
+   HEAP8[$126>>0] = $131;
+   HEAP8[$31>>0] = $128;
+   $133 = ((($$06272)) + 11|0);
+   $134 = HEAP8[$127>>0]|0;
+   $135 = HEAP8[$33>>0]|0;
+   $136 = HEAP8[$32>>0]|0;
+   $137 = $136 ^ $135;
+   $138 = ((($$05474)) + 11|0);
+   HEAP8[$132>>0] = $137;
+   HEAP8[$33>>0] = $134;
+   $139 = ((($$06272)) + 12|0);
+   $140 = HEAP8[$133>>0]|0;
+   $141 = HEAP8[$35>>0]|0;
+   $142 = HEAP8[$34>>0]|0;
+   $143 = $142 ^ $141;
+   $144 = ((($$05474)) + 12|0);
+   HEAP8[$138>>0] = $143;
+   HEAP8[$35>>0] = $140;
+   $145 = ((($$06272)) + 13|0);
+   $146 = HEAP8[$139>>0]|0;
+   $147 = HEAP8[$37>>0]|0;
+   $148 = HEAP8[$36>>0]|0;
+   $149 = $148 ^ $147;
+   $150 = ((($$05474)) + 13|0);
+   HEAP8[$144>>0] = $149;
+   HEAP8[$37>>0] = $146;
+   $151 = ((($$06272)) + 14|0);
+   $152 = HEAP8[$145>>0]|0;
+   $153 = HEAP8[$39>>0]|0;
+   $154 = HEAP8[$38>>0]|0;
+   $155 = $154 ^ $153;
+   $156 = ((($$05474)) + 14|0);
+   HEAP8[$150>>0] = $155;
+   HEAP8[$39>>0] = $152;
+   $157 = ((($$06272)) + 15|0);
+   $158 = HEAP8[$151>>0]|0;
+   $159 = HEAP8[$41>>0]|0;
+   $160 = HEAP8[$40>>0]|0;
+   $161 = $160 ^ $159;
+   $162 = ((($$05474)) + 15|0);
+   HEAP8[$156>>0] = $161;
+   HEAP8[$41>>0] = $158;
+   $163 = HEAP8[$157>>0]|0;
+   $164 = HEAP8[$43>>0]|0;
+   $165 = HEAP8[$42>>0]|0;
+   $166 = $165 ^ $164;
+   HEAP8[$162>>0] = $166;
+   HEAP8[$43>>0] = $163;
+  }
+  $167 = ((($$06272)) + 16|0);
+  $168 = ((($$05474)) + 16|0);
+  $169 = (($$075) + -1)|0;
+  $170 = ($169|0)==(0);
+  if ($170) {
+   $$060$lcssa = $spec$select;
+   break;
+  } else {
+   $$05474 = $168;$$06073 = $spec$select;$$06272 = $167;$$075 = $169;
+  }
+ }
+ $171 = $5;
+ $172 = $171;
+ HEAP32[$172>>2] = 0;
+ $173 = (($171) + 4)|0;
+ $174 = $173;
+ HEAP32[$174>>2] = 0;
+ $175 = ((($5)) + 8|0);
+ $176 = $175;
+ $177 = $176;
+ HEAP32[$177>>2] = 0;
+ $178 = (($176) + 4)|0;
+ $179 = $178;
+ HEAP32[$179>>2] = 0;
+ ___gcry_burn_stack($$060$lcssa);
+ STACKTOP = sp;return;
+}
+function __gcry_twofish_cfb_dec($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0$lcssa = 0, $$02530 = 0, $$02629 = 0, $$02728 = 0, $$031 = 0, $10 = 0, 
$100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, 
$108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0;
+ var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 
= 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 
= 0, $128 = 0, $13 = 0, $14 = 0, $15 = 0;
+ var $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, $34 = 0, $35 = 0;
+ var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, 
$52 = 0, $53 = 0, $54 = 0;
+ var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, 
$62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, 
$70 = 0, $71 = 0, $72 = 0;
+ var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, 
$80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 
0, $89 = 0, $9 = 0, $90 = 0;
+ var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, 
$99 = 0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = ($4|0)==(0);
+ if ($5) {
+  $$0$lcssa = 0;
+  ___gcry_burn_stack($$0$lcssa);
+  return;
+ }
+ $6 = $1;
+ $7 = ((($1)) + 4|0);
+ $8 = ((($1)) + 8|0);
+ $9 = ((($1)) + 12|0);
+ $10 = ((($1)) + 1|0);
+ $11 = ((($1)) + 2|0);
+ $12 = ((($1)) + 3|0);
+ $13 = ((($1)) + 5|0);
+ $14 = ((($1)) + 6|0);
+ $15 = ((($1)) + 7|0);
+ $16 = ((($1)) + 9|0);
+ $17 = ((($1)) + 10|0);
+ $18 = ((($1)) + 11|0);
+ $19 = ((($1)) + 13|0);
+ $20 = ((($1)) + 14|0);
+ $21 = ((($1)) + 15|0);
+ $$02530 = $4;$$02629 = $3;$$02728 = $2;$$031 = 0;
+ while(1) {
+  (_twofish_encrypt($0,$1,$1)|0);
+  $22 = ($$031>>>0)>(36);
+  $spec$select = $22 ? $$031 : 36;
+  $23 = $$02629;
+  $24 = $$02728;
+  $25 = $24 | $6;
+  $26 = $25 | $23;
+  $27 = $26 & 3;
+  $28 = ($27|0)==(0);
+  if ($28) {
+   $29 = ((($$02629)) + 4|0);
+   $30 = HEAP32[$$02629>>2]|0;
+   $31 = HEAP32[$1>>2]|0;
+   $32 = $31 ^ $30;
+   $33 = ((($$02728)) + 4|0);
+   HEAP32[$$02728>>2] = $32;
+   HEAP32[$1>>2] = $30;
+   $34 = ((($$02629)) + 8|0);
+   $35 = HEAP32[$29>>2]|0;
+   $36 = HEAP32[$7>>2]|0;
+   $37 = $36 ^ $35;
+   $38 = ((($$02728)) + 8|0);
+   HEAP32[$33>>2] = $37;
+   HEAP32[$7>>2] = $35;
+   $39 = ((($$02629)) + 12|0);
+   $40 = HEAP32[$34>>2]|0;
+   $41 = HEAP32[$8>>2]|0;
+   $42 = $41 ^ $40;
+   $43 = ((($$02728)) + 12|0);
+   HEAP32[$38>>2] = $42;
+   HEAP32[$8>>2] = $40;
+   $44 = HEAP32[$39>>2]|0;
+   $45 = HEAP32[$9>>2]|0;
+   $46 = $45 ^ $44;
+   HEAP32[$43>>2] = $46;
+   HEAP32[$9>>2] = $44;
+  } else {
+   $47 = ((($$02629)) + 1|0);
+   $48 = HEAP8[$$02629>>0]|0;
+   $49 = HEAP8[$1>>0]|0;
+   $50 = $49 ^ $48;
+   $51 = ((($$02728)) + 1|0);
+   HEAP8[$$02728>>0] = $50;
+   HEAP8[$1>>0] = $48;
+   $52 = ((($$02629)) + 2|0);
+   $53 = HEAP8[$47>>0]|0;
+   $54 = HEAP8[$10>>0]|0;
+   $55 = $54 ^ $53;
+   $56 = ((($$02728)) + 2|0);
+   HEAP8[$51>>0] = $55;
+   HEAP8[$10>>0] = $53;
+   $57 = ((($$02629)) + 3|0);
+   $58 = HEAP8[$52>>0]|0;
+   $59 = HEAP8[$11>>0]|0;
+   $60 = $59 ^ $58;
+   $61 = ((($$02728)) + 3|0);
+   HEAP8[$56>>0] = $60;
+   HEAP8[$11>>0] = $58;
+   $62 = ((($$02629)) + 4|0);
+   $63 = HEAP8[$57>>0]|0;
+   $64 = HEAP8[$12>>0]|0;
+   $65 = $64 ^ $63;
+   $66 = ((($$02728)) + 4|0);
+   HEAP8[$61>>0] = $65;
+   HEAP8[$12>>0] = $63;
+   $67 = ((($$02629)) + 5|0);
+   $68 = HEAP8[$62>>0]|0;
+   $69 = HEAP8[$7>>0]|0;
+   $70 = $69 ^ $68;
+   $71 = ((($$02728)) + 5|0);
+   HEAP8[$66>>0] = $70;
+   HEAP8[$7>>0] = $68;
+   $72 = ((($$02629)) + 6|0);
+   $73 = HEAP8[$67>>0]|0;
+   $74 = HEAP8[$13>>0]|0;
+   $75 = $74 ^ $73;
+   $76 = ((($$02728)) + 6|0);
+   HEAP8[$71>>0] = $75;
+   HEAP8[$13>>0] = $73;
+   $77 = ((($$02629)) + 7|0);
+   $78 = HEAP8[$72>>0]|0;
+   $79 = HEAP8[$14>>0]|0;
+   $80 = $79 ^ $78;
+   $81 = ((($$02728)) + 7|0);
+   HEAP8[$76>>0] = $80;
+   HEAP8[$14>>0] = $78;
+   $82 = ((($$02629)) + 8|0);
+   $83 = HEAP8[$77>>0]|0;
+   $84 = HEAP8[$15>>0]|0;
+   $85 = $84 ^ $83;
+   $86 = ((($$02728)) + 8|0);
+   HEAP8[$81>>0] = $85;
+   HEAP8[$15>>0] = $83;
+   $87 = ((($$02629)) + 9|0);
+   $88 = HEAP8[$82>>0]|0;
+   $89 = HEAP8[$8>>0]|0;
+   $90 = $89 ^ $88;
+   $91 = ((($$02728)) + 9|0);
+   HEAP8[$86>>0] = $90;
+   HEAP8[$8>>0] = $88;
+   $92 = ((($$02629)) + 10|0);
+   $93 = HEAP8[$87>>0]|0;
+   $94 = HEAP8[$16>>0]|0;
+   $95 = $94 ^ $93;
+   $96 = ((($$02728)) + 10|0);
+   HEAP8[$91>>0] = $95;
+   HEAP8[$16>>0] = $93;
+   $97 = ((($$02629)) + 11|0);
+   $98 = HEAP8[$92>>0]|0;
+   $99 = HEAP8[$17>>0]|0;
+   $100 = $99 ^ $98;
+   $101 = ((($$02728)) + 11|0);
+   HEAP8[$96>>0] = $100;
+   HEAP8[$17>>0] = $98;
+   $102 = ((($$02629)) + 12|0);
+   $103 = HEAP8[$97>>0]|0;
+   $104 = HEAP8[$18>>0]|0;
+   $105 = $104 ^ $103;
+   $106 = ((($$02728)) + 12|0);
+   HEAP8[$101>>0] = $105;
+   HEAP8[$18>>0] = $103;
+   $107 = ((($$02629)) + 13|0);
+   $108 = HEAP8[$102>>0]|0;
+   $109 = HEAP8[$9>>0]|0;
+   $110 = $109 ^ $108;
+   $111 = ((($$02728)) + 13|0);
+   HEAP8[$106>>0] = $110;
+   HEAP8[$9>>0] = $108;
+   $112 = ((($$02629)) + 14|0);
+   $113 = HEAP8[$107>>0]|0;
+   $114 = HEAP8[$19>>0]|0;
+   $115 = $114 ^ $113;
+   $116 = ((($$02728)) + 14|0);
+   HEAP8[$111>>0] = $115;
+   HEAP8[$19>>0] = $113;
+   $117 = ((($$02629)) + 15|0);
+   $118 = HEAP8[$112>>0]|0;
+   $119 = HEAP8[$20>>0]|0;
+   $120 = $119 ^ $118;
+   $121 = ((($$02728)) + 15|0);
+   HEAP8[$116>>0] = $120;
+   HEAP8[$20>>0] = $118;
+   $122 = HEAP8[$117>>0]|0;
+   $123 = HEAP8[$21>>0]|0;
+   $124 = $123 ^ $122;
+   HEAP8[$121>>0] = $124;
+   HEAP8[$21>>0] = $122;
+  }
+  $125 = ((($$02728)) + 16|0);
+  $126 = ((($$02629)) + 16|0);
+  $127 = (($$02530) + -1)|0;
+  $128 = ($127|0)==(0);
+  if ($128) {
+   $$0$lcssa = $spec$select;
+   break;
+  } else {
+   $$02530 = $127;$$02629 = $126;$$02728 = $125;$$031 = $spec$select;
+  }
+ }
+ ___gcry_burn_stack($$0$lcssa);
+ return;
+}
+function __gcry_register_random_progress($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ HEAP32[18120] = $0;
+ HEAP32[18121] = $1;
+ return;
+}
+function __gcry_random_progress($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = HEAP32[18120]|0;
+ $5 = ($4|0)==(0|0);
+ if ($5) {
+  return;
+ }
+ $6 = HEAP32[18121]|0;
+ FUNCTION_TABLE_viiiii[$4 & 127]($6,$0,$1,$2,$3);
+ return;
+}
+function __gcry_set_preferred_rng_type($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ L1: do {
+  switch ($0|0) {
+  case 0:  {
+   HEAP32[18122] = 1;
+   break;
+  }
+  case 1:  {
+   HEAP32[18123] = 1;
+   break;
+  }
+  default: {
+   $1 = HEAP32[18122]|0;
+   $2 = ($1|0)==(0);
+   if ($2) {
+    switch ($0|0) {
+    case 2:  {
+     HEAP32[18124] = 1;
+     break L1;
+     break;
+    }
+    case 3:  {
+     HEAP32[18125] = 1;
+     break L1;
+     break;
+    }
+    default: {
+     break L1;
+    }
+    }
+   }
+  }
+  }
+ } while(0);
+ return;
+}
+function __gcry_random_initialize($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_fips_mode()|0);
+ $2 = ($1|0)==(0);
+ if (!($2)) {
+  __gcry_rngfips_initialize($0);
+  return;
+ }
+ $3 = HEAP32[18123]|0;
+ $4 = ($3|0)==(0);
+ if (!($4)) {
+  __gcry_rngcsprng_initialize($0);
+  return;
+ }
+ $5 = HEAP32[18124]|0;
+ $6 = ($5|0)==(0);
+ if (!($6)) {
+  __gcry_rngfips_initialize($0);
+  return;
+ }
+ $7 = HEAP32[18125]|0;
+ $8 = ($7|0)==(0);
+ if ($8) {
+  __gcry_rngcsprng_initialize($0);
+  return;
+ } else {
+  __gcry_rngsystem_initialize($0);
+  return;
+ }
+}
+function __gcry_random_close_fds() {
+ var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $0 = (__gcry_fips_mode()|0);
+ $1 = ($0|0)==(0);
+ if (!($1)) {
+  __gcry_rngfips_close_fds();
+  return;
+ }
+ $2 = HEAP32[18123]|0;
+ $3 = ($2|0)==(0);
+ if (!($3)) {
+  __gcry_rngcsprng_close_fds();
+  return;
+ }
+ $4 = HEAP32[18124]|0;
+ $5 = ($4|0)==(0);
+ if (!($5)) {
+  __gcry_rngfips_close_fds();
+  return;
+ }
+ $6 = HEAP32[18125]|0;
+ $7 = ($6|0)==(0);
+ if ($7) {
+  __gcry_rngcsprng_close_fds();
+  return;
+ } else {
+  __gcry_rngsystem_close_fds();
+  return;
+ }
+}
+function __gcry_get_rng_type($0) {
+ $0 = $0|0;
+ var $$ = 0, $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, 
$8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0);
+ if ($1) {
+  $2 = (__gcry_fips_mode()|0);
+  $3 = ($2|0)==(0);
+  if ($3) {
+   label = 3;
+  } else {
+   $$0 = 2;
+  }
+ } else {
+  label = 3;
+ }
+ if ((label|0) == 3) {
+  $4 = HEAP32[18123]|0;
+  $5 = ($4|0)==(0);
+  if ($5) {
+   $6 = HEAP32[18124]|0;
+   $7 = ($6|0)==(0);
+   if ($7) {
+    $8 = HEAP32[18125]|0;
+    $9 = ($8|0)==(0);
+    $$ = $9 ? 1 : 3;
+    $$0 = $$;
+   } else {
+    $$0 = 2;
+   }
+  } else {
+   $$0 = 1;
+  }
+ }
+ return ($$0|0);
+}
+function __gcry_random_dump_stats() {
+ var $0 = 0, $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = (__gcry_fips_mode()|0);
+ $1 = ($0|0)==(0);
+ if ($1) {
+  __gcry_rngcsprng_dump_stats();
+  return;
+ } else {
+  return;
+ }
+}
+function __gcry_secure_random_alloc() {
+ var $0 = 0, $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = (__gcry_fips_mode()|0);
+ $1 = ($0|0)==(0);
+ if (!($1)) {
+  return;
+ }
+ __gcry_rngcsprng_secure_alloc();
+ return;
+}
+function __gcry_enable_quick_random_gen() {
+ var $0 = 0, $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = (__gcry_fips_mode()|0);
+ $1 = ($0|0)==(0);
+ if (!($1)) {
+  return;
+ }
+ __gcry_rngcsprng_enable_quick_gen();
+ return;
+}
+function __gcry_set_random_daemon_socket($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_fips_mode()|0);
+ $2 = ($1|0)==(0);
+ if (!($2)) {
+  return;
+ }
+ return;
+}
+function __gcry_use_random_daemon($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_fips_mode()|0);
+ $2 = ($1|0)==(0);
+ if (!($2)) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $3 = (__gcry_rngcsprng_use_daemon($0)|0);
+ $$0 = $3;
+ return ($$0|0);
+}
+function __gcry_random_is_faked() {
+ var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = (__gcry_fips_mode()|0);
+ $1 = ($0|0)==(0);
+ if ($1) {
+  $3 = (__gcry_rngcsprng_is_faked()|0);
+  $$0 = $3;
+  return ($$0|0);
+ } else {
+  $2 = (__gcry_rngfips_is_faked()|0);
+  $$0 = $2;
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function __gcry_random_bytes($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (__gcry_xmalloc($0)|0);
+ _do_randomize($2,$0,$1);
+ return ($2|0);
+}
+function _do_randomize($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_fips_mode()|0);
+ $4 = ($3|0)==(0);
+ if (!($4)) {
+  __gcry_rngfips_randomize($0,$1,$2);
+  return;
+ }
+ $5 = HEAP32[18123]|0;
+ $6 = ($5|0)==(0);
+ if (!($6)) {
+  __gcry_rngcsprng_randomize($0,$1,$2);
+  return;
+ }
+ $7 = HEAP32[18124]|0;
+ $8 = ($7|0)==(0);
+ if (!($8)) {
+  __gcry_rngfips_randomize($0,$1,$2);
+  return;
+ }
+ $9 = HEAP32[18125]|0;
+ $10 = ($9|0)==(0);
+ if ($10) {
+  __gcry_rngcsprng_randomize($0,$1,$2);
+  return;
+ } else {
+  __gcry_rngsystem_randomize($0,$1,$2);
+  return;
+ }
+}
+function __gcry_random_bytes_secure($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (__gcry_xmalloc_secure($0)|0);
+ _do_randomize($2,$0,$1);
+ return ($2|0);
+}
+function __gcry_randomize($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ _do_randomize($0,$1,$2);
+ return;
+}
+function __gcry_set_random_seed_file($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_fips_mode()|0);
+ $2 = ($1|0)==(0);
+ if (!($2)) {
+  return;
+ }
+ $3 = HEAP32[18123]|0;
+ $4 = ($3|0)==(0);
+ if (!($4)) {
+  __gcry_rngcsprng_set_seed_file($0);
+  return;
+ }
+ $5 = HEAP32[18124]|0;
+ $6 = HEAP32[18125]|0;
+ $7 = $6 | $5;
+ $8 = ($7|0)==(0);
+ if (!($8)) {
+  return;
+ }
+ __gcry_rngcsprng_set_seed_file($0);
+ return;
+}
+function __gcry_update_random_seed_file() {
+ var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $0 = (__gcry_fips_mode()|0);
+ $1 = ($0|0)==(0);
+ if (!($1)) {
+  return;
+ }
+ $2 = HEAP32[18123]|0;
+ $3 = ($2|0)==(0);
+ if (!($3)) {
+  __gcry_rngcsprng_update_seed_file();
+  return;
+ }
+ $4 = HEAP32[18124]|0;
+ $5 = HEAP32[18125]|0;
+ $6 = $5 | $4;
+ $7 = ($6|0)==(0);
+ if (!($7)) {
+  return;
+ }
+ __gcry_rngcsprng_update_seed_file();
+ return;
+}
+function __gcry_fast_random_poll() {
+ var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $0 = (__gcry_fips_mode()|0);
+ $1 = ($0|0)==(0);
+ if (!($1)) {
+  return;
+ }
+ $2 = HEAP32[18123]|0;
+ $3 = ($2|0)==(0);
+ if (!($3)) {
+  __gcry_rngcsprng_fast_poll();
+  return;
+ }
+ $4 = HEAP32[18124]|0;
+ $5 = HEAP32[18125]|0;
+ $6 = $5 | $4;
+ $7 = ($6|0)==(0);
+ if (!($7)) {
+  return;
+ }
+ __gcry_rngcsprng_fast_poll();
+ return;
+}
+function __gcry_create_nonce($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0$$0$22 = 0, $$0$$0$23 = 0, $$0$$0$24 = 0, $$0$$0$25 = 0, $$03537 = 0, 
$$038 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 
0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
+ var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, 
$30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, 
$vararg_buffer1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $2 = sp + 12|0;
+ $3 = (__gcry_fips_mode()|0);
+ $4 = ($3|0)==(0);
+ if (!($4)) {
+  __gcry_rngfips_create_nonce($0,$1);
+  STACKTOP = sp;return;
+ }
+ $5 = (__gcry_fips_mode()|0);
+ $6 = ($5|0)==(0);
+ do {
+  if ($6) {
+   $7 = HEAP32[18123]|0;
+   $8 = ($7|0)==(0);
+   if (!($8)) {
+    __gcry_rngcsprng_initialize(1);
+    break;
+   }
+   $9 = HEAP32[18124]|0;
+   $10 = ($9|0)==(0);
+   if (!($10)) {
+    __gcry_rngfips_initialize(1);
+    break;
+   }
+   $11 = HEAP32[18125]|0;
+   $12 = ($11|0)==(0);
+   if ($12) {
+    __gcry_rngcsprng_initialize(1);
+    break;
+   } else {
+    __gcry_rngsystem_initialize(1);
+    break;
+   }
+  } else {
+   __gcry_rngfips_initialize(1);
+  }
+ } while(0);
+ $13 = (_gpgrt_lock_lock(40064)|0);
+ $14 = ($13|0)==(0);
+ if (!($14)) {
+  $15 = (_gpg_strerror($13)|0);
+  HEAP32[$vararg_buffer>>2] = $15;
+  __gcry_log_fatal(63691,$vararg_buffer);
+  // unreachable;
+ }
+ $16 = (_getpid()|0);
+ HEAP32[$2>>2] = $16;
+ $17 = HEAP32[18126]|0;
+ $18 = ($17|0)==(0);
+ if ($18) {
+  $19 = (_time((0|0))|0);
+  $$0$$0$22 = HEAP32[$2>>2]|0;
+  $$0$$0$23 = HEAP32[$2>>2]|0;
+  HEAP32[18127] = $$0$$0$23;
+  HEAP32[17780] = $$0$$0$22;
+  HEAP32[(71124)>>2] = $19;
+  _do_randomize((71140),8,0);
+  HEAP32[18126] = 1;
+ } else {
+  $20 = HEAP32[18127]|0;
+  $$0$$0$24 = HEAP32[$2>>2]|0;
+  $21 = ($20|0)==($$0$$0$24|0);
+  if (!($21)) {
+   _do_randomize((71140),8,0);
+   $$0$$0$25 = HEAP32[$2>>2]|0;
+   HEAP32[18127] = $$0$$0$25;
+  }
+ }
+ $22 = ($1|0)==(0);
+ if (!($22)) {
+  $$03537 = $0;$$038 = $1;
+  while(1) {
+   __gcry_sha1_hash_buffer(71120,71120,28);
+   $23 = ($$038>>>0)<(20);
+   $24 = $23 ? $$038 : 20;
+   _memcpy(($$03537|0),(71120|0),($24|0))|0;
+   $25 = (($$038) - ($24))|0;
+   $26 = (($$03537) + ($24)|0);
+   $27 = ($25|0)==(0);
+   if ($27) {
+    break;
+   } else {
+    $$03537 = $26;$$038 = $25;
+   }
+  }
+ }
+ $28 = (_gpgrt_lock_unlock(40064)|0);
+ $29 = ($28|0)==(0);
+ if ($29) {
+  STACKTOP = sp;return;
+ } else {
+  $30 = (_gpg_strerror($28)|0);
+  HEAP32[$vararg_buffer1>>2] = $30;
+  __gcry_log_fatal(63736,$vararg_buffer1);
+  // unreachable;
+ }
+}
+function __gcry_random_selftest($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_fips_mode()|0);
+ $2 = ($1|0)==(0);
+ if ($2) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $3 = (__gcry_rngfips_selftest($0)|0);
+ $$0 = $3;
+ return ($$0|0);
+}
+function __gcry_random_init_external_test($0,$1,$2,$3,$4,$5,$6,$7) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ $7 = $7|0;
+ var $$0 = 0, $10 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $8 = (__gcry_fips_mode()|0);
+ $9 = ($8|0)==(0);
+ if ($9) {
+  $$0 = 60;
+  return ($$0|0);
+ }
+ $10 = (__gcry_rngfips_init_external_test($0,$1,$2,$3,$4,$5,$6,$7)|0);
+ $$0 = $10;
+ return ($$0|0);
+}
+function __gcry_random_run_external_test($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_fips_mode()|0);
+ $4 = ($3|0)==(0);
+ if ($4) {
+  $$0 = 60;
+  return ($$0|0);
+ }
+ $5 = (__gcry_rngfips_run_external_test($0,$1,$2)|0);
+ $$0 = $5;
+ return ($$0|0);
+}
+function __gcry_random_deinit_external_test($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_fips_mode()|0);
+ $2 = ($1|0)==(0);
+ if ($2) {
+  return;
+ }
+ __gcry_rngfips_deinit_external_test($0);
+ return;
+}
+function __gcry_mpi_point_log($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0192127 = 0, $$01922 = 0, $$02426 = 0, $$025 = 0, $10 = 0, $11 = 0, $12 
= 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, 
$21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(128|0);
+ $vararg_buffer1 = sp + 112|0;
+ $vararg_buffer = sp + 104|0;
+ $3 = sp;
+ $4 = ($1|0)==(0|0);
+ if ($4) {
+  HEAP32[$vararg_buffer>>2] = $0;
+  (_snprintf($3,99,63781,$vararg_buffer)|0);
+  __gcry_log_printmpi($3,0);
+  STACKTOP = sp;return;
+ }
+ HEAP32[$vararg_buffer1>>2] = $0;
+ (_snprintf($3,99,63786,$vararg_buffer1)|0);
+ $5 = ($2|0)!=(0|0);
+ if ($5) {
+  $6 = (__gcry_mpi_new(0)|0);
+  $7 = (__gcry_mpi_new(0)|0);
+  $8 = (__gcry_mpi_ec_get_affine($6,$7,$1,$2)|0);
+  $9 = ($8|0)==(0);
+  if ($9) {
+   $10 = (_strlen($3)|0);
+   $11 = (($10) + -1)|0;
+   $12 = (($3) + ($11)|0);
+   HEAP8[$12>>0] = 120;
+   __gcry_log_printmpi($3,$6);
+   $13 = (_strlen($3)|0);
+   $14 = (($13) + -1)|0;
+   $15 = (($3) + ($14)|0);
+   HEAP8[$15>>0] = 121;
+   __gcry_log_printmpi($3,$7);
+   $$0192127 = $6;$$02426 = $7;
+  } else {
+   $$01922 = $6;$$025 = $7;
+   label = 6;
+  }
+ } else {
+  $$01922 = 0;$$025 = 0;
+  label = 6;
+ }
+ if ((label|0) == 6) {
+  $16 = HEAP32[$1>>2]|0;
+  __gcry_log_printmpi($3,$16);
+  $17 = (_strlen($3)|0);
+  $18 = (($17) + -1)|0;
+  $19 = (($3) + ($18)|0);
+  HEAP8[$19>>0] = 89;
+  $20 = ((($1)) + 4|0);
+  $21 = HEAP32[$20>>2]|0;
+  __gcry_log_printmpi($3,$21);
+  $22 = (_strlen($3)|0);
+  $23 = (($22) + -1)|0;
+  $24 = (($3) + ($23)|0);
+  HEAP8[$24>>0] = 90;
+  $25 = ((($1)) + 8|0);
+  $26 = HEAP32[$25>>2]|0;
+  __gcry_log_printmpi($3,$26);
+  if ($5) {
+   $$0192127 = $$01922;$$02426 = $$025;
+  } else {
+   STACKTOP = sp;return;
+  }
+ }
+ __gcry_mpi_release($$0192127);
+ __gcry_mpi_release($$02426);
+ STACKTOP = sp;return;
+}
+function __gcry_mpi_ec_get_affine($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $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;
+ var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, 
$55 = 0, $56 = 0, $57 = 0, $58 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_ptr3 = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer4 = sp + 16|0;
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $4 = ((($2)) + 8|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = (__gcry_mpi_cmp_ui($5,0)|0);
+ $7 = ($6|0)==(0);
+ if ($7) {
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $8 = HEAP32[$3>>2]|0;
+ switch ($8|0) {
+ case 0:  {
+  $9 = (__gcry_mpi_new(0)|0);
+  $10 = (__gcry_mpi_new(0)|0);
+  $11 = HEAP32[$4>>2]|0;
+  $12 = ((($3)) + 16|0);
+  $13 = HEAP32[$12>>2]|0;
+  $14 = (__gcry_mpi_invm($9,$11,$13)|0);
+  $15 = ($14|0)==(0);
+  if ($15) {
+   __gcry_log_error(63791,$vararg_buffer);
+   __gcry_log_printmpi(63825,$11);
+   $16 = HEAP32[$12>>2]|0;
+   __gcry_log_printmpi(63829,$16);
+  }
+  __gcry_mpi_mul($10,$9,$9);
+  $17 = ((($3)) + 60|0);
+  $18 = HEAP32[$17>>2]|0;
+  $19 = ($18|0)==(0|0);
+  if ($19) {
+   $20 = HEAP32[$12>>2]|0;
+   __gcry_mpi_mod($10,$10,$20);
+  } else {
+   __gcry_mpi_mod_barrett($10,$10,$18);
+  }
+  $21 = ($0|0)==(0|0);
+  do {
+   if (!($21)) {
+    $22 = HEAP32[$2>>2]|0;
+    __gcry_mpi_mul($0,$22,$10);
+    $23 = HEAP32[$17>>2]|0;
+    $24 = ($23|0)==(0|0);
+    if ($24) {
+     $25 = HEAP32[$12>>2]|0;
+     __gcry_mpi_mod($0,$0,$25);
+     break;
+    } else {
+     __gcry_mpi_mod_barrett($0,$0,$23);
+     break;
+    }
+   }
+  } while(0);
+  $26 = ($1|0)==(0|0);
+  if (!($26)) {
+   $27 = (__gcry_mpi_new(0)|0);
+   __gcry_mpi_mul($27,$10,$9);
+   $28 = HEAP32[$17>>2]|0;
+   $29 = ($28|0)==(0|0);
+   if ($29) {
+    $30 = HEAP32[$12>>2]|0;
+    __gcry_mpi_mod($27,$27,$30);
+   } else {
+    __gcry_mpi_mod_barrett($27,$27,$28);
+   }
+   $31 = ((($2)) + 4|0);
+   $32 = HEAP32[$31>>2]|0;
+   __gcry_mpi_mul($1,$32,$27);
+   $33 = HEAP32[$17>>2]|0;
+   $34 = ($33|0)==(0|0);
+   if ($34) {
+    $35 = HEAP32[$12>>2]|0;
+    __gcry_mpi_mod($1,$1,$35);
+   } else {
+    __gcry_mpi_mod_barrett($1,$1,$33);
+   }
+   __gcry_mpi_free($27);
+  }
+  __gcry_mpi_free($10);
+  __gcry_mpi_free($9);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+  break;
+ }
+ case 1:  {
+  $36 = ($0|0)==(0|0);
+  if (!($36)) {
+   $37 = HEAP32[$2>>2]|0;
+   (__gcry_mpi_set($0,$37)|0);
+  }
+  $38 = ($1|0)==(0|0);
+  if ($38) {
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  } else {
+   HEAP32[$vararg_buffer1>>2] = 63882;
+   $vararg_ptr3 = ((($vararg_buffer1)) + 4|0);
+   HEAP32[$vararg_ptr3>>2] = 63906;
+   __gcry_log_fatal(63833,$vararg_buffer1);
+   // unreachable;
+  }
+  break;
+ }
+ case 2:  {
+  $39 = (__gcry_mpi_new(0)|0);
+  $40 = HEAP32[$4>>2]|0;
+  $41 = ((($3)) + 16|0);
+  $42 = HEAP32[$41>>2]|0;
+  $43 = (__gcry_mpi_invm($39,$40,$42)|0);
+  $44 = ($43|0)==(0);
+  if ($44) {
+   __gcry_log_error(63791,$vararg_buffer4);
+   __gcry_log_printmpi(63825,$40);
+   $45 = HEAP32[$41>>2]|0;
+   __gcry_log_printmpi(63829,$45);
+  }
+  $46 = ($0|0)==(0|0);
+  do {
+   if (!($46)) {
+    $47 = HEAP32[$2>>2]|0;
+    __gcry_mpi_mul($0,$47,$39);
+    $48 = ((($3)) + 60|0);
+    $49 = HEAP32[$48>>2]|0;
+    $50 = ($49|0)==(0|0);
+    if ($50) {
+     $51 = HEAP32[$41>>2]|0;
+     __gcry_mpi_mod($0,$0,$51);
+     break;
+    } else {
+     __gcry_mpi_mod_barrett($0,$0,$49);
+     break;
+    }
+   }
+  } while(0);
+  $52 = ($1|0)==(0|0);
+  do {
+   if (!($52)) {
+    $53 = ((($2)) + 4|0);
+    $54 = HEAP32[$53>>2]|0;
+    __gcry_mpi_mul($1,$54,$39);
+    $55 = ((($3)) + 60|0);
+    $56 = HEAP32[$55>>2]|0;
+    $57 = ($56|0)==(0|0);
+    if ($57) {
+     $58 = HEAP32[$41>>2]|0;
+     __gcry_mpi_mod($1,$1,$58);
+     break;
+    } else {
+     __gcry_mpi_mod_barrett($1,$1,$56);
+     break;
+    }
+   }
+  } while(0);
+  __gcry_mpi_release($39);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+  break;
+ }
+ default: {
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ }
+ return (0)|0;
+}
+function __gcry_mpi_point_new($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_xmalloc(12)|0);
+ $2 = (__gcry_mpi_new(0)|0);
+ HEAP32[$1>>2] = $2;
+ $3 = (__gcry_mpi_new(0)|0);
+ $4 = ((($1)) + 4|0);
+ HEAP32[$4>>2] = $3;
+ $5 = (__gcry_mpi_new(0)|0);
+ $6 = ((($1)) + 8|0);
+ HEAP32[$6>>2] = $5;
+ return ($1|0);
+}
+function __gcry_mpi_point_init($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_mpi_new(0)|0);
+ HEAP32[$0>>2] = $1;
+ $2 = (__gcry_mpi_new(0)|0);
+ $3 = ((($0)) + 4|0);
+ HEAP32[$3>>2] = $2;
+ $4 = (__gcry_mpi_new(0)|0);
+ $5 = ((($0)) + 8|0);
+ HEAP32[$5>>2] = $4;
+ return;
+}
+function __gcry_mpi_point_release($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  return;
+ }
+ $2 = HEAP32[$0>>2]|0;
+ __gcry_mpi_free($2);
+ HEAP32[$0>>2] = 0;
+ $3 = ((($0)) + 4|0);
+ $4 = HEAP32[$3>>2]|0;
+ __gcry_mpi_free($4);
+ HEAP32[$3>>2] = 0;
+ $5 = ((($0)) + 8|0);
+ $6 = HEAP32[$5>>2]|0;
+ __gcry_mpi_free($6);
+ HEAP32[$5>>2] = 0;
+ __gcry_free($0);
+ return;
+}
+function __gcry_mpi_point_free_parts($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[$0>>2]|0;
+ __gcry_mpi_free($1);
+ HEAP32[$0>>2] = 0;
+ $2 = ((($0)) + 4|0);
+ $3 = HEAP32[$2>>2]|0;
+ __gcry_mpi_free($3);
+ HEAP32[$2>>2] = 0;
+ $4 = ((($0)) + 8|0);
+ $5 = HEAP32[$4>>2]|0;
+ __gcry_mpi_free($5);
+ HEAP32[$4>>2] = 0;
+ return;
+}
+function __gcry_mpi_point_set($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp 
= 0;
+ sp = STACKTOP;
+ $4 = ($0|0)==(0|0);
+ if ($4) {
+  $5 = (__gcry_xmalloc(12)|0);
+  $6 = (__gcry_mpi_new(0)|0);
+  HEAP32[$5>>2] = $6;
+  $7 = (__gcry_mpi_new(0)|0);
+  $8 = ((($5)) + 4|0);
+  HEAP32[$8>>2] = $7;
+  $9 = (__gcry_mpi_new(0)|0);
+  $10 = ((($5)) + 8|0);
+  HEAP32[$10>>2] = $9;
+  $$0 = $5;
+ } else {
+  $$0 = $0;
+ }
+ $11 = ($1|0)==(0|0);
+ $12 = HEAP32[$$0>>2]|0;
+ if ($11) {
+  __gcry_mpi_clear($12);
+ } else {
+  (__gcry_mpi_set($12,$1)|0);
+ }
+ $13 = ($2|0)==(0|0);
+ $14 = ((($$0)) + 4|0);
+ $15 = HEAP32[$14>>2]|0;
+ if ($13) {
+  __gcry_mpi_clear($15);
+ } else {
+  (__gcry_mpi_set($15,$2)|0);
+ }
+ $16 = ($3|0)==(0|0);
+ $17 = ((($$0)) + 8|0);
+ $18 = HEAP32[$17>>2]|0;
+ if ($16) {
+  __gcry_mpi_clear($18);
+  return ($$0|0);
+ } else {
+  (__gcry_mpi_set($18,$3)|0);
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function __gcry_mpi_point_snatch_set($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp 
= 0;
+ sp = STACKTOP;
+ $4 = ($0|0)==(0|0);
+ if ($4) {
+  $5 = (__gcry_xmalloc(12)|0);
+  $6 = (__gcry_mpi_new(0)|0);
+  HEAP32[$5>>2] = $6;
+  $7 = (__gcry_mpi_new(0)|0);
+  $8 = ((($5)) + 4|0);
+  HEAP32[$8>>2] = $7;
+  $9 = (__gcry_mpi_new(0)|0);
+  $10 = ((($5)) + 8|0);
+  HEAP32[$10>>2] = $9;
+  $$0 = $5;
+ } else {
+  $$0 = $0;
+ }
+ $11 = ($1|0)==(0|0);
+ $12 = HEAP32[$$0>>2]|0;
+ if ($11) {
+  __gcry_mpi_clear($12);
+ } else {
+  __gcry_mpi_snatch($12,$1);
+ }
+ $13 = ($2|0)==(0|0);
+ $14 = ((($$0)) + 4|0);
+ $15 = HEAP32[$14>>2]|0;
+ if ($13) {
+  __gcry_mpi_clear($15);
+ } else {
+  __gcry_mpi_snatch($15,$2);
+ }
+ $16 = ($3|0)==(0|0);
+ $17 = ((($$0)) + 8|0);
+ $18 = HEAP32[$17>>2]|0;
+ if ($16) {
+  __gcry_mpi_clear($18);
+  return ($$0|0);
+ } else {
+  __gcry_mpi_snatch($18,$3);
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function __gcry_mpi_ec_p_internal_new($0,$1,$2,$3,$4,$5) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ var $6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $6 = (__gcry_xcalloc(1,108)|0);
+ _ec_p_init($6,$0,$1,$2,$3,$4,$5);
+ return ($6|0);
+}
+function _ec_p_init($0,$1,$2,$3,$4,$5,$6) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ var $$ = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 
0, $45 = 0, $46 = 0, $47 = 0;
+ var $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, $7 = 0, 
$8 = 0, $9 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ $7 = HEAP32[18128]|0;
+ $8 = ($7|0)==(0);
+ if ($8) {
+  $9 = (_getenv((63917|0))|0);
+  $10 = ($9|0)==(0|0);
+  $$ = $10 ? -1 : 1;
+  HEAP32[18128] = $$;
+ }
+ HEAP32[$0>>2] = $1;
+ $11 = ((($0)) + 4|0);
+ HEAP32[$11>>2] = $2;
+ $12 = ((($0)) + 8|0);
+ HEAP32[$12>>2] = $3;
+ $13 = ($2|0)==(1);
+ if ($13) {
+  $$sink = 256;
+ } else {
+  $14 = (__gcry_mpi_get_nbits($4)|0);
+  $$sink = $14;
+ }
+ $15 = ((($0)) + 12|0);
+ HEAP32[$15>>2] = $$sink;
+ $16 = (__gcry_mpi_copy($4)|0);
+ $17 = ((($0)) + 16|0);
+ HEAP32[$17>>2] = $16;
+ $18 = (__gcry_mpi_copy($5)|0);
+ $19 = ((($0)) + 20|0);
+ HEAP32[$19>>2] = $18;
+ $20 = (__gcry_mpi_copy($6)|0);
+ $21 = ((($0)) + 24|0);
+ HEAP32[$21>>2] = $20;
+ $22 = HEAP32[18128]|0;
+ $23 = ($22|0)>(0);
+ if ($23) {
+  $24 = HEAP32[$17>>2]|0;
+  $25 = (__gcry_mpi_barrett_init($24,0)|0);
+  $27 = $25;
+ } else {
+  $27 = 0;
+ }
+ $26 = ((($0)) + 60|0);
+ HEAP32[$26>>2] = $27;
+ $28 = ((($0)) + 48|0);
+ $29 = HEAP8[$28>>0]|0;
+ $30 = $29 & -4;
+ HEAP8[$28>>0] = $30;
+ $31 = HEAP32[$17>>2]|0;
+ $32 = (__gcry_mpi_alloc_like($31)|0);
+ $33 = ((($0)) + 64|0);
+ HEAP32[$33>>2] = $32;
+ $34 = HEAP32[$17>>2]|0;
+ $35 = (__gcry_mpi_alloc_like($34)|0);
+ $36 = ((($0)) + 68|0);
+ HEAP32[$36>>2] = $35;
+ $37 = HEAP32[$17>>2]|0;
+ $38 = (__gcry_mpi_alloc_like($37)|0);
+ $39 = ((($0)) + 72|0);
+ HEAP32[$39>>2] = $38;
+ $40 = HEAP32[$17>>2]|0;
+ $41 = (__gcry_mpi_alloc_like($40)|0);
+ $42 = ((($0)) + 76|0);
+ HEAP32[$42>>2] = $41;
+ $43 = HEAP32[$17>>2]|0;
+ $44 = (__gcry_mpi_alloc_like($43)|0);
+ $45 = ((($0)) + 80|0);
+ HEAP32[$45>>2] = $44;
+ $46 = HEAP32[$17>>2]|0;
+ $47 = (__gcry_mpi_alloc_like($46)|0);
+ $48 = ((($0)) + 84|0);
+ HEAP32[$48>>2] = $47;
+ $49 = HEAP32[$17>>2]|0;
+ $50 = (__gcry_mpi_alloc_like($49)|0);
+ $51 = ((($0)) + 88|0);
+ HEAP32[$51>>2] = $50;
+ $52 = HEAP32[$17>>2]|0;
+ $53 = (__gcry_mpi_alloc_like($52)|0);
+ $54 = ((($0)) + 92|0);
+ HEAP32[$54>>2] = $53;
+ $55 = HEAP32[$17>>2]|0;
+ $56 = (__gcry_mpi_alloc_like($55)|0);
+ $57 = ((($0)) + 96|0);
+ HEAP32[$57>>2] = $56;
+ $58 = HEAP32[$17>>2]|0;
+ $59 = (__gcry_mpi_alloc_like($58)|0);
+ $60 = ((($0)) + 100|0);
+ HEAP32[$60>>2] = $59;
+ $61 = HEAP32[$17>>2]|0;
+ $62 = (__gcry_mpi_alloc_like($61)|0);
+ $63 = ((($0)) + 104|0);
+ HEAP32[$63>>2] = $62;
+ return;
+}
+function __gcry_mpi_ec_p_new($0,$1,$2,$3,$4,$5,$6) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ HEAP32[$0>>2] = 0;
+ $7 = ($4|0)!=(0|0);
+ $8 = ($5|0)!=(0|0);
+ $or$cond = $7 & $8;
+ if (!($or$cond)) {
+  $$0 = 32816;
+  return ($$0|0);
+ }
+ $9 = (__gcry_ctx_alloc(1,108,81)|0);
+ $10 = ($9|0)==(0|0);
+ if ($10) {
+  $11 = (_gpg_err_code_from_syserror()|0);
+  $$0 = $11;
+  return ($$0|0);
+ } else {
+  $12 = (__gcry_ctx_get_pointer($9,1)|0);
+  _ec_p_init($12,$1,$2,$3,$4,$5,$6);
+  HEAP32[$0>>2] = $9;
+  $$0 = 0;
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function _ec_deinit($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, 
$25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, 
$43 = 0, $44 = 0, $45 = 0;
+ var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 60|0);
+ $2 = HEAP32[$1>>2]|0;
+ __gcry_mpi_barrett_free($2);
+ $3 = ((($0)) + 16|0);
+ $4 = HEAP32[$3>>2]|0;
+ __gcry_mpi_free($4);
+ $5 = ((($0)) + 20|0);
+ $6 = HEAP32[$5>>2]|0;
+ __gcry_mpi_free($6);
+ $7 = ((($0)) + 24|0);
+ $8 = HEAP32[$7>>2]|0;
+ __gcry_mpi_free($8);
+ $9 = ((($0)) + 28|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ($10|0)==(0|0);
+ if (!($11)) {
+  $12 = HEAP32[$10>>2]|0;
+  __gcry_mpi_free($12);
+  HEAP32[$10>>2] = 0;
+  $13 = ((($10)) + 4|0);
+  $14 = HEAP32[$13>>2]|0;
+  __gcry_mpi_free($14);
+  HEAP32[$13>>2] = 0;
+  $15 = ((($10)) + 8|0);
+  $16 = HEAP32[$15>>2]|0;
+  __gcry_mpi_free($16);
+  HEAP32[$15>>2] = 0;
+  __gcry_free($10);
+ }
+ $17 = ((($0)) + 32|0);
+ $18 = HEAP32[$17>>2]|0;
+ __gcry_mpi_free($18);
+ $19 = ((($0)) + 36|0);
+ $20 = HEAP32[$19>>2]|0;
+ __gcry_mpi_free($20);
+ $21 = ((($0)) + 40|0);
+ $22 = HEAP32[$21>>2]|0;
+ $23 = ($22|0)==(0|0);
+ if (!($23)) {
+  $24 = HEAP32[$22>>2]|0;
+  __gcry_mpi_free($24);
+  HEAP32[$22>>2] = 0;
+  $25 = ((($22)) + 4|0);
+  $26 = HEAP32[$25>>2]|0;
+  __gcry_mpi_free($26);
+  HEAP32[$25>>2] = 0;
+  $27 = ((($22)) + 8|0);
+  $28 = HEAP32[$27>>2]|0;
+  __gcry_mpi_free($28);
+  HEAP32[$27>>2] = 0;
+  __gcry_free($22);
+ }
+ $29 = ((($0)) + 44|0);
+ $30 = HEAP32[$29>>2]|0;
+ __gcry_mpi_free($30);
+ $31 = ((($0)) + 56|0);
+ $32 = HEAP32[$31>>2]|0;
+ __gcry_mpi_free($32);
+ $33 = ((($0)) + 64|0);
+ $34 = HEAP32[$33>>2]|0;
+ __gcry_mpi_free($34);
+ $35 = ((($0)) + 68|0);
+ $36 = HEAP32[$35>>2]|0;
+ __gcry_mpi_free($36);
+ $37 = ((($0)) + 72|0);
+ $38 = HEAP32[$37>>2]|0;
+ __gcry_mpi_free($38);
+ $39 = ((($0)) + 76|0);
+ $40 = HEAP32[$39>>2]|0;
+ __gcry_mpi_free($40);
+ $41 = ((($0)) + 80|0);
+ $42 = HEAP32[$41>>2]|0;
+ __gcry_mpi_free($42);
+ $43 = ((($0)) + 84|0);
+ $44 = HEAP32[$43>>2]|0;
+ __gcry_mpi_free($44);
+ $45 = ((($0)) + 88|0);
+ $46 = HEAP32[$45>>2]|0;
+ __gcry_mpi_free($46);
+ $47 = ((($0)) + 92|0);
+ $48 = HEAP32[$47>>2]|0;
+ __gcry_mpi_free($48);
+ $49 = ((($0)) + 96|0);
+ $50 = HEAP32[$49>>2]|0;
+ __gcry_mpi_free($50);
+ $51 = ((($0)) + 100|0);
+ $52 = HEAP32[$51>>2]|0;
+ __gcry_mpi_free($52);
+ $53 = ((($0)) + 104|0);
+ $54 = HEAP32[$53>>2]|0;
+ __gcry_mpi_free($54);
+ return;
+}
+function __gcry_mpi_ec_free($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  return;
+ }
+ _ec_deinit($0);
+ __gcry_free($0);
+ return;
+}
+function __gcry_mpi_ec_get_mpi($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_ctx_get_pointer($1,1)|0);
+ $4 = (__gcry_ecc_get_mpi($0,$3,$2)|0);
+ return ($4|0);
+}
+function __gcry_mpi_ec_get_point($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_ctx_get_pointer($1,1)|0);
+ $4 = (__gcry_ecc_get_point($0,$3)|0);
+ return ($4|0);
+}
+function __gcry_mpi_ec_dup_point($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$idx$pre$phi$iZZ2D = 0, $$idx$val$i = 0, $$pre$i = 0, $$pre$i$i = 0, 
$$pre$phi$i$iZ2D = 0, $$pre$phi$iZ2D = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 
0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 
0, $110 = 0, $111 = 0;
+ var $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;
+ var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, 
$137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, 
$144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0;
+ var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 
= 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 
= 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0;
+ var $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 
= 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 
= 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0;
+ var $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 
= 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 
= 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0;
+ var $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 
= 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 
= 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0;
+ var $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, 
$228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, 
$235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0;
+ var $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 
= 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 
= 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0;
+ var $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 
= 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 
= 0, $35 = 0, $36 = 0, $37 = 0;
+ var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, 
$45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0;
+ var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, 
$63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, 
$71 = 0, $72 = 0, $73 = 0;
+ var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, 
$81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 
0, $9 = 0, $90 = 0, $91 = 0;
+ var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = HEAP32[$2>>2]|0;
+ switch ($3|0) {
+ case 0:  {
+  $4 = ((($1)) + 4|0);
+  $5 = HEAP32[$4>>2]|0;
+  $6 = (__gcry_mpi_cmp_ui($5,0)|0);
+  $7 = ($6|0)==(0);
+  if (!($7)) {
+   $8 = ((($1)) + 8|0);
+   $9 = HEAP32[$8>>2]|0;
+   $10 = (__gcry_mpi_cmp_ui($9,0)|0);
+   $11 = ($10|0)==(0);
+   if (!($11)) {
+    $17 = ((($2)) + 48|0);
+    $18 = HEAP8[$17>>0]|0;
+    $19 = $18 & 1;
+    $20 = ($19<<24>>24)==(0);
+    if ($20) {
+     $21 = $18 | 1;
+     HEAP8[$17>>0] = $21;
+     $22 = ((($2)) + 16|0);
+     $23 = HEAP32[$22>>2]|0;
+     $24 = (__gcry_mpi_alloc_like($23)|0);
+     $25 = HEAP32[$22>>2]|0;
+     __gcry_mpi_sub_ui($24,$25,3);
+     $26 = ((($2)) + 20|0);
+     $27 = HEAP32[$26>>2]|0;
+     $28 = (__gcry_mpi_cmp($27,$24)|0);
+     $29 = ($28|0)==(0);
+     $30 = $29&1;
+     $31 = ((($2)) + 52|0);
+     HEAP32[$31>>2] = $30;
+     __gcry_mpi_free($24);
+     $$pre$phi$i$iZ2D = $31;
+    } else {
+     $$pre$i$i = ((($2)) + 52|0);
+     $$pre$phi$i$iZ2D = $$pre$i$i;
+    }
+    $32 = HEAP32[$$pre$phi$i$iZ2D>>2]|0;
+    $33 = ($32|0)==(0);
+    $34 = ((($2)) + 64|0);
+    do {
+     if ($33) {
+      $66 = ((($2)) + 76|0);
+      $67 = HEAP32[$66>>2]|0;
+      $68 = HEAP32[$1>>2]|0;
+      __gcry_mpi_mul($67,$68,$68);
+      $69 = ((($2)) + 60|0);
+      $70 = HEAP32[$69>>2]|0;
+      $71 = ($70|0)==(0|0);
+      if ($71) {
+       $72 = ((($2)) + 16|0);
+       $73 = HEAP32[$72>>2]|0;
+       __gcry_mpi_mod($67,$67,$73);
+      } else {
+       __gcry_mpi_mod_barrett($67,$67,$70);
+      }
+      $74 = HEAP32[$66>>2]|0;
+      $75 = (__gcry_mpi_const(3)|0);
+      __gcry_mpi_mul($74,$74,$75);
+      $76 = HEAP32[$69>>2]|0;
+      $77 = ($76|0)==(0|0);
+      if ($77) {
+       $78 = ((($2)) + 16|0);
+       $79 = HEAP32[$78>>2]|0;
+       __gcry_mpi_mod($74,$74,$79);
+       $$idx$pre$phi$iZZ2D = $78;
+      } else {
+       __gcry_mpi_mod_barrett($74,$74,$76);
+       $$pre$i = ((($2)) + 16|0);
+       $$idx$pre$phi$iZZ2D = $$pre$i;
+      }
+      $80 = HEAP32[$34>>2]|0;
+      $81 = HEAP32[$8>>2]|0;
+      $82 = (__gcry_mpi_const(4)|0);
+      $$idx$val$i = HEAP32[$$idx$pre$phi$iZZ2D>>2]|0;
+      __gcry_mpi_powm($80,$81,$82,$$idx$val$i);
+      $83 = HEAP32[$34>>2]|0;
+      $84 = ((($2)) + 20|0);
+      $85 = HEAP32[$84>>2]|0;
+      __gcry_mpi_mul($83,$83,$85);
+      $86 = HEAP32[$69>>2]|0;
+      $87 = ($86|0)==(0|0);
+      if ($87) {
+       $88 = HEAP32[$$idx$pre$phi$iZZ2D>>2]|0;
+       __gcry_mpi_mod($83,$83,$88);
+      } else {
+       __gcry_mpi_mod_barrett($83,$83,$86);
+      }
+      $89 = HEAP32[$66>>2]|0;
+      $90 = HEAP32[$34>>2]|0;
+      __gcry_mpi_add($89,$89,$90);
+      $91 = HEAP32[$69>>2]|0;
+      $92 = ($91|0)==(0|0);
+      if ($92) {
+       $93 = HEAP32[$$idx$pre$phi$iZZ2D>>2]|0;
+       __gcry_mpi_mod($89,$89,$93);
+       $$pre$phi$iZ2D = $69;
+       break;
+      } else {
+       __gcry_mpi_mod_barrett($89,$89,$91);
+       $$pre$phi$iZ2D = $69;
+       break;
+      }
+     } else {
+      $35 = HEAP32[$34>>2]|0;
+      $36 = HEAP32[$8>>2]|0;
+      __gcry_mpi_mul($35,$36,$36);
+      $37 = ((($2)) + 60|0);
+      $38 = HEAP32[$37>>2]|0;
+      $39 = ($38|0)==(0|0);
+      if ($39) {
+       $40 = ((($2)) + 16|0);
+       $41 = HEAP32[$40>>2]|0;
+       __gcry_mpi_mod($35,$35,$41);
+      } else {
+       __gcry_mpi_mod_barrett($35,$35,$38);
+      }
+      $42 = ((($2)) + 76|0);
+      $43 = HEAP32[$42>>2]|0;
+      $44 = HEAP32[$1>>2]|0;
+      $45 = HEAP32[$34>>2]|0;
+      __gcry_mpi_sub($43,$44,$45);
+      $46 = HEAP32[$42>>2]|0;
+      $47 = (__gcry_mpi_const(3)|0);
+      __gcry_mpi_mul($46,$46,$47);
+      $48 = HEAP32[$37>>2]|0;
+      $49 = ($48|0)==(0|0);
+      if ($49) {
+       $50 = ((($2)) + 16|0);
+       $51 = HEAP32[$50>>2]|0;
+       __gcry_mpi_mod($46,$46,$51);
+      } else {
+       __gcry_mpi_mod_barrett($46,$46,$48);
+      }
+      $52 = ((($2)) + 68|0);
+      $53 = HEAP32[$52>>2]|0;
+      $54 = HEAP32[$1>>2]|0;
+      $55 = HEAP32[$34>>2]|0;
+      __gcry_mpi_add($53,$54,$55);
+      $56 = HEAP32[$37>>2]|0;
+      $57 = ($56|0)==(0|0);
+      if ($57) {
+       $58 = ((($2)) + 16|0);
+       $59 = HEAP32[$58>>2]|0;
+       __gcry_mpi_mod($53,$53,$59);
+      } else {
+       __gcry_mpi_mod_barrett($53,$53,$56);
+      }
+      $60 = HEAP32[$42>>2]|0;
+      $61 = HEAP32[$52>>2]|0;
+      __gcry_mpi_mul($60,$60,$61);
+      $62 = HEAP32[$37>>2]|0;
+      $63 = ($62|0)==(0|0);
+      if ($63) {
+       $64 = ((($2)) + 16|0);
+       $65 = HEAP32[$64>>2]|0;
+       __gcry_mpi_mod($60,$60,$65);
+       $$pre$phi$iZ2D = $37;
+       break;
+      } else {
+       __gcry_mpi_mod_barrett($60,$60,$62);
+       $$pre$phi$iZ2D = $37;
+       break;
+      }
+     }
+    } while(0);
+    $94 = ((($0)) + 8|0);
+    $95 = HEAP32[$94>>2]|0;
+    $96 = HEAP32[$4>>2]|0;
+    $97 = HEAP32[$8>>2]|0;
+    __gcry_mpi_mul($95,$96,$97);
+    $98 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+    $99 = ($98|0)==(0|0);
+    if ($99) {
+     $100 = ((($2)) + 16|0);
+     $101 = HEAP32[$100>>2]|0;
+     __gcry_mpi_mod($95,$95,$101);
+    } else {
+     __gcry_mpi_mod_barrett($95,$95,$98);
+    }
+    $102 = HEAP32[$94>>2]|0;
+    __gcry_mpi_lshift($102,$102,1);
+    $103 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+    $104 = ($103|0)==(0|0);
+    if ($104) {
+     $105 = ((($2)) + 16|0);
+     $106 = HEAP32[$105>>2]|0;
+     __gcry_mpi_mod($102,$102,$106);
+    } else {
+     __gcry_mpi_mod_barrett($102,$102,$103);
+    }
+    $107 = ((($2)) + 68|0);
+    $108 = HEAP32[$107>>2]|0;
+    $109 = HEAP32[$4>>2]|0;
+    __gcry_mpi_mul($108,$109,$109);
+    $110 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+    $111 = ($110|0)==(0|0);
+    if ($111) {
+     $112 = ((($2)) + 16|0);
+     $113 = HEAP32[$112>>2]|0;
+     __gcry_mpi_mod($108,$108,$113);
+    } else {
+     __gcry_mpi_mod_barrett($108,$108,$110);
+    }
+    $114 = ((($2)) + 80|0);
+    $115 = HEAP32[$114>>2]|0;
+    $116 = HEAP32[$107>>2]|0;
+    $117 = HEAP32[$1>>2]|0;
+    __gcry_mpi_mul($115,$116,$117);
+    $118 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+    $119 = ($118|0)==(0|0);
+    if ($119) {
+     $120 = ((($2)) + 16|0);
+     $121 = HEAP32[$120>>2]|0;
+     __gcry_mpi_mod($115,$115,$121);
+    } else {
+     __gcry_mpi_mod_barrett($115,$115,$118);
+    }
+    $122 = HEAP32[$114>>2]|0;
+    $123 = (__gcry_mpi_const(4)|0);
+    __gcry_mpi_mul($122,$122,$123);
+    $124 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+    $125 = ($124|0)==(0|0);
+    if ($125) {
+     $126 = ((($2)) + 16|0);
+     $127 = HEAP32[$126>>2]|0;
+     __gcry_mpi_mod($122,$122,$127);
+    } else {
+     __gcry_mpi_mod_barrett($122,$122,$124);
+    }
+    $128 = HEAP32[$0>>2]|0;
+    $129 = ((($2)) + 76|0);
+    $130 = HEAP32[$129>>2]|0;
+    __gcry_mpi_mul($128,$130,$130);
+    $131 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+    $132 = ($131|0)==(0|0);
+    if ($132) {
+     $133 = ((($2)) + 16|0);
+     $134 = HEAP32[$133>>2]|0;
+     __gcry_mpi_mod($128,$128,$134);
+    } else {
+     __gcry_mpi_mod_barrett($128,$128,$131);
+    }
+    $135 = HEAP32[$34>>2]|0;
+    $136 = HEAP32[$114>>2]|0;
+    __gcry_mpi_lshift($135,$136,1);
+    $137 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+    $138 = ($137|0)==(0|0);
+    if ($138) {
+     $139 = ((($2)) + 16|0);
+     $140 = HEAP32[$139>>2]|0;
+     __gcry_mpi_mod($135,$135,$140);
+    } else {
+     __gcry_mpi_mod_barrett($135,$135,$137);
+    }
+    $141 = HEAP32[$0>>2]|0;
+    $142 = HEAP32[$34>>2]|0;
+    __gcry_mpi_sub($141,$141,$142);
+    $143 = HEAP32[$107>>2]|0;
+    __gcry_mpi_mul($143,$143,$143);
+    $144 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+    $145 = ($144|0)==(0|0);
+    if ($145) {
+     $146 = ((($2)) + 16|0);
+     $147 = HEAP32[$146>>2]|0;
+     __gcry_mpi_mod($143,$143,$147);
+    } else {
+     __gcry_mpi_mod_barrett($143,$143,$144);
+    }
+    $148 = ((($2)) + 84|0);
+    $149 = HEAP32[$148>>2]|0;
+    $150 = HEAP32[$107>>2]|0;
+    $151 = (__gcry_mpi_const(5)|0);
+    __gcry_mpi_mul($149,$150,$151);
+    $152 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+    $153 = ($152|0)==(0|0);
+    if ($153) {
+     $154 = ((($2)) + 16|0);
+     $155 = HEAP32[$154>>2]|0;
+     __gcry_mpi_mod($149,$149,$155);
+    } else {
+     __gcry_mpi_mod_barrett($149,$149,$152);
+    }
+    $156 = ((($0)) + 4|0);
+    $157 = HEAP32[$156>>2]|0;
+    $158 = HEAP32[$114>>2]|0;
+    $159 = HEAP32[$0>>2]|0;
+    __gcry_mpi_sub($157,$158,$159);
+    $160 = HEAP32[$156>>2]|0;
+    $161 = HEAP32[$129>>2]|0;
+    __gcry_mpi_mul($160,$160,$161);
+    $162 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+    $163 = ($162|0)==(0|0);
+    if ($163) {
+     $164 = ((($2)) + 16|0);
+     $165 = HEAP32[$164>>2]|0;
+     __gcry_mpi_mod($160,$160,$165);
+    } else {
+     __gcry_mpi_mod_barrett($160,$160,$162);
+    }
+    $166 = HEAP32[$156>>2]|0;
+    $167 = HEAP32[$148>>2]|0;
+    __gcry_mpi_sub($166,$166,$167);
+    return;
+   }
+  }
+  $12 = HEAP32[$0>>2]|0;
+  (__gcry_mpi_set_ui($12,1)|0);
+  $13 = ((($0)) + 4|0);
+  $14 = HEAP32[$13>>2]|0;
+  (__gcry_mpi_set_ui($14,1)|0);
+  $15 = ((($0)) + 8|0);
+  $16 = HEAP32[$15>>2]|0;
+  (__gcry_mpi_set_ui($16,0)|0);
+  return;
+  break;
+ }
+ case 1:  {
+  _dup_point_montgomery();
+  // unreachable;
+  break;
+ }
+ case 2:  {
+  $168 = ((($2)) + 64|0);
+  $169 = HEAP32[$168>>2]|0;
+  $170 = HEAP32[$1>>2]|0;
+  $171 = ((($1)) + 4|0);
+  $172 = HEAP32[$171>>2]|0;
+  __gcry_mpi_add($169,$170,$172);
+  $173 = ((($2)) + 60|0);
+  $174 = HEAP32[$173>>2]|0;
+  $175 = ($174|0)==(0|0);
+  if ($175) {
+   $176 = ((($2)) + 16|0);
+   $177 = HEAP32[$176>>2]|0;
+   __gcry_mpi_mod($169,$169,$177);
+  } else {
+   __gcry_mpi_mod_barrett($169,$169,$174);
+  }
+  $178 = HEAP32[$168>>2]|0;
+  __gcry_mpi_mul($178,$178,$178);
+  $179 = HEAP32[$173>>2]|0;
+  $180 = ($179|0)==(0|0);
+  if ($180) {
+   $181 = ((($2)) + 16|0);
+   $182 = HEAP32[$181>>2]|0;
+   __gcry_mpi_mod($178,$178,$182);
+  } else {
+   __gcry_mpi_mod_barrett($178,$178,$179);
+  }
+  $183 = ((($2)) + 68|0);
+  $184 = HEAP32[$183>>2]|0;
+  $185 = HEAP32[$1>>2]|0;
+  __gcry_mpi_mul($184,$185,$185);
+  $186 = HEAP32[$173>>2]|0;
+  $187 = ($186|0)==(0|0);
+  if ($187) {
+   $188 = ((($2)) + 16|0);
+   $189 = HEAP32[$188>>2]|0;
+   __gcry_mpi_mod($184,$184,$189);
+  } else {
+   __gcry_mpi_mod_barrett($184,$184,$186);
+  }
+  $190 = ((($2)) + 72|0);
+  $191 = HEAP32[$190>>2]|0;
+  $192 = HEAP32[$171>>2]|0;
+  __gcry_mpi_mul($191,$192,$192);
+  $193 = HEAP32[$173>>2]|0;
+  $194 = ($193|0)==(0|0);
+  if ($194) {
+   $195 = ((($2)) + 16|0);
+   $196 = HEAP32[$195>>2]|0;
+   __gcry_mpi_mod($191,$191,$196);
+  } else {
+   __gcry_mpi_mod_barrett($191,$191,$193);
+  }
+  $197 = ((($2)) + 4|0);
+  $198 = HEAP32[$197>>2]|0;
+  $199 = ($198|0)==(1);
+  $200 = ((($2)) + 76|0);
+  $201 = HEAP32[$200>>2]|0;
+  do {
+   if ($199) {
+    $202 = HEAP32[$183>>2]|0;
+    (__gcry_mpi_set($201,$202)|0);
+    $203 = HEAP32[$200>>2]|0;
+    __gcry_mpi_neg($203,$203);
+   } else {
+    $204 = ((($2)) + 20|0);
+    $205 = HEAP32[$204>>2]|0;
+    $206 = HEAP32[$183>>2]|0;
+    __gcry_mpi_mul($201,$205,$206);
+    $207 = HEAP32[$173>>2]|0;
+    $208 = ($207|0)==(0|0);
+    if ($208) {
+     $209 = ((($2)) + 16|0);
+     $210 = HEAP32[$209>>2]|0;
+     __gcry_mpi_mod($201,$201,$210);
+     break;
+    } else {
+     __gcry_mpi_mod_barrett($201,$201,$207);
+     break;
+    }
+   }
+  } while(0);
+  $211 = ((($2)) + 80|0);
+  $212 = HEAP32[$211>>2]|0;
+  $213 = HEAP32[$200>>2]|0;
+  $214 = HEAP32[$190>>2]|0;
+  __gcry_mpi_add($212,$213,$214);
+  $215 = HEAP32[$173>>2]|0;
+  $216 = ($215|0)==(0|0);
+  if ($216) {
+   $217 = ((($2)) + 16|0);
+   $218 = HEAP32[$217>>2]|0;
+   __gcry_mpi_mod($212,$212,$218);
+  } else {
+   __gcry_mpi_mod_barrett($212,$212,$215);
+  }
+  $219 = ((($2)) + 84|0);
+  $220 = HEAP32[$219>>2]|0;
+  $221 = ((($1)) + 8|0);
+  $222 = HEAP32[$221>>2]|0;
+  __gcry_mpi_mul($220,$222,$222);
+  $223 = HEAP32[$173>>2]|0;
+  $224 = ($223|0)==(0|0);
+  if ($224) {
+   $225 = ((($2)) + 16|0);
+   $226 = HEAP32[$225>>2]|0;
+   __gcry_mpi_mod($220,$220,$226);
+  } else {
+   __gcry_mpi_mod_barrett($220,$220,$223);
+  }
+  $227 = ((($2)) + 88|0);
+  $228 = HEAP32[$227>>2]|0;
+  $229 = HEAP32[$219>>2]|0;
+  __gcry_mpi_lshift($228,$229,1);
+  $230 = HEAP32[$173>>2]|0;
+  $231 = ($230|0)==(0|0);
+  if ($231) {
+   $232 = ((($2)) + 16|0);
+   $233 = HEAP32[$232>>2]|0;
+   __gcry_mpi_mod($228,$228,$233);
+  } else {
+   __gcry_mpi_mod_barrett($228,$228,$230);
+  }
+  $234 = HEAP32[$227>>2]|0;
+  $235 = HEAP32[$211>>2]|0;
+  __gcry_mpi_sub($234,$235,$234);
+  $236 = HEAP32[$0>>2]|0;
+  $237 = HEAP32[$168>>2]|0;
+  $238 = HEAP32[$183>>2]|0;
+  __gcry_mpi_sub($236,$237,$238);
+  $239 = HEAP32[$0>>2]|0;
+  $240 = HEAP32[$190>>2]|0;
+  __gcry_mpi_sub($239,$239,$240);
+  $241 = HEAP32[$0>>2]|0;
+  $242 = HEAP32[$227>>2]|0;
+  __gcry_mpi_mul($241,$241,$242);
+  $243 = HEAP32[$173>>2]|0;
+  $244 = ($243|0)==(0|0);
+  if ($244) {
+   $245 = ((($2)) + 16|0);
+   $246 = HEAP32[$245>>2]|0;
+   __gcry_mpi_mod($241,$241,$246);
+  } else {
+   __gcry_mpi_mod_barrett($241,$241,$243);
+  }
+  $247 = ((($0)) + 4|0);
+  $248 = HEAP32[$247>>2]|0;
+  $249 = HEAP32[$200>>2]|0;
+  $250 = HEAP32[$190>>2]|0;
+  __gcry_mpi_sub($248,$249,$250);
+  $251 = HEAP32[$247>>2]|0;
+  $252 = HEAP32[$211>>2]|0;
+  __gcry_mpi_mul($251,$251,$252);
+  $253 = HEAP32[$173>>2]|0;
+  $254 = ($253|0)==(0|0);
+  if ($254) {
+   $255 = ((($2)) + 16|0);
+   $256 = HEAP32[$255>>2]|0;
+   __gcry_mpi_mod($251,$251,$256);
+  } else {
+   __gcry_mpi_mod_barrett($251,$251,$253);
+  }
+  $257 = ((($0)) + 8|0);
+  $258 = HEAP32[$257>>2]|0;
+  $259 = HEAP32[$211>>2]|0;
+  $260 = HEAP32[$227>>2]|0;
+  __gcry_mpi_mul($258,$259,$260);
+  $261 = HEAP32[$173>>2]|0;
+  $262 = ($261|0)==(0|0);
+  if ($262) {
+   $263 = ((($2)) + 16|0);
+   $264 = HEAP32[$263>>2]|0;
+   __gcry_mpi_mod($258,$258,$264);
+   return;
+  } else {
+   __gcry_mpi_mod_barrett($258,$258,$261);
+   return;
+  }
+  break;
+ }
+ default: {
+  return;
+ }
+ }
+}
+function _dup_point_montgomery() {
+ var $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ HEAP32[$vararg_buffer>>2] = 63958;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = 63906;
+ __gcry_log_fatal(63932,$vararg_buffer);
+ // unreachable;
+}
+function __gcry_mpi_ec_add_points($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$idx$val$i = 0, $$idx129$val$i = 0, $$idx130$i = 0, $$idx130$val$i = 0, 
$$pre$i = 0, $$pre$i$i = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$iZ2D = 0, $10 = 0, 
$100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, 
$108 = 0, $109 = 0, $11 = 0;
+ var $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;
+ var $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 
= 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 
= 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0;
+ var $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 
= 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 
= 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0;
+ var $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 
= 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 
= 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0;
+ var $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 
= 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 
= 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0;
+ var $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, 
$208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, 
$22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $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;
+ var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $63 = 0;
+ var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, 
$71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 
0, $8 = 0, $80 = 0, $81 = 0;
+ var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, 
$9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, 
$98 = 0, $99 = 0, $vararg_buffer = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $4 = HEAP32[$3>>2]|0;
+ switch ($4|0) {
+ case 0:  {
+  $5 = HEAP32[$1>>2]|0;
+  $6 = HEAP32[$2>>2]|0;
+  $7 = (__gcry_mpi_cmp($5,$6)|0);
+  $8 = ($7|0)==(0);
+  if ($8) {
+   $9 = ((($1)) + 4|0);
+   $10 = HEAP32[$9>>2]|0;
+   $11 = ((($2)) + 4|0);
+   $12 = HEAP32[$11>>2]|0;
+   $13 = (__gcry_mpi_cmp($10,$12)|0);
+   $14 = ($13|0)==(0);
+   if ($14) {
+    $15 = ((($1)) + 8|0);
+    $16 = HEAP32[$15>>2]|0;
+    $17 = ((($2)) + 8|0);
+    $18 = HEAP32[$17>>2]|0;
+    $19 = (__gcry_mpi_cmp($16,$18)|0);
+    $20 = ($19|0)==(0);
+    if ($20) {
+     __gcry_mpi_ec_dup_point($0,$1,$3);
+     STACKTOP = sp;return;
+    }
+   }
+  }
+  $21 = ((($1)) + 8|0);
+  $22 = HEAP32[$21>>2]|0;
+  $23 = (__gcry_mpi_cmp_ui($22,0)|0);
+  $24 = ($23|0)==(0);
+  if ($24) {
+   $25 = HEAP32[$0>>2]|0;
+   $26 = HEAP32[$2>>2]|0;
+   (__gcry_mpi_set($25,$26)|0);
+   $27 = ((($0)) + 4|0);
+   $28 = HEAP32[$27>>2]|0;
+   $29 = ((($2)) + 4|0);
+   $30 = HEAP32[$29>>2]|0;
+   (__gcry_mpi_set($28,$30)|0);
+   $31 = ((($0)) + 8|0);
+   $32 = HEAP32[$31>>2]|0;
+   $33 = ((($2)) + 8|0);
+   $34 = HEAP32[$33>>2]|0;
+   (__gcry_mpi_set($32,$34)|0);
+   STACKTOP = sp;return;
+  }
+  $35 = ((($2)) + 8|0);
+  $36 = HEAP32[$35>>2]|0;
+  $37 = (__gcry_mpi_cmp_ui($36,0)|0);
+  $38 = ($37|0)==(0);
+  if ($38) {
+   $39 = HEAP32[$0>>2]|0;
+   $40 = HEAP32[$1>>2]|0;
+   (__gcry_mpi_set($39,$40)|0);
+   $41 = ((($0)) + 4|0);
+   $42 = HEAP32[$41>>2]|0;
+   $43 = ((($1)) + 4|0);
+   $44 = HEAP32[$43>>2]|0;
+   (__gcry_mpi_set($42,$44)|0);
+   $45 = ((($0)) + 8|0);
+   $46 = HEAP32[$45>>2]|0;
+   $47 = HEAP32[$21>>2]|0;
+   (__gcry_mpi_set($46,$47)|0);
+   STACKTOP = sp;return;
+  }
+  $48 = HEAP32[$21>>2]|0;
+  $49 = (__gcry_mpi_cmp_ui($48,1)|0);
+  $50 = ($49|0)==(0);
+  $51 = HEAP32[$35>>2]|0;
+  $52 = (__gcry_mpi_cmp_ui($51,1)|0);
+  $53 = ($52|0)==(0);
+  $54 = ((($3)) + 64|0);
+  $55 = HEAP32[$54>>2]|0;
+  do {
+   if ($53) {
+    $56 = HEAP32[$1>>2]|0;
+    (__gcry_mpi_set($55,$56)|0);
+   } else {
+    $57 = HEAP32[$35>>2]|0;
+    __gcry_mpi_mul($55,$57,$57);
+    $58 = ((($3)) + 60|0);
+    $59 = HEAP32[$58>>2]|0;
+    $60 = ($59|0)==(0|0);
+    if ($60) {
+     $61 = ((($3)) + 16|0);
+     $62 = HEAP32[$61>>2]|0;
+     __gcry_mpi_mod($55,$55,$62);
+    } else {
+     __gcry_mpi_mod_barrett($55,$55,$59);
+    }
+    $63 = HEAP32[$54>>2]|0;
+    $64 = HEAP32[$1>>2]|0;
+    __gcry_mpi_mul($63,$63,$64);
+    $65 = HEAP32[$58>>2]|0;
+    $66 = ($65|0)==(0|0);
+    if ($66) {
+     $67 = ((($3)) + 16|0);
+     $68 = HEAP32[$67>>2]|0;
+     __gcry_mpi_mod($63,$63,$68);
+     break;
+    } else {
+     __gcry_mpi_mod_barrett($63,$63,$65);
+     break;
+    }
+   }
+  } while(0);
+  $69 = ((($3)) + 68|0);
+  $70 = HEAP32[$69>>2]|0;
+  do {
+   if ($50) {
+    $71 = HEAP32[$2>>2]|0;
+    (__gcry_mpi_set($70,$71)|0);
+    $$pre$i = ((($3)) + 60|0);
+    $$pre$phi$iZ2D = $$pre$i;
+   } else {
+    $72 = HEAP32[$21>>2]|0;
+    __gcry_mpi_mul($70,$72,$72);
+    $73 = ((($3)) + 60|0);
+    $74 = HEAP32[$73>>2]|0;
+    $75 = ($74|0)==(0|0);
+    if ($75) {
+     $76 = ((($3)) + 16|0);
+     $77 = HEAP32[$76>>2]|0;
+     __gcry_mpi_mod($70,$70,$77);
+    } else {
+     __gcry_mpi_mod_barrett($70,$70,$74);
+    }
+    $78 = HEAP32[$69>>2]|0;
+    $79 = HEAP32[$2>>2]|0;
+    __gcry_mpi_mul($78,$78,$79);
+    $80 = HEAP32[$73>>2]|0;
+    $81 = ($80|0)==(0|0);
+    if ($81) {
+     $82 = ((($3)) + 16|0);
+     $83 = HEAP32[$82>>2]|0;
+     __gcry_mpi_mod($78,$78,$83);
+     $$pre$phi$iZ2D = $73;
+     break;
+    } else {
+     __gcry_mpi_mod_barrett($78,$78,$80);
+     $$pre$phi$iZ2D = $73;
+     break;
+    }
+   }
+  } while(0);
+  $84 = ((($3)) + 72|0);
+  $85 = HEAP32[$84>>2]|0;
+  $86 = HEAP32[$54>>2]|0;
+  $87 = HEAP32[$69>>2]|0;
+  __gcry_mpi_sub($85,$86,$87);
+  $88 = ((($3)) + 76|0);
+  $89 = HEAP32[$88>>2]|0;
+  $90 = HEAP32[$35>>2]|0;
+  $91 = (__gcry_mpi_const(3)|0);
+  $$idx130$i = ((($3)) + 16|0);
+  $$idx130$val$i = HEAP32[$$idx130$i>>2]|0;
+  __gcry_mpi_powm($89,$90,$91,$$idx130$val$i);
+  $92 = HEAP32[$88>>2]|0;
+  $93 = ((($1)) + 4|0);
+  $94 = HEAP32[$93>>2]|0;
+  __gcry_mpi_mul($92,$92,$94);
+  $95 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+  $96 = ($95|0)==(0|0);
+  if ($96) {
+   $97 = HEAP32[$$idx130$i>>2]|0;
+   __gcry_mpi_mod($92,$92,$97);
+  } else {
+   __gcry_mpi_mod_barrett($92,$92,$95);
+  }
+  $98 = ((($3)) + 80|0);
+  $99 = HEAP32[$98>>2]|0;
+  $100 = HEAP32[$21>>2]|0;
+  $101 = (__gcry_mpi_const(3)|0);
+  $$idx129$val$i = HEAP32[$$idx130$i>>2]|0;
+  __gcry_mpi_powm($99,$100,$101,$$idx129$val$i);
+  $102 = HEAP32[$98>>2]|0;
+  $103 = ((($2)) + 4|0);
+  $104 = HEAP32[$103>>2]|0;
+  __gcry_mpi_mul($102,$102,$104);
+  $105 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+  $106 = ($105|0)==(0|0);
+  if ($106) {
+   $107 = HEAP32[$$idx130$i>>2]|0;
+   __gcry_mpi_mod($102,$102,$107);
+  } else {
+   __gcry_mpi_mod_barrett($102,$102,$105);
+  }
+  $108 = ((($3)) + 84|0);
+  $109 = HEAP32[$108>>2]|0;
+  $110 = HEAP32[$88>>2]|0;
+  $111 = HEAP32[$98>>2]|0;
+  __gcry_mpi_sub($109,$110,$111);
+  $112 = HEAP32[$84>>2]|0;
+  $113 = (__gcry_mpi_cmp_ui($112,0)|0);
+  $114 = ($113|0)==(0);
+  if ($114) {
+   $115 = HEAP32[$108>>2]|0;
+   $116 = (__gcry_mpi_cmp_ui($115,0)|0);
+   $117 = ($116|0)==(0);
+   if ($117) {
+    __gcry_mpi_ec_dup_point($0,$1,$3);
+    STACKTOP = sp;return;
+   } else {
+    $118 = HEAP32[$0>>2]|0;
+    (__gcry_mpi_set_ui($118,1)|0);
+    $119 = ((($0)) + 4|0);
+    $120 = HEAP32[$119>>2]|0;
+    (__gcry_mpi_set_ui($120,1)|0);
+    $121 = ((($0)) + 8|0);
+    $122 = HEAP32[$121>>2]|0;
+    (__gcry_mpi_set_ui($122,0)|0);
+    STACKTOP = sp;return;
+   }
+  }
+  $123 = ((($3)) + 88|0);
+  $124 = HEAP32[$123>>2]|0;
+  $125 = HEAP32[$54>>2]|0;
+  $126 = HEAP32[$69>>2]|0;
+  __gcry_mpi_add($124,$125,$126);
+  $127 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+  $128 = ($127|0)==(0|0);
+  if ($128) {
+   $129 = HEAP32[$$idx130$i>>2]|0;
+   __gcry_mpi_mod($124,$124,$129);
+  } else {
+   __gcry_mpi_mod_barrett($124,$124,$127);
+  }
+  $130 = ((($3)) + 92|0);
+  $131 = HEAP32[$130>>2]|0;
+  $132 = HEAP32[$88>>2]|0;
+  $133 = HEAP32[$98>>2]|0;
+  __gcry_mpi_add($131,$132,$133);
+  $134 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+  $135 = ($134|0)==(0|0);
+  if ($135) {
+   $136 = HEAP32[$$idx130$i>>2]|0;
+   __gcry_mpi_mod($131,$131,$136);
+  } else {
+   __gcry_mpi_mod_barrett($131,$131,$134);
+  }
+  $137 = ((($0)) + 8|0);
+  $138 = HEAP32[$137>>2]|0;
+  $139 = HEAP32[$21>>2]|0;
+  $140 = HEAP32[$35>>2]|0;
+  __gcry_mpi_mul($138,$139,$140);
+  $141 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+  $142 = ($141|0)==(0|0);
+  if ($142) {
+   $143 = HEAP32[$$idx130$i>>2]|0;
+   __gcry_mpi_mod($138,$138,$143);
+  } else {
+   __gcry_mpi_mod_barrett($138,$138,$141);
+  }
+  $144 = HEAP32[$137>>2]|0;
+  $145 = HEAP32[$84>>2]|0;
+  __gcry_mpi_mul($144,$144,$145);
+  $146 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+  $147 = ($146|0)==(0|0);
+  if ($147) {
+   $148 = HEAP32[$$idx130$i>>2]|0;
+   __gcry_mpi_mod($144,$144,$148);
+  } else {
+   __gcry_mpi_mod_barrett($144,$144,$146);
+  }
+  $149 = ((($3)) + 100|0);
+  $150 = HEAP32[$149>>2]|0;
+  $151 = HEAP32[$108>>2]|0;
+  __gcry_mpi_mul($150,$151,$151);
+  $152 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+  $153 = ($152|0)==(0|0);
+  if ($153) {
+   $154 = HEAP32[$$idx130$i>>2]|0;
+   __gcry_mpi_mod($150,$150,$154);
+  } else {
+   __gcry_mpi_mod_barrett($150,$150,$152);
+  }
+  $155 = ((($3)) + 104|0);
+  $156 = HEAP32[$155>>2]|0;
+  $157 = HEAP32[$84>>2]|0;
+  __gcry_mpi_mul($156,$157,$157);
+  $158 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+  $159 = ($158|0)==(0|0);
+  if ($159) {
+   $160 = HEAP32[$$idx130$i>>2]|0;
+   __gcry_mpi_mod($156,$156,$160);
+  } else {
+   __gcry_mpi_mod_barrett($156,$156,$158);
+  }
+  $161 = HEAP32[$155>>2]|0;
+  $162 = HEAP32[$123>>2]|0;
+  __gcry_mpi_mul($161,$161,$162);
+  $163 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+  $164 = ($163|0)==(0|0);
+  if ($164) {
+   $165 = HEAP32[$$idx130$i>>2]|0;
+   __gcry_mpi_mod($161,$161,$165);
+  } else {
+   __gcry_mpi_mod_barrett($161,$161,$163);
+  }
+  $166 = HEAP32[$0>>2]|0;
+  $167 = HEAP32[$149>>2]|0;
+  $168 = HEAP32[$155>>2]|0;
+  __gcry_mpi_sub($166,$167,$168);
+  $169 = HEAP32[$149>>2]|0;
+  $170 = HEAP32[$0>>2]|0;
+  __gcry_mpi_lshift($169,$170,1);
+  $171 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+  $172 = ($171|0)==(0|0);
+  if ($172) {
+   $173 = HEAP32[$$idx130$i>>2]|0;
+   __gcry_mpi_mod($169,$169,$173);
+  } else {
+   __gcry_mpi_mod_barrett($169,$169,$171);
+  }
+  $174 = ((($3)) + 96|0);
+  $175 = HEAP32[$174>>2]|0;
+  $176 = HEAP32[$155>>2]|0;
+  $177 = HEAP32[$149>>2]|0;
+  __gcry_mpi_sub($175,$176,$177);
+  $178 = HEAP32[$174>>2]|0;
+  $179 = HEAP32[$108>>2]|0;
+  __gcry_mpi_mul($178,$178,$179);
+  $180 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+  $181 = ($180|0)==(0|0);
+  if ($181) {
+   $182 = HEAP32[$$idx130$i>>2]|0;
+   __gcry_mpi_mod($178,$178,$182);
+  } else {
+   __gcry_mpi_mod_barrett($178,$178,$180);
+  }
+  $183 = HEAP32[$149>>2]|0;
+  $184 = HEAP32[$84>>2]|0;
+  $185 = (__gcry_mpi_const(3)|0);
+  $$idx$val$i = HEAP32[$$idx130$i>>2]|0;
+  __gcry_mpi_powm($183,$184,$185,$$idx$val$i);
+  $186 = HEAP32[$149>>2]|0;
+  $187 = HEAP32[$130>>2]|0;
+  __gcry_mpi_mul($186,$186,$187);
+  $188 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+  $189 = ($188|0)==(0|0);
+  if ($189) {
+   $190 = HEAP32[$$idx130$i>>2]|0;
+   __gcry_mpi_mod($186,$186,$190);
+  } else {
+   __gcry_mpi_mod_barrett($186,$186,$188);
+  }
+  $191 = ((($0)) + 4|0);
+  $192 = HEAP32[$191>>2]|0;
+  $193 = HEAP32[$174>>2]|0;
+  $194 = HEAP32[$149>>2]|0;
+  __gcry_mpi_sub($192,$193,$194);
+  $195 = HEAP32[$191>>2]|0;
+  $196 = ((($3)) + 48|0);
+  $197 = HEAP8[$196>>0]|0;
+  $198 = $197 & 2;
+  $199 = ($198<<24>>24)==(0);
+  do {
+   if ($199) {
+    $200 = $197 | 2;
+    HEAP8[$196>>0] = $200;
+    $201 = ((($3)) + 56|0);
+    $202 = HEAP32[$201>>2]|0;
+    $203 = ($202|0)==(0|0);
+    if ($203) {
+     $204 = (__gcry_mpi_alloc(0)|0);
+     HEAP32[$201>>2] = $204;
+     $207 = $204;
+    } else {
+     $207 = $202;
+    }
+    $205 = (__gcry_mpi_const(2)|0);
+    $206 = HEAP32[$$idx130$i>>2]|0;
+    $208 = (__gcry_mpi_invm($207,$205,$206)|0);
+    $209 = ($208|0)==(0);
+    if (!($209)) {
+     $$pre$phi$i$iZ2D = $201;
+     break;
+    }
+    __gcry_log_error(63791,$vararg_buffer);
+    __gcry_log_printmpi(63825,$205);
+    $210 = HEAP32[$$idx130$i>>2]|0;
+    __gcry_log_printmpi(63829,$210);
+    $$pre$phi$i$iZ2D = $201;
+   } else {
+    $$pre$i$i = ((($3)) + 56|0);
+    $$pre$phi$i$iZ2D = $$pre$i$i;
+   }
+  } while(0);
+  $211 = HEAP32[$$pre$phi$i$iZ2D>>2]|0;
+  __gcry_mpi_mul($195,$195,$211);
+  $212 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+  $213 = ($212|0)==(0|0);
+  if ($213) {
+   $214 = HEAP32[$$idx130$i>>2]|0;
+   __gcry_mpi_mod($195,$195,$214);
+   STACKTOP = sp;return;
+  } else {
+   __gcry_mpi_mod_barrett($195,$195,$212);
+   STACKTOP = sp;return;
+  }
+  break;
+ }
+ case 1:  {
+  _add_points_montgomery();
+  // unreachable;
+  break;
+ }
+ case 2:  {
+  _add_points_edwards($0,$1,$2,$3);
+  STACKTOP = sp;return;
+  break;
+ }
+ default: {
+  STACKTOP = sp;return;
+ }
+ }
+}
+function _add_points_montgomery() {
+ var $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ HEAP32[$vararg_buffer>>2] = 63981;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = 63906;
+ __gcry_log_fatal(63932,$vararg_buffer);
+ // unreachable;
+}
+function _add_points_edwards($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 
= 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 
= 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0;
+ var $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;
+ var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $15 
= 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, 
$24 = 0, $25 = 0, $26 = 0, $27 = 0;
+ var $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;
+ var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, 
$62 = 0, $63 = 0, $64 = 0;
+ var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, 
$72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, 
$80 = 0, $81 = 0, $82 = 0;
+ var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, 
$90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 
0, $99 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = ((($3)) + 64|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = ((($1)) + 8|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ((($2)) + 8|0);
+ $9 = HEAP32[$8>>2]|0;
+ __gcry_mpi_mul($5,$7,$9);
+ $10 = ((($3)) + 60|0);
+ $11 = HEAP32[$10>>2]|0;
+ $12 = ($11|0)==(0|0);
+ if ($12) {
+  $13 = ((($3)) + 16|0);
+  $14 = HEAP32[$13>>2]|0;
+  __gcry_mpi_mod($5,$5,$14);
+ } else {
+  __gcry_mpi_mod_barrett($5,$5,$11);
+ }
+ $15 = ((($3)) + 68|0);
+ $16 = HEAP32[$15>>2]|0;
+ $17 = HEAP32[$4>>2]|0;
+ __gcry_mpi_mul($16,$17,$17);
+ $18 = HEAP32[$10>>2]|0;
+ $19 = ($18|0)==(0|0);
+ if ($19) {
+  $20 = ((($3)) + 16|0);
+  $21 = HEAP32[$20>>2]|0;
+  __gcry_mpi_mod($16,$16,$21);
+ } else {
+  __gcry_mpi_mod_barrett($16,$16,$18);
+ }
+ $22 = ((($3)) + 72|0);
+ $23 = HEAP32[$22>>2]|0;
+ $24 = HEAP32[$1>>2]|0;
+ $25 = HEAP32[$2>>2]|0;
+ __gcry_mpi_mul($23,$24,$25);
+ $26 = HEAP32[$10>>2]|0;
+ $27 = ($26|0)==(0|0);
+ if ($27) {
+  $28 = ((($3)) + 16|0);
+  $29 = HEAP32[$28>>2]|0;
+  __gcry_mpi_mod($23,$23,$29);
+ } else {
+  __gcry_mpi_mod_barrett($23,$23,$26);
+ }
+ $30 = ((($3)) + 76|0);
+ $31 = HEAP32[$30>>2]|0;
+ $32 = ((($1)) + 4|0);
+ $33 = HEAP32[$32>>2]|0;
+ $34 = ((($2)) + 4|0);
+ $35 = HEAP32[$34>>2]|0;
+ __gcry_mpi_mul($31,$33,$35);
+ $36 = HEAP32[$10>>2]|0;
+ $37 = ($36|0)==(0|0);
+ if ($37) {
+  $38 = ((($3)) + 16|0);
+  $39 = HEAP32[$38>>2]|0;
+  __gcry_mpi_mod($31,$31,$39);
+ } else {
+  __gcry_mpi_mod_barrett($31,$31,$36);
+ }
+ $40 = ((($3)) + 80|0);
+ $41 = HEAP32[$40>>2]|0;
+ $42 = ((($3)) + 24|0);
+ $43 = HEAP32[$42>>2]|0;
+ $44 = HEAP32[$22>>2]|0;
+ __gcry_mpi_mul($41,$43,$44);
+ $45 = HEAP32[$10>>2]|0;
+ $46 = ($45|0)==(0|0);
+ if ($46) {
+  $47 = ((($3)) + 16|0);
+  $48 = HEAP32[$47>>2]|0;
+  __gcry_mpi_mod($41,$41,$48);
+ } else {
+  __gcry_mpi_mod_barrett($41,$41,$45);
+ }
+ $49 = HEAP32[$40>>2]|0;
+ $50 = HEAP32[$30>>2]|0;
+ __gcry_mpi_mul($49,$49,$50);
+ $51 = HEAP32[$10>>2]|0;
+ $52 = ($51|0)==(0|0);
+ if ($52) {
+  $53 = ((($3)) + 16|0);
+  $54 = HEAP32[$53>>2]|0;
+  __gcry_mpi_mod($49,$49,$54);
+ } else {
+  __gcry_mpi_mod_barrett($49,$49,$51);
+ }
+ $55 = ((($3)) + 84|0);
+ $56 = HEAP32[$55>>2]|0;
+ $57 = HEAP32[$15>>2]|0;
+ $58 = HEAP32[$40>>2]|0;
+ __gcry_mpi_sub($56,$57,$58);
+ $59 = ((($3)) + 88|0);
+ $60 = HEAP32[$59>>2]|0;
+ $61 = HEAP32[$15>>2]|0;
+ $62 = HEAP32[$40>>2]|0;
+ __gcry_mpi_add($60,$61,$62);
+ $63 = HEAP32[$10>>2]|0;
+ $64 = ($63|0)==(0|0);
+ if ($64) {
+  $65 = ((($3)) + 16|0);
+  $66 = HEAP32[$65>>2]|0;
+  __gcry_mpi_mod($60,$60,$66);
+ } else {
+  __gcry_mpi_mod_barrett($60,$60,$63);
+ }
+ $67 = ((($3)) + 92|0);
+ $68 = HEAP32[$67>>2]|0;
+ $69 = HEAP32[$1>>2]|0;
+ $70 = HEAP32[$32>>2]|0;
+ __gcry_mpi_add($68,$69,$70);
+ $71 = HEAP32[$10>>2]|0;
+ $72 = ($71|0)==(0|0);
+ if ($72) {
+  $73 = ((($3)) + 16|0);
+  $74 = HEAP32[$73>>2]|0;
+  __gcry_mpi_mod($68,$68,$74);
+ } else {
+  __gcry_mpi_mod_barrett($68,$68,$71);
+ }
+ $75 = HEAP32[$0>>2]|0;
+ $76 = HEAP32[$2>>2]|0;
+ $77 = HEAP32[$34>>2]|0;
+ __gcry_mpi_add($75,$76,$77);
+ $78 = HEAP32[$10>>2]|0;
+ $79 = ($78|0)==(0|0);
+ if ($79) {
+  $80 = ((($3)) + 16|0);
+  $81 = HEAP32[$80>>2]|0;
+  __gcry_mpi_mod($75,$75,$81);
+ } else {
+  __gcry_mpi_mod_barrett($75,$75,$78);
+ }
+ $82 = HEAP32[$0>>2]|0;
+ $83 = HEAP32[$67>>2]|0;
+ __gcry_mpi_mul($82,$82,$83);
+ $84 = HEAP32[$10>>2]|0;
+ $85 = ($84|0)==(0|0);
+ if ($85) {
+  $86 = ((($3)) + 16|0);
+  $87 = HEAP32[$86>>2]|0;
+  __gcry_mpi_mod($82,$82,$87);
+ } else {
+  __gcry_mpi_mod_barrett($82,$82,$84);
+ }
+ $88 = HEAP32[$0>>2]|0;
+ $89 = HEAP32[$22>>2]|0;
+ __gcry_mpi_sub($88,$88,$89);
+ $90 = HEAP32[$0>>2]|0;
+ $91 = HEAP32[$30>>2]|0;
+ __gcry_mpi_sub($90,$90,$91);
+ $92 = HEAP32[$0>>2]|0;
+ $93 = HEAP32[$55>>2]|0;
+ __gcry_mpi_mul($92,$92,$93);
+ $94 = HEAP32[$10>>2]|0;
+ $95 = ($94|0)==(0|0);
+ if ($95) {
+  $96 = ((($3)) + 16|0);
+  $97 = HEAP32[$96>>2]|0;
+  __gcry_mpi_mod($92,$92,$97);
+ } else {
+  __gcry_mpi_mod_barrett($92,$92,$94);
+ }
+ $98 = HEAP32[$0>>2]|0;
+ $99 = HEAP32[$4>>2]|0;
+ __gcry_mpi_mul($98,$98,$99);
+ $100 = HEAP32[$10>>2]|0;
+ $101 = ($100|0)==(0|0);
+ if ($101) {
+  $102 = ((($3)) + 16|0);
+  $103 = HEAP32[$102>>2]|0;
+  __gcry_mpi_mod($98,$98,$103);
+ } else {
+  __gcry_mpi_mod_barrett($98,$98,$100);
+ }
+ $104 = ((($3)) + 4|0);
+ $105 = HEAP32[$104>>2]|0;
+ $106 = ($105|0)==(1);
+ $107 = ((($0)) + 4|0);
+ $108 = HEAP32[$107>>2]|0;
+ if ($106) {
+  $109 = HEAP32[$22>>2]|0;
+  (__gcry_mpi_set($108,$109)|0);
+  $110 = HEAP32[$107>>2]|0;
+  __gcry_mpi_neg($110,$110);
+  $111 = HEAP32[$107>>2]|0;
+  $112 = HEAP32[$30>>2]|0;
+  __gcry_mpi_sub($111,$112,$111);
+ } else {
+  $113 = ((($3)) + 20|0);
+  $114 = HEAP32[$113>>2]|0;
+  $115 = HEAP32[$22>>2]|0;
+  __gcry_mpi_mul($108,$114,$115);
+  $116 = HEAP32[$10>>2]|0;
+  $117 = ($116|0)==(0|0);
+  if ($117) {
+   $118 = ((($3)) + 16|0);
+   $119 = HEAP32[$118>>2]|0;
+   __gcry_mpi_mod($108,$108,$119);
+  } else {
+   __gcry_mpi_mod_barrett($108,$108,$116);
+  }
+  $120 = HEAP32[$107>>2]|0;
+  $121 = HEAP32[$30>>2]|0;
+  __gcry_mpi_sub($120,$121,$120);
+ }
+ $122 = HEAP32[$107>>2]|0;
+ $123 = HEAP32[$59>>2]|0;
+ __gcry_mpi_mul($122,$122,$123);
+ $124 = HEAP32[$10>>2]|0;
+ $125 = ($124|0)==(0|0);
+ if ($125) {
+  $126 = ((($3)) + 16|0);
+  $127 = HEAP32[$126>>2]|0;
+  __gcry_mpi_mod($122,$122,$127);
+ } else {
+  __gcry_mpi_mod_barrett($122,$122,$124);
+ }
+ $128 = HEAP32[$107>>2]|0;
+ $129 = HEAP32[$4>>2]|0;
+ __gcry_mpi_mul($128,$128,$129);
+ $130 = HEAP32[$10>>2]|0;
+ $131 = ($130|0)==(0|0);
+ if ($131) {
+  $132 = ((($3)) + 16|0);
+  $133 = HEAP32[$132>>2]|0;
+  __gcry_mpi_mod($128,$128,$133);
+ } else {
+  __gcry_mpi_mod_barrett($128,$128,$130);
+ }
+ $134 = ((($0)) + 8|0);
+ $135 = HEAP32[$134>>2]|0;
+ $136 = HEAP32[$55>>2]|0;
+ $137 = HEAP32[$59>>2]|0;
+ __gcry_mpi_mul($135,$136,$137);
+ $138 = HEAP32[$10>>2]|0;
+ $139 = ($138|0)==(0|0);
+ if ($139) {
+  $140 = ((($3)) + 16|0);
+  $141 = HEAP32[$140>>2]|0;
+  __gcry_mpi_mod($135,$135,$141);
+  return;
+ } else {
+  __gcry_mpi_mod_barrett($135,$135,$138);
+  return;
+ }
+}
+function __gcry_mpi_ec_mul_point($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0207234 = 0, $$0207234$phi = 0, $$0208233 = 0, $$0208233$phi = 0, 
$$0209232 = 0, $$0209232$phi = 0, $$0210 = 0, $$0210231 = 0, $$0210236 = 0, 
$$0211221 = 0, $$0212 = 0, $$0212226 = 0, $$0212227 = 0, $$0213 = 0, $$0235 = 
0, $$0235$phi = 0, $$1 = 0, $$1222 = 0, $$1223 = 0, $10 = 0;
+ var $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, 
$107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, 
$114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0;
+ var $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, $136 = 0;
+ var $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 
= 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 
= 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0;
+ var $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 
= 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 
= 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0;
+ var $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 
= 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 
= 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0;
+ var $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, 
$198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, 
$205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0;
+ var $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 
= 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 
= 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0;
+ var $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 
= 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 
= 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0;
+ var $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 
= 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 
= 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0;
+ var $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;
+ var $282 = 0, $283 = 0, $284 = 0, $285 = 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;
+ var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, 
$51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 
0, $6 = 0, $60 = 0, $61 = 0;
+ var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, 
$7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, 
$78 = 0, $79 = 0, $8 = 0;
+ var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, 
$88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, 
$96 = 0, $97 = 0, $98 = 0;
+ var $99 = 0, $phitmp = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, 
$vararg_buffer3 = 0, $vararg_buffer5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(112|0);
+ $vararg_buffer5 = sp + 24|0;
+ $vararg_buffer3 = sp + 16|0;
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $4 = sp + 88|0;
+ $5 = sp + 76|0;
+ $6 = sp + 64|0;
+ $7 = sp + 52|0;
+ $8 = sp + 40|0;
+ $9 = sp + 28|0;
+ $10 = HEAP32[$3>>2]|0;
+ switch ($10|0) {
+ case 2:  {
+  $11 = (__gcry_mpi_get_nbits($1)|0);
+  $12 = HEAP32[$0>>2]|0;
+  (__gcry_mpi_set_ui($12,0)|0);
+  $13 = ((($0)) + 4|0);
+  $14 = HEAP32[$13>>2]|0;
+  (__gcry_mpi_set_ui($14,1)|0);
+  $15 = ((($0)) + 8|0);
+  $16 = HEAP32[$15>>2]|0;
+  (__gcry_mpi_set_ui($16,1)|0);
+  $17 = ($1|0)==(0|0);
+  if (!($17)) {
+   $18 = ((($1)) + 12|0);
+   $19 = HEAP32[$18>>2]|0;
+   $20 = $19 & 1;
+   $21 = ($20|0)==(0);
+   if (!($21)) {
+    $22 = (__gcry_mpi_new(0)|0);
+    HEAP32[$7>>2] = $22;
+    $23 = (__gcry_mpi_new(0)|0);
+    $24 = ((($7)) + 4|0);
+    HEAP32[$24>>2] = $23;
+    $25 = (__gcry_mpi_new(0)|0);
+    $26 = ((($7)) + 8|0);
+    HEAP32[$26>>2] = $25;
+    $$0212226 = (($11) + -1)|0;
+    $27 = ($$0212226|0)>(-1);
+    if ($27) {
+     $$0212227 = $$0212226;
+     while(1) {
+      __gcry_mpi_ec_dup_point($0,$0,$3);
+      __gcry_mpi_ec_add_points($7,$0,$2,$3);
+      $28 = (__gcry_mpi_test_bit($1,$$0212227)|0);
+      $29 = ($28|0)==(0);
+      if (!($29)) {
+       $30 = HEAP32[$0>>2]|0;
+       (__gcry_mpi_set($30,$22)|0);
+       $31 = HEAP32[$13>>2]|0;
+       (__gcry_mpi_set($31,$23)|0);
+       $32 = HEAP32[$15>>2]|0;
+       (__gcry_mpi_set($32,$25)|0);
+      }
+      $$0212 = (($$0212227) + -1)|0;
+      $33 = ($$0212|0)>(-1);
+      if ($33) {
+       $$0212227 = $$0212;
+      } else {
+       break;
+      }
+     }
+    }
+    __gcry_mpi_free($22);
+    __gcry_mpi_free($23);
+    __gcry_mpi_free($25);
+    STACKTOP = sp;return;
+   }
+  }
+  $$1222 = (($11) + -1)|0;
+  $34 = ($$1222|0)>(-1);
+  if (!($34)) {
+   STACKTOP = sp;return;
+  }
+  $$1223 = $$1222;
+  while(1) {
+   __gcry_mpi_ec_dup_point($0,$0,$3);
+   $35 = (__gcry_mpi_test_bit($1,$$1223)|0);
+   $36 = ($35|0)==(0);
+   if (!($36)) {
+    __gcry_mpi_ec_add_points($0,$0,$2,$3);
+   }
+   $$1 = (($$1223) + -1)|0;
+   $37 = ($$1|0)>(-1);
+   if ($37) {
+    $$1223 = $$1;
+   } else {
+    break;
+   }
+  }
+  STACKTOP = sp;return;
+  break;
+ }
+ case 1:  {
+  $38 = (__gcry_mpi_get_nbits($1)|0);
+  $39 = (__gcry_mpi_new(0)|0);
+  HEAP32[$4>>2] = $39;
+  $40 = (__gcry_mpi_new(0)|0);
+  $41 = ((($4)) + 4|0);
+  HEAP32[$41>>2] = $40;
+  $42 = (__gcry_mpi_new(0)|0);
+  $43 = ((($4)) + 8|0);
+  HEAP32[$43>>2] = $42;
+  $44 = (__gcry_mpi_new(0)|0);
+  $45 = (__gcry_mpi_new(0)|0);
+  $46 = ((($5)) + 4|0);
+  HEAP32[$46>>2] = $45;
+  $47 = (__gcry_mpi_new(0)|0);
+  $48 = ((($5)) + 8|0);
+  HEAP32[$48>>2] = $47;
+  $49 = (__gcry_mpi_new(0)|0);
+  HEAP32[$8>>2] = $49;
+  $50 = (__gcry_mpi_new(0)|0);
+  $51 = ((($8)) + 4|0);
+  HEAP32[$51>>2] = $50;
+  $52 = (__gcry_mpi_new(0)|0);
+  $53 = ((($8)) + 8|0);
+  HEAP32[$53>>2] = $52;
+  $54 = (__gcry_mpi_new(0)|0);
+  HEAP32[$9>>2] = $54;
+  $55 = (__gcry_mpi_new(0)|0);
+  $56 = ((($9)) + 4|0);
+  HEAP32[$56>>2] = $55;
+  $57 = (__gcry_mpi_new(0)|0);
+  $58 = ((($9)) + 8|0);
+  HEAP32[$58>>2] = $57;
+  (__gcry_mpi_set_ui($39,1)|0);
+  __gcry_mpi_free($44);
+  $59 = HEAP32[$2>>2]|0;
+  $60 = (__gcry_mpi_copy($59)|0);
+  HEAP32[$5>>2] = $60;
+  (__gcry_mpi_set_ui($47,1)|0);
+  $61 = $38 << 1;
+  $62 = (($61) + 62)|0;
+  $63 = $62 >>> 5;
+  $64 = (($63) + 1)|0;
+  __gcry_mpi_resize($39,$64);
+  __gcry_mpi_resize($42,$64);
+  __gcry_mpi_resize($60,$64);
+  __gcry_mpi_resize($47,$64);
+  __gcry_mpi_resize($49,$64);
+  __gcry_mpi_resize($52,$64);
+  __gcry_mpi_resize($54,$64);
+  __gcry_mpi_resize($57,$64);
+  $$0210231 = (($38) + -1)|0;
+  $65 = ($$0210231|0)>(-1);
+  if ($65) {
+   $66 = ((($3)) + 60|0);
+   $67 = ((($3)) + 16|0);
+   $68 = ((($3)) + 20|0);
+   $$0207234 = $8;$$0208233 = $5;$$0209232 = $4;$$0210236 = $$0210231;$$0235 = 
$9;
+   while(1) {
+    $69 = (__gcry_mpi_test_bit($1,$$0210236)|0);
+    $70 = HEAP32[$$0209232>>2]|0;
+    $71 = HEAP32[$$0208233>>2]|0;
+    __gcry_mpi_swap_cond($70,$71,$69);
+    $72 = ((($$0209232)) + 8|0);
+    $73 = HEAP32[$72>>2]|0;
+    $74 = ((($$0208233)) + 8|0);
+    $75 = HEAP32[$74>>2]|0;
+    __gcry_mpi_swap_cond($73,$75,$69);
+    $76 = HEAP32[$2>>2]|0;
+    $77 = HEAP32[$$0235>>2]|0;
+    $78 = HEAP32[$$0208233>>2]|0;
+    $79 = HEAP32[$74>>2]|0;
+    __gcry_mpi_add($77,$78,$79);
+    $80 = HEAP32[$66>>2]|0;
+    $81 = ($80|0)==(0|0);
+    if ($81) {
+     $82 = HEAP32[$67>>2]|0;
+     __gcry_mpi_mod($77,$77,$82);
+    } else {
+     __gcry_mpi_mod_barrett($77,$77,$80);
+    }
+    $83 = HEAP32[$74>>2]|0;
+    $84 = HEAP32[$$0208233>>2]|0;
+    __gcry_mpi_sub($83,$84,$83);
+    $85 = HEAP32[$$0207234>>2]|0;
+    $86 = HEAP32[$$0209232>>2]|0;
+    $87 = HEAP32[$72>>2]|0;
+    __gcry_mpi_add($85,$86,$87);
+    $88 = HEAP32[$66>>2]|0;
+    $89 = ($88|0)==(0|0);
+    if ($89) {
+     $90 = HEAP32[$67>>2]|0;
+     __gcry_mpi_mod($85,$85,$90);
+    } else {
+     __gcry_mpi_mod_barrett($85,$85,$88);
+    }
+    $91 = HEAP32[$72>>2]|0;
+    $92 = HEAP32[$$0209232>>2]|0;
+    __gcry_mpi_sub($91,$92,$91);
+    $93 = HEAP32[$$0208233>>2]|0;
+    $94 = HEAP32[$72>>2]|0;
+    $95 = HEAP32[$$0235>>2]|0;
+    __gcry_mpi_mul($93,$94,$95);
+    $96 = HEAP32[$66>>2]|0;
+    $97 = ($96|0)==(0|0);
+    if ($97) {
+     $98 = HEAP32[$67>>2]|0;
+     __gcry_mpi_mod($93,$93,$98);
+    } else {
+     __gcry_mpi_mod_barrett($93,$93,$96);
+    }
+    $99 = HEAP32[$74>>2]|0;
+    $100 = HEAP32[$$0207234>>2]|0;
+    __gcry_mpi_mul($99,$100,$99);
+    $101 = HEAP32[$66>>2]|0;
+    $102 = ($101|0)==(0|0);
+    if ($102) {
+     $103 = HEAP32[$67>>2]|0;
+     __gcry_mpi_mod($99,$99,$103);
+    } else {
+     __gcry_mpi_mod_barrett($99,$99,$101);
+    }
+    $104 = HEAP32[$$0209232>>2]|0;
+    $105 = HEAP32[$$0207234>>2]|0;
+    __gcry_mpi_mul($104,$105,$105);
+    $106 = HEAP32[$66>>2]|0;
+    $107 = ($106|0)==(0|0);
+    if ($107) {
+     $108 = HEAP32[$67>>2]|0;
+     __gcry_mpi_mod($104,$104,$108);
+    } else {
+     __gcry_mpi_mod_barrett($104,$104,$106);
+    }
+    $109 = HEAP32[$72>>2]|0;
+    __gcry_mpi_mul($109,$109,$109);
+    $110 = HEAP32[$66>>2]|0;
+    $111 = ($110|0)==(0|0);
+    if ($111) {
+     $112 = HEAP32[$67>>2]|0;
+     __gcry_mpi_mod($109,$109,$112);
+    } else {
+     __gcry_mpi_mod_barrett($109,$109,$110);
+    }
+    $113 = HEAP32[$$0235>>2]|0;
+    $114 = HEAP32[$$0208233>>2]|0;
+    $115 = HEAP32[$74>>2]|0;
+    __gcry_mpi_add($113,$114,$115);
+    $116 = HEAP32[$66>>2]|0;
+    $117 = ($116|0)==(0|0);
+    if ($117) {
+     $118 = HEAP32[$67>>2]|0;
+     __gcry_mpi_mod($113,$113,$118);
+    } else {
+     __gcry_mpi_mod_barrett($113,$113,$116);
+    }
+    $119 = HEAP32[$74>>2]|0;
+    $120 = HEAP32[$$0208233>>2]|0;
+    __gcry_mpi_sub($119,$120,$119);
+    $121 = HEAP32[$$0207234>>2]|0;
+    $122 = HEAP32[$$0209232>>2]|0;
+    $123 = HEAP32[$72>>2]|0;
+    __gcry_mpi_mul($121,$122,$123);
+    $124 = HEAP32[$66>>2]|0;
+    $125 = ($124|0)==(0|0);
+    if ($125) {
+     $126 = HEAP32[$67>>2]|0;
+     __gcry_mpi_mod($121,$121,$126);
+    } else {
+     __gcry_mpi_mod_barrett($121,$121,$124);
+    }
+    $127 = HEAP32[$72>>2]|0;
+    $128 = HEAP32[$$0209232>>2]|0;
+    __gcry_mpi_sub($127,$128,$127);
+    $129 = HEAP32[$$0235>>2]|0;
+    __gcry_mpi_mul($129,$129,$129);
+    $130 = HEAP32[$66>>2]|0;
+    $131 = ($130|0)==(0|0);
+    if ($131) {
+     $132 = HEAP32[$67>>2]|0;
+     __gcry_mpi_mod($129,$129,$132);
+    } else {
+     __gcry_mpi_mod_barrett($129,$129,$130);
+    }
+    $133 = ((($$0235)) + 8|0);
+    $134 = HEAP32[$133>>2]|0;
+    $135 = HEAP32[$74>>2]|0;
+    __gcry_mpi_mul($134,$135,$135);
+    $136 = HEAP32[$66>>2]|0;
+    $137 = ($136|0)==(0|0);
+    if ($137) {
+     $138 = HEAP32[$67>>2]|0;
+     __gcry_mpi_mod($134,$134,$138);
+    } else {
+     __gcry_mpi_mod_barrett($134,$134,$136);
+    }
+    $139 = ((($$0207234)) + 8|0);
+    $140 = HEAP32[$139>>2]|0;
+    $141 = HEAP32[$72>>2]|0;
+    $142 = HEAP32[$68>>2]|0;
+    __gcry_mpi_mul($140,$141,$142);
+    $143 = HEAP32[$66>>2]|0;
+    $144 = ($143|0)==(0|0);
+    if ($144) {
+     $145 = HEAP32[$67>>2]|0;
+     __gcry_mpi_mod($140,$140,$145);
+    } else {
+     __gcry_mpi_mod_barrett($140,$140,$143);
+    }
+    $146 = HEAP32[$133>>2]|0;
+    __gcry_mpi_mul($146,$146,$76);
+    $147 = HEAP32[$66>>2]|0;
+    $148 = ($147|0)==(0|0);
+    if ($148) {
+     $149 = HEAP32[$67>>2]|0;
+     __gcry_mpi_mod($146,$146,$149);
+    } else {
+     __gcry_mpi_mod_barrett($146,$146,$147);
+    }
+    $150 = HEAP32[$139>>2]|0;
+    $151 = HEAP32[$$0209232>>2]|0;
+    __gcry_mpi_add($150,$151,$150);
+    $152 = HEAP32[$66>>2]|0;
+    $153 = ($152|0)==(0|0);
+    if ($153) {
+     $154 = HEAP32[$67>>2]|0;
+     __gcry_mpi_mod($150,$150,$154);
+    } else {
+     __gcry_mpi_mod_barrett($150,$150,$152);
+    }
+    $155 = HEAP32[$139>>2]|0;
+    $156 = HEAP32[$72>>2]|0;
+    __gcry_mpi_mul($155,$155,$156);
+    $157 = HEAP32[$66>>2]|0;
+    $158 = ($157|0)==(0|0);
+    if ($158) {
+     $159 = HEAP32[$67>>2]|0;
+     __gcry_mpi_mod($155,$155,$159);
+    } else {
+     __gcry_mpi_mod_barrett($155,$155,$157);
+    }
+    $160 = HEAP32[$$0207234>>2]|0;
+    $161 = HEAP32[$$0235>>2]|0;
+    __gcry_mpi_swap_cond($160,$161,$69);
+    $162 = HEAP32[$139>>2]|0;
+    $163 = HEAP32[$133>>2]|0;
+    __gcry_mpi_swap_cond($162,$163,$69);
+    $$0210 = (($$0210236) + -1)|0;
+    $164 = ($$0210|0)>(-1);
+    if ($164) {
+     $$0235$phi = $$0208233;$$0209232$phi = $$0207234;$$0208233$phi = 
$$0235;$$0207234$phi = $$0209232;$$0210236 = $$0210;$$0235 = 
$$0235$phi;$$0209232 = $$0209232$phi;$$0208233 = $$0208233$phi;$$0207234 = 
$$0207234$phi;
+    } else {
+     break;
+    }
+   }
+  }
+  $165 = ((($0)) + 4|0);
+  $166 = HEAP32[$165>>2]|0;
+  __gcry_mpi_clear($166);
+  $167 = $38 & 1;
+  __gcry_mpi_swap_cond($39,$49,$167);
+  __gcry_mpi_swap_cond($42,$52,$167);
+  $168 = ((($42)) + 4|0);
+  $169 = HEAP32[$168>>2]|0;
+  $170 = ($169|0)==(0);
+  if ($170) {
+   $171 = HEAP32[$0>>2]|0;
+   (__gcry_mpi_set_ui($171,1)|0);
+   $172 = ((($0)) + 8|0);
+   $173 = HEAP32[$172>>2]|0;
+   (__gcry_mpi_set_ui($173,0)|0);
+  } else {
+   $174 = (__gcry_mpi_new(0)|0);
+   $175 = ((($3)) + 16|0);
+   $176 = HEAP32[$175>>2]|0;
+   $177 = (__gcry_mpi_invm($174,$42,$176)|0);
+   $178 = ($177|0)==(0);
+   if ($178) {
+    __gcry_log_error(63791,$vararg_buffer);
+    __gcry_log_printmpi(63825,$42);
+    $179 = HEAP32[$175>>2]|0;
+    __gcry_log_printmpi(63829,$179);
+   }
+   $180 = HEAP32[$0>>2]|0;
+   __gcry_mpi_mul($180,$39,$174);
+   $181 = ((($3)) + 60|0);
+   $182 = HEAP32[$181>>2]|0;
+   $183 = ($182|0)==(0|0);
+   if ($183) {
+    $184 = HEAP32[$175>>2]|0;
+    __gcry_mpi_mod($180,$180,$184);
+   } else {
+    __gcry_mpi_mod_barrett($180,$180,$182);
+   }
+   $185 = ((($0)) + 8|0);
+   $186 = HEAP32[$185>>2]|0;
+   (__gcry_mpi_set_ui($186,1)|0);
+   __gcry_mpi_free($174);
+  }
+  __gcry_mpi_free($39);
+  HEAP32[$4>>2] = 0;
+  __gcry_mpi_free($40);
+  HEAP32[$41>>2] = 0;
+  __gcry_mpi_free($42);
+  HEAP32[$43>>2] = 0;
+  __gcry_mpi_free($60);
+  HEAP32[$5>>2] = 0;
+  __gcry_mpi_free($45);
+  HEAP32[$46>>2] = 0;
+  __gcry_mpi_free($47);
+  HEAP32[$48>>2] = 0;
+  __gcry_mpi_free($49);
+  __gcry_mpi_free($50);
+  __gcry_mpi_free($52);
+  __gcry_mpi_free($54);
+  __gcry_mpi_free($55);
+  __gcry_mpi_free($57);
+  STACKTOP = sp;return;
+  break;
+ }
+ default: {
+  $187 = ((($3)) + 16|0);
+  $188 = HEAP32[$187>>2]|0;
+  $189 = (__gcry_mpi_alloc_like($188)|0);
+  $190 = HEAP32[$187>>2]|0;
+  $191 = (__gcry_mpi_alloc_like($190)|0);
+  $192 = HEAP32[$187>>2]|0;
+  $193 = (__gcry_mpi_alloc_like($192)|0);
+  $194 = (__gcry_mpi_copy($1)|0);
+  $195 = ((($2)) + 4|0);
+  $196 = HEAP32[$195>>2]|0;
+  $197 = (__gcry_mpi_copy($196)|0);
+  $198 = ((($194)) + 8|0);
+  $199 = HEAP32[$198>>2]|0;
+  $200 = ($199|0)==(0);
+  if (!($200)) {
+   HEAP32[$198>>2] = 0;
+   $201 = HEAP32[$187>>2]|0;
+   $202 = (__gcry_mpi_invm($197,$197,$201)|0);
+   $203 = ($202|0)==(0);
+   if ($203) {
+    __gcry_log_error(63791,$vararg_buffer1);
+    __gcry_log_printmpi(63825,$197);
+    $204 = HEAP32[$187>>2]|0;
+    __gcry_log_printmpi(63829,$204);
+   }
+  }
+  $205 = ((($2)) + 8|0);
+  $206 = HEAP32[$205>>2]|0;
+  $207 = (__gcry_mpi_cmp_ui($206,1)|0);
+  $208 = ($207|0)==(0);
+  if ($208) {
+   $209 = HEAP32[$2>>2]|0;
+   (__gcry_mpi_set($189,$209)|0);
+   (__gcry_mpi_set($191,$197)|0);
+  } else {
+   $210 = HEAP32[$187>>2]|0;
+   $211 = (__gcry_mpi_alloc_like($210)|0);
+   $212 = HEAP32[$187>>2]|0;
+   $213 = (__gcry_mpi_alloc_like($212)|0);
+   $214 = HEAP32[$205>>2]|0;
+   __gcry_mpi_mul($211,$214,$214);
+   $215 = ((($3)) + 60|0);
+   $216 = HEAP32[$215>>2]|0;
+   $217 = ($216|0)==(0|0);
+   if ($217) {
+    $218 = HEAP32[$187>>2]|0;
+    __gcry_mpi_mod($211,$211,$218);
+   } else {
+    __gcry_mpi_mod_barrett($211,$211,$216);
+   }
+   $219 = HEAP32[$205>>2]|0;
+   __gcry_mpi_mul($213,$219,$211);
+   $220 = HEAP32[$215>>2]|0;
+   $221 = ($220|0)==(0|0);
+   if ($221) {
+    $222 = HEAP32[$187>>2]|0;
+    __gcry_mpi_mod($213,$213,$222);
+   } else {
+    __gcry_mpi_mod_barrett($213,$213,$220);
+   }
+   $223 = HEAP32[$187>>2]|0;
+   $224 = (__gcry_mpi_invm($211,$211,$223)|0);
+   $225 = ($224|0)==(0);
+   if ($225) {
+    __gcry_log_error(63791,$vararg_buffer3);
+    __gcry_log_printmpi(63825,$211);
+    $226 = HEAP32[$187>>2]|0;
+    __gcry_log_printmpi(63829,$226);
+   }
+   $227 = HEAP32[$2>>2]|0;
+   __gcry_mpi_mul($189,$227,$211);
+   $228 = HEAP32[$215>>2]|0;
+   $229 = ($228|0)==(0|0);
+   if ($229) {
+    $230 = HEAP32[$187>>2]|0;
+    __gcry_mpi_mod($189,$189,$230);
+   } else {
+    __gcry_mpi_mod_barrett($189,$189,$228);
+   }
+   $231 = HEAP32[$187>>2]|0;
+   $232 = (__gcry_mpi_invm($213,$213,$231)|0);
+   $233 = ($232|0)==(0);
+   if ($233) {
+    __gcry_log_error(63791,$vararg_buffer5);
+    __gcry_log_printmpi(63825,$213);
+    $234 = HEAP32[$187>>2]|0;
+    __gcry_log_printmpi(63829,$234);
+   }
+   __gcry_mpi_mul($191,$197,$213);
+   $235 = HEAP32[$215>>2]|0;
+   $236 = ($235|0)==(0|0);
+   if ($236) {
+    $237 = HEAP32[$187>>2]|0;
+    __gcry_mpi_mod($191,$191,$237);
+   } else {
+    __gcry_mpi_mod_barrett($191,$191,$235);
+   }
+   __gcry_mpi_free($211);
+   __gcry_mpi_free($213);
+  }
+  $238 = (__gcry_mpi_const(1)|0);
+  $239 = (__gcry_mpi_copy($238)|0);
+  $240 = (__gcry_mpi_const(3)|0);
+  __gcry_mpi_mul($193,$194,$240);
+  $241 = (__gcry_mpi_get_nbits($193)|0);
+  $242 = ($241>>>0)<(2);
+  $243 = HEAP32[$0>>2]|0;
+  if ($242) {
+   __gcry_mpi_clear($243);
+   $244 = ((($0)) + 4|0);
+   $245 = HEAP32[$244>>2]|0;
+   __gcry_mpi_clear($245);
+   $246 = ((($0)) + 8|0);
+   $247 = HEAP32[$246>>2]|0;
+   __gcry_mpi_clear($247);
+   $$0213 = 0;
+  } else {
+   $248 = HEAP32[$2>>2]|0;
+   (__gcry_mpi_set($243,$248)|0);
+   $249 = ((($0)) + 4|0);
+   $250 = HEAP32[$249>>2]|0;
+   (__gcry_mpi_set($250,$197)|0);
+   $251 = ((($0)) + 8|0);
+   $252 = HEAP32[$251>>2]|0;
+   $253 = HEAP32[$205>>2]|0;
+   (__gcry_mpi_set($252,$253)|0);
+   $phitmp = (($241) + -2)|0;
+   $$0213 = $phitmp;
+  }
+  __gcry_mpi_free($197);
+  HEAP32[$4>>2] = $189;
+  $254 = ((($4)) + 4|0);
+  HEAP32[$254>>2] = $191;
+  $255 = ((($4)) + 8|0);
+  HEAP32[$255>>2] = $239;
+  $256 = (__gcry_mpi_new(0)|0);
+  HEAP32[$5>>2] = $256;
+  $257 = (__gcry_mpi_new(0)|0);
+  $258 = ((($5)) + 4|0);
+  HEAP32[$258>>2] = $257;
+  $259 = (__gcry_mpi_new(0)|0);
+  $260 = ((($5)) + 8|0);
+  HEAP32[$260>>2] = $259;
+  $261 = (__gcry_mpi_new(0)|0);
+  HEAP32[$6>>2] = $261;
+  $262 = (__gcry_mpi_new(0)|0);
+  $263 = ((($6)) + 4|0);
+  HEAP32[$263>>2] = $262;
+  $264 = (__gcry_mpi_new(0)|0);
+  $265 = ((($6)) + 8|0);
+  HEAP32[$265>>2] = $264;
+  $266 = ($$0213|0)==(0);
+  if (!($266)) {
+   $267 = ((($0)) + 4|0);
+   $268 = ((($0)) + 8|0);
+   $$0211221 = $$0213;
+   while(1) {
+    __gcry_mpi_ec_dup_point($0,$0,$3);
+    $269 = (__gcry_mpi_test_bit($193,$$0211221)|0);
+    $270 = ($269|0)==(1);
+    if ($270) {
+     $271 = (__gcry_mpi_test_bit($194,$$0211221)|0);
+     $272 = ($271|0)==(0);
+     if ($272) {
+      $273 = HEAP32[$0>>2]|0;
+      (__gcry_mpi_set($256,$273)|0);
+      $274 = HEAP32[$267>>2]|0;
+      (__gcry_mpi_set($257,$274)|0);
+      $275 = HEAP32[$268>>2]|0;
+      (__gcry_mpi_set($259,$275)|0);
+      __gcry_mpi_ec_add_points($0,$5,$4,$3);
+     }
+    }
+    $276 = (__gcry_mpi_test_bit($193,$$0211221)|0);
+    $277 = ($276|0)==(0);
+    if ($277) {
+     $278 = (__gcry_mpi_test_bit($194,$$0211221)|0);
+     $279 = ($278|0)==(1);
+     if ($279) {
+      $280 = HEAP32[$0>>2]|0;
+      (__gcry_mpi_set($256,$280)|0);
+      $281 = HEAP32[$267>>2]|0;
+      (__gcry_mpi_set($257,$281)|0);
+      $282 = HEAP32[$268>>2]|0;
+      (__gcry_mpi_set($259,$282)|0);
+      (__gcry_mpi_set($261,$189)|0);
+      (__gcry_mpi_set($262,$191)|0);
+      (__gcry_mpi_set($264,$239)|0);
+      $283 = HEAP32[$187>>2]|0;
+      __gcry_mpi_sub($262,$283,$262);
+      __gcry_mpi_ec_add_points($0,$5,$6,$3);
+     }
+    }
+    $284 = (($$0211221) + -1)|0;
+    $285 = ($284|0)==(0);
+    if ($285) {
+     break;
+    } else {
+     $$0211221 = $284;
+    }
+   }
+  }
+  __gcry_mpi_free($189);
+  HEAP32[$4>>2] = 0;
+  __gcry_mpi_free($191);
+  HEAP32[$254>>2] = 0;
+  __gcry_mpi_free($239);
+  HEAP32[$255>>2] = 0;
+  __gcry_mpi_free($256);
+  HEAP32[$5>>2] = 0;
+  __gcry_mpi_free($257);
+  HEAP32[$258>>2] = 0;
+  __gcry_mpi_free($259);
+  HEAP32[$260>>2] = 0;
+  __gcry_mpi_free($261);
+  HEAP32[$6>>2] = 0;
+  __gcry_mpi_free($262);
+  HEAP32[$263>>2] = 0;
+  __gcry_mpi_free($264);
+  HEAP32[$265>>2] = 0;
+  __gcry_mpi_free($193);
+  __gcry_mpi_free($194);
+  STACKTOP = sp;return;
+ }
+ }
+}
+function __gcry_mpi_ec_curve_point($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$1 = 0, $$2 = 0, $$idx$val = 0, $$pre = 0, $$pre$phi139Z2D = 0, 
$$pre$phiZ2D = 0, $$pre138 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 
0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 
0;
+ var $111 = 0, $112 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, 
$26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $45 = 0, $46 = 0;
+ var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, 
$62 = 0, $63 = 0, $64 = 0;
+ var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, 
$72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, 
$80 = 0, $81 = 0, $82 = 0;
+ var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, 
$90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 
0, $99 = 0, $spec$select = 0, $spec$select122 = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (__gcry_mpi_new(0)|0);
+ $3 = (__gcry_mpi_new(0)|0);
+ $4 = (__gcry_mpi_new(0)|0);
+ $5 = HEAP32[$1>>2]|0;
+ switch ($5|0) {
+ case 0:  {
+  $6 = (__gcry_mpi_new(0)|0);
+  $7 = (__gcry_mpi_ec_get_affine($2,$3,$0,$1)|0);
+  $8 = ($7|0)==(0);
+  if (!($8)) {
+   $$1 = 0;
+   return ($$1|0);
+  }
+  __gcry_mpi_mul($3,$3,$3);
+  $9 = ((($1)) + 60|0);
+  $10 = HEAP32[$9>>2]|0;
+  $11 = ($10|0)==(0|0);
+  if ($11) {
+   $12 = ((($1)) + 16|0);
+   $13 = HEAP32[$12>>2]|0;
+   __gcry_mpi_mod($3,$3,$13);
+   $$pre$phiZ2D = $12;
+  } else {
+   __gcry_mpi_mod_barrett($3,$3,$10);
+   $$pre = ((($1)) + 16|0);
+   $$pre$phiZ2D = $$pre;
+  }
+  $14 = (__gcry_mpi_const(3)|0);
+  $15 = HEAP32[$$pre$phiZ2D>>2]|0;
+  __gcry_mpi_powm($6,$2,$14,$15);
+  $16 = ((($1)) + 20|0);
+  $17 = HEAP32[$16>>2]|0;
+  __gcry_mpi_mul($4,$17,$2);
+  $18 = HEAP32[$9>>2]|0;
+  $19 = ($18|0)==(0|0);
+  if ($19) {
+   $20 = HEAP32[$$pre$phiZ2D>>2]|0;
+   __gcry_mpi_mod($4,$4,$20);
+  } else {
+   __gcry_mpi_mod_barrett($4,$4,$18);
+  }
+  $21 = ((($1)) + 24|0);
+  $22 = HEAP32[$21>>2]|0;
+  __gcry_mpi_add($4,$4,$22);
+  $23 = HEAP32[$9>>2]|0;
+  $24 = ($23|0)==(0|0);
+  if ($24) {
+   $25 = HEAP32[$$pre$phiZ2D>>2]|0;
+   __gcry_mpi_mod($4,$4,$25);
+  } else {
+   __gcry_mpi_mod_barrett($4,$4,$23);
+  }
+  __gcry_mpi_add($4,$4,$6);
+  $26 = HEAP32[$9>>2]|0;
+  $27 = ($26|0)==(0|0);
+  if ($27) {
+   $28 = HEAP32[$$pre$phiZ2D>>2]|0;
+   __gcry_mpi_mod($4,$4,$28);
+  } else {
+   __gcry_mpi_mod_barrett($4,$4,$26);
+  }
+  $29 = (__gcry_mpi_cmp($3,$4)|0);
+  $30 = ($29|0)==(0);
+  $spec$select = $30&1;
+  __gcry_mpi_release($6);
+  $$2 = $spec$select;
+  break;
+ }
+ case 1:  {
+  $31 = (__gcry_mpi_ec_get_affine($2,0,$0,$1)|0);
+  $32 = ($31|0)==(0);
+  if (!($32)) {
+   $$1 = 0;
+   return ($$1|0);
+  }
+  $33 = ((($1)) + 20|0);
+  $34 = HEAP32[$33>>2]|0;
+  $35 = (__gcry_mpi_const(4)|0);
+  __gcry_mpi_mul($4,$34,$35);
+  $36 = ((($1)) + 60|0);
+  $37 = HEAP32[$36>>2]|0;
+  $38 = ($37|0)==(0|0);
+  if ($38) {
+   $39 = ((($1)) + 16|0);
+   $40 = HEAP32[$39>>2]|0;
+   __gcry_mpi_mod($4,$4,$40);
+  } else {
+   __gcry_mpi_mod_barrett($4,$4,$37);
+  }
+  $41 = (__gcry_mpi_const(2)|0);
+  __gcry_mpi_add($4,$4,$41);
+  $42 = HEAP32[$36>>2]|0;
+  $43 = ($42|0)==(0|0);
+  if ($43) {
+   $44 = ((($1)) + 16|0);
+   $45 = HEAP32[$44>>2]|0;
+   __gcry_mpi_mod($4,$4,$45);
+  } else {
+   __gcry_mpi_mod_barrett($4,$4,$42);
+  }
+  __gcry_mpi_mul($4,$4,$2);
+  $46 = HEAP32[$36>>2]|0;
+  $47 = ($46|0)==(0|0);
+  if ($47) {
+   $48 = ((($1)) + 16|0);
+   $49 = HEAP32[$48>>2]|0;
+   __gcry_mpi_mod($4,$4,$49);
+  } else {
+   __gcry_mpi_mod_barrett($4,$4,$46);
+  }
+  __gcry_mpi_mul($3,$2,$2);
+  $50 = HEAP32[$36>>2]|0;
+  $51 = ($50|0)==(0|0);
+  if ($51) {
+   $52 = ((($1)) + 16|0);
+   $53 = HEAP32[$52>>2]|0;
+   __gcry_mpi_mod($3,$3,$53);
+  } else {
+   __gcry_mpi_mod_barrett($3,$3,$50);
+  }
+  __gcry_mpi_add($4,$4,$3);
+  $54 = HEAP32[$36>>2]|0;
+  $55 = ($54|0)==(0|0);
+  if ($55) {
+   $56 = ((($1)) + 16|0);
+   $57 = HEAP32[$56>>2]|0;
+   __gcry_mpi_mod($4,$4,$57);
+  } else {
+   __gcry_mpi_mod_barrett($4,$4,$54);
+  }
+  $58 = (__gcry_mpi_const(1)|0);
+  __gcry_mpi_add($4,$4,$58);
+  $59 = HEAP32[$36>>2]|0;
+  $60 = ($59|0)==(0|0);
+  if ($60) {
+   $61 = ((($1)) + 16|0);
+   $62 = HEAP32[$61>>2]|0;
+   __gcry_mpi_mod($4,$4,$62);
+  } else {
+   __gcry_mpi_mod_barrett($4,$4,$59);
+  }
+  __gcry_mpi_mul($4,$4,$2);
+  $63 = HEAP32[$36>>2]|0;
+  $64 = ($63|0)==(0|0);
+  if ($64) {
+   $65 = ((($1)) + 16|0);
+   $66 = HEAP32[$65>>2]|0;
+   __gcry_mpi_mod($4,$4,$66);
+  } else {
+   __gcry_mpi_mod_barrett($4,$4,$63);
+  }
+  $67 = ((($1)) + 24|0);
+  $68 = HEAP32[$67>>2]|0;
+  __gcry_mpi_mul($4,$4,$68);
+  $69 = HEAP32[$36>>2]|0;
+  $70 = ($69|0)==(0|0);
+  if ($70) {
+   $71 = ((($1)) + 16|0);
+   $72 = HEAP32[$71>>2]|0;
+   __gcry_mpi_mod($4,$4,$72);
+   $$pre$phi139Z2D = $71;
+  } else {
+   __gcry_mpi_mod_barrett($4,$4,$69);
+   $$pre138 = ((($1)) + 16|0);
+   $$pre$phi139Z2D = $$pre138;
+  }
+  $73 = HEAP32[$$pre$phi139Z2D>>2]|0;
+  $74 = (__gcry_mpi_const(1)|0);
+  __gcry_mpi_sub($3,$73,$74);
+  __gcry_mpi_rshift($3,$3,1);
+  $$idx$val = HEAP32[$$pre$phi139Z2D>>2]|0;
+  __gcry_mpi_powm($4,$4,$3,$$idx$val);
+  $75 = (__gcry_mpi_cmp_ui($4,1)|0);
+  $$2 = $75;
+  break;
+ }
+ case 2:  {
+  $76 = (__gcry_mpi_ec_get_affine($2,$3,$0,$1)|0);
+  $77 = ($76|0)==(0);
+  if (!($77)) {
+   $$1 = 0;
+   return ($$1|0);
+  }
+  __gcry_mpi_mul($2,$2,$2);
+  $78 = ((($1)) + 60|0);
+  $79 = HEAP32[$78>>2]|0;
+  $80 = ($79|0)==(0|0);
+  if ($80) {
+   $81 = ((($1)) + 16|0);
+   $82 = HEAP32[$81>>2]|0;
+   __gcry_mpi_mod($2,$2,$82);
+  } else {
+   __gcry_mpi_mod_barrett($2,$2,$79);
+  }
+  __gcry_mpi_mul($3,$3,$3);
+  $83 = HEAP32[$78>>2]|0;
+  $84 = ($83|0)==(0|0);
+  if ($84) {
+   $85 = ((($1)) + 16|0);
+   $86 = HEAP32[$85>>2]|0;
+   __gcry_mpi_mod($3,$3,$86);
+  } else {
+   __gcry_mpi_mod_barrett($3,$3,$83);
+  }
+  $87 = ((($1)) + 4|0);
+  $88 = HEAP32[$87>>2]|0;
+  $89 = ($88|0)==(1);
+  do {
+   if ($89) {
+    (__gcry_mpi_set($4,$2)|0);
+    __gcry_mpi_neg($4,$4);
+   } else {
+    $90 = ((($1)) + 20|0);
+    $91 = HEAP32[$90>>2]|0;
+    __gcry_mpi_mul($4,$91,$2);
+    $92 = HEAP32[$78>>2]|0;
+    $93 = ($92|0)==(0|0);
+    if ($93) {
+     $94 = ((($1)) + 16|0);
+     $95 = HEAP32[$94>>2]|0;
+     __gcry_mpi_mod($4,$4,$95);
+     break;
+    } else {
+     __gcry_mpi_mod_barrett($4,$4,$92);
+     break;
+    }
+   }
+  } while(0);
+  __gcry_mpi_add($4,$4,$3);
+  $96 = HEAP32[$78>>2]|0;
+  $97 = ($96|0)==(0|0);
+  if ($97) {
+   $98 = ((($1)) + 16|0);
+   $99 = HEAP32[$98>>2]|0;
+   __gcry_mpi_mod($4,$4,$99);
+  } else {
+   __gcry_mpi_mod_barrett($4,$4,$96);
+  }
+  $100 = (__gcry_mpi_const(1)|0);
+  __gcry_mpi_sub($4,$4,$100);
+  __gcry_mpi_mul($2,$2,$3);
+  $101 = HEAP32[$78>>2]|0;
+  $102 = ($101|0)==(0|0);
+  if ($102) {
+   $103 = ((($1)) + 16|0);
+   $104 = HEAP32[$103>>2]|0;
+   __gcry_mpi_mod($2,$2,$104);
+  } else {
+   __gcry_mpi_mod_barrett($2,$2,$101);
+  }
+  $105 = ((($1)) + 24|0);
+  $106 = HEAP32[$105>>2]|0;
+  __gcry_mpi_mul($2,$2,$106);
+  $107 = HEAP32[$78>>2]|0;
+  $108 = ($107|0)==(0|0);
+  if ($108) {
+   $109 = ((($1)) + 16|0);
+   $110 = HEAP32[$109>>2]|0;
+   __gcry_mpi_mod($2,$2,$110);
+  } else {
+   __gcry_mpi_mod_barrett($2,$2,$107);
+  }
+  __gcry_mpi_sub($4,$4,$2);
+  $111 = (__gcry_mpi_cmp_ui($4,0)|0);
+  $112 = ($111|0)==(0);
+  $spec$select122 = $112&1;
+  $$2 = $spec$select122;
+  break;
+ }
+ default: {
+  $$2 = 0;
+ }
+ }
+ __gcry_mpi_release($4);
+ __gcry_mpi_release($2);
+ __gcry_mpi_release($3);
+ $$1 = $$2;
+ return ($$1|0);
+}
+function __gcry_mpi_add_ui($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$024$i = 0, $$02637$i = 0, $$02637$i62 = 0, $$02836$i = 0, 
$$02836$i63 = 0, $$035$i = 0, $$035$i69 = 0, $$052 = 0, $$1$i = 0, $$1$i66 = 0, 
$$127$i = 0, $$127$i65 = 0, $$129$i = 0, $$129$i64 = 0, $10 = 0, $11 = 0, $12 = 
0, $13 = 0, $14 = 0;
+ var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, 
$23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, 
$31 = 0, $32 = 0, $33 = 0;
+ var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 
0, $5 = 0, $50 = 0, $51 = 0;
+ var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, 
$6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, 
$68 = 0, $69 = 0, $7 = 0;
+ var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $8 = 0, $9 = 0, 
$exitcond$i = 0, $exitcond$i70 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($1)) + 4|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ((($1)) + 8|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = HEAP32[$0>>2]|0;
+ $8 = ($7|0)>($4|0);
+ if (!($8)) {
+  $9 = (($4) + 1)|0;
+  __gcry_mpi_resize($0,$9);
+ }
+ $10 = ((($1)) + 16|0);
+ $11 = HEAP32[$10>>2]|0;
+ $12 = ((($0)) + 16|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = ($4|0)==(0);
+ if ($14) {
+  HEAP32[$13>>2] = $2;
+  $15 = ($2|0)!=(0);
+  $16 = $15&1;
+  $$0 = $16;$$052 = 0;
+  $74 = ((($0)) + 4|0);
+  HEAP32[$74>>2] = $$0;
+  $75 = ((($0)) + 8|0);
+  HEAP32[$75>>2] = $$052;
+  return;
+ }
+ $17 = ($6|0)==(0);
+ if ($17) {
+  $18 = ((($11)) + 4|0);
+  $19 = HEAP32[$11>>2]|0;
+  $20 = (($19) + ($2))|0;
+  $21 = ((($13)) + 4|0);
+  HEAP32[$13>>2] = $20;
+  $22 = ($20>>>0)<($19>>>0);
+  L10: do {
+   if ($22) {
+    $23 = (($4) + -1)|0;
+    $24 = ($23|0)==(0);
+    if ($24) {
+     $$024$i = 1;
+    } else {
+     $$02637$i = $18;$$02836$i = $21;$26 = $23;
+     while(1) {
+      $28 = ((($$02637$i)) + 4|0);
+      $29 = HEAP32[$$02637$i>>2]|0;
+      $30 = (($29) + 1)|0;
+      $31 = ((($$02836$i)) + 4|0);
+      HEAP32[$$02836$i>>2] = $30;
+      $32 = ($30|0)==(0);
+      if (!($32)) {
+       $$1$i = $26;$$127$i = $28;$$129$i = $31;
+       label = 11;
+       break L10;
+      }
+      $25 = (($26) + -1)|0;
+      $27 = ($25|0)==(0);
+      if ($27) {
+       $$024$i = 1;
+       break;
+      } else {
+       $$02637$i = $28;$$02836$i = $31;$26 = $25;
+      }
+     }
+    }
+   } else {
+    $$1$i = $4;$$127$i = $18;$$129$i = $21;
+    label = 11;
+   }
+  } while(0);
+  if ((label|0) == 11) {
+   $33 = ($$129$i|0)==($$127$i|0);
+   if ($33) {
+    $$024$i = 0;
+   } else {
+    $34 = (($$1$i) + -1)|0;
+    $35 = ($$1$i|0)>(1);
+    if ($35) {
+     $$035$i = 0;
+     while(1) {
+      $36 = (($$127$i) + ($$035$i<<2)|0);
+      $37 = HEAP32[$36>>2]|0;
+      $38 = (($$129$i) + ($$035$i<<2)|0);
+      HEAP32[$38>>2] = $37;
+      $39 = (($$035$i) + 1)|0;
+      $exitcond$i = ($39|0)==($34|0);
+      if ($exitcond$i) {
+       $$024$i = 0;
+       break;
+      } else {
+       $$035$i = $39;
+      }
+     }
+    } else {
+     $$024$i = 0;
+    }
+   }
+  }
+  $40 = (($13) + ($4<<2)|0);
+  HEAP32[$40>>2] = $$024$i;
+  $41 = (($$024$i) + ($4))|0;
+  $$0 = $41;$$052 = 0;
+  $74 = ((($0)) + 4|0);
+  HEAP32[$74>>2] = $$0;
+  $75 = ((($0)) + 8|0);
+  HEAP32[$75>>2] = $$052;
+  return;
+ }
+ $42 = ($4|0)==(1);
+ L25: do {
+  if ($42) {
+   $43 = HEAP32[$11>>2]|0;
+   $44 = ($43>>>0)<($2>>>0);
+   if (!($44)) {
+    $67 = (($43) - ($2))|0;
+    HEAP32[$13>>2] = $67;
+    break;
+   }
+   $45 = (($2) - ($43))|0;
+   HEAP32[$13>>2] = $45;
+   $$0 = 1;$$052 = 0;
+   $74 = ((($0)) + 4|0);
+   HEAP32[$74>>2] = $$0;
+   $75 = ((($0)) + 8|0);
+   HEAP32[$75>>2] = $$052;
+   return;
+  } else {
+   $46 = ((($11)) + 4|0);
+   $47 = HEAP32[$11>>2]|0;
+   $48 = (($47) - ($2))|0;
+   $49 = ((($13)) + 4|0);
+   HEAP32[$13>>2] = $48;
+   $50 = ($48>>>0)>($47>>>0);
+   L32: do {
+    if ($50) {
+     $51 = (($4) + -1)|0;
+     $$02637$i62 = $46;$$02836$i63 = $49;$53 = $51;
+     while(1) {
+      $55 = ((($$02637$i62)) + 4|0);
+      $56 = HEAP32[$$02637$i62>>2]|0;
+      $57 = (($56) + -1)|0;
+      $58 = ((($$02836$i63)) + 4|0);
+      HEAP32[$$02836$i63>>2] = $57;
+      $59 = ($56|0)==(0);
+      if (!($59)) {
+       $$1$i66 = $53;$$127$i65 = $55;$$129$i64 = $58;
+       break L32;
+      }
+      $52 = (($53) + -1)|0;
+      $54 = ($52|0)==(0);
+      if ($54) {
+       break L25;
+      } else {
+       $$02637$i62 = $55;$$02836$i63 = $58;$53 = $52;
+      }
+     }
+    } else {
+     $$1$i66 = $4;$$127$i65 = $46;$$129$i64 = $49;
+    }
+   } while(0);
+   $60 = ($$129$i64|0)==($$127$i65|0);
+   if (!($60)) {
+    $61 = (($$1$i66) + -1)|0;
+    $62 = ($$1$i66|0)>(1);
+    if ($62) {
+     $$035$i69 = 0;
+     while(1) {
+      $63 = (($$127$i65) + ($$035$i69<<2)|0);
+      $64 = HEAP32[$63>>2]|0;
+      $65 = (($$129$i64) + ($$035$i69<<2)|0);
+      HEAP32[$65>>2] = $64;
+      $66 = (($$035$i69) + 1)|0;
+      $exitcond$i70 = ($66|0)==($61|0);
+      if ($exitcond$i70) {
+       break;
+      } else {
+       $$035$i69 = $66;
+      }
+     }
+    }
+   }
+  }
+ } while(0);
+ $68 = (($4) + -1)|0;
+ $69 = (($13) + ($68<<2)|0);
+ $70 = HEAP32[$69>>2]|0;
+ $71 = ($70|0)==(0);
+ $72 = $71&1;
+ $73 = (($4) - ($72))|0;
+ $$0 = $73;$$052 = 1;
+ $74 = ((($0)) + 4|0);
+ HEAP32[$74>>2] = $$0;
+ $75 = ((($0)) + 8|0);
+ HEAP32[$75>>2] = $$052;
+ return;
+}
+function __gcry_mpi_add($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$0$in = 0, $$0107150 = 0, $$0109 = 0, $$0110 = 0, $$0111161 = 
0, $$0113 = 0, $$0114 = 0, $$0115 = 0, $$0115$in = 0, $$01619$i = 0, 
$$01619$in$i = 0, $$02637$i$i = 0, $$02637$i$i122 = 0, $$02836$i$i = 0, 
$$02836$i$i123 = 0, $$035$i$i = 0, $$035$i$i129 = 0, $$1 = 0, $$1$i$i = 0;
+ var $$1$i$i126 = 0, $$1$i131 = 0, $$1112$lcssa$ph = 0, $$1112155 = 0, 
$$127$i$i = 0, $$127$i$i125 = 0, $$129$i$i = 0, $$129$i$i124 = 0, $$2$lcssa = 
0, $$2151 = 0, $$3 = 0, $$pn = 0, $$pn116 = 0, $10 = 0, $100 = 0, $101 = 0, 
$102 = 0, $103 = 0, $104 = 0, $105 = 0;
+ var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 
= 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 
0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
+ var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, 
$28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0;
+ var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, 
$46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0;
+ var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, 
$64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, 
$72 = 0, $73 = 0, $74 = 0;
+ var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, 
$82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, 
$90 = 0, $91 = 0, $92 = 0;
+ var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond 
= 0, $exitcond$i$i = 0, $exitcond$i$i130 = 0, $spec$select = 0, $spec$select117 
= 0, $spec$select118 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($1)) + 4|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ((($2)) + 4|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ($4|0)<($6|0);
+ if ($7) {
+  $8 = ((($2)) + 8|0);
+  $9 = HEAP32[$8>>2]|0;
+  $10 = ((($1)) + 8|0);
+  $11 = HEAP32[$10>>2]|0;
+  $12 = HEAP32[$0>>2]|0;
+  $13 = ($12|0)>($6|0);
+  if ($13) {
+   $$0109 = $11;$$0110 = $9;$$0113 = $4;$$0114 = $6;$$pn = $1;$$pn116 = $2;
+  } else {
+   $14 = (($6) + 1)|0;
+   __gcry_mpi_resize($0,$14);
+   $$0109 = $11;$$0110 = $9;$$0113 = $4;$$0114 = $6;$$pn = $1;$$pn116 = $2;
+  }
+ } else {
+  $15 = ((($1)) + 8|0);
+  $16 = HEAP32[$15>>2]|0;
+  $17 = ((($2)) + 8|0);
+  $18 = HEAP32[$17>>2]|0;
+  $19 = HEAP32[$0>>2]|0;
+  $20 = ($19|0)>($4|0);
+  if ($20) {
+   $$0109 = $18;$$0110 = $16;$$0113 = $6;$$0114 = $4;$$pn = $2;$$pn116 = $1;
+  } else {
+   $21 = (($4) + 1)|0;
+   __gcry_mpi_resize($0,$21);
+   $$0109 = $18;$$0110 = $16;$$0113 = $6;$$0114 = $4;$$pn = $2;$$pn116 = $1;
+  }
+ }
+ $$0$in = ((($$pn116)) + 16|0);
+ $$0115$in = ((($$pn)) + 16|0);
+ $$0 = HEAP32[$$0$in>>2]|0;
+ $$0115 = HEAP32[$$0115$in>>2]|0;
+ $22 = ((($0)) + 16|0);
+ $23 = HEAP32[$22>>2]|0;
+ $24 = ($$0113|0)==(0);
+ if ($24) {
+  $25 = ($$0114|0)>(0);
+  if (!($25)) {
+   $$1 = $$0110;$$3 = $$0114;
+   $115 = ((($0)) + 4|0);
+   HEAP32[$115>>2] = $$3;
+   $116 = ((($0)) + 8|0);
+   HEAP32[$116>>2] = $$1;
+   return;
+  }
+  $$0107150 = 0;
+  while(1) {
+   $26 = (($$0) + ($$0107150<<2)|0);
+   $27 = HEAP32[$26>>2]|0;
+   $28 = (($23) + ($$0107150<<2)|0);
+   HEAP32[$28>>2] = $27;
+   $29 = (($$0107150) + 1)|0;
+   $exitcond = ($29|0)==($$0114|0);
+   if ($exitcond) {
+    $$1 = $$0110;$$3 = $$0114;
+    break;
+   } else {
+    $$0107150 = $29;
+   }
+  }
+  $115 = ((($0)) + 4|0);
+  HEAP32[$115>>2] = $$3;
+  $116 = ((($0)) + 8|0);
+  HEAP32[$116>>2] = $$1;
+  return;
+ }
+ $30 = ($$0110|0)==($$0109|0);
+ if ($30) {
+  $85 = (__gcry_mpih_add_n($23,$$0,$$0115,$$0113)|0);
+  $86 = (($$0114) - ($$0113))|0;
+  $87 = ($86|0)==(0);
+  L18: do {
+   if ($87) {
+    $$1$i131 = $85;
+   } else {
+    $88 = (($23) + ($$0113<<2)|0);
+    $89 = (($$0) + ($$0113<<2)|0);
+    $90 = ((($89)) + 4|0);
+    $91 = HEAP32[$89>>2]|0;
+    $92 = (($91) + ($85))|0;
+    $93 = ((($88)) + 4|0);
+    HEAP32[$88>>2] = $92;
+    $94 = ($92>>>0)<($91>>>0);
+    L20: do {
+     if ($94) {
+      $95 = (($86) + -1)|0;
+      $96 = ($95|0)==(0);
+      if ($96) {
+       $$1$i131 = 1;
+       break L18;
+      }
+      $$02637$i$i122 = $90;$$02836$i$i123 = $93;$98 = $95;
+      while(1) {
+       $100 = ((($$02637$i$i122)) + 4|0);
+       $101 = HEAP32[$$02637$i$i122>>2]|0;
+       $102 = (($101) + 1)|0;
+       $103 = ((($$02836$i$i123)) + 4|0);
+       HEAP32[$$02836$i$i123>>2] = $102;
+       $104 = ($102|0)==(0);
+       if (!($104)) {
+        $$1$i$i126 = $98;$$127$i$i125 = $100;$$129$i$i124 = $103;
+        break L20;
+       }
+       $97 = (($98) + -1)|0;
+       $99 = ($97|0)==(0);
+       if ($99) {
+        $$1$i131 = 1;
+        break L18;
+       } else {
+        $$02637$i$i122 = $100;$$02836$i$i123 = $103;$98 = $97;
+       }
+      }
+     } else {
+      $$1$i$i126 = $86;$$127$i$i125 = $90;$$129$i$i124 = $93;
+     }
+    } while(0);
+    $105 = ($$129$i$i124|0)==($$127$i$i125|0);
+    if ($105) {
+     $$1$i131 = 0;
+    } else {
+     $106 = (($$1$i$i126) + -1)|0;
+     $107 = ($$1$i$i126|0)>(1);
+     if ($107) {
+      $$035$i$i129 = 0;
+      while(1) {
+       $108 = (($$127$i$i125) + ($$035$i$i129<<2)|0);
+       $109 = HEAP32[$108>>2]|0;
+       $110 = (($$129$i$i124) + ($$035$i$i129<<2)|0);
+       HEAP32[$110>>2] = $109;
+       $111 = (($$035$i$i129) + 1)|0;
+       $exitcond$i$i130 = ($111|0)==($106|0);
+       if ($exitcond$i$i130) {
+        $$1$i131 = 0;
+        break;
+       } else {
+        $$035$i$i129 = $111;
+       }
+      }
+     } else {
+      $$1$i131 = 0;
+     }
+    }
+   }
+  } while(0);
+  $112 = (($23) + ($$0114<<2)|0);
+  HEAP32[$112>>2] = $$1$i131;
+  $113 = (($$1$i131) + ($$0114))|0;
+  $114 = ($$0110|0)!=(0);
+  $spec$select118 = $114&1;
+  $$1 = $spec$select118;$$3 = $113;
+  $115 = ((($0)) + 4|0);
+  HEAP32[$115>>2] = $$3;
+  $116 = ((($0)) + 8|0);
+  HEAP32[$116>>2] = $$1;
+  return;
+ }
+ $31 = ($$0114|0)==($$0113|0);
+ if ($31) {
+  $65 = ($$0114|0)>(0);
+  L36: do {
+   if ($65) {
+    $$01619$in$i = $$0114;
+    while(1) {
+     $$01619$i = (($$01619$in$i) + -1)|0;
+     $67 = (($$0) + ($$01619$i<<2)|0);
+     $68 = HEAP32[$67>>2]|0;
+     $69 = (($$0115) + ($$01619$i<<2)|0);
+     $70 = HEAP32[$69>>2]|0;
+     $71 = ($68|0)==($70|0);
+     if (!($71)) {
+      label = 31;
+      break;
+     }
+     $66 = ($$01619$in$i|0)>(1);
+     if ($66) {
+      $$01619$in$i = $$01619$i;
+     } else {
+      break;
+     }
+    }
+    if ((label|0) == 31) {
+     $72 = ($68>>>0)>($70>>>0);
+     if (!($72)) {
+      (__gcry_mpih_sub_n($23,$$0115,$$0,$$0114)|0);
+      $$1112155 = $$0114;
+      while(1) {
+       $74 = (($$1112155) + -1)|0;
+       $75 = (($23) + ($74<<2)|0);
+       $76 = HEAP32[$75>>2]|0;
+       $77 = ($76|0)==(0);
+       if (!($77)) {
+        $$1112$lcssa$ph = $$1112155;
+        break;
+       }
+       $73 = ($$1112155|0)>(1);
+       if ($73) {
+        $$1112155 = $74;
+       } else {
+        $$1112$lcssa$ph = $74;
+        break;
+       }
+      }
+      $78 = ($$0110|0)==(0);
+      $spec$select = $78&1;
+      $$1 = $spec$select;$$3 = $$1112$lcssa$ph;
+      $115 = ((($0)) + 4|0);
+      HEAP32[$115>>2] = $$3;
+      $116 = ((($0)) + 8|0);
+      HEAP32[$116>>2] = $$1;
+      return;
+     }
+    }
+    (__gcry_mpih_sub_n($23,$$0,$$0115,$$0114)|0);
+    if ($65) {
+     $$2151 = $$0114;
+     while(1) {
+      $80 = (($$2151) + -1)|0;
+      $81 = (($23) + ($80<<2)|0);
+      $82 = HEAP32[$81>>2]|0;
+      $83 = ($82|0)==(0);
+      if (!($83)) {
+       $$2$lcssa = $$2151;
+       break L36;
+      }
+      $79 = ($$2151|0)>(1);
+      if ($79) {
+       $$2151 = $80;
+      } else {
+       $$2$lcssa = $80;
+       break;
+      }
+     }
+    } else {
+     $$2$lcssa = $$0114;
+    }
+   } else {
+    (__gcry_mpih_sub_n($23,$$0,$$0115,$$0114)|0);
+    $$2$lcssa = $$0114;
+   }
+  } while(0);
+  $84 = ($$0110|0)!=(0);
+  $spec$select117 = $84&1;
+  $$1 = $spec$select117;$$3 = $$2$lcssa;
+  $115 = ((($0)) + 4|0);
+  HEAP32[$115>>2] = $$3;
+  $116 = ((($0)) + 8|0);
+  HEAP32[$116>>2] = $$1;
+  return;
+ } else {
+  $32 = (__gcry_mpih_sub_n($23,$$0,$$0115,$$0113)|0);
+  $33 = (($$0114) - ($$0113))|0;
+  $34 = ($33|0)==(0);
+  L58: do {
+   if (!($34)) {
+    $35 = (($23) + ($$0113<<2)|0);
+    $36 = (($$0) + ($$0113<<2)|0);
+    $37 = ((($36)) + 4|0);
+    $38 = HEAP32[$36>>2]|0;
+    $39 = (($38) - ($32))|0;
+    $40 = ((($35)) + 4|0);
+    HEAP32[$35>>2] = $39;
+    $41 = ($39>>>0)>($38>>>0);
+    L60: do {
+     if ($41) {
+      $42 = (($33) + -1)|0;
+      $43 = ($42|0)==(0);
+      if ($43) {
+       break L58;
+      }
+      $$02637$i$i = $37;$$02836$i$i = $40;$45 = $42;
+      while(1) {
+       $47 = ((($$02637$i$i)) + 4|0);
+       $48 = HEAP32[$$02637$i$i>>2]|0;
+       $49 = (($48) + -1)|0;
+       $50 = ((($$02836$i$i)) + 4|0);
+       HEAP32[$$02836$i$i>>2] = $49;
+       $51 = ($48|0)==(0);
+       if (!($51)) {
+        $$1$i$i = $45;$$127$i$i = $47;$$129$i$i = $50;
+        break L60;
+       }
+       $44 = (($45) + -1)|0;
+       $46 = ($44|0)==(0);
+       if ($46) {
+        break L58;
+       } else {
+        $$02637$i$i = $47;$$02836$i$i = $50;$45 = $44;
+       }
+      }
+     } else {
+      $$1$i$i = $33;$$127$i$i = $37;$$129$i$i = $40;
+     }
+    } while(0);
+    $52 = ($$129$i$i|0)==($$127$i$i|0);
+    if (!($52)) {
+     $53 = (($$1$i$i) + -1)|0;
+     $54 = ($$1$i$i|0)>(1);
+     if ($54) {
+      $$035$i$i = 0;
+      while(1) {
+       $55 = (($$127$i$i) + ($$035$i$i<<2)|0);
+       $56 = HEAP32[$55>>2]|0;
+       $57 = (($$129$i$i) + ($$035$i$i<<2)|0);
+       HEAP32[$57>>2] = $56;
+       $58 = (($$035$i$i) + 1)|0;
+       $exitcond$i$i = ($58|0)==($53|0);
+       if ($exitcond$i$i) {
+        break;
+       } else {
+        $$035$i$i = $58;
+       }
+      }
+     }
+    }
+   }
+  } while(0);
+  $59 = ($$0114|0)>(0);
+  if (!($59)) {
+   $$1 = $$0110;$$3 = $$0114;
+   $115 = ((($0)) + 4|0);
+   HEAP32[$115>>2] = $$3;
+   $116 = ((($0)) + 8|0);
+   HEAP32[$116>>2] = $$1;
+   return;
+  }
+  $$0111161 = $$0114;
+  while(1) {
+   $61 = (($$0111161) + -1)|0;
+   $62 = (($23) + ($61<<2)|0);
+   $63 = HEAP32[$62>>2]|0;
+   $64 = ($63|0)==(0);
+   if (!($64)) {
+    $$1 = $$0110;$$3 = $$0111161;
+    label = 52;
+    break;
+   }
+   $60 = ($$0111161|0)>(1);
+   if ($60) {
+    $$0111161 = $61;
+   } else {
+    $$1 = $$0110;$$3 = $61;
+    label = 52;
+    break;
+   }
+  }
+  if ((label|0) == 52) {
+   $115 = ((($0)) + 4|0);
+   HEAP32[$115>>2] = $$3;
+   $116 = ((($0)) + 8|0);
+   HEAP32[$116>>2] = $$1;
+   return;
+  }
+ }
+}
+function __gcry_mpi_sub_ui($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$024$i = 0, $$02637$i = 0, $$02637$i62 = 0, $$02836$i = 0, 
$$02836$i63 = 0, $$035$i = 0, $$035$i69 = 0, $$052 = 0, $$1$i = 0, $$1$i66 = 0, 
$$127$i = 0, $$127$i65 = 0, $$129$i = 0, $$129$i64 = 0, $10 = 0, $11 = 0, $12 = 
0, $13 = 0, $14 = 0;
+ var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, 
$23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, 
$31 = 0, $32 = 0, $33 = 0;
+ var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 
0, $5 = 0, $50 = 0, $51 = 0;
+ var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, 
$6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, 
$68 = 0, $69 = 0, $7 = 0;
+ var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $8 = 0, $9 = 0, 
$exitcond$i = 0, $exitcond$i70 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($1)) + 4|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ((($1)) + 8|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = HEAP32[$0>>2]|0;
+ $8 = ($7|0)>($4|0);
+ if (!($8)) {
+  $9 = (($4) + 1)|0;
+  __gcry_mpi_resize($0,$9);
+ }
+ $10 = ((($1)) + 16|0);
+ $11 = HEAP32[$10>>2]|0;
+ $12 = ((($0)) + 16|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = ($4|0)==(0);
+ if ($14) {
+  HEAP32[$13>>2] = $2;
+  $15 = ($2|0)!=(0);
+  $16 = $15&1;
+  $$0 = $16;$$052 = 1;
+  $74 = ((($0)) + 4|0);
+  HEAP32[$74>>2] = $$0;
+  $75 = ((($0)) + 8|0);
+  HEAP32[$75>>2] = $$052;
+  return;
+ }
+ $17 = ($6|0)==(0);
+ if (!($17)) {
+  $18 = ((($11)) + 4|0);
+  $19 = HEAP32[$11>>2]|0;
+  $20 = (($19) + ($2))|0;
+  $21 = ((($13)) + 4|0);
+  HEAP32[$13>>2] = $20;
+  $22 = ($20>>>0)<($19>>>0);
+  L10: do {
+   if ($22) {
+    $23 = (($4) + -1)|0;
+    $24 = ($23|0)==(0);
+    if ($24) {
+     $$024$i = 1;
+    } else {
+     $$02637$i = $18;$$02836$i = $21;$26 = $23;
+     while(1) {
+      $28 = ((($$02637$i)) + 4|0);
+      $29 = HEAP32[$$02637$i>>2]|0;
+      $30 = (($29) + 1)|0;
+      $31 = ((($$02836$i)) + 4|0);
+      HEAP32[$$02836$i>>2] = $30;
+      $32 = ($30|0)==(0);
+      if (!($32)) {
+       $$1$i = $26;$$127$i = $28;$$129$i = $31;
+       label = 11;
+       break L10;
+      }
+      $25 = (($26) + -1)|0;
+      $27 = ($25|0)==(0);
+      if ($27) {
+       $$024$i = 1;
+       break;
+      } else {
+       $$02637$i = $28;$$02836$i = $31;$26 = $25;
+      }
+     }
+    }
+   } else {
+    $$1$i = $4;$$127$i = $18;$$129$i = $21;
+    label = 11;
+   }
+  } while(0);
+  if ((label|0) == 11) {
+   $33 = ($$129$i|0)==($$127$i|0);
+   if ($33) {
+    $$024$i = 0;
+   } else {
+    $34 = (($$1$i) + -1)|0;
+    $35 = ($$1$i|0)>(1);
+    if ($35) {
+     $$035$i = 0;
+     while(1) {
+      $36 = (($$127$i) + ($$035$i<<2)|0);
+      $37 = HEAP32[$36>>2]|0;
+      $38 = (($$129$i) + ($$035$i<<2)|0);
+      HEAP32[$38>>2] = $37;
+      $39 = (($$035$i) + 1)|0;
+      $exitcond$i = ($39|0)==($34|0);
+      if ($exitcond$i) {
+       $$024$i = 0;
+       break;
+      } else {
+       $$035$i = $39;
+      }
+     }
+    } else {
+     $$024$i = 0;
+    }
+   }
+  }
+  $40 = (($13) + ($4<<2)|0);
+  HEAP32[$40>>2] = $$024$i;
+  $41 = (($$024$i) + ($4))|0;
+  $$0 = $41;$$052 = 0;
+  $74 = ((($0)) + 4|0);
+  HEAP32[$74>>2] = $$0;
+  $75 = ((($0)) + 8|0);
+  HEAP32[$75>>2] = $$052;
+  return;
+ }
+ $42 = ($4|0)==(1);
+ L25: do {
+  if ($42) {
+   $43 = HEAP32[$11>>2]|0;
+   $44 = ($43>>>0)<($2>>>0);
+   if (!($44)) {
+    $67 = (($43) - ($2))|0;
+    HEAP32[$13>>2] = $67;
+    break;
+   }
+   $45 = (($2) - ($43))|0;
+   HEAP32[$13>>2] = $45;
+   $$0 = 1;$$052 = 1;
+   $74 = ((($0)) + 4|0);
+   HEAP32[$74>>2] = $$0;
+   $75 = ((($0)) + 8|0);
+   HEAP32[$75>>2] = $$052;
+   return;
+  } else {
+   $46 = ((($11)) + 4|0);
+   $47 = HEAP32[$11>>2]|0;
+   $48 = (($47) - ($2))|0;
+   $49 = ((($13)) + 4|0);
+   HEAP32[$13>>2] = $48;
+   $50 = ($48>>>0)>($47>>>0);
+   L32: do {
+    if ($50) {
+     $51 = (($4) + -1)|0;
+     $$02637$i62 = $46;$$02836$i63 = $49;$53 = $51;
+     while(1) {
+      $55 = ((($$02637$i62)) + 4|0);
+      $56 = HEAP32[$$02637$i62>>2]|0;
+      $57 = (($56) + -1)|0;
+      $58 = ((($$02836$i63)) + 4|0);
+      HEAP32[$$02836$i63>>2] = $57;
+      $59 = ($56|0)==(0);
+      if (!($59)) {
+       $$1$i66 = $53;$$127$i65 = $55;$$129$i64 = $58;
+       break L32;
+      }
+      $52 = (($53) + -1)|0;
+      $54 = ($52|0)==(0);
+      if ($54) {
+       break L25;
+      } else {
+       $$02637$i62 = $55;$$02836$i63 = $58;$53 = $52;
+      }
+     }
+    } else {
+     $$1$i66 = $4;$$127$i65 = $46;$$129$i64 = $49;
+    }
+   } while(0);
+   $60 = ($$129$i64|0)==($$127$i65|0);
+   if (!($60)) {
+    $61 = (($$1$i66) + -1)|0;
+    $62 = ($$1$i66|0)>(1);
+    if ($62) {
+     $$035$i69 = 0;
+     while(1) {
+      $63 = (($$127$i65) + ($$035$i69<<2)|0);
+      $64 = HEAP32[$63>>2]|0;
+      $65 = (($$129$i64) + ($$035$i69<<2)|0);
+      HEAP32[$65>>2] = $64;
+      $66 = (($$035$i69) + 1)|0;
+      $exitcond$i70 = ($66|0)==($61|0);
+      if ($exitcond$i70) {
+       break;
+      } else {
+       $$035$i69 = $66;
+      }
+     }
+    }
+   }
+  }
+ } while(0);
+ $68 = (($4) + -1)|0;
+ $69 = (($13) + ($68<<2)|0);
+ $70 = HEAP32[$69>>2]|0;
+ $71 = ($70|0)==(0);
+ $72 = $71&1;
+ $73 = (($4) - ($72))|0;
+ $$0 = $73;$$052 = 0;
+ $74 = ((($0)) + 4|0);
+ HEAP32[$74>>2] = $$0;
+ $75 = ((($0)) + 8|0);
+ HEAP32[$75>>2] = $$052;
+ return;
+}
+function __gcry_mpi_sub($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_mpi_copy($2)|0);
+ $4 = ((($3)) + 8|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = ($5|0)==(0);
+ $7 = $6&1;
+ HEAP32[$4>>2] = $7;
+ __gcry_mpi_add($0,$1,$3);
+ __gcry_mpi_free($3);
+ return;
+}
+function __gcry_mpi_addm($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_mpi_add($0,$1,$2);
+ __gcry_mpi_mod($0,$0,$3);
+ return;
+}
+function __gcry_mpi_subm($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (__gcry_mpi_copy($2)|0);
+ $5 = ((($4)) + 8|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ($6|0)==(0);
+ $8 = $7&1;
+ HEAP32[$5>>2] = $8;
+ __gcry_mpi_add($0,$1,$4);
+ __gcry_mpi_free($4);
+ __gcry_mpi_mod($0,$0,$3);
+ return;
+}
+function __gcry_mpi_normalize($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 
= 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if (!($1)) {
+  $2 = ((($0)) + 12|0);
+  $3 = HEAP32[$2>>2]|0;
+  $4 = $3 & 4;
+  $5 = ($4|0)==(0);
+  if (!($5)) {
+   return;
+  }
+ }
+ $6 = ((($0)) + 4|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($7|0)==(0);
+ if ($8) {
+  return;
+ }
+ $9 = ((($0)) + 16|0);
+ $10 = HEAP32[$9>>2]|0;
+ $12 = $7;
+ while(1) {
+  $11 = (($12) + -1)|0;
+  $13 = (($10) + ($11<<2)|0);
+  $14 = HEAP32[$13>>2]|0;
+  $15 = ($14|0)==(0);
+  if (!($15)) {
+   label = 7;
+   break;
+  }
+  HEAP32[$6>>2] = $11;
+  $16 = ($11|0)==(0);
+  if ($16) {
+   label = 7;
+   break;
+  } else {
+   $12 = $11;
+  }
+ }
+ if ((label|0) == 7) {
+  return;
+ }
+}
+function __gcry_mpi_get_nbits($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$024 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, 
$15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, 
$23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0;
+ var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 
= 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ L1: do {
+  if ($1) {
+   $8 = HEAP32[(4)>>2]|0;
+   $9 = ($8|0)==(0);
+   if (!($9)) {
+    $10 = HEAP32[(16)>>2]|0;
+    $12 = $8;
+    while(1) {
+     $11 = (($12) + -1)|0;
+     $13 = (($10) + ($11<<2)|0);
+     $14 = HEAP32[$13>>2]|0;
+     $15 = ($14|0)==(0);
+     if (!($15)) {
+      break L1;
+     }
+     HEAP32[(4)>>2] = $11;
+     $16 = ($11|0)==(0);
+     if ($16) {
+      break;
+     } else {
+      $12 = $11;
+     }
+    }
+   }
+  } else {
+   $2 = ((($0)) + 12|0);
+   $3 = HEAP32[$2>>2]|0;
+   $4 = $3 & 4;
+   $5 = ($4|0)==(0);
+   if (!($5)) {
+    $6 = ((($0)) + 8|0);
+    $7 = HEAP32[$6>>2]|0;
+    $$0 = $7;
+    return ($$0|0);
+   }
+   $17 = ((($0)) + 4|0);
+   $18 = HEAP32[$17>>2]|0;
+   $19 = ($18|0)==(0);
+   if (!($19)) {
+    $20 = ((($0)) + 16|0);
+    $21 = HEAP32[$20>>2]|0;
+    $23 = $18;
+    while(1) {
+     $22 = (($23) + -1)|0;
+     $24 = (($21) + ($22<<2)|0);
+     $25 = HEAP32[$24>>2]|0;
+     $26 = ($25|0)==(0);
+     if (!($26)) {
+      break L1;
+     }
+     HEAP32[$17>>2] = $22;
+     $27 = ($22|0)==(0);
+     if ($27) {
+      break;
+     } else {
+      $23 = $22;
+     }
+    }
+   }
+  }
+ } while(0);
+ $28 = ((($0)) + 4|0);
+ $29 = HEAP32[$28>>2]|0;
+ $30 = ($29|0)==(0);
+ if ($30) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $31 = ((($0)) + 16|0);
+ $32 = HEAP32[$31>>2]|0;
+ $33 = (($29) + -1)|0;
+ $34 = (($32) + ($33<<2)|0);
+ $35 = HEAP32[$34>>2]|0;
+ $36 = ($35|0)==(0);
+ if ($36) {
+  $$024 = 0;
+ } else {
+  $37 = ($35>>>0)<(65536);
+  $38 = ($35>>>0)<(256);
+  $39 = $38 ? 0 : 8;
+  $40 = ($35>>>0)<(16777216);
+  $41 = $40 ? 16 : 24;
+  $42 = $37 ? $39 : $41;
+  $43 = $35 >>> $42;
+  $44 = (14784 + ($43)|0);
+  $45 = HEAP8[$44>>0]|0;
+  $46 = $45&255;
+  $47 = (($42) + ($46))|0;
+  $$024 = $47;
+ }
+ $48 = $29 << 5;
+ $49 = (($48) + -32)|0;
+ $50 = (($49) + ($$024))|0;
+ $$0 = $50;
+ return ($$0|0);
+}
+function __gcry_mpi_test_bit($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 
= 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = $1 >>> 5;
+ $3 = ((($0)) + 4|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ($2>>>0)<($4>>>0);
+ if (!($5)) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $6 = $1 & 31;
+ $7 = ((($0)) + 16|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = (($8) + ($2<<2)|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = 1 << $6;
+ $12 = $10 & $11;
+ $13 = ($12|0)!=(0);
+ $14 = $13&1;
+ $$0 = $14;
+ return ($$0|0);
+}
+function __gcry_mpi_set_bit($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$022 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, 
$25 = 0, $26 = 0, $3 = 0;
+ var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($0|0)==(0|0);
+ if (!($2)) {
+  $3 = ((($0)) + 12|0);
+  $4 = HEAP32[$3>>2]|0;
+  $5 = $4 & 16;
+  $6 = ($5|0)==(0);
+  if (!($6)) {
+   __gcry_mpi_immutable_failed();
+   return;
+  }
+ }
+ $7 = $1 >>> 5;
+ $8 = $1 & 31;
+ $9 = ((($0)) + 4|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ($7>>>0)<($10>>>0);
+ if (!($11)) {
+  $12 = HEAP32[$0>>2]|0;
+  $13 = ($10>>>0)<($12>>>0);
+  if ($13) {
+   $14 = ((($0)) + 16|0);
+   $15 = HEAP32[$14>>2]|0;
+   $$022 = $10;
+   while(1) {
+    $16 = (($15) + ($$022<<2)|0);
+    HEAP32[$16>>2] = 0;
+    $17 = (($$022) + 1)|0;
+    $18 = HEAP32[$0>>2]|0;
+    $19 = ($17>>>0)<($18>>>0);
+    if ($19) {
+     $$022 = $17;
+    } else {
+     break;
+    }
+   }
+  }
+  $20 = (($7) + 1)|0;
+  __gcry_mpi_resize($0,$20);
+  HEAP32[$9>>2] = $20;
+ }
+ $21 = 1 << $8;
+ $22 = ((($0)) + 16|0);
+ $23 = HEAP32[$22>>2]|0;
+ $24 = (($23) + ($7<<2)|0);
+ $25 = HEAP32[$24>>2]|0;
+ $26 = $25 | $21;
+ HEAP32[$24>>2] = $26;
+ return;
+}
+function __gcry_mpi_set_highbit($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $$03033 = 0, $$031 = 0, $$032 = 0, $10 = 0, $11 = 0, $12 = 0, 
$13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, 
$21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($0|0)==(0|0);
+ if (!($2)) {
+  $3 = ((($0)) + 12|0);
+  $4 = HEAP32[$3>>2]|0;
+  $5 = $4 & 16;
+  $6 = ($5|0)==(0);
+  if (!($6)) {
+   __gcry_mpi_immutable_failed();
+   return;
+  }
+ }
+ $7 = $1 >>> 5;
+ $8 = $1 & 31;
+ $9 = ((($0)) + 4|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ($7>>>0)<($10>>>0);
+ if (!($11)) {
+  $12 = HEAP32[$0>>2]|0;
+  $13 = ($10>>>0)<($12>>>0);
+  if ($13) {
+   $14 = ((($0)) + 16|0);
+   $15 = HEAP32[$14>>2]|0;
+   $$03033 = $10;
+   while(1) {
+    $16 = (($15) + ($$03033<<2)|0);
+    HEAP32[$16>>2] = 0;
+    $17 = (($$03033) + 1)|0;
+    $18 = HEAP32[$0>>2]|0;
+    $19 = ($17>>>0)<($18>>>0);
+    if ($19) {
+     $$03033 = $17;
+    } else {
+     break;
+    }
+   }
+  }
+  $20 = (($7) + 1)|0;
+  __gcry_mpi_resize($0,$20);
+  HEAP32[$9>>2] = $20;
+ }
+ $21 = 1 << $8;
+ $22 = ((($0)) + 16|0);
+ $23 = HEAP32[$22>>2]|0;
+ $24 = (($23) + ($7<<2)|0);
+ $25 = HEAP32[$24>>2]|0;
+ $26 = $25 | $21;
+ HEAP32[$24>>2] = $26;
+ $$031 = (($8) + 1)|0;
+ $27 = ($$031>>>0)<(32);
+ if ($27) {
+  $$032 = $$031;$31 = $26;
+  while(1) {
+   $28 = 1 << $$032;
+   $29 = $28 ^ -1;
+   $30 = $31 & $29;
+   $$0 = (($$032) + 1)|0;
+   $exitcond = ($$0|0)==(32);
+   if ($exitcond) {
+    break;
+   } else {
+    $$032 = $$0;$31 = $30;
+   }
+  }
+  HEAP32[$24>>2] = $30;
+ }
+ $32 = (($7) + 1)|0;
+ HEAP32[$9>>2] = $32;
+ return;
+}
+function __gcry_mpi_clear_highbit($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$015 = 0, $$promoted = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, 
$15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, 
$5 = 0, $6 = 0, $7 = 0, $8 = 0;
+ var $9 = 0, $exitcond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($0|0)==(0|0);
+ if (!($2)) {
+  $3 = ((($0)) + 12|0);
+  $4 = HEAP32[$3>>2]|0;
+  $5 = $4 & 16;
+  $6 = ($5|0)==(0);
+  if (!($6)) {
+   __gcry_mpi_immutable_failed();
+   return;
+  }
+ }
+ $7 = $1 >>> 5;
+ $8 = ((($0)) + 4|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ($7>>>0)<($9>>>0);
+ if (!($10)) {
+  return;
+ }
+ $11 = $1 & 31;
+ $12 = ((($0)) + 16|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = (($13) + ($7<<2)|0);
+ $$promoted = HEAP32[$14>>2]|0;
+ $$015 = $11;$18 = $$promoted;
+ while(1) {
+  $15 = 1 << $$015;
+  $16 = $15 ^ -1;
+  $17 = $18 & $16;
+  $19 = (($$015) + 1)|0;
+  $exitcond = ($19|0)==(32);
+  if ($exitcond) {
+   break;
+  } else {
+   $$015 = $19;$18 = $17;
+  }
+ }
+ HEAP32[$14>>2] = $17;
+ $20 = (($7) + 1)|0;
+ HEAP32[$8>>2] = $20;
+ return;
+}
+function __gcry_mpi_clear_bit($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label 
= 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($0|0)==(0|0);
+ if (!($2)) {
+  $3 = ((($0)) + 12|0);
+  $4 = HEAP32[$3>>2]|0;
+  $5 = $4 & 16;
+  $6 = ($5|0)==(0);
+  if (!($6)) {
+   __gcry_mpi_immutable_failed();
+   return;
+  }
+ }
+ $7 = $1 >>> 5;
+ $8 = ((($0)) + 4|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ($7>>>0)<($9>>>0);
+ if (!($10)) {
+  return;
+ }
+ $11 = $1 & 31;
+ $12 = 1 << $11;
+ $13 = $12 ^ -1;
+ $14 = ((($0)) + 16|0);
+ $15 = HEAP32[$14>>2]|0;
+ $16 = (($15) + ($7<<2)|0);
+ $17 = HEAP32[$16>>2]|0;
+ $18 = $17 & $13;
+ HEAP32[$16>>2] = $18;
+ return;
+}
+function __gcry_mpi_rshift_limbs($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0$lcssa = 0, $$022 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, 
$15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, 
$4 = 0, $5 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 16|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = ((($0)) + 4|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = ($0|0)==(0|0);
+ if (!($6)) {
+  $7 = ((($0)) + 12|0);
+  $8 = HEAP32[$7>>2]|0;
+  $9 = $8 & 16;
+  $10 = ($9|0)==(0);
+  if (!($10)) {
+   __gcry_mpi_immutable_failed();
+   return;
+  }
+ }
+ $11 = ($5>>>0)>($1>>>0);
+ if (!($11)) {
+  HEAP32[$4>>2] = 0;
+  return;
+ }
+ $12 = (($5) - ($1))|0;
+ $13 = ($12|0)==(0);
+ if ($13) {
+  $$0$lcssa = 0;
+ } else {
+  $$022 = 0;
+  while(1) {
+   $14 = (($$022) + ($1))|0;
+   $15 = (($3) + ($14<<2)|0);
+   $16 = HEAP32[$15>>2]|0;
+   $17 = (($3) + ($$022<<2)|0);
+   HEAP32[$17>>2] = $16;
+   $18 = (($$022) + 1)|0;
+   $exitcond = ($18|0)==($12|0);
+   if ($exitcond) {
+    $$0$lcssa = $12;
+    break;
+   } else {
+    $$022 = $18;
+   }
+  }
+ }
+ $19 = (($3) + ($$0$lcssa<<2)|0);
+ HEAP32[$19>>2] = 0;
+ $20 = HEAP32[$4>>2]|0;
+ $21 = (($20) - ($1))|0;
+ HEAP32[$4>>2] = $21;
+ return;
+}
+function __gcry_mpi_rshift($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$099 = 0, $$1111 = 0, $$2105 = 0, $$3102 = 0, $$lcssa116 = 0, $$lcssa117 
= 0, $$pr = 0, $$pre$phi$phZ2D = 0, $$pre$phiZ2D = 0, $10 = 0, $100 = 0, $101 = 
0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $11 = 0, $12 = 0;
+ var $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, 
$21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 
0, $3 = 0, $30 = 0, $31 = 0;
+ var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, 
$4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, 
$48 = 0, $49 = 0, $5 = 0;
+ var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, 
$58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, 
$66 = 0, $67 = 0, $68 = 0;
+ var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, 
$76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, 
$84 = 0, $85 = 0, $86 = 0;
+ var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, 
$94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, $or$cond3 = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = $2 >>> 5;
+ $4 = $2 & 31;
+ $5 = ($0|0)==(0|0);
+ if (!($5)) {
+  $6 = ((($0)) + 12|0);
+  $7 = HEAP32[$6>>2]|0;
+  $8 = $7 & 16;
+  $9 = ($8|0)==(0);
+  if (!($9)) {
+   __gcry_mpi_immutable_failed();
+   return;
+  }
+ }
+ $10 = ($0|0)==($1|0);
+ L6: do {
+  if ($10) {
+   $11 = ((($0)) + 4|0);
+   $12 = HEAP32[$11>>2]|0;
+   $13 = ($3>>>0)<($12>>>0);
+   if (!($13)) {
+    HEAP32[$11>>2] = 0;
+    return;
+   }
+   $14 = ($3|0)==(0);
+   if ($14) {
+    $34 = $12;
+   } else {
+    $15 = ((($0)) + 16|0);
+    $16 = HEAP32[$15>>2]|0;
+    $17 = (($16) + ($3<<2)|0);
+    $18 = HEAP32[$17>>2]|0;
+    HEAP32[$16>>2] = $18;
+    $19 = HEAP32[$11>>2]|0;
+    $20 = (($19) - ($3))|0;
+    $21 = ($20>>>0)>(1);
+    if ($21) {
+     $$099 = 1;
+     while(1) {
+      $22 = (($$099) + ($3))|0;
+      $23 = (($16) + ($22<<2)|0);
+      $24 = HEAP32[$23>>2]|0;
+      $25 = (($16) + ($$099<<2)|0);
+      HEAP32[$25>>2] = $24;
+      $26 = (($$099) + 1)|0;
+      $27 = HEAP32[$11>>2]|0;
+      $28 = (($27) - ($3))|0;
+      $29 = ($26>>>0)<($28>>>0);
+      if ($29) {
+       $$099 = $26;
+      } else {
+       $$lcssa116 = $26;
+       break;
+      }
+     }
+    } else {
+     $$lcssa116 = 1;
+    }
+    $30 = (($16) + ($$lcssa116<<2)|0);
+    HEAP32[$30>>2] = 0;
+    $31 = HEAP32[$11>>2]|0;
+    $32 = (($31) - ($3))|0;
+    HEAP32[$11>>2] = $32;
+    $34 = $32;
+   }
+   $33 = ($34|0)!=(0);
+   $35 = ($4|0)!=(0);
+   $or$cond = $35 & $33;
+   if ($or$cond) {
+    $36 = ((($0)) + 16|0);
+    $37 = HEAP32[$36>>2]|0;
+    (__gcry_mpih_rshift($37,$37,$34,$4)|0);
+    $$pre$phi$phZ2D = $11;
+    label = 34;
+   } else {
+    $$pre$phi$phZ2D = $11;
+    label = 34;
+   }
+  } else {
+   $38 = ($3|0)==(0);
+   $39 = ((($1)) + 4|0);
+   $40 = HEAP32[$39>>2]|0;
+   $41 = ((($1)) + 8|0);
+   $42 = HEAP32[$41>>2]|0;
+   $43 = ((($0)) + 8|0);
+   HEAP32[$43>>2] = $42;
+   $44 = HEAP32[$0>>2]|0;
+   $45 = ($44|0)<($40|0);
+   if ($38) {
+    if ($45) {
+     __gcry_mpi_resize($0,$40);
+    }
+    $81 = ((($0)) + 4|0);
+    HEAP32[$81>>2] = $40;
+    $82 = ($40|0)==(0);
+    if ($82) {
+     return;
+    }
+    $83 = ($4|0)==(0);
+    if (!($83)) {
+     $84 = ((($0)) + 16|0);
+     $85 = HEAP32[$84>>2]|0;
+     $86 = ((($1)) + 16|0);
+     $87 = HEAP32[$86>>2]|0;
+     (__gcry_mpih_rshift($85,$87,$40,$4)|0);
+     $$pre$phi$phZ2D = $81;
+     label = 34;
+     break;
+    }
+    $88 = ((($1)) + 16|0);
+    $89 = HEAP32[$88>>2]|0;
+    $90 = ((($0)) + 16|0);
+    $91 = HEAP32[$90>>2]|0;
+    $$3102 = 0;
+    while(1) {
+     $92 = (($89) + ($$3102<<2)|0);
+     $93 = HEAP32[$92>>2]|0;
+     $94 = (($91) + ($$3102<<2)|0);
+     HEAP32[$94>>2] = $93;
+     $95 = (($$3102) + 1)|0;
+     $96 = HEAP32[$81>>2]|0;
+     $97 = ($95>>>0)<($96>>>0);
+     if ($97) {
+      $$3102 = $95;
+     } else {
+      $$pre$phiZ2D = $81;$99 = $96;
+      break L6;
+     }
+    }
+   }
+   if ($45) {
+    __gcry_mpi_resize($0,$40);
+   }
+   $46 = ((($0)) + 4|0);
+   HEAP32[$46>>2] = $40;
+   $47 = HEAP32[$39>>2]|0;
+   $48 = ($47|0)==(0);
+   if ($48) {
+    $59 = 0;
+   } else {
+    $49 = ((($1)) + 16|0);
+    $50 = HEAP32[$49>>2]|0;
+    $51 = ((($0)) + 16|0);
+    $52 = HEAP32[$51>>2]|0;
+    $$1111 = 0;
+    while(1) {
+     $53 = (($50) + ($$1111<<2)|0);
+     $54 = HEAP32[$53>>2]|0;
+     $55 = (($52) + ($$1111<<2)|0);
+     HEAP32[$55>>2] = $54;
+     $56 = (($$1111) + 1)|0;
+     $57 = HEAP32[$39>>2]|0;
+     $58 = ($56>>>0)<($57>>>0);
+     if ($58) {
+      $$1111 = $56;
+     } else {
+      $59 = $56;
+      break;
+     }
+    }
+   }
+   HEAP32[$46>>2] = $59;
+   $60 = ($3>>>0)<($59>>>0);
+   if (!($60)) {
+    HEAP32[$46>>2] = 0;
+    return;
+   }
+   $61 = ((($0)) + 16|0);
+   $62 = HEAP32[$61>>2]|0;
+   $63 = (($62) + ($3<<2)|0);
+   $64 = HEAP32[$63>>2]|0;
+   HEAP32[$62>>2] = $64;
+   $65 = HEAP32[$46>>2]|0;
+   $66 = (($65) - ($3))|0;
+   $67 = ($66>>>0)>(1);
+   if ($67) {
+    $$2105 = 1;
+    while(1) {
+     $68 = (($$2105) + ($3))|0;
+     $69 = (($62) + ($68<<2)|0);
+     $70 = HEAP32[$69>>2]|0;
+     $71 = (($62) + ($$2105<<2)|0);
+     HEAP32[$71>>2] = $70;
+     $72 = (($$2105) + 1)|0;
+     $73 = HEAP32[$46>>2]|0;
+     $74 = (($73) - ($3))|0;
+     $75 = ($72>>>0)<($74>>>0);
+     if ($75) {
+      $$2105 = $72;
+     } else {
+      $$lcssa117 = $72;
+      break;
+     }
+    }
+   } else {
+    $$lcssa117 = 1;
+   }
+   $76 = (($62) + ($$lcssa117<<2)|0);
+   HEAP32[$76>>2] = 0;
+   $77 = HEAP32[$46>>2]|0;
+   $78 = (($77) - ($3))|0;
+   HEAP32[$46>>2] = $78;
+   $79 = ($78|0)!=(0);
+   $80 = ($4|0)!=(0);
+   $or$cond3 = $80 & $79;
+   if ($or$cond3) {
+    (__gcry_mpih_rshift($62,$62,$78,$4)|0);
+    $$pre$phi$phZ2D = $46;
+    label = 34;
+   } else {
+    $$pre$phiZ2D = $46;$99 = $78;
+   }
+  }
+ } while(0);
+ if ((label|0) == 34) {
+  $$pr = HEAP32[$$pre$phi$phZ2D>>2]|0;
+  $$pre$phiZ2D = $$pre$phi$phZ2D;$99 = $$pr;
+ }
+ $98 = ($99|0)>(0);
+ if (!($98)) {
+  return;
+ }
+ $100 = ((($0)) + 16|0);
+ $101 = HEAP32[$100>>2]|0;
+ $103 = $99;
+ while(1) {
+  $102 = (($103) + -1)|0;
+  $104 = (($101) + ($102<<2)|0);
+  $105 = HEAP32[$104>>2]|0;
+  $106 = ($105|0)==(0);
+  if (!($106)) {
+   label = 39;
+   break;
+  }
+  HEAP32[$$pre$phiZ2D>>2] = $102;
+  $107 = ($103|0)>(1);
+  if ($107) {
+   $103 = $102;
+  } else {
+   label = 39;
+   break;
+  }
+ }
+ if ((label|0) == 39) {
+  return;
+ }
+}
+function __gcry_mpi_lshift_limbs($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$032 = 0, $$032$in = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 
= 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 
0, $7 = 0, $8 = 0, $9 = 0;
+ var $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 4|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = ($1|0)!=(0);
+ $5 = ($3|0)!=(0);
+ $or$cond = $4 & $5;
+ if (!($or$cond)) {
+  return;
+ }
+ $6 = HEAP32[$0>>2]|0;
+ $7 = (($3) + ($1))|0;
+ $8 = ($6>>>0)<($7>>>0);
+ if ($8) {
+  __gcry_mpi_resize($0,$7);
+ }
+ $9 = ((($0)) + 16|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ($3|0)>(0);
+ if ($11) {
+  $$032$in = $3;
+  while(1) {
+   $$032 = (($$032$in) + -1)|0;
+   $12 = (($10) + ($$032<<2)|0);
+   $13 = HEAP32[$12>>2]|0;
+   $14 = (($$032) + ($1))|0;
+   $15 = (($10) + ($14<<2)|0);
+   HEAP32[$15>>2] = $13;
+   $16 = ($$032$in|0)>(1);
+   if ($16) {
+    $$032$in = $$032;
+   } else {
+    break;
+   }
+  }
+ }
+ $17 = $1 << 2;
+ _memset(($10|0),0,($17|0))|0;
+ $18 = HEAP32[$2>>2]|0;
+ $19 = (($18) + ($1))|0;
+ HEAP32[$2>>2] = $19;
+ return;
+}
+function __gcry_mpi_lshift($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$032$i = 0, $$032$i63 = 0, $$032$in$i = 0, $$032$in$i62 = 0, $$067 = 0, 
$$pr = 0, $$pre = 0, $$pre$phi$phZ2D = 0, $$pre$phiZ2D = 0, $10 = 0, $11 = 0, 
$12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
+ var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, 
$29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, 
$37 = 0, $38 = 0, $39 = 0;
+ var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, 
$47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, 
$55 = 0, $56 = 0, $57 = 0;
+ var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, 
$65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, 
$73 = 0, $74 = 0, $75 = 0;
+ var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $9 = 0, 
$exitcond = 0, $or$cond = 0, $or$cond3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = $2 >>> 5;
+ $4 = $2 & 31;
+ $5 = ($0|0)==(0|0);
+ if (!($5)) {
+  $6 = ((($0)) + 12|0);
+  $7 = HEAP32[$6>>2]|0;
+  $8 = $7 & 16;
+  $9 = ($8|0)==(0);
+  if (!($9)) {
+   __gcry_mpi_immutable_failed();
+   return;
+  }
+ }
+ $10 = ($0|0)!=($1|0);
+ $11 = ($2|0)!=(0);
+ $or$cond = $10 | $11;
+ if (!($or$cond)) {
+  return;
+ }
+ if ($10) {
+  $12 = ((($1)) + 4|0);
+  $13 = HEAP32[$12>>2]|0;
+  $14 = ((($1)) + 8|0);
+  $15 = HEAP32[$14>>2]|0;
+  $16 = HEAP32[$0>>2]|0;
+  $17 = (($3) + 1)|0;
+  $18 = (($17) + ($13))|0;
+  $19 = ($16>>>0)<($18>>>0);
+  if ($19) {
+   __gcry_mpi_resize($0,$18);
+  }
+  $20 = ((($0)) + 16|0);
+  $21 = HEAP32[$20>>2]|0;
+  $22 = ((($1)) + 16|0);
+  $23 = HEAP32[$22>>2]|0;
+  $24 = ($13|0)==(0);
+  if (!($24)) {
+   $$067 = 0;
+   while(1) {
+    $25 = (($23) + ($$067<<2)|0);
+    $26 = HEAP32[$25>>2]|0;
+    $27 = (($21) + ($$067<<2)|0);
+    HEAP32[$27>>2] = $26;
+    $28 = (($$067) + 1)|0;
+    $exitcond = ($28|0)==($13|0);
+    if ($exitcond) {
+     break;
+    } else {
+     $$067 = $28;
+    }
+   }
+  }
+  $29 = ((($0)) + 4|0);
+  HEAP32[$29>>2] = $13;
+  $30 = ((($1)) + 12|0);
+  $31 = HEAP32[$30>>2]|0;
+  $32 = ((($0)) + 12|0);
+  HEAP32[$32>>2] = $31;
+  $33 = ((($0)) + 8|0);
+  HEAP32[$33>>2] = $15;
+ }
+ $34 = ($3|0)==(0);
+ $35 = ($4|0)!=(0);
+ $or$cond3 = $34 | $35;
+ if ($or$cond3) {
+  if ($11) {
+   $53 = (($3) + 1)|0;
+   $54 = ((($0)) + 4|0);
+   $55 = HEAP32[$54>>2]|0;
+   $56 = ($55|0)==(0);
+   if (!($56)) {
+    $57 = HEAP32[$0>>2]|0;
+    $58 = (($55) + ($53))|0;
+    $59 = ($57>>>0)<($58>>>0);
+    if ($59) {
+     __gcry_mpi_resize($0,$58);
+    }
+    $60 = ((($0)) + 16|0);
+    $61 = HEAP32[$60>>2]|0;
+    $62 = ($55|0)>(0);
+    if ($62) {
+     $$032$in$i62 = $55;
+     while(1) {
+      $$032$i63 = (($$032$in$i62) + -1)|0;
+      $63 = (($61) + ($$032$i63<<2)|0);
+      $64 = HEAP32[$63>>2]|0;
+      $65 = (($$032$in$i62) + ($3))|0;
+      $66 = (($61) + ($65<<2)|0);
+      HEAP32[$66>>2] = $64;
+      $67 = ($$032$in$i62|0)>(1);
+      if ($67) {
+       $$032$in$i62 = $$032$i63;
+      } else {
+       break;
+      }
+     }
+    }
+    $68 = $53 << 2;
+    _memset(($61|0),0,($68|0))|0;
+    $69 = HEAP32[$54>>2]|0;
+    $70 = (($69) + ($53))|0;
+    HEAP32[$54>>2] = $70;
+   }
+   $71 = (32 - ($4))|0;
+   __gcry_mpi_rshift($0,$0,$71);
+   $$pre$phi$phZ2D = $54;
+  } else {
+   $$pre = ((($0)) + 4|0);
+   $$pre$phi$phZ2D = $$pre;
+  }
+  $$pr = HEAP32[$$pre$phi$phZ2D>>2]|0;
+  $$pre$phiZ2D = $$pre$phi$phZ2D;$73 = $$pr;
+ } else {
+  $36 = ((($0)) + 4|0);
+  $37 = HEAP32[$36>>2]|0;
+  $38 = ($37|0)==(0);
+  if ($38) {
+   return;
+  }
+  $39 = HEAP32[$0>>2]|0;
+  $40 = (($37) + ($3))|0;
+  $41 = ($39>>>0)<($40>>>0);
+  if ($41) {
+   __gcry_mpi_resize($0,$40);
+  }
+  $42 = ((($0)) + 16|0);
+  $43 = HEAP32[$42>>2]|0;
+  $44 = ($37|0)>(0);
+  if ($44) {
+   $$032$in$i = $37;
+   while(1) {
+    $$032$i = (($$032$in$i) + -1)|0;
+    $45 = (($43) + ($$032$i<<2)|0);
+    $46 = HEAP32[$45>>2]|0;
+    $47 = (($$032$i) + ($3))|0;
+    $48 = (($43) + ($47<<2)|0);
+    HEAP32[$48>>2] = $46;
+    $49 = ($$032$in$i|0)>(1);
+    if ($49) {
+     $$032$in$i = $$032$i;
+    } else {
+     break;
+    }
+   }
+  }
+  $50 = $3 << 2;
+  _memset(($43|0),0,($50|0))|0;
+  $51 = HEAP32[$36>>2]|0;
+  $52 = (($51) + ($3))|0;
+  HEAP32[$36>>2] = $52;
+  $$pre$phiZ2D = $36;$73 = $52;
+ }
+ $72 = ($73|0)>(0);
+ if (!($72)) {
+  return;
+ }
+ $74 = ((($0)) + 16|0);
+ $75 = HEAP32[$74>>2]|0;
+ $77 = $73;
+ while(1) {
+  $76 = (($77) + -1)|0;
+  $78 = (($75) + ($76<<2)|0);
+  $79 = HEAP32[$78>>2]|0;
+  $80 = ($79|0)==(0);
+  if (!($80)) {
+   label = 35;
+   break;
+  }
+  HEAP32[$$pre$phiZ2D>>2] = $76;
+  $81 = ($77|0)>(1);
+  if ($81) {
+   $77 = $76;
+  } else {
+   label = 35;
+   break;
+  }
+ }
+ if ((label|0) == 35) {
+  return;
+ }
+}
+function __gcry_mpi_cmp_ui($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$ = 0, $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 
= 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_mpi_normalize($0);
+ $2 = ((($0)) + 4|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = ($3|0)==(0);
+ if ($4) {
+  $5 = ($1|0)!=(0);
+  $6 = $5 << 31 >> 31;
+  $$0 = $6;
+  return ($$0|0);
+ }
+ $7 = ((($0)) + 8|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ($8|0)==(0);
+ if (!($9)) {
+  $$0 = -1;
+  return ($$0|0);
+ }
+ $10 = ($3|0)==(1);
+ if ($10) {
+  $11 = ((($0)) + 16|0);
+  $12 = HEAP32[$11>>2]|0;
+  $13 = HEAP32[$12>>2]|0;
+  $14 = ($13>>>0)>($1>>>0);
+  $15 = ($13>>>0)<($1>>>0);
+  $$ = $15 << 31 >> 31;
+  $spec$select = $14 ? 1 : $$;
+  return ($spec$select|0);
+ } else {
+  $$0 = 1;
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function __gcry_mpi_cmp($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$ = 0, $$0 = 0, $$01619$i = 0, $$01619$in$i = 0, $$phi$trans$insert = 0, 
$$phi$trans$insert66 = 0, $$pre = 0, $$pre67 = 0, $$pre71 = 0, $10 = 0, $11 = 
0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 
0;
+ var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, 
$28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0;
+ var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, 
$46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0;
+ var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $7 
= 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($0|0)!=(0|0);
+ if ($2) {
+  $3 = ((($0)) + 12|0);
+  $4 = HEAP32[$3>>2]|0;
+  $5 = $4 & 4;
+  $6 = ($5|0)==(0);
+  if ($6) {
+   label = 3;
+  } else {
+   $13 = $4;
+  }
+ } else {
+  label = 3;
+ }
+ do {
+  if ((label|0) == 3) {
+   $7 = ($1|0)==(0|0);
+   if (!($7)) {
+    $8 = ((($1)) + 12|0);
+    $9 = HEAP32[$8>>2]|0;
+    $10 = $9 & 4;
+    $11 = ($10|0)==(0);
+    if (!($11)) {
+     if ($2) {
+      $$phi$trans$insert = ((($0)) + 12|0);
+      $$pre = HEAP32[$$phi$trans$insert>>2]|0;
+      $13 = $$pre;
+      break;
+     } else {
+      $$0 = 1;
+      return ($$0|0);
+     }
+    }
+   }
+   __gcry_mpi_normalize($0);
+   __gcry_mpi_normalize($1);
+   $36 = ((($0)) + 4|0);
+   $37 = HEAP32[$36>>2]|0;
+   $38 = ((($1)) + 4|0);
+   $39 = HEAP32[$38>>2]|0;
+   $40 = ((($0)) + 8|0);
+   $41 = HEAP32[$40>>2]|0;
+   $42 = ($41|0)==(0);
+   $43 = ((($1)) + 8|0);
+   $44 = HEAP32[$43>>2]|0;
+   $45 = ($44|0)==(0);
+   if ($42) {
+    if (!($45)) {
+     $$0 = 1;
+     return ($$0|0);
+    }
+   } else {
+    if ($45) {
+     $$0 = -1;
+     return ($$0|0);
+    }
+   }
+   $46 = ($37|0)==($39|0);
+   do {
+    if (!($46)) {
+     if ($42) {
+      if (!($45)) {
+       break;
+      }
+      $47 = (($37) - ($39))|0;
+      $$0 = $47;
+      return ($$0|0);
+     } else {
+      if ($45) {
+       break;
+      }
+      $48 = (($39) + ($37))|0;
+      $$0 = $48;
+      return ($$0|0);
+     }
+    }
+   } while(0);
+   $49 = ($37|0)==(0);
+   if ($49) {
+    $$0 = 0;
+    return ($$0|0);
+   }
+   $50 = ((($0)) + 16|0);
+   $51 = HEAP32[$50>>2]|0;
+   $52 = ((($1)) + 16|0);
+   $53 = HEAP32[$52>>2]|0;
+   $54 = ($37|0)>(0);
+   if (!($54)) {
+    $$0 = 0;
+    return ($$0|0);
+   }
+   $$01619$in$i = $37;
+   while(1) {
+    $$01619$i = (($$01619$in$i) + -1)|0;
+    $56 = (($51) + ($$01619$i<<2)|0);
+    $57 = HEAP32[$56>>2]|0;
+    $58 = (($53) + ($$01619$i<<2)|0);
+    $59 = HEAP32[$58>>2]|0;
+    $60 = ($57|0)==($59|0);
+    if (!($60)) {
+     label = 30;
+     break;
+    }
+    $55 = ($$01619$in$i|0)>(1);
+    if ($55) {
+     $$01619$in$i = $$01619$i;
+    } else {
+     $$0 = 0;
+     label = 31;
+     break;
+    }
+   }
+   if ((label|0) == 30) {
+    $61 = ($57>>>0)<=($59>>>0);
+    $62 = ($41|0)!=(0);
+    $63 = $62 ^ $61;
+    $$ = $63 ? -1 : 1;
+    return ($$|0);
+   }
+   else if ((label|0) == 31) {
+    return ($$0|0);
+   }
+  }
+ } while(0);
+ $12 = $13 & 4;
+ $14 = ($12|0)==(0);
+ $15 = ($1|0)==(0|0);
+ if ($14) {
+  if (!($15)) {
+   $$phi$trans$insert66 = ((($1)) + 12|0);
+   $$pre67 = HEAP32[$$phi$trans$insert66>>2]|0;
+   $$pre71 = $$pre67 & 4;
+   $20 = ($$pre71|0)==(0);
+   if (!($20)) {
+    $$0 = 1;
+    return ($$0|0);
+   }
+  }
+ } else {
+  if ($15) {
+   $$0 = -1;
+   return ($$0|0);
+  }
+  $16 = ((($1)) + 12|0);
+  $17 = HEAP32[$16>>2]|0;
+  $18 = $17 & 4;
+  $19 = ($18|0)==(0);
+  if ($19) {
+   $$0 = -1;
+   return ($$0|0);
+  }
+ }
+ $21 = ((($0)) + 8|0);
+ $22 = HEAP32[$21>>2]|0;
+ $23 = ((($1)) + 8|0);
+ $24 = HEAP32[$23>>2]|0;
+ $25 = $22 | $24;
+ $26 = ($25|0)==(0);
+ if ($26) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $27 = ($22|0)<($24|0);
+ if ($27) {
+  $$0 = -1;
+  return ($$0|0);
+ }
+ $28 = ($22|0)>($24|0);
+ if ($28) {
+  $$0 = 1;
+  return ($$0|0);
+ }
+ $29 = (($22) + 7)|0;
+ $30 = ((($1)) + 16|0);
+ $31 = ((($0)) + 16|0);
+ $32 = HEAP32[$31>>2]|0;
+ $33 = HEAP32[$30>>2]|0;
+ $34 = (($29|0) / 8)&-1;
+ $35 = (_memcmp($32,$33,$34)|0);
+ $$0 = $35;
+ return ($$0|0);
+}
+function __gcry_mpi_fdiv_r($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$018 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($2)) + 8|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ($0|0)==($2|0);
+ if ($5) {
+  $6 = (__gcry_mpi_copy($2)|0);
+  $$0 = $6;$$018 = $6;
+ } else {
+  $$0 = 0;$$018 = $2;
+ }
+ __gcry_mpi_tdiv_qr(0,$0,$1,$$018);
+ $7 = ($4|0)!=(0);
+ $8 = ((($1)) + 8|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ($9|0)!=(0);
+ $11 = $7 ^ $10;
+ if ($11) {
+  $12 = ((($0)) + 4|0);
+  $13 = HEAP32[$12>>2]|0;
+  $14 = ($13|0)==(0);
+  if (!($14)) {
+   __gcry_mpi_add($0,$0,$$018);
+  }
+ }
+ $15 = ($$0|0)==(0|0);
+ if ($15) {
+  return;
+ }
+ __gcry_mpi_free($$0);
+ return;
+}
+function __gcry_mpi_tdiv_qr($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0218250 = 0, $$0219 = 0, $$0220 = 0, $$0221 = 0, $$0222 = 0, $$0225253 
= 0, $$0226 = 0, $$0227240 = 0, $$0228 = 0, $$0247 = 0, $$1 = 0, $$1224 = 0, 
$$1229 = 0, $$2$lcssa = 0, $$2230 = 0, $$2243 = 0, $$3 = 0, $$3231241 = 0, 
$$neg235 = 0, $10 = 0;
+ var $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, 
$107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, 
$114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0;
+ var $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, $136 = 0;
+ var $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 
= 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 
= 0, $151 = 0, $16 = 0, $17 = 0, $18 = 0;
+ var $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;
+ var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, 
$46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0;
+ var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, 
$64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, 
$72 = 0, $73 = 0, $74 = 0;
+ var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, 
$82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, 
$90 = 0, $91 = 0, $92 = 0;
+ var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond 
= 0, $exitcond257 = 0, $exitcond258 = 0, $exitcond259 = 0, $or$cond = 0, 
$or$cond232 = 0, $or$cond233 = 0, $or$cond256 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(64|0);
+ $4 = sp + 32|0;
+ $5 = sp;
+ $6 = ((($2)) + 4|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ((($3)) + 4|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ((($2)) + 8|0);
+ $11 = HEAP32[$10>>2]|0;
+ $12 = ((($3)) + 8|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = $13 ^ $11;
+ $15 = (($7) + 1)|0;
+ __gcry_mpi_resize($1,$15);
+ $16 = (($15) - ($9))|0;
+ $17 = ($16|0)<(1);
+ if ($17) {
+  $18 = ($2|0)==($1|0);
+  if (!($18)) {
+   $19 = HEAP32[$6>>2]|0;
+   $20 = ((($1)) + 4|0);
+   HEAP32[$20>>2] = $19;
+   $21 = HEAP32[$10>>2]|0;
+   $22 = ((($1)) + 8|0);
+   HEAP32[$22>>2] = $21;
+   $23 = ($7|0)>(0);
+   if ($23) {
+    $24 = ((($2)) + 16|0);
+    $25 = HEAP32[$24>>2]|0;
+    $26 = ((($1)) + 16|0);
+    $27 = HEAP32[$26>>2]|0;
+    $$0227240 = 0;
+    while(1) {
+     $28 = (($25) + ($$0227240<<2)|0);
+     $29 = HEAP32[$28>>2]|0;
+     $30 = (($27) + ($$0227240<<2)|0);
+     HEAP32[$30>>2] = $29;
+     $31 = (($$0227240) + 1)|0;
+     $exitcond = ($31|0)==($7|0);
+     if ($exitcond) {
+      break;
+     } else {
+      $$0227240 = $31;
+     }
+    }
+   }
+  }
+  $32 = ($0|0)==(0|0);
+  if ($32) {
+   STACKTOP = sp;return;
+  }
+  $33 = ((($0)) + 4|0);
+  HEAP32[$33>>2] = 0;
+  $34 = ((($0)) + 8|0);
+  HEAP32[$34>>2] = 0;
+  STACKTOP = sp;return;
+ }
+ $35 = ($0|0)!=(0|0);
+ if ($35) {
+  __gcry_mpi_resize($0,$16);
+ }
+ $36 = ((($2)) + 16|0);
+ $37 = HEAP32[$36>>2]|0;
+ $38 = ((($3)) + 16|0);
+ $39 = HEAP32[$38>>2]|0;
+ $40 = ((($1)) + 16|0);
+ $41 = HEAP32[$40>>2]|0;
+ $42 = ($9|0)==(1);
+ if ($42) {
+  if ($35) {
+   $43 = ((($0)) + 16|0);
+   $44 = HEAP32[$43>>2]|0;
+   $45 = HEAP32[$39>>2]|0;
+   $46 = (__gcry_mpih_divmod_1($44,$37,$7,$45)|0);
+   $47 = (($16) + -1)|0;
+   $48 = (($44) + ($47<<2)|0);
+   $49 = HEAP32[$48>>2]|0;
+   $50 = ($49|0)==(0);
+   $51 = $50&1;
+   $52 = (($16) - ($51))|0;
+   $53 = ((($0)) + 4|0);
+   HEAP32[$53>>2] = $52;
+   $54 = ((($0)) + 8|0);
+   HEAP32[$54>>2] = $14;
+   $$0226 = $46;
+  } else {
+   $55 = HEAP32[$39>>2]|0;
+   $56 = (__gcry_mpih_mod_1($37,$7,$55)|0);
+   $$0226 = $56;
+  }
+  HEAP32[$41>>2] = $$0226;
+  $57 = ($$0226|0)!=(0);
+  $58 = $57&1;
+  $59 = ((($1)) + 4|0);
+  HEAP32[$59>>2] = $58;
+  $60 = ((($1)) + 8|0);
+  HEAP32[$60>>2] = $11;
+  STACKTOP = sp;return;
+ }
+ if ($35) {
+  $61 = ((($0)) + 16|0);
+  $62 = HEAP32[$61>>2]|0;
+  $63 = ($62|0)==($37|0);
+  if ($63) {
+   HEAP32[$5>>2] = $7;
+   $64 = ((($0)) + 12|0);
+   $65 = HEAP32[$64>>2]|0;
+   $66 = $65 & 1;
+   $67 = (__gcry_mpi_alloc_limb_space($7,$66)|0);
+   HEAP32[$4>>2] = $67;
+   $68 = ($7|0)>(0);
+   if ($68) {
+    $$0225253 = 0;
+    while(1) {
+     $69 = (($37) + ($$0225253<<2)|0);
+     $70 = HEAP32[$69>>2]|0;
+     $71 = (($67) + ($$0225253<<2)|0);
+     HEAP32[$71>>2] = $70;
+     $72 = (($$0225253) + 1)|0;
+     $exitcond259 = ($72|0)==($7|0);
+     if ($exitcond259) {
+      $$0219 = $67;$$0221 = $37;$$0228 = 1;
+      break;
+     } else {
+      $$0225253 = $72;
+     }
+    }
+   } else {
+    $$0219 = $67;$$0221 = $37;$$0228 = 1;
+   }
+  } else {
+   $$0219 = $37;$$0221 = $62;$$0228 = 0;
+  }
+ } else {
+  $73 = (($41) + ($9<<2)|0);
+  $$0219 = $37;$$0221 = $73;$$0228 = 0;
+ }
+ $74 = (($9) + -1)|0;
+ $75 = (($39) + ($74<<2)|0);
+ $76 = HEAP32[$75>>2]|0;
+ $77 = ($76>>>0)<(65536);
+ $78 = ($76>>>0)<(256);
+ $79 = $78 ? 0 : 8;
+ $80 = ($76>>>0)<(16777216);
+ $81 = $80 ? 16 : 24;
+ $82 = $77 ? $79 : $81;
+ $83 = $76 >>> $82;
+ $84 = (14784 + ($83)|0);
+ $85 = HEAP8[$84>>0]|0;
+ $86 = $85&255;
+ $$neg235 = (32 - ($86))|0;
+ $87 = (($$neg235) - ($82))|0;
+ $88 = ($87|0)!=(0);
+ if ($88) {
+  $89 = (($5) + ($$0228<<2)|0);
+  HEAP32[$89>>2] = $9;
+  $90 = ($3|0)==(0|0);
+  if ($90) {
+   $94 = 0;
+  } else {
+   $91 = ((($3)) + 12|0);
+   $92 = HEAP32[$91>>2]|0;
+   $93 = $92 & 1;
+   $94 = $93;
+  }
+  $95 = (__gcry_mpi_alloc_limb_space($9,$94)|0);
+  $96 = (($$0228) + 1)|0;
+  $97 = (($4) + ($$0228<<2)|0);
+  HEAP32[$97>>2] = $95;
+  (__gcry_mpih_lshift($95,$39,$9,$87)|0);
+  $98 = (__gcry_mpih_lshift($41,$$0219,$7,$87)|0);
+  $99 = ($98|0)==(0);
+  if ($99) {
+   $$1 = $95;$$1224 = $7;$$2230 = $96;
+  } else {
+   $100 = (($41) + ($7<<2)|0);
+   HEAP32[$100>>2] = $98;
+   $$1 = $95;$$1224 = $15;$$2230 = $96;
+  }
+ } else {
+  $101 = ($39|0)==($41|0);
+  $102 = ($39|0)==($$0221|0);
+  $or$cond232 = $35 & $102;
+  $or$cond233 = $101 | $or$cond232;
+  if ($or$cond233) {
+   $103 = (($5) + ($$0228<<2)|0);
+   HEAP32[$103>>2] = $9;
+   $104 = ($3|0)==(0|0);
+   if ($104) {
+    $108 = 0;
+   } else {
+    $105 = ((($3)) + 12|0);
+    $106 = HEAP32[$105>>2]|0;
+    $107 = $106 & 1;
+    $108 = $107;
+   }
+   $109 = (__gcry_mpi_alloc_limb_space($9,$108)|0);
+   $110 = (($$0228) + 1)|0;
+   $111 = (($4) + ($$0228<<2)|0);
+   HEAP32[$111>>2] = $109;
+   $112 = ($9|0)>(0);
+   if ($112) {
+    $$0218250 = 0;
+    while(1) {
+     $113 = (($39) + ($$0218250<<2)|0);
+     $114 = HEAP32[$113>>2]|0;
+     $115 = (($109) + ($$0218250<<2)|0);
+     HEAP32[$115>>2] = $114;
+     $116 = (($$0218250) + 1)|0;
+     $exitcond258 = ($116|0)==($9|0);
+     if ($exitcond258) {
+      $$0220 = $109;$$1229 = $110;
+      break;
+     } else {
+      $$0218250 = $116;
+     }
+    }
+   } else {
+    $$0220 = $109;$$1229 = $110;
+   }
+  } else {
+   $$0220 = $39;$$1229 = $$0228;
+  }
+  $117 = ($41|0)!=($$0219|0);
+  $118 = ($7|0)>(0);
+  $or$cond256 = $117 & $118;
+  if ($or$cond256) {
+   $$0247 = 0;
+   while(1) {
+    $119 = (($$0219) + ($$0247<<2)|0);
+    $120 = HEAP32[$119>>2]|0;
+    $121 = (($41) + ($$0247<<2)|0);
+    HEAP32[$121>>2] = $120;
+    $122 = (($$0247) + 1)|0;
+    $exitcond257 = ($122|0)==($7|0);
+    if ($exitcond257) {
+     $$1 = $$0220;$$1224 = $7;$$2230 = $$1229;
+     break;
+    } else {
+     $$0247 = $122;
+    }
+   }
+  } else {
+   $$1 = $$0220;$$1224 = $7;$$2230 = $$1229;
+  }
+ }
+ $123 = (__gcry_mpih_divrem($$0221,0,$41,$$1224,$$1,$9)|0);
+ if ($35) {
+  $124 = (($$1224) - ($9))|0;
+  $125 = ($123|0)==(0);
+  if ($125) {
+   $$0222 = $124;
+  } else {
+   $126 = (($124) + 1)|0;
+   $127 = (($$0221) + ($124<<2)|0);
+   HEAP32[$127>>2] = $123;
+   $$0222 = $126;
+  }
+  $128 = ((($0)) + 4|0);
+  HEAP32[$128>>2] = $$0222;
+  $129 = ((($0)) + 8|0);
+  HEAP32[$129>>2] = $14;
+ }
+ $130 = ($9|0)>(0);
+ L59: do {
+  if ($130) {
+   $$2243 = $9;
+   while(1) {
+    $132 = (($$2243) + -1)|0;
+    $133 = (($41) + ($132<<2)|0);
+    $134 = HEAP32[$133>>2]|0;
+    $135 = ($134|0)==(0);
+    if (!($135)) {
+     $$2$lcssa = $$2243;
+     break L59;
+    }
+    $131 = ($$2243|0)>(1);
+    if ($131) {
+     $$2243 = $132;
+    } else {
+     $$2$lcssa = $132;
+     break;
+    }
+   }
+  } else {
+   $$2$lcssa = $9;
+  }
+ } while(0);
+ $136 = ($$2$lcssa|0)!=(0);
+ $or$cond = $88 & $136;
+ if ($or$cond) {
+  (__gcry_mpih_rshift($41,$41,$$2$lcssa,$87)|0);
+  $137 = (($$2$lcssa) + -1)|0;
+  $138 = (($41) + ($137<<2)|0);
+  $139 = HEAP32[$138>>2]|0;
+  $140 = ($139|0)==(0);
+  $141 = $140&1;
+  $142 = (($$2$lcssa) - ($141))|0;
+  $$3 = $142;
+ } else {
+  $$3 = $$2$lcssa;
+ }
+ $143 = ((($1)) + 4|0);
+ HEAP32[$143>>2] = $$3;
+ $144 = ((($1)) + 8|0);
+ HEAP32[$144>>2] = $11;
+ $145 = ($$2230|0)==(0);
+ if ($145) {
+  STACKTOP = sp;return;
+ }
+ $$3231241 = $$2230;
+ while(1) {
+  $146 = (($$3231241) + -1)|0;
+  $147 = (($4) + ($146<<2)|0);
+  $148 = HEAP32[$147>>2]|0;
+  $149 = (($5) + ($146<<2)|0);
+  $150 = HEAP32[$149>>2]|0;
+  __gcry_mpi_free_limb_space($148,$150);
+  $151 = ($146|0)==(0);
+  if ($151) {
+   break;
+  } else {
+   $$3231241 = $146;
+  }
+ }
+ STACKTOP = sp;return;
+}
+function __gcry_mpi_tdiv_r($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_mpi_tdiv_qr(0,$0,$1,$2);
+ return;
+}
+function __gcry_mpi_fdiv_r_ui($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($1)) + 16|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ((($1)) + 4|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = (__gcry_mpih_mod_1($4,$6,$2)|0);
+ $8 = ($7|0)==(0);
+ if ($8) {
+  $$0 = 0;
+ } else {
+  $9 = (($2) - ($7))|0;
+  $10 = ((($1)) + 8|0);
+  $11 = HEAP32[$10>>2]|0;
+  $12 = ($11|0)==(0);
+  $spec$select = $12 ? $7 : $9;
+  $$0 = $spec$select;
+ }
+ $13 = ($0|0)==(0|0);
+ if ($13) {
+  return ($$0|0);
+ }
+ $14 = ((($0)) + 4|0);
+ $15 = ($$0|0)!=(0);
+ $16 = $15&1;
+ $17 = ((($0)) + 16|0);
+ $18 = HEAP32[$17>>2]|0;
+ HEAP32[$18>>2] = $$0;
+ HEAP32[$14>>2] = $16;
+ return ($$0|0);
+}
+function __gcry_mpi_fdiv_q($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0$i = 0, $$023$i = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 
= 0, $16 = 0, $17 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$or$cond$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($0)) + 4|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = (__gcry_mpi_alloc($4)|0);
+ $6 = ((($2)) + 8|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($0|0)==($2|0);
+ $9 = ($5|0)==($2|0);
+ $or$cond$i = $8 | $9;
+ if ($or$cond$i) {
+  $10 = (__gcry_mpi_copy($2)|0);
+  $$0$i = $10;$$023$i = $10;
+ } else {
+  $$0$i = 0;$$023$i = $2;
+ }
+ __gcry_mpi_tdiv_qr($0,$5,$1,$$023$i);
+ $11 = ((($1)) + 8|0);
+ $12 = HEAP32[$11>>2]|0;
+ $13 = ($7|0)==($12|0);
+ if (!($13)) {
+  $14 = ((($5)) + 4|0);
+  $15 = HEAP32[$14>>2]|0;
+  $16 = ($15|0)==(0);
+  if (!($16)) {
+   __gcry_mpi_sub_ui($0,$0,1);
+   __gcry_mpi_add($5,$5,$$023$i);
+  }
+ }
+ $17 = ($$0$i|0)==(0|0);
+ if ($17) {
+  __gcry_mpi_free($5);
+  return;
+ }
+ __gcry_mpi_free($$0$i);
+ __gcry_mpi_free($5);
+ return;
+}
+function __gcry_mpi_tdiv_q_2exp($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$043$sink = 0, $$044 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, 
$15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 
0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$exitcond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($1)) + 4|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = $2 >>> 5;
+ $6 = (($4) - ($5))|0;
+ $7 = ($4|0)>($5|0);
+ do {
+  if ($7) {
+   $8 = HEAP32[$0>>2]|0;
+   $9 = ($8|0)<($6|0);
+   if ($9) {
+    __gcry_mpi_resize($0,$6);
+   }
+   $10 = ((($0)) + 16|0);
+   $11 = HEAP32[$10>>2]|0;
+   $12 = ((($1)) + 16|0);
+   $13 = HEAP32[$12>>2]|0;
+   $14 = $2 & 31;
+   $15 = ($14|0)==(0);
+   if (!($15)) {
+    $16 = (($13) + ($5<<2)|0);
+    (__gcry_mpih_rshift($11,$16,$6,$14)|0);
+    $17 = (($6) + -1)|0;
+    $18 = (($11) + ($17<<2)|0);
+    $19 = HEAP32[$18>>2]|0;
+    $20 = ($19|0)==(0);
+    $21 = $20&1;
+    $22 = (($6) - ($21))|0;
+    $$043$sink = $22;
+    break;
+   }
+   $23 = ($6|0)>(0);
+   if ($23) {
+    $24 = (($13) + ($5<<2)|0);
+    $$044 = 0;
+    while(1) {
+     $25 = (($24) + ($$044<<2)|0);
+     $26 = HEAP32[$25>>2]|0;
+     $27 = (($11) + ($$044<<2)|0);
+     HEAP32[$27>>2] = $26;
+     $28 = (($$044) + 1)|0;
+     $exitcond = ($28|0)==($6|0);
+     if ($exitcond) {
+      $$043$sink = $6;
+      break;
+     } else {
+      $$044 = $28;
+     }
+    }
+   } else {
+    $$043$sink = $6;
+   }
+  } else {
+   $$043$sink = 0;
+  }
+ } while(0);
+ $29 = ((($0)) + 4|0);
+ HEAP32[$29>>2] = $$043$sink;
+ return;
+}
+function __gcry_mpi_divisible_ui($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 16|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = ((($0)) + 4|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = (__gcry_mpih_mod_1($3,$5,$1)|0);
+ $7 = ($6|0)==(0);
+ $8 = $7&1;
+ return ($8|0);
+}
+function __gcry_mpi_gcd($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 
0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (__gcry_mpi_copy($1)|0);
+ $4 = (__gcry_mpi_copy($2)|0);
+ $5 = ((($3)) + 8|0);
+ HEAP32[$5>>2] = 0;
+ $6 = ((($4)) + 8|0);
+ HEAP32[$6>>2] = 0;
+ $7 = (__gcry_mpi_cmp_ui($4,0)|0);
+ $8 = ($7|0)==(0);
+ if (!($8)) {
+  while(1) {
+   __gcry_mpi_fdiv_r($0,$3,$4);
+   (__gcry_mpi_set($3,$4)|0);
+   (__gcry_mpi_set($4,$0)|0);
+   $9 = (__gcry_mpi_cmp_ui($4,0)|0);
+   $10 = ($9|0)==(0);
+   if ($10) {
+    break;
+   }
+  }
+ }
+ (__gcry_mpi_set($0,$3)|0);
+ __gcry_mpi_free($3);
+ __gcry_mpi_free($4);
+ $11 = (__gcry_mpi_cmp_ui($0,1)|0);
+ $12 = ($11|0)==(0);
+ $13 = $12&1;
+ return ($13|0);
+}
+function __gcry_mpi_invm($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$0140 = 0, $$0141 = 0, $$0143 = 0, $$0145 = 0, $$0146 = 0, $$1 
= 0, $$1142 = 0, $$1144 = 0, $$2 = 0, $$3 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 
0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
+ var $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, 
$27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $36 = 0, $37 = 0;
+ var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, 
$45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0;
+ var $56 = 0, $57 = 0, $58 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp 
= 0;
+ sp = STACKTOP;
+ $3 = (__gcry_mpi_cmp_ui($1,0)|0);
+ $4 = ($3|0)==(0);
+ if ($4) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $5 = (__gcry_mpi_cmp_ui($2,1)|0);
+ $6 = ($5|0)==(0);
+ if ($6) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $7 = (__gcry_mpi_copy($1)|0);
+ $8 = (__gcry_mpi_copy($2)|0);
+ $9 = (__gcry_mpi_test_bit($7,0)|0);
+ $10 = ($9|0)==(0);
+ L7: do {
+  if ($10) {
+   while(1) {
+    $11 = (__gcry_mpi_test_bit($8,0)|0);
+    $12 = ($11|0)==(0);
+    if (!($12)) {
+     break L7;
+    }
+    __gcry_mpi_rshift($7,$7,1);
+    __gcry_mpi_rshift($8,$8,1);
+    $13 = (__gcry_mpi_test_bit($7,0)|0);
+    $14 = ($13|0)==(0);
+    if (!($14)) {
+     break;
+    }
+   }
+  }
+ } while(0);
+ $15 = (__gcry_mpi_test_bit($8,0)|0);
+ $16 = (__gcry_mpi_alloc_set_ui(1)|0);
+ $17 = ($15|0)!=(0);
+ if ($17) {
+  $$0145 = 0;
+ } else {
+  $18 = (__gcry_mpi_alloc_set_ui(0)|0);
+  $$0145 = $18;
+ }
+ $19 = (__gcry_mpi_copy($7)|0);
+ $20 = (__gcry_mpi_copy($8)|0);
+ if ($17) {
+  $$0146 = 0;
+ } else {
+  $21 = ((($7)) + 4|0);
+  $22 = HEAP32[$21>>2]|0;
+  $23 = (__gcry_mpi_alloc($22)|0);
+  __gcry_mpi_sub($23,$16,$7);
+  $$0146 = $23;
+ }
+ $24 = (__gcry_mpi_copy($8)|0);
+ $25 = (__gcry_mpi_test_bit($7,0)|0);
+ $26 = ($25|0)==(0);
+ if ($26) {
+  $35 = (__gcry_mpi_alloc_set_ui(1)|0);
+  if ($17) {
+   $$1142 = 0;
+  } else {
+   $36 = (__gcry_mpi_alloc_set_ui(0)|0);
+   $$1142 = $36;
+  }
+  $37 = (__gcry_mpi_copy($7)|0);
+  $$0140 = $37;$$0143 = $35;$$2 = $$1142;
+  label = 18;
+ } else {
+  $27 = (__gcry_mpi_alloc_set_ui(0)|0);
+  if ($17) {
+   $$0141 = 0;
+  } else {
+   $28 = (__gcry_mpi_alloc_set_ui(1)|0);
+   $29 = ((($28)) + 8|0);
+   HEAP32[$29>>2] = 1;
+   $$0141 = $28;
+  }
+  $30 = (__gcry_mpi_copy($8)|0);
+  $31 = ((($30)) + 8|0);
+  $32 = HEAP32[$31>>2]|0;
+  $33 = ($32|0)==(0);
+  $34 = $33&1;
+  HEAP32[$31>>2] = $34;
+  $$1 = $30;$$1144 = $27;$$3 = $$0141;
+ }
+ while(1) {
+  if ((label|0) == 18) {
+   label = 0;
+   $38 = (__gcry_mpi_test_bit($$0143,0)|0);
+   $39 = ($38|0)!=(0);
+   if ($17) {
+    if ($39) {
+     __gcry_mpi_add($$0143,$$0143,$8);
+    }
+    __gcry_mpi_rshift($$0143,$$0143,1);
+    __gcry_mpi_rshift($$0140,$$0140,1);
+    $$1 = $$0140;$$1144 = $$0143;$$3 = $$2;
+    continue;
+   }
+   if ($39) {
+    label = 21;
+   } else {
+    $40 = (__gcry_mpi_test_bit($$2,0)|0);
+    $41 = ($40|0)==(0);
+    if (!($41)) {
+     label = 21;
+    }
+   }
+   if ((label|0) == 21) {
+    label = 0;
+    __gcry_mpi_add($$0143,$$0143,$8);
+    __gcry_mpi_sub($$2,$$2,$7);
+   }
+   __gcry_mpi_rshift($$0143,$$0143,1);
+   __gcry_mpi_rshift($$2,$$2,1);
+   __gcry_mpi_rshift($$0140,$$0140,1);
+   $$1 = $$0140;$$1144 = $$0143;$$3 = $$2;
+  }
+  $42 = (__gcry_mpi_test_bit($$1,0)|0);
+  $43 = ($42|0)==(0);
+  if ($43) {
+   $$0140 = $$1;$$0143 = $$1144;$$2 = $$3;
+   label = 18;
+   continue;
+  }
+  $44 = ((($$1)) + 8|0);
+  $45 = HEAP32[$44>>2]|0;
+  $46 = ($45|0)==(0);
+  if ($46) {
+   (__gcry_mpi_set($16,$$1144)|0);
+   if (!($17)) {
+    (__gcry_mpi_set($$0145,$$3)|0);
+   }
+   (__gcry_mpi_set($19,$$1)|0);
+  } else {
+   __gcry_mpi_sub($20,$8,$$1144);
+   $47 = ((($7)) + 8|0);
+   $48 = HEAP32[$47>>2]|0;
+   $49 = ($48|0)==(0);
+   $50 = $49&1;
+   HEAP32[$47>>2] = $50;
+   if (!($17)) {
+    __gcry_mpi_sub($$0146,$7,$$3);
+   }
+   HEAP32[$47>>2] = $48;
+   $51 = HEAP32[$44>>2]|0;
+   $52 = ($51|0)==(0);
+   $53 = $52&1;
+   HEAP32[$44>>2] = $53;
+   (__gcry_mpi_set($24,$$1)|0);
+   HEAP32[$44>>2] = $51;
+  }
+  __gcry_mpi_sub($$1144,$16,$20);
+  if (!($17)) {
+   __gcry_mpi_sub($$3,$$0145,$$0146);
+  }
+  __gcry_mpi_sub($$1,$19,$24);
+  $54 = ((($$1144)) + 8|0);
+  $55 = HEAP32[$54>>2]|0;
+  $56 = ($55|0)==(0);
+  if (!($56)) {
+   __gcry_mpi_add($$1144,$$1144,$8);
+   if (!($17)) {
+    __gcry_mpi_sub($$3,$$3,$7);
+   }
+  }
+  $57 = (__gcry_mpi_cmp_ui($$1,0)|0);
+  $58 = ($57|0)==(0);
+  if ($58) {
+   break;
+  } else {
+   $$0140 = $$1;$$0143 = $$1144;$$2 = $$3;
+   label = 18;
+  }
+ }
+ (__gcry_mpi_set($0,$16)|0);
+ __gcry_mpi_free($16);
+ __gcry_mpi_free($20);
+ __gcry_mpi_free($$1144);
+ if (!($17)) {
+  __gcry_mpi_free($$0145);
+  __gcry_mpi_free($$0146);
+  __gcry_mpi_free($$3);
+ }
+ __gcry_mpi_free($19);
+ __gcry_mpi_free($24);
+ __gcry_mpi_free($$1);
+ __gcry_mpi_free($7);
+ __gcry_mpi_free($8);
+ $$0 = 1;
+ return ($$0|0);
+}
+function __gcry_mpi_mod($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_mpi_fdiv_r($0,$1,$2);
+ return;
+}
+function __gcry_mpi_barrett_init($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ __gcry_mpi_normalize($0);
+ $2 = (__gcry_xcalloc(1,28)|0);
+ $3 = ($1|0)==(0);
+ if ($3) {
+  HEAP32[$2>>2] = $0;
+ } else {
+  $4 = (__gcry_mpi_copy($0)|0);
+  HEAP32[$2>>2] = $4;
+  $5 = ((($2)) + 4|0);
+  HEAP32[$5>>2] = 1;
+ }
+ $6 = ((($0)) + 4|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ((($2)) + 8|0);
+ HEAP32[$8>>2] = $7;
+ $9 = (($7) + 1)|0;
+ $10 = (__gcry_mpi_alloc($9)|0);
+ (__gcry_mpi_set_ui($10,1)|0);
+ $11 = $7 << 1;
+ __gcry_mpi_lshift_limbs($10,$11);
+ __gcry_mpi_fdiv_q($10,$10,$0);
+ $12 = ((($2)) + 12|0);
+ HEAP32[$12>>2] = $10;
+ $13 = $11 | 1;
+ $14 = (__gcry_mpi_alloc($13)|0);
+ $15 = ((($2)) + 16|0);
+ HEAP32[$15>>2] = $14;
+ $16 = (__gcry_mpi_alloc($13)|0);
+ $17 = ((($2)) + 20|0);
+ HEAP32[$17>>2] = $16;
+ return ($2|0);
+}
+function __gcry_mpi_barrett_free($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 
0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  return;
+ }
+ $2 = ((($0)) + 12|0);
+ $3 = HEAP32[$2>>2]|0;
+ __gcry_mpi_free($3);
+ $4 = ((($0)) + 16|0);
+ $5 = HEAP32[$4>>2]|0;
+ __gcry_mpi_free($5);
+ $6 = ((($0)) + 20|0);
+ $7 = HEAP32[$6>>2]|0;
+ __gcry_mpi_free($7);
+ $8 = ((($0)) + 24|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ($9|0)==(0|0);
+ if (!($10)) {
+  __gcry_mpi_free($9);
+ }
+ $11 = ((($0)) + 4|0);
+ $12 = HEAP32[$11>>2]|0;
+ $13 = ($12|0)==(0);
+ if (!($13)) {
+  $14 = HEAP32[$0>>2]|0;
+  __gcry_mpi_free($14);
+ }
+ __gcry_free($0);
+ return;
+}
+function __gcry_mpi_mod_barrett($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$pre = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = HEAP32[$2>>2]|0;
+ $4 = ((($2)) + 8|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = ((($2)) + 12|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ((($2)) + 16|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ((($2)) + 20|0);
+ $11 = HEAP32[$10>>2]|0;
+ __gcry_mpi_normalize($1);
+ $12 = ((($1)) + 4|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = $5 << 1;
+ $15 = ($13|0)>($14|0);
+ if ($15) {
+  __gcry_mpi_fdiv_r($0,$1,$3);
+  return;
+ }
+ $16 = ((($1)) + 8|0);
+ $17 = HEAP32[$16>>2]|0;
+ HEAP32[$16>>2] = 0;
+ (__gcry_mpi_set($11,$1)|0);
+ $18 = (($5) + -1)|0;
+ __gcry_mpi_rshift_limbs($11,$18);
+ __gcry_mpi_mul($11,$11,$7);
+ $19 = (($5) + 1)|0;
+ __gcry_mpi_rshift_limbs($11,$19);
+ (__gcry_mpi_set($9,$1)|0);
+ $20 = ((($9)) + 4|0);
+ $21 = HEAP32[$20>>2]|0;
+ $22 = ($21|0)>($19|0);
+ if ($22) {
+  HEAP32[$20>>2] = $19;
+ }
+ __gcry_mpi_mul($11,$11,$3);
+ $23 = ((($11)) + 4|0);
+ $24 = HEAP32[$23>>2]|0;
+ $25 = ($24|0)>($19|0);
+ if ($25) {
+  HEAP32[$23>>2] = $19;
+ }
+ __gcry_mpi_sub($0,$9,$11);
+ $26 = ((($0)) + 8|0);
+ $27 = HEAP32[$26>>2]|0;
+ $28 = ($27|0)==(0);
+ if (!($28)) {
+  $29 = ((($2)) + 24|0);
+  $30 = HEAP32[$29>>2]|0;
+  $31 = ($30|0)==(0|0);
+  if ($31) {
+   $32 = (($5) + 2)|0;
+   $33 = (__gcry_mpi_alloc($32)|0);
+   HEAP32[$29>>2] = $33;
+   (__gcry_mpi_set_ui($33,1)|0);
+   $34 = HEAP32[$29>>2]|0;
+   __gcry_mpi_lshift_limbs($34,$19);
+   $$pre = HEAP32[$29>>2]|0;
+   $35 = $$pre;
+  } else {
+   $35 = $30;
+  }
+  __gcry_mpi_add($0,$0,$35);
+ }
+ $36 = (__gcry_mpi_cmp($0,$3)|0);
+ $37 = ($36|0)>(-1);
+ if ($37) {
+  while(1) {
+   __gcry_mpi_sub($0,$0,$3);
+   $38 = (__gcry_mpi_cmp($0,$3)|0);
+   $39 = ($38|0)>(-1);
+   if (!($39)) {
+    break;
+   }
+  }
+ }
+ HEAP32[$16>>2] = $17;
+ return;
+}
+function __gcry_mpi_mul($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$ = 0, $$0138167 = 0, $$0139164 = 0, $$0140 = 0, $$0141 = 0, $$0142 = 0, 
$$0142$clear = 0, $$0144$in$in = 0, $$0144$in$in$in = 0, $$0144$in$in$in$in = 
0, $$0145$in$in = 0, $$0145$in$in$in = 0, $$0145$in$in$in$in = 0, $$0146 = 0, 
$$0146$in = 0, $$0147 = 0, $$0147$in = 0, $$0148 = 0, $$0149 = 0, $$0150 = 0;
+ var $$0150$in = 0, $$0152 = 0, $$0152$in = 0, $$0163 = 0, $$1 = 0, $$1153 = 
0, $$159 = 0, $$160 = 0, $$161 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 
0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
+ var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, 
$28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0;
+ var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, 
$46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0;
+ var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, 
$64 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $or$cond = 0, $spec$select = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($1)) + 4|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ((($2)) + 4|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ($4|0)<($6|0);
+ $$ = $7 ? $2 : $1;
+ $$159 = $7 ? $1 : $2;
+ $$160 = $7 ? $4 : $6;
+ $$161 = $7 ? $6 : $4;
+ $$0144$in$in$in$in = ((($$159)) + 12|0);
+ $$0145$in$in$in$in = ((($$)) + 12|0);
+ $$0144$in$in$in = HEAP32[$$0144$in$in$in$in>>2]|0;
+ $$0145$in$in$in = HEAP32[$$0145$in$in$in$in>>2]|0;
+ $$0144$in$in = $$0144$in$in$in & 1;
+ $$0145$in$in = $$0145$in$in$in & 1;
+ $$0146$in = ((($$159)) + 8|0);
+ $$0147$in = ((($$)) + 8|0);
+ $$0152$in = ((($$)) + 16|0);
+ $$0146 = HEAP32[$$0146$in>>2]|0;
+ $$0147 = HEAP32[$$0147$in>>2]|0;
+ $$0152 = HEAP32[$$0152$in>>2]|0;
+ $$0150$in = ((($$159)) + 16|0);
+ $$0150 = HEAP32[$$0150$in>>2]|0;
+ $8 = $$0147 ^ $$0146;
+ $9 = ((($0)) + 16|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = (($$161) + ($$160))|0;
+ $12 = ($0|0)==(0|0);
+ if ($12) {
+  label = 3;
+ } else {
+  $13 = ((($0)) + 12|0);
+  $14 = HEAP32[$13>>2]|0;
+  $15 = $14 & 1;
+  $16 = ($15|0)==(0);
+  if ($16) {
+   label = 3;
+  } else {
+   label = 6;
+  }
+ }
+ do {
+  if ((label|0) == 3) {
+   $17 = ((($1)) + 12|0);
+   $18 = HEAP32[$17>>2]|0;
+   $19 = $18 & 1;
+   $20 = ($19|0)==(0);
+   if ($20) {
+    $21 = ((($2)) + 12|0);
+    $22 = HEAP32[$21>>2]|0;
+    $23 = $22 & 1;
+    $24 = ($23|0)==(0);
+    if ($24) {
+     label = 6;
+     break;
+    }
+   }
+   $25 = (__gcry_mpi_alloc_limb_space($11,1)|0);
+   $$0140 = 0;$$0141 = 0;$$0142 = 2;$$0149 = $25;$$1153 = $$0152;$$2 = $$0150;
+  }
+ } while(0);
+ L8: do {
+  if ((label|0) == 6) {
+   $26 = HEAP32[$0>>2]|0;
+   $27 = ($26|0)<($11|0);
+   $28 = ($10|0)==($$0152|0);
+   if ($27) {
+    $29 = ($10|0)==($$0150|0);
+    $or$cond = $28 | $29;
+    if ($or$cond) {
+     $30 = ((($0)) + 12|0);
+     $31 = HEAP32[$30>>2]|0;
+     $32 = $31 & 1;
+     $33 = (__gcry_mpi_alloc_limb_space($11,$32)|0);
+     $$0140 = 0;$$0141 = 0;$$0142 = 1;$$0149 = $33;$$1153 = $$0152;$$2 = 
$$0150;
+     break;
+    } else {
+     __gcry_mpi_resize($0,$11);
+     $34 = HEAP32[$9>>2]|0;
+     $$0140 = 0;$$0141 = 0;$$0142 = 0;$$0149 = $34;$$1153 = $$0152;$$2 = 
$$0150;
+     break;
+    }
+   }
+   if ($28) {
+    $35 = (__gcry_mpi_alloc_limb_space($$161,$$0145$in$in)|0);
+    $36 = ($$0152|0)==($$0150|0);
+    $spec$select = $36 ? $35 : $$0150;
+    $37 = ($$161|0)>(0);
+    if (!($37)) {
+     $$0140 = $$161;$$0141 = $35;$$0142 = 0;$$0149 = $$0152;$$1153 = $35;$$2 = 
$spec$select;
+     break;
+    }
+    $$0139164 = 0;
+    while(1) {
+     $38 = (($$0152) + ($$0139164<<2)|0);
+     $39 = HEAP32[$38>>2]|0;
+     $40 = (($35) + ($$0139164<<2)|0);
+     HEAP32[$40>>2] = $39;
+     $41 = (($$0139164) + 1)|0;
+     $42 = ($41|0)<($$161|0);
+     if ($42) {
+      $$0139164 = $41;
+     } else {
+      $$0140 = $$161;$$0141 = $35;$$0142 = 0;$$0149 = $$0152;$$1153 = $35;$$2 
= $spec$select;
+      break L8;
+     }
+    }
+   }
+   $43 = ($10|0)==($$0150|0);
+   if ($43) {
+    $44 = (__gcry_mpi_alloc_limb_space($$160,$$0144$in$in)|0);
+    $45 = ($$160|0)>(0);
+    if ($45) {
+     $$0138167 = 0;
+     while(1) {
+      $46 = (($$0150) + ($$0138167<<2)|0);
+      $47 = HEAP32[$46>>2]|0;
+      $48 = (($44) + ($$0138167<<2)|0);
+      HEAP32[$48>>2] = $47;
+      $49 = (($$0138167) + 1)|0;
+      $50 = ($49|0)<($$160|0);
+      if ($50) {
+       $$0138167 = $49;
+      } else {
+       $$0140 = $$160;$$0141 = $44;$$0142 = 0;$$0149 = $$0150;$$1153 = 
$$0152;$$2 = $44;
+       break;
+      }
+     }
+    } else {
+     $$0140 = $$160;$$0141 = $44;$$0142 = 0;$$0149 = $$0150;$$1153 = 
$$0152;$$2 = $44;
+    }
+   } else {
+    $$0140 = 0;$$0141 = 0;$$0142 = 0;$$0149 = $10;$$1153 = $$0152;$$2 = $$0150;
+   }
+  }
+ } while(0);
+ $51 = ($$160|0)==(0);
+ if ($51) {
+  $$0148 = 0;
+ } else {
+  $52 = (__gcry_mpih_mul($$0149,$$1153,$$161,$$2,$$160)|0);
+  $53 = ($52|0)==(0);
+  $54 = $53&1;
+  $55 = (($11) - ($54))|0;
+  $$0148 = $55;
+ }
+ $$0142$clear = $$0142 & 3;
+ switch ($$0142$clear<<24>>24) {
+ case 0:  {
+  break;
+ }
+ case 2:  {
+  $56 = (__gcry_mpi_alloc_limb_space($$0148,0)|0);
+  $57 = ($$0148|0)>(0);
+  if ($57) {
+   $$0163 = 0;
+   while(1) {
+    $58 = (($$0149) + ($$0163<<2)|0);
+    $59 = HEAP32[$58>>2]|0;
+    $60 = (($56) + ($$0163<<2)|0);
+    HEAP32[$60>>2] = $59;
+    $61 = (($$0163) + 1)|0;
+    $exitcond = ($61|0)==($$0148|0);
+    if ($exitcond) {
+     break;
+    } else {
+     $$0163 = $61;
+    }
+   }
+  }
+  __gcry_mpi_free_limb_space($$0149,0);
+  $$1 = $56;
+  label = 25;
+  break;
+ }
+ default: {
+  $$1 = $$0149;
+  label = 25;
+ }
+ }
+ if ((label|0) == 25) {
+  __gcry_mpi_assign_limb_space($0,$$1,$$0148);
+ }
+ $62 = ((($0)) + 4|0);
+ HEAP32[$62>>2] = $$0148;
+ $63 = ((($0)) + 8|0);
+ HEAP32[$63>>2] = $8;
+ $64 = ($$0141|0)==(0|0);
+ if ($64) {
+  return;
+ }
+ __gcry_mpi_free_limb_space($$0141,$$0140);
+ return;
+}
+function __gcry_mpi_mulm($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_mpi_mul($0,$1,$2);
+ __gcry_mpi_tdiv_r($0,$0,$3);
+ return;
+}
+function __gcry_mpi_powm($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$ = 0, $$02637$i$i = 0, $$02836$i$i = 0, $$035$i$i = 0, $$0534 = 0, 
$$0535 = 0, $$0536 = 0, $$0536666 = 0, $$0538810 = 0, $$0540 = 0, $$0540$sink = 
0, $$0542 = 0, $$0542663 = 0, $$0545 = 0, $$0548 = 0, $$0550 = 0, $$0551 = 0, 
$$0551662 = 0, $$0554 = 0, $$0556778 = 0;
+ var $$0559789 = 0, $$0560801 = 0, $$0561 = 0, $$0562 = 0, $$0562$ph = 0, 
$$0568 = 0, $$0568$ph = 0, $$0575$ph = 0, $$0582773 = 0, $$0584 = 0, $$0584$ph 
= 0, $$0591795 = 0, $$0597804 = 0, $$0598807 = 0, $$0599814 = 0, $$0600818 = 0, 
$$0601 = 0, $$0602794 = 0, $$0603$lcssa = 0, $$0603793 = 0;
+ var $$0605792 = 0, $$0650 = 0, $$0651 = 0, $$0737 = 0, $$1$i$i = 0, $$1$ph = 
0, $$10 = 0, $$11 = 0, $$12$lcssa = 0, $$127$i$i = 0, $$12730 = 0, $$129$i$i = 
0, $$13 = 0, $$13$sink = 0, $$1537 = 0, $$1539 = 0, $$1539664 = 0, $$1543 = 0, 
$$1546 = 0, $$1552 = 0;
+ var $$1555 = 0, $$1563 = 0, $$1569 = 0, $$1576$lcssa = 0, $$1576764 = 0, 
$$1576764$phi = 0, $$1583748 = 0, $$1585763 = 0, $$1592 = 0, $$1592$ph = 0, 
$$1606$lcssa858 = 0, $$1606$lcssa859 = 0, $$1606772 = 0, $$1652 = 0, $$2$lcssa 
= 0, $$2544 = 0, $$2553 = 0, $$2593 = 0, $$2607$lcssa860 = 0, $$2607$lcssa861 = 
0;
+ var $$2607747 = 0, $$2653$ph = 0, $$2653$ph$be = 0, $$2765 = 0, $$2765$phi = 
0, $$3654$lcssa = 0, $$3654762 = 0, $$5567 = 0, $$5573 = 0, $$5580$lcssa = 0, 
$$5580755 = 0, $$5580755$phi = 0, $$5589 = 0, $$5596728 = 0, $$5596728$us = 0, 
$$6$lcssa = 0, $$6574742 = 0, $$6581741 = 0, $$6581741$phi = 0, $$6590754 = 0;
+ var $$6756 = 0, $$6756$phi = 0, $$7658$lcssa = 0, $$7658753 = 0, $$7743 = 0, 
$$7743$phi = 0, $$8 = 0, $$8659740 = 0, $$9 = 0, $$9660 = 0, $$neg689 = 0, 
$$neg692 = 0, $$neg695 = 0, $$pre = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, 
$103 = 0, $104 = 0;
+ var $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;
+ var $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 
= 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 
= 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0;
+ var $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, 
$148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, 
$155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0;
+ var $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 
= 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 
= 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0;
+ var $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 
= 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 
= 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0;
+ var $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 
= 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 
= 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0;
+ var $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 
= 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 
= 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0;
+ var $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, 
$239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, 
$246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0;
+ var $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;
+ var $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;
+ var $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 
= 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 
= 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0;
+ var $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 
= 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 
= 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0;
+ var $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 
= 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 
= 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0;
+ var $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, 
$348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, 
$355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0;
+ var $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 
= 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 
= 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0;
+ var $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 
= 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 
= 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0;
+ var $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 
0, $402 = 0, $403 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, 
$47 = 0, $48 = 0, $49 = 0, $5 = 0;
+ var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, 
$58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, 
$66 = 0, $67 = 0, $68 = 0;
+ var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, 
$76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, 
$84 = 0, $85 = 0, $86 = 0;
+ var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, 
$94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, 
$exitcond$i$i = 0, $exitcond846 = 0, $exitcond851 = 0, $exitcond852 = 0, 
$exitcond853 = 0;
+ var $exitcond854 = 0, $exitcond855 = 0, $exitcond856 = 0, $exitcond857 = 0, 
$or$cond = 0, $phitmp608 = 0, $spec$select = 0, $spec$select687 = 0, 
$storemerge$i613 = 0, $storemerge$i617 = 0, $storemerge$i619 = 0, 
$storemerge$i621 = 0, $storemerge725 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 240|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(240|0);
+ $4 = sp + 64|0;
+ $5 = sp;
+ $6 = sp + 208|0;
+ $7 = sp + 188|0;
+ $8 = sp + 168|0;
+ $9 = sp + 148|0;
+ $10 = sp + 128|0;
+ $11 = ((($2)) + 4|0);
+ $12 = HEAP32[$11>>2]|0;
+ $13 = ((($3)) + 4|0);
+ $14 = HEAP32[$13>>2]|0;
+ $15 = $14 << 1;
+ $16 = ((($3)) + 8|0);
+ $17 = HEAP32[$16>>2]|0;
+ $18 = ($12|0)>(16);
+ if ($18) {
+  $$0601 = 5;
+ } else {
+  $19 = ($12|0)>(8);
+  if ($19) {
+   $$0601 = 4;
+  } else {
+   $20 = ($12|0)>(4);
+   $21 = ($12|0)>(2);
+   $$ = $21 ? 2 : 1;
+   $spec$select687 = $20 ? 3 : $$;
+   $$0601 = $spec$select687;
+  }
+ }
+ $22 = ((($2)) + 12|0);
+ $23 = HEAP32[$22>>2]|0;
+ $24 = $23 & 1;
+ $25 = ($24|0)!=(0);
+ $26 = ((($3)) + 12|0);
+ $27 = HEAP32[$26>>2]|0;
+ $28 = $27 & 1;
+ $29 = ($28|0)!=(0);
+ $30 = ($1|0)==(0|0);
+ if ($30) {
+  $36 = 0;
+ } else {
+  $31 = ((($1)) + 12|0);
+  $32 = HEAP32[$31>>2]|0;
+  $33 = $32 & 1;
+  $34 = ($33|0)!=(0);
+  $36 = $34;
+ }
+ $35 = $36&1;
+ $37 = ((($0)) + 16|0);
+ $38 = HEAP32[$37>>2]|0;
+ $39 = ((($2)) + 16|0);
+ $40 = HEAP32[$39>>2]|0;
+ $41 = ($14|0)==(0);
+ if ($41) {
+  __gcry_divide_by_zero();
+  // unreachable;
+ }
+ $42 = ($12|0)==(0);
+ if ($42) {
+  $43 = ($14|0)==(1);
+  if ($43) {
+   $45 = ((($3)) + 16|0);
+   $46 = HEAP32[$45>>2]|0;
+   $47 = HEAP32[$46>>2]|0;
+   $48 = ($47|0)!=(1);
+   $phitmp608 = $48&1;
+   $49 = ((($0)) + 4|0);
+   HEAP32[$49>>2] = $phitmp608;
+   if ($48) {
+    label = 12;
+   }
+  } else {
+   $44 = ((($0)) + 4|0);
+   HEAP32[$44>>2] = 1;
+   label = 12;
+  }
+  if ((label|0) == 12) {
+   $50 = HEAP32[$0>>2]|0;
+   $51 = ($50|0)<(1);
+   if ($51) {
+    __gcry_mpi_resize($0,1);
+    $$pre = HEAP32[$37>>2]|0;
+    $52 = $$pre;
+   } else {
+    $52 = $38;
+   }
+   HEAP32[$52>>2] = 1;
+  }
+  $53 = ((($0)) + 8|0);
+  HEAP32[$53>>2] = 0;
+  STACKTOP = sp;return;
+ }
+ $54 = $29 ? $14 : 0;
+ $55 = (__gcry_mpi_alloc_limb_space($14,$28)|0);
+ $56 = ((($3)) + 16|0);
+ $57 = HEAP32[$56>>2]|0;
+ $58 = (($14) + -1)|0;
+ $59 = (($57) + ($58<<2)|0);
+ $60 = HEAP32[$59>>2]|0;
+ $61 = ($60>>>0)<(65536);
+ $62 = ($60>>>0)<(256);
+ $63 = $62 ? 0 : 8;
+ $64 = ($60>>>0)<(16777216);
+ $65 = $64 ? 16 : 24;
+ $66 = $61 ? $63 : $65;
+ $67 = $60 >>> $66;
+ $68 = (14784 + ($67)|0);
+ $69 = HEAP8[$68>>0]|0;
+ $70 = $69&255;
+ $$neg689 = (32 - ($70))|0;
+ $71 = (($$neg689) - ($66))|0;
+ $72 = ($71|0)!=(0);
+ if ($72) {
+  (__gcry_mpih_lshift($55,$57,$14,$71)|0);
+ } else {
+  $73 = ($14|0)>(0);
+  if ($73) {
+   $$0600818 = 0;
+   while(1) {
+    $74 = (($57) + ($$0600818<<2)|0);
+    $75 = HEAP32[$74>>2]|0;
+    $76 = (($55) + ($$0600818<<2)|0);
+    HEAP32[$76>>2] = $75;
+    $77 = (($$0600818) + 1)|0;
+    $exitcond857 = ($77|0)==($14|0);
+    if ($exitcond857) {
+     break;
+    } else {
+     $$0600818 = $77;
+    }
+   }
+  }
+ }
+ $78 = ((($1)) + 4|0);
+ $79 = HEAP32[$78>>2]|0;
+ $80 = ((($1)) + 8|0);
+ $81 = HEAP32[$80>>2]|0;
+ $82 = ($79|0)>($14|0);
+ L31: do {
+  if ($82) {
+   $83 = (($79) + 1)|0;
+   $84 = $36 ? $83 : 0;
+   $85 = (__gcry_mpi_alloc_limb_space($83,$35)|0);
+   $86 = ($79|0)>(0);
+   if ($86) {
+    $87 = ((($1)) + 16|0);
+    $88 = HEAP32[$87>>2]|0;
+    $$0599814 = 0;
+    while(1) {
+     $89 = (($88) + ($$0599814<<2)|0);
+     $90 = HEAP32[$89>>2]|0;
+     $91 = (($85) + ($$0599814<<2)|0);
+     HEAP32[$91>>2] = $90;
+     $92 = (($$0599814) + 1)|0;
+     $exitcond856 = ($92|0)==($79|0);
+     if ($exitcond856) {
+      break;
+     } else {
+      $$0599814 = $92;
+     }
+    }
+   }
+   $93 = (($85) + ($14<<2)|0);
+   (__gcry_mpih_divrem($93,0,$85,$79,$55,$14)|0);
+   $94 = ($14|0)>(0);
+   if ($94) {
+    $$0538810 = $14;
+    while(1) {
+     $96 = (($$0538810) + -1)|0;
+     $97 = (($85) + ($96<<2)|0);
+     $98 = HEAP32[$97>>2]|0;
+     $99 = ($98|0)==(0);
+     if (!($99)) {
+      $$0536666 = $85;$$0542663 = $85;$$0551662 = $84;$$1539664 = $$0538810;
+      label = 31;
+      break L31;
+     }
+     $95 = ($$0538810|0)>(1);
+     if ($95) {
+      $$0538810 = $96;
+     } else {
+      $$0536 = $85;$$0542 = $85;$$0551 = $84;$$1539 = $96;
+      label = 30;
+      break;
+     }
+    }
+   } else {
+    $$0536 = $85;$$0542 = $85;$$0551 = $84;$$1539 = $14;
+    label = 30;
+   }
+  } else {
+   $100 = ((($1)) + 16|0);
+   $101 = HEAP32[$100>>2]|0;
+   $$0536 = $101;$$0542 = 0;$$0551 = 0;$$1539 = $79;
+   label = 30;
+  }
+ } while(0);
+ if ((label|0) == 30) {
+  $102 = ($$1539|0)==(0);
+  if ($102) {
+   $$0540$sink = 0;$$0548 = 0;$$0561 = 0;$$13$sink = 0;$$1546 = 0;$$1555 = 
0;$$2544 = $$0542;$$2553 = $$0551;
+  } else {
+   $$0536666 = $$0536;$$0542663 = $$0542;$$0551662 = $$0551;$$1539664 = $$1539;
+   label = 31;
+  }
+ }
+ do {
+  if ((label|0) == 31) {
+   $103 = ($38|0)==($$0536666|0);
+   if ($103) {
+    $104 = ($$0542663|0)==(0|0);
+    if (!($104)) {
+     __gcry_assert_failed(64005,64016,515,64026);
+     // unreachable;
+    }
+    $105 = $36 ? $$1539664 : 0;
+    $106 = (__gcry_mpi_alloc_limb_space($$1539664,$35)|0);
+    $107 = ($$1539664|0)>(0);
+    if ($107) {
+     $$0598807 = 0;
+     while(1) {
+      $108 = (($38) + ($$0598807<<2)|0);
+      $109 = HEAP32[$108>>2]|0;
+      $110 = (($106) + ($$0598807<<2)|0);
+      HEAP32[$110>>2] = $109;
+      $111 = (($$0598807) + 1)|0;
+      $exitcond855 = ($111|0)==($$1539664|0);
+      if ($exitcond855) {
+       $$1537 = $106;$$1543 = $106;$$1552 = $105;
+       break;
+      } else {
+       $$0598807 = $111;
+      }
+     }
+    } else {
+     $$1537 = $106;$$1543 = $106;$$1552 = $105;
+    }
+   } else {
+    $$1537 = $$0536666;$$1543 = $$0542663;$$1552 = $$0551662;
+   }
+   $112 = ($38|0)==($40|0);
+   if ($112) {
+    $113 = $25 ? $12 : 0;
+    $114 = (__gcry_mpi_alloc_limb_space($12,$24)|0);
+    $115 = ($12|0)>(0);
+    if ($115) {
+     $$0597804 = 0;
+     while(1) {
+      $116 = (($38) + ($$0597804<<2)|0);
+      $117 = HEAP32[$116>>2]|0;
+      $118 = (($114) + ($$0597804<<2)|0);
+      HEAP32[$118>>2] = $117;
+      $119 = (($$0597804) + 1)|0;
+      $exitcond854 = ($119|0)==($12|0);
+      if ($exitcond854) {
+       $$0535 = $114;$$0545 = $114;$$0554 = $113;
+       break;
+      } else {
+       $$0597804 = $119;
+      }
+     }
+    } else {
+     $$0535 = $114;$$0545 = $114;$$0554 = $113;
+    }
+   } else {
+    $$0535 = $40;$$0545 = 0;$$0554 = 0;
+   }
+   $120 = HEAP32[$0>>2]|0;
+   $121 = ($120|0)<($15|0);
+   if ($121) {
+    __gcry_mpi_resize($0,$15);
+    $122 = HEAP32[$37>>2]|0;
+    $$0534 = $122;
+   } else {
+    $$0534 = $38;
+   }
+   $123 = (($15) + 2)|0;
+   $124 = $29 ? $123 : 0;
+   $125 = (__gcry_mpi_alloc_limb_space($123,$28)|0);
+   
;HEAP32[$6>>2]=0|0;HEAP32[$6+4>>2]=0|0;HEAP32[$6+8>>2]=0|0;HEAP32[$6+12>>2]=0|0;HEAP32[$6+16>>2]=0|0;HEAP32[$6+20>>2]=0|0;HEAP32[$6+24>>2]=0|0;
+   $126 = HEAP32[$$0535>>2]|0;
+   $127 = $126 & 1;
+   $128 = ($127|0)!=(0);
+   $129 = ($81|0)!=(0);
+   $130 = $129 & $128;
+   $131 = ($$0601>>>0)>(1);
+   if ($131) {
+    $132 = ($$1539664|0)<(16);
+    if ($132) {
+     (__gcry_mpih_mul($125,$$1537,$$1539664,$$1537,$$1539664)|0);
+    } else {
+     __gcry_mpih_mul_karatsuba_case($125,$$1537,$$1539664,$$1537,$$1539664,$6);
+    }
+    $133 = $$1539664 << 1;
+    $134 = ($133|0)>($14|0);
+    if ($134) {
+     $135 = (($125) + ($14<<2)|0);
+     (__gcry_mpih_divrem($135,0,$125,$133,$55,$14)|0);
+     $$0650 = $14;
+    } else {
+     $$0650 = $133;
+    }
+   } else {
+    $$0650 = 0;
+   }
+   $136 = (__gcry_mpi_alloc_limb_space($$1539664,$24)|0);
+   HEAP32[$4>>2] = $136;
+   HEAP32[$5>>2] = $$1539664;
+   $137 = ($$1539664|0)>(0);
+   if ($137) {
+    $$0560801 = 0;
+    while(1) {
+     $138 = (($$1537) + ($$0560801<<2)|0);
+     $139 = HEAP32[$138>>2]|0;
+     $140 = (($136) + ($$0560801<<2)|0);
+     HEAP32[$140>>2] = $139;
+     $141 = (($$0560801) + 1)|0;
+     $exitcond853 = ($141|0)==($$1539664|0);
+     if ($exitcond853) {
+      break;
+     } else {
+      $$0560801 = $141;
+     }
+    }
+   }
+   $142 = (($$0601) + -1)|0;
+   $143 = 1 << $142;
+   $144 = ($143|0)>(1);
+   if ($144) {
+    $145 = ($$0650|0)<(16);
+    $146 = (($$0534) + ($14<<2)|0);
+    $$0591795 = 1;$$0602794 = $136;$$0603793 = $$1539664;$$0605792 = $$1539664;
+    while(1) {
+     $147 = ($$0650|0)<($$0605792|0);
+     if ($147) {
+      if ($145) {
+       (__gcry_mpih_mul($$0534,$$0602794,$$0605792,$125,$$0650)|0);
+      } else {
+       
__gcry_mpih_mul_karatsuba_case($$0534,$$0602794,$$0605792,$125,$$0650,$6);
+      }
+      $151 = (($$0605792) + ($$0650))|0;
+      $152 = ($151|0)>($14|0);
+      if ($152) {
+       (__gcry_mpih_divrem($146,0,$$0534,$151,$55,$14)|0);
+       $$0651 = $14;
+      } else {
+       $$0651 = $151;
+      }
+     } else {
+      $148 = ($$0605792|0)<(16);
+      if ($148) {
+       (__gcry_mpih_mul($$0534,$125,$$0650,$$0602794,$$0605792)|0);
+      } else {
+       
__gcry_mpih_mul_karatsuba_case($$0534,$125,$$0650,$$0602794,$$0605792,$6);
+      }
+      $149 = (($$0605792) + ($$0650))|0;
+      $150 = ($149|0)>($14|0);
+      if ($150) {
+       (__gcry_mpih_divrem($146,0,$$0534,$149,$55,$14)|0);
+       $$0651 = $14;
+      } else {
+       $$0651 = $149;
+      }
+     }
+     $153 = (__gcry_mpi_alloc_limb_space($$0651,$24)|0);
+     $154 = (($4) + ($$0591795<<2)|0);
+     HEAP32[$154>>2] = $153;
+     $155 = (($5) + ($$0591795<<2)|0);
+     HEAP32[$155>>2] = $$0651;
+     $156 = ($$0603793|0)<($$0651|0);
+     $spec$select = $156 ? $$0651 : $$0603793;
+     $157 = ($$0651|0)>(0);
+     if ($157) {
+      $$0559789 = 0;
+      while(1) {
+       $158 = (($$0534) + ($$0559789<<2)|0);
+       $159 = HEAP32[$158>>2]|0;
+       $160 = (($153) + ($$0559789<<2)|0);
+       HEAP32[$160>>2] = $159;
+       $161 = (($$0559789) + 1)|0;
+       $exitcond851 = ($161|0)==($$0651|0);
+       if ($exitcond851) {
+        break;
+       } else {
+        $$0559789 = $161;
+       }
+      }
+     }
+     $162 = (($$0591795) + 1)|0;
+     $exitcond852 = ($162|0)==($143|0);
+     if ($exitcond852) {
+      $$0603$lcssa = $spec$select;
+      break;
+     } else {
+      $$0591795 = $162;$$0602794 = $153;$$0603793 = $spec$select;$$0605792 = 
$$0651;
+     }
+    }
+   } else {
+    $$0603$lcssa = $$1539664;
+   }
+   $163 = (__gcry_mpi_alloc_limb_space($$0603$lcssa,$24)|0);
+   $164 = ($$0603$lcssa|0)>(0);
+   if ($164) {
+    $165 = $$0603$lcssa << 2;
+    _memset(($163|0),0,($165|0))|0;
+   }
+   $166 = (($12) + -1)|0;
+   $167 = ($$0601|0)==(1);
+   if ($167) {
+    $$1652 = $$1539664;
+   } else {
+    $168 = ($14|0)>(0);
+    if ($168) {
+     $169 = $14 << 2;
+     _memset(($$0534|0),0,($169|0))|0;
+     $$1652 = $14;
+    } else {
+     $$1652 = $14;
+    }
+   }
+   if ($137) {
+    $$0556778 = 0;
+    while(1) {
+     $170 = (($$1537) + ($$0556778<<2)|0);
+     $171 = HEAP32[$170>>2]|0;
+     $172 = (($$0534) + ($$0556778<<2)|0);
+     HEAP32[$172>>2] = $171;
+     $173 = (($$0556778) + 1)|0;
+     $exitcond846 = ($173|0)==($$1539664|0);
+     if ($exitcond846) {
+      break;
+     } else {
+      $$0556778 = $173;
+     }
+    }
+   }
+   $174 = (($$0535) + ($166<<2)|0);
+   $175 = HEAP32[$174>>2]|0;
+   $176 = ($175>>>0)<(65536);
+   $177 = ($175>>>0)<(256);
+   $178 = $177 ? 0 : 8;
+   $179 = ($175>>>0)<(16777216);
+   $180 = $179 ? 16 : 24;
+   $181 = $176 ? $178 : $180;
+   $182 = $175 >>> $181;
+   $183 = (14784 + ($182)|0);
+   $184 = HEAP8[$183>>0]|0;
+   $185 = $184&255;
+   $$neg692 = (32 - ($185))|0;
+   $186 = (($$neg692) - ($181))|0;
+   $187 = $175 << $186;
+   $188 = $187 << 1;
+   $189 = (31 - ($186))|0;
+   $190 = (32 - ($$0601))|0;
+   $191 = ($142|0)==(31);
+   $192 = ((($7)) + 4|0);
+   $193 = ((($8)) + 4|0);
+   $194 = ((($8)) + 8|0);
+   $195 = ((($7)) + 8|0);
+   $196 = ((($8)) + 12|0);
+   $197 = ((($7)) + 12|0);
+   $198 = ((($7)) + 16|0);
+   $199 = ((($8)) + 16|0);
+   $$0562$ph = $188;$$0568$ph = $189;$$0575$ph = $125;$$0584$ph = 0;$$1$ph = 
$$0534;$$1592$ph = $166;$$2653$ph = $$1652;
+   L114: while(1) {
+    $$0562 = $$0562$ph;$$0568 = $$0568$ph;$$0584 = $$0584$ph;$$1592 = 
$$1592$ph;
+    while(1) {
+     $200 = ($$0562|0)==(0);
+     if (!($200)) {
+      break;
+     }
+     $201 = (($$0568) + ($$0584))|0;
+     $202 = (($$1592) + -1)|0;
+     $203 = ($$1592|0)<(1);
+     if ($203) {
+      $$5567 = 0;$$5573 = 0;$$5589 = $201;
+      break L114;
+     }
+     $204 = (($$0535) + ($202<<2)|0);
+     $205 = HEAP32[$204>>2]|0;
+     $$0562 = $205;$$0568 = 32;$$0584 = $201;$$1592 = $202;
+    }
+    $206 = ($$0562>>>0)<(65536);
+    $207 = ($$0562>>>0)<(256);
+    $208 = $207 ? 0 : 8;
+    $209 = ($$0562>>>0)<(16777216);
+    $210 = $209 ? 16 : 24;
+    $211 = $206 ? $208 : $210;
+    $212 = $$0562 >>> $211;
+    $213 = (14784 + ($212)|0);
+    $214 = HEAP8[$213>>0]|0;
+    $215 = $214&255;
+    $$neg695 = (32 - ($211))|0;
+    $216 = (($$neg695) - ($215))|0;
+    $217 = $$0562 << $216;
+    $218 = (($$0568) - ($216))|0;
+    $219 = (($216) + ($$0584))|0;
+    $220 = ($218|0)<($$0601|0);
+    if ($220) {
+     $224 = (($$1592) + -1)|0;
+     $225 = ($$1592|0)<(1);
+     if ($225) {
+      label = 103;
+      break;
+     }
+     $226 = $217 >>> $190;
+     $227 = (($$0535) + ($224<<2)|0);
+     $228 = HEAP32[$227>>2]|0;
+     $229 = (($218) + ($190))|0;
+     $230 = $228 >>> $229;
+     $231 = $230 | $226;
+     $232 = (($$0601) - ($218))|0;
+     $233 = $228 << $232;
+     $$0550 = $231;$$1563 = $233;$$1569 = $229;$$2593 = $224;
+    } else {
+     $221 = $217 >>> $190;
+     $222 = $217 << $$0601;
+     $223 = (($218) - ($$0601))|0;
+     $$0550 = $221;$$1563 = $222;$$1569 = $223;$$2593 = $$1592;
+    }
+    $234 = (0 - ($$0550))|0;
+    $235 = $$0550 & $234;
+    $236 = ($235>>>0)<(65536);
+    $237 = ($235>>>0)<(256);
+    $238 = $237 ? 0 : 8;
+    $239 = ($235>>>0)<(16777216);
+    $240 = $239 ? 16 : 24;
+    $241 = $236 ? $238 : $240;
+    $242 = $235 >>> $241;
+    $243 = (14784 + ($242)|0);
+    $244 = HEAP8[$243>>0]|0;
+    $245 = $244&255;
+    $246 = (($245) + -1)|0;
+    $247 = (($246) + ($241))|0;
+    $248 = $$0550 >>> $247;
+    $249 = $248 >>> 1;
+    $250 = (($219) + ($$0601))|0;
+    $251 = (($250) - ($247))|0;
+    $252 = ($251|0)==(0);
+    if ($252) {
+     $$1576$lcssa = $$0575$ph;$$2$lcssa = $$1$ph;$$3654$lcssa = $$2653$ph;
+    } else {
+     $$1576764 = $$0575$ph;$$1585763 = $251;$$2765 = $$1$ph;$$3654762 = 
$$2653$ph;
+     while(1) {
+      $253 = ($$3654762|0)<(16);
+      if ($253) {
+       (__gcry_mpih_mul($$1576764,$$2765,$$3654762,$$2765,$$3654762)|0);
+      } else {
+       
__gcry_mpih_mul_karatsuba_case($$1576764,$$2765,$$3654762,$$2765,$$3654762,$6);
+      }
+      $254 = $$3654762 << 1;
+      $255 = ($254|0)>($14|0);
+      if ($255) {
+       $256 = (($$1576764) + ($14<<2)|0);
+       (__gcry_mpih_divrem($256,0,$$1576764,$254,$55,$14)|0);
+       $storemerge$i613 = $14;
+      } else {
+       $storemerge$i613 = $254;
+      }
+      $257 = (($$1585763) + -1)|0;
+      $258 = ($257|0)==(0);
+      if ($258) {
+       $$1576$lcssa = $$2765;$$2$lcssa = $$1576764;$$3654$lcssa = 
$storemerge$i613;
+       break;
+      } else {
+       $$2765$phi = $$1576764;$$1576764$phi = $$2765;$$1585763 = 
$257;$$3654762 = $storemerge$i613;$$2765 = $$2765$phi;$$1576764 = $$1576764$phi;
+      }
+     }
+    }
+    do {
+     if ($191) {
+      $$1606$lcssa859 = 0;
+      label = 98;
+     } else {
+      $$0582773 = 0;$$1606772 = 0;
+      while(1) {
+       $259 = (($5) + ($$0582773<<2)|0);
+       $260 = HEAP32[$259>>2]|0;
+       HEAP32[$192>>2] = $260;
+       HEAP32[$7>>2] = $260;
+       HEAP32[$193>>2] = $260;
+       HEAP32[$8>>2] = $260;
+       HEAP32[$194>>2] = 0;
+       HEAP32[$195>>2] = 0;
+       HEAP32[$196>>2] = 0;
+       HEAP32[$197>>2] = 0;
+       HEAP32[$198>>2] = $163;
+       $261 = (($4) + ($$0582773<<2)|0);
+       $262 = HEAP32[$261>>2]|0;
+       HEAP32[$199>>2] = $262;
+       $263 = ($$0582773|0)==($249|0);
+       $264 = $263&1;
+       (__gcry_mpi_set_cond($7,$8,$264)|0);
+       $265 = $263 ? $260 : 0;
+       $266 = $265 | $$1606772;
+       $267 = (($$0582773) + 1)|0;
+       $268 = ($267|0)<($143|0);
+       if ($268) {
+        $$0582773 = $267;$$1606772 = $266;
+       } else {
+        break;
+       }
+      }
+      $269 = ($266|0)<(16);
+      if ($269) {
+       $$1606$lcssa859 = $266;
+       label = 98;
+       break;
+      }
+      
__gcry_mpih_mul_karatsuba_case($$1576$lcssa,$$2$lcssa,$$3654$lcssa,$163,$266,$6);
+      $$1606$lcssa858 = $266;
+     }
+    } while(0);
+    if ((label|0) == 98) {
+     label = 0;
+     
(__gcry_mpih_mul($$1576$lcssa,$$2$lcssa,$$3654$lcssa,$163,$$1606$lcssa859)|0);
+     $$1606$lcssa858 = $$1606$lcssa859;
+    }
+    $270 = (($$1606$lcssa858) + ($$3654$lcssa))|0;
+    $271 = ($270|0)>($14|0);
+    if ($271) {
+     $272 = (($$1576$lcssa) + ($14<<2)|0);
+     (__gcry_mpih_divrem($272,0,$$1576$lcssa,$270,$55,$14)|0);
+     $$2653$ph$be = $14;
+    } else {
+     $$2653$ph$be = $270;
+    }
+    $$0562$ph = $$1563;$$0568$ph = $$1569;$$0575$ph = $$2$lcssa;$$0584$ph = 
$247;$$1$ph = $$1576$lcssa;$$1592$ph = $$2593;$$2653$ph = $$2653$ph$be;
+   }
+   if ((label|0) == 103) {
+    $273 = (32 - ($218))|0;
+    $274 = $217 >>> $273;
+    $275 = ($218|0)==(0);
+    if ($275) {
+     $$5567 = $274;$$5573 = 0;$$5589 = $219;
+    } else {
+     $276 = (($$0568) + ($$0584))|0;
+     $277 = (0 - ($274))|0;
+     $278 = $274 & $277;
+     $279 = ($278>>>0)<(65536);
+     $280 = ($278>>>0)<(256);
+     $281 = $280 ? 0 : 8;
+     $282 = ($278>>>0)<(16777216);
+     $283 = $282 ? 16 : 24;
+     $284 = $279 ? $281 : $283;
+     $285 = $278 >>> $284;
+     $286 = (14784 + ($285)|0);
+     $287 = HEAP8[$286>>0]|0;
+     $288 = $287&255;
+     $289 = (($284) + -1)|0;
+     $290 = (($289) + ($288))|0;
+     $291 = $274 >>> $290;
+     $292 = (($276) - ($290))|0;
+     $$5567 = $291;$$5573 = $290;$$5589 = $292;
+    }
+   }
+   $293 = ($$5589|0)==(0);
+   if ($293) {
+    $$5580$lcssa = $$0575$ph;$$6$lcssa = $$1$ph;$$7658$lcssa = $$2653$ph;
+   } else {
+    $$5580755 = $$0575$ph;$$6590754 = $$5589;$$6756 = $$1$ph;$$7658753 = 
$$2653$ph;
+    while(1) {
+     $294 = (($$6590754) + -1)|0;
+     $295 = ($$7658753|0)<(16);
+     if ($295) {
+      (__gcry_mpih_mul($$5580755,$$6756,$$7658753,$$6756,$$7658753)|0);
+     } else {
+      
__gcry_mpih_mul_karatsuba_case($$5580755,$$6756,$$7658753,$$6756,$$7658753,$6);
+     }
+     $296 = $$7658753 << 1;
+     $297 = ($296|0)>($14|0);
+     if ($297) {
+      $298 = (($$5580755) + ($14<<2)|0);
+      (__gcry_mpih_divrem($298,0,$$5580755,$296,$55,$14)|0);
+      $storemerge$i617 = $14;
+     } else {
+      $storemerge$i617 = $296;
+     }
+     $299 = ($294|0)==(0);
+     if ($299) {
+      $$5580$lcssa = $$6756;$$6$lcssa = $$5580755;$$7658$lcssa = 
$storemerge$i617;
+      break;
+     } else {
+      $$6756$phi = $$5580755;$$5580755$phi = $$6756;$$6590754 = $294;$$7658753 
= $storemerge$i617;$$6756 = $$6756$phi;$$5580755 = $$5580755$phi;
+     }
+    }
+   }
+   $300 = ($$5567|0)==(0);
+   do {
+    if ($300) {
+     $$8 = $$6$lcssa;$$9660 = $$7658$lcssa;
+    } else {
+     do {
+      if ($191) {
+       $$2607$lcssa861 = 0;
+       label = 118;
+      } else {
+       $301 = ((($9)) + 4|0);
+       $302 = ((($10)) + 4|0);
+       $303 = ((($10)) + 8|0);
+       $304 = ((($9)) + 8|0);
+       $305 = ((($10)) + 12|0);
+       $306 = ((($9)) + 12|0);
+       $307 = ((($9)) + 16|0);
+       $308 = ((($10)) + 16|0);
+       $309 = $$5567 >>> 1;
+       $$1583748 = 0;$$2607747 = 0;
+       while(1) {
+        $310 = (($5) + ($$1583748<<2)|0);
+        $311 = HEAP32[$310>>2]|0;
+        HEAP32[$301>>2] = $311;
+        HEAP32[$9>>2] = $311;
+        HEAP32[$302>>2] = $311;
+        HEAP32[$10>>2] = $311;
+        HEAP32[$303>>2] = 0;
+        HEAP32[$304>>2] = 0;
+        HEAP32[$305>>2] = 0;
+        HEAP32[$306>>2] = 0;
+        HEAP32[$307>>2] = $163;
+        $312 = (($4) + ($$1583748<<2)|0);
+        $313 = HEAP32[$312>>2]|0;
+        HEAP32[$308>>2] = $313;
+        $314 = ($$1583748|0)==($309|0);
+        $315 = $314&1;
+        (__gcry_mpi_set_cond($9,$10,$315)|0);
+        $316 = $314 ? $311 : 0;
+        $317 = $316 | $$2607747;
+        $318 = (($$1583748) + 1)|0;
+        $319 = ($318|0)<($143|0);
+        if ($319) {
+         $$1583748 = $318;$$2607747 = $317;
+        } else {
+         break;
+        }
+       }
+       $320 = ($317|0)<(16);
+       if ($320) {
+        $$2607$lcssa861 = $317;
+        label = 118;
+        break;
+       }
+       
__gcry_mpih_mul_karatsuba_case($$5580$lcssa,$$6$lcssa,$$7658$lcssa,$163,$317,$6);
+       $$2607$lcssa860 = $317;
+      }
+     } while(0);
+     if ((label|0) == 118) {
+      
(__gcry_mpih_mul($$5580$lcssa,$$6$lcssa,$$7658$lcssa,$163,$$2607$lcssa861)|0);
+      $$2607$lcssa860 = $$2607$lcssa861;
+     }
+     $321 = (($$2607$lcssa860) + ($$7658$lcssa))|0;
+     $322 = ($321|0)>($14|0);
+     if ($322) {
+      $323 = (($$5580$lcssa) + ($14<<2)|0);
+      (__gcry_mpih_divrem($323,0,$$5580$lcssa,$321,$55,$14)|0);
+      $storemerge$i619 = $14;
+     } else {
+      $storemerge$i619 = $321;
+     }
+     $324 = ($$5573|0)==(0);
+     if ($324) {
+      $$8 = $$5580$lcssa;$$9660 = $storemerge$i619;
+      break;
+     }
+     $$6574742 = $$5573;$$6581741 = $$6$lcssa;$$7743 = $$5580$lcssa;$$8659740 
= $storemerge$i619;
+     while(1) {
+      $325 = ($$8659740|0)<(16);
+      if ($325) {
+       (__gcry_mpih_mul($$6581741,$$7743,$$8659740,$$7743,$$8659740)|0);
+      } else {
+       
__gcry_mpih_mul_karatsuba_case($$6581741,$$7743,$$8659740,$$7743,$$8659740,$6);
+      }
+      $326 = $$8659740 << 1;
+      $327 = ($326|0)>($14|0);
+      if ($327) {
+       $328 = (($$6581741) + ($14<<2)|0);
+       (__gcry_mpih_divrem($328,0,$$6581741,$326,$55,$14)|0);
+       $storemerge$i621 = $14;
+      } else {
+       $storemerge$i621 = $326;
+      }
+      $329 = (($$6574742) + -1)|0;
+      $330 = ($329|0)==(0);
+      if ($330) {
+       $$8 = $$6581741;$$9660 = $storemerge$i621;
+       break;
+      } else {
+       $$7743$phi = $$6581741;$$6581741$phi = $$7743;$$6574742 = 
$329;$$8659740 = $storemerge$i621;$$7743 = $$7743$phi;$$6581741 = $$6581741$phi;
+      }
+     }
+    }
+   } while(0);
+   $331 = HEAP32[$37>>2]|0;
+   do {
+    if ($72) {
+     $332 = (__gcry_mpih_lshift($331,$$8,$$9660,$71)|0);
+     $333 = HEAP32[$37>>2]|0;
+     $334 = ($332|0)==(0);
+     if ($334) {
+      $$10 = $$9660;$$9 = $333;
+      break;
+     }
+     $335 = (($$9660) + 1)|0;
+     $336 = (($333) + ($$9660<<2)|0);
+     HEAP32[$336>>2] = $332;
+     $$10 = $335;$$9 = $333;
+    } else {
+     $337 = ($331|0)==($$8|0);
+     if ($337) {
+      $$10 = $$9660;$$9 = $$8;
+      break;
+     }
+     $338 = ($$9660|0)>(0);
+     if (!($338)) {
+      $$10 = $$9660;$$9 = $331;
+      break;
+     }
+     $$0737 = 0;
+     while(1) {
+      $339 = (($$8) + ($$0737<<2)|0);
+      $340 = HEAP32[$339>>2]|0;
+      $341 = (($331) + ($$0737<<2)|0);
+      HEAP32[$341>>2] = $340;
+      $342 = (($$0737) + 1)|0;
+      $exitcond = ($342|0)==($$9660|0);
+      if ($exitcond) {
+       $$10 = $$9660;$$9 = $331;
+       break;
+      } else {
+       $$0737 = $342;
+      }
+     }
+    }
+   } while(0);
+   $343 = ($$10|0)<($14|0);
+   if ($343) {
+    $$11 = $$10;
+   } else {
+    $344 = (($$9) + ($14<<2)|0);
+    (__gcry_mpih_divrem($344,0,$$9,$$10,$55,$14)|0);
+    $$11 = $14;
+   }
+   if ($72) {
+    (__gcry_mpih_rshift($$9,$$9,$$11,$71)|0);
+   }
+   $345 = ($$11|0)>(0);
+   L206: do {
+    if ($345) {
+     $$12730 = $$11;
+     while(1) {
+      $347 = (($$12730) + -1)|0;
+      $348 = (($$9) + ($347<<2)|0);
+      $349 = HEAP32[$348>>2]|0;
+      $350 = ($349|0)==(0);
+      if (!($350)) {
+       $$12$lcssa = $$12730;
+       break L206;
+      }
+      $346 = ($$12730|0)>(1);
+      if ($346) {
+       $$12730 = $347;
+      } else {
+       $$12$lcssa = $347;
+       break;
+      }
+     }
+    } else {
+     $$12$lcssa = $$11;
+    }
+   } while(0);
+   __gcry_mpih_release_karatsuba_ctx($6);
+   if (!($191)) {
+    if ($25) {
+     $$5596728$us = 0;
+     while(1) {
+      $351 = (($4) + ($$5596728$us<<2)|0);
+      $352 = HEAP32[$351>>2]|0;
+      $353 = (($5) + ($$5596728$us<<2)|0);
+      $354 = HEAP32[$353>>2]|0;
+      __gcry_mpi_free_limb_space($352,$354);
+      $355 = (($$5596728$us) + 1)|0;
+      $356 = ($355|0)<($143|0);
+      if ($356) {
+       $$5596728$us = $355;
+      } else {
+       break;
+      }
+     }
+    } else {
+     $$5596728 = 0;
+     while(1) {
+      $357 = (($4) + ($$5596728<<2)|0);
+      $358 = HEAP32[$357>>2]|0;
+      __gcry_mpi_free_limb_space($358,0);
+      $359 = (($$5596728) + 1)|0;
+      $360 = ($359|0)<($143|0);
+      if ($360) {
+       $$5596728 = $359;
+      } else {
+       break;
+      }
+     }
+    }
+   }
+   $361 = $25 ? $$0603$lcssa : 0;
+   __gcry_mpi_free_limb_space($163,$361);
+   $362 = ($$12$lcssa|0)!=(0);
+   $or$cond = $130 & $362;
+   L222: do {
+    if ($or$cond) {
+     if ($72) {
+      (__gcry_mpih_rshift($55,$55,$14,$71)|0);
+     }
+     $363 = (__gcry_mpih_sub_n($$9,$55,$$9,$$12$lcssa)|0);
+     $364 = (($14) - ($$12$lcssa))|0;
+     $365 = ($364|0)==(0);
+     L227: do {
+      if (!($365)) {
+       $366 = (($$9) + ($$12$lcssa<<2)|0);
+       $367 = (($55) + ($$12$lcssa<<2)|0);
+       $368 = ((($367)) + 4|0);
+       $369 = HEAP32[$367>>2]|0;
+       $370 = (($369) - ($363))|0;
+       $371 = ((($366)) + 4|0);
+       HEAP32[$366>>2] = $370;
+       $372 = ($370>>>0)>($369>>>0);
+       L229: do {
+        if ($372) {
+         $373 = (($364) + -1)|0;
+         $374 = ($373|0)==(0);
+         if ($374) {
+          break L227;
+         }
+         $$02637$i$i = $368;$$02836$i$i = $371;$376 = $373;
+         while(1) {
+          $378 = ((($$02637$i$i)) + 4|0);
+          $379 = HEAP32[$$02637$i$i>>2]|0;
+          $380 = (($379) + -1)|0;
+          $381 = ((($$02836$i$i)) + 4|0);
+          HEAP32[$$02836$i$i>>2] = $380;
+          $382 = ($379|0)==(0);
+          if (!($382)) {
+           $$1$i$i = $376;$$127$i$i = $378;$$129$i$i = $381;
+           break L229;
+          }
+          $375 = (($376) + -1)|0;
+          $377 = ($375|0)==(0);
+          if ($377) {
+           break L227;
+          } else {
+           $$02637$i$i = $378;$$02836$i$i = $381;$376 = $375;
+          }
+         }
+        } else {
+         $$1$i$i = $364;$$127$i$i = $368;$$129$i$i = $371;
+        }
+       } while(0);
+       $383 = ($$129$i$i|0)==($$127$i$i|0);
+       if ($383) {
+        break;
+       }
+       $384 = (($$1$i$i) + -1)|0;
+       $385 = ($$1$i$i|0)>(1);
+       if (!($385)) {
+        break;
+       }
+       $$035$i$i = 0;
+       while(1) {
+        $386 = (($$127$i$i) + ($$035$i$i<<2)|0);
+        $387 = HEAP32[$386>>2]|0;
+        $388 = (($$129$i$i) + ($$035$i$i<<2)|0);
+        HEAP32[$388>>2] = $387;
+        $389 = (($$035$i$i) + 1)|0;
+        $exitcond$i$i = ($389|0)==($384|0);
+        if ($exitcond$i$i) {
+         break;
+        } else {
+         $$035$i$i = $389;
+        }
+       }
+      }
+     } while(0);
+     $390 = ($14|0)>(0);
+     if (!($390)) {
+      $$0540 = $17;$$13 = $14;
+      break;
+     }
+     $storemerge725 = $14;
+     while(1) {
+      $392 = (($storemerge725) + -1)|0;
+      $393 = (($$9) + ($392<<2)|0);
+      $394 = HEAP32[$393>>2]|0;
+      $395 = ($394|0)==(0);
+      if (!($395)) {
+       $$0540 = $17;$$13 = $storemerge725;
+       break L222;
+      }
+      $391 = ($storemerge725|0)>(1);
+      if ($391) {
+       $storemerge725 = $392;
+      } else {
+       $$0540 = $17;$$13 = $392;
+       break;
+      }
+     }
+    } else {
+     $$0540 = 0;$$13 = $$12$lcssa;
+    }
+   } while(0);
+   $396 = HEAP32[$37>>2]|0;
+   $397 = ($396|0)==($$9|0);
+   if ($397) {
+    $$0540$sink = $$0540;$$0548 = $125;$$0561 = $124;$$13$sink = $$13;$$1546 = 
$$0545;$$1555 = $$0554;$$2544 = $$1543;$$2553 = $$1552;
+    break;
+   }
+   __gcry_assert_failed(64041,64016,786,64026);
+   // unreachable;
+  }
+ } while(0);
+ $398 = ((($0)) + 4|0);
+ HEAP32[$398>>2] = $$13$sink;
+ $399 = ((($0)) + 8|0);
+ HEAP32[$399>>2] = $$0540$sink;
+ $400 = ($55|0)==(0|0);
+ if (!($400)) {
+  __gcry_mpi_free_limb_space($55,$54);
+ }
+ $401 = ($$2544|0)==(0|0);
+ if (!($401)) {
+  __gcry_mpi_free_limb_space($$2544,$$2553);
+ }
+ $402 = ($$1546|0)==(0|0);
+ if (!($402)) {
+  __gcry_mpi_free_limb_space($$1546,$$1555);
+ }
+ $403 = ($$0548|0)==(0|0);
+ if ($403) {
+  STACKTOP = sp;return;
+ }
+ __gcry_mpi_free_limb_space($$0548,$$0561);
+ STACKTOP = sp;return;
+}
+function __gcry_mpi_trailing_zeros($0) {
+ $0 = $0|0;
+ var $$03436 = 0, $$037 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 
0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 
0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 4|0);
+ $2 = HEAP32[$1>>2]|0;
+ $3 = ($2|0)==(0);
+ if ($3) {
+  $$1 = 0;
+  return ($$1|0);
+ }
+ $4 = ((($0)) + 16|0);
+ $5 = HEAP32[$4>>2]|0;
+ $$03436 = 0;$$037 = 0;
+ while(1) {
+  $6 = (($5) + ($$037<<2)|0);
+  $7 = HEAP32[$6>>2]|0;
+  $8 = ($7|0)==(0);
+  if (!($8)) {
+   break;
+  }
+  $24 = (($$03436) + 32)|0;
+  $25 = (($$037) + 1)|0;
+  $26 = ($25>>>0)<($2>>>0);
+  if ($26) {
+   $$03436 = $24;$$037 = $25;
+  } else {
+   $$1 = $24;
+   label = 6;
+   break;
+  }
+ }
+ if ((label|0) == 6) {
+  return ($$1|0);
+ }
+ $9 = (0 - ($7))|0;
+ $10 = $7 & $9;
+ $11 = ($10>>>0)<(65536);
+ $12 = ($10>>>0)<(256);
+ $13 = $12 ? 0 : 8;
+ $14 = ($10>>>0)<(16777216);
+ $15 = $14 ? 16 : 24;
+ $16 = $11 ? $13 : $15;
+ $17 = $10 >>> $16;
+ $18 = (14784 + ($17)|0);
+ $19 = HEAP8[$18>>0]|0;
+ $20 = $19&255;
+ $21 = (($$03436) + -1)|0;
+ $22 = (($21) + ($16))|0;
+ $23 = (($22) + ($20))|0;
+ $$1 = $23;
+ return ($$1|0);
+}
+function __gcry_mpi_get_buffer($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (_do_get_buffer($0,$1,0,$2,$3,0)|0);
+ return ($4|0);
+}
+function _do_get_buffer($0,$1,$2,$3,$4,$5) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ var $$0 = 0, $$088 = 0, $$089110 = 0, $$089110$in = 0, $$090 = 0, $$091109 = 
0, $$093$lcssa = 0, $$094 = 0, $$1104 = 0, $$2$lcssa = 0, $$295 = 0, $$lcssa = 
0, $$pn = 0, $$pr = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0;
+ var $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, $34 = 0, $35 = 0;
+ var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 
0, $53 = 0, $54 = 0, $55 = 0;
+ var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, 
$63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $spec$select = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ $6 = ($4|0)==(0|0);
+ if (!($6)) {
+  $7 = ((($0)) + 8|0);
+  $8 = HEAP32[$7>>2]|0;
+  HEAP32[$4>>2] = $8;
+ }
+ $9 = ((($0)) + 4|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = $10 << 2;
+ HEAP32[$3>>2] = $11;
+ $12 = ($10|0)==(0);
+ $spec$select = $12 ? 1 : $11;
+ $13 = ($spec$select>>>0)<($1>>>0);
+ $$088 = $13 ? $1 : $spec$select;
+ $14 = ($2|0)<(0);
+ $15 = (0 - ($2))|0;
+ $$pn = $14 ? $15 : $2;
+ $$0 = (($$088) + ($$pn))|0;
+ $16 = ($5|0)==(0);
+ if ($16) {
+  $17 = ((($0)) + 12|0);
+  $18 = HEAP32[$17>>2]|0;
+  $19 = $18 & 1;
+  $20 = ($19|0)==(0);
+  if ($20) {
+   $22 = (__gcry_malloc($$0)|0);
+   $24 = $22;
+  } else {
+   label = 5;
+  }
+ } else {
+  label = 5;
+ }
+ if ((label|0) == 5) {
+  $21 = (__gcry_malloc_secure($$0)|0);
+  $24 = $21;
+ }
+ $23 = ($24|0)==(0|0);
+ if ($23) {
+  $$090 = 0;
+  return ($$090|0);
+ }
+ $25 = (($24) + ($15)|0);
+ $$094 = $14 ? $25 : $24;
+ $26 = HEAP32[$9>>2]|0;
+ $27 = ($26|0)>(0);
+ if ($27) {
+  $28 = ((($0)) + 16|0);
+  $$089110$in = $26;$$091109 = $$094;
+  while(1) {
+   $$089110 = (($$089110$in) + -1)|0;
+   $29 = HEAP32[$28>>2]|0;
+   $30 = (($29) + ($$089110<<2)|0);
+   $31 = HEAP32[$30>>2]|0;
+   $32 = $31 >>> 24;
+   $33 = $32&255;
+   $34 = ((($$091109)) + 1|0);
+   HEAP8[$$091109>>0] = $33;
+   $35 = $31 >>> 16;
+   $36 = $35&255;
+   $37 = ((($$091109)) + 2|0);
+   HEAP8[$34>>0] = $36;
+   $38 = $31 >>> 8;
+   $39 = $38&255;
+   $40 = ((($$091109)) + 3|0);
+   HEAP8[$37>>0] = $39;
+   $41 = $31&255;
+   $42 = ((($$091109)) + 4|0);
+   HEAP8[$40>>0] = $41;
+   $43 = ($$089110$in|0)>(1);
+   if ($43) {
+    $$089110$in = $$089110;$$091109 = $42;
+   } else {
+    break;
+   }
+  }
+ }
+ $44 = ($1|0)==(0);
+ $$pr = HEAP32[$3>>2]|0;
+ if (!($44)) {
+  $45 = $$pr >>> 1;
+  $46 = ($45|0)==(0);
+  if (!($46)) {
+   $47 = (($$pr) + -1)|0;
+   $$1104 = 0;
+   while(1) {
+    $48 = (($$094) + ($$1104)|0);
+    $49 = HEAP8[$48>>0]|0;
+    $50 = (($47) - ($$1104))|0;
+    $51 = (($$094) + ($50)|0);
+    $52 = HEAP8[$51>>0]|0;
+    HEAP8[$48>>0] = $52;
+    HEAP8[$51>>0] = $49;
+    $53 = (($$1104) + 1)|0;
+    $exitcond = ($53|0)==($45|0);
+    if ($exitcond) {
+     break;
+    } else {
+     $$1104 = $53;
+    }
+   }
+  }
+  $54 = ($$pr>>>0)<($1>>>0);
+  if ($54) {
+   $55 = (($$094) + ($$pr)|0);
+   $56 = (($1) - ($$pr))|0;
+   _memset(($55|0),0,($56|0))|0;
+   $$093$lcssa = $1;
+  } else {
+   $$093$lcssa = $$pr;
+  }
+  HEAP32[$3>>2] = $$093$lcssa;
+  $$090 = $24;
+  return ($$090|0);
+ }
+ $57 = ($$pr|0)==(0);
+ if ($57) {
+  $$090 = $24;
+  return ($$090|0);
+ }
+ $$295 = $$094;$62 = $$pr;
+ while(1) {
+  $58 = HEAP8[$$295>>0]|0;
+  $59 = ($58<<24>>24)==(0);
+  if (!($59)) {
+   $$2$lcssa = $$295;$$lcssa = $62;
+   break;
+  }
+  $60 = ((($$295)) + 1|0);
+  $61 = (($62) + -1)|0;
+  HEAP32[$3>>2] = $61;
+  $63 = ($61|0)==(0);
+  if ($63) {
+   $$2$lcssa = $60;$$lcssa = 0;
+   break;
+  } else {
+   $$295 = $60;$62 = $61;
+  }
+ }
+ $64 = ($$2$lcssa|0)==($$094|0);
+ if ($64) {
+  $$090 = $24;
+  return ($$090|0);
+ }
+ _memmove(($$094|0),($$2$lcssa|0),($$lcssa|0))|0;
+ $$090 = $24;
+ return ($$090|0);
+}
+function __gcry_mpi_get_buffer_extra($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = (_do_get_buffer($0,$1,$2,$3,$4,0)|0);
+ return ($5|0);
+}
+function __gcry_mpi_set_buffer($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0$lcssa = 0, $$053$add = 0, $$053$ptr = 0, $$053$ptr$lcssa = 0, 
$$053$ptr63 = 0, $$053$ptr66 = 0, $$055 = 0, $$065 = 0, $$1 = 0, $$154 = 0, 
$$156 = 0, $$2 = 0, $$257 = 0, $$add = 0, $$add58 = 0, $$pn$add = 0, $$pn$add62 
= 0, $$pn$idx$lcssa = 0, $$pn$idx64 = 0, $$pre = 0;
+ var $$ptr = 0, $$ptr59 = 0, $$ptr60 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, 
$14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 
0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $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;
+ var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $63 = 0;
+ var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $8 = 0, $9 
= 0, $exitcond = 0, $scevgep = 0, $smax = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = ($0|0)==(0|0);
+ if (!($4)) {
+  $5 = ((($0)) + 12|0);
+  $6 = HEAP32[$5>>2]|0;
+  $7 = $6 & 16;
+  $8 = ($7|0)==(0);
+  if (!($8)) {
+   __gcry_mpi_immutable_failed();
+   return;
+  }
+ }
+ $9 = (($2) + 3)|0;
+ $10 = $9 >>> 2;
+ $11 = HEAP32[$0>>2]|0;
+ $12 = ($11|0)<($10|0);
+ if ($12) {
+  __gcry_mpi_resize($0,$10);
+ }
+ $13 = ((($0)) + 8|0);
+ HEAP32[$13>>2] = $3;
+ $$pn$add62 = (($2) + -1)|0;
+ $$053$ptr63 = (($1) + ($$pn$add62)|0);
+ $14 = ($2|0)>(4);
+ if ($14) {
+  $15 = ((($0)) + 16|0);
+  $16 = $2 ^ -1;
+  $17 = ($16|0)>(-9);
+  $smax = $17 ? $16 : -9;
+  $18 = (($smax) + ($2))|0;
+  $19 = (($18) + 4)|0;
+  $20 = $19 >>> 2;
+  $21 = $19 & -4;
+  $22 = (($20) + 1)|0;
+  $23 = (($2) + -5)|0;
+  $24 = (($23) - ($21))|0;
+  $$pre = HEAP32[$15>>2]|0;
+  $$053$ptr66 = $$053$ptr63;$$065 = 0;$$pn$idx64 = $2;
+  while(1) {
+   $$053$add = (($$pn$idx64) + -2)|0;
+   $$ptr = (($1) + ($$053$add)|0);
+   $25 = HEAP8[$$053$ptr66>>0]|0;
+   $26 = $25&255;
+   $$add = (($$pn$idx64) + -3)|0;
+   $$ptr59 = (($1) + ($$add)|0);
+   $27 = HEAP8[$$ptr>>0]|0;
+   $28 = $27&255;
+   $29 = $28 << 8;
+   $30 = $29 | $26;
+   $$add58 = (($$pn$idx64) + -4)|0;
+   $$ptr60 = (($1) + ($$add58)|0);
+   $31 = HEAP8[$$ptr59>>0]|0;
+   $32 = $31&255;
+   $33 = $32 << 16;
+   $34 = $30 | $33;
+   $35 = HEAP8[$$ptr60>>0]|0;
+   $36 = $35&255;
+   $37 = $36 << 24;
+   $38 = $34 | $37;
+   $39 = (($$065) + 1)|0;
+   $40 = (($$pre) + ($$065<<2)|0);
+   HEAP32[$40>>2] = $38;
+   $$pn$add = (($$pn$idx64) + -5)|0;
+   $$053$ptr = (($1) + ($$pn$add)|0);
+   $exitcond = ($39|0)==($22|0);
+   if ($exitcond) {
+    break;
+   } else {
+    $$053$ptr66 = $$053$ptr;$$065 = $39;$$pn$idx64 = $$add58;
+   }
+  }
+  $41 = (($2) + -4)|0;
+  $42 = (($41) - ($21))|0;
+  $scevgep = (($1) + ($24)|0);
+  $$0$lcssa = $22;$$053$ptr$lcssa = $scevgep;$$pn$idx$lcssa = $42;
+ } else {
+  $$0$lcssa = 0;$$053$ptr$lcssa = $$053$ptr63;$$pn$idx$lcssa = $2;
+ }
+ $43 = ($$pn$idx$lcssa|0)>(0);
+ if ($43) {
+  $44 = ((($$053$ptr$lcssa)) + -1|0);
+  $45 = HEAP8[$$053$ptr$lcssa>>0]|0;
+  $46 = $45&255;
+  $47 = ($44>>>0)<($1>>>0);
+  if ($47) {
+   $$055 = $46;$$154 = $44;
+  } else {
+   $48 = ((($$053$ptr$lcssa)) + -2|0);
+   $49 = HEAP8[$44>>0]|0;
+   $50 = $49&255;
+   $51 = $50 << 8;
+   $52 = $51 | $46;
+   $$055 = $52;$$154 = $48;
+  }
+  $53 = ($$154>>>0)<($1>>>0);
+  if ($53) {
+   $$156 = $$055;$$2 = $$154;
+  } else {
+   $54 = ((($$154)) + -1|0);
+   $55 = HEAP8[$$154>>0]|0;
+   $56 = $55&255;
+   $57 = $56 << 16;
+   $58 = $57 | $$055;
+   $$156 = $58;$$2 = $54;
+  }
+  $59 = ($$2>>>0)<($1>>>0);
+  if ($59) {
+   $$257 = $$156;
+  } else {
+   $60 = HEAP8[$$2>>0]|0;
+   $61 = $60&255;
+   $62 = $61 << 24;
+   $63 = $62 | $$156;
+   $$257 = $63;
+  }
+  $64 = ((($0)) + 16|0);
+  $65 = HEAP32[$64>>2]|0;
+  $66 = (($$0$lcssa) + 1)|0;
+  $67 = (($65) + ($$0$lcssa<<2)|0);
+  HEAP32[$67>>2] = $$257;
+  $$1 = $66;
+ } else {
+  $$1 = $$0$lcssa;
+ }
+ $68 = ((($0)) + 4|0);
+ HEAP32[$68>>2] = $$1;
+ $69 = ($$1|0)==($10|0);
+ if ($69) {
+  return;
+ } else {
+  __gcry_assert_failed(64054,64066,377,64077);
+  // unreachable;
+ }
+}
+function __gcry_mpi_scan($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$ = 0, $$0$i = 0, $$0100 = 0, $$0126$i = 0, $$020$i = 0, $$020$i106 = 0, 
$$04458$i = 0, $$04562$i = 0, $$04661$i = 0, $$04860$i = 0, $$05059$i = 0, 
$$095$off$i = 0, $$095$off101$i = 0, $$095$off102$i = 0, $$095108$i = 0, 
$$096$i = 0, $$098128$i = 0, $$099127$i = 0, $$1 = 0, $$1$i = 0;
+ var $$1100123$i = 0, $$14756$i = 0, $$14955$i = 0, $$157$i = 0, $$192129$i = 
0, $$197$i = 0, $$2$i = 0, $$2130$i = 0, $$293124$i = 0, $$3125$i = 0, $$4110$i 
= 0, $$lobit = 0, $$lobit101 = 0, $$off = 0, $$off$i = 0, $$off103$i = 0, 
$$off104$i = 0, $$sink = 0, $10 = 0, $100 = 0;
+ var $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;
+ var $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, $136 = 0, $137 = 0;
+ var $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 
= 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 
= 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0;
+ var $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 
= 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 
= 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0;
+ var $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 
= 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 
= 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0;
+ var $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 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;
+ var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, 
$42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0;
+ var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, 
$60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 
0, $69 = 0, $7 = 0, $70 = 0;
+ var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, 
$79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, 
$87 = 0, $88 = 0, $89 = 0;
+ var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, 
$97 = 0, $98 = 0, $99 = 0, $exitcond$i = 0, $exitcond$i107 = 0, $or$cond = 0, 
$or$cond102 = 0, $or$cond103 = 0, $spec$select$i = 0, $spec$select105$i = 0, 
$spec$select106$i = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ $5 = ($2|0)==(0|0);
+ if ($5) {
+  $197 = 0;
+ } else {
+  $6 = (__gcry_is_secure($2)|0);
+  $7 = ($6|0)!=(0);
+  $197 = $7;
+ }
+ $8 = ($1|0)==(3);
+ $$ = $8 ? 0 : $3;
+ switch ($1|0) {
+ case 1:  {
+  $9 = (($$) + 3)|0;
+  $10 = $9 >>> 2;
+  if ($197) {
+   $11 = (__gcry_mpi_alloc_secure($10)|0);
+   $14 = $11;
+  } else {
+   $12 = (__gcry_mpi_alloc($10)|0);
+   $14 = $12;
+  }
+  $13 = ($$|0)==(0);
+  if (!($13)) {
+   __gcry_mpi_set_buffer($14,$2,$$,0);
+   $15 = HEAP8[$2>>0]|0;
+   $16 = ($15<<24>>24)<(0);
+   $$lobit101 = ($15&255) >>> 7;
+   $17 = $$lobit101&255;
+   $18 = ((($14)) + 8|0);
+   HEAP32[$18>>2] = $17;
+   if ($16) {
+    $19 = (__gcry_mpi_get_nbits($14)|0);
+    $20 = ((($14)) + 12|0);
+    $21 = HEAP32[$20>>2]|0;
+    $22 = $21 & 16;
+    $23 = ($22|0)==(0);
+    if ($23) {
+     __gcry_mpi_normalize($14);
+     $24 = ((($14)) + 16|0);
+     $25 = HEAP32[$24>>2]|0;
+     $26 = ((($14)) + 4|0);
+     $27 = HEAP32[$26>>2]|0;
+     $28 = ($27|0)==(0);
+     if (!($28)) {
+      $$020$i = 0;
+      while(1) {
+       $29 = (($25) + ($$020$i<<2)|0);
+       $30 = HEAP32[$29>>2]|0;
+       $31 = $30 ^ -1;
+       HEAP32[$29>>2] = $31;
+       $32 = (($$020$i) + 1)|0;
+       $exitcond$i = ($32|0)==($27|0);
+       if ($exitcond$i) {
+        break;
+       } else {
+        $$020$i = $32;
+       }
+      }
+     }
+     HEAP32[$18>>2] = 0;
+     $33 = (($19) + -1)|0;
+     __gcry_mpi_clear_highbit($14,$33);
+    } else {
+     __gcry_mpi_immutable_failed();
+    }
+    __gcry_mpi_add_ui($14,$14,1);
+    HEAP32[$18>>2] = 1;
+   }
+  }
+  $34 = ($0|0)==(0|0);
+  if ($34) {
+   __gcry_mpi_free($14);
+  } else {
+   __gcry_mpi_normalize($14);
+   HEAP32[$0>>2] = $14;
+  }
+  $35 = ($4|0)==(0|0);
+  if ($35) {
+   $$1 = 0;
+   return ($$1|0);
+  }
+  HEAP32[$4>>2] = $$;
+  $$1 = 0;
+  return ($$1|0);
+  break;
+ }
+ case 5:  {
+  $36 = (($$) + 3)|0;
+  $37 = $36 >>> 2;
+  if ($197) {
+   $38 = (__gcry_mpi_alloc_secure($37)|0);
+   $41 = $38;
+  } else {
+   $39 = (__gcry_mpi_alloc($37)|0);
+   $41 = $39;
+  }
+  $40 = ($$|0)==(0);
+  if (!($40)) {
+   __gcry_mpi_set_buffer($41,$2,$$,0);
+  }
+  $42 = ($0|0)==(0|0);
+  if ($42) {
+   __gcry_mpi_free($41);
+  } else {
+   __gcry_mpi_normalize($41);
+   HEAP32[$0>>2] = $41;
+  }
+  $43 = ($4|0)==(0|0);
+  if ($43) {
+   $$1 = 0;
+   return ($$1|0);
+  }
+  HEAP32[$4>>2] = $$;
+  $$1 = 0;
+  return ($$1|0);
+  break;
+ }
+ case 2:  {
+  $44 = ($$>>>0)<(2);
+  L135: do {
+   if ($44) {
+    $$0$i = 0;$$2$i = 0;
+   } else {
+    $45 = HEAP8[$2>>0]|0;
+    $46 = $45&255;
+    $47 = $46 << 8;
+    $48 = ((($2)) + 1|0);
+    $49 = HEAP8[$48>>0]|0;
+    $50 = $49&255;
+    $51 = $47 | $50;
+    $52 = ($51>>>0)>(16384);
+    if ($52) {
+     $$0$i = 0;$$2$i = 0;
+    } else {
+     $53 = ((($2)) + 2|0);
+     $54 = (($51) + 7)|0;
+     $55 = $54 >>> 3;
+     $56 = (($55) + 3)|0;
+     $57 = $56 >>> 2;
+     if ($197) {
+      $58 = (__gcry_mpi_alloc_secure($57)|0);
+      $61 = $58;
+     } else {
+      $59 = (__gcry_mpi_alloc($57)|0);
+      $61 = $59;
+     }
+     $60 = ((($61)) + 4|0);
+     HEAP32[$60>>2] = $57;
+     $62 = ((($61)) + 8|0);
+     HEAP32[$62>>2] = 0;
+     $63 = ($57|0)==(0);
+     if ($63) {
+      $$0$i = $61;$$2$i = 2;
+     } else {
+      $64 = (0 - ($55))|0;
+      $65 = $64 & 3;
+      $66 = ((($61)) + 16|0);
+      $$04562$i = 2;$$04661$i = $53;$$04860$i = $65;$$05059$i = $57;
+      L143: while(1) {
+       $$04458$i = 0;$$14756$i = $$04661$i;$$14955$i = $$04860$i;$$157$i = 
$$04562$i;
+       while(1) {
+        $67 = (($$157$i) + 1)|0;
+        $68 = ($67>>>0)>($$>>>0);
+        if ($68) {
+         break L143;
+        }
+        $69 = $$04458$i << 8;
+        $70 = ((($$14756$i)) + 1|0);
+        $71 = HEAP8[$$14756$i>>0]|0;
+        $72 = $71&255;
+        $73 = $69 | $72;
+        $74 = (($$14955$i) + 1)|0;
+        $75 = ($74>>>0)<(4);
+        if ($75) {
+         $$04458$i = $73;$$14756$i = $70;$$14955$i = $74;$$157$i = $67;
+        } else {
+         break;
+        }
+       }
+       $76 = HEAP32[$66>>2]|0;
+       $77 = (($$05059$i) + -1)|0;
+       $78 = (($76) + ($77<<2)|0);
+       HEAP32[$78>>2] = $73;
+       $79 = ($$05059$i|0)>(1);
+       if ($79) {
+        $$04562$i = $67;$$04661$i = $70;$$04860$i = 0;$$05059$i = $77;
+       } else {
+        $$0$i = $61;$$2$i = $67;
+        break L135;
+       }
+      }
+      __gcry_mpi_free($61);
+      $$0$i = 0;$$2$i = $67;
+     }
+    }
+   }
+  } while(0);
+  $80 = ($4|0)==(0|0);
+  if (!($80)) {
+   HEAP32[$4>>2] = $$2$i;
+  }
+  $81 = ($0|0)!=(0|0);
+  $82 = ($$0$i|0)!=(0|0);
+  $or$cond = $81 & $82;
+  if ($or$cond) {
+   __gcry_mpi_normalize($$0$i);
+   HEAP32[$0>>2] = $$0$i;
+   $$0100 = $$0$i;
+  } else {
+   if ($82) {
+    __gcry_mpi_free($$0$i);
+    $$0100 = 0;
+   } else {
+    $$0100 = 0;
+   }
+  }
+  $83 = ($$0100|0)==(0|0);
+  $84 = $83 ? 65 : 0;
+  $$1 = $84;
+  return ($$1|0);
+  break;
+ }
+ default: {
+  if ($8) {
+   $$off = (($$) + -1)|0;
+   $85 = ($$off>>>0)<(3);
+   if ($85) {
+    $$1 = 66;
+    return ($$1|0);
+   }
+   $86 = ($$|0)==(0);
+   $87 = HEAP8[$2>>0]|0;
+   $88 = $87&255;
+   $89 = $88 << 24;
+   $90 = ((($2)) + 1|0);
+   $91 = HEAP8[$90>>0]|0;
+   $92 = $91&255;
+   $93 = $92 << 16;
+   $94 = $93 | $89;
+   $95 = ((($2)) + 2|0);
+   $96 = HEAP8[$95>>0]|0;
+   $97 = $96&255;
+   $98 = $97 << 8;
+   $99 = $94 | $98;
+   $100 = ((($2)) + 3|0);
+   $101 = HEAP8[$100>>0]|0;
+   $102 = $101&255;
+   $103 = $99 | $102;
+   $104 = ((($2)) + 4|0);
+   $105 = (($$) + -4)|0;
+   if (!($86)) {
+    $106 = ($105|0)!=(0);
+    $107 = ($103>>>0)>($105>>>0);
+    $or$cond102 = $106 & $107;
+    if ($or$cond102) {
+     $$1 = 67;
+     return ($$1|0);
+    }
+   }
+   $108 = (($103) + 4)|0;
+   $109 = (($103) + 3)|0;
+   $110 = $109 >>> 2;
+   if ($197) {
+    $111 = (__gcry_mpi_alloc_secure($110)|0);
+    $114 = $111;
+   } else {
+    $112 = (__gcry_mpi_alloc($110)|0);
+    $114 = $112;
+   }
+   $113 = ($103|0)==(0);
+   if (!($113)) {
+    __gcry_mpi_set_buffer($114,$104,$103,0);
+    $115 = HEAP8[$104>>0]|0;
+    $116 = ($115<<24>>24)<(0);
+    $$lobit = ($115&255) >>> 7;
+    $117 = $$lobit&255;
+    $118 = ((($114)) + 8|0);
+    HEAP32[$118>>2] = $117;
+    if ($116) {
+     $119 = (__gcry_mpi_get_nbits($114)|0);
+     $120 = ((($114)) + 12|0);
+     $121 = HEAP32[$120>>2]|0;
+     $122 = $121 & 16;
+     $123 = ($122|0)==(0);
+     if ($123) {
+      __gcry_mpi_normalize($114);
+      $124 = ((($114)) + 16|0);
+      $125 = HEAP32[$124>>2]|0;
+      $126 = ((($114)) + 4|0);
+      $127 = HEAP32[$126>>2]|0;
+      $128 = ($127|0)==(0);
+      if (!($128)) {
+       $$020$i106 = 0;
+       while(1) {
+        $129 = (($125) + ($$020$i106<<2)|0);
+        $130 = HEAP32[$129>>2]|0;
+        $131 = $130 ^ -1;
+        HEAP32[$129>>2] = $131;
+        $132 = (($$020$i106) + 1)|0;
+        $exitcond$i107 = ($132|0)==($127|0);
+        if ($exitcond$i107) {
+         break;
+        } else {
+         $$020$i106 = $132;
+        }
+       }
+      }
+      HEAP32[$118>>2] = 0;
+      $133 = (($119) + -1)|0;
+      __gcry_mpi_clear_highbit($114,$133);
+     } else {
+      __gcry_mpi_immutable_failed();
+     }
+     __gcry_mpi_add_ui($114,$114,1);
+     HEAP32[$118>>2] = 1;
+    }
+   }
+   $134 = ($4|0)==(0|0);
+   if (!($134)) {
+    HEAP32[$4>>2] = $108;
+   }
+   $135 = ($0|0)==(0|0);
+   if ($135) {
+    __gcry_mpi_free($114);
+    $$1 = 0;
+    return ($$1|0);
+   } else {
+    __gcry_mpi_normalize($114);
+    HEAP32[$0>>2] = $114;
+    $$1 = 0;
+    return ($$1|0);
+   }
+  }
+  $136 = ($1|0)==(4);
+  $137 = ($3|0)==(0);
+  $or$cond103 = $136 & $137;
+  if (!($or$cond103)) {
+   $$1 = 45;
+   return ($$1|0);
+  }
+  if ($197) {
+   $138 = (__gcry_mpi_alloc_secure(0)|0);
+   $157 = $138;
+  } else {
+   $139 = (__gcry_mpi_alloc(0)|0);
+   $157 = $139;
+  }
+  $140 = HEAP8[$2>>0]|0;
+  $141 = ($140<<24>>24)==(45);
+  $142 = ((($2)) + 1|0);
+  $spec$select$i = $141&1;
+  $spec$select105$i = $141 ? $142 : $2;
+  $143 = HEAP8[$spec$select105$i>>0]|0;
+  $144 = ($143<<24>>24)==(48);
+  if ($144) {
+   $145 = ((($spec$select105$i)) + 1|0);
+   $146 = HEAP8[$145>>0]|0;
+   $147 = ($146<<24>>24)==(120);
+   $148 = ((($spec$select105$i)) + 2|0);
+   $spec$select106$i = $147 ? $148 : $spec$select105$i;
+   $$1$i = $spec$select106$i;
+  } else {
+   $$1$i = $spec$select105$i;
+  }
+  $149 = (_strlen($$1$i)|0);
+  $150 = $149 << 2;
+  $151 = $149 & 1;
+  $152 = (($150) + 7)|0;
+  $153 = $152 >>> 3;
+  $154 = (($153) + 3)|0;
+  $155 = $154 >>> 2;
+  $156 = HEAP32[$157>>2]|0;
+  $158 = ($156>>>0)<($155>>>0);
+  if ($158) {
+   __gcry_mpi_resize($157,$155);
+   $159 = ((($157)) + 4|0);
+   HEAP32[$159>>2] = $155;
+   $160 = ((($157)) + 8|0);
+   HEAP32[$160>>2] = $spec$select$i;
+   label = 80;
+  } else {
+   $161 = ((($157)) + 4|0);
+   HEAP32[$161>>2] = $155;
+   $162 = ((($157)) + 8|0);
+   HEAP32[$162>>2] = $spec$select$i;
+   $163 = ($155|0)==(0);
+   if (!($163)) {
+    label = 80;
+   }
+  }
+  L54: do {
+   if ((label|0) == 80) {
+    $164 = (0 - ($153))|0;
+    $165 = $164 & 3;
+    $166 = ((($157)) + 16|0);
+    $$098128$i = $155;$$099127$i = $165;$$192129$i = $151;$$2130$i = $$1$i;
+    L56: while(1) {
+     $$0126$i = 0;$$1100123$i = $$099127$i;$$293124$i = $$192129$i;$$3125$i = 
$$2130$i;
+     while(1) {
+      $167 = ($$293124$i|0)==(0);
+      if ($167) {
+       $168 = ((($$3125$i)) + 1|0);
+       $169 = HEAP8[$$3125$i>>0]|0;
+       $170 = $169 << 24 >> 24;
+       $171 = ($169<<24>>24)==(0);
+       if ($171) {
+        label = 84;
+        break L56;
+       } else {
+        $$095108$i = $170;$$4110$i = $168;
+       }
+      } else {
+       $$095108$i = 48;$$4110$i = $$3125$i;
+      }
+      $172 = ((($$4110$i)) + 1|0);
+      $173 = HEAP8[$$4110$i>>0]|0;
+      $174 = $173 << 24 >> 24;
+      $175 = ($173<<24>>24)==(0);
+      if ($175) {
+       label = 86;
+       break L56;
+      }
+      $$095$off$i = (($$095108$i) + -48)|0;
+      $176 = ($$095$off$i>>>0)<(10);
+      do {
+       if ($176) {
+        $$096$i = $$095$off$i;
+       } else {
+        $$095$off101$i = (($$095108$i) + -97)|0;
+        $177 = ($$095$off101$i>>>0)<(6);
+        if ($177) {
+         $178 = (($$095108$i) + -87)|0;
+         $$096$i = $178;
+         break;
+        }
+        $$095$off102$i = (($$095108$i) + -65)|0;
+        $179 = ($$095$off102$i>>>0)<(6);
+        if (!($179)) {
+         label = 92;
+         break L56;
+        }
+        $180 = (($$095108$i) + -55)|0;
+        $$096$i = $180;
+       }
+      } while(0);
+      $181 = $$096$i << 4;
+      $$off$i = (($173) + -48)<<24>>24;
+      $182 = ($$off$i&255)<(10);
+      if ($182) {
+       $$sink = -48;
+      } else {
+       $$off103$i = (($173) + -97)<<24>>24;
+       $183 = ($$off103$i&255)<(6);
+       if ($183) {
+        $$sink = -87;
+       } else {
+        $$off104$i = (($173) + -65)<<24>>24;
+        $184 = ($$off104$i&255)<(6);
+        if ($184) {
+         $$sink = -55;
+        } else {
+         label = 96;
+         break L56;
+        }
+       }
+      }
+      $185 = (($$sink) + ($174))|0;
+      $186 = $$0126$i << 8;
+      $$197$i = $181 | $186;
+      $187 = $$197$i | $185;
+      $188 = (($$1100123$i) + 1)|0;
+      $189 = ($188>>>0)<(4);
+      if ($189) {
+       $$0126$i = $187;$$1100123$i = $188;$$293124$i = 0;$$3125$i = $172;
+      } else {
+       break;
+      }
+     }
+     $190 = HEAP32[$166>>2]|0;
+     $191 = (($$098128$i) + -1)|0;
+     $192 = (($190) + ($191<<2)|0);
+     HEAP32[$192>>2] = $187;
+     $193 = ($$098128$i|0)>(1);
+     if ($193) {
+      $$098128$i = $191;$$099127$i = 0;$$192129$i = 0;$$2130$i = $172;
+     } else {
+      break L54;
+     }
+    }
+    if ((label|0) == 84) {
+     __gcry_mpi_clear($157);
+    }
+    else if ((label|0) == 86) {
+     __gcry_mpi_clear($157);
+    }
+    else if ((label|0) == 92) {
+     __gcry_mpi_clear($157);
+    }
+    else if ((label|0) == 96) {
+     __gcry_mpi_clear($157);
+    }
+    __gcry_mpi_free($157);
+    $$1 = 65;
+    return ($$1|0);
+   }
+  } while(0);
+  $194 = ($0|0)==(0|0);
+  if ($194) {
+   __gcry_mpi_free($157);
+  } else {
+   __gcry_mpi_normalize($157);
+   HEAP32[$0>>2] = $157;
+  }
+  $195 = ($4|0)==(0|0);
+  if ($195) {
+   $$1 = 0;
+   return ($$1|0);
+  }
+  $196 = (_strlen($2)|0);
+  HEAP32[$4>>2] = $196;
+  $$1 = 0;
+  return ($$1|0);
+ }
+ }
+ return (0)|0;
+}
+function __gcry_mpi_print($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0151 = 0, $$0154 = 0, $$0155301 = 0, $$0157 = 0, $$0158$shrunk = 0, 
$$0159 = 0, $$0160$shrunk = 0, $$0160$shrunk309310314 = 0, $$0163 = 0, $$0262 = 
0, $$0265 = 0, $$0269 = 0, $$0273 = 0, $$0277 = 0, $$089110$i = 0, 
$$089110$i174 = 0, $$089110$i188 = 0, $$089110$i202 = 0, $$089110$i216 = 0, 
$$089110$in$i = 0;
+ var $$089110$in$i172 = 0, $$089110$in$i186 = 0, $$089110$in$i200 = 0, 
$$089110$in$i214 = 0, $$091109$i = 0, $$091109$i173 = 0, $$091109$i187 = 0, 
$$091109$i201 = 0, $$091109$i215 = 0, $$1152 = 0, $$1263 = 0, $$1266 = 0, 
$$1270 = 0, $$1274 = 0, $$1278 = 0, $$2$lcssa$i = 0, $$2$lcssa$i180 = 0, 
$$2$lcssa$i194 = 0, $$2$lcssa$i208 = 0, $$2$lcssa$i222 = 0;
+ var $$2153$lcssa = 0, $$2153302 = 0, $$2264316 = 0, $$2264317 = 0, $$2267 = 
0, $$2271 = 0, $$2275 = 0, $$2279 = 0, $$295$i = 0, $$295$i178 = 0, $$295$i192 
= 0, $$295$i206 = 0, $$295$i220 = 0, $$3268 = 0, $$3276 = 0, $$3280 = 0, 
$$3280307311313 = 0, $$3280308 = 0, $$7 = 0, $$lobit = 0;
+ var $$lobit296 = 0, $$lobit298 = 0, $$lobit299 = 0, $$not = 0, $$not300 = 0, 
$$not300$pn = 0, $$pre = 0, $$pre$phiZ2D = 0, $$pre303 = 0, $$sink = 0, $10 = 
0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 
0, $108 = 0;
+ var $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;
+ var $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 
= 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 
= 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0;
+ var $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 
= 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 
= 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0;
+ var $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 
= 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 
= 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0;
+ var $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, 
$188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, 
$195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0;
+ var $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 
= 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 
= 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0;
+ var $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 
= 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 
= 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0;
+ var $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 
= 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 
= 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0;
+ var $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 
= 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 
= 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0;
+ var $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, 
$279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, 
$286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0;
+ var $290 = 0, $291 = 0, $292 = 0, $293 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 
0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 
= 0, $43 = 0, $44 = 0, $45 = 0;
+ var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $63 = 0;
+ var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, 
$71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 
0, $8 = 0, $80 = 0, $81 = 0;
+ var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, 
$9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, 
$98 = 0, $99 = 0, $exitcond = 0;
+ var $or$cond = 0, $or$cond166 = 0, $or$cond168 = 0, $scevgep = 0, 
$spec$select = 0, $spec$select$i = 0, $spec$select$i170 = 0, $spec$select$i184 
= 0, $spec$select$i198 = 0, $spec$select$i212 = 0, $spec$select290 = 0, 
$spec$select292 = 0, $storemerge = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $5 = sp;
+ $6 = (__gcry_mpi_get_nbits($4)|0);
+ $7 = ($3|0)==(0|0);
+ $spec$select = $7 ? $5 : $3;
+ $8 = ((($4)) + 8|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ($9|0)==(0);
+ if ($10) {
+  label = 3;
+ } else {
+  $11 = (__gcry_mpi_cmp_ui($4,0)|0);
+  $12 = ($11|0)==(0);
+  if ($12) {
+   label = 3;
+  } else {
+   $$0159 = 1;
+  }
+ }
+ if ((label|0) == 3) {
+  $$0159 = 0;
+ }
+ HEAP32[$spec$select>>2] = 0;
+ switch ($0|0) {
+ case 1:  {
+  $13 = ((($4)) + 4|0);
+  $14 = HEAP32[$13>>2]|0;
+  $15 = $14 << 2;
+  $16 = ($14|0)==(0);
+  $spec$select$i = $16 ? 1 : $15;
+  $17 = ((($4)) + 12|0);
+  $18 = HEAP32[$17>>2]|0;
+  $19 = $18 & 1;
+  $20 = ($19|0)==(0);
+  if ($20) {
+   $22 = (__gcry_malloc($spec$select$i)|0);
+   $24 = $22;
+  } else {
+   $21 = (__gcry_malloc_secure($spec$select$i)|0);
+   $24 = $21;
+  }
+  $23 = ($24|0)==(0|0);
+  if ($23) {
+   $49 = (_gpg_err_code_from_syserror()|0);
+   $$7 = $49;
+   STACKTOP = sp;return ($$7|0);
+  }
+  $25 = HEAP32[$13>>2]|0;
+  $26 = ($25|0)>(0);
+  if ($26) {
+   $27 = ((($4)) + 16|0);
+   $$089110$in$i = $25;$$091109$i = $24;
+   while(1) {
+    $$089110$i = (($$089110$in$i) + -1)|0;
+    $28 = HEAP32[$27>>2]|0;
+    $29 = (($28) + ($$089110$i<<2)|0);
+    $30 = HEAP32[$29>>2]|0;
+    $31 = $30 >>> 24;
+    $32 = $31&255;
+    $33 = ((($$091109$i)) + 1|0);
+    HEAP8[$$091109$i>>0] = $32;
+    $34 = $30 >>> 16;
+    $35 = $34&255;
+    $36 = ((($$091109$i)) + 2|0);
+    HEAP8[$33>>0] = $35;
+    $37 = $30 >>> 8;
+    $38 = $37&255;
+    $39 = ((($$091109$i)) + 3|0);
+    HEAP8[$36>>0] = $38;
+    $40 = $30&255;
+    $41 = ((($$091109$i)) + 4|0);
+    HEAP8[$39>>0] = $40;
+    $42 = ($$089110$in$i|0)>(1);
+    if ($42) {
+     $$089110$in$i = $$089110$i;$$091109$i = $41;
+    } else {
+     break;
+    }
+   }
+  }
+  if ($16) {
+   $$2279 = 0;
+  } else {
+   $$0277 = $15;$$295$i = $24;
+   while(1) {
+    $43 = HEAP8[$$295$i>>0]|0;
+    $44 = ($43<<24>>24)==(0);
+    if (!($44)) {
+     $$1278 = $$0277;$$2$lcssa$i = $$295$i;
+     break;
+    }
+    $45 = ((($$295$i)) + 1|0);
+    $46 = (($$0277) + -1)|0;
+    $47 = ($46|0)==(0);
+    if ($47) {
+     $$1278 = 0;$$2$lcssa$i = $45;
+     break;
+    } else {
+     $$0277 = $46;$$295$i = $45;
+    }
+   }
+   $48 = ($$2$lcssa$i|0)==($24|0);
+   if ($48) {
+    $$2279 = $$1278;
+   } else {
+    _memmove(($24|0),($$2$lcssa$i|0),($$1278|0))|0;
+    $$2279 = $$1278;
+   }
+  }
+  $50 = ($$0159|0)==(0);
+  do {
+   if ($50) {
+    $56 = ($$2279|0)==(0);
+    if ($56) {
+     $57 = ($1|0)==(0|0);
+     if ($57) {
+      $$3280308 = 0;
+      break;
+     } else {
+      $$0160$shrunk309310314 = 0;$$0163 = $1;$$3280307311313 = 0;
+      label = 30;
+      break;
+     }
+    } else {
+     $58 = HEAP8[$24>>0]|0;
+     $$lobit296 = ($58&255) >>> 7;
+     $59 = $$lobit296&255;
+     $$0160$shrunk = $$lobit296;$$not300$pn = $59;
+     label = 24;
+     break;
+    }
+   } else {
+    _twocompl($24,$$2279);
+    $51 = HEAP8[$24>>0]|0;
+    $$lobit299 = ($51&255) >>> 7;
+    $52 = $$lobit299 ^ 1;
+    $$not300 = $52&255;
+    $53 = ($51&255) >>> 6;
+    $54 = $53 & 2;
+    $55 = $54 ^ 2;
+    $$0160$shrunk = $55;$$not300$pn = $$not300;
+    label = 24;
+   }
+  } while(0);
+  L35: do {
+   if ((label|0) == 24) {
+    $$3280 = (($$2279) + ($$not300$pn))|0;
+    $60 = ($1|0)!=(0|0);
+    $61 = ($$3280>>>0)>($2>>>0);
+    $or$cond = $60 & $61;
+    if ($or$cond) {
+     __gcry_free($24);
+     $$7 = 66;
+     STACKTOP = sp;return ($$7|0);
+    }
+    if ($60) {
+     switch ($$0160$shrunk<<24>>24) {
+     case 0:  {
+      $$0160$shrunk309310314 = $$0160$shrunk;$$0163 = $1;$$3280307311313 = 
$$3280;
+      label = 30;
+      break L35;
+      break;
+     }
+     case 1:  {
+      $62 = ((($1)) + 1|0);
+      HEAP8[$1>>0] = 0;
+      $$0160$shrunk309310314 = 1;$$0163 = $62;$$3280307311313 = $$3280;
+      label = 30;
+      break L35;
+      break;
+     }
+     default: {
+      $63 = ((($1)) + 1|0);
+      HEAP8[$1>>0] = -1;
+      $$0160$shrunk309310314 = $$0160$shrunk;$$0163 = $63;$$3280307311313 = 
$$3280;
+      label = 30;
+      break L35;
+     }
+     }
+    } else {
+     $$3280308 = $$3280;
+    }
+   }
+  } while(0);
+  if ((label|0) == 30) {
+   $64 = ($$0160$shrunk309310314<<24>>24)!=(0);
+   $65 = $64&1;
+   $66 = (($$3280307311313) - ($65))|0;
+   _memcpy(($$0163|0),($24|0),($66|0))|0;
+   $$3280308 = $$3280307311313;
+  }
+  __gcry_free($24);
+  HEAP32[$spec$select>>2] = $$3280308;
+  $$7 = 0;
+  STACKTOP = sp;return ($$7|0);
+  break;
+ }
+ case 5:  {
+  $67 = (($6) + 7)|0;
+  $68 = $67 >>> 3;
+  $69 = ($1|0)!=(0|0);
+  $70 = ($68>>>0)>($2>>>0);
+  $or$cond166 = $69 & $70;
+  if ($or$cond166) {
+   $$7 = 66;
+   STACKTOP = sp;return ($$7|0);
+  }
+  if ($69) {
+   $71 = ((($4)) + 4|0);
+   $72 = HEAP32[$71>>2]|0;
+   $73 = $72 << 2;
+   $74 = ($72|0)==(0);
+   $spec$select$i170 = $74 ? 1 : $73;
+   $75 = ((($4)) + 12|0);
+   $76 = HEAP32[$75>>2]|0;
+   $77 = $76 & 1;
+   $78 = ($77|0)==(0);
+   if ($78) {
+    $80 = (__gcry_malloc($spec$select$i170)|0);
+    $82 = $80;
+   } else {
+    $79 = (__gcry_malloc_secure($spec$select$i170)|0);
+    $82 = $79;
+   }
+   $81 = ($82|0)==(0|0);
+   if ($81) {
+    $107 = (_gpg_err_code_from_syserror()|0);
+    $$7 = $107;
+    STACKTOP = sp;return ($$7|0);
+   }
+   $83 = HEAP32[$71>>2]|0;
+   $84 = ($83|0)>(0);
+   if ($84) {
+    $85 = ((($4)) + 16|0);
+    $$089110$in$i172 = $83;$$091109$i173 = $82;
+    while(1) {
+     $$089110$i174 = (($$089110$in$i172) + -1)|0;
+     $86 = HEAP32[$85>>2]|0;
+     $87 = (($86) + ($$089110$i174<<2)|0);
+     $88 = HEAP32[$87>>2]|0;
+     $89 = $88 >>> 24;
+     $90 = $89&255;
+     $91 = ((($$091109$i173)) + 1|0);
+     HEAP8[$$091109$i173>>0] = $90;
+     $92 = $88 >>> 16;
+     $93 = $92&255;
+     $94 = ((($$091109$i173)) + 2|0);
+     HEAP8[$91>>0] = $93;
+     $95 = $88 >>> 8;
+     $96 = $95&255;
+     $97 = ((($$091109$i173)) + 3|0);
+     HEAP8[$94>>0] = $96;
+     $98 = $88&255;
+     $99 = ((($$091109$i173)) + 4|0);
+     HEAP8[$97>>0] = $98;
+     $100 = ($$089110$in$i172|0)>(1);
+     if ($100) {
+      $$089110$in$i172 = $$089110$i174;$$091109$i173 = $99;
+     } else {
+      break;
+     }
+    }
+   }
+   if ($74) {
+    $$2275 = 0;
+   } else {
+    $$0273 = $73;$$295$i178 = $82;
+    while(1) {
+     $101 = HEAP8[$$295$i178>>0]|0;
+     $102 = ($101<<24>>24)==(0);
+     if (!($102)) {
+      $$1274 = $$0273;$$2$lcssa$i180 = $$295$i178;
+      break;
+     }
+     $103 = ((($$295$i178)) + 1|0);
+     $104 = (($$0273) + -1)|0;
+     $105 = ($104|0)==(0);
+     if ($105) {
+      $$1274 = 0;$$2$lcssa$i180 = $103;
+      break;
+     } else {
+      $$0273 = $104;$$295$i178 = $103;
+     }
+    }
+    $106 = ($$2$lcssa$i180|0)==($82|0);
+    if ($106) {
+     $$2275 = $$1274;
+    } else {
+     _memmove(($82|0),($$2$lcssa$i180|0),($$1274|0))|0;
+     $$2275 = $$1274;
+    }
+   }
+   _memcpy(($1|0),($82|0),($$2275|0))|0;
+   __gcry_free($82);
+   $$3276 = $$2275;
+  } else {
+   $$3276 = $68;
+  }
+  HEAP32[$spec$select>>2] = $$3276;
+  $$7 = 0;
+  STACKTOP = sp;return ($$7|0);
+  break;
+ }
+ case 2:  {
+  $108 = ($$0159|0)==(0);
+  if (!($108)) {
+   $$7 = 45;
+   STACKTOP = sp;return ($$7|0);
+  }
+  $109 = (($6) + 7)|0;
+  $110 = $109 >>> 3;
+  $111 = ($1|0)!=(0|0);
+  $112 = (($110) + 2)|0;
+  $113 = ($112>>>0)>($2>>>0);
+  $or$cond168 = $111 & $113;
+  if ($or$cond168) {
+   $$7 = 66;
+   STACKTOP = sp;return ($$7|0);
+  }
+  if ($111) {
+   $114 = $6 >>> 8;
+   $115 = $114&255;
+   HEAP8[$1>>0] = $115;
+   $116 = $6&255;
+   $117 = ((($1)) + 1|0);
+   HEAP8[$117>>0] = $116;
+   $118 = ((($4)) + 4|0);
+   $119 = HEAP32[$118>>2]|0;
+   $120 = $119 << 2;
+   $121 = ($119|0)==(0);
+   $spec$select$i184 = $121 ? 1 : $120;
+   $122 = ((($4)) + 12|0);
+   $123 = HEAP32[$122>>2]|0;
+   $124 = $123 & 1;
+   $125 = ($124|0)==(0);
+   if ($125) {
+    $127 = (__gcry_malloc($spec$select$i184)|0);
+    $129 = $127;
+   } else {
+    $126 = (__gcry_malloc_secure($spec$select$i184)|0);
+    $129 = $126;
+   }
+   $128 = ($129|0)==(0|0);
+   if ($128) {
+    $155 = (_gpg_err_code_from_syserror()|0);
+    $$7 = $155;
+    STACKTOP = sp;return ($$7|0);
+   }
+   $130 = HEAP32[$118>>2]|0;
+   $131 = ($130|0)>(0);
+   if ($131) {
+    $132 = ((($4)) + 16|0);
+    $$089110$in$i186 = $130;$$091109$i187 = $129;
+    while(1) {
+     $$089110$i188 = (($$089110$in$i186) + -1)|0;
+     $133 = HEAP32[$132>>2]|0;
+     $134 = (($133) + ($$089110$i188<<2)|0);
+     $135 = HEAP32[$134>>2]|0;
+     $136 = $135 >>> 24;
+     $137 = $136&255;
+     $138 = ((($$091109$i187)) + 1|0);
+     HEAP8[$$091109$i187>>0] = $137;
+     $139 = $135 >>> 16;
+     $140 = $139&255;
+     $141 = ((($$091109$i187)) + 2|0);
+     HEAP8[$138>>0] = $140;
+     $142 = $135 >>> 8;
+     $143 = $142&255;
+     $144 = ((($$091109$i187)) + 3|0);
+     HEAP8[$141>>0] = $143;
+     $145 = $135&255;
+     $146 = ((($$091109$i187)) + 4|0);
+     HEAP8[$144>>0] = $145;
+     $147 = ($$089110$in$i186|0)>(1);
+     if ($147) {
+      $$089110$in$i186 = $$089110$i188;$$091109$i187 = $146;
+     } else {
+      break;
+     }
+    }
+   }
+   if ($121) {
+    $$2271 = 0;
+   } else {
+    $$0269 = $120;$$295$i192 = $129;
+    while(1) {
+     $148 = HEAP8[$$295$i192>>0]|0;
+     $149 = ($148<<24>>24)==(0);
+     if (!($149)) {
+      $$1270 = $$0269;$$2$lcssa$i194 = $$295$i192;
+      break;
+     }
+     $150 = ((($$295$i192)) + 1|0);
+     $151 = (($$0269) + -1)|0;
+     $152 = ($151|0)==(0);
+     if ($152) {
+      $$1270 = 0;$$2$lcssa$i194 = $150;
+      break;
+     } else {
+      $$0269 = $151;$$295$i192 = $150;
+     }
+    }
+    $153 = ($$2$lcssa$i194|0)==($129|0);
+    if ($153) {
+     $$2271 = $$1270;
+    } else {
+     _memmove(($129|0),($$2$lcssa$i194|0),($$1270|0))|0;
+     $$2271 = $$1270;
+    }
+   }
+   $154 = ((($1)) + 2|0);
+   _memcpy(($154|0),($129|0),($$2271|0))|0;
+   __gcry_free($129);
+   $$pre = (($$2271) + 2)|0;
+   $$pre$phiZ2D = $$pre;
+  } else {
+   $$pre$phiZ2D = $112;
+  }
+  HEAP32[$spec$select>>2] = $$pre$phiZ2D;
+  $$7 = 0;
+  STACKTOP = sp;return ($$7|0);
+  break;
+ }
+ case 3:  {
+  $156 = ((($4)) + 4|0);
+  $157 = HEAP32[$156>>2]|0;
+  $158 = $157 << 2;
+  $159 = ($157|0)==(0);
+  $spec$select$i198 = $159 ? 1 : $158;
+  $160 = ((($4)) + 12|0);
+  $161 = HEAP32[$160>>2]|0;
+  $162 = $161 & 1;
+  $163 = ($162|0)==(0);
+  if ($163) {
+   $165 = (__gcry_malloc($spec$select$i198)|0);
+   $167 = $165;
+  } else {
+   $164 = (__gcry_malloc_secure($spec$select$i198)|0);
+   $167 = $164;
+  }
+  $166 = ($167|0)==(0|0);
+  if ($166) {
+   $192 = (_gpg_err_code_from_syserror()|0);
+   $$7 = $192;
+   STACKTOP = sp;return ($$7|0);
+  }
+  $168 = HEAP32[$156>>2]|0;
+  $169 = ($168|0)>(0);
+  if ($169) {
+   $170 = ((($4)) + 16|0);
+   $$089110$in$i200 = $168;$$091109$i201 = $167;
+   while(1) {
+    $$089110$i202 = (($$089110$in$i200) + -1)|0;
+    $171 = HEAP32[$170>>2]|0;
+    $172 = (($171) + ($$089110$i202<<2)|0);
+    $173 = HEAP32[$172>>2]|0;
+    $174 = $173 >>> 24;
+    $175 = $174&255;
+    $176 = ((($$091109$i201)) + 1|0);
+    HEAP8[$$091109$i201>>0] = $175;
+    $177 = $173 >>> 16;
+    $178 = $177&255;
+    $179 = ((($$091109$i201)) + 2|0);
+    HEAP8[$176>>0] = $178;
+    $180 = $173 >>> 8;
+    $181 = $180&255;
+    $182 = ((($$091109$i201)) + 3|0);
+    HEAP8[$179>>0] = $181;
+    $183 = $173&255;
+    $184 = ((($$091109$i201)) + 4|0);
+    HEAP8[$182>>0] = $183;
+    $185 = ($$089110$in$i200|0)>(1);
+    if ($185) {
+     $$089110$in$i200 = $$089110$i202;$$091109$i201 = $184;
+    } else {
+     break;
+    }
+   }
+  }
+  if ($159) {
+   $$2267 = 0;
+  } else {
+   $$0265 = $158;$$295$i206 = $167;
+   while(1) {
+    $186 = HEAP8[$$295$i206>>0]|0;
+    $187 = ($186<<24>>24)==(0);
+    if (!($187)) {
+     $$1266 = $$0265;$$2$lcssa$i208 = $$295$i206;
+     break;
+    }
+    $188 = ((($$295$i206)) + 1|0);
+    $189 = (($$0265) + -1)|0;
+    $190 = ($189|0)==(0);
+    if ($190) {
+     $$1266 = 0;$$2$lcssa$i208 = $188;
+     break;
+    } else {
+     $$0265 = $189;$$295$i206 = $188;
+    }
+   }
+   $191 = ($$2$lcssa$i208|0)==($167|0);
+   if ($191) {
+    $$2267 = $$1266;
+   } else {
+    _memmove(($167|0),($$2$lcssa$i208|0),($$1266|0))|0;
+    $$2267 = $$1266;
+   }
+  }
+  $193 = ($$0159|0)==(0);
+  if ($193) {
+   $199 = ($$2267|0)==(0);
+   if ($199) {
+    $$0158$shrunk = 0;$$3268 = 0;
+   } else {
+    $200 = HEAP8[$167>>0]|0;
+    $$lobit = ($200&255) >>> 7;
+    $201 = $$lobit&255;
+    $spec$select292 = (($$2267) + ($201))|0;
+    $$0158$shrunk = $$lobit;$$3268 = $spec$select292;
+   }
+  } else {
+   _twocompl($167,$$2267);
+   $194 = HEAP8[$167>>0]|0;
+   $$lobit298 = ($194&255) >>> 7;
+   $195 = $$lobit298 ^ 1;
+   $$not = $195&255;
+   $spec$select290 = (($$2267) + ($$not))|0;
+   $196 = ($194&255) >>> 6;
+   $197 = $196 & 2;
+   $198 = $197 ^ 2;
+   $$0158$shrunk = $198;$$3268 = $spec$select290;
+  }
+  $202 = ($1|0)==(0|0);
+  $$pre303 = (($$3268) + 4)|0;
+  if (!($202)) {
+   $203 = ($$pre303>>>0)>($2>>>0);
+   if ($203) {
+    __gcry_free($167);
+    $$7 = 66;
+    STACKTOP = sp;return ($$7|0);
+   }
+   $204 = $$3268 >>> 24;
+   $205 = $204&255;
+   $206 = ((($1)) + 1|0);
+   HEAP8[$1>>0] = $205;
+   $207 = $$3268 >>> 16;
+   $208 = $207&255;
+   $209 = ((($1)) + 2|0);
+   HEAP8[$206>>0] = $208;
+   $210 = $$3268 >>> 8;
+   $211 = $210&255;
+   $212 = ((($1)) + 3|0);
+   HEAP8[$209>>0] = $211;
+   $213 = $$3268&255;
+   $214 = ((($1)) + 4|0);
+   HEAP8[$212>>0] = $213;
+   switch ($$0158$shrunk<<24>>24) {
+   case 1:  {
+    $$sink = 0;
+    label = 92;
+    break;
+   }
+   case 0:  {
+    $$0157 = $214;
+    break;
+   }
+   default: {
+    $$sink = -1;
+    label = 92;
+   }
+   }
+   if ((label|0) == 92) {
+    $215 = ((($1)) + 5|0);
+    HEAP8[$214>>0] = $$sink;
+    $$0157 = $215;
+   }
+   $216 = ($$0158$shrunk<<24>>24)!=(0);
+   $217 = $216&1;
+   $218 = (($$3268) - ($217))|0;
+   _memcpy(($$0157|0),($167|0),($218|0))|0;
+  }
+  __gcry_free($167);
+  HEAP32[$spec$select>>2] = $$pre303;
+  $$7 = 0;
+  STACKTOP = sp;return ($$7|0);
+  break;
+ }
+ case 4:  {
+  $219 = ((($4)) + 4|0);
+  $220 = HEAP32[$219>>2]|0;
+  $221 = $220 << 2;
+  $222 = ($220|0)==(0);
+  $spec$select$i212 = $222 ? 1 : $221;
+  $223 = ((($4)) + 12|0);
+  $224 = HEAP32[$223>>2]|0;
+  $225 = $224 & 1;
+  $226 = ($225|0)==(0);
+  if ($226) {
+   $228 = (__gcry_malloc($spec$select$i212)|0);
+   $230 = $228;
+  } else {
+   $227 = (__gcry_malloc_secure($spec$select$i212)|0);
+   $230 = $227;
+  }
+  $229 = ($230|0)==(0|0);
+  if ($229) {
+   $255 = (_gpg_err_code_from_syserror()|0);
+   $$7 = $255;
+   STACKTOP = sp;return ($$7|0);
+  }
+  $231 = HEAP32[$219>>2]|0;
+  $232 = ($231|0)>(0);
+  if ($232) {
+   $233 = ((($4)) + 16|0);
+   $$089110$in$i214 = $231;$$091109$i215 = $230;
+   while(1) {
+    $$089110$i216 = (($$089110$in$i214) + -1)|0;
+    $234 = HEAP32[$233>>2]|0;
+    $235 = (($234) + ($$089110$i216<<2)|0);
+    $236 = HEAP32[$235>>2]|0;
+    $237 = $236 >>> 24;
+    $238 = $237&255;
+    $239 = ((($$091109$i215)) + 1|0);
+    HEAP8[$$091109$i215>>0] = $238;
+    $240 = $236 >>> 16;
+    $241 = $240&255;
+    $242 = ((($$091109$i215)) + 2|0);
+    HEAP8[$239>>0] = $241;
+    $243 = $236 >>> 8;
+    $244 = $243&255;
+    $245 = ((($$091109$i215)) + 3|0);
+    HEAP8[$242>>0] = $244;
+    $246 = $236&255;
+    $247 = ((($$091109$i215)) + 4|0);
+    HEAP8[$245>>0] = $246;
+    $248 = ($$089110$in$i214|0)>(1);
+    if ($248) {
+     $$089110$in$i214 = $$089110$i216;$$091109$i215 = $247;
+    } else {
+     break;
+    }
+   }
+  }
+  if ($222) {
+   $$2264317 = 0;$292 = 1;
+   label = 111;
+  } else {
+   $$0262 = $221;$$295$i220 = $230;
+   while(1) {
+    $249 = HEAP8[$$295$i220>>0]|0;
+    $250 = ($249<<24>>24)==(0);
+    if (!($250)) {
+     $$1263 = $$0262;$$2$lcssa$i222 = $$295$i220;
+     break;
+    }
+    $251 = ((($$295$i220)) + 1|0);
+    $252 = (($$0262) + -1)|0;
+    $253 = ($252|0)==(0);
+    if ($253) {
+     $$1263 = 0;$$2$lcssa$i222 = $251;
+     break;
+    } else {
+     $$0262 = $252;$$295$i220 = $251;
+    }
+   }
+   $254 = ($$2$lcssa$i222|0)==($230|0);
+   if (!($254)) {
+    _memmove(($230|0),($$2$lcssa$i222|0),($$1263|0))|0;
+   }
+   $256 = ($$1263|0)==(0);
+   if ($256) {
+    $$2264317 = 0;$292 = 1;
+    label = 111;
+   } else {
+    $257 = HEAP8[$230>>0]|0;
+    $258 = ($257<<24>>24)<(0);
+    if ($258) {
+     $$2264317 = $$1263;$292 = 0;
+     label = 111;
+    } else {
+     $$0154 = 0;$$2264316 = $$1263;$293 = 0;
+    }
+   }
+  }
+  if ((label|0) == 111) {
+   $$0154 = 2;$$2264316 = $$2264317;$293 = $292;
+  }
+  $259 = ($1|0)==(0|0);
+  $260 = $$2264316 << 1;
+  $261 = (($$0154) + ($260))|0;
+  $262 = $261 | $$0159;
+  $263 = (($262) + 1)|0;
+  if ($259) {
+   $storemerge = $263;
+  } else {
+   $264 = ($263>>>0)>($2>>>0);
+   if ($264) {
+    __gcry_free($230);
+    $$7 = 66;
+    STACKTOP = sp;return ($$7|0);
+   }
+   $265 = ($$0159|0)==(0);
+   if ($265) {
+    $$0151 = $1;
+   } else {
+    $266 = ((($1)) + 1|0);
+    HEAP8[$1>>0] = 45;
+    $$0151 = $266;
+   }
+   $267 = ($$0154|0)==(0);
+   if ($267) {
+    $$1152 = $$0151;
+   } else {
+    $268 = ((($$0151)) + 1|0);
+    HEAP8[$$0151>>0] = 48;
+    $269 = ((($$0151)) + 2|0);
+    HEAP8[$268>>0] = 48;
+    $$1152 = $269;
+   }
+   if ($293) {
+    $$2153$lcssa = $$1152;
+   } else {
+    $$0155301 = 0;$$2153302 = $$1152;
+    while(1) {
+     $270 = (($230) + ($$0155301)|0);
+     $271 = HEAP8[$270>>0]|0;
+     $272 = $271&255;
+     $273 = $272 >>> 4;
+     $274 = ($271&255)<(160);
+     $275 = $273 | 48;
+     $276 = (($273) + 55)|0;
+     $277 = $274 ? $275 : $276;
+     $278 = $277&255;
+     $279 = ((($$2153302)) + 1|0);
+     HEAP8[$$2153302>>0] = $278;
+     $280 = $272 & 15;
+     $281 = ($280>>>0)<(10);
+     $282 = $280 | 48;
+     $283 = (($280) + 55)|0;
+     $284 = $281 ? $282 : $283;
+     $285 = $284&255;
+     $286 = ((($$2153302)) + 2|0);
+     HEAP8[$279>>0] = $285;
+     $287 = (($$0155301) + 1)|0;
+     $exitcond = ($287|0)==($$2264316|0);
+     if ($exitcond) {
+      break;
+     } else {
+      $$0155301 = $287;$$2153302 = $286;
+     }
+    }
+    $scevgep = (($$1152) + ($260)|0);
+    $$2153$lcssa = $scevgep;
+   }
+   $288 = ((($$2153$lcssa)) + 1|0);
+   HEAP8[$$2153$lcssa>>0] = 0;
+   $289 = $288;
+   $290 = $1;
+   $291 = (($289) - ($290))|0;
+   $storemerge = $291;
+  }
+  HEAP32[$spec$select>>2] = $storemerge;
+  __gcry_free($230);
+  $$7 = 0;
+  STACKTOP = sp;return ($$7|0);
+  break;
+ }
+ default: {
+  $$7 = 45;
+  STACKTOP = sp;return ($$7|0);
+ }
+ }
+ return (0)|0;
+}
+function _twocompl($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $$0$in47 = 0, $$0$in47$phi = 0, $$046 = 0, $$048 = 0, $$145 = 0, 
$$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 
= 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
+ var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, 
$3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, 
$38 = 0, $39 = 0, $4 = 0;
+ var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, 
$48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, 
sp = 0;
+ sp = STACKTOP;
+ $$046 = (($1) + -1)|0;
+ $2 = ($$046|0)>(-1);
+ if (!($2)) {
+  return;
+ }
+ $$0$in47 = $1;$$048 = $$046;
+ while(1) {
+  $4 = (($0) + ($$048)|0);
+  $5 = HEAP8[$4>>0]|0;
+  $6 = ($5<<24>>24)==(0);
+  if (!($6)) {
+   break;
+  }
+  $$0 = (($$048) + -1)|0;
+  $3 = ($$0|0)>(-1);
+  if ($3) {
+   $$0$in47$phi = $$048;$$048 = $$0;$$0$in47 = $$0$in47$phi;
+  } else {
+   label = 22;
+   break;
+  }
+ }
+ if ((label|0) == 22) {
+  return;
+ }
+ $7 = (($0) + ($$048)|0);
+ $8 = $5&255;
+ $9 = $8 & 1;
+ $10 = ($9|0)==(0);
+ do {
+  if ($10) {
+   $14 = $8 & 2;
+   $15 = ($14|0)==(0);
+   if (!($15)) {
+    $16 = $8 & 252;
+    $17 = $16 ^ 254;
+    $18 = $17&255;
+    $$sink = $18;
+    break;
+   }
+   $19 = $8 & 4;
+   $20 = ($19|0)==(0);
+   if (!($20)) {
+    $21 = $8 & 248;
+    $22 = $21 ^ 252;
+    $23 = $22&255;
+    $$sink = $23;
+    break;
+   }
+   $24 = $8 & 8;
+   $25 = ($24|0)==(0);
+   if (!($25)) {
+    $26 = $8 & 240;
+    $27 = $26 ^ 248;
+    $28 = $27&255;
+    $$sink = $28;
+    break;
+   }
+   $29 = $8 & 16;
+   $30 = ($29|0)==(0);
+   if (!($30)) {
+    $31 = $8 & 224;
+    $32 = $31 ^ 240;
+    $33 = $32&255;
+    $$sink = $33;
+    break;
+   }
+   $34 = $8 & 32;
+   $35 = ($34|0)==(0);
+   if (!($35)) {
+    $36 = $8 & 192;
+    $37 = $36 ^ 224;
+    $38 = $37&255;
+    $$sink = $38;
+    break;
+   }
+   $39 = $8 & 64;
+   $40 = ($39|0)==(0);
+   if ($40) {
+    $$sink = -128;
+   } else {
+    $41 = $8 & 128;
+    $42 = $41 ^ 192;
+    $43 = $42&255;
+    $$sink = $43;
+   }
+  } else {
+   $11 = $8 | 1;
+   $12 = $11 ^ 254;
+   $13 = $12&255;
+   $$sink = $13;
+  }
+ } while(0);
+ HEAP8[$7>>0] = $$sink;
+ $44 = (($$0$in47) + -2)|0;
+ $45 = ($44|0)>(-1);
+ if (!($45)) {
+  return;
+ }
+ $$145 = $44;
+ while(1) {
+  $46 = (($0) + ($$145)|0);
+  $47 = HEAP8[$46>>0]|0;
+  $48 = $47 ^ -1;
+  HEAP8[$46>>0] = $48;
+  $49 = (($$145) + -1)|0;
+  $50 = ($$145|0)>(0);
+  if ($50) {
+   $$145 = $49;
+  } else {
+   break;
+  }
+ }
+ return;
+}
+function __gcry_mpi_to_octet_string($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$040 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 
0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = ($0|0)!=(0|0);
+ $5 = $4 ^ 1;
+ $6 = ($1|0)!=(0|0);
+ $7 = $6 ^ $5;
+ if ($7) {
+  $$040 = 45;
+  return ($$040|0);
+ }
+ if ($4) {
+  HEAP32[$0>>2] = 0;
+ }
+ $8 = (__gcry_mpi_get_nbits($2)|0);
+ $9 = ((($2)) + 8|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ($10|0)==(0);
+ if (!($11)) {
+  (__gcry_mpi_cmp_ui($2,0)|0);
+ }
+ $12 = (($8) + 7)|0;
+ $13 = $12 >>> 3;
+ $14 = ($13>>>0)>($3>>>0);
+ if ($14) {
+  $$040 = 67;
+  return ($$040|0);
+ }
+ $15 = ($13>>>0)<($3>>>0);
+ $16 = (($3) - ($13))|0;
+ $spec$select = $15 ? $16 : 0;
+ $17 = (($spec$select) + ($13))|0;
+ if ($6) {
+  $$0 = $1;
+ } else {
+  $18 = ((($2)) + 12|0);
+  $19 = HEAP32[$18>>2]|0;
+  $20 = $19 & 1;
+  $21 = ($20|0)==(0);
+  if ($21) {
+   $23 = (__gcry_malloc($17)|0);
+   $25 = $23;
+  } else {
+   $22 = (__gcry_malloc_secure($17)|0);
+   $25 = $22;
+  }
+  $24 = ($25|0)==(0|0);
+  if ($24) {
+   $26 = (_gpg_err_code_from_syserror()|0);
+   $$040 = $26;
+   return ($$040|0);
+  } else {
+   $$0 = $25;
+  }
+ }
+ $27 = ($spec$select|0)==(0);
+ if (!($27)) {
+  _memset(($$0|0),0,($spec$select|0))|0;
+ }
+ $28 = (($$0) + ($spec$select)|0);
+ $29 = (__gcry_mpi_print(5,$28,$13,0,$2)|0);
+ $30 = ($29|0)==(0);
+ if (!($30)) {
+  __gcry_free($$0);
+  $$040 = $29;
+  return ($$040|0);
+ }
+ if (!($4)) {
+  $$040 = 0;
+  return ($$040|0);
+ }
+ HEAP32[$0>>2] = $$0;
+ $$040 = 0;
+ return ($$040|0);
+}
+function __gcry_mpih_add_n($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$031 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $4 = 0, $5 = 0, $6 = 0, 
$7 = 0, $8 = 0, $9 = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (0 - ($3))|0;
+ $5 = (($1) + ($3<<2)|0);
+ $6 = (($2) + ($3<<2)|0);
+ $7 = (($0) + ($3<<2)|0);
+ $$0 = $4;$$031 = 0;
+ while(1) {
+  $8 = (($6) + ($$0<<2)|0);
+  $9 = HEAP32[$8>>2]|0;
+  $10 = (($5) + ($$0<<2)|0);
+  $11 = HEAP32[$10>>2]|0;
+  $12 = (($9) + ($$031))|0;
+  $13 = ($12>>>0)<($$031>>>0);
+  $14 = $13&1;
+  $15 = (($12) + ($11))|0;
+  $16 = ($15>>>0)<($11>>>0);
+  $17 = $16&1;
+  $18 = (($17) + ($14))|0;
+  $19 = (($7) + ($$0<<2)|0);
+  HEAP32[$19>>2] = $15;
+  $20 = (($$0) + 1)|0;
+  $21 = ($20|0)==(0);
+  if ($21) {
+   break;
+  } else {
+   $$0 = $20;$$031 = $18;
+  }
+ }
+ return ($18|0);
+}
+function __gcry_mpih_mod_1($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$0251 = 0, $$0255284 = 0, $$0257$lcssa = 0, $$0257283 = 0, 
$$0258 = 0, $$0262$lcssa = 0, $$0262282 = 0, $$1 = 0, $$1256 = 0, $$1263 = 0, 
$$2264280 = 0, $$2281 = 0, $$pre = 0, $$pre$phi291Z2D = 0, $$pre$phiZ2D = 0, 
$$pre290 = 0, $10 = 0, $100 = 0, $101 = 0;
+ var $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;
+ var $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $13 = 0, $14 = 0, $15 = 
0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 
= 0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, 
$43 = 0, $44 = 0, $45 = 0;
+ var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $63 = 0;
+ var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, 
$71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 
0, $8 = 0, $80 = 0, $81 = 0;
+ var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, 
$9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, 
$98 = 0, $99 = 0, $or$cond = 0;
+ var $or$cond266 = 0, $or$cond267 = 0, $or$cond268 = 0, $or$cond269 = 0, 
$or$cond270 = 0, $spec$select = 0, $spec$select271 = 0, $spec$select272 = 0, 
$spec$select273 = 0, $spec$select274 = 0, $spec$select275 = 0, $spec$select277 
= 0, $spec$select278 = 0, $spec$select279 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ($1|0)==(0);
+ if ($3) {
+  $$1 = 0;
+  return ($$1|0);
+ }
+ $4 = ($2>>>0)<(65536);
+ $5 = ($2>>>0)<(256);
+ $6 = $5 ? 0 : 8;
+ $7 = ($2>>>0)<(16777216);
+ $8 = $7 ? 16 : 24;
+ $9 = $4 ? $6 : $8;
+ $10 = $2 >>> $9;
+ $11 = (14784 + ($10)|0);
+ $12 = HEAP8[$11>>0]|0;
+ $13 = $12&255;
+ $14 = (($9) + ($13))|0;
+ $15 = (32 - ($14))|0;
+ $16 = ($15|0)==(0);
+ if ($16) {
+  $87 = (($1) + -1)|0;
+  $88 = (($0) + ($87<<2)|0);
+  $89 = HEAP32[$88>>2]|0;
+  $90 = ($89>>>0)<($2>>>0);
+  $91 = (($1) + -2)|0;
+  $$1263 = $90 ? $89 : 0;
+  $$1256 = $90 ? $91 : $87;
+  $92 = ($$1256|0)>(-1);
+  if (!($92)) {
+   $$1 = $$1263;
+   return ($$1|0);
+  }
+  $93 = $2 >>> 16;
+  $94 = $2 & 65535;
+  $$2264280 = $$1263;$$2281 = $$1256;
+  while(1) {
+   $95 = (($0) + ($$2281<<2)|0);
+   $96 = HEAP32[$95>>2]|0;
+   $97 = (($$2264280>>>0) / ($93>>>0))&-1;
+   $98 = Math_imul($97, $93)|0;
+   $99 = (($$2264280) - ($98))|0;
+   $100 = Math_imul($97, $94)|0;
+   $101 = $99 << 16;
+   $102 = $96 >>> 16;
+   $103 = $101 | $102;
+   $104 = ($103>>>0)<($100>>>0);
+   $105 = (($103) + ($2))|0;
+   $106 = ($105>>>0)>=($2>>>0);
+   $107 = ($105>>>0)<($100>>>0);
+   $or$cond269 = $106 & $107;
+   $108 = $or$cond269 ? $2 : 0;
+   $spec$select274 = (($108) + ($105))|0;
+   $spec$select279 = $104 ? $spec$select274 : $103;
+   $109 = (($spec$select279) - ($100))|0;
+   $110 = (($109>>>0) / ($93>>>0))&-1;
+   $111 = Math_imul($110, $93)|0;
+   $112 = (($109) - ($111))|0;
+   $113 = Math_imul($110, $94)|0;
+   $114 = $112 << 16;
+   $115 = $96 & 65535;
+   $116 = $114 | $115;
+   $117 = ($116>>>0)<($113>>>0);
+   $118 = (($116) + ($2))|0;
+   $119 = ($118>>>0)>=($2>>>0);
+   $120 = ($118>>>0)<($113>>>0);
+   $or$cond270 = $119 & $120;
+   $121 = $or$cond270 ? $2 : 0;
+   $spec$select275 = (($121) + ($118))|0;
+   $$0 = $117 ? $spec$select275 : $116;
+   $122 = (($$0) - ($113))|0;
+   $123 = (($$2281) + -1)|0;
+   $124 = ($$2281|0)>(0);
+   if ($124) {
+    $$2264280 = $122;$$2281 = $123;
+   } else {
+    $$1 = $122;
+    break;
+   }
+  }
+  return ($$1|0);
+ }
+ $17 = $2 << $15;
+ $18 = (($1) + -1)|0;
+ $19 = (($0) + ($18<<2)|0);
+ $20 = HEAP32[$19>>2]|0;
+ $21 = $20 >>> $14;
+ $22 = ($1|0)>(1);
+ if ($22) {
+  $23 = (($1) + -2)|0;
+  $24 = $17 >>> 16;
+  $25 = $17 & 65535;
+  $$0255284 = $23;$$0257283 = $20;$$0262282 = $21;
+  while(1) {
+   $26 = (($0) + ($$0255284<<2)|0);
+   $27 = HEAP32[$26>>2]|0;
+   $28 = (($$0262282>>>0) / ($24>>>0))&-1;
+   $29 = Math_imul($28, $24)|0;
+   $30 = (($$0262282) - ($29))|0;
+   $31 = Math_imul($28, $25)|0;
+   $32 = $30 << 16;
+   $33 = $$0257283 << $15;
+   $34 = $27 >>> $14;
+   $35 = $34 | $33;
+   $36 = $35 >>> 16;
+   $37 = $36 | $32;
+   $38 = ($37>>>0)<($31>>>0);
+   $39 = (($37) + ($17))|0;
+   $40 = ($39>>>0)>=($17>>>0);
+   $41 = ($39>>>0)<($31>>>0);
+   $or$cond = $40 & $41;
+   $42 = $or$cond ? $17 : 0;
+   $spec$select = (($42) + ($39))|0;
+   $spec$select277 = $38 ? $spec$select : $37;
+   $43 = (($spec$select277) - ($31))|0;
+   $44 = (($43>>>0) / ($24>>>0))&-1;
+   $45 = Math_imul($44, $24)|0;
+   $46 = (($43) - ($45))|0;
+   $47 = Math_imul($44, $25)|0;
+   $48 = $46 << 16;
+   $49 = $35 & 65535;
+   $50 = $48 | $49;
+   $51 = ($50>>>0)<($47>>>0);
+   $52 = (($50) + ($17))|0;
+   $53 = ($52>>>0)>=($17>>>0);
+   $54 = ($52>>>0)<($47>>>0);
+   $or$cond266 = $53 & $54;
+   $55 = $or$cond266 ? $17 : 0;
+   $spec$select271 = (($55) + ($52))|0;
+   $$0258 = $51 ? $spec$select271 : $50;
+   $56 = (($$0258) - ($47))|0;
+   $57 = (($$0255284) + -1)|0;
+   $58 = ($$0255284|0)>(0);
+   if ($58) {
+    $$0255284 = $57;$$0257283 = $27;$$0262282 = $56;
+   } else {
+    $$0257$lcssa = $27;$$0262$lcssa = $56;$$pre$phi291Z2D = $25;$$pre$phiZ2D = 
$24;
+    break;
+   }
+  }
+ } else {
+  $$pre = $17 >>> 16;
+  $$pre290 = $17 & 65535;
+  $$0257$lcssa = $20;$$0262$lcssa = $21;$$pre$phi291Z2D = 
$$pre290;$$pre$phiZ2D = $$pre;
+ }
+ $59 = (($$0262$lcssa>>>0) / ($$pre$phiZ2D>>>0))&-1;
+ $60 = Math_imul($59, $$pre$phiZ2D)|0;
+ $61 = (($$0262$lcssa) - ($60))|0;
+ $62 = Math_imul($59, $$pre$phi291Z2D)|0;
+ $63 = $61 << 16;
+ $64 = $$0257$lcssa << $15;
+ $65 = $64 >>> 16;
+ $66 = $63 | $65;
+ $67 = ($66>>>0)<($62>>>0);
+ $68 = (($66) + ($17))|0;
+ $69 = ($68>>>0)>=($17>>>0);
+ $70 = ($68>>>0)<($62>>>0);
+ $or$cond267 = $69 & $70;
+ $71 = $or$cond267 ? $17 : 0;
+ $spec$select272 = (($71) + ($68))|0;
+ $spec$select278 = $67 ? $spec$select272 : $66;
+ $72 = (($spec$select278) - ($62))|0;
+ $73 = (($72>>>0) / ($$pre$phiZ2D>>>0))&-1;
+ $74 = Math_imul($73, $$pre$phiZ2D)|0;
+ $75 = (($72) - ($74))|0;
+ $76 = Math_imul($73, $$pre$phi291Z2D)|0;
+ $77 = $75 << 16;
+ $78 = $64 & 65535;
+ $79 = $77 | $78;
+ $80 = ($79>>>0)<($76>>>0);
+ $81 = (($79) + ($17))|0;
+ $82 = ($81>>>0)>=($17>>>0);
+ $83 = ($81>>>0)<($76>>>0);
+ $or$cond268 = $82 & $83;
+ $84 = $or$cond268 ? $17 : 0;
+ $spec$select273 = (($84) + ($81))|0;
+ $$0251 = $80 ? $spec$select273 : $79;
+ $85 = (($$0251) - ($76))|0;
+ $86 = $85 >>> $15;
+ $$1 = $86;
+ return ($$1|0);
+}
+function __gcry_mpih_divrem($0,$1,$2,$3,$4,$5) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ var $$0$lcssa = 0, $$01619$i = 0, $$01619$i715 = 0, $$01619$i717 = 0, 
$$01619$in$i716 = 0, $$01619$in$i716$phi = 0, $$0578683 = 0, $$0583 = 0, $$0585 
= 0, $$0586 = 0, $$0587 = 0, $$0588 = 0, $$0589 = 0, $$0590 = 0, $$0591 = 0, 
$$0592 = 0, $$0593669 = 0, $$0594 = 0, $$0595 = 0, $$0596 = 0;
+ var $$0597 = 0, $$0601 = 0, $$0604 = 0, $$0605 = 0, $$0606674 = 0, 
$$0606674$in = 0, $$0607 = 0, $$0608690 = 0, $$0609 = 0, $$0613 = 0, $$0619 = 
0, $$0622 = 0, $$0627 = 0, $$0628 = 0, $$0629 = 0, $$0630 = 0, $$0692 = 0, $$1 
= 0, $$1575 = 0, $$1579678 = 0;
+ var $$1579678$in = 0, $$1581$lcssa = 0, $$1581682 = 0, $$1610$lcssa = 0, 
$$1610689 = 0, $$1614$lcssa = 0, $$1614688 = 0, $$1620 = 0, $$1623 = 0, $$2576 
= 0, $$2582$lcssa = 0, $$2582677 = 0, $$2599 = 0, $$2603 = 0, $$2611 = 0, 
$$2615 = 0, $$2621 = 0, $$2624 = 0, $$2673 = 0, $$3 = 0;
+ var $$3577 = 0, $$3600 = 0, $$3612 = 0, $$3616 = 0, $$4 = 0, $$4617 = 0, $$5 
= 0, $$5618 = 0, $$lcssa = 0, $$lcssa711 = 0, $$neg663 = 0, $$neg664 = 0, $$pre 
= 0, $$pre$phiZ2D = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 
0;
+ var $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;
+ var $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 
= 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 
= 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0;
+ var $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, 
$148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, 
$155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0;
+ var $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 
= 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 
= 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0;
+ var $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 
= 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 
= 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0;
+ var $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 
= 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 
= 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0;
+ var $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 
= 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 
= 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0;
+ var $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, 
$239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, 
$246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0;
+ var $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;
+ var $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;
+ var $287 = 0, $288 = 0, $289 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 
0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 
= 0, $43 = 0, $44 = 0, $45 = 0;
+ var $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, $6 = 0, $60 = 0, $61 = 0, 
$62 = 0, $63 = 0, $64 = 0;
+ var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, 
$72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, 
$80 = 0, $81 = 0, $82 = 0;
+ var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, 
$90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 
0, $99 = 0, $not$ = 0, $not$or$cond635 = 0;
+ var $not$or$cond635$demorgan = 0, $or$cond = 0, $or$cond632 = 0, $or$cond633 
= 0, $or$cond634 = 0, $or$cond635 = 0, $or$cond636 = 0, $or$cond637 = 0, 
$or$cond639 = 0, $or$cond640 = 0, $or$cond641 = 0, $or$cond658 = 0, 
$spec$select = 0, $spec$select631 = 0, $spec$select638 = 0, $spec$select642 = 
0, $spec$select643 = 0, $spec$select644 = 0, $spec$select644$v = 0, 
$spec$select645 = 0;
+ var $spec$select646 = 0, $spec$select646$v = 0, $spec$select647 = 0, 
$spec$select648 = 0, $spec$select648$v = 0, $spec$select649 = 0, 
$spec$select650 = 0, $spec$select650$v = 0, $spec$select651 = 0, 
$spec$select652 = 0, $spec$select653 = 0, $spec$select654 = 0, $spec$select655 
= 0, $spec$select655$v = 0, $spec$select656 = 0, $spec$select657 = 0, 
$spec$select657$v = 0, $spec$select659 = 0, $spec$select659$v = 0, 
$spec$select660 = 0;
+ var $spec$select661 = 0, $spec$select661$v = 0, $spec$select662 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ switch ($5|0) {
+ case 0:  {
+  __gcry_divide_by_zero();
+  // unreachable;
+  break;
+ }
+ case 1:  {
+  $6 = HEAP32[$4>>2]|0;
+  $7 = (($3) + -1)|0;
+  $8 = (($2) + ($7<<2)|0);
+  $9 = HEAP32[$8>>2]|0;
+  $10 = ($9>>>0)<($6>>>0);
+  $11 = $10 ? 0 : $6;
+  $spec$select = (($9) - ($11))|0;
+  $not$ = $10 ^ 1;
+  $spec$select631 = $not$&1;
+  $12 = (($0) + ($1<<2)|0);
+  $13 = ($3|0)>(1);
+  if ($13) {
+   $14 = (($3) + -2)|0;
+   $15 = $6 >>> 16;
+   $16 = $6 & 65535;
+   $$0578683 = $14;$$1581682 = $spec$select;
+   while(1) {
+    $17 = (($$1581682>>>0) / ($15>>>0))&-1;
+    $18 = Math_imul($17, $15)|0;
+    $19 = (($$1581682) - ($18))|0;
+    $20 = Math_imul($17, $16)|0;
+    $21 = $19 << 16;
+    $22 = (($2) + ($$0578683<<2)|0);
+    $23 = HEAP32[$22>>2]|0;
+    $24 = $23 >>> 16;
+    $25 = $24 | $21;
+    $26 = ($25>>>0)<($20>>>0);
+    if ($26) {
+     $27 = (($25) + ($6))|0;
+     $28 = ($27>>>0)>=($6>>>0);
+     $29 = ($27>>>0)<($20>>>0);
+     $or$cond = $28 & $29;
+     $30 = $or$cond ? $6 : 0;
+     $spec$select643 = (($30) + ($27))|0;
+     $spec$select644$v = $or$cond ? -2 : -1;
+     $spec$select644 = (($spec$select644$v) + ($17))|0;
+     $$0583 = $spec$select644;$$0586 = $spec$select643;
+    } else {
+     $$0583 = $17;$$0586 = $25;
+    }
+    $31 = (($$0586) - ($20))|0;
+    $32 = (($31>>>0) / ($15>>>0))&-1;
+    $33 = Math_imul($32, $15)|0;
+    $34 = (($31) - ($33))|0;
+    $35 = Math_imul($32, $16)|0;
+    $36 = $34 << 16;
+    $37 = $23 & 65535;
+    $38 = $36 | $37;
+    $39 = ($38>>>0)<($35>>>0);
+    if ($39) {
+     $40 = (($38) + ($6))|0;
+     $41 = ($40>>>0)>=($6>>>0);
+     $42 = ($40>>>0)<($35>>>0);
+     $or$cond632 = $41 & $42;
+     $43 = $or$cond632 ? $6 : 0;
+     $spec$select645 = (($43) + ($40))|0;
+     $spec$select646$v = $or$cond632 ? -2 : -1;
+     $spec$select646 = (($spec$select646$v) + ($32))|0;
+     $$0585 = $spec$select646;$$0591 = $spec$select645;
+    } else {
+     $$0585 = $32;$$0591 = $38;
+    }
+    $44 = (($$0591) - ($35))|0;
+    $45 = $$0583 << 16;
+    $46 = $$0585 | $45;
+    $47 = (($12) + ($$0578683<<2)|0);
+    HEAP32[$47>>2] = $46;
+    $48 = (($$0578683) + -1)|0;
+    $49 = ($$0578683|0)>(0);
+    if ($49) {
+     $$0578683 = $48;$$1581682 = $44;
+    } else {
+     $$1581$lcssa = $44;
+     break;
+    }
+   }
+  } else {
+   $$1581$lcssa = $spec$select;
+  }
+  $50 = ($1|0)>(0);
+  if ($50) {
+   $51 = $6 >>> 16;
+   $52 = $6 & 65535;
+   $$1579678$in = $1;$$2582677 = $$1581$lcssa;
+   while(1) {
+    $$1579678 = (($$1579678$in) + -1)|0;
+    $53 = (($$2582677>>>0) / ($51>>>0))&-1;
+    $54 = Math_imul($53, $51)|0;
+    $55 = (($$2582677) - ($54))|0;
+    $56 = Math_imul($53, $52)|0;
+    $57 = $55 << 16;
+    $58 = ($57>>>0)<($56>>>0);
+    if ($58) {
+     $59 = (($57) + ($6))|0;
+     $60 = ($59>>>0)>=($6>>>0);
+     $61 = ($59>>>0)<($56>>>0);
+     $or$cond633 = $60 & $61;
+     $62 = $or$cond633 ? $6 : 0;
+     $spec$select647 = (($62) + ($59))|0;
+     $spec$select648$v = $or$cond633 ? -2 : -1;
+     $spec$select648 = (($spec$select648$v) + ($53))|0;
+     $$0594 = $spec$select648;$$0605 = $spec$select647;
+    } else {
+     $$0594 = $53;$$0605 = $57;
+    }
+    $63 = (($$0605) - ($56))|0;
+    $64 = (($63>>>0) / ($51>>>0))&-1;
+    $65 = Math_imul($64, $51)|0;
+    $66 = (($63) - ($65))|0;
+    $67 = Math_imul($64, $52)|0;
+    $68 = $66 << 16;
+    $69 = ($68>>>0)<($67>>>0);
+    if ($69) {
+     $70 = (($68) + ($6))|0;
+     $71 = ($70>>>0)>=($6>>>0);
+     $72 = ($70>>>0)<($67>>>0);
+     $or$cond634 = $71 & $72;
+     $73 = $or$cond634 ? $6 : 0;
+     $spec$select649 = (($73) + ($70))|0;
+     $spec$select650$v = $or$cond634 ? -2 : -1;
+     $spec$select650 = (($spec$select650$v) + ($64))|0;
+     $$0604 = $spec$select650;$$0607 = $spec$select649;
+    } else {
+     $$0604 = $64;$$0607 = $68;
+    }
+    $74 = (($$0607) - ($67))|0;
+    $75 = $$0594 << 16;
+    $76 = $$0604 | $75;
+    $77 = (($0) + ($$1579678<<2)|0);
+    HEAP32[$77>>2] = $76;
+    $78 = ($$1579678$in|0)>(1);
+    if ($78) {
+     $$1579678$in = $$1579678;$$2582677 = $74;
+    } else {
+     $$2582$lcssa = $74;
+     break;
+    }
+   }
+  } else {
+   $$2582$lcssa = $$1581$lcssa;
+  }
+  HEAP32[$2>>2] = $$2582$lcssa;
+  $$3577 = $spec$select631;
+  return ($$3577|0);
+  break;
+ }
+ case 2:  {
+  $79 = (($3) + -2)|0;
+  $80 = (($2) + ($79<<2)|0);
+  $81 = ((($4)) + 4|0);
+  $82 = HEAP32[$81>>2]|0;
+  $83 = HEAP32[$4>>2]|0;
+  $84 = (0 - ($83))|0;
+  $85 = ((($80)) + 4|0);
+  $86 = HEAP32[$85>>2]|0;
+  $87 = HEAP32[$80>>2]|0;
+  $88 = ($86>>>0)<($82>>>0);
+  if ($88) {
+   $$0609 = $86;$$0613 = $87;$$1575 = 0;
+  } else {
+   $89 = ($86>>>0)<=($82>>>0);
+   $90 = ($87>>>0)<($83>>>0);
+   $or$cond635 = $89 & $90;
+   $91 = (($87) - ($83))|0;
+   $92 = (($86) - ($82))|0;
+   $93 = ($91>>>0)>($87>>>0);
+   $$neg663 = $93 << 31 >> 31;
+   $94 = (($92) + ($$neg663))|0;
+   $spec$select651 = $or$cond635 ? $87 : $91;
+   $spec$select652 = $or$cond635 ? $86 : $94;
+   $not$or$cond635$demorgan = $89 & $90;
+   $not$or$cond635 = $not$or$cond635$demorgan ^ 1;
+   $spec$select653 = $not$or$cond635&1;
+   $$0609 = $spec$select652;$$0613 = $spec$select651;$$1575 = $spec$select653;
+  }
+  $95 = (($3) + ($1))|0;
+  $96 = ($95|0)>(2);
+  if ($96) {
+   $97 = (($95) + -3)|0;
+   $98 = $82 >>> 16;
+   $99 = $82 & 65535;
+   $100 = ($83|0)!=(0);
+   $101 = $100&1;
+   $102 = (($83) - ($101))|0;
+   $103 = $83 & 65535;
+   $104 = $83 >>> 16;
+   $$0608690 = $97;$$0692 = $80;$$1610689 = $$0609;$$1614688 = $$0613;
+   while(1) {
+    $105 = ($$0608690|0)<($1|0);
+    if ($105) {
+     HEAP32[$$0692>>2] = 0;
+     $$1 = $$0692;
+    } else {
+     $106 = ((($$0692)) + -4|0);
+     $$1 = $106;
+    }
+    $107 = ($$1610689|0)==($82|0);
+    if ($107) {
+     $108 = (($$1614688) + ($82))|0;
+     $109 = ($108>>>0)<($82>>>0);
+     if ($109) {
+      $110 = HEAP32[$$1>>2]|0;
+      $111 = (($110) + ($83))|0;
+      $112 = (($108) - ($83))|0;
+      $113 = ($111>>>0)<($110>>>0);
+      $114 = $113&1;
+      $115 = (($112) + ($114))|0;
+      $116 = (($0) + ($$0608690<<2)|0);
+      HEAP32[$116>>2] = -1;
+      $$5 = $115;$$5618 = $111;
+     } else {
+      $$0619 = -1;$$0622 = $108;$$2611 = $102;$$2615 = $84;
+      label = 33;
+     }
+    } else {
+     $117 = (($$1610689>>>0) / ($98>>>0))&-1;
+     $118 = Math_imul($117, $98)|0;
+     $119 = (($$1610689) - ($118))|0;
+     $120 = Math_imul($117, $99)|0;
+     $121 = $119 << 16;
+     $122 = $$1614688 >>> 16;
+     $123 = $121 | $122;
+     $124 = ($123>>>0)<($120>>>0);
+     if ($124) {
+      $125 = (($123) + ($82))|0;
+      $126 = ($125>>>0)>=($82>>>0);
+      $127 = ($125>>>0)<($120>>>0);
+      $or$cond636 = $126 & $127;
+      $128 = $or$cond636 ? $82 : 0;
+      $spec$select654 = (($128) + ($125))|0;
+      $spec$select655$v = $or$cond636 ? -2 : -1;
+      $spec$select655 = (($spec$select655$v) + ($117))|0;
+      $$0627 = $spec$select655;$$0630 = $spec$select654;
+     } else {
+      $$0627 = $117;$$0630 = $123;
+     }
+     $129 = (($$0630) - ($120))|0;
+     $130 = (($129>>>0) / ($98>>>0))&-1;
+     $131 = Math_imul($130, $98)|0;
+     $132 = (($129) - ($131))|0;
+     $133 = Math_imul($130, $99)|0;
+     $134 = $132 << 16;
+     $135 = $$1614688 & 65535;
+     $136 = $134 | $135;
+     $137 = ($136>>>0)<($133>>>0);
+     if ($137) {
+      $138 = (($136) + ($82))|0;
+      $139 = ($138>>>0)>=($82>>>0);
+      $140 = ($138>>>0)<($133>>>0);
+      $or$cond637 = $139 & $140;
+      $141 = $or$cond637 ? $82 : 0;
+      $spec$select656 = (($141) + ($138))|0;
+      $spec$select657$v = $or$cond637 ? -2 : -1;
+      $spec$select657 = (($spec$select657$v) + ($130))|0;
+      $$0628 = $spec$select657;$$0629 = $spec$select656;
+     } else {
+      $$0628 = $130;$$0629 = $136;
+     }
+     $142 = (($$0629) - ($133))|0;
+     $143 = $$0627 << 16;
+     $144 = $$0628 | $143;
+     $145 = $$0628 & 65535;
+     $146 = $144 >>> 16;
+     $147 = Math_imul($145, $103)|0;
+     $148 = Math_imul($146, $103)|0;
+     $149 = Math_imul($145, $104)|0;
+     $150 = Math_imul($146, $104)|0;
+     $151 = $147 >>> 16;
+     $152 = (($151) + ($149))|0;
+     $153 = (($152) + ($148))|0;
+     $154 = ($153>>>0)<($149>>>0);
+     $155 = (($150) + 65536)|0;
+     $spec$select638 = $154 ? $155 : $150;
+     $156 = $153 >>> 16;
+     $157 = (($spec$select638) + ($156))|0;
+     $158 = $153 << 16;
+     $159 = $147 & 65535;
+     $160 = $158 | $159;
+     $$0619 = $144;$$0622 = $142;$$2611 = $157;$$2615 = $160;
+     label = 33;
+    }
+    if ((label|0) == 33) {
+     label = 0;
+     $161 = HEAP32[$$1>>2]|0;
+     $$1620 = $$0619;$$1623 = $$0622;$$3612 = $$2611;$$3616 = $$2615;
+     while(1) {
+      $162 = ($$3612>>>0)>($$1623>>>0);
+      if (!($162)) {
+       $163 = ($$3612|0)==($$1623|0);
+       $164 = ($$3616>>>0)>($161>>>0);
+       $or$cond639 = $164 & $163;
+       if (!($or$cond639)) {
+        $$2621 = $$1620;$$2624 = $$1623;$$4 = $$3612;$$4617 = $$3616;
+        break;
+       }
+      }
+      $165 = (($$1620) + -1)|0;
+      $166 = (($$3616) - ($83))|0;
+      $167 = ($166>>>0)>($$3616>>>0);
+      $168 = $167&1;
+      $169 = (($$3612) - ($168))|0;
+      $170 = (($$1623) + ($82))|0;
+      $171 = ($170>>>0)<($82>>>0);
+      if ($171) {
+       $$2621 = $165;$$2624 = $170;$$4 = $169;$$4617 = $166;
+       break;
+      } else {
+       $$1620 = $165;$$1623 = $170;$$3612 = $169;$$3616 = $166;
+      }
+     }
+     $172 = (($0) + ($$0608690<<2)|0);
+     HEAP32[$172>>2] = $$2621;
+     $173 = (($161) - ($$4617))|0;
+     $174 = (($$2624) - ($$4))|0;
+     $175 = ($173>>>0)>($161>>>0);
+     $$neg664 = $175 << 31 >> 31;
+     $176 = (($174) + ($$neg664))|0;
+     $$5 = $176;$$5618 = $173;
+    }
+    $177 = (($$0608690) + -1)|0;
+    $178 = ($$0608690|0)>(0);
+    if ($178) {
+     $$0608690 = $177;$$0692 = $$1;$$1610689 = $$5;$$1614688 = $$5618;
+    } else {
+     break;
+    }
+   }
+   $$pre = ((($$1)) + 4|0);
+   $$0$lcssa = $$1;$$1610$lcssa = $$5;$$1614$lcssa = $$5618;$$pre$phiZ2D = 
$$pre;
+  } else {
+   $$0$lcssa = $80;$$1610$lcssa = $$0609;$$1614$lcssa = $$0613;$$pre$phiZ2D = 
$85;
+  }
+  HEAP32[$$pre$phiZ2D>>2] = $$1610$lcssa;
+  HEAP32[$$0$lcssa>>2] = $$1614$lcssa;
+  $$3577 = $$1575;
+  return ($$3577|0);
+  break;
+ }
+ default: {
+  $179 = (($3) - ($5))|0;
+  $180 = (($2) + ($179<<2)|0);
+  $181 = (($5) + -1)|0;
+  $182 = (($4) + ($181<<2)|0);
+  $183 = HEAP32[$182>>2]|0;
+  $184 = (($5) + -2)|0;
+  $185 = (($4) + ($184<<2)|0);
+  $186 = HEAP32[$185>>2]|0;
+  $187 = (($180) + ($181<<2)|0);
+  $188 = HEAP32[$187>>2]|0;
+  $189 = ($188>>>0)<($183>>>0);
+  L3: do {
+   if ($189) {
+    $$0601 = $188;$$2576 = 0;
+   } else {
+    $190 = ($188>>>0)<=($183>>>0);
+    $191 = ($5|0)>(1);
+    $or$cond658 = $191 & $190;
+    L5: do {
+     if ($or$cond658) {
+      $$01619$i715 = (($5) + -2)|0;
+      $192 = (($180) + ($$01619$i715<<2)|0);
+      $193 = HEAP32[$192>>2]|0;
+      $194 = (($4) + ($$01619$i715<<2)|0);
+      $195 = HEAP32[$194>>2]|0;
+      $196 = ($193|0)==($195|0);
+      if ($196) {
+       $$01619$i717 = $$01619$i715;$$01619$in$i716 = $181;
+       while(1) {
+        $197 = ($$01619$in$i716|0)>(1);
+        if (!($197)) {
+         break L5;
+        }
+        $$01619$i = (($$01619$i717) + -1)|0;
+        $198 = (($180) + ($$01619$i<<2)|0);
+        $199 = HEAP32[$198>>2]|0;
+        $200 = (($4) + ($$01619$i<<2)|0);
+        $201 = HEAP32[$200>>2]|0;
+        $202 = ($199|0)==($201|0);
+        if ($202) {
+         $$01619$in$i716$phi = $$01619$i717;$$01619$i717 = 
$$01619$i;$$01619$in$i716 = $$01619$in$i716$phi;
+        } else {
+         $$lcssa = $201;$$lcssa711 = $199;
+         break;
+        }
+       }
+      } else {
+       $$lcssa = $195;$$lcssa711 = $193;
+      }
+      $203 = ($$lcssa711>>>0)>($$lcssa>>>0);
+      if (!($203)) {
+       $$0601 = $188;$$2576 = 0;
+       break L3;
+      }
+     }
+    } while(0);
+    (__gcry_mpih_sub_n($180,$180,$4,$5)|0);
+    $204 = HEAP32[$187>>2]|0;
+    $$0601 = $204;$$2576 = 1;
+   }
+  } while(0);
+  $205 = (($3) + ($1))|0;
+  $206 = (($205) - ($5))|0;
+  $207 = ($206|0)>(0);
+  if (!($207)) {
+   $$3577 = $$2576;
+   return ($$3577|0);
+  }
+  $208 = ($5|0)>(1);
+  $209 = $183 >>> 16;
+  $210 = $183 & 65535;
+  $211 = $186 & 65535;
+  $212 = $186 >>> 16;
+  $$0606674$in = $206;$$2673 = $180;$224 = $$0601;
+  while(1) {
+   $$0606674 = (($$0606674$in) + -1)|0;
+   $213 = ($$0606674$in|0)>($1|0);
+   if ($213) {
+    $214 = ((($$2673)) + -4|0);
+    $215 = (($214) + ($5<<2)|0);
+    $216 = HEAP32[$215>>2]|0;
+    $$0595 = $216;$$3 = $214;
+   } else {
+    if ($208) {
+     $217 = ((($$2673)) + 4|0);
+     $$0593669 = $184;
+     while(1) {
+      $218 = (($$2673) + ($$0593669<<2)|0);
+      $219 = HEAP32[$218>>2]|0;
+      $220 = (($217) + ($$0593669<<2)|0);
+      HEAP32[$220>>2] = $219;
+      $221 = (($$0593669) + -1)|0;
+      $222 = ($$0593669|0)>(0);
+      if ($222) {
+       $$0593669 = $221;
+      } else {
+       break;
+      }
+     }
+    }
+    HEAP32[$$2673>>2] = 0;
+    $$0595 = $224;$$3 = $$2673;
+   }
+   $223 = ($224|0)==($183|0);
+   L29: do {
+    if ($223) {
+     $$2599 = -1;
+    } else {
+     $225 = (($224>>>0) / ($209>>>0))&-1;
+     $226 = Math_imul($225, $209)|0;
+     $227 = (($224) - ($226))|0;
+     $228 = Math_imul($225, $210)|0;
+     $229 = $227 << 16;
+     $230 = (($$3) + ($181<<2)|0);
+     $231 = HEAP32[$230>>2]|0;
+     $232 = $231 >>> 16;
+     $233 = $232 | $229;
+     $234 = ($233>>>0)<($228>>>0);
+     if ($234) {
+      $235 = (($233) + ($183))|0;
+      $236 = ($235>>>0)>=($183>>>0);
+      $237 = ($235>>>0)<($228>>>0);
+      $or$cond640 = $236 & $237;
+      $spec$select659$v = $or$cond640 ? -2 : -1;
+      $spec$select659 = (($spec$select659$v) + ($225))|0;
+      $238 = $or$cond640 ? $183 : 0;
+      $spec$select660 = (($238) + ($235))|0;
+      $$0588 = $spec$select660;$$0590 = $spec$select659;
+     } else {
+      $$0588 = $233;$$0590 = $225;
+     }
+     $239 = (($$0588) - ($228))|0;
+     $240 = (($239>>>0) / ($209>>>0))&-1;
+     $241 = Math_imul($240, $209)|0;
+     $242 = (($239) - ($241))|0;
+     $243 = Math_imul($240, $210)|0;
+     $244 = $242 << 16;
+     $245 = $231 & 65535;
+     $246 = $244 | $245;
+     $247 = ($246>>>0)<($243>>>0);
+     if ($247) {
+      $248 = (($246) + ($183))|0;
+      $249 = ($248>>>0)>=($183>>>0);
+      $250 = ($248>>>0)<($243>>>0);
+      $or$cond641 = $249 & $250;
+      $spec$select661$v = $or$cond641 ? -2 : -1;
+      $spec$select661 = (($spec$select661$v) + ($240))|0;
+      $251 = $or$cond641 ? $183 : 0;
+      $spec$select662 = (($251) + ($248))|0;
+      $$0587 = $spec$select662;$$0589 = $spec$select661;
+     } else {
+      $$0587 = $246;$$0589 = $240;
+     }
+     $252 = (($$0587) - ($243))|0;
+     $253 = $$0590 << 16;
+     $254 = $$0589 | $253;
+     $255 = $$0589 & 65535;
+     $256 = $254 >>> 16;
+     $257 = Math_imul($255, $211)|0;
+     $258 = Math_imul($256, $211)|0;
+     $259 = Math_imul($255, $212)|0;
+     $260 = Math_imul($256, $212)|0;
+     $261 = $257 >>> 16;
+     $262 = (($261) + ($259))|0;
+     $263 = (($262) + ($258))|0;
+     $264 = ($263>>>0)<($259>>>0);
+     $265 = (($260) + 65536)|0;
+     $spec$select642 = $264 ? $265 : $260;
+     $266 = $263 >>> 16;
+     $267 = (($spec$select642) + ($266))|0;
+     $268 = $263 << 16;
+     $269 = $257 & 65535;
+     $270 = $268 | $269;
+     $271 = (($$3) + ($184<<2)|0);
+     $$0592 = $252;$$0596 = $267;$$0597 = $254;$$2603 = $270;
+     while(1) {
+      $272 = ($$0596>>>0)>($$0592>>>0);
+      if (!($272)) {
+       $273 = ($$0596|0)==($$0592|0);
+       if (!($273)) {
+        $$2599 = $$0597;
+        break L29;
+       }
+       $274 = HEAP32[$271>>2]|0;
+       $275 = ($$2603>>>0)>($274>>>0);
+       if (!($275)) {
+        $$2599 = $$0597;
+        break L29;
+       }
+      }
+      $276 = (($$0597) + -1)|0;
+      $277 = (($$0592) + ($183))|0;
+      $278 = ($277>>>0)<($183>>>0);
+      if ($278) {
+       $$2599 = $276;
+       break L29;
+      }
+      $279 = ($$2603>>>0)<($186>>>0);
+      $280 = $279&1;
+      $281 = (($$0596) - ($280))|0;
+      $282 = (($$2603) - ($186))|0;
+      $$0592 = $277;$$0596 = $281;$$0597 = $276;$$2603 = $282;
+     }
+    }
+   } while(0);
+   $283 = (__gcry_mpih_submul_1($$3,$4,$5,$$2599)|0);
+   $284 = ($$0595|0)==($283|0);
+   if ($284) {
+    $$3600 = $$2599;
+   } else {
+    $285 = (($$2599) + -1)|0;
+    (__gcry_mpih_add_n($$3,$$3,$4,$5)|0);
+    $$3600 = $285;
+   }
+   $286 = (($0) + ($$0606674<<2)|0);
+   HEAP32[$286>>2] = $$3600;
+   $287 = (($$3) + ($181<<2)|0);
+   $288 = HEAP32[$287>>2]|0;
+   $289 = ($$0606674$in|0)>(1);
+   if ($289) {
+    $$0606674$in = $$0606674;$$2673 = $$3;$224 = $288;
+   } else {
+    $$3577 = $$2576;
+    break;
+   }
+  }
+  return ($$3577|0);
+ }
+ }
+ return (0)|0;
+}
+function __gcry_mpih_divmod_1($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$0252 = 0, $$0253 = 0, $$0254 = 0, $$0257 = 0, $$0258 = 0, 
$$0259 = 0, $$0260 = 0, $$0261293 = 0, $$0263$lcssa = 0, $$0263292 = 0, $$0264 
= 0, $$0265 = 0, $$0266 = 0, $$0267 = 0, $$0268$lcssa = 0, $$0268291 = 0, $$1 = 
0, $$1262 = 0, $$1269 = 0;
+ var $$2270289 = 0, $$2290 = 0, $$pre = 0, $$pre$phi300Z2D = 0, $$pre$phiZ2D = 
0, $$pre299 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, 
$105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0;
+ var $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;
+ var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $14 = 0, $15 
= 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, 
$24 = 0, $25 = 0, $26 = 0, $27 = 0;
+ var $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;
+ var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, 
$62 = 0, $63 = 0, $64 = 0;
+ var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, 
$72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, 
$80 = 0, $81 = 0, $82 = 0;
+ var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, 
$90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 
0, $99 = 0, $or$cond = 0, $or$cond272 = 0;
+ var $or$cond273 = 0, $or$cond274 = 0, $or$cond275 = 0, $or$cond276 = 0, 
$spec$select = 0, $spec$select$v = 0, $spec$select278 = 0, $spec$select279 = 0, 
$spec$select279$v = 0, $spec$select280 = 0, $spec$select281 = 0, 
$spec$select281$v = 0, $spec$select282 = 0, $spec$select283 = 0, 
$spec$select283$v = 0, $spec$select284 = 0, $spec$select285 = 0, 
$spec$select285$v = 0, $spec$select286 = 0, $spec$select287 = 0;
+ var $spec$select287$v = 0, $spec$select288 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = ($2|0)==(0);
+ if ($4) {
+  $$1 = 0;
+  return ($$1|0);
+ }
+ $5 = ($3>>>0)<(65536);
+ $6 = ($3>>>0)<(256);
+ $7 = $6 ? 0 : 8;
+ $8 = ($3>>>0)<(16777216);
+ $9 = $8 ? 16 : 24;
+ $10 = $5 ? $7 : $9;
+ $11 = $3 >>> $10;
+ $12 = (14784 + ($11)|0);
+ $13 = HEAP8[$12>>0]|0;
+ $14 = $13&255;
+ $15 = (($10) + ($14))|0;
+ $16 = (32 - ($15))|0;
+ $17 = ($16|0)==(0);
+ if ($17) {
+  $94 = (($2) + -1)|0;
+  $95 = (($1) + ($94<<2)|0);
+  $96 = HEAP32[$95>>2]|0;
+  $97 = ($96>>>0)<($3>>>0);
+  if ($97) {
+   $98 = (($0) + ($94<<2)|0);
+   $99 = (($2) + -2)|0;
+   HEAP32[$98>>2] = 0;
+   $$1262 = $99;$$1269 = $96;
+  } else {
+   $$1262 = $94;$$1269 = 0;
+  }
+  $100 = ($$1262|0)>(-1);
+  if (!($100)) {
+   $$1 = $$1269;
+   return ($$1|0);
+  }
+  $101 = $3 >>> 16;
+  $102 = $3 & 65535;
+  $$2270289 = $$1269;$$2290 = $$1262;
+  while(1) {
+   $103 = (($1) + ($$2290<<2)|0);
+   $104 = HEAP32[$103>>2]|0;
+   $105 = (($$2270289>>>0) / ($101>>>0))&-1;
+   $106 = Math_imul($105, $101)|0;
+   $107 = (($$2270289) - ($106))|0;
+   $108 = Math_imul($105, $102)|0;
+   $109 = $107 << 16;
+   $110 = $104 >>> 16;
+   $111 = $109 | $110;
+   $112 = ($111>>>0)<($108>>>0);
+   if ($112) {
+    $113 = (($111) + ($3))|0;
+    $114 = ($113>>>0)>=($3>>>0);
+    $115 = ($113>>>0)<($108>>>0);
+    $or$cond275 = $114 & $115;
+    $spec$select285$v = $or$cond275 ? -2 : -1;
+    $spec$select285 = (($spec$select285$v) + ($105))|0;
+    $116 = $or$cond275 ? $3 : 0;
+    $spec$select286 = (($116) + ($113))|0;
+    $$0252 = $spec$select286;$$0254 = $spec$select285;
+   } else {
+    $$0252 = $111;$$0254 = $105;
+   }
+   $117 = (($$0252) - ($108))|0;
+   $118 = (($117>>>0) / ($101>>>0))&-1;
+   $119 = Math_imul($118, $101)|0;
+   $120 = (($117) - ($119))|0;
+   $121 = Math_imul($118, $102)|0;
+   $122 = $120 << 16;
+   $123 = $104 & 65535;
+   $124 = $122 | $123;
+   $125 = ($124>>>0)<($121>>>0);
+   if ($125) {
+    $126 = (($124) + ($3))|0;
+    $127 = ($126>>>0)>=($3>>>0);
+    $128 = ($126>>>0)<($121>>>0);
+    $or$cond276 = $127 & $128;
+    $spec$select287$v = $or$cond276 ? -2 : -1;
+    $spec$select287 = (($spec$select287$v) + ($118))|0;
+    $129 = $or$cond276 ? $3 : 0;
+    $spec$select288 = (($129) + ($126))|0;
+    $$0 = $spec$select288;$$0253 = $spec$select287;
+   } else {
+    $$0 = $124;$$0253 = $118;
+   }
+   $130 = (($$0) - ($121))|0;
+   $131 = $$0254 << 16;
+   $132 = $$0253 | $131;
+   $133 = (($0) + ($$2290<<2)|0);
+   HEAP32[$133>>2] = $132;
+   $134 = (($$2290) + -1)|0;
+   $135 = ($$2290|0)>(0);
+   if ($135) {
+    $$2270289 = $130;$$2290 = $134;
+   } else {
+    $$1 = $130;
+    break;
+   }
+  }
+  return ($$1|0);
+ }
+ $18 = $3 << $16;
+ $19 = (($2) + -1)|0;
+ $20 = (($1) + ($19<<2)|0);
+ $21 = HEAP32[$20>>2]|0;
+ $22 = $21 >>> $15;
+ $23 = ($2|0)>(1);
+ if ($23) {
+  $24 = (($2) + -2)|0;
+  $25 = $18 >>> 16;
+  $26 = $18 & 65535;
+  $$0261293 = $24;$$0263292 = $21;$$0268291 = $22;
+  while(1) {
+   $27 = (($1) + ($$0261293<<2)|0);
+   $28 = HEAP32[$27>>2]|0;
+   $29 = (($$0268291>>>0) / ($25>>>0))&-1;
+   $30 = Math_imul($29, $25)|0;
+   $31 = (($$0268291) - ($30))|0;
+   $32 = Math_imul($29, $26)|0;
+   $33 = $31 << 16;
+   $34 = $$0263292 << $16;
+   $35 = $28 >>> $15;
+   $36 = $35 | $34;
+   $37 = $36 >>> 16;
+   $38 = $37 | $33;
+   $39 = ($38>>>0)<($32>>>0);
+   if ($39) {
+    $40 = (($38) + ($18))|0;
+    $41 = ($40>>>0)>=($18>>>0);
+    $42 = ($40>>>0)<($32>>>0);
+    $or$cond = $41 & $42;
+    $spec$select$v = $or$cond ? -2 : -1;
+    $spec$select = (($spec$select$v) + ($29))|0;
+    $43 = $or$cond ? $18 : 0;
+    $spec$select278 = (($43) + ($40))|0;
+    $$0265 = $spec$select278;$$0267 = $spec$select;
+   } else {
+    $$0265 = $38;$$0267 = $29;
+   }
+   $44 = (($$0265) - ($32))|0;
+   $45 = (($44>>>0) / ($25>>>0))&-1;
+   $46 = Math_imul($45, $25)|0;
+   $47 = (($44) - ($46))|0;
+   $48 = Math_imul($45, $26)|0;
+   $49 = $47 << 16;
+   $50 = $36 & 65535;
+   $51 = $49 | $50;
+   $52 = ($51>>>0)<($48>>>0);
+   if ($52) {
+    $53 = (($51) + ($18))|0;
+    $54 = ($53>>>0)>=($18>>>0);
+    $55 = ($53>>>0)<($48>>>0);
+    $or$cond272 = $54 & $55;
+    $spec$select279$v = $or$cond272 ? -2 : -1;
+    $spec$select279 = (($spec$select279$v) + ($45))|0;
+    $56 = $or$cond272 ? $18 : 0;
+    $spec$select280 = (($56) + ($53))|0;
+    $$0264 = $spec$select280;$$0266 = $spec$select279;
+   } else {
+    $$0264 = $51;$$0266 = $45;
+   }
+   $57 = (($$0264) - ($48))|0;
+   $58 = $$0267 << 16;
+   $59 = $$0266 | $58;
+   $60 = (($$0261293) + 1)|0;
+   $61 = (($0) + ($60<<2)|0);
+   HEAP32[$61>>2] = $59;
+   $62 = (($$0261293) + -1)|0;
+   $63 = ($$0261293|0)>(0);
+   if ($63) {
+    $$0261293 = $62;$$0263292 = $28;$$0268291 = $57;
+   } else {
+    $$0263$lcssa = $28;$$0268$lcssa = $57;$$pre$phi300Z2D = $26;$$pre$phiZ2D = 
$25;
+    break;
+   }
+  }
+ } else {
+  $$pre = $18 >>> 16;
+  $$pre299 = $18 & 65535;
+  $$0263$lcssa = $21;$$0268$lcssa = $22;$$pre$phi300Z2D = 
$$pre299;$$pre$phiZ2D = $$pre;
+ }
+ $64 = (($$0268$lcssa>>>0) / ($$pre$phiZ2D>>>0))&-1;
+ $65 = Math_imul($64, $$pre$phiZ2D)|0;
+ $66 = (($$0268$lcssa) - ($65))|0;
+ $67 = Math_imul($64, $$pre$phi300Z2D)|0;
+ $68 = $66 << 16;
+ $69 = $$0263$lcssa << $16;
+ $70 = $69 >>> 16;
+ $71 = $68 | $70;
+ $72 = ($71>>>0)<($67>>>0);
+ if ($72) {
+  $73 = (($71) + ($18))|0;
+  $74 = ($73>>>0)>=($18>>>0);
+  $75 = ($73>>>0)<($67>>>0);
+  $or$cond273 = $74 & $75;
+  $spec$select281$v = $or$cond273 ? -2 : -1;
+  $spec$select281 = (($spec$select281$v) + ($64))|0;
+  $76 = $or$cond273 ? $18 : 0;
+  $spec$select282 = (($76) + ($73))|0;
+  $$0258 = $spec$select282;$$0260 = $spec$select281;
+ } else {
+  $$0258 = $71;$$0260 = $64;
+ }
+ $77 = (($$0258) - ($67))|0;
+ $78 = (($77>>>0) / ($$pre$phiZ2D>>>0))&-1;
+ $79 = Math_imul($78, $$pre$phiZ2D)|0;
+ $80 = (($77) - ($79))|0;
+ $81 = Math_imul($78, $$pre$phi300Z2D)|0;
+ $82 = $80 << 16;
+ $83 = $69 & 65535;
+ $84 = $82 | $83;
+ $85 = ($84>>>0)<($81>>>0);
+ if ($85) {
+  $86 = (($84) + ($18))|0;
+  $87 = ($86>>>0)>=($18>>>0);
+  $88 = ($86>>>0)<($81>>>0);
+  $or$cond274 = $87 & $88;
+  $spec$select283$v = $or$cond274 ? -2 : -1;
+  $spec$select283 = (($spec$select283$v) + ($78))|0;
+  $89 = $or$cond274 ? $18 : 0;
+  $spec$select284 = (($89) + ($86))|0;
+  $$0257 = $spec$select284;$$0259 = $spec$select283;
+ } else {
+  $$0257 = $84;$$0259 = $78;
+ }
+ $90 = (($$0257) - ($81))|0;
+ $91 = $$0260 << 16;
+ $92 = $$0259 | $91;
+ HEAP32[$0>>2] = $92;
+ $93 = $90 >>> $16;
+ $$1 = $93;
+ return ($$1|0);
+}
+function __gcry_mpih_lshift($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0$lcssa = 0, $$034$lcssa = 0, $$03435 = 0, $$036 = 0, $$036$phi = 0, 
$10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 
0, $19 = 0, $20 = 0, $21 = 0, $4 = 0, $5 = 0, $6 = 0;
+ var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (32 - ($3))|0;
+ $5 = (($2) + -1)|0;
+ $6 = (($1) + ($5<<2)|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = $7 >>> $4;
+ $9 = ($2|0)>(1);
+ if ($9) {
+  $10 = (($2) + -2)|0;
+  $$03435 = $7;$$036 = $5;$12 = $10;
+  while(1) {
+   $11 = (($1) + ($12<<2)|0);
+   $13 = HEAP32[$11>>2]|0;
+   $14 = $$03435 << $3;
+   $15 = $13 >>> $4;
+   $16 = $15 | $14;
+   $17 = (($0) + ($$036<<2)|0);
+   HEAP32[$17>>2] = $16;
+   $18 = (($12) + -1)|0;
+   $19 = ($12|0)>(0);
+   if ($19) {
+    $$036$phi = $12;$$03435 = $13;$12 = $18;$$036 = $$036$phi;
+   } else {
+    $$0$lcssa = 0;$$034$lcssa = $13;
+    break;
+   }
+  }
+ } else {
+  $$0$lcssa = $5;$$034$lcssa = $7;
+ }
+ $20 = $$034$lcssa << $3;
+ $21 = (($0) + ($$0$lcssa<<2)|0);
+ HEAP32[$21>>2] = $20;
+ return ($8|0);
+}
+function __gcry_mpih_mul_1($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$067 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 
= 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (0 - ($2))|0;
+ $5 = (($1) + ($2<<2)|0);
+ $6 = (($0) + ($2<<2)|0);
+ $7 = $3 & 65535;
+ $8 = $3 >>> 16;
+ $$0 = 0;$$067 = $4;
+ while(1) {
+  $9 = (($5) + ($$067<<2)|0);
+  $10 = HEAP32[$9>>2]|0;
+  $11 = $10 & 65535;
+  $12 = $10 >>> 16;
+  $13 = Math_imul($11, $7)|0;
+  $14 = Math_imul($11, $8)|0;
+  $15 = Math_imul($12, $7)|0;
+  $16 = Math_imul($12, $8)|0;
+  $17 = $13 >>> 16;
+  $18 = (($15) + ($14))|0;
+  $19 = (($18) + ($17))|0;
+  $20 = ($19>>>0)<($15>>>0);
+  $21 = (($16) + 65536)|0;
+  $spec$select = $20 ? $21 : $16;
+  $22 = $19 >>> 16;
+  $23 = (($spec$select) + ($22))|0;
+  $24 = $19 << 16;
+  $25 = $13 & 65535;
+  $26 = $24 | $25;
+  $27 = (($26) + ($$0))|0;
+  $28 = ($27>>>0)<($$0>>>0);
+  $29 = $28&1;
+  $30 = (($23) + ($29))|0;
+  $31 = (($6) + ($$067<<2)|0);
+  HEAP32[$31>>2] = $27;
+  $32 = (($$067) + 1)|0;
+  $33 = ($32|0)==(0);
+  if ($33) {
+   break;
+  } else {
+   $$0 = $30;$$067 = $32;
+  }
+ }
+ return ($30|0);
+}
+function __gcry_mpih_submul_1($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$076 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (0 - ($2))|0;
+ $5 = (($0) + ($2<<2)|0);
+ $6 = (($1) + ($2<<2)|0);
+ $7 = $3 & 65535;
+ $8 = $3 >>> 16;
+ $$0 = 0;$$076 = $4;
+ while(1) {
+  $9 = (($6) + ($$076<<2)|0);
+  $10 = HEAP32[$9>>2]|0;
+  $11 = $10 & 65535;
+  $12 = $10 >>> 16;
+  $13 = Math_imul($11, $7)|0;
+  $14 = Math_imul($11, $8)|0;
+  $15 = Math_imul($12, $7)|0;
+  $16 = Math_imul($12, $8)|0;
+  $17 = $13 >>> 16;
+  $18 = (($15) + ($14))|0;
+  $19 = (($18) + ($17))|0;
+  $20 = ($19>>>0)<($15>>>0);
+  $21 = (($16) + 65536)|0;
+  $spec$select = $20 ? $21 : $16;
+  $22 = $19 >>> 16;
+  $23 = (($spec$select) + ($22))|0;
+  $24 = $19 << 16;
+  $25 = $13 & 65535;
+  $26 = $24 | $25;
+  $27 = (($26) + ($$0))|0;
+  $28 = ($27>>>0)<($$0>>>0);
+  $29 = $28&1;
+  $30 = (($23) + ($29))|0;
+  $31 = (($5) + ($$076<<2)|0);
+  $32 = HEAP32[$31>>2]|0;
+  $33 = (($32) - ($27))|0;
+  $34 = ($33>>>0)>($32>>>0);
+  $35 = $34&1;
+  $36 = (($30) + ($35))|0;
+  HEAP32[$31>>2] = $33;
+  $37 = (($$076) + 1)|0;
+  $38 = ($37|0)==(0);
+  if ($38) {
+   break;
+  } else {
+   $$0 = $36;$$076 = $37;
+  }
+ }
+ return ($36|0);
+}
+function _mul_n_basecase($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0515 = 0, $$052 = 0, $$0533 = 0, $$0544 = 0, $$2 = 0, $$pn = 0, $10 = 
0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 
= 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
+ var $24 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, 
$exitcond12 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = HEAP32[$2>>2]|0;
+ $5 = ($4>>>0)<(2);
+ L1: do {
+  if ($5) {
+   $6 = ($4|0)==(1);
+   $7 = ($3|0)>(0);
+   if ($6) {
+    if ($7) {
+     $$0515 = 0;
+     while(1) {
+      $8 = (($1) + ($$0515<<2)|0);
+      $9 = HEAP32[$8>>2]|0;
+      $10 = (($0) + ($$0515<<2)|0);
+      HEAP32[$10>>2] = $9;
+      $11 = (($$0515) + 1)|0;
+      $exitcond12 = ($11|0)==($3|0);
+      if ($exitcond12) {
+       $$052 = 0;
+       break L1;
+      } else {
+       $$0515 = $11;
+      }
+     }
+    }
+   } else {
+    if ($7) {
+     $12 = $3 << 2;
+     _memset(($0|0),0,($12|0))|0;
+     $$052 = 0;
+     break;
+    }
+   }
+   $14 = (($0) + ($3<<2)|0);
+   HEAP32[$14>>2] = 0;
+   return;
+  } else {
+   $13 = (__gcry_mpih_mul_1($0,$1,$3,$4)|0);
+   $$052 = $13;
+  }
+ } while(0);
+ $15 = (($0) + ($3<<2)|0);
+ HEAP32[$15>>2] = $$052;
+ $16 = ($3|0)>(1);
+ if (!($16)) {
+  return;
+ }
+ $$0533 = 1;$$pn = $0;
+ while(1) {
+  $$0544 = ((($$pn)) + 4|0);
+  $17 = (($2) + ($$0533<<2)|0);
+  $18 = HEAP32[$17>>2]|0;
+  $19 = ($18>>>0)<(2);
+  if ($19) {
+   $20 = ($18|0)==(1);
+   if ($20) {
+    $21 = (__gcry_mpih_add_n($$0544,$$0544,$1,$3)|0);
+    $$2 = $21;
+   } else {
+    $$2 = 0;
+   }
+  } else {
+   $22 = (__gcry_mpih_addmul_1($$0544,$1,$3,$18)|0);
+   $$2 = $22;
+  }
+  $23 = (($$0544) + ($3<<2)|0);
+  HEAP32[$23>>2] = $$2;
+  $24 = (($$0533) + 1)|0;
+  $exitcond = ($24|0)==($3|0);
+  if ($exitcond) {
+   break;
+  } else {
+   $$0533 = $24;$$pn = $$0544;
+  }
+ }
+ return;
+}
+function _mul_n($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0153201 = 0, $$0154233 = 0, $$0154234 = 0, $$0155 = 0, $$01619$i = 0, 
$$01619$i171 = 0, $$01619$in$i = 0, $$01619$in$i170 = 0, $$0200 = 0, $$02637$i 
= 0, $$02637$i157 = 0, $$1 = 0, $$pn = 0, $$pn232 = 0, $10 = 0, $11 = 0, $12 = 
0, $13 = 0, $14 = 0, $15 = 0;
+ var $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, $34 = 0, $35 = 0;
+ var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, 
$52 = 0, $53 = 0, $54 = 0;
+ var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, 
$62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, 
$70 = 0, $71 = 0, $72 = 0;
+ var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, 
$80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 
0, $89 = 0, $9 = 0, $90 = 0;
+ var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = $3 & 1;
+ $6 = ($5|0)==(0);
+ if (!($6)) {
+  $7 = (($3) + -1)|0;
+  $8 = ($3|0)<(17);
+  if ($8) {
+   _mul_n_basecase($0,$1,$2,$7);
+  } else {
+   _mul_n($0,$1,$2,$7,$4);
+  }
+  $9 = (($0) + ($7<<2)|0);
+  $10 = (($2) + ($7<<2)|0);
+  $11 = HEAP32[$10>>2]|0;
+  $12 = (__gcry_mpih_addmul_1($9,$1,$7,$11)|0);
+  $13 = $7 << 1;
+  $14 = (($0) + ($13<<2)|0);
+  HEAP32[$14>>2] = $12;
+  $15 = (($1) + ($7<<2)|0);
+  $16 = HEAP32[$15>>2]|0;
+  $17 = (__gcry_mpih_addmul_1($9,$2,$3,$16)|0);
+  $18 = (($7) + ($3))|0;
+  $19 = (($0) + ($18<<2)|0);
+  HEAP32[$19>>2] = $17;
+  return;
+ }
+ $20 = $3 >> 1;
+ $21 = ($3|0)<(32);
+ $22 = (($0) + ($3<<2)|0);
+ $23 = (($1) + ($20<<2)|0);
+ $24 = (($2) + ($20<<2)|0);
+ if ($21) {
+  _mul_n_basecase($22,$23,$24,$20);
+  $25 = ($3|0)>(1);
+  if ($25) {
+   label = 9;
+  } else {
+   (__gcry_mpih_sub_n($0,$23,$1,$20)|0);
+   $$0154233 = 0;$94 = 0;
+   label = 20;
+  }
+ } else {
+  _mul_n($22,$23,$24,$20,$4);
+  label = 9;
+ }
+ L13: do {
+  if ((label|0) == 9) {
+   $$01619$in$i = $20;
+   while(1) {
+    $$01619$i = (($$01619$in$i) + -1)|0;
+    $27 = (($23) + ($$01619$i<<2)|0);
+    $28 = HEAP32[$27>>2]|0;
+    $29 = (($1) + ($$01619$i<<2)|0);
+    $30 = HEAP32[$29>>2]|0;
+    $31 = ($28|0)==($30|0);
+    if (!($31)) {
+     label = 13;
+     break;
+    }
+    $26 = ($$01619$in$i|0)>(1);
+    if ($26) {
+     $$01619$in$i = $$01619$i;
+    } else {
+     label = 14;
+     break;
+    }
+   }
+   if ((label|0) == 13) {
+    $32 = ($28>>>0)>($30>>>0);
+    if ($32) {
+     label = 14;
+    } else {
+     (__gcry_mpih_sub_n($0,$1,$23,$20)|0);
+     $$0154234 = 1;
+    }
+   }
+   if ((label|0) == 14) {
+    (__gcry_mpih_sub_n($0,$23,$1,$20)|0);
+    $$0154234 = 0;
+   }
+   $$01619$in$i170 = $20;
+   while(1) {
+    $$01619$i171 = (($$01619$in$i170) + -1)|0;
+    $34 = (($24) + ($$01619$i171<<2)|0);
+    $35 = HEAP32[$34>>2]|0;
+    $36 = (($2) + ($$01619$i171<<2)|0);
+    $37 = HEAP32[$36>>2]|0;
+    $38 = ($35|0)==($37|0);
+    if (!($38)) {
+     break;
+    }
+    $33 = ($$01619$in$i170|0)>(1);
+    if ($33) {
+     $$01619$in$i170 = $$01619$i171;
+    } else {
+     $$0154233 = $$0154234;$94 = 1;
+     label = 20;
+     break L13;
+    }
+   }
+   $39 = ($35>>>0)>($37>>>0);
+   if ($39) {
+    $$0154233 = $$0154234;$94 = 1;
+    label = 20;
+   } else {
+    $42 = (($0) + ($20<<2)|0);
+    (__gcry_mpih_sub_n($42,$2,$24,$20)|0);
+    $$1 = $$0154234;$43 = $42;$95 = 1;
+   }
+  }
+ } while(0);
+ if ((label|0) == 20) {
+  $40 = (($0) + ($20<<2)|0);
+  (__gcry_mpih_sub_n($40,$24,$2,$20)|0);
+  $41 = $$0154233 ^ 1;
+  $$1 = $41;$43 = $40;$95 = $94;
+ }
+ if ($21) {
+  _mul_n_basecase($4,$0,$43,$20);
+ } else {
+  $44 = (($4) + ($3<<2)|0);
+  _mul_n($4,$0,$43,$20,$44);
+ }
+ if ($95) {
+  $45 = (($0) + ($20<<2)|0);
+  $$0153201 = 0;
+  while(1) {
+   $46 = (($22) + ($$0153201<<2)|0);
+   $47 = HEAP32[$46>>2]|0;
+   $48 = (($45) + ($$0153201<<2)|0);
+   HEAP32[$48>>2] = $47;
+   $49 = (($$0153201) + 1)|0;
+   $50 = ($49|0)<($20|0);
+   if ($50) {
+    $$0153201 = $49;
+   } else {
+    break;
+   }
+  }
+ }
+ $51 = (($22) + ($20<<2)|0);
+ $52 = (__gcry_mpih_add_n($22,$22,$51,$20)|0);
+ $53 = ($$1|0)==(0);
+ if ($53) {
+  $56 = (__gcry_mpih_add_n($43,$43,$4,$3)|0);
+  $57 = (($56) + ($52))|0;
+  $$0155 = $57;
+ } else {
+  $54 = (__gcry_mpih_sub_n($43,$43,$4,$3)|0);
+  $55 = (($52) - ($54))|0;
+  $$0155 = $55;
+ }
+ if ($21) {
+  _mul_n_basecase($4,$1,$2,$20);
+ } else {
+  $58 = (($4) + ($3<<2)|0);
+  _mul_n($4,$1,$2,$20,$58);
+ }
+ $59 = (__gcry_mpih_add_n($43,$43,$4,$3)|0);
+ $60 = (($59) + ($$0155))|0;
+ $61 = ($60|0)==(0);
+ L49: do {
+  if (!($61)) {
+   $62 = (($0) + ($20<<2)|0);
+   $63 = (($62) + ($3<<2)|0);
+   $64 = HEAP32[$63>>2]|0;
+   $65 = (($64) + ($60))|0;
+   HEAP32[$63>>2] = $65;
+   $66 = ($65>>>0)<($64>>>0);
+   if ($66) {
+    $67 = (($20) + -1)|0;
+    $68 = ($67|0)==(0);
+    if (!($68)) {
+     $$pn232 = $63;$70 = $67;
+     while(1) {
+      $$02637$i157 = ((($$pn232)) + 4|0);
+      $72 = HEAP32[$$02637$i157>>2]|0;
+      $73 = (($72) + 1)|0;
+      HEAP32[$$02637$i157>>2] = $73;
+      $74 = ($73|0)==(0);
+      if (!($74)) {
+       break L49;
+      }
+      $69 = (($70) + -1)|0;
+      $71 = ($69|0)==(0);
+      if ($71) {
+       break;
+      } else {
+       $$pn232 = $$02637$i157;$70 = $69;
+      }
+     }
+    }
+   }
+  }
+ } while(0);
+ if ($95) {
+  $$0200 = 0;
+  while(1) {
+   $75 = (($4) + ($$0200<<2)|0);
+   $76 = HEAP32[$75>>2]|0;
+   $77 = (($0) + ($$0200<<2)|0);
+   HEAP32[$77>>2] = $76;
+   $78 = (($$0200) + 1)|0;
+   $79 = ($78|0)<($20|0);
+   if ($79) {
+    $$0200 = $78;
+   } else {
+    break;
+   }
+  }
+ }
+ $80 = (($4) + ($20<<2)|0);
+ $81 = (__gcry_mpih_add_n($43,$43,$80,$20)|0);
+ $82 = ($81|0)==(0);
+ if ($82) {
+  return;
+ }
+ $83 = HEAP32[$22>>2]|0;
+ $84 = (($83) + 1)|0;
+ HEAP32[$22>>2] = $84;
+ $85 = ($83|0)==(-1);
+ if (!($85)) {
+  return;
+ }
+ $86 = (($3) + -1)|0;
+ $87 = ($86|0)==(0);
+ if ($87) {
+  return;
+ }
+ $$pn = $22;$89 = $86;
+ while(1) {
+  $$02637$i = ((($$pn)) + 4|0);
+  $91 = HEAP32[$$02637$i>>2]|0;
+  $92 = (($91) + 1)|0;
+  HEAP32[$$02637$i>>2] = $92;
+  $93 = ($92|0)==(0);
+  if (!($93)) {
+   label = 49;
+   break;
+  }
+  $88 = (($89) + -1)|0;
+  $90 = ($88|0)==(0);
+  if ($90) {
+   label = 49;
+   break;
+  } else {
+   $$pn = $$02637$i;$89 = $88;
+  }
+ }
+ if ((label|0) == 49) {
+  return;
+ }
+}
+function __gcry_mpih_mul_karatsuba_case($0,$1,$2,$3,$4,$5) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ var $$0 = 0, $$0$us = 0, $$02637$i = 0, $$02637$i96 = 0, $$02637$i96$us = 0, 
$$02836$i = 0, $$02836$i97 = 0, $$02836$i97$us = 0, $$035$i = 0, $$035$i103 = 
0, $$035$i103$us = 0, $$090 = 0, $$090$us = 0, $$092 = 0, $$092$us = 0, $$1 = 
0, $$1$i = 0, $$1$i100 = 0, $$1$i100$us = 0, $$127$i = 0;
+ var $$127$i99 = 0, $$127$i99$us = 0, $$129$i = 0, $$129$i98 = 0, $$129$i98$us 
= 0, $$191 = 0, $$193 = 0, $$pre = 0, $$pre$phi155Z2D = 0, $$pre$phiZ2D = 0, 
$$pre154 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 
0, $106 = 0, $107 = 0;
+ var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 
= 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 
= 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0;
+ var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 
= 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 
= 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0;
+ var $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, $34 = 
0, $35 = 0, $36 = 0, $37 = 0;
+ var $38 = 0, $39 = 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, $53 = 0, $54 = 
0, $55 = 0, $56 = 0, $57 = 0;
+ var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, 
$65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, 
$73 = 0, $74 = 0, $75 = 0;
+ var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, 
$83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, 
$91 = 0, $92 = 0, $93 = 0;
+ var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond$i = 0, 
$exitcond$i104 = 0, $exitcond$i104$us = 0, $phitmp = 0, $phitmp94 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $6 = ((($5)) + 4|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($7|0)==(0|0);
+ if ($8) {
+  $$pre = ((($5)) + 8|0);
+  $$pre$phiZ2D = $$pre;
+  label = 5;
+ } else {
+  $9 = ((($5)) + 12|0);
+  $10 = HEAP32[$9>>2]|0;
+  $11 = ($10|0)<($4|0);
+  if ($11) {
+   $12 = ((($5)) + 8|0);
+   $13 = HEAP32[$12>>2]|0;
+   __gcry_mpi_free_limb_space($7,$13);
+   $$pre$phiZ2D = $12;
+   label = 5;
+  } else {
+   $23 = $7;
+  }
+ }
+ if ((label|0) == 5) {
+  $14 = $4 << 1;
+  HEAP32[$$pre$phiZ2D>>2] = $14;
+  $15 = (__gcry_is_secure($1)|0);
+  $16 = ($15|0)==(0);
+  if ($16) {
+   $17 = (__gcry_is_secure($3)|0);
+   $18 = ($17|0)!=(0);
+   $phitmp = $18&1;
+   $19 = $phitmp;
+  } else {
+   $19 = 1;
+  }
+  $20 = (__gcry_mpi_alloc_limb_space($14,$19)|0);
+  HEAP32[$6>>2] = $20;
+  $21 = ((($5)) + 12|0);
+  HEAP32[$21>>2] = $4;
+  $23 = $20;
+ }
+ $22 = ($4|0)<(16);
+ if ($22) {
+  _mul_n_basecase($0,$1,$3,$4);
+ } else {
+  _mul_n($0,$1,$3,$4,$23);
+ }
+ $24 = (($0) + ($4<<2)|0);
+ $25 = (($1) + ($4<<2)|0);
+ $26 = (($2) - ($4))|0;
+ $27 = ($26|0)<($4|0);
+ if ($27) {
+  $$1 = $24;$$191 = $25;$$193 = $26;
+ } else {
+  $28 = ((($5)) + 16|0);
+  $29 = HEAP32[$28>>2]|0;
+  $30 = ($29|0)==(0|0);
+  if ($30) {
+   $$pre154 = ((($5)) + 20|0);
+   $$pre$phi155Z2D = $$pre154;
+   label = 16;
+  } else {
+   $31 = ((($5)) + 24|0);
+   $32 = HEAP32[$31>>2]|0;
+   $33 = ($32|0)<($4|0);
+   if ($33) {
+    $34 = ((($5)) + 20|0);
+    $35 = HEAP32[$34>>2]|0;
+    __gcry_mpi_free_limb_space($29,$35);
+    $$pre$phi155Z2D = $34;
+    label = 16;
+   } else {
+    $140 = $29;
+   }
+  }
+  if ((label|0) == 16) {
+   $36 = $4 << 1;
+   HEAP32[$$pre$phi155Z2D>>2] = $36;
+   $37 = (__gcry_is_secure($25)|0);
+   $38 = ($37|0)==(0);
+   if ($38) {
+    $39 = (__gcry_is_secure($3)|0);
+    $40 = ($39|0)!=(0);
+    $phitmp94 = $40&1;
+    $41 = $phitmp94;
+   } else {
+    $41 = 1;
+   }
+   $42 = (__gcry_mpi_alloc_limb_space($36,$41)|0);
+   HEAP32[$28>>2] = $42;
+   $43 = ((($5)) + 24|0);
+   HEAP32[$43>>2] = $4;
+   $140 = $42;
+  }
+  $44 = (($4) + -1)|0;
+  $45 = ($44|0)==(0);
+  if ($22) {
+   $$0$us = $24;$$090$us = $25;$$092$us = $26;$46 = $140;
+   while(1) {
+    _mul_n_basecase($46,$$090$us,$3,$4);
+    $47 = HEAP32[$28>>2]|0;
+    $48 = (__gcry_mpih_add_n($$0$us,$$0$us,$47,$4)|0);
+    $49 = (($$0$us) + ($4<<2)|0);
+    $50 = HEAP32[$28>>2]|0;
+    $51 = (($50) + ($4<<2)|0);
+    $52 = ((($51)) + 4|0);
+    $53 = HEAP32[$51>>2]|0;
+    $54 = (($53) + ($48))|0;
+    $55 = ((($49)) + 4|0);
+    HEAP32[$49>>2] = $54;
+    $56 = ($54>>>0)<($53>>>0);
+    L31: do {
+     if ($56) {
+      if (!($45)) {
+       $$02637$i96$us = $52;$$02836$i97$us = $55;$70 = $44;
+       while(1) {
+        $57 = ((($$02637$i96$us)) + 4|0);
+        $58 = HEAP32[$$02637$i96$us>>2]|0;
+        $59 = (($58) + 1)|0;
+        $60 = ((($$02836$i97$us)) + 4|0);
+        HEAP32[$$02836$i97$us>>2] = $59;
+        $61 = ($59|0)==(0);
+        if (!($61)) {
+         $$1$i100$us = $70;$$127$i99$us = $57;$$129$i98$us = $60;
+         label = 26;
+         break L31;
+        }
+        $69 = (($70) + -1)|0;
+        $71 = ($69|0)==(0);
+        if ($71) {
+         break;
+        } else {
+         $$02637$i96$us = $57;$$02836$i97$us = $60;$70 = $69;
+        }
+       }
+      }
+     } else {
+      $$1$i100$us = $4;$$127$i99$us = $52;$$129$i98$us = $55;
+      label = 26;
+     }
+    } while(0);
+    if ((label|0) == 26) {
+     label = 0;
+     $62 = ($$129$i98$us|0)==($$127$i99$us|0);
+     if (!($62)) {
+      $63 = (($$1$i100$us) + -1)|0;
+      $64 = ($$1$i100$us|0)>(1);
+      if ($64) {
+       $$035$i103$us = 0;
+       while(1) {
+        $65 = (($$127$i99$us) + ($$035$i103$us<<2)|0);
+        $66 = HEAP32[$65>>2]|0;
+        $67 = (($$129$i98$us) + ($$035$i103$us<<2)|0);
+        HEAP32[$67>>2] = $66;
+        $68 = (($$035$i103$us) + 1)|0;
+        $exitcond$i104$us = ($68|0)==($63|0);
+        if ($exitcond$i104$us) {
+         break;
+        } else {
+         $$035$i103$us = $68;
+        }
+       }
+      }
+     }
+    }
+    $72 = (($$090$us) + ($4<<2)|0);
+    $73 = (($$092$us) - ($4))|0;
+    $74 = ($73|0)<($4|0);
+    if ($74) {
+     $$1 = $49;$$191 = $72;$$193 = $73;
+     break;
+    } else {
+     $$0$us = $49;$$090$us = $72;$$092$us = $73;$46 = $50;
+    }
+   }
+  } else {
+   $$0 = $24;$$090 = $25;$$092 = $26;$76 = $140;
+   while(1) {
+    $75 = HEAP32[$6>>2]|0;
+    _mul_n($76,$$090,$3,$4,$75);
+    $77 = HEAP32[$28>>2]|0;
+    $78 = (__gcry_mpih_add_n($$0,$$0,$77,$4)|0);
+    $79 = (($$0) + ($4<<2)|0);
+    $80 = HEAP32[$28>>2]|0;
+    $81 = (($80) + ($4<<2)|0);
+    $82 = ((($81)) + 4|0);
+    $83 = HEAP32[$81>>2]|0;
+    $84 = (($83) + ($78))|0;
+    $85 = ((($79)) + 4|0);
+    HEAP32[$79>>2] = $84;
+    $86 = ($84>>>0)<($83>>>0);
+    L47: do {
+     if ($86) {
+      if (!($45)) {
+       $$02637$i96 = $82;$$02836$i97 = $85;$88 = $44;
+       while(1) {
+        $90 = ((($$02637$i96)) + 4|0);
+        $91 = HEAP32[$$02637$i96>>2]|0;
+        $92 = (($91) + 1)|0;
+        $93 = ((($$02836$i97)) + 4|0);
+        HEAP32[$$02836$i97>>2] = $92;
+        $94 = ($92|0)==(0);
+        if (!($94)) {
+         $$1$i100 = $88;$$127$i99 = $90;$$129$i98 = $93;
+         label = 37;
+         break L47;
+        }
+        $87 = (($88) + -1)|0;
+        $89 = ($87|0)==(0);
+        if ($89) {
+         break;
+        } else {
+         $$02637$i96 = $90;$$02836$i97 = $93;$88 = $87;
+        }
+       }
+      }
+     } else {
+      $$1$i100 = $4;$$127$i99 = $82;$$129$i98 = $85;
+      label = 37;
+     }
+    } while(0);
+    if ((label|0) == 37) {
+     label = 0;
+     $95 = ($$129$i98|0)==($$127$i99|0);
+     if (!($95)) {
+      $96 = (($$1$i100) + -1)|0;
+      $97 = ($$1$i100|0)>(1);
+      if ($97) {
+       $$035$i103 = 0;
+       while(1) {
+        $98 = (($$127$i99) + ($$035$i103<<2)|0);
+        $99 = HEAP32[$98>>2]|0;
+        $100 = (($$129$i98) + ($$035$i103<<2)|0);
+        HEAP32[$100>>2] = $99;
+        $101 = (($$035$i103) + 1)|0;
+        $exitcond$i104 = ($101|0)==($96|0);
+        if ($exitcond$i104) {
+         break;
+        } else {
+         $$035$i103 = $101;
+        }
+       }
+      }
+     }
+    }
+    $102 = (($$090) + ($4<<2)|0);
+    $103 = (($$092) - ($4))|0;
+    $104 = ($103|0)<($4|0);
+    if ($104) {
+     $$1 = $79;$$191 = $102;$$193 = $103;
+     break;
+    } else {
+     $$0 = $79;$$090 = $102;$$092 = $103;$76 = $80;
+    }
+   }
+  }
+ }
+ $105 = ($$193|0)==(0);
+ if ($105) {
+  return;
+ }
+ $106 = ($$193|0)<(16);
+ if ($106) {
+  $107 = HEAP32[$6>>2]|0;
+  (__gcry_mpih_mul($107,$3,$4,$$191,$$193)|0);
+ } else {
+  $108 = HEAP32[$5>>2]|0;
+  $109 = ($108|0)==(0|0);
+  if ($109) {
+   $110 = (__gcry_xcalloc(1,28)|0);
+   HEAP32[$5>>2] = $110;
+   $112 = $110;
+  } else {
+   $112 = $108;
+  }
+  $111 = HEAP32[$6>>2]|0;
+  __gcry_mpih_mul_karatsuba_case($111,$3,$4,$$191,$$193,$112);
+ }
+ $113 = HEAP32[$6>>2]|0;
+ $114 = (__gcry_mpih_add_n($$1,$$1,$113,$4)|0);
+ $115 = (($$1) + ($4<<2)|0);
+ $116 = HEAP32[$6>>2]|0;
+ $117 = (($116) + ($4<<2)|0);
+ $118 = ((($117)) + 4|0);
+ $119 = HEAP32[$117>>2]|0;
+ $120 = (($119) + ($114))|0;
+ $121 = ((($115)) + 4|0);
+ HEAP32[$115>>2] = $120;
+ $122 = ($120>>>0)<($119>>>0);
+ L71: do {
+  if ($122) {
+   $123 = (($$193) + -1)|0;
+   $124 = ($123|0)==(0);
+   if ($124) {
+    return;
+   }
+   $$02637$i = $118;$$02836$i = $121;$126 = $123;
+   while(1) {
+    $128 = ((($$02637$i)) + 4|0);
+    $129 = HEAP32[$$02637$i>>2]|0;
+    $130 = (($129) + 1)|0;
+    $131 = ((($$02836$i)) + 4|0);
+    HEAP32[$$02836$i>>2] = $130;
+    $132 = ($130|0)==(0);
+    if (!($132)) {
+     $$1$i = $126;$$127$i = $128;$$129$i = $131;
+     break L71;
+    }
+    $125 = (($126) + -1)|0;
+    $127 = ($125|0)==(0);
+    if ($127) {
+     break;
+    } else {
+     $$02637$i = $128;$$02836$i = $131;$126 = $125;
+    }
+   }
+   return;
+  } else {
+   $$1$i = $$193;$$127$i = $118;$$129$i = $121;
+  }
+ } while(0);
+ $133 = ($$129$i|0)==($$127$i|0);
+ if ($133) {
+  return;
+ }
+ $134 = (($$1$i) + -1)|0;
+ $135 = ($$1$i|0)>(1);
+ if (!($135)) {
+  return;
+ }
+ $$035$i = 0;
+ while(1) {
+  $136 = (($$127$i) + ($$035$i<<2)|0);
+  $137 = HEAP32[$136>>2]|0;
+  $138 = (($$129$i) + ($$035$i<<2)|0);
+  HEAP32[$138>>2] = $137;
+  $139 = (($$035$i) + 1)|0;
+  $exitcond$i = ($139|0)==($134|0);
+  if ($exitcond$i) {
+   break;
+  } else {
+   $$035$i = $139;
+  }
+ }
+ return;
+}
+function __gcry_mpih_mul($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$06576 = 0, $$06674 = 0, $$067 = 0, $$07075 = 0, $$169 = 0, $$2 = 0, 
$$in$i = 0, $$pn = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 
= 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0;
+ var $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, $40 = 0, $41 = 0;
+ var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, 
$5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $6 = 0, $7 = 0, $8 = 0, $9 
= 0, $exitcond = 0, $exitcond81 = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $5 = sp;
+ $6 = (($0) + ($2<<2)|0);
+ $7 = ($4|0)<(16);
+ if (!($7)) {
+  $28 = (($6) + ($4<<2)|0);
+  $29 = ((($28)) + -4|0);
+  
;HEAP32[$5>>2]=0|0;HEAP32[$5+4>>2]=0|0;HEAP32[$5+8>>2]=0|0;HEAP32[$5+12>>2]=0|0;HEAP32[$5+16>>2]=0|0;HEAP32[$5+20>>2]=0|0;HEAP32[$5+24>>2]=0|0;
+  __gcry_mpih_mul_karatsuba_case($0,$1,$2,$3,$4,$5);
+  $30 = ((($5)) + 16|0);
+  $31 = HEAP32[$30>>2]|0;
+  $32 = ($31|0)==(0|0);
+  if (!($32)) {
+   $33 = ((($5)) + 20|0);
+   $34 = HEAP32[$33>>2]|0;
+   __gcry_mpi_free_limb_space($31,$34);
+  }
+  $35 = ((($5)) + 4|0);
+  $36 = HEAP32[$35>>2]|0;
+  $37 = ($36|0)==(0|0);
+  if (!($37)) {
+   $38 = ((($5)) + 8|0);
+   $39 = HEAP32[$38>>2]|0;
+   __gcry_mpi_free_limb_space($36,$39);
+  }
+  $40 = HEAP32[$5>>2]|0;
+  $41 = ($40|0)==(0|0);
+  if (!($41)) {
+   $$in$i = $40;
+   while(1) {
+    $42 = HEAP32[$$in$i>>2]|0;
+    $43 = ((($$in$i)) + 16|0);
+    $44 = HEAP32[$43>>2]|0;
+    $45 = ($44|0)==(0|0);
+    if (!($45)) {
+     $46 = ((($$in$i)) + 20|0);
+     $47 = HEAP32[$46>>2]|0;
+     __gcry_mpi_free_limb_space($44,$47);
+    }
+    $48 = ((($$in$i)) + 4|0);
+    $49 = HEAP32[$48>>2]|0;
+    $50 = ($49|0)==(0|0);
+    if (!($50)) {
+     $51 = ((($$in$i)) + 8|0);
+     $52 = HEAP32[$51>>2]|0;
+     __gcry_mpi_free_limb_space($49,$52);
+    }
+    __gcry_free($$in$i);
+    $53 = ($42|0)==(0|0);
+    if ($53) {
+     break;
+    } else {
+     $$in$i = $42;
+    }
+   }
+  }
+  $54 = HEAP32[$29>>2]|0;
+  $$169 = $54;
+  STACKTOP = sp;return ($$169|0);
+ }
+ $8 = ($4|0)==(0);
+ if ($8) {
+  $$169 = 0;
+  STACKTOP = sp;return ($$169|0);
+ }
+ $9 = HEAP32[$3>>2]|0;
+ $10 = ($9>>>0)<(2);
+ do {
+  if ($10) {
+   $11 = ($9|0)==(1);
+   $12 = ($2|0)>(0);
+   if (!($11)) {
+    if (!($12)) {
+     $$067 = 0;
+     break;
+    }
+    $17 = $2 << 2;
+    _memset(($0|0),0,($17|0))|0;
+    $$067 = 0;
+    break;
+   }
+   if ($12) {
+    $$06576 = 0;
+    while(1) {
+     $13 = (($1) + ($$06576<<2)|0);
+     $14 = HEAP32[$13>>2]|0;
+     $15 = (($0) + ($$06576<<2)|0);
+     HEAP32[$15>>2] = $14;
+     $16 = (($$06576) + 1)|0;
+     $exitcond81 = ($16|0)==($2|0);
+     if ($exitcond81) {
+      $$067 = 0;
+      break;
+     } else {
+      $$06576 = $16;
+     }
+    }
+   } else {
+    $$067 = 0;
+   }
+  } else {
+   $18 = (__gcry_mpih_mul_1($0,$1,$2,$9)|0);
+   $$067 = $18;
+  }
+ } while(0);
+ HEAP32[$6>>2] = $$067;
+ $19 = ($4|0)>(1);
+ if (!($19)) {
+  $$169 = $$067;
+  STACKTOP = sp;return ($$169|0);
+ }
+ $$06674 = 1;$$pn = $0;
+ while(1) {
+  $$07075 = ((($$pn)) + 4|0);
+  $20 = (($3) + ($$06674<<2)|0);
+  $21 = HEAP32[$20>>2]|0;
+  $22 = ($21>>>0)<(2);
+  if ($22) {
+   $23 = ($21|0)==(1);
+   if ($23) {
+    $24 = (__gcry_mpih_add_n($$07075,$$07075,$1,$2)|0);
+    $$2 = $24;
+   } else {
+    $$2 = 0;
+   }
+  } else {
+   $25 = (__gcry_mpih_addmul_1($$07075,$1,$2,$21)|0);
+   $$2 = $25;
+  }
+  $26 = (($$07075) + ($2<<2)|0);
+  HEAP32[$26>>2] = $$2;
+  $27 = (($$06674) + 1)|0;
+  $exitcond = ($27|0)==($4|0);
+  if ($exitcond) {
+   $$169 = $$2;
+   break;
+  } else {
+   $$06674 = $27;$$pn = $$07075;
+  }
+ }
+ STACKTOP = sp;return ($$169|0);
+}
+function __gcry_mpih_release_karatsuba_ctx($0) {
+ $0 = $0|0;
+ var $$in = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, 
$24 = 0, $3 = 0, $4 = 0;
+ var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 16|0);
+ $2 = HEAP32[$1>>2]|0;
+ $3 = ($2|0)==(0|0);
+ if (!($3)) {
+  $4 = ((($0)) + 20|0);
+  $5 = HEAP32[$4>>2]|0;
+  __gcry_mpi_free_limb_space($2,$5);
+ }
+ $6 = ((($0)) + 4|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($7|0)==(0|0);
+ if (!($8)) {
+  $9 = ((($0)) + 8|0);
+  $10 = HEAP32[$9>>2]|0;
+  __gcry_mpi_free_limb_space($7,$10);
+ }
+ $11 = HEAP32[$0>>2]|0;
+ $12 = ($11|0)==(0|0);
+ if ($12) {
+  return;
+ }
+ $$in = $11;
+ while(1) {
+  $13 = HEAP32[$$in>>2]|0;
+  $14 = ((($$in)) + 16|0);
+  $15 = HEAP32[$14>>2]|0;
+  $16 = ($15|0)==(0|0);
+  if (!($16)) {
+   $17 = ((($$in)) + 20|0);
+   $18 = HEAP32[$17>>2]|0;
+   __gcry_mpi_free_limb_space($15,$18);
+  }
+  $19 = ((($$in)) + 4|0);
+  $20 = HEAP32[$19>>2]|0;
+  $21 = ($20|0)==(0|0);
+  if (!($21)) {
+   $22 = ((($$in)) + 8|0);
+   $23 = HEAP32[$22>>2]|0;
+   __gcry_mpi_free_limb_space($20,$23);
+  }
+  __gcry_free($$in);
+  $24 = ($13|0)==(0|0);
+  if ($24) {
+   break;
+  } else {
+   $$in = $13;
+  }
+ }
+ return;
+}
+function __gcry_mpih_rshift($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0$lcssa = 0, $$034$lcssa = 0, $$03435 = 0, $$036 = 0, $10 = 0, $11 = 0, 
$12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $4 = 0, $5 = 0, $6 = 0, 
$7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ $4 = ((($0)) + -4|0);
+ $5 = (32 - ($3))|0;
+ $6 = HEAP32[$1>>2]|0;
+ $7 = $6 << $5;
+ $8 = ($2|0)>(1);
+ if ($8) {
+  $$03435 = $6;$$036 = 1;
+  while(1) {
+   $9 = (($1) + ($$036<<2)|0);
+   $10 = HEAP32[$9>>2]|0;
+   $11 = $$03435 >>> $3;
+   $12 = $10 << $5;
+   $13 = $12 | $11;
+   $14 = (($4) + ($$036<<2)|0);
+   HEAP32[$14>>2] = $13;
+   $15 = (($$036) + 1)|0;
+   $exitcond = ($15|0)==($2|0);
+   if ($exitcond) {
+    $$0$lcssa = $2;$$034$lcssa = $10;
+    break;
+   } else {
+    $$03435 = $10;$$036 = $15;
+   }
+  }
+ } else {
+  $$0$lcssa = 1;$$034$lcssa = $6;
+ }
+ $16 = $$034$lcssa >>> $3;
+ $17 = (($4) + ($$0$lcssa<<2)|0);
+ HEAP32[$17>>2] = $16;
+ return ($7|0);
+}
+function __gcry_mpih_sub_n($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$031 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $4 = 0, $5 = 0, $6 = 0, 
$7 = 0, $8 = 0, $9 = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (0 - ($3))|0;
+ $5 = (($1) + ($3<<2)|0);
+ $6 = (($2) + ($3<<2)|0);
+ $7 = (($0) + ($3<<2)|0);
+ $$0 = $4;$$031 = 0;
+ while(1) {
+  $8 = (($6) + ($$0<<2)|0);
+  $9 = HEAP32[$8>>2]|0;
+  $10 = (($5) + ($$0<<2)|0);
+  $11 = HEAP32[$10>>2]|0;
+  $12 = (($9) + ($$031))|0;
+  $13 = ($12>>>0)<($$031>>>0);
+  $14 = $13&1;
+  $15 = (($11) - ($12))|0;
+  $16 = ($15>>>0)>($11>>>0);
+  $17 = $16&1;
+  $18 = (($17) + ($14))|0;
+  $19 = (($7) + ($$0<<2)|0);
+  HEAP32[$19>>2] = $15;
+  $20 = (($$0) + 1)|0;
+  $21 = ($20|0)==(0);
+  if ($21) {
+   break;
+  } else {
+   $$0 = $20;$$031 = $18;
+  }
+ }
+ return ($18|0);
+}
+function __gcry_mpi_get_hw_config() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return ((15041)|0);
+}
+function __gcry_mpi_init() {
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 
= 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 
= 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, 
$34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp 
= 0;
+ sp = STACKTOP;
+ $0 = (__gcry_xmalloc(20)|0);
+ $1 = (__gcry_xmalloc(4)|0);
+ $2 = ((($0)) + 16|0);
+ HEAP32[$2>>2] = $1;
+ HEAP32[$0>>2] = 1;
+ $3 = ((($0)) + 4|0);
+ $4 = ((($0)) + 8|0);
+ $5 = ((($0)) + 12|0);
+ HEAP32[$1>>2] = 0;
+ HEAP32[$3>>2] = 0;
+ HEAP32[$4>>2] = 0;
+ HEAP32[17788] = $0;
+ HEAP32[$5>>2] = 48;
+ $6 = (__gcry_xmalloc(20)|0);
+ $7 = (__gcry_xmalloc(4)|0);
+ $8 = ((($6)) + 16|0);
+ HEAP32[$8>>2] = $7;
+ HEAP32[$6>>2] = 1;
+ $9 = ((($6)) + 4|0);
+ $10 = ((($6)) + 8|0);
+ $11 = ((($6)) + 12|0);
+ HEAP32[$7>>2] = 1;
+ HEAP32[$9>>2] = 1;
+ HEAP32[$10>>2] = 0;
+ HEAP32[(71156)>>2] = $6;
+ HEAP32[$11>>2] = 48;
+ $12 = (__gcry_xmalloc(20)|0);
+ $13 = (__gcry_xmalloc(4)|0);
+ $14 = ((($12)) + 16|0);
+ HEAP32[$14>>2] = $13;
+ HEAP32[$12>>2] = 1;
+ $15 = ((($12)) + 4|0);
+ $16 = ((($12)) + 8|0);
+ $17 = ((($12)) + 12|0);
+ HEAP32[$13>>2] = 2;
+ HEAP32[$15>>2] = 1;
+ HEAP32[$16>>2] = 0;
+ HEAP32[(71160)>>2] = $12;
+ HEAP32[$17>>2] = 48;
+ $18 = (__gcry_xmalloc(20)|0);
+ $19 = (__gcry_xmalloc(4)|0);
+ $20 = ((($18)) + 16|0);
+ HEAP32[$20>>2] = $19;
+ HEAP32[$18>>2] = 1;
+ $21 = ((($18)) + 4|0);
+ $22 = ((($18)) + 8|0);
+ $23 = ((($18)) + 12|0);
+ HEAP32[$19>>2] = 3;
+ HEAP32[$21>>2] = 1;
+ HEAP32[$22>>2] = 0;
+ HEAP32[(71164)>>2] = $18;
+ HEAP32[$23>>2] = 48;
+ $24 = (__gcry_xmalloc(20)|0);
+ $25 = (__gcry_xmalloc(4)|0);
+ $26 = ((($24)) + 16|0);
+ HEAP32[$26>>2] = $25;
+ HEAP32[$24>>2] = 1;
+ $27 = ((($24)) + 4|0);
+ $28 = ((($24)) + 8|0);
+ $29 = ((($24)) + 12|0);
+ HEAP32[$25>>2] = 4;
+ HEAP32[$27>>2] = 1;
+ HEAP32[$28>>2] = 0;
+ HEAP32[(71168)>>2] = $24;
+ HEAP32[$29>>2] = 48;
+ $30 = (__gcry_xmalloc(20)|0);
+ $31 = (__gcry_xmalloc(4)|0);
+ $32 = ((($30)) + 16|0);
+ HEAP32[$32>>2] = $31;
+ HEAP32[$30>>2] = 1;
+ $33 = ((($30)) + 4|0);
+ $34 = ((($30)) + 8|0);
+ $35 = ((($30)) + 12|0);
+ HEAP32[$31>>2] = 8;
+ HEAP32[$33>>2] = 1;
+ HEAP32[$34>>2] = 0;
+ HEAP32[(71172)>>2] = $30;
+ HEAP32[$35>>2] = 48;
+ return 0;
+}
+function __gcry_mpi_alloc_set_ui($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_xmalloc(20)|0);
+ $2 = (__gcry_xmalloc(4)|0);
+ $3 = ((($1)) + 16|0);
+ HEAP32[$3>>2] = $2;
+ HEAP32[$1>>2] = 1;
+ $4 = ((($1)) + 4|0);
+ $5 = ((($1)) + 8|0);
+ $6 = ((($1)) + 12|0);
+ HEAP32[$6>>2] = 0;
+ HEAP32[$2>>2] = $0;
+ $7 = ($0|0)!=(0);
+ $8 = $7&1;
+ HEAP32[$4>>2] = $8;
+ HEAP32[$5>>2] = 0;
+ return ($1|0);
+}
+function __gcry_mpi_alloc($0) {
+ $0 = $0|0;
+ var $$op$i = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_xmalloc(20)|0);
+ $2 = ($0|0)==(0);
+ if ($2) {
+  $5 = 0;
+ } else {
+  $$op$i = $0 << 2;
+  $3 = (__gcry_xmalloc($$op$i)|0);
+  $5 = $3;
+ }
+ $4 = ((($1)) + 16|0);
+ HEAP32[$4>>2] = $5;
+ HEAP32[$1>>2] = $0;
+ $6 = ((($1)) + 4|0);
+ HEAP32[$6>>2] = 0;
+ $7 = ((($1)) + 8|0);
+ HEAP32[$7>>2] = 0;
+ $8 = ((($1)) + 12|0);
+ HEAP32[$8>>2] = 0;
+ return ($1|0);
+}
+function __gcry_mpi_alloc_limb_space($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$op = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ $2 = ($0|0)!=(0);
+ $$op = $0 << 2;
+ $3 = $2 ? $$op : 4;
+ $4 = ($1|0)==(0);
+ if ($4) {
+  $6 = (__gcry_xmalloc($3)|0);
+  $7 = $6;
+ } else {
+  $5 = (__gcry_xmalloc_secure($3)|0);
+  $7 = $5;
+ }
+ if ($2) {
+  return ($7|0);
+ }
+ HEAP32[$7>>2] = 0;
+ return ($7|0);
+}
+function __gcry_mpi_alloc_secure($0) {
+ $0 = $0|0;
+ var $$op$i = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gcry_xmalloc(20)|0);
+ $2 = ($0|0)==(0);
+ if ($2) {
+  $5 = 0;
+ } else {
+  $$op$i = $0 << 2;
+  $3 = (__gcry_xmalloc_secure($$op$i)|0);
+  $5 = $3;
+ }
+ $4 = ((($1)) + 16|0);
+ HEAP32[$4>>2] = $5;
+ HEAP32[$1>>2] = $0;
+ $6 = ((($1)) + 12|0);
+ HEAP32[$6>>2] = 1;
+ $7 = ((($1)) + 4|0);
+ HEAP32[$7>>2] = 0;
+ $8 = ((($1)) + 8|0);
+ HEAP32[$8>>2] = 0;
+ return ($1|0);
+}
+function __gcry_mpi_free_limb_space($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0$lcssa = 0, $$036$lcssa = 0, $$03644 = 0, $$045 = 0, $$1 = 0, $$137 = 
0, $$2 = 0, $$238 = 0, $$33942 = 0, $$343 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 
0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
+ var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, 
$27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 
= 0, $9 = 0, $scevgep = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($0|0)==(0|0);
+ if ($2) {
+  return;
+ }
+ $3 = $1 << 2;
+ $4 = ($3|0)==(0);
+ if (!($4)) {
+  $5 = $0;
+  $6 = $5 & 7;
+  $7 = ($6|0)==(0);
+  if ($7) {
+   $$0$lcssa = $0;$$036$lcssa = $3;
+  } else {
+   $$03644 = $3;$$045 = $0;
+   while(1) {
+    HEAP8[$$045>>0] = 0;
+    $8 = ((($$045)) + 1|0);
+    $9 = (($$03644) + -1)|0;
+    $10 = $8;
+    $11 = $10 & 7;
+    $12 = ($11|0)!=(0);
+    $13 = ($9|0)!=(0);
+    $14 = $13 & $12;
+    if ($14) {
+     $$03644 = $9;$$045 = $8;
+    } else {
+     $$0$lcssa = $8;$$036$lcssa = $9;
+     break;
+    }
+   }
+  }
+  $15 = ($$036$lcssa>>>0)<(8);
+  if ($15) {
+   $$2 = $$0$lcssa;$$238 = $$036$lcssa;
+  } else {
+   $16 = (($$036$lcssa) + -8)|0;
+   $17 = $16 & -8;
+   $18 = (($17) + 8)|0;
+   $$1 = $$0$lcssa;$$137 = $$036$lcssa;
+   while(1) {
+    $19 = $$1;
+    $20 = $19;
+    HEAP32[$20>>2] = 0;
+    $21 = (($19) + 4)|0;
+    $22 = $21;
+    HEAP32[$22>>2] = 0;
+    $23 = (($$137) + -8)|0;
+    $24 = ((($$1)) + 8|0);
+    $25 = ($23>>>0)>(7);
+    if ($25) {
+     $$1 = $24;$$137 = $23;
+    } else {
+     break;
+    }
+   }
+   $26 = (($16) - ($17))|0;
+   $scevgep = (($$0$lcssa) + ($18)|0);
+   $$2 = $scevgep;$$238 = $26;
+  }
+  $27 = ($$238|0)==(0);
+  if (!($27)) {
+   $$33942 = $$238;$$343 = $$2;
+   while(1) {
+    HEAP8[$$343>>0] = 0;
+    $28 = ((($$343)) + 1|0);
+    $29 = (($$33942) + -1)|0;
+    $30 = ($29|0)==(0);
+    if ($30) {
+     break;
+    } else {
+     $$33942 = $29;$$343 = $28;
+    }
+   }
+  }
+ }
+ __gcry_free($0);
+ return;
+}
+function __gcry_mpi_assign_limb_space($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0$lcssa$i = 0, $$036$lcssa$i = 0, $$03644$i = 0, $$045$i = 0, $$1$i = 
0, $$137$i = 0, $$2$i = 0, $$238$i = 0, $$33942$i = 0, $$343$i = 0, $10 = 0, 
$11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
+ var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, 
$28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, 
$5 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, $scevgep$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($0)) + 16|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ($4|0)==(0|0);
+ if ($5) {
+  HEAP32[$3>>2] = $1;
+  HEAP32[$0>>2] = $2;
+  return;
+ }
+ $6 = HEAP32[$0>>2]|0;
+ $7 = $6 << 2;
+ $8 = ($7|0)==(0);
+ if (!($8)) {
+  $9 = $4;
+  $10 = $9 & 7;
+  $11 = ($10|0)==(0);
+  if ($11) {
+   $$0$lcssa$i = $4;$$036$lcssa$i = $7;
+  } else {
+   $$03644$i = $7;$$045$i = $4;
+   while(1) {
+    HEAP8[$$045$i>>0] = 0;
+    $12 = ((($$045$i)) + 1|0);
+    $13 = (($$03644$i) + -1)|0;
+    $14 = $12;
+    $15 = $14 & 7;
+    $16 = ($15|0)!=(0);
+    $17 = ($13|0)!=(0);
+    $18 = $17 & $16;
+    if ($18) {
+     $$03644$i = $13;$$045$i = $12;
+    } else {
+     $$0$lcssa$i = $12;$$036$lcssa$i = $13;
+     break;
+    }
+   }
+  }
+  $19 = ($$036$lcssa$i>>>0)<(8);
+  if ($19) {
+   $$2$i = $$0$lcssa$i;$$238$i = $$036$lcssa$i;
+  } else {
+   $20 = (($$036$lcssa$i) + -8)|0;
+   $21 = $20 & -8;
+   $$1$i = $$0$lcssa$i;$$137$i = $$036$lcssa$i;
+   while(1) {
+    $22 = $$1$i;
+    $23 = $22;
+    HEAP32[$23>>2] = 0;
+    $24 = (($22) + 4)|0;
+    $25 = $24;
+    HEAP32[$25>>2] = 0;
+    $26 = (($$137$i) + -8)|0;
+    $27 = ((($$1$i)) + 8|0);
+    $28 = ($26>>>0)>(7);
+    if ($28) {
+     $$1$i = $27;$$137$i = $26;
+    } else {
+     break;
+    }
+   }
+   $29 = (($21) + 8)|0;
+   $30 = (($20) - ($21))|0;
+   $scevgep$i = (($$0$lcssa$i) + ($29)|0);
+   $$2$i = $scevgep$i;$$238$i = $30;
+  }
+  $31 = ($$238$i|0)==(0);
+  if (!($31)) {
+   $$33942$i = $$238$i;$$343$i = $$2$i;
+   while(1) {
+    HEAP8[$$343$i>>0] = 0;
+    $32 = ((($$343$i)) + 1|0);
+    $33 = (($$33942$i) + -1)|0;
+    $34 = ($33|0)==(0);
+    if ($34) {
+     break;
+    } else {
+     $$33942$i = $33;$$343$i = $32;
+    }
+   }
+  }
+ }
+ __gcry_free($4);
+ HEAP32[$3>>2] = $1;
+ HEAP32[$0>>2] = $2;
+ return;
+}
+function __gcry_mpi_resize($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$024 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, 
$25 = 0, $26 = 0, $27 = 0;
+ var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $scevgep = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = HEAP32[$0>>2]|0;
+ $3 = ($2>>>0)<($1>>>0);
+ if (!($3)) {
+  $4 = ((($0)) + 4|0);
+  $5 = HEAP32[$4>>2]|0;
+  $6 = ($5>>>0)<($2>>>0);
+  if (!($6)) {
+   return;
+  }
+  $7 = ((($0)) + 16|0);
+  $8 = HEAP32[$7>>2]|0;
+  $$024 = $5;
+  while(1) {
+   $9 = (($8) + ($$024<<2)|0);
+   HEAP32[$9>>2] = 0;
+   $10 = (($$024) + 1)|0;
+   $11 = HEAP32[$0>>2]|0;
+   $12 = ($10>>>0)<($11>>>0);
+   if ($12) {
+    $$024 = $10;
+   } else {
+    break;
+   }
+  }
+  return;
+ }
+ $13 = ((($0)) + 16|0);
+ $14 = HEAP32[$13>>2]|0;
+ $15 = ($14|0)==(0|0);
+ do {
+  if ($15) {
+   $22 = ((($0)) + 12|0);
+   $23 = HEAP32[$22>>2]|0;
+   $24 = $23 & 1;
+   $25 = ($24|0)==(0);
+   if ($25) {
+    $27 = (__gcry_xcalloc($1,4)|0);
+    HEAP32[$13>>2] = $27;
+    break;
+   } else {
+    $26 = (__gcry_xcalloc_secure($1,4)|0);
+    HEAP32[$13>>2] = $26;
+    break;
+   }
+  } else {
+   $16 = $1 << 2;
+   $17 = (__gcry_xrealloc($14,$16)|0);
+   HEAP32[$13>>2] = $17;
+   $18 = HEAP32[$0>>2]|0;
+   $19 = ($18>>>0)<($1>>>0);
+   if ($19) {
+    $scevgep = (($17) + ($18<<2)|0);
+    $20 = $18 << 2;
+    $21 = (($16) - ($20))|0;
+    _memset(($scevgep|0),0,($21|0))|0;
+   }
+  }
+ } while(0);
+ HEAP32[$0>>2] = $1;
+ return;
+}
+function __gcry_mpi_clear($0) {
+ $0 = $0|0;
+ var $$pre = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $1 = ($0|0)==(0|0);
+ $$pre = ((($0)) + 12|0);
+ if (!($1)) {
+  $2 = HEAP32[$$pre>>2]|0;
+  $3 = $2 & 16;
+  $4 = ($3|0)==(0);
+  if (!($4)) {
+   __gcry_log_info(64098,$vararg_buffer);
+   STACKTOP = sp;return;
+  }
+ }
+ $5 = ((($0)) + 4|0);
+ HEAP32[$5>>2] = 0;
+ HEAP32[$$pre>>2] = 0;
+ STACKTOP = sp;return;
+}
+function __gcry_mpi_immutable_failed() {
+ var $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ __gcry_log_info(64098,$vararg_buffer);
+ STACKTOP = sp;return;
+}
+function __gcry_mpi_free($0) {
+ $0 = $0|0;
+ var $$0$lcssa$i = 0, $$036$lcssa$i = 0, $$03644$i = 0, $$045$i = 0, $$1$i = 
0, $$137$i = 0, $$2$i = 0, $$238$i = 0, $$33942$i = 0, $$343$i = 0, $1 = 0, $10 
= 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
+ var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, 
$26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, 
$34 = 0, $35 = 0, $36 = 0;
+ var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 
= 0, $7 = 0, $8 = 0, $9 = 0, $scevgep$i = 0, $vararg_buffer = 0, label = 0, sp 
= 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  STACKTOP = sp;return;
+ }
+ $2 = ((($0)) + 12|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = $3 & 32;
+ $5 = ($4|0)==(0);
+ if (!($5)) {
+  STACKTOP = sp;return;
+ }
+ $6 = $3 & 4;
+ $7 = ($6|0)==(0);
+ $8 = ((($0)) + 16|0);
+ $9 = HEAP32[$8>>2]|0;
+ if ($7) {
+  $10 = ($9|0)==(0|0);
+  if (!($10)) {
+   $11 = HEAP32[$0>>2]|0;
+   $12 = $11 << 2;
+   $13 = ($12|0)==(0);
+   if (!($13)) {
+    $14 = $9;
+    $15 = $14 & 7;
+    $16 = ($15|0)==(0);
+    if ($16) {
+     $$0$lcssa$i = $9;$$036$lcssa$i = $12;
+    } else {
+     $$03644$i = $12;$$045$i = $9;
+     while(1) {
+      HEAP8[$$045$i>>0] = 0;
+      $17 = ((($$045$i)) + 1|0);
+      $18 = (($$03644$i) + -1)|0;
+      $19 = $17;
+      $20 = $19 & 7;
+      $21 = ($20|0)!=(0);
+      $22 = ($18|0)!=(0);
+      $23 = $22 & $21;
+      if ($23) {
+       $$03644$i = $18;$$045$i = $17;
+      } else {
+       $$0$lcssa$i = $17;$$036$lcssa$i = $18;
+       break;
+      }
+     }
+    }
+    $24 = ($$036$lcssa$i>>>0)<(8);
+    if ($24) {
+     $$2$i = $$0$lcssa$i;$$238$i = $$036$lcssa$i;
+    } else {
+     $25 = (($$036$lcssa$i) + -8)|0;
+     $26 = $25 & -8;
+     $$1$i = $$0$lcssa$i;$$137$i = $$036$lcssa$i;
+     while(1) {
+      $27 = $$1$i;
+      $28 = $27;
+      HEAP32[$28>>2] = 0;
+      $29 = (($27) + 4)|0;
+      $30 = $29;
+      HEAP32[$30>>2] = 0;
+      $31 = (($$137$i) + -8)|0;
+      $32 = ((($$1$i)) + 8|0);
+      $33 = ($31>>>0)>(7);
+      if ($33) {
+       $$1$i = $32;$$137$i = $31;
+      } else {
+       break;
+      }
+     }
+     $34 = (($26) + 8)|0;
+     $35 = (($25) - ($26))|0;
+     $scevgep$i = (($$0$lcssa$i) + ($34)|0);
+     $$2$i = $scevgep$i;$$238$i = $35;
+    }
+    $36 = ($$238$i|0)==(0);
+    if (!($36)) {
+     $$33942$i = $$238$i;$$343$i = $$2$i;
+     while(1) {
+      HEAP8[$$343$i>>0] = 0;
+      $37 = ((($$343$i)) + 1|0);
+      $38 = (($$33942$i) + -1)|0;
+      $39 = ($38|0)==(0);
+      if ($39) {
+       break;
+      } else {
+       $$33942$i = $38;$$343$i = $37;
+      }
+     }
+    }
+   }
+   __gcry_free($9);
+  }
+ } else {
+  __gcry_free($9);
+ }
+ $40 = HEAP32[$2>>2]|0;
+ $41 = $40 & -3864;
+ $42 = ($41|0)==(0);
+ if (!($42)) {
+  __gcry_log_bug(64142,$vararg_buffer);
+  // unreachable;
+ }
+ __gcry_free($0);
+ STACKTOP = sp;return;
+}
+function __gcry_mpi_set_opaque($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0$lcssa$i = 0, $$01819 = 0, $$01820 = 0, $$01821 = 0, $$036$lcssa$i = 
0, $$03644$i = 0, $$045$i = 0, $$1$i = 0, $$137$i = 0, $$2$i = 0, $$238$i = 0, 
$$33942$i = 0, $$343$i = 0, $$pre = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 
= 0, $15 = 0;
+ var $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, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0;
+ var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, 
$42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0;
+ var $53 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $scevgep$i = 0, $vararg_buffer = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $3 = ($0|0)==(0|0);
+ if ($3) {
+  $4 = (__gcry_xmalloc(20)|0);
+  $5 = ($4|0)==(0|0);
+  
;HEAP32[$4>>2]=0|0;HEAP32[$4+4>>2]=0|0;HEAP32[$4+8>>2]=0|0;HEAP32[$4+12>>2]=0|0;HEAP32[$4+16>>2]=0|0;
+  if ($5) {
+   $$pre = HEAP32[(12)>>2]|0;
+   $$01820 = 0;$12 = $$pre;
+  } else {
+   $$01819 = $4;
+   label = 4;
+  }
+ } else {
+  $$01819 = $0;
+  label = 4;
+ }
+ if ((label|0) == 4) {
+  $6 = ((($$01819)) + 12|0);
+  $7 = HEAP32[$6>>2]|0;
+  $8 = $7 & 16;
+  $9 = ($8|0)==(0);
+  if ($9) {
+   $$01820 = $$01819;$12 = $7;
+  } else {
+   __gcry_log_info(64098,$vararg_buffer);
+   $$01821 = $$01819;
+   STACKTOP = sp;return ($$01821|0);
+  }
+ }
+ $10 = ((($$01820)) + 12|0);
+ $11 = $12 & 4;
+ $13 = ($11|0)==(0);
+ $14 = ((($$01820)) + 16|0);
+ $15 = HEAP32[$14>>2]|0;
+ if ($13) {
+  $16 = ($15|0)==(0|0);
+  if (!($16)) {
+   $17 = HEAP32[$$01820>>2]|0;
+   $18 = $17 << 2;
+   $19 = ($18|0)==(0);
+   if (!($19)) {
+    $20 = $15;
+    $21 = $20 & 7;
+    $22 = ($21|0)==(0);
+    if ($22) {
+     $$0$lcssa$i = $15;$$036$lcssa$i = $18;
+    } else {
+     $$03644$i = $18;$$045$i = $15;
+     while(1) {
+      HEAP8[$$045$i>>0] = 0;
+      $23 = ((($$045$i)) + 1|0);
+      $24 = (($$03644$i) + -1)|0;
+      $25 = $23;
+      $26 = $25 & 7;
+      $27 = ($26|0)!=(0);
+      $28 = ($24|0)!=(0);
+      $29 = $28 & $27;
+      if ($29) {
+       $$03644$i = $24;$$045$i = $23;
+      } else {
+       $$0$lcssa$i = $23;$$036$lcssa$i = $24;
+       break;
+      }
+     }
+    }
+    $30 = ($$036$lcssa$i>>>0)<(8);
+    if ($30) {
+     $$2$i = $$0$lcssa$i;$$238$i = $$036$lcssa$i;
+    } else {
+     $31 = (($$036$lcssa$i) + -8)|0;
+     $32 = $31 & -8;
+     $$1$i = $$0$lcssa$i;$$137$i = $$036$lcssa$i;
+     while(1) {
+      $33 = $$1$i;
+      $34 = $33;
+      HEAP32[$34>>2] = 0;
+      $35 = (($33) + 4)|0;
+      $36 = $35;
+      HEAP32[$36>>2] = 0;
+      $37 = (($$137$i) + -8)|0;
+      $38 = ((($$1$i)) + 8|0);
+      $39 = ($37>>>0)>(7);
+      if ($39) {
+       $$1$i = $38;$$137$i = $37;
+      } else {
+       break;
+      }
+     }
+     $40 = (($32) + 8)|0;
+     $41 = (($31) - ($32))|0;
+     $scevgep$i = (($$0$lcssa$i) + ($40)|0);
+     $$2$i = $scevgep$i;$$238$i = $41;
+    }
+    $42 = ($$238$i|0)==(0);
+    if (!($42)) {
+     $$33942$i = $$238$i;$$343$i = $$2$i;
+     while(1) {
+      HEAP8[$$343$i>>0] = 0;
+      $43 = ((($$343$i)) + 1|0);
+      $44 = (($$33942$i) + -1)|0;
+      $45 = ($44|0)==(0);
+      if ($45) {
+       break;
+      } else {
+       $$33942$i = $44;$$343$i = $43;
+      }
+     }
+    }
+   }
+   __gcry_free($15);
+  }
+ } else {
+  __gcry_free($15);
+ }
+ HEAP32[$14>>2] = $1;
+ HEAP32[$$01820>>2] = 0;
+ $46 = ((($$01820)) + 4|0);
+ HEAP32[$46>>2] = 0;
+ $47 = ((($$01820)) + 8|0);
+ HEAP32[$47>>2] = $2;
+ $48 = HEAP32[$10>>2]|0;
+ $49 = $48 & 3840;
+ $50 = $49 | 4;
+ HEAP32[$10>>2] = $50;
+ $51 = (__gcry_is_secure($1)|0);
+ $52 = ($51|0)==(0);
+ if ($52) {
+  $$01821 = $$01820;
+  STACKTOP = sp;return ($$01821|0);
+ }
+ $53 = $49 | 5;
+ HEAP32[$10>>2] = $53;
+ $$01821 = $$01820;
+ STACKTOP = sp;return ($$01821|0);
+}
+function __gcry_mpi_set_opaque_copy($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 
0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (($2) + 7)|0;
+ $4 = $3 >>> 3;
+ $5 = (__gcry_is_secure($1)|0);
+ $6 = ($5|0)==(0);
+ if ($6) {
+  $8 = (__gcry_malloc($4)|0);
+  $10 = $8;
+ } else {
+  $7 = (__gcry_malloc_secure($4)|0);
+  $10 = $7;
+ }
+ $9 = ($10|0)==(0|0);
+ if ($9) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ _memcpy(($10|0),($1|0),($4|0))|0;
+ $11 = (__gcry_mpi_set_opaque($0,$10,$2)|0);
+ $$0 = $11;
+ return ($$0|0);
+}
+function __gcry_mpi_get_opaque($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $2 = ((($0)) + 12|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = $3 & 4;
+ $5 = ($4|0)==(0);
+ if ($5) {
+  __gcry_log_bug(64174,$vararg_buffer);
+  // unreachable;
+ }
+ $6 = ($1|0)==(0|0);
+ if (!($6)) {
+  $7 = ((($0)) + 8|0);
+  $8 = HEAP32[$7>>2]|0;
+  HEAP32[$1>>2] = $8;
+ }
+ $9 = ((($0)) + 16|0);
+ $10 = HEAP32[$9>>2]|0;
+ STACKTOP = sp;return ($10|0);
+}
+function __gcry_mpi_get_opaque_copy($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, 
$4 = 0, $5 = 0, $6 = 0;
+ var $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $2 = ((($0)) + 12|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = $3 & 4;
+ $5 = ($4|0)==(0);
+ if ($5) {
+  __gcry_log_bug(64174,$vararg_buffer);
+  // unreachable;
+ }
+ $6 = ($1|0)==(0|0);
+ if ($6) {
+  $7 = ((($0)) + 16|0);
+  $8 = HEAP32[$7>>2]|0;
+  $15 = 0;$17 = $8;
+ } else {
+  $9 = ((($0)) + 8|0);
+  $10 = HEAP32[$9>>2]|0;
+  HEAP32[$1>>2] = $10;
+  $11 = ((($0)) + 16|0);
+  $12 = HEAP32[$11>>2]|0;
+  $13 = ($12|0)==(0|0);
+  if ($13) {
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  } else {
+   $15 = $10;$17 = $12;
+  }
+ }
+ $14 = (($15) + 7)|0;
+ $16 = $14 >>> 3;
+ $18 = (__gcry_is_secure($17)|0);
+ $19 = ($18|0)==(0);
+ if ($19) {
+  $21 = (__gcry_malloc($16)|0);
+  $23 = $21;
+ } else {
+  $20 = (__gcry_malloc_secure($16)|0);
+  $23 = $20;
+ }
+ $22 = ($23|0)==(0|0);
+ if ($22) {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ _memcpy(($23|0),($17|0),($16|0))|0;
+ $$0 = $23;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_mpi_copy($0) {
+ $0 = $0|0;
+ var $$035 = 0, $$038 = 0, $$op$i$i36 = 0, $$pre = 0, $$pre$phi39Z2D = 0, 
$$pre$phi41Z2D = 0, $$pre$phi43Z2D = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, 
$12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0;
+ var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, 
$28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0;
+ var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, 
$46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0;
+ var $57 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  $$035 = 0;
+  return ($$035|0);
+ }
+ $2 = ((($0)) + 12|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = $3 & 4;
+ $5 = ($4|0)==(0);
+ if (!($5)) {
+  $6 = ((($0)) + 16|0);
+  $7 = HEAP32[$6>>2]|0;
+  $8 = (__gcry_is_secure($7)|0);
+  $9 = ($8|0)==(0);
+  $10 = ((($0)) + 8|0);
+  $11 = HEAP32[$10>>2]|0;
+  $12 = (($11) + 7)|0;
+  $13 = (($12|0) / 8)&-1;
+  if ($9) {
+   $15 = (__gcry_xmalloc($13)|0);
+   $21 = $15;
+  } else {
+   $14 = (__gcry_xmalloc_secure($13)|0);
+   $21 = $14;
+  }
+  $16 = HEAP32[$6>>2]|0;
+  $17 = ($16|0)==(0|0);
+  if ($17) {
+   $$pre = HEAP32[$10>>2]|0;
+   $22 = $$pre;
+  } else {
+   $18 = HEAP32[$10>>2]|0;
+   $19 = (($18) + 7)|0;
+   $20 = (($19|0) / 8)&-1;
+   _memcpy(($21|0),($16|0),($20|0))|0;
+   $22 = $18;
+  }
+  $23 = (__gcry_mpi_set_opaque(0,$21,$22)|0);
+  $24 = ((($23)) + 12|0);
+  $25 = HEAP32[$24>>2]|0;
+  $26 = $25 & -49;
+  HEAP32[$24>>2] = $26;
+  $$035 = $23;
+  return ($$035|0);
+ }
+ $27 = $3 & 1;
+ $28 = ($27|0)==(0);
+ $29 = ((($0)) + 4|0);
+ $30 = HEAP32[$29>>2]|0;
+ $31 = (__gcry_xmalloc(20)|0);
+ $32 = ($30|0)==(0);
+ $$op$i$i36 = $30 << 2;
+ if ($28) {
+  if ($32) {
+   $41 = 0;
+  } else {
+   $39 = (__gcry_xmalloc($$op$i$i36)|0);
+   $41 = $39;
+  }
+  $40 = ((($31)) + 16|0);
+  HEAP32[$40>>2] = $41;
+  HEAP32[$31>>2] = $30;
+  $42 = ((($31)) + 4|0);
+  HEAP32[$42>>2] = 0;
+  $43 = ((($31)) + 8|0);
+  HEAP32[$43>>2] = 0;
+  $44 = ((($31)) + 12|0);
+  $$pre$phi39Z2D = $42;$$pre$phi41Z2D = $43;$$pre$phi43Z2D = $44;$$sink = 
$44;$56 = $41;
+ } else {
+  if ($32) {
+   $35 = 0;
+  } else {
+   $33 = (__gcry_xmalloc_secure($$op$i$i36)|0);
+   $35 = $33;
+  }
+  $34 = ((($31)) + 16|0);
+  HEAP32[$34>>2] = $35;
+  HEAP32[$31>>2] = $30;
+  $36 = ((($31)) + 12|0);
+  HEAP32[$36>>2] = 1;
+  $37 = ((($31)) + 4|0);
+  HEAP32[$37>>2] = 0;
+  $38 = ((($31)) + 8|0);
+  $$pre$phi39Z2D = $37;$$pre$phi41Z2D = $38;$$pre$phi43Z2D = $36;$$sink = 
$38;$56 = $35;
+ }
+ HEAP32[$$sink>>2] = 0;
+ $45 = HEAP32[$29>>2]|0;
+ HEAP32[$$pre$phi39Z2D>>2] = $45;
+ $46 = ((($0)) + 8|0);
+ $47 = HEAP32[$46>>2]|0;
+ HEAP32[$$pre$phi41Z2D>>2] = $47;
+ $48 = HEAP32[$2>>2]|0;
+ $49 = $48 & -49;
+ HEAP32[$$pre$phi43Z2D>>2] = $49;
+ $50 = ($45|0)>(0);
+ if (!($50)) {
+  $$035 = $31;
+  return ($$035|0);
+ }
+ $51 = ((($0)) + 16|0);
+ $52 = HEAP32[$51>>2]|0;
+ $$038 = 0;
+ while(1) {
+  $53 = (($52) + ($$038<<2)|0);
+  $54 = HEAP32[$53>>2]|0;
+  $55 = (($56) + ($$038<<2)|0);
+  HEAP32[$55>>2] = $54;
+  $57 = (($$038) + 1)|0;
+  $exitcond = ($57|0)==($45|0);
+  if ($exitcond) {
+   $$035 = $31;
+   break;
+  } else {
+   $$038 = $57;
+  }
+ }
+ return ($$035|0);
+}
+function __gcry_mpi_neg($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 
0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $2 = ($0|0)==($1|0);
+ if ($2) {
+  $3 = ($0|0)==(0|0);
+  if (!($3)) {
+   $4 = ((($0)) + 12|0);
+   $5 = HEAP32[$4>>2]|0;
+   $6 = $5 & 16;
+   $7 = ($6|0)==(0);
+   if (!($7)) {
+    __gcry_log_info(64098,$vararg_buffer);
+    STACKTOP = sp;return;
+   }
+  }
+ } else {
+  (__gcry_mpi_set($0,$1)|0);
+ }
+ $8 = ((($1)) + 8|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ($9|0)==(0);
+ $11 = $10&1;
+ $12 = ((($0)) + 8|0);
+ HEAP32[$12>>2] = $11;
+ STACKTOP = sp;return;
+}
+function __gcry_mpi_set($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$024$i = 0, $$038 = 0, $$039 = 0, $$op$i$i = 0, $10 = 0, $11 = 0, $12 = 
0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 
0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0;
+ var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $6 = 0, 
$7 = 0, $8 = 0, $9 = 0;
+ var $exitcond = 0, $scevgep$i = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $2 = ((($1)) + 4|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = ((($1)) + 8|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = ($0|0)==(0|0);
+ if ($6) {
+  $7 = (__gcry_xmalloc(20)|0);
+  $8 = ($3|0)==(0);
+  if ($8) {
+   $11 = 0;
+  } else {
+   $$op$i$i = $3 << 2;
+   $9 = (__gcry_xmalloc($$op$i$i)|0);
+   $11 = $9;
+  }
+  $10 = ((($7)) + 16|0);
+  HEAP32[$10>>2] = $11;
+  HEAP32[$7>>2] = $3;
+  $12 = ((($7)) + 4|0);
+  HEAP32[$12>>2] = 0;
+  $13 = ((($7)) + 8|0);
+  HEAP32[$13>>2] = 0;
+  $14 = ((($7)) + 12|0);
+  HEAP32[$14>>2] = 0;
+  $$038 = $7;
+ } else {
+  $$038 = $0;
+ }
+ $15 = ((($$038)) + 12|0);
+ $16 = HEAP32[$15>>2]|0;
+ $17 = $16 & 16;
+ $18 = ($17|0)==(0);
+ if (!($18)) {
+  __gcry_log_info(64098,$vararg_buffer);
+  STACKTOP = sp;return ($$038|0);
+ }
+ $19 = HEAP32[$$038>>2]|0;
+ $20 = ($19|0)<($3|0);
+ L11: do {
+  if ($20) {
+   $21 = ($19>>>0)<($3>>>0);
+   if (!($21)) {
+    $22 = ((($$038)) + 4|0);
+    $23 = HEAP32[$22>>2]|0;
+    $24 = ($23>>>0)<($19>>>0);
+    if (!($24)) {
+     break;
+    }
+    $25 = ((($$038)) + 16|0);
+    $26 = HEAP32[$25>>2]|0;
+    $$024$i = $23;
+    while(1) {
+     $27 = (($26) + ($$024$i<<2)|0);
+     HEAP32[$27>>2] = 0;
+     $28 = (($$024$i) + 1)|0;
+     $29 = HEAP32[$$038>>2]|0;
+     $30 = ($28>>>0)<($29>>>0);
+     if ($30) {
+      $$024$i = $28;
+     } else {
+      break L11;
+     }
+    }
+   }
+   $31 = ((($$038)) + 16|0);
+   $32 = HEAP32[$31>>2]|0;
+   $33 = ($32|0)==(0|0);
+   do {
+    if ($33) {
+     $40 = $16 & 1;
+     $41 = ($40|0)==(0);
+     if ($41) {
+      $43 = (__gcry_xcalloc($3,4)|0);
+      HEAP32[$31>>2] = $43;
+      break;
+     } else {
+      $42 = (__gcry_xcalloc_secure($3,4)|0);
+      HEAP32[$31>>2] = $42;
+      break;
+     }
+    } else {
+     $34 = $3 << 2;
+     $35 = (__gcry_xrealloc($32,$34)|0);
+     HEAP32[$31>>2] = $35;
+     $36 = HEAP32[$$038>>2]|0;
+     $37 = ($36>>>0)<($3>>>0);
+     if ($37) {
+      $38 = $36 << 2;
+      $39 = (($34) - ($38))|0;
+      $scevgep$i = (($35) + ($36<<2)|0);
+      _memset(($scevgep$i|0),0,($39|0))|0;
+     }
+    }
+   } while(0);
+   HEAP32[$$038>>2] = $3;
+  }
+ } while(0);
+ $44 = ((($$038)) + 16|0);
+ $45 = HEAP32[$44>>2]|0;
+ $46 = ((($1)) + 16|0);
+ $47 = HEAP32[$46>>2]|0;
+ $48 = ($3|0)>(0);
+ if ($48) {
+  $$039 = 0;
+  while(1) {
+   $49 = (($47) + ($$039<<2)|0);
+   $50 = HEAP32[$49>>2]|0;
+   $51 = (($45) + ($$039<<2)|0);
+   HEAP32[$51>>2] = $50;
+   $52 = (($$039) + 1)|0;
+   $exitcond = ($52|0)==($3|0);
+   if ($exitcond) {
+    break;
+   } else {
+    $$039 = $52;
+   }
+  }
+ }
+ $53 = ((($$038)) + 4|0);
+ HEAP32[$53>>2] = $3;
+ $54 = ((($1)) + 12|0);
+ $55 = HEAP32[$54>>2]|0;
+ $56 = $55 & -49;
+ HEAP32[$15>>2] = $56;
+ $57 = ((($$038)) + 8|0);
+ HEAP32[$57>>2] = $5;
+ STACKTOP = sp;return ($$038|0);
+}
+function __gcry_mpi_alloc_like($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$op$i$i24 = 0, $$pre$phi26Z2D = 0, $$pre$phi28Z2D = 0, 
$$pre$phi30Z2D = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 
= 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
+ var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, 
$3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, 
$38 = 0, $4 = 0, $5 = 0;
+ var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $2 = ((($0)) + 12|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = $3 & 4;
+ $5 = ($4|0)==(0);
+ if (!($5)) {
+  $6 = ((($0)) + 8|0);
+  $7 = HEAP32[$6>>2]|0;
+  $8 = (($7) + 7)|0;
+  $9 = (($8|0) / 8)&-1;
+  $10 = ((($0)) + 16|0);
+  $11 = HEAP32[$10>>2]|0;
+  $12 = (__gcry_is_secure($11)|0);
+  $13 = ($12|0)==(0);
+  if ($13) {
+   $15 = (__gcry_malloc($9)|0);
+   $17 = $15;
+  } else {
+   $14 = (__gcry_malloc_secure($9)|0);
+   $17 = $14;
+  }
+  $16 = HEAP32[$10>>2]|0;
+  _memcpy(($17|0),($16|0),($9|0))|0;
+  $18 = HEAP32[$6>>2]|0;
+  $19 = (__gcry_mpi_set_opaque(0,$17,$18)|0);
+  $$0 = $19;
+  return ($$0|0);
+ }
+ $20 = $3 & 1;
+ $21 = ($20|0)==(0);
+ $22 = ((($0)) + 4|0);
+ $23 = HEAP32[$22>>2]|0;
+ $24 = (__gcry_xmalloc(20)|0);
+ $25 = ($23|0)==(0);
+ $$op$i$i24 = $23 << 2;
+ if ($21) {
+  if ($25) {
+   $34 = 0;
+  } else {
+   $32 = (__gcry_xmalloc($$op$i$i24)|0);
+   $34 = $32;
+  }
+  $33 = ((($24)) + 16|0);
+  HEAP32[$33>>2] = $34;
+  HEAP32[$24>>2] = $23;
+  $35 = ((($24)) + 4|0);
+  HEAP32[$35>>2] = 0;
+  $36 = ((($24)) + 8|0);
+  HEAP32[$36>>2] = 0;
+  $37 = ((($24)) + 12|0);
+  $$pre$phi26Z2D = $35;$$pre$phi28Z2D = $36;$$pre$phi30Z2D = $37;$$sink = $37;
+ } else {
+  if ($25) {
+   $28 = 0;
+  } else {
+   $26 = (__gcry_xmalloc_secure($$op$i$i24)|0);
+   $28 = $26;
+  }
+  $27 = ((($24)) + 16|0);
+  HEAP32[$27>>2] = $28;
+  HEAP32[$24>>2] = $23;
+  $29 = ((($24)) + 12|0);
+  HEAP32[$29>>2] = 1;
+  $30 = ((($24)) + 4|0);
+  HEAP32[$30>>2] = 0;
+  $31 = ((($24)) + 8|0);
+  $$pre$phi26Z2D = $30;$$pre$phi28Z2D = $31;$$pre$phi30Z2D = $29;$$sink = $31;
+ }
+ HEAP32[$$sink>>2] = 0;
+ HEAP32[$$pre$phi26Z2D>>2] = 0;
+ HEAP32[$$pre$phi28Z2D>>2] = 0;
+ $38 = HEAP32[$2>>2]|0;
+ HEAP32[$$pre$phi30Z2D>>2] = $38;
+ $$0 = $24;
+ return ($$0|0);
+}
+function __gcry_mpi_snatch($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0$lcssa$i$i = 0, $$036$lcssa$i$i = 0, $$03644$i$i = 0, $$045$i$i = 0, 
$$1$i$i = 0, $$137$i$i = 0, $$2$i$i = 0, $$238$i$i = 0, $$33942$i$i = 0, 
$$343$i$i = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0;
+ var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, 
$27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $36 = 0, $37 = 0;
+ var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, 
$45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 
= 0, $scevgep$i$i = 0, $vararg_buffer = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $2 = ($0|0)==(0|0);
+ if (!($2)) {
+  $3 = ((($0)) + 12|0);
+  $4 = HEAP32[$3>>2]|0;
+  $5 = $4 & 16;
+  $6 = ($5|0)==(0);
+  if (!($6)) {
+   __gcry_log_info(64098,$vararg_buffer);
+   STACKTOP = sp;return;
+  }
+  $7 = ((($1)) + 16|0);
+  $8 = HEAP32[$7>>2]|0;
+  $9 = HEAP32[$1>>2]|0;
+  $10 = ((($0)) + 16|0);
+  $11 = HEAP32[$10>>2]|0;
+  $12 = ($11|0)==(0|0);
+  if (!($12)) {
+   $13 = HEAP32[$0>>2]|0;
+   $14 = $13 << 2;
+   $15 = ($14|0)==(0);
+   if (!($15)) {
+    $16 = $11;
+    $17 = $16 & 7;
+    $18 = ($17|0)==(0);
+    if ($18) {
+     $$0$lcssa$i$i = $11;$$036$lcssa$i$i = $14;
+    } else {
+     $$03644$i$i = $14;$$045$i$i = $11;
+     while(1) {
+      HEAP8[$$045$i$i>>0] = 0;
+      $19 = ((($$045$i$i)) + 1|0);
+      $20 = (($$03644$i$i) + -1)|0;
+      $21 = $19;
+      $22 = $21 & 7;
+      $23 = ($22|0)!=(0);
+      $24 = ($20|0)!=(0);
+      $25 = $24 & $23;
+      if ($25) {
+       $$03644$i$i = $20;$$045$i$i = $19;
+      } else {
+       $$0$lcssa$i$i = $19;$$036$lcssa$i$i = $20;
+       break;
+      }
+     }
+    }
+    $26 = ($$036$lcssa$i$i>>>0)<(8);
+    if ($26) {
+     $$2$i$i = $$0$lcssa$i$i;$$238$i$i = $$036$lcssa$i$i;
+    } else {
+     $27 = (($$036$lcssa$i$i) + -8)|0;
+     $$1$i$i = $$0$lcssa$i$i;$$137$i$i = $$036$lcssa$i$i;
+     while(1) {
+      $28 = $$1$i$i;
+      $29 = $28;
+      HEAP32[$29>>2] = 0;
+      $30 = (($28) + 4)|0;
+      $31 = $30;
+      HEAP32[$31>>2] = 0;
+      $32 = (($$137$i$i) + -8)|0;
+      $33 = ((($$1$i$i)) + 8|0);
+      $34 = ($32>>>0)>(7);
+      if ($34) {
+       $$1$i$i = $33;$$137$i$i = $32;
+      } else {
+       break;
+      }
+     }
+     $35 = $27 & -8;
+     $36 = (($35) + 8)|0;
+     $37 = (($27) - ($35))|0;
+     $scevgep$i$i = (($$0$lcssa$i$i) + ($36)|0);
+     $$2$i$i = $scevgep$i$i;$$238$i$i = $37;
+    }
+    $38 = ($$238$i$i|0)==(0);
+    if (!($38)) {
+     $$33942$i$i = $$238$i$i;$$343$i$i = $$2$i$i;
+     while(1) {
+      HEAP8[$$343$i$i>>0] = 0;
+      $39 = ((($$343$i$i)) + 1|0);
+      $40 = (($$33942$i$i) + -1)|0;
+      $41 = ($40|0)==(0);
+      if ($41) {
+       break;
+      } else {
+       $$33942$i$i = $40;$$343$i$i = $39;
+      }
+     }
+    }
+   }
+   __gcry_free($11);
+  }
+  HEAP32[$10>>2] = $8;
+  HEAP32[$0>>2] = $9;
+  $42 = ((($1)) + 4|0);
+  $43 = HEAP32[$42>>2]|0;
+  $44 = ((($0)) + 4|0);
+  HEAP32[$44>>2] = $43;
+  $45 = ((($1)) + 8|0);
+  $46 = HEAP32[$45>>2]|0;
+  $47 = ((($0)) + 8|0);
+  HEAP32[$47>>2] = $46;
+  $48 = ((($1)) + 12|0);
+  $49 = HEAP32[$48>>2]|0;
+  HEAP32[$3>>2] = $49;
+  HEAP32[$1>>2] = 0;
+  HEAP32[$42>>2] = 0;
+  HEAP32[$7>>2] = 0;
+ }
+ __gcry_mpi_free($1);
+ STACKTOP = sp;return;
+}
+function __gcry_mpi_set_cond($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$034 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 
= 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $vararg_buffer = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $3 = HEAP32[$1>>2]|0;
+ $4 = ($2|0)!=(0);
+ $5 = $4 << 31 >> 31;
+ $6 = HEAP32[$0>>2]|0;
+ $7 = ($6|0)==($3|0);
+ if (!($7)) {
+  __gcry_log_bug(64204,$vararg_buffer);
+  // unreachable;
+ }
+ $8 = ($3|0)>(0);
+ if ($8) {
+  $9 = ((($0)) + 16|0);
+  $10 = HEAP32[$9>>2]|0;
+  $11 = ((($1)) + 16|0);
+  $12 = HEAP32[$11>>2]|0;
+  $$034 = 0;
+  while(1) {
+   $13 = (($10) + ($$034<<2)|0);
+   $14 = HEAP32[$13>>2]|0;
+   $15 = (($12) + ($$034<<2)|0);
+   $16 = HEAP32[$15>>2]|0;
+   $17 = $16 ^ $14;
+   $18 = $17 & $5;
+   $19 = $18 ^ $14;
+   HEAP32[$13>>2] = $19;
+   $20 = (($$034) + 1)|0;
+   $exitcond = ($20|0)==($3|0);
+   if ($exitcond) {
+    break;
+   } else {
+    $$034 = $20;
+   }
+  }
+ }
+ $21 = ((($0)) + 4|0);
+ $22 = HEAP32[$21>>2]|0;
+ $23 = ((($1)) + 4|0);
+ $24 = HEAP32[$23>>2]|0;
+ $25 = $24 ^ $22;
+ $26 = $25 & $5;
+ $27 = $26 ^ $22;
+ HEAP32[$21>>2] = $27;
+ $28 = ((($0)) + 8|0);
+ $29 = HEAP32[$28>>2]|0;
+ $30 = ((($1)) + 8|0);
+ $31 = HEAP32[$30>>2]|0;
+ $32 = $31 ^ $29;
+ $33 = $32 & $5;
+ $34 = $33 ^ $29;
+ HEAP32[$28>>2] = $34;
+ STACKTOP = sp;return ($0|0);
+}
+function __gcry_mpi_set_ui($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$01314 = 0, $$01315 = 0, $$01316 = 0, $$024$i = 0, $10 = 0, $11 = 0, $12 
= 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 
= 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0;
+ var $43 = 0, $44 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $2 = ($0|0)==(0|0);
+ if ($2) {
+  $3 = (__gcry_xmalloc(20)|0);
+  $4 = (__gcry_xmalloc(4)|0);
+  $5 = ((($3)) + 16|0);
+  HEAP32[$5>>2] = $4;
+  HEAP32[$3>>2] = 1;
+  $6 = ((($3)) + 4|0);
+  HEAP32[$6>>2] = 0;
+  $7 = ((($3)) + 8|0);
+  HEAP32[$7>>2] = 0;
+  $8 = ((($3)) + 12|0);
+  HEAP32[$8>>2] = 0;
+  $9 = ($3|0)==(0|0);
+  if ($9) {
+   $$01315 = 0;
+  } else {
+   $$01314 = $3;
+   label = 3;
+  }
+ } else {
+  $$01314 = $0;
+  label = 3;
+ }
+ if ((label|0) == 3) {
+  $10 = ((($$01314)) + 12|0);
+  $11 = HEAP32[$10>>2]|0;
+  $12 = $11 & 16;
+  $13 = ($12|0)==(0);
+  if ($13) {
+   $$01315 = $$01314;
+  } else {
+   __gcry_log_info(64098,$vararg_buffer);
+   $$01316 = $$01314;
+   STACKTOP = sp;return ($$01316|0);
+  }
+ }
+ $14 = HEAP32[$$01315>>2]|0;
+ $15 = ($14|0)<(1);
+ L8: do {
+  if ($15) {
+   $16 = ($14|0)==(0);
+   if (!($16)) {
+    $17 = ((($$01315)) + 4|0);
+    $18 = HEAP32[$17>>2]|0;
+    $19 = ($18>>>0)<($14>>>0);
+    if (!($19)) {
+     break;
+    }
+    $20 = ((($$01315)) + 16|0);
+    $21 = HEAP32[$20>>2]|0;
+    $$024$i = $18;
+    while(1) {
+     $22 = (($21) + ($$024$i<<2)|0);
+     HEAP32[$22>>2] = 0;
+     $23 = (($$024$i) + 1)|0;
+     $24 = HEAP32[$$01315>>2]|0;
+     $25 = ($23>>>0)<($24>>>0);
+     if ($25) {
+      $$024$i = $23;
+     } else {
+      break L8;
+     }
+    }
+   }
+   $26 = ((($$01315)) + 16|0);
+   $27 = HEAP32[$26>>2]|0;
+   $28 = ($27|0)==(0|0);
+   do {
+    if ($28) {
+     $32 = ((($$01315)) + 12|0);
+     $33 = HEAP32[$32>>2]|0;
+     $34 = $33 & 1;
+     $35 = ($34|0)==(0);
+     if ($35) {
+      $37 = (__gcry_xcalloc(1,4)|0);
+      HEAP32[$26>>2] = $37;
+      break;
+     } else {
+      $36 = (__gcry_xcalloc_secure(1,4)|0);
+      HEAP32[$26>>2] = $36;
+      break;
+     }
+    } else {
+     $29 = (__gcry_xrealloc($27,4)|0);
+     HEAP32[$26>>2] = $29;
+     $30 = HEAP32[$$01315>>2]|0;
+     $31 = ($30|0)==(0);
+     if ($31) {
+      HEAP32[$29>>2] = 0;
+     }
+    }
+   } while(0);
+   HEAP32[$$01315>>2] = 1;
+  }
+ } while(0);
+ $38 = ((($$01315)) + 16|0);
+ $39 = HEAP32[$38>>2]|0;
+ HEAP32[$39>>2] = $1;
+ $40 = ($1|0)!=(0);
+ $41 = $40&1;
+ $42 = ((($$01315)) + 4|0);
+ HEAP32[$42>>2] = $41;
+ $43 = ((($$01315)) + 8|0);
+ HEAP32[$43>>2] = 0;
+ $44 = ((($$01315)) + 12|0);
+ HEAP32[$44>>2] = 0;
+ $$01316 = $$01315;
+ STACKTOP = sp;return ($$01316|0);
+}
+function __gcry_mpi_swap($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $2 = sp;
+ 
;HEAP32[$2>>2]=HEAP32[$0>>2]|0;HEAP32[$2+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$0+16>>2]|0;
+ 
;HEAP32[$0>>2]=HEAP32[$1>>2]|0;HEAP32[$0+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$1+16>>2]|0;
+ 
;HEAP32[$1>>2]=HEAP32[$2>>2]|0;HEAP32[$1+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$1+16>>2]=HEAP32[$2+16>>2]|0;
+ STACKTOP = sp;return;
+}
+function __gcry_mpi_swap_cond($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$044 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 
= 0, $9 = 0, $exitcond = 0;
+ var $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $3 = HEAP32[$0>>2]|0;
+ $4 = ($2|0)!=(0);
+ $5 = $4 << 31 >> 31;
+ $6 = HEAP32[$1>>2]|0;
+ $7 = ($3|0)==($6|0);
+ if (!($7)) {
+  __gcry_log_bug(64235,$vararg_buffer);
+  // unreachable;
+ }
+ $8 = ($3|0)>(0);
+ if ($8) {
+  $9 = ((($0)) + 16|0);
+  $10 = HEAP32[$9>>2]|0;
+  $11 = ((($1)) + 16|0);
+  $12 = HEAP32[$11>>2]|0;
+  $$044 = 0;
+  while(1) {
+   $13 = (($10) + ($$044<<2)|0);
+   $14 = HEAP32[$13>>2]|0;
+   $15 = (($12) + ($$044<<2)|0);
+   $16 = HEAP32[$15>>2]|0;
+   $17 = $16 ^ $14;
+   $18 = $17 & $5;
+   $19 = $18 ^ $14;
+   HEAP32[$13>>2] = $19;
+   $20 = HEAP32[$15>>2]|0;
+   $21 = $20 ^ $18;
+   HEAP32[$15>>2] = $21;
+   $22 = (($$044) + 1)|0;
+   $exitcond = ($22|0)==($3|0);
+   if ($exitcond) {
+    break;
+   } else {
+    $$044 = $22;
+   }
+  }
+ }
+ $23 = ((($0)) + 4|0);
+ $24 = HEAP32[$23>>2]|0;
+ $25 = ((($1)) + 4|0);
+ $26 = HEAP32[$25>>2]|0;
+ $27 = $26 ^ $24;
+ $28 = $27 & $5;
+ $29 = $28 ^ $24;
+ HEAP32[$23>>2] = $29;
+ $30 = HEAP32[$25>>2]|0;
+ $31 = $30 ^ $28;
+ HEAP32[$25>>2] = $31;
+ $32 = ((($0)) + 8|0);
+ $33 = HEAP32[$32>>2]|0;
+ $34 = ((($1)) + 8|0);
+ $35 = HEAP32[$34>>2]|0;
+ $36 = $35 ^ $33;
+ $37 = $36 & $5;
+ $38 = $37 ^ $33;
+ HEAP32[$32>>2] = $38;
+ $39 = HEAP32[$34>>2]|0;
+ $40 = $39 ^ $37;
+ HEAP32[$34>>2] = $40;
+ STACKTOP = sp;return;
+}
+function __gcry_mpi_new($0) {
+ $0 = $0|0;
+ var $$op$i$i = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 
= 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (($0) + 31)|0;
+ $2 = $1 >>> 5;
+ $3 = (__gcry_xmalloc(20)|0);
+ $4 = ($2|0)==(0);
+ if ($4) {
+  $7 = 0;
+ } else {
+  $$op$i$i = $2 << 2;
+  $5 = (__gcry_xmalloc($$op$i$i)|0);
+  $7 = $5;
+ }
+ $6 = ((($3)) + 16|0);
+ HEAP32[$6>>2] = $7;
+ HEAP32[$3>>2] = $2;
+ $8 = ((($3)) + 4|0);
+ HEAP32[$8>>2] = 0;
+ $9 = ((($3)) + 8|0);
+ HEAP32[$9>>2] = 0;
+ $10 = ((($3)) + 12|0);
+ HEAP32[$10>>2] = 0;
+ return ($3|0);
+}
+function __gcry_mpi_snew($0) {
+ $0 = $0|0;
+ var $$op$i$i = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 
= 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (($0) + 31)|0;
+ $2 = $1 >>> 5;
+ $3 = (__gcry_xmalloc(20)|0);
+ $4 = ($2|0)==(0);
+ if ($4) {
+  $7 = 0;
+ } else {
+  $$op$i$i = $2 << 2;
+  $5 = (__gcry_xmalloc_secure($$op$i$i)|0);
+  $7 = $5;
+ }
+ $6 = ((($3)) + 16|0);
+ HEAP32[$6>>2] = $7;
+ HEAP32[$3>>2] = $2;
+ $8 = ((($3)) + 12|0);
+ HEAP32[$8>>2] = 1;
+ $9 = ((($3)) + 4|0);
+ HEAP32[$9>>2] = 0;
+ $10 = ((($3)) + 8|0);
+ HEAP32[$10>>2] = 0;
+ return ($3|0);
+}
+function __gcry_mpi_release($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gcry_mpi_free($0);
+ return;
+}
+function __gcry_mpi_randomize($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, 
$5 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $3 = (($1) + 7)|0;
+ $4 = $3 >>> 3;
+ $5 = ($0|0)!=(0|0);
+ if ($5) {
+  $6 = ((($0)) + 12|0);
+  $7 = HEAP32[$6>>2]|0;
+  $8 = $7 & 16;
+  $9 = ($8|0)==(0);
+  if (!($9)) {
+   __gcry_log_info(64098,$vararg_buffer);
+   STACKTOP = sp;return;
+  }
+ }
+ $10 = ($2|0)==(0);
+ do {
+  if ($10) {
+   if ($5) {
+    $11 = ((($0)) + 12|0);
+    $12 = HEAP32[$11>>2]|0;
+    $13 = $12 & 1;
+    $14 = ($13|0)==(0);
+    if ($14) {
+     label = 8;
+    } else {
+     $15 = (__gcry_xmalloc_secure($4)|0);
+     $17 = $15;
+    }
+   } else {
+    label = 8;
+   }
+   if ((label|0) == 8) {
+    $16 = (__gcry_xmalloc($4)|0);
+    $17 = $16;
+   }
+   __gcry_create_nonce($17,$4);
+   $$0 = $17;
+  } else {
+   if ($5) {
+    $18 = ((($0)) + 12|0);
+    $19 = HEAP32[$18>>2]|0;
+    $20 = $19 & 1;
+    $21 = ($20|0)==(0);
+    if (!($21)) {
+     $22 = (__gcry_random_bytes_secure($4,$2)|0);
+     $$0 = $22;
+     break;
+    }
+   }
+   $23 = (__gcry_random_bytes($4,$2)|0);
+   $$0 = $23;
+  }
+ } while(0);
+ __gcry_mpi_set_buffer($0,$$0,$4,0);
+ __gcry_free($$0);
+ STACKTOP = sp;return;
+}
+function __gcry_mpi_get_flag($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $$0$in = 0, $$sink7 = 0, $2 = 0, $3 = 0, $4 = 0, $vararg_buffer 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ switch ($1|0) {
+ case 2048: case 1024: case 512: case 256: case 1:  {
+  $$sink7 = $1;
+  break;
+ }
+ case 2:  {
+  $$sink7 = 4;
+  break;
+ }
+ case 4:  {
+  $$sink7 = 16;
+  break;
+ }
+ case 8:  {
+  $$sink7 = 32;
+  break;
+ }
+ default: {
+  __gcry_log_bug(64267,$vararg_buffer);
+  // unreachable;
+ }
+ }
+ $2 = ((($0)) + 12|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = $3 & $$sink7;
+ $$0$in = ($4|0)!=(0);
+ $$0 = $$0$in&1;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_mpi_const($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $1 = ($0>>>0)>(6);
+ if ($1) {
+  HEAP32[$vararg_buffer>>2] = $0;
+  __gcry_log_bug(64287,$vararg_buffer);
+  // unreachable;
+ }
+ $2 = (71152 + ($0<<2)|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = ($3|0)==(0|0);
+ if ($4) {
+  __gcry_log_bug(64318,$vararg_buffer1);
+  // unreachable;
+ } else {
+  STACKTOP = sp;return ($3|0);
+ }
+ return (0)|0;
+}
+function __gcry_compat_identification() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return (15200|0);
+}
+function __gcry_hmac256_new($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$05765 = 0, $$3 = 0, $10 = 0, $100 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 
0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 
0, $23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0;
+ var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, 
$51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 
0, $6 = 0, $60 = 0, $61 = 0;
+ var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, 
$7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, 
$78 = 0, $79 = 0, $8 = 0;
+ var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, 
$88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, 
$96 = 0, $97 = 0, $98 = 0;
+ var $99 = 0, $exitcond = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(64|0);
+ $2 = sp;
+ $3 = (_malloc(172)|0);
+ $4 = ($3|0)==(0|0);
+ if ($4) {
+  $$3 = 0;
+  STACKTOP = sp;return ($$3|0);
+ }
+ HEAP32[$3>>2] = 1779033703;
+ $5 = ((($3)) + 4|0);
+ HEAP32[$5>>2] = -1150833019;
+ $6 = ((($3)) + 8|0);
+ HEAP32[$6>>2] = 1013904242;
+ $7 = ((($3)) + 12|0);
+ HEAP32[$7>>2] = -1521486534;
+ $8 = ((($3)) + 16|0);
+ HEAP32[$8>>2] = 1359893119;
+ $9 = ((($3)) + 20|0);
+ HEAP32[$9>>2] = -1694144372;
+ $10 = ((($3)) + 24|0);
+ HEAP32[$10>>2] = 528734635;
+ $11 = ((($3)) + 28|0);
+ HEAP32[$11>>2] = 1541459225;
+ $12 = ((($3)) + 32|0);
+ HEAP32[$12>>2] = 0;
+ $13 = ((($3)) + 36|0);
+ HEAP32[$13>>2] = 0;
+ $14 = ((($3)) + 40|0);
+ HEAP8[$14>>0] = 0;
+ $15 = ($0|0)==(0|0);
+ if ($15) {
+  $$3 = $3;
+  STACKTOP = sp;return ($$3|0);
+ }
+ dest=$2; stop=dest+64|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ $16 = ((($3)) + 105|0);
+ dest=$16; stop=dest+64|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while 
((dest|0) < (stop|0));
+ $17 = ($1>>>0)<(65);
+ do {
+  if ($17) {
+   _memcpy(($2|0),($0|0),($1|0))|0;
+   _memcpy(($16|0),($0|0),($1|0))|0;
+  } else {
+   $18 = (_malloc(172)|0);
+   $19 = ($18|0)==(0|0);
+   if (!($19)) {
+    HEAP32[$18>>2] = 1779033703;
+    $20 = ((($18)) + 4|0);
+    HEAP32[$20>>2] = -1150833019;
+    $21 = ((($18)) + 8|0);
+    HEAP32[$21>>2] = 1013904242;
+    $22 = ((($18)) + 12|0);
+    HEAP32[$22>>2] = -1521486534;
+    $23 = ((($18)) + 16|0);
+    HEAP32[$23>>2] = 1359893119;
+    $24 = ((($18)) + 20|0);
+    HEAP32[$24>>2] = -1694144372;
+    $25 = ((($18)) + 24|0);
+    HEAP32[$25>>2] = 528734635;
+    $26 = ((($18)) + 28|0);
+    HEAP32[$26>>2] = 1541459225;
+    $27 = ((($18)) + 32|0);
+    HEAP32[$27>>2] = 0;
+    $28 = ((($18)) + 36|0);
+    HEAP32[$28>>2] = 0;
+    $29 = ((($18)) + 40|0);
+    HEAP8[$29>>0] = 0;
+    __gcry_hmac256_update($18,$0,$1);
+    _finalize($18);
+    $30 = ((($18)) + 41|0);
+    dest=$2; src=$30; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; 
dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
+    dest=$16; src=$30; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; 
dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
+    __gcry_hmac256_release($18);
+    break;
+   }
+   _free($3);
+   $$3 = 0;
+   STACKTOP = sp;return ($$3|0);
+  }
+ } while(0);
+ $$05765 = 0;
+ while(1) {
+  $31 = (($2) + ($$05765)|0);
+  $32 = HEAP8[$31>>0]|0;
+  $33 = $32 ^ 54;
+  HEAP8[$31>>0] = $33;
+  $34 = (($16) + ($$05765)|0);
+  $35 = HEAP8[$34>>0]|0;
+  $36 = $35 ^ 92;
+  HEAP8[$34>>0] = $36;
+  $37 = (($$05765) + 1)|0;
+  $exitcond = ($37|0)==(64);
+  if ($exitcond) {
+   break;
+  } else {
+   $$05765 = $37;
+  }
+ }
+ HEAP8[$14>>0] = 2;
+ __gcry_hmac256_update($3,$2,64);
+ HEAP8[$2>>0] = 0;
+ $38 = ((($2)) + 1|0);
+ HEAP8[$38>>0] = 0;
+ $39 = ((($2)) + 2|0);
+ HEAP8[$39>>0] = 0;
+ $40 = ((($2)) + 3|0);
+ HEAP8[$40>>0] = 0;
+ $41 = ((($2)) + 4|0);
+ HEAP8[$41>>0] = 0;
+ $42 = ((($2)) + 5|0);
+ HEAP8[$42>>0] = 0;
+ $43 = ((($2)) + 6|0);
+ HEAP8[$43>>0] = 0;
+ $44 = ((($2)) + 7|0);
+ HEAP8[$44>>0] = 0;
+ $45 = ((($2)) + 8|0);
+ HEAP8[$45>>0] = 0;
+ $46 = ((($2)) + 9|0);
+ HEAP8[$46>>0] = 0;
+ $47 = ((($2)) + 10|0);
+ HEAP8[$47>>0] = 0;
+ $48 = ((($2)) + 11|0);
+ HEAP8[$48>>0] = 0;
+ $49 = ((($2)) + 12|0);
+ HEAP8[$49>>0] = 0;
+ $50 = ((($2)) + 13|0);
+ HEAP8[$50>>0] = 0;
+ $51 = ((($2)) + 14|0);
+ HEAP8[$51>>0] = 0;
+ $52 = ((($2)) + 15|0);
+ HEAP8[$52>>0] = 0;
+ $53 = ((($2)) + 16|0);
+ HEAP8[$53>>0] = 0;
+ $54 = ((($2)) + 17|0);
+ HEAP8[$54>>0] = 0;
+ $55 = ((($2)) + 18|0);
+ HEAP8[$55>>0] = 0;
+ $56 = ((($2)) + 19|0);
+ HEAP8[$56>>0] = 0;
+ $57 = ((($2)) + 20|0);
+ HEAP8[$57>>0] = 0;
+ $58 = ((($2)) + 21|0);
+ HEAP8[$58>>0] = 0;
+ $59 = ((($2)) + 22|0);
+ HEAP8[$59>>0] = 0;
+ $60 = ((($2)) + 23|0);
+ HEAP8[$60>>0] = 0;
+ $61 = ((($2)) + 24|0);
+ HEAP8[$61>>0] = 0;
+ $62 = ((($2)) + 25|0);
+ HEAP8[$62>>0] = 0;
+ $63 = ((($2)) + 26|0);
+ HEAP8[$63>>0] = 0;
+ $64 = ((($2)) + 27|0);
+ HEAP8[$64>>0] = 0;
+ $65 = ((($2)) + 28|0);
+ HEAP8[$65>>0] = 0;
+ $66 = ((($2)) + 29|0);
+ HEAP8[$66>>0] = 0;
+ $67 = ((($2)) + 30|0);
+ HEAP8[$67>>0] = 0;
+ $68 = ((($2)) + 31|0);
+ HEAP8[$68>>0] = 0;
+ $69 = ((($2)) + 32|0);
+ HEAP8[$69>>0] = 0;
+ $70 = ((($2)) + 33|0);
+ HEAP8[$70>>0] = 0;
+ $71 = ((($2)) + 34|0);
+ HEAP8[$71>>0] = 0;
+ $72 = ((($2)) + 35|0);
+ HEAP8[$72>>0] = 0;
+ $73 = ((($2)) + 36|0);
+ HEAP8[$73>>0] = 0;
+ $74 = ((($2)) + 37|0);
+ HEAP8[$74>>0] = 0;
+ $75 = ((($2)) + 38|0);
+ HEAP8[$75>>0] = 0;
+ $76 = ((($2)) + 39|0);
+ HEAP8[$76>>0] = 0;
+ $77 = ((($2)) + 40|0);
+ HEAP8[$77>>0] = 0;
+ $78 = ((($2)) + 41|0);
+ HEAP8[$78>>0] = 0;
+ $79 = ((($2)) + 42|0);
+ HEAP8[$79>>0] = 0;
+ $80 = ((($2)) + 43|0);
+ HEAP8[$80>>0] = 0;
+ $81 = ((($2)) + 44|0);
+ HEAP8[$81>>0] = 0;
+ $82 = ((($2)) + 45|0);
+ HEAP8[$82>>0] = 0;
+ $83 = ((($2)) + 46|0);
+ HEAP8[$83>>0] = 0;
+ $84 = ((($2)) + 47|0);
+ HEAP8[$84>>0] = 0;
+ $85 = ((($2)) + 48|0);
+ HEAP8[$85>>0] = 0;
+ $86 = ((($2)) + 49|0);
+ HEAP8[$86>>0] = 0;
+ $87 = ((($2)) + 50|0);
+ HEAP8[$87>>0] = 0;
+ $88 = ((($2)) + 51|0);
+ HEAP8[$88>>0] = 0;
+ $89 = ((($2)) + 52|0);
+ HEAP8[$89>>0] = 0;
+ $90 = ((($2)) + 53|0);
+ HEAP8[$90>>0] = 0;
+ $91 = ((($2)) + 54|0);
+ HEAP8[$91>>0] = 0;
+ $92 = ((($2)) + 55|0);
+ HEAP8[$92>>0] = 0;
+ $93 = ((($2)) + 56|0);
+ HEAP8[$93>>0] = 0;
+ $94 = ((($2)) + 57|0);
+ HEAP8[$94>>0] = 0;
+ $95 = ((($2)) + 58|0);
+ HEAP8[$95>>0] = 0;
+ $96 = ((($2)) + 59|0);
+ HEAP8[$96>>0] = 0;
+ $97 = ((($2)) + 60|0);
+ HEAP8[$97>>0] = 0;
+ $98 = ((($2)) + 61|0);
+ HEAP8[$98>>0] = 0;
+ $99 = ((($2)) + 62|0);
+ HEAP8[$99>>0] = 0;
+ $100 = ((($2)) + 63|0);
+ HEAP8[$100>>0] = 0;
+ $$3 = $3;
+ STACKTOP = sp;return ($$3|0);
+}
+function __gcry_hmac256_update($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$03147$lcssa = 0, $$0314770 = 0, $$048$lcssa = 0, $$04869 = 0, $$1 = 0, 
$$132 = 0, $$2$lcssa = 0, $$233$lcssa = 0, $$23343 = 0, $$244 = 0, $$3344066 = 
0, $$34165 = 0, $$lcssa = 0, $$mask = 0, $$mask$i = 0, $$mask$i36 = 0, $$pre = 
0, $$pre58 = 0, $10 = 0, $11 = 0;
+ var $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, 
$20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 
0, $29 = 0, $3 = 0, $30 = 0;
+ var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, 
$39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, 
$47 = 0, $48 = 0, $49 = 0;
+ var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, 
$57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $7 = 0, 
$8 = 0, $9 = 0, $or$cond = 0;
+ var $or$cond74 = 0, $scevgep = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($0)) + 40|0);
+ $4 = HEAP8[$3>>0]|0;
+ $$mask = $4 & 1;
+ $5 = ($$mask<<24>>24)==(0);
+ if (!($5)) {
+  return;
+ }
+ $6 = ((($0)) + 36|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($7|0)==(64);
+ if ($8) {
+  $9 = ((($0)) + 41|0);
+  _transform_1707($0,$9);
+  HEAP32[$6>>2] = 0;
+  $10 = ((($0)) + 32|0);
+  $11 = HEAP32[$10>>2]|0;
+  $12 = (($11) + 1)|0;
+  HEAP32[$10>>2] = $12;
+  $15 = 0;
+ } else {
+  $15 = $7;
+ }
+ $13 = ($1|0)==(0|0);
+ if ($13) {
+  return;
+ }
+ $14 = ($15|0)==(0);
+ L10: do {
+  if ($14) {
+   $$1 = $1;$$132 = $2;$63 = 0;
+  } else {
+   $16 = ($2|0)==(0);
+   L12: do {
+    if (!($16)) {
+     $17 = ($15|0)<(64);
+     if ($17) {
+      $$0314770 = $2;$$04869 = $1;$20 = $15;
+      while(1) {
+       $18 = HEAP8[$$04869>>0]|0;
+       $19 = (($20) + 1)|0;
+       HEAP32[$6>>2] = $19;
+       $21 = (((($0)) + 41|0) + ($20)|0);
+       HEAP8[$21>>0] = $18;
+       $22 = (($$0314770) + -1)|0;
+       $23 = ($22|0)==(0);
+       if ($23) {
+        break L12;
+       }
+       $24 = ((($$04869)) + 1|0);
+       $$pre = HEAP32[$6>>2]|0;
+       $25 = ($$pre|0)<(64);
+       if ($25) {
+        $$0314770 = $22;$$04869 = $24;$20 = $$pre;
+       } else {
+        $$03147$lcssa = $22;$$048$lcssa = $24;$$lcssa = $$pre;
+        break;
+       }
+      }
+     } else {
+      $$03147$lcssa = $2;$$048$lcssa = $1;$$lcssa = $15;
+     }
+     $26 = HEAP8[$3>>0]|0;
+     $$mask$i36 = $26 & 1;
+     $27 = ($$mask$i36<<24>>24)==(0);
+     $28 = ($$lcssa|0)==(64);
+     $or$cond = $28 & $27;
+     if (!($or$cond)) {
+      $$1 = $$048$lcssa;$$132 = $$03147$lcssa;$63 = $$lcssa;
+      break L10;
+     }
+     $29 = ((($0)) + 41|0);
+     _transform_1707($0,$29);
+     HEAP32[$6>>2] = 0;
+     $30 = ((($0)) + 32|0);
+     $31 = HEAP32[$30>>2]|0;
+     $32 = (($31) + 1)|0;
+     HEAP32[$30>>2] = $32;
+     $$1 = $$048$lcssa;$$132 = $$03147$lcssa;$63 = 0;
+     break L10;
+    }
+   } while(0);
+   $33 = HEAP8[$3>>0]|0;
+   $$mask$i = $33 & 1;
+   $34 = ($$mask$i<<24>>24)==(0);
+   if (!($34)) {
+    return;
+   }
+   $35 = HEAP32[$6>>2]|0;
+   $36 = ($35|0)==(64);
+   if (!($36)) {
+    return;
+   }
+   $37 = ((($0)) + 41|0);
+   _transform_1707($0,$37);
+   HEAP32[$6>>2] = 0;
+   $38 = ((($0)) + 32|0);
+   $39 = HEAP32[$38>>2]|0;
+   $40 = (($39) + 1)|0;
+   HEAP32[$38>>2] = $40;
+   return;
+  }
+ } while(0);
+ $41 = ($$132>>>0)>(63);
+ if ($41) {
+  $42 = ((($0)) + 32|0);
+  $43 = (($$132) + -64)|0;
+  $44 = $43 & -64;
+  $45 = (($44) + 64)|0;
+  $$23343 = $$132;$$244 = $$1;
+  while(1) {
+   _transform_1707($0,$$244);
+   HEAP32[$6>>2] = 0;
+   $46 = HEAP32[$42>>2]|0;
+   $47 = (($46) + 1)|0;
+   HEAP32[$42>>2] = $47;
+   $48 = (($$23343) + -64)|0;
+   $49 = ((($$244)) + 64|0);
+   $50 = ($48>>>0)>(63);
+   if ($50) {
+    $$23343 = $48;$$244 = $49;
+   } else {
+    break;
+   }
+  }
+  $51 = (($43) - ($44))|0;
+  $scevgep = (($$1) + ($45)|0);
+  $$2$lcssa = $scevgep;$$233$lcssa = $51;$54 = 0;
+ } else {
+  $$2$lcssa = $$1;$$233$lcssa = $$132;$54 = $63;
+ }
+ $52 = ($$233$lcssa|0)!=(0);
+ $53 = ($54|0)<(64);
+ $or$cond74 = $52 & $53;
+ if (!($or$cond74)) {
+  return;
+ }
+ $$3344066 = $$233$lcssa;$$34165 = $$2$lcssa;$57 = $54;
+ while(1) {
+  $55 = HEAP8[$$34165>>0]|0;
+  $56 = (($57) + 1)|0;
+  HEAP32[$6>>2] = $56;
+  $58 = (((($0)) + 41|0) + ($57)|0);
+  HEAP8[$58>>0] = $55;
+  $59 = (($$3344066) + -1)|0;
+  $60 = ($59|0)==(0);
+  if ($60) {
+   label = 24;
+   break;
+  }
+  $61 = ((($$34165)) + 1|0);
+  $$pre58 = HEAP32[$6>>2]|0;
+  $62 = ($$pre58|0)<(64);
+  if ($62) {
+   $$3344066 = $59;$$34165 = $61;$57 = $$pre58;
+  } else {
+   label = 24;
+   break;
+  }
+ }
+ if ((label|0) == 24) {
+  return;
+ }
+}
+function _finalize($0) {
+ $0 = $0|0;
+ var $$lcssa = 0, $$mask = 0, $$mask$i115 = 0, $$phi$trans$insert = 0, $$pre = 
0, $$pre$phi120Z2D = 0, $$pre$phiZ2D = 0, $$pre119 = 0, $1 = 0, $10 = 0, $100 = 
0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 
0, $109 = 0;
+ var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 
= 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 
= 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0;
+ var $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 
= 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 
= 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0;
+ var $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 
= 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 
= 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0;
+ var $164 = 0, $165 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, 
$22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, 
$30 = 0, $31 = 0, $32 = 0;
+ var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 
0, $49 = 0, $5 = 0, $50 = 0;
+ var $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, 
$59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, 
$67 = 0, $68 = 0, $69 = 0;
+ var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, 
$77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, 
$85 = 0, $86 = 0, $87 = 0;
+ var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, 
$95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, $spec$select = 0, 
dest = 0, label = 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 40|0);
+ $2 = HEAP8[$1>>0]|0;
+ $$mask = $2 & 1;
+ $3 = ($$mask<<24>>24)==(0);
+ if (!($3)) {
+  return;
+ }
+ $4 = ((($0)) + 36|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = ($5|0)==(64);
+ if ($6) {
+  $7 = ((($0)) + 41|0);
+  _transform_1707($0,$7);
+  HEAP32[$4>>2] = 0;
+  $8 = ((($0)) + 32|0);
+  $9 = HEAP32[$8>>2]|0;
+  $10 = (($9) + 1)|0;
+  HEAP32[$8>>2] = $10;
+  $$pre$phi120Z2D = $7;$$pre$phiZ2D = $8;$12 = $10;$15 = 0;
+ } else {
+  $$phi$trans$insert = ((($0)) + 32|0);
+  $$pre = HEAP32[$$phi$trans$insert>>2]|0;
+  $$pre119 = (((($0)) + 41|0) + ($5)|0);
+  $$pre$phi120Z2D = $$pre119;$$pre$phiZ2D = $$phi$trans$insert;$12 = $$pre;$15 
= $5;
+ }
+ $11 = $12 << 6;
+ $13 = $12 >>> 26;
+ $14 = (($11) + ($15))|0;
+ $16 = ($14>>>0)<($11>>>0);
+ $17 = $16&1;
+ $spec$select = (($13) + ($17))|0;
+ $18 = $14 << 3;
+ $19 = $spec$select << 3;
+ $20 = $14 >>> 29;
+ $21 = $19 | $20;
+ $22 = ($15|0)<(56);
+ $23 = ((($0)) + 41|0);
+ $24 = (($15) + 1)|0;
+ HEAP32[$4>>2] = $24;
+ HEAP8[$$pre$phi120Z2D>>0] = -128;
+ $25 = HEAP32[$4>>2]|0;
+ if ($22) {
+  $26 = ($25|0)<(56);
+  if ($26) {
+   $28 = $25;
+   while(1) {
+    $27 = (($28) + 1)|0;
+    HEAP32[$4>>2] = $27;
+    $29 = (((($0)) + 41|0) + ($28)|0);
+    HEAP8[$29>>0] = 0;
+    $30 = HEAP32[$4>>2]|0;
+    $31 = ($30|0)<(56);
+    if ($31) {
+     $28 = $30;
+    } else {
+     break;
+    }
+   }
+  }
+ } else {
+  $32 = ($25|0)<(64);
+  if ($32) {
+   $34 = $25;
+   while(1) {
+    $33 = (($34) + 1)|0;
+    HEAP32[$4>>2] = $33;
+    $35 = (((($0)) + 41|0) + ($34)|0);
+    HEAP8[$35>>0] = 0;
+    $36 = HEAP32[$4>>2]|0;
+    $37 = ($36|0)<(64);
+    if ($37) {
+     $34 = $36;
+    } else {
+     $$lcssa = $36;
+     break;
+    }
+   }
+  } else {
+   $$lcssa = $25;
+  }
+  $38 = HEAP8[$1>>0]|0;
+  $$mask$i115 = $38 & 1;
+  $39 = ($$mask$i115<<24>>24)==(0);
+  $40 = ($$lcssa|0)==(64);
+  $or$cond = $40 & $39;
+  if ($or$cond) {
+   $41 = ((($0)) + 41|0);
+   _transform_1707($0,$41);
+   HEAP32[$4>>2] = 0;
+   $42 = HEAP32[$$pre$phiZ2D>>2]|0;
+   $43 = (($42) + 1)|0;
+   HEAP32[$$pre$phiZ2D>>2] = $43;
+  }
+  dest=$23; stop=dest+56|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while 
((dest|0) < (stop|0));
+ }
+ $44 = ((($0)) + 97|0);
+ HEAP8[$44>>0] = 0;
+ $45 = ((($0)) + 98|0);
+ HEAP8[$45>>0] = 0;
+ $46 = $spec$select >>> 5;
+ $47 = $46&255;
+ $48 = ((($0)) + 99|0);
+ HEAP8[$48>>0] = $47;
+ $49 = $21&255;
+ $50 = ((($0)) + 100|0);
+ HEAP8[$50>>0] = $49;
+ $51 = $14 >>> 21;
+ $52 = $51&255;
+ $53 = ((($0)) + 101|0);
+ HEAP8[$53>>0] = $52;
+ $54 = $14 >>> 13;
+ $55 = $54&255;
+ $56 = ((($0)) + 102|0);
+ HEAP8[$56>>0] = $55;
+ $57 = $14 >>> 5;
+ $58 = $57&255;
+ $59 = ((($0)) + 103|0);
+ HEAP8[$59>>0] = $58;
+ $60 = $18&255;
+ $61 = ((($0)) + 104|0);
+ HEAP8[$61>>0] = $60;
+ _transform_1707($0,$23);
+ $62 = HEAP32[$0>>2]|0;
+ $63 = $62 >>> 24;
+ $64 = $63&255;
+ $65 = ((($0)) + 42|0);
+ HEAP8[$23>>0] = $64;
+ $66 = $62 >>> 16;
+ $67 = $66&255;
+ $68 = ((($0)) + 43|0);
+ HEAP8[$65>>0] = $67;
+ $69 = $62 >>> 8;
+ $70 = $69&255;
+ $71 = ((($0)) + 44|0);
+ HEAP8[$68>>0] = $70;
+ $72 = $62&255;
+ $73 = ((($0)) + 45|0);
+ HEAP8[$71>>0] = $72;
+ $74 = ((($0)) + 4|0);
+ $75 = HEAP32[$74>>2]|0;
+ $76 = $75 >>> 24;
+ $77 = $76&255;
+ $78 = ((($0)) + 46|0);
+ HEAP8[$73>>0] = $77;
+ $79 = $75 >>> 16;
+ $80 = $79&255;
+ $81 = ((($0)) + 47|0);
+ HEAP8[$78>>0] = $80;
+ $82 = $75 >>> 8;
+ $83 = $82&255;
+ $84 = ((($0)) + 48|0);
+ HEAP8[$81>>0] = $83;
+ $85 = $75&255;
+ $86 = ((($0)) + 49|0);
+ HEAP8[$84>>0] = $85;
+ $87 = ((($0)) + 8|0);
+ $88 = HEAP32[$87>>2]|0;
+ $89 = $88 >>> 24;
+ $90 = $89&255;
+ $91 = ((($0)) + 50|0);
+ HEAP8[$86>>0] = $90;
+ $92 = $88 >>> 16;
+ $93 = $92&255;
+ $94 = ((($0)) + 51|0);
+ HEAP8[$91>>0] = $93;
+ $95 = $88 >>> 8;
+ $96 = $95&255;
+ $97 = ((($0)) + 52|0);
+ HEAP8[$94>>0] = $96;
+ $98 = $88&255;
+ $99 = ((($0)) + 53|0);
+ HEAP8[$97>>0] = $98;
+ $100 = ((($0)) + 12|0);
+ $101 = HEAP32[$100>>2]|0;
+ $102 = $101 >>> 24;
+ $103 = $102&255;
+ $104 = ((($0)) + 54|0);
+ HEAP8[$99>>0] = $103;
+ $105 = $101 >>> 16;
+ $106 = $105&255;
+ $107 = ((($0)) + 55|0);
+ HEAP8[$104>>0] = $106;
+ $108 = $101 >>> 8;
+ $109 = $108&255;
+ $110 = ((($0)) + 56|0);
+ HEAP8[$107>>0] = $109;
+ $111 = $101&255;
+ $112 = ((($0)) + 57|0);
+ HEAP8[$110>>0] = $111;
+ $113 = ((($0)) + 16|0);
+ $114 = HEAP32[$113>>2]|0;
+ $115 = $114 >>> 24;
+ $116 = $115&255;
+ $117 = ((($0)) + 58|0);
+ HEAP8[$112>>0] = $116;
+ $118 = $114 >>> 16;
+ $119 = $118&255;
+ $120 = ((($0)) + 59|0);
+ HEAP8[$117>>0] = $119;
+ $121 = $114 >>> 8;
+ $122 = $121&255;
+ $123 = ((($0)) + 60|0);
+ HEAP8[$120>>0] = $122;
+ $124 = $114&255;
+ $125 = ((($0)) + 61|0);
+ HEAP8[$123>>0] = $124;
+ $126 = ((($0)) + 20|0);
+ $127 = HEAP32[$126>>2]|0;
+ $128 = $127 >>> 24;
+ $129 = $128&255;
+ $130 = ((($0)) + 62|0);
+ HEAP8[$125>>0] = $129;
+ $131 = $127 >>> 16;
+ $132 = $131&255;
+ $133 = ((($0)) + 63|0);
+ HEAP8[$130>>0] = $132;
+ $134 = $127 >>> 8;
+ $135 = $134&255;
+ $136 = ((($0)) + 64|0);
+ HEAP8[$133>>0] = $135;
+ $137 = $127&255;
+ $138 = ((($0)) + 65|0);
+ HEAP8[$136>>0] = $137;
+ $139 = ((($0)) + 24|0);
+ $140 = HEAP32[$139>>2]|0;
+ $141 = $140 >>> 24;
+ $142 = $141&255;
+ $143 = ((($0)) + 66|0);
+ HEAP8[$138>>0] = $142;
+ $144 = $140 >>> 16;
+ $145 = $144&255;
+ $146 = ((($0)) + 67|0);
+ HEAP8[$143>>0] = $145;
+ $147 = $140 >>> 8;
+ $148 = $147&255;
+ $149 = ((($0)) + 68|0);
+ HEAP8[$146>>0] = $148;
+ $150 = $140&255;
+ $151 = ((($0)) + 69|0);
+ HEAP8[$149>>0] = $150;
+ $152 = ((($0)) + 28|0);
+ $153 = HEAP32[$152>>2]|0;
+ $154 = $153 >>> 24;
+ $155 = $154&255;
+ $156 = ((($0)) + 70|0);
+ HEAP8[$151>>0] = $155;
+ $157 = $153 >>> 16;
+ $158 = $157&255;
+ $159 = ((($0)) + 71|0);
+ HEAP8[$156>>0] = $158;
+ $160 = $153 >>> 8;
+ $161 = $160&255;
+ $162 = ((($0)) + 72|0);
+ HEAP8[$159>>0] = $161;
+ $163 = $153&255;
+ HEAP8[$162>>0] = $163;
+ $164 = HEAP8[$1>>0]|0;
+ $165 = $164 | 1;
+ HEAP8[$1>>0] = $165;
+ return;
+}
+function __gcry_hmac256_release($0) {
+ $0 = $0|0;
+ var $$mask = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, 
$24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, 
$34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, 
$42 = 0, $43 = 0, $44 = 0;
+ var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, 
$52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, 
$60 = 0, $61 = 0, $62 = 0;
+ var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $7 = 0, $8 = 0, $9 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  return;
+ }
+ $2 = ((($0)) + 40|0);
+ $3 = HEAP8[$2>>0]|0;
+ $$mask = $3 & 2;
+ $4 = ($$mask<<24>>24)==(0);
+ if (!($4)) {
+  $5 = ((($0)) + 105|0);
+  HEAP8[$5>>0] = 0;
+  $6 = ((($0)) + 106|0);
+  HEAP8[$6>>0] = 0;
+  $7 = ((($0)) + 107|0);
+  HEAP8[$7>>0] = 0;
+  $8 = ((($0)) + 108|0);
+  HEAP8[$8>>0] = 0;
+  $9 = ((($0)) + 109|0);
+  HEAP8[$9>>0] = 0;
+  $10 = ((($0)) + 110|0);
+  HEAP8[$10>>0] = 0;
+  $11 = ((($0)) + 111|0);
+  HEAP8[$11>>0] = 0;
+  $12 = ((($0)) + 112|0);
+  HEAP8[$12>>0] = 0;
+  $13 = ((($0)) + 113|0);
+  HEAP8[$13>>0] = 0;
+  $14 = ((($0)) + 114|0);
+  HEAP8[$14>>0] = 0;
+  $15 = ((($0)) + 115|0);
+  HEAP8[$15>>0] = 0;
+  $16 = ((($0)) + 116|0);
+  HEAP8[$16>>0] = 0;
+  $17 = ((($0)) + 117|0);
+  HEAP8[$17>>0] = 0;
+  $18 = ((($0)) + 118|0);
+  HEAP8[$18>>0] = 0;
+  $19 = ((($0)) + 119|0);
+  HEAP8[$19>>0] = 0;
+  $20 = ((($0)) + 120|0);
+  HEAP8[$20>>0] = 0;
+  $21 = ((($0)) + 121|0);
+  HEAP8[$21>>0] = 0;
+  $22 = ((($0)) + 122|0);
+  HEAP8[$22>>0] = 0;
+  $23 = ((($0)) + 123|0);
+  HEAP8[$23>>0] = 0;
+  $24 = ((($0)) + 124|0);
+  HEAP8[$24>>0] = 0;
+  $25 = ((($0)) + 125|0);
+  HEAP8[$25>>0] = 0;
+  $26 = ((($0)) + 126|0);
+  HEAP8[$26>>0] = 0;
+  $27 = ((($0)) + 127|0);
+  HEAP8[$27>>0] = 0;
+  $28 = ((($0)) + 128|0);
+  HEAP8[$28>>0] = 0;
+  $29 = ((($0)) + 129|0);
+  HEAP8[$29>>0] = 0;
+  $30 = ((($0)) + 130|0);
+  HEAP8[$30>>0] = 0;
+  $31 = ((($0)) + 131|0);
+  HEAP8[$31>>0] = 0;
+  $32 = ((($0)) + 132|0);
+  HEAP8[$32>>0] = 0;
+  $33 = ((($0)) + 133|0);
+  HEAP8[$33>>0] = 0;
+  $34 = ((($0)) + 134|0);
+  HEAP8[$34>>0] = 0;
+  $35 = ((($0)) + 135|0);
+  HEAP8[$35>>0] = 0;
+  $36 = ((($0)) + 136|0);
+  HEAP8[$36>>0] = 0;
+  $37 = ((($0)) + 137|0);
+  HEAP8[$37>>0] = 0;
+  $38 = ((($0)) + 138|0);
+  HEAP8[$38>>0] = 0;
+  $39 = ((($0)) + 139|0);
+  HEAP8[$39>>0] = 0;
+  $40 = ((($0)) + 140|0);
+  HEAP8[$40>>0] = 0;
+  $41 = ((($0)) + 141|0);
+  HEAP8[$41>>0] = 0;
+  $42 = ((($0)) + 142|0);
+  HEAP8[$42>>0] = 0;
+  $43 = ((($0)) + 143|0);
+  HEAP8[$43>>0] = 0;
+  $44 = ((($0)) + 144|0);
+  HEAP8[$44>>0] = 0;
+  $45 = ((($0)) + 145|0);
+  HEAP8[$45>>0] = 0;
+  $46 = ((($0)) + 146|0);
+  HEAP8[$46>>0] = 0;
+  $47 = ((($0)) + 147|0);
+  HEAP8[$47>>0] = 0;
+  $48 = ((($0)) + 148|0);
+  HEAP8[$48>>0] = 0;
+  $49 = ((($0)) + 149|0);
+  HEAP8[$49>>0] = 0;
+  $50 = ((($0)) + 150|0);
+  HEAP8[$50>>0] = 0;
+  $51 = ((($0)) + 151|0);
+  HEAP8[$51>>0] = 0;
+  $52 = ((($0)) + 152|0);
+  HEAP8[$52>>0] = 0;
+  $53 = ((($0)) + 153|0);
+  HEAP8[$53>>0] = 0;
+  $54 = ((($0)) + 154|0);
+  HEAP8[$54>>0] = 0;
+  $55 = ((($0)) + 155|0);
+  HEAP8[$55>>0] = 0;
+  $56 = ((($0)) + 156|0);
+  HEAP8[$56>>0] = 0;
+  $57 = ((($0)) + 157|0);
+  HEAP8[$57>>0] = 0;
+  $58 = ((($0)) + 158|0);
+  HEAP8[$58>>0] = 0;
+  $59 = ((($0)) + 159|0);
+  HEAP8[$59>>0] = 0;
+  $60 = ((($0)) + 160|0);
+  HEAP8[$60>>0] = 0;
+  $61 = ((($0)) + 161|0);
+  HEAP8[$61>>0] = 0;
+  $62 = ((($0)) + 162|0);
+  HEAP8[$62>>0] = 0;
+  $63 = ((($0)) + 163|0);
+  HEAP8[$63>>0] = 0;
+  $64 = ((($0)) + 164|0);
+  HEAP8[$64>>0] = 0;
+  $65 = ((($0)) + 165|0);
+  HEAP8[$65>>0] = 0;
+  $66 = ((($0)) + 166|0);
+  HEAP8[$66>>0] = 0;
+  $67 = ((($0)) + 167|0);
+  HEAP8[$67>>0] = 0;
+  $68 = ((($0)) + 168|0);
+  HEAP8[$68>>0] = 0;
+ }
+ _free($0);
+ return;
+}
+function _transform_1707($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0107122 = 0, $$0108121 = 0, $$0108121$phi = 0, $$0109120 = 0, 
$$0109120$phi = 0, $$0110119 = 0, $$0110119$phi = 0, $$0111118 = 0, $$0112117 = 
0, $$0112117$phi = 0, $$0113116 = 0, $$0113116$phi = 0, $$0114115 = 0, 
$$0114115$phi = 0, $$2124 = 0, $$3123 = 0, $$pre = 0, $10 = 0, $100 = 0, $101 = 
0;
+ var $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;
+ var $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, $136 = 0, $137 = 0, $138 = 0;
+ var $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 
= 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 
= 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0;
+ var $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 
= 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 
= 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0;
+ var $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 
= 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 
= 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0;
+ var $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 
= 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 
= 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0;
+ var $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, 
$217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, 
$224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0;
+ var $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 
= 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 
= 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0;
+ var $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 
= 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 
= 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0;
+ var $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;
+ var $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 
= 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 
= 0, $298 = 0, $3 = 0, $30 = 0, $31 = 0;
+ var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, 
$4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, 
$48 = 0, $49 = 0, $5 = 0;
+ var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, 
$58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, 
$66 = 0, $67 = 0, $68 = 0;
+ var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, 
$76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, 
$84 = 0, $85 = 0, $86 = 0;
+ var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, 
$94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, 
$exitcond131 = 0, dest = 0, label = 0, sp = 0, src = 0;
+ var stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 320|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(320|0);
+ $2 = sp + 256|0;
+ $3 = sp;
+ $4 = HEAP32[$0>>2]|0;
+ $5 = ((($0)) + 4|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ((($0)) + 8|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ((($0)) + 12|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ((($0)) + 16|0);
+ $12 = HEAP32[$11>>2]|0;
+ $13 = ((($0)) + 20|0);
+ $14 = HEAP32[$13>>2]|0;
+ $15 = ((($0)) + 24|0);
+ $16 = HEAP32[$15>>2]|0;
+ $17 = ((($0)) + 28|0);
+ $18 = HEAP32[$17>>2]|0;
+ $19 = ((($1)) + 1|0);
+ $20 = HEAP8[$1>>0]|0;
+ $21 = ((($2)) + 3|0);
+ HEAP8[$21>>0] = $20;
+ $22 = ((($1)) + 2|0);
+ $23 = HEAP8[$19>>0]|0;
+ $24 = ((($2)) + 2|0);
+ HEAP8[$24>>0] = $23;
+ $25 = ((($1)) + 3|0);
+ $26 = HEAP8[$22>>0]|0;
+ $27 = ((($2)) + 1|0);
+ HEAP8[$27>>0] = $26;
+ $28 = ((($1)) + 4|0);
+ $29 = HEAP8[$25>>0]|0;
+ HEAP8[$2>>0] = $29;
+ $30 = ((($2)) + 4|0);
+ $31 = ((($1)) + 5|0);
+ $32 = HEAP8[$28>>0]|0;
+ $33 = ((($30)) + 3|0);
+ HEAP8[$33>>0] = $32;
+ $34 = ((($1)) + 6|0);
+ $35 = HEAP8[$31>>0]|0;
+ $36 = ((($30)) + 2|0);
+ HEAP8[$36>>0] = $35;
+ $37 = ((($1)) + 7|0);
+ $38 = HEAP8[$34>>0]|0;
+ $39 = ((($30)) + 1|0);
+ HEAP8[$39>>0] = $38;
+ $40 = ((($1)) + 8|0);
+ $41 = HEAP8[$37>>0]|0;
+ HEAP8[$30>>0] = $41;
+ $42 = ((($2)) + 8|0);
+ $43 = ((($1)) + 9|0);
+ $44 = HEAP8[$40>>0]|0;
+ $45 = ((($42)) + 3|0);
+ HEAP8[$45>>0] = $44;
+ $46 = ((($1)) + 10|0);
+ $47 = HEAP8[$43>>0]|0;
+ $48 = ((($42)) + 2|0);
+ HEAP8[$48>>0] = $47;
+ $49 = ((($1)) + 11|0);
+ $50 = HEAP8[$46>>0]|0;
+ $51 = ((($42)) + 1|0);
+ HEAP8[$51>>0] = $50;
+ $52 = ((($1)) + 12|0);
+ $53 = HEAP8[$49>>0]|0;
+ HEAP8[$42>>0] = $53;
+ $54 = ((($2)) + 12|0);
+ $55 = ((($1)) + 13|0);
+ $56 = HEAP8[$52>>0]|0;
+ $57 = ((($54)) + 3|0);
+ HEAP8[$57>>0] = $56;
+ $58 = ((($1)) + 14|0);
+ $59 = HEAP8[$55>>0]|0;
+ $60 = ((($54)) + 2|0);
+ HEAP8[$60>>0] = $59;
+ $61 = ((($1)) + 15|0);
+ $62 = HEAP8[$58>>0]|0;
+ $63 = ((($54)) + 1|0);
+ HEAP8[$63>>0] = $62;
+ $64 = ((($1)) + 16|0);
+ $65 = HEAP8[$61>>0]|0;
+ HEAP8[$54>>0] = $65;
+ $66 = ((($2)) + 16|0);
+ $67 = ((($1)) + 17|0);
+ $68 = HEAP8[$64>>0]|0;
+ $69 = ((($66)) + 3|0);
+ HEAP8[$69>>0] = $68;
+ $70 = ((($1)) + 18|0);
+ $71 = HEAP8[$67>>0]|0;
+ $72 = ((($66)) + 2|0);
+ HEAP8[$72>>0] = $71;
+ $73 = ((($1)) + 19|0);
+ $74 = HEAP8[$70>>0]|0;
+ $75 = ((($66)) + 1|0);
+ HEAP8[$75>>0] = $74;
+ $76 = ((($1)) + 20|0);
+ $77 = HEAP8[$73>>0]|0;
+ HEAP8[$66>>0] = $77;
+ $78 = ((($2)) + 20|0);
+ $79 = ((($1)) + 21|0);
+ $80 = HEAP8[$76>>0]|0;
+ $81 = ((($78)) + 3|0);
+ HEAP8[$81>>0] = $80;
+ $82 = ((($1)) + 22|0);
+ $83 = HEAP8[$79>>0]|0;
+ $84 = ((($78)) + 2|0);
+ HEAP8[$84>>0] = $83;
+ $85 = ((($1)) + 23|0);
+ $86 = HEAP8[$82>>0]|0;
+ $87 = ((($78)) + 1|0);
+ HEAP8[$87>>0] = $86;
+ $88 = ((($1)) + 24|0);
+ $89 = HEAP8[$85>>0]|0;
+ HEAP8[$78>>0] = $89;
+ $90 = ((($2)) + 24|0);
+ $91 = ((($1)) + 25|0);
+ $92 = HEAP8[$88>>0]|0;
+ $93 = ((($90)) + 3|0);
+ HEAP8[$93>>0] = $92;
+ $94 = ((($1)) + 26|0);
+ $95 = HEAP8[$91>>0]|0;
+ $96 = ((($90)) + 2|0);
+ HEAP8[$96>>0] = $95;
+ $97 = ((($1)) + 27|0);
+ $98 = HEAP8[$94>>0]|0;
+ $99 = ((($90)) + 1|0);
+ HEAP8[$99>>0] = $98;
+ $100 = ((($1)) + 28|0);
+ $101 = HEAP8[$97>>0]|0;
+ HEAP8[$90>>0] = $101;
+ $102 = ((($2)) + 28|0);
+ $103 = ((($1)) + 29|0);
+ $104 = HEAP8[$100>>0]|0;
+ $105 = ((($102)) + 3|0);
+ HEAP8[$105>>0] = $104;
+ $106 = ((($1)) + 30|0);
+ $107 = HEAP8[$103>>0]|0;
+ $108 = ((($102)) + 2|0);
+ HEAP8[$108>>0] = $107;
+ $109 = ((($1)) + 31|0);
+ $110 = HEAP8[$106>>0]|0;
+ $111 = ((($102)) + 1|0);
+ HEAP8[$111>>0] = $110;
+ $112 = ((($1)) + 32|0);
+ $113 = HEAP8[$109>>0]|0;
+ HEAP8[$102>>0] = $113;
+ $114 = ((($2)) + 32|0);
+ $115 = ((($1)) + 33|0);
+ $116 = HEAP8[$112>>0]|0;
+ $117 = ((($114)) + 3|0);
+ HEAP8[$117>>0] = $116;
+ $118 = ((($1)) + 34|0);
+ $119 = HEAP8[$115>>0]|0;
+ $120 = ((($114)) + 2|0);
+ HEAP8[$120>>0] = $119;
+ $121 = ((($1)) + 35|0);
+ $122 = HEAP8[$118>>0]|0;
+ $123 = ((($114)) + 1|0);
+ HEAP8[$123>>0] = $122;
+ $124 = ((($1)) + 36|0);
+ $125 = HEAP8[$121>>0]|0;
+ HEAP8[$114>>0] = $125;
+ $126 = ((($2)) + 36|0);
+ $127 = ((($1)) + 37|0);
+ $128 = HEAP8[$124>>0]|0;
+ $129 = ((($126)) + 3|0);
+ HEAP8[$129>>0] = $128;
+ $130 = ((($1)) + 38|0);
+ $131 = HEAP8[$127>>0]|0;
+ $132 = ((($126)) + 2|0);
+ HEAP8[$132>>0] = $131;
+ $133 = ((($1)) + 39|0);
+ $134 = HEAP8[$130>>0]|0;
+ $135 = ((($126)) + 1|0);
+ HEAP8[$135>>0] = $134;
+ $136 = ((($1)) + 40|0);
+ $137 = HEAP8[$133>>0]|0;
+ HEAP8[$126>>0] = $137;
+ $138 = ((($2)) + 40|0);
+ $139 = ((($1)) + 41|0);
+ $140 = HEAP8[$136>>0]|0;
+ $141 = ((($138)) + 3|0);
+ HEAP8[$141>>0] = $140;
+ $142 = ((($1)) + 42|0);
+ $143 = HEAP8[$139>>0]|0;
+ $144 = ((($138)) + 2|0);
+ HEAP8[$144>>0] = $143;
+ $145 = ((($1)) + 43|0);
+ $146 = HEAP8[$142>>0]|0;
+ $147 = ((($138)) + 1|0);
+ HEAP8[$147>>0] = $146;
+ $148 = ((($1)) + 44|0);
+ $149 = HEAP8[$145>>0]|0;
+ HEAP8[$138>>0] = $149;
+ $150 = ((($2)) + 44|0);
+ $151 = ((($1)) + 45|0);
+ $152 = HEAP8[$148>>0]|0;
+ $153 = ((($150)) + 3|0);
+ HEAP8[$153>>0] = $152;
+ $154 = ((($1)) + 46|0);
+ $155 = HEAP8[$151>>0]|0;
+ $156 = ((($150)) + 2|0);
+ HEAP8[$156>>0] = $155;
+ $157 = ((($1)) + 47|0);
+ $158 = HEAP8[$154>>0]|0;
+ $159 = ((($150)) + 1|0);
+ HEAP8[$159>>0] = $158;
+ $160 = ((($1)) + 48|0);
+ $161 = HEAP8[$157>>0]|0;
+ HEAP8[$150>>0] = $161;
+ $162 = ((($2)) + 48|0);
+ $163 = ((($1)) + 49|0);
+ $164 = HEAP8[$160>>0]|0;
+ $165 = ((($162)) + 3|0);
+ HEAP8[$165>>0] = $164;
+ $166 = ((($1)) + 50|0);
+ $167 = HEAP8[$163>>0]|0;
+ $168 = ((($162)) + 2|0);
+ HEAP8[$168>>0] = $167;
+ $169 = ((($1)) + 51|0);
+ $170 = HEAP8[$166>>0]|0;
+ $171 = ((($162)) + 1|0);
+ HEAP8[$171>>0] = $170;
+ $172 = ((($1)) + 52|0);
+ $173 = HEAP8[$169>>0]|0;
+ HEAP8[$162>>0] = $173;
+ $174 = ((($2)) + 52|0);
+ $175 = ((($1)) + 53|0);
+ $176 = HEAP8[$172>>0]|0;
+ $177 = ((($174)) + 3|0);
+ HEAP8[$177>>0] = $176;
+ $178 = ((($1)) + 54|0);
+ $179 = HEAP8[$175>>0]|0;
+ $180 = ((($174)) + 2|0);
+ HEAP8[$180>>0] = $179;
+ $181 = ((($1)) + 55|0);
+ $182 = HEAP8[$178>>0]|0;
+ $183 = ((($174)) + 1|0);
+ HEAP8[$183>>0] = $182;
+ $184 = ((($1)) + 56|0);
+ $185 = HEAP8[$181>>0]|0;
+ HEAP8[$174>>0] = $185;
+ $186 = ((($2)) + 56|0);
+ $187 = ((($1)) + 57|0);
+ $188 = HEAP8[$184>>0]|0;
+ $189 = ((($186)) + 3|0);
+ HEAP8[$189>>0] = $188;
+ $190 = ((($1)) + 58|0);
+ $191 = HEAP8[$187>>0]|0;
+ $192 = ((($186)) + 2|0);
+ HEAP8[$192>>0] = $191;
+ $193 = ((($1)) + 59|0);
+ $194 = HEAP8[$190>>0]|0;
+ $195 = ((($186)) + 1|0);
+ HEAP8[$195>>0] = $194;
+ $196 = ((($1)) + 60|0);
+ $197 = HEAP8[$193>>0]|0;
+ HEAP8[$186>>0] = $197;
+ $198 = ((($2)) + 60|0);
+ $199 = ((($1)) + 61|0);
+ $200 = HEAP8[$196>>0]|0;
+ $201 = ((($198)) + 3|0);
+ HEAP8[$201>>0] = $200;
+ $202 = ((($1)) + 62|0);
+ $203 = HEAP8[$199>>0]|0;
+ $204 = ((($198)) + 2|0);
+ HEAP8[$204>>0] = $203;
+ $205 = ((($1)) + 63|0);
+ $206 = HEAP8[$202>>0]|0;
+ $207 = ((($198)) + 1|0);
+ HEAP8[$207>>0] = $206;
+ $208 = HEAP8[$205>>0]|0;
+ HEAP8[$198>>0] = $208;
+ dest=$3; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; 
dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ $$pre = HEAP32[$3>>2]|0;
+ $$2124 = 16;$237 = $$pre;
+ while(1) {
+  $209 = (($$2124) + -2)|0;
+  $210 = (($3) + ($209<<2)|0);
+  $211 = HEAP32[$210>>2]|0;
+  $212 = $211 >>> 17;
+  $213 = $211 << 15;
+  $214 = $213 | $212;
+  $215 = $211 >>> 19;
+  $216 = $211 << 13;
+  $217 = $216 | $215;
+  $218 = $211 >>> 10;
+  $219 = $217 ^ $218;
+  $220 = $219 ^ $214;
+  $221 = (($$2124) + -7)|0;
+  $222 = (($3) + ($221<<2)|0);
+  $223 = HEAP32[$222>>2]|0;
+  $224 = (($$2124) + -15)|0;
+  $225 = (($3) + ($224<<2)|0);
+  $226 = HEAP32[$225>>2]|0;
+  $227 = $226 >>> 7;
+  $228 = $226 << 25;
+  $229 = $228 | $227;
+  $230 = $226 >>> 18;
+  $231 = $226 << 14;
+  $232 = $231 | $230;
+  $233 = $226 >>> 3;
+  $234 = $232 ^ $233;
+  $235 = $234 ^ $229;
+  $236 = (($237) + ($223))|0;
+  $238 = (($236) + ($220))|0;
+  $239 = (($238) + ($235))|0;
+  $240 = (($3) + ($$2124<<2)|0);
+  HEAP32[$240>>2] = $239;
+  $241 = (($$2124) + 1)|0;
+  $exitcond131 = ($241|0)==(64);
+  if ($exitcond131) {
+   break;
+  } else {
+   $$2124 = $241;$237 = $226;
+  }
+ }
+ $$0107122 = $4;$$0108121 = $18;$$0109120 = $16;$$0110119 = $14;$$0111118 = 
$12;$$0112117 = $10;$$0113116 = $8;$$0114115 = $6;$$3123 = 0;
+ while(1) {
+  $242 = $$0111118 >>> 6;
+  $243 = $$0111118 << 26;
+  $244 = $243 | $242;
+  $245 = $$0111118 >>> 11;
+  $246 = $$0111118 << 21;
+  $247 = $246 | $245;
+  $248 = $244 ^ $247;
+  $249 = $$0111118 >>> 25;
+  $250 = $$0111118 << 7;
+  $251 = $250 | $249;
+  $252 = $248 ^ $251;
+  $253 = (($252) + ($$0108121))|0;
+  $254 = $$0109120 ^ $$0110119;
+  $255 = $254 & $$0111118;
+  $256 = $255 ^ $$0109120;
+  $257 = (($253) + ($256))|0;
+  $258 = (15440 + ($$3123<<2)|0);
+  $259 = HEAP32[$258>>2]|0;
+  $260 = (($257) + ($259))|0;
+  $261 = (($3) + ($$3123<<2)|0);
+  $262 = HEAP32[$261>>2]|0;
+  $263 = (($260) + ($262))|0;
+  $264 = $$0107122 >>> 2;
+  $265 = $$0107122 << 30;
+  $266 = $265 | $264;
+  $267 = $$0107122 >>> 13;
+  $268 = $$0107122 << 19;
+  $269 = $268 | $267;
+  $270 = $266 ^ $269;
+  $271 = $$0107122 >>> 22;
+  $272 = $$0107122 << 10;
+  $273 = $272 | $271;
+  $274 = $270 ^ $273;
+  $275 = $$0107122 & $$0114115;
+  $276 = $$0107122 | $$0114115;
+  $277 = $276 & $$0113116;
+  $278 = $277 | $275;
+  $279 = (($274) + ($278))|0;
+  $280 = (($263) + ($$0112117))|0;
+  $281 = (($279) + ($263))|0;
+  $282 = (($$3123) + 1)|0;
+  $exitcond = ($282|0)==(64);
+  if ($exitcond) {
+   break;
+  } else {
+   $$0114115$phi = $$0107122;$$0113116$phi = $$0114115;$$0112117$phi = 
$$0113116;$$0110119$phi = $$0111118;$$0109120$phi = $$0110119;$$0108121$phi = 
$$0109120;$$0107122 = $281;$$0111118 = $280;$$3123 = $282;$$0114115 = 
$$0114115$phi;$$0113116 = $$0113116$phi;$$0112117 = $$0112117$phi;$$0110119 = 
$$0110119$phi;$$0109120 = $$0109120$phi;$$0108121 = $$0108121$phi;
+  }
+ }
+ $283 = HEAP32[$0>>2]|0;
+ $284 = (($283) + ($281))|0;
+ HEAP32[$0>>2] = $284;
+ $285 = HEAP32[$5>>2]|0;
+ $286 = (($285) + ($$0107122))|0;
+ HEAP32[$5>>2] = $286;
+ $287 = HEAP32[$7>>2]|0;
+ $288 = (($287) + ($$0114115))|0;
+ HEAP32[$7>>2] = $288;
+ $289 = HEAP32[$9>>2]|0;
+ $290 = (($289) + ($$0113116))|0;
+ HEAP32[$9>>2] = $290;
+ $291 = HEAP32[$11>>2]|0;
+ $292 = (($291) + ($280))|0;
+ HEAP32[$11>>2] = $292;
+ $293 = HEAP32[$13>>2]|0;
+ $294 = (($293) + ($$0111118))|0;
+ HEAP32[$13>>2] = $294;
+ $295 = HEAP32[$15>>2]|0;
+ $296 = (($295) + ($$0110119))|0;
+ HEAP32[$15>>2] = $296;
+ $297 = HEAP32[$17>>2]|0;
+ $298 = (($297) + ($$0109120))|0;
+ HEAP32[$17>>2] = $298;
+ STACKTOP = sp;return;
+}
+function __gcry_hmac256_finalize($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$1 = 0, $$mask = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 
0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 
0, $5 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
+ sp = STACKTOP;
+ _finalize($0);
+ $2 = ((($0)) + 40|0);
+ $3 = HEAP8[$2>>0]|0;
+ $$mask = $3 & 2;
+ $4 = ($$mask<<24>>24)==(0);
+ do {
+  if (!($4)) {
+   $5 = (_malloc(172)|0);
+   $6 = ($5|0)==(0|0);
+   if (!($6)) {
+    HEAP32[$5>>2] = 1779033703;
+    $7 = ((($5)) + 4|0);
+    HEAP32[$7>>2] = -1150833019;
+    $8 = ((($5)) + 8|0);
+    HEAP32[$8>>2] = 1013904242;
+    $9 = ((($5)) + 12|0);
+    HEAP32[$9>>2] = -1521486534;
+    $10 = ((($5)) + 16|0);
+    HEAP32[$10>>2] = 1359893119;
+    $11 = ((($5)) + 20|0);
+    HEAP32[$11>>2] = -1694144372;
+    $12 = ((($5)) + 24|0);
+    HEAP32[$12>>2] = 528734635;
+    $13 = ((($5)) + 28|0);
+    HEAP32[$13>>2] = 1541459225;
+    $14 = ((($5)) + 32|0);
+    HEAP32[$14>>2] = 0;
+    $15 = ((($5)) + 36|0);
+    HEAP32[$15>>2] = 0;
+    $16 = ((($5)) + 40|0);
+    HEAP8[$16>>0] = 0;
+    $17 = ((($0)) + 105|0);
+    __gcry_hmac256_update($5,$17,64);
+    $18 = ((($0)) + 41|0);
+    __gcry_hmac256_update($5,$18,32);
+    _finalize($5);
+    $19 = ((($5)) + 41|0);
+    dest=$18; src=$19; 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($5);
+    break;
+   }
+   _free($0);
+   $$1 = 0;
+   return ($$1|0);
+  }
+ } while(0);
+ $20 = ($1|0)==(0|0);
+ if (!($20)) {
+  HEAP32[$1>>2] = 32;
+ }
+ $21 = ((($0)) + 41|0);
+ $$1 = $21;
+ return ($$1|0);
+}
+function __gcry_cipher_aeswrap_encrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $$06169 = 0, $$06268 = 0, $$06466 = 0, $$06466$us = 0, $$1$lcssa 
= 0, $$167 = 0, $$167$us = 0, $$pre$phiZ2D = 0, $$promoted = 0, $$promoted101 = 
0, $$promoted103 = 0, $$promoted105 = 0, $$promoted107 = 0, $$promoted109 = 0, 
$$promoted99 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0;
+ var $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;
+ var $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, $136 = 0, $137 = 0, $138 = 0, $139 = 0;
+ var $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 
= 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 
= 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0;
+ var $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 
= 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 
= 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0;
+ var $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 
= 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 
= 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0;
+ var $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 
= 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 
= 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0;
+ var $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, 
$219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, 
$226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0;
+ var $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, 
$237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, 
$244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0;
+ var $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 
= 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 
= 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0;
+ var $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;
+ var $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 
= 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 
= 0, $30 = 0, $300 = 0, $301 = 0, $31 = 0;
+ var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, 
$40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 
0, $49 = 0, $5 = 0, $50 = 0;
+ var $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, 
$59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, 
$67 = 0, $68 = 0, $69 = 0;
+ var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, 
$77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, 
$85 = 0, $86 = 0, $87 = 0;
+ var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, 
$95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $spec$select = 0, 
$spec$select142 = 0, $spec$select144 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $5 = sp;
+ $6 = ((($0)) + 12|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ((($7)) + 20|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ($9|0)==(16);
+ if (!($10)) {
+  $$0 = 139;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $11 = (($4) + 8)|0;
+ $12 = ($11>>>0)>($2>>>0);
+ if ($12) {
+  $$0 = 200;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $13 = $4 & 7;
+ $14 = ($13|0)==(0);
+ if (!($14)) {
+  $$0 = 45;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $15 = $4 >>> 3;
+ $16 = ($4>>>0)<(16);
+ if ($16) {
+  $$0 = 45;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $17 = ((($0)) + 80|0);
+ $18 = ((($0)) + 56|0);
+ $19 = HEAP8[$18>>0]|0;
+ $20 = $19 & 2;
+ $21 = ($20<<24>>24)==(0);
+ if ($21) {
+  $33 = $1;
+  $34 = $33;
+  
HEAP8[$34>>0]=-1499027802&255;HEAP8[$34+1>>0]=(-1499027802>>8)&255;HEAP8[$34+2>>0]=(-1499027802>>16)&255;HEAP8[$34+3>>0]=-1499027802>>24;
+  $35 = (($33) + 4)|0;
+  $36 = $35;
+  
HEAP8[$36>>0]=-1499027802&255;HEAP8[$36+1>>0]=(-1499027802>>8)&255;HEAP8[$36+2>>0]=(-1499027802>>16)&255;HEAP8[$36+3>>0]=-1499027802>>24;
+  $$pre$phiZ2D = $1;
+ } else {
+  $22 = ((($0)) + 64|0);
+  $23 = $22;
+  $24 = $23;
+  $25 = 
HEAPU8[$24>>0]|(HEAPU8[$24+1>>0]<<8)|(HEAPU8[$24+2>>0]<<16)|(HEAPU8[$24+3>>0]<<24);
+  $26 = (($23) + 4)|0;
+  $27 = $26;
+  $28 = 
HEAPU8[$27>>0]|(HEAPU8[$27+1>>0]<<8)|(HEAPU8[$27+2>>0]<<16)|(HEAPU8[$27+3>>0]<<24);
+  $29 = $1;
+  $30 = $29;
+  
HEAP8[$30>>0]=$25&255;HEAP8[$30+1>>0]=($25>>8)&255;HEAP8[$30+2>>0]=($25>>16)&255;HEAP8[$30+3>>0]=$25>>24;
+  $31 = (($29) + 4)|0;
+  $32 = $31;
+  
HEAP8[$32>>0]=$28&255;HEAP8[$32+1>>0]=($28>>8)&255;HEAP8[$32+2>>0]=($28>>16)&255;HEAP8[$32+3>>0]=$28>>24;
+  $$pre$phiZ2D = $1;
+ }
+ $37 = ((($1)) + 8|0);
+ _memmove(($37|0),($3|0),($4|0))|0;
+ $38 = $5;
+ $39 = $38;
+ HEAP32[$39>>2] = 0;
+ $40 = (($38) + 4)|0;
+ $41 = $40;
+ HEAP32[$41>>2] = 0;
+ $42 = ($15|0)==(0);
+ $43 = ((($0)) + 88|0);
+ $44 = ((($0)) + 496|0);
+ $45 = $1;
+ $46 = $17;
+ $47 = $46 | $45;
+ $48 = $47 & 3;
+ $49 = ($48|0)==(0);
+ $50 = ((($17)) + 4|0);
+ $51 = ((($5)) + 4|0);
+ $52 = ((($1)) + 4|0);
+ $53 = ((($5)) + 7|0);
+ $54 = ((($5)) + 6|0);
+ $55 = ((($5)) + 5|0);
+ $56 = ((($5)) + 4|0);
+ $57 = ((($5)) + 3|0);
+ $58 = ((($5)) + 2|0);
+ $59 = ((($5)) + 1|0);
+ $60 = ((($17)) + 1|0);
+ $61 = ((($5)) + 7|0);
+ $62 = ((($5)) + 6|0);
+ $63 = ((($1)) + 1|0);
+ $64 = ((($17)) + 2|0);
+ $65 = ((($1)) + 2|0);
+ $66 = ((($17)) + 3|0);
+ $67 = ((($1)) + 3|0);
+ $68 = ((($17)) + 4|0);
+ $69 = ((($1)) + 4|0);
+ $70 = ((($17)) + 5|0);
+ $71 = ((($1)) + 5|0);
+ $72 = ((($17)) + 6|0);
+ $73 = ((($1)) + 6|0);
+ $74 = ((($17)) + 7|0);
+ $75 = ((($1)) + 7|0);
+ $76 = ((($5)) + 5|0);
+ $77 = ((($5)) + 4|0);
+ $78 = ((($5)) + 3|0);
+ $79 = ((($5)) + 2|0);
+ $80 = ((($5)) + 1|0);
+ $$06169 = 0;$$06268 = 0;$249 = 0;$250 = 0;$251 = 0;$252 = 0;$253 = 0;$254 = 
0;$255 = 0;$256 = 0;$257 = 0;$258 = 0;$259 = 0;$260 = 0;$261 = 0;$262 = 0;
+ while(1) {
+  do {
+   if ($42) {
+    $$1$lcssa = $$06169;$263 = $249;$264 = $250;$265 = $251;$266 = $252;$267 = 
$253;$268 = $254;$269 = $255;$270 = $256;$271 = $257;$272 = $258;$273 = 
$259;$274 = $260;$275 = $261;$276 = $262;
+   } else {
+    if ($49) {
+     $$06466$us = 1;$$167$us = $$06169;$110 = $262;$113 = $252;$233 = 
$251;$236 = $250;$239 = $258;$242 = $257;$245 = $256;$248 = $249;$277 = 
$260;$278 = $261;
+     while(1) {
+      $81 = $$pre$phiZ2D;
+      $82 = $81;
+      $83 = 
HEAPU8[$82>>0]|(HEAPU8[$82+1>>0]<<8)|(HEAPU8[$82+2>>0]<<16)|(HEAPU8[$82+3>>0]<<24);
+      $84 = (($81) + 4)|0;
+      $85 = $84;
+      $86 = 
HEAPU8[$85>>0]|(HEAPU8[$85+1>>0]<<8)|(HEAPU8[$85+2>>0]<<16)|(HEAPU8[$85+3>>0]<<24);
+      $87 = $17;
+      $88 = $87;
+      
HEAP8[$88>>0]=$83&255;HEAP8[$88+1>>0]=($83>>8)&255;HEAP8[$88+2>>0]=($83>>16)&255;HEAP8[$88+3>>0]=$83>>24;
+      $89 = (($87) + 4)|0;
+      $90 = $89;
+      
HEAP8[$90>>0]=$86&255;HEAP8[$90+1>>0]=($86>>8)&255;HEAP8[$90+2>>0]=($86>>16)&255;HEAP8[$90+3>>0]=$86>>24;
+      $91 = $$06466$us << 3;
+      $92 = (($1) + ($91)|0);
+      $93 = $92;
+      $94 = $93;
+      $95 = 
HEAPU8[$94>>0]|(HEAPU8[$94+1>>0]<<8)|(HEAPU8[$94+2>>0]<<16)|(HEAPU8[$94+3>>0]<<24);
+      $96 = (($93) + 4)|0;
+      $97 = $96;
+      $98 = 
HEAPU8[$97>>0]|(HEAPU8[$97+1>>0]<<8)|(HEAPU8[$97+2>>0]<<16)|(HEAPU8[$97+3>>0]<<24);
+      $99 = $43;
+      $100 = $99;
+      
HEAP8[$100>>0]=$95&255;HEAP8[$100+1>>0]=($95>>8)&255;HEAP8[$100+2>>0]=($95>>16)&255;HEAP8[$100+3>>0]=$95>>24;
+      $101 = (($99) + 4)|0;
+      $102 = $101;
+      
HEAP8[$102>>0]=$98&255;HEAP8[$102+1>>0]=($98>>8)&255;HEAP8[$102+2>>0]=($98>>16)&255;HEAP8[$102+3>>0]=$98>>24;
+      $103 = HEAP32[$6>>2]|0;
+      $104 = ((($103)) + 36|0);
+      $105 = HEAP32[$104>>2]|0;
+      $106 = (FUNCTION_TABLE_iiii[$105 & 127]($44,$17,$17)|0);
+      $107 = ($106>>>0)>($$167$us>>>0);
+      $108 = $107 ? $106 : $$167$us;
+      $109 = (($110) + 1)<<24>>24;
+      HEAP8[$53>>0] = $109;
+      $111 = ($109<<24>>24)==(0);
+      if ($111) {
+       $112 = (($113) + 1)<<24>>24;
+       HEAP8[$54>>0] = $112;
+       $114 = ($112<<24>>24)==(0);
+       if ($114) {
+        $232 = (($233) + 1)<<24>>24;
+        HEAP8[$55>>0] = $232;
+        $234 = ($232<<24>>24)==(0);
+        if ($234) {
+         $235 = (($236) + 1)<<24>>24;
+         HEAP8[$56>>0] = $235;
+         $237 = ($235<<24>>24)==(0);
+         if ($237) {
+          $238 = (($239) + 1)<<24>>24;
+          HEAP8[$57>>0] = $238;
+          $240 = ($238<<24>>24)==(0);
+          if ($240) {
+           $241 = (($242) + 1)<<24>>24;
+           HEAP8[$58>>0] = $241;
+           $243 = ($241<<24>>24)==(0);
+           if ($243) {
+            $244 = (($245) + 1)<<24>>24;
+            HEAP8[$59>>0] = $244;
+            $246 = ($244<<24>>24)==(0);
+            if ($246) {
+             $247 = (($248) + 1)<<24>>24;
+             HEAP8[$5>>0] = $247;
+             $279 = 0;$280 = 0;$281 = 0;$282 = 0;$283 = 0;$284 = 0;$285 = 0;
+            } else {
+             $279 = 0;$280 = 0;$281 = $244;$282 = 0;$283 = 0;$284 = 0;$285 = 0;
+            }
+           } else {
+            $279 = 0;$280 = 0;$281 = $245;$282 = $241;$283 = 0;$284 = 0;$285 = 
0;
+           }
+          } else {
+           $279 = 0;$280 = 0;$281 = $245;$282 = $242;$283 = $238;$284 = 0;$285 
= 0;
+          }
+         } else {
+          $279 = 0;$280 = 0;$281 = $245;$282 = $242;$283 = $239;$284 = 0;$285 
= 0;
+         }
+        } else {
+         $279 = $232;$280 = 0;$281 = $245;$282 = $242;$283 = $239;$284 = 
$232;$285 = 0;
+        }
+       } else {
+        $279 = $233;$280 = $112;$281 = $245;$282 = $242;$283 = $239;$284 = 
$277;$285 = $112;
+       }
+      } else {
+       $279 = $233;$280 = $113;$281 = $245;$282 = $242;$283 = $239;$284 = 
$277;$285 = $278;
+      }
+      $115 = HEAP32[$17>>2]|0;
+      $116 = HEAP32[$5>>2]|0;
+      $117 = $116 ^ $115;
+      HEAP32[$1>>2] = $117;
+      $118 = HEAP32[$50>>2]|0;
+      $119 = HEAP32[$51>>2]|0;
+      $120 = $119 ^ $118;
+      HEAP32[$52>>2] = $120;
+      $121 = $43;
+      $122 = $121;
+      $123 = 
HEAPU8[$122>>0]|(HEAPU8[$122+1>>0]<<8)|(HEAPU8[$122+2>>0]<<16)|(HEAPU8[$122+3>>0]<<24);
+      $124 = (($121) + 4)|0;
+      $125 = $124;
+      $126 = 
HEAPU8[$125>>0]|(HEAPU8[$125+1>>0]<<8)|(HEAPU8[$125+2>>0]<<16)|(HEAPU8[$125+3>>0]<<24);
+      $127 = $92;
+      $128 = $127;
+      
HEAP8[$128>>0]=$123&255;HEAP8[$128+1>>0]=($123>>8)&255;HEAP8[$128+2>>0]=($123>>16)&255;HEAP8[$128+3>>0]=$123>>24;
+      $129 = (($127) + 4)|0;
+      $130 = $129;
+      
HEAP8[$130>>0]=$126&255;HEAP8[$130+1>>0]=($126>>8)&255;HEAP8[$130+2>>0]=($126>>16)&255;HEAP8[$130+3>>0]=$126>>24;
+      $131 = (($$06466$us) + 1)|0;
+      $132 = ($$06466$us>>>0)<($15>>>0);
+      $133 = $119&255;
+      $134 = $116&255;
+      if ($132) {
+       $$06466$us = $131;$$167$us = $108;$110 = $109;$113 = $280;$233 = 
$279;$236 = $133;$239 = $283;$242 = $282;$245 = $281;$248 = $134;$277 = 
$284;$278 = $285;
+      } else {
+       $$1$lcssa = $108;$263 = $134;$264 = $133;$265 = $279;$266 = $280;$267 = 
$133;$268 = $134;$269 = $134;$270 = $281;$271 = $282;$272 = $283;$273 = 
$133;$274 = $284;$275 = $285;$276 = $109;
+       break;
+      }
+     }
+    } else {
+     $$promoted = HEAP8[$62>>0]|0;
+     $$promoted99 = HEAP8[$76>>0]|0;
+     $$promoted101 = HEAP8[$77>>0]|0;
+     $$promoted103 = HEAP8[$78>>0]|0;
+     $$promoted105 = HEAP8[$79>>0]|0;
+     $$promoted107 = HEAP8[$80>>0]|0;
+     $$promoted109 = HEAP8[$5>>0]|0;
+     $$06466 = 1;$$167 = $$06169;$164 = $262;$167 = $261;$213 = $260;$216 = 
$259;$219 = $258;$222 = $257;$225 = $256;$228 = $255;$229 = $$promoted109;$230 
= $249;$231 = $254;$286 = $$promoted107;$287 = $$promoted105;$288 = 
$$promoted103;$289 = $$promoted101;$290 = $$promoted99;$291 = $$promoted;$292 = 
$250;$293 = $251;$294 = $252;$295 = $253;
+     while(1) {
+      $135 = $$pre$phiZ2D;
+      $136 = $135;
+      $137 = 
HEAPU8[$136>>0]|(HEAPU8[$136+1>>0]<<8)|(HEAPU8[$136+2>>0]<<16)|(HEAPU8[$136+3>>0]<<24);
+      $138 = (($135) + 4)|0;
+      $139 = $138;
+      $140 = 
HEAPU8[$139>>0]|(HEAPU8[$139+1>>0]<<8)|(HEAPU8[$139+2>>0]<<16)|(HEAPU8[$139+3>>0]<<24);
+      $141 = $17;
+      $142 = $141;
+      
HEAP8[$142>>0]=$137&255;HEAP8[$142+1>>0]=($137>>8)&255;HEAP8[$142+2>>0]=($137>>16)&255;HEAP8[$142+3>>0]=$137>>24;
+      $143 = (($141) + 4)|0;
+      $144 = $143;
+      
HEAP8[$144>>0]=$140&255;HEAP8[$144+1>>0]=($140>>8)&255;HEAP8[$144+2>>0]=($140>>16)&255;HEAP8[$144+3>>0]=$140>>24;
+      $145 = $$06466 << 3;
+      $146 = (($1) + ($145)|0);
+      $147 = $146;
+      $148 = $147;
+      $149 = 
HEAPU8[$148>>0]|(HEAPU8[$148+1>>0]<<8)|(HEAPU8[$148+2>>0]<<16)|(HEAPU8[$148+3>>0]<<24);
+      $150 = (($147) + 4)|0;
+      $151 = $150;
+      $152 = 
HEAPU8[$151>>0]|(HEAPU8[$151+1>>0]<<8)|(HEAPU8[$151+2>>0]<<16)|(HEAPU8[$151+3>>0]<<24);
+      $153 = $43;
+      $154 = $153;
+      
HEAP8[$154>>0]=$149&255;HEAP8[$154+1>>0]=($149>>8)&255;HEAP8[$154+2>>0]=($149>>16)&255;HEAP8[$154+3>>0]=$149>>24;
+      $155 = (($153) + 4)|0;
+      $156 = $155;
+      
HEAP8[$156>>0]=$152&255;HEAP8[$156+1>>0]=($152>>8)&255;HEAP8[$156+2>>0]=($152>>16)&255;HEAP8[$156+3>>0]=$152>>24;
+      $157 = HEAP32[$6>>2]|0;
+      $158 = ((($157)) + 36|0);
+      $159 = HEAP32[$158>>2]|0;
+      $160 = (FUNCTION_TABLE_iiii[$159 & 127]($44,$17,$17)|0);
+      $161 = ($160>>>0)>($$167>>>0);
+      $162 = $161 ? $160 : $$167;
+      $163 = (($164) + 1)<<24>>24;
+      $165 = ($163<<24>>24)==(0);
+      if ($165) {
+       $166 = (($167) + 1)<<24>>24;
+       $168 = ($166<<24>>24)==(0);
+       if ($168) {
+        $212 = (($213) + 1)<<24>>24;
+        $214 = ($212<<24>>24)==(0);
+        if ($214) {
+         $215 = (($216) + 1)<<24>>24;
+         $217 = ($215<<24>>24)==(0);
+         if ($217) {
+          $218 = (($219) + 1)<<24>>24;
+          $220 = ($218<<24>>24)==(0);
+          if ($220) {
+           $221 = (($222) + 1)<<24>>24;
+           $223 = ($221<<24>>24)==(0);
+           if ($223) {
+            $224 = (($225) + 1)<<24>>24;
+            $226 = ($224<<24>>24)==(0);
+            $227 = (($228) + 1)<<24>>24;
+            $spec$select = $226 ? $227 : $229;
+            $spec$select142 = $226 ? $227 : $230;
+            $spec$select144 = $226 ? $227 : $231;
+            $171 = $spec$select144;$174 = $224;$177 = 0;$180 = 0;$183 = 0;$186 
= $212;$189 = $166;$204 = $215;$205 = $218;$206 = $221;$207 = $224;$208 = 
$spec$select;$296 = $spec$select142;$297 = 0;$298 = 0;$299 = 0;$300 = 0;$301 = 
0;
+           } else {
+            $171 = $231;$174 = $225;$177 = $221;$180 = 0;$183 = 0;$186 = 
$212;$189 = $166;$204 = $215;$205 = $218;$206 = $221;$207 = $286;$208 = 
$229;$296 = $230;$297 = 0;$298 = 0;$299 = 0;$300 = 0;$301 = 0;
+           }
+          } else {
+           $171 = $231;$174 = $225;$177 = $222;$180 = $218;$183 = 0;$186 = 
$212;$189 = $166;$204 = $215;$205 = $218;$206 = $287;$207 = $286;$208 = 
$229;$296 = $230;$297 = 0;$298 = 0;$299 = 0;$300 = 0;$301 = 0;
+          }
+         } else {
+          $171 = $231;$174 = $225;$177 = $222;$180 = $219;$183 = $215;$186 = 
$212;$189 = $166;$204 = $215;$205 = $288;$206 = $287;$207 = $286;$208 = 
$229;$296 = $230;$297 = $215;$298 = 0;$299 = 0;$300 = 0;$301 = 0;
+         }
+        } else {
+         $171 = $231;$174 = $225;$177 = $222;$180 = $219;$183 = $295;$186 = 
$212;$189 = $166;$204 = $289;$205 = $288;$206 = $287;$207 = $286;$208 = 
$229;$296 = $230;$297 = $292;$298 = $212;$299 = 0;$300 = $212;$301 = 0;
+        }
+       } else {
+        $171 = $231;$174 = $225;$177 = $222;$180 = $219;$183 = $295;$186 = 
$290;$189 = $166;$204 = $289;$205 = $288;$206 = $287;$207 = $286;$208 = 
$229;$296 = $230;$297 = $292;$298 = $293;$299 = $166;$300 = $213;$301 = $166;
+       }
+      } else {
+       $171 = $231;$174 = $225;$177 = $222;$180 = $219;$183 = $295;$186 = 
$290;$189 = $291;$204 = $289;$205 = $288;$206 = $287;$207 = $286;$208 = 
$229;$296 = $230;$297 = $292;$298 = $293;$299 = $294;$300 = $213;$301 = $167;
+      }
+      $169 = HEAP8[$17>>0]|0;
+      $170 = $171 ^ $169;
+      HEAP8[$1>>0] = $170;
+      $172 = HEAP8[$60>>0]|0;
+      $173 = $174 ^ $172;
+      HEAP8[$63>>0] = $173;
+      $175 = HEAP8[$64>>0]|0;
+      $176 = $177 ^ $175;
+      HEAP8[$65>>0] = $176;
+      $178 = HEAP8[$66>>0]|0;
+      $179 = $180 ^ $178;
+      HEAP8[$67>>0] = $179;
+      $181 = HEAP8[$68>>0]|0;
+      $182 = $183 ^ $181;
+      HEAP8[$69>>0] = $182;
+      $184 = HEAP8[$70>>0]|0;
+      $185 = $186 ^ $184;
+      HEAP8[$71>>0] = $185;
+      $187 = HEAP8[$72>>0]|0;
+      $188 = $189 ^ $187;
+      HEAP8[$73>>0] = $188;
+      $190 = HEAP8[$74>>0]|0;
+      $191 = $163 ^ $190;
+      HEAP8[$75>>0] = $191;
+      $192 = $43;
+      $193 = $192;
+      $194 = 
HEAPU8[$193>>0]|(HEAPU8[$193+1>>0]<<8)|(HEAPU8[$193+2>>0]<<16)|(HEAPU8[$193+3>>0]<<24);
+      $195 = (($192) + 4)|0;
+      $196 = $195;
+      $197 = 
HEAPU8[$196>>0]|(HEAPU8[$196+1>>0]<<8)|(HEAPU8[$196+2>>0]<<16)|(HEAPU8[$196+3>>0]<<24);
+      $198 = $146;
+      $199 = $198;
+      
HEAP8[$199>>0]=$194&255;HEAP8[$199+1>>0]=($194>>8)&255;HEAP8[$199+2>>0]=($194>>16)&255;HEAP8[$199+3>>0]=$194>>24;
+      $200 = (($198) + 4)|0;
+      $201 = $200;
+      
HEAP8[$201>>0]=$197&255;HEAP8[$201+1>>0]=($197>>8)&255;HEAP8[$201+2>>0]=($197>>16)&255;HEAP8[$201+3>>0]=$197>>24;
+      $202 = (($$06466) + 1)|0;
+      $203 = ($$06466>>>0)<($15>>>0);
+      if ($203) {
+       $$06466 = $202;$$167 = $162;$164 = $163;$167 = $301;$213 = $300;$216 = 
$183;$219 = $180;$222 = $177;$225 = $174;$228 = $171;$229 = $208;$230 = 
$296;$231 = $171;$286 = $207;$287 = $206;$288 = $205;$289 = $204;$290 = 
$186;$291 = $189;$292 = $297;$293 = $298;$294 = $299;$295 = $183;
+      } else {
+       break;
+      }
+     }
+     HEAP8[$61>>0] = $163;
+     HEAP8[$62>>0] = $189;
+     HEAP8[$76>>0] = $186;
+     HEAP8[$77>>0] = $204;
+     HEAP8[$78>>0] = $205;
+     HEAP8[$79>>0] = $206;
+     HEAP8[$80>>0] = $207;
+     HEAP8[$5>>0] = $208;
+     $$1$lcssa = $162;$263 = $296;$264 = $297;$265 = $298;$266 = $299;$267 = 
$183;$268 = $171;$269 = $171;$270 = $174;$271 = $177;$272 = $180;$273 = 
$183;$274 = $300;$275 = $301;$276 = $163;
+     break;
+    }
+   }
+  } while(0);
+  $209 = (($$06268) + 1)|0;
+  $exitcond = ($209|0)==(6);
+  if ($exitcond) {
+   break;
+  } else {
+   $$06169 = $$1$lcssa;$$06268 = $209;$249 = $263;$250 = $264;$251 = $265;$252 
= $266;$253 = $267;$254 = $268;$255 = $269;$256 = $270;$257 = $271;$258 = 
$272;$259 = $273;$260 = $274;$261 = $275;$262 = $276;
+  }
+ }
+ $210 = ($$1$lcssa|0)==(0);
+ if ($210) {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $211 = (($$1$lcssa) + 16)|0;
+ ___gcry_burn_stack($211);
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_cipher_aeswrap_decrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $$07990 = 0, $$08089 = 0, $$08487 = 0, $$08487$us = 0, $$1$lcssa 
= 0, $$181 = 0, $$188 = 0, $$188$us = 0, $$promoted = 0, $$promoted123 = 0, 
$$promoted125 = 0, $$promoted127 = 0, $$promoted129 = 0, $$promoted131 = 0, 
$$promoted133 = 0, $$promoted135 = 0, $10 = 0, $100 = 0, $101 = 0;
+ var $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;
+ var $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, $136 = 0, $137 = 0, $138 = 0;
+ var $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 
= 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 
= 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0;
+ var $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 
= 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 
= 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0;
+ var $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 
= 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 
= 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0;
+ var $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 
= 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 
= 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0;
+ var $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, 
$218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, 
$225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0;
+ var $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 
= 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 
= 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0;
+ var $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 
= 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 
= 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0;
+ var $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;
+ var $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 
= 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 
= 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0;
+ var $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, 
$309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $32 = 0, $33 = 0, 
$34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0;
+ var $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;
+ var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, 
$65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, 
$73 = 0, $74 = 0, $75 = 0;
+ var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, 
$83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, 
$91 = 0, $92 = 0, $93 = 0;
+ var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, 
$spec$select = 0, $spec$select137 = 0, $spec$select138 = 0, $spec$select140 = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $5 = sp;
+ $6 = ((($0)) + 12|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ((($7)) + 20|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ($9|0)==(16);
+ if (!($10)) {
+  $$0 = 139;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $11 = (($2) + 8)|0;
+ $12 = ($11>>>0)<($4>>>0);
+ if ($12) {
+  $$0 = 200;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $13 = $4 & 7;
+ $14 = ($13|0)!=(0);
+ $15 = ($4>>>0)<(24);
+ $or$cond = $15 | $14;
+ if ($or$cond) {
+  $$0 = 45;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $16 = $4 >>> 3;
+ $17 = ((($0)) + 96|0);
+ $18 = ((($0)) + 80|0);
+ $19 = $3;
+ $20 = $19;
+ $21 = 
HEAPU8[$20>>0]|(HEAPU8[$20+1>>0]<<8)|(HEAPU8[$20+2>>0]<<16)|(HEAPU8[$20+3>>0]<<24);
+ $22 = (($19) + 4)|0;
+ $23 = $22;
+ $24 = 
HEAPU8[$23>>0]|(HEAPU8[$23+1>>0]<<8)|(HEAPU8[$23+2>>0]<<16)|(HEAPU8[$23+3>>0]<<24);
+ $25 = $17;
+ $26 = $25;
+ 
HEAP8[$26>>0]=$21&255;HEAP8[$26+1>>0]=($21>>8)&255;HEAP8[$26+2>>0]=($21>>16)&255;HEAP8[$26+3>>0]=$21>>24;
+ $27 = (($25) + 4)|0;
+ $28 = $27;
+ 
HEAP8[$28>>0]=$24&255;HEAP8[$28+1>>0]=($24>>8)&255;HEAP8[$28+2>>0]=($24>>16)&255;HEAP8[$28+3>>0]=$24>>24;
+ $29 = ((($3)) + 8|0);
+ $30 = (($4) + -8)|0;
+ _memmove(($1|0),($29|0),($30|0))|0;
+ $31 = (($16) + -1)|0;
+ $32 = ($31*6)|0;
+ $33 = $32&255;
+ $34 = ((($5)) + 7|0);
+ HEAP8[$34>>0] = $33;
+ $35 = $32 >>> 8;
+ $36 = $35&255;
+ $37 = ((($5)) + 6|0);
+ HEAP8[$37>>0] = $36;
+ $38 = $32 >>> 16;
+ $39 = $38&255;
+ $40 = ((($5)) + 5|0);
+ HEAP8[$40>>0] = $39;
+ $41 = $32 >>> 24;
+ $42 = $41&255;
+ $43 = ((($5)) + 4|0);
+ HEAP8[$43>>0] = $42;
+ HEAP32[$5>>2] = 0;
+ $44 = ($31|0)==(0);
+ $45 = $18;
+ $46 = $17;
+ $47 = $46 | $45;
+ $48 = $47 & 3;
+ $49 = ($48|0)==(0);
+ $50 = ((($0)) + 100|0);
+ $51 = ((($18)) + 4|0);
+ $52 = ((($0)) + 88|0);
+ $53 = ((($0)) + 496|0);
+ $54 = ((($5)) + 3|0);
+ $55 = ((($5)) + 2|0);
+ $56 = ((($5)) + 1|0);
+ $57 = ((($0)) + 97|0);
+ $58 = ((($18)) + 1|0);
+ $59 = ((($0)) + 98|0);
+ $60 = ((($18)) + 2|0);
+ $61 = ((($0)) + 99|0);
+ $62 = ((($18)) + 3|0);
+ $63 = ((($0)) + 100|0);
+ $64 = ((($18)) + 4|0);
+ $65 = ((($0)) + 101|0);
+ $66 = ((($5)) + 5|0);
+ $67 = ((($18)) + 5|0);
+ $68 = ((($0)) + 102|0);
+ $69 = ((($5)) + 6|0);
+ $70 = ((($18)) + 6|0);
+ $71 = ((($0)) + 103|0);
+ $72 = ((($5)) + 7|0);
+ $73 = ((($18)) + 7|0);
+ $74 = ((($5)) + 3|0);
+ $75 = ((($5)) + 2|0);
+ $76 = ((($5)) + 1|0);
+ $$07990 = 0;$$08089 = 5;$274 = 0;$275 = $42;$276 = $39;$277 = $36;$278 = 
$33;$279 = $42;$280 = 0;$281 = 0;$282 = 0;$283 = 0;
+ while(1) {
+  do {
+   if ($44) {
+    $$1$lcssa = $$07990;$284 = $274;$285 = $275;$286 = $276;$287 = $277;$288 = 
$278;$289 = $279;$290 = $280;$291 = $281;$292 = $282;$293 = $283;
+   } else {
+    if ($49) {
+     $$08487$us = $31;$$188$us = $$07990;$103 = $278;$108 = $277;$260 = 
$276;$265 = $280;$268 = $281;$271 = $282;
+     while(1) {
+      $77 = HEAP32[$17>>2]|0;
+      $78 = HEAP32[$5>>2]|0;
+      $79 = $78 ^ $77;
+      HEAP32[$18>>2] = $79;
+      $80 = HEAP32[$50>>2]|0;
+      $81 = HEAP32[$43>>2]|0;
+      $82 = $81 ^ $80;
+      HEAP32[$51>>2] = $82;
+      $83 = $$08487$us << 3;
+      $84 = (($83) + -8)|0;
+      $85 = (($1) + ($84)|0);
+      $86 = $85;
+      $87 = $86;
+      $88 = 
HEAPU8[$87>>0]|(HEAPU8[$87+1>>0]<<8)|(HEAPU8[$87+2>>0]<<16)|(HEAPU8[$87+3>>0]<<24);
+      $89 = (($86) + 4)|0;
+      $90 = $89;
+      $91 = 
HEAPU8[$90>>0]|(HEAPU8[$90+1>>0]<<8)|(HEAPU8[$90+2>>0]<<16)|(HEAPU8[$90+3>>0]<<24);
+      $92 = $52;
+      $93 = $92;
+      
HEAP8[$93>>0]=$88&255;HEAP8[$93+1>>0]=($88>>8)&255;HEAP8[$93+2>>0]=($88>>16)&255;HEAP8[$93+3>>0]=$88>>24;
+      $94 = (($92) + 4)|0;
+      $95 = $94;
+      
HEAP8[$95>>0]=$91&255;HEAP8[$95+1>>0]=($91>>8)&255;HEAP8[$95+2>>0]=($91>>16)&255;HEAP8[$95+3>>0]=$91>>24;
+      $96 = HEAP32[$6>>2]|0;
+      $97 = ((($96)) + 40|0);
+      $98 = HEAP32[$97>>2]|0;
+      $99 = (FUNCTION_TABLE_iiii[$98 & 127]($53,$18,$18)|0);
+      $100 = ($99>>>0)>($$188$us>>>0);
+      $101 = $100 ? $99 : $$188$us;
+      $102 = (($103) + -1)<<24>>24;
+      HEAP8[$34>>0] = $102;
+      $104 = ($103<<24>>24)==(0);
+      $105 = $78&255;
+      $106 = $81&255;
+      if ($104) {
+       $107 = (($108) + -1)<<24>>24;
+       HEAP8[$37>>0] = $107;
+       $109 = ($108<<24>>24)==(0);
+       if ($109) {
+        $259 = (($260) + -1)<<24>>24;
+        HEAP8[$40>>0] = $259;
+        $261 = ($260<<24>>24)==(0);
+        if ($261) {
+         $262 = (($106) + -1)<<24>>24;
+         HEAP8[$43>>0] = $262;
+         $263 = ($106<<24>>24)==(0);
+         if ($263) {
+          $264 = (($265) + -1)<<24>>24;
+          HEAP8[$54>>0] = $264;
+          $266 = ($265<<24>>24)==(0);
+          if ($266) {
+           $267 = (($268) + -1)<<24>>24;
+           HEAP8[$55>>0] = $267;
+           $269 = ($268<<24>>24)==(0);
+           if ($269) {
+            $270 = (($271) + -1)<<24>>24;
+            HEAP8[$56>>0] = $270;
+            $272 = ($271<<24>>24)==(0);
+            if ($272) {
+             $273 = (($105) + -1)<<24>>24;
+             HEAP8[$5>>0] = $273;
+             $294 = $273;$295 = -1;$296 = -1;$297 = -1;$298 = -1;$299 = 
-1;$300 = -1;
+            } else {
+             $294 = $105;$295 = -1;$296 = -1;$297 = -1;$298 = -1;$299 = 
-1;$300 = $270;
+            }
+           } else {
+            $294 = $105;$295 = -1;$296 = -1;$297 = -1;$298 = -1;$299 = 
$267;$300 = $271;
+           }
+          } else {
+           $294 = $105;$295 = -1;$296 = -1;$297 = -1;$298 = $264;$299 = 
$268;$300 = $271;
+          }
+         } else {
+          $294 = $105;$295 = $262;$296 = -1;$297 = -1;$298 = $265;$299 = 
$268;$300 = $271;
+         }
+        } else {
+         $294 = $105;$295 = $106;$296 = $259;$297 = -1;$298 = $265;$299 = 
$268;$300 = $271;
+        }
+       } else {
+        $294 = $105;$295 = $106;$296 = $260;$297 = $107;$298 = $265;$299 = 
$268;$300 = $271;
+       }
+      } else {
+       $294 = $105;$295 = $106;$296 = $260;$297 = $108;$298 = $265;$299 = 
$268;$300 = $271;
+      }
+      $110 = $18;
+      $111 = $110;
+      $112 = 
HEAPU8[$111>>0]|(HEAPU8[$111+1>>0]<<8)|(HEAPU8[$111+2>>0]<<16)|(HEAPU8[$111+3>>0]<<24);
+      $113 = (($110) + 4)|0;
+      $114 = $113;
+      $115 = 
HEAPU8[$114>>0]|(HEAPU8[$114+1>>0]<<8)|(HEAPU8[$114+2>>0]<<16)|(HEAPU8[$114+3>>0]<<24);
+      $116 = $17;
+      $117 = $116;
+      
HEAP8[$117>>0]=$112&255;HEAP8[$117+1>>0]=($112>>8)&255;HEAP8[$117+2>>0]=($112>>16)&255;HEAP8[$117+3>>0]=$112>>24;
+      $118 = (($116) + 4)|0;
+      $119 = $118;
+      
HEAP8[$119>>0]=$115&255;HEAP8[$119+1>>0]=($115>>8)&255;HEAP8[$119+2>>0]=($115>>16)&255;HEAP8[$119+3>>0]=$115>>24;
+      $120 = $52;
+      $121 = $120;
+      $122 = 
HEAPU8[$121>>0]|(HEAPU8[$121+1>>0]<<8)|(HEAPU8[$121+2>>0]<<16)|(HEAPU8[$121+3>>0]<<24);
+      $123 = (($120) + 4)|0;
+      $124 = $123;
+      $125 = 
HEAPU8[$124>>0]|(HEAPU8[$124+1>>0]<<8)|(HEAPU8[$124+2>>0]<<16)|(HEAPU8[$124+3>>0]<<24);
+      $126 = $85;
+      $127 = $126;
+      
HEAP8[$127>>0]=$122&255;HEAP8[$127+1>>0]=($122>>8)&255;HEAP8[$127+2>>0]=($122>>16)&255;HEAP8[$127+3>>0]=$122>>24;
+      $128 = (($126) + 4)|0;
+      $129 = $128;
+      
HEAP8[$129>>0]=$125&255;HEAP8[$129+1>>0]=($125>>8)&255;HEAP8[$129+2>>0]=($125>>16)&255;HEAP8[$129+3>>0]=$125>>24;
+      $130 = (($$08487$us) + -1)|0;
+      $131 = ($130|0)==(0);
+      if ($131) {
+       $$1$lcssa = $101;$284 = $294;$285 = $295;$286 = $296;$287 = $297;$288 = 
$102;$289 = $295;$290 = $298;$291 = $299;$292 = $300;$293 = $294;
+       break;
+      } else {
+       $$08487$us = $130;$$188$us = $101;$103 = $102;$108 = $297;$260 = 
$296;$265 = $298;$268 = $299;$271 = $300;
+      }
+     }
+    } else {
+     $$promoted = HEAP8[$66>>0]|0;
+     $$promoted123 = HEAP8[$69>>0]|0;
+     $$promoted125 = HEAP8[$72>>0]|0;
+     $$promoted127 = HEAP8[$43>>0]|0;
+     $$promoted129 = HEAP8[$74>>0]|0;
+     $$promoted131 = HEAP8[$75>>0]|0;
+     $$promoted133 = HEAP8[$76>>0]|0;
+     $$promoted135 = HEAP8[$5>>0]|0;
+     $$08487 = $31;$$188 = $$07990;$134 = $283;$137 = $282;$140 = $281;$143 = 
$280;$146 = $279;$149 = $$promoted;$152 = $$promoted123;$155 = 
$$promoted125;$176 = $278;$179 = $277;$245 = $276;$248 = $275;$257 = $274;$258 
= $$promoted135;$301 = $$promoted133;$302 = $$promoted131;$303 = 
$$promoted129;$304 = $$promoted127;
+     while(1) {
+      $132 = HEAP8[$17>>0]|0;
+      $133 = $134 ^ $132;
+      HEAP8[$18>>0] = $133;
+      $135 = HEAP8[$57>>0]|0;
+      $136 = $137 ^ $135;
+      HEAP8[$58>>0] = $136;
+      $138 = HEAP8[$59>>0]|0;
+      $139 = $140 ^ $138;
+      HEAP8[$60>>0] = $139;
+      $141 = HEAP8[$61>>0]|0;
+      $142 = $143 ^ $141;
+      HEAP8[$62>>0] = $142;
+      $144 = HEAP8[$63>>0]|0;
+      $145 = $146 ^ $144;
+      HEAP8[$64>>0] = $145;
+      $147 = HEAP8[$65>>0]|0;
+      $148 = $149 ^ $147;
+      HEAP8[$67>>0] = $148;
+      $150 = HEAP8[$68>>0]|0;
+      $151 = $152 ^ $150;
+      HEAP8[$70>>0] = $151;
+      $153 = HEAP8[$71>>0]|0;
+      $154 = $155 ^ $153;
+      HEAP8[$73>>0] = $154;
+      $156 = $$08487 << 3;
+      $157 = (($156) + -8)|0;
+      $158 = (($1) + ($157)|0);
+      $159 = $158;
+      $160 = $159;
+      $161 = 
HEAPU8[$160>>0]|(HEAPU8[$160+1>>0]<<8)|(HEAPU8[$160+2>>0]<<16)|(HEAPU8[$160+3>>0]<<24);
+      $162 = (($159) + 4)|0;
+      $163 = $162;
+      $164 = 
HEAPU8[$163>>0]|(HEAPU8[$163+1>>0]<<8)|(HEAPU8[$163+2>>0]<<16)|(HEAPU8[$163+3>>0]<<24);
+      $165 = $52;
+      $166 = $165;
+      
HEAP8[$166>>0]=$161&255;HEAP8[$166+1>>0]=($161>>8)&255;HEAP8[$166+2>>0]=($161>>16)&255;HEAP8[$166+3>>0]=$161>>24;
+      $167 = (($165) + 4)|0;
+      $168 = $167;
+      
HEAP8[$168>>0]=$164&255;HEAP8[$168+1>>0]=($164>>8)&255;HEAP8[$168+2>>0]=($164>>16)&255;HEAP8[$168+3>>0]=$164>>24;
+      $169 = HEAP32[$6>>2]|0;
+      $170 = ((($169)) + 40|0);
+      $171 = HEAP32[$170>>2]|0;
+      $172 = (FUNCTION_TABLE_iiii[$171 & 127]($53,$18,$18)|0);
+      $173 = ($172>>>0)>($$188>>>0);
+      $174 = $173 ? $172 : $$188;
+      $175 = (($176) + -1)<<24>>24;
+      $177 = ($176<<24>>24)==(0);
+      if ($177) {
+       $178 = (($179) + -1)<<24>>24;
+       $180 = ($179<<24>>24)==(0);
+       if ($180) {
+        $244 = (($245) + -1)<<24>>24;
+        $246 = ($245<<24>>24)==(0);
+        if ($246) {
+         $247 = (($248) + -1)<<24>>24;
+         $249 = ($248<<24>>24)==(0);
+         if ($249) {
+          $250 = (($143) + -1)<<24>>24;
+          $251 = ($143<<24>>24)==(0);
+          if ($251) {
+           $252 = (($140) + -1)<<24>>24;
+           $253 = ($140<<24>>24)==(0);
+           if ($253) {
+            $254 = (($137) + -1)<<24>>24;
+            $255 = ($137<<24>>24)==(0);
+            $256 = (($257) + -1)<<24>>24;
+            $spec$select137 = $255 ? $256 : $258;
+            $spec$select138 = $255 ? $256 : $257;
+            $spec$select140 = $255 ? $256 : $134;
+            $203 = $244;$204 = $178;$205 = $247;$206 = $250;$207 = $252;$208 = 
$254;$209 = $spec$select137;$305 = $spec$select138;$306 = -1;$307 = -1;$308 = 
-1;$309 = -1;$310 = -1;$311 = -1;$312 = $254;$313 = $spec$select140;
+           } else {
+            $203 = $244;$204 = $178;$205 = $247;$206 = $250;$207 = $252;$208 = 
$301;$209 = $258;$305 = $257;$306 = -1;$307 = -1;$308 = -1;$309 = -1;$310 = 
-1;$311 = $252;$312 = $137;$313 = $134;
+           }
+          } else {
+           $203 = $244;$204 = $178;$205 = $247;$206 = $250;$207 = $302;$208 = 
$301;$209 = $258;$305 = $257;$306 = -1;$307 = -1;$308 = -1;$309 = -1;$310 = 
$250;$311 = $140;$312 = $137;$313 = $134;
+          }
+         } else {
+          $203 = $244;$204 = $178;$205 = $247;$206 = $303;$207 = $302;$208 = 
$301;$209 = $258;$305 = $257;$306 = $247;$307 = -1;$308 = -1;$309 = $247;$310 = 
$143;$311 = $140;$312 = $137;$313 = $134;
+         }
+        } else {
+         $203 = $244;$204 = $178;$205 = $304;$206 = $303;$207 = $302;$208 = 
$301;$209 = $258;$305 = $257;$306 = $248;$307 = $244;$308 = -1;$309 = $146;$310 
= $143;$311 = $140;$312 = $137;$313 = $134;
+        }
+       } else {
+        $203 = $149;$204 = $178;$205 = $304;$206 = $303;$207 = $302;$208 = 
$301;$209 = $258;$305 = $257;$306 = $248;$307 = $245;$308 = $178;$309 = 
$146;$310 = $143;$311 = $140;$312 = $137;$313 = $134;
+       }
+      } else {
+       $203 = $149;$204 = $152;$205 = $304;$206 = $303;$207 = $302;$208 = 
$301;$209 = $258;$305 = $257;$306 = $248;$307 = $245;$308 = $179;$309 = 
$146;$310 = $143;$311 = $140;$312 = $137;$313 = $134;
+      }
+      $181 = $18;
+      $182 = $181;
+      $183 = 
HEAPU8[$182>>0]|(HEAPU8[$182+1>>0]<<8)|(HEAPU8[$182+2>>0]<<16)|(HEAPU8[$182+3>>0]<<24);
+      $184 = (($181) + 4)|0;
+      $185 = $184;
+      $186 = 
HEAPU8[$185>>0]|(HEAPU8[$185+1>>0]<<8)|(HEAPU8[$185+2>>0]<<16)|(HEAPU8[$185+3>>0]<<24);
+      $187 = $17;
+      $188 = $187;
+      
HEAP8[$188>>0]=$183&255;HEAP8[$188+1>>0]=($183>>8)&255;HEAP8[$188+2>>0]=($183>>16)&255;HEAP8[$188+3>>0]=$183>>24;
+      $189 = (($187) + 4)|0;
+      $190 = $189;
+      
HEAP8[$190>>0]=$186&255;HEAP8[$190+1>>0]=($186>>8)&255;HEAP8[$190+2>>0]=($186>>16)&255;HEAP8[$190+3>>0]=$186>>24;
+      $191 = $52;
+      $192 = $191;
+      $193 = 
HEAPU8[$192>>0]|(HEAPU8[$192+1>>0]<<8)|(HEAPU8[$192+2>>0]<<16)|(HEAPU8[$192+3>>0]<<24);
+      $194 = (($191) + 4)|0;
+      $195 = $194;
+      $196 = 
HEAPU8[$195>>0]|(HEAPU8[$195+1>>0]<<8)|(HEAPU8[$195+2>>0]<<16)|(HEAPU8[$195+3>>0]<<24);
+      $197 = $158;
+      $198 = $197;
+      
HEAP8[$198>>0]=$193&255;HEAP8[$198+1>>0]=($193>>8)&255;HEAP8[$198+2>>0]=($193>>16)&255;HEAP8[$198+3>>0]=$193>>24;
+      $199 = (($197) + 4)|0;
+      $200 = $199;
+      
HEAP8[$200>>0]=$196&255;HEAP8[$200+1>>0]=($196>>8)&255;HEAP8[$200+2>>0]=($196>>16)&255;HEAP8[$200+3>>0]=$196>>24;
+      $201 = (($$08487) + -1)|0;
+      $202 = ($201|0)==(0);
+      if ($202) {
+       break;
+      } else {
+       $$08487 = $201;$$188 = $174;$134 = $313;$137 = $312;$140 = $311;$143 = 
$310;$146 = $309;$149 = $203;$152 = $204;$155 = $175;$176 = $175;$179 = 
$308;$245 = $307;$248 = $306;$257 = $305;$258 = $209;$301 = $208;$302 = 
$207;$303 = $206;$304 = $205;
+      }
+     }
+     HEAP8[$66>>0] = $203;
+     HEAP8[$69>>0] = $204;
+     HEAP8[$72>>0] = $175;
+     HEAP8[$43>>0] = $205;
+     HEAP8[$74>>0] = $206;
+     HEAP8[$75>>0] = $207;
+     HEAP8[$76>>0] = $208;
+     HEAP8[$5>>0] = $209;
+     $$1$lcssa = $174;$284 = $305;$285 = $306;$286 = $307;$287 = $308;$288 = 
$175;$289 = $309;$290 = $310;$291 = $311;$292 = $312;$293 = $313;
+     break;
+    }
+   }
+  } while(0);
+  $210 = (($$08089) + -1)|0;
+  $211 = ($$08089|0)==(0);
+  if ($211) {
+   break;
+  } else {
+   $$07990 = $$1$lcssa;$$08089 = $210;$274 = $284;$275 = $285;$276 = $286;$277 
= $287;$278 = $288;$279 = $289;$280 = $290;$281 = $291;$282 = $292;$283 = $293;
+  }
+ }
+ $212 = ((($0)) + 56|0);
+ $213 = HEAP8[$212>>0]|0;
+ $214 = $213 & 2;
+ $215 = ($214<<24>>24)==(0);
+ if ($215) {
+  $218 = HEAP8[$17>>0]|0;
+  $219 = ($218<<24>>24)==(-90);
+  if ($219) {
+   $220 = ((($0)) + 97|0);
+   $221 = HEAP8[$220>>0]|0;
+   $222 = ($221<<24>>24)==(-90);
+   if ($222) {
+    $227 = ((($0)) + 98|0);
+    $228 = HEAP8[$227>>0]|0;
+    $229 = ($228<<24>>24)==(-90);
+    if ($229) {
+     $230 = ((($0)) + 99|0);
+     $231 = HEAP8[$230>>0]|0;
+     $232 = ($231<<24>>24)==(-90);
+     if ($232) {
+      $233 = HEAP8[$50>>0]|0;
+      $234 = ($233<<24>>24)==(-90);
+      if ($234) {
+       $235 = ((($0)) + 101|0);
+       $236 = HEAP8[$235>>0]|0;
+       $237 = ($236<<24>>24)==(-90);
+       if ($237) {
+        $238 = ((($0)) + 102|0);
+        $239 = HEAP8[$238>>0]|0;
+        $240 = ($239<<24>>24)==(-90);
+        if ($240) {
+         $241 = ((($0)) + 103|0);
+         $242 = HEAP8[$241>>0]|0;
+         $243 = ($242<<24>>24)!=(-90);
+         $spec$select = $243&1;
+         $$181 = $spec$select;
+        } else {
+         $$181 = 1;
+        }
+       } else {
+        $$181 = 1;
+       }
+      } else {
+       $$181 = 1;
+      }
+     } else {
+      $$181 = 1;
+     }
+    } else {
+     $$181 = 1;
+    }
+   } else {
+    $$181 = 1;
+   }
+  } else {
+   $$181 = 1;
+  }
+ } else {
+  $216 = ((($0)) + 64|0);
+  $217 = (_memcmp($17,$216,8)|0);
+  $$181 = $217;
+ }
+ $223 = ($$1$lcssa|0)==(0);
+ if (!($223)) {
+  $224 = (($$1$lcssa) + 16)|0;
+  ___gcry_burn_stack($224);
+ }
+ $225 = ($$181|0)==(0);
+ $226 = $225 ? 0 : 10;
+ $$0 = $226;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_cipher_cbc_encrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$ = 0, $$0 = 0, $$0122$lcssa = 0, $$0122173 = 0, $$0122173$us = 0, 
$$0123 = 0, $$0124$lcssa = 0, $$0124172 = 0, $$0124172$us = 0, $$0127$lcssa = 
0, $$0127171 = 0, $$0127171$us = 0, $$0129$lcssa = 0, $$0129164 = 0, 
$$0131$lcssa = 0, $$0131170 = 0, $$0131170$phi = 0, $$0131170$us = 0, 
$$0131170$us$phi = 0, $$0134169 = 0;
+ var $$0134169$us = 0, $$02434$i = 0, $$02434$i149 = 0, $$02533$i = 0, 
$$02533$i150 = 0, $$026$i = 0, $$026$i153 = 0, $$028$i = 0, $$028$i152 = 0, 
$$03449$i$us = 0, $$035$i = 0, $$035$i148 = 0, $$03548$i$us = 0, $$03647$i$us = 
0, $$037$i$us = 0, $$039$i$us = 0, $$041$i$us = 0, $$050$i$us = 0, $$1 = 0, 
$$1$i$us = 0;
+ var $$1$i142 = 0, $$1$i154 = 0, $$1128 = 0, $$1130162 = 0, $$1132$lcssa = 0, 
$$1132163 = 0, $$12731$i = 0, $$12731$i158 = 0, $$12930$i = 0, $$12930$i159 = 
0, $$13845$i = 0, $$13845$i$us = 0, $$14044$i = 0, $$14044$i$us = 0, $$14243$i 
= 0, $$14243$i$us = 0, $$2 = 0, $$2126 = 0, $$2133161 = 0, $$232$i = 0;
+ var $$232$i157 = 0, $$246$i = 0, $$246$i$us = 0, $$pre = 0, $$pre$phiZ2D = 0, 
$$pre191 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 
0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0;
+ var $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;
+ var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, 
$137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, 
$144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0;
+ var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 
= 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 
= 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0;
+ var $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 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;
+ var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 
0, $5 = 0, $50 = 0, $51 = 0;
+ var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, 
$6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, 
$68 = 0, $69 = 0, $7 = 0;
+ var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, 
$78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, 
$86 = 0, $87 = 0, $88 = 0;
+ var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, 
$96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond188 = 0, $or$cond = 
0, $or$cond$i140 = 0, $or$cond$i144 = 0, $or$cond136 = 0, $or$cond137 = 0, 
$or$cond139 = 0;
+ var $scevgep$i$us = 0, $scevgep$i141 = 0, $scevgep$i145 = 0, $scevgep44$i = 
0, $scevgep44$i146 = 0, $scevgep61$i$us = 0, $scevgep63$i$us = 0, $spec$select 
= 0, $spec$select138 = 0, $spec$select138$us = 0, $uglygep = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ $5 = ((($0)) + 12|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ((($6)) + 20|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ((($6)) + 36|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = (($4>>>0) / ($8>>>0))&-1;
+ $12 = ((($0)) + 52|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = $13 & 8;
+ $15 = ($14|0)==(0);
+ $16 = $15 ? $4 : $8;
+ $17 = ($16>>>0)>($2>>>0);
+ if ($17) {
+  $$0 = 200;
+  return ($$0|0);
+ }
+ $18 = Math_imul($11, $8)|0;
+ $19 = (($4) - ($18))|0;
+ $20 = ($19|0)==(0);
+ if ($20) {
+  $$pre191 = $13 & 4;
+  $$pre$phiZ2D = $$pre191;
+ } else {
+  $21 = ($8>>>0)>=($4>>>0);
+  $22 = $13 & 4;
+  $23 = ($22|0)==(0);
+  $or$cond = $21 | $23;
+  if ($or$cond) {
+   $$0 = 139;
+   return ($$0|0);
+  } else {
+   $$pre$phiZ2D = $22;
+  }
+ }
+ $24 = ($$pre$phiZ2D|0)!=(0);
+ $25 = ($8>>>0)<($4>>>0);
+ $or$cond136 = $25 & $24;
+ $or$cond137 = $or$cond136 & $20;
+ $26 = $or$cond137 << 31 >> 31;
+ $$0123 = (($11) + ($26))|0;
+ $27 = ((($0)) + 28|0);
+ $28 = HEAP32[$27>>2]|0;
+ $29 = ($28|0)==(0|0);
+ if ($29) {
+  $38 = ((($0)) + 64|0);
+  $39 = ($$0123|0)==(0);
+  if ($39) {
+   $$1 = 0;$$1128 = $3;$$2126 = $1;$122 = $13;
+  } else {
+   $40 = ($8>>>0)>(3);
+   $41 = (($8) + -4)|0;
+   $42 = $41 & -4;
+   $43 = (($42) + 4)|0;
+   $44 = ((($0)) + 496|0);
+   $45 = (($41) - ($42))|0;
+   if ($40) {
+    $$0122173$us = 0;$$0124172$us = $1;$$0127171$us = $3;$$0131170$us = 
$38;$$0134169$us = 0;
+    while(1) {
+     $46 = $$0124172$us;
+     $47 = $$0127171$us;
+     $48 = $$0131170$us;
+     $49 = $47 | $48;
+     $50 = $49 | $46;
+     $51 = $50 & 3;
+     $52 = ($51|0)==(0);
+     if ($52) {
+      $scevgep61$i$us = (($$0131170$us) + ($43)|0);
+      $$03449$i$us = $$0131170$us;$$03548$i$us = $$0127171$us;$$03647$i$us = 
$$0124172$us;$$050$i$us = $8;
+      while(1) {
+       $53 = ((($$03548$i$us)) + 4|0);
+       $54 = HEAP32[$$03548$i$us>>2]|0;
+       $55 = ((($$03449$i$us)) + 4|0);
+       $56 = HEAP32[$$03449$i$us>>2]|0;
+       $57 = $56 ^ $54;
+       $58 = ((($$03647$i$us)) + 4|0);
+       HEAP32[$$03647$i$us>>2] = $57;
+       $59 = (($$050$i$us) + -4)|0;
+       $60 = ($59>>>0)>(3);
+       if ($60) {
+        $$03449$i$us = $55;$$03548$i$us = $53;$$03647$i$us = $58;$$050$i$us = 
$59;
+       } else {
+        break;
+       }
+      }
+      $scevgep$i$us = (($$0127171$us) + ($43)|0);
+      $scevgep63$i$us = (($$0124172$us) + ($43)|0);
+      $$037$i$us = $scevgep61$i$us;$$039$i$us = $scevgep$i$us;$$041$i$us = 
$scevgep63$i$us;$$1$i$us = $45;
+     } else {
+      $$037$i$us = $$0131170$us;$$039$i$us = $$0127171$us;$$041$i$us = 
$$0124172$us;$$1$i$us = $8;
+     }
+     $61 = ($$1$i$us|0)==(0);
+     if (!($61)) {
+      $$13845$i$us = $$037$i$us;$$14044$i$us = $$039$i$us;$$14243$i$us = 
$$041$i$us;$$246$i$us = $$1$i$us;
+      while(1) {
+       $62 = ((($$14044$i$us)) + 1|0);
+       $63 = HEAP8[$$14044$i$us>>0]|0;
+       $64 = ((($$13845$i$us)) + 1|0);
+       $65 = HEAP8[$$13845$i$us>>0]|0;
+       $66 = $65 ^ $63;
+       $67 = ((($$14243$i$us)) + 1|0);
+       HEAP8[$$14243$i$us>>0] = $66;
+       $68 = (($$246$i$us) + -1)|0;
+       $69 = ($68|0)==(0);
+       if ($69) {
+        break;
+       } else {
+        $$13845$i$us = $64;$$14044$i$us = $62;$$14243$i$us = $67;$$246$i$us = 
$68;
+       }
+      }
+     }
+     $70 = (FUNCTION_TABLE_iiii[$10 & 127]($44,$$0124172$us,$$0124172$us)|0);
+     $71 = ($70>>>0)>($$0122173$us>>>0);
+     $72 = $71 ? $70 : $$0122173$us;
+     $73 = (($$0127171$us) + ($8)|0);
+     $74 = HEAP32[$12>>2]|0;
+     $75 = $74 & 8;
+     $76 = ($75|0)==(0);
+     $77 = (($$0124172$us) + ($8)|0);
+     $spec$select138$us = $76 ? $77 : $$0124172$us;
+     $78 = (($$0134169$us) + 1)|0;
+     $79 = ($78>>>0)<($$0123>>>0);
+     if ($79) {
+      $$0131170$us$phi = $$0124172$us;$$0122173$us = $72;$$0124172$us = 
$spec$select138$us;$$0127171$us = $73;$$0134169$us = $78;$$0131170$us = 
$$0131170$us$phi;
+     } else {
+      $$0122$lcssa = $72;$$0124$lcssa = $spec$select138$us;$$0127$lcssa = 
$73;$$0131$lcssa = $$0124172$us;$170 = $74;
+      break;
+     }
+    }
+   } else {
+    $80 = ($8|0)==(0);
+    $$0122173 = 0;$$0124172 = $1;$$0127171 = $3;$$0131170 = $38;$$0134169 = 0;
+    while(1) {
+     if (!($80)) {
+      $$13845$i = $$0131170;$$14044$i = $$0127171;$$14243$i = 
$$0124172;$$246$i = $8;
+      while(1) {
+       $81 = ((($$14044$i)) + 1|0);
+       $82 = HEAP8[$$14044$i>>0]|0;
+       $83 = ((($$13845$i)) + 1|0);
+       $84 = HEAP8[$$13845$i>>0]|0;
+       $85 = $84 ^ $82;
+       $86 = ((($$14243$i)) + 1|0);
+       HEAP8[$$14243$i>>0] = $85;
+       $87 = (($$246$i) + -1)|0;
+       $88 = ($87|0)==(0);
+       if ($88) {
+        break;
+       } else {
+        $$13845$i = $83;$$14044$i = $81;$$14243$i = $86;$$246$i = $87;
+       }
+      }
+     }
+     $89 = (FUNCTION_TABLE_iiii[$10 & 127]($44,$$0124172,$$0124172)|0);
+     $90 = ($89>>>0)>($$0122173>>>0);
+     $91 = $90 ? $89 : $$0122173;
+     $92 = (($$0127171) + ($8)|0);
+     $93 = HEAP32[$12>>2]|0;
+     $94 = $93 & 8;
+     $95 = ($94|0)==(0);
+     $96 = (($$0124172) + ($8)|0);
+     $spec$select138 = $95 ? $96 : $$0124172;
+     $97 = (($$0134169) + 1)|0;
+     $98 = ($97>>>0)<($$0123>>>0);
+     if ($98) {
+      $$0131170$phi = $$0124172;$$0122173 = $91;$$0124172 = 
$spec$select138;$$0127171 = $92;$$0134169 = $97;$$0131170 = $$0131170$phi;
+     } else {
+      $$0122$lcssa = $91;$$0124$lcssa = $spec$select138;$$0127$lcssa = 
$92;$$0131$lcssa = $$0124172;$170 = $93;
+      break;
+     }
+    }
+   }
+   $99 = ($$0131$lcssa|0)==($38|0);
+   if ($99) {
+    $$1 = $$0122$lcssa;$$1128 = $$0127$lcssa;$$2126 = $$0124$lcssa;$122 = $170;
+   } else {
+    $100 = $38;
+    $101 = $$0131$lcssa;
+    $102 = $101 | $100;
+    $103 = $102 & 3;
+    $104 = ($103|0)==(0);
+    $105 = ($8>>>0)>(3);
+    $or$cond$i144 = $105 & $104;
+    if ($or$cond$i144) {
+     $106 = (($8) + -4)|0;
+     $107 = $106 & -4;
+     $108 = (($107) + 4)|0;
+     $scevgep$i145 = (($$0131$lcssa) + ($108)|0);
+     $$02434$i149 = $$0131$lcssa;$$02533$i150 = $38;$$035$i148 = $8;
+     while(1) {
+      $109 = ((($$02434$i149)) + 4|0);
+      $110 = HEAP32[$$02434$i149>>2]|0;
+      $111 = ((($$02533$i150)) + 4|0);
+      HEAP32[$$02533$i150>>2] = $110;
+      $112 = (($$035$i148) + -4)|0;
+      $113 = ($112>>>0)>(3);
+      if ($113) {
+       $$02434$i149 = $109;$$02533$i150 = $111;$$035$i148 = $112;
+      } else {
+       break;
+      }
+     }
+     $scevgep44$i146 = (($38) + ($108)|0);
+     $114 = (($106) - ($107))|0;
+     $$026$i153 = $scevgep$i145;$$028$i152 = $scevgep44$i146;$$1$i154 = $114;
+    } else {
+     $$026$i153 = $$0131$lcssa;$$028$i152 = $38;$$1$i154 = $8;
+    }
+    $115 = ($$1$i154|0)==(0);
+    if ($115) {
+     $$1 = $$0122$lcssa;$$1128 = $$0127$lcssa;$$2126 = $$0124$lcssa;$122 = 
$170;
+    } else {
+     $$12731$i158 = $$026$i153;$$12930$i159 = $$028$i152;$$232$i157 = $$1$i154;
+     while(1) {
+      $116 = ((($$12731$i158)) + 1|0);
+      $117 = HEAP8[$$12731$i158>>0]|0;
+      $118 = ((($$12930$i159)) + 1|0);
+      HEAP8[$$12930$i159>>0] = $117;
+      $119 = (($$232$i157) + -1)|0;
+      $120 = ($119|0)==(0);
+      if ($120) {
+       break;
+      } else {
+       $$12731$i158 = $116;$$12930$i159 = $118;$$232$i157 = $119;
+      }
+     }
+     $$pre = HEAP32[$12>>2]|0;
+     $$1 = $$0122$lcssa;$$1128 = $$0127$lcssa;$$2126 = $$0124$lcssa;$122 = 
$$pre;
+    }
+   }
+  }
+ } else {
+  $30 = ((($0)) + 496|0);
+  $31 = ((($0)) + 64|0);
+  FUNCTION_TABLE_viiiiii[$28 & 63]($30,$31,$1,$3,$$0123,$14);
+  $32 = Math_imul($$0123, $8)|0;
+  $33 = (($3) + ($32)|0);
+  $34 = HEAP32[$12>>2]|0;
+  $35 = $34 & 8;
+  $36 = ($35|0)==(0);
+  $37 = (($1) + ($32)|0);
+  $spec$select = $36 ? $37 : $1;
+  $$1 = 0;$$1128 = $33;$$2126 = $spec$select;$122 = $34;
+ }
+ $121 = $122 & 4;
+ $123 = ($121|0)!=(0);
+ $or$cond139 = $25 & $123;
+ if ($or$cond139) {
+  $$ = $20 ? $8 : $19;
+  $124 = (0 - ($8))|0;
+  $125 = (($$2126) + ($124)|0);
+  $126 = ((($0)) + 64|0);
+  $127 = ($$|0)==(0);
+  if ($127) {
+   $$0129$lcssa = 0;$$1132$lcssa = $126;
+  } else {
+   $128 = (($$) + 64)|0;
+   $$0129164 = 0;$$1132163 = $126;
+   while(1) {
+    $129 = (($$1128) + ($$0129164)|0);
+    $130 = HEAP8[$129>>0]|0;
+    $131 = (($125) + ($$0129164)|0);
+    $132 = HEAP8[$131>>0]|0;
+    $133 = (($$2126) + ($$0129164)|0);
+    HEAP8[$133>>0] = $132;
+    $134 = ((($$1132163)) + 1|0);
+    $135 = HEAP8[$$1132163>>0]|0;
+    $136 = $135 ^ $130;
+    HEAP8[$131>>0] = $136;
+    $137 = (($$0129164) + 1)|0;
+    $exitcond188 = ($137|0)==($$|0);
+    if ($exitcond188) {
+     break;
+    } else {
+     $$0129164 = $137;$$1132163 = $134;
+    }
+   }
+   $uglygep = (($0) + ($128)|0);
+   $$0129$lcssa = $$;$$1132$lcssa = $uglygep;
+  }
+  $138 = ($$0129$lcssa>>>0)<($8>>>0);
+  if ($138) {
+   $$1130162 = $$0129$lcssa;$$2133161 = $$1132$lcssa;
+   while(1) {
+    $139 = ((($$2133161)) + 1|0);
+    $140 = HEAP8[$$2133161>>0]|0;
+    $141 = (($125) + ($$1130162)|0);
+    HEAP8[$141>>0] = $140;
+    $142 = (($$1130162) + 1)|0;
+    $exitcond = ($142|0)==($8|0);
+    if ($exitcond) {
+     break;
+    } else {
+     $$1130162 = $142;$$2133161 = $139;
+    }
+   }
+  }
+  $143 = ((($0)) + 496|0);
+  $144 = (FUNCTION_TABLE_iiii[$10 & 127]($143,$125,$125)|0);
+  $145 = ($144>>>0)>($$1>>>0);
+  $146 = $145 ? $144 : $$1;
+  $147 = $126;
+  $148 = $125;
+  $149 = $148 | $147;
+  $150 = $149 & 3;
+  $151 = ($150|0)==(0);
+  $152 = ($8>>>0)>(3);
+  $or$cond$i140 = $152 & $151;
+  if ($or$cond$i140) {
+   $153 = (($8) + -4)|0;
+   $154 = $153 & -4;
+   $155 = (($154) + 4)|0;
+   $scevgep$i141 = (($125) + ($155)|0);
+   $$02434$i = $125;$$02533$i = $126;$$035$i = $8;
+   while(1) {
+    $156 = ((($$02434$i)) + 4|0);
+    $157 = HEAP32[$$02434$i>>2]|0;
+    $158 = ((($$02533$i)) + 4|0);
+    HEAP32[$$02533$i>>2] = $157;
+    $159 = (($$035$i) + -4)|0;
+    $160 = ($159>>>0)>(3);
+    if ($160) {
+     $$02434$i = $156;$$02533$i = $158;$$035$i = $159;
+    } else {
+     break;
+    }
+   }
+   $scevgep44$i = (($126) + ($155)|0);
+   $161 = (($153) - ($154))|0;
+   $$026$i = $scevgep$i141;$$028$i = $scevgep44$i;$$1$i142 = $161;
+  } else {
+   $$026$i = $125;$$028$i = $126;$$1$i142 = $8;
+  }
+  $162 = ($$1$i142|0)==(0);
+  if ($162) {
+   $$2 = $146;
+  } else {
+   $$12731$i = $$026$i;$$12930$i = $$028$i;$$232$i = $$1$i142;
+   while(1) {
+    $163 = ((($$12731$i)) + 1|0);
+    $164 = HEAP8[$$12731$i>>0]|0;
+    $165 = ((($$12930$i)) + 1|0);
+    HEAP8[$$12930$i>>0] = $164;
+    $166 = (($$232$i) + -1)|0;
+    $167 = ($166|0)==(0);
+    if ($167) {
+     $$2 = $146;
+     break;
+    } else {
+     $$12731$i = $163;$$12930$i = $165;$$232$i = $166;
+    }
+   }
+  }
+ } else {
+  $$2 = $$1;
+ }
+ $168 = ($$2|0)==(0);
+ if ($168) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $169 = (($$2) + 16)|0;
+ ___gcry_burn_stack($169);
+ $$0 = 0;
+ return ($$0|0);
+}
+function __gcry_cipher_cbc_decrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$ = 0, $$0122218 = 0, $$0122218$us = 0, $$0125 = 0, $$0126217 = 0, 
$$0126217$us = 0, $$0128214 = 0, $$0129216 = 0, $$0129216$us = 0, $$0130215 = 
0, $$0130215$us = 0, $$02434$i = 0, $$02434$i147 = 0, $$02434$i185 = 0, 
$$02434$i202 = 0, $$02533$i = 0, $$02533$i148 = 0, $$02533$i186 = 0, 
$$02533$i203 = 0, $$026$i = 0;
+ var $$026$i151 = 0, $$026$i189 = 0, $$026$i206 = 0, $$028$i = 0, $$028$i150 = 
0, $$028$i188 = 0, $$028$i205 = 0, $$03449$i = 0, $$03449$i165 = 0, $$035$i = 
0, $$035$i146 = 0, $$035$i184 = 0, $$035$i201 = 0, $$03548$i = 0, $$03548$i166 
= 0, $$037$i = 0, $$037$i171 = 0, $$041$i = 0, $$041$i169 = 0, $$050$i = 0;
+ var $$050$i139$us = 0, $$050$i164 = 0, $$05270$i$us = 0, $$05369$i$us = 0, 
$$05468$i$us = 0, $$05567$i$us = 0, $$056$i$us = 0, $$058$i$us = 0, $$060$i$us 
= 0, $$071$i$us = 0, $$1 = 0, $$1$i = 0, $$1$i135 = 0, $$1$i140$us = 0, 
$$1$i152 = 0, $$1$i172 = 0, $$1$i190 = 0, $$1$i207 = 0, $$1124 = 0, $$1127 = 0;
+ var $$1131 = 0, $$12731$i = 0, $$12731$i156 = 0, $$12731$i194 = 0, 
$$12731$i211 = 0, $$12930$i = 0, $$12930$i157 = 0, $$12930$i195 = 0, 
$$12930$i212 = 0, $$13845$i = 0, $$13845$i176 = 0, $$14044$i = 0, $$14044$i177 
= 0, $$15165$i = 0, $$15165$i$us = 0, $$15764$i = 0, $$15764$i$us = 0, 
$$15963$i = 0, $$15963$i$us = 0, $$16162$i = 0;
+ var $$16162$i$us = 0, $$2 = 0, $$232$i = 0, $$232$i155 = 0, $$232$i193 = 0, 
$$232$i210 = 0, $$246$i = 0, $$246$i175 = 0, $$266$i = 0, $$266$i$us = 0, 
$$phi$trans$insert = 0, $$pre = 0, $$pre$phi241Z2D = 0, $$pre$phiZ2D = 0, 
$$pre240 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0;
+ var $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;
+ var $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, 
$136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0;
+ var $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, 
$147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, 
$154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0;
+ var $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 
= 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 
= 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0;
+ var $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 
= 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 
= 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0;
+ var $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 
= 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 
= 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0;
+ var $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 
= 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 
= 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0;
+ var $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, 
$238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $25 = 0, $26 = 0, 
$27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0;
+ var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, 
$40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 
0, $49 = 0, $5 = 0, $50 = 0;
+ var $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, 
$59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, 
$67 = 0, $68 = 0, $69 = 0;
+ var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, 
$77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, 
$85 = 0, $86 = 0, $87 = 0;
+ var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, 
$95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond232 = 0, 
$exitcond237 = 0, $or$cond = 0, $or$cond$i = 0, $or$cond$i133 = 0, 
$or$cond$i142 = 0;
+ var $or$cond$i159 = 0, $or$cond$i180 = 0, $or$cond$i197 = 0, $or$cond132 = 0, 
$scevgep = 0, $scevgep$i = 0, $scevgep$i134 = 0, $scevgep$i138$us = 0, 
$scevgep$i143 = 0, $scevgep$i160 = 0, $scevgep$i181 = 0, $scevgep$i198 = 0, 
$scevgep231 = 0, $scevgep236 = 0, $scevgep44$i = 0, $scevgep44$i144 = 0, 
$scevgep44$i182 = 0, $scevgep44$i199 = 0, $scevgep61$i = 0, $scevgep61$i161 = 0;
+ var $scevgep84$i = 0, $scevgep86$i$us = 0, $scevgep88$i = 0, $spec$select = 
0, $spec$select$v = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = ((($0)) + 12|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ((($6)) + 20|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ((($6)) + 40|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = (($4>>>0) / ($8>>>0))&-1;
+ $12 = ($2>>>0)<($4>>>0);
+ if ($12) {
+  $$0125 = 200;
+  return ($$0125|0);
+ }
+ $13 = Math_imul($11, $8)|0;
+ $14 = (($4) - ($13))|0;
+ $15 = ($14|0)==(0);
+ if ($15) {
+  $$phi$trans$insert = ((($0)) + 52|0);
+  $$pre = HEAP32[$$phi$trans$insert>>2]|0;
+  $$pre240 = $$pre & 4;
+  $$pre$phi241Z2D = $$pre240;$$pre$phiZ2D = $$phi$trans$insert;
+ } else {
+  $16 = ($8>>>0)<($4>>>0);
+  if (!($16)) {
+   $$0125 = 139;
+   return ($$0125|0);
+  }
+  $17 = ((($0)) + 52|0);
+  $18 = HEAP32[$17>>2]|0;
+  $19 = $18 & 4;
+  $20 = ($19|0)==(0);
+  if ($20) {
+   $$0125 = 139;
+   return ($$0125|0);
+  } else {
+   $$pre$phi241Z2D = $19;$$pre$phiZ2D = $17;
+  }
+ }
+ $21 = ($$pre$phi241Z2D|0)!=(0);
+ $22 = ($8>>>0)<($4>>>0);
+ $or$cond = $22 & $21;
+ if ($or$cond) {
+  $spec$select$v = $15 ? -2 : -1;
+  $spec$select = (($spec$select$v) + ($11))|0;
+  $23 = ((($0)) + 96|0);
+  $24 = ((($0)) + 64|0);
+  $25 = $23;
+  $26 = $24;
+  $27 = $26 | $25;
+  $28 = $27 & 3;
+  $29 = ($28|0)==(0);
+  $30 = ($8>>>0)>(3);
+  $or$cond$i = $29 & $30;
+  if ($or$cond$i) {
+   $31 = (($8) + -4)|0;
+   $32 = $31 & -4;
+   $33 = (($32) + 4)|0;
+   $scevgep$i = (($24) + ($33)|0);
+   $$02434$i = $24;$$02533$i = $23;$$035$i = $8;
+   while(1) {
+    $34 = ((($$02434$i)) + 4|0);
+    $35 = HEAP32[$$02434$i>>2]|0;
+    $36 = ((($$02533$i)) + 4|0);
+    HEAP32[$$02533$i>>2] = $35;
+    $37 = (($$035$i) + -4)|0;
+    $38 = ($37>>>0)>(3);
+    if ($38) {
+     $$02434$i = $34;$$02533$i = $36;$$035$i = $37;
+    } else {
+     break;
+    }
+   }
+   $scevgep44$i = (((($0)) + 96|0) + ($33)|0);
+   $39 = (($31) - ($32))|0;
+   $$026$i = $scevgep$i;$$028$i = $scevgep44$i;$$1$i = $39;
+  } else {
+   $$026$i = $24;$$028$i = $23;$$1$i = $8;
+  }
+  $40 = ($$1$i|0)==(0);
+  if ($40) {
+   $$1124 = $spec$select;
+  } else {
+   $$12731$i = $$026$i;$$12930$i = $$028$i;$$232$i = $$1$i;
+   while(1) {
+    $41 = ((($$12731$i)) + 1|0);
+    $42 = HEAP8[$$12731$i>>0]|0;
+    $43 = ((($$12930$i)) + 1|0);
+    HEAP8[$$12930$i>>0] = $42;
+    $44 = (($$232$i) + -1)|0;
+    $45 = ($44|0)==(0);
+    if ($45) {
+     $$1124 = $spec$select;
+     break;
+    } else {
+     $$12731$i = $41;$$12930$i = $43;$$232$i = $44;
+    }
+   }
+  }
+ } else {
+  $$1124 = $11;
+ }
+ $46 = ((($0)) + 32|0);
+ $47 = HEAP32[$46>>2]|0;
+ $48 = ($47|0)==(0|0);
+ do {
+  if ($48) {
+   $54 = ($$1124|0)==(0);
+   if ($54) {
+    $$1 = 0;$$1127 = $1;$$1131 = $3;
+   } else {
+    $55 = ((($0)) + 496|0);
+    $56 = ((($0)) + 96|0);
+    $57 = ((($0)) + 64|0);
+    $58 = $56;
+    $59 = $57;
+    $60 = $59 | $58;
+    $61 = ($8>>>0)>(3);
+    $62 = (($8) + -4)|0;
+    $63 = $62 & -4;
+    $64 = (($63) + 4)|0;
+    $scevgep84$i = (((($0)) + 96|0) + ($64)|0);
+    $scevgep88$i = (($57) + ($64)|0);
+    $65 = (($62) - ($63))|0;
+    $66 = Math_imul($$1124, $8)|0;
+    $scevgep = (($3) + ($66)|0);
+    if (!($61)) {
+     $100 = ($8|0)==(0);
+     $$0122218 = 0;$$0126217 = $1;$$0129216 = 0;$$0130215 = $3;
+     while(1) {
+      $101 = (FUNCTION_TABLE_iiii[$10 & 127]($55,$56,$$0130215)|0);
+      $102 = ($101>>>0)>($$0122218>>>0);
+      $103 = $102 ? $101 : $$0122218;
+      if (!($100)) {
+       $$15165$i = $$0126217;$$15764$i = $57;$$15963$i = $$0130215;$$16162$i = 
$56;$$266$i = $8;
+       while(1) {
+        $104 = ((($$15963$i)) + 1|0);
+        $105 = HEAP8[$$15963$i>>0]|0;
+        $106 = HEAP8[$$15764$i>>0]|0;
+        $107 = ((($$16162$i)) + 1|0);
+        $108 = HEAP8[$$16162$i>>0]|0;
+        $109 = $108 ^ $106;
+        $110 = ((($$15165$i)) + 1|0);
+        HEAP8[$$15165$i>>0] = $109;
+        $111 = ((($$15764$i)) + 1|0);
+        HEAP8[$$15764$i>>0] = $105;
+        $112 = (($$266$i) + -1)|0;
+        $113 = ($112|0)==(0);
+        if ($113) {
+         break;
+        } else {
+         $$15165$i = $110;$$15764$i = $111;$$15963$i = $104;$$16162$i = 
$107;$$266$i = $112;
+        }
+       }
+      }
+      $114 = (($$0130215) + ($8)|0);
+      $115 = (($$0126217) + ($8)|0);
+      $116 = (($$0129216) + 1)|0;
+      $exitcond237 = ($116|0)==($$1124|0);
+      if ($exitcond237) {
+       break;
+      } else {
+       $$0122218 = $103;$$0126217 = $115;$$0129216 = $116;$$0130215 = $114;
+      }
+     }
+     $scevgep236 = (($1) + ($66)|0);
+     $$1 = $103;$$1127 = $scevgep236;$$1131 = $scevgep;
+     break;
+    }
+    $$0122218$us = 0;$$0126217$us = $1;$$0129216$us = 0;$$0130215$us = $3;
+    while(1) {
+     $67 = (FUNCTION_TABLE_iiii[$10 & 127]($55,$56,$$0130215$us)|0);
+     $68 = ($67>>>0)>($$0122218$us>>>0);
+     $69 = $68 ? $67 : $$0122218$us;
+     $70 = $$0130215$us;
+     $71 = $$0126217$us;
+     $72 = $60 | $70;
+     $73 = $72 | $71;
+     $74 = $73 & 3;
+     $75 = ($74|0)==(0);
+     if ($75) {
+      $scevgep$i138$us = (($$0130215$us) + ($64)|0);
+      $$05270$i$us = $56;$$05369$i$us = $$0130215$us;$$05468$i$us = 
$57;$$05567$i$us = $$0126217$us;$$071$i$us = $8;
+      while(1) {
+       $76 = ((($$05369$i$us)) + 4|0);
+       $77 = HEAP32[$$05369$i$us>>2]|0;
+       $78 = HEAP32[$$05468$i$us>>2]|0;
+       $79 = ((($$05270$i$us)) + 4|0);
+       $80 = HEAP32[$$05270$i$us>>2]|0;
+       $81 = $80 ^ $78;
+       $82 = ((($$05567$i$us)) + 4|0);
+       HEAP32[$$05567$i$us>>2] = $81;
+       $83 = ((($$05468$i$us)) + 4|0);
+       HEAP32[$$05468$i$us>>2] = $77;
+       $84 = (($$071$i$us) + -4)|0;
+       $85 = ($84>>>0)>(3);
+       if ($85) {
+        $$05270$i$us = $79;$$05369$i$us = $76;$$05468$i$us = $83;$$05567$i$us 
= $82;$$071$i$us = $84;
+       } else {
+        break;
+       }
+      }
+      $scevgep86$i$us = (($$0126217$us) + ($64)|0);
+      $$050$i139$us = $scevgep86$i$us;$$056$i$us = $scevgep88$i;$$058$i$us = 
$scevgep$i138$us;$$060$i$us = $scevgep84$i;$$1$i140$us = $65;
+     } else {
+      $$050$i139$us = $$0126217$us;$$056$i$us = $57;$$058$i$us = 
$$0130215$us;$$060$i$us = $56;$$1$i140$us = $8;
+     }
+     $86 = ($$1$i140$us|0)==(0);
+     if (!($86)) {
+      $$15165$i$us = $$050$i139$us;$$15764$i$us = $$056$i$us;$$15963$i$us = 
$$058$i$us;$$16162$i$us = $$060$i$us;$$266$i$us = $$1$i140$us;
+      while(1) {
+       $87 = ((($$15963$i$us)) + 1|0);
+       $88 = HEAP8[$$15963$i$us>>0]|0;
+       $89 = HEAP8[$$15764$i$us>>0]|0;
+       $90 = ((($$16162$i$us)) + 1|0);
+       $91 = HEAP8[$$16162$i$us>>0]|0;
+       $92 = $91 ^ $89;
+       $93 = ((($$15165$i$us)) + 1|0);
+       HEAP8[$$15165$i$us>>0] = $92;
+       $94 = ((($$15764$i$us)) + 1|0);
+       HEAP8[$$15764$i$us>>0] = $88;
+       $95 = (($$266$i$us) + -1)|0;
+       $96 = ($95|0)==(0);
+       if ($96) {
+        break;
+       } else {
+        $$15165$i$us = $93;$$15764$i$us = $94;$$15963$i$us = $87;$$16162$i$us 
= $90;$$266$i$us = $95;
+       }
+      }
+     }
+     $97 = (($$0130215$us) + ($8)|0);
+     $98 = (($$0126217$us) + ($8)|0);
+     $99 = (($$0129216$us) + 1)|0;
+     $exitcond232 = ($99|0)==($$1124|0);
+     if ($exitcond232) {
+      break;
+     } else {
+      $$0122218$us = $69;$$0126217$us = $98;$$0129216$us = $99;$$0130215$us = 
$97;
+     }
+    }
+    $scevgep231 = (($1) + ($66)|0);
+    $$1 = $69;$$1127 = $scevgep231;$$1131 = $scevgep;
+   }
+  } else {
+   $49 = ((($0)) + 496|0);
+   $50 = ((($0)) + 64|0);
+   FUNCTION_TABLE_viiiii[$47 & 127]($49,$50,$1,$3,$$1124);
+   $51 = Math_imul($$1124, $8)|0;
+   $52 = (($3) + ($51)|0);
+   $53 = (($1) + ($51)|0);
+   $$1 = 0;$$1127 = $53;$$1131 = $52;
+  }
+ } while(0);
+ $117 = HEAP32[$$pre$phiZ2D>>2]|0;
+ $118 = $117 & 4;
+ $119 = ($118|0)!=(0);
+ $or$cond132 = $22 & $119;
+ if ($or$cond132) {
+  $$ = $15 ? $8 : $14;
+  $120 = ((($0)) + 96|0);
+  $121 = ((($0)) + 64|0);
+  $122 = $120;
+  $123 = $121;
+  $124 = $123 | $122;
+  $125 = $124 & 3;
+  $126 = ($125|0)==(0);
+  $127 = ($8>>>0)>(3);
+  $or$cond$i180 = $126 & $127;
+  if ($or$cond$i180) {
+   $128 = (($8) + -4)|0;
+   $129 = $128 & -4;
+   $130 = (($129) + 4)|0;
+   $scevgep$i181 = (($121) + ($130)|0);
+   $$02434$i185 = $121;$$02533$i186 = $120;$$035$i184 = $8;
+   while(1) {
+    $131 = ((($$02434$i185)) + 4|0);
+    $132 = HEAP32[$$02434$i185>>2]|0;
+    $133 = ((($$02533$i186)) + 4|0);
+    HEAP32[$$02533$i186>>2] = $132;
+    $134 = (($$035$i184) + -4)|0;
+    $135 = ($134>>>0)>(3);
+    if ($135) {
+     $$02434$i185 = $131;$$02533$i186 = $133;$$035$i184 = $134;
+    } else {
+     break;
+    }
+   }
+   $scevgep44$i182 = (((($0)) + 96|0) + ($130)|0);
+   $136 = (($128) - ($129))|0;
+   $$026$i189 = $scevgep$i181;$$028$i188 = $scevgep44$i182;$$1$i190 = $136;
+  } else {
+   $$026$i189 = $121;$$028$i188 = $120;$$1$i190 = $8;
+  }
+  $137 = ($$1$i190|0)==(0);
+  if (!($137)) {
+   $$12731$i194 = $$026$i189;$$12930$i195 = $$028$i188;$$232$i193 = $$1$i190;
+   while(1) {
+    $138 = ((($$12731$i194)) + 1|0);
+    $139 = HEAP8[$$12731$i194>>0]|0;
+    $140 = ((($$12930$i195)) + 1|0);
+    HEAP8[$$12930$i195>>0] = $139;
+    $141 = (($$232$i193) + -1)|0;
+    $142 = ($141|0)==(0);
+    if ($142) {
+     break;
+    } else {
+     $$12731$i194 = $138;$$12930$i195 = $140;$$232$i193 = $141;
+    }
+   }
+  }
+  $143 = (($$1131) + ($8)|0);
+  $144 = $143;
+  $145 = $144 | $123;
+  $146 = $145 & 3;
+  $147 = ($146|0)==(0);
+  $148 = ($$>>>0)>(3);
+  $or$cond$i197 = $148 & $147;
+  if ($or$cond$i197) {
+   $149 = (($$) + -4)|0;
+   $150 = $149 & -4;
+   $151 = (($150) + 4)|0;
+   $scevgep$i198 = (($143) + ($151)|0);
+   $$02434$i202 = $143;$$02533$i203 = $121;$$035$i201 = $$;
+   while(1) {
+    $152 = ((($$02434$i202)) + 4|0);
+    $153 = HEAP32[$$02434$i202>>2]|0;
+    $154 = ((($$02533$i203)) + 4|0);
+    HEAP32[$$02533$i203>>2] = $153;
+    $155 = (($$035$i201) + -4)|0;
+    $156 = ($155>>>0)>(3);
+    if ($156) {
+     $$02434$i202 = $152;$$02533$i203 = $154;$$035$i201 = $155;
+    } else {
+     break;
+    }
+   }
+   $scevgep44$i199 = (($121) + ($151)|0);
+   $157 = (($149) - ($150))|0;
+   $$026$i206 = $scevgep$i198;$$028$i205 = $scevgep44$i199;$$1$i207 = $157;
+  } else {
+   $$026$i206 = $143;$$028$i205 = $121;$$1$i207 = $$;
+  }
+  $158 = ($$1$i207|0)==(0);
+  if (!($158)) {
+   $$12731$i211 = $$026$i206;$$12930$i212 = $$028$i205;$$232$i210 = $$1$i207;
+   while(1) {
+    $159 = ((($$12731$i211)) + 1|0);
+    $160 = HEAP8[$$12731$i211>>0]|0;
+    $161 = ((($$12930$i212)) + 1|0);
+    HEAP8[$$12930$i212>>0] = $160;
+    $162 = (($$232$i210) + -1)|0;
+    $163 = ($162|0)==(0);
+    if ($163) {
+     break;
+    } else {
+     $$12731$i211 = $159;$$12930$i212 = $161;$$232$i210 = $162;
+    }
+   }
+  }
+  $164 = ((($0)) + 496|0);
+  $165 = (FUNCTION_TABLE_iiii[$10 & 127]($164,$$1127,$$1131)|0);
+  $166 = ($165>>>0)>($$1>>>0);
+  $167 = $166 ? $165 : $$1;
+  $168 = $$1127;
+  $169 = $168 | $123;
+  $170 = $169 & 3;
+  $171 = ($170|0)==(0);
+  $or$cond$i159 = $148 & $171;
+  if ($or$cond$i159) {
+   $172 = (($$) + -4)|0;
+   $173 = $172 & -4;
+   $174 = (($173) + 4)|0;
+   $scevgep$i160 = (($$1127) + ($174)|0);
+   $$03449$i165 = $121;$$03548$i166 = $$1127;$$050$i164 = $$;
+   while(1) {
+    $175 = ((($$03548$i166)) + 4|0);
+    $176 = HEAP32[$$03548$i166>>2]|0;
+    $177 = ((($$03449$i165)) + 4|0);
+    $178 = HEAP32[$$03449$i165>>2]|0;
+    $179 = $178 ^ $176;
+    HEAP32[$$03548$i166>>2] = $179;
+    $180 = (($$050$i164) + -4)|0;
+    $181 = ($180>>>0)>(3);
+    if ($181) {
+     $$03449$i165 = $177;$$03548$i166 = $175;$$050$i164 = $180;
+    } else {
+     break;
+    }
+   }
+   $scevgep61$i161 = (($121) + ($174)|0);
+   $182 = (($172) - ($173))|0;
+   $$037$i171 = $scevgep61$i161;$$041$i169 = $scevgep$i160;$$1$i172 = $182;
+  } else {
+   $$037$i171 = $121;$$041$i169 = $$1127;$$1$i172 = $$;
+  }
+  $183 = ($$1$i172|0)==(0);
+  if (!($183)) {
+   $$13845$i176 = $$037$i171;$$14044$i177 = $$041$i169;$$246$i175 = $$1$i172;
+   while(1) {
+    $184 = ((($$14044$i177)) + 1|0);
+    $185 = HEAP8[$$14044$i177>>0]|0;
+    $186 = ((($$13845$i176)) + 1|0);
+    $187 = HEAP8[$$13845$i176>>0]|0;
+    $188 = $187 ^ $185;
+    HEAP8[$$14044$i177>>0] = $188;
+    $189 = (($$246$i175) + -1)|0;
+    $190 = ($189|0)==(0);
+    if ($190) {
+     break;
+    } else {
+     $$13845$i176 = $186;$$14044$i177 = $184;$$246$i175 = $189;
+    }
+   }
+  }
+  $191 = (($$1127) + ($8)|0);
+  $192 = $191;
+  $193 = $192 | $168;
+  $194 = $193 & 3;
+  $195 = ($194|0)==(0);
+  $or$cond$i142 = $148 & $195;
+  if ($or$cond$i142) {
+   $196 = (($$) + -4)|0;
+   $197 = $196 & -4;
+   $198 = (($197) + 4)|0;
+   $scevgep$i143 = (($$1127) + ($198)|0);
+   $$02434$i147 = $$1127;$$02533$i148 = $191;$$035$i146 = $$;
+   while(1) {
+    $199 = ((($$02434$i147)) + 4|0);
+    $200 = HEAP32[$$02434$i147>>2]|0;
+    $201 = ((($$02533$i148)) + 4|0);
+    HEAP32[$$02533$i148>>2] = $200;
+    $202 = (($$035$i146) + -4)|0;
+    $203 = ($202>>>0)>(3);
+    if ($203) {
+     $$02434$i147 = $199;$$02533$i148 = $201;$$035$i146 = $202;
+    } else {
+     break;
+    }
+   }
+   $scevgep44$i144 = (($191) + ($198)|0);
+   $204 = (($196) - ($197))|0;
+   $$026$i151 = $scevgep$i143;$$028$i150 = $scevgep44$i144;$$1$i152 = $204;
+  } else {
+   $$026$i151 = $$1127;$$028$i150 = $191;$$1$i152 = $$;
+  }
+  $205 = ($$1$i152|0)==(0);
+  if (!($205)) {
+   $$12731$i156 = $$026$i151;$$12930$i157 = $$028$i150;$$232$i155 = $$1$i152;
+   while(1) {
+    $206 = ((($$12731$i156)) + 1|0);
+    $207 = HEAP8[$$12731$i156>>0]|0;
+    $208 = ((($$12930$i157)) + 1|0);
+    HEAP8[$$12930$i157>>0] = $207;
+    $209 = (($$232$i155) + -1)|0;
+    $210 = ($209|0)==(0);
+    if ($210) {
+     break;
+    } else {
+     $$12731$i156 = $206;$$12930$i157 = $208;$$232$i155 = $209;
+    }
+   }
+  }
+  $211 = ($$>>>0)<($8>>>0);
+  if ($211) {
+   $$0128214 = $$;
+   while(1) {
+    $212 = (($$1127) + ($$0128214)|0);
+    $213 = HEAP8[$212>>0]|0;
+    $214 = (($121) + ($$0128214)|0);
+    HEAP8[$214>>0] = $213;
+    $215 = (($$0128214) + 1)|0;
+    $exitcond = ($215|0)==($8|0);
+    if ($exitcond) {
+     break;
+    } else {
+     $$0128214 = $215;
+    }
+   }
+  }
+  $216 = (FUNCTION_TABLE_iiii[$10 & 127]($164,$$1127,$121)|0);
+  $217 = ($216>>>0)>($167>>>0);
+  $218 = $217 ? $216 : $167;
+  $219 = $168 | $122;
+  $220 = $219 & 3;
+  $221 = ($220|0)==(0);
+  $or$cond$i133 = $127 & $221;
+  if ($or$cond$i133) {
+   $222 = (($8) + -4)|0;
+   $223 = $222 & -4;
+   $224 = (($223) + 4)|0;
+   $scevgep$i134 = (($$1127) + ($224)|0);
+   $$03449$i = $120;$$03548$i = $$1127;$$050$i = $8;
+   while(1) {
+    $225 = ((($$03548$i)) + 4|0);
+    $226 = HEAP32[$$03548$i>>2]|0;
+    $227 = ((($$03449$i)) + 4|0);
+    $228 = HEAP32[$$03449$i>>2]|0;
+    $229 = $228 ^ $226;
+    HEAP32[$$03548$i>>2] = $229;
+    $230 = (($$050$i) + -4)|0;
+    $231 = ($230>>>0)>(3);
+    if ($231) {
+     $$03449$i = $227;$$03548$i = $225;$$050$i = $230;
+    } else {
+     break;
+    }
+   }
+   $scevgep61$i = (((($0)) + 96|0) + ($224)|0);
+   $232 = (($222) - ($223))|0;
+   $$037$i = $scevgep61$i;$$041$i = $scevgep$i134;$$1$i135 = $232;
+  } else {
+   $$037$i = $120;$$041$i = $$1127;$$1$i135 = $8;
+  }
+  $233 = ($$1$i135|0)==(0);
+  if ($233) {
+   $$2 = $218;
+  } else {
+   $$13845$i = $$037$i;$$14044$i = $$041$i;$$246$i = $$1$i135;
+   while(1) {
+    $234 = ((($$14044$i)) + 1|0);
+    $235 = HEAP8[$$14044$i>>0]|0;
+    $236 = ((($$13845$i)) + 1|0);
+    $237 = HEAP8[$$13845$i>>0]|0;
+    $238 = $237 ^ $235;
+    HEAP8[$$14044$i>>0] = $238;
+    $239 = (($$246$i) + -1)|0;
+    $240 = ($239|0)==(0);
+    if ($240) {
+     $$2 = $218;
+     break;
+    } else {
+     $$13845$i = $236;$$14044$i = $234;$$246$i = $239;
+    }
+   }
+  }
+ } else {
+  $$2 = $$1;
+ }
+ $241 = ($$2|0)==(0);
+ if ($241) {
+  $$0125 = 0;
+  return ($$0125|0);
+ }
+ $242 = (($$2) + 16)|0;
+ ___gcry_burn_stack($242);
+ $$0125 = 0;
+ return ($$0125|0);
+}
+function __gcry_cipher_ccm_set_nonce($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$off = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 
= 0, $9 = 0, dest = 0;
+ var label = 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ $3 = (15 - ($2))|0;
+ $4 = (($3) + 255)|0;
+ $5 = ($1|0)==(0|0);
+ if ($5) {
+  $$0 = 45;
+  return ($$0|0);
+ }
+ $$off = (($3) + -2)|0;
+ $6 = ($$off>>>0)>(6);
+ if ($6) {
+  $$0 = 139;
+  return ($$0|0);
+ }
+ $7 = ((($0)) + 128|0);
+ _memset(($7|0),0,368)|0;
+ $8 = ((($0)) + 56|0);
+ HEAP32[$8>>2] = 0;
+ $9 = ((($0)) + 64|0);
+ $10 = ((($0)) + 80|0);
+ $11 = $4&255;
+ dest=$9; stop=dest+52|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ HEAP8[$10>>0] = $11;
+ $12 = ((($10)) + 1|0);
+ _memcpy(($12|0),($1|0),($2|0))|0;
+ $13 = (($2) + 1)|0;
+ $14 = (($10) + ($13)|0);
+ _memset(($14|0),0,($3|0))|0;
+ HEAP8[$9>>0] = $11;
+ $15 = ((($9)) + 1|0);
+ _memcpy(($15|0),($1|0),($2|0))|0;
+ $16 = (($9) + ($13)|0);
+ _memset(($16|0),0,($3|0))|0;
+ $17 = ((($0)) + 184|0);
+ $18 = HEAP8[$17>>0]|0;
+ $19 = $18 | 1;
+ HEAP8[$17>>0] = $19;
+ $$0 = 0;
+ return ($$0|0);
+}
+function _do_cbc_mac($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$0107 = 0, $$0108 = 0, $$0121 = 0, $$0127 = 0, $$1109145 = 0, 
$$1122 = 0, $$1128144 = 0, $$1146 = 0, $$2 = 0, $$2110 = 0, $$2123160 = 0, 
$$2129 = 0, $$3111161 = 0, $$3124 = 0, $$3162 = 0, $$4 = 0, $$4112 = 0, $$4125 
= 0, $$6 = 0;
+ var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 
= 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 
= 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0;
+ var $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;
+ var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 
= 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 
= 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0;
+ var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 
= 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 
= 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0;
+ var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, 
$179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, 
$186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0;
+ var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, 
$197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, 
$204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0;
+ var $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 
= 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 
= 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0;
+ var $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 
= 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 
= 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0;
+ var $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 
= 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 
= 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0;
+ var $263 = 0, $264 = 0, $265 = 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;
+ var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 
0, $59 = 0, $6 = 0, $60 = 0;
+ var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, 
$69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, 
$77 = 0, $78 = 0, $79 = 0;
+ var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, 
$87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, 
$95 = 0, $96 = 0, $97 = 0;
+ var $98 = 0, $99 = 0, $or$cond = 0, $or$cond3 = 0, $scevgep177 = 0, 
$scevgep182 = 0, $scevgep183 = 0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $4 = sp;
+ $5 = ((($0)) + 12|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ((($6)) + 36|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ((($0)) + 164|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ($2|0)==(0);
+ if ($11) {
+  $12 = ($10|0)!=(0);
+  $13 = ($3|0)!=(0);
+  $or$cond = $13 & $12;
+  if (!($or$cond)) {
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+ }
+ $14 = ((($0)) + 148|0);
+ $15 = ($3|0)==(0);
+ $16 = ((($0)) + 64|0);
+ $17 = $16;
+ $18 = $14;
+ $19 = $17 | $18;
+ $20 = $19 & 3;
+ $21 = ($20|0)==(0);
+ $22 = ((($0)) + 28|0);
+ $23 = ((($16)) + 4|0);
+ $24 = ((($0)) + 152|0);
+ $25 = ((($0)) + 72|0);
+ $26 = ((($0)) + 156|0);
+ $27 = ((($0)) + 76|0);
+ $28 = ((($0)) + 160|0);
+ $29 = ((($0)) + 496|0);
+ $30 = ((($16)) + 1|0);
+ $31 = ((($0)) + 149|0);
+ $32 = ((($16)) + 2|0);
+ $33 = ((($0)) + 150|0);
+ $34 = ((($16)) + 3|0);
+ $35 = ((($0)) + 151|0);
+ $36 = ((($16)) + 4|0);
+ $37 = ((($0)) + 152|0);
+ $38 = ((($16)) + 5|0);
+ $39 = ((($0)) + 153|0);
+ $40 = ((($16)) + 6|0);
+ $41 = ((($0)) + 154|0);
+ $42 = ((($16)) + 7|0);
+ $43 = ((($0)) + 155|0);
+ $44 = ((($0)) + 72|0);
+ $45 = ((($0)) + 156|0);
+ $46 = ((($0)) + 73|0);
+ $47 = ((($0)) + 157|0);
+ $48 = ((($0)) + 74|0);
+ $49 = ((($0)) + 158|0);
+ $50 = ((($0)) + 75|0);
+ $51 = ((($0)) + 159|0);
+ $52 = ((($0)) + 76|0);
+ $53 = ((($0)) + 160|0);
+ $54 = ((($0)) + 77|0);
+ $55 = ((($0)) + 161|0);
+ $56 = ((($0)) + 78|0);
+ $57 = ((($0)) + 162|0);
+ $58 = ((($0)) + 79|0);
+ $59 = ((($0)) + 163|0);
+ $60 = ((($4)) + 8|0);
+ $61 = ((($16)) + 1|0);
+ $62 = ((($16)) + 2|0);
+ $63 = ((($16)) + 3|0);
+ $64 = ((($16)) + 4|0);
+ $65 = ((($16)) + 5|0);
+ $66 = ((($16)) + 6|0);
+ $67 = ((($16)) + 7|0);
+ $68 = ((($0)) + 72|0);
+ $69 = ((($0)) + 73|0);
+ $70 = ((($0)) + 74|0);
+ $71 = ((($0)) + 75|0);
+ $72 = ((($0)) + 76|0);
+ $73 = ((($0)) + 77|0);
+ $74 = ((($0)) + 78|0);
+ $75 = ((($0)) + 79|0);
+ $$0107 = $1;$$0108 = $2;$$0121 = 0;$$0127 = $10;
+ while(1) {
+  $76 = (($$0108) + ($$0127))|0;
+  $77 = ($76>>>0)<(16);
+  $78 = ($$0127|0)!=(0);
+  $or$cond3 = $78 | $77;
+  if ($or$cond3) {
+   $79 = ($$0108|0)!=(0);
+   $80 = ($$0127>>>0)<(16);
+   $81 = $80 & $79;
+   if ($81) {
+    $$1109145 = $$0108;$$1128144 = $$0127;$$1146 = $$0107;
+    while(1) {
+     $82 = ((($$1146)) + 1|0);
+     $83 = HEAP8[$$1146>>0]|0;
+     $84 = (($$1128144) + 1)|0;
+     $85 = (($14) + ($$1128144)|0);
+     HEAP8[$85>>0] = $83;
+     $86 = (($$1109145) + -1)|0;
+     $87 = ($86|0)!=(0);
+     $88 = ($84>>>0)<(16);
+     $89 = $88 & $87;
+     if ($89) {
+      $$1109145 = $86;$$1128144 = $84;$$1146 = $82;
+     } else {
+      $$2 = $82;$$2110 = $86;$$2129 = $84;
+      break;
+     }
+    }
+   } else {
+    $$2 = $$0107;$$2110 = $$0108;$$2129 = $$0127;
+   }
+  } else {
+   $$2 = $$0107;$$2110 = $$0108;$$2129 = 0;
+  }
+  $90 = ($$2110|0)==(0);
+  if ($90) {
+   if ($15) {
+    $$4125 = $$0121;$$6 = $$2129;
+    break;
+   }
+   $91 = ($$2129>>>0)<(16);
+   if ($91) {
+    $scevgep177 = (($14) + ($$2129)|0);
+    $92 = (16 - ($$2129))|0;
+    _memset(($scevgep177|0),0,($92|0))|0;
+    label = 13;
+   } else {
+    label = 13;
+   }
+  } else {
+   $93 = ($$2129|0)==(0);
+   if ($93) {
+    $$1122 = $$0121;
+   } else {
+    label = 13;
+   }
+  }
+  if ((label|0) == 13) {
+   label = 0;
+   if ($21) {
+    $94 = HEAP32[$16>>2]|0;
+    $95 = HEAP32[$14>>2]|0;
+    $96 = $95 ^ $94;
+    HEAP32[$16>>2] = $96;
+    $97 = HEAP32[$23>>2]|0;
+    $98 = HEAP32[$24>>2]|0;
+    $99 = $98 ^ $97;
+    HEAP32[$23>>2] = $99;
+    $100 = HEAP32[$25>>2]|0;
+    $101 = HEAP32[$26>>2]|0;
+    $102 = $101 ^ $100;
+    HEAP32[$25>>2] = $102;
+    $103 = HEAP32[$27>>2]|0;
+    $104 = HEAP32[$28>>2]|0;
+    $105 = $104 ^ $103;
+    HEAP32[$27>>2] = $105;
+   } else {
+    $106 = HEAP8[$16>>0]|0;
+    $107 = HEAP8[$14>>0]|0;
+    $108 = $107 ^ $106;
+    HEAP8[$16>>0] = $108;
+    $109 = HEAP8[$30>>0]|0;
+    $110 = HEAP8[$31>>0]|0;
+    $111 = $110 ^ $109;
+    HEAP8[$30>>0] = $111;
+    $112 = HEAP8[$32>>0]|0;
+    $113 = HEAP8[$33>>0]|0;
+    $114 = $113 ^ $112;
+    HEAP8[$32>>0] = $114;
+    $115 = HEAP8[$34>>0]|0;
+    $116 = HEAP8[$35>>0]|0;
+    $117 = $116 ^ $115;
+    HEAP8[$34>>0] = $117;
+    $118 = HEAP8[$36>>0]|0;
+    $119 = HEAP8[$37>>0]|0;
+    $120 = $119 ^ $118;
+    HEAP8[$36>>0] = $120;
+    $121 = HEAP8[$38>>0]|0;
+    $122 = HEAP8[$39>>0]|0;
+    $123 = $122 ^ $121;
+    HEAP8[$38>>0] = $123;
+    $124 = HEAP8[$40>>0]|0;
+    $125 = HEAP8[$41>>0]|0;
+    $126 = $125 ^ $124;
+    HEAP8[$40>>0] = $126;
+    $127 = HEAP8[$42>>0]|0;
+    $128 = HEAP8[$43>>0]|0;
+    $129 = $128 ^ $127;
+    HEAP8[$42>>0] = $129;
+    $130 = HEAP8[$44>>0]|0;
+    $131 = HEAP8[$45>>0]|0;
+    $132 = $131 ^ $130;
+    HEAP8[$44>>0] = $132;
+    $133 = HEAP8[$46>>0]|0;
+    $134 = HEAP8[$47>>0]|0;
+    $135 = $134 ^ $133;
+    HEAP8[$46>>0] = $135;
+    $136 = HEAP8[$48>>0]|0;
+    $137 = HEAP8[$49>>0]|0;
+    $138 = $137 ^ $136;
+    HEAP8[$48>>0] = $138;
+    $139 = HEAP8[$50>>0]|0;
+    $140 = HEAP8[$51>>0]|0;
+    $141 = $140 ^ $139;
+    HEAP8[$50>>0] = $141;
+    $142 = HEAP8[$52>>0]|0;
+    $143 = HEAP8[$53>>0]|0;
+    $144 = $143 ^ $142;
+    HEAP8[$52>>0] = $144;
+    $145 = HEAP8[$54>>0]|0;
+    $146 = HEAP8[$55>>0]|0;
+    $147 = $146 ^ $145;
+    HEAP8[$54>>0] = $147;
+    $148 = HEAP8[$56>>0]|0;
+    $149 = HEAP8[$57>>0]|0;
+    $150 = $149 ^ $148;
+    HEAP8[$56>>0] = $150;
+    $151 = HEAP8[$58>>0]|0;
+    $152 = HEAP8[$59>>0]|0;
+    $153 = $152 ^ $151;
+    HEAP8[$58>>0] = $153;
+   }
+   $154 = (FUNCTION_TABLE_iiii[$8 & 127]($29,$16,$16)|0);
+   $155 = ($$0121>>>0)>($154>>>0);
+   $156 = $155 ? $$0121 : $154;
+   $$1122 = $156;
+  }
+  $157 = HEAP32[$22>>2]|0;
+  $158 = ($157|0)==(0|0);
+  if ($158) {
+   $171 = ($$2110>>>0)>(15);
+   if ($171) {
+    $172 = (($$2110) + -16)|0;
+    $173 = $172 & -16;
+    $scevgep182 = ((($$2)) + 16|0);
+    $$2123160 = $$1122;$$3111161 = $$2110;$$3162 = $$2;
+    while(1) {
+     $174 = $$3162;
+     $175 = $174 | $17;
+     $176 = $175 & 3;
+     $177 = ($176|0)==(0);
+     if ($177) {
+      $178 = HEAP32[$16>>2]|0;
+      $179 = ((($$3162)) + 4|0);
+      $180 = HEAP32[$$3162>>2]|0;
+      $181 = $180 ^ $178;
+      HEAP32[$16>>2] = $181;
+      $182 = HEAP32[$23>>2]|0;
+      $183 = ((($$3162)) + 8|0);
+      $184 = HEAP32[$179>>2]|0;
+      $185 = $184 ^ $182;
+      HEAP32[$23>>2] = $185;
+      $186 = HEAP32[$25>>2]|0;
+      $187 = ((($$3162)) + 12|0);
+      $188 = HEAP32[$183>>2]|0;
+      $189 = $188 ^ $186;
+      HEAP32[$25>>2] = $189;
+      $190 = HEAP32[$27>>2]|0;
+      $191 = HEAP32[$187>>2]|0;
+      $192 = $191 ^ $190;
+      HEAP32[$27>>2] = $192;
+     } else {
+      $193 = HEAP8[$16>>0]|0;
+      $194 = ((($$3162)) + 1|0);
+      $195 = HEAP8[$$3162>>0]|0;
+      $196 = $195 ^ $193;
+      HEAP8[$16>>0] = $196;
+      $197 = HEAP8[$61>>0]|0;
+      $198 = ((($$3162)) + 2|0);
+      $199 = HEAP8[$194>>0]|0;
+      $200 = $199 ^ $197;
+      HEAP8[$61>>0] = $200;
+      $201 = HEAP8[$62>>0]|0;
+      $202 = ((($$3162)) + 3|0);
+      $203 = HEAP8[$198>>0]|0;
+      $204 = $203 ^ $201;
+      HEAP8[$62>>0] = $204;
+      $205 = HEAP8[$63>>0]|0;
+      $206 = ((($$3162)) + 4|0);
+      $207 = HEAP8[$202>>0]|0;
+      $208 = $207 ^ $205;
+      HEAP8[$63>>0] = $208;
+      $209 = HEAP8[$64>>0]|0;
+      $210 = ((($$3162)) + 5|0);
+      $211 = HEAP8[$206>>0]|0;
+      $212 = $211 ^ $209;
+      HEAP8[$64>>0] = $212;
+      $213 = HEAP8[$65>>0]|0;
+      $214 = ((($$3162)) + 6|0);
+      $215 = HEAP8[$210>>0]|0;
+      $216 = $215 ^ $213;
+      HEAP8[$65>>0] = $216;
+      $217 = HEAP8[$66>>0]|0;
+      $218 = ((($$3162)) + 7|0);
+      $219 = HEAP8[$214>>0]|0;
+      $220 = $219 ^ $217;
+      HEAP8[$66>>0] = $220;
+      $221 = HEAP8[$67>>0]|0;
+      $222 = ((($$3162)) + 8|0);
+      $223 = HEAP8[$218>>0]|0;
+      $224 = $223 ^ $221;
+      HEAP8[$67>>0] = $224;
+      $225 = HEAP8[$68>>0]|0;
+      $226 = ((($$3162)) + 9|0);
+      $227 = HEAP8[$222>>0]|0;
+      $228 = $227 ^ $225;
+      HEAP8[$68>>0] = $228;
+      $229 = HEAP8[$69>>0]|0;
+      $230 = ((($$3162)) + 10|0);
+      $231 = HEAP8[$226>>0]|0;
+      $232 = $231 ^ $229;
+      HEAP8[$69>>0] = $232;
+      $233 = HEAP8[$70>>0]|0;
+      $234 = ((($$3162)) + 11|0);
+      $235 = HEAP8[$230>>0]|0;
+      $236 = $235 ^ $233;
+      HEAP8[$70>>0] = $236;
+      $237 = HEAP8[$71>>0]|0;
+      $238 = ((($$3162)) + 12|0);
+      $239 = HEAP8[$234>>0]|0;
+      $240 = $239 ^ $237;
+      HEAP8[$71>>0] = $240;
+      $241 = HEAP8[$72>>0]|0;
+      $242 = ((($$3162)) + 13|0);
+      $243 = HEAP8[$238>>0]|0;
+      $244 = $243 ^ $241;
+      HEAP8[$72>>0] = $244;
+      $245 = HEAP8[$73>>0]|0;
+      $246 = ((($$3162)) + 14|0);
+      $247 = HEAP8[$242>>0]|0;
+      $248 = $247 ^ $245;
+      HEAP8[$73>>0] = $248;
+      $249 = HEAP8[$74>>0]|0;
+      $250 = ((($$3162)) + 15|0);
+      $251 = HEAP8[$246>>0]|0;
+      $252 = $251 ^ $249;
+      HEAP8[$74>>0] = $252;
+      $253 = HEAP8[$75>>0]|0;
+      $254 = HEAP8[$250>>0]|0;
+      $255 = $254 ^ $253;
+      HEAP8[$75>>0] = $255;
+     }
+     $256 = (FUNCTION_TABLE_iiii[$8 & 127]($29,$16,$16)|0);
+     $257 = ($$2123160>>>0)>($256>>>0);
+     $258 = $257 ? $$2123160 : $256;
+     $259 = (($$3111161) + -16)|0;
+     $260 = ((($$3162)) + 16|0);
+     $261 = ($259>>>0)>(15);
+     if ($261) {
+      $$2123160 = $258;$$3111161 = $259;$$3162 = $260;
+     } else {
+      break;
+     }
+    }
+    $262 = (($172) - ($173))|0;
+    $scevgep183 = (($scevgep182) + ($173)|0);
+    $$3124 = $258;$$4 = $scevgep183;$$4112 = $262;
+   } else {
+    $$3124 = $$1122;$$4 = $$2;$$4112 = $$2110;
+   }
+  } else {
+   $159 = $$2110 >>> 4;
+   FUNCTION_TABLE_viiiiii[$157 & 63]($29,$16,$4,$$2,$159,1);
+   $160 = $$2110 & -16;
+   $161 = (($$2) + ($160)|0);
+   $162 = (($$2110) - ($160))|0;
+   $163 = $4;
+   $164 = $163;
+   HEAP32[$164>>2] = 0;
+   $165 = (($163) + 4)|0;
+   $166 = $165;
+   HEAP32[$166>>2] = 0;
+   $167 = $60;
+   $168 = $167;
+   HEAP32[$168>>2] = 0;
+   $169 = (($167) + 4)|0;
+   $170 = $169;
+   HEAP32[$170>>2] = 0;
+   $$3124 = $$1122;$$4 = $161;$$4112 = $162;
+  }
+  $263 = ($$4112|0)==(0);
+  if ($263) {
+   $$4125 = $$3124;$$6 = 0;
+   break;
+  } else {
+   $$0107 = $$4;$$0108 = $$4112;$$0121 = $$3124;$$0127 = 0;
+  }
+ }
+ HEAP32[$9>>2] = $$6;
+ $264 = ($$4125|0)==(0);
+ $265 = (($$4125) + 16)|0;
+ $spec$select = $264 ? 0 : $265;
+ $$0 = $spec$select;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_cipher_ccm_encrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, 
$37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 
0, $46 = 0, $47 = 0, $5 = 0;
+ var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = ($2>>>0)<($4>>>0);
+ if ($5) {
+  $$0 = 200;
+  return ($$0|0);
+ }
+ $6 = ((($0)) + 184|0);
+ $7 = HEAP8[$6>>0]|0;
+ $8 = $7 & 1;
+ $9 = ($8<<24>>24)==(0);
+ if ($9) {
+  $$0 = 156;
+  return ($$0|0);
+ }
+ $10 = ((($0)) + 56|0);
+ $11 = HEAP8[$10>>0]|0;
+ $12 = $11 & 4;
+ $13 = ($12<<24>>24)!=(0);
+ $14 = $7 & 2;
+ $15 = ($14<<24>>24)==(0);
+ $or$cond = $15 | $13;
+ if ($or$cond) {
+  $$0 = 156;
+  return ($$0|0);
+ }
+ $16 = ((($0)) + 136|0);
+ $17 = $16;
+ $18 = $17;
+ $19 = HEAP32[$18>>2]|0;
+ $20 = (($17) + 4)|0;
+ $21 = $20;
+ $22 = HEAP32[$21>>2]|0;
+ $23 = ($19|0)==(0);
+ $24 = ($22|0)==(0);
+ $25 = $23 & $24;
+ if (!($25)) {
+  $$0 = 156;
+  return ($$0|0);
+ }
+ $26 = ((($0)) + 128|0);
+ $27 = $26;
+ $28 = $27;
+ $29 = HEAP32[$28>>2]|0;
+ $30 = (($27) + 4)|0;
+ $31 = $30;
+ $32 = HEAP32[$31>>2]|0;
+ $33 = ($32>>>0)<(0);
+ $34 = ($29>>>0)<($4>>>0);
+ $35 = ($32|0)==(0);
+ $36 = $35 & $34;
+ $37 = $33 | $36;
+ if ($37) {
+  $$0 = 139;
+  return ($$0|0);
+ }
+ $38 = (_i64Subtract(($29|0),($32|0),($4|0),0)|0);
+ $39 = tempRet0;
+ $40 = $26;
+ $41 = $40;
+ HEAP32[$41>>2] = $38;
+ $42 = (($40) + 4)|0;
+ $43 = $42;
+ HEAP32[$43>>2] = $39;
+ $44 = (_do_cbc_mac($0,$3,$4,0)|0);
+ $45 = ($44|0)==(0);
+ if (!($45)) {
+  $46 = (($44) + 20)|0;
+  ___gcry_burn_stack($46);
+ }
+ $47 = (__gcry_cipher_ctr_encrypt($0,$1,$2,$3,$4)|0);
+ $$0 = $47;
+ return ($$0|0);
+}
+function __gcry_cipher_ccm_decrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, 
$37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 
0, $46 = 0, $47 = 0, $48 = 0;
+ var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $6 = 0, $7 
= 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = ($2>>>0)<($4>>>0);
+ if ($5) {
+  $$0 = 200;
+  return ($$0|0);
+ }
+ $6 = ((($0)) + 184|0);
+ $7 = HEAP8[$6>>0]|0;
+ $8 = $7 & 1;
+ $9 = ($8<<24>>24)==(0);
+ if ($9) {
+  $$0 = 156;
+  return ($$0|0);
+ }
+ $10 = ((($0)) + 56|0);
+ $11 = HEAP8[$10>>0]|0;
+ $12 = $11 & 4;
+ $13 = ($12<<24>>24)!=(0);
+ $14 = $7 & 2;
+ $15 = ($14<<24>>24)==(0);
+ $or$cond = $15 | $13;
+ if ($or$cond) {
+  $$0 = 156;
+  return ($$0|0);
+ }
+ $16 = ((($0)) + 136|0);
+ $17 = $16;
+ $18 = $17;
+ $19 = HEAP32[$18>>2]|0;
+ $20 = (($17) + 4)|0;
+ $21 = $20;
+ $22 = HEAP32[$21>>2]|0;
+ $23 = ($19|0)==(0);
+ $24 = ($22|0)==(0);
+ $25 = $23 & $24;
+ if (!($25)) {
+  $$0 = 156;
+  return ($$0|0);
+ }
+ $26 = ((($0)) + 128|0);
+ $27 = $26;
+ $28 = $27;
+ $29 = HEAP32[$28>>2]|0;
+ $30 = (($27) + 4)|0;
+ $31 = $30;
+ $32 = HEAP32[$31>>2]|0;
+ $33 = ($32>>>0)<(0);
+ $34 = ($29>>>0)<($4>>>0);
+ $35 = ($32|0)==(0);
+ $36 = $35 & $34;
+ $37 = $33 | $36;
+ if ($37) {
+  $$0 = 139;
+  return ($$0|0);
+ }
+ $38 = (__gcry_cipher_ctr_encrypt($0,$1,$2,$3,$4)|0);
+ $39 = ($38|0)==(0);
+ if (!($39)) {
+  $$0 = $38;
+  return ($$0|0);
+ }
+ $40 = $26;
+ $41 = $40;
+ $42 = HEAP32[$41>>2]|0;
+ $43 = (($40) + 4)|0;
+ $44 = $43;
+ $45 = HEAP32[$44>>2]|0;
+ $46 = (_i64Subtract(($42|0),($45|0),($4|0),0)|0);
+ $47 = tempRet0;
+ $48 = $26;
+ $49 = $48;
+ HEAP32[$49>>2] = $46;
+ $50 = (($48) + 4)|0;
+ $51 = $50;
+ HEAP32[$51>>2] = $47;
+ $52 = (_do_cbc_mac($0,$1,$4,0)|0);
+ $53 = ($52|0)==(0);
+ if ($53) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $54 = (($52) + 20)|0;
+ ___gcry_burn_stack($54);
+ $$0 = 0;
+ return ($$0|0);
+}
+function __gcry_cipher_cfb_encrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $$0134259 = 0, $$0134259$us = 0, $$0135 = 0, $$0139 = 0, $$0143 
= 0, $$02434$i = 0, $$02434$i240 = 0, $$02533$i = 0, $$02533$i241 = 0, $$026$i 
= 0, $$026$i244 = 0, $$028$i = 0, $$028$i243 = 0, $$03449$i = 0, $$03449$i153 = 
0, $$03449$i174 = 0, $$03449$i199 = 0, $$03449$i220$us = 0, $$035$i = 0;
+ var $$035$i239 = 0, $$03548$i = 0, $$03548$i154 = 0, $$03548$i175 = 0, 
$$03548$i200 = 0, $$03548$i221$us = 0, $$03647$i = 0, $$03647$i155 = 0, 
$$03647$i176 = 0, $$03647$i201 = 0, $$03647$i222$us = 0, $$037$i = 0, 
$$037$i159 = 0, $$037$i205 = 0, $$037$i226$us = 0, $$039$i = 0, $$039$i158 = 0, 
$$039$i204 = 0, $$039$i225$us = 0, $$041$i = 0;
+ var $$041$i157 = 0, $$041$i203 = 0, $$041$i224$us = 0, $$050$i = 0, 
$$050$i152 = 0, $$050$i173 = 0, $$050$i198 = 0, $$050$i219$us = 0, $$1 = 0, 
$$1$i = 0, $$1$i160 = 0, $$1$i191 = 0, $$1$i206 = 0, $$1$i227$us = 0, $$1$i245 
= 0, $$1136258 = 0, $$1136258$us = 0, $$1140257 = 0, $$1140257$us = 0, 
$$1144256 = 0;
+ var $$1144256$us = 0, $$12731$i = 0, $$12731$i249 = 0, $$12930$i = 0, 
$$12930$i250 = 0, $$13845$i = 0, $$13845$i164 = 0, $$13845$i185 = 0, 
$$13845$i185$ph = 0, $$13845$i210 = 0, $$13845$i231 = 0, $$13845$i231$us = 0, 
$$14044$i = 0, $$14044$i165 = 0, $$14044$i186 = 0, $$14044$i186$ph = 0, 
$$14044$i211 = 0, $$14044$i232 = 0, $$14044$i232$us = 0, $$14243$i = 0;
+ var $$14243$i166 = 0, $$14243$i187 = 0, $$14243$i187$ph = 0, $$14243$i212 = 
0, $$14243$i233 = 0, $$14243$i233$us = 0, $$2 = 0, $$2137 = 0, $$2141 = 0, 
$$2145 = 0, $$232$i = 0, $$232$i248 = 0, $$246$i = 0, $$246$i163 = 0, 
$$246$i184 = 0, $$246$i184$ph = 0, $$246$i209 = 0, $$246$i230 = 0, 
$$246$i230$us = 0, $$3 = 0;
+ var $$3138 = 0, $$3142 = 0, $$3146 = 0, $$pre = 0, $$pre271 = 0, $10 = 0, 
$100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, 
$108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0;
+ var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 
= 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 
= 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0;
+ var $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, 
$138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, 
$145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0;
+ var $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 
= 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 
= 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0;
+ var $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 
= 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 
= 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0;
+ var $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 
= 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 
= 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0;
+ var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 
= 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 
= 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0;
+ var $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, 
$229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, 
$236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0;
+ var $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, 
$247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, 
$254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0;
+ var $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 
= 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $28 = 0, $29 = 
0, $30 = 0, $31 = 0, $32 = 0, $33 = 0;
+ var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, 
$42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0;
+ var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, 
$60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 
0, $69 = 0, $7 = 0, $70 = 0;
+ var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, 
$79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, 
$87 = 0, $88 = 0, $89 = 0;
+ var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, 
$97 = 0, $98 = 0, $99 = 0, $or$cond$i = 0, $or$cond$i147 = 0, $or$cond$i168 = 
0, $or$cond$i189 = 0, $or$cond$i193 = 0, $or$cond$i235 = 0, $scevgep$i = 0, 
$scevgep$i148 = 0, $scevgep$i169 = 0;
+ var $scevgep$i190 = 0, $scevgep$i194 = 0, $scevgep$i215$us = 0, $scevgep$i236 
= 0, $scevgep44$i = 0, $scevgep44$i237 = 0, $scevgep61$i = 0, $scevgep61$i149 = 
0, $scevgep61$i170 = 0, $scevgep61$i195 = 0, $scevgep61$i216 = 0, $scevgep63$i 
= 0, $scevgep63$i150 = 0, $scevgep63$i171 = 0, $scevgep63$i196 = 0, 
$scevgep63$i217$us = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = ((($0)) + 12|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ((($6)) + 36|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ((($6)) + 20|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = $10 << 1;
+ $12 = ($2>>>0)<($4>>>0);
+ if ($12) {
+  $$0 = 200;
+  return ($$0|0);
+ }
+ $13 = ((($0)) + 112|0);
+ $14 = HEAP32[$13>>2]|0;
+ $15 = ($14>>>0)<($4>>>0);
+ if (!($15)) {
+  $16 = ((($0)) + 64|0);
+  $17 = (($16) + ($10)|0);
+  $18 = (0 - ($14))|0;
+  $19 = (($17) + ($18)|0);
+  $20 = $3;
+  $21 = $1;
+  $22 = $19;
+  $23 = $20 | $21;
+  $24 = $23 | $22;
+  $25 = $24 & 3;
+  $26 = ($25|0)==(0);
+  $27 = ($4>>>0)>(3);
+  $or$cond$i = $27 & $26;
+  if ($or$cond$i) {
+   $28 = (($4) + -4)|0;
+   $29 = $28 & -4;
+   $30 = (($29) + 4)|0;
+   $scevgep61$i = (($19) + ($30)|0);
+   $$03449$i = $3;$$03548$i = $19;$$03647$i = $1;$$050$i = $4;
+   while(1) {
+    $31 = ((($$03449$i)) + 4|0);
+    $32 = HEAP32[$$03449$i>>2]|0;
+    $33 = ((($$03548$i)) + 4|0);
+    $34 = HEAP32[$$03548$i>>2]|0;
+    $35 = $34 ^ $32;
+    HEAP32[$$03548$i>>2] = $35;
+    $36 = ((($$03647$i)) + 4|0);
+    HEAP32[$$03647$i>>2] = $35;
+    $37 = (($$050$i) + -4)|0;
+    $38 = ($37>>>0)>(3);
+    if ($38) {
+     $$03449$i = $31;$$03548$i = $33;$$03647$i = $36;$$050$i = $37;
+    } else {
+     break;
+    }
+   }
+   $scevgep$i = (($3) + ($30)|0);
+   $scevgep63$i = (($1) + ($30)|0);
+   $39 = (($28) - ($29))|0;
+   $$037$i = $scevgep$i;$$039$i = $scevgep61$i;$$041$i = $scevgep63$i;$$1$i = 
$39;
+  } else {
+   $$037$i = $3;$$039$i = $19;$$041$i = $1;$$1$i = $4;
+  }
+  $40 = ($$1$i|0)==(0);
+  if ($40) {
+   $50 = $14;
+  } else {
+   $$13845$i = $$037$i;$$14044$i = $$039$i;$$14243$i = $$041$i;$$246$i = $$1$i;
+   while(1) {
+    $41 = ((($$13845$i)) + 1|0);
+    $42 = HEAP8[$$13845$i>>0]|0;
+    $43 = ((($$14044$i)) + 1|0);
+    $44 = HEAP8[$$14044$i>>0]|0;
+    $45 = $44 ^ $42;
+    HEAP8[$$14044$i>>0] = $45;
+    $46 = ((($$14243$i)) + 1|0);
+    HEAP8[$$14243$i>>0] = $45;
+    $47 = (($$246$i) + -1)|0;
+    $48 = ($47|0)==(0);
+    if ($48) {
+     break;
+    } else {
+     $$13845$i = $41;$$14044$i = $43;$$14243$i = $46;$$246$i = $47;
+    }
+   }
+   $$pre = HEAP32[$13>>2]|0;
+   $50 = $$pre;
+  }
+  $49 = (($50) - ($4))|0;
+  HEAP32[$13>>2] = $49;
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $51 = ($14|0)==(0);
+ if ($51) {
+  $$0135 = $1;$$0139 = $3;$$0143 = $4;
+ } else {
+  $52 = (($4) - ($14))|0;
+  $53 = ((($0)) + 64|0);
+  $54 = (($53) + ($10)|0);
+  $55 = (0 - ($14))|0;
+  $56 = (($54) + ($55)|0);
+  $57 = $3;
+  $58 = $1;
+  $59 = $56;
+  $60 = $57 | $58;
+  $61 = $60 | $59;
+  $62 = $61 & 3;
+  $63 = ($62|0)==(0);
+  $64 = ($14>>>0)>(3);
+  $or$cond$i168 = $64 & $63;
+  if ($or$cond$i168) {
+   $65 = (($14) + -4)|0;
+   $66 = $65 & -4;
+   $67 = (($66) + 4)|0;
+   $scevgep61$i170 = (($56) + ($67)|0);
+   $$03449$i174 = $3;$$03548$i175 = $56;$$03647$i176 = $1;$$050$i173 = $14;
+   while(1) {
+    $68 = ((($$03449$i174)) + 4|0);
+    $69 = HEAP32[$$03449$i174>>2]|0;
+    $70 = ((($$03548$i175)) + 4|0);
+    $71 = HEAP32[$$03548$i175>>2]|0;
+    $72 = $71 ^ $69;
+    HEAP32[$$03548$i175>>2] = $72;
+    $73 = ((($$03647$i176)) + 4|0);
+    HEAP32[$$03647$i176>>2] = $72;
+    $74 = (($$050$i173) + -4)|0;
+    $75 = ($74>>>0)>(3);
+    if ($75) {
+     $$03449$i174 = $68;$$03548$i175 = $70;$$03647$i176 = $73;$$050$i173 = $74;
+    } else {
+     break;
+    }
+   }
+   $scevgep$i169 = (($3) + ($67)|0);
+   $scevgep63$i171 = (($1) + ($67)|0);
+   $76 = (($65) - ($66))|0;
+   $77 = ($76|0)==(0);
+   if ($77) {
+    $87 = $14;
+   } else {
+    $$13845$i185$ph = $scevgep$i169;$$14044$i186$ph = 
$scevgep61$i170;$$14243$i187$ph = $scevgep63$i171;$$246$i184$ph = $76;
+    label = 17;
+   }
+  } else {
+   $$13845$i185$ph = $3;$$14044$i186$ph = $56;$$14243$i187$ph = 
$1;$$246$i184$ph = $14;
+   label = 17;
+  }
+  if ((label|0) == 17) {
+   $$13845$i185 = $$13845$i185$ph;$$14044$i186 = $$14044$i186$ph;$$14243$i187 
= $$14243$i187$ph;$$246$i184 = $$246$i184$ph;
+   while(1) {
+    $78 = ((($$13845$i185)) + 1|0);
+    $79 = HEAP8[$$13845$i185>>0]|0;
+    $80 = ((($$14044$i186)) + 1|0);
+    $81 = HEAP8[$$14044$i186>>0]|0;
+    $82 = $81 ^ $79;
+    HEAP8[$$14044$i186>>0] = $82;
+    $83 = ((($$14243$i187)) + 1|0);
+    HEAP8[$$14243$i187>>0] = $82;
+    $84 = (($$246$i184) + -1)|0;
+    $85 = ($84|0)==(0);
+    if ($85) {
+     break;
+    } else {
+     $$13845$i185 = $78;$$14044$i186 = $80;$$14243$i187 = $83;$$246$i184 = $84;
+    }
+   }
+   $$pre271 = HEAP32[$13>>2]|0;
+   $87 = $$pre271;
+  }
+  $86 = (($1) + ($87)|0);
+  $88 = (($3) + ($87)|0);
+  HEAP32[$13>>2] = 0;
+  $$0135 = $86;$$0139 = $88;$$0143 = $52;
+ }
+ $89 = ($$0143>>>0)<($11>>>0);
+ L34: do {
+  if ($89) {
+   $$1 = 0;$$2137 = $$0135;$$2141 = $$0139;$$2145 = $$0143;
+  } else {
+   $90 = ((($0)) + 20|0);
+   $91 = HEAP32[$90>>2]|0;
+   $92 = ($91|0)==(0|0);
+   if (!($92)) {
+    $93 = (($$0143>>>0) / ($10>>>0))&-1;
+    $94 = ((($0)) + 496|0);
+    $95 = ((($0)) + 64|0);
+    FUNCTION_TABLE_viiiii[$91 & 127]($94,$95,$$0135,$$0139,$93);
+    $96 = Math_imul($93, $10)|0;
+    $97 = (($$0135) + ($96)|0);
+    $98 = (($$0139) + ($96)|0);
+    $99 = (($$0143) - ($96))|0;
+    $$1 = 0;$$2137 = $97;$$2141 = $98;$$2145 = $99;
+    break;
+   }
+   $100 = ((($0)) + 496|0);
+   $101 = ((($0)) + 64|0);
+   $102 = $101;
+   $103 = ($10>>>0)>(3);
+   $104 = (($10) + -4)|0;
+   $105 = $104 & -4;
+   $106 = (($105) + 4)|0;
+   $scevgep61$i216 = (($101) + ($106)|0);
+   $107 = (($104) - ($105))|0;
+   if (!($103)) {
+    $138 = ($10|0)==(0);
+    $$0134259 = 0;$$1136258 = $$0135;$$1140257 = $$0139;$$1144256 = $$0143;
+    while(1) {
+     $139 = (FUNCTION_TABLE_iiii[$8 & 127]($100,$101,$101)|0);
+     $140 = ($139>>>0)>($$0134259>>>0);
+     $141 = $140 ? $139 : $$0134259;
+     if (!($138)) {
+      $$13845$i231 = $$1140257;$$14044$i232 = $101;$$14243$i233 = 
$$1136258;$$246$i230 = $10;
+      while(1) {
+       $142 = ((($$13845$i231)) + 1|0);
+       $143 = HEAP8[$$13845$i231>>0]|0;
+       $144 = ((($$14044$i232)) + 1|0);
+       $145 = HEAP8[$$14044$i232>>0]|0;
+       $146 = $145 ^ $143;
+       HEAP8[$$14044$i232>>0] = $146;
+       $147 = ((($$14243$i233)) + 1|0);
+       HEAP8[$$14243$i233>>0] = $146;
+       $148 = (($$246$i230) + -1)|0;
+       $149 = ($148|0)==(0);
+       if ($149) {
+        break;
+       } else {
+        $$13845$i231 = $142;$$14044$i232 = $144;$$14243$i233 = $147;$$246$i230 
= $148;
+       }
+      }
+     }
+     $150 = (($$1136258) + ($10)|0);
+     $151 = (($$1140257) + ($10)|0);
+     $152 = (($$1144256) - ($10))|0;
+     $153 = ($152>>>0)<($11>>>0);
+     if ($153) {
+      $$1 = $141;$$2137 = $150;$$2141 = $151;$$2145 = $152;
+      break L34;
+     } else {
+      $$0134259 = $141;$$1136258 = $150;$$1140257 = $151;$$1144256 = $152;
+     }
+    }
+   }
+   $$0134259$us = 0;$$1136258$us = $$0135;$$1140257$us = $$0139;$$1144256$us = 
$$0143;
+   while(1) {
+    $108 = (FUNCTION_TABLE_iiii[$8 & 127]($100,$101,$101)|0);
+    $109 = ($108>>>0)>($$0134259$us>>>0);
+    $110 = $109 ? $108 : $$0134259$us;
+    $111 = $$1140257$us;
+    $112 = $$1136258$us;
+    $113 = $111 | $102;
+    $114 = $113 | $112;
+    $115 = $114 & 3;
+    $116 = ($115|0)==(0);
+    if ($116) {
+     $scevgep$i215$us = (($$1140257$us) + ($106)|0);
+     $$03449$i220$us = $$1140257$us;$$03548$i221$us = $101;$$03647$i222$us = 
$$1136258$us;$$050$i219$us = $10;
+     while(1) {
+      $117 = ((($$03449$i220$us)) + 4|0);
+      $118 = HEAP32[$$03449$i220$us>>2]|0;
+      $119 = ((($$03548$i221$us)) + 4|0);
+      $120 = HEAP32[$$03548$i221$us>>2]|0;
+      $121 = $120 ^ $118;
+      HEAP32[$$03548$i221$us>>2] = $121;
+      $122 = ((($$03647$i222$us)) + 4|0);
+      HEAP32[$$03647$i222$us>>2] = $121;
+      $123 = (($$050$i219$us) + -4)|0;
+      $124 = ($123>>>0)>(3);
+      if ($124) {
+       $$03449$i220$us = $117;$$03548$i221$us = $119;$$03647$i222$us = 
$122;$$050$i219$us = $123;
+      } else {
+       break;
+      }
+     }
+     $scevgep63$i217$us = (($$1136258$us) + ($106)|0);
+     $$037$i226$us = $scevgep$i215$us;$$039$i225$us = 
$scevgep61$i216;$$041$i224$us = $scevgep63$i217$us;$$1$i227$us = $107;
+    } else {
+     $$037$i226$us = $$1140257$us;$$039$i225$us = $101;$$041$i224$us = 
$$1136258$us;$$1$i227$us = $10;
+    }
+    $125 = ($$1$i227$us|0)==(0);
+    if (!($125)) {
+     $$13845$i231$us = $$037$i226$us;$$14044$i232$us = 
$$039$i225$us;$$14243$i233$us = $$041$i224$us;$$246$i230$us = $$1$i227$us;
+     while(1) {
+      $126 = ((($$13845$i231$us)) + 1|0);
+      $127 = HEAP8[$$13845$i231$us>>0]|0;
+      $128 = ((($$14044$i232$us)) + 1|0);
+      $129 = HEAP8[$$14044$i232$us>>0]|0;
+      $130 = $129 ^ $127;
+      HEAP8[$$14044$i232$us>>0] = $130;
+      $131 = ((($$14243$i233$us)) + 1|0);
+      HEAP8[$$14243$i233$us>>0] = $130;
+      $132 = (($$246$i230$us) + -1)|0;
+      $133 = ($132|0)==(0);
+      if ($133) {
+       break;
+      } else {
+       $$13845$i231$us = $126;$$14044$i232$us = $128;$$14243$i233$us = 
$131;$$246$i230$us = $132;
+      }
+     }
+    }
+    $134 = (($$1136258$us) + ($10)|0);
+    $135 = (($$1140257$us) + ($10)|0);
+    $136 = (($$1144256$us) - ($10))|0;
+    $137 = ($136>>>0)<($11>>>0);
+    if ($137) {
+     $$1 = $110;$$2137 = $134;$$2141 = $135;$$2145 = $136;
+     break;
+    } else {
+     $$0134259$us = $110;$$1136258$us = $134;$$1140257$us = $135;$$1144256$us 
= $136;
+    }
+   }
+  }
+ } while(0);
+ $154 = ($$2145>>>0)<($10>>>0);
+ if ($154) {
+  $$2 = $$1;$$3138 = $$2137;$$3142 = $$2141;$$3146 = $$2145;
+ } else {
+  $155 = ((($0)) + 96|0);
+  $156 = ((($0)) + 64|0);
+  $157 = $155;
+  $158 = $156;
+  $159 = $158 | $157;
+  $160 = $159 & 3;
+  $161 = ($160|0)==(0);
+  $162 = ($10>>>0)>(3);
+  $or$cond$i235 = $161 & $162;
+  if ($or$cond$i235) {
+   $163 = (($10) + -4)|0;
+   $164 = $163 & -4;
+   $165 = (($164) + 4)|0;
+   $scevgep$i236 = (($156) + ($165)|0);
+   $$02434$i240 = $156;$$02533$i241 = $155;$$035$i239 = $10;
+   while(1) {
+    $166 = ((($$02434$i240)) + 4|0);
+    $167 = HEAP32[$$02434$i240>>2]|0;
+    $168 = ((($$02533$i241)) + 4|0);
+    HEAP32[$$02533$i241>>2] = $167;
+    $169 = (($$035$i239) + -4)|0;
+    $170 = ($169>>>0)>(3);
+    if ($170) {
+     $$02434$i240 = $166;$$02533$i241 = $168;$$035$i239 = $169;
+    } else {
+     break;
+    }
+   }
+   $scevgep44$i237 = (((($0)) + 96|0) + ($165)|0);
+   $171 = (($163) - ($164))|0;
+   $$026$i244 = $scevgep$i236;$$028$i243 = $scevgep44$i237;$$1$i245 = $171;
+  } else {
+   $$026$i244 = $156;$$028$i243 = $155;$$1$i245 = $10;
+  }
+  $172 = ($$1$i245|0)==(0);
+  if (!($172)) {
+   $$12731$i249 = $$026$i244;$$12930$i250 = $$028$i243;$$232$i248 = $$1$i245;
+   while(1) {
+    $173 = ((($$12731$i249)) + 1|0);
+    $174 = HEAP8[$$12731$i249>>0]|0;
+    $175 = ((($$12930$i250)) + 1|0);
+    HEAP8[$$12930$i250>>0] = $174;
+    $176 = (($$232$i248) + -1)|0;
+    $177 = ($176|0)==(0);
+    if ($177) {
+     break;
+    } else {
+     $$12731$i249 = $173;$$12930$i250 = $175;$$232$i248 = $176;
+    }
+   }
+  }
+  $178 = ((($0)) + 496|0);
+  $179 = (FUNCTION_TABLE_iiii[$8 & 127]($178,$156,$156)|0);
+  $180 = ($179>>>0)>($$1>>>0);
+  $181 = $180 ? $179 : $$1;
+  $182 = $$2141;
+  $183 = $$2137;
+  $184 = $182 | $158;
+  $185 = $184 | $183;
+  $186 = $185 & 3;
+  $187 = ($186|0)==(0);
+  $or$cond$i193 = $162 & $187;
+  if ($or$cond$i193) {
+   $188 = (($10) + -4)|0;
+   $189 = $188 & -4;
+   $190 = (($189) + 4)|0;
+   $scevgep61$i195 = (($156) + ($190)|0);
+   $$03449$i199 = $$2141;$$03548$i200 = $156;$$03647$i201 = $$2137;$$050$i198 
= $10;
+   while(1) {
+    $191 = ((($$03449$i199)) + 4|0);
+    $192 = HEAP32[$$03449$i199>>2]|0;
+    $193 = ((($$03548$i200)) + 4|0);
+    $194 = HEAP32[$$03548$i200>>2]|0;
+    $195 = $194 ^ $192;
+    HEAP32[$$03548$i200>>2] = $195;
+    $196 = ((($$03647$i201)) + 4|0);
+    HEAP32[$$03647$i201>>2] = $195;
+    $197 = (($$050$i198) + -4)|0;
+    $198 = ($197>>>0)>(3);
+    if ($198) {
+     $$03449$i199 = $191;$$03548$i200 = $193;$$03647$i201 = $196;$$050$i198 = 
$197;
+    } else {
+     break;
+    }
+   }
+   $scevgep$i194 = (($$2141) + ($190)|0);
+   $scevgep63$i196 = (($$2137) + ($190)|0);
+   $199 = (($188) - ($189))|0;
+   $$037$i205 = $scevgep$i194;$$039$i204 = $scevgep61$i195;$$041$i203 = 
$scevgep63$i196;$$1$i206 = $199;
+  } else {
+   $$037$i205 = $$2141;$$039$i204 = $156;$$041$i203 = $$2137;$$1$i206 = $10;
+  }
+  $200 = ($$1$i206|0)==(0);
+  if (!($200)) {
+   $$13845$i210 = $$037$i205;$$14044$i211 = $$039$i204;$$14243$i212 = 
$$041$i203;$$246$i209 = $$1$i206;
+   while(1) {
+    $201 = ((($$13845$i210)) + 1|0);
+    $202 = HEAP8[$$13845$i210>>0]|0;
+    $203 = ((($$14044$i211)) + 1|0);
+    $204 = HEAP8[$$14044$i211>>0]|0;
+    $205 = $204 ^ $202;
+    HEAP8[$$14044$i211>>0] = $205;
+    $206 = ((($$14243$i212)) + 1|0);
+    HEAP8[$$14243$i212>>0] = $205;
+    $207 = (($$246$i209) + -1)|0;
+    $208 = ($207|0)==(0);
+    if ($208) {
+     break;
+    } else {
+     $$13845$i210 = $201;$$14044$i211 = $203;$$14243$i212 = $206;$$246$i209 = 
$207;
+    }
+   }
+  }
+  $209 = (($$2137) + ($10)|0);
+  $210 = (($$2141) + ($10)|0);
+  $211 = (($$2145) - ($10))|0;
+  $$2 = $181;$$3138 = $209;$$3142 = $210;$$3146 = $211;
+ }
+ $212 = ($$3146|0)==(0);
+ if ($212) {
+  $$3 = $$2;
+ } else {
+  $213 = ((($0)) + 96|0);
+  $214 = ((($0)) + 64|0);
+  $215 = $213;
+  $216 = $214;
+  $217 = $216 | $215;
+  $218 = $217 & 3;
+  $219 = ($218|0)==(0);
+  $220 = ($10>>>0)>(3);
+  $or$cond$i189 = $219 & $220;
+  if ($or$cond$i189) {
+   $221 = (($10) + -4)|0;
+   $222 = $221 & -4;
+   $223 = (($222) + 4)|0;
+   $scevgep$i190 = (($214) + ($223)|0);
+   $$02434$i = $214;$$02533$i = $213;$$035$i = $10;
+   while(1) {
+    $224 = ((($$02434$i)) + 4|0);
+    $225 = HEAP32[$$02434$i>>2]|0;
+    $226 = ((($$02533$i)) + 4|0);
+    HEAP32[$$02533$i>>2] = $225;
+    $227 = (($$035$i) + -4)|0;
+    $228 = ($227>>>0)>(3);
+    if ($228) {
+     $$02434$i = $224;$$02533$i = $226;$$035$i = $227;
+    } else {
+     break;
+    }
+   }
+   $scevgep44$i = (((($0)) + 96|0) + ($223)|0);
+   $229 = (($221) - ($222))|0;
+   $$026$i = $scevgep$i190;$$028$i = $scevgep44$i;$$1$i191 = $229;
+  } else {
+   $$026$i = $214;$$028$i = $213;$$1$i191 = $10;
+  }
+  $230 = ($$1$i191|0)==(0);
+  if (!($230)) {
+   $$12731$i = $$026$i;$$12930$i = $$028$i;$$232$i = $$1$i191;
+   while(1) {
+    $231 = ((($$12731$i)) + 1|0);
+    $232 = HEAP8[$$12731$i>>0]|0;
+    $233 = ((($$12930$i)) + 1|0);
+    HEAP8[$$12930$i>>0] = $232;
+    $234 = (($$232$i) + -1)|0;
+    $235 = ($234|0)==(0);
+    if ($235) {
+     break;
+    } else {
+     $$12731$i = $231;$$12930$i = $233;$$232$i = $234;
+    }
+   }
+  }
+  $236 = ((($0)) + 496|0);
+  $237 = (FUNCTION_TABLE_iiii[$8 & 127]($236,$214,$214)|0);
+  $238 = ($237>>>0)>($$2>>>0);
+  $239 = $238 ? $237 : $$2;
+  $240 = (($10) - ($$3146))|0;
+  HEAP32[$13>>2] = $240;
+  $241 = $$3142;
+  $242 = $$3138;
+  $243 = $241 | $216;
+  $244 = $243 | $242;
+  $245 = $244 & 3;
+  $246 = ($245|0)==(0);
+  $247 = ($$3146>>>0)>(3);
+  $or$cond$i147 = $247 & $246;
+  if ($or$cond$i147) {
+   $248 = (($$3146) + -4)|0;
+   $249 = $248 & -4;
+   $250 = (($249) + 4)|0;
+   $scevgep61$i149 = (($214) + ($250)|0);
+   $$03449$i153 = $$3142;$$03548$i154 = $214;$$03647$i155 = $$3138;$$050$i152 
= $$3146;
+   while(1) {
+    $251 = ((($$03449$i153)) + 4|0);
+    $252 = HEAP32[$$03449$i153>>2]|0;
+    $253 = ((($$03548$i154)) + 4|0);
+    $254 = HEAP32[$$03548$i154>>2]|0;
+    $255 = $254 ^ $252;
+    HEAP32[$$03548$i154>>2] = $255;
+    $256 = ((($$03647$i155)) + 4|0);
+    HEAP32[$$03647$i155>>2] = $255;
+    $257 = (($$050$i152) + -4)|0;
+    $258 = ($257>>>0)>(3);
+    if ($258) {
+     $$03449$i153 = $251;$$03548$i154 = $253;$$03647$i155 = $256;$$050$i152 = 
$257;
+    } else {
+     break;
+    }
+   }
+   $scevgep$i148 = (($$3142) + ($250)|0);
+   $scevgep63$i150 = (($$3138) + ($250)|0);
+   $259 = (($248) - ($249))|0;
+   $$037$i159 = $scevgep$i148;$$039$i158 = $scevgep61$i149;$$041$i157 = 
$scevgep63$i150;$$1$i160 = $259;
+  } else {
+   $$037$i159 = $$3142;$$039$i158 = $214;$$041$i157 = $$3138;$$1$i160 = $$3146;
+  }
+  $260 = ($$1$i160|0)==(0);
+  if ($260) {
+   $$3 = $239;
+  } else {
+   $$13845$i164 = $$037$i159;$$14044$i165 = $$039$i158;$$14243$i166 = 
$$041$i157;$$246$i163 = $$1$i160;
+   while(1) {
+    $261 = ((($$13845$i164)) + 1|0);
+    $262 = HEAP8[$$13845$i164>>0]|0;
+    $263 = ((($$14044$i165)) + 1|0);
+    $264 = HEAP8[$$14044$i165>>0]|0;
+    $265 = $264 ^ $262;
+    HEAP8[$$14044$i165>>0] = $265;
+    $266 = ((($$14243$i166)) + 1|0);
+    HEAP8[$$14243$i166>>0] = $265;
+    $267 = (($$246$i163) + -1)|0;
+    $268 = ($267|0)==(0);
+    if ($268) {
+     $$3 = $239;
+     break;
+    } else {
+     $$13845$i164 = $261;$$14044$i165 = $263;$$14243$i166 = $266;$$246$i163 = 
$267;
+    }
+   }
+  }
+ }
+ $269 = ($$3|0)==(0);
+ if ($269) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $270 = (($$3) + 16)|0;
+ ___gcry_burn_stack($270);
+ $$0 = 0;
+ return ($$0|0);
+}
+function __gcry_cipher_cfb_decrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $$0134256 = 0, $$0134256$us = 0, $$0135 = 0, $$0139 = 0, $$0143 
= 0, $$02434$i = 0, $$02434$i236 = 0, $$02533$i = 0, $$02533$i237 = 0, $$026$i 
= 0, $$026$i240 = 0, $$028$i = 0, $$028$i239 = 0, $$035$i = 0, $$035$i235 = 0, 
$$050$i$i = 0, $$050$i$i159 = 0, $$050$i$i201 = 0, $$050$i$i222$us = 0;
+ var $$05270$i$i = 0, $$05270$i$i151 = 0, $$05270$i$i172 = 0, $$05270$i$i193 = 
0, $$05270$i$i214$us = 0, $$05468$i$i = 0, $$05468$i$i152 = 0, $$05468$i$i173 = 
0, $$05468$i$i194 = 0, $$05468$i$i215$us = 0, $$05567$i$i = 0, $$05567$i$i153 = 
0, $$05567$i$i174 = 0, $$05567$i$i195 = 0, $$05567$i$i216$us = 0, $$056$i$i = 
0, $$056$i$i158 = 0, $$056$i$i200 = 0, $$056$i$i221$us = 0, $$060$i$i = 0;
+ var $$060$i$i157 = 0, $$060$i$i199 = 0, $$060$i$i220$us = 0, $$071$i$i = 0, 
$$071$i$i150 = 0, $$071$i$i171 = 0, $$071$i$i192 = 0, $$071$i$i213$us = 0, $$1 
= 0, $$1$i = 0, $$1$i$i = 0, $$1$i$i160 = 0, $$1$i$i202 = 0, $$1$i$i223$us = 0, 
$$1$i241 = 0, $$1136255 = 0, $$1136255$us = 0, $$1140253 = 0, $$1140253$us = 0, 
$$1144252 = 0;
+ var $$1144252$us = 0, $$12731$i = 0, $$12731$i245 = 0, $$12930$i = 0, 
$$12930$i246 = 0, $$15165$i$i = 0, $$15165$i$i164 = 0, $$15165$i$i185 = 0, 
$$15165$i$i185$ph = 0, $$15165$i$i206 = 0, $$15165$i$i227 = 0, 
$$15165$i$i227$us = 0, $$15764$i$i = 0, $$15764$i$i165 = 0, $$15764$i$i186 = 0, 
$$15764$i$i186$ph = 0, $$15764$i$i207 = 0, $$15764$i$i228 = 0, 
$$15764$i$i228$us = 0, $$15963$i$i = 0;
+ var $$15963$i$i166 = 0, $$15963$i$i187 = 0, $$15963$i$i187$ph = 0, 
$$15963$i$i208 = 0, $$15963$i$i229 = 0, $$15963$i$i229$us = 0, $$2 = 0, $$2137 
= 0, $$2141 = 0, $$2145 = 0, $$232$i = 0, $$232$i244 = 0, $$266$i$i = 0, 
$$266$i$i163 = 0, $$266$i$i184 = 0, $$266$i$i184$ph = 0, $$266$i$i205 = 0, 
$$266$i$i226 = 0, $$266$i$i226$us = 0, $$3 = 0;
+ var $$3138 = 0, $$3142 = 0, $$3146 = 0, $$pre = 0, $$pre272 = 0, $10 = 0, 
$100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, 
$108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0;
+ var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 
= 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 
= 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0;
+ var $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, 
$138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, 
$145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0;
+ var $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 
= 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 
= 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0;
+ var $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 
= 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 
= 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0;
+ var $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 
= 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 
= 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0;
+ var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 
= 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 
= 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0;
+ var $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, 
$229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, 
$236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0;
+ var $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, 
$247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, 
$254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0;
+ var $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 
= 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $28 = 0, $29 = 
0, $30 = 0, $31 = 0, $32 = 0, $33 = 0;
+ var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, 
$42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0;
+ var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, 
$60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 
0, $69 = 0, $7 = 0, $70 = 0;
+ var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, 
$79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, 
$87 = 0, $88 = 0, $89 = 0;
+ var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, 
$97 = 0, $98 = 0, $99 = 0, $or$cond$i = 0, $or$cond$i$i = 0, $or$cond$i$i147 = 
0, $or$cond$i$i168 = 0, $or$cond$i$i189 = 0, $or$cond$i231 = 0, $scevgep$i = 0, 
$scevgep$i$i = 0, $scevgep$i$i154 = 0;
+ var $scevgep$i$i175 = 0, $scevgep$i$i196 = 0, $scevgep$i$i217$us = 0, 
$scevgep$i232 = 0, $scevgep44$i = 0, $scevgep44$i233 = 0, $scevgep86$i$i = 0, 
$scevgep86$i$i148 = 0, $scevgep86$i$i169 = 0, $scevgep86$i$i190 = 0, 
$scevgep86$i$i211$us = 0, $scevgep88$i$i = 0, $scevgep88$i$i155 = 0, 
$scevgep88$i$i176 = 0, $scevgep88$i$i197 = 0, $scevgep88$i$i218 = 0, label = 0, 
sp = 0;
+ sp = STACKTOP;
+ $5 = ((($0)) + 12|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ((($6)) + 36|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ((($6)) + 20|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = $10 << 1;
+ $12 = ($2>>>0)<($4>>>0);
+ if ($12) {
+  $$0 = 200;
+  return ($$0|0);
+ }
+ $13 = ((($0)) + 112|0);
+ $14 = HEAP32[$13>>2]|0;
+ $15 = ($14>>>0)<($4>>>0);
+ if (!($15)) {
+  $16 = ((($0)) + 64|0);
+  $17 = (($16) + ($10)|0);
+  $18 = (0 - ($14))|0;
+  $19 = (($17) + ($18)|0);
+  $20 = $3;
+  $21 = $1;
+  $22 = $19;
+  $23 = $20 | $21;
+  $24 = $23 | $22;
+  $25 = $24 & 3;
+  $26 = ($25|0)==(0);
+  $27 = ($4>>>0)>(3);
+  $or$cond$i$i = $27 & $26;
+  if ($or$cond$i$i) {
+   $28 = (($4) + -4)|0;
+   $29 = $28 & -4;
+   $30 = (($29) + 4)|0;
+   $$05270$i$i = $3;$$05468$i$i = $19;$$05567$i$i = $1;$$071$i$i = $4;
+   while(1) {
+    $31 = ((($$05270$i$i)) + 4|0);
+    $32 = HEAP32[$$05270$i$i>>2]|0;
+    $33 = HEAP32[$$05468$i$i>>2]|0;
+    $34 = $33 ^ $32;
+    $35 = ((($$05567$i$i)) + 4|0);
+    HEAP32[$$05567$i$i>>2] = $34;
+    $36 = ((($$05468$i$i)) + 4|0);
+    HEAP32[$$05468$i$i>>2] = $32;
+    $37 = (($$071$i$i) + -4)|0;
+    $38 = ($37>>>0)>(3);
+    if ($38) {
+     $$05270$i$i = $31;$$05468$i$i = $36;$$05567$i$i = $35;$$071$i$i = $37;
+    } else {
+     break;
+    }
+   }
+   $scevgep86$i$i = (($1) + ($30)|0);
+   $scevgep$i$i = (($3) + ($30)|0);
+   $scevgep88$i$i = (($19) + ($30)|0);
+   $39 = (($28) - ($29))|0;
+   $$050$i$i = $scevgep86$i$i;$$056$i$i = $scevgep88$i$i;$$060$i$i = 
$scevgep$i$i;$$1$i$i = $39;
+  } else {
+   $$050$i$i = $1;$$056$i$i = $19;$$060$i$i = $3;$$1$i$i = $4;
+  }
+  $40 = ($$1$i$i|0)==(0);
+  if ($40) {
+   $50 = $14;
+  } else {
+   $$15165$i$i = $$050$i$i;$$15764$i$i = $$056$i$i;$$15963$i$i = 
$$060$i$i;$$266$i$i = $$1$i$i;
+   while(1) {
+    $41 = ((($$15963$i$i)) + 1|0);
+    $42 = HEAP8[$$15963$i$i>>0]|0;
+    $43 = HEAP8[$$15764$i$i>>0]|0;
+    $44 = $43 ^ $42;
+    $45 = ((($$15165$i$i)) + 1|0);
+    HEAP8[$$15165$i$i>>0] = $44;
+    $46 = ((($$15764$i$i)) + 1|0);
+    HEAP8[$$15764$i$i>>0] = $42;
+    $47 = (($$266$i$i) + -1)|0;
+    $48 = ($47|0)==(0);
+    if ($48) {
+     break;
+    } else {
+     $$15165$i$i = $45;$$15764$i$i = $46;$$15963$i$i = $41;$$266$i$i = $47;
+    }
+   }
+   $$pre = HEAP32[$13>>2]|0;
+   $50 = $$pre;
+  }
+  $49 = (($50) - ($4))|0;
+  HEAP32[$13>>2] = $49;
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $51 = ($14|0)==(0);
+ if ($51) {
+  $$0135 = $1;$$0139 = $3;$$0143 = $4;
+ } else {
+  $52 = (($4) - ($14))|0;
+  $53 = ((($0)) + 64|0);
+  $54 = (($53) + ($10)|0);
+  $55 = (0 - ($14))|0;
+  $56 = (($54) + ($55)|0);
+  $57 = $3;
+  $58 = $1;
+  $59 = $56;
+  $60 = $57 | $58;
+  $61 = $60 | $59;
+  $62 = $61 & 3;
+  $63 = ($62|0)==(0);
+  $64 = ($14>>>0)>(3);
+  $or$cond$i$i168 = $64 & $63;
+  if ($or$cond$i$i168) {
+   $65 = (($14) + -4)|0;
+   $66 = $65 & -4;
+   $67 = (($66) + 4)|0;
+   $$05270$i$i172 = $3;$$05468$i$i173 = $56;$$05567$i$i174 = $1;$$071$i$i171 = 
$14;
+   while(1) {
+    $68 = ((($$05270$i$i172)) + 4|0);
+    $69 = HEAP32[$$05270$i$i172>>2]|0;
+    $70 = HEAP32[$$05468$i$i173>>2]|0;
+    $71 = $70 ^ $69;
+    $72 = ((($$05567$i$i174)) + 4|0);
+    HEAP32[$$05567$i$i174>>2] = $71;
+    $73 = ((($$05468$i$i173)) + 4|0);
+    HEAP32[$$05468$i$i173>>2] = $69;
+    $74 = (($$071$i$i171) + -4)|0;
+    $75 = ($74>>>0)>(3);
+    if ($75) {
+     $$05270$i$i172 = $68;$$05468$i$i173 = $73;$$05567$i$i174 = 
$72;$$071$i$i171 = $74;
+    } else {
+     break;
+    }
+   }
+   $scevgep86$i$i169 = (($1) + ($67)|0);
+   $scevgep$i$i175 = (($3) + ($67)|0);
+   $scevgep88$i$i176 = (($56) + ($67)|0);
+   $76 = (($65) - ($66))|0;
+   $77 = ($76|0)==(0);
+   if ($77) {
+    $87 = $14;
+   } else {
+    $$15165$i$i185$ph = $scevgep86$i$i169;$$15764$i$i186$ph = 
$scevgep88$i$i176;$$15963$i$i187$ph = $scevgep$i$i175;$$266$i$i184$ph = $76;
+    label = 17;
+   }
+  } else {
+   $$15165$i$i185$ph = $1;$$15764$i$i186$ph = $56;$$15963$i$i187$ph = 
$3;$$266$i$i184$ph = $14;
+   label = 17;
+  }
+  if ((label|0) == 17) {
+   $$15165$i$i185 = $$15165$i$i185$ph;$$15764$i$i186 = 
$$15764$i$i186$ph;$$15963$i$i187 = $$15963$i$i187$ph;$$266$i$i184 = 
$$266$i$i184$ph;
+   while(1) {
+    $78 = ((($$15963$i$i187)) + 1|0);
+    $79 = HEAP8[$$15963$i$i187>>0]|0;
+    $80 = HEAP8[$$15764$i$i186>>0]|0;
+    $81 = $80 ^ $79;
+    $82 = ((($$15165$i$i185)) + 1|0);
+    HEAP8[$$15165$i$i185>>0] = $81;
+    $83 = ((($$15764$i$i186)) + 1|0);
+    HEAP8[$$15764$i$i186>>0] = $79;
+    $84 = (($$266$i$i184) + -1)|0;
+    $85 = ($84|0)==(0);
+    if ($85) {
+     break;
+    } else {
+     $$15165$i$i185 = $82;$$15764$i$i186 = $83;$$15963$i$i187 = 
$78;$$266$i$i184 = $84;
+    }
+   }
+   $$pre272 = HEAP32[$13>>2]|0;
+   $87 = $$pre272;
+  }
+  $86 = (($1) + ($87)|0);
+  $88 = (($3) + ($87)|0);
+  HEAP32[$13>>2] = 0;
+  $$0135 = $86;$$0139 = $88;$$0143 = $52;
+ }
+ $89 = ($$0143>>>0)<($11>>>0);
+ L34: do {
+  if ($89) {
+   $$1 = 0;$$2137 = $$0135;$$2141 = $$0139;$$2145 = $$0143;
+  } else {
+   $90 = ((($0)) + 24|0);
+   $91 = HEAP32[$90>>2]|0;
+   $92 = ($91|0)==(0|0);
+   if (!($92)) {
+    $93 = (($$0143>>>0) / ($10>>>0))&-1;
+    $94 = ((($0)) + 496|0);
+    $95 = ((($0)) + 64|0);
+    FUNCTION_TABLE_viiiii[$91 & 127]($94,$95,$$0135,$$0139,$93);
+    $96 = Math_imul($93, $10)|0;
+    $97 = (($$0135) + ($96)|0);
+    $98 = (($$0139) + ($96)|0);
+    $99 = (($$0143) - ($96))|0;
+    $$1 = 0;$$2137 = $97;$$2141 = $98;$$2145 = $99;
+    break;
+   }
+   $100 = ((($0)) + 496|0);
+   $101 = ((($0)) + 64|0);
+   $102 = $101;
+   $103 = ($10>>>0)>(3);
+   $104 = (($10) + -4)|0;
+   $105 = $104 & -4;
+   $106 = (($105) + 4)|0;
+   $scevgep88$i$i218 = (($101) + ($106)|0);
+   $107 = (($104) - ($105))|0;
+   if (!($103)) {
+    $138 = ($10|0)==(0);
+    $$0134256 = 0;$$1136255 = $$0135;$$1140253 = $$0139;$$1144252 = $$0143;
+    while(1) {
+     $139 = (FUNCTION_TABLE_iiii[$8 & 127]($100,$101,$101)|0);
+     $140 = ($139>>>0)>($$0134256>>>0);
+     $141 = $140 ? $139 : $$0134256;
+     if (!($138)) {
+      $$15165$i$i227 = $$1136255;$$15764$i$i228 = $101;$$15963$i$i229 = 
$$1140253;$$266$i$i226 = $10;
+      while(1) {
+       $142 = ((($$15963$i$i229)) + 1|0);
+       $143 = HEAP8[$$15963$i$i229>>0]|0;
+       $144 = HEAP8[$$15764$i$i228>>0]|0;
+       $145 = $144 ^ $143;
+       $146 = ((($$15165$i$i227)) + 1|0);
+       HEAP8[$$15165$i$i227>>0] = $145;
+       $147 = ((($$15764$i$i228)) + 1|0);
+       HEAP8[$$15764$i$i228>>0] = $143;
+       $148 = (($$266$i$i226) + -1)|0;
+       $149 = ($148|0)==(0);
+       if ($149) {
+        break;
+       } else {
+        $$15165$i$i227 = $146;$$15764$i$i228 = $147;$$15963$i$i229 = 
$142;$$266$i$i226 = $148;
+       }
+      }
+     }
+     $150 = (($$1136255) + ($10)|0);
+     $151 = (($$1140253) + ($10)|0);
+     $152 = (($$1144252) - ($10))|0;
+     $153 = ($152>>>0)<($11>>>0);
+     if ($153) {
+      $$1 = $141;$$2137 = $150;$$2141 = $151;$$2145 = $152;
+      break L34;
+     } else {
+      $$0134256 = $141;$$1136255 = $150;$$1140253 = $151;$$1144252 = $152;
+     }
+    }
+   }
+   $$0134256$us = 0;$$1136255$us = $$0135;$$1140253$us = $$0139;$$1144252$us = 
$$0143;
+   while(1) {
+    $108 = (FUNCTION_TABLE_iiii[$8 & 127]($100,$101,$101)|0);
+    $109 = ($108>>>0)>($$0134256$us>>>0);
+    $110 = $109 ? $108 : $$0134256$us;
+    $111 = $$1140253$us;
+    $112 = $$1136255$us;
+    $113 = $111 | $102;
+    $114 = $113 | $112;
+    $115 = $114 & 3;
+    $116 = ($115|0)==(0);
+    if ($116) {
+     $$05270$i$i214$us = $$1140253$us;$$05468$i$i215$us = 
$101;$$05567$i$i216$us = $$1136255$us;$$071$i$i213$us = $10;
+     while(1) {
+      $117 = ((($$05270$i$i214$us)) + 4|0);
+      $118 = HEAP32[$$05270$i$i214$us>>2]|0;
+      $119 = HEAP32[$$05468$i$i215$us>>2]|0;
+      $120 = $119 ^ $118;
+      $121 = ((($$05567$i$i216$us)) + 4|0);
+      HEAP32[$$05567$i$i216$us>>2] = $120;
+      $122 = ((($$05468$i$i215$us)) + 4|0);
+      HEAP32[$$05468$i$i215$us>>2] = $118;
+      $123 = (($$071$i$i213$us) + -4)|0;
+      $124 = ($123>>>0)>(3);
+      if ($124) {
+       $$05270$i$i214$us = $117;$$05468$i$i215$us = $122;$$05567$i$i216$us = 
$121;$$071$i$i213$us = $123;
+      } else {
+       break;
+      }
+     }
+     $scevgep86$i$i211$us = (($$1136255$us) + ($106)|0);
+     $scevgep$i$i217$us = (($$1140253$us) + ($106)|0);
+     $$050$i$i222$us = $scevgep86$i$i211$us;$$056$i$i221$us = 
$scevgep88$i$i218;$$060$i$i220$us = $scevgep$i$i217$us;$$1$i$i223$us = $107;
+    } else {
+     $$050$i$i222$us = $$1136255$us;$$056$i$i221$us = $101;$$060$i$i220$us = 
$$1140253$us;$$1$i$i223$us = $10;
+    }
+    $125 = ($$1$i$i223$us|0)==(0);
+    if (!($125)) {
+     $$15165$i$i227$us = $$050$i$i222$us;$$15764$i$i228$us = 
$$056$i$i221$us;$$15963$i$i229$us = $$060$i$i220$us;$$266$i$i226$us = 
$$1$i$i223$us;
+     while(1) {
+      $126 = ((($$15963$i$i229$us)) + 1|0);
+      $127 = HEAP8[$$15963$i$i229$us>>0]|0;
+      $128 = HEAP8[$$15764$i$i228$us>>0]|0;
+      $129 = $128 ^ $127;
+      $130 = ((($$15165$i$i227$us)) + 1|0);
+      HEAP8[$$15165$i$i227$us>>0] = $129;
+      $131 = ((($$15764$i$i228$us)) + 1|0);
+      HEAP8[$$15764$i$i228$us>>0] = $127;
+      $132 = (($$266$i$i226$us) + -1)|0;
+      $133 = ($132|0)==(0);
+      if ($133) {
+       break;
+      } else {
+       $$15165$i$i227$us = $130;$$15764$i$i228$us = $131;$$15963$i$i229$us = 
$126;$$266$i$i226$us = $132;
+      }
+     }
+    }
+    $134 = (($$1136255$us) + ($10)|0);
+    $135 = (($$1140253$us) + ($10)|0);
+    $136 = (($$1144252$us) - ($10))|0;
+    $137 = ($136>>>0)<($11>>>0);
+    if ($137) {
+     $$1 = $110;$$2137 = $134;$$2141 = $135;$$2145 = $136;
+     break;
+    } else {
+     $$0134256$us = $110;$$1136255$us = $134;$$1140253$us = $135;$$1144252$us 
= $136;
+    }
+   }
+  }
+ } while(0);
+ $154 = ($$2145>>>0)<($10>>>0);
+ if ($154) {
+  $$2 = $$1;$$3138 = $$2137;$$3142 = $$2141;$$3146 = $$2145;
+ } else {
+  $155 = ((($0)) + 96|0);
+  $156 = ((($0)) + 64|0);
+  $157 = $155;
+  $158 = $156;
+  $159 = $158 | $157;
+  $160 = $159 & 3;
+  $161 = ($160|0)==(0);
+  $162 = ($10>>>0)>(3);
+  $or$cond$i231 = $161 & $162;
+  if ($or$cond$i231) {
+   $163 = (($10) + -4)|0;
+   $164 = $163 & -4;
+   $165 = (($164) + 4)|0;
+   $scevgep$i232 = (($156) + ($165)|0);
+   $$02434$i236 = $156;$$02533$i237 = $155;$$035$i235 = $10;
+   while(1) {
+    $166 = ((($$02434$i236)) + 4|0);
+    $167 = HEAP32[$$02434$i236>>2]|0;
+    $168 = ((($$02533$i237)) + 4|0);
+    HEAP32[$$02533$i237>>2] = $167;
+    $169 = (($$035$i235) + -4)|0;
+    $170 = ($169>>>0)>(3);
+    if ($170) {
+     $$02434$i236 = $166;$$02533$i237 = $168;$$035$i235 = $169;
+    } else {
+     break;
+    }
+   }
+   $scevgep44$i233 = (((($0)) + 96|0) + ($165)|0);
+   $171 = (($163) - ($164))|0;
+   $$026$i240 = $scevgep$i232;$$028$i239 = $scevgep44$i233;$$1$i241 = $171;
+  } else {
+   $$026$i240 = $156;$$028$i239 = $155;$$1$i241 = $10;
+  }
+  $172 = ($$1$i241|0)==(0);
+  if (!($172)) {
+   $$12731$i245 = $$026$i240;$$12930$i246 = $$028$i239;$$232$i244 = $$1$i241;
+   while(1) {
+    $173 = ((($$12731$i245)) + 1|0);
+    $174 = HEAP8[$$12731$i245>>0]|0;
+    $175 = ((($$12930$i246)) + 1|0);
+    HEAP8[$$12930$i246>>0] = $174;
+    $176 = (($$232$i244) + -1)|0;
+    $177 = ($176|0)==(0);
+    if ($177) {
+     break;
+    } else {
+     $$12731$i245 = $173;$$12930$i246 = $175;$$232$i244 = $176;
+    }
+   }
+  }
+  $178 = ((($0)) + 496|0);
+  $179 = (FUNCTION_TABLE_iiii[$8 & 127]($178,$156,$156)|0);
+  $180 = ($179>>>0)>($$1>>>0);
+  $181 = $180 ? $179 : $$1;
+  $182 = $$2141;
+  $183 = $$2137;
+  $184 = $182 | $158;
+  $185 = $184 | $183;
+  $186 = $185 & 3;
+  $187 = ($186|0)==(0);
+  $or$cond$i$i189 = $162 & $187;
+  if ($or$cond$i$i189) {
+   $188 = (($10) + -4)|0;
+   $189 = $188 & -4;
+   $190 = (($189) + 4)|0;
+   $$05270$i$i193 = $$2141;$$05468$i$i194 = $156;$$05567$i$i195 = 
$$2137;$$071$i$i192 = $10;
+   while(1) {
+    $191 = ((($$05270$i$i193)) + 4|0);
+    $192 = HEAP32[$$05270$i$i193>>2]|0;
+    $193 = HEAP32[$$05468$i$i194>>2]|0;
+    $194 = $193 ^ $192;
+    $195 = ((($$05567$i$i195)) + 4|0);
+    HEAP32[$$05567$i$i195>>2] = $194;
+    $196 = ((($$05468$i$i194)) + 4|0);
+    HEAP32[$$05468$i$i194>>2] = $192;
+    $197 = (($$071$i$i192) + -4)|0;
+    $198 = ($197>>>0)>(3);
+    if ($198) {
+     $$05270$i$i193 = $191;$$05468$i$i194 = $196;$$05567$i$i195 = 
$195;$$071$i$i192 = $197;
+    } else {
+     break;
+    }
+   }
+   $scevgep86$i$i190 = (($$2137) + ($190)|0);
+   $scevgep$i$i196 = (($$2141) + ($190)|0);
+   $scevgep88$i$i197 = (($156) + ($190)|0);
+   $199 = (($188) - ($189))|0;
+   $$050$i$i201 = $scevgep86$i$i190;$$056$i$i200 = 
$scevgep88$i$i197;$$060$i$i199 = $scevgep$i$i196;$$1$i$i202 = $199;
+  } else {
+   $$050$i$i201 = $$2137;$$056$i$i200 = $156;$$060$i$i199 = $$2141;$$1$i$i202 
= $10;
+  }
+  $200 = ($$1$i$i202|0)==(0);
+  if (!($200)) {
+   $$15165$i$i206 = $$050$i$i201;$$15764$i$i207 = $$056$i$i200;$$15963$i$i208 
= $$060$i$i199;$$266$i$i205 = $$1$i$i202;
+   while(1) {
+    $201 = ((($$15963$i$i208)) + 1|0);
+    $202 = HEAP8[$$15963$i$i208>>0]|0;
+    $203 = HEAP8[$$15764$i$i207>>0]|0;
+    $204 = $203 ^ $202;
+    $205 = ((($$15165$i$i206)) + 1|0);
+    HEAP8[$$15165$i$i206>>0] = $204;
+    $206 = ((($$15764$i$i207)) + 1|0);
+    HEAP8[$$15764$i$i207>>0] = $202;
+    $207 = (($$266$i$i205) + -1)|0;
+    $208 = ($207|0)==(0);
+    if ($208) {
+     break;
+    } else {
+     $$15165$i$i206 = $205;$$15764$i$i207 = $206;$$15963$i$i208 = 
$201;$$266$i$i205 = $207;
+    }
+   }
+  }
+  $209 = (($$2137) + ($10)|0);
+  $210 = (($$2141) + ($10)|0);
+  $211 = (($$2145) - ($10))|0;
+  $$2 = $181;$$3138 = $209;$$3142 = $210;$$3146 = $211;
+ }
+ $212 = ($$3146|0)==(0);
+ if ($212) {
+  $$3 = $$2;
+ } else {
+  $213 = ((($0)) + 96|0);
+  $214 = ((($0)) + 64|0);
+  $215 = $213;
+  $216 = $214;
+  $217 = $216 | $215;
+  $218 = $217 & 3;
+  $219 = ($218|0)==(0);
+  $220 = ($10>>>0)>(3);
+  $or$cond$i = $219 & $220;
+  if ($or$cond$i) {
+   $221 = (($10) + -4)|0;
+   $222 = $221 & -4;
+   $223 = (($222) + 4)|0;
+   $scevgep$i = (($214) + ($223)|0);
+   $$02434$i = $214;$$02533$i = $213;$$035$i = $10;
+   while(1) {
+    $224 = ((($$02434$i)) + 4|0);
+    $225 = HEAP32[$$02434$i>>2]|0;
+    $226 = ((($$02533$i)) + 4|0);
+    HEAP32[$$02533$i>>2] = $225;
+    $227 = (($$035$i) + -4)|0;
+    $228 = ($227>>>0)>(3);
+    if ($228) {
+     $$02434$i = $224;$$02533$i = $226;$$035$i = $227;
+    } else {
+     break;
+    }
+   }
+   $scevgep44$i = (((($0)) + 96|0) + ($223)|0);
+   $229 = (($221) - ($222))|0;
+   $$026$i = $scevgep$i;$$028$i = $scevgep44$i;$$1$i = $229;
+  } else {
+   $$026$i = $214;$$028$i = $213;$$1$i = $10;
+  }
+  $230 = ($$1$i|0)==(0);
+  if (!($230)) {
+   $$12731$i = $$026$i;$$12930$i = $$028$i;$$232$i = $$1$i;
+   while(1) {
+    $231 = ((($$12731$i)) + 1|0);
+    $232 = HEAP8[$$12731$i>>0]|0;
+    $233 = ((($$12930$i)) + 1|0);
+    HEAP8[$$12930$i>>0] = $232;
+    $234 = (($$232$i) + -1)|0;
+    $235 = ($234|0)==(0);
+    if ($235) {
+     break;
+    } else {
+     $$12731$i = $231;$$12930$i = $233;$$232$i = $234;
+    }
+   }
+  }
+  $236 = ((($0)) + 496|0);
+  $237 = (FUNCTION_TABLE_iiii[$8 & 127]($236,$214,$214)|0);
+  $238 = ($237>>>0)>($$2>>>0);
+  $239 = $238 ? $237 : $$2;
+  $240 = (($10) - ($$3146))|0;
+  HEAP32[$13>>2] = $240;
+  $241 = $$3142;
+  $242 = $$3138;
+  $243 = $241 | $216;
+  $244 = $243 | $242;
+  $245 = $244 & 3;
+  $246 = ($245|0)==(0);
+  $247 = ($$3146>>>0)>(3);
+  $or$cond$i$i147 = $247 & $246;
+  if ($or$cond$i$i147) {
+   $248 = (($$3146) + -4)|0;
+   $249 = $248 & -4;
+   $250 = (($249) + 4)|0;
+   $$05270$i$i151 = $$3142;$$05468$i$i152 = $214;$$05567$i$i153 = 
$$3138;$$071$i$i150 = $$3146;
+   while(1) {
+    $251 = ((($$05270$i$i151)) + 4|0);
+    $252 = HEAP32[$$05270$i$i151>>2]|0;
+    $253 = HEAP32[$$05468$i$i152>>2]|0;
+    $254 = $253 ^ $252;
+    $255 = ((($$05567$i$i153)) + 4|0);
+    HEAP32[$$05567$i$i153>>2] = $254;
+    $256 = ((($$05468$i$i152)) + 4|0);
+    HEAP32[$$05468$i$i152>>2] = $252;
+    $257 = (($$071$i$i150) + -4)|0;
+    $258 = ($257>>>0)>(3);
+    if ($258) {
+     $$05270$i$i151 = $251;$$05468$i$i152 = $256;$$05567$i$i153 = 
$255;$$071$i$i150 = $257;
+    } else {
+     break;
+    }
+   }
+   $scevgep86$i$i148 = (($$3138) + ($250)|0);
+   $scevgep$i$i154 = (($$3142) + ($250)|0);
+   $scevgep88$i$i155 = (($214) + ($250)|0);
+   $259 = (($248) - ($249))|0;
+   $$050$i$i159 = $scevgep86$i$i148;$$056$i$i158 = 
$scevgep88$i$i155;$$060$i$i157 = $scevgep$i$i154;$$1$i$i160 = $259;
+  } else {
+   $$050$i$i159 = $$3138;$$056$i$i158 = $214;$$060$i$i157 = $$3142;$$1$i$i160 
= $$3146;
+  }
+  $260 = ($$1$i$i160|0)==(0);
+  if ($260) {
+   $$3 = $239;
+  } else {
+   $$15165$i$i164 = $$050$i$i159;$$15764$i$i165 = $$056$i$i158;$$15963$i$i166 
= $$060$i$i157;$$266$i$i163 = $$1$i$i160;
+   while(1) {
+    $261 = ((($$15963$i$i166)) + 1|0);
+    $262 = HEAP8[$$15963$i$i166>>0]|0;
+    $263 = HEAP8[$$15764$i$i165>>0]|0;
+    $264 = $263 ^ $262;
+    $265 = ((($$15165$i$i164)) + 1|0);
+    HEAP8[$$15165$i$i164>>0] = $264;
+    $266 = ((($$15764$i$i165)) + 1|0);
+    HEAP8[$$15764$i$i165>>0] = $262;
+    $267 = (($$266$i$i163) + -1)|0;
+    $268 = ($267|0)==(0);
+    if ($268) {
+     $$3 = $239;
+     break;
+    } else {
+     $$15165$i$i164 = $265;$$15764$i$i165 = $266;$$15963$i$i166 = 
$261;$$266$i$i163 = $267;
+    }
+   }
+  }
+ }
+ $269 = ($$3|0)==(0);
+ if ($269) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $270 = (($$3) + 16)|0;
+ ___gcry_burn_stack($270);
+ $$0 = 0;
+ return ($$0|0);
+}
+function __gcry_cipher_cmac_set_subkeys($0) {
+ $0 = $0|0;
+ var $$06683$us$i = 0, $$067$lcssa99$i = 0, $$06778$i = 0, $$068$lcssa98$i = 
0, $$06877$i = 0, $$084$us$i = 0, $$1$i = 0, $$169$i = 0, $$2$i = 0, $$270$i = 
0, $$37175$i = 0, $$376$i = 0, $$lcssa2 = 0, $$phi$trans$insert$i = 0, $$pre = 
0, $$pre$i = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0;
+ var $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, 
$20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 
0, $29 = 0, $3 = 0, $30 = 0;
+ var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, 
$39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, 
$47 = 0, $48 = 0, $49 = 0;
+ var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, 
$57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, 
$65 = 0, $66 = 0, $67 = 0;
+ var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, 
$75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, 
$83 = 0, $84 = 0, $85 = 0;
+ var $86 = 0, $87 = 0, $88 = 0, $9 = 0, $scevgep$i = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = sp;
+ $2 = ((($0)) + 12|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = ((($3)) + 20|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = ($5>>>0)>(16);
+ if ($6) {
+  __gcry_bug(64349,113,64363);
+  // unreachable;
+ }
+ _memset(($1|0),0,($5|0))|0;
+ $7 = ((($3)) + 36|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ((($0)) + 496|0);
+ $10 = (FUNCTION_TABLE_iiii[$8 & 127]($9,$1,$1)|0);
+ $11 = ($5|0)==(16);
+ $12 = (($5) + -1)|0;
+ $13 = ($12|0)>(-1);
+ $14 = $11 ? 135 : 27;
+ $15 = (($1) + ($12)|0);
+ $16 = ((($0)) + 128|0);
+ if ($13) {
+  $$06683$us$i = $12;$$084$us$i = 0;
+  while(1) {
+   $17 = (($1) + ($$06683$us$i)|0);
+   $18 = HEAP8[$17>>0]|0;
+   $19 = $$084$us$i&255;
+   $20 = $18&255;
+   $21 = $20 << 1;
+   $22 = ($18&255) >>> 7;
+   $23 = $21 | $19;
+   $24 = $23&255;
+   HEAP8[$17>>0] = $24;
+   $25 = (((($16)) + 1|0) + ($$06683$us$i)|0);
+   HEAP8[$25>>0] = $24;
+   $26 = (($$06683$us$i) + -1)|0;
+   $27 = ($$06683$us$i|0)>(0);
+   if ($27) {
+    $$06683$us$i = $26;$$084$us$i = $22;
+   } else {
+    break;
+   }
+  }
+  $28 = ($22<<24>>24)==(0);
+  $29 = $28 ? 0 : $14;
+  $30 = HEAP8[$15>>0]|0;
+  $31 = $30&255;
+  $32 = $29 ^ $31;
+  $33 = $32&255;
+  $34 = (((($16)) + 1|0) + ($12)|0);
+  HEAP8[$34>>0] = $33;
+  $35 = $32 << 1;
+  $36 = ($33&255) >>> 7;
+  $37 = $35&255;
+  HEAP8[$15>>0] = $37;
+  $38 = (((($16)) + 17|0) + ($12)|0);
+  HEAP8[$38>>0] = $37;
+  $39 = ($12|0)>(0);
+  if ($39) {
+   $40 = (($5) + -2)|0;
+   $72 = $40;$74 = $36;
+   while(1) {
+    $$phi$trans$insert$i = (($1) + ($72)|0);
+    $$pre$i = HEAP8[$$phi$trans$insert$i>>0]|0;
+    $73 = $74&255;
+    $75 = $$pre$i&255;
+    $76 = $75 << 1;
+    $77 = ($$pre$i&255) >>> 7;
+    $78 = $76 | $73;
+    $79 = $78&255;
+    HEAP8[$$phi$trans$insert$i>>0] = $79;
+    $80 = (((($16)) + 17|0) + ($72)|0);
+    HEAP8[$80>>0] = $79;
+    $81 = (($72) + -1)|0;
+    $82 = ($72|0)>(0);
+    if ($82) {
+     $72 = $81;$74 = $77;
+    } else {
+     break;
+    }
+   }
+   $$pre = HEAP8[$15>>0]|0;
+   $$lcssa2 = $77;$86 = $$pre;
+  } else {
+   $$lcssa2 = $36;$86 = $37;
+  }
+  $83 = ($$lcssa2<<24>>24)==(0);
+  $84 = $83 ? 0 : $14;
+  $85 = $86&255;
+  $87 = $84 ^ $85;
+  $88 = $87&255;
+  HEAP8[$15>>0] = $88;
+  HEAP8[$38>>0] = $88;
+ } else {
+  $41 = HEAP8[$15>>0]|0;
+  $42 = (((($16)) + 1|0) + ($12)|0);
+  HEAP8[$42>>0] = $41;
+  $43 = (((($16)) + 17|0) + ($12)|0);
+  HEAP8[$43>>0] = $41;
+ }
+ $44 = $1;
+ $45 = $44 & 4;
+ $46 = ($45|0)==(0);
+ if ($46) {
+  $$067$lcssa99$i = 16;$$068$lcssa98$i = $1;
+  label = 13;
+ } else {
+  $$06778$i = 16;$$06877$i = $1;
+  while(1) {
+   HEAP8[$$06877$i>>0] = 0;
+   $47 = ((($$06877$i)) + 1|0);
+   $48 = (($$06778$i) + -1)|0;
+   $49 = $47;
+   $50 = $49 & 7;
+   $51 = ($50|0)!=(0);
+   $52 = ($48|0)!=(0);
+   $53 = $52 & $51;
+   if ($53) {
+    $$06778$i = $48;$$06877$i = $47;
+   } else {
+    break;
+   }
+  }
+  $54 = ($48>>>0)<(8);
+  if ($54) {
+   $$2$i = $48;$$270$i = $47;
+  } else {
+   $$067$lcssa99$i = $48;$$068$lcssa98$i = $47;
+   label = 13;
+  }
+ }
+ if ((label|0) == 13) {
+  $55 = (($$067$lcssa99$i) + -8)|0;
+  $56 = $55 & -8;
+  $$1$i = $$067$lcssa99$i;$$169$i = $$068$lcssa98$i;
+  while(1) {
+   $57 = $$169$i;
+   $58 = $57;
+   HEAP32[$58>>2] = 0;
+   $59 = (($57) + 4)|0;
+   $60 = $59;
+   HEAP32[$60>>2] = 0;
+   $61 = (($$1$i) + -8)|0;
+   $62 = ((($$169$i)) + 8|0);
+   $63 = ($61>>>0)>(7);
+   if ($63) {
+    $$1$i = $61;$$169$i = $62;
+   } else {
+    break;
+   }
+  }
+  $64 = (($56) + 8)|0;
+  $65 = (($55) - ($56))|0;
+  $scevgep$i = (($$068$lcssa98$i) + ($64)|0);
+  $$2$i = $65;$$270$i = $scevgep$i;
+ }
+ $66 = ($$2$i|0)==(0);
+ if (!($66)) {
+  $$37175$i = $$270$i;$$376$i = $$2$i;
+  while(1) {
+   HEAP8[$$37175$i>>0] = 0;
+   $67 = ((($$37175$i)) + 1|0);
+   $68 = (($$376$i) + -1)|0;
+   $69 = ($68|0)==(0);
+   if ($69) {
+    break;
+   } else {
+    $$37175$i = $67;$$376$i = $68;
+   }
+  }
+ }
+ $70 = ($10|0)==(0);
+ if ($70) {
+  STACKTOP = sp;return 0;
+ }
+ $71 = (($10) + 16)|0;
+ ___gcry_burn_stack($71);
+ STACKTOP = sp;return 0;
+}
+function __gcry_cipher_ctr_encrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$ = 0, $$0 = 0, $$0126 = 0, $$0135 = 0, $$0138 = 0, $$0138$us = 0, 
$$0140 = 0, $$0143182$us = 0, $$02434$i = 0, $$02533$i = 0, $$03449$i = 0, 
$$03449$i154 = 0, $$03449$i154$us = 0, $$035$i = 0, $$03548$i = 0, $$03548$i155 
= 0, $$03548$i155$us = 0, $$03647$i = 0, $$03647$i156 = 0, $$03647$i156$us = 0;
+ var $$037$i = 0, $$037$i160 = 0, $$037$i160$us = 0, $$039$i = 0, $$039$i159 = 
0, $$039$i159$us = 0, $$041$i = 0, $$041$i158 = 0, $$041$i158$us = 0, $$050$i = 
0, $$050$i153 = 0, $$050$i153$us = 0, $$1 = 0, $$1$i = 0, $$1$i161 = 0, 
$$1$i161$us = 0, $$1136 = 0, $$1141 = 0, $$12731$i = 0, $$12731$i$ph = 0;
+ var $$12930$i = 0, $$12930$i$ph = 0, $$13845$i = 0, $$13845$i165 = 0, 
$$13845$i165$us = 0, $$14044$i = 0, $$14044$i166 = 0, $$14044$i166$us = 0, 
$$14243$i = 0, $$14243$i167 = 0, $$14243$i167$us = 0, $$2 = 0, $$2$us = 0, 
$$2137 = 0, $$2137$us = 0, $$2142 = 0, $$2142$us = 0, $$232$i = 0, $$232$i$ph = 
0, $$246$i = 0;
+ var $$246$i164 = 0, $$246$i164$us = 0, $$lcssa173 = 0, $$lcssa174 = 0, $$pre 
= 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 
= 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0;
+ var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 
= 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 
= 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0;
+ var $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, 
$138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, 
$145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0;
+ var $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 
= 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 
= 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0;
+ var $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 
= 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 
= 0, $182 = 0, $19 = 0, $20 = 0, $21 = 0;
+ var $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, $40 = 0, $41 = 0;
+ var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, 
$5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, 
$58 = 0, $59 = 0, $6 = 0;
+ var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, 
$68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, 
$76 = 0, $77 = 0, $78 = 0;
+ var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, 
$86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, 
$94 = 0, $95 = 0, $96 = 0;
+ var $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, $or$cond$i = 0, $or$cond$i144 = 
0, $or$cond$i148 = 0, $or$cond$i148$us = 0, $scevgep$i = 0, $scevgep$i145 = 0, 
$scevgep$i149 = 0, $scevgep$i149$us = 0, $scevgep44$i = 0, $scevgep61$i = 0, 
$scevgep61$i150 = 0, $scevgep61$i150$us = 0, $scevgep63$i = 0, $scevgep63$i151 
= 0, $scevgep63$i151$us = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $5 = sp;
+ $6 = ((($0)) + 12|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ((($7)) + 36|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ((($7)) + 20|0);
+ $11 = HEAP32[$10>>2]|0;
+ $12 = ($2>>>0)<($4>>>0);
+ if ($12) {
+  $$0 = 200;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $13 = ((($0)) + 112|0);
+ $14 = HEAP32[$13>>2]|0;
+ $15 = ($14|0)==(0);
+ if ($15) {
+  $$0126 = $1;$$0135 = $3;$$0140 = $4;
+ } else {
+  $16 = ($11>>>0)>($14>>>0);
+  if (!($16)) {
+   __gcry_assert_failed(64385,64407,53,64420);
+   // unreachable;
+  }
+  $17 = (($11) - ($14))|0;
+  $18 = ($14>>>0)>($4>>>0);
+  $$ = $18 ? $4 : $14;
+  $19 = (((($0)) + 96|0) + ($17)|0);
+  $20 = $1;
+  $21 = $3;
+  $22 = $21 | $20;
+  $23 = $19;
+  $24 = $22 | $23;
+  $25 = $24 & 3;
+  $26 = ($25|0)==(0);
+  $27 = ($$>>>0)>(3);
+  $or$cond$i = $27 & $26;
+  if ($or$cond$i) {
+   $28 = (($$) + -4)|0;
+   $29 = $28 & -4;
+   $30 = (($29) + 4)|0;
+   $scevgep61$i = (($19) + ($30)|0);
+   $$03449$i = $19;$$03548$i = $3;$$03647$i = $1;$$050$i = $$;
+   while(1) {
+    $31 = ((($$03548$i)) + 4|0);
+    $32 = HEAP32[$$03548$i>>2]|0;
+    $33 = ((($$03449$i)) + 4|0);
+    $34 = HEAP32[$$03449$i>>2]|0;
+    $35 = $34 ^ $32;
+    $36 = ((($$03647$i)) + 4|0);
+    HEAP32[$$03647$i>>2] = $35;
+    $37 = (($$050$i) + -4)|0;
+    $38 = ($37>>>0)>(3);
+    if ($38) {
+     $$03449$i = $33;$$03548$i = $31;$$03647$i = $36;$$050$i = $37;
+    } else {
+     break;
+    }
+   }
+   $scevgep$i = (($3) + ($30)|0);
+   $scevgep63$i = (($1) + ($30)|0);
+   $39 = (($28) - ($29))|0;
+   $$037$i = $scevgep61$i;$$039$i = $scevgep$i;$$041$i = $scevgep63$i;$$1$i = 
$39;
+  } else {
+   $$037$i = $19;$$039$i = $3;$$041$i = $1;$$1$i = $$;
+  }
+  $40 = ($$1$i|0)==(0);
+  if ($40) {
+   $50 = $14;
+  } else {
+   $$13845$i = $$037$i;$$14044$i = $$039$i;$$14243$i = $$041$i;$$246$i = $$1$i;
+   while(1) {
+    $41 = ((($$14044$i)) + 1|0);
+    $42 = HEAP8[$$14044$i>>0]|0;
+    $43 = ((($$13845$i)) + 1|0);
+    $44 = HEAP8[$$13845$i>>0]|0;
+    $45 = $44 ^ $42;
+    $46 = ((($$14243$i)) + 1|0);
+    HEAP8[$$14243$i>>0] = $45;
+    $47 = (($$246$i) + -1)|0;
+    $48 = ($47|0)==(0);
+    if ($48) {
+     break;
+    } else {
+     $$13845$i = $43;$$14044$i = $41;$$14243$i = $46;$$246$i = $47;
+    }
+   }
+   $$pre = HEAP32[$13>>2]|0;
+   $50 = $$pre;
+  }
+  $49 = (($50) - ($$))|0;
+  HEAP32[$13>>2] = $49;
+  $51 = (($3) + ($$)|0);
+  $52 = (($1) + ($$)|0);
+  $53 = (($4) - ($$))|0;
+  $$0126 = $52;$$0135 = $51;$$0140 = $53;
+ }
+ $54 = (($$0140>>>0) / ($11>>>0))&-1;
+ $55 = ($11>>>0)>($$0140>>>0);
+ if ($55) {
+  $$1 = $$0126;$$1136 = $$0135;$$1141 = $$0140;
+ } else {
+  $56 = ((($0)) + 36|0);
+  $57 = HEAP32[$56>>2]|0;
+  $58 = ($57|0)==(0|0);
+  $59 = Math_imul($54, $11)|0;
+  if ($58) {
+   $$1 = $$0126;$$1136 = $$0135;$$1141 = $$0140;
+  } else {
+   $60 = (($$0140) - ($59))|0;
+   $61 = (($$0126) + ($59)|0);
+   $62 = (($$0135) + ($59)|0);
+   $63 = ((($0)) + 80|0);
+   $64 = ((($0)) + 496|0);
+   FUNCTION_TABLE_viiiii[$57 & 127]($64,$63,$$0126,$$0135,$54);
+   $$1 = $61;$$1136 = $62;$$1141 = $60;
+  }
+ }
+ $65 = ($$1141|0)==(0);
+ if ($65) {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $66 = ((($0)) + 496|0);
+ $67 = ((($0)) + 80|0);
+ $68 = ($11|0)>(0);
+ if ($68) {
+  $$0138$us = 0;$$2$us = $$1;$$2137$us = $$1136;$$2142$us = $$1141;
+  while(1) {
+   $69 = (FUNCTION_TABLE_iiii[$9 & 127]($66,$5,$67)|0);
+   $70 = ($69>>>0)>($$0138$us>>>0);
+   $$0143182$us = $11;
+   while(1) {
+    $71 = (($$0143182$us) + -1)|0;
+    $72 = (($67) + ($71)|0);
+    $73 = HEAP8[$72>>0]|0;
+    $74 = (($73) + 1)<<24>>24;
+    HEAP8[$72>>0] = $74;
+    $75 = ($74<<24>>24)==(0);
+    $76 = ($$0143182$us|0)>(1);
+    $or$cond = $75 & $76;
+    if ($or$cond) {
+     $$0143182$us = $71;
+    } else {
+     break;
+    }
+   }
+   $77 = $70 ? $69 : $$0138$us;
+   $78 = ($11>>>0)<($$2142$us>>>0);
+   $79 = $78 ? $11 : $$2142$us;
+   $80 = $$2$us;
+   $81 = $$2137$us;
+   $82 = $80 | $81;
+   $83 = $82 & 3;
+   $84 = ($83|0)==(0);
+   $85 = ($79>>>0)>(3);
+   $or$cond$i148$us = $85 & $84;
+   if ($or$cond$i148$us) {
+    $86 = (($79) + -4)|0;
+    $87 = $86 & -4;
+    $88 = (($87) + 4)|0;
+    $scevgep61$i150$us = (($5) + ($88)|0);
+    $$03449$i154$us = $5;$$03548$i155$us = $$2137$us;$$03647$i156$us = 
$$2$us;$$050$i153$us = $79;
+    while(1) {
+     $89 = ((($$03548$i155$us)) + 4|0);
+     $90 = HEAP32[$$03548$i155$us>>2]|0;
+     $91 = ((($$03449$i154$us)) + 4|0);
+     $92 = HEAP32[$$03449$i154$us>>2]|0;
+     $93 = $92 ^ $90;
+     $94 = ((($$03647$i156$us)) + 4|0);
+     HEAP32[$$03647$i156$us>>2] = $93;
+     $95 = (($$050$i153$us) + -4)|0;
+     $96 = ($95>>>0)>(3);
+     if ($96) {
+      $$03449$i154$us = $91;$$03548$i155$us = $89;$$03647$i156$us = 
$94;$$050$i153$us = $95;
+     } else {
+      break;
+     }
+    }
+    $scevgep$i149$us = (($$2137$us) + ($88)|0);
+    $scevgep63$i151$us = (($$2$us) + ($88)|0);
+    $97 = (($86) - ($87))|0;
+    $$037$i160$us = $scevgep61$i150$us;$$039$i159$us = 
$scevgep$i149$us;$$041$i158$us = $scevgep63$i151$us;$$1$i161$us = $97;
+   } else {
+    $$037$i160$us = $5;$$039$i159$us = $$2137$us;$$041$i158$us = 
$$2$us;$$1$i161$us = $79;
+   }
+   $98 = ($$1$i161$us|0)==(0);
+   if (!($98)) {
+    $$13845$i165$us = $$037$i160$us;$$14044$i166$us = 
$$039$i159$us;$$14243$i167$us = $$041$i158$us;$$246$i164$us = $$1$i161$us;
+    while(1) {
+     $99 = ((($$14044$i166$us)) + 1|0);
+     $100 = HEAP8[$$14044$i166$us>>0]|0;
+     $101 = ((($$13845$i165$us)) + 1|0);
+     $102 = HEAP8[$$13845$i165$us>>0]|0;
+     $103 = $102 ^ $100;
+     $104 = ((($$14243$i167$us)) + 1|0);
+     HEAP8[$$14243$i167$us>>0] = $103;
+     $105 = (($$246$i164$us) + -1)|0;
+     $106 = ($105|0)==(0);
+     if ($106) {
+      break;
+     } else {
+      $$13845$i165$us = $101;$$14044$i166$us = $99;$$14243$i167$us = 
$104;$$246$i164$us = $105;
+     }
+    }
+   }
+   $107 = (($$2142$us) - ($79))|0;
+   $108 = (($$2$us) + ($79)|0);
+   $109 = (($$2137$us) + ($79)|0);
+   $110 = ($107|0)==(0);
+   if ($110) {
+    $$lcssa173 = $77;$$lcssa174 = $79;
+    break;
+   } else {
+    $$0138$us = $77;$$2$us = $108;$$2137$us = $109;$$2142$us = $107;
+   }
+  }
+ } else {
+  $$0138 = 0;$$2 = $$1;$$2137 = $$1136;$$2142 = $$1141;
+  while(1) {
+   $111 = (FUNCTION_TABLE_iiii[$9 & 127]($66,$5,$67)|0);
+   $112 = ($111>>>0)>($$0138>>>0);
+   $113 = $112 ? $111 : $$0138;
+   $114 = ($11>>>0)<($$2142>>>0);
+   $115 = $114 ? $11 : $$2142;
+   $116 = $$2;
+   $117 = $$2137;
+   $118 = $116 | $117;
+   $119 = $118 & 3;
+   $120 = ($119|0)==(0);
+   $121 = ($115>>>0)>(3);
+   $or$cond$i148 = $121 & $120;
+   if ($or$cond$i148) {
+    $122 = (($115) + -4)|0;
+    $123 = $122 & -4;
+    $124 = (($123) + 4)|0;
+    $scevgep61$i150 = (($5) + ($124)|0);
+    $$03449$i154 = $5;$$03548$i155 = $$2137;$$03647$i156 = $$2;$$050$i153 = 
$115;
+    while(1) {
+     $125 = ((($$03548$i155)) + 4|0);
+     $126 = HEAP32[$$03548$i155>>2]|0;
+     $127 = ((($$03449$i154)) + 4|0);
+     $128 = HEAP32[$$03449$i154>>2]|0;
+     $129 = $128 ^ $126;
+     $130 = ((($$03647$i156)) + 4|0);
+     HEAP32[$$03647$i156>>2] = $129;
+     $131 = (($$050$i153) + -4)|0;
+     $132 = ($131>>>0)>(3);
+     if ($132) {
+      $$03449$i154 = $127;$$03548$i155 = $125;$$03647$i156 = $130;$$050$i153 = 
$131;
+     } else {
+      break;
+     }
+    }
+    $scevgep$i149 = (($$2137) + ($124)|0);
+    $scevgep63$i151 = (($$2) + ($124)|0);
+    $133 = (($122) - ($123))|0;
+    $$037$i160 = $scevgep61$i150;$$039$i159 = $scevgep$i149;$$041$i158 = 
$scevgep63$i151;$$1$i161 = $133;
+   } else {
+    $$037$i160 = $5;$$039$i159 = $$2137;$$041$i158 = $$2;$$1$i161 = $115;
+   }
+   $134 = ($$1$i161|0)==(0);
+   if (!($134)) {
+    $$13845$i165 = $$037$i160;$$14044$i166 = $$039$i159;$$14243$i167 = 
$$041$i158;$$246$i164 = $$1$i161;
+    while(1) {
+     $135 = ((($$14044$i166)) + 1|0);
+     $136 = HEAP8[$$14044$i166>>0]|0;
+     $137 = ((($$13845$i165)) + 1|0);
+     $138 = HEAP8[$$13845$i165>>0]|0;
+     $139 = $138 ^ $136;
+     $140 = ((($$14243$i167)) + 1|0);
+     HEAP8[$$14243$i167>>0] = $139;
+     $141 = (($$246$i164) + -1)|0;
+     $142 = ($141|0)==(0);
+     if ($142) {
+      break;
+     } else {
+      $$13845$i165 = $137;$$14044$i166 = $135;$$14243$i167 = $140;$$246$i164 = 
$141;
+     }
+    }
+   }
+   $143 = (($$2142) - ($115))|0;
+   $144 = (($$2) + ($115)|0);
+   $145 = (($$2137) + ($115)|0);
+   $146 = ($143|0)==(0);
+   if ($146) {
+    $$lcssa173 = $113;$$lcssa174 = $115;
+    break;
+   } else {
+    $$0138 = $113;$$2 = $144;$$2137 = $145;$$2142 = $143;
+   }
+  }
+ }
+ $147 = (($11) - ($$lcssa174))|0;
+ HEAP32[$13>>2] = $147;
+ $148 = ($147|0)==(0);
+ do {
+  if (!($148)) {
+   $149 = (((($0)) + 96|0) + ($$lcssa174)|0);
+   $150 = (($5) + ($$lcssa174)|0);
+   $151 = $149;
+   $152 = $150;
+   $153 = $152 | $151;
+   $154 = $153 & 3;
+   $155 = ($154|0)==(0);
+   $156 = ($147>>>0)>(3);
+   $or$cond$i144 = $156 & $155;
+   if ($or$cond$i144) {
+    $157 = (($147) + -4)|0;
+    $158 = $157 & -4;
+    $159 = (($158) + 4)|0;
+    $scevgep$i145 = (($150) + ($159)|0);
+    $$02434$i = $150;$$02533$i = $149;$$035$i = $147;
+    while(1) {
+     $160 = ((($$02434$i)) + 4|0);
+     $161 = HEAP32[$$02434$i>>2]|0;
+     $162 = ((($$02533$i)) + 4|0);
+     HEAP32[$$02533$i>>2] = $161;
+     $163 = (($$035$i) + -4)|0;
+     $164 = ($163>>>0)>(3);
+     if ($164) {
+      $$02434$i = $160;$$02533$i = $162;$$035$i = $163;
+     } else {
+      break;
+     }
+    }
+    $scevgep44$i = (($149) + ($159)|0);
+    $165 = (($157) - ($158))|0;
+    $166 = ($165|0)==(0);
+    if ($166) {
+     break;
+    } else {
+     $$12731$i$ph = $scevgep$i145;$$12930$i$ph = $scevgep44$i;$$232$i$ph = 
$165;
+    }
+   } else {
+    $$12731$i$ph = $150;$$12930$i$ph = $149;$$232$i$ph = $147;
+   }
+   $$12731$i = $$12731$i$ph;$$12930$i = $$12930$i$ph;$$232$i = $$232$i$ph;
+   while(1) {
+    $167 = ((($$12731$i)) + 1|0);
+    $168 = HEAP8[$$12731$i>>0]|0;
+    $169 = ((($$12930$i)) + 1|0);
+    HEAP8[$$12930$i>>0] = $168;
+    $170 = (($$232$i) + -1)|0;
+    $171 = ($170|0)==(0);
+    if ($171) {
+     break;
+    } else {
+     $$12731$i = $167;$$12930$i = $169;$$232$i = $170;
+    }
+   }
+  }
+ } while(0);
+ $172 = $5;
+ $173 = $172;
+ HEAP32[$173>>2] = 0;
+ $174 = (($172) + 4)|0;
+ $175 = $174;
+ HEAP32[$175>>2] = 0;
+ $176 = ((($5)) + 8|0);
+ $177 = $176;
+ $178 = $177;
+ HEAP32[$178>>2] = 0;
+ $179 = (($177) + 4)|0;
+ $180 = $179;
+ HEAP32[$180>>2] = 0;
+ $181 = ($$lcssa173|0)==(0);
+ if ($181) {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $182 = (($$lcssa173) + 16)|0;
+ ___gcry_burn_stack($182);
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_cipher_gcm_encrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $$pre = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 
0, $45 = 0, $5 = 0, $6 = 0;
+ var $7 = 0, $8 = 0, $9 = 0, $or$cond30 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = ((($0)) + 12|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ((($6)) + 20|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ($8|0)==(16);
+ if (!($9)) {
+  $$0 = 12;
+  return ($$0|0);
+ }
+ $10 = ($2>>>0)<($4>>>0);
+ if ($10) {
+  $$0 = 200;
+  return ($$0|0);
+ }
+ $11 = ((($0)) + 128|0);
+ $12 = ((($0)) + 196|0);
+ $13 = HEAP8[$12>>0]|0;
+ $14 = $13 & 4;
+ $15 = ($14<<24>>24)==(0);
+ if (!($15)) {
+  $$0 = 139;
+  return ($$0|0);
+ }
+ $16 = ((($0)) + 56|0);
+ $17 = HEAP8[$16>>0]|0;
+ $18 = $17 & 4;
+ $19 = $13 & 1;
+ $20 = $18 | $19;
+ $21 = ($20<<24>>24)==(0);
+ if (!($21)) {
+  $$0 = 156;
+  return ($$0|0);
+ }
+ $22 = $17 & 2;
+ $23 = ($22<<24>>24)==(0);
+ if ($23) {
+  (__gcry_cipher_gcm_setiv($0,71184,16)|0);
+  $$pre = HEAP8[$12>>0]|0;
+  $25 = $$pre;
+ } else {
+  $25 = $13;
+ }
+ $24 = $25 & 8;
+ $26 = ($24<<24>>24)==(0);
+ if (!($26)) {
+  $$0 = 156;
+  return ($$0|0);
+ }
+ $27 = $25 & 2;
+ $28 = ($27<<24>>24)==(0);
+ if ($28) {
+  _do_ghash_buf($0,$11,0,0,1);
+  $29 = HEAP8[$12>>0]|0;
+  $30 = $29 | 2;
+  HEAP8[$12>>0] = $30;
+  $43 = $30;
+ } else {
+  $43 = $25;
+ }
+ $31 = ((($0)) + 172|0);
+ $32 = HEAP32[$31>>2]|0;
+ $33 = (($32) + ($4))|0;
+ HEAP32[$31>>2] = $33;
+ $34 = ($33>>>0)<($4>>>0);
+ $35 = ((($0)) + 176|0);
+ $36 = HEAP32[$35>>2]|0;
+ if ($34) {
+  $37 = (($36) + 1)|0;
+  HEAP32[$35>>2] = $37;
+  $39 = $37;
+ } else {
+  $39 = $36;
+ }
+ $38 = ($39>>>0)>(15);
+ if (!($38)) {
+  $40 = ($39|0)==(15);
+  $41 = ($33>>>0)>(4294967264);
+  $or$cond30 = $41 & $40;
+  if (!($or$cond30)) {
+   $44 = (__gcry_cipher_ctr_encrypt($0,$1,$2,$3,$4)|0);
+   $45 = ($44|0)==(0);
+   if (!($45)) {
+    $$0 = $44;
+    return ($$0|0);
+   }
+   _do_ghash_buf($0,$11,$1,$4,0);
+   $$0 = 0;
+   return ($$0|0);
+  }
+ }
+ $42 = $43 | 4;
+ HEAP8[$12>>0] = $42;
+ $$0 = 139;
+ return ($$0|0);
+}
+function __gcry_cipher_gcm_setiv($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$1$i = 0, $$pre = 0, $$pre$i = 0, $$pre$phi141$iZ2D = 0, 
$$pre$phi142$iZ2D = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0;
+ var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $6 = 0, 
$7 = 0, $8 = 0, $9 = 0;
+ var dest = 0, label = 0, sp = 0, src = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $3 = sp + 16|0;
+ $4 = sp;
+ $5 = ((($0)) + 56|0);
+ $6 = HEAP8[$5>>0]|0;
+ $7 = $6 & -7;
+ HEAP8[$5>>0] = $7;
+ $8 = ((($0)) + 196|0);
+ $9 = HEAP8[$8>>0]|0;
+ $10 = $9 & -9;
+ HEAP8[$8>>0] = $10;
+ $11 = (__gcry_fips_mode()|0);
+ $12 = ($11|0)==(0);
+ $$pre = HEAP8[$8>>0]|0;
+ if ($12) {
+  $17 = $$pre;
+ } else {
+  $13 = $$pre | 8;
+  HEAP8[$8>>0] = $13;
+  $17 = $13;
+ }
+ $14 = ((($0)) + 128|0);
+ $15 = ((($0)) + 164|0);
+ 
;HEAP32[$14>>2]=0|0;HEAP32[$14+4>>2]=0|0;HEAP32[$14+8>>2]=0|0;HEAP32[$14+12>>2]=0|0;
+ 
;HEAP32[$15>>2]=0|0;HEAP32[$15+4>>2]=0|0;HEAP32[$15+8>>2]=0|0;HEAP32[$15+12>>2]=0|0;
+ $16 = $17 & -8;
+ HEAP8[$8>>0] = $16;
+ switch ($2|0) {
+ case 12:  {
+  $39 = ((($0)) + 80|0);
+  dest=$39; src=$1; 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));
+  $40 = ((($0)) + 94|0);
+  HEAP8[$40>>0] = 0;
+  $41 = ((($0)) + 93|0);
+  HEAP8[$41>>0] = 0;
+  $42 = ((($0)) + 92|0);
+  HEAP8[$42>>0] = 0;
+  $43 = ((($0)) + 95|0);
+  HEAP8[$43>>0] = 1;
+  $$pre$phi141$iZ2D = $39;$$pre$phi142$iZ2D = $42;
+  break;
+ }
+ case 0:  {
+  $$1$i = 139;
+  STACKTOP = sp;return ($$1$i|0);
+  break;
+ }
+ default: {
+  $18 = ((($0)) + 80|0);
+  
;HEAP32[$18>>2]=0|0;HEAP32[$18+4>>2]=0|0;HEAP32[$18+8>>2]=0|0;HEAP32[$18+12>>2]=0|0;
+  _do_ghash_buf($0,$18,$1,$2,1);
+  $19 = $2 << 3;
+  $20 = (_llvm_bswap_i32(($19|0))|0);
+  $21 = ((($4)) + 12|0);
+  HEAP32[$21>>2] = $20;
+  $22 = $2 >>> 29;
+  $23 = (_llvm_bswap_i32(($22|0))|0);
+  $24 = ((($4)) + 8|0);
+  HEAP32[$24>>2] = $23;
+  $25 = ((($4)) + 4|0);
+  HEAP32[$25>>2] = 0;
+  HEAP32[$4>>2] = 0;
+  _do_ghash_buf($0,$18,$4,16,1);
+  $26 = $3;
+  $27 = $26;
+  HEAP32[$27>>2] = 0;
+  $28 = (($26) + 4)|0;
+  $29 = $28;
+  HEAP32[$29>>2] = 0;
+  $30 = $4;
+  $31 = $30;
+  HEAP32[$31>>2] = 0;
+  $32 = (($30) + 4)|0;
+  $33 = $32;
+  HEAP32[$33>>2] = 0;
+  $34 = ((($4)) + 8|0);
+  $35 = $34;
+  $36 = $35;
+  HEAP32[$36>>2] = 0;
+  $37 = (($35) + 4)|0;
+  $38 = $37;
+  HEAP32[$38>>2] = 0;
+  $$pre$i = ((($0)) + 92|0);
+  $$pre$phi141$iZ2D = $18;$$pre$phi142$iZ2D = $$pre$i;
+ }
+ }
+ $44 = ((($0)) + 12|0);
+ $45 = HEAP32[$44>>2]|0;
+ $46 = ((($45)) + 36|0);
+ $47 = HEAP32[$46>>2]|0;
+ $48 = ((($0)) + 496|0);
+ $49 = ((($0)) + 180|0);
+ (FUNCTION_TABLE_iiii[$47 & 127]($48,$49,$$pre$phi141$iZ2D)|0);
+ $50 = HEAP32[$$pre$phi142$iZ2D>>2]|0;
+ $51 = (_llvm_bswap_i32(($50|0))|0);
+ $52 = (($51) + 1)|0;
+ $53 = (_llvm_bswap_i32(($52|0))|0);
+ HEAP32[$$pre$phi142$iZ2D>>2] = $53;
+ $54 = ((($0)) + 112|0);
+ HEAP32[$54>>2] = 0;
+ $55 = HEAP8[$5>>0]|0;
+ $56 = $55 & -7;
+ $57 = $56 | 2;
+ HEAP8[$5>>0] = $57;
+ $$1$i = 0;
+ STACKTOP = sp;return ($$1$i|0);
+}
+function _do_ghash_buf($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $$0$us = 0, $$02434$i = 0, $$02434$i$us = 0, $$02533$i = 0, 
$$02533$i$us = 0, $$026$i = 0, $$026$i$us = 0, $$028$i = 0, $$028$i$us = 0, 
$$035$i = 0, $$035$i$us = 0, $$070 = 0, $$070$us = 0, $$073 = 0, $$073$us = 0, 
$$076 = 0, $$076$us = 0, $$1 = 0, $$1$i = 0;
+ var $$1$i$us = 0, $$1$us = 0, $$12731$i = 0, $$12731$i$us = 0, $$12930$i = 0, 
$$12930$i$us = 0, $$171 = 0, $$171$us9193 = 0, $$174 = 0, $$174$us9094 = 0, 
$$177 = 0, $$2 = 0, $$2$us = 0, $$232$i = 0, $$232$i$us = 0, $$272 = 0, 
$$272$us = 0, $$275 = 0, $$275$us = 0, $$3 = 0;
+ var $$5 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, 
$37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 
0, $46 = 0, $47 = 0, $48 = 0;
+ var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, 
$56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, 
$64 = 0, $65 = 0, $66 = 0;
+ var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, 
$74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, 
$82 = 0, $83 = 0, $84 = 0;
+ var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, 
$92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $or$cond = 0, 
$or$cond$i = 0, $or$cond$i$us = 0, $or$cond3 = 0, $or$cond3$us = 0;
+ var $or$cond82 = 0, $scevgep$i = 0, $scevgep$i$us = 0, $scevgep44$i = 0, 
$scevgep44$i$us = 0, $scevgep87 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = ((($0)) + 160|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ((($0)) + 224|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ($3|0)==(0);
+ L1: do {
+  if ($9) {
+   $10 = ($6|0)!=(0);
+   $11 = ($4|0)!=(0);
+   $or$cond = $11 & $10;
+   if ($or$cond) {
+    $12 = ((($0)) + 144|0);
+    $89 = $12;
+    label = 20;
+    break;
+   } else {
+    return;
+   }
+  } else {
+   $13 = ($4|0)==(0);
+   $14 = ((($0)) + 144|0);
+   if ($13) {
+    $$0$us = 0;$$070$us = $2;$$073$us = $3;$$076$us = $6;
+    L8: while(1) {
+     $15 = (($$073$us) + ($$076$us))|0;
+     $16 = ($15>>>0)<(16);
+     $17 = ($$076$us|0)!=(0);
+     $or$cond3$us = $17 | $16;
+     L10: do {
+      if ($or$cond3$us) {
+       $18 = (16 - ($$076$us))|0;
+       $19 = ($18>>>0)<($$073$us>>>0);
+       $20 = $19 ? $18 : $$073$us;
+       $21 = (((($0)) + 144|0) + ($$076$us)|0);
+       $22 = $21;
+       $23 = $$070$us;
+       $24 = $23 | $22;
+       $25 = $24 & 3;
+       $26 = ($25|0)==(0);
+       $27 = ($20>>>0)>(3);
+       $or$cond$i$us = $27 & $26;
+       if ($or$cond$i$us) {
+        $28 = (($20) + -4)|0;
+        $29 = $28 & -4;
+        $30 = (($29) + 4)|0;
+        $scevgep$i$us = (($$070$us) + ($30)|0);
+        $$02434$i$us = $$070$us;$$02533$i$us = $21;$$035$i$us = $20;
+        while(1) {
+         $31 = ((($$02434$i$us)) + 4|0);
+         $32 = HEAP32[$$02434$i$us>>2]|0;
+         $33 = ((($$02533$i$us)) + 4|0);
+         HEAP32[$$02533$i$us>>2] = $32;
+         $34 = (($$035$i$us) + -4)|0;
+         $35 = ($34>>>0)>(3);
+         if ($35) {
+          $$02434$i$us = $31;$$02533$i$us = $33;$$035$i$us = $34;
+         } else {
+          break;
+         }
+        }
+        $scevgep44$i$us = (($21) + ($30)|0);
+        $36 = (($28) - ($29))|0;
+        $$026$i$us = $scevgep$i$us;$$028$i$us = $scevgep44$i$us;$$1$i$us = $36;
+       } else {
+        $$026$i$us = $$070$us;$$028$i$us = $21;$$1$i$us = $20;
+       }
+       $37 = ($$1$i$us|0)==(0);
+       if (!($37)) {
+        $$12731$i$us = $$026$i$us;$$12930$i$us = $$028$i$us;$$232$i$us = 
$$1$i$us;
+        while(1) {
+         $38 = ((($$12731$i$us)) + 1|0);
+         $39 = HEAP8[$$12731$i$us>>0]|0;
+         $40 = ((($$12930$i$us)) + 1|0);
+         HEAP8[$$12930$i$us>>0] = $39;
+         $41 = (($$232$i$us) + -1)|0;
+         $42 = ($41|0)==(0);
+         if ($42) {
+          break;
+         } else {
+          $$12731$i$us = $38;$$12930$i$us = $40;$$232$i$us = $41;
+         }
+        }
+       }
+       $43 = (($20) + ($$076$us))|0;
+       $44 = (($$070$us) + ($20)|0);
+       $45 = (($$073$us) - ($20))|0;
+       $46 = ($45|0)==(0);
+       if ($46) {
+        $$3 = $$0$us;$$5 = $43;
+        break L1;
+       }
+       switch ($43|0) {
+       case 0:  {
+        $$1$us = $$0$us;$$171$us9193 = $44;$$174$us9094 = $45;
+        break L10;
+        break;
+       }
+       case 16:  {
+        break;
+       }
+       default: {
+        break L8;
+       }
+       }
+       $47 = (FUNCTION_TABLE_iiiii[$8 & 127]($0,$1,$14,1)|0);
+       $$1$us = $47;$$171$us9193 = $44;$$174$us9094 = $45;
+      } else {
+       $$1$us = $$0$us;$$171$us9193 = $$070$us;$$174$us9094 = $$073$us;
+      }
+     } while(0);
+     $48 = $$174$us9094 >>> 4;
+     $49 = ($48|0)==(0);
+     $50 = $$174$us9094 & -16;
+     if ($49) {
+      $$2$us = $$1$us;$$272$us = $$171$us9193;$$275$us = $$174$us9094;
+     } else {
+      $51 = (($$174$us9094) - ($50))|0;
+      $52 = (($$171$us9193) + ($50)|0);
+      $53 = (FUNCTION_TABLE_iiiii[$8 & 127]($0,$1,$$171$us9193,$48)|0);
+      $$2$us = $53;$$272$us = $52;$$275$us = $51;
+     }
+     $54 = ($$275$us|0)==(0);
+     if ($54) {
+      $$3 = $$2$us;$$5 = 0;
+      break L1;
+     } else {
+      $$0$us = $$2$us;$$070$us = $$272$us;$$073$us = $$275$us;$$076$us = 0;
+     }
+    }
+    __gcry_assert_failed(64445,64465,499,64478);
+    // unreachable;
+   } else {
+    $89 = $14;
+    label = 20;
+   }
+  }
+ } while(0);
+ L30: do {
+  if ((label|0) == 20) {
+   $$0 = 0;$$070 = $2;$$073 = $3;$$076 = $6;
+   L32: while(1) {
+    $55 = (($$073) + ($$076))|0;
+    $56 = ($55>>>0)<(16);
+    $57 = ($$076|0)!=(0);
+    $or$cond3 = $57 | $56;
+    if ($or$cond3) {
+     $58 = (16 - ($$076))|0;
+     $59 = ($58>>>0)<($$073>>>0);
+     $60 = $59 ? $58 : $$073;
+     $61 = (((($0)) + 144|0) + ($$076)|0);
+     $62 = $61;
+     $63 = $$070;
+     $64 = $63 | $62;
+     $65 = $64 & 3;
+     $66 = ($65|0)==(0);
+     $67 = ($60>>>0)>(3);
+     $or$cond$i = $67 & $66;
+     if ($or$cond$i) {
+      $68 = (($60) + -4)|0;
+      $69 = $68 & -4;
+      $70 = (($69) + 4)|0;
+      $scevgep$i = (($$070) + ($70)|0);
+      $$02434$i = $$070;$$02533$i = $61;$$035$i = $60;
+      while(1) {
+       $71 = ((($$02434$i)) + 4|0);
+       $72 = HEAP32[$$02434$i>>2]|0;
+       $73 = ((($$02533$i)) + 4|0);
+       HEAP32[$$02533$i>>2] = $72;
+       $74 = (($$035$i) + -4)|0;
+       $75 = ($74>>>0)>(3);
+       if ($75) {
+        $$02434$i = $71;$$02533$i = $73;$$035$i = $74;
+       } else {
+        break;
+       }
+      }
+      $scevgep44$i = (($61) + ($70)|0);
+      $76 = (($68) - ($69))|0;
+      $$026$i = $scevgep$i;$$028$i = $scevgep44$i;$$1$i = $76;
+     } else {
+      $$026$i = $$070;$$028$i = $61;$$1$i = $60;
+     }
+     $77 = ($$1$i|0)==(0);
+     if (!($77)) {
+      $$12731$i = $$026$i;$$12930$i = $$028$i;$$232$i = $$1$i;
+      while(1) {
+       $78 = ((($$12731$i)) + 1|0);
+       $79 = HEAP8[$$12731$i>>0]|0;
+       $80 = ((($$12930$i)) + 1|0);
+       HEAP8[$$12930$i>>0] = $79;
+       $81 = (($$232$i) + -1)|0;
+       $82 = ($81|0)==(0);
+       if ($82) {
+        break;
+       } else {
+        $$12731$i = $78;$$12930$i = $80;$$232$i = $81;
+       }
+      }
+     }
+     $83 = (($60) + ($$076))|0;
+     $84 = (($$070) + ($60)|0);
+     $85 = (($$073) - ($60))|0;
+     $$171 = $84;$$174 = $85;$$177 = $83;
+    } else {
+     $$171 = $$070;$$174 = $$073;$$177 = 0;
+    }
+    $86 = ($$174|0)==(0);
+    $87 = ($$177>>>0)<(16);
+    $or$cond82 = $86 & $87;
+    if ($or$cond82) {
+     $scevgep87 = (((($0)) + 144|0) + ($$177)|0);
+     $88 = (16 - ($$177))|0;
+     _memset(($scevgep87|0),0,($88|0))|0;
+     label = 34;
+    } else {
+     switch ($$177|0) {
+     case 0:  {
+      $$1 = $$0;
+      break;
+     }
+     case 16:  {
+      label = 34;
+      break;
+     }
+     default: {
+      break L32;
+     }
+     }
+    }
+    if ((label|0) == 34) {
+     label = 0;
+     $90 = (FUNCTION_TABLE_iiiii[$8 & 127]($0,$1,$89,1)|0);
+     $$1 = $90;
+    }
+    $91 = $$174 >>> 4;
+    $92 = ($91|0)==(0);
+    $93 = $$174 & -16;
+    if ($92) {
+     $$2 = $$1;$$272 = $$171;$$275 = $$174;
+    } else {
+     $94 = (($$174) - ($93))|0;
+     $95 = (($$171) + ($93)|0);
+     $96 = (FUNCTION_TABLE_iiiii[$8 & 127]($0,$1,$$171,$91)|0);
+     $$2 = $96;$$272 = $95;$$275 = $94;
+    }
+    $97 = ($$275|0)==(0);
+    if ($97) {
+     $$3 = $$2;$$5 = 0;
+     break L30;
+    } else {
+     $$0 = $$2;$$070 = $$272;$$073 = $$275;$$076 = 0;
+    }
+   }
+   __gcry_assert_failed(64445,64465,499,64478);
+   // unreachable;
+  }
+ } while(0);
+ HEAP32[$5>>2] = $$5;
+ $98 = ($$3|0)==(0);
+ if ($98) {
+  return;
+ }
+ ___gcry_burn_stack($$3);
+ return;
+}
+function __gcry_cipher_gcm_decrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $$pre = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0, 
$7 = 0, $8 = 0, $9 = 0;
+ var $or$cond26 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = ((($0)) + 12|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ((($6)) + 20|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ($8|0)==(16);
+ if (!($9)) {
+  $$0 = 12;
+  return ($$0|0);
+ }
+ $10 = ($2>>>0)<($4>>>0);
+ if ($10) {
+  $$0 = 200;
+  return ($$0|0);
+ }
+ $11 = ((($0)) + 128|0);
+ $12 = ((($0)) + 196|0);
+ $13 = HEAP8[$12>>0]|0;
+ $14 = $13 & 4;
+ $15 = ($14<<24>>24)==(0);
+ if (!($15)) {
+  $$0 = 139;
+  return ($$0|0);
+ }
+ $16 = ((($0)) + 56|0);
+ $17 = HEAP8[$16>>0]|0;
+ $18 = $17 & 4;
+ $19 = $13 & 1;
+ $20 = $18 | $19;
+ $21 = ($20<<24>>24)==(0);
+ if (!($21)) {
+  $$0 = 156;
+  return ($$0|0);
+ }
+ $22 = $17 & 2;
+ $23 = ($22<<24>>24)==(0);
+ if ($23) {
+  (__gcry_cipher_gcm_setiv($0,71200,16)|0);
+  $$pre = HEAP8[$12>>0]|0;
+  $25 = $$pre;
+ } else {
+  $25 = $13;
+ }
+ $24 = $25 & 2;
+ $26 = ($24<<24>>24)==(0);
+ if ($26) {
+  _do_ghash_buf($0,$11,0,0,1);
+  $27 = HEAP8[$12>>0]|0;
+  $28 = $27 | 2;
+  HEAP8[$12>>0] = $28;
+  $41 = $28;
+ } else {
+  $41 = $25;
+ }
+ $29 = ((($0)) + 172|0);
+ $30 = HEAP32[$29>>2]|0;
+ $31 = (($30) + ($4))|0;
+ HEAP32[$29>>2] = $31;
+ $32 = ($31>>>0)<($4>>>0);
+ $33 = ((($0)) + 176|0);
+ $34 = HEAP32[$33>>2]|0;
+ if ($32) {
+  $35 = (($34) + 1)|0;
+  HEAP32[$33>>2] = $35;
+  $37 = $35;
+ } else {
+  $37 = $34;
+ }
+ $36 = ($37>>>0)>(15);
+ if (!($36)) {
+  $38 = ($37|0)==(15);
+  $39 = ($31>>>0)>(4294967264);
+  $or$cond26 = $39 & $38;
+  if (!($or$cond26)) {
+   _do_ghash_buf($0,$11,$3,$4,0);
+   $42 = (__gcry_cipher_ctr_encrypt($0,$1,$2,$3,$4)|0);
+   $$0 = $42;
+   return ($$0|0);
+  }
+ }
+ $40 = $41 | 4;
+ HEAP8[$12>>0] = $40;
+ $$0 = 139;
+ return ($$0|0);
+}
+function __gcry_cipher_gcm_setkey($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 
0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 
0, $113 = 0, $114 = 0, $115 = 0, $116 = 0;
+ var $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;
+ var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 
= 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 
= 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0;
+ var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 
= 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 
= 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0;
+ var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, 
$178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, 
$185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0;
+ var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 
= 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 
0, $203 = 0, $204 = 0, $205 = 0, $206 = 0;
+ var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 
= 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 
= 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0;
+ var $225 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, 
$3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, 
$38 = 0, $39 = 0, $4 = 0;
+ var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, 
$48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, 
$56 = 0, $57 = 0, $58 = 0;
+ var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, 
$66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, 
$74 = 0, $75 = 0, $76 = 0;
+ var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, 
$84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, 
$92 = 0, $93 = 0, $94 = 0;
+ var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 208|0);
+ 
;HEAP32[$1>>2]=0|0;HEAP32[$1+4>>2]=0|0;HEAP32[$1+8>>2]=0|0;HEAP32[$1+12>>2]=0|0;
+ $2 = ((($0)) + 12|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = ((($3)) + 36|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = ((($0)) + 496|0);
+ (FUNCTION_TABLE_iiii[$5 & 127]($6,$1,$1)|0);
+ $7 = ((($0)) + 224|0);
+ HEAP32[$7>>2] = 82;
+ $8 = ((($0)) + 228|0);
+ 
;HEAP32[$8>>2]=0|0;HEAP32[$8+4>>2]=0|0;HEAP32[$8+8>>2]=0|0;HEAP32[$8+12>>2]=0|0;
+ $9 = HEAP8[$1>>0]|0;
+ $10 = $9&255;
+ $11 = $10 << 24;
+ $12 = ((($1)) + 1|0);
+ $13 = HEAP8[$12>>0]|0;
+ $14 = $13&255;
+ $15 = $14 << 16;
+ $16 = $15 | $11;
+ $17 = ((($1)) + 2|0);
+ $18 = HEAP8[$17>>0]|0;
+ $19 = $18&255;
+ $20 = $19 << 8;
+ $21 = $16 | $20;
+ $22 = ((($1)) + 3|0);
+ $23 = HEAP8[$22>>0]|0;
+ $24 = $23&255;
+ $25 = $21 | $24;
+ $26 = ((($0)) + 356|0);
+ HEAP32[$26>>2] = $25;
+ $27 = ((($1)) + 4|0);
+ $28 = HEAP8[$27>>0]|0;
+ $29 = $28&255;
+ $30 = $29 << 24;
+ $31 = ((($1)) + 5|0);
+ $32 = HEAP8[$31>>0]|0;
+ $33 = $32&255;
+ $34 = $33 << 16;
+ $35 = $34 | $30;
+ $36 = ((($1)) + 6|0);
+ $37 = HEAP8[$36>>0]|0;
+ $38 = $37&255;
+ $39 = $38 << 8;
+ $40 = $35 | $39;
+ $41 = ((($1)) + 7|0);
+ $42 = HEAP8[$41>>0]|0;
+ $43 = $42&255;
+ $44 = $40 | $43;
+ $45 = ((($0)) + 360|0);
+ HEAP32[$45>>2] = $44;
+ $46 = ((($0)) + 216|0);
+ $47 = HEAP8[$46>>0]|0;
+ $48 = $47&255;
+ $49 = $48 << 24;
+ $50 = ((($0)) + 217|0);
+ $51 = HEAP8[$50>>0]|0;
+ $52 = $51&255;
+ $53 = $52 << 16;
+ $54 = $53 | $49;
+ $55 = ((($0)) + 218|0);
+ $56 = HEAP8[$55>>0]|0;
+ $57 = $56&255;
+ $58 = $57 << 8;
+ $59 = $54 | $58;
+ $60 = ((($0)) + 219|0);
+ $61 = HEAP8[$60>>0]|0;
+ $62 = $61&255;
+ $63 = $59 | $62;
+ $64 = ((($0)) + 364|0);
+ HEAP32[$64>>2] = $63;
+ $65 = ((($0)) + 220|0);
+ $66 = HEAP8[$65>>0]|0;
+ $67 = $66&255;
+ $68 = $67 << 24;
+ $69 = ((($0)) + 221|0);
+ $70 = HEAP8[$69>>0]|0;
+ $71 = $70&255;
+ $72 = $71 << 16;
+ $73 = $72 | $68;
+ $74 = ((($0)) + 222|0);
+ $75 = HEAP8[$74>>0]|0;
+ $76 = $75&255;
+ $77 = $76 << 8;
+ $78 = $73 | $77;
+ $79 = ((($0)) + 223|0);
+ $80 = HEAP8[$79>>0]|0;
+ $81 = $80&255;
+ $82 = $78 | $81;
+ $83 = ((($0)) + 368|0);
+ HEAP32[$83>>2] = $82;
+ $84 = ((($0)) + 292|0);
+ $85 = ((($0)) + 296|0);
+ $86 = ((($0)) + 300|0);
+ $87 = ((($0)) + 304|0);
+ $88 = $81 & 1;
+ $89 = ($88|0)==(0);
+ $90 = $89 ? 0 : -520093696;
+ $91 = $82 >>> 1;
+ $92 = $62 << 31;
+ $93 = $91 | $92;
+ HEAP32[$87>>2] = $93;
+ $94 = $63 >>> 1;
+ $95 = $43 << 31;
+ $96 = $94 | $95;
+ HEAP32[$86>>2] = $96;
+ $97 = $44 >>> 1;
+ $98 = $24 << 31;
+ $99 = $97 | $98;
+ HEAP32[$85>>2] = $99;
+ $100 = $25 >>> 1;
+ $101 = $90 ^ $100;
+ HEAP32[$84>>2] = $101;
+ $102 = ((($0)) + 260|0);
+ $103 = ((($0)) + 264|0);
+ $104 = ((($0)) + 268|0);
+ $105 = ((($0)) + 272|0);
+ $106 = $81 & 2;
+ $107 = ($106|0)==(0);
+ $108 = $107 ? 0 : -520093696;
+ $109 = $93 >>> 1;
+ $110 = $94 << 31;
+ $111 = $109 | $110;
+ HEAP32[$105>>2] = $111;
+ $112 = $96 >>> 1;
+ $113 = $97 << 31;
+ $114 = $112 | $113;
+ HEAP32[$104>>2] = $114;
+ $115 = $99 >>> 1;
+ $116 = $100 << 31;
+ $117 = $115 | $116;
+ HEAP32[$103>>2] = $117;
+ $118 = $101 >>> 1;
+ $119 = $118 ^ $108;
+ HEAP32[$102>>2] = $119;
+ $120 = ((($0)) + 244|0);
+ $121 = ((($0)) + 248|0);
+ $122 = ((($0)) + 252|0);
+ $123 = ((($0)) + 256|0);
+ $124 = $81 & 4;
+ $125 = ($124|0)==(0);
+ $126 = $125 ? 0 : -520093696;
+ $127 = $111 >>> 1;
+ $128 = $112 << 31;
+ $129 = $127 | $128;
+ HEAP32[$123>>2] = $129;
+ $130 = $114 >>> 1;
+ $131 = $115 << 31;
+ $132 = $130 | $131;
+ HEAP32[$122>>2] = $132;
+ $133 = $117 >>> 1;
+ $134 = $118 << 31;
+ $135 = $134 | $133;
+ HEAP32[$121>>2] = $135;
+ $136 = $119 >>> 1;
+ $137 = $136 ^ $126;
+ HEAP32[$120>>2] = $137;
+ $138 = $137 ^ $119;
+ $139 = ((($0)) + 276|0);
+ HEAP32[$139>>2] = $138;
+ $140 = $135 ^ $117;
+ $141 = ((($0)) + 280|0);
+ HEAP32[$141>>2] = $140;
+ $142 = $132 ^ $114;
+ $143 = ((($0)) + 284|0);
+ HEAP32[$143>>2] = $142;
+ $144 = $129 ^ $111;
+ $145 = ((($0)) + 288|0);
+ HEAP32[$145>>2] = $144;
+ $146 = $137 ^ $101;
+ $147 = ((($0)) + 308|0);
+ HEAP32[$147>>2] = $146;
+ $148 = $135 ^ $99;
+ $149 = ((($0)) + 312|0);
+ HEAP32[$149>>2] = $148;
+ $150 = $132 ^ $96;
+ $151 = ((($0)) + 316|0);
+ HEAP32[$151>>2] = $150;
+ $152 = $129 ^ $93;
+ $153 = ((($0)) + 320|0);
+ HEAP32[$153>>2] = $152;
+ $154 = $119 ^ $101;
+ $155 = ((($0)) + 324|0);
+ HEAP32[$155>>2] = $154;
+ $156 = $117 ^ $99;
+ $157 = ((($0)) + 328|0);
+ HEAP32[$157>>2] = $156;
+ $158 = $114 ^ $96;
+ $159 = ((($0)) + 332|0);
+ HEAP32[$159>>2] = $158;
+ $160 = $111 ^ $93;
+ $161 = ((($0)) + 336|0);
+ HEAP32[$161>>2] = $160;
+ $162 = $138 ^ $101;
+ $163 = ((($0)) + 340|0);
+ HEAP32[$163>>2] = $162;
+ $164 = $140 ^ $99;
+ $165 = ((($0)) + 344|0);
+ HEAP32[$165>>2] = $164;
+ $166 = $142 ^ $96;
+ $167 = ((($0)) + 348|0);
+ HEAP32[$167>>2] = $166;
+ $168 = $144 ^ $93;
+ $169 = ((($0)) + 352|0);
+ HEAP32[$169>>2] = $168;
+ $170 = $137 ^ $25;
+ $171 = ((($0)) + 372|0);
+ HEAP32[$171>>2] = $170;
+ $172 = $135 ^ $44;
+ $173 = ((($0)) + 376|0);
+ HEAP32[$173>>2] = $172;
+ $174 = $132 ^ $63;
+ $175 = ((($0)) + 380|0);
+ HEAP32[$175>>2] = $174;
+ $176 = $129 ^ $82;
+ $177 = ((($0)) + 384|0);
+ HEAP32[$177>>2] = $176;
+ $178 = $119 ^ $25;
+ $179 = ((($0)) + 388|0);
+ HEAP32[$179>>2] = $178;
+ $180 = $117 ^ $44;
+ $181 = ((($0)) + 392|0);
+ HEAP32[$181>>2] = $180;
+ $182 = $114 ^ $63;
+ $183 = ((($0)) + 396|0);
+ HEAP32[$183>>2] = $182;
+ $184 = $111 ^ $82;
+ $185 = ((($0)) + 400|0);
+ HEAP32[$185>>2] = $184;
+ $186 = $138 ^ $25;
+ $187 = ((($0)) + 404|0);
+ HEAP32[$187>>2] = $186;
+ $188 = $140 ^ $44;
+ $189 = ((($0)) + 408|0);
+ HEAP32[$189>>2] = $188;
+ $190 = $142 ^ $63;
+ $191 = ((($0)) + 412|0);
+ HEAP32[$191>>2] = $190;
+ $192 = $144 ^ $82;
+ $193 = ((($0)) + 416|0);
+ HEAP32[$193>>2] = $192;
+ $194 = $101 ^ $25;
+ $195 = ((($0)) + 420|0);
+ HEAP32[$195>>2] = $194;
+ $196 = $99 ^ $44;
+ $197 = ((($0)) + 424|0);
+ HEAP32[$197>>2] = $196;
+ $198 = $96 ^ $63;
+ $199 = ((($0)) + 428|0);
+ HEAP32[$199>>2] = $198;
+ $200 = $93 ^ $82;
+ $201 = ((($0)) + 432|0);
+ HEAP32[$201>>2] = $200;
+ $202 = $146 ^ $25;
+ $203 = ((($0)) + 436|0);
+ HEAP32[$203>>2] = $202;
+ $204 = $148 ^ $44;
+ $205 = ((($0)) + 440|0);
+ HEAP32[$205>>2] = $204;
+ $206 = $150 ^ $63;
+ $207 = ((($0)) + 444|0);
+ HEAP32[$207>>2] = $206;
+ $208 = $152 ^ $82;
+ $209 = ((($0)) + 448|0);
+ HEAP32[$209>>2] = $208;
+ $210 = $154 ^ $25;
+ $211 = ((($0)) + 452|0);
+ HEAP32[$211>>2] = $210;
+ $212 = $156 ^ $44;
+ $213 = ((($0)) + 456|0);
+ HEAP32[$213>>2] = $212;
+ $214 = $158 ^ $63;
+ $215 = ((($0)) + 460|0);
+ HEAP32[$215>>2] = $214;
+ $216 = $160 ^ $82;
+ $217 = ((($0)) + 464|0);
+ HEAP32[$217>>2] = $216;
+ $218 = $162 ^ $25;
+ $219 = ((($0)) + 468|0);
+ HEAP32[$219>>2] = $218;
+ $220 = $164 ^ $44;
+ $221 = ((($0)) + 472|0);
+ HEAP32[$221>>2] = $220;
+ $222 = $166 ^ $63;
+ $223 = ((($0)) + 476|0);
+ HEAP32[$223>>2] = $222;
+ $224 = $168 ^ $82;
+ $225 = ((($0)) + 480|0);
+ HEAP32[$225>>2] = $224;
+ return;
+}
+function _ghash_internal($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0$i = 0, $$0$lcssa22 = 0, $$01017 = 0, $$01116 = 0, $$070$i = 0, 
$$sroa$044$0$i = 0, $$sroa$15$0$i = 0, $$sroa$22$0$i = 0, $$sroa$8$0$i = 0, $10 
= 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 
= 0, $108 = 0, $109 = 0;
+ var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 
= 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 
= 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0;
+ var $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 
= 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 
= 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0;
+ var $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 
= 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 
= 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0;
+ var $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 
= 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 
= 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0;
+ var $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, 
$189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, 
$196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0;
+ var $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, 
$207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, 
$214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0;
+ var $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 
= 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 
= 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0;
+ var $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 
= 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 
= 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0;
+ var $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, $27 = 0, $28 = 0, $29 = 
0, $30 = 0, $31 = 0, $32 = 0, $33 = 0;
+ var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 
0, $5 = 0, $50 = 0, $51 = 0;
+ var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, 
$6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, 
$68 = 0, $69 = 0, $7 = 0;
+ var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, 
$78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, 
$86 = 0, $87 = 0, $88 = 0;
+ var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, 
$96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $4 = sp;
+ $5 = ($3|0)==(0);
+ if ($5) {
+  $$0$lcssa22 = 0;$266 = 0;
+  $265 = (($266) + ($$0$lcssa22))|0;
+  STACKTOP = sp;return ($265|0);
+ }
+ $6 = $1;
+ $7 = ((($1)) + 4|0);
+ $8 = ((($4)) + 4|0);
+ $9 = ((($1)) + 8|0);
+ $10 = ((($4)) + 8|0);
+ $11 = ((($1)) + 12|0);
+ $12 = ((($4)) + 12|0);
+ $13 = ((($1)) + 1|0);
+ $14 = ((($4)) + 1|0);
+ $15 = ((($1)) + 2|0);
+ $16 = ((($4)) + 2|0);
+ $17 = ((($1)) + 3|0);
+ $18 = ((($4)) + 3|0);
+ $19 = ((($1)) + 5|0);
+ $20 = ((($4)) + 5|0);
+ $21 = ((($1)) + 6|0);
+ $22 = ((($4)) + 6|0);
+ $23 = ((($1)) + 7|0);
+ $24 = ((($4)) + 7|0);
+ $25 = ((($1)) + 9|0);
+ $26 = ((($4)) + 9|0);
+ $27 = ((($1)) + 10|0);
+ $28 = ((($4)) + 10|0);
+ $29 = ((($1)) + 11|0);
+ $30 = ((($4)) + 11|0);
+ $31 = ((($1)) + 13|0);
+ $32 = ((($4)) + 13|0);
+ $33 = ((($1)) + 14|0);
+ $34 = ((($4)) + 14|0);
+ $35 = ((($1)) + 15|0);
+ $36 = ((($4)) + 15|0);
+ $$01017 = $2;$$01116 = $3;
+ while(1) {
+  $37 = $$01017;
+  $38 = $37 | $6;
+  $39 = $38 & 3;
+  $40 = ($39|0)==(0);
+  if ($40) {
+   $41 = HEAP32[$1>>2]|0;
+   $42 = ((($$01017)) + 4|0);
+   $43 = HEAP32[$$01017>>2]|0;
+   $44 = $43 ^ $41;
+   HEAP32[$4>>2] = $44;
+   $45 = HEAP32[$7>>2]|0;
+   $46 = ((($$01017)) + 8|0);
+   $47 = HEAP32[$42>>2]|0;
+   $48 = $47 ^ $45;
+   HEAP32[$8>>2] = $48;
+   $49 = HEAP32[$9>>2]|0;
+   $50 = ((($$01017)) + 12|0);
+   $51 = HEAP32[$46>>2]|0;
+   $52 = $51 ^ $49;
+   HEAP32[$10>>2] = $52;
+   $53 = HEAP32[$11>>2]|0;
+   $54 = HEAP32[$50>>2]|0;
+   $55 = $54 ^ $53;
+   HEAP32[$12>>2] = $55;
+   $56 = $55 >>> 24;
+   $57 = $56&255;
+   $58 = $55 >>> 16;
+   $59 = $58&255;
+   $124 = $57;$132 = $59;
+  } else {
+   $60 = HEAP8[$1>>0]|0;
+   $61 = ((($$01017)) + 1|0);
+   $62 = HEAP8[$$01017>>0]|0;
+   $63 = $62 ^ $60;
+   HEAP8[$4>>0] = $63;
+   $64 = HEAP8[$13>>0]|0;
+   $65 = ((($$01017)) + 2|0);
+   $66 = HEAP8[$61>>0]|0;
+   $67 = $66 ^ $64;
+   HEAP8[$14>>0] = $67;
+   $68 = HEAP8[$15>>0]|0;
+   $69 = ((($$01017)) + 3|0);
+   $70 = HEAP8[$65>>0]|0;
+   $71 = $70 ^ $68;
+   HEAP8[$16>>0] = $71;
+   $72 = HEAP8[$17>>0]|0;
+   $73 = ((($$01017)) + 4|0);
+   $74 = HEAP8[$69>>0]|0;
+   $75 = $74 ^ $72;
+   HEAP8[$18>>0] = $75;
+   $76 = HEAP8[$7>>0]|0;
+   $77 = ((($$01017)) + 5|0);
+   $78 = HEAP8[$73>>0]|0;
+   $79 = $78 ^ $76;
+   HEAP8[$8>>0] = $79;
+   $80 = HEAP8[$19>>0]|0;
+   $81 = ((($$01017)) + 6|0);
+   $82 = HEAP8[$77>>0]|0;
+   $83 = $82 ^ $80;
+   HEAP8[$20>>0] = $83;
+   $84 = HEAP8[$21>>0]|0;
+   $85 = ((($$01017)) + 7|0);
+   $86 = HEAP8[$81>>0]|0;
+   $87 = $86 ^ $84;
+   HEAP8[$22>>0] = $87;
+   $88 = HEAP8[$23>>0]|0;
+   $89 = ((($$01017)) + 8|0);
+   $90 = HEAP8[$85>>0]|0;
+   $91 = $90 ^ $88;
+   HEAP8[$24>>0] = $91;
+   $92 = HEAP8[$9>>0]|0;
+   $93 = ((($$01017)) + 9|0);
+   $94 = HEAP8[$89>>0]|0;
+   $95 = $94 ^ $92;
+   HEAP8[$10>>0] = $95;
+   $96 = HEAP8[$25>>0]|0;
+   $97 = ((($$01017)) + 10|0);
+   $98 = HEAP8[$93>>0]|0;
+   $99 = $98 ^ $96;
+   HEAP8[$26>>0] = $99;
+   $100 = HEAP8[$27>>0]|0;
+   $101 = ((($$01017)) + 11|0);
+   $102 = HEAP8[$97>>0]|0;
+   $103 = $102 ^ $100;
+   HEAP8[$28>>0] = $103;
+   $104 = HEAP8[$29>>0]|0;
+   $105 = ((($$01017)) + 12|0);
+   $106 = HEAP8[$101>>0]|0;
+   $107 = $106 ^ $104;
+   HEAP8[$30>>0] = $107;
+   $108 = HEAP8[$11>>0]|0;
+   $109 = ((($$01017)) + 13|0);
+   $110 = HEAP8[$105>>0]|0;
+   $111 = $110 ^ $108;
+   HEAP8[$12>>0] = $111;
+   $112 = HEAP8[$31>>0]|0;
+   $113 = ((($$01017)) + 14|0);
+   $114 = HEAP8[$109>>0]|0;
+   $115 = $114 ^ $112;
+   HEAP8[$32>>0] = $115;
+   $116 = HEAP8[$33>>0]|0;
+   $117 = ((($$01017)) + 15|0);
+   $118 = HEAP8[$113>>0]|0;
+   $119 = $118 ^ $116;
+   HEAP8[$34>>0] = $119;
+   $120 = HEAP8[$35>>0]|0;
+   $121 = HEAP8[$117>>0]|0;
+   $122 = $121 ^ $120;
+   HEAP8[$36>>0] = $122;
+   $124 = $122;$132 = $119;
+  }
+  $123 = $124&255;
+  $125 = $123 << 2;
+  $126 = $125 & 60;
+  $127 = (((($0)) + 228|0) + ($126<<2)|0);
+  $128 = $123 >>> 4;
+  $129 = $128 << 2;
+  $130 = (((($0)) + 228|0) + ($129<<2)|0);
+  $131 = $132&255;
+  $133 = HEAP32[$127>>2]|0;
+  $134 = $133 >>> 4;
+  $135 = ((($127)) + 12|0);
+  $136 = HEAP32[$135>>2]|0;
+  $137 = $136 << 4;
+  $138 = $137 & 240;
+  $139 = (15696 + ($138<<1)|0);
+  $140 = HEAP16[$139>>1]|0;
+  $141 = $140&65535;
+  $142 = $141 << 16;
+  $143 = HEAP32[$130>>2]|0;
+  $144 = $143 ^ $134;
+  $145 = $144 ^ $142;
+  $146 = ((($127)) + 4|0);
+  $147 = HEAP32[$146>>2]|0;
+  $148 = $147 >>> 4;
+  $149 = $133 << 28;
+  $150 = $148 | $149;
+  $151 = ((($130)) + 4|0);
+  $152 = HEAP32[$151>>2]|0;
+  $153 = $150 ^ $152;
+  $154 = ((($127)) + 8|0);
+  $155 = HEAP32[$154>>2]|0;
+  $156 = $155 >>> 4;
+  $157 = $147 << 28;
+  $158 = $156 | $157;
+  $159 = ((($130)) + 8|0);
+  $160 = HEAP32[$159>>2]|0;
+  $161 = $158 ^ $160;
+  $162 = $136 >>> 4;
+  $163 = $155 << 28;
+  $164 = $163 | $162;
+  $165 = ((($130)) + 12|0);
+  $166 = HEAP32[$165>>2]|0;
+  $167 = $164 ^ $166;
+  $$0$i = 14;$$070$i = $131;$$sroa$044$0$i = $145;$$sroa$15$0$i = 
$161;$$sroa$22$0$i = $167;$$sroa$8$0$i = $153;
+  while(1) {
+   $168 = $$070$i << 2;
+   $169 = $168 & 60;
+   $170 = (((($0)) + 228|0) + ($169<<2)|0);
+   $171 = $$070$i >>> 4;
+   $172 = $171 << 2;
+   $173 = (((($0)) + 228|0) + ($172<<2)|0);
+   $174 = $$sroa$044$0$i >>> 8;
+   $175 = $$sroa$22$0$i & 255;
+   $176 = (15696 + ($175<<1)|0);
+   $177 = HEAP16[$176>>1]|0;
+   $178 = $177&65535;
+   $179 = $178 << 16;
+   $180 = HEAP32[$173>>2]|0;
+   $181 = $$sroa$044$0$i << 24;
+   $182 = $$sroa$8$0$i >>> 8;
+   $183 = $182 | $181;
+   $184 = ((($173)) + 4|0);
+   $185 = HEAP32[$184>>2]|0;
+   $186 = $185 ^ $183;
+   $187 = $$sroa$8$0$i << 24;
+   $188 = $$sroa$15$0$i >>> 8;
+   $189 = $188 | $187;
+   $190 = ((($173)) + 8|0);
+   $191 = HEAP32[$190>>2]|0;
+   $192 = $191 ^ $189;
+   $193 = $$sroa$15$0$i << 24;
+   $194 = $$sroa$22$0$i >>> 8;
+   $195 = $194 | $193;
+   $196 = ((($173)) + 12|0);
+   $197 = HEAP32[$196>>2]|0;
+   $198 = $197 ^ $195;
+   $199 = HEAP32[$170>>2]|0;
+   $200 = $199 >>> 4;
+   $201 = ((($170)) + 12|0);
+   $202 = HEAP32[$201>>2]|0;
+   $203 = $202 << 4;
+   $204 = $203 & 240;
+   $205 = (15696 + ($204<<1)|0);
+   $206 = HEAP16[$205>>1]|0;
+   $207 = $206&65535;
+   $208 = $207 << 16;
+   $209 = $180 ^ $174;
+   $210 = $209 ^ $179;
+   $211 = $210 ^ $200;
+   $212 = $208 ^ $211;
+   $213 = ((($170)) + 4|0);
+   $214 = HEAP32[$213>>2]|0;
+   $215 = $214 >>> 4;
+   $216 = $199 << 28;
+   $217 = $215 | $216;
+   $218 = $186 ^ $217;
+   $219 = ((($170)) + 8|0);
+   $220 = HEAP32[$219>>2]|0;
+   $221 = $220 >>> 4;
+   $222 = $214 << 28;
+   $223 = $221 | $222;
+   $224 = $192 ^ $223;
+   $225 = $202 >>> 4;
+   $226 = $220 << 28;
+   $227 = $226 | $225;
+   $228 = $198 ^ $227;
+   $229 = ($$0$i|0)==(0);
+   if ($229) {
+    break;
+   }
+   $230 = (($$0$i) + -1)|0;
+   $231 = (($4) + ($230)|0);
+   $232 = HEAP8[$231>>0]|0;
+   $233 = $232&255;
+   $$0$i = $230;$$070$i = $233;$$sroa$044$0$i = $212;$$sroa$15$0$i = 
$224;$$sroa$22$0$i = $228;$$sroa$8$0$i = $218;
+  }
+  $234 = $212 >>> 24;
+  $235 = $234&255;
+  HEAP8[$1>>0] = $235;
+  $236 = $212 >>> 16;
+  $237 = $236&255;
+  HEAP8[$13>>0] = $237;
+  $238 = $211 >>> 8;
+  $239 = $238&255;
+  HEAP8[$15>>0] = $239;
+  $240 = $211&255;
+  HEAP8[$17>>0] = $240;
+  $241 = $218 >>> 24;
+  $242 = $241&255;
+  HEAP8[$7>>0] = $242;
+  $243 = $218 >>> 16;
+  $244 = $243&255;
+  HEAP8[$19>>0] = $244;
+  $245 = $218 >>> 8;
+  $246 = $245&255;
+  HEAP8[$21>>0] = $246;
+  $247 = $218&255;
+  HEAP8[$23>>0] = $247;
+  $248 = $224 >>> 24;
+  $249 = $248&255;
+  HEAP8[$9>>0] = $249;
+  $250 = $224 >>> 16;
+  $251 = $250&255;
+  HEAP8[$25>>0] = $251;
+  $252 = $224 >>> 8;
+  $253 = $252&255;
+  HEAP8[$27>>0] = $253;
+  $254 = $224&255;
+  HEAP8[$29>>0] = $254;
+  $255 = $228 >>> 24;
+  $256 = $255&255;
+  HEAP8[$11>>0] = $256;
+  $257 = $228 >>> 16;
+  $258 = $257&255;
+  HEAP8[$31>>0] = $258;
+  $259 = $228 >>> 8;
+  $260 = $259&255;
+  HEAP8[$33>>0] = $260;
+  $261 = $228&255;
+  HEAP8[$35>>0] = $261;
+  $262 = ((($$01017)) + 16|0);
+  $263 = (($$01116) + -1)|0;
+  $264 = ($263|0)==(0);
+  if ($264) {
+   $$0$lcssa22 = 76;$266 = 20;
+   break;
+  } else {
+   $$01017 = $262;$$01116 = $263;
+  }
+ }
+ $265 = (($266) + ($$0$lcssa22))|0;
+ STACKTOP = sp;return ($265|0);
+}
+function __gcry_cipher_ocb_get_l($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0$i12 = 0, $$011 = 0, $$013 = 0, $$phi$trans$insert = 0, 
$$phi$trans$insert60 = 0, $$phi$trans$insert62 = 0, $$phi$trans$insert64 = 0, 
$$phi$trans$insert66 = 0, $$phi$trans$insert68 = 0, $$phi$trans$insert70 = 0, 
$$phi$trans$insert72 = 0, $$phi$trans$insert74 = 0, $$phi$trans$insert76 = 0, 
$$phi$trans$insert78 = 0, $$phi$trans$insert80 = 0, $$phi$trans$insert82 = 0, 
$$phi$trans$insert84 = 0, $$phi$trans$insert86 = 0, $$pre = 0, $$pre$phi100Z2D 
= 0;
+ var $$pre$phi102Z2D = 0, $$pre$phi104Z2D = 0, $$pre$phi106Z2D = 0, 
$$pre$phi107Z2D = 0, $$pre$phi109Z2D = 0, $$pre$phi111Z2D = 0, $$pre$phi113Z2D 
= 0, $$pre$phi90Z2D = 0, $$pre$phi92Z2D = 0, $$pre$phi93Z2D = 0, $$pre$phi95Z2D 
= 0, $$pre$phi97Z2D = 0, $$pre$phi99Z2D = 0, $$pre$phiZ2D = 0, $$pre101 = 0, 
$$pre103 = 0, $$pre105 = 0, $$pre108 = 0, $$pre110 = 0, $$pre112 = 0;
+ var $$pre59 = 0, $$pre61 = 0, $$pre63 = 0, $$pre65 = 0, $$pre67 = 0, $$pre69 
= 0, $$pre71 = 0, $$pre73 = 0, $$pre75 = 0, $$pre77 = 0, $$pre79 = 0, $$pre81 = 
0, $$pre83 = 0, $$pre85 = 0, $$pre87 = 0, $$pre88 = 0, $$pre89 = 0, $$pre91 = 
0, $$pre94 = 0, $$pre96 = 0;
+ var $$pre98 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, 
$105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, 
$112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0;
+ var $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;
+ var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 
= 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 
= 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0;
+ var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 
= 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 
= 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0;
+ var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, 
$178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, 
$185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0;
+ var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 
= 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 
= 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0;
+ var $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 
= 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 
= 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0;
+ var $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 
= 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 
= 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0;
+ var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 
= 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 
= 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0;
+ var $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;
+ var $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, 
$287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, 
$294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0;
+ var $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 
= 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 
= 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0;
+ var $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 
= 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 
= 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0;
+ var $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 
= 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 
= 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0;
+ var $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 
= 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 
= 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0;
+ var $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, 
$378 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 
0, $45 = 0, $46 = 0, $47 = 0, $48 = 0;
+ var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, 
$56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, 
$64 = 0, $65 = 0, $66 = 0;
+ var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, 
$74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, 
$82 = 0, $83 = 0, $84 = 0;
+ var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, 
$92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $4 = ($2|0)==(0);
+ $5 = (0)==(0);
+ $6 = $4 & $5;
+ if ($6) {
+  $7 = (_llvm_cttz_i32(($3|0))|0);
+  $8 = (($7) + 32)|0;
+  $$0$i12 = $8;
+ } else {
+  $9 = (_llvm_cttz_i32(($2|0))|0);
+  $10 = ($9>>>0)<(16);
+  if ($10) {
+   $11 = ((($0)) + 160|0);
+   $12 = (($11) + ($9<<4)|0);
+   $$011 = $12;
+   return ($$011|0);
+  } else {
+   $$0$i12 = $9;
+  }
+ }
+ $13 = ((($0)) + 160|0);
+ $14 = ((($13)) + 240|0);
+ $15 = ($14|0)==($1|0);
+ do {
+  if ($15) {
+   $$pre = HEAP8[$1>>0]|0;
+   $$phi$trans$insert = ((($1)) + 1|0);
+   $$pre59 = HEAP8[$$phi$trans$insert>>0]|0;
+   $$phi$trans$insert60 = ((($1)) + 2|0);
+   $$pre61 = HEAP8[$$phi$trans$insert60>>0]|0;
+   $$phi$trans$insert62 = ((($1)) + 3|0);
+   $$pre63 = HEAP8[$$phi$trans$insert62>>0]|0;
+   $$phi$trans$insert64 = ((($1)) + 4|0);
+   $$pre65 = HEAP8[$$phi$trans$insert64>>0]|0;
+   $$phi$trans$insert66 = ((($1)) + 5|0);
+   $$pre67 = HEAP8[$$phi$trans$insert66>>0]|0;
+   $$phi$trans$insert68 = ((($1)) + 6|0);
+   $$pre69 = HEAP8[$$phi$trans$insert68>>0]|0;
+   $$phi$trans$insert70 = ((($1)) + 7|0);
+   $$pre71 = HEAP8[$$phi$trans$insert70>>0]|0;
+   $$phi$trans$insert72 = ((($1)) + 8|0);
+   $$pre73 = HEAP8[$$phi$trans$insert72>>0]|0;
+   $$phi$trans$insert74 = ((($1)) + 9|0);
+   $$pre75 = HEAP8[$$phi$trans$insert74>>0]|0;
+   $$phi$trans$insert76 = ((($1)) + 10|0);
+   $$pre77 = HEAP8[$$phi$trans$insert76>>0]|0;
+   $$phi$trans$insert78 = ((($1)) + 11|0);
+   $$pre79 = HEAP8[$$phi$trans$insert78>>0]|0;
+   $$phi$trans$insert80 = ((($1)) + 12|0);
+   $$pre81 = HEAP8[$$phi$trans$insert80>>0]|0;
+   $$phi$trans$insert82 = ((($1)) + 13|0);
+   $$pre83 = HEAP8[$$phi$trans$insert82>>0]|0;
+   $$phi$trans$insert84 = ((($1)) + 14|0);
+   $$pre85 = HEAP8[$$phi$trans$insert84>>0]|0;
+   $$phi$trans$insert86 = ((($1)) + 15|0);
+   $$pre87 = HEAP8[$$phi$trans$insert86>>0]|0;
+   $$pre$phi100Z2D = $$phi$trans$insert72;$$pre$phi102Z2D = 
$$phi$trans$insert74;$$pre$phi104Z2D = $$phi$trans$insert76;$$pre$phi106Z2D = 
$$phi$trans$insert78;$$pre$phi107Z2D = $$phi$trans$insert80;$$pre$phi109Z2D = 
$$phi$trans$insert82;$$pre$phi111Z2D = $$phi$trans$insert84;$$pre$phi113Z2D = 
$$phi$trans$insert86;$$pre$phi90Z2D = $$phi$trans$insert60;$$pre$phi92Z2D = 
$$phi$trans$insert62;$$pre$phi93Z2D = $$phi$trans$insert64;$$pre$phi95Z2D = 
$$phi$trans$insert66;$$pre$phi97Z2D = $$phi$tr [...]
+  } else {
+   $16 = $1;
+   $17 = $14;
+   $18 = $17 | $16;
+   $19 = $18 & 3;
+   $20 = ($19|0)==(0);
+   if ($20) {
+    $21 = ((($13)) + 244|0);
+    $22 = HEAP32[$14>>2]|0;
+    $23 = ((($1)) + 4|0);
+    HEAP32[$1>>2] = $22;
+    $24 = ((($13)) + 248|0);
+    $25 = HEAP32[$21>>2]|0;
+    $26 = ((($1)) + 8|0);
+    HEAP32[$23>>2] = $25;
+    $27 = ((($13)) + 252|0);
+    $28 = HEAP32[$24>>2]|0;
+    $29 = ((($1)) + 12|0);
+    HEAP32[$26>>2] = $28;
+    $30 = HEAP32[$27>>2]|0;
+    HEAP32[$29>>2] = $30;
+    $31 = $22&255;
+    $32 = $22 >>> 8;
+    $33 = $32&255;
+    $34 = $22 >>> 16;
+    $35 = $34&255;
+    $36 = $22 >>> 24;
+    $37 = $36&255;
+    $38 = $25&255;
+    $39 = $25 >>> 8;
+    $40 = $39&255;
+    $41 = $25 >>> 16;
+    $42 = $41&255;
+    $43 = $25 >>> 24;
+    $44 = $43&255;
+    $45 = $28&255;
+    $46 = $28 >>> 8;
+    $47 = $46&255;
+    $48 = $28 >>> 16;
+    $49 = $48&255;
+    $50 = $28 >>> 24;
+    $51 = $50&255;
+    $52 = $30&255;
+    $53 = $30 >>> 8;
+    $54 = $53&255;
+    $55 = $30 >>> 16;
+    $56 = $55&255;
+    $57 = $30 >>> 24;
+    $58 = $57&255;
+    $$pre88 = ((($1)) + 1|0);
+    $$pre89 = ((($1)) + 2|0);
+    $$pre91 = ((($1)) + 3|0);
+    $$pre94 = ((($1)) + 5|0);
+    $$pre96 = ((($1)) + 6|0);
+    $$pre98 = ((($1)) + 7|0);
+    $$pre101 = ((($1)) + 9|0);
+    $$pre103 = ((($1)) + 10|0);
+    $$pre105 = ((($1)) + 11|0);
+    $$pre108 = ((($1)) + 13|0);
+    $$pre110 = ((($1)) + 14|0);
+    $$pre112 = ((($1)) + 15|0);
+    $$pre$phi100Z2D = $26;$$pre$phi102Z2D = $$pre101;$$pre$phi104Z2D = 
$$pre103;$$pre$phi106Z2D = $$pre105;$$pre$phi107Z2D = $29;$$pre$phi109Z2D = 
$$pre108;$$pre$phi111Z2D = $$pre110;$$pre$phi113Z2D = $$pre112;$$pre$phi90Z2D = 
$$pre89;$$pre$phi92Z2D = $$pre91;$$pre$phi93Z2D = $23;$$pre$phi95Z2D = 
$$pre94;$$pre$phi97Z2D = $$pre96;$$pre$phi99Z2D = $$pre98;$$pre$phiZ2D = 
$$pre88;$106 = $31;$110 = $33;$116 = $35;$122 = $37;$125 = $38;$131 = $40;$137 
= $42;$143 = $44;$146 = $45;$150 = $47;$15 [...]
+    break;
+   } else {
+    $59 = ((($14)) + 1|0);
+    $60 = HEAP8[$14>>0]|0;
+    $61 = ((($1)) + 1|0);
+    HEAP8[$1>>0] = $60;
+    $62 = ((($14)) + 2|0);
+    $63 = HEAP8[$59>>0]|0;
+    $64 = ((($1)) + 2|0);
+    HEAP8[$61>>0] = $63;
+    $65 = ((($14)) + 3|0);
+    $66 = HEAP8[$62>>0]|0;
+    $67 = ((($1)) + 3|0);
+    HEAP8[$64>>0] = $66;
+    $68 = ((($13)) + 244|0);
+    $69 = HEAP8[$65>>0]|0;
+    $70 = ((($1)) + 4|0);
+    HEAP8[$67>>0] = $69;
+    $71 = ((($14)) + 5|0);
+    $72 = HEAP8[$68>>0]|0;
+    $73 = ((($1)) + 5|0);
+    HEAP8[$70>>0] = $72;
+    $74 = ((($14)) + 6|0);
+    $75 = HEAP8[$71>>0]|0;
+    $76 = ((($1)) + 6|0);
+    HEAP8[$73>>0] = $75;
+    $77 = ((($14)) + 7|0);
+    $78 = HEAP8[$74>>0]|0;
+    $79 = ((($1)) + 7|0);
+    HEAP8[$76>>0] = $78;
+    $80 = ((($13)) + 248|0);
+    $81 = HEAP8[$77>>0]|0;
+    $82 = ((($1)) + 8|0);
+    HEAP8[$79>>0] = $81;
+    $83 = ((($14)) + 9|0);
+    $84 = HEAP8[$80>>0]|0;
+    $85 = ((($1)) + 9|0);
+    HEAP8[$82>>0] = $84;
+    $86 = ((($14)) + 10|0);
+    $87 = HEAP8[$83>>0]|0;
+    $88 = ((($1)) + 10|0);
+    HEAP8[$85>>0] = $87;
+    $89 = ((($14)) + 11|0);
+    $90 = HEAP8[$86>>0]|0;
+    $91 = ((($1)) + 11|0);
+    HEAP8[$88>>0] = $90;
+    $92 = ((($13)) + 252|0);
+    $93 = HEAP8[$89>>0]|0;
+    $94 = ((($1)) + 12|0);
+    HEAP8[$91>>0] = $93;
+    $95 = ((($14)) + 13|0);
+    $96 = HEAP8[$92>>0]|0;
+    $97 = ((($1)) + 13|0);
+    HEAP8[$94>>0] = $96;
+    $98 = ((($14)) + 14|0);
+    $99 = HEAP8[$95>>0]|0;
+    $100 = ((($1)) + 14|0);
+    HEAP8[$97>>0] = $99;
+    $101 = ((($14)) + 15|0);
+    $102 = HEAP8[$98>>0]|0;
+    $103 = ((($1)) + 15|0);
+    HEAP8[$100>>0] = $102;
+    $104 = HEAP8[$101>>0]|0;
+    HEAP8[$103>>0] = $104;
+    $$pre$phi100Z2D = $82;$$pre$phi102Z2D = $85;$$pre$phi104Z2D = 
$88;$$pre$phi106Z2D = $91;$$pre$phi107Z2D = $94;$$pre$phi109Z2D = 
$97;$$pre$phi111Z2D = $100;$$pre$phi113Z2D = $103;$$pre$phi90Z2D = 
$64;$$pre$phi92Z2D = $67;$$pre$phi93Z2D = $70;$$pre$phi95Z2D = 
$73;$$pre$phi97Z2D = $76;$$pre$phi99Z2D = $79;$$pre$phiZ2D = $61;$106 = 
$60;$110 = $63;$116 = $66;$122 = $69;$125 = $72;$131 = $75;$137 = $78;$143 = 
$81;$146 = $84;$150 = $87;$156 = $90;$162 = $93;$165 = $96;$171 = $99;$177 = 
$102 [...]
+    break;
+   }
+  }
+ } while(0);
+ $105 = $106&255;
+ $107 = (_bitshift64Shl(($105|0),0,56)|0);
+ $108 = tempRet0;
+ $109 = $110&255;
+ $111 = (_bitshift64Shl(($109|0),0,48)|0);
+ $112 = tempRet0;
+ $113 = $111 | $107;
+ $114 = $112 | $108;
+ $115 = $116&255;
+ $117 = (_bitshift64Shl(($115|0),0,40)|0);
+ $118 = tempRet0;
+ $119 = $113 | $117;
+ $120 = $114 | $118;
+ $121 = $122&255;
+ $123 = $120 | $121;
+ $124 = $125&255;
+ $126 = (_bitshift64Shl(($124|0),0,24)|0);
+ $127 = tempRet0;
+ $128 = $119 | $126;
+ $129 = $123 | $127;
+ $130 = $131&255;
+ $132 = (_bitshift64Shl(($130|0),0,16)|0);
+ $133 = tempRet0;
+ $134 = $128 | $132;
+ $135 = $129 | $133;
+ $136 = $137&255;
+ $138 = (_bitshift64Shl(($136|0),0,8)|0);
+ $139 = tempRet0;
+ $140 = $134 | $138;
+ $141 = $135 | $139;
+ $142 = $143&255;
+ $144 = $140 | $142;
+ $145 = $146&255;
+ $147 = (_bitshift64Shl(($145|0),0,56)|0);
+ $148 = tempRet0;
+ $149 = $150&255;
+ $151 = (_bitshift64Shl(($149|0),0,48)|0);
+ $152 = tempRet0;
+ $153 = $151 | $147;
+ $154 = $152 | $148;
+ $155 = $156&255;
+ $157 = (_bitshift64Shl(($155|0),0,40)|0);
+ $158 = tempRet0;
+ $159 = $153 | $157;
+ $160 = $154 | $158;
+ $161 = $162&255;
+ $163 = $160 | $161;
+ $164 = $165&255;
+ $166 = (_bitshift64Shl(($164|0),0,24)|0);
+ $167 = tempRet0;
+ $168 = $159 | $166;
+ $169 = $163 | $167;
+ $170 = $171&255;
+ $172 = (_bitshift64Shl(($170|0),0,16)|0);
+ $173 = tempRet0;
+ $174 = $168 | $172;
+ $175 = $169 | $173;
+ $176 = $177&255;
+ $178 = (_bitshift64Shl(($176|0),0,8)|0);
+ $179 = tempRet0;
+ $180 = $174 | $178;
+ $181 = $175 | $179;
+ $182 = $183&255;
+ $184 = $180 | $182;
+ $185 = (_bitshift64Ashr(($107|0),($108|0),63)|0);
+ $186 = tempRet0;
+ $187 = (_bitshift64Shl(($144|0),($141|0),1)|0);
+ $188 = tempRet0;
+ $189 = (_bitshift64Lshr(($145|0),0,7)|0);
+ $190 = tempRet0;
+ $191 = $187 | $189;
+ $188 | $190;
+ $192 = (_bitshift64Shl(($184|0),($181|0),1)|0);
+ $193 = tempRet0;
+ $194 = $185 & 135;
+ $195 = $192 ^ $194;
+ $196 = (_bitshift64Lshr(($113|0),($114|0),55)|0);
+ $197 = tempRet0;
+ $198 = $196&255;
+ HEAP8[$1>>0] = $198;
+ $199 = (_bitshift64Lshr(($119|0),($120|0),47)|0);
+ $200 = tempRet0;
+ $201 = $199&255;
+ HEAP8[$$pre$phiZ2D>>0] = $201;
+ $202 = (_bitshift64Lshr(($119|0),($123|0),39)|0);
+ $203 = tempRet0;
+ $204 = $202&255;
+ HEAP8[$$pre$phi90Z2D>>0] = $204;
+ $205 = (_bitshift64Lshr(($128|0),($129|0),31)|0);
+ $206 = tempRet0;
+ $207 = $205&255;
+ HEAP8[$$pre$phi92Z2D>>0] = $207;
+ $208 = (_bitshift64Lshr(($134|0),($135|0),23)|0);
+ $209 = tempRet0;
+ $210 = $208&255;
+ HEAP8[$$pre$phi93Z2D>>0] = $210;
+ $211 = (_bitshift64Lshr(($140|0),($141|0),15)|0);
+ $212 = tempRet0;
+ $213 = $211&255;
+ HEAP8[$$pre$phi95Z2D>>0] = $213;
+ $214 = (_bitshift64Lshr(($144|0),($141|0),7)|0);
+ $215 = tempRet0;
+ $216 = $214&255;
+ HEAP8[$$pre$phi97Z2D>>0] = $216;
+ $217 = $191&255;
+ HEAP8[$$pre$phi99Z2D>>0] = $217;
+ $218 = (_bitshift64Lshr(($153|0),($154|0),55)|0);
+ $219 = tempRet0;
+ $220 = $218&255;
+ HEAP8[$$pre$phi100Z2D>>0] = $220;
+ $221 = (_bitshift64Lshr(($159|0),($160|0),47)|0);
+ $222 = tempRet0;
+ $223 = $221&255;
+ HEAP8[$$pre$phi102Z2D>>0] = $223;
+ $224 = (_bitshift64Lshr(($159|0),($163|0),39)|0);
+ $225 = tempRet0;
+ $226 = $224&255;
+ HEAP8[$$pre$phi104Z2D>>0] = $226;
+ $227 = (_bitshift64Lshr(($168|0),($169|0),31)|0);
+ $228 = tempRet0;
+ $229 = $227&255;
+ HEAP8[$$pre$phi106Z2D>>0] = $229;
+ $230 = (_bitshift64Lshr(($174|0),($175|0),23)|0);
+ $231 = tempRet0;
+ $232 = $230&255;
+ HEAP8[$$pre$phi107Z2D>>0] = $232;
+ $233 = (_bitshift64Lshr(($180|0),($181|0),15)|0);
+ $234 = tempRet0;
+ $235 = $233&255;
+ HEAP8[$$pre$phi109Z2D>>0] = $235;
+ $236 = (_bitshift64Lshr(($184|0),($181|0),7)|0);
+ $237 = tempRet0;
+ $238 = $236&255;
+ HEAP8[$$pre$phi111Z2D>>0] = $238;
+ $239 = $195&255;
+ HEAP8[$$pre$phi113Z2D>>0] = $239;
+ $240 = (($$0$i12) + -16)|0;
+ $241 = ($240|0)==(0);
+ if ($241) {
+  $$011 = $1;
+  return ($$011|0);
+ }
+ $$013 = $240;$243 = $198;$247 = $201;$253 = $204;$259 = $207;$262 = $210;$268 
= $213;$274 = $216;$280 = $217;$283 = $220;$287 = $223;$293 = $226;$299 = 
$229;$302 = $232;$308 = $235;$314 = $238;$320 = $239;
+ while(1) {
+  $242 = $243&255;
+  $244 = (_bitshift64Shl(($242|0),0,56)|0);
+  $245 = tempRet0;
+  $246 = $247&255;
+  $248 = (_bitshift64Shl(($246|0),0,48)|0);
+  $249 = tempRet0;
+  $250 = $248 | $244;
+  $251 = $249 | $245;
+  $252 = $253&255;
+  $254 = (_bitshift64Shl(($252|0),0,40)|0);
+  $255 = tempRet0;
+  $256 = $250 | $254;
+  $257 = $251 | $255;
+  $258 = $259&255;
+  $260 = $257 | $258;
+  $261 = $262&255;
+  $263 = (_bitshift64Shl(($261|0),0,24)|0);
+  $264 = tempRet0;
+  $265 = $256 | $263;
+  $266 = $260 | $264;
+  $267 = $268&255;
+  $269 = (_bitshift64Shl(($267|0),0,16)|0);
+  $270 = tempRet0;
+  $271 = $265 | $269;
+  $272 = $266 | $270;
+  $273 = $274&255;
+  $275 = (_bitshift64Shl(($273|0),0,8)|0);
+  $276 = tempRet0;
+  $277 = $271 | $275;
+  $278 = $272 | $276;
+  $279 = $280&255;
+  $281 = $277 | $279;
+  $282 = $283&255;
+  $284 = (_bitshift64Shl(($282|0),0,56)|0);
+  $285 = tempRet0;
+  $286 = $287&255;
+  $288 = (_bitshift64Shl(($286|0),0,48)|0);
+  $289 = tempRet0;
+  $290 = $288 | $284;
+  $291 = $289 | $285;
+  $292 = $293&255;
+  $294 = (_bitshift64Shl(($292|0),0,40)|0);
+  $295 = tempRet0;
+  $296 = $290 | $294;
+  $297 = $291 | $295;
+  $298 = $299&255;
+  $300 = $297 | $298;
+  $301 = $302&255;
+  $303 = (_bitshift64Shl(($301|0),0,24)|0);
+  $304 = tempRet0;
+  $305 = $296 | $303;
+  $306 = $300 | $304;
+  $307 = $308&255;
+  $309 = (_bitshift64Shl(($307|0),0,16)|0);
+  $310 = tempRet0;
+  $311 = $305 | $309;
+  $312 = $306 | $310;
+  $313 = $314&255;
+  $315 = (_bitshift64Shl(($313|0),0,8)|0);
+  $316 = tempRet0;
+  $317 = $311 | $315;
+  $318 = $312 | $316;
+  $319 = $320&255;
+  $321 = $317 | $319;
+  $322 = (_bitshift64Ashr(($244|0),($245|0),63)|0);
+  $323 = tempRet0;
+  $324 = (_bitshift64Shl(($281|0),($278|0),1)|0);
+  $325 = tempRet0;
+  $326 = (_bitshift64Lshr(($282|0),0,7)|0);
+  $327 = tempRet0;
+  $328 = $324 | $326;
+  $325 | $327;
+  $329 = (_bitshift64Shl(($321|0),($318|0),1)|0);
+  $330 = tempRet0;
+  $331 = $322 & 135;
+  $332 = $329 ^ $331;
+  $333 = (_bitshift64Lshr(($250|0),($251|0),55)|0);
+  $334 = tempRet0;
+  $335 = $333&255;
+  $336 = (_bitshift64Lshr(($256|0),($257|0),47)|0);
+  $337 = tempRet0;
+  $338 = $336&255;
+  $339 = (_bitshift64Lshr(($256|0),($260|0),39)|0);
+  $340 = tempRet0;
+  $341 = $339&255;
+  $342 = (_bitshift64Lshr(($265|0),($266|0),31)|0);
+  $343 = tempRet0;
+  $344 = $342&255;
+  $345 = (_bitshift64Lshr(($271|0),($272|0),23)|0);
+  $346 = tempRet0;
+  $347 = $345&255;
+  $348 = (_bitshift64Lshr(($277|0),($278|0),15)|0);
+  $349 = tempRet0;
+  $350 = $348&255;
+  $351 = (_bitshift64Lshr(($281|0),($278|0),7)|0);
+  $352 = tempRet0;
+  $353 = $351&255;
+  $354 = $328&255;
+  $355 = (_bitshift64Lshr(($290|0),($291|0),55)|0);
+  $356 = tempRet0;
+  $357 = $355&255;
+  $358 = (_bitshift64Lshr(($296|0),($297|0),47)|0);
+  $359 = tempRet0;
+  $360 = $358&255;
+  $361 = (_bitshift64Lshr(($296|0),($300|0),39)|0);
+  $362 = tempRet0;
+  $363 = $361&255;
+  $364 = (_bitshift64Lshr(($305|0),($306|0),31)|0);
+  $365 = tempRet0;
+  $366 = $364&255;
+  $367 = (_bitshift64Lshr(($311|0),($312|0),23)|0);
+  $368 = tempRet0;
+  $369 = $367&255;
+  $370 = (_bitshift64Lshr(($317|0),($318|0),15)|0);
+  $371 = tempRet0;
+  $372 = $370&255;
+  $373 = (_bitshift64Lshr(($321|0),($318|0),7)|0);
+  $374 = tempRet0;
+  $375 = $373&255;
+  $376 = $332&255;
+  $377 = (($$013) + -1)|0;
+  $378 = ($377|0)==(0);
+  if ($378) {
+   break;
+  } else {
+   $$013 = $377;$243 = $335;$247 = $338;$253 = $341;$259 = $344;$262 = 
$347;$268 = $350;$274 = $353;$280 = $354;$283 = $357;$287 = $360;$293 = 
$363;$299 = $366;$302 = $369;$308 = $372;$314 = $375;$320 = $376;
+  }
+ }
+ HEAP8[$1>>0] = $335;
+ HEAP8[$$pre$phiZ2D>>0] = $338;
+ HEAP8[$$pre$phi90Z2D>>0] = $341;
+ HEAP8[$$pre$phi92Z2D>>0] = $344;
+ HEAP8[$$pre$phi93Z2D>>0] = $347;
+ HEAP8[$$pre$phi95Z2D>>0] = $350;
+ HEAP8[$$pre$phi97Z2D>>0] = $353;
+ HEAP8[$$pre$phi99Z2D>>0] = $354;
+ HEAP8[$$pre$phi100Z2D>>0] = $357;
+ HEAP8[$$pre$phi102Z2D>>0] = $360;
+ HEAP8[$$pre$phi104Z2D>>0] = $363;
+ HEAP8[$$pre$phi106Z2D>>0] = $366;
+ HEAP8[$$pre$phi107Z2D>>0] = $369;
+ HEAP8[$$pre$phi109Z2D>>0] = $372;
+ HEAP8[$$pre$phi111Z2D>>0] = $375;
+ HEAP8[$$pre$phi113Z2D>>0] = $376;
+ $$011 = $1;
+ return ($$011|0);
+}
+function __gcry_cipher_ocb_set_nonce($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$0121179 = 0, $$02434$i146 = 0, $$02533$i147 = 0, $$026$i = 0, 
$$028$i = 0, $$035$i145 = 0, $$1$i149 = 0, $$12731$i = 0, $$12930$i = 0, 
$$232$i = 0, $$phi$trans$insert = 0, $$phi$trans$insert193 = 0, 
$$phi$trans$insert195 = 0, $$phi$trans$insert197 = 0, $$phi$trans$insert199 = 
0, $$phi$trans$insert201 = 0, $$phi$trans$insert203 = 0, $$phi$trans$insert205 
= 0, $$phi$trans$insert207 = 0;
+ var $$phi$trans$insert209 = 0, $$phi$trans$insert211 = 0, 
$$phi$trans$insert213 = 0, $$pre = 0, $$pre$phi217Z2D = 0, $$pre$phi219Z2D = 0, 
$$pre$phi220Z2D = 0, $$pre$phi222Z2D = 0, $$pre$phi224Z2D = 0, $$pre$phi226Z2D 
= 0, $$pre$phi227Z2D = 0, $$pre$phi229Z2D = 0, $$pre$phi231Z2D = 0, 
$$pre$phi233Z2D = 0, $$pre$phi234Z2D = 0, $$pre$phi236Z2D = 0, $$pre$phi238Z2D 
= 0, $$pre$phi240Z2D = 0, $$pre$phi242Z2D = 0, $$pre$phi244Z2D = 0;
+ var $$pre$phi246Z2D = 0, $$pre$phi249Z2D = 0, $$pre$phi251Z2D = 0, 
$$pre$phi253Z2D = 0, $$pre$phi255Z2D = 0, $$pre$phi258Z2D = 0, $$pre$phi260Z2D 
= 0, $$pre$phi262Z2D = 0, $$pre$phi264Z2D = 0, $$pre$phi267Z2D = 0, 
$$pre$phi269Z2D = 0, $$pre$phi271Z2D = 0, $$pre$phi273Z2D = 0, $$pre$phi274Z2D 
= 0, $$pre$phi275Z2D = 0, $$pre$phi276Z2D = 0, $$pre$phi277Z2D = 0, 
$$pre$phi278Z2D = 0, $$pre$phi279Z2D = 0, $$pre$phi280Z2D = 0;
+ var $$pre$phi281Z2D = 0, $$pre$phi282Z2D = 0, $$pre$phi283Z2D = 0, 
$$pre$phi284Z2D = 0, $$pre$phi285Z2D = 0, $$pre$phi286Z2D = 0, $$pre$phi287Z2D 
= 0, $$pre$phi288Z2D = 0, $$pre$phiZ2D = 0, $$pre194 = 0, $$pre196 = 0, 
$$pre198 = 0, $$pre200 = 0, $$pre202 = 0, $$pre204 = 0, $$pre206 = 0, $$pre208 
= 0, $$pre210 = 0, $$pre212 = 0, $$pre214 = 0;
+ var $$pre215 = 0, $$pre216 = 0, $$pre218 = 0, $$pre221 = 0, $$pre223 = 0, 
$$pre225 = 0, $$pre228 = 0, $$pre230 = 0, $$pre232 = 0, $$pre235 = 0, $$pre237 
= 0, $$pre239 = 0, $$pre241 = 0, $$pre243 = 0, $$pre245 = 0, $$pre250 = 0, 
$$pre252 = 0, $$pre254 = 0, $$pre259 = 0, $$pre261 = 0;
+ var $$pre263 = 0, $$pre268 = 0, $$pre270 = 0, $$pre272 = 0, $$sink = 0, 
$$sink191 = 0, $$sink192 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, 
$104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0;
+ var $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;
+ var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 
= 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 
= 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0;
+ var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 
= 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 
= 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0;
+ var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 
= 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 
= 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0;
+ var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 
= 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 
= 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0;
+ var $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, 
$209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, 
$216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0;
+ var $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, 
$227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, 
$234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0;
+ var $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 
= 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 
= 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0;
+ var $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;
+ var $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 
= 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 
= 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0;
+ var $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 
= 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 
= 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0;
+ var $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, 
$317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, 
$324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0;
+ var $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 
= 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 
= 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0;
+ var $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 
= 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 
= 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0;
+ var $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 
= 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 
= 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0;
+ var $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 
= 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 
= 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0;
+ var $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, 
$407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, 
$414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0;
+ var $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 
= 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 
= 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0;
+ var $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 
= 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 
= 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0;
+ var $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 
= 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 
= 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0;
+ var $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 
= 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 
= 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0;
+ var $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, 
$498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, 
$504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0;
+ var $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 
= 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 
= 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $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, $634 = 0;
+ var $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 
= 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 
= 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0;
+ var $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 
= 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 
= 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0;
+ var $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, 
$678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, 
$685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0;
+ var $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 
= 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 
0, $703 = 0, $704 = 0, $705 = 0, $706 = 0;
+ var $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 
= 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 
= 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0;
+ var $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 
= 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 
= 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0;
+ var $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 
= 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 
= 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0;
+ var $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, 
$768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, 
$775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0;
+ var $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 
= 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 
= 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0;
+ var $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 
0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 
0, $811 = 0, $812 = 0, $813 = 0, $814 = 0;
+ var $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 
= 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 
= 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0;
+ var $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 
= 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 
= 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0;
+ var $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, 
$858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, 
$865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0;
+ var $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 
= 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 
= 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0;
+ var $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 
= 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 
0, $901 = 0, $902 = 0, $903 = 0, $904 = 0;
+ var $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 
= 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 
= 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0;
+ var $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 
= 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 
= 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0;
+ var $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, 
$948 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, 
$or$cond$i = 0, $scevgep$i143 = 0, $scevgep44$i144 = 0, dest = 0, label = 0, sp 
= 0;
+ var stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $3 = sp + 32|0;
+ $4 = sp;
+ $5 = ((($0)) + 56|0);
+ $6 = HEAP8[$5>>0]|0;
+ $7 = $6 & 1;
+ $8 = ($7<<24>>24)==(0);
+ if ($8) {
+  $$0 = 156;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $9 = ((($0)) + 128|0);
+ $10 = ((($0)) + 480|0);
+ $11 = HEAP8[$10>>0]|0;
+ switch ($11<<24>>24) {
+ case 16: case 12: case 8:  {
+  break;
+ }
+ default: {
+  $$0 = 59;
+  STACKTOP = sp;return ($$0|0);
+ }
+ }
+ $12 = ((($0)) + 12|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = ((($13)) + 20|0);
+ $15 = HEAP32[$14>>2]|0;
+ $16 = ($15|0)==(16);
+ if (!($16)) {
+  $$0 = 12;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $17 = ($1|0)==(0|0);
+ if ($17) {
+  $$0 = 45;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $18 = $2 & -8;
+ $19 = ($18|0)==(8);
+ if (!($19)) {
+  $$0 = 139;
+  STACKTOP = sp;return ($$0|0);
+ }
+ 
;HEAP32[$3>>2]=0|0;HEAP32[$3+4>>2]=0|0;HEAP32[$3+8>>2]=0|0;HEAP32[$3+12>>2]=0|0;
+ $20 = ((($13)) + 36|0);
+ $21 = HEAP32[$20>>2]|0;
+ $22 = ((($0)) + 496|0);
+ $23 = (FUNCTION_TABLE_iiii[$21 & 127]($22,$9,$3)|0);
+ $24 = ((($0)) + 144|0);
+ $25 = $24;
+ $26 = $9;
+ $27 = $26 | $25;
+ $28 = $27 & 3;
+ $29 = ($28|0)==(0);
+ if ($29) {
+  $30 = ((($9)) + 4|0);
+  $31 = HEAP32[$9>>2]|0;
+  $32 = ((($0)) + 148|0);
+  HEAP32[$24>>2] = $31;
+  $33 = ((($0)) + 136|0);
+  $34 = HEAP32[$30>>2]|0;
+  $35 = ((($0)) + 152|0);
+  HEAP32[$32>>2] = $34;
+  $36 = ((($0)) + 140|0);
+  $37 = HEAP32[$33>>2]|0;
+  $38 = ((($0)) + 156|0);
+  HEAP32[$35>>2] = $37;
+  $39 = HEAP32[$36>>2]|0;
+  HEAP32[$38>>2] = $39;
+  $40 = $31&255;
+  $41 = $31 >>> 8;
+  $42 = $41&255;
+  $43 = $31 >>> 16;
+  $44 = $43&255;
+  $45 = $31 >>> 24;
+  $46 = $45&255;
+  $47 = $34&255;
+  $48 = $34 >>> 8;
+  $49 = $48&255;
+  $50 = $34 >>> 16;
+  $51 = $50&255;
+  $52 = $34 >>> 24;
+  $53 = $52&255;
+  $54 = $37&255;
+  $55 = $37 >>> 8;
+  $56 = $55&255;
+  $57 = $37 >>> 16;
+  $58 = $57&255;
+  $59 = $37 >>> 24;
+  $60 = $59&255;
+  $61 = $39&255;
+  $62 = $39 >>> 8;
+  $63 = $62&255;
+  $64 = $39 >>> 16;
+  $65 = $64&255;
+  $66 = $39 >>> 24;
+  $67 = $66&255;
+  $$pre215 = ((($0)) + 145|0);
+  $$pre216 = ((($0)) + 146|0);
+  $$pre218 = ((($0)) + 147|0);
+  $$pre221 = ((($0)) + 149|0);
+  $$pre223 = ((($0)) + 150|0);
+  $$pre225 = ((($0)) + 151|0);
+  $$pre228 = ((($0)) + 153|0);
+  $$pre230 = ((($0)) + 154|0);
+  $$pre232 = ((($0)) + 155|0);
+  $$pre235 = ((($0)) + 157|0);
+  $$pre237 = ((($0)) + 158|0);
+  $$pre239 = ((($0)) + 159|0);
+  $$pre$phi217Z2D = $$pre216;$$pre$phi219Z2D = $$pre218;$$pre$phi220Z2D = 
$32;$$pre$phi222Z2D = $$pre221;$$pre$phi224Z2D = $$pre223;$$pre$phi226Z2D = 
$$pre225;$$pre$phi227Z2D = $35;$$pre$phi229Z2D = $$pre228;$$pre$phi231Z2D = 
$$pre230;$$pre$phi233Z2D = $$pre232;$$pre$phi234Z2D = $38;$$pre$phi236Z2D = 
$$pre235;$$pre$phi238Z2D = $$pre237;$$pre$phi240Z2D = $$pre239;$$pre$phiZ2D = 
$$pre215;$115 = $40;$119 = $42;$125 = $44;$131 = $46;$134 = $47;$140 = $49;$146 
= $51;$152 = $53;$155 = $54;$159 [...]
+ } else {
+  $68 = ((($9)) + 1|0);
+  $69 = HEAP8[$9>>0]|0;
+  $70 = ((($0)) + 145|0);
+  HEAP8[$24>>0] = $69;
+  $71 = ((($9)) + 2|0);
+  $72 = HEAP8[$68>>0]|0;
+  $73 = ((($0)) + 146|0);
+  HEAP8[$70>>0] = $72;
+  $74 = ((($9)) + 3|0);
+  $75 = HEAP8[$71>>0]|0;
+  $76 = ((($0)) + 147|0);
+  HEAP8[$73>>0] = $75;
+  $77 = ((($9)) + 4|0);
+  $78 = HEAP8[$74>>0]|0;
+  $79 = ((($0)) + 148|0);
+  HEAP8[$76>>0] = $78;
+  $80 = ((($9)) + 5|0);
+  $81 = HEAP8[$77>>0]|0;
+  $82 = ((($0)) + 149|0);
+  HEAP8[$79>>0] = $81;
+  $83 = ((($9)) + 6|0);
+  $84 = HEAP8[$80>>0]|0;
+  $85 = ((($0)) + 150|0);
+  HEAP8[$82>>0] = $84;
+  $86 = ((($9)) + 7|0);
+  $87 = HEAP8[$83>>0]|0;
+  $88 = ((($0)) + 151|0);
+  HEAP8[$85>>0] = $87;
+  $89 = ((($0)) + 136|0);
+  $90 = HEAP8[$86>>0]|0;
+  $91 = ((($0)) + 152|0);
+  HEAP8[$88>>0] = $90;
+  $92 = ((($0)) + 137|0);
+  $93 = HEAP8[$89>>0]|0;
+  $94 = ((($0)) + 153|0);
+  HEAP8[$91>>0] = $93;
+  $95 = ((($0)) + 138|0);
+  $96 = HEAP8[$92>>0]|0;
+  $97 = ((($0)) + 154|0);
+  HEAP8[$94>>0] = $96;
+  $98 = ((($0)) + 139|0);
+  $99 = HEAP8[$95>>0]|0;
+  $100 = ((($0)) + 155|0);
+  HEAP8[$97>>0] = $99;
+  $101 = ((($0)) + 140|0);
+  $102 = HEAP8[$98>>0]|0;
+  $103 = ((($0)) + 156|0);
+  HEAP8[$100>>0] = $102;
+  $104 = ((($0)) + 141|0);
+  $105 = HEAP8[$101>>0]|0;
+  $106 = ((($0)) + 157|0);
+  HEAP8[$103>>0] = $105;
+  $107 = ((($0)) + 142|0);
+  $108 = HEAP8[$104>>0]|0;
+  $109 = ((($0)) + 158|0);
+  HEAP8[$106>>0] = $108;
+  $110 = ((($0)) + 143|0);
+  $111 = HEAP8[$107>>0]|0;
+  $112 = ((($0)) + 159|0);
+  HEAP8[$109>>0] = $111;
+  $113 = HEAP8[$110>>0]|0;
+  HEAP8[$112>>0] = $113;
+  $$pre$phi217Z2D = $73;$$pre$phi219Z2D = $76;$$pre$phi220Z2D = 
$79;$$pre$phi222Z2D = $82;$$pre$phi224Z2D = $85;$$pre$phi226Z2D = 
$88;$$pre$phi227Z2D = $91;$$pre$phi229Z2D = $94;$$pre$phi231Z2D = 
$97;$$pre$phi233Z2D = $100;$$pre$phi234Z2D = $103;$$pre$phi236Z2D = 
$106;$$pre$phi238Z2D = $109;$$pre$phi240Z2D = $112;$$pre$phiZ2D = $70;$115 = 
$69;$119 = $72;$125 = $75;$131 = $78;$134 = $81;$140 = $84;$146 = $87;$152 = 
$90;$155 = $93;$159 = $96;$165 = $99;$171 = $102;$174 = $105;$180 = $108;$ [...]
+ }
+ $114 = $115&255;
+ $116 = (_bitshift64Shl(($114|0),0,56)|0);
+ $117 = tempRet0;
+ $118 = $119&255;
+ $120 = (_bitshift64Shl(($118|0),0,48)|0);
+ $121 = tempRet0;
+ $122 = $120 | $116;
+ $123 = $121 | $117;
+ $124 = $125&255;
+ $126 = (_bitshift64Shl(($124|0),0,40)|0);
+ $127 = tempRet0;
+ $128 = $122 | $126;
+ $129 = $123 | $127;
+ $130 = $131&255;
+ $132 = $129 | $130;
+ $133 = $134&255;
+ $135 = (_bitshift64Shl(($133|0),0,24)|0);
+ $136 = tempRet0;
+ $137 = $128 | $135;
+ $138 = $132 | $136;
+ $139 = $140&255;
+ $141 = (_bitshift64Shl(($139|0),0,16)|0);
+ $142 = tempRet0;
+ $143 = $137 | $141;
+ $144 = $138 | $142;
+ $145 = $146&255;
+ $147 = (_bitshift64Shl(($145|0),0,8)|0);
+ $148 = tempRet0;
+ $149 = $143 | $147;
+ $150 = $144 | $148;
+ $151 = $152&255;
+ $153 = $149 | $151;
+ $154 = $155&255;
+ $156 = (_bitshift64Shl(($154|0),0,56)|0);
+ $157 = tempRet0;
+ $158 = $159&255;
+ $160 = (_bitshift64Shl(($158|0),0,48)|0);
+ $161 = tempRet0;
+ $162 = $160 | $156;
+ $163 = $161 | $157;
+ $164 = $165&255;
+ $166 = (_bitshift64Shl(($164|0),0,40)|0);
+ $167 = tempRet0;
+ $168 = $162 | $166;
+ $169 = $163 | $167;
+ $170 = $171&255;
+ $172 = $169 | $170;
+ $173 = $174&255;
+ $175 = (_bitshift64Shl(($173|0),0,24)|0);
+ $176 = tempRet0;
+ $177 = $168 | $175;
+ $178 = $172 | $176;
+ $179 = $180&255;
+ $181 = (_bitshift64Shl(($179|0),0,16)|0);
+ $182 = tempRet0;
+ $183 = $177 | $181;
+ $184 = $178 | $182;
+ $185 = $186&255;
+ $187 = (_bitshift64Shl(($185|0),0,8)|0);
+ $188 = tempRet0;
+ $189 = $183 | $187;
+ $190 = $184 | $188;
+ $191 = $192&255;
+ $193 = $189 | $191;
+ $194 = (_bitshift64Ashr(($116|0),($117|0),63)|0);
+ $195 = tempRet0;
+ $196 = (_bitshift64Shl(($153|0),($150|0),1)|0);
+ $197 = tempRet0;
+ $198 = (_bitshift64Lshr(($154|0),0,7)|0);
+ $199 = tempRet0;
+ $200 = $196 | $198;
+ $197 | $199;
+ $201 = (_bitshift64Shl(($193|0),($190|0),1)|0);
+ $202 = tempRet0;
+ $203 = $194 & 135;
+ $204 = $201 ^ $203;
+ $205 = (_bitshift64Lshr(($122|0),($123|0),55)|0);
+ $206 = tempRet0;
+ $207 = $205&255;
+ HEAP8[$24>>0] = $207;
+ $208 = (_bitshift64Lshr(($128|0),($129|0),47)|0);
+ $209 = tempRet0;
+ $210 = $208&255;
+ HEAP8[$$pre$phiZ2D>>0] = $210;
+ $211 = (_bitshift64Lshr(($128|0),($132|0),39)|0);
+ $212 = tempRet0;
+ $213 = $211&255;
+ HEAP8[$$pre$phi217Z2D>>0] = $213;
+ $214 = (_bitshift64Lshr(($137|0),($138|0),31)|0);
+ $215 = tempRet0;
+ $216 = $214&255;
+ HEAP8[$$pre$phi219Z2D>>0] = $216;
+ $217 = (_bitshift64Lshr(($143|0),($144|0),23)|0);
+ $218 = tempRet0;
+ $219 = $217&255;
+ HEAP8[$$pre$phi220Z2D>>0] = $219;
+ $220 = (_bitshift64Lshr(($149|0),($150|0),15)|0);
+ $221 = tempRet0;
+ $222 = $220&255;
+ HEAP8[$$pre$phi222Z2D>>0] = $222;
+ $223 = (_bitshift64Lshr(($153|0),($150|0),7)|0);
+ $224 = tempRet0;
+ $225 = $223&255;
+ HEAP8[$$pre$phi224Z2D>>0] = $225;
+ $226 = $200&255;
+ HEAP8[$$pre$phi226Z2D>>0] = $226;
+ $227 = (_bitshift64Lshr(($162|0),($163|0),55)|0);
+ $228 = tempRet0;
+ $229 = $227&255;
+ HEAP8[$$pre$phi227Z2D>>0] = $229;
+ $230 = (_bitshift64Lshr(($168|0),($169|0),47)|0);
+ $231 = tempRet0;
+ $232 = $230&255;
+ HEAP8[$$pre$phi229Z2D>>0] = $232;
+ $233 = (_bitshift64Lshr(($168|0),($172|0),39)|0);
+ $234 = tempRet0;
+ $235 = $233&255;
+ HEAP8[$$pre$phi231Z2D>>0] = $235;
+ $236 = (_bitshift64Lshr(($177|0),($178|0),31)|0);
+ $237 = tempRet0;
+ $238 = $236&255;
+ HEAP8[$$pre$phi233Z2D>>0] = $238;
+ $239 = (_bitshift64Lshr(($183|0),($184|0),23)|0);
+ $240 = tempRet0;
+ $241 = $239&255;
+ HEAP8[$$pre$phi234Z2D>>0] = $241;
+ $242 = (_bitshift64Lshr(($189|0),($190|0),15)|0);
+ $243 = tempRet0;
+ $244 = $242&255;
+ HEAP8[$$pre$phi236Z2D>>0] = $244;
+ $245 = (_bitshift64Lshr(($193|0),($190|0),7)|0);
+ $246 = tempRet0;
+ $247 = $245&255;
+ HEAP8[$$pre$phi238Z2D>>0] = $247;
+ $248 = $204&255;
+ HEAP8[$$pre$phi240Z2D>>0] = $248;
+ $249 = ((($0)) + 160|0);
+ $250 = $249;
+ $251 = $25 | $250;
+ $252 = $251 & 3;
+ $253 = ($252|0)==(0);
+ if ($253) {
+  $254 = HEAP32[$24>>2]|0;
+  $255 = ((($249)) + 4|0);
+  HEAP32[$249>>2] = $254;
+  $256 = HEAP32[$$pre$phi220Z2D>>2]|0;
+  $257 = ((($249)) + 8|0);
+  HEAP32[$255>>2] = $256;
+  $258 = HEAP32[$$pre$phi227Z2D>>2]|0;
+  $259 = ((($249)) + 12|0);
+  HEAP32[$257>>2] = $258;
+  $260 = HEAP32[$$pre$phi234Z2D>>2]|0;
+  HEAP32[$259>>2] = $260;
+  $261 = $254&255;
+  $262 = $254 >>> 8;
+  $263 = $262&255;
+  $264 = $254 >>> 16;
+  $265 = $264&255;
+  $266 = $254 >>> 24;
+  $267 = $266&255;
+  $268 = $256&255;
+  $269 = $256 >>> 8;
+  $270 = $269&255;
+  $271 = $256 >>> 16;
+  $272 = $271&255;
+  $273 = $256 >>> 24;
+  $274 = $273&255;
+  $275 = $258&255;
+  $276 = $258 >>> 8;
+  $277 = $276&255;
+  $278 = $258 >>> 16;
+  $279 = $278&255;
+  $280 = $258 >>> 24;
+  $281 = $280&255;
+  $282 = $260&255;
+  $283 = $260 >>> 8;
+  $284 = $283&255;
+  $285 = $260 >>> 16;
+  $286 = $285&255;
+  $287 = $260 >>> 24;
+  $288 = $287&255;
+  $$pre241 = ((($249)) + 1|0);
+  $$pre243 = ((($249)) + 2|0);
+  $$pre245 = ((($249)) + 3|0);
+  $$pre250 = ((($249)) + 5|0);
+  $$pre252 = ((($249)) + 6|0);
+  $$pre254 = ((($249)) + 7|0);
+  $$pre259 = ((($249)) + 9|0);
+  $$pre261 = ((($249)) + 10|0);
+  $$pre263 = ((($249)) + 11|0);
+  $$pre268 = ((($249)) + 13|0);
+  $$pre270 = ((($249)) + 14|0);
+  $$pre272 = ((($249)) + 15|0);
+  $$pre$phi242Z2D = $$pre241;$$pre$phi244Z2D = $$pre243;$$pre$phi246Z2D = 
$$pre245;$$pre$phi249Z2D = $255;$$pre$phi251Z2D = $$pre250;$$pre$phi253Z2D = 
$$pre252;$$pre$phi255Z2D = $$pre254;$$pre$phi258Z2D = $257;$$pre$phi260Z2D = 
$$pre259;$$pre$phi262Z2D = $$pre261;$$pre$phi264Z2D = $$pre263;$$pre$phi267Z2D 
= $259;$$pre$phi269Z2D = $$pre268;$$pre$phi271Z2D = $$pre270;$$pre$phi273Z2D = 
$$pre272;$305 = $261;$309 = $263;$315 = $265;$321 = $267;$324 = $268;$330 = 
$270;$336 = $272;$342 = $274;$ [...]
+ } else {
+  $289 = ((($249)) + 1|0);
+  HEAP8[$249>>0] = $207;
+  $290 = ((($249)) + 2|0);
+  HEAP8[$289>>0] = $210;
+  $291 = ((($249)) + 3|0);
+  HEAP8[$290>>0] = $213;
+  $292 = ((($249)) + 4|0);
+  HEAP8[$291>>0] = $216;
+  $293 = ((($249)) + 5|0);
+  HEAP8[$292>>0] = $219;
+  $294 = ((($249)) + 6|0);
+  HEAP8[$293>>0] = $222;
+  $295 = ((($249)) + 7|0);
+  HEAP8[$294>>0] = $225;
+  $296 = ((($249)) + 8|0);
+  HEAP8[$295>>0] = $226;
+  $297 = ((($249)) + 9|0);
+  HEAP8[$296>>0] = $229;
+  $298 = ((($249)) + 10|0);
+  HEAP8[$297>>0] = $232;
+  $299 = ((($249)) + 11|0);
+  HEAP8[$298>>0] = $235;
+  $300 = ((($249)) + 12|0);
+  HEAP8[$299>>0] = $238;
+  $301 = ((($249)) + 13|0);
+  HEAP8[$300>>0] = $241;
+  $302 = ((($249)) + 14|0);
+  HEAP8[$301>>0] = $244;
+  $303 = ((($249)) + 15|0);
+  HEAP8[$302>>0] = $247;
+  HEAP8[$303>>0] = $248;
+  $$pre$phi242Z2D = $289;$$pre$phi244Z2D = $290;$$pre$phi246Z2D = 
$291;$$pre$phi249Z2D = $292;$$pre$phi251Z2D = $293;$$pre$phi253Z2D = 
$294;$$pre$phi255Z2D = $295;$$pre$phi258Z2D = $296;$$pre$phi260Z2D = 
$297;$$pre$phi262Z2D = $298;$$pre$phi264Z2D = $299;$$pre$phi267Z2D = 
$300;$$pre$phi269Z2D = $301;$$pre$phi271Z2D = $302;$$pre$phi273Z2D = $303;$305 
= $207;$309 = $210;$315 = $213;$321 = $216;$324 = $219;$330 = $222;$336 = 
$225;$342 = $226;$345 = $229;$349 = $232;$355 = $235;$361 = $238;$ [...]
+ }
+ $304 = $305&255;
+ $306 = (_bitshift64Shl(($304|0),0,56)|0);
+ $307 = tempRet0;
+ $308 = $309&255;
+ $310 = (_bitshift64Shl(($308|0),0,48)|0);
+ $311 = tempRet0;
+ $312 = $310 | $306;
+ $313 = $311 | $307;
+ $314 = $315&255;
+ $316 = (_bitshift64Shl(($314|0),0,40)|0);
+ $317 = tempRet0;
+ $318 = $312 | $316;
+ $319 = $313 | $317;
+ $320 = $321&255;
+ $322 = $319 | $320;
+ $323 = $324&255;
+ $325 = (_bitshift64Shl(($323|0),0,24)|0);
+ $326 = tempRet0;
+ $327 = $318 | $325;
+ $328 = $322 | $326;
+ $329 = $330&255;
+ $331 = (_bitshift64Shl(($329|0),0,16)|0);
+ $332 = tempRet0;
+ $333 = $327 | $331;
+ $334 = $328 | $332;
+ $335 = $336&255;
+ $337 = (_bitshift64Shl(($335|0),0,8)|0);
+ $338 = tempRet0;
+ $339 = $333 | $337;
+ $340 = $334 | $338;
+ $341 = $342&255;
+ $343 = $339 | $341;
+ $344 = $345&255;
+ $346 = (_bitshift64Shl(($344|0),0,56)|0);
+ $347 = tempRet0;
+ $348 = $349&255;
+ $350 = (_bitshift64Shl(($348|0),0,48)|0);
+ $351 = tempRet0;
+ $352 = $350 | $346;
+ $353 = $351 | $347;
+ $354 = $355&255;
+ $356 = (_bitshift64Shl(($354|0),0,40)|0);
+ $357 = tempRet0;
+ $358 = $352 | $356;
+ $359 = $353 | $357;
+ $360 = $361&255;
+ $362 = $359 | $360;
+ $363 = $364&255;
+ $365 = (_bitshift64Shl(($363|0),0,24)|0);
+ $366 = tempRet0;
+ $367 = $358 | $365;
+ $368 = $362 | $366;
+ $369 = $370&255;
+ $371 = (_bitshift64Shl(($369|0),0,16)|0);
+ $372 = tempRet0;
+ $373 = $367 | $371;
+ $374 = $368 | $372;
+ $375 = $376&255;
+ $377 = (_bitshift64Shl(($375|0),0,8)|0);
+ $378 = tempRet0;
+ $379 = $373 | $377;
+ $380 = $374 | $378;
+ $381 = $382&255;
+ $383 = $379 | $381;
+ $384 = (_bitshift64Ashr(($306|0),($307|0),63)|0);
+ $385 = tempRet0;
+ $386 = (_bitshift64Shl(($343|0),($340|0),1)|0);
+ $387 = tempRet0;
+ $388 = (_bitshift64Lshr(($344|0),0,7)|0);
+ $389 = tempRet0;
+ $390 = $386 | $388;
+ $387 | $389;
+ $391 = (_bitshift64Shl(($383|0),($380|0),1)|0);
+ $392 = tempRet0;
+ $393 = $384 & 135;
+ $394 = $391 ^ $393;
+ $395 = (_bitshift64Lshr(($312|0),($313|0),55)|0);
+ $396 = tempRet0;
+ $397 = $395&255;
+ HEAP8[$249>>0] = $397;
+ $398 = (_bitshift64Lshr(($318|0),($319|0),47)|0);
+ $399 = tempRet0;
+ $400 = $398&255;
+ HEAP8[$$pre$phi242Z2D>>0] = $400;
+ $401 = (_bitshift64Lshr(($318|0),($322|0),39)|0);
+ $402 = tempRet0;
+ $403 = $401&255;
+ HEAP8[$$pre$phi244Z2D>>0] = $403;
+ $404 = (_bitshift64Lshr(($327|0),($328|0),31)|0);
+ $405 = tempRet0;
+ $406 = $404&255;
+ HEAP8[$$pre$phi246Z2D>>0] = $406;
+ $407 = (_bitshift64Lshr(($333|0),($334|0),23)|0);
+ $408 = tempRet0;
+ $409 = $407&255;
+ HEAP8[$$pre$phi249Z2D>>0] = $409;
+ $410 = (_bitshift64Lshr(($339|0),($340|0),15)|0);
+ $411 = tempRet0;
+ $412 = $410&255;
+ HEAP8[$$pre$phi251Z2D>>0] = $412;
+ $413 = (_bitshift64Lshr(($343|0),($340|0),7)|0);
+ $414 = tempRet0;
+ $415 = $413&255;
+ HEAP8[$$pre$phi253Z2D>>0] = $415;
+ $416 = $390&255;
+ HEAP8[$$pre$phi255Z2D>>0] = $416;
+ $417 = (_bitshift64Lshr(($352|0),($353|0),55)|0);
+ $418 = tempRet0;
+ $419 = $417&255;
+ HEAP8[$$pre$phi258Z2D>>0] = $419;
+ $420 = (_bitshift64Lshr(($358|0),($359|0),47)|0);
+ $421 = tempRet0;
+ $422 = $420&255;
+ HEAP8[$$pre$phi260Z2D>>0] = $422;
+ $423 = (_bitshift64Lshr(($358|0),($362|0),39)|0);
+ $424 = tempRet0;
+ $425 = $423&255;
+ HEAP8[$$pre$phi262Z2D>>0] = $425;
+ $426 = (_bitshift64Lshr(($367|0),($368|0),31)|0);
+ $427 = tempRet0;
+ $428 = $426&255;
+ HEAP8[$$pre$phi264Z2D>>0] = $428;
+ $429 = (_bitshift64Lshr(($373|0),($374|0),23)|0);
+ $430 = tempRet0;
+ $431 = $429&255;
+ HEAP8[$$pre$phi267Z2D>>0] = $431;
+ $432 = (_bitshift64Lshr(($379|0),($380|0),15)|0);
+ $433 = tempRet0;
+ $434 = $432&255;
+ HEAP8[$$pre$phi269Z2D>>0] = $434;
+ $435 = (_bitshift64Lshr(($383|0),($380|0),7)|0);
+ $436 = tempRet0;
+ $437 = $435&255;
+ HEAP8[$$pre$phi271Z2D>>0] = $437;
+ $438 = $394&255;
+ HEAP8[$$pre$phi273Z2D>>0] = $438;
+ $$0121179 = 1;
+ while(1) {
+  $439 = (($249) + ($$0121179<<4)|0);
+  $440 = (($$0121179) + -1)|0;
+  $441 = (($249) + ($440<<4)|0);
+  $442 = $439;
+  $443 = $441;
+  $444 = $443 | $442;
+  $445 = $444 & 3;
+  $446 = ($445|0)==(0);
+  if ($446) {
+   $447 = (((($249) + ($440<<4)|0)) + 4|0);
+   $448 = HEAP32[$441>>2]|0;
+   $449 = (((($249) + ($$0121179<<4)|0)) + 4|0);
+   HEAP32[$439>>2] = $448;
+   $450 = (((($249) + ($440<<4)|0)) + 8|0);
+   $451 = HEAP32[$447>>2]|0;
+   $452 = (((($249) + ($$0121179<<4)|0)) + 8|0);
+   HEAP32[$449>>2] = $451;
+   $453 = (((($249) + ($440<<4)|0)) + 12|0);
+   $454 = HEAP32[$450>>2]|0;
+   $455 = (((($249) + ($$0121179<<4)|0)) + 12|0);
+   HEAP32[$452>>2] = $454;
+   $456 = HEAP32[$453>>2]|0;
+   HEAP32[$455>>2] = $456;
+   $457 = $448&255;
+   $$phi$trans$insert = (((($249) + ($$0121179<<4)|0)) + 1|0);
+   $$pre = HEAP8[$$phi$trans$insert>>0]|0;
+   $$phi$trans$insert193 = (((($249) + ($$0121179<<4)|0)) + 2|0);
+   $$pre194 = HEAP8[$$phi$trans$insert193>>0]|0;
+   $$phi$trans$insert195 = (((($249) + ($$0121179<<4)|0)) + 3|0);
+   $$pre196 = HEAP8[$$phi$trans$insert195>>0]|0;
+   $458 = $451&255;
+   $$phi$trans$insert197 = (((($249) + ($$0121179<<4)|0)) + 5|0);
+   $$pre198 = HEAP8[$$phi$trans$insert197>>0]|0;
+   $$phi$trans$insert199 = (((($249) + ($$0121179<<4)|0)) + 6|0);
+   $$pre200 = HEAP8[$$phi$trans$insert199>>0]|0;
+   $$phi$trans$insert201 = (((($249) + ($$0121179<<4)|0)) + 7|0);
+   $$pre202 = HEAP8[$$phi$trans$insert201>>0]|0;
+   $459 = $454&255;
+   $$phi$trans$insert203 = (((($249) + ($$0121179<<4)|0)) + 9|0);
+   $$pre204 = HEAP8[$$phi$trans$insert203>>0]|0;
+   $$phi$trans$insert205 = (((($249) + ($$0121179<<4)|0)) + 10|0);
+   $$pre206 = HEAP8[$$phi$trans$insert205>>0]|0;
+   $$phi$trans$insert207 = (((($249) + ($$0121179<<4)|0)) + 11|0);
+   $$pre208 = HEAP8[$$phi$trans$insert207>>0]|0;
+   $460 = $456&255;
+   $$phi$trans$insert209 = (((($249) + ($$0121179<<4)|0)) + 13|0);
+   $$pre210 = HEAP8[$$phi$trans$insert209>>0]|0;
+   $$phi$trans$insert211 = (((($249) + ($$0121179<<4)|0)) + 14|0);
+   $$pre212 = HEAP8[$$phi$trans$insert211>>0]|0;
+   $$phi$trans$insert213 = (((($249) + ($$0121179<<4)|0)) + 15|0);
+   $$pre214 = HEAP8[$$phi$trans$insert213>>0]|0;
+   $$pre$phi274Z2D = $$phi$trans$insert;$$pre$phi275Z2D = 
$$phi$trans$insert193;$$pre$phi276Z2D = $$phi$trans$insert195;$$pre$phi277Z2D = 
$449;$$pre$phi278Z2D = $$phi$trans$insert197;$$pre$phi279Z2D = 
$$phi$trans$insert199;$$pre$phi280Z2D = $$phi$trans$insert201;$$pre$phi281Z2D = 
$452;$$pre$phi282Z2D = $$phi$trans$insert203;$$pre$phi283Z2D = 
$$phi$trans$insert205;$$pre$phi284Z2D = $$phi$trans$insert207;$$pre$phi285Z2D = 
$455;$$pre$phi286Z2D = $$phi$trans$insert209;$$pre$phi287Z2D = $$phi [...]
+  } else {
+   $461 = (((($249) + ($440<<4)|0)) + 1|0);
+   $462 = HEAP8[$441>>0]|0;
+   $463 = (((($249) + ($$0121179<<4)|0)) + 1|0);
+   HEAP8[$439>>0] = $462;
+   $464 = (((($249) + ($440<<4)|0)) + 2|0);
+   $465 = HEAP8[$461>>0]|0;
+   $466 = (((($249) + ($$0121179<<4)|0)) + 2|0);
+   HEAP8[$463>>0] = $465;
+   $467 = (((($249) + ($440<<4)|0)) + 3|0);
+   $468 = HEAP8[$464>>0]|0;
+   $469 = (((($249) + ($$0121179<<4)|0)) + 3|0);
+   HEAP8[$466>>0] = $468;
+   $470 = (((($249) + ($440<<4)|0)) + 4|0);
+   $471 = HEAP8[$467>>0]|0;
+   $472 = (((($249) + ($$0121179<<4)|0)) + 4|0);
+   HEAP8[$469>>0] = $471;
+   $473 = (((($249) + ($440<<4)|0)) + 5|0);
+   $474 = HEAP8[$470>>0]|0;
+   $475 = (((($249) + ($$0121179<<4)|0)) + 5|0);
+   HEAP8[$472>>0] = $474;
+   $476 = (((($249) + ($440<<4)|0)) + 6|0);
+   $477 = HEAP8[$473>>0]|0;
+   $478 = (((($249) + ($$0121179<<4)|0)) + 6|0);
+   HEAP8[$475>>0] = $477;
+   $479 = (((($249) + ($440<<4)|0)) + 7|0);
+   $480 = HEAP8[$476>>0]|0;
+   $481 = (((($249) + ($$0121179<<4)|0)) + 7|0);
+   HEAP8[$478>>0] = $480;
+   $482 = (((($249) + ($440<<4)|0)) + 8|0);
+   $483 = HEAP8[$479>>0]|0;
+   $484 = (((($249) + ($$0121179<<4)|0)) + 8|0);
+   HEAP8[$481>>0] = $483;
+   $485 = (((($249) + ($440<<4)|0)) + 9|0);
+   $486 = HEAP8[$482>>0]|0;
+   $487 = (((($249) + ($$0121179<<4)|0)) + 9|0);
+   HEAP8[$484>>0] = $486;
+   $488 = (((($249) + ($440<<4)|0)) + 10|0);
+   $489 = HEAP8[$485>>0]|0;
+   $490 = (((($249) + ($$0121179<<4)|0)) + 10|0);
+   HEAP8[$487>>0] = $489;
+   $491 = (((($249) + ($440<<4)|0)) + 11|0);
+   $492 = HEAP8[$488>>0]|0;
+   $493 = (((($249) + ($$0121179<<4)|0)) + 11|0);
+   HEAP8[$490>>0] = $492;
+   $494 = (((($249) + ($440<<4)|0)) + 12|0);
+   $495 = HEAP8[$491>>0]|0;
+   $496 = (((($249) + ($$0121179<<4)|0)) + 12|0);
+   HEAP8[$493>>0] = $495;
+   $497 = (((($249) + ($440<<4)|0)) + 13|0);
+   $498 = HEAP8[$494>>0]|0;
+   $499 = (((($249) + ($$0121179<<4)|0)) + 13|0);
+   HEAP8[$496>>0] = $498;
+   $500 = (((($249) + ($440<<4)|0)) + 14|0);
+   $501 = HEAP8[$497>>0]|0;
+   $502 = (((($249) + ($$0121179<<4)|0)) + 14|0);
+   HEAP8[$499>>0] = $501;
+   $503 = (((($249) + ($440<<4)|0)) + 15|0);
+   $504 = HEAP8[$500>>0]|0;
+   $505 = (((($249) + ($$0121179<<4)|0)) + 15|0);
+   HEAP8[$502>>0] = $504;
+   $506 = HEAP8[$503>>0]|0;
+   HEAP8[$505>>0] = $506;
+   $$pre$phi274Z2D = $463;$$pre$phi275Z2D = $466;$$pre$phi276Z2D = 
$469;$$pre$phi277Z2D = $472;$$pre$phi278Z2D = $475;$$pre$phi279Z2D = 
$478;$$pre$phi280Z2D = $481;$$pre$phi281Z2D = $484;$$pre$phi282Z2D = 
$487;$$pre$phi283Z2D = $490;$$pre$phi284Z2D = $493;$$pre$phi285Z2D = 
$496;$$pre$phi286Z2D = $499;$$pre$phi287Z2D = $502;$$pre$phi288Z2D = $505;$508 
= $462;$512 = $465;$518 = $468;$524 = $471;$527 = $474;$533 = $477;$539 = 
$480;$545 = $483;$548 = $486;$552 = $489;$558 = $492;$564 = $495; [...]
+  }
+  $507 = $508&255;
+  $509 = (_bitshift64Shl(($507|0),0,56)|0);
+  $510 = tempRet0;
+  $511 = $512&255;
+  $513 = (_bitshift64Shl(($511|0),0,48)|0);
+  $514 = tempRet0;
+  $515 = $513 | $509;
+  $516 = $514 | $510;
+  $517 = $518&255;
+  $519 = (_bitshift64Shl(($517|0),0,40)|0);
+  $520 = tempRet0;
+  $521 = $515 | $519;
+  $522 = $516 | $520;
+  $523 = $524&255;
+  $525 = $522 | $523;
+  $526 = $527&255;
+  $528 = (_bitshift64Shl(($526|0),0,24)|0);
+  $529 = tempRet0;
+  $530 = $521 | $528;
+  $531 = $525 | $529;
+  $532 = $533&255;
+  $534 = (_bitshift64Shl(($532|0),0,16)|0);
+  $535 = tempRet0;
+  $536 = $530 | $534;
+  $537 = $531 | $535;
+  $538 = $539&255;
+  $540 = (_bitshift64Shl(($538|0),0,8)|0);
+  $541 = tempRet0;
+  $542 = $536 | $540;
+  $543 = $537 | $541;
+  $544 = $545&255;
+  $546 = $542 | $544;
+  $547 = $548&255;
+  $549 = (_bitshift64Shl(($547|0),0,56)|0);
+  $550 = tempRet0;
+  $551 = $552&255;
+  $553 = (_bitshift64Shl(($551|0),0,48)|0);
+  $554 = tempRet0;
+  $555 = $553 | $549;
+  $556 = $554 | $550;
+  $557 = $558&255;
+  $559 = (_bitshift64Shl(($557|0),0,40)|0);
+  $560 = tempRet0;
+  $561 = $555 | $559;
+  $562 = $556 | $560;
+  $563 = $564&255;
+  $565 = $562 | $563;
+  $566 = $567&255;
+  $568 = (_bitshift64Shl(($566|0),0,24)|0);
+  $569 = tempRet0;
+  $570 = $561 | $568;
+  $571 = $565 | $569;
+  $572 = $573&255;
+  $574 = (_bitshift64Shl(($572|0),0,16)|0);
+  $575 = tempRet0;
+  $576 = $570 | $574;
+  $577 = $571 | $575;
+  $578 = $579&255;
+  $580 = (_bitshift64Shl(($578|0),0,8)|0);
+  $581 = tempRet0;
+  $582 = $576 | $580;
+  $583 = $577 | $581;
+  $584 = $585&255;
+  $586 = $582 | $584;
+  $587 = (_bitshift64Ashr(($509|0),($510|0),63)|0);
+  $588 = tempRet0;
+  $589 = (_bitshift64Shl(($546|0),($543|0),1)|0);
+  $590 = tempRet0;
+  $591 = (_bitshift64Lshr(($547|0),0,7)|0);
+  $592 = tempRet0;
+  $593 = $589 | $591;
+  $590 | $592;
+  $594 = (_bitshift64Shl(($586|0),($583|0),1)|0);
+  $595 = tempRet0;
+  $596 = $587 & 135;
+  $597 = $594 ^ $596;
+  $598 = (_bitshift64Lshr(($515|0),($516|0),55)|0);
+  $599 = tempRet0;
+  $600 = $598&255;
+  HEAP8[$439>>0] = $600;
+  $601 = (_bitshift64Lshr(($521|0),($522|0),47)|0);
+  $602 = tempRet0;
+  $603 = $601&255;
+  HEAP8[$$pre$phi274Z2D>>0] = $603;
+  $604 = (_bitshift64Lshr(($521|0),($525|0),39)|0);
+  $605 = tempRet0;
+  $606 = $604&255;
+  HEAP8[$$pre$phi275Z2D>>0] = $606;
+  $607 = (_bitshift64Lshr(($530|0),($531|0),31)|0);
+  $608 = tempRet0;
+  $609 = $607&255;
+  HEAP8[$$pre$phi276Z2D>>0] = $609;
+  $610 = (_bitshift64Lshr(($536|0),($537|0),23)|0);
+  $611 = tempRet0;
+  $612 = $610&255;
+  HEAP8[$$pre$phi277Z2D>>0] = $612;
+  $613 = (_bitshift64Lshr(($542|0),($543|0),15)|0);
+  $614 = tempRet0;
+  $615 = $613&255;
+  HEAP8[$$pre$phi278Z2D>>0] = $615;
+  $616 = (_bitshift64Lshr(($546|0),($543|0),7)|0);
+  $617 = tempRet0;
+  $618 = $616&255;
+  HEAP8[$$pre$phi279Z2D>>0] = $618;
+  $619 = $593&255;
+  HEAP8[$$pre$phi280Z2D>>0] = $619;
+  $620 = (_bitshift64Lshr(($555|0),($556|0),55)|0);
+  $621 = tempRet0;
+  $622 = $620&255;
+  HEAP8[$$pre$phi281Z2D>>0] = $622;
+  $623 = (_bitshift64Lshr(($561|0),($562|0),47)|0);
+  $624 = tempRet0;
+  $625 = $623&255;
+  HEAP8[$$pre$phi282Z2D>>0] = $625;
+  $626 = (_bitshift64Lshr(($561|0),($565|0),39)|0);
+  $627 = tempRet0;
+  $628 = $626&255;
+  HEAP8[$$pre$phi283Z2D>>0] = $628;
+  $629 = (_bitshift64Lshr(($570|0),($571|0),31)|0);
+  $630 = tempRet0;
+  $631 = $629&255;
+  HEAP8[$$pre$phi284Z2D>>0] = $631;
+  $632 = (_bitshift64Lshr(($576|0),($577|0),23)|0);
+  $633 = tempRet0;
+  $634 = $632&255;
+  HEAP8[$$pre$phi285Z2D>>0] = $634;
+  $635 = (_bitshift64Lshr(($582|0),($583|0),15)|0);
+  $636 = tempRet0;
+  $637 = $635&255;
+  HEAP8[$$pre$phi286Z2D>>0] = $637;
+  $638 = (_bitshift64Lshr(($586|0),($583|0),7)|0);
+  $639 = tempRet0;
+  $640 = $638&255;
+  HEAP8[$$pre$phi287Z2D>>0] = $640;
+  $641 = $597&255;
+  HEAP8[$$pre$phi288Z2D>>0] = $641;
+  $642 = (($$0121179) + 1)|0;
+  $exitcond = ($642|0)==(16);
+  if ($exitcond) {
+   break;
+  } else {
+   $$0121179 = $642;
+  }
+ }
+ $643 = (16 - ($2))|0;
+ _memset(($3|0),0,($643|0))|0;
+ $644 = (($3) + ($643)|0);
+ $645 = $644;
+ $646 = $1;
+ $647 = $645 | $646;
+ $648 = $647 & 3;
+ $649 = ($648|0)==(0);
+ $650 = ($2>>>0)>(3);
+ $or$cond$i = $650 & $649;
+ if ($or$cond$i) {
+  $651 = (($2) + -4)|0;
+  $652 = $651 & -4;
+  $653 = (($652) + 4)|0;
+  $scevgep$i143 = (($1) + ($653)|0);
+  $$02434$i146 = $1;$$02533$i147 = $644;$$035$i145 = $2;
+  while(1) {
+   $654 = ((($$02434$i146)) + 4|0);
+   $655 = HEAP32[$$02434$i146>>2]|0;
+   $656 = ((($$02533$i147)) + 4|0);
+   HEAP32[$$02533$i147>>2] = $655;
+   $657 = (($$035$i145) + -4)|0;
+   $658 = ($657>>>0)>(3);
+   if ($658) {
+    $$02434$i146 = $654;$$02533$i147 = $656;$$035$i145 = $657;
+   } else {
+    break;
+   }
+  }
+  $scevgep44$i144 = (($644) + ($653)|0);
+  $659 = (($651) - ($652))|0;
+  $$026$i = $scevgep$i143;$$028$i = $scevgep44$i144;$$1$i149 = $659;
+ } else {
+  $$026$i = $1;$$028$i = $644;$$1$i149 = $2;
+ }
+ $660 = ($$1$i149|0)==(0);
+ if (!($660)) {
+  $$12731$i = $$026$i;$$12930$i = $$028$i;$$232$i = $$1$i149;
+  while(1) {
+   $661 = ((($$12731$i)) + 1|0);
+   $662 = HEAP8[$$12731$i>>0]|0;
+   $663 = ((($$12930$i)) + 1|0);
+   HEAP8[$$12930$i>>0] = $662;
+   $664 = (($$232$i) + -1)|0;
+   $665 = ($664|0)==(0);
+   if ($665) {
+    break;
+   } else {
+    $$12731$i = $661;$$12930$i = $663;$$232$i = $664;
+   }
+  }
+ }
+ $666 = HEAP8[$10>>0]|0;
+ $667 = $666&255;
+ $668 = $667 << 4;
+ $669 = $668&255;
+ HEAP8[$3>>0] = $669;
+ $670 = (($643) + -1)|0;
+ $671 = (($3) + ($670)|0);
+ $672 = HEAP8[$671>>0]|0;
+ $673 = $672 | 1;
+ HEAP8[$671>>0] = $673;
+ $674 = ((($3)) + 15|0);
+ $675 = HEAP8[$674>>0]|0;
+ $676 = $675&255;
+ $677 = $676 & 192;
+ $678 = $677&255;
+ HEAP8[$674>>0] = $678;
+ $679 = HEAP32[$12>>2]|0;
+ $680 = ((($679)) + 36|0);
+ $681 = HEAP32[$680>>2]|0;
+ $682 = (FUNCTION_TABLE_iiii[$681 & 127]($22,$3,$3)|0);
+ $683 = ($682>>>0)>($23>>>0);
+ $684 = ((($3)) + 4|0);
+ $685 = HEAP32[$3>>2]|0;
+ $686 = ((($4)) + 4|0);
+ HEAP32[$4>>2] = $685;
+ $687 = ((($3)) + 8|0);
+ $688 = HEAP32[$684>>2]|0;
+ $689 = ((($4)) + 8|0);
+ HEAP32[$686>>2] = $688;
+ $690 = ((($3)) + 12|0);
+ $691 = HEAP32[$687>>2]|0;
+ $692 = ((($4)) + 12|0);
+ HEAP32[$689>>2] = $691;
+ $693 = HEAP32[$690>>2]|0;
+ HEAP32[$692>>2] = $693;
+ $694 = $683 ? $682 : $23;
+ $695 = ((($4)) + 16|0);
+ $696 = ((($3)) + 1|0);
+ $697 = $696;
+ $698 = $697 & 3;
+ $699 = ($698|0)==(0);
+ $700 = $688&255;
+ if ($699) {
+  $701 = ((($3)) + 5|0);
+  $702 = HEAP32[$696>>2]|0;
+  $703 = $702 ^ $685;
+  $704 = ((($4)) + 20|0);
+  HEAP32[$695>>2] = $703;
+  $705 = HEAP32[$701>>2]|0;
+  $706 = $705 ^ $688;
+  HEAP32[$704>>2] = $706;
+ } else {
+  $707 = $685&255;
+  $708 = ((($3)) + 2|0);
+  $709 = HEAP8[$696>>0]|0;
+  $710 = $709 ^ $707;
+  $711 = ((($4)) + 17|0);
+  HEAP8[$695>>0] = $710;
+  $712 = ((($3)) + 3|0);
+  $713 = HEAP8[$708>>0]|0;
+  $714 = $713 ^ $709;
+  $715 = ((($4)) + 18|0);
+  HEAP8[$711>>0] = $714;
+  $716 = HEAP8[$712>>0]|0;
+  $717 = $716 ^ $713;
+  $718 = ((($4)) + 19|0);
+  HEAP8[$715>>0] = $717;
+  $719 = ((($3)) + 5|0);
+  $720 = $716 ^ $700;
+  $721 = ((($4)) + 20|0);
+  HEAP8[$718>>0] = $720;
+  $722 = ((($3)) + 6|0);
+  $723 = HEAP8[$719>>0]|0;
+  $724 = $723 ^ $700;
+  $725 = ((($4)) + 21|0);
+  HEAP8[$721>>0] = $724;
+  $726 = ((($3)) + 7|0);
+  $727 = HEAP8[$722>>0]|0;
+  $728 = $727 ^ $723;
+  $729 = ((($4)) + 22|0);
+  HEAP8[$725>>0] = $728;
+  $730 = ((($3)) + 8|0);
+  $731 = HEAP8[$726>>0]|0;
+  $732 = $731 ^ $727;
+  $733 = ((($4)) + 23|0);
+  HEAP8[$729>>0] = $732;
+  $734 = HEAP8[$730>>0]|0;
+  $735 = $734 ^ $731;
+  HEAP8[$733>>0] = $735;
+ }
+ $736 = ((($0)) + 64|0);
+ $737 = $676 >>> 3;
+ $738 = $737 & 7;
+ $739 = (($4) + ($738)|0);
+ $740 = $676 & 7;
+ $741 = ($740|0)==(0);
+ if ($741) {
+  $869 = HEAP8[$739>>0]|0;
+  HEAP8[$736>>0] = $869;
+  $870 = ((($736)) + 1|0);
+  $871 = ((($739)) + 1|0);
+  $872 = HEAP8[$871>>0]|0;
+  HEAP8[$870>>0] = $872;
+  $873 = ((($736)) + 2|0);
+  $874 = ((($739)) + 2|0);
+  $875 = HEAP8[$874>>0]|0;
+  HEAP8[$873>>0] = $875;
+  $876 = ((($736)) + 3|0);
+  $877 = ((($739)) + 3|0);
+  $878 = HEAP8[$877>>0]|0;
+  HEAP8[$876>>0] = $878;
+  $879 = ((($736)) + 4|0);
+  $880 = ((($739)) + 4|0);
+  $881 = HEAP8[$880>>0]|0;
+  HEAP8[$879>>0] = $881;
+  $882 = ((($736)) + 5|0);
+  $883 = ((($739)) + 5|0);
+  $884 = HEAP8[$883>>0]|0;
+  HEAP8[$882>>0] = $884;
+  $885 = ((($736)) + 6|0);
+  $886 = ((($739)) + 6|0);
+  $887 = HEAP8[$886>>0]|0;
+  HEAP8[$885>>0] = $887;
+  $888 = ((($736)) + 7|0);
+  $889 = ((($739)) + 7|0);
+  $890 = HEAP8[$889>>0]|0;
+  HEAP8[$888>>0] = $890;
+  $891 = ((($0)) + 72|0);
+  $892 = ((($739)) + 8|0);
+  $893 = HEAP8[$892>>0]|0;
+  HEAP8[$891>>0] = $893;
+  $894 = ((($0)) + 73|0);
+  $895 = ((($739)) + 9|0);
+  $896 = HEAP8[$895>>0]|0;
+  HEAP8[$894>>0] = $896;
+  $897 = ((($0)) + 74|0);
+  $898 = ((($739)) + 10|0);
+  $899 = HEAP8[$898>>0]|0;
+  HEAP8[$897>>0] = $899;
+  $900 = ((($0)) + 75|0);
+  $901 = ((($739)) + 11|0);
+  $902 = HEAP8[$901>>0]|0;
+  HEAP8[$900>>0] = $902;
+  $903 = ((($0)) + 76|0);
+  $904 = ((($739)) + 12|0);
+  $905 = HEAP8[$904>>0]|0;
+  HEAP8[$903>>0] = $905;
+  $906 = ((($739)) + 13|0);
+  $907 = HEAP8[$906>>0]|0;
+  $908 = ((($739)) + 14|0);
+  $909 = HEAP8[$908>>0]|0;
+  $910 = ((($739)) + 15|0);
+  $911 = HEAP8[$910>>0]|0;
+  $$sink = $911;$$sink191 = $909;$$sink192 = $907;
+ } else {
+  $742 = (8 - ($740))|0;
+  $743 = HEAP8[$739>>0]|0;
+  $744 = $743&255;
+  $745 = $744 << $740;
+  $746 = ((($739)) + 1|0);
+  $747 = HEAP8[$746>>0]|0;
+  $748 = $747&255;
+  $749 = $748 >>> $742;
+  $750 = $749 | $745;
+  $751 = $750&255;
+  HEAP8[$736>>0] = $751;
+  $752 = ((($736)) + 1|0);
+  $753 = $748 << $740;
+  $754 = ((($739)) + 2|0);
+  $755 = HEAP8[$754>>0]|0;
+  $756 = $755&255;
+  $757 = $756 >>> $742;
+  $758 = $757 | $753;
+  $759 = $758&255;
+  HEAP8[$752>>0] = $759;
+  $760 = ((($736)) + 2|0);
+  $761 = $756 << $740;
+  $762 = ((($739)) + 3|0);
+  $763 = HEAP8[$762>>0]|0;
+  $764 = $763&255;
+  $765 = $764 >>> $742;
+  $766 = $765 | $761;
+  $767 = $766&255;
+  HEAP8[$760>>0] = $767;
+  $768 = ((($736)) + 3|0);
+  $769 = $764 << $740;
+  $770 = ((($739)) + 4|0);
+  $771 = HEAP8[$770>>0]|0;
+  $772 = $771&255;
+  $773 = $772 >>> $742;
+  $774 = $773 | $769;
+  $775 = $774&255;
+  HEAP8[$768>>0] = $775;
+  $776 = ((($736)) + 4|0);
+  $777 = $772 << $740;
+  $778 = ((($739)) + 5|0);
+  $779 = HEAP8[$778>>0]|0;
+  $780 = $779&255;
+  $781 = $780 >>> $742;
+  $782 = $781 | $777;
+  $783 = $782&255;
+  HEAP8[$776>>0] = $783;
+  $784 = ((($736)) + 5|0);
+  $785 = $780 << $740;
+  $786 = ((($739)) + 6|0);
+  $787 = HEAP8[$786>>0]|0;
+  $788 = $787&255;
+  $789 = $788 >>> $742;
+  $790 = $789 | $785;
+  $791 = $790&255;
+  HEAP8[$784>>0] = $791;
+  $792 = ((($736)) + 6|0);
+  $793 = $788 << $740;
+  $794 = ((($739)) + 7|0);
+  $795 = HEAP8[$794>>0]|0;
+  $796 = $795&255;
+  $797 = $796 >>> $742;
+  $798 = $797 | $793;
+  $799 = $798&255;
+  HEAP8[$792>>0] = $799;
+  $800 = ((($736)) + 7|0);
+  $801 = $796 << $740;
+  $802 = ((($739)) + 8|0);
+  $803 = HEAP8[$802>>0]|0;
+  $804 = $803&255;
+  $805 = $804 >>> $742;
+  $806 = $805 | $801;
+  $807 = $806&255;
+  HEAP8[$800>>0] = $807;
+  $808 = ((($0)) + 72|0);
+  $809 = $804 << $740;
+  $810 = ((($739)) + 9|0);
+  $811 = HEAP8[$810>>0]|0;
+  $812 = $811&255;
+  $813 = $812 >>> $742;
+  $814 = $813 | $809;
+  $815 = $814&255;
+  HEAP8[$808>>0] = $815;
+  $816 = ((($0)) + 73|0);
+  $817 = $812 << $740;
+  $818 = ((($739)) + 10|0);
+  $819 = HEAP8[$818>>0]|0;
+  $820 = $819&255;
+  $821 = $820 >>> $742;
+  $822 = $821 | $817;
+  $823 = $822&255;
+  HEAP8[$816>>0] = $823;
+  $824 = ((($0)) + 74|0);
+  $825 = $820 << $740;
+  $826 = ((($739)) + 11|0);
+  $827 = HEAP8[$826>>0]|0;
+  $828 = $827&255;
+  $829 = $828 >>> $742;
+  $830 = $829 | $825;
+  $831 = $830&255;
+  HEAP8[$824>>0] = $831;
+  $832 = ((($0)) + 75|0);
+  $833 = $828 << $740;
+  $834 = ((($739)) + 12|0);
+  $835 = HEAP8[$834>>0]|0;
+  $836 = $835&255;
+  $837 = $836 >>> $742;
+  $838 = $837 | $833;
+  $839 = $838&255;
+  HEAP8[$832>>0] = $839;
+  $840 = ((($0)) + 76|0);
+  $841 = $836 << $740;
+  $842 = ((($739)) + 13|0);
+  $843 = HEAP8[$842>>0]|0;
+  $844 = $843&255;
+  $845 = $844 >>> $742;
+  $846 = $845 | $841;
+  $847 = $846&255;
+  HEAP8[$840>>0] = $847;
+  $848 = $844 << $740;
+  $849 = ((($739)) + 14|0);
+  $850 = HEAP8[$849>>0]|0;
+  $851 = $850&255;
+  $852 = $851 >>> $742;
+  $853 = $852 | $848;
+  $854 = $853&255;
+  $855 = $851 << $740;
+  $856 = ((($739)) + 15|0);
+  $857 = HEAP8[$856>>0]|0;
+  $858 = $857&255;
+  $859 = $858 >>> $742;
+  $860 = $859 | $855;
+  $861 = $860&255;
+  $862 = $858 << $740;
+  $863 = ((($739)) + 16|0);
+  $864 = HEAP8[$863>>0]|0;
+  $865 = $864&255;
+  $866 = $865 >>> $742;
+  $867 = $866 | $862;
+  $868 = $867&255;
+  $$sink = $868;$$sink191 = $861;$$sink192 = $854;
+ }
+ $912 = ((($0)) + 77|0);
+ HEAP8[$912>>0] = $$sink192;
+ $913 = ((($0)) + 78|0);
+ HEAP8[$913>>0] = $$sink191;
+ $914 = ((($0)) + 79|0);
+ HEAP8[$914>>0] = $$sink;
+ $915 = HEAP8[$5>>0]|0;
+ $916 = ((($0)) + 80|0);
+ $917 = ((($0)) + 432|0);
+ $918 = $915 & -15;
+ $919 = $918 | 2;
+ dest=$916; stop=dest+36|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ 
;HEAP32[$917>>2]=0|0;HEAP32[$917+4>>2]=0|0;HEAP32[$917+8>>2]=0|0;HEAP32[$917+12>>2]=0|0;HEAP32[$917+16>>2]=0|0;HEAP32[$917+20>>2]=0|0;HEAP32[$917+24>>2]=0|0;HEAP32[$917+28>>2]=0|0;
+ HEAP8[$5>>0] = $919;
+ $920 = ((($0)) + 464|0);
+ $921 = ((($9)) + 353|0);
+ 
;HEAP32[$920>>2]=0|0;HEAP32[$920+4>>2]=0|0;HEAP32[$920+8>>2]=0|0;HEAP32[$920+12>>2]=0|0;
+ $922 = HEAP8[$921>>0]|0;
+ $923 = $922 & -4;
+ HEAP8[$921>>0] = $923;
+ $924 = $3;
+ $925 = $924;
+ HEAP32[$925>>2] = 0;
+ $926 = (($924) + 4)|0;
+ $927 = $926;
+ HEAP32[$927>>2] = 0;
+ $928 = ((($3)) + 8|0);
+ $929 = $928;
+ $930 = $929;
+ HEAP32[$930>>2] = 0;
+ $931 = (($929) + 4)|0;
+ $932 = $931;
+ HEAP32[$932>>2] = 0;
+ $933 = $4;
+ $934 = $933;
+ HEAP32[$934>>2] = 0;
+ $935 = (($933) + 4)|0;
+ $936 = $935;
+ HEAP32[$936>>2] = 0;
+ $937 = ((($4)) + 8|0);
+ $938 = $937;
+ $939 = $938;
+ HEAP32[$939>>2] = 0;
+ $940 = (($938) + 4)|0;
+ $941 = $940;
+ HEAP32[$941>>2] = 0;
+ $942 = ((($4)) + 16|0);
+ $943 = $942;
+ $944 = $943;
+ HEAP32[$944>>2] = 0;
+ $945 = (($943) + 4)|0;
+ $946 = $945;
+ HEAP32[$946>>2] = 0;
+ $947 = ($694|0)==(0);
+ if ($947) {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $948 = (($694) + 16)|0;
+ ___gcry_burn_stack($948);
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_cipher_ocb_encrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = (_ocb_crypt($0,1,$1,$2,$3,$4)|0);
+ return ($5|0);
+}
+function _ocb_crypt($0,$1,$2,$3,$4,$5) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ var $$0 = 0, $$0108$lcssa = 0, $$0108251 = 0, $$02434$i = 0, $$02434$i161 = 
0, $$02434$i221 = 0, $$02533$i = 0, $$02533$i162 = 0, $$02533$i222 = 0, $$026$i 
= 0, $$028$i = 0, $$03449$i195 = 0, $$035$i = 0, $$035$i160 = 0, $$035$i220 = 
0, $$03548$i196 = 0, $$03647$i197 = 0, $$037$i201 = 0, $$039$i200 = 0, 
$$041$i199 = 0;
+ var $$050$i194 = 0, $$1 = 0, $$1$i153 = 0, $$1$i202 = 0, $$1110$lcssa = 0, 
$$1110250 = 0, $$1113$lcssa = 0, $$1113249 = 0, $$1116$lcssa = 0, $$1116248 = 
0, $$12731$i = 0, $$12731$i170 = 0, $$12731$i170$ph = 0, $$12731$i230 = 0, 
$$12731$i230$ph = 0, $$12930$i = 0, $$12930$i171 = 0, $$12930$i171$ph = 0, 
$$12930$i231 = 0, $$12930$i231$ph = 0;
+ var $$13845$i206 = 0, $$14044$i207 = 0, $$14243$i208 = 0, $$2 = 0, $$2111 = 
0, $$2114 = 0, $$2117 = 0, $$232$i = 0, $$232$i169 = 0, $$232$i169$ph = 0, 
$$232$i229 = 0, $$232$i229$ph = 0, $$246$i205 = 0, $$3 = 0, $$in = 0, 
$$phi$trans$insert273 = 0, $$pre = 0, $$pre275 = 0, $10 = 0, $100 = 0;
+ var $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 
0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, 
$1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0;
+ var $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 
0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, 
$1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0;
+ var $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 
0, $1043 = 0, $1044 = 0, $1045 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, 
$109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0;
+ var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 
= 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 
= 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0;
+ var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, 
$139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, 
$146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0;
+ var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, 
$157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, 
$164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0;
+ var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 
= 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 
= 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0;
+ var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 
= 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 
= 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0;
+ var $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 
= 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 
= 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0;
+ var $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 
= 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 
= 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0;
+ var $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, 
$248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, 
$255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0;
+ var $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;
+ var $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 
= 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 
= 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0;
+ var $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 
= 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 
= 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
+ var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 
= 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 
= 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
+ var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, 
$339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, 
$346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
+ var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, 
$357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, 
$364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
+ var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 
= 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 
= 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0;
+ var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 
= 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $40 = 0, $400 
= 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0;
+ var $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 
= 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 
= 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0;
+ var $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 
= 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 
= 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0;
+ var $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, 
$448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, 
$455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0;
+ var $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 
= 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 
= 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0;
+ var $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 
= 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 
= 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0;
+ var $496 = 0, $497 = 0, $498 = 0, $499 = 0, $50 = 0, $500 = 0, $501 = 0, $502 
= 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 
= 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0;
+ var $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 
= 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 
= 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, 
$629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, 
$636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0;
+ var $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, 
$647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, 
$654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0;
+ var $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 
= 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 
= 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0;
+ var $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 
= 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 
= 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0;
+ var $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 
0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 
0, $709 = 0, $71 = 0, $710 = 0, $711 = 0;
+ var $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, 
$719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, 
$726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0;
+ var $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, 
$737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, 
$744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0;
+ var $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 
= 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 
= 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0;
+ var $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 
= 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 
= 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0;
+ var $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 
= 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 
= 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0;
+ var $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, 
$809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, 
$816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0;
+ var $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, 
$827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, 
$834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0;
+ var $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 
= 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 
= 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0;
+ var $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 
= 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 
= 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0;
+ var $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 
= 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 
= 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0;
+ var $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 
= 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 
= 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0;
+ var $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, 
$917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, 
$924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0;
+ var $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 
= 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 
= 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0;
+ var $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 
= 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 
= 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0;
+ var $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 
= 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 
= 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0;
+ var $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 
= 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 
= 0, $998 = 0, $999 = 0, $or$cond = 0, $or$cond$i = 0;
+ var $or$cond$i156 = 0, $or$cond$i189 = 0, $or$cond$i216 = 0, $scevgep = 0, 
$scevgep$i152 = 0, $scevgep$i157 = 0, $scevgep$i190 = 0, $scevgep$i217 = 0, 
$scevgep272 = 0, $scevgep44$i = 0, $scevgep44$i158 = 0, $scevgep44$i218 = 0, 
$scevgep61$i191 = 0, $scevgep63$i192 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $6 = sp + 16|0;
+ $7 = sp;
+ $8 = $5 >>> 4;
+ $9 = ((($0)) + 56|0);
+ $10 = HEAP8[$9>>0]|0;
+ $11 = $10 & 2;
+ $12 = ($11<<24>>24)==(0);
+ if ($12) {
+  $$0 = 156;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $13 = ((($0)) + 128|0);
+ $14 = ((($13)) + 353|0);
+ $15 = HEAP8[$14>>0]|0;
+ $16 = $15 & 1;
+ $17 = ($16<<24>>24)==(0);
+ if (!($17)) {
+  $$0 = 156;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $18 = ((($0)) + 12|0);
+ $19 = HEAP32[$18>>2]|0;
+ $20 = ((($19)) + 20|0);
+ $21 = HEAP32[$20>>2]|0;
+ $22 = ($21|0)==(16);
+ if (!($22)) {
+  $$0 = 12;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $23 = ($3>>>0)<($5>>>0);
+ if ($23) {
+  $$0 = 200;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $24 = $10 & 8;
+ $25 = ($24<<24>>24)!=(0);
+ $26 = $5 & 15;
+ $27 = ($26|0)==(0);
+ $or$cond = $27 | $25;
+ if (!($or$cond)) {
+  $$0 = 139;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $28 = ($8|0)==(0);
+ do {
+  if ($28) {
+   $$1 = 0;$$2111 = $5;$$2114 = $4;$$2117 = $2;
+  } else {
+   $29 = ((($0)) + 40|0);
+   $30 = HEAP32[$29>>2]|0;
+   $31 = ($30|0)==(0|0);
+   $32 = $5 & -16;
+   if (!($31)) {
+    $33 = (($5) - ($32))|0;
+    $34 = (($2) + ($32)|0);
+    $35 = (($4) + ($32)|0);
+    FUNCTION_TABLE_viiiii[$30 & 127]($0,$2,$4,$8,$1);
+    $$1 = 0;$$2111 = $33;$$2114 = $35;$$2117 = $34;
+    break;
+   }
+   $36 = ($1|0)!=(0);
+   $37 = ((($19)) + 36|0);
+   $38 = ((($19)) + 40|0);
+   $$in = $36 ? $37 : $38;
+   $39 = HEAP32[$$in>>2]|0;
+   if ($36) {
+    $40 = ((($0)) + 80|0);
+    _ocb_checksum($40,$4,$8);
+   }
+   $41 = ($5>>>0)>(15);
+   if ($41) {
+    $42 = ((($0)) + 464|0);
+    $43 = ((($0)) + 64|0);
+    $44 = $43;
+    $45 = ((($43)) + 4|0);
+    $46 = ((($0)) + 72|0);
+    $47 = ((($0)) + 76|0);
+    $48 = ((($0)) + 496|0);
+    $49 = (($5) + -16)|0;
+    $50 = $49 & -16;
+    $51 = (($50) + 16)|0;
+    $52 = (($49) - ($50))|0;
+    $53 = ((($43)) + 1|0);
+    $54 = ((($43)) + 2|0);
+    $55 = ((($43)) + 3|0);
+    $56 = ((($43)) + 4|0);
+    $57 = ((($43)) + 5|0);
+    $58 = ((($43)) + 6|0);
+    $59 = ((($43)) + 7|0);
+    $60 = ((($0)) + 72|0);
+    $61 = ((($0)) + 73|0);
+    $62 = ((($0)) + 74|0);
+    $63 = ((($0)) + 75|0);
+    $64 = ((($0)) + 76|0);
+    $65 = ((($0)) + 77|0);
+    $66 = ((($0)) + 78|0);
+    $67 = ((($0)) + 79|0);
+    $68 = ((($0)) + 72|0);
+    $69 = ((($43)) + 4|0);
+    $70 = ((($0)) + 76|0);
+    $71 = ((($43)) + 1|0);
+    $72 = ((($43)) + 2|0);
+    $73 = ((($43)) + 3|0);
+    $74 = ((($43)) + 4|0);
+    $75 = ((($43)) + 5|0);
+    $76 = ((($43)) + 6|0);
+    $77 = ((($43)) + 7|0);
+    $78 = ((($0)) + 72|0);
+    $79 = ((($0)) + 73|0);
+    $80 = ((($0)) + 74|0);
+    $81 = ((($0)) + 75|0);
+    $82 = ((($0)) + 76|0);
+    $83 = ((($0)) + 77|0);
+    $84 = ((($0)) + 78|0);
+    $85 = ((($0)) + 79|0);
+    $86 = ((($43)) + 1|0);
+    $87 = ((($43)) + 2|0);
+    $88 = ((($43)) + 3|0);
+    $89 = ((($43)) + 4|0);
+    $90 = ((($43)) + 5|0);
+    $91 = ((($43)) + 6|0);
+    $92 = ((($43)) + 7|0);
+    $93 = ((($0)) + 72|0);
+    $94 = ((($0)) + 73|0);
+    $95 = ((($0)) + 74|0);
+    $96 = ((($0)) + 75|0);
+    $97 = ((($0)) + 76|0);
+    $98 = ((($0)) + 77|0);
+    $99 = ((($0)) + 78|0);
+    $100 = ((($0)) + 79|0);
+    $$0108251 = 0;$$1110250 = $5;$$1113249 = $4;$$1116248 = $2;
+    while(1) {
+     $101 = $42;
+     $102 = $101;
+     $103 = HEAP32[$102>>2]|0;
+     $104 = (($101) + 4)|0;
+     $105 = $104;
+     $106 = HEAP32[$105>>2]|0;
+     $107 = (_i64Add(($103|0),($106|0),1,0)|0);
+     $108 = tempRet0;
+     $109 = $42;
+     $110 = $109;
+     HEAP32[$110>>2] = $107;
+     $111 = (($109) + 4)|0;
+     $112 = $111;
+     HEAP32[$112>>2] = $108;
+     $113 = (__gcry_cipher_ocb_get_l($0,$6,$107,$108)|0);
+     $114 = $113;
+     $115 = $114 | $44;
+     $116 = $115 & 3;
+     $117 = ($116|0)==(0);
+     if ($117) {
+      $118 = ((($113)) + 4|0);
+      $119 = HEAP32[$113>>2]|0;
+      $120 = HEAP32[$43>>2]|0;
+      $121 = $120 ^ $119;
+      HEAP32[$43>>2] = $121;
+      $122 = ((($113)) + 8|0);
+      $123 = HEAP32[$118>>2]|0;
+      $124 = HEAP32[$45>>2]|0;
+      $125 = $124 ^ $123;
+      HEAP32[$45>>2] = $125;
+      $126 = ((($113)) + 12|0);
+      $127 = HEAP32[$122>>2]|0;
+      $128 = HEAP32[$46>>2]|0;
+      $129 = $128 ^ $127;
+      HEAP32[$46>>2] = $129;
+      $130 = HEAP32[$126>>2]|0;
+      $131 = HEAP32[$47>>2]|0;
+      $132 = $131 ^ $130;
+      HEAP32[$47>>2] = $132;
+     } else {
+      $133 = ((($113)) + 1|0);
+      $134 = HEAP8[$113>>0]|0;
+      $135 = HEAP8[$43>>0]|0;
+      $136 = $135 ^ $134;
+      HEAP8[$43>>0] = $136;
+      $137 = ((($113)) + 2|0);
+      $138 = HEAP8[$133>>0]|0;
+      $139 = HEAP8[$53>>0]|0;
+      $140 = $139 ^ $138;
+      HEAP8[$53>>0] = $140;
+      $141 = ((($113)) + 3|0);
+      $142 = HEAP8[$137>>0]|0;
+      $143 = HEAP8[$54>>0]|0;
+      $144 = $143 ^ $142;
+      HEAP8[$54>>0] = $144;
+      $145 = ((($113)) + 4|0);
+      $146 = HEAP8[$141>>0]|0;
+      $147 = HEAP8[$55>>0]|0;
+      $148 = $147 ^ $146;
+      HEAP8[$55>>0] = $148;
+      $149 = ((($113)) + 5|0);
+      $150 = HEAP8[$145>>0]|0;
+      $151 = HEAP8[$56>>0]|0;
+      $152 = $151 ^ $150;
+      HEAP8[$56>>0] = $152;
+      $153 = ((($113)) + 6|0);
+      $154 = HEAP8[$149>>0]|0;
+      $155 = HEAP8[$57>>0]|0;
+      $156 = $155 ^ $154;
+      HEAP8[$57>>0] = $156;
+      $157 = ((($113)) + 7|0);
+      $158 = HEAP8[$153>>0]|0;
+      $159 = HEAP8[$58>>0]|0;
+      $160 = $159 ^ $158;
+      HEAP8[$58>>0] = $160;
+      $161 = ((($113)) + 8|0);
+      $162 = HEAP8[$157>>0]|0;
+      $163 = HEAP8[$59>>0]|0;
+      $164 = $163 ^ $162;
+      HEAP8[$59>>0] = $164;
+      $165 = ((($113)) + 9|0);
+      $166 = HEAP8[$161>>0]|0;
+      $167 = HEAP8[$60>>0]|0;
+      $168 = $167 ^ $166;
+      HEAP8[$60>>0] = $168;
+      $169 = ((($113)) + 10|0);
+      $170 = HEAP8[$165>>0]|0;
+      $171 = HEAP8[$61>>0]|0;
+      $172 = $171 ^ $170;
+      HEAP8[$61>>0] = $172;
+      $173 = ((($113)) + 11|0);
+      $174 = HEAP8[$169>>0]|0;
+      $175 = HEAP8[$62>>0]|0;
+      $176 = $175 ^ $174;
+      HEAP8[$62>>0] = $176;
+      $177 = ((($113)) + 12|0);
+      $178 = HEAP8[$173>>0]|0;
+      $179 = HEAP8[$63>>0]|0;
+      $180 = $179 ^ $178;
+      HEAP8[$63>>0] = $180;
+      $181 = ((($113)) + 13|0);
+      $182 = HEAP8[$177>>0]|0;
+      $183 = HEAP8[$64>>0]|0;
+      $184 = $183 ^ $182;
+      HEAP8[$64>>0] = $184;
+      $185 = ((($113)) + 14|0);
+      $186 = HEAP8[$181>>0]|0;
+      $187 = HEAP8[$65>>0]|0;
+      $188 = $187 ^ $186;
+      HEAP8[$65>>0] = $188;
+      $189 = ((($113)) + 15|0);
+      $190 = HEAP8[$185>>0]|0;
+      $191 = HEAP8[$66>>0]|0;
+      $192 = $191 ^ $190;
+      HEAP8[$66>>0] = $192;
+      $193 = HEAP8[$189>>0]|0;
+      $194 = HEAP8[$67>>0]|0;
+      $195 = $194 ^ $193;
+      HEAP8[$67>>0] = $195;
+     }
+     $196 = $$1116248;
+     $197 = $196 | $44;
+     $198 = $$1113249;
+     $199 = $197 | $198;
+     $200 = $199 & 3;
+     $201 = ($200|0)==(0);
+     if ($201) {
+      $202 = HEAP32[$43>>2]|0;
+      $203 = ((($$1113249)) + 4|0);
+      $204 = HEAP32[$$1113249>>2]|0;
+      $205 = $204 ^ $202;
+      $206 = ((($$1116248)) + 4|0);
+      HEAP32[$$1116248>>2] = $205;
+      $207 = HEAP32[$69>>2]|0;
+      $208 = ((($$1113249)) + 8|0);
+      $209 = HEAP32[$203>>2]|0;
+      $210 = $209 ^ $207;
+      $211 = ((($$1116248)) + 8|0);
+      HEAP32[$206>>2] = $210;
+      $212 = HEAP32[$68>>2]|0;
+      $213 = ((($$1113249)) + 12|0);
+      $214 = HEAP32[$208>>2]|0;
+      $215 = $214 ^ $212;
+      $216 = ((($$1116248)) + 12|0);
+      HEAP32[$211>>2] = $215;
+      $217 = HEAP32[$70>>2]|0;
+      $218 = HEAP32[$213>>2]|0;
+      $219 = $218 ^ $217;
+      HEAP32[$216>>2] = $219;
+     } else {
+      $220 = HEAP8[$43>>0]|0;
+      $221 = ((($$1113249)) + 1|0);
+      $222 = HEAP8[$$1113249>>0]|0;
+      $223 = $222 ^ $220;
+      $224 = ((($$1116248)) + 1|0);
+      HEAP8[$$1116248>>0] = $223;
+      $225 = HEAP8[$71>>0]|0;
+      $226 = ((($$1113249)) + 2|0);
+      $227 = HEAP8[$221>>0]|0;
+      $228 = $227 ^ $225;
+      $229 = ((($$1116248)) + 2|0);
+      HEAP8[$224>>0] = $228;
+      $230 = HEAP8[$72>>0]|0;
+      $231 = ((($$1113249)) + 3|0);
+      $232 = HEAP8[$226>>0]|0;
+      $233 = $232 ^ $230;
+      $234 = ((($$1116248)) + 3|0);
+      HEAP8[$229>>0] = $233;
+      $235 = HEAP8[$73>>0]|0;
+      $236 = ((($$1113249)) + 4|0);
+      $237 = HEAP8[$231>>0]|0;
+      $238 = $237 ^ $235;
+      $239 = ((($$1116248)) + 4|0);
+      HEAP8[$234>>0] = $238;
+      $240 = HEAP8[$74>>0]|0;
+      $241 = ((($$1113249)) + 5|0);
+      $242 = HEAP8[$236>>0]|0;
+      $243 = $242 ^ $240;
+      $244 = ((($$1116248)) + 5|0);
+      HEAP8[$239>>0] = $243;
+      $245 = HEAP8[$75>>0]|0;
+      $246 = ((($$1113249)) + 6|0);
+      $247 = HEAP8[$241>>0]|0;
+      $248 = $247 ^ $245;
+      $249 = ((($$1116248)) + 6|0);
+      HEAP8[$244>>0] = $248;
+      $250 = HEAP8[$76>>0]|0;
+      $251 = ((($$1113249)) + 7|0);
+      $252 = HEAP8[$246>>0]|0;
+      $253 = $252 ^ $250;
+      $254 = ((($$1116248)) + 7|0);
+      HEAP8[$249>>0] = $253;
+      $255 = HEAP8[$77>>0]|0;
+      $256 = ((($$1113249)) + 8|0);
+      $257 = HEAP8[$251>>0]|0;
+      $258 = $257 ^ $255;
+      $259 = ((($$1116248)) + 8|0);
+      HEAP8[$254>>0] = $258;
+      $260 = HEAP8[$78>>0]|0;
+      $261 = ((($$1113249)) + 9|0);
+      $262 = HEAP8[$256>>0]|0;
+      $263 = $262 ^ $260;
+      $264 = ((($$1116248)) + 9|0);
+      HEAP8[$259>>0] = $263;
+      $265 = HEAP8[$79>>0]|0;
+      $266 = ((($$1113249)) + 10|0);
+      $267 = HEAP8[$261>>0]|0;
+      $268 = $267 ^ $265;
+      $269 = ((($$1116248)) + 10|0);
+      HEAP8[$264>>0] = $268;
+      $270 = HEAP8[$80>>0]|0;
+      $271 = ((($$1113249)) + 11|0);
+      $272 = HEAP8[$266>>0]|0;
+      $273 = $272 ^ $270;
+      $274 = ((($$1116248)) + 11|0);
+      HEAP8[$269>>0] = $273;
+      $275 = HEAP8[$81>>0]|0;
+      $276 = ((($$1113249)) + 12|0);
+      $277 = HEAP8[$271>>0]|0;
+      $278 = $277 ^ $275;
+      $279 = ((($$1116248)) + 12|0);
+      HEAP8[$274>>0] = $278;
+      $280 = HEAP8[$82>>0]|0;
+      $281 = ((($$1113249)) + 13|0);
+      $282 = HEAP8[$276>>0]|0;
+      $283 = $282 ^ $280;
+      $284 = ((($$1116248)) + 13|0);
+      HEAP8[$279>>0] = $283;
+      $285 = HEAP8[$83>>0]|0;
+      $286 = ((($$1113249)) + 14|0);
+      $287 = HEAP8[$281>>0]|0;
+      $288 = $287 ^ $285;
+      $289 = ((($$1116248)) + 14|0);
+      HEAP8[$284>>0] = $288;
+      $290 = HEAP8[$84>>0]|0;
+      $291 = ((($$1113249)) + 15|0);
+      $292 = HEAP8[$286>>0]|0;
+      $293 = $292 ^ $290;
+      $294 = ((($$1116248)) + 15|0);
+      HEAP8[$289>>0] = $293;
+      $295 = HEAP8[$85>>0]|0;
+      $296 = HEAP8[$291>>0]|0;
+      $297 = $296 ^ $295;
+      HEAP8[$294>>0] = $297;
+     }
+     $298 = (FUNCTION_TABLE_iiii[$39 & 127]($48,$$1116248,$$1116248)|0);
+     $299 = ($298>>>0)>($$0108251>>>0);
+     $300 = $299 ? $298 : $$0108251;
+     $301 = $197 & 3;
+     $302 = ($301|0)==(0);
+     if ($302) {
+      $303 = HEAP32[$43>>2]|0;
+      $304 = ((($$1116248)) + 4|0);
+      $305 = HEAP32[$$1116248>>2]|0;
+      $306 = $305 ^ $303;
+      HEAP32[$$1116248>>2] = $306;
+      $307 = HEAP32[$45>>2]|0;
+      $308 = ((($$1116248)) + 8|0);
+      $309 = HEAP32[$304>>2]|0;
+      $310 = $309 ^ $307;
+      HEAP32[$304>>2] = $310;
+      $311 = HEAP32[$46>>2]|0;
+      $312 = ((($$1116248)) + 12|0);
+      $313 = HEAP32[$308>>2]|0;
+      $314 = $313 ^ $311;
+      HEAP32[$308>>2] = $314;
+      $315 = HEAP32[$47>>2]|0;
+      $316 = HEAP32[$312>>2]|0;
+      $317 = $316 ^ $315;
+      HEAP32[$312>>2] = $317;
+     } else {
+      $318 = HEAP8[$43>>0]|0;
+      $319 = ((($$1116248)) + 1|0);
+      $320 = HEAP8[$$1116248>>0]|0;
+      $321 = $320 ^ $318;
+      HEAP8[$$1116248>>0] = $321;
+      $322 = HEAP8[$86>>0]|0;
+      $323 = ((($$1116248)) + 2|0);
+      $324 = HEAP8[$319>>0]|0;
+      $325 = $324 ^ $322;
+      HEAP8[$319>>0] = $325;
+      $326 = HEAP8[$87>>0]|0;
+      $327 = ((($$1116248)) + 3|0);
+      $328 = HEAP8[$323>>0]|0;
+      $329 = $328 ^ $326;
+      HEAP8[$323>>0] = $329;
+      $330 = HEAP8[$88>>0]|0;
+      $331 = ((($$1116248)) + 4|0);
+      $332 = HEAP8[$327>>0]|0;
+      $333 = $332 ^ $330;
+      HEAP8[$327>>0] = $333;
+      $334 = HEAP8[$89>>0]|0;
+      $335 = ((($$1116248)) + 5|0);
+      $336 = HEAP8[$331>>0]|0;
+      $337 = $336 ^ $334;
+      HEAP8[$331>>0] = $337;
+      $338 = HEAP8[$90>>0]|0;
+      $339 = ((($$1116248)) + 6|0);
+      $340 = HEAP8[$335>>0]|0;
+      $341 = $340 ^ $338;
+      HEAP8[$335>>0] = $341;
+      $342 = HEAP8[$91>>0]|0;
+      $343 = ((($$1116248)) + 7|0);
+      $344 = HEAP8[$339>>0]|0;
+      $345 = $344 ^ $342;
+      HEAP8[$339>>0] = $345;
+      $346 = HEAP8[$92>>0]|0;
+      $347 = ((($$1116248)) + 8|0);
+      $348 = HEAP8[$343>>0]|0;
+      $349 = $348 ^ $346;
+      HEAP8[$343>>0] = $349;
+      $350 = HEAP8[$93>>0]|0;
+      $351 = ((($$1116248)) + 9|0);
+      $352 = HEAP8[$347>>0]|0;
+      $353 = $352 ^ $350;
+      HEAP8[$347>>0] = $353;
+      $354 = HEAP8[$94>>0]|0;
+      $355 = ((($$1116248)) + 10|0);
+      $356 = HEAP8[$351>>0]|0;
+      $357 = $356 ^ $354;
+      HEAP8[$351>>0] = $357;
+      $358 = HEAP8[$95>>0]|0;
+      $359 = ((($$1116248)) + 11|0);
+      $360 = HEAP8[$355>>0]|0;
+      $361 = $360 ^ $358;
+      HEAP8[$355>>0] = $361;
+      $362 = HEAP8[$96>>0]|0;
+      $363 = ((($$1116248)) + 12|0);
+      $364 = HEAP8[$359>>0]|0;
+      $365 = $364 ^ $362;
+      HEAP8[$359>>0] = $365;
+      $366 = HEAP8[$97>>0]|0;
+      $367 = ((($$1116248)) + 13|0);
+      $368 = HEAP8[$363>>0]|0;
+      $369 = $368 ^ $366;
+      HEAP8[$363>>0] = $369;
+      $370 = HEAP8[$98>>0]|0;
+      $371 = ((($$1116248)) + 14|0);
+      $372 = HEAP8[$367>>0]|0;
+      $373 = $372 ^ $370;
+      HEAP8[$367>>0] = $373;
+      $374 = HEAP8[$99>>0]|0;
+      $375 = ((($$1116248)) + 15|0);
+      $376 = HEAP8[$371>>0]|0;
+      $377 = $376 ^ $374;
+      HEAP8[$371>>0] = $377;
+      $378 = HEAP8[$100>>0]|0;
+      $379 = HEAP8[$375>>0]|0;
+      $380 = $379 ^ $378;
+      HEAP8[$375>>0] = $380;
+     }
+     $381 = ((($$1113249)) + 16|0);
+     $382 = (($$1110250) + -16)|0;
+     $383 = ((($$1116248)) + 16|0);
+     $384 = ($382>>>0)>(15);
+     if ($384) {
+      $$0108251 = $300;$$1110250 = $382;$$1113249 = $381;$$1116248 = $383;
+     } else {
+      break;
+     }
+    }
+    $scevgep = (($4) + ($51)|0);
+    $scevgep272 = (($2) + ($51)|0);
+    $$0108$lcssa = $300;$$1110$lcssa = $52;$$1113$lcssa = 
$scevgep;$$1116$lcssa = $scevgep272;
+   } else {
+    $$0108$lcssa = 0;$$1110$lcssa = $5;$$1113$lcssa = $4;$$1116$lcssa = $2;
+   }
+   if ($36) {
+    $$1 = $$0108$lcssa;$$2111 = $$1110$lcssa;$$2114 = $$1113$lcssa;$$2117 = 
$$1116$lcssa;
+   } else {
+    $385 = (0 - ($32))|0;
+    $386 = (($$1116$lcssa) + ($385)|0);
+    $387 = ((($0)) + 80|0);
+    _ocb_checksum($387,$386,$8);
+    $$1 = $$0108$lcssa;$$2111 = $$1110$lcssa;$$2114 = $$1113$lcssa;$$2117 = 
$$1116$lcssa;
+   }
+  }
+ } while(0);
+ $388 = ($$2111|0)==(0);
+ if ($388) {
+  $$2 = $$1;
+ } else {
+  $389 = ((($0)) + 64|0);
+  $390 = $389;
+  $391 = $13;
+  $392 = $391 | $390;
+  $393 = $392 & 3;
+  $394 = ($393|0)==(0);
+  if ($394) {
+   $395 = ((($13)) + 4|0);
+   $396 = HEAP32[$13>>2]|0;
+   $397 = ((($389)) + 4|0);
+   $398 = HEAP32[$389>>2]|0;
+   $399 = $398 ^ $396;
+   HEAP32[$389>>2] = $399;
+   $400 = ((($0)) + 136|0);
+   $401 = HEAP32[$395>>2]|0;
+   $402 = ((($0)) + 72|0);
+   $403 = HEAP32[$397>>2]|0;
+   $404 = $403 ^ $401;
+   HEAP32[$397>>2] = $404;
+   $405 = ((($0)) + 140|0);
+   $406 = HEAP32[$400>>2]|0;
+   $407 = ((($0)) + 76|0);
+   $408 = HEAP32[$402>>2]|0;
+   $409 = $408 ^ $406;
+   HEAP32[$402>>2] = $409;
+   $410 = HEAP32[$405>>2]|0;
+   $411 = HEAP32[$407>>2]|0;
+   $412 = $411 ^ $410;
+   HEAP32[$407>>2] = $412;
+  } else {
+   $413 = ((($13)) + 1|0);
+   $414 = HEAP8[$13>>0]|0;
+   $415 = ((($389)) + 1|0);
+   $416 = HEAP8[$389>>0]|0;
+   $417 = $416 ^ $414;
+   HEAP8[$389>>0] = $417;
+   $418 = ((($13)) + 2|0);
+   $419 = HEAP8[$413>>0]|0;
+   $420 = ((($389)) + 2|0);
+   $421 = HEAP8[$415>>0]|0;
+   $422 = $421 ^ $419;
+   HEAP8[$415>>0] = $422;
+   $423 = ((($13)) + 3|0);
+   $424 = HEAP8[$418>>0]|0;
+   $425 = ((($389)) + 3|0);
+   $426 = HEAP8[$420>>0]|0;
+   $427 = $426 ^ $424;
+   HEAP8[$420>>0] = $427;
+   $428 = ((($13)) + 4|0);
+   $429 = HEAP8[$423>>0]|0;
+   $430 = ((($389)) + 4|0);
+   $431 = HEAP8[$425>>0]|0;
+   $432 = $431 ^ $429;
+   HEAP8[$425>>0] = $432;
+   $433 = ((($13)) + 5|0);
+   $434 = HEAP8[$428>>0]|0;
+   $435 = ((($389)) + 5|0);
+   $436 = HEAP8[$430>>0]|0;
+   $437 = $436 ^ $434;
+   HEAP8[$430>>0] = $437;
+   $438 = ((($13)) + 6|0);
+   $439 = HEAP8[$433>>0]|0;
+   $440 = ((($389)) + 6|0);
+   $441 = HEAP8[$435>>0]|0;
+   $442 = $441 ^ $439;
+   HEAP8[$435>>0] = $442;
+   $443 = ((($13)) + 7|0);
+   $444 = HEAP8[$438>>0]|0;
+   $445 = ((($389)) + 7|0);
+   $446 = HEAP8[$440>>0]|0;
+   $447 = $446 ^ $444;
+   HEAP8[$440>>0] = $447;
+   $448 = ((($0)) + 136|0);
+   $449 = HEAP8[$443>>0]|0;
+   $450 = ((($0)) + 72|0);
+   $451 = HEAP8[$445>>0]|0;
+   $452 = $451 ^ $449;
+   HEAP8[$445>>0] = $452;
+   $453 = ((($0)) + 137|0);
+   $454 = HEAP8[$448>>0]|0;
+   $455 = ((($0)) + 73|0);
+   $456 = HEAP8[$450>>0]|0;
+   $457 = $456 ^ $454;
+   HEAP8[$450>>0] = $457;
+   $458 = ((($0)) + 138|0);
+   $459 = HEAP8[$453>>0]|0;
+   $460 = ((($0)) + 74|0);
+   $461 = HEAP8[$455>>0]|0;
+   $462 = $461 ^ $459;
+   HEAP8[$455>>0] = $462;
+   $463 = ((($0)) + 139|0);
+   $464 = HEAP8[$458>>0]|0;
+   $465 = ((($0)) + 75|0);
+   $466 = HEAP8[$460>>0]|0;
+   $467 = $466 ^ $464;
+   HEAP8[$460>>0] = $467;
+   $468 = ((($0)) + 140|0);
+   $469 = HEAP8[$463>>0]|0;
+   $470 = ((($0)) + 76|0);
+   $471 = HEAP8[$465>>0]|0;
+   $472 = $471 ^ $469;
+   HEAP8[$465>>0] = $472;
+   $473 = ((($0)) + 141|0);
+   $474 = HEAP8[$468>>0]|0;
+   $475 = ((($0)) + 77|0);
+   $476 = HEAP8[$470>>0]|0;
+   $477 = $476 ^ $474;
+   HEAP8[$470>>0] = $477;
+   $478 = ((($0)) + 142|0);
+   $479 = HEAP8[$473>>0]|0;
+   $480 = ((($0)) + 78|0);
+   $481 = HEAP8[$475>>0]|0;
+   $482 = $481 ^ $479;
+   HEAP8[$475>>0] = $482;
+   $483 = ((($0)) + 143|0);
+   $484 = HEAP8[$478>>0]|0;
+   $485 = ((($0)) + 79|0);
+   $486 = HEAP8[$480>>0]|0;
+   $487 = $486 ^ $484;
+   HEAP8[$480>>0] = $487;
+   $488 = HEAP8[$483>>0]|0;
+   $489 = HEAP8[$485>>0]|0;
+   $490 = $489 ^ $488;
+   HEAP8[$485>>0] = $490;
+  }
+  $491 = HEAP32[$18>>2]|0;
+  $492 = ((($491)) + 36|0);
+  $493 = HEAP32[$492>>2]|0;
+  $494 = ((($0)) + 496|0);
+  $495 = (FUNCTION_TABLE_iiii[$493 & 127]($494,$7,$389)|0);
+  $496 = ($495>>>0)>($$1>>>0);
+  $497 = $496 ? $495 : $$1;
+  $498 = ($1|0)==(0);
+  do {
+   if ($498) {
+    $645 = ((($7)) + 4|0);
+    $646 = HEAP32[$7>>2]|0;
+    $647 = ((($6)) + 4|0);
+    HEAP32[$6>>2] = $646;
+    $648 = ((($7)) + 8|0);
+    $649 = HEAP32[$645>>2]|0;
+    $650 = ((($6)) + 8|0);
+    HEAP32[$647>>2] = $649;
+    $651 = ((($7)) + 12|0);
+    $652 = HEAP32[$648>>2]|0;
+    $653 = ((($6)) + 12|0);
+    HEAP32[$650>>2] = $652;
+    $654 = HEAP32[$651>>2]|0;
+    HEAP32[$653>>2] = $654;
+    $655 = $$2114;
+    $656 = $655 & 3;
+    $657 = ($656|0)==(0);
+    $658 = ($$2111>>>0)>(3);
+    $or$cond$i156 = $658 & $657;
+    if ($or$cond$i156) {
+     $659 = (($$2111) + -4)|0;
+     $660 = $659 & -4;
+     $661 = (($660) + 4)|0;
+     $scevgep$i157 = (($$2114) + ($661)|0);
+     $$02434$i161 = $$2114;$$02533$i162 = $6;$$035$i160 = $$2111;
+     while(1) {
+      $662 = ((($$02434$i161)) + 4|0);
+      $663 = HEAP32[$$02434$i161>>2]|0;
+      $664 = ((($$02533$i162)) + 4|0);
+      HEAP32[$$02533$i162>>2] = $663;
+      $665 = (($$035$i160) + -4)|0;
+      $666 = ($665>>>0)>(3);
+      if ($666) {
+       $$02434$i161 = $662;$$02533$i162 = $664;$$035$i160 = $665;
+      } else {
+       break;
+      }
+     }
+     $scevgep44$i158 = (($6) + ($661)|0);
+     $667 = (($659) - ($660))|0;
+     $668 = ($667|0)==(0);
+     if ($668) {
+      $677 = $646;$682 = $649;
+     } else {
+      $$12731$i170$ph = $scevgep$i157;$$12930$i171$ph = 
$scevgep44$i158;$$232$i169$ph = $667;
+      label = 51;
+     }
+    } else {
+     $$12731$i170$ph = $$2114;$$12930$i171$ph = $6;$$232$i169$ph = $$2111;
+     label = 51;
+    }
+    if ((label|0) == 51) {
+     $$12731$i170 = $$12731$i170$ph;$$12930$i171 = $$12930$i171$ph;$$232$i169 
= $$232$i169$ph;
+     while(1) {
+      $669 = ((($$12731$i170)) + 1|0);
+      $670 = HEAP8[$$12731$i170>>0]|0;
+      $671 = ((($$12930$i171)) + 1|0);
+      HEAP8[$$12930$i171>>0] = $670;
+      $672 = (($$232$i169) + -1)|0;
+      $673 = ($672|0)==(0);
+      if ($673) {
+       break;
+      } else {
+       $$12731$i170 = $669;$$12930$i171 = $671;$$232$i169 = $672;
+      }
+     }
+     $$pre = HEAP32[$7>>2]|0;
+     $$phi$trans$insert273 = ((($7)) + 4|0);
+     $$pre275 = HEAP32[$$phi$trans$insert273>>2]|0;
+     $677 = $$pre;$682 = $$pre275;
+    }
+    $674 = ((($6)) + 4|0);
+    $675 = HEAP32[$6>>2]|0;
+    $676 = $675 ^ $677;
+    HEAP32[$6>>2] = $676;
+    $678 = ((($7)) + 8|0);
+    $679 = ((($6)) + 8|0);
+    $680 = HEAP32[$674>>2]|0;
+    $681 = $680 ^ $682;
+    HEAP32[$674>>2] = $681;
+    $683 = ((($7)) + 12|0);
+    $684 = HEAP32[$678>>2]|0;
+    $685 = ((($6)) + 12|0);
+    $686 = HEAP32[$679>>2]|0;
+    $687 = $686 ^ $684;
+    HEAP32[$679>>2] = $687;
+    $688 = HEAP32[$683>>2]|0;
+    $689 = HEAP32[$685>>2]|0;
+    $690 = $689 ^ $688;
+    HEAP32[$685>>2] = $690;
+    $691 = (($6) + ($$2111)|0);
+    HEAP8[$691>>0] = -128;
+    $692 = $$2117;
+    $693 = $692 & 3;
+    $694 = ($693|0)==(0);
+    $or$cond$i = $694 & $658;
+    if ($or$cond$i) {
+     $695 = (($$2111) + -4)|0;
+     $696 = $695 & -4;
+     $697 = (($696) + 4)|0;
+     $scevgep$i152 = (($6) + ($697)|0);
+     $$02434$i = $6;$$02533$i = $$2117;$$035$i = $$2111;
+     while(1) {
+      $698 = ((($$02434$i)) + 4|0);
+      $699 = HEAP32[$$02434$i>>2]|0;
+      $700 = ((($$02533$i)) + 4|0);
+      HEAP32[$$02533$i>>2] = $699;
+      $701 = (($$035$i) + -4)|0;
+      $702 = ($701>>>0)>(3);
+      if ($702) {
+       $$02434$i = $698;$$02533$i = $700;$$035$i = $701;
+      } else {
+       break;
+      }
+     }
+     $scevgep44$i = (($$2117) + ($697)|0);
+     $703 = (($695) - ($696))|0;
+     $$026$i = $scevgep$i152;$$028$i = $scevgep44$i;$$1$i153 = $703;
+    } else {
+     $$026$i = $6;$$028$i = $$2117;$$1$i153 = $$2111;
+    }
+    $704 = ($$1$i153|0)==(0);
+    if (!($704)) {
+     $$12731$i = $$026$i;$$12930$i = $$028$i;$$232$i = $$1$i153;
+     while(1) {
+      $705 = ((($$12731$i)) + 1|0);
+      $706 = HEAP8[$$12731$i>>0]|0;
+      $707 = ((($$12930$i)) + 1|0);
+      HEAP8[$$12930$i>>0] = $706;
+      $708 = (($$232$i) + -1)|0;
+      $709 = ($708|0)==(0);
+      if ($709) {
+       break;
+      } else {
+       $$12731$i = $705;$$12930$i = $707;$$232$i = $708;
+      }
+     }
+    }
+    $710 = ((($0)) + 80|0);
+    $711 = $710;
+    $712 = $711 & 3;
+    $713 = ($712|0)==(0);
+    if ($713) {
+     $714 = HEAP32[$6>>2]|0;
+     $715 = ((($710)) + 4|0);
+     $716 = HEAP32[$710>>2]|0;
+     $717 = $716 ^ $714;
+     HEAP32[$710>>2] = $717;
+     $718 = HEAP32[$674>>2]|0;
+     $719 = ((($0)) + 88|0);
+     $720 = HEAP32[$715>>2]|0;
+     $721 = $720 ^ $718;
+     HEAP32[$715>>2] = $721;
+     $722 = HEAP32[$679>>2]|0;
+     $723 = ((($0)) + 92|0);
+     $724 = HEAP32[$719>>2]|0;
+     $725 = $724 ^ $722;
+     HEAP32[$719>>2] = $725;
+     $726 = HEAP32[$685>>2]|0;
+     $727 = HEAP32[$723>>2]|0;
+     $728 = $727 ^ $726;
+     HEAP32[$723>>2] = $728;
+     break;
+    } else {
+     $729 = ((($6)) + 1|0);
+     $730 = HEAP8[$6>>0]|0;
+     $731 = ((($710)) + 1|0);
+     $732 = HEAP8[$710>>0]|0;
+     $733 = $732 ^ $730;
+     HEAP8[$710>>0] = $733;
+     $734 = ((($6)) + 2|0);
+     $735 = HEAP8[$729>>0]|0;
+     $736 = ((($710)) + 2|0);
+     $737 = HEAP8[$731>>0]|0;
+     $738 = $737 ^ $735;
+     HEAP8[$731>>0] = $738;
+     $739 = ((($6)) + 3|0);
+     $740 = HEAP8[$734>>0]|0;
+     $741 = ((($710)) + 3|0);
+     $742 = HEAP8[$736>>0]|0;
+     $743 = $742 ^ $740;
+     HEAP8[$736>>0] = $743;
+     $744 = ((($6)) + 4|0);
+     $745 = HEAP8[$739>>0]|0;
+     $746 = ((($710)) + 4|0);
+     $747 = HEAP8[$741>>0]|0;
+     $748 = $747 ^ $745;
+     HEAP8[$741>>0] = $748;
+     $749 = ((($6)) + 5|0);
+     $750 = HEAP8[$744>>0]|0;
+     $751 = ((($710)) + 5|0);
+     $752 = HEAP8[$746>>0]|0;
+     $753 = $752 ^ $750;
+     HEAP8[$746>>0] = $753;
+     $754 = ((($6)) + 6|0);
+     $755 = HEAP8[$749>>0]|0;
+     $756 = ((($710)) + 6|0);
+     $757 = HEAP8[$751>>0]|0;
+     $758 = $757 ^ $755;
+     HEAP8[$751>>0] = $758;
+     $759 = ((($6)) + 7|0);
+     $760 = HEAP8[$754>>0]|0;
+     $761 = ((($710)) + 7|0);
+     $762 = HEAP8[$756>>0]|0;
+     $763 = $762 ^ $760;
+     HEAP8[$756>>0] = $763;
+     $764 = ((($6)) + 8|0);
+     $765 = HEAP8[$759>>0]|0;
+     $766 = ((($0)) + 88|0);
+     $767 = HEAP8[$761>>0]|0;
+     $768 = $767 ^ $765;
+     HEAP8[$761>>0] = $768;
+     $769 = ((($6)) + 9|0);
+     $770 = HEAP8[$764>>0]|0;
+     $771 = ((($0)) + 89|0);
+     $772 = HEAP8[$766>>0]|0;
+     $773 = $772 ^ $770;
+     HEAP8[$766>>0] = $773;
+     $774 = ((($6)) + 10|0);
+     $775 = HEAP8[$769>>0]|0;
+     $776 = ((($0)) + 90|0);
+     $777 = HEAP8[$771>>0]|0;
+     $778 = $777 ^ $775;
+     HEAP8[$771>>0] = $778;
+     $779 = ((($6)) + 11|0);
+     $780 = HEAP8[$774>>0]|0;
+     $781 = ((($0)) + 91|0);
+     $782 = HEAP8[$776>>0]|0;
+     $783 = $782 ^ $780;
+     HEAP8[$776>>0] = $783;
+     $784 = ((($6)) + 12|0);
+     $785 = HEAP8[$779>>0]|0;
+     $786 = ((($0)) + 92|0);
+     $787 = HEAP8[$781>>0]|0;
+     $788 = $787 ^ $785;
+     HEAP8[$781>>0] = $788;
+     $789 = ((($6)) + 13|0);
+     $790 = HEAP8[$784>>0]|0;
+     $791 = ((($0)) + 93|0);
+     $792 = HEAP8[$786>>0]|0;
+     $793 = $792 ^ $790;
+     HEAP8[$786>>0] = $793;
+     $794 = ((($6)) + 14|0);
+     $795 = HEAP8[$789>>0]|0;
+     $796 = ((($0)) + 94|0);
+     $797 = HEAP8[$791>>0]|0;
+     $798 = $797 ^ $795;
+     HEAP8[$791>>0] = $798;
+     $799 = ((($6)) + 15|0);
+     $800 = HEAP8[$794>>0]|0;
+     $801 = ((($0)) + 95|0);
+     $802 = HEAP8[$796>>0]|0;
+     $803 = $802 ^ $800;
+     HEAP8[$796>>0] = $803;
+     $804 = HEAP8[$799>>0]|0;
+     $805 = HEAP8[$801>>0]|0;
+     $806 = $805 ^ $804;
+     HEAP8[$801>>0] = $806;
+     break;
+    }
+   } else {
+    $499 = $$2114;
+    $500 = $499 & 3;
+    $501 = ($500|0)==(0);
+    $502 = ($$2111>>>0)>(3);
+    $or$cond$i216 = $502 & $501;
+    if ($or$cond$i216) {
+     $503 = (($$2111) + -4)|0;
+     $504 = $503 & -4;
+     $505 = (($504) + 4)|0;
+     $scevgep$i217 = (($$2114) + ($505)|0);
+     $$02434$i221 = $$2114;$$02533$i222 = $6;$$035$i220 = $$2111;
+     while(1) {
+      $506 = ((($$02434$i221)) + 4|0);
+      $507 = HEAP32[$$02434$i221>>2]|0;
+      $508 = ((($$02533$i222)) + 4|0);
+      HEAP32[$$02533$i222>>2] = $507;
+      $509 = (($$035$i220) + -4)|0;
+      $510 = ($509>>>0)>(3);
+      if ($510) {
+       $$02434$i221 = $506;$$02533$i222 = $508;$$035$i220 = $509;
+      } else {
+       break;
+      }
+     }
+     $scevgep44$i218 = (($6) + ($505)|0);
+     $511 = (($503) - ($504))|0;
+     $512 = ($511|0)==(0);
+     if (!($512)) {
+      $$12731$i230$ph = $scevgep$i217;$$12930$i231$ph = 
$scevgep44$i218;$$232$i229$ph = $511;
+      label = 35;
+     }
+    } else {
+     $$12731$i230$ph = $$2114;$$12930$i231$ph = $6;$$232$i229$ph = $$2111;
+     label = 35;
+    }
+    if ((label|0) == 35) {
+     $$12731$i230 = $$12731$i230$ph;$$12930$i231 = $$12930$i231$ph;$$232$i229 
= $$232$i229$ph;
+     while(1) {
+      $513 = ((($$12731$i230)) + 1|0);
+      $514 = HEAP8[$$12731$i230>>0]|0;
+      $515 = ((($$12930$i231)) + 1|0);
+      HEAP8[$$12930$i231>>0] = $514;
+      $516 = (($$232$i229) + -1)|0;
+      $517 = ($516|0)==(0);
+      if ($517) {
+       break;
+      } else {
+       $$12731$i230 = $513;$$12930$i231 = $515;$$232$i229 = $516;
+      }
+     }
+    }
+    $518 = (($6) + ($$2111)|0);
+    $519 = (16 - ($$2111))|0;
+    _memset(($518|0),0,($519|0))|0;
+    HEAP8[$518>>0] = -128;
+    $520 = ((($0)) + 80|0);
+    $521 = $520;
+    $522 = $521 & 3;
+    $523 = ($522|0)==(0);
+    if ($523) {
+     $524 = ((($6)) + 4|0);
+     $525 = HEAP32[$6>>2]|0;
+     $526 = ((($520)) + 4|0);
+     $527 = HEAP32[$520>>2]|0;
+     $528 = $527 ^ $525;
+     HEAP32[$520>>2] = $528;
+     $529 = ((($6)) + 8|0);
+     $530 = HEAP32[$524>>2]|0;
+     $531 = ((($0)) + 88|0);
+     $532 = HEAP32[$526>>2]|0;
+     $533 = $532 ^ $530;
+     HEAP32[$526>>2] = $533;
+     $534 = ((($6)) + 12|0);
+     $535 = HEAP32[$529>>2]|0;
+     $536 = ((($0)) + 92|0);
+     $537 = HEAP32[$531>>2]|0;
+     $538 = $537 ^ $535;
+     HEAP32[$531>>2] = $538;
+     $539 = HEAP32[$534>>2]|0;
+     $540 = HEAP32[$536>>2]|0;
+     $541 = $540 ^ $539;
+     HEAP32[$536>>2] = $541;
+    } else {
+     $542 = ((($6)) + 1|0);
+     $543 = HEAP8[$6>>0]|0;
+     $544 = ((($520)) + 1|0);
+     $545 = HEAP8[$520>>0]|0;
+     $546 = $545 ^ $543;
+     HEAP8[$520>>0] = $546;
+     $547 = ((($6)) + 2|0);
+     $548 = HEAP8[$542>>0]|0;
+     $549 = ((($520)) + 2|0);
+     $550 = HEAP8[$544>>0]|0;
+     $551 = $550 ^ $548;
+     HEAP8[$544>>0] = $551;
+     $552 = ((($6)) + 3|0);
+     $553 = HEAP8[$547>>0]|0;
+     $554 = ((($520)) + 3|0);
+     $555 = HEAP8[$549>>0]|0;
+     $556 = $555 ^ $553;
+     HEAP8[$549>>0] = $556;
+     $557 = ((($6)) + 4|0);
+     $558 = HEAP8[$552>>0]|0;
+     $559 = ((($520)) + 4|0);
+     $560 = HEAP8[$554>>0]|0;
+     $561 = $560 ^ $558;
+     HEAP8[$554>>0] = $561;
+     $562 = ((($6)) + 5|0);
+     $563 = HEAP8[$557>>0]|0;
+     $564 = ((($520)) + 5|0);
+     $565 = HEAP8[$559>>0]|0;
+     $566 = $565 ^ $563;
+     HEAP8[$559>>0] = $566;
+     $567 = ((($6)) + 6|0);
+     $568 = HEAP8[$562>>0]|0;
+     $569 = ((($520)) + 6|0);
+     $570 = HEAP8[$564>>0]|0;
+     $571 = $570 ^ $568;
+     HEAP8[$564>>0] = $571;
+     $572 = ((($6)) + 7|0);
+     $573 = HEAP8[$567>>0]|0;
+     $574 = ((($520)) + 7|0);
+     $575 = HEAP8[$569>>0]|0;
+     $576 = $575 ^ $573;
+     HEAP8[$569>>0] = $576;
+     $577 = ((($6)) + 8|0);
+     $578 = HEAP8[$572>>0]|0;
+     $579 = ((($0)) + 88|0);
+     $580 = HEAP8[$574>>0]|0;
+     $581 = $580 ^ $578;
+     HEAP8[$574>>0] = $581;
+     $582 = ((($6)) + 9|0);
+     $583 = HEAP8[$577>>0]|0;
+     $584 = ((($0)) + 89|0);
+     $585 = HEAP8[$579>>0]|0;
+     $586 = $585 ^ $583;
+     HEAP8[$579>>0] = $586;
+     $587 = ((($6)) + 10|0);
+     $588 = HEAP8[$582>>0]|0;
+     $589 = ((($0)) + 90|0);
+     $590 = HEAP8[$584>>0]|0;
+     $591 = $590 ^ $588;
+     HEAP8[$584>>0] = $591;
+     $592 = ((($6)) + 11|0);
+     $593 = HEAP8[$587>>0]|0;
+     $594 = ((($0)) + 91|0);
+     $595 = HEAP8[$589>>0]|0;
+     $596 = $595 ^ $593;
+     HEAP8[$589>>0] = $596;
+     $597 = ((($6)) + 12|0);
+     $598 = HEAP8[$592>>0]|0;
+     $599 = ((($0)) + 92|0);
+     $600 = HEAP8[$594>>0]|0;
+     $601 = $600 ^ $598;
+     HEAP8[$594>>0] = $601;
+     $602 = ((($6)) + 13|0);
+     $603 = HEAP8[$597>>0]|0;
+     $604 = ((($0)) + 93|0);
+     $605 = HEAP8[$599>>0]|0;
+     $606 = $605 ^ $603;
+     HEAP8[$599>>0] = $606;
+     $607 = ((($6)) + 14|0);
+     $608 = HEAP8[$602>>0]|0;
+     $609 = ((($0)) + 94|0);
+     $610 = HEAP8[$604>>0]|0;
+     $611 = $610 ^ $608;
+     HEAP8[$604>>0] = $611;
+     $612 = ((($6)) + 15|0);
+     $613 = HEAP8[$607>>0]|0;
+     $614 = ((($0)) + 95|0);
+     $615 = HEAP8[$609>>0]|0;
+     $616 = $615 ^ $613;
+     HEAP8[$609>>0] = $616;
+     $617 = HEAP8[$612>>0]|0;
+     $618 = HEAP8[$614>>0]|0;
+     $619 = $618 ^ $617;
+     HEAP8[$614>>0] = $619;
+    }
+    $620 = $$2117;
+    $621 = $499 | $620;
+    $622 = $621 & 3;
+    $623 = ($622|0)==(0);
+    $or$cond$i189 = $502 & $623;
+    if ($or$cond$i189) {
+     $624 = (($$2111) + -4)|0;
+     $625 = $624 & -4;
+     $626 = (($625) + 4)|0;
+     $scevgep61$i191 = (($7) + ($626)|0);
+     $$03449$i195 = $7;$$03548$i196 = $$2114;$$03647$i197 = $$2117;$$050$i194 
= $$2111;
+     while(1) {
+      $627 = ((($$03548$i196)) + 4|0);
+      $628 = HEAP32[$$03548$i196>>2]|0;
+      $629 = ((($$03449$i195)) + 4|0);
+      $630 = HEAP32[$$03449$i195>>2]|0;
+      $631 = $630 ^ $628;
+      $632 = ((($$03647$i197)) + 4|0);
+      HEAP32[$$03647$i197>>2] = $631;
+      $633 = (($$050$i194) + -4)|0;
+      $634 = ($633>>>0)>(3);
+      if ($634) {
+       $$03449$i195 = $629;$$03548$i196 = $627;$$03647$i197 = $632;$$050$i194 
= $633;
+      } else {
+       break;
+      }
+     }
+     $scevgep$i190 = (($$2114) + ($626)|0);
+     $scevgep63$i192 = (($$2117) + ($626)|0);
+     $635 = (($624) - ($625))|0;
+     $$037$i201 = $scevgep61$i191;$$039$i200 = $scevgep$i190;$$041$i199 = 
$scevgep63$i192;$$1$i202 = $635;
+    } else {
+     $$037$i201 = $7;$$039$i200 = $$2114;$$041$i199 = $$2117;$$1$i202 = $$2111;
+    }
+    $636 = ($$1$i202|0)==(0);
+    if (!($636)) {
+     $$13845$i206 = $$037$i201;$$14044$i207 = $$039$i200;$$14243$i208 = 
$$041$i199;$$246$i205 = $$1$i202;
+     while(1) {
+      $637 = ((($$14044$i207)) + 1|0);
+      $638 = HEAP8[$$14044$i207>>0]|0;
+      $639 = ((($$13845$i206)) + 1|0);
+      $640 = HEAP8[$$13845$i206>>0]|0;
+      $641 = $640 ^ $638;
+      $642 = ((($$14243$i208)) + 1|0);
+      HEAP8[$$14243$i208>>0] = $641;
+      $643 = (($$246$i205) + -1)|0;
+      $644 = ($643|0)==(0);
+      if ($644) {
+       break;
+      } else {
+       $$13845$i206 = $639;$$14044$i207 = $637;$$14243$i208 = $642;$$246$i205 
= $643;
+      }
+     }
+    }
+   }
+  } while(0);
+  $$2 = $497;
+ }
+ $807 = HEAP8[$9>>0]|0;
+ $808 = $807 & 8;
+ $809 = ($808<<24>>24)==(0);
+ if ($809) {
+  $$3 = $$2;
+ } else {
+  $810 = ((($0)) + 416|0);
+  $811 = ((($0)) + 80|0);
+  $812 = ((($0)) + 64|0);
+  $813 = $810;
+  $814 = $811;
+  $815 = $814 | $813;
+  $816 = $812;
+  $817 = $815 | $816;
+  $818 = $817 & 3;
+  $819 = ($818|0)==(0);
+  if ($819) {
+   $820 = HEAP32[$811>>2]|0;
+   $821 = HEAP32[$812>>2]|0;
+   $822 = $821 ^ $820;
+   $823 = ((($0)) + 420|0);
+   HEAP32[$810>>2] = $822;
+   $824 = ((($0)) + 88|0);
+   $825 = ((($811)) + 4|0);
+   $826 = HEAP32[$825>>2]|0;
+   $827 = ((($0)) + 72|0);
+   $828 = ((($812)) + 4|0);
+   $829 = HEAP32[$828>>2]|0;
+   $830 = $829 ^ $826;
+   $831 = ((($0)) + 424|0);
+   HEAP32[$823>>2] = $830;
+   $832 = ((($0)) + 92|0);
+   $833 = HEAP32[$824>>2]|0;
+   $834 = ((($0)) + 76|0);
+   $835 = HEAP32[$827>>2]|0;
+   $836 = $835 ^ $833;
+   $837 = ((($0)) + 428|0);
+   HEAP32[$831>>2] = $836;
+   $838 = HEAP32[$832>>2]|0;
+   $839 = HEAP32[$834>>2]|0;
+   $840 = $839 ^ $838;
+   HEAP32[$837>>2] = $840;
+  } else {
+   $841 = ((($811)) + 1|0);
+   $842 = HEAP8[$811>>0]|0;
+   $843 = ((($812)) + 1|0);
+   $844 = HEAP8[$812>>0]|0;
+   $845 = $844 ^ $842;
+   $846 = ((($810)) + 1|0);
+   HEAP8[$810>>0] = $845;
+   $847 = ((($811)) + 2|0);
+   $848 = HEAP8[$841>>0]|0;
+   $849 = ((($812)) + 2|0);
+   $850 = HEAP8[$843>>0]|0;
+   $851 = $850 ^ $848;
+   $852 = ((($810)) + 2|0);
+   HEAP8[$846>>0] = $851;
+   $853 = ((($811)) + 3|0);
+   $854 = HEAP8[$847>>0]|0;
+   $855 = ((($812)) + 3|0);
+   $856 = HEAP8[$849>>0]|0;
+   $857 = $856 ^ $854;
+   $858 = ((($810)) + 3|0);
+   HEAP8[$852>>0] = $857;
+   $859 = ((($811)) + 4|0);
+   $860 = HEAP8[$853>>0]|0;
+   $861 = ((($812)) + 4|0);
+   $862 = HEAP8[$855>>0]|0;
+   $863 = $862 ^ $860;
+   $864 = ((($0)) + 420|0);
+   HEAP8[$858>>0] = $863;
+   $865 = ((($811)) + 5|0);
+   $866 = HEAP8[$859>>0]|0;
+   $867 = ((($812)) + 5|0);
+   $868 = HEAP8[$861>>0]|0;
+   $869 = $868 ^ $866;
+   $870 = ((($864)) + 1|0);
+   HEAP8[$864>>0] = $869;
+   $871 = ((($811)) + 6|0);
+   $872 = HEAP8[$865>>0]|0;
+   $873 = ((($812)) + 6|0);
+   $874 = HEAP8[$867>>0]|0;
+   $875 = $874 ^ $872;
+   $876 = ((($864)) + 2|0);
+   HEAP8[$870>>0] = $875;
+   $877 = ((($811)) + 7|0);
+   $878 = HEAP8[$871>>0]|0;
+   $879 = ((($812)) + 7|0);
+   $880 = HEAP8[$873>>0]|0;
+   $881 = $880 ^ $878;
+   $882 = ((($864)) + 3|0);
+   HEAP8[$876>>0] = $881;
+   $883 = ((($0)) + 88|0);
+   $884 = HEAP8[$877>>0]|0;
+   $885 = ((($0)) + 72|0);
+   $886 = HEAP8[$879>>0]|0;
+   $887 = $886 ^ $884;
+   $888 = ((($0)) + 424|0);
+   HEAP8[$882>>0] = $887;
+   $889 = ((($0)) + 89|0);
+   $890 = HEAP8[$883>>0]|0;
+   $891 = ((($0)) + 73|0);
+   $892 = HEAP8[$885>>0]|0;
+   $893 = $892 ^ $890;
+   $894 = ((($888)) + 1|0);
+   HEAP8[$888>>0] = $893;
+   $895 = ((($0)) + 90|0);
+   $896 = HEAP8[$889>>0]|0;
+   $897 = ((($0)) + 74|0);
+   $898 = HEAP8[$891>>0]|0;
+   $899 = $898 ^ $896;
+   $900 = ((($888)) + 2|0);
+   HEAP8[$894>>0] = $899;
+   $901 = ((($0)) + 91|0);
+   $902 = HEAP8[$895>>0]|0;
+   $903 = ((($0)) + 75|0);
+   $904 = HEAP8[$897>>0]|0;
+   $905 = $904 ^ $902;
+   $906 = ((($888)) + 3|0);
+   HEAP8[$900>>0] = $905;
+   $907 = ((($0)) + 92|0);
+   $908 = HEAP8[$901>>0]|0;
+   $909 = ((($0)) + 76|0);
+   $910 = HEAP8[$903>>0]|0;
+   $911 = $910 ^ $908;
+   $912 = ((($0)) + 428|0);
+   HEAP8[$906>>0] = $911;
+   $913 = ((($0)) + 93|0);
+   $914 = HEAP8[$907>>0]|0;
+   $915 = ((($0)) + 77|0);
+   $916 = HEAP8[$909>>0]|0;
+   $917 = $916 ^ $914;
+   $918 = ((($912)) + 1|0);
+   HEAP8[$912>>0] = $917;
+   $919 = ((($0)) + 94|0);
+   $920 = HEAP8[$913>>0]|0;
+   $921 = ((($0)) + 78|0);
+   $922 = HEAP8[$915>>0]|0;
+   $923 = $922 ^ $920;
+   $924 = ((($912)) + 2|0);
+   HEAP8[$918>>0] = $923;
+   $925 = ((($0)) + 95|0);
+   $926 = HEAP8[$919>>0]|0;
+   $927 = ((($0)) + 79|0);
+   $928 = HEAP8[$921>>0]|0;
+   $929 = $928 ^ $926;
+   $930 = ((($912)) + 3|0);
+   HEAP8[$924>>0] = $929;
+   $931 = HEAP8[$925>>0]|0;
+   $932 = HEAP8[$927>>0]|0;
+   $933 = $932 ^ $931;
+   HEAP8[$930>>0] = $933;
+  }
+  $934 = ((($0)) + 144|0);
+  $935 = $934;
+  $936 = $935 | $813;
+  $937 = $936 & 3;
+  $938 = ($937|0)==(0);
+  if ($938) {
+   $939 = ((($0)) + 148|0);
+   $940 = HEAP32[$934>>2]|0;
+   $941 = ((($0)) + 420|0);
+   $942 = HEAP32[$810>>2]|0;
+   $943 = $942 ^ $940;
+   HEAP32[$810>>2] = $943;
+   $944 = ((($0)) + 152|0);
+   $945 = HEAP32[$939>>2]|0;
+   $946 = ((($0)) + 424|0);
+   $947 = HEAP32[$941>>2]|0;
+   $948 = $947 ^ $945;
+   HEAP32[$941>>2] = $948;
+   $949 = ((($0)) + 156|0);
+   $950 = HEAP32[$944>>2]|0;
+   $951 = ((($0)) + 428|0);
+   $952 = HEAP32[$946>>2]|0;
+   $953 = $952 ^ $950;
+   HEAP32[$946>>2] = $953;
+   $954 = HEAP32[$949>>2]|0;
+   $955 = HEAP32[$951>>2]|0;
+   $956 = $955 ^ $954;
+   HEAP32[$951>>2] = $956;
+  } else {
+   $957 = ((($0)) + 145|0);
+   $958 = HEAP8[$934>>0]|0;
+   $959 = ((($810)) + 1|0);
+   $960 = HEAP8[$810>>0]|0;
+   $961 = $960 ^ $958;
+   HEAP8[$810>>0] = $961;
+   $962 = ((($0)) + 146|0);
+   $963 = HEAP8[$957>>0]|0;
+   $964 = ((($810)) + 2|0);
+   $965 = HEAP8[$959>>0]|0;
+   $966 = $965 ^ $963;
+   HEAP8[$959>>0] = $966;
+   $967 = ((($0)) + 147|0);
+   $968 = HEAP8[$962>>0]|0;
+   $969 = ((($810)) + 3|0);
+   $970 = HEAP8[$964>>0]|0;
+   $971 = $970 ^ $968;
+   HEAP8[$964>>0] = $971;
+   $972 = ((($0)) + 148|0);
+   $973 = HEAP8[$967>>0]|0;
+   $974 = ((($0)) + 420|0);
+   $975 = HEAP8[$969>>0]|0;
+   $976 = $975 ^ $973;
+   HEAP8[$969>>0] = $976;
+   $977 = ((($0)) + 149|0);
+   $978 = HEAP8[$972>>0]|0;
+   $979 = ((($974)) + 1|0);
+   $980 = HEAP8[$974>>0]|0;
+   $981 = $980 ^ $978;
+   HEAP8[$974>>0] = $981;
+   $982 = ((($0)) + 150|0);
+   $983 = HEAP8[$977>>0]|0;
+   $984 = ((($974)) + 2|0);
+   $985 = HEAP8[$979>>0]|0;
+   $986 = $985 ^ $983;
+   HEAP8[$979>>0] = $986;
+   $987 = ((($0)) + 151|0);
+   $988 = HEAP8[$982>>0]|0;
+   $989 = ((($974)) + 3|0);
+   $990 = HEAP8[$984>>0]|0;
+   $991 = $990 ^ $988;
+   HEAP8[$984>>0] = $991;
+   $992 = ((($0)) + 152|0);
+   $993 = HEAP8[$987>>0]|0;
+   $994 = ((($0)) + 424|0);
+   $995 = HEAP8[$989>>0]|0;
+   $996 = $995 ^ $993;
+   HEAP8[$989>>0] = $996;
+   $997 = ((($0)) + 153|0);
+   $998 = HEAP8[$992>>0]|0;
+   $999 = ((($994)) + 1|0);
+   $1000 = HEAP8[$994>>0]|0;
+   $1001 = $1000 ^ $998;
+   HEAP8[$994>>0] = $1001;
+   $1002 = ((($0)) + 154|0);
+   $1003 = HEAP8[$997>>0]|0;
+   $1004 = ((($994)) + 2|0);
+   $1005 = HEAP8[$999>>0]|0;
+   $1006 = $1005 ^ $1003;
+   HEAP8[$999>>0] = $1006;
+   $1007 = ((($0)) + 155|0);
+   $1008 = HEAP8[$1002>>0]|0;
+   $1009 = ((($994)) + 3|0);
+   $1010 = HEAP8[$1004>>0]|0;
+   $1011 = $1010 ^ $1008;
+   HEAP8[$1004>>0] = $1011;
+   $1012 = ((($0)) + 156|0);
+   $1013 = HEAP8[$1007>>0]|0;
+   $1014 = ((($0)) + 428|0);
+   $1015 = HEAP8[$1009>>0]|0;
+   $1016 = $1015 ^ $1013;
+   HEAP8[$1009>>0] = $1016;
+   $1017 = ((($0)) + 157|0);
+   $1018 = HEAP8[$1012>>0]|0;
+   $1019 = ((($1014)) + 1|0);
+   $1020 = HEAP8[$1014>>0]|0;
+   $1021 = $1020 ^ $1018;
+   HEAP8[$1014>>0] = $1021;
+   $1022 = ((($0)) + 158|0);
+   $1023 = HEAP8[$1017>>0]|0;
+   $1024 = ((($1014)) + 2|0);
+   $1025 = HEAP8[$1019>>0]|0;
+   $1026 = $1025 ^ $1023;
+   HEAP8[$1019>>0] = $1026;
+   $1027 = ((($0)) + 159|0);
+   $1028 = HEAP8[$1022>>0]|0;
+   $1029 = ((($1014)) + 3|0);
+   $1030 = HEAP8[$1024>>0]|0;
+   $1031 = $1030 ^ $1028;
+   HEAP8[$1024>>0] = $1031;
+   $1032 = HEAP8[$1027>>0]|0;
+   $1033 = HEAP8[$1029>>0]|0;
+   $1034 = $1033 ^ $1032;
+   HEAP8[$1029>>0] = $1034;
+  }
+  $1035 = HEAP32[$18>>2]|0;
+  $1036 = ((($1035)) + 36|0);
+  $1037 = HEAP32[$1036>>2]|0;
+  $1038 = ((($0)) + 496|0);
+  $1039 = (FUNCTION_TABLE_iiii[$1037 & 127]($1038,$810,$810)|0);
+  $1040 = ($1039>>>0)>($$2>>>0);
+  $1041 = $1040 ? $1039 : $$2;
+  $1042 = HEAP8[$14>>0]|0;
+  $1043 = $1042 | 1;
+  HEAP8[$14>>0] = $1043;
+  $$3 = $1041;
+ }
+ $1044 = ($$3|0)==(0);
+ if ($1044) {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $1045 = (($$3) + 16)|0;
+ ___gcry_burn_stack($1045);
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function _ocb_checksum($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$045 = 0, $$06 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, 
$104 = 0, $105 = 0, $106 = 0, $107 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 
= 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
+ var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, 
$28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0;
+ var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, 
$46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0;
+ var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, 
$64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, 
$72 = 0, $73 = 0, $74 = 0;
+ var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, 
$82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, 
$90 = 0, $91 = 0, $92 = 0;
+ var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, 
sp = 0;
+ sp = STACKTOP;
+ $3 = ($2|0)==(0);
+ if ($3) {
+  return;
+ }
+ $4 = $0;
+ $5 = ((($0)) + 4|0);
+ $6 = ((($0)) + 8|0);
+ $7 = ((($0)) + 12|0);
+ $8 = ((($0)) + 1|0);
+ $9 = ((($0)) + 2|0);
+ $10 = ((($0)) + 3|0);
+ $11 = ((($0)) + 4|0);
+ $12 = ((($0)) + 5|0);
+ $13 = ((($0)) + 6|0);
+ $14 = ((($0)) + 7|0);
+ $15 = ((($0)) + 8|0);
+ $16 = ((($0)) + 9|0);
+ $17 = ((($0)) + 10|0);
+ $18 = ((($0)) + 11|0);
+ $19 = ((($0)) + 12|0);
+ $20 = ((($0)) + 13|0);
+ $21 = ((($0)) + 14|0);
+ $22 = ((($0)) + 15|0);
+ $$045 = $1;$$06 = $2;
+ while(1) {
+  $23 = $$045;
+  $24 = $23 | $4;
+  $25 = $24 & 3;
+  $26 = ($25|0)==(0);
+  if ($26) {
+   $27 = ((($$045)) + 4|0);
+   $28 = HEAP32[$$045>>2]|0;
+   $29 = HEAP32[$0>>2]|0;
+   $30 = $29 ^ $28;
+   HEAP32[$0>>2] = $30;
+   $31 = ((($$045)) + 8|0);
+   $32 = HEAP32[$27>>2]|0;
+   $33 = HEAP32[$5>>2]|0;
+   $34 = $33 ^ $32;
+   HEAP32[$5>>2] = $34;
+   $35 = ((($$045)) + 12|0);
+   $36 = HEAP32[$31>>2]|0;
+   $37 = HEAP32[$6>>2]|0;
+   $38 = $37 ^ $36;
+   HEAP32[$6>>2] = $38;
+   $39 = HEAP32[$35>>2]|0;
+   $40 = HEAP32[$7>>2]|0;
+   $41 = $40 ^ $39;
+   HEAP32[$7>>2] = $41;
+  } else {
+   $42 = ((($$045)) + 1|0);
+   $43 = HEAP8[$$045>>0]|0;
+   $44 = HEAP8[$0>>0]|0;
+   $45 = $44 ^ $43;
+   HEAP8[$0>>0] = $45;
+   $46 = ((($$045)) + 2|0);
+   $47 = HEAP8[$42>>0]|0;
+   $48 = HEAP8[$8>>0]|0;
+   $49 = $48 ^ $47;
+   HEAP8[$8>>0] = $49;
+   $50 = ((($$045)) + 3|0);
+   $51 = HEAP8[$46>>0]|0;
+   $52 = HEAP8[$9>>0]|0;
+   $53 = $52 ^ $51;
+   HEAP8[$9>>0] = $53;
+   $54 = ((($$045)) + 4|0);
+   $55 = HEAP8[$50>>0]|0;
+   $56 = HEAP8[$10>>0]|0;
+   $57 = $56 ^ $55;
+   HEAP8[$10>>0] = $57;
+   $58 = ((($$045)) + 5|0);
+   $59 = HEAP8[$54>>0]|0;
+   $60 = HEAP8[$11>>0]|0;
+   $61 = $60 ^ $59;
+   HEAP8[$11>>0] = $61;
+   $62 = ((($$045)) + 6|0);
+   $63 = HEAP8[$58>>0]|0;
+   $64 = HEAP8[$12>>0]|0;
+   $65 = $64 ^ $63;
+   HEAP8[$12>>0] = $65;
+   $66 = ((($$045)) + 7|0);
+   $67 = HEAP8[$62>>0]|0;
+   $68 = HEAP8[$13>>0]|0;
+   $69 = $68 ^ $67;
+   HEAP8[$13>>0] = $69;
+   $70 = ((($$045)) + 8|0);
+   $71 = HEAP8[$66>>0]|0;
+   $72 = HEAP8[$14>>0]|0;
+   $73 = $72 ^ $71;
+   HEAP8[$14>>0] = $73;
+   $74 = ((($$045)) + 9|0);
+   $75 = HEAP8[$70>>0]|0;
+   $76 = HEAP8[$15>>0]|0;
+   $77 = $76 ^ $75;
+   HEAP8[$15>>0] = $77;
+   $78 = ((($$045)) + 10|0);
+   $79 = HEAP8[$74>>0]|0;
+   $80 = HEAP8[$16>>0]|0;
+   $81 = $80 ^ $79;
+   HEAP8[$16>>0] = $81;
+   $82 = ((($$045)) + 11|0);
+   $83 = HEAP8[$78>>0]|0;
+   $84 = HEAP8[$17>>0]|0;
+   $85 = $84 ^ $83;
+   HEAP8[$17>>0] = $85;
+   $86 = ((($$045)) + 12|0);
+   $87 = HEAP8[$82>>0]|0;
+   $88 = HEAP8[$18>>0]|0;
+   $89 = $88 ^ $87;
+   HEAP8[$18>>0] = $89;
+   $90 = ((($$045)) + 13|0);
+   $91 = HEAP8[$86>>0]|0;
+   $92 = HEAP8[$19>>0]|0;
+   $93 = $92 ^ $91;
+   HEAP8[$19>>0] = $93;
+   $94 = ((($$045)) + 14|0);
+   $95 = HEAP8[$90>>0]|0;
+   $96 = HEAP8[$20>>0]|0;
+   $97 = $96 ^ $95;
+   HEAP8[$20>>0] = $97;
+   $98 = ((($$045)) + 15|0);
+   $99 = HEAP8[$94>>0]|0;
+   $100 = HEAP8[$21>>0]|0;
+   $101 = $100 ^ $99;
+   HEAP8[$21>>0] = $101;
+   $102 = HEAP8[$98>>0]|0;
+   $103 = HEAP8[$22>>0]|0;
+   $104 = $103 ^ $102;
+   HEAP8[$22>>0] = $104;
+  }
+  $105 = ((($$045)) + 16|0);
+  $106 = (($$06) + -1)|0;
+  $107 = ($106|0)==(0);
+  if ($107) {
+   break;
+  } else {
+   $$045 = $105;$$06 = $106;
+  }
+ }
+ return;
+}
+function __gcry_cipher_ocb_decrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = (_ocb_crypt($0,0,$1,$2,$3,$4)|0);
+ return ($5|0);
+}
+function __gcry_cipher_ofb_encrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0$lcssa = 0, $$0163 = 0, $$0163$us = 0, $$03449$i = 0, $$03449$i116 = 
0, $$03449$i137$us = 0, $$03449$i95 = 0, $$03548$i = 0, $$03548$i117 = 0, 
$$03548$i138$us = 0, $$03548$i96 = 0, $$03647$i = 0, $$03647$i118 = 0, 
$$03647$i139$us = 0, $$03647$i97 = 0, $$037$i = 0, $$037$i143$us = 0, $$039$i = 
0, $$039$i142$us = 0, $$041$i = 0;
+ var $$041$i141$us = 0, $$050$i = 0, $$050$i115 = 0, $$050$i136$us = 0, 
$$050$i94 = 0, $$082 = 0, $$083 = 0, $$085 = 0, $$087 = 0, $$1 = 0, $$1$i = 0, 
$$1$i144$us = 0, $$13845$i = 0, $$13845$i106 = 0, $$13845$i106$ph = 0, 
$$13845$i127 = 0, $$13845$i127$ph = 0, $$13845$i148 = 0, $$13845$i148$us = 0, 
$$14044$i = 0;
+ var $$14044$i107 = 0, $$14044$i107$ph = 0, $$14044$i128 = 0, $$14044$i128$ph 
= 0, $$14044$i149 = 0, $$14044$i149$us = 0, $$14243$i = 0, $$14243$i108 = 0, 
$$14243$i108$ph = 0, $$14243$i129 = 0, $$14243$i129$ph = 0, $$14243$i150 = 0, 
$$14243$i150$us = 0, $$184$lcssa = 0, $$184162 = 0, $$184162$us = 0, 
$$186$lcssa = 0, $$186161 = 0, $$186161$us = 0, $$188$lcssa = 0;
+ var $$188160 = 0, $$188160$us = 0, $$246$i = 0, $$246$i105 = 0, $$246$i105$ph 
= 0, $$246$i126 = 0, $$246$i126$ph = 0, $$246$i147 = 0, $$246$i147$us = 0, 
$$pre = 0, $$pre175 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 
= 0, $105 = 0, $106 = 0, $107 = 0;
+ var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 
= 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 
= 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0;
+ var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 
= 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 
= 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0;
+ var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 
= 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 
= 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0;
+ var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, 
$169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, 
$176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0;
+ var $180 = 0, $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;
+ var $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;
+ var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, 
$64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, 
$72 = 0, $73 = 0, $74 = 0;
+ var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, 
$82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, 
$90 = 0, $91 = 0, $92 = 0;
+ var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond$i 
= 0, $or$cond$i110 = 0, $or$cond$i89 = 0, $scevgep$i = 0, $scevgep$i111 = 0, 
$scevgep$i132 = 0, $scevgep$i90 = 0, $scevgep61$i = 0, $scevgep61$i112 = 0, 
$scevgep61$i133$us = 0, $scevgep61$i91 = 0, $scevgep63$i = 0, $scevgep63$i113 = 
0;
+ var $scevgep63$i134$us = 0, $scevgep63$i92 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = ((($0)) + 12|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ((($6)) + 36|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ((($6)) + 20|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ($2>>>0)<($4>>>0);
+ if ($11) {
+  $$082 = 200;
+  return ($$082|0);
+ }
+ $12 = ((($0)) + 112|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = ($13>>>0)<($4>>>0);
+ if (!($14)) {
+  $15 = ((($0)) + 64|0);
+  $16 = (($15) + ($10)|0);
+  $17 = (0 - ($13))|0;
+  $18 = (($16) + ($17)|0);
+  $19 = $1;
+  $20 = $18;
+  $21 = $3;
+  $22 = $21 | $19;
+  $23 = $22 | $20;
+  $24 = $23 & 3;
+  $25 = ($24|0)==(0);
+  $26 = ($4>>>0)>(3);
+  $or$cond$i = $26 & $25;
+  if ($or$cond$i) {
+   $27 = (($4) + -4)|0;
+   $28 = $27 & -4;
+   $29 = (($28) + 4)|0;
+   $scevgep61$i = (($3) + ($29)|0);
+   $$03449$i = $3;$$03548$i = $18;$$03647$i = $1;$$050$i = $4;
+   while(1) {
+    $30 = ((($$03548$i)) + 4|0);
+    $31 = HEAP32[$$03548$i>>2]|0;
+    $32 = ((($$03449$i)) + 4|0);
+    $33 = HEAP32[$$03449$i>>2]|0;
+    $34 = $33 ^ $31;
+    $35 = ((($$03647$i)) + 4|0);
+    HEAP32[$$03647$i>>2] = $34;
+    $36 = (($$050$i) + -4)|0;
+    $37 = ($36>>>0)>(3);
+    if ($37) {
+     $$03449$i = $32;$$03548$i = $30;$$03647$i = $35;$$050$i = $36;
+    } else {
+     break;
+    }
+   }
+   $scevgep$i = (($18) + ($29)|0);
+   $scevgep63$i = (($1) + ($29)|0);
+   $38 = (($27) - ($28))|0;
+   $$037$i = $scevgep61$i;$$039$i = $scevgep$i;$$041$i = $scevgep63$i;$$1$i = 
$38;
+  } else {
+   $$037$i = $3;$$039$i = $18;$$041$i = $1;$$1$i = $4;
+  }
+  $39 = ($$1$i|0)==(0);
+  if ($39) {
+   $49 = $13;
+  } else {
+   $$13845$i = $$037$i;$$14044$i = $$039$i;$$14243$i = $$041$i;$$246$i = $$1$i;
+   while(1) {
+    $40 = ((($$14044$i)) + 1|0);
+    $41 = HEAP8[$$14044$i>>0]|0;
+    $42 = ((($$13845$i)) + 1|0);
+    $43 = HEAP8[$$13845$i>>0]|0;
+    $44 = $43 ^ $41;
+    $45 = ((($$14243$i)) + 1|0);
+    HEAP8[$$14243$i>>0] = $44;
+    $46 = (($$246$i) + -1)|0;
+    $47 = ($46|0)==(0);
+    if ($47) {
+     break;
+    } else {
+     $$13845$i = $42;$$14044$i = $40;$$14243$i = $45;$$246$i = $46;
+    }
+   }
+   $$pre = HEAP32[$12>>2]|0;
+   $49 = $$pre;
+  }
+  $48 = (($49) - ($4))|0;
+  HEAP32[$12>>2] = $48;
+  $$082 = 0;
+  return ($$082|0);
+ }
+ $50 = ($13|0)==(0);
+ if ($50) {
+  $$083 = $1;$$085 = $4;$$087 = $3;
+ } else {
+  $51 = (($4) - ($13))|0;
+  $52 = ((($0)) + 64|0);
+  $53 = (($52) + ($10)|0);
+  $54 = (0 - ($13))|0;
+  $55 = (($53) + ($54)|0);
+  $56 = $1;
+  $57 = $55;
+  $58 = $3;
+  $59 = $58 | $56;
+  $60 = $59 | $57;
+  $61 = $60 & 3;
+  $62 = ($61|0)==(0);
+  $63 = ($13>>>0)>(3);
+  $or$cond$i110 = $63 & $62;
+  if ($or$cond$i110) {
+   $64 = (($13) + -4)|0;
+   $65 = $64 & -4;
+   $66 = (($65) + 4)|0;
+   $scevgep61$i112 = (($3) + ($66)|0);
+   $$03449$i116 = $3;$$03548$i117 = $55;$$03647$i118 = $1;$$050$i115 = $13;
+   while(1) {
+    $67 = ((($$03548$i117)) + 4|0);
+    $68 = HEAP32[$$03548$i117>>2]|0;
+    $69 = ((($$03449$i116)) + 4|0);
+    $70 = HEAP32[$$03449$i116>>2]|0;
+    $71 = $70 ^ $68;
+    $72 = ((($$03647$i118)) + 4|0);
+    HEAP32[$$03647$i118>>2] = $71;
+    $73 = (($$050$i115) + -4)|0;
+    $74 = ($73>>>0)>(3);
+    if ($74) {
+     $$03449$i116 = $69;$$03548$i117 = $67;$$03647$i118 = $72;$$050$i115 = $73;
+    } else {
+     break;
+    }
+   }
+   $scevgep$i111 = (($55) + ($66)|0);
+   $scevgep63$i113 = (($1) + ($66)|0);
+   $75 = (($64) - ($65))|0;
+   $76 = ($75|0)==(0);
+   if ($76) {
+    $86 = $13;
+   } else {
+    $$13845$i127$ph = $scevgep61$i112;$$14044$i128$ph = 
$scevgep$i111;$$14243$i129$ph = $scevgep63$i113;$$246$i126$ph = $75;
+    label = 17;
+   }
+  } else {
+   $$13845$i127$ph = $3;$$14044$i128$ph = $55;$$14243$i129$ph = 
$1;$$246$i126$ph = $13;
+   label = 17;
+  }
+  if ((label|0) == 17) {
+   $$13845$i127 = $$13845$i127$ph;$$14044$i128 = $$14044$i128$ph;$$14243$i129 
= $$14243$i129$ph;$$246$i126 = $$246$i126$ph;
+   while(1) {
+    $77 = ((($$14044$i128)) + 1|0);
+    $78 = HEAP8[$$14044$i128>>0]|0;
+    $79 = ((($$13845$i127)) + 1|0);
+    $80 = HEAP8[$$13845$i127>>0]|0;
+    $81 = $80 ^ $78;
+    $82 = ((($$14243$i129)) + 1|0);
+    HEAP8[$$14243$i129>>0] = $81;
+    $83 = (($$246$i126) + -1)|0;
+    $84 = ($83|0)==(0);
+    if ($84) {
+     break;
+    } else {
+     $$13845$i127 = $79;$$14044$i128 = $77;$$14243$i129 = $82;$$246$i126 = $83;
+    }
+   }
+   $$pre175 = HEAP32[$12>>2]|0;
+   $86 = $$pre175;
+  }
+  $85 = (($1) + ($86)|0);
+  $87 = (($3) + ($86)|0);
+  HEAP32[$12>>2] = 0;
+  $$083 = $85;$$085 = $51;$$087 = $87;
+ }
+ $88 = ($$085>>>0)<($10>>>0);
+ L34: do {
+  if ($88) {
+   $$0$lcssa = 0;$$184$lcssa = $$083;$$186$lcssa = $$085;$$188$lcssa = $$087;
+  } else {
+   $89 = ((($0)) + 496|0);
+   $90 = ((($0)) + 64|0);
+   $91 = $90;
+   $92 = ($10>>>0)>(3);
+   $93 = (($10) + -4)|0;
+   $94 = $93 & -4;
+   $95 = (($94) + 4)|0;
+   $scevgep$i132 = (($90) + ($95)|0);
+   $96 = (($93) - ($94))|0;
+   if (!($92)) {
+    $127 = ($10|0)==(0);
+    $$0163 = 0;$$184162 = $$083;$$186161 = $$085;$$188160 = $$087;
+    while(1) {
+     $128 = (FUNCTION_TABLE_iiii[$8 & 127]($89,$90,$90)|0);
+     $129 = ($128>>>0)>($$0163>>>0);
+     $130 = $129 ? $128 : $$0163;
+     if (!($127)) {
+      $$13845$i148 = $$188160;$$14044$i149 = $90;$$14243$i150 = 
$$184162;$$246$i147 = $10;
+      while(1) {
+       $131 = ((($$14044$i149)) + 1|0);
+       $132 = HEAP8[$$14044$i149>>0]|0;
+       $133 = ((($$13845$i148)) + 1|0);
+       $134 = HEAP8[$$13845$i148>>0]|0;
+       $135 = $134 ^ $132;
+       $136 = ((($$14243$i150)) + 1|0);
+       HEAP8[$$14243$i150>>0] = $135;
+       $137 = (($$246$i147) + -1)|0;
+       $138 = ($137|0)==(0);
+       if ($138) {
+        break;
+       } else {
+        $$13845$i148 = $133;$$14044$i149 = $131;$$14243$i150 = $136;$$246$i147 
= $137;
+       }
+      }
+     }
+     $139 = (($$184162) + ($10)|0);
+     $140 = (($$188160) + ($10)|0);
+     $141 = (($$186161) - ($10))|0;
+     $142 = ($141>>>0)<($10>>>0);
+     if ($142) {
+      $$0$lcssa = $130;$$184$lcssa = $139;$$186$lcssa = $141;$$188$lcssa = 
$140;
+      break L34;
+     } else {
+      $$0163 = $130;$$184162 = $139;$$186161 = $141;$$188160 = $140;
+     }
+    }
+   }
+   $$0163$us = 0;$$184162$us = $$083;$$186161$us = $$085;$$188160$us = $$087;
+   while(1) {
+    $97 = (FUNCTION_TABLE_iiii[$8 & 127]($89,$90,$90)|0);
+    $98 = ($97>>>0)>($$0163$us>>>0);
+    $99 = $98 ? $97 : $$0163$us;
+    $100 = $$184162$us;
+    $101 = $$188160$us;
+    $102 = $101 | $91;
+    $103 = $102 | $100;
+    $104 = $103 & 3;
+    $105 = ($104|0)==(0);
+    if ($105) {
+     $scevgep61$i133$us = (($$188160$us) + ($95)|0);
+     $$03449$i137$us = $$188160$us;$$03548$i138$us = $90;$$03647$i139$us = 
$$184162$us;$$050$i136$us = $10;
+     while(1) {
+      $106 = ((($$03548$i138$us)) + 4|0);
+      $107 = HEAP32[$$03548$i138$us>>2]|0;
+      $108 = ((($$03449$i137$us)) + 4|0);
+      $109 = HEAP32[$$03449$i137$us>>2]|0;
+      $110 = $109 ^ $107;
+      $111 = ((($$03647$i139$us)) + 4|0);
+      HEAP32[$$03647$i139$us>>2] = $110;
+      $112 = (($$050$i136$us) + -4)|0;
+      $113 = ($112>>>0)>(3);
+      if ($113) {
+       $$03449$i137$us = $108;$$03548$i138$us = $106;$$03647$i139$us = 
$111;$$050$i136$us = $112;
+      } else {
+       break;
+      }
+     }
+     $scevgep63$i134$us = (($$184162$us) + ($95)|0);
+     $$037$i143$us = $scevgep61$i133$us;$$039$i142$us = 
$scevgep$i132;$$041$i141$us = $scevgep63$i134$us;$$1$i144$us = $96;
+    } else {
+     $$037$i143$us = $$188160$us;$$039$i142$us = $90;$$041$i141$us = 
$$184162$us;$$1$i144$us = $10;
+    }
+    $114 = ($$1$i144$us|0)==(0);
+    if (!($114)) {
+     $$13845$i148$us = $$037$i143$us;$$14044$i149$us = 
$$039$i142$us;$$14243$i150$us = $$041$i141$us;$$246$i147$us = $$1$i144$us;
+     while(1) {
+      $115 = ((($$14044$i149$us)) + 1|0);
+      $116 = HEAP8[$$14044$i149$us>>0]|0;
+      $117 = ((($$13845$i148$us)) + 1|0);
+      $118 = HEAP8[$$13845$i148$us>>0]|0;
+      $119 = $118 ^ $116;
+      $120 = ((($$14243$i150$us)) + 1|0);
+      HEAP8[$$14243$i150$us>>0] = $119;
+      $121 = (($$246$i147$us) + -1)|0;
+      $122 = ($121|0)==(0);
+      if ($122) {
+       break;
+      } else {
+       $$13845$i148$us = $117;$$14044$i149$us = $115;$$14243$i150$us = 
$120;$$246$i147$us = $121;
+      }
+     }
+    }
+    $123 = (($$184162$us) + ($10)|0);
+    $124 = (($$188160$us) + ($10)|0);
+    $125 = (($$186161$us) - ($10))|0;
+    $126 = ($125>>>0)<($10>>>0);
+    if ($126) {
+     $$0$lcssa = $99;$$184$lcssa = $123;$$186$lcssa = $125;$$188$lcssa = $124;
+     break;
+    } else {
+     $$0163$us = $99;$$184162$us = $123;$$186161$us = $125;$$188160$us = $124;
+    }
+   }
+  }
+ } while(0);
+ $143 = ($$186$lcssa|0)==(0);
+ do {
+  if ($143) {
+   $$1 = $$0$lcssa;
+  } else {
+   $144 = ((($0)) + 496|0);
+   $145 = ((($0)) + 64|0);
+   $146 = (FUNCTION_TABLE_iiii[$8 & 127]($144,$145,$145)|0);
+   $147 = ($146>>>0)>($$0$lcssa>>>0);
+   $148 = $147 ? $146 : $$0$lcssa;
+   $149 = (($10) - ($$186$lcssa))|0;
+   HEAP32[$12>>2] = $149;
+   $150 = $$184$lcssa;
+   $151 = $145;
+   $152 = $$188$lcssa;
+   $153 = $152 | $151;
+   $154 = $153 | $150;
+   $155 = $154 & 3;
+   $156 = ($155|0)==(0);
+   $157 = ($$186$lcssa>>>0)>(3);
+   $or$cond$i89 = $157 & $156;
+   if ($or$cond$i89) {
+    $158 = (($$186$lcssa) + -4)|0;
+    $159 = $158 & -4;
+    $160 = (($159) + 4)|0;
+    $scevgep61$i91 = (($$188$lcssa) + ($160)|0);
+    $$03449$i95 = $$188$lcssa;$$03548$i96 = $145;$$03647$i97 = 
$$184$lcssa;$$050$i94 = $$186$lcssa;
+    while(1) {
+     $161 = ((($$03548$i96)) + 4|0);
+     $162 = HEAP32[$$03548$i96>>2]|0;
+     $163 = ((($$03449$i95)) + 4|0);
+     $164 = HEAP32[$$03449$i95>>2]|0;
+     $165 = $164 ^ $162;
+     $166 = ((($$03647$i97)) + 4|0);
+     HEAP32[$$03647$i97>>2] = $165;
+     $167 = (($$050$i94) + -4)|0;
+     $168 = ($167>>>0)>(3);
+     if ($168) {
+      $$03449$i95 = $163;$$03548$i96 = $161;$$03647$i97 = $166;$$050$i94 = 
$167;
+     } else {
+      break;
+     }
+    }
+    $scevgep$i90 = (($145) + ($160)|0);
+    $scevgep63$i92 = (($$184$lcssa) + ($160)|0);
+    $169 = (($158) - ($159))|0;
+    $170 = ($169|0)==(0);
+    if ($170) {
+     $$1 = $148;
+     break;
+    } else {
+     $$13845$i106$ph = $scevgep61$i91;$$14044$i107$ph = 
$scevgep$i90;$$14243$i108$ph = $scevgep63$i92;$$246$i105$ph = $169;
+    }
+   } else {
+    $$13845$i106$ph = $$188$lcssa;$$14044$i107$ph = $145;$$14243$i108$ph = 
$$184$lcssa;$$246$i105$ph = $$186$lcssa;
+   }
+   $$13845$i106 = $$13845$i106$ph;$$14044$i107 = $$14044$i107$ph;$$14243$i108 
= $$14243$i108$ph;$$246$i105 = $$246$i105$ph;
+   while(1) {
+    $171 = ((($$14044$i107)) + 1|0);
+    $172 = HEAP8[$$14044$i107>>0]|0;
+    $173 = ((($$13845$i106)) + 1|0);
+    $174 = HEAP8[$$13845$i106>>0]|0;
+    $175 = $174 ^ $172;
+    $176 = ((($$14243$i108)) + 1|0);
+    HEAP8[$$14243$i108>>0] = $175;
+    $177 = (($$246$i105) + -1)|0;
+    $178 = ($177|0)==(0);
+    if ($178) {
+     $$1 = $148;
+     break;
+    } else {
+     $$13845$i106 = $173;$$14044$i107 = $171;$$14243$i108 = $176;$$246$i105 = 
$177;
+    }
+   }
+  }
+ } while(0);
+ $179 = ($$1|0)==(0);
+ if ($179) {
+  $$082 = 0;
+  return ($$082|0);
+ }
+ $180 = (($$1) + 16)|0;
+ ___gcry_burn_stack($180);
+ $$082 = 0;
+ return ($$082|0);
+}
+function __gcry_cipher_poly1305_encrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $$phi$trans$insert = 0, $$pre = 0, $$pre$phi24Z2D = 0, $$pre21 = 
0, $$pre23 = 0, $$val$i = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, 
$104 = 0, $105 = 0, $106 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0;
+ var $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, $34 = 0, $35 = 0;
+ var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, 
$52 = 0, $53 = 0, $54 = 0;
+ var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, 
$62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, 
$70 = 0, $71 = 0, $72 = 0;
+ var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, 
$80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 
0, $89 = 0, $9 = 0, $90 = 0;
+ var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, 
$99 = 0, dest = 0, label = 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(80|0);
+ $5 = sp;
+ $6 = sp + 64|0;
+ $7 = ($2>>>0)<($4>>>0);
+ if ($7) {
+  $$0 = 200;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $8 = ((($0)) + 56|0);
+ $9 = HEAP8[$8>>0]|0;
+ $10 = $9 & 4;
+ $11 = ($10<<24>>24)==(0);
+ if (!($11)) {
+  $$0 = 156;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $12 = ((($0)) + 144|0);
+ $13 = HEAP8[$12>>0]|0;
+ $14 = $13 & 2;
+ $15 = ($14<<24>>24)==(0);
+ if (!($15)) {
+  $$0 = 139;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $16 = $9 & 2;
+ $17 = ($16<<24>>24)==(0);
+ do {
+  if ($17) {
+   $18 = $6;
+   $19 = $18;
+   HEAP32[$19>>2] = 0;
+   $20 = (($18) + 4)|0;
+   $21 = $20;
+   HEAP32[$21>>2] = 0;
+   $22 = ((($0)) + 128|0);
+   $23 = ((($0)) + 148|0);
+   dest=$23; stop=dest+92|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+   HEAP32[$22>>2] = 0;
+   $24 = ((($22)) + 4|0);
+   HEAP32[$24>>2] = 0;
+   $25 = ((($0)) + 136|0);
+   HEAP32[$25>>2] = 0;
+   $26 = ((($0)) + 140|0);
+   HEAP32[$26>>2] = 0;
+   $27 = $13 & -4;
+   HEAP8[$12>>0] = $27;
+   $28 = $9 & -7;
+   HEAP8[$8>>0] = $28;
+   $29 = ((($0)) + 12|0);
+   $30 = HEAP32[$29>>2]|0;
+   $31 = ((($30)) + 60|0);
+   $32 = HEAP32[$31>>2]|0;
+   $33 = ((($0)) + 496|0);
+   FUNCTION_TABLE_viii[$32 & 127]($33,$6,8);
+   dest=$5; stop=dest+64|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+   $34 = HEAP32[$29>>2]|0;
+   $35 = ((($34)) + 44|0);
+   $36 = HEAP32[$35>>2]|0;
+   FUNCTION_TABLE_viiii[$36 & 63]($33,$5,$5,64);
+   $37 = (__gcry_poly1305_init($23,$5,32)|0);
+   $38 = $5;
+   $39 = $38;
+   HEAP32[$39>>2] = 0;
+   $40 = (($38) + 4)|0;
+   $41 = $40;
+   HEAP32[$41>>2] = 0;
+   $42 = ((($5)) + 8|0);
+   $43 = $42;
+   $44 = $43;
+   HEAP32[$44>>2] = 0;
+   $45 = (($43) + 4)|0;
+   $46 = $45;
+   HEAP32[$46>>2] = 0;
+   $47 = ((($5)) + 16|0);
+   $48 = $47;
+   $49 = $48;
+   HEAP32[$49>>2] = 0;
+   $50 = (($48) + 4)|0;
+   $51 = $50;
+   HEAP32[$51>>2] = 0;
+   $52 = ((($5)) + 24|0);
+   $53 = $52;
+   $54 = $53;
+   HEAP32[$54>>2] = 0;
+   $55 = (($53) + 4)|0;
+   $56 = $55;
+   HEAP32[$56>>2] = 0;
+   $57 = ((($5)) + 32|0);
+   $58 = $57;
+   $59 = $58;
+   HEAP32[$59>>2] = 0;
+   $60 = (($58) + 4)|0;
+   $61 = $60;
+   HEAP32[$61>>2] = 0;
+   $62 = ((($5)) + 40|0);
+   $63 = $62;
+   $64 = $63;
+   HEAP32[$64>>2] = 0;
+   $65 = (($63) + 4)|0;
+   $66 = $65;
+   HEAP32[$66>>2] = 0;
+   $67 = ((($5)) + 48|0);
+   $68 = $67;
+   $69 = $68;
+   HEAP32[$69>>2] = 0;
+   $70 = (($68) + 4)|0;
+   $71 = $70;
+   HEAP32[$71>>2] = 0;
+   $72 = ((($5)) + 56|0);
+   $73 = $72;
+   $74 = $73;
+   HEAP32[$74>>2] = 0;
+   $75 = (($73) + 4)|0;
+   $76 = $75;
+   HEAP32[$76>>2] = 0;
+   $77 = ($37|0)==(0);
+   if ($77) {
+    $78 = HEAP8[$8>>0]|0;
+    $79 = $78 | 2;
+    HEAP8[$8>>0] = $79;
+    $$pre = HEAP8[$12>>0]|0;
+    $81 = $$pre;
+    break;
+   }
+   $$0 = $37;
+   STACKTOP = sp;return ($$0|0);
+  } else {
+   $81 = $13;
+  }
+ } while(0);
+ $80 = $81 & 1;
+ $82 = ($80<<24>>24)==(0);
+ if ($82) {
+  $83 = ((($0)) + 128|0);
+  $$val$i = HEAP32[$83>>2]|0;
+  $84 = $$val$i & 15;
+  $85 = ($84|0)==(0);
+  if ($85) {
+   $89 = $81;
+  } else {
+   $86 = ((($0)) + 148|0);
+   $87 = (16 - ($84))|0;
+   __gcry_poly1305_update($86,73322,$87);
+   $$pre21 = HEAP8[$12>>0]|0;
+   $89 = $$pre21;
+  }
+  $88 = $89 | 1;
+  HEAP8[$12>>0] = $88;
+  $90 = ((($0)) + 136|0);
+  HEAP32[$90>>2] = 0;
+  $91 = ((($0)) + 140|0);
+  HEAP32[$91>>2] = 0;
+  $$pre$phi24Z2D = $90;$100 = $88;$93 = 0;
+ } else {
+  $$phi$trans$insert = ((($0)) + 136|0);
+  $$pre23 = HEAP32[$$phi$trans$insert>>2]|0;
+  $$pre$phi24Z2D = $$phi$trans$insert;$100 = $81;$93 = $$pre23;
+ }
+ $92 = (($93) + ($4))|0;
+ HEAP32[$$pre$phi24Z2D>>2] = $92;
+ $94 = ($92>>>0)<($4>>>0);
+ if ($94) {
+  $95 = ((($0)) + 140|0);
+  $96 = HEAP32[$95>>2]|0;
+  $97 = (($96) + 1)|0;
+  HEAP32[$95>>2] = $97;
+  $98 = ($97|0)==(0);
+  if ($98) {
+   $99 = $100 | 2;
+   HEAP8[$12>>0] = $99;
+   $$0 = 139;
+   STACKTOP = sp;return ($$0|0);
+  }
+ }
+ $101 = ((($0)) + 12|0);
+ $102 = HEAP32[$101>>2]|0;
+ $103 = ((($102)) + 44|0);
+ $104 = HEAP32[$103>>2]|0;
+ $105 = ((($0)) + 496|0);
+ FUNCTION_TABLE_viiii[$104 & 63]($105,$1,$3,$4);
+ $106 = ((($0)) + 148|0);
+ __gcry_poly1305_update($106,$1,$4);
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_cipher_poly1305_decrypt($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $$phi$trans$insert = 0, $$pre = 0, $$pre$phi24Z2D = 0, $$pre21 = 
0, $$pre23 = 0, $$val$i = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, 
$104 = 0, $105 = 0, $106 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0;
+ var $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, $34 = 0, $35 = 0;
+ var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, 
$52 = 0, $53 = 0, $54 = 0;
+ var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, 
$62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, 
$70 = 0, $71 = 0, $72 = 0;
+ var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, 
$80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 
0, $89 = 0, $9 = 0, $90 = 0;
+ var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, 
$99 = 0, dest = 0, label = 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(80|0);
+ $5 = sp;
+ $6 = sp + 64|0;
+ $7 = ($2>>>0)<($4>>>0);
+ if ($7) {
+  $$0 = 200;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $8 = ((($0)) + 56|0);
+ $9 = HEAP8[$8>>0]|0;
+ $10 = $9 & 4;
+ $11 = ($10<<24>>24)==(0);
+ if (!($11)) {
+  $$0 = 156;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $12 = ((($0)) + 144|0);
+ $13 = HEAP8[$12>>0]|0;
+ $14 = $13 & 2;
+ $15 = ($14<<24>>24)==(0);
+ if (!($15)) {
+  $$0 = 139;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $16 = $9 & 2;
+ $17 = ($16<<24>>24)==(0);
+ do {
+  if ($17) {
+   $18 = $6;
+   $19 = $18;
+   HEAP32[$19>>2] = 0;
+   $20 = (($18) + 4)|0;
+   $21 = $20;
+   HEAP32[$21>>2] = 0;
+   $22 = ((($0)) + 128|0);
+   $23 = ((($0)) + 148|0);
+   dest=$23; stop=dest+92|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+   HEAP32[$22>>2] = 0;
+   $24 = ((($22)) + 4|0);
+   HEAP32[$24>>2] = 0;
+   $25 = ((($0)) + 136|0);
+   HEAP32[$25>>2] = 0;
+   $26 = ((($0)) + 140|0);
+   HEAP32[$26>>2] = 0;
+   $27 = $13 & -4;
+   HEAP8[$12>>0] = $27;
+   $28 = $9 & -7;
+   HEAP8[$8>>0] = $28;
+   $29 = ((($0)) + 12|0);
+   $30 = HEAP32[$29>>2]|0;
+   $31 = ((($30)) + 60|0);
+   $32 = HEAP32[$31>>2]|0;
+   $33 = ((($0)) + 496|0);
+   FUNCTION_TABLE_viii[$32 & 127]($33,$6,8);
+   dest=$5; stop=dest+64|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+   $34 = HEAP32[$29>>2]|0;
+   $35 = ((($34)) + 44|0);
+   $36 = HEAP32[$35>>2]|0;
+   FUNCTION_TABLE_viiii[$36 & 63]($33,$5,$5,64);
+   $37 = (__gcry_poly1305_init($23,$5,32)|0);
+   $38 = $5;
+   $39 = $38;
+   HEAP32[$39>>2] = 0;
+   $40 = (($38) + 4)|0;
+   $41 = $40;
+   HEAP32[$41>>2] = 0;
+   $42 = ((($5)) + 8|0);
+   $43 = $42;
+   $44 = $43;
+   HEAP32[$44>>2] = 0;
+   $45 = (($43) + 4)|0;
+   $46 = $45;
+   HEAP32[$46>>2] = 0;
+   $47 = ((($5)) + 16|0);
+   $48 = $47;
+   $49 = $48;
+   HEAP32[$49>>2] = 0;
+   $50 = (($48) + 4)|0;
+   $51 = $50;
+   HEAP32[$51>>2] = 0;
+   $52 = ((($5)) + 24|0);
+   $53 = $52;
+   $54 = $53;
+   HEAP32[$54>>2] = 0;
+   $55 = (($53) + 4)|0;
+   $56 = $55;
+   HEAP32[$56>>2] = 0;
+   $57 = ((($5)) + 32|0);
+   $58 = $57;
+   $59 = $58;
+   HEAP32[$59>>2] = 0;
+   $60 = (($58) + 4)|0;
+   $61 = $60;
+   HEAP32[$61>>2] = 0;
+   $62 = ((($5)) + 40|0);
+   $63 = $62;
+   $64 = $63;
+   HEAP32[$64>>2] = 0;
+   $65 = (($63) + 4)|0;
+   $66 = $65;
+   HEAP32[$66>>2] = 0;
+   $67 = ((($5)) + 48|0);
+   $68 = $67;
+   $69 = $68;
+   HEAP32[$69>>2] = 0;
+   $70 = (($68) + 4)|0;
+   $71 = $70;
+   HEAP32[$71>>2] = 0;
+   $72 = ((($5)) + 56|0);
+   $73 = $72;
+   $74 = $73;
+   HEAP32[$74>>2] = 0;
+   $75 = (($73) + 4)|0;
+   $76 = $75;
+   HEAP32[$76>>2] = 0;
+   $77 = ($37|0)==(0);
+   if ($77) {
+    $78 = HEAP8[$8>>0]|0;
+    $79 = $78 | 2;
+    HEAP8[$8>>0] = $79;
+    $$pre = HEAP8[$12>>0]|0;
+    $81 = $$pre;
+    break;
+   }
+   $$0 = $37;
+   STACKTOP = sp;return ($$0|0);
+  } else {
+   $81 = $13;
+  }
+ } while(0);
+ $80 = $81 & 1;
+ $82 = ($80<<24>>24)==(0);
+ if ($82) {
+  $83 = ((($0)) + 128|0);
+  $$val$i = HEAP32[$83>>2]|0;
+  $84 = $$val$i & 15;
+  $85 = ($84|0)==(0);
+  if ($85) {
+   $89 = $81;
+  } else {
+   $86 = ((($0)) + 148|0);
+   $87 = (16 - ($84))|0;
+   __gcry_poly1305_update($86,73322,$87);
+   $$pre21 = HEAP8[$12>>0]|0;
+   $89 = $$pre21;
+  }
+  $88 = $89 | 1;
+  HEAP8[$12>>0] = $88;
+  $90 = ((($0)) + 136|0);
+  HEAP32[$90>>2] = 0;
+  $91 = ((($0)) + 140|0);
+  HEAP32[$91>>2] = 0;
+  $$pre$phi24Z2D = $90;$100 = $88;$93 = 0;
+ } else {
+  $$phi$trans$insert = ((($0)) + 136|0);
+  $$pre23 = HEAP32[$$phi$trans$insert>>2]|0;
+  $$pre$phi24Z2D = $$phi$trans$insert;$100 = $81;$93 = $$pre23;
+ }
+ $92 = (($93) + ($4))|0;
+ HEAP32[$$pre$phi24Z2D>>2] = $92;
+ $94 = ($92>>>0)<($4>>>0);
+ if ($94) {
+  $95 = ((($0)) + 140|0);
+  $96 = HEAP32[$95>>2]|0;
+  $97 = (($96) + 1)|0;
+  HEAP32[$95>>2] = $97;
+  $98 = ($97|0)==(0);
+  if ($98) {
+   $99 = $100 | 2;
+   HEAP8[$12>>0] = $99;
+   $$0 = 139;
+   STACKTOP = sp;return ($$0|0);
+  }
+ }
+ $101 = ((($0)) + 148|0);
+ __gcry_poly1305_update($101,$3,$4);
+ $102 = ((($0)) + 12|0);
+ $103 = HEAP32[$102>>2]|0;
+ $104 = ((($103)) + 48|0);
+ $105 = HEAP32[$104>>2]|0;
+ $106 = ((($0)) + 496|0);
+ FUNCTION_TABLE_viiii[$105 & 63]($106,$1,$3,$4);
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_cipher_poly1305_setkey($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, 
$9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 128|0);
+ HEAP32[$1>>2] = 0;
+ $2 = ((($1)) + 4|0);
+ HEAP32[$2>>2] = 0;
+ $3 = ((($0)) + 136|0);
+ HEAP32[$3>>2] = 0;
+ $4 = ((($0)) + 140|0);
+ HEAP32[$4>>2] = 0;
+ $5 = ((($0)) + 144|0);
+ $6 = HEAP8[$5>>0]|0;
+ $7 = $6 & -4;
+ HEAP8[$5>>0] = $7;
+ $8 = ((($0)) + 56|0);
+ $9 = HEAP8[$8>>0]|0;
+ $10 = $9 & -7;
+ HEAP8[$8>>0] = $10;
+ return;
+}
+function __gcry_cipher_poly1305_setiv($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $45 = 0, $46 = 0;
+ var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, 
$62 = 0, $63 = 0, $64 = 0;
+ var $65 = 0, $66 = 0, $67 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, dest = 
0, label = 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(64|0);
+ $3 = sp;
+ $4 = ($1|0)==(0|0);
+ $5 = ($2|0)!=(12);
+ $or$cond = $4 & $5;
+ if ($or$cond) {
+  $$0 = 45;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $6 = ((($0)) + 128|0);
+ $7 = ((($0)) + 148|0);
+ dest=$7; stop=dest+92|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ HEAP32[$6>>2] = 0;
+ $8 = ((($6)) + 4|0);
+ HEAP32[$8>>2] = 0;
+ $9 = ((($0)) + 136|0);
+ HEAP32[$9>>2] = 0;
+ $10 = ((($0)) + 140|0);
+ HEAP32[$10>>2] = 0;
+ $11 = ((($0)) + 144|0);
+ $12 = HEAP8[$11>>0]|0;
+ $13 = $12 & -4;
+ HEAP8[$11>>0] = $13;
+ $14 = ((($0)) + 56|0);
+ $15 = HEAP8[$14>>0]|0;
+ $16 = $15 & -7;
+ HEAP8[$14>>0] = $16;
+ $17 = ((($0)) + 12|0);
+ $18 = HEAP32[$17>>2]|0;
+ $19 = ((($18)) + 60|0);
+ $20 = HEAP32[$19>>2]|0;
+ $21 = ((($0)) + 496|0);
+ FUNCTION_TABLE_viii[$20 & 127]($21,$1,$2);
+ dest=$3; stop=dest+64|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ $22 = HEAP32[$17>>2]|0;
+ $23 = ((($22)) + 44|0);
+ $24 = HEAP32[$23>>2]|0;
+ FUNCTION_TABLE_viiii[$24 & 63]($21,$3,$3,64);
+ $25 = (__gcry_poly1305_init($7,$3,32)|0);
+ $26 = $3;
+ $27 = $26;
+ HEAP32[$27>>2] = 0;
+ $28 = (($26) + 4)|0;
+ $29 = $28;
+ HEAP32[$29>>2] = 0;
+ $30 = ((($3)) + 8|0);
+ $31 = $30;
+ $32 = $31;
+ HEAP32[$32>>2] = 0;
+ $33 = (($31) + 4)|0;
+ $34 = $33;
+ HEAP32[$34>>2] = 0;
+ $35 = ((($3)) + 16|0);
+ $36 = $35;
+ $37 = $36;
+ HEAP32[$37>>2] = 0;
+ $38 = (($36) + 4)|0;
+ $39 = $38;
+ HEAP32[$39>>2] = 0;
+ $40 = ((($3)) + 24|0);
+ $41 = $40;
+ $42 = $41;
+ HEAP32[$42>>2] = 0;
+ $43 = (($41) + 4)|0;
+ $44 = $43;
+ HEAP32[$44>>2] = 0;
+ $45 = ((($3)) + 32|0);
+ $46 = $45;
+ $47 = $46;
+ HEAP32[$47>>2] = 0;
+ $48 = (($46) + 4)|0;
+ $49 = $48;
+ HEAP32[$49>>2] = 0;
+ $50 = ((($3)) + 40|0);
+ $51 = $50;
+ $52 = $51;
+ HEAP32[$52>>2] = 0;
+ $53 = (($51) + 4)|0;
+ $54 = $53;
+ HEAP32[$54>>2] = 0;
+ $55 = ((($3)) + 48|0);
+ $56 = $55;
+ $57 = $56;
+ HEAP32[$57>>2] = 0;
+ $58 = (($56) + 4)|0;
+ $59 = $58;
+ HEAP32[$59>>2] = 0;
+ $60 = ((($3)) + 56|0);
+ $61 = $60;
+ $62 = $61;
+ HEAP32[$62>>2] = 0;
+ $63 = (($61) + 4)|0;
+ $64 = $63;
+ HEAP32[$64>>2] = 0;
+ $65 = ($25|0)==(0);
+ if (!($65)) {
+  $$0 = $25;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $66 = HEAP8[$14>>0]|0;
+ $67 = $66 | 2;
+ HEAP8[$14>>0] = $67;
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_selftest_helper_cbc($0,$1,$2,$3,$4,$5,$6) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ var $$ = 0, $$0 = 0, $$0129156 = 0, $$03449$i = 0, $$03449$i136$us = 0, 
$$03548$i = 0, $$03548$i137$us = 0, $$03647$i = 0, $$03647$i138$us = 0, $$037$i 
= 0, $$037$i142$us = 0, $$039$i = 0, $$039$i141$us = 0, $$041$i = 0, 
$$041$i140$us = 0, $$050$i = 0, $$050$i135$us = 0, $$1$i = 0, $$1$i143$us = 0, 
$$1152 = 0;
+ var $$13845$i = 0, $$13845$i147 = 0, $$13845$i147$us = 0, $$14044$i = 0, 
$$14044$i148 = 0, $$14044$i148$us = 0, $$14243$i = 0, $$14243$i149 = 0, 
$$14243$i149$us = 0, $$2151 = 0, $$2151$us = 0, $$246$i = 0, $$246$i146 = 0, 
$$246$i146$us = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0;
+ var $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, $12 = 0, $13 = 0, $14 = 
0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
+ var $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;
+ var $39 = 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, $53 = 0, $54 = 0, $55 = 
0, $56 = 0, $57 = 0, $58 = 0;
+ var $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;
+ var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, 
$85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, 
$93 = 0, $94 = 0, $95 = 0;
+ var $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond161 = 0, 
$or$cond$i = 0, $scevgep$i = 0, $scevgep$i131 = 0, $scevgep61$i = 0, 
$scevgep61$i132$us = 0, $scevgep63$i = 0, $scevgep63$i133$us = 0, label = 0, sp 
= 0;
+ sp = STACKTOP;
+ $7 = (($6) + 15)|0;
+ $8 = $7 & -16;
+ $9 = $5 << 1;
+ $10 = Math_imul($5, $4)|0;
+ $11 = ($10*3)|0;
+ $12 = (($9) + 16)|0;
+ $13 = (($12) + ($11))|0;
+ $14 = (($13) + ($8))|0;
+ $15 = (__gcry_calloc(1,$14)|0);
+ $16 = ($15|0)==(0|0);
+ if ($16) {
+  $$0 = 64554;
+  return ($$0|0);
+ }
+ $17 = $15;
+ $18 = (0 - ($17))|0;
+ $19 = $18 & 15;
+ $20 = (($15) + ($19)|0);
+ $21 = (($20) + ($8)|0);
+ $22 = (($21) + ($5)|0);
+ $23 = (($22) + ($5)|0);
+ $24 = (($23) + ($10)|0);
+ $25 = (($24) + ($10)|0);
+ $26 = (FUNCTION_TABLE_iiii[$1 & 127]($20,16208,16)|0);
+ $27 = ($26|0)==(0);
+ if (!($27)) {
+  __gcry_free($15);
+  $$0 = 64540;
+  return ($$0|0);
+ }
+ _memset(($21|0),78,($5|0))|0;
+ _memset(($22|0),78,($5|0))|0;
+ $28 = ($5|0)>(0);
+ if ($28) {
+  $$0129156 = 0;
+  while(1) {
+   $29 = $$0129156&255;
+   $30 = (($23) + ($$0129156)|0);
+   HEAP8[$30>>0] = $29;
+   $31 = (($$0129156) + 1)|0;
+   $exitcond161 = ($31|0)==($5|0);
+   if ($exitcond161) {
+    break;
+   } else {
+    $$0129156 = $31;
+   }
+  }
+ }
+ $32 = $25;
+ $33 = $21;
+ $34 = $23;
+ $35 = $34 | $33;
+ $36 = $35 | $32;
+ $37 = $36 & 3;
+ $38 = ($37|0)==(0);
+ $39 = ($5>>>0)>(3);
+ $or$cond$i = $39 & $38;
+ if ($or$cond$i) {
+  $40 = (($5) + -4)|0;
+  $41 = $40 & -4;
+  $42 = (($41) + 4)|0;
+  $scevgep61$i = (($23) + ($42)|0);
+  $$03449$i = $23;$$03548$i = $21;$$03647$i = $25;$$050$i = $5;
+  while(1) {
+   $43 = ((($$03548$i)) + 4|0);
+   $44 = HEAP32[$$03548$i>>2]|0;
+   $45 = ((($$03449$i)) + 4|0);
+   $46 = HEAP32[$$03449$i>>2]|0;
+   $47 = $46 ^ $44;
+   $48 = ((($$03647$i)) + 4|0);
+   HEAP32[$$03647$i>>2] = $47;
+   $49 = (($$050$i) + -4)|0;
+   $50 = ($49>>>0)>(3);
+   if ($50) {
+    $$03449$i = $45;$$03548$i = $43;$$03647$i = $48;$$050$i = $49;
+   } else {
+    break;
+   }
+  }
+  $scevgep$i = (($21) + ($42)|0);
+  $scevgep63$i = (($25) + ($42)|0);
+  $51 = (($40) - ($41))|0;
+  $$037$i = $scevgep61$i;$$039$i = $scevgep$i;$$041$i = $scevgep63$i;$$1$i = 
$51;
+ } else {
+  $$037$i = $23;$$039$i = $21;$$041$i = $25;$$1$i = $5;
+ }
+ $52 = ($$1$i|0)==(0);
+ if (!($52)) {
+  $$13845$i = $$037$i;$$14044$i = $$039$i;$$14243$i = $$041$i;$$246$i = $$1$i;
+  while(1) {
+   $53 = ((($$14044$i)) + 1|0);
+   $54 = HEAP8[$$14044$i>>0]|0;
+   $55 = ((($$13845$i)) + 1|0);
+   $56 = HEAP8[$$13845$i>>0]|0;
+   $57 = $56 ^ $54;
+   $58 = ((($$14243$i)) + 1|0);
+   HEAP8[$$14243$i>>0] = $57;
+   $59 = (($$246$i) + -1)|0;
+   $60 = ($59|0)==(0);
+   if ($60) {
+    break;
+   } else {
+    $$13845$i = $55;$$14044$i = $53;$$14243$i = $58;$$246$i = $59;
+   }
+  }
+ }
+ (FUNCTION_TABLE_iiii[$2 & 127]($20,$25,$25)|0);
+ _memcpy(($21|0),($25|0),($5|0))|0;
+ FUNCTION_TABLE_viiiii[$3 & 127]($20,$22,$24,$25,1);
+ $61 = (_memcmp($24,$23,$5)|0);
+ $62 = ($61|0)==(0);
+ if (!($62)) {
+  __gcry_free($15);
+  $$0 = 64491;
+  return ($$0|0);
+ }
+ $63 = (_memcmp($22,$21,$5)|0);
+ $64 = ($63|0)==(0);
+ if (!($64)) {
+  __gcry_free($15);
+  $$0 = 64491;
+  return ($$0|0);
+ }
+ _memset(($21|0),95,($5|0))|0;
+ _memset(($22|0),95,($5|0))|0;
+ $65 = ($10|0)>(0);
+ L32: do {
+  if ($65) {
+   $$1152 = 0;
+   while(1) {
+    $66 = $$1152&255;
+    $67 = (($23) + ($$1152)|0);
+    HEAP8[$67>>0] = $66;
+    $68 = (($$1152) + 1)|0;
+    $exitcond = ($68|0)==($10|0);
+    if ($exitcond) {
+     break;
+    } else {
+     $$1152 = $68;
+    }
+   }
+   if ($65) {
+    $69 = (($5) + -4)|0;
+    $70 = $69 & -4;
+    $71 = (($70) + 4)|0;
+    $scevgep$i131 = (($21) + ($71)|0);
+    $72 = (($69) - ($70))|0;
+    if (!($39)) {
+     $100 = ($5|0)==(0);
+     $$2151 = 0;
+     while(1) {
+      $101 = (($25) + ($$2151)|0);
+      if (!($100)) {
+       $102 = (($23) + ($$2151)|0);
+       $$13845$i147 = $102;$$14044$i148 = $21;$$14243$i149 = $101;$$246$i146 = 
$5;
+       while(1) {
+        $103 = ((($$14044$i148)) + 1|0);
+        $104 = HEAP8[$$14044$i148>>0]|0;
+        $105 = ((($$13845$i147)) + 1|0);
+        $106 = HEAP8[$$13845$i147>>0]|0;
+        $107 = $106 ^ $104;
+        $108 = ((($$14243$i149)) + 1|0);
+        HEAP8[$$14243$i149>>0] = $107;
+        $109 = (($$246$i146) + -1)|0;
+        $110 = ($109|0)==(0);
+        if ($110) {
+         break;
+        } else {
+         $$13845$i147 = $105;$$14044$i148 = $103;$$14243$i149 = 
$108;$$246$i146 = $109;
+        }
+       }
+      }
+      (FUNCTION_TABLE_iiii[$2 & 127]($20,$101,$101)|0);
+      _memcpy(($21|0),($101|0),($5|0))|0;
+      $111 = (($$2151) + ($5))|0;
+      $112 = ($111|0)<($10|0);
+      if ($112) {
+       $$2151 = $111;
+      } else {
+       break L32;
+      }
+     }
+    }
+    $$2151$us = 0;
+    while(1) {
+     $73 = (($25) + ($$2151$us)|0);
+     $74 = (($23) + ($$2151$us)|0);
+     $75 = $73;
+     $76 = $75 | $33;
+     $77 = $74;
+     $78 = $76 | $77;
+     $79 = $78 & 3;
+     $80 = ($79|0)==(0);
+     if ($80) {
+      $scevgep61$i132$us = (($74) + ($71)|0);
+      $$03449$i136$us = $74;$$03548$i137$us = $21;$$03647$i138$us = 
$73;$$050$i135$us = $5;
+      while(1) {
+       $81 = ((($$03548$i137$us)) + 4|0);
+       $82 = HEAP32[$$03548$i137$us>>2]|0;
+       $83 = ((($$03449$i136$us)) + 4|0);
+       $84 = HEAP32[$$03449$i136$us>>2]|0;
+       $85 = $84 ^ $82;
+       $86 = ((($$03647$i138$us)) + 4|0);
+       HEAP32[$$03647$i138$us>>2] = $85;
+       $87 = (($$050$i135$us) + -4)|0;
+       $88 = ($87>>>0)>(3);
+       if ($88) {
+        $$03449$i136$us = $83;$$03548$i137$us = $81;$$03647$i138$us = 
$86;$$050$i135$us = $87;
+       } else {
+        break;
+       }
+      }
+      $scevgep63$i133$us = (($73) + ($71)|0);
+      $$037$i142$us = $scevgep61$i132$us;$$039$i141$us = 
$scevgep$i131;$$041$i140$us = $scevgep63$i133$us;$$1$i143$us = $72;
+     } else {
+      $$037$i142$us = $74;$$039$i141$us = $21;$$041$i140$us = $73;$$1$i143$us 
= $5;
+     }
+     $89 = ($$1$i143$us|0)==(0);
+     if (!($89)) {
+      $$13845$i147$us = $$037$i142$us;$$14044$i148$us = 
$$039$i141$us;$$14243$i149$us = $$041$i140$us;$$246$i146$us = $$1$i143$us;
+      while(1) {
+       $90 = ((($$14044$i148$us)) + 1|0);
+       $91 = HEAP8[$$14044$i148$us>>0]|0;
+       $92 = ((($$13845$i147$us)) + 1|0);
+       $93 = HEAP8[$$13845$i147$us>>0]|0;
+       $94 = $93 ^ $91;
+       $95 = ((($$14243$i149$us)) + 1|0);
+       HEAP8[$$14243$i149$us>>0] = $94;
+       $96 = (($$246$i146$us) + -1)|0;
+       $97 = ($96|0)==(0);
+       if ($97) {
+        break;
+       } else {
+        $$13845$i147$us = $92;$$14044$i148$us = $90;$$14243$i149$us = 
$95;$$246$i146$us = $96;
+       }
+      }
+     }
+     (FUNCTION_TABLE_iiii[$2 & 127]($20,$73,$73)|0);
+     _memcpy(($21|0),($73|0),($5|0))|0;
+     $98 = (($$2151$us) + ($5))|0;
+     $99 = ($98|0)<($10|0);
+     if ($99) {
+      $$2151$us = $98;
+     } else {
+      break;
+     }
+    }
+   }
+  }
+ } while(0);
+ FUNCTION_TABLE_viiiii[$3 & 127]($20,$22,$24,$25,$4);
+ $113 = (_memcmp($24,$23,$10)|0);
+ $114 = ($113|0)==(0);
+ if ($114) {
+  $115 = (_memcmp($22,$21,$5)|0);
+  $116 = ($115|0)==(0);
+  __gcry_free($15);
+  $$ = $116 ? 0 : 64491;
+  $$0 = $$;
+  return ($$0|0);
+ } else {
+  __gcry_free($15);
+  $$0 = 64491;
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function __gcry_selftest_helper_cfb($0,$1,$2,$3,$4,$5,$6) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ var $$ = 0, $$0 = 0, $$0121148 = 0, $$03449$i = 0, $$03449$i128$us = 0, 
$$03548$i = 0, $$03548$i129$us = 0, $$03647$i = 0, $$03647$i130$us = 0, $$037$i 
= 0, $$037$i134$us = 0, $$039$i = 0, $$039$i133$us = 0, $$041$i = 0, 
$$041$i132$us = 0, $$050$i = 0, $$050$i127$us = 0, $$1$i = 0, $$1$i135$us = 0, 
$$1144 = 0;
+ var $$13845$i = 0, $$13845$i139 = 0, $$13845$i139$us = 0, $$14044$i = 0, 
$$14044$i140 = 0, $$14044$i140$us = 0, $$14243$i = 0, $$14243$i141 = 0, 
$$14243$i141$us = 0, $$2143 = 0, $$2143$us = 0, $$246$i = 0, $$246$i138 = 0, 
$$246$i138$us = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0;
+ var $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, $12 = 0, $13 = 0, $14 = 
0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
+ var $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;
+ var $39 = 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, $53 = 0, $54 = 0, $55 = 
0, $56 = 0, $57 = 0, $58 = 0;
+ var $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;
+ var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, 
$85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, 
$93 = 0, $94 = 0, $95 = 0;
+ var $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond153 = 0, 
$or$cond$i = 0, $scevgep$i = 0, $scevgep$i123$us = 0, $scevgep61$i = 0, 
$scevgep61$i124$us = 0, $scevgep63$i = 0, $scevgep63$i125 = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ $7 = (($6) + 15)|0;
+ $8 = $7 & -16;
+ $9 = $5 << 1;
+ $10 = Math_imul($5, $4)|0;
+ $11 = ($10*3)|0;
+ $12 = (($9) + 16)|0;
+ $13 = (($12) + ($11))|0;
+ $14 = (($13) + ($8))|0;
+ $15 = (__gcry_calloc(1,$14)|0);
+ $16 = ($15|0)==(0|0);
+ if ($16) {
+  $$0 = 64554;
+  return ($$0|0);
+ }
+ $17 = $15;
+ $18 = (0 - ($17))|0;
+ $19 = $18 & 15;
+ $20 = (($15) + ($19)|0);
+ $21 = (($20) + ($8)|0);
+ $22 = (($21) + ($5)|0);
+ $23 = (($22) + ($5)|0);
+ $24 = (($23) + ($10)|0);
+ $25 = (($24) + ($10)|0);
+ $26 = (FUNCTION_TABLE_iiii[$1 & 127]($20,16224,16)|0);
+ $27 = ($26|0)==(0);
+ if (!($27)) {
+  __gcry_free($15);
+  $$0 = 64540;
+  return ($$0|0);
+ }
+ _memset(($21|0),-45,($5|0))|0;
+ _memset(($22|0),-45,($5|0))|0;
+ $28 = ($5|0)>(0);
+ if ($28) {
+  $$0121148 = 0;
+  while(1) {
+   $29 = $$0121148&255;
+   $30 = (($23) + ($$0121148)|0);
+   HEAP8[$30>>0] = $29;
+   $31 = (($$0121148) + 1)|0;
+   $exitcond153 = ($31|0)==($5|0);
+   if ($exitcond153) {
+    break;
+   } else {
+    $$0121148 = $31;
+   }
+  }
+ }
+ (FUNCTION_TABLE_iiii[$2 & 127]($20,$25,$21)|0);
+ $32 = $23;
+ $33 = $21;
+ $34 = $25;
+ $35 = $32 | $33;
+ $36 = $35 | $34;
+ $37 = $36 & 3;
+ $38 = ($37|0)==(0);
+ $39 = ($5>>>0)>(3);
+ $or$cond$i = $39 & $38;
+ if ($or$cond$i) {
+  $40 = (($5) + -4)|0;
+  $41 = $40 & -4;
+  $42 = (($41) + 4)|0;
+  $scevgep61$i = (($25) + ($42)|0);
+  $$03449$i = $23;$$03548$i = $25;$$03647$i = $21;$$050$i = $5;
+  while(1) {
+   $43 = ((($$03449$i)) + 4|0);
+   $44 = HEAP32[$$03449$i>>2]|0;
+   $45 = ((($$03548$i)) + 4|0);
+   $46 = HEAP32[$$03548$i>>2]|0;
+   $47 = $46 ^ $44;
+   HEAP32[$$03548$i>>2] = $47;
+   $48 = ((($$03647$i)) + 4|0);
+   HEAP32[$$03647$i>>2] = $47;
+   $49 = (($$050$i) + -4)|0;
+   $50 = ($49>>>0)>(3);
+   if ($50) {
+    $$03449$i = $43;$$03548$i = $45;$$03647$i = $48;$$050$i = $49;
+   } else {
+    break;
+   }
+  }
+  $scevgep$i = (($23) + ($42)|0);
+  $scevgep63$i = (($21) + ($42)|0);
+  $51 = (($40) - ($41))|0;
+  $$037$i = $scevgep$i;$$039$i = $scevgep61$i;$$041$i = $scevgep63$i;$$1$i = 
$51;
+ } else {
+  $$037$i = $23;$$039$i = $25;$$041$i = $21;$$1$i = $5;
+ }
+ $52 = ($$1$i|0)==(0);
+ if (!($52)) {
+  $$13845$i = $$037$i;$$14044$i = $$039$i;$$14243$i = $$041$i;$$246$i = $$1$i;
+  while(1) {
+   $53 = ((($$13845$i)) + 1|0);
+   $54 = HEAP8[$$13845$i>>0]|0;
+   $55 = ((($$14044$i)) + 1|0);
+   $56 = HEAP8[$$14044$i>>0]|0;
+   $57 = $56 ^ $54;
+   HEAP8[$$14044$i>>0] = $57;
+   $58 = ((($$14243$i)) + 1|0);
+   HEAP8[$$14243$i>>0] = $57;
+   $59 = (($$246$i) + -1)|0;
+   $60 = ($59|0)==(0);
+   if ($60) {
+    break;
+   } else {
+    $$13845$i = $53;$$14044$i = $55;$$14243$i = $58;$$246$i = $59;
+   }
+  }
+ }
+ FUNCTION_TABLE_viiiii[$3 & 127]($20,$22,$24,$25,1);
+ $61 = (_memcmp($24,$23,$5)|0);
+ $62 = ($61|0)==(0);
+ if (!($62)) {
+  __gcry_free($15);
+  $$0 = 64580;
+  return ($$0|0);
+ }
+ $63 = (_memcmp($22,$21,$5)|0);
+ $64 = ($63|0)==(0);
+ if (!($64)) {
+  __gcry_free($15);
+  $$0 = 64580;
+  return ($$0|0);
+ }
+ _memset(($21|0),-26,($5|0))|0;
+ _memset(($22|0),-26,($5|0))|0;
+ $65 = ($10|0)>(0);
+ L32: do {
+  if ($65) {
+   $$1144 = 0;
+   while(1) {
+    $66 = $$1144&255;
+    $67 = (($23) + ($$1144)|0);
+    HEAP8[$67>>0] = $66;
+    $68 = (($$1144) + 1)|0;
+    $exitcond = ($68|0)==($10|0);
+    if ($exitcond) {
+     break;
+    } else {
+     $$1144 = $68;
+    }
+   }
+   if ($65) {
+    $69 = (($5) + -4)|0;
+    $70 = $69 & -4;
+    $71 = (($70) + 4)|0;
+    $scevgep63$i125 = (($21) + ($71)|0);
+    $72 = (($69) - ($70))|0;
+    if (!($39)) {
+     $100 = ($5|0)==(0);
+     $$2143 = 0;
+     while(1) {
+      $101 = (($25) + ($$2143)|0);
+      (FUNCTION_TABLE_iiii[$2 & 127]($20,$101,$21)|0);
+      if (!($100)) {
+       $102 = (($23) + ($$2143)|0);
+       $$13845$i139 = $102;$$14044$i140 = $101;$$14243$i141 = $21;$$246$i138 = 
$5;
+       while(1) {
+        $103 = ((($$13845$i139)) + 1|0);
+        $104 = HEAP8[$$13845$i139>>0]|0;
+        $105 = ((($$14044$i140)) + 1|0);
+        $106 = HEAP8[$$14044$i140>>0]|0;
+        $107 = $106 ^ $104;
+        HEAP8[$$14044$i140>>0] = $107;
+        $108 = ((($$14243$i141)) + 1|0);
+        HEAP8[$$14243$i141>>0] = $107;
+        $109 = (($$246$i138) + -1)|0;
+        $110 = ($109|0)==(0);
+        if ($110) {
+         break;
+        } else {
+         $$13845$i139 = $103;$$14044$i140 = $105;$$14243$i141 = 
$108;$$246$i138 = $109;
+        }
+       }
+      }
+      $111 = (($$2143) + ($5))|0;
+      $112 = ($111|0)<($10|0);
+      if ($112) {
+       $$2143 = $111;
+      } else {
+       break L32;
+      }
+     }
+    }
+    $$2143$us = 0;
+    while(1) {
+     $73 = (($25) + ($$2143$us)|0);
+     (FUNCTION_TABLE_iiii[$2 & 127]($20,$73,$21)|0);
+     $74 = (($23) + ($$2143$us)|0);
+     $75 = $74;
+     $76 = $73;
+     $77 = $76 | $33;
+     $78 = $77 | $75;
+     $79 = $78 & 3;
+     $80 = ($79|0)==(0);
+     if ($80) {
+      $scevgep$i123$us = (($74) + ($71)|0);
+      $$03449$i128$us = $74;$$03548$i129$us = $73;$$03647$i130$us = 
$21;$$050$i127$us = $5;
+      while(1) {
+       $81 = ((($$03449$i128$us)) + 4|0);
+       $82 = HEAP32[$$03449$i128$us>>2]|0;
+       $83 = ((($$03548$i129$us)) + 4|0);
+       $84 = HEAP32[$$03548$i129$us>>2]|0;
+       $85 = $84 ^ $82;
+       HEAP32[$$03548$i129$us>>2] = $85;
+       $86 = ((($$03647$i130$us)) + 4|0);
+       HEAP32[$$03647$i130$us>>2] = $85;
+       $87 = (($$050$i127$us) + -4)|0;
+       $88 = ($87>>>0)>(3);
+       if ($88) {
+        $$03449$i128$us = $81;$$03548$i129$us = $83;$$03647$i130$us = 
$86;$$050$i127$us = $87;
+       } else {
+        break;
+       }
+      }
+      $scevgep61$i124$us = (($73) + ($71)|0);
+      $$037$i134$us = $scevgep$i123$us;$$039$i133$us = 
$scevgep61$i124$us;$$041$i132$us = $scevgep63$i125;$$1$i135$us = $72;
+     } else {
+      $$037$i134$us = $74;$$039$i133$us = $73;$$041$i132$us = $21;$$1$i135$us 
= $5;
+     }
+     $89 = ($$1$i135$us|0)==(0);
+     if (!($89)) {
+      $$13845$i139$us = $$037$i134$us;$$14044$i140$us = 
$$039$i133$us;$$14243$i141$us = $$041$i132$us;$$246$i138$us = $$1$i135$us;
+      while(1) {
+       $90 = ((($$13845$i139$us)) + 1|0);
+       $91 = HEAP8[$$13845$i139$us>>0]|0;
+       $92 = ((($$14044$i140$us)) + 1|0);
+       $93 = HEAP8[$$14044$i140$us>>0]|0;
+       $94 = $93 ^ $91;
+       HEAP8[$$14044$i140$us>>0] = $94;
+       $95 = ((($$14243$i141$us)) + 1|0);
+       HEAP8[$$14243$i141$us>>0] = $94;
+       $96 = (($$246$i138$us) + -1)|0;
+       $97 = ($96|0)==(0);
+       if ($97) {
+        break;
+       } else {
+        $$13845$i139$us = $90;$$14044$i140$us = $92;$$14243$i141$us = 
$95;$$246$i138$us = $96;
+       }
+      }
+     }
+     $98 = (($$2143$us) + ($5))|0;
+     $99 = ($98|0)<($10|0);
+     if ($99) {
+      $$2143$us = $98;
+     } else {
+      break;
+     }
+    }
+   }
+  }
+ } while(0);
+ FUNCTION_TABLE_viiiii[$3 & 127]($20,$22,$24,$25,$4);
+ $113 = (_memcmp($24,$23,$10)|0);
+ $114 = ($113|0)==(0);
+ if ($114) {
+  $115 = (_memcmp($22,$21,$5)|0);
+  $116 = ($115|0)==(0);
+  __gcry_free($15);
+  $$ = $116 ? 0 : 64580;
+  $$0 = $$;
+  return ($$0|0);
+ } else {
+  __gcry_free($15);
+  $$0 = 64580;
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function __gcry_selftest_helper_ctr($0,$1,$2,$3,$4,$5,$6) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ var $$0 = 0, $$0236308 = 0, $$0237271$us = 0, $$0241267 = 0, $$1238275$us = 
0, $$1304 = 0, $$2239243$us = 0, $$2299 = 0, $$3240247$us = 0, $$3295 = 0, 
$$4280 = 0, $$4280$us = 0, $$5242 = 0, $$6252 = 0, $$6252$us = 0, $10 = 0, $100 
= 0, $101 = 0, $102 = 0, $103 = 0;
+ var $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;
+ var $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, 
$129 = 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;
+ var $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, $40 = 0, $41 = 
0, $42 = 0, $43 = 0, $44 = 0;
+ var $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;
+ var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, 
$72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, 
$80 = 0, $81 = 0, $82 = 0;
+ var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, 
$90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 
0, $99 = 0, $exitcond = 0, $exitcond316 = 0;
+ var $exitcond317 = 0, $exitcond318 = 0, $exitcond319 = 0, $exitcond320 = 0, 
$or$cond = 0, $or$cond313 = 0, $or$cond315 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $7 = (($6) + 15)|0;
+ $8 = $7 & -16;
+ $9 = $5 << 1;
+ $10 = Math_imul($5, $4)|0;
+ $11 = $10 << 2;
+ $12 = (($9) + 16)|0;
+ $13 = (($12) + ($11))|0;
+ $14 = (($13) + ($8))|0;
+ $15 = (__gcry_calloc(1,$14)|0);
+ $16 = ($15|0)==(0|0);
+ if ($16) {
+  $$0 = 64554;
+  return ($$0|0);
+ }
+ $17 = $15;
+ $18 = (0 - ($17))|0;
+ $19 = $18 & 15;
+ $20 = (($15) + ($19)|0);
+ $21 = (($20) + ($8)|0);
+ $22 = (($21) + ($5)|0);
+ $23 = (($22) + ($5)|0);
+ $24 = (($23) + ($10)|0);
+ $25 = (($24) + ($10)|0);
+ $26 = (($25) + ($10)|0);
+ $27 = (FUNCTION_TABLE_iiii[$1 & 127]($20,16240,16)|0);
+ $28 = ($27|0)==(0);
+ if (!($28)) {
+  __gcry_free($15);
+  $$0 = 64540;
+  return ($$0|0);
+ }
+ _memset(($21|0),-1,($5|0))|0;
+ $29 = ($5|0)>(0);
+ if ($29) {
+  $$0236308 = 0;
+  while(1) {
+   $30 = $$0236308&255;
+   $31 = (($23) + ($$0236308)|0);
+   HEAP8[$31>>0] = $30;
+   $32 = (($$0236308) + 1)|0;
+   $exitcond320 = ($32|0)==($5|0);
+   if ($exitcond320) {
+    break;
+   } else {
+    $$0236308 = $32;
+   }
+  }
+  (FUNCTION_TABLE_iiii[$2 & 127]($20,$25,$21)|0);
+  if ($29) {
+   $$1304 = 0;
+   while(1) {
+    $33 = (($23) + ($$1304)|0);
+    $34 = HEAP8[$33>>0]|0;
+    $35 = (($25) + ($$1304)|0);
+    $36 = HEAP8[$35>>0]|0;
+    $37 = $36 ^ $34;
+    HEAP8[$35>>0] = $37;
+    $38 = (($$1304) + 1)|0;
+    $exitcond319 = ($38|0)==($5|0);
+    if ($exitcond319) {
+     break;
+    } else {
+     $$1304 = $38;
+    }
+   }
+   if ($29) {
+    $$2299 = $5;
+    while(1) {
+     $39 = (($$2299) + -1)|0;
+     $40 = (($21) + ($39)|0);
+     $41 = HEAP8[$40>>0]|0;
+     $42 = (($41) + 1)<<24>>24;
+     HEAP8[$40>>0] = $42;
+     $43 = ($42<<24>>24)==(0);
+     $44 = ($$2299|0)>(1);
+     $or$cond315 = $43 & $44;
+     if ($or$cond315) {
+      $$2299 = $39;
+     } else {
+      break;
+     }
+    }
+   }
+  }
+ } else {
+  (FUNCTION_TABLE_iiii[$2 & 127]($20,$25,$21)|0);
+ }
+ _memset(($22|0),-1,($5|0))|0;
+ FUNCTION_TABLE_viiiii[$3 & 127]($20,$22,$24,$25,1);
+ $45 = (_memcmp($24,$23,$5)|0);
+ $46 = ($45|0)==(0);
+ if (!($46)) {
+  __gcry_free($15);
+  $$0 = 64629;
+  return ($$0|0);
+ }
+ $47 = (_memcmp($22,$21,$5)|0);
+ $48 = ($47|0)==(0);
+ if (!($48)) {
+  __gcry_free($15);
+  $$0 = 64629;
+  return ($$0|0);
+ }
+ $49 = (($5) + -4)|0;
+ _memset(($21|0),87,($49|0))|0;
+ $50 = (($5) + -1)|0;
+ $51 = (($21) + ($50)|0);
+ HEAP8[$51>>0] = 1;
+ $52 = (($5) + -2)|0;
+ $53 = (($21) + ($52)|0);
+ HEAP8[$53>>0] = 0;
+ $54 = (($5) + -3)|0;
+ $55 = (($21) + ($54)|0);
+ HEAP8[$55>>0] = 0;
+ $56 = (($21) + ($49)|0);
+ HEAP8[$56>>0] = 0;
+ _memset(($22|0),87,($49|0))|0;
+ $57 = (($22) + ($50)|0);
+ HEAP8[$57>>0] = 1;
+ $58 = (($22) + ($52)|0);
+ HEAP8[$58>>0] = 0;
+ $59 = (($22) + ($54)|0);
+ HEAP8[$59>>0] = 0;
+ $60 = (($22) + ($49)|0);
+ HEAP8[$60>>0] = 0;
+ $61 = ($10|0)>(0);
+ L30: do {
+  if ($61) {
+   $$3295 = 0;
+   while(1) {
+    $62 = $$3295&255;
+    $63 = (($23) + ($$3295)|0);
+    HEAP8[$63>>0] = $62;
+    $64 = (($24) + ($$3295)|0);
+    HEAP8[$64>>0] = $62;
+    $65 = (($$3295) + 1)|0;
+    $exitcond318 = ($65|0)==($10|0);
+    if ($exitcond318) {
+     break;
+    } else {
+     $$3295 = $65;
+    }
+   }
+   if ($61) {
+    if (!($29)) {
+     $$4280 = 0;
+     while(1) {
+      $82 = (($25) + ($$4280)|0);
+      (FUNCTION_TABLE_iiii[$2 & 127]($20,$82,$21)|0);
+      $83 = (($$4280) + ($5))|0;
+      $84 = ($83|0)<($10|0);
+      if ($84) {
+       $$4280 = $83;
+      } else {
+       break L30;
+      }
+     }
+    }
+    $$4280$us = 0;
+    while(1) {
+     $66 = (($25) + ($$4280$us)|0);
+     (FUNCTION_TABLE_iiii[$2 & 127]($20,$66,$21)|0);
+     $$0237271$us = 0;
+     while(1) {
+      $75 = (($$0237271$us) + ($$4280$us))|0;
+      $76 = (($23) + ($75)|0);
+      $77 = HEAP8[$76>>0]|0;
+      $78 = (($25) + ($75)|0);
+      $79 = HEAP8[$78>>0]|0;
+      $80 = $79 ^ $77;
+      HEAP8[$78>>0] = $80;
+      $81 = (($$0237271$us) + 1)|0;
+      $exitcond317 = ($81|0)==($5|0);
+      if ($exitcond317) {
+       break;
+      } else {
+       $$0237271$us = $81;
+      }
+     }
+     $$1238275$us = $5;
+     while(1) {
+      $67 = (($$1238275$us) + -1)|0;
+      $68 = (($21) + ($67)|0);
+      $69 = HEAP8[$68>>0]|0;
+      $70 = (($69) + 1)<<24>>24;
+      HEAP8[$68>>0] = $70;
+      $71 = ($70<<24>>24)==(0);
+      $72 = ($$1238275$us|0)>(1);
+      $or$cond313 = $71 & $72;
+      if ($or$cond313) {
+       $$1238275$us = $67;
+      } else {
+       break;
+      }
+     }
+     $73 = (($$4280$us) + ($5))|0;
+     $74 = ($73|0)<($10|0);
+     if ($74) {
+      $$4280$us = $73;
+     } else {
+      break;
+     }
+    }
+   }
+  }
+ } while(0);
+ FUNCTION_TABLE_viiiii[$3 & 127]($20,$22,$26,$24,$4);
+ $85 = (_memcmp($26,$25,$10)|0);
+ $86 = ($85|0)==(0);
+ if (!($86)) {
+  __gcry_free($15);
+  $$0 = 64629;
+  return ($$0|0);
+ }
+ $87 = (_memcmp($22,$21,$5)|0);
+ $88 = ($87|0)==(0);
+ if (!($88)) {
+  __gcry_free($15);
+  $$0 = 64629;
+  return ($$0|0);
+ }
+ $89 = ($4|0)>(0);
+ L58: do {
+  if ($89) {
+   $90 = ((($21)) + 1|0);
+   $91 = ((($21)) + 2|0);
+   $92 = ((($22)) + 1|0);
+   $93 = ((($22)) + 2|0);
+   $$0241267 = 0;
+   while(1) {
+    _memset(($21|0),-1,($5|0))|0;
+    $96 = HEAP8[$51>>0]|0;
+    $97 = $96&255;
+    $98 = (($97) - ($$0241267))|0;
+    $99 = $98&255;
+    HEAP8[$51>>0] = $99;
+    HEAP8[$90>>0] = 0;
+    HEAP8[$21>>0] = 0;
+    HEAP8[$91>>0] = 7;
+    L62: do {
+     if ($61) {
+      $$5242 = 0;
+      while(1) {
+       $100 = $$5242&255;
+       $101 = (($23) + ($$5242)|0);
+       HEAP8[$101>>0] = $100;
+       $102 = (($$5242) + 1)|0;
+       $exitcond = ($102|0)==($10|0);
+       if ($exitcond) {
+        break;
+       } else {
+        $$5242 = $102;
+       }
+      }
+      if ($61) {
+       if (!($29)) {
+        $$6252 = 0;
+        while(1) {
+         $119 = (($25) + ($$6252)|0);
+         (FUNCTION_TABLE_iiii[$2 & 127]($20,$119,$21)|0);
+         $120 = (($$6252) + ($5))|0;
+         $121 = ($120|0)<($10|0);
+         if ($121) {
+          $$6252 = $120;
+         } else {
+          break L62;
+         }
+        }
+       }
+       $$6252$us = 0;
+       while(1) {
+        $103 = (($25) + ($$6252$us)|0);
+        (FUNCTION_TABLE_iiii[$2 & 127]($20,$103,$21)|0);
+        $$2239243$us = 0;
+        while(1) {
+         $112 = (($$2239243$us) + ($$6252$us))|0;
+         $113 = (($23) + ($112)|0);
+         $114 = HEAP8[$113>>0]|0;
+         $115 = (($25) + ($112)|0);
+         $116 = HEAP8[$115>>0]|0;
+         $117 = $116 ^ $114;
+         HEAP8[$115>>0] = $117;
+         $118 = (($$2239243$us) + 1)|0;
+         $exitcond316 = ($118|0)==($5|0);
+         if ($exitcond316) {
+          break;
+         } else {
+          $$2239243$us = $118;
+         }
+        }
+        $$3240247$us = $5;
+        while(1) {
+         $104 = (($$3240247$us) + -1)|0;
+         $105 = (($21) + ($104)|0);
+         $106 = HEAP8[$105>>0]|0;
+         $107 = (($106) + 1)<<24>>24;
+         HEAP8[$105>>0] = $107;
+         $108 = ($107<<24>>24)==(0);
+         $109 = ($$3240247$us|0)>(1);
+         $or$cond = $108 & $109;
+         if ($or$cond) {
+          $$3240247$us = $104;
+         } else {
+          break;
+         }
+        }
+        $110 = (($$6252$us) + ($5))|0;
+        $111 = ($110|0)<($10|0);
+        if ($111) {
+         $$6252$us = $110;
+        } else {
+         break;
+        }
+       }
+      }
+     }
+    } while(0);
+    _memset(($22|0),-1,($5|0))|0;
+    $122 = HEAP8[$57>>0]|0;
+    $123 = $122&255;
+    $124 = (($123) - ($$0241267))|0;
+    $125 = $124&255;
+    HEAP8[$57>>0] = $125;
+    HEAP8[$92>>0] = 0;
+    HEAP8[$22>>0] = 0;
+    HEAP8[$93>>0] = 7;
+    FUNCTION_TABLE_viiiii[$3 & 127]($20,$22,$24,$25,$4);
+    $126 = (_memcmp($24,$23,$10)|0);
+    $127 = ($126|0)==(0);
+    if (!($127)) {
+     label = 52;
+     break;
+    }
+    $128 = (_memcmp($22,$21,$5)|0);
+    $129 = ($128|0)==(0);
+    $95 = (($$0241267) + 1)|0;
+    if (!($129)) {
+     label = 54;
+     break;
+    }
+    $94 = ($95|0)<($4|0);
+    if ($94) {
+     $$0241267 = $95;
+    } else {
+     break L58;
+    }
+   }
+   if ((label|0) == 52) {
+    __gcry_free($15);
+    $$0 = 64629;
+    return ($$0|0);
+   }
+   else if ((label|0) == 54) {
+    __gcry_free($15);
+    $$0 = 64629;
+    return ($$0|0);
+   }
+  }
+ } while(0);
+ __gcry_free($15);
+ $$0 = 0;
+ return ($$0|0);
+}
+function _ecc_generate($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0$i$i = 0, $$0102110 = 0, $$0105109 = 0, $$076 = 0, $$078 = 0, $$079 = 
0, $$080 = 0, $$081 = 0, $$081$i = 0, $$082 = 0, $$082$i = 0, $$1 = 0, $$1103 = 
0, $$1106 = 0, $$184 = 0, $$187 = 0, $$2 = 0, $$2$i = 0, $$2104 = 0, $$2107 = 0;
+ var $$284$i = 0, $$285 = 0, $$3 = 0, $$3108 = 0, $$byval_copy = 0, 
$$byval_copy71 = 0, $$lobit = 0, $$pre = 0, $$pre$i = 0, $$pre$phi$iZ2D = 0, 
$$pre$phi116Z2D = 0, $$pre$phi118Z2D = 0, $$pre$phi120Z2D = 0, $$pre$phi122Z2D 
= 0, $$pre$phi124Z2D = 0, $$pre$phi2$iZ2D = 0, $$pre1$i = 0, $$pre115 = 0, 
$$pre117 = 0, $$pre119 = 0;
+ var $$pre121 = 0, $$pre123 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 
0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 
0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
+ var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 
= 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 
= 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
+ var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 
= 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 
= 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
+ var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, 
$159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, 
$166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
+ var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, 
$177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, 
$184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
+ var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 
= 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 
0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
+ var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 
= 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 
= 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
+ var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 
= 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 
= 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
+ var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, 
$249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, 
$256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
+ var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, 
$267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, 
$274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
+ var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 
= 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 
= 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
+ var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 
0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 
0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
+ var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 
= 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 
= 0, $329 = 0, $33 = 0, $330 = 0, $34 = 0;
+ var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, 
$42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0;
+ var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, 
$60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 
0, $69 = 0, $7 = 0, $70 = 0;
+ var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, 
$79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, 
$87 = 0, $88 = 0, $89 = 0;
+ var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, 
$97 = 0, $98 = 0, $99 = 0, $or$cond = 0, $or$cond93 = 0, $spec$select = 0, 
$vararg_buffer = 0, $vararg_buffer10 = 0, $vararg_buffer12 = 0, 
$vararg_buffer14 = 0, $vararg_buffer16 = 0, $vararg_buffer18 = 0;
+ var $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, $vararg_ptr1 = 0, $vararg_ptr42 = 0, 
$vararg_ptr43 = 0, $vararg_ptr44 = 0, $vararg_ptr45 = 0, $vararg_ptr46 = 0;
+ var $vararg_ptr47 = 0, $vararg_ptr48 = 0, $vararg_ptr49 = 0, $vararg_ptr50 = 
0, $vararg_ptr51 = 0, $vararg_ptr52 = 0, $vararg_ptr53 = 0, $vararg_ptr54 = 0, 
$vararg_ptr55 = 0, $vararg_ptr56 = 0, $vararg_ptr57 = 0, $vararg_ptr58 = 0, 
$vararg_ptr59 = 0, $vararg_ptr63 = 0, $vararg_ptr64 = 0, $vararg_ptr65 = 0, 
$vararg_ptr66 = 0, $vararg_ptr67 = 0, $vararg_ptr68 = 0, dest = 0;
+ var label = 0, sp = 0, src = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 704|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(704|0);
+ $$byval_copy71 = sp + 660|0;
+ $$byval_copy = sp + 616|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;
+ $2 = sp + 560|0;
+ $3 = sp + 548|0;
+ $4 = sp + 504|0;
+ $5 = sp + 448|0;
+ $6 = sp + 436|0;
+ $7 = sp + 392|0;
+ $8 = sp + 380|0;
+ $9 = sp + 376|0;
+ $10 = sp + 332|0;
+ $11 = sp + 272|0;
+ $12 = sp + 268|0;
+ $13 = sp + 264|0;
+ $14 = sp + 260|0;
+ $15 = sp + 256|0;
+ $16 = sp + 252|0;
+ HEAP32[$12>>2] = 0;
+ HEAP32[$13>>2] = 0;
+ HEAP32[$14>>2] = 0;
+ dest=$10; stop=dest+44|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ dest=$11; stop=dest+60|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ $17 = (__gcry_pk_util_get_nbits($0,$9)|0);
+ $18 = ($17|0)==(0);
+ if (!($18)) {
+  $$187 = $17;
+  STACKTOP = sp;return ($$187|0);
+ }
+ $19 = (__gcry_sexp_find_token($0,64745,0)|0);
+ $20 = ($19|0)==(0|0);
+ if ($20) {
+  $$080 = 0;
+ } else {
+  $21 = (__gcry_sexp_nth_string($19,1)|0);
+  __gcry_sexp_release($19);
+  $22 = ($21|0)==(0|0);
+  if ($22) {
+   $$187 = 65;
+   STACKTOP = sp;return ($$187|0);
+  } else {
+   $$080 = $21;
+  }
+ }
+ $23 = (__gcry_sexp_find_token($0,64705,0)|0);
+ $24 = ($23|0)==(0|0);
+ if ($24) {
+  label = 6;
+ } else {
+  $25 = (__gcry_pk_util_parse_flaglist($23,$14,0)|0);
+  __gcry_sexp_release($23);
+  $26 = ($25|0)==(0);
+  if ($26) {
+   label = 6;
+  } else {
+   $$076 = 0;$$078 = 0;$$079 = 0;$$081 = 0;$$082 = 0;$$2 = 0;$$285 = $25;$$3 = 
0;$$3108 = 0;
+  }
+ }
+ do {
+  if ((label|0) == 6) {
+   $27 = (__gcry_sexp_find_token($0,66452,0)|0);
+   $28 = ($27|0)==(0|0);
+   if (!($28)) {
+    $29 = HEAP32[$14>>2]|0;
+    $30 = $29 | 32;
+    HEAP32[$14>>2] = $30;
+    __gcry_sexp_release($27);
+   }
+   $31 = HEAP32[$9>>2]|0;
+   $32 = ($31|0)!=(0);
+   $33 = ($$080|0)!=(0|0);
+   $or$cond = $33 | $32;
+   if (!($or$cond)) {
+    $$187 = 68;
+    STACKTOP = sp;return ($$187|0);
+   }
+   $34 = (__gcry_ecc_fill_in_curve($31,$$080,$10,$9)|0);
+   __gcry_free($$080);
+   $35 = ($34|0)==(0);
+   if ($35) {
+    $36 = (__gcry_get_debug_flag(1)|0);
+    $37 = ($36|0)==(0);
+    if ($37) {
+     $$pre115 = ((($10)) + 4|0);
+     $$pre117 = ((($10)) + 8|0);
+     $$pre119 = ((($10)) + 12|0);
+     $$pre121 = ((($10)) + 16|0);
+     $$pre$phi116Z2D = $$pre115;$$pre$phi118Z2D = $$pre117;$$pre$phi120Z2D = 
$$pre119;$$pre$phi122Z2D = $$pre121;
+    } else {
+     $38 = HEAP32[$10>>2]|0;
+     $39 = (__gcry_ecc_model2str($38)|0);
+     $40 = ((($10)) + 4|0);
+     $41 = HEAP32[$40>>2]|0;
+     $42 = (__gcry_ecc_dialect2str($41)|0);
+     HEAP32[$vararg_buffer>>2] = $39;
+     $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+     HEAP32[$vararg_ptr1>>2] = $42;
+     __gcry_log_debug(66466,$vararg_buffer);
+     $43 = ((($10)) + 40|0);
+     $44 = HEAP32[$43>>2]|0;
+     $45 = ($44|0)==(0|0);
+     if (!($45)) {
+      HEAP32[$vararg_buffer2>>2] = $44;
+      __gcry_log_debug(66491,$vararg_buffer2);
+     }
+     $46 = ((($10)) + 8|0);
+     $47 = HEAP32[$46>>2]|0;
+     __gcry_log_printmpi(66513,$47);
+     $48 = ((($10)) + 12|0);
+     $49 = HEAP32[$48>>2]|0;
+     __gcry_log_printmpi(66529,$49);
+     $50 = ((($10)) + 16|0);
+     $51 = HEAP32[$50>>2]|0;
+     __gcry_log_printmpi(66545,$51);
+     $52 = ((($10)) + 32|0);
+     $53 = HEAP32[$52>>2]|0;
+     __gcry_log_printmpi(66561,$53);
+     $54 = ((($10)) + 36|0);
+     $55 = HEAP32[$54>>2]|0;
+     __gcry_log_printmpi(66577,$55);
+     $56 = ((($10)) + 20|0);
+     __gcry_mpi_point_log(66593,$56,0);
+     $$pre$phi116Z2D = $40;$$pre$phi118Z2D = $46;$$pre$phi120Z2D = 
$48;$$pre$phi122Z2D = $50;
+    }
+    $57 = HEAP32[$10>>2]|0;
+    $58 = HEAP32[$$pre$phi116Z2D>>2]|0;
+    $59 = HEAP32[$$pre$phi118Z2D>>2]|0;
+    $60 = HEAP32[$$pre$phi120Z2D>>2]|0;
+    $61 = HEAP32[$$pre$phi122Z2D>>2]|0;
+    $62 = (__gcry_mpi_ec_p_internal_new($57,$58,0,$59,$60,$61)|0);
+    $63 = HEAP32[$14>>2]|0;
+    $64 = $63 & 4096;
+    $65 = ($64|0)==(0);
+    if ($65) {
+     $66 = HEAP32[$9>>2]|0;
+     $67 = HEAP32[$$pre$phi118Z2D>>2]|0;
+     $68 = (__gcry_mpi_get_nbits($67)|0);
+     __gcry_mpi_point_init($8);
+     $69 = $63 >>> 5;
+     $70 = $69 & 1;
+     $71 = (2 - ($70))|0;
+     $72 = ((($62)) + 4|0);
+     $73 = HEAP32[$72>>2]|0;
+     $74 = ($73|0)==(1);
+     if ($74) {
+      $75 = (__gcry_mpi_snew(256)|0);
+      $76 = ((($11)) + 56|0);
+      HEAP32[$76>>2] = $75;
+      $77 = (__gcry_random_bytes_secure(32,$71)|0);
+      $78 = HEAP8[$77>>0]|0;
+      $79 = $78 & 63;
+      $80 = $79 | 64;
+      HEAP8[$77>>0] = $80;
+      $81 = ((($77)) + 31|0);
+      $82 = HEAP8[$81>>0]|0;
+      $83 = $82 & -8;
+      HEAP8[$81>>0] = $83;
+      $84 = HEAP32[$76>>2]|0;
+      __gcry_mpi_set_buffer($84,$77,32,0);
+      __gcry_free($77);
+      $$pre$i = HEAP32[$76>>2]|0;
+      $$pre1$i = ((($10)) + 32|0);
+      $$pre$phi$iZ2D = $76;$$pre$phi2$iZ2D = $$pre1$i;$90 = $$pre$i;
+     } else {
+      $85 = ((($10)) + 32|0);
+      $86 = HEAP32[$85>>2]|0;
+      $87 = (__gcry_dsa_gen_k($86,$71)|0);
+      $88 = ((($11)) + 56|0);
+      HEAP32[$88>>2] = $87;
+      $$pre$phi$iZ2D = $88;$$pre$phi2$iZ2D = $85;$90 = $87;
+     }
+     $89 = ((($10)) + 20|0);
+     __gcry_mpi_ec_mul_point($8,$90,$89,$62);
+     $91 = HEAP32[$10>>2]|0;
+     HEAP32[$11>>2] = $91;
+     $92 = HEAP32[$$pre$phi116Z2D>>2]|0;
+     $93 = ((($11)) + 4|0);
+     HEAP32[$93>>2] = $92;
+     $94 = HEAP32[$$pre$phi118Z2D>>2]|0;
+     $95 = (__gcry_mpi_copy($94)|0);
+     $96 = ((($11)) + 8|0);
+     HEAP32[$96>>2] = $95;
+     $97 = HEAP32[$$pre$phi120Z2D>>2]|0;
+     $98 = (__gcry_mpi_copy($97)|0);
+     $99 = ((($11)) + 12|0);
+     HEAP32[$99>>2] = $98;
+     $100 = HEAP32[$$pre$phi122Z2D>>2]|0;
+     $101 = (__gcry_mpi_copy($100)|0);
+     $102 = ((($11)) + 16|0);
+     HEAP32[$102>>2] = $101;
+     $103 = ((($11)) + 20|0);
+     __gcry_mpi_point_init($103);
+     $104 = HEAP32[$103>>2]|0;
+     $105 = HEAP32[$89>>2]|0;
+     (__gcry_mpi_set($104,$105)|0);
+     $106 = ((($11)) + 24|0);
+     $107 = HEAP32[$106>>2]|0;
+     $108 = ((($10)) + 24|0);
+     $109 = HEAP32[$108>>2]|0;
+     (__gcry_mpi_set($107,$109)|0);
+     $110 = ((($11)) + 28|0);
+     $111 = HEAP32[$110>>2]|0;
+     $112 = ((($10)) + 28|0);
+     $113 = HEAP32[$112>>2]|0;
+     (__gcry_mpi_set($111,$113)|0);
+     $114 = HEAP32[$$pre$phi2$iZ2D>>2]|0;
+     $115 = (__gcry_mpi_copy($114)|0);
+     $116 = ((($11)) + 32|0);
+     HEAP32[$116>>2] = $115;
+     $117 = ((($10)) + 36|0);
+     $118 = HEAP32[$117>>2]|0;
+     $119 = (__gcry_mpi_copy($118)|0);
+     $120 = ((($11)) + 36|0);
+     HEAP32[$120>>2] = $119;
+     $121 = ((($11)) + 44|0);
+     __gcry_mpi_point_init($121);
+     $122 = (__gcry_mpi_new($68)|0);
+     $123 = (__gcry_mpi_new($68)|0);
+     $124 = (__gcry_mpi_ec_get_affine($122,$123,$8,$62)|0);
+     $125 = ($124|0)==(0);
+     if (!($125)) {
+      HEAP32[$vararg_buffer5>>2] = 66655;
+      __gcry_log_fatal(66607,$vararg_buffer5);
+      // unreachable;
+     }
+     $126 = HEAP32[$$pre$phi116Z2D>>2]|0;
+     $127 = ($126|0)==(1);
+     do {
+      if ($127) {
+       $128 = HEAP32[$121>>2]|0;
+       $129 = HEAP32[$8>>2]|0;
+       (__gcry_mpi_set($128,$129)|0);
+       $130 = ((($11)) + 48|0);
+       $131 = HEAP32[$130>>2]|0;
+       $132 = ((($8)) + 4|0);
+       $133 = HEAP32[$132>>2]|0;
+       (__gcry_mpi_set($131,$133)|0);
+       $134 = ((($11)) + 52|0);
+       $135 = HEAP32[$134>>2]|0;
+       $136 = ((($8)) + 8|0);
+       $137 = HEAP32[$136>>2]|0;
+       (__gcry_mpi_set($135,$137)|0);
+       $$2$i = $122;$$284$i = $123;
+      } else {
+       $138 = (__gcry_mpi_new($68)|0);
+       $139 = HEAP32[$10>>2]|0;
+       $140 = ($139|0)==(0);
+       $141 = HEAP32[$$pre$phi118Z2D>>2]|0;
+       if ($140) {
+        __gcry_mpi_sub($138,$141,$123);
+       } else {
+        __gcry_mpi_sub($138,$141,$122);
+       }
+       $142 = (__gcry_mpi_cmp($138,$123)|0);
+       $143 = ($142|0)<(0);
+       if (!($143)) {
+        __gcry_mpi_free($138);
+        $151 = HEAP32[$121>>2]|0;
+        $152 = HEAP32[$8>>2]|0;
+        (__gcry_mpi_set($151,$152)|0);
+        $153 = ((($11)) + 48|0);
+        $154 = HEAP32[$153>>2]|0;
+        $155 = ((($8)) + 4|0);
+        $156 = HEAP32[$155>>2]|0;
+        (__gcry_mpi_set($154,$156)|0);
+        $157 = ((($11)) + 52|0);
+        $158 = HEAP32[$157>>2]|0;
+        $159 = ((($8)) + 8|0);
+        $160 = HEAP32[$159>>2]|0;
+        (__gcry_mpi_set($158,$160)|0);
+        $161 = (__gcry_get_debug_flag(1)|0);
+        $162 = ($161|0)==(0);
+        if ($162) {
+         $$2$i = $122;$$284$i = $123;
+         break;
+        }
+        __gcry_log_debug(66697,$vararg_buffer10);
+        $$2$i = $122;$$284$i = $123;
+        break;
+       }
+       $144 = HEAP32[$10>>2]|0;
+       $145 = ($144|0)==(0);
+       if ($145) {
+        __gcry_mpi_free($123);
+        $$081$i = $122;$$082$i = $138;
+       } else {
+        __gcry_mpi_free($122);
+        $$081$i = $138;$$082$i = $123;
+       }
+       $146 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+       $147 = HEAP32[$$pre$phi2$iZ2D>>2]|0;
+       __gcry_mpi_sub($146,$147,$146);
+       $148 = (__gcry_mpi_const(1)|0);
+       (__gcry_mpi_point_set($121,$$081$i,$$082$i,$148)|0);
+       $149 = (__gcry_get_debug_flag(1)|0);
+       $150 = ($149|0)==(0);
+       if ($150) {
+        $$2$i = $$081$i;$$284$i = $$082$i;
+       } else {
+        __gcry_log_debug(66657,$vararg_buffer8);
+        $$2$i = $$081$i;$$284$i = $$082$i;
+       }
+      }
+     } while(0);
+     __gcry_mpi_point_free_parts($8);
+     $163 = $63 & 16384;
+     $164 = ($163|0)==(0);
+     do {
+      if ($164) {
+       $165 = HEAP32[$11>>2]|0;
+       $166 = ($165|0)==(1);
+       $167 = (($66) + -64)|0;
+       if (!($166)) {
+        $168 = (__gcry_mpi_new($167)|0);
+        $169 = (__gcry_mpi_new($167)|0);
+        $170 = (__gcry_mpi_new($167)|0);
+        $171 = (__gcry_mpi_new($167)|0);
+        $172 = (__gcry_mpi_new($167)|0);
+        $173 = (__gcry_get_debug_flag(1)|0);
+        $174 = ($173|0)==(0);
+        if (!($174)) {
+         __gcry_log_debug(66750,$vararg_buffer12);
+        }
+        __gcry_mpi_point_init($6);
+        dest=$$byval_copy; src=$11; stop=dest+44|0; do { 
HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) 
< (stop|0));
+        __gcry_ecc_curve_copy($7,$$byval_copy);
+        dest=$5; src=$7; stop=dest+44|0; do { 
HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) 
< (stop|0));
+        $175 = ((($5)) + 44|0);
+        __gcry_mpi_point_init($175);
+        $176 = HEAP32[$175>>2]|0;
+        $177 = ((($11)) + 44|0);
+        $178 = HEAP32[$177>>2]|0;
+        (__gcry_mpi_set($176,$178)|0);
+        $179 = ((($5)) + 48|0);
+        $180 = HEAP32[$179>>2]|0;
+        $181 = ((($11)) + 48|0);
+        $182 = HEAP32[$181>>2]|0;
+        (__gcry_mpi_set($180,$182)|0);
+        $183 = ((($5)) + 52|0);
+        $184 = HEAP32[$183>>2]|0;
+        $185 = ((($11)) + 52|0);
+        $186 = HEAP32[$185>>2]|0;
+        (__gcry_mpi_set($184,$186)|0);
+        __gcry_mpi_randomize($168,$167,0);
+        $187 = (__gcry_ecc_ecdsa_sign($168,$11,$171,$172,0,0)|0);
+        $188 = ($187|0)==(0);
+        if (!($188)) {
+         __gcry_log_fatal(66764,$vararg_buffer14);
+         // unreachable;
+        }
+        $189 = (__gcry_ecc_ecdsa_verify($168,$5,$171,$172)|0);
+        $190 = ($189|0)==(0);
+        if (!($190)) {
+         __gcry_log_fatal(66794,$vararg_buffer16);
+         // unreachable;
+        }
+        $191 = (__gcry_get_debug_flag(1)|0);
+        $192 = ($191|0)==(0);
+        if (!($192)) {
+         __gcry_log_debug(66832,$vararg_buffer18);
+        }
+        __gcry_mpi_point_free_parts($175);
+        __gcry_ecc_curve_free($5);
+        __gcry_mpi_point_free_parts($6);
+        __gcry_mpi_free($172);
+        __gcry_mpi_free($171);
+        __gcry_mpi_free($170);
+        __gcry_mpi_free($169);
+        __gcry_mpi_free($168);
+        break;
+       }
+       $193 = (__gcry_get_debug_flag(1)|0);
+       $194 = ($193|0)==(0);
+       if (!($194)) {
+        __gcry_log_debug(66750,$vararg_buffer20);
+       }
+       __gcry_mpi_point_init($3);
+       dest=$$byval_copy71; src=$11; stop=dest+44|0; do { 
HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) 
< (stop|0));
+       __gcry_ecc_curve_copy($4,$$byval_copy71);
+       dest=$2; src=$4; stop=dest+44|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; 
dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+       $195 = ((($2)) + 44|0);
+       __gcry_mpi_point_init($195);
+       $196 = HEAP32[$195>>2]|0;
+       $197 = ((($11)) + 44|0);
+       $198 = HEAP32[$197>>2]|0;
+       (__gcry_mpi_set($196,$198)|0);
+       $199 = ((($2)) + 48|0);
+       $200 = HEAP32[$199>>2]|0;
+       $201 = ((($11)) + 48|0);
+       $202 = HEAP32[$201>>2]|0;
+       (__gcry_mpi_set($200,$202)|0);
+       $203 = ((($2)) + 52|0);
+       $204 = HEAP32[$203>>2]|0;
+       $205 = ((($11)) + 52|0);
+       $206 = HEAP32[$205>>2]|0;
+       (__gcry_mpi_set($204,$206)|0);
+       $207 = HEAP32[$93>>2]|0;
+       $208 = ($207|0)==(1);
+       if ($208) {
+        $209 = (__gcry_mpi_new(256)|0);
+        $210 = (__gcry_random_bytes(32,0)|0);
+        $211 = HEAP8[$210>>0]|0;
+        $212 = $211 & 63;
+        $213 = $212 | 64;
+        HEAP8[$210>>0] = $213;
+        $214 = ((($210)) + 31|0);
+        $215 = HEAP8[$214>>0]|0;
+        $216 = $215 & -8;
+        HEAP8[$214>>0] = $216;
+        __gcry_mpi_set_buffer($209,$210,32,0);
+        __gcry_free($210);
+        $$0$i$i = $209;
+       } else {
+        $217 = (__gcry_mpi_new($167)|0);
+        __gcry_mpi_randomize($217,$167,0);
+        $$0$i$i = $217;
+       }
+       $218 = HEAP32[$2>>2]|0;
+       $219 = ((($2)) + 4|0);
+       $220 = HEAP32[$219>>2]|0;
+       $221 = ((($2)) + 8|0);
+       $222 = HEAP32[$221>>2]|0;
+       $223 = ((($2)) + 12|0);
+       $224 = HEAP32[$223>>2]|0;
+       $225 = ((($2)) + 16|0);
+       $226 = HEAP32[$225>>2]|0;
+       $227 = (__gcry_mpi_ec_p_internal_new($218,$220,0,$222,$224,$226)|0);
+       $228 = (__gcry_mpi_new(0)|0);
+       $229 = (__gcry_mpi_new(0)|0);
+       __gcry_mpi_ec_mul_point($3,$$0$i$i,$195,$227);
+       $230 = HEAP32[$93>>2]|0;
+       $231 = ($230|0)==(1);
+       if (!($231)) {
+        $232 = ((($227)) + 36|0);
+        $233 = HEAP32[$232>>2]|0;
+        __gcry_mpi_ec_mul_point($3,$233,$3,$227);
+       }
+       $234 = (__gcry_mpi_ec_get_affine($228,0,$3,$227)|0);
+       $235 = ($234|0)==(0);
+       if (!($235)) {
+        __gcry_log_fatal(66867,$vararg_buffer22);
+        // unreachable;
+       }
+       $236 = ((($2)) + 20|0);
+       __gcry_mpi_ec_mul_point($3,$$0$i$i,$236,$227);
+       $237 = HEAP32[$$pre$phi$iZ2D>>2]|0;
+       __gcry_mpi_ec_mul_point($3,$237,$3,$227);
+       $238 = HEAP32[$93>>2]|0;
+       $239 = ($238|0)==(1);
+       if (!($239)) {
+        $240 = ((($227)) + 36|0);
+        $241 = HEAP32[$240>>2]|0;
+        __gcry_mpi_ec_mul_point($3,$241,$3,$227);
+       }
+       $242 = (__gcry_mpi_ec_get_affine($229,0,$3,$227)|0);
+       $243 = ($242|0)==(0);
+       if (!($243)) {
+        __gcry_log_fatal(66915,$vararg_buffer24);
+        // unreachable;
+       }
+       $244 = (__gcry_mpi_cmp($228,$229)|0);
+       $245 = ($244|0)==(0);
+       if ($245) {
+        __gcry_mpi_free($228);
+        __gcry_mpi_free($229);
+        __gcry_mpi_ec_free($227);
+        __gcry_mpi_point_free_parts($195);
+        __gcry_ecc_curve_free($2);
+        __gcry_mpi_point_free_parts($3);
+        __gcry_mpi_free($$0$i$i);
+        break;
+       } else {
+        __gcry_log_fatal(66964,$vararg_buffer26);
+        // unreachable;
+       }
+      }
+     } while(0);
+     $$0102110 = $$284$i;$$0105109 = $$2$i;$$pre$phi124Z2D = $103;
+    } else {
+     $246 = (__gcry_ecc_eddsa_genkey($11,$10,$62,$63)|0);
+     $247 = ($246|0)==(0);
+     if (!($247)) {
+      $$076 = 0;$$078 = 0;$$079 = $62;$$081 = 0;$$082 = 0;$$2 = 0;$$285 = 
$246;$$3 = 0;$$3108 = 0;
+      break;
+     }
+     $$pre123 = ((($11)) + 20|0);
+     $$0102110 = 0;$$0105109 = 0;$$pre$phi124Z2D = $$pre123;
+    }
+    $248 = (__gcry_mpi_new(0)|0);
+    $249 = (__gcry_mpi_new(0)|0);
+    $250 = (__gcry_mpi_ec_get_affine($248,$249,$$pre$phi124Z2D,$62)|0);
+    $251 = ($250|0)==(0);
+    if (!($251)) {
+     HEAP32[$vararg_buffer28>>2] = 66983;
+     __gcry_log_fatal(66607,$vararg_buffer28);
+     // unreachable;
+    }
+    $252 = ((($11)) + 8|0);
+    $253 = HEAP32[$252>>2]|0;
+    $254 = (__gcry_ecc_ec2os($248,$249,$253)|0);
+    $255 = ((($11)) + 4|0);
+    $256 = HEAP32[$255>>2]|0;
+    $257 = ($256|0)==(1);
+    do {
+     if ($257) {
+      $258 = HEAP32[$14>>2]|0;
+      $259 = $258 & 2048;
+      $260 = ($259|0)==(0);
+      if ($260) {
+       $261 = ((($11)) + 44|0);
+       $262 = $258 >>> 10;
+       $$lobit = $262 & 1;
+       $263 = 
(__gcry_ecc_eddsa_encodepoint($261,$62,$248,$249,$$lobit,$15,$16)|0);
+       $264 = ($263|0)==(0);
+       if ($264) {
+        $265 = (__gcry_mpi_new(0)|0);
+        $266 = HEAP32[$15>>2]|0;
+        $267 = HEAP32[$16>>2]|0;
+        $268 = $267 << 3;
+        (__gcry_mpi_set_opaque($265,$266,$268)|0);
+        $$1 = $265;$$2104 = $$0102110;$$2107 = $$0105109;
+        break;
+       }
+       $$187 = $263;
+       STACKTOP = sp;return ($$187|0);
+      } else {
+       label = 71;
+      }
+     } else {
+      label = 71;
+     }
+    } while(0);
+    if ((label|0) == 71) {
+     $269 = ($$0105109|0)==(0|0);
+     if ($269) {
+      $270 = (__gcry_mpi_new(0)|0);
+      $271 = (__gcry_mpi_new(0)|0);
+      $272 = ((($11)) + 44|0);
+      $273 = (__gcry_mpi_ec_get_affine($270,$271,$272,$62)|0);
+      $274 = ($273|0)==(0);
+      if ($274) {
+       $$1103 = $271;$$1106 = $270;
+      } else {
+       HEAP32[$vararg_buffer31>>2] = 66655;
+       __gcry_log_fatal(66607,$vararg_buffer31);
+       // unreachable;
+      }
+     } else {
+      $$1103 = $$0102110;$$1106 = $$0105109;
+     }
+     $275 = HEAP32[$252>>2]|0;
+     $276 = (__gcry_ecc_ec2os($$1106,$$1103,$275)|0);
+     $$1 = $276;$$2104 = $$1103;$$2107 = $$1106;
+    }
+    $277 = ((($11)) + 56|0);
+    $278 = HEAP32[$277>>2]|0;
+    HEAP32[$277>>2] = 0;
+    $279 = ((($10)) + 40|0);
+    $280 = HEAP32[$279>>2]|0;
+    $281 = ($280|0)==(0|0);
+    if (!($281)) {
+     HEAP32[$vararg_buffer34>>2] = $280;
+     $282 = (__gcry_sexp_build($12,0,66985,$vararg_buffer34)|0);
+     $283 = ($282|0)==(0);
+     if (!($283)) {
+      $$076 = $278;$$078 = $254;$$079 = $62;$$081 = $249;$$082 = $248;$$2 = 
$$1;$$285 = $282;$$3 = $$2104;$$3108 = $$2107;
+      break;
+     }
+    }
+    $284 = HEAP32[$14>>2]|0;
+    $285 = $284 & 4608;
+    $286 = ($285|0)==(0);
+    if ($286) {
+     $294 = $284;
+    } else {
+     $287 = $284 & 512;
+     $288 = ($287|0)==(0);
+     $289 = ($285|0)==(4608);
+     $290 = $288 ? 66996 : 67010;
+     $spec$select = $289 ? 67024 : $290;
+     $291 = (__gcry_sexp_build($13,0,$spec$select,$vararg_buffer37)|0);
+     $292 = ($291|0)==(0);
+     if (!($292)) {
+      $$076 = $278;$$078 = $254;$$079 = $62;$$081 = $249;$$082 = $248;$$2 = 
$$1;$$285 = $291;$$3 = $$2104;$$3108 = $$2107;
+      break;
+     }
+     $$pre = HEAP32[$14>>2]|0;
+     $294 = $$pre;
+    }
+    $293 = $294 & 512;
+    $295 = ($293|0)==(0);
+    $296 = HEAP32[$279>>2]|0;
+    $297 = ($296|0)==(0|0);
+    $or$cond93 = $295 | $297;
+    $298 = HEAP32[$12>>2]|0;
+    $299 = HEAP32[$13>>2]|0;
+    if ($or$cond93) {
+     HEAP32[$vararg_buffer60>>2] = $298;
+     $vararg_ptr63 = ((($vararg_buffer60)) + 4|0);
+     HEAP32[$vararg_ptr63>>2] = $299;
+     $vararg_ptr64 = ((($vararg_buffer60)) + 8|0);
+     HEAP32[$vararg_ptr64>>2] = $$1;
+     $vararg_ptr65 = ((($vararg_buffer60)) + 12|0);
+     HEAP32[$vararg_ptr65>>2] = $298;
+     $vararg_ptr66 = ((($vararg_buffer60)) + 16|0);
+     HEAP32[$vararg_ptr66>>2] = $299;
+     $vararg_ptr67 = ((($vararg_buffer60)) + 20|0);
+     HEAP32[$vararg_ptr67>>2] = $$1;
+     $vararg_ptr68 = ((($vararg_buffer60)) + 24|0);
+     HEAP32[$vararg_ptr68>>2] = $278;
+     $310 = (__gcry_sexp_build($1,0,67180,$vararg_buffer60)|0);
+     $$184 = $310;
+    } else {
+     $300 = HEAP32[$252>>2]|0;
+     $301 = ((($11)) + 12|0);
+     $302 = HEAP32[$301>>2]|0;
+     $303 = ((($11)) + 16|0);
+     $304 = HEAP32[$303>>2]|0;
+     $305 = ((($11)) + 32|0);
+     $306 = HEAP32[$305>>2]|0;
+     $307 = ((($11)) + 36|0);
+     $308 = HEAP32[$307>>2]|0;
+     HEAP32[$vararg_buffer39>>2] = $298;
+     $vararg_ptr42 = ((($vararg_buffer39)) + 4|0);
+     HEAP32[$vararg_ptr42>>2] = $299;
+     $vararg_ptr43 = ((($vararg_buffer39)) + 8|0);
+     HEAP32[$vararg_ptr43>>2] = $300;
+     $vararg_ptr44 = ((($vararg_buffer39)) + 12|0);
+     HEAP32[$vararg_ptr44>>2] = $302;
+     $vararg_ptr45 = ((($vararg_buffer39)) + 16|0);
+     HEAP32[$vararg_ptr45>>2] = $304;
+     $vararg_ptr46 = ((($vararg_buffer39)) + 20|0);
+     HEAP32[$vararg_ptr46>>2] = $254;
+     $vararg_ptr47 = ((($vararg_buffer39)) + 24|0);
+     HEAP32[$vararg_ptr47>>2] = $306;
+     $vararg_ptr48 = ((($vararg_buffer39)) + 28|0);
+     HEAP32[$vararg_ptr48>>2] = $308;
+     $vararg_ptr49 = ((($vararg_buffer39)) + 32|0);
+     HEAP32[$vararg_ptr49>>2] = $$1;
+     $vararg_ptr50 = ((($vararg_buffer39)) + 36|0);
+     HEAP32[$vararg_ptr50>>2] = $298;
+     $vararg_ptr51 = ((($vararg_buffer39)) + 40|0);
+     HEAP32[$vararg_ptr51>>2] = $299;
+     $vararg_ptr52 = ((($vararg_buffer39)) + 44|0);
+     HEAP32[$vararg_ptr52>>2] = $300;
+     $vararg_ptr53 = ((($vararg_buffer39)) + 48|0);
+     HEAP32[$vararg_ptr53>>2] = $302;
+     $vararg_ptr54 = ((($vararg_buffer39)) + 52|0);
+     HEAP32[$vararg_ptr54>>2] = $304;
+     $vararg_ptr55 = ((($vararg_buffer39)) + 56|0);
+     HEAP32[$vararg_ptr55>>2] = $254;
+     $vararg_ptr56 = ((($vararg_buffer39)) + 60|0);
+     HEAP32[$vararg_ptr56>>2] = $306;
+     $vararg_ptr57 = ((($vararg_buffer39)) + 64|0);
+     HEAP32[$vararg_ptr57>>2] = $308;
+     $vararg_ptr58 = ((($vararg_buffer39)) + 68|0);
+     HEAP32[$vararg_ptr58>>2] = $$1;
+     $vararg_ptr59 = ((($vararg_buffer39)) + 72|0);
+     HEAP32[$vararg_ptr59>>2] = $278;
+     $309 = (__gcry_sexp_build($1,0,67044,$vararg_buffer39)|0);
+     $$184 = $309;
+    }
+    $311 = ($$184|0)==(0);
+    if ($311) {
+     $312 = (__gcry_get_debug_flag(1)|0);
+     $313 = ($312|0)==(0);
+     if ($313) {
+      $$076 = $278;$$078 = $254;$$079 = $62;$$081 = $249;$$082 = $248;$$2 = 
$$1;$$285 = 0;$$3 = $$2104;$$3108 = $$2107;
+     } else {
+      $314 = HEAP32[$252>>2]|0;
+      __gcry_log_printmpi(67256,$314);
+      $315 = ((($11)) + 12|0);
+      $316 = HEAP32[$315>>2]|0;
+      __gcry_log_printmpi(67272,$316);
+      $317 = ((($11)) + 16|0);
+      $318 = HEAP32[$317>>2]|0;
+      __gcry_log_printmpi(67288,$318);
+      __gcry_log_printmpi(67304,$254);
+      $319 = ((($11)) + 32|0);
+      $320 = HEAP32[$319>>2]|0;
+      __gcry_log_printmpi(67320,$320);
+      $321 = ((($11)) + 36|0);
+      $322 = HEAP32[$321>>2]|0;
+      __gcry_log_printmpi(67336,$322);
+      __gcry_log_printmpi(67352,$$1);
+      __gcry_log_printmpi(67368,$278);
+      $323 = HEAP32[$14>>2]|0;
+      $324 = $323 & 4096;
+      $325 = ($324|0)==(0);
+      if ($325) {
+       $$076 = $278;$$078 = $254;$$079 = $62;$$081 = $249;$$082 = $248;$$2 = 
$$1;$$285 = 0;$$3 = $$2104;$$3108 = $$2107;
+      } else {
+       __gcry_log_debug(67384,$vararg_buffer69);
+       $$076 = $278;$$078 = $254;$$079 = $62;$$081 = $249;$$082 = $248;$$2 = 
$$1;$$285 = 0;$$3 = $$2104;$$3108 = $$2107;
+      }
+     }
+    } else {
+     $$076 = $278;$$078 = $254;$$079 = $62;$$081 = $249;$$082 = $248;$$2 = 
$$1;$$285 = $$184;$$3 = $$2104;$$3108 = $$2107;
+    }
+   } else {
+    $$076 = 0;$$078 = 0;$$079 = 0;$$081 = 0;$$082 = 0;$$2 = 0;$$285 = $34;$$3 
= 0;$$3108 = 0;
+   }
+  }
+ } while(0);
+ __gcry_mpi_free($$076);
+ __gcry_mpi_free($$2);
+ __gcry_mpi_free($$078);
+ __gcry_ecc_curve_free($11);
+ $326 = ((($11)) + 44|0);
+ __gcry_mpi_point_free_parts($326);
+ $327 = ((($11)) + 56|0);
+ $328 = HEAP32[$327>>2]|0;
+ __gcry_mpi_free($328);
+ __gcry_ecc_curve_free($10);
+ __gcry_mpi_free($$082);
+ __gcry_mpi_free($$081);
+ __gcry_mpi_free($$3108);
+ __gcry_mpi_free($$3);
+ __gcry_mpi_ec_free($$079);
+ $329 = HEAP32[$13>>2]|0;
+ __gcry_sexp_release($329);
+ $330 = HEAP32[$12>>2]|0;
+ __gcry_sexp_release($330);
+ $$187 = $$285;
+ STACKTOP = sp;return ($$187|0);
+}
+function _ecc_check_secret_key($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$032 = 0, $$033 = 0, $$034 = 0, $$036 = 0, $$045$i = 0, $$046$i 
= 0, $$1 = 0, $$1$i = 0, $$135 = 0, $$144$i = 0, $$2 = 0, $$lobit = 0, $$pre = 
0, $$pre$phiZ2D = 0, $$pre38 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0;
+ var $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;
+ var $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, $136 = 0, $137 = 0, $138 = 0;
+ var $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 
= 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 
= 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0;
+ var $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 
= 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 
= 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0;
+ var $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 
= 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 
= 0, $19 = 0, $190 = 0, $191 = 0, $2 = 0;
+ var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, 
$28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0;
+ var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, 
$46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0;
+ var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, 
$64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, 
$72 = 0, $73 = 0, $74 = 0;
+ var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, 
$82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, 
$90 = 0, $91 = 0, $92 = 0;
+ var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, 
$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;
+ var $vararg_buffer9 = 0, $vararg_ptr1 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 
0, $vararg_ptr17 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, 
$vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, dest = 
0, label = 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 240|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(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;
+ $1 = sp + 220|0;
+ $2 = sp + 216|0;
+ $3 = sp + 212|0;
+ $4 = sp + 208|0;
+ $5 = sp + 148|0;
+ HEAP32[$2>>2] = 0;
+ HEAP32[$3>>2] = 0;
+ HEAP32[$4>>2] = 0;
+ dest=$5; stop=dest+60|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ $6 = (__gcry_sexp_find_token($0,64705,0)|0);
+ $7 = ($6|0)==(0|0);
+ if ($7) {
+  label = 5;
+ } else {
+  $8 = (__gcry_pk_util_parse_flaglist($6,$2,0)|0);
+  $9 = ($8|0)==(0);
+  if ($9) {
+   $$pre = HEAP32[$2>>2]|0;
+   $10 = $$pre & 512;
+   $11 = ($10|0)==(0);
+   if ($11) {
+    label = 5;
+   } else {
+    $12 = ((($5)) + 8|0);
+    $13 = ((($5)) + 12|0);
+    $14 = ((($5)) + 16|0);
+    $15 = ((($5)) + 32|0);
+    $16 = ((($5)) + 36|0);
+    $17 = ((($5)) + 56|0);
+    HEAP32[$vararg_buffer>>2] = $12;
+    $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+    HEAP32[$vararg_ptr1>>2] = $13;
+    $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+    HEAP32[$vararg_ptr2>>2] = $14;
+    $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+    HEAP32[$vararg_ptr3>>2] = $3;
+    $vararg_ptr4 = ((($vararg_buffer)) + 16|0);
+    HEAP32[$vararg_ptr4>>2] = $15;
+    $vararg_ptr5 = ((($vararg_buffer)) + 20|0);
+    HEAP32[$vararg_ptr5>>2] = $16;
+    $vararg_ptr6 = ((($vararg_buffer)) + 24|0);
+    HEAP32[$vararg_ptr6>>2] = $4;
+    $vararg_ptr7 = ((($vararg_buffer)) + 28|0);
+    HEAP32[$vararg_ptr7>>2] = $17;
+    $vararg_ptr8 = ((($vararg_buffer)) + 32|0);
+    HEAP32[$vararg_ptr8>>2] = 0;
+    $18 = (__gcry_sexp_extract_param($0,0,65045,$vararg_buffer)|0);
+    $$034 = $18;
+    label = 6;
+   }
+  } else {
+   $$0 = 0;$$033 = $6;$$1 = 0;$$2 = $8;
+  }
+ }
+ if ((label|0) == 5) {
+  $19 = ((($5)) + 56|0);
+  HEAP32[$vararg_buffer9>>2] = $4;
+  $vararg_ptr12 = ((($vararg_buffer9)) + 4|0);
+  HEAP32[$vararg_ptr12>>2] = $19;
+  $vararg_ptr13 = ((($vararg_buffer9)) + 8|0);
+  HEAP32[$vararg_ptr13>>2] = 0;
+  $20 = (__gcry_sexp_extract_param($0,0,65064,$vararg_buffer9)|0);
+  $$034 = $20;
+  label = 6;
+ }
+ do {
+  if ((label|0) == 6) {
+   $21 = ($$034|0)==(0);
+   if ($21) {
+    __gcry_sexp_release($6);
+    $22 = (__gcry_sexp_find_token($0,64745,5)|0);
+    $23 = ($22|0)==(0|0);
+    if ($23) {
+     $$032 = 0;
+    } else {
+     $24 = (__gcry_sexp_nth_string($22,1)|0);
+     $25 = ($24|0)==(0|0);
+     if ($25) {
+      $$032 = 0;
+     } else {
+      $26 = ((($5)) + 4|0);
+      $27 = ((($5)) + 8|0);
+      $28 = ((($5)) + 12|0);
+      $29 = ((($5)) + 16|0);
+      $30 = ((($5)) + 32|0);
+      $31 = ((($5)) + 36|0);
+      $32 = 
(__gcry_ecc_update_curve_param($24,$5,$26,$27,$28,$29,$3,$30,$31)|0);
+      $33 = ($32|0)==(0);
+      if ($33) {
+       $$032 = $24;
+      } else {
+       $$036 = $32;
+       STACKTOP = sp;return ($$036|0);
+      }
+     }
+    }
+    $34 = HEAP32[$3>>2]|0;
+    $35 = ($34|0)==(0|0);
+    if (!($35)) {
+     $36 = ((($5)) + 20|0);
+     __gcry_mpi_point_init($36);
+     $37 = HEAP32[$3>>2]|0;
+     $38 = (__gcry_ecc_os2ec($36,$37)|0);
+     $39 = ($38|0)==(0);
+     if (!($39)) {
+      $$0 = 0;$$033 = $22;$$1 = $$032;$$2 = $38;
+      break;
+     }
+    }
+    $40 = ($$032|0)==(0|0);
+    if ($40) {
+     $41 = HEAP32[$2>>2]|0;
+     $42 = $41 >>> 11;
+     $43 = $42 & 2;
+     HEAP32[$5>>2] = $43;
+     $44 = $41 >>> 12;
+     $$lobit = $44 & 1;
+     $45 = ((($5)) + 4|0);
+     HEAP32[$45>>2] = $$lobit;
+    }
+    $46 = (__gcry_get_debug_flag(1)|0);
+    $47 = ($46|0)==(0);
+    if ($47) {
+     $$pre38 = ((($5)) + 8|0);
+     $$pre$phiZ2D = $$pre38;
+    } else {
+     $48 = HEAP32[$5>>2]|0;
+     $49 = (__gcry_ecc_model2str($48)|0);
+     $50 = ((($5)) + 4|0);
+     $51 = HEAP32[$50>>2]|0;
+     $52 = (__gcry_ecc_dialect2str($51)|0);
+     HEAP32[$vararg_buffer14>>2] = $49;
+     $vararg_ptr17 = ((($vararg_buffer14)) + 4|0);
+     HEAP32[$vararg_ptr17>>2] = $52;
+     __gcry_log_debug(65973,$vararg_buffer14);
+     $53 = ((($5)) + 40|0);
+     $54 = HEAP32[$53>>2]|0;
+     $55 = ($54|0)==(0|0);
+     if (!($55)) {
+      HEAP32[$vararg_buffer18>>2] = $54;
+      __gcry_log_debug(65997,$vararg_buffer18);
+     }
+     $56 = ((($5)) + 8|0);
+     $57 = HEAP32[$56>>2]|0;
+     __gcry_log_printmpi(66018,$57);
+     $58 = ((($5)) + 12|0);
+     $59 = HEAP32[$58>>2]|0;
+     __gcry_log_printmpi(66034,$59);
+     $60 = ((($5)) + 16|0);
+     $61 = HEAP32[$60>>2]|0;
+     __gcry_log_printmpi(66050,$61);
+     $62 = ((($5)) + 20|0);
+     __gcry_mpi_point_log(66066,$62,0);
+     $63 = ((($5)) + 32|0);
+     $64 = HEAP32[$63>>2]|0;
+     __gcry_log_printmpi(66080,$64);
+     $65 = ((($5)) + 36|0);
+     $66 = HEAP32[$65>>2]|0;
+     __gcry_log_printmpi(66096,$66);
+     $67 = HEAP32[$4>>2]|0;
+     __gcry_log_printmpi(66112,$67);
+     $68 = (__gcry_fips_mode()|0);
+     $69 = ($68|0)==(0);
+     if ($69) {
+      $70 = ((($5)) + 56|0);
+      $71 = HEAP32[$70>>2]|0;
+      __gcry_log_printmpi(66128,$71);
+      $$pre$phiZ2D = $56;
+     } else {
+      $$pre$phiZ2D = $56;
+     }
+    }
+    $72 = HEAP32[$$pre$phiZ2D>>2]|0;
+    $73 = ($72|0)==(0|0);
+    if ($73) {
+     $$0 = 0;$$033 = $22;$$1 = $$032;$$2 = 68;
+    } else {
+     $74 = ((($5)) + 12|0);
+     $75 = HEAP32[$74>>2]|0;
+     $76 = ($75|0)==(0|0);
+     if ($76) {
+      $$0 = 0;$$033 = $22;$$1 = $$032;$$2 = 68;
+     } else {
+      $77 = ((($5)) + 16|0);
+      $78 = HEAP32[$77>>2]|0;
+      $79 = ($78|0)==(0|0);
+      if ($79) {
+       $$0 = 0;$$033 = $22;$$1 = $$032;$$2 = 68;
+      } else {
+       $80 = ((($5)) + 20|0);
+       $81 = HEAP32[$80>>2]|0;
+       $82 = ($81|0)==(0|0);
+       if ($82) {
+        $$0 = 0;$$033 = $22;$$1 = $$032;$$2 = 68;
+       } else {
+        $83 = ((($5)) + 32|0);
+        $84 = HEAP32[$83>>2]|0;
+        $85 = ($84|0)==(0|0);
+        if ($85) {
+         $$0 = 0;$$033 = $22;$$1 = $$032;$$2 = 68;
+        } else {
+         $86 = ((($5)) + 36|0);
+         $87 = HEAP32[$86>>2]|0;
+         $88 = ($87|0)==(0|0);
+         if ($88) {
+          $$0 = 0;$$033 = $22;$$1 = $$032;$$2 = 68;
+         } else {
+          $89 = ((($5)) + 56|0);
+          $90 = HEAP32[$89>>2]|0;
+          $91 = ($90|0)==(0|0);
+          if ($91) {
+           $$0 = 0;$$033 = $22;$$1 = $$032;$$2 = 68;
+          } else {
+           $92 = HEAP32[$5>>2]|0;
+           $93 = ((($5)) + 4|0);
+           $94 = HEAP32[$93>>2]|0;
+           $95 = (__gcry_mpi_ec_p_internal_new($92,$94,0,$72,$75,$78)|0);
+           $96 = HEAP32[$4>>2]|0;
+           $97 = ($96|0)==(0|0);
+           if ($97) {
+            $$0 = $95;$$033 = $22;$$1 = $$032;$$2 = 68;
+           } else {
+            $98 = ((($5)) + 44|0);
+            __gcry_mpi_point_init($98);
+            $99 = ((($95)) + 4|0);
+            $100 = HEAP32[$99>>2]|0;
+            $101 = ($100|0)==(1);
+            $102 = HEAP32[$4>>2]|0;
+            if ($101) {
+             $103 = (__gcry_ecc_eddsa_decodepoint($102,$95,$98,0,0)|0);
+             $$135 = $103;
+            } else {
+             $104 = (__gcry_ecc_os2ec($98,$102)|0);
+             $$135 = $104;
+            }
+            $105 = ($$135|0)==(0);
+            if ($105) {
+             $106 = HEAP32[$2>>2]|0;
+             __gcry_mpi_point_init($1);
+             $107 = (__gcry_mpi_new(0)|0);
+             $108 = HEAP32[$95>>2]|0;
+             $109 = ($108|0)==(1);
+             if ($109) {
+              $$045$i = 0;
+             } else {
+              $110 = (__gcry_mpi_new(0)|0);
+              $$045$i = $110;
+             }
+             $111 = ((($5)) + 20|0);
+             $112 = (__gcry_mpi_ec_curve_point($111,$95)|0);
+             $113 = ($112|0)==(0);
+             L45: do {
+              if ($113) {
+               $114 = (__gcry_get_debug_flag(1)|0);
+               $115 = ($114|0)==(0);
+               if ($115) {
+                $$046$i = 7;$$1$i = 0;$$144$i = 0;
+                break;
+               }
+               __gcry_log_debug(66144,$vararg_buffer21);
+               $$046$i = 7;$$1$i = 0;$$144$i = 0;
+              } else {
+               $116 = ((($5)) + 28|0);
+               $117 = HEAP32[$116>>2]|0;
+               $118 = (__gcry_mpi_cmp_ui($117,0)|0);
+               $119 = ($118|0)==(0);
+               if ($119) {
+                $120 = (__gcry_get_debug_flag(1)|0);
+                $121 = ($120|0)==(0);
+                if ($121) {
+                 $$046$i = 7;$$1$i = 0;$$144$i = 0;
+                 break;
+                }
+                __gcry_log_debug(66196,$vararg_buffer23);
+                $$046$i = 7;$$1$i = 0;$$144$i = 0;
+                break;
+               }
+               $122 = HEAP32[$93>>2]|0;
+               $123 = ($122|0)==(1);
+               do {
+                if (!($123)) {
+                 $124 = HEAP32[$83>>2]|0;
+                 __gcry_mpi_ec_mul_point($1,$124,$111,$95);
+                 $125 = ((($1)) + 8|0);
+                 $126 = HEAP32[$125>>2]|0;
+                 $127 = (__gcry_mpi_cmp_ui($126,0)|0);
+                 $128 = ($127|0)==(0);
+                 if ($128) {
+                  break;
+                 }
+                 $129 = (__gcry_get_debug_flag(1)|0);
+                 $130 = ($129|0)==(0);
+                 if ($130) {
+                  $$046$i = 7;$$1$i = 0;$$144$i = 0;
+                  break L45;
+                 }
+                 __gcry_log_debug(66241,$vararg_buffer25);
+                 $$046$i = 7;$$1$i = 0;$$144$i = 0;
+                 break L45;
+                }
+               } while(0);
+               $131 = ((($5)) + 52|0);
+               $132 = HEAP32[$131>>2]|0;
+               $133 = (__gcry_mpi_cmp_ui($132,0)|0);
+               $134 = ($133|0)==(0);
+               if ($134) {
+                $135 = (__gcry_get_debug_flag(1)|0);
+                $136 = ($135|0)==(0);
+                if ($136) {
+                 $$046$i = 7;$$1$i = 0;$$144$i = 0;
+                 break;
+                }
+                __gcry_log_debug(66288,$vararg_buffer27);
+                $$046$i = 7;$$1$i = 0;$$144$i = 0;
+                break;
+               }
+               $137 = HEAP32[$89>>2]|0;
+               $138 = (__gcry_ecc_compute_public($1,$95,$111,$137)|0);
+               $139 = ($138|0)==(0|0);
+               if ($139) {
+                $140 = (__gcry_get_debug_flag(1)|0);
+                $141 = ($140|0)==(0);
+                if ($141) {
+                 $$046$i = 7;$$1$i = 0;$$144$i = 0;
+                 break;
+                }
+                __gcry_log_debug(66334,$vararg_buffer29);
+                $$046$i = 7;$$1$i = 0;$$144$i = 0;
+                break;
+               }
+               $142 = (__gcry_mpi_ec_get_affine($107,$$045$i,$1,$95)|0);
+               $143 = ($142|0)==(0);
+               if (!($143)) {
+                $144 = (__gcry_get_debug_flag(1)|0);
+                $145 = ($144|0)==(0);
+                if ($145) {
+                 $$046$i = 7;$$1$i = 0;$$144$i = 0;
+                 break;
+                }
+                __gcry_log_debug(66288,$vararg_buffer31);
+                $$046$i = 7;$$1$i = 0;$$144$i = 0;
+                break;
+               }
+               $146 = $106 & 4096;
+               $147 = ($146|0)==(0);
+               if (!($147)) {
+                $$046$i = 0;$$1$i = 0;$$144$i = 0;
+                break;
+               }
+               $148 = HEAP32[$131>>2]|0;
+               $149 = (__gcry_mpi_cmp_ui($148,1)|0);
+               $150 = ($149|0)==(0);
+               if ($150) {
+                $151 = HEAP32[$98>>2]|0;
+                $152 = (__gcry_mpi_cmp($107,$151)|0);
+                $153 = ($152|0)==(0);
+                if ($153) {
+                 $154 = ($$045$i|0)==(0|0);
+                 if (!($154)) {
+                  $$046$i = 0;$$1$i = 0;$$144$i = 0;
+                  break;
+                 }
+                 $155 = ((($5)) + 48|0);
+                 $156 = HEAP32[$155>>2]|0;
+                 $157 = (__gcry_mpi_cmp(0,$156)|0);
+                 $158 = ($157|0)==(0);
+                 if ($158) {
+                  $$046$i = 0;$$1$i = 0;$$144$i = 0;
+                  break;
+                 }
+                }
+                $159 = (__gcry_get_debug_flag(1)|0);
+                $160 = ($159|0)==(0);
+                if ($160) {
+                 $$046$i = 7;$$1$i = 0;$$144$i = 0;
+                 break;
+                }
+                __gcry_log_debug(66371,$vararg_buffer33);
+                $$046$i = 7;$$1$i = 0;$$144$i = 0;
+                break;
+               }
+               $161 = (__gcry_mpi_new(0)|0);
+               $162 = (__gcry_mpi_new(0)|0);
+               $163 = (__gcry_mpi_ec_get_affine($161,$162,$98,$95)|0);
+               $164 = ($163|0)==(0);
+               if (!($164)) {
+                $165 = (__gcry_get_debug_flag(1)|0);
+                $166 = ($165|0)==(0);
+                if ($166) {
+                 $$046$i = 7;$$1$i = $162;$$144$i = $161;
+                 break;
+                }
+                __gcry_log_debug(66288,$vararg_buffer35);
+                $$046$i = 7;$$1$i = $162;$$144$i = $161;
+                break;
+               }
+               $167 = (__gcry_mpi_cmp($107,$161)|0);
+               $168 = ($167|0)==(0);
+               if ($168) {
+                $169 = (__gcry_mpi_cmp($$045$i,$162)|0);
+                $170 = ($169|0)==(0);
+                if ($170) {
+                 $$046$i = 0;$$1$i = $162;$$144$i = $161;
+                 break;
+                }
+               }
+               $171 = (__gcry_get_debug_flag(1)|0);
+               $172 = ($171|0)==(0);
+               if ($172) {
+                $$046$i = 7;$$1$i = $162;$$144$i = $161;
+                break;
+               }
+               __gcry_log_debug(66371,$vararg_buffer37);
+               $$046$i = 7;$$1$i = $162;$$144$i = $161;
+              }
+             } while(0);
+             __gcry_mpi_free($$144$i);
+             __gcry_mpi_free($107);
+             __gcry_mpi_free($$045$i);
+             __gcry_mpi_free($$1$i);
+             __gcry_mpi_point_free_parts($1);
+             $$0 = $95;$$033 = $22;$$1 = $$032;$$2 = $$046$i;
+            } else {
+             $$0 = $95;$$033 = $22;$$1 = $$032;$$2 = $$135;
+            }
+           }
+          }
+         }
+        }
+       }
+      }
+     }
+    }
+   } else {
+    $$0 = 0;$$033 = $6;$$1 = 0;$$2 = $$034;
+   }
+  }
+ } while(0);
+ __gcry_mpi_ec_free($$0);
+ $173 = ((($5)) + 8|0);
+ $174 = HEAP32[$173>>2]|0;
+ __gcry_mpi_release($174);
+ $175 = ((($5)) + 12|0);
+ $176 = HEAP32[$175>>2]|0;
+ __gcry_mpi_release($176);
+ $177 = ((($5)) + 16|0);
+ $178 = HEAP32[$177>>2]|0;
+ __gcry_mpi_release($178);
+ $179 = HEAP32[$3>>2]|0;
+ __gcry_mpi_release($179);
+ $180 = ((($5)) + 20|0);
+ __gcry_mpi_point_free_parts($180);
+ $181 = ((($5)) + 32|0);
+ $182 = HEAP32[$181>>2]|0;
+ __gcry_mpi_release($182);
+ $183 = ((($5)) + 36|0);
+ $184 = HEAP32[$183>>2]|0;
+ __gcry_mpi_release($184);
+ $185 = HEAP32[$4>>2]|0;
+ __gcry_mpi_release($185);
+ $186 = ((($5)) + 44|0);
+ __gcry_mpi_point_free_parts($186);
+ $187 = ((($5)) + 56|0);
+ $188 = HEAP32[$187>>2]|0;
+ __gcry_mpi_release($188);
+ __gcry_free($$1);
+ __gcry_sexp_release($$033);
+ $189 = (__gcry_get_debug_flag(1)|0);
+ $190 = ($189|0)==(0);
+ if ($190) {
+  $$036 = $$2;
+  STACKTOP = sp;return ($$036|0);
+ }
+ $191 = (_gpg_strerror($$2)|0);
+ HEAP32[$vararg_buffer39>>2] = $191;
+ __gcry_log_debug(66431,$vararg_buffer39);
+ $$036 = $$2;
+ STACKTOP = sp;return ($$036|0);
+}
+function _ecc_encrypt_raw($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$055 = 0, $$056 = 0, $$057 = 0, $$058 = 0, $$05966 = 0, $$1 = 
0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 
0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0;
+ var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 
0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 
= 0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, 
$43 = 0, $44 = 0, $45 = 0;
+ var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $63 = 0;
+ var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, 
$71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 
0, $8 = 0, $80 = 0, $81 = 0;
+ var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, 
$9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, 
$98 = 0, $99 = 0, $or$cond = 0;
+ var $or$cond61 = 0, $or$cond63 = 0, $or$cond65 = 0, $vararg_buffer = 0, 
$vararg_buffer12 = 0, $vararg_buffer15 = 0, $vararg_buffer17 = 0, 
$vararg_buffer19 = 0, $vararg_buffer23 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 
0, $vararg_ptr11 = 0, $vararg_ptr2 = 0, $vararg_ptr22 = 0, $vararg_ptr3 = 0, 
$vararg_ptr4 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, dest = 
0;
+ var label = 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(208|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;
+ $3 = sp + 160|0;
+ $4 = sp + 152|0;
+ $5 = sp + 148|0;
+ $6 = sp + 144|0;
+ $7 = sp + 88|0;
+ $8 = sp + 76|0;
+ HEAP32[$4>>2] = 0;
+ HEAP32[$5>>2] = 0;
+ HEAP32[$6>>2] = 0;
+ dest=$7; stop=dest+56|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ $9 = (_ecc_get_nbits($2)|0);
+ __gcry_pk_util_init_encoding_ctx($3,0,$9);
+ $10 = (__gcry_pk_util_data_to_mpi($1,$6,$3)|0);
+ $11 = ($10|0)==(0);
+ do {
+  if ($11) {
+   $12 = (__gcry_get_debug_flag(1)|0);
+   $13 = ($12|0)==(0);
+   if (!($13)) {
+    $14 = HEAP32[$6>>2]|0;
+    __gcry_log_printmpi(65633,$14);
+   }
+   $15 = HEAP32[$6>>2]|0;
+   $16 = ($15|0)==(0|0);
+   if (!($16)) {
+    $17 = ((($15)) + 12|0);
+    $18 = HEAP32[$17>>2]|0;
+    $19 = $18 & 4;
+    $20 = ($19|0)==(0);
+    if (!($20)) {
+     $$055 = 79;$$056 = 0;$$057 = 0;$$058 = 0;$$1 = 0;
+     break;
+    }
+   }
+   $21 = ((($7)) + 8|0);
+   $22 = ((($7)) + 12|0);
+   $23 = ((($7)) + 16|0);
+   $24 = ((($7)) + 32|0);
+   $25 = ((($7)) + 36|0);
+   HEAP32[$vararg_buffer>>2] = $21;
+   $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+   HEAP32[$vararg_ptr1>>2] = $22;
+   $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+   HEAP32[$vararg_ptr2>>2] = $23;
+   $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+   HEAP32[$vararg_ptr3>>2] = $4;
+   $vararg_ptr4 = ((($vararg_buffer)) + 16|0);
+   HEAP32[$vararg_ptr4>>2] = $24;
+   $vararg_ptr5 = ((($vararg_buffer)) + 20|0);
+   HEAP32[$vararg_ptr5>>2] = $25;
+   $vararg_ptr6 = ((($vararg_buffer)) + 24|0);
+   HEAP32[$vararg_ptr6>>2] = $5;
+   $vararg_ptr7 = ((($vararg_buffer)) + 28|0);
+   HEAP32[$vararg_ptr7>>2] = 0;
+   $26 = (__gcry_sexp_extract_param($2,0,65650,$vararg_buffer)|0);
+   $27 = ($26|0)==(0);
+   if ($27) {
+    $28 = HEAP32[$4>>2]|0;
+    $29 = ($28|0)==(0|0);
+    if (!($29)) {
+     $30 = ((($7)) + 20|0);
+     __gcry_mpi_point_init($30);
+     $31 = HEAP32[$4>>2]|0;
+     $32 = (__gcry_ecc_os2ec($30,$31)|0);
+     $33 = ($32|0)==(0);
+     if (!($33)) {
+      $$055 = $32;$$056 = 0;$$057 = 0;$$058 = 0;$$1 = 0;
+      break;
+     }
+    }
+    __gcry_sexp_release(0);
+    $34 = (__gcry_sexp_find_token($2,64745,5)|0);
+    $35 = ($34|0)==(0|0);
+    if ($35) {
+     label = 12;
+    } else {
+     $36 = (__gcry_sexp_nth_string($34,1)|0);
+     $37 = ($36|0)==(0|0);
+     if ($37) {
+      label = 12;
+     } else {
+      $38 = (__gcry_ecc_fill_in_curve(0,$36,$7,0)|0);
+      $39 = ($38|0)==(0);
+      if ($39) {
+       $$05966 = $36;
+      } else {
+       $$0 = $38;
+       STACKTOP = sp;return ($$0|0);
+      }
+     }
+    }
+    if ((label|0) == 12) {
+     HEAP32[$7>>2] = 0;
+     $40 = ((($7)) + 4|0);
+     HEAP32[$40>>2] = 0;
+     $$05966 = 0;
+    }
+    $41 = (__gcry_get_debug_flag(1)|0);
+    $42 = ($41|0)==(0);
+    if (!($42)) {
+     $43 = HEAP32[$7>>2]|0;
+     $44 = (__gcry_ecc_model2str($43)|0);
+     $45 = ((($7)) + 4|0);
+     $46 = HEAP32[$45>>2]|0;
+     $47 = (__gcry_ecc_dialect2str($46)|0);
+     HEAP32[$vararg_buffer8>>2] = $44;
+     $vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
+     HEAP32[$vararg_ptr11>>2] = $47;
+     __gcry_log_debug(65666,$vararg_buffer8);
+     $48 = ((($7)) + 40|0);
+     $49 = HEAP32[$48>>2]|0;
+     $50 = ($49|0)==(0|0);
+     if (!($50)) {
+      HEAP32[$vararg_buffer12>>2] = $49;
+      __gcry_log_debug(65691,$vararg_buffer12);
+     }
+     $51 = HEAP32[$21>>2]|0;
+     __gcry_log_printmpi(65713,$51);
+     $52 = HEAP32[$22>>2]|0;
+     __gcry_log_printmpi(65730,$52);
+     $53 = HEAP32[$23>>2]|0;
+     __gcry_log_printmpi(65747,$53);
+     $54 = ((($7)) + 20|0);
+     __gcry_mpi_point_log(65764,$54,0);
+     $55 = HEAP32[$24>>2]|0;
+     __gcry_log_printmpi(65779,$55);
+     $56 = HEAP32[$25>>2]|0;
+     __gcry_log_printmpi(65796,$56);
+     $57 = HEAP32[$5>>2]|0;
+     __gcry_log_printmpi(65813,$57);
+    }
+    $58 = HEAP32[$21>>2]|0;
+    $59 = ($58|0)==(0|0);
+    $60 = HEAP32[$22>>2]|0;
+    $61 = ($60|0)==(0|0);
+    $or$cond61 = $59 | $61;
+    $62 = HEAP32[$23>>2]|0;
+    $63 = ($62|0)==(0|0);
+    $or$cond63 = $or$cond61 | $63;
+    if ($or$cond63) {
+     $$055 = 68;$$056 = 0;$$057 = 0;$$058 = 0;$$1 = $$05966;
+    } else {
+     $64 = ((($7)) + 20|0);
+     $65 = HEAP32[$64>>2]|0;
+     $66 = ($65|0)==(0|0);
+     $67 = HEAP32[$24>>2]|0;
+     $68 = ($67|0)==(0|0);
+     $or$cond65 = $66 | $68;
+     if ($or$cond65) {
+      $$055 = 68;$$056 = 0;$$057 = 0;$$058 = 0;$$1 = $$05966;
+     } else {
+      $69 = HEAP32[$25>>2]|0;
+      $70 = ($69|0)!=(0|0);
+      $71 = HEAP32[$5>>2]|0;
+      $72 = ($71|0)!=(0|0);
+      $or$cond = $70 & $72;
+      if ($or$cond) {
+       $73 = ((($7)) + 44|0);
+       __gcry_mpi_point_init($73);
+       $74 = HEAP32[$5>>2]|0;
+       $75 = (__gcry_ecc_os2ec($73,$74)|0);
+       $76 = ($75|0)==(0);
+       if ($76) {
+        $77 = HEAP32[$7>>2]|0;
+        $78 = ((($7)) + 4|0);
+        $79 = HEAP32[$78>>2]|0;
+        $80 = HEAP32[$21>>2]|0;
+        $81 = HEAP32[$22>>2]|0;
+        $82 = HEAP32[$23>>2]|0;
+        $83 = (__gcry_mpi_ec_p_internal_new($77,$79,0,$80,$81,$82)|0);
+        $84 = (__gcry_mpi_new(0)|0);
+        $85 = (__gcry_mpi_new(0)|0);
+        __gcry_mpi_point_init($8);
+        $86 = HEAP32[$6>>2]|0;
+        __gcry_mpi_ec_mul_point($8,$86,$73,$83);
+        $87 = (__gcry_mpi_ec_get_affine($84,$85,$8,$83)|0);
+        $88 = ($87|0)==(0);
+        if (!($88)) {
+         __gcry_log_fatal(65830,$vararg_buffer15);
+         // unreachable;
+        }
+        $89 = HEAP32[$21>>2]|0;
+        $90 = (__gcry_ecc_ec2os($84,$85,$89)|0);
+        $91 = HEAP32[$6>>2]|0;
+        __gcry_mpi_ec_mul_point($8,$91,$64,$83);
+        $92 = (__gcry_mpi_ec_get_affine($84,$85,$8,$83)|0);
+        $93 = ($92|0)==(0);
+        if ($93) {
+         $94 = HEAP32[$21>>2]|0;
+         $95 = (__gcry_ecc_ec2os($84,$85,$94)|0);
+         __gcry_mpi_free($84);
+         __gcry_mpi_free($85);
+         __gcry_mpi_point_free_parts($8);
+         HEAP32[$vararg_buffer19>>2] = $90;
+         $vararg_ptr22 = ((($vararg_buffer19)) + 4|0);
+         HEAP32[$vararg_ptr22>>2] = $95;
+         $96 = (__gcry_sexp_build($0,0,65925,$vararg_buffer19)|0);
+         $$055 = $96;$$056 = $83;$$057 = $95;$$058 = $90;$$1 = $$05966;
+         break;
+        } else {
+         __gcry_log_fatal(65878,$vararg_buffer17);
+         // unreachable;
+        }
+       } else {
+        $$055 = $75;$$056 = 0;$$057 = 0;$$058 = 0;$$1 = $$05966;
+       }
+      } else {
+       $$055 = 68;$$056 = 0;$$057 = 0;$$058 = 0;$$1 = $$05966;
+      }
+     }
+    }
+   } else {
+    $$055 = $26;$$056 = 0;$$057 = 0;$$058 = 0;$$1 = 0;
+   }
+  } else {
+   $$055 = $10;$$056 = 0;$$057 = 0;$$058 = 0;$$1 = 0;
+  }
+ } while(0);
+ $97 = ((($7)) + 8|0);
+ $98 = HEAP32[$97>>2]|0;
+ __gcry_mpi_release($98);
+ $99 = ((($7)) + 12|0);
+ $100 = HEAP32[$99>>2]|0;
+ __gcry_mpi_release($100);
+ $101 = ((($7)) + 16|0);
+ $102 = HEAP32[$101>>2]|0;
+ __gcry_mpi_release($102);
+ $103 = HEAP32[$4>>2]|0;
+ __gcry_mpi_release($103);
+ $104 = ((($7)) + 20|0);
+ __gcry_mpi_point_free_parts($104);
+ $105 = ((($7)) + 32|0);
+ $106 = HEAP32[$105>>2]|0;
+ __gcry_mpi_release($106);
+ $107 = ((($7)) + 36|0);
+ $108 = HEAP32[$107>>2]|0;
+ __gcry_mpi_release($108);
+ $109 = HEAP32[$5>>2]|0;
+ __gcry_mpi_release($109);
+ $110 = ((($7)) + 44|0);
+ __gcry_mpi_point_free_parts($110);
+ $111 = HEAP32[$6>>2]|0;
+ __gcry_mpi_release($111);
+ __gcry_mpi_release($$058);
+ __gcry_mpi_release($$057);
+ __gcry_free($$1);
+ __gcry_mpi_ec_free($$056);
+ __gcry_pk_util_free_encoding_ctx($3);
+ $112 = (__gcry_get_debug_flag(1)|0);
+ $113 = ($112|0)==(0);
+ if ($113) {
+  $$0 = $$055;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $114 = (_gpg_strerror($$055)|0);
+ HEAP32[$vararg_buffer23>>2] = $114;
+ __gcry_log_debug(65951,$vararg_buffer23);
+ $$0 = $$055;
+ STACKTOP = sp;return ($$0|0);
+}
+function _ecc_decrypt_raw($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$044 = 0, $$045 = 0, $$046 = 0, $$04758 = 0, $$1 = 0, $$148 = 
0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 
0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0;
+ var $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, $13 = 0, $14 = 0, 
$15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
+ var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, 
$28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0;
+ var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, 
$46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0;
+ var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, 
$64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, 
$72 = 0, $73 = 0, $74 = 0;
+ var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, 
$82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, 
$90 = 0, $91 = 0, $92 = 0;
+ var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 
0, $or$cond51 = 0, $or$cond53 = 0, $or$cond55 = 0, $or$cond57 = 0, 
$vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer16 = 0, 
$vararg_buffer19 = 0, $vararg_buffer2 = 0, $vararg_buffer21 = 0, 
$vararg_buffer24 = 0, $vararg_ptr1 = 0;
+ var $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr5 = 
0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, dest 
= 0, label = 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(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;
+ $3 = sp + 176|0;
+ $4 = sp + 168|0;
+ $5 = sp + 164|0;
+ $6 = sp + 104|0;
+ $7 = sp + 100|0;
+ $8 = sp + 88|0;
+ $9 = sp + 76|0;
+ HEAP32[$4>>2] = 0;
+ HEAP32[$5>>2] = 0;
+ HEAP32[$7>>2] = 0;
+ dest=$6; stop=dest+60|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ __gcry_mpi_point_init($8);
+ __gcry_mpi_point_init($9);
+ $10 = (_ecc_get_nbits($2)|0);
+ __gcry_pk_util_init_encoding_ctx($3,1,$10);
+ $11 = (__gcry_pk_util_preparse_encval($1,16256,$4,$3)|0);
+ $12 = ($11|0)==(0);
+ do {
+  if ($12) {
+   $13 = HEAP32[$4>>2]|0;
+   HEAP32[$vararg_buffer>>2] = $5;
+   $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+   HEAP32[$vararg_ptr1>>2] = 0;
+   $14 = (__gcry_sexp_extract_param($13,0,65344,$vararg_buffer)|0);
+   $15 = ($14|0)==(0);
+   if ($15) {
+    $16 = (__gcry_get_debug_flag(1)|0);
+    $17 = ($16|0)==(0);
+    if (!($17)) {
+     $18 = HEAP32[$5>>2]|0;
+     __gcry_log_printmpi(65346,$18);
+    }
+    $19 = HEAP32[$5>>2]|0;
+    $20 = ($19|0)==(0|0);
+    if (!($20)) {
+     $21 = ((($19)) + 12|0);
+     $22 = HEAP32[$21>>2]|0;
+     $23 = $22 & 4;
+     $24 = ($23|0)==(0);
+     if (!($24)) {
+      $$045 = 0;$$046 = 0;$$1 = 79;$$148 = 0;
+      break;
+     }
+    }
+    $25 = ((($6)) + 8|0);
+    $26 = ((($6)) + 12|0);
+    $27 = ((($6)) + 16|0);
+    $28 = ((($6)) + 32|0);
+    $29 = ((($6)) + 36|0);
+    $30 = ((($6)) + 56|0);
+    HEAP32[$vararg_buffer2>>2] = $25;
+    $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+    HEAP32[$vararg_ptr5>>2] = $26;
+    $vararg_ptr6 = ((($vararg_buffer2)) + 8|0);
+    HEAP32[$vararg_ptr6>>2] = $27;
+    $vararg_ptr7 = ((($vararg_buffer2)) + 12|0);
+    HEAP32[$vararg_ptr7>>2] = $7;
+    $vararg_ptr8 = ((($vararg_buffer2)) + 16|0);
+    HEAP32[$vararg_ptr8>>2] = $28;
+    $vararg_ptr9 = ((($vararg_buffer2)) + 20|0);
+    HEAP32[$vararg_ptr9>>2] = $29;
+    $vararg_ptr10 = ((($vararg_buffer2)) + 24|0);
+    HEAP32[$vararg_ptr10>>2] = $30;
+    $vararg_ptr11 = ((($vararg_buffer2)) + 28|0);
+    HEAP32[$vararg_ptr11>>2] = 0;
+    $31 = (__gcry_sexp_extract_param($2,0,65363,$vararg_buffer2)|0);
+    $32 = ($31|0)==(0);
+    if ($32) {
+     $33 = HEAP32[$7>>2]|0;
+     $34 = ($33|0)==(0|0);
+     if (!($34)) {
+      $35 = ((($6)) + 20|0);
+      __gcry_mpi_point_init($35);
+      $36 = HEAP32[$7>>2]|0;
+      $37 = (__gcry_ecc_os2ec($35,$36)|0);
+      $38 = ($37|0)==(0);
+      if (!($38)) {
+       $$045 = 0;$$046 = 0;$$1 = $37;$$148 = 0;
+       break;
+      }
+     }
+     $39 = HEAP32[$4>>2]|0;
+     __gcry_sexp_release($39);
+     $40 = (__gcry_sexp_find_token($2,64745,5)|0);
+     HEAP32[$4>>2] = $40;
+     $41 = ($40|0)==(0|0);
+     if ($41) {
+      label = 13;
+     } else {
+      $42 = (__gcry_sexp_nth_string($40,1)|0);
+      $43 = ($42|0)==(0|0);
+      if ($43) {
+       label = 13;
+      } else {
+       $44 = (__gcry_ecc_fill_in_curve(0,$42,$6,0)|0);
+       $45 = ($44|0)==(0);
+       if ($45) {
+        $$04758 = $42;
+       } else {
+        $$0 = $44;
+        STACKTOP = sp;return ($$0|0);
+       }
+      }
+     }
+     if ((label|0) == 13) {
+      HEAP32[$6>>2] = 0;
+      $46 = ((($6)) + 4|0);
+      HEAP32[$46>>2] = 0;
+      $$04758 = 0;
+     }
+     $47 = (__gcry_get_debug_flag(1)|0);
+     $48 = ($47|0)==(0);
+     if (!($48)) {
+      $49 = HEAP32[$6>>2]|0;
+      $50 = (__gcry_ecc_model2str($49)|0);
+      $51 = ((($6)) + 4|0);
+      $52 = HEAP32[$51>>2]|0;
+      $53 = (__gcry_ecc_dialect2str($52)|0);
+      HEAP32[$vararg_buffer12>>2] = $50;
+      $vararg_ptr15 = ((($vararg_buffer12)) + 4|0);
+      HEAP32[$vararg_ptr15>>2] = $53;
+      __gcry_log_debug(65379,$vararg_buffer12);
+      $54 = ((($6)) + 40|0);
+      $55 = HEAP32[$54>>2]|0;
+      $56 = ($55|0)==(0|0);
+      if (!($56)) {
+       HEAP32[$vararg_buffer16>>2] = $55;
+       __gcry_log_debug(65404,$vararg_buffer16);
+      }
+      $57 = HEAP32[$25>>2]|0;
+      __gcry_log_printmpi(65426,$57);
+      $58 = HEAP32[$26>>2]|0;
+      __gcry_log_printmpi(65443,$58);
+      $59 = HEAP32[$27>>2]|0;
+      __gcry_log_printmpi(65460,$59);
+      $60 = ((($6)) + 20|0);
+      __gcry_mpi_point_log(65477,$60,0);
+      $61 = HEAP32[$28>>2]|0;
+      __gcry_log_printmpi(65492,$61);
+      $62 = HEAP32[$29>>2]|0;
+      __gcry_log_printmpi(65509,$62);
+      $63 = (__gcry_fips_mode()|0);
+      $64 = ($63|0)==(0);
+      if ($64) {
+       $65 = HEAP32[$30>>2]|0;
+       __gcry_log_printmpi(65526,$65);
+      }
+     }
+     $66 = HEAP32[$25>>2]|0;
+     $67 = ($66|0)==(0|0);
+     $68 = HEAP32[$26>>2]|0;
+     $69 = ($68|0)==(0|0);
+     $or$cond = $67 | $69;
+     $70 = HEAP32[$27>>2]|0;
+     $71 = ($70|0)==(0|0);
+     $or$cond51 = $or$cond | $71;
+     if ($or$cond51) {
+      $$045 = 0;$$046 = 0;$$1 = 68;$$148 = $$04758;
+     } else {
+      $72 = ((($6)) + 20|0);
+      $73 = HEAP32[$72>>2]|0;
+      $74 = ($73|0)==(0|0);
+      $75 = HEAP32[$28>>2]|0;
+      $76 = ($75|0)==(0|0);
+      $or$cond53 = $74 | $76;
+      $77 = HEAP32[$29>>2]|0;
+      $78 = ($77|0)==(0|0);
+      $or$cond55 = $or$cond53 | $78;
+      $79 = HEAP32[$30>>2]|0;
+      $80 = ($79|0)==(0|0);
+      $or$cond57 = $or$cond55 | $80;
+      if ($or$cond57) {
+       $$045 = 0;$$046 = 0;$$1 = 68;$$148 = $$04758;
+      } else {
+       $81 = HEAP32[$5>>2]|0;
+       $82 = (__gcry_ecc_os2ec($8,$81)|0);
+       $83 = ($82|0)==(0);
+       if (!($83)) {
+        __gcry_mpi_point_free_parts($8);
+        $$0 = $82;
+        STACKTOP = sp;return ($$0|0);
+       }
+       $84 = HEAP32[$6>>2]|0;
+       $85 = ((($6)) + 4|0);
+       $86 = HEAP32[$85>>2]|0;
+       $87 = HEAP32[$25>>2]|0;
+       $88 = HEAP32[$26>>2]|0;
+       $89 = HEAP32[$27>>2]|0;
+       $90 = (__gcry_mpi_ec_p_internal_new($84,$86,0,$87,$88,$89)|0);
+       $91 = HEAP32[$30>>2]|0;
+       __gcry_mpi_ec_mul_point($9,$91,$8,$90);
+       $92 = (__gcry_mpi_new(0)|0);
+       $93 = (__gcry_mpi_new(0)|0);
+       $94 = (__gcry_mpi_ec_get_affine($92,$93,$9,$90)|0);
+       $95 = ($94|0)==(0);
+       if (!($95)) {
+        __gcry_log_fatal(65543,$vararg_buffer19);
+        // unreachable;
+       }
+       $96 = HEAP32[$25>>2]|0;
+       $97 = (__gcry_ecc_ec2os($92,$93,$96)|0);
+       $98 = ($97|0)==(0|0);
+       if ($98) {
+        $99 = (_gpg_err_code_from_syserror()|0);
+        $$044 = $99;
+       } else {
+        $$044 = 0;
+       }
+       __gcry_mpi_free($92);
+       __gcry_mpi_free($93);
+       $100 = (__gcry_get_debug_flag(1)|0);
+       $101 = ($100|0)==(0);
+       if (!($101)) {
+        __gcry_log_printmpi(65583,$97);
+       }
+       $102 = ($$044|0)==(0);
+       if ($102) {
+        HEAP32[$vararg_buffer21>>2] = $97;
+        $103 = (__gcry_sexp_build($0,0,65600,$vararg_buffer21)|0);
+        $$045 = $97;$$046 = $90;$$1 = $103;$$148 = $$04758;
+       } else {
+        $$045 = $97;$$046 = $90;$$1 = $$044;$$148 = $$04758;
+       }
+      }
+     }
+    } else {
+     $$045 = 0;$$046 = 0;$$1 = $31;$$148 = 0;
+    }
+   } else {
+    $$045 = 0;$$046 = 0;$$1 = $14;$$148 = 0;
+   }
+  } else {
+   $$045 = 0;$$046 = 0;$$1 = $11;$$148 = 0;
+  }
+ } while(0);
+ __gcry_mpi_point_free_parts($9);
+ __gcry_mpi_point_free_parts($8);
+ __gcry_mpi_release($$045);
+ $104 = ((($6)) + 8|0);
+ $105 = HEAP32[$104>>2]|0;
+ __gcry_mpi_release($105);
+ $106 = ((($6)) + 12|0);
+ $107 = HEAP32[$106>>2]|0;
+ __gcry_mpi_release($107);
+ $108 = ((($6)) + 16|0);
+ $109 = HEAP32[$108>>2]|0;
+ __gcry_mpi_release($109);
+ $110 = HEAP32[$7>>2]|0;
+ __gcry_mpi_release($110);
+ $111 = ((($6)) + 20|0);
+ __gcry_mpi_point_free_parts($111);
+ $112 = ((($6)) + 32|0);
+ $113 = HEAP32[$112>>2]|0;
+ __gcry_mpi_release($113);
+ $114 = ((($6)) + 36|0);
+ $115 = HEAP32[$114>>2]|0;
+ __gcry_mpi_release($115);
+ $116 = ((($6)) + 56|0);
+ $117 = HEAP32[$116>>2]|0;
+ __gcry_mpi_release($117);
+ $118 = HEAP32[$5>>2]|0;
+ __gcry_mpi_release($118);
+ __gcry_free($$148);
+ $119 = HEAP32[$4>>2]|0;
+ __gcry_sexp_release($119);
+ __gcry_mpi_ec_free($$046);
+ __gcry_pk_util_free_encoding_ctx($3);
+ $120 = (__gcry_get_debug_flag(1)|0);
+ $121 = ($120|0)==(0);
+ if ($121) {
+  $$0 = $$1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $122 = (_gpg_strerror($$1)|0);
+ HEAP32[$vararg_buffer24>>2] = $122;
+ __gcry_log_debug(65611,$vararg_buffer24);
+ $$0 = $$1;
+ STACKTOP = sp;return ($$0|0);
+}
+function _ecc_sign($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$045 = 0, $$04651 = 0, $$047 = 0, $$048 = 0, $$050 = 0, $$1 = 
0, $$149 = 0, $$lobit = 0, $$pre = 0, $$pre$phiZ2D = 0, $10 = 0, $100 = 0, $101 
= 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0;
+ var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 
= 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 
= 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0;
+ var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 
= 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 
0, $18 = 0, $19 = 0, $20 = 0, $21 = 0;
+ var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, 
$3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, 
$38 = 0, $39 = 0, $4 = 0;
+ var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, 
$48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, 
$56 = 0, $57 = 0, $58 = 0;
+ var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, 
$66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, 
$74 = 0, $75 = 0, $76 = 0;
+ var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, 
$84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, 
$92 = 0, $93 = 0, $94 = 0;
+ var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, 
$vararg_buffer14 = 0, $vararg_buffer19 = 0, $vararg_buffer22 = 0, 
$vararg_buffer26 = 0, $vararg_buffer30 = 0, $vararg_buffer34 = 0, 
$vararg_buffer9 = 0, $vararg_ptr1 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, 
$vararg_ptr17 = 0, $vararg_ptr18 = 0, $vararg_ptr2 = 0, $vararg_ptr25 = 0;
+ var $vararg_ptr29 = 0, $vararg_ptr3 = 0, $vararg_ptr33 = 0, $vararg_ptr4 = 0, 
$vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, dest = 
0, label = 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(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;
+ $3 = sp + 184|0;
+ $4 = sp + 176|0;
+ $5 = sp + 172|0;
+ $6 = sp + 168|0;
+ $7 = sp + 108|0;
+ HEAP32[$4>>2] = 0;
+ HEAP32[$5>>2] = 0;
+ HEAP32[$6>>2] = 0;
+ dest=$7; stop=dest+60|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ __gcry_pk_util_init_encoding_ctx($3,2,0);
+ $8 = (__gcry_pk_util_data_to_mpi($1,$4,$3)|0);
+ $9 = ($8|0)==(0);
+ do {
+  if ($9) {
+   $10 = (__gcry_get_debug_flag(1)|0);
+   $11 = ($10|0)==(0);
+   if (!($11)) {
+    $12 = HEAP32[$4>>2]|0;
+    __gcry_log_printmpi(65029,$12);
+   }
+   $13 = ((($3)) + 12|0);
+   $14 = HEAP32[$13>>2]|0;
+   $15 = $14 & 512;
+   $16 = ($15|0)==(0);
+   if ($16) {
+    $24 = ((($7)) + 56|0);
+    HEAP32[$vararg_buffer9>>2] = $6;
+    $vararg_ptr12 = ((($vararg_buffer9)) + 4|0);
+    HEAP32[$vararg_ptr12>>2] = $24;
+    $vararg_ptr13 = ((($vararg_buffer9)) + 8|0);
+    HEAP32[$vararg_ptr13>>2] = 0;
+    $25 = (__gcry_sexp_extract_param($2,0,65064,$vararg_buffer9)|0);
+    $$048 = $25;
+   } else {
+    $17 = ((($7)) + 8|0);
+    $18 = ((($7)) + 12|0);
+    $19 = ((($7)) + 16|0);
+    $20 = ((($7)) + 32|0);
+    $21 = ((($7)) + 36|0);
+    $22 = ((($7)) + 56|0);
+    HEAP32[$vararg_buffer>>2] = $17;
+    $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+    HEAP32[$vararg_ptr1>>2] = $18;
+    $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+    HEAP32[$vararg_ptr2>>2] = $19;
+    $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+    HEAP32[$vararg_ptr3>>2] = $5;
+    $vararg_ptr4 = ((($vararg_buffer)) + 16|0);
+    HEAP32[$vararg_ptr4>>2] = $20;
+    $vararg_ptr5 = ((($vararg_buffer)) + 20|0);
+    HEAP32[$vararg_ptr5>>2] = $21;
+    $vararg_ptr6 = ((($vararg_buffer)) + 24|0);
+    HEAP32[$vararg_ptr6>>2] = $6;
+    $vararg_ptr7 = ((($vararg_buffer)) + 28|0);
+    HEAP32[$vararg_ptr7>>2] = $22;
+    $vararg_ptr8 = ((($vararg_buffer)) + 32|0);
+    HEAP32[$vararg_ptr8>>2] = 0;
+    $23 = (__gcry_sexp_extract_param($2,0,65045,$vararg_buffer)|0);
+    $$048 = $23;
+   }
+   $26 = ($$048|0)==(0);
+   if ($26) {
+    $27 = HEAP32[$5>>2]|0;
+    $28 = ($27|0)==(0|0);
+    if (!($28)) {
+     $29 = ((($7)) + 20|0);
+     __gcry_mpi_point_init($29);
+     $30 = HEAP32[$5>>2]|0;
+     $31 = (__gcry_ecc_os2ec($29,$30)|0);
+     $32 = ($31|0)==(0);
+     if (!($32)) {
+      $$0 = 0;$$045 = 0;$$047 = 0;$$1 = 0;$$149 = $31;
+      break;
+     }
+    }
+    __gcry_sexp_release(0);
+    $33 = (__gcry_sexp_find_token($2,64745,5)|0);
+    $34 = ($33|0)==(0|0);
+    if ($34) {
+     label = 13;
+    } else {
+     $35 = (__gcry_sexp_nth_string($33,1)|0);
+     $36 = ($35|0)==(0|0);
+     if ($36) {
+      label = 13;
+     } else {
+      $37 = (__gcry_ecc_fill_in_curve(0,$35,$7,0)|0);
+      $38 = ($37|0)==(0);
+      if ($38) {
+       $$04651 = $35;
+      } else {
+       $$050 = $37;
+       STACKTOP = sp;return ($$050|0);
+      }
+     }
+    }
+    if ((label|0) == 13) {
+     $39 = HEAP32[$13>>2]|0;
+     $40 = $39 >>> 11;
+     $41 = $40 & 2;
+     HEAP32[$7>>2] = $41;
+     $42 = $39 >>> 12;
+     $$lobit = $42 & 1;
+     $43 = ((($7)) + 4|0);
+     HEAP32[$43>>2] = $$lobit;
+     $$04651 = 0;
+    }
+    $44 = (__gcry_get_debug_flag(1)|0);
+    $45 = ($44|0)==(0);
+    if ($45) {
+     $$pre = ((($7)) + 8|0);
+     $$pre$phiZ2D = $$pre;
+    } else {
+     $46 = HEAP32[$7>>2]|0;
+     $47 = (__gcry_ecc_model2str($46)|0);
+     $48 = ((($7)) + 4|0);
+     $49 = HEAP32[$48>>2]|0;
+     $50 = (__gcry_ecc_dialect2str($49)|0);
+     $51 = HEAP32[$13>>2]|0;
+     $52 = $51 & 4096;
+     $53 = ($52|0)==(0);
+     $54 = $53 ? 73338 : 64839;
+     HEAP32[$vararg_buffer14>>2] = $47;
+     $vararg_ptr17 = ((($vararg_buffer14)) + 4|0);
+     HEAP32[$vararg_ptr17>>2] = $50;
+     $vararg_ptr18 = ((($vararg_buffer14)) + 8|0);
+     HEAP32[$vararg_ptr18>>2] = $54;
+     __gcry_log_debug(65070,$vararg_buffer14);
+     $55 = ((($7)) + 40|0);
+     $56 = HEAP32[$55>>2]|0;
+     $57 = ($56|0)==(0|0);
+     if (!($57)) {
+      HEAP32[$vararg_buffer19>>2] = $56;
+      __gcry_log_debug(65096,$vararg_buffer19);
+     }
+     $58 = ((($7)) + 8|0);
+     $59 = HEAP32[$58>>2]|0;
+     __gcry_log_printmpi(65117,$59);
+     $60 = ((($7)) + 12|0);
+     $61 = HEAP32[$60>>2]|0;
+     __gcry_log_printmpi(65133,$61);
+     $62 = ((($7)) + 16|0);
+     $63 = HEAP32[$62>>2]|0;
+     __gcry_log_printmpi(65149,$63);
+     $64 = ((($7)) + 20|0);
+     __gcry_mpi_point_log(65165,$64,0);
+     $65 = ((($7)) + 32|0);
+     $66 = HEAP32[$65>>2]|0;
+     __gcry_log_printmpi(65179,$66);
+     $67 = ((($7)) + 36|0);
+     $68 = HEAP32[$67>>2]|0;
+     __gcry_log_printmpi(65195,$68);
+     $69 = HEAP32[$6>>2]|0;
+     __gcry_log_printmpi(65211,$69);
+     $70 = (__gcry_fips_mode()|0);
+     $71 = ($70|0)==(0);
+     if ($71) {
+      $72 = ((($7)) + 56|0);
+      $73 = HEAP32[$72>>2]|0;
+      __gcry_log_printmpi(65227,$73);
+      $$pre$phiZ2D = $58;
+     } else {
+      $$pre$phiZ2D = $58;
+     }
+    }
+    $74 = HEAP32[$$pre$phiZ2D>>2]|0;
+    $75 = ($74|0)==(0|0);
+    if ($75) {
+     $$0 = 0;$$045 = 0;$$047 = $33;$$1 = $$04651;$$149 = 68;
+    } else {
+     $76 = ((($7)) + 12|0);
+     $77 = HEAP32[$76>>2]|0;
+     $78 = ($77|0)==(0|0);
+     if ($78) {
+      $$0 = 0;$$045 = 0;$$047 = $33;$$1 = $$04651;$$149 = 68;
+     } else {
+      $79 = ((($7)) + 16|0);
+      $80 = HEAP32[$79>>2]|0;
+      $81 = ($80|0)==(0|0);
+      if ($81) {
+       $$0 = 0;$$045 = 0;$$047 = $33;$$1 = $$04651;$$149 = 68;
+      } else {
+       $82 = ((($7)) + 20|0);
+       $83 = HEAP32[$82>>2]|0;
+       $84 = ($83|0)==(0|0);
+       if ($84) {
+        $$0 = 0;$$045 = 0;$$047 = $33;$$1 = $$04651;$$149 = 68;
+       } else {
+        $85 = ((($7)) + 32|0);
+        $86 = HEAP32[$85>>2]|0;
+        $87 = ($86|0)==(0|0);
+        if ($87) {
+         $$0 = 0;$$045 = 0;$$047 = $33;$$1 = $$04651;$$149 = 68;
+        } else {
+         $88 = ((($7)) + 36|0);
+         $89 = HEAP32[$88>>2]|0;
+         $90 = ($89|0)==(0|0);
+         if ($90) {
+          $$0 = 0;$$045 = 0;$$047 = $33;$$1 = $$04651;$$149 = 68;
+         } else {
+          $91 = ((($7)) + 56|0);
+          $92 = HEAP32[$91>>2]|0;
+          $93 = ($92|0)==(0|0);
+          if ($93) {
+           $$0 = 0;$$045 = 0;$$047 = $33;$$1 = $$04651;$$149 = 68;
+          } else {
+           $94 = (__gcry_mpi_new(0)|0);
+           $95 = (__gcry_mpi_new(0)|0);
+           $96 = HEAP32[$13>>2]|0;
+           $97 = $96 & 4096;
+           $98 = ($97|0)==(0);
+           if (!($98)) {
+            $99 = HEAP32[$4>>2]|0;
+            $100 = ((($3)) + 16|0);
+            $101 = HEAP32[$100>>2]|0;
+            $102 = HEAP32[$6>>2]|0;
+            $103 = (__gcry_ecc_eddsa_sign($99,$7,$94,$95,$101,$102)|0);
+            $104 = ($103|0)==(0);
+            if (!($104)) {
+             $$0 = $95;$$045 = $94;$$047 = $33;$$1 = $$04651;$$149 = $103;
+             break;
+            }
+            HEAP32[$vararg_buffer22>>2] = $94;
+            $vararg_ptr25 = ((($vararg_buffer22)) + 4|0);
+            HEAP32[$vararg_ptr25>>2] = $95;
+            $105 = (__gcry_sexp_build($0,0,65243,$vararg_buffer22)|0);
+            $$0 = $95;$$045 = $94;$$047 = $33;$$1 = $$04651;$$149 = $105;
+            break;
+           }
+           $106 = $96 & 8192;
+           $107 = ($106|0)==(0);
+           $108 = HEAP32[$4>>2]|0;
+           if ($107) {
+            $112 = ((($3)) + 16|0);
+            $113 = HEAP32[$112>>2]|0;
+            $114 = (__gcry_ecc_ecdsa_sign($108,$7,$94,$95,$96,$113)|0);
+            $115 = ($114|0)==(0);
+            if (!($115)) {
+             $$0 = $95;$$045 = $94;$$047 = $33;$$1 = $$04651;$$149 = $114;
+             break;
+            }
+            HEAP32[$vararg_buffer30>>2] = $94;
+            $vararg_ptr33 = ((($vararg_buffer30)) + 4|0);
+            HEAP32[$vararg_ptr33>>2] = $95;
+            $116 = (__gcry_sexp_build($0,0,65296,$vararg_buffer30)|0);
+            $$0 = $95;$$045 = $94;$$047 = $33;$$1 = $$04651;$$149 = $116;
+            break;
+           } else {
+            $109 = (__gcry_ecc_gost_sign($108,$7,$94,$95)|0);
+            $110 = ($109|0)==(0);
+            if (!($110)) {
+             $$0 = $95;$$045 = $94;$$047 = $33;$$1 = $$04651;$$149 = $109;
+             break;
+            }
+            HEAP32[$vararg_buffer26>>2] = $94;
+            $vararg_ptr29 = ((($vararg_buffer26)) + 4|0);
+            HEAP32[$vararg_ptr29>>2] = $95;
+            $111 = (__gcry_sexp_build($0,0,65270,$vararg_buffer26)|0);
+            $$0 = $95;$$045 = $94;$$047 = $33;$$1 = $$04651;$$149 = $111;
+            break;
+           }
+          }
+         }
+        }
+       }
+      }
+     }
+    }
+   } else {
+    $$0 = 0;$$045 = 0;$$047 = 0;$$1 = 0;$$149 = $$048;
+   }
+  } else {
+   $$0 = 0;$$045 = 0;$$047 = 0;$$1 = 0;$$149 = $8;
+  }
+ } while(0);
+ $117 = ((($7)) + 8|0);
+ $118 = HEAP32[$117>>2]|0;
+ __gcry_mpi_release($118);
+ $119 = ((($7)) + 12|0);
+ $120 = HEAP32[$119>>2]|0;
+ __gcry_mpi_release($120);
+ $121 = ((($7)) + 16|0);
+ $122 = HEAP32[$121>>2]|0;
+ __gcry_mpi_release($122);
+ $123 = HEAP32[$5>>2]|0;
+ __gcry_mpi_release($123);
+ $124 = ((($7)) + 20|0);
+ __gcry_mpi_point_free_parts($124);
+ $125 = ((($7)) + 32|0);
+ $126 = HEAP32[$125>>2]|0;
+ __gcry_mpi_release($126);
+ $127 = ((($7)) + 36|0);
+ $128 = HEAP32[$127>>2]|0;
+ __gcry_mpi_release($128);
+ $129 = HEAP32[$6>>2]|0;
+ __gcry_mpi_release($129);
+ $130 = ((($7)) + 44|0);
+ __gcry_mpi_point_free_parts($130);
+ $131 = ((($7)) + 56|0);
+ $132 = HEAP32[$131>>2]|0;
+ __gcry_mpi_release($132);
+ __gcry_mpi_release($$045);
+ __gcry_mpi_release($$0);
+ __gcry_free($$1);
+ $133 = HEAP32[$4>>2]|0;
+ __gcry_mpi_release($133);
+ __gcry_sexp_release($$047);
+ __gcry_pk_util_free_encoding_ctx($3);
+ $134 = (__gcry_get_debug_flag(1)|0);
+ $135 = ($134|0)==(0);
+ if ($135) {
+  $$050 = $$149;
+  STACKTOP = sp;return ($$050|0);
+ }
+ $136 = (_gpg_strerror($$149)|0);
+ HEAP32[$vararg_buffer34>>2] = $136;
+ __gcry_log_debug(65323,$vararg_buffer34);
+ $$050 = $$149;
+ STACKTOP = sp;return ($$050|0);
+}
+function _ecc_verify($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$037 = 0, $$03840 = 0, $$1 = 0, $$139 = 0, $$2 = 0, $$3 = 0, 
$$lobit = 0, $$pre = 0, $$pre$phiZ2D = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 
0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0;
+ var $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;
+ var $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 
= 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 
= 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0;
+ var $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 
= 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 
= 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0;
+ var $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 
= 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 
= 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0;
+ var $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, 
$188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $20 = 0, $21 = 0, 
$22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, 
$34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, 
$42 = 0, $43 = 0, $44 = 0;
+ var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, 
$52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, 
$60 = 0, $61 = 0, $62 = 0;
+ var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, 
$70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 
0, $79 = 0, $8 = 0, $80 = 0;
+ var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, 
$89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, 
$97 = 0, $98 = 0, $99 = 0;
+ var $or$cond = 0, $vararg_buffer = 0, $vararg_buffer13 = 0, $vararg_buffer17 
= 0, $vararg_buffer22 = 0, $vararg_buffer25 = 0, $vararg_buffer3 = 0, 
$vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, 
$vararg_ptr16 = 0, $vararg_ptr2 = 0, $vararg_ptr20 = 0, $vararg_ptr21 = 0, 
$vararg_ptr6 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, dest = 
0;
+ var label = 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(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;
+ $3 = sp + 176|0;
+ $4 = sp + 172|0;
+ $5 = sp + 168|0;
+ $6 = sp + 164|0;
+ $7 = sp + 160|0;
+ $8 = sp + 156|0;
+ $9 = sp + 152|0;
+ $10 = sp + 96|0;
+ $11 = sp + 92|0;
+ $12 = sp + 88|0;
+ $13 = sp + 84|0;
+ HEAP32[$4>>2] = 0;
+ HEAP32[$5>>2] = 0;
+ HEAP32[$6>>2] = 0;
+ HEAP32[$7>>2] = 0;
+ HEAP32[$8>>2] = 0;
+ HEAP32[$9>>2] = 0;
+ dest=$10; stop=dest+56|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ $14 = (_ecc_get_nbits($2)|0);
+ __gcry_pk_util_init_encoding_ctx($3,3,$14);
+ $15 = (__gcry_pk_util_data_to_mpi($1,$9,$3)|0);
+ $16 = ($15|0)==(0);
+ L1: do {
+  if ($16) {
+   $17 = (__gcry_get_debug_flag(1)|0);
+   $18 = ($17|0)==(0);
+   if (!($18)) {
+    $19 = HEAP32[$9>>2]|0;
+    __gcry_log_printmpi(64771,$19);
+   }
+   $20 = (__gcry_pk_util_preparse_sigval($0,16256,$4,$11)|0);
+   $21 = ($20|0)==(0);
+   if ($21) {
+    $22 = HEAP32[$4>>2]|0;
+    $23 = HEAP32[$11>>2]|0;
+    $24 = $23 & 4096;
+    $25 = ($24|0)==(0);
+    $26 = $25 ? 64702 : 64787;
+    HEAP32[$vararg_buffer>>2] = $7;
+    $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+    HEAP32[$vararg_ptr1>>2] = $8;
+    $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+    HEAP32[$vararg_ptr2>>2] = 0;
+    $27 = (__gcry_sexp_extract_param($22,0,$26,$vararg_buffer)|0);
+    $28 = ($27|0)==(0);
+    if ($28) {
+     $29 = (__gcry_get_debug_flag(1)|0);
+     $30 = ($29|0)==(0);
+     if (!($30)) {
+      $31 = HEAP32[$7>>2]|0;
+      __gcry_log_printmpi(64791,$31);
+      $32 = HEAP32[$8>>2]|0;
+      __gcry_log_printmpi(64807,$32);
+     }
+     $33 = ((($3)) + 12|0);
+     $34 = HEAP32[$33>>2]|0;
+     $35 = HEAP32[$11>>2]|0;
+     $36 = $35 ^ $34;
+     $37 = $36 & 4096;
+     $38 = ($37|0)==(0);
+     if ($38) {
+      $39 = $34 & 512;
+      $40 = ($39|0)==(0);
+      if ($40) {
+       HEAP32[$vararg_buffer13>>2] = $6;
+       $vararg_ptr16 = ((($vararg_buffer13)) + 4|0);
+       HEAP32[$vararg_ptr16>>2] = 0;
+       $46 = (__gcry_sexp_extract_param($2,0,64740,$vararg_buffer13)|0);
+       $$037 = $46;
+      } else {
+       $41 = ((($10)) + 8|0);
+       $42 = ((($10)) + 12|0);
+       $43 = ((($10)) + 16|0);
+       $44 = ((($10)) + 32|0);
+       HEAP32[$vararg_buffer3>>2] = $41;
+       $vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
+       HEAP32[$vararg_ptr6>>2] = $42;
+       $vararg_ptr7 = ((($vararg_buffer3)) + 8|0);
+       HEAP32[$vararg_ptr7>>2] = $43;
+       $vararg_ptr8 = ((($vararg_buffer3)) + 12|0);
+       HEAP32[$vararg_ptr8>>2] = $5;
+       $vararg_ptr9 = ((($vararg_buffer3)) + 16|0);
+       HEAP32[$vararg_ptr9>>2] = $44;
+       $vararg_ptr10 = ((($vararg_buffer3)) + 20|0);
+       HEAP32[$vararg_ptr10>>2] = $44;
+       $vararg_ptr11 = ((($vararg_buffer3)) + 24|0);
+       HEAP32[$vararg_ptr11>>2] = $6;
+       $vararg_ptr12 = ((($vararg_buffer3)) + 28|0);
+       HEAP32[$vararg_ptr12>>2] = 0;
+       $45 = (__gcry_sexp_extract_param($2,0,64823,$vararg_buffer3)|0);
+       $$037 = $45;
+      }
+      $47 = ($$037|0)==(0);
+      if ($47) {
+       $48 = HEAP32[$5>>2]|0;
+       $49 = ($48|0)==(0|0);
+       if (!($49)) {
+        $50 = ((($10)) + 20|0);
+        __gcry_mpi_point_init($50);
+        $51 = HEAP32[$5>>2]|0;
+        $52 = (__gcry_ecc_os2ec($50,$51)|0);
+        $53 = ($52|0)==(0);
+        if (!($53)) {
+         $$139 = 0;$$3 = $52;
+         break;
+        }
+       }
+       $54 = HEAP32[$4>>2]|0;
+       __gcry_sexp_release($54);
+       $55 = (__gcry_sexp_find_token($2,64745,5)|0);
+       HEAP32[$4>>2] = $55;
+       $56 = ($55|0)==(0|0);
+       if ($56) {
+        label = 18;
+       } else {
+        $57 = (__gcry_sexp_nth_string($55,1)|0);
+        $58 = ($57|0)==(0|0);
+        if ($58) {
+         label = 18;
+        } else {
+         $59 = (__gcry_ecc_fill_in_curve(0,$57,$10,0)|0);
+         $60 = ($59|0)==(0);
+         if ($60) {
+          $$03840 = $57;
+         } else {
+          $$0 = $59;
+          STACKTOP = sp;return ($$0|0);
+         }
+        }
+       }
+       if ((label|0) == 18) {
+        $61 = HEAP32[$11>>2]|0;
+        $62 = $61 >>> 11;
+        $63 = $62 & 2;
+        HEAP32[$10>>2] = $63;
+        $64 = $61 >>> 12;
+        $$lobit = $64 & 1;
+        $65 = ((($10)) + 4|0);
+        HEAP32[$65>>2] = $$lobit;
+        $$03840 = 0;
+       }
+       $66 = (__gcry_get_debug_flag(1)|0);
+       $67 = ($66|0)==(0);
+       if ($67) {
+        $$pre = ((($10)) + 8|0);
+        $$pre$phiZ2D = $$pre;
+       } else {
+        $68 = HEAP32[$10>>2]|0;
+        $69 = (__gcry_ecc_model2str($68)|0);
+        $70 = ((($10)) + 4|0);
+        $71 = HEAP32[$70>>2]|0;
+        $72 = (__gcry_ecc_dialect2str($71)|0);
+        $73 = HEAP32[$11>>2]|0;
+        $74 = $73 & 4096;
+        $75 = ($74|0)==(0);
+        $76 = $75 ? 73338 : 64839;
+        HEAP32[$vararg_buffer17>>2] = $69;
+        $vararg_ptr20 = ((($vararg_buffer17)) + 4|0);
+        HEAP32[$vararg_ptr20>>2] = $72;
+        $vararg_ptr21 = ((($vararg_buffer17)) + 8|0);
+        HEAP32[$vararg_ptr21>>2] = $76;
+        __gcry_log_debug(64846,$vararg_buffer17);
+        $77 = ((($10)) + 40|0);
+        $78 = HEAP32[$77>>2]|0;
+        $79 = ($78|0)==(0|0);
+        if (!($79)) {
+         HEAP32[$vararg_buffer22>>2] = $78;
+         __gcry_log_debug(64872,$vararg_buffer22);
+        }
+        $80 = ((($10)) + 8|0);
+        $81 = HEAP32[$80>>2]|0;
+        __gcry_log_printmpi(64893,$81);
+        $82 = ((($10)) + 12|0);
+        $83 = HEAP32[$82>>2]|0;
+        __gcry_log_printmpi(64909,$83);
+        $84 = ((($10)) + 16|0);
+        $85 = HEAP32[$84>>2]|0;
+        __gcry_log_printmpi(64925,$85);
+        $86 = ((($10)) + 20|0);
+        __gcry_mpi_point_log(64941,$86,0);
+        $87 = ((($10)) + 32|0);
+        $88 = HEAP32[$87>>2]|0;
+        __gcry_log_printmpi(64955,$88);
+        $89 = ((($10)) + 36|0);
+        $90 = HEAP32[$89>>2]|0;
+        __gcry_log_printmpi(64971,$90);
+        $91 = HEAP32[$6>>2]|0;
+        __gcry_log_printmpi(64987,$91);
+        $$pre$phiZ2D = $80;
+       }
+       $92 = HEAP32[$$pre$phiZ2D>>2]|0;
+       $93 = ($92|0)==(0|0);
+       if ($93) {
+        $$139 = $$03840;$$3 = 68;
+       } else {
+        $94 = ((($10)) + 12|0);
+        $95 = HEAP32[$94>>2]|0;
+        $96 = ($95|0)==(0|0);
+        if ($96) {
+         $$139 = $$03840;$$3 = 68;
+        } else {
+         $97 = ((($10)) + 16|0);
+         $98 = HEAP32[$97>>2]|0;
+         $99 = ($98|0)==(0|0);
+         if ($99) {
+          $$139 = $$03840;$$3 = 68;
+         } else {
+          $100 = ((($10)) + 20|0);
+          $101 = HEAP32[$100>>2]|0;
+          $102 = ($101|0)==(0|0);
+          if ($102) {
+           $$139 = $$03840;$$3 = 68;
+          } else {
+           $103 = ((($10)) + 32|0);
+           $104 = HEAP32[$103>>2]|0;
+           $105 = ($104|0)==(0|0);
+           if ($105) {
+            $$139 = $$03840;$$3 = 68;
+           } else {
+            $106 = ((($10)) + 36|0);
+            $107 = HEAP32[$106>>2]|0;
+            $108 = ($107|0)!=(0|0);
+            $109 = HEAP32[$6>>2]|0;
+            $110 = ($109|0)!=(0|0);
+            $or$cond = $108 & $110;
+            if ($or$cond) {
+             $111 = HEAP32[$11>>2]|0;
+             $112 = $111 & 4096;
+             $113 = ($112|0)==(0);
+             if (!($113)) {
+              $114 = HEAP32[$9>>2]|0;
+              $115 = HEAP32[$7>>2]|0;
+              $116 = HEAP32[$8>>2]|0;
+              $117 = ((($3)) + 16|0);
+              $118 = HEAP32[$117>>2]|0;
+              $119 = (__gcry_ecc_eddsa_verify($114,$10,$115,$116,$118,$109)|0);
+              $$139 = $$03840;$$3 = $119;
+              break;
+             }
+             $120 = $111 & 8192;
+             $121 = ($120|0)==(0);
+             $122 = ((($10)) + 44|0);
+             __gcry_mpi_point_init($122);
+             if (!($121)) {
+              $123 = HEAP32[$6>>2]|0;
+              $124 = (__gcry_ecc_os2ec($122,$123)|0);
+              $125 = ($124|0)==(0);
+              if (!($125)) {
+               $$139 = $$03840;$$3 = $124;
+               break;
+              }
+              $126 = HEAP32[$9>>2]|0;
+              $127 = HEAP32[$7>>2]|0;
+              $128 = HEAP32[$8>>2]|0;
+              $129 = (__gcry_ecc_gost_verify($126,$10,$127,$128)|0);
+              $$139 = $$03840;$$3 = $129;
+              break;
+             }
+             $130 = ((($10)) + 4|0);
+             $131 = HEAP32[$130>>2]|0;
+             $132 = ($131|0)==(1);
+             if ($132) {
+              $133 = HEAP32[$10>>2]|0;
+              $134 = HEAP32[$$pre$phiZ2D>>2]|0;
+              $135 = HEAP32[$94>>2]|0;
+              $136 = HEAP32[$97>>2]|0;
+              $137 = (__gcry_mpi_ec_p_internal_new($133,1,0,$134,$135,$136)|0);
+              $138 = HEAP32[$6>>2]|0;
+              $139 = (__gcry_ecc_eddsa_decodepoint($138,$137,$122,0,0)|0);
+              __gcry_mpi_ec_free($137);
+              $$1 = $139;
+             } else {
+              $140 = HEAP32[$6>>2]|0;
+              $141 = (__gcry_ecc_os2ec($122,$140)|0);
+              $$1 = $141;
+             }
+             $142 = ($$1|0)==(0);
+             if (!($142)) {
+              $$139 = $$03840;$$3 = $$1;
+              break;
+             }
+             $143 = HEAP32[$9>>2]|0;
+             $144 = ($143|0)==(0|0);
+             do {
+              if (!($144)) {
+               $145 = ((($143)) + 12|0);
+               $146 = HEAP32[$145>>2]|0;
+               $147 = $146 & 4;
+               $148 = ($147|0)==(0);
+               if ($148) {
+                break;
+               }
+               $149 = HEAP32[$103>>2]|0;
+               $150 = (__gcry_mpi_get_nbits($149)|0);
+               $151 = HEAP32[$9>>2]|0;
+               $152 = (__gcry_mpi_get_opaque($151,$12)|0);
+               $153 = HEAP32[$12>>2]|0;
+               $154 = (($153) + 7)|0;
+               $155 = $154 >>> 3;
+               $156 = (__gcry_mpi_scan($13,5,$152,$155,0)|0);
+               $157 = ($156|0)==(0);
+               if ($157) {
+                $158 = HEAP32[$12>>2]|0;
+                $159 = ($158>>>0)>($150>>>0);
+                if ($159) {
+                 $160 = (($158) - ($150))|0;
+                 $161 = HEAP32[$13>>2]|0;
+                 __gcry_mpi_rshift($161,$161,$160);
+                }
+                $162 = HEAP32[$13>>2]|0;
+                $163 = HEAP32[$7>>2]|0;
+                $164 = HEAP32[$8>>2]|0;
+                $165 = (__gcry_ecc_ecdsa_verify($162,$10,$163,$164)|0);
+                $166 = HEAP32[$13>>2]|0;
+                __gcry_mpi_release($166);
+                $$2 = $165;
+               } else {
+                $$2 = $156;
+               }
+               $$139 = $$03840;$$3 = $$2;
+               break L1;
+              }
+             } while(0);
+             $167 = HEAP32[$7>>2]|0;
+             $168 = HEAP32[$8>>2]|0;
+             $169 = (__gcry_ecc_ecdsa_verify($143,$10,$167,$168)|0);
+             $$139 = $$03840;$$3 = $169;
+            } else {
+             $$139 = $$03840;$$3 = 68;
+            }
+           }
+          }
+         }
+        }
+       }
+      } else {
+       $$139 = 0;$$3 = $$037;
+      }
+     } else {
+      $$139 = 0;$$3 = 70;
+     }
+    } else {
+     $$139 = 0;$$3 = $27;
+    }
+   } else {
+    $$139 = 0;$$3 = $20;
+   }
+  } else {
+   $$139 = 0;$$3 = $15;
+  }
+ } while(0);
+ $170 = ((($10)) + 8|0);
+ $171 = HEAP32[$170>>2]|0;
+ __gcry_mpi_release($171);
+ $172 = ((($10)) + 12|0);
+ $173 = HEAP32[$172>>2]|0;
+ __gcry_mpi_release($173);
+ $174 = ((($10)) + 16|0);
+ $175 = HEAP32[$174>>2]|0;
+ __gcry_mpi_release($175);
+ $176 = HEAP32[$5>>2]|0;
+ __gcry_mpi_release($176);
+ $177 = ((($10)) + 20|0);
+ __gcry_mpi_point_free_parts($177);
+ $178 = ((($10)) + 32|0);
+ $179 = HEAP32[$178>>2]|0;
+ __gcry_mpi_release($179);
+ $180 = ((($10)) + 36|0);
+ $181 = HEAP32[$180>>2]|0;
+ __gcry_mpi_release($181);
+ $182 = HEAP32[$6>>2]|0;
+ __gcry_mpi_release($182);
+ $183 = ((($10)) + 44|0);
+ __gcry_mpi_point_free_parts($183);
+ $184 = HEAP32[$9>>2]|0;
+ __gcry_mpi_release($184);
+ $185 = HEAP32[$7>>2]|0;
+ __gcry_mpi_release($185);
+ $186 = HEAP32[$8>>2]|0;
+ __gcry_mpi_release($186);
+ __gcry_free($$139);
+ $187 = HEAP32[$4>>2]|0;
+ __gcry_sexp_release($187);
+ __gcry_pk_util_free_encoding_ctx($3);
+ $188 = (__gcry_get_debug_flag(1)|0);
+ $189 = ($188|0)==(0);
+ if ($189) {
+  $$0 = $$3;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $190 = ($$3|0)==(0);
+ if ($190) {
+  $192 = 65003;
+ } else {
+  $191 = (_gpg_strerror($$3)|0);
+  $192 = $191;
+ }
+ HEAP32[$vararg_buffer25>>2] = $192;
+ __gcry_log_debug(65008,$vararg_buffer25);
+ $$0 = $$3;
+ STACKTOP = sp;return ($$0|0);
+}
+function _ecc_get_nbits($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$pre = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 
= 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = sp;
+ HEAP32[$1>>2] = 0;
+ $2 = (__gcry_sexp_find_token($0,64769,1)|0);
+ $3 = ($2|0)==(0|0);
+ if ($3) {
+  $4 = (__gcry_sexp_find_token($0,64745,5)|0);
+  $5 = ($4|0)==(0|0);
+  if ($5) {
+   $$0 = 0;
+  } else {
+   $6 = (__gcry_sexp_nth_string($4,1)|0);
+   __gcry_sexp_release($4);
+   $7 = ($6|0)==(0|0);
+   if ($7) {
+    $$0 = 0;
+   } else {
+    $8 = (__gcry_ecc_fill_in_curve(0,$6,0,$1)|0);
+    $9 = ($8|0)==(0);
+    if (!($9)) {
+     HEAP32[$1>>2] = 0;
+    }
+    __gcry_free($6);
+    $$pre = HEAP32[$1>>2]|0;
+    $$0 = $$pre;
+   }
+  }
+ } else {
+  $10 = (__gcry_sexp_nth_mpi($2,1,5)|0);
+  __gcry_sexp_release($2);
+  $11 = ($10|0)==(0|0);
+  if ($11) {
+   $$0 = 0;
+  } else {
+   $12 = (__gcry_mpi_get_nbits($10)|0);
+   HEAP32[$1>>2] = $12;
+   __gcry_mpi_release($10);
+   $$0 = $12;
+  }
+ }
+ STACKTOP = sp;return ($$0|0);
+}
+function _run_selftests_1814($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ($0|0)==(18);
+ $spec$select = $3 ? 0 : 4;
+ return ($spec$select|0);
+}
+function _compute_keygrip_1815($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$060 = 0, $$06370 = 0, $$069 = 0, $$164 = 0, $$26782 = 0, $$8 = 0, 
$$lobit = 0, $$pre = 0, $$pre$phiZ2D = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 
0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0;
+ var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $12 = 0, $13 = 
0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 
0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0;
+ var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 
0, $59 = 0, $6 = 0, $60 = 0;
+ var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, 
$69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, 
$77 = 0, $78 = 0, $79 = 0;
+ var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, 
$87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, 
$95 = 0, $96 = 0, $97 = 0;
+ var $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_buffer18 = 0, 
$vararg_buffer22 = 0, $vararg_buffer26 = 0, $vararg_buffer30 = 0, 
$vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, 
$vararg_ptr13 = 0, $vararg_ptr14 = 0, $vararg_ptr15 = 0, $vararg_ptr16 = 0, 
$vararg_ptr17 = 0, $vararg_ptr2 = 0, $vararg_ptr21 = 0, $vararg_ptr25 = 0, 
$vararg_ptr29 = 0;
+ var $vararg_ptr3 = 0, $vararg_ptr33 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, 
$vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(192|0);
+ $vararg_buffer30 = sp + 152|0;
+ $vararg_buffer26 = sp + 144|0;
+ $vararg_buffer22 = sp + 136|0;
+ $vararg_buffer18 = sp + 128|0;
+ $vararg_buffer8 = sp + 96|0;
+ $vararg_buffer = sp + 64|0;
+ $2 = sp + 32|0;
+ $3 = sp + 176|0;
+ $4 = sp + 172|0;
+ $5 = sp + 168|0;
+ $6 = sp;
+ $7 = sp + 164|0;
+ $8 = sp + 160|0;
+ HEAP32[$3>>2] = 0;
+ HEAP32[$4>>2] = 0;
+ HEAP32[$5>>2] = 0;
+ 
;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;
+ $9 = (__gcry_sexp_find_token($1,64705,0)|0);
+ $10 = ($9|0)==(0|0);
+ do {
+  if ($10) {
+   $11 = ((($2)) + 24|0);
+   $28 = $11;
+   label = 10;
+  } else {
+   $12 = (__gcry_pk_util_parse_flaglist($9,$3,0)|0);
+   $13 = ($12|0)==(0);
+   if ($13) {
+    $$pre = HEAP32[$3>>2]|0;
+    $14 = $$pre & 512;
+    $15 = ($14|0)==(0);
+    $16 = $$pre & 4096;
+    $17 = ($16|0)!=(0);
+    if ($15) {
+     $26 = ((($2)) + 24|0);
+     if (!($17)) {
+      $28 = $26;
+      label = 10;
+      break;
+     }
+     HEAP32[$vararg_buffer18>>2] = $26;
+     $vararg_ptr21 = ((($vararg_buffer18)) + 4|0);
+     HEAP32[$vararg_ptr21>>2] = 0;
+     $27 = (__gcry_sexp_extract_param($1,0,64740,$vararg_buffer18)|0);
+     $$060 = $27;
+     label = 11;
+     break;
+    }
+    $18 = ((($2)) + 4|0);
+    $19 = ((($2)) + 8|0);
+    $20 = ((($2)) + 12|0);
+    $21 = ((($2)) + 16|0);
+    $22 = ((($2)) + 20|0);
+    $23 = ((($2)) + 24|0);
+    if ($17) {
+     HEAP32[$vararg_buffer>>2] = $2;
+     $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+     HEAP32[$vararg_ptr1>>2] = $18;
+     $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+     HEAP32[$vararg_ptr2>>2] = $19;
+     $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+     HEAP32[$vararg_ptr3>>2] = $20;
+     $vararg_ptr4 = ((($vararg_buffer)) + 16|0);
+     HEAP32[$vararg_ptr4>>2] = $21;
+     $vararg_ptr5 = ((($vararg_buffer)) + 20|0);
+     HEAP32[$vararg_ptr5>>2] = $22;
+     $vararg_ptr6 = ((($vararg_buffer)) + 24|0);
+     HEAP32[$vararg_ptr6>>2] = $23;
+     $vararg_ptr7 = ((($vararg_buffer)) + 28|0);
+     HEAP32[$vararg_ptr7>>2] = 0;
+     $24 = (__gcry_sexp_extract_param($1,0,64711,$vararg_buffer)|0);
+     $$060 = $24;
+     label = 11;
+     break;
+    } else {
+     HEAP32[$vararg_buffer8>>2] = $2;
+     $vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
+     HEAP32[$vararg_ptr11>>2] = $18;
+     $vararg_ptr12 = ((($vararg_buffer8)) + 8|0);
+     HEAP32[$vararg_ptr12>>2] = $19;
+     $vararg_ptr13 = ((($vararg_buffer8)) + 12|0);
+     HEAP32[$vararg_ptr13>>2] = $20;
+     $vararg_ptr14 = ((($vararg_buffer8)) + 16|0);
+     HEAP32[$vararg_ptr14>>2] = $21;
+     $vararg_ptr15 = ((($vararg_buffer8)) + 20|0);
+     HEAP32[$vararg_ptr15>>2] = $22;
+     $vararg_ptr16 = ((($vararg_buffer8)) + 24|0);
+     HEAP32[$vararg_ptr16>>2] = $23;
+     $vararg_ptr17 = ((($vararg_buffer8)) + 28|0);
+     HEAP32[$vararg_ptr17>>2] = 0;
+     $25 = (__gcry_sexp_extract_param($1,0,64726,$vararg_buffer8)|0);
+     $$060 = $25;
+     label = 11;
+     break;
+    }
+   } else {
+    $$069 = $9;$$164 = 0;$$8 = $12;
+   }
+  }
+ } while(0);
+ if ((label|0) == 10) {
+  HEAP32[$vararg_buffer22>>2] = $28;
+  $vararg_ptr25 = ((($vararg_buffer22)) + 4|0);
+  HEAP32[$vararg_ptr25>>2] = 0;
+  $29 = (__gcry_sexp_extract_param($1,0,64743,$vararg_buffer22)|0);
+  $$060 = $29;
+  label = 11;
+ }
+ L14: do {
+  if ((label|0) == 11) {
+   $30 = ($$060|0)==(0);
+   if ($30) {
+    __gcry_sexp_release($9);
+    $31 = (__gcry_sexp_find_token($1,64745,5)|0);
+    $32 = ($31|0)==(0|0);
+    if ($32) {
+     label = 15;
+    } else {
+     $33 = (__gcry_sexp_nth_string($31,1)|0);
+     $34 = ($33|0)==(0|0);
+     if ($34) {
+      label = 15;
+     } else {
+      $35 = ((($2)) + 4|0);
+      $36 = ((($2)) + 8|0);
+      $37 = ((($2)) + 12|0);
+      $38 = ((($2)) + 16|0);
+      $39 = ((($2)) + 20|0);
+      $40 = 
(__gcry_ecc_update_curve_param($33,$4,$5,$2,$35,$36,$37,$38,$39)|0);
+      $41 = ($40|0)==(0);
+      if ($41) {
+       $$06370 = $33;$$pre$phiZ2D = $2;
+      } else {
+       $$069 = $31;$$164 = $33;$$8 = $40;
+       break;
+      }
+     }
+    }
+    if ((label|0) == 15) {
+     $42 = HEAP32[$3>>2]|0;
+     $43 = $42 >>> 11;
+     $44 = $43 & 2;
+     HEAP32[$4>>2] = $44;
+     $45 = $42 >>> 12;
+     $$lobit = $45 & 1;
+     HEAP32[$5>>2] = $$lobit;
+     $$06370 = 0;$$pre$phiZ2D = $2;
+    }
+    $46 = HEAP32[$$pre$phiZ2D>>2]|0;
+    $47 = ($46|0)==(0|0);
+    if ($47) {
+     $$069 = $31;$$164 = $$06370;$$8 = 68;
+    } else {
+     __gcry_mpi_normalize($46);
+     $48 = ((($2)) + 4|0);
+     $49 = HEAP32[$48>>2]|0;
+     $50 = ($49|0)==(0|0);
+     if ($50) {
+      $$069 = $31;$$164 = $$06370;$$8 = 68;
+     } else {
+      __gcry_mpi_normalize($49);
+      $98 = ((($2)) + 8|0);
+      $99 = HEAP32[$98>>2]|0;
+      $100 = ($99|0)==(0|0);
+      if ($100) {
+       $$069 = $31;$$164 = $$06370;$$8 = 68;
+      } else {
+       __gcry_mpi_normalize($99);
+       $101 = ((($2)) + 12|0);
+       $102 = HEAP32[$101>>2]|0;
+       $103 = ($102|0)==(0|0);
+       if ($103) {
+        $$069 = $31;$$164 = $$06370;$$8 = 68;
+       } else {
+        __gcry_mpi_normalize($102);
+        $104 = ((($2)) + 16|0);
+        $105 = HEAP32[$104>>2]|0;
+        $106 = ($105|0)==(0|0);
+        if ($106) {
+         $$069 = $31;$$164 = $$06370;$$8 = 68;
+        } else {
+         __gcry_mpi_normalize($105);
+         $107 = ((($2)) + 20|0);
+         $108 = HEAP32[$107>>2]|0;
+         $109 = ($108|0)==(0|0);
+         if ($109) {
+          $$069 = $31;$$164 = $$06370;$$8 = 68;
+         } else {
+          __gcry_mpi_normalize($108);
+          $54 = ((($2)) + 24|0);
+          $110 = HEAP32[$54>>2]|0;
+          $111 = ($110|0)==(0|0);
+          if ($111) {
+           $$069 = $31;$$164 = $$06370;$$8 = 68;
+          } else {
+           __gcry_mpi_normalize($110);
+           $112 = HEAP32[$3>>2]|0;
+           $113 = $112 & 4096;
+           $114 = ($113|0)==(0);
+           if (!($114)) {
+            $51 = HEAP32[$5>>2]|0;
+            $52 = ($51|0)==(1);
+            if (!($52)) {
+             $$069 = $31;$$164 = $$06370;$$8 = 69;
+             break;
+            }
+            $53 = HEAP32[$54>>2]|0;
+            $55 = (__gcry_ecc_eddsa_ensure_compact($53,256)|0);
+            $56 = ($55|0)==(0);
+            if (!($56)) {
+             $$069 = $31;$$164 = $$06370;$$8 = $55;
+             break;
+            }
+           }
+           $$26782 = 0;
+           L34: while(1) {
+            $57 = ($$26782|0)==(5);
+            do {
+             if (!($57)) {
+              $58 = (($2) + ($$26782<<2)|0);
+              $59 = HEAP32[$58>>2]|0;
+              $60 = ($59|0)==(0|0);
+              if (!($60)) {
+               $61 = ((($59)) + 12|0);
+               $62 = HEAP32[$61>>2]|0;
+               $63 = $62 & 4;
+               $64 = ($63|0)==(0);
+               if (!($64)) {
+                $65 = (__gcry_mpi_get_opaque($59,$7)|0);
+                $66 = HEAP32[$7>>2]|0;
+                $67 = (($66) + 7)|0;
+                $68 = $67 >>> 3;
+                HEAP32[$7>>2] = $68;
+                $69 = (64751 + ($$26782)|0);
+                $70 = HEAP8[$69>>0]|0;
+                $71 = $70 << 24 >> 24;
+                HEAP32[$vararg_buffer26>>2] = $71;
+                $vararg_ptr29 = ((($vararg_buffer26)) + 4|0);
+                HEAP32[$vararg_ptr29>>2] = $68;
+                (_snprintf($6,30,64758,$vararg_buffer26)|0);
+                $72 = (_strlen($6)|0);
+                __gcry_md_write($0,$6,$72);
+                $73 = HEAP32[$7>>2]|0;
+                __gcry_md_write($0,$65,$73);
+                __gcry_md_write($0,64767,1);
+                break;
+               }
+              }
+              $74 = (__gcry_mpi_get_buffer($59,0,$8,0)|0);
+              $75 = ($74|0)==(0|0);
+              if ($75) {
+               break L34;
+              }
+              $76 = (64751 + ($$26782)|0);
+              $77 = HEAP8[$76>>0]|0;
+              $78 = $77 << 24 >> 24;
+              $79 = HEAP32[$8>>2]|0;
+              HEAP32[$vararg_buffer30>>2] = $78;
+              $vararg_ptr33 = ((($vararg_buffer30)) + 4|0);
+              HEAP32[$vararg_ptr33>>2] = $79;
+              (_snprintf($6,30,64758,$vararg_buffer30)|0);
+              $80 = (_strlen($6)|0);
+              __gcry_md_write($0,$6,$80);
+              $81 = HEAP32[$8>>2]|0;
+              __gcry_md_write($0,$74,$81);
+              __gcry_md_write($0,64767,1);
+              __gcry_free($74);
+             }
+            } while(0);
+            $83 = (($$26782) + 1)|0;
+            $84 = ($83>>>0)<(7);
+            if ($84) {
+             $$26782 = $83;
+            } else {
+             $$069 = $31;$$164 = $$06370;$$8 = 0;
+             break L14;
+            }
+           }
+           $82 = (_gpg_err_code_from_syserror()|0);
+           $$069 = $31;$$164 = $$06370;$$8 = $82;
+          }
+         }
+        }
+       }
+      }
+     }
+    }
+   } else {
+    $$069 = $9;$$164 = 0;$$8 = $$060;
+   }
+  }
+ } while(0);
+ __gcry_free($$164);
+ __gcry_sexp_release($$069);
+ $85 = HEAP32[$2>>2]|0;
+ __gcry_mpi_release($85);
+ $86 = ((($2)) + 4|0);
+ $87 = HEAP32[$86>>2]|0;
+ __gcry_mpi_release($87);
+ $88 = ((($2)) + 8|0);
+ $89 = HEAP32[$88>>2]|0;
+ __gcry_mpi_release($89);
+ $90 = ((($2)) + 12|0);
+ $91 = HEAP32[$90>>2]|0;
+ __gcry_mpi_release($91);
+ $92 = ((($2)) + 16|0);
+ $93 = HEAP32[$92>>2]|0;
+ __gcry_mpi_release($93);
+ $94 = ((($2)) + 20|0);
+ $95 = HEAP32[$94>>2]|0;
+ __gcry_mpi_release($95);
+ $96 = ((($2)) + 24|0);
+ $97 = HEAP32[$96>>2]|0;
+ __gcry_mpi_release($97);
+ STACKTOP = sp;return ($$8|0);
+}
+function __gcry_hash_selftest_check_one($0,$1,$2,$3,$4,$5) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ var $$022 = 0, $$025 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 
0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$exitcond = 0, $spec$select = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 1008|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(1008|0);
+ $6 = sp + 1000|0;
+ $7 = sp;
+ $8 = (__gcry_md_get_algo_dlen($0)|0);
+ $9 = ($8|0)==($5|0);
+ if (!($9)) {
+  $$022 = 67478;
+  STACKTOP = sp;return ($$022|0);
+ }
+ $10 = (__gcry_md_open($6,$0,0)|0);
+ $11 = ($10|0)==(0);
+ if (!($11)) {
+  $$022 = 67519;
+  STACKTOP = sp;return ($$022|0);
+ }
+ switch ($1|0) {
+ case 0:  {
+  $12 = HEAP32[$6>>2]|0;
+  __gcry_md_write($12,$2,$3);
+  label = 8;
+  break;
+ }
+ case 1:  {
+  _memset(($7|0),97,1000)|0;
+  $$025 = 0;
+  while(1) {
+   $13 = HEAP32[$6>>2]|0;
+   __gcry_md_write($13,$7,1000);
+   $14 = (($$025) + 1)|0;
+   $exitcond = ($14|0)==(1000);
+   if ($exitcond) {
+    break;
+   } else {
+    $$025 = $14;
+   }
+  }
+  label = 8;
+  break;
+ }
+ default: {
+  $$1 = 67461;
+ }
+ }
+ if ((label|0) == 8) {
+  $15 = HEAP32[$6>>2]|0;
+  $16 = (__gcry_md_read($15,$0)|0);
+  $17 = (_memcmp($16,$4,$5)|0);
+  $18 = ($17|0)==(0);
+  $spec$select = $18 ? 0 : 67445;
+  $$1 = $spec$select;
+ }
+ $19 = HEAP32[$6>>2]|0;
+ __gcry_md_close($19);
+ $$022 = $$1;
+ STACKTOP = sp;return ($$022|0);
+}
+function __gcry_md_block_write($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$06376$lcssa = 0, $$0637689 = 0, $$077$lcssa = 0, $$07788 = 0, $$1 = 0, 
$$164 = 0, $$168 = 0, $$2 = 0, $$265 = 0, $$36673 = 0, $$374 = 0, $$lcssa = 0, 
$$pre = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0;
+ var $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;
+ var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 
= 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 
= 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0;
+ var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, 
$149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, 
$156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0;
+ var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, 
$167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, 
$18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0;
+ var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, 
$30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 
0, $39 = 0, $4 = 0, $40 = 0;
+ var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, 
$49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, 
$57 = 0, $58 = 0, $59 = 0;
+ var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, 
$67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, 
$75 = 0, $76 = 0, $77 = 0;
+ var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, 
$85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, 
$93 = 0, $94 = 0, $95 = 0;
+ var $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($0)) + 148|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ($4>>>0)>(128);
+ if ($5) {
+  __gcry_bug(67539,112,67553);
+  // unreachable;
+ }
+ $6 = ((($0)) + 152|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($7|0)==(0|0);
+ if ($8) {
+  return;
+ }
+ $9 = ((($0)) + 144|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ($10|0)==($4|0);
+ if ($11) {
+  $12 = (FUNCTION_TABLE_iiii[$7 & 127]($0,$0,1)|0);
+  ___gcry_burn_stack($12);
+  HEAP32[$9>>2] = 0;
+  $13 = ((($0)) + 128|0);
+  $14 = $13;
+  $15 = $14;
+  $16 = HEAP32[$15>>2]|0;
+  $17 = (($14) + 4)|0;
+  $18 = $17;
+  $19 = HEAP32[$18>>2]|0;
+  $20 = (_i64Add(($16|0),($19|0),1,0)|0);
+  $21 = tempRet0;
+  $22 = $13;
+  $23 = $22;
+  HEAP32[$23>>2] = $20;
+  $24 = (($22) + 4)|0;
+  $25 = $24;
+  HEAP32[$25>>2] = $21;
+  $26 = ($20|0)==(0);
+  $27 = ($21|0)==(0);
+  $28 = $26 & $27;
+  if ($28) {
+   $29 = ((($0)) + 136|0);
+   $30 = $29;
+   $31 = $30;
+   $32 = HEAP32[$31>>2]|0;
+   $33 = (($30) + 4)|0;
+   $34 = $33;
+   $35 = HEAP32[$34>>2]|0;
+   $36 = (_i64Add(($32|0),($35|0),1,0)|0);
+   $37 = tempRet0;
+   $38 = $29;
+   $39 = $38;
+   HEAP32[$39>>2] = $36;
+   $40 = (($38) + 4)|0;
+   $41 = $40;
+   HEAP32[$41>>2] = $37;
+   $44 = 0;
+  } else {
+   $44 = 0;
+  }
+ } else {
+  $44 = $10;
+ }
+ $42 = ($1|0)==(0|0);
+ if ($42) {
+  return;
+ }
+ $43 = ($44|0)==(0);
+ L14: do {
+  if ($43) {
+   $$1 = $2;$$164 = $1;
+  } else {
+   $45 = ($2|0)==(0);
+   L16: do {
+    if (!($45)) {
+     $46 = ($44>>>0)<($4>>>0);
+     if ($46) {
+      $$0637689 = $1;$$07788 = $2;$49 = $44;
+      while(1) {
+       $47 = HEAP8[$$0637689>>0]|0;
+       $48 = (($49) + 1)|0;
+       HEAP32[$9>>2] = $48;
+       $50 = (($0) + ($49)|0);
+       HEAP8[$50>>0] = $47;
+       $51 = (($$07788) + -1)|0;
+       $52 = ($51|0)==(0);
+       if ($52) {
+        break L16;
+       }
+       $53 = ((($$0637689)) + 1|0);
+       $$pre = HEAP32[$9>>2]|0;
+       $54 = ($$pre>>>0)<($4>>>0);
+       if ($54) {
+        $$0637689 = $53;$$07788 = $51;$49 = $$pre;
+       } else {
+        $$06376$lcssa = $53;$$077$lcssa = $51;$$lcssa = $$pre;
+        break;
+       }
+      }
+     } else {
+      $$06376$lcssa = $1;$$077$lcssa = $2;$$lcssa = $44;
+     }
+     $55 = HEAP32[$3>>2]|0;
+     $56 = ($55>>>0)>(128);
+     if ($56) {
+      __gcry_bug(67539,112,67553);
+      // unreachable;
+     }
+     $57 = HEAP32[$6>>2]|0;
+     $58 = ($57|0)!=(0|0);
+     $59 = ($$lcssa|0)==($55|0);
+     $or$cond = $59 & $58;
+     if (!($or$cond)) {
+      $$1 = $$077$lcssa;$$164 = $$06376$lcssa;
+      break L14;
+     }
+     $60 = (FUNCTION_TABLE_iiii[$57 & 127]($0,$0,1)|0);
+     ___gcry_burn_stack($60);
+     HEAP32[$9>>2] = 0;
+     $61 = ((($0)) + 128|0);
+     $62 = $61;
+     $63 = $62;
+     $64 = HEAP32[$63>>2]|0;
+     $65 = (($62) + 4)|0;
+     $66 = $65;
+     $67 = HEAP32[$66>>2]|0;
+     $68 = (_i64Add(($64|0),($67|0),1,0)|0);
+     $69 = tempRet0;
+     $70 = $61;
+     $71 = $70;
+     HEAP32[$71>>2] = $68;
+     $72 = (($70) + 4)|0;
+     $73 = $72;
+     HEAP32[$73>>2] = $69;
+     $74 = ($68|0)==(0);
+     $75 = ($69|0)==(0);
+     $76 = $74 & $75;
+     if (!($76)) {
+      $$1 = $$077$lcssa;$$164 = $$06376$lcssa;
+      break L14;
+     }
+     $77 = ((($0)) + 136|0);
+     $78 = $77;
+     $79 = $78;
+     $80 = HEAP32[$79>>2]|0;
+     $81 = (($78) + 4)|0;
+     $82 = $81;
+     $83 = HEAP32[$82>>2]|0;
+     $84 = (_i64Add(($80|0),($83|0),1,0)|0);
+     $85 = tempRet0;
+     $86 = $77;
+     $87 = $86;
+     HEAP32[$87>>2] = $84;
+     $88 = (($86) + 4)|0;
+     $89 = $88;
+     HEAP32[$89>>2] = $85;
+     $$1 = $$077$lcssa;$$164 = $$06376$lcssa;
+     break L14;
+    }
+   } while(0);
+   $90 = HEAP32[$3>>2]|0;
+   $91 = ($90>>>0)>(128);
+   if ($91) {
+    __gcry_bug(67539,112,67553);
+    // unreachable;
+   }
+   $92 = HEAP32[$6>>2]|0;
+   $93 = ($92|0)==(0|0);
+   if ($93) {
+    return;
+   }
+   $94 = HEAP32[$9>>2]|0;
+   $95 = ($94|0)==($90|0);
+   if (!($95)) {
+    return;
+   }
+   $96 = (FUNCTION_TABLE_iiii[$92 & 127]($0,$0,1)|0);
+   ___gcry_burn_stack($96);
+   HEAP32[$9>>2] = 0;
+   $97 = ((($0)) + 128|0);
+   $98 = $97;
+   $99 = $98;
+   $100 = HEAP32[$99>>2]|0;
+   $101 = (($98) + 4)|0;
+   $102 = $101;
+   $103 = HEAP32[$102>>2]|0;
+   $104 = (_i64Add(($100|0),($103|0),1,0)|0);
+   $105 = tempRet0;
+   $106 = $97;
+   $107 = $106;
+   HEAP32[$107>>2] = $104;
+   $108 = (($106) + 4)|0;
+   $109 = $108;
+   HEAP32[$109>>2] = $105;
+   $110 = ($104|0)==(0);
+   $111 = ($105|0)==(0);
+   $112 = $110 & $111;
+   if (!($112)) {
+    return;
+   }
+   $113 = ((($0)) + 136|0);
+   $114 = $113;
+   $115 = $114;
+   $116 = HEAP32[$115>>2]|0;
+   $117 = (($114) + 4)|0;
+   $118 = $117;
+   $119 = HEAP32[$118>>2]|0;
+   $120 = (_i64Add(($116|0),($119|0),1,0)|0);
+   $121 = tempRet0;
+   $122 = $113;
+   $123 = $122;
+   HEAP32[$123>>2] = $120;
+   $124 = (($122) + 4)|0;
+   $125 = $124;
+   HEAP32[$125>>2] = $121;
+   return;
+  }
+ } while(0);
+ $126 = ($$1>>>0)<($4>>>0);
+ if ($126) {
+  $$168 = 0;$$2 = $$1;$$265 = $$164;
+ } else {
+  $127 = (($$1>>>0) / ($4>>>0))&-1;
+  $128 = HEAP32[$6>>2]|0;
+  $129 = (FUNCTION_TABLE_iiii[$128 & 127]($0,$$164,$127)|0);
+  HEAP32[$9>>2] = 0;
+  $130 = ((($0)) + 128|0);
+  $131 = $130;
+  $132 = $131;
+  $133 = HEAP32[$132>>2]|0;
+  $134 = (($131) + 4)|0;
+  $135 = $134;
+  $136 = HEAP32[$135>>2]|0;
+  $137 = (_i64Add(($133|0),($136|0),($127|0),0)|0);
+  $138 = tempRet0;
+  $139 = ($138>>>0)<(0);
+  $140 = ($137>>>0)<($127>>>0);
+  $141 = ($138|0)==(0);
+  $142 = $141 & $140;
+  $143 = $139 | $142;
+  $144 = $143&1;
+  $145 = ((($0)) + 136|0);
+  $146 = $145;
+  $147 = $146;
+  $148 = HEAP32[$147>>2]|0;
+  $149 = (($146) + 4)|0;
+  $150 = $149;
+  $151 = HEAP32[$150>>2]|0;
+  $152 = (_i64Add(($148|0),($151|0),($144|0),0)|0);
+  $153 = tempRet0;
+  $154 = $145;
+  $155 = $154;
+  HEAP32[$155>>2] = $152;
+  $156 = (($154) + 4)|0;
+  $157 = $156;
+  HEAP32[$157>>2] = $153;
+  $158 = $130;
+  $159 = $158;
+  HEAP32[$159>>2] = $137;
+  $160 = (($158) + 4)|0;
+  $161 = $160;
+  HEAP32[$161>>2] = $138;
+  $162 = Math_imul($127, $4)|0;
+  $163 = (($$1) - ($162))|0;
+  $164 = (($$164) + ($162)|0);
+  $$168 = $129;$$2 = $163;$$265 = $164;
+ }
+ ___gcry_burn_stack($$168);
+ $165 = ($$2|0)==(0);
+ if ($165) {
+  return;
+ }
+ $$36673 = $$265;$$374 = $$2;
+ while(1) {
+  $166 = HEAP32[$9>>2]|0;
+  $167 = ($166>>>0)<($4>>>0);
+  if (!($167)) {
+   label = 31;
+   break;
+  }
+  $168 = ((($$36673)) + 1|0);
+  $169 = HEAP8[$$36673>>0]|0;
+  $170 = (($166) + 1)|0;
+  HEAP32[$9>>2] = $170;
+  $171 = (($0) + ($166)|0);
+  HEAP8[$171>>0] = $169;
+  $172 = (($$374) + -1)|0;
+  $173 = ($172|0)==(0);
+  if ($173) {
+   label = 31;
+   break;
+  } else {
+   $$36673 = $168;$$374 = $172;
+  }
+ }
+ if ((label|0) == 31) {
+  return;
+ }
+}
+function __gcry_poly1305_update($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$02434$i = 0, $$02434$i66 = 0, $$02533$i = 0, $$02533$i67 = 0, 
$$026$i70 = 0, $$028$i69 = 0, $$035$i = 0, $$035$i65 = 0, $$057 = 0, $$1 = 0, 
$$1$i71 = 0, $$12731$i = 0, $$12731$i$ph = 0, $$12731$i75 = 0, $$12930$i = 0, 
$$12930$i$ph = 0, $$12930$i76 = 0, $$158 = 0, $$160 = 0;
+ var $$2 = 0, $$232$i = 0, $$232$i$ph = 0, $$232$i74 = 0, $$pre = 0, $$pre81 = 
0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 
= 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
+ var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, 
$31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 
0, $4 = 0, $40 = 0, $41 = 0;
+ var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, 
$5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, 
$58 = 0, $59 = 0, $6 = 0;
+ var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, 
$68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, 
$76 = 0, $77 = 0, $78 = 0;
+ var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $9 = 0, $or$cond$i = 
0, $or$cond$i61 = 0, $scevgep$i = 0, $scevgep$i62 = 0, $scevgep44$i = 0, 
$scevgep44$i63 = 0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($0)) + 3|0);
+ $4 = $3;
+ $5 = $4 & 3;
+ $6 = (0 - ($5))|0;
+ $7 = (($3) + ($6)|0);
+ $8 = ((($0)) + 84|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ((($0)) + 88|0);
+ $12 = HEAP32[$11>>2]|0;
+ $13 = ($12|0)==(0);
+ do {
+  if ($13) {
+   $$0 = $1;$$057 = $2;$$160 = 0;
+  } else {
+   $14 = (($10) - ($12))|0;
+   $15 = ($14>>>0)>($2>>>0);
+   $spec$select = $15 ? $2 : $14;
+   $16 = (((($0)) + 68|0) + ($12)|0);
+   $17 = $16;
+   $18 = $1;
+   $19 = $17 | $18;
+   $20 = $19 & 3;
+   $21 = ($20|0)==(0);
+   $22 = ($spec$select>>>0)>(3);
+   $or$cond$i61 = $22 & $21;
+   if ($or$cond$i61) {
+    $23 = (($spec$select) + -4)|0;
+    $24 = $23 & -4;
+    $25 = (($24) + 4)|0;
+    $scevgep$i62 = (($1) + ($25)|0);
+    $$02434$i66 = $1;$$02533$i67 = $16;$$035$i65 = $spec$select;
+    while(1) {
+     $26 = ((($$02434$i66)) + 4|0);
+     $27 = HEAP32[$$02434$i66>>2]|0;
+     $28 = ((($$02533$i67)) + 4|0);
+     HEAP32[$$02533$i67>>2] = $27;
+     $29 = (($$035$i65) + -4)|0;
+     $30 = ($29>>>0)>(3);
+     if ($30) {
+      $$02434$i66 = $26;$$02533$i67 = $28;$$035$i65 = $29;
+     } else {
+      break;
+     }
+    }
+    $scevgep44$i63 = (($16) + ($25)|0);
+    $31 = (($23) - ($24))|0;
+    $$026$i70 = $scevgep$i62;$$028$i69 = $scevgep44$i63;$$1$i71 = $31;
+   } else {
+    $$026$i70 = $1;$$028$i69 = $16;$$1$i71 = $spec$select;
+   }
+   $32 = ($$1$i71|0)==(0);
+   if ($32) {
+    $39 = $12;
+   } else {
+    $$12731$i75 = $$026$i70;$$12930$i76 = $$028$i69;$$232$i74 = $$1$i71;
+    while(1) {
+     $33 = ((($$12731$i75)) + 1|0);
+     $34 = HEAP8[$$12731$i75>>0]|0;
+     $35 = ((($$12930$i76)) + 1|0);
+     HEAP8[$$12930$i76>>0] = $34;
+     $36 = (($$232$i74) + -1)|0;
+     $37 = ($36|0)==(0);
+     if ($37) {
+      break;
+     } else {
+      $$12731$i75 = $33;$$12930$i76 = $35;$$232$i74 = $36;
+     }
+    }
+    $$pre = HEAP32[$11>>2]|0;
+    $39 = $$pre;
+   }
+   $38 = (($39) + ($spec$select))|0;
+   HEAP32[$11>>2] = $38;
+   $40 = ($38>>>0)<($10>>>0);
+   if ($40) {
+    return;
+   } else {
+    $41 = (($1) + ($spec$select)|0);
+    $42 = (($2) - ($spec$select))|0;
+    $43 = ((($0)) + 68|0);
+    $44 = HEAP32[$8>>2]|0;
+    $45 = ((($44)) + 8|0);
+    $46 = HEAP32[$45>>2]|0;
+    $47 = (FUNCTION_TABLE_iiii[$46 & 127]($7,$43,$10)|0);
+    HEAP32[$11>>2] = 0;
+    $$0 = $41;$$057 = $42;$$160 = $47;
+    break;
+   }
+  }
+ } while(0);
+ $48 = ($$057>>>0)<($10>>>0);
+ $49 = (0 - ($10))|0;
+ $50 = $$057 & $49;
+ if ($48) {
+  $$1 = $$0;$$158 = $$057;$$2 = $$160;
+ } else {
+  $51 = (($$057) - ($50))|0;
+  $52 = (($$0) + ($50)|0);
+  $53 = HEAP32[$8>>2]|0;
+  $54 = ((($53)) + 8|0);
+  $55 = HEAP32[$54>>2]|0;
+  $56 = (FUNCTION_TABLE_iiii[$55 & 127]($7,$$0,$50)|0);
+  $$1 = $52;$$158 = $51;$$2 = $56;
+ }
+ $57 = ($$158|0)==(0);
+ if (!($57)) {
+  $58 = HEAP32[$11>>2]|0;
+  $59 = (((($0)) + 68|0) + ($58)|0);
+  $60 = $59;
+  $61 = $$1;
+  $62 = $60 | $61;
+  $63 = $62 & 3;
+  $64 = ($63|0)==(0);
+  $65 = ($$158>>>0)>(3);
+  $or$cond$i = $65 & $64;
+  if ($or$cond$i) {
+   $66 = (($$158) + -4)|0;
+   $67 = $66 & -4;
+   $68 = (($67) + 4)|0;
+   $scevgep$i = (($$1) + ($68)|0);
+   $$02434$i = $$1;$$02533$i = $59;$$035$i = $$158;
+   while(1) {
+    $69 = ((($$02434$i)) + 4|0);
+    $70 = HEAP32[$$02434$i>>2]|0;
+    $71 = ((($$02533$i)) + 4|0);
+    HEAP32[$$02533$i>>2] = $70;
+    $72 = (($$035$i) + -4)|0;
+    $73 = ($72>>>0)>(3);
+    if ($73) {
+     $$02434$i = $69;$$02533$i = $71;$$035$i = $72;
+    } else {
+     break;
+    }
+   }
+   $scevgep44$i = (($59) + ($68)|0);
+   $74 = (($66) - ($67))|0;
+   $75 = ($74|0)==(0);
+   if ($75) {
+    $82 = $58;
+   } else {
+    $$12731$i$ph = $scevgep$i;$$12930$i$ph = $scevgep44$i;$$232$i$ph = $74;
+    label = 19;
+   }
+  } else {
+   $$12731$i$ph = $$1;$$12930$i$ph = $59;$$232$i$ph = $$158;
+   label = 19;
+  }
+  if ((label|0) == 19) {
+   $$12731$i = $$12731$i$ph;$$12930$i = $$12930$i$ph;$$232$i = $$232$i$ph;
+   while(1) {
+    $76 = ((($$12731$i)) + 1|0);
+    $77 = HEAP8[$$12731$i>>0]|0;
+    $78 = ((($$12930$i)) + 1|0);
+    HEAP8[$$12930$i>>0] = $77;
+    $79 = (($$232$i) + -1)|0;
+    $80 = ($79|0)==(0);
+    if ($80) {
+     break;
+    } else {
+     $$12731$i = $76;$$12930$i = $78;$$232$i = $79;
+    }
+   }
+   $$pre81 = HEAP32[$11>>2]|0;
+   $82 = $$pre81;
+  }
+  $81 = (($82) + ($$158))|0;
+  HEAP32[$11>>2] = $81;
+ }
+ $83 = ($$2|0)==(0);
+ if ($83) {
+  return;
+ }
+ ___gcry_burn_stack($$2);
+ return;
+}
+function __gcry_poly1305_init($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$015$i56 = 0, $$016$i = 0, $$036$lcssa64 = 0, $$03648 = 0, 
$$037$lcssa63 = 0, $$03747 = 0, $$1 = 0, $$138 = 0, $$2 = 0, $$239 = 0, $$34045 
= 0, $$346 = 0, $$pre = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, 
$104 = 0;
+ var $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;
+ var $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 
= 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 
= 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0;
+ var $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, 
$148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, 
$155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0;
+ var $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 
= 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 
= 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0;
+ var $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 
= 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 
= 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0;
+ var $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 
= 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $45 = 0, $46 = 0;
+ var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, 
$62 = 0, $63 = 0, $64 = 0;
+ var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, 
$72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, 
$80 = 0, $81 = 0, $82 = 0;
+ var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, 
$90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 
0, $99 = 0, $exitcond = 0, $scevgep = 0;
+ var $spec$select = 0, $vararg_buffer = 0, dest = 0, label = 0, sp = 0, stop = 
0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 528|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(528|0);
+ $vararg_buffer = sp + 304|0;
+ $3 = sp + 436|0;
+ $4 = sp + 344|0;
+ $5 = sp + 272|0;
+ $6 = sp + 16|0;
+ $7 = sp;
+ $8 = sp + 312|0;
+ $9 = HEAP32[18129]|0;
+ $10 = ($9|0)==(0);
+ if ($10) {
+  HEAP32[18129] = 1;
+  dest=$3; stop=dest+92|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+  dest=$4; stop=dest+92|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+  
;HEAP32[$7>>2]=0|0;HEAP32[$7+4>>2]=0|0;HEAP32[$7+8>>2]=0|0;HEAP32[$7+12>>2]=0|0;
+  _poly1305_auth($7,16288,131,16432);
+  $11 = (_memcmp(16464,$7,16)|0);
+  $12 = ($11|0)==(0);
+  if ($12) {
+   
;HEAP32[$7>>2]=0|0;HEAP32[$7+4>>2]=0|0;HEAP32[$7+8>>2]=0|0;HEAP32[$7+12>>2]=0|0;
+   (__gcry_poly1305_init($3,16432,32)|0);
+   __gcry_poly1305_update($3,16288,32);
+   __gcry_poly1305_update($3,(16320),64);
+   __gcry_poly1305_update($3,(16384),16);
+   __gcry_poly1305_update($3,(16400),8);
+   __gcry_poly1305_update($3,(16408),4);
+   __gcry_poly1305_update($3,(16412),2);
+   __gcry_poly1305_update($3,(16414),1);
+   __gcry_poly1305_update($3,(16415),1);
+   __gcry_poly1305_update($3,(16416),1);
+   __gcry_poly1305_update($3,(16417),1);
+   __gcry_poly1305_update($3,(16418),1);
+   $13 = ((($3)) + 3|0);
+   $14 = $13;
+   $15 = $14 & 3;
+   $16 = (0 - ($15))|0;
+   $17 = (($13) + ($16)|0);
+   $18 = ((($3)) + 84|0);
+   $19 = HEAP32[$18>>2]|0;
+   $20 = ((($19)) + 12|0);
+   $21 = HEAP32[$20>>2]|0;
+   $22 = ((($3)) + 68|0);
+   $23 = ((($3)) + 88|0);
+   $24 = HEAP32[$23>>2]|0;
+   $25 = (FUNCTION_TABLE_iiiii[$21 & 127]($17,$22,$24,$7)|0);
+   ___gcry_burn_stack($25);
+   $26 = (_memcmp(16464,$7,16)|0);
+   $27 = ($26|0)==(0);
+   if ($27) {
+    
;HEAP32[$7>>2]=0|0;HEAP32[$7+4>>2]=0|0;HEAP32[$7+8>>2]=0|0;HEAP32[$7+12>>2]=0|0;
+    _poly1305_auth($7,16480,16,16496);
+    $28 = (_memcmp(16528,$7,16)|0);
+    $29 = ($28|0)==(0);
+    if ($29) {
+     (__gcry_poly1305_init($4,16544,32)|0);
+     $$015$i56 = 0;
+     while(1) {
+      $30 = $$015$i56&255;
+      _memset(($5|0),($30|0),32)|0;
+      $31 = ($$015$i56|0)==(0);
+      if (!($31)) {
+       _memset(($6|0),($30|0),($$015$i56|0))|0;
+      }
+      _poly1305_auth($7,$6,$$015$i56,$5);
+      __gcry_poly1305_update($4,$7,16);
+      $32 = (($$015$i56) + 1)|0;
+      $exitcond = ($32|0)==(256);
+      if ($exitcond) {
+       break;
+      } else {
+       $$015$i56 = $32;
+      }
+     }
+     $33 = ((($4)) + 3|0);
+     $34 = $33;
+     $35 = $34 & 3;
+     $36 = (0 - ($35))|0;
+     $37 = (($33) + ($36)|0);
+     $38 = ((($4)) + 84|0);
+     $39 = HEAP32[$38>>2]|0;
+     $40 = ((($39)) + 12|0);
+     $41 = HEAP32[$40>>2]|0;
+     $42 = ((($4)) + 68|0);
+     $43 = ((($4)) + 88|0);
+     $44 = HEAP32[$43>>2]|0;
+     $45 = (FUNCTION_TABLE_iiiii[$41 & 127]($37,$42,$44,$7)|0);
+     ___gcry_burn_stack($45);
+     $46 = (_memcmp(16576,$7,16)|0);
+     $47 = ($46|0)==(0);
+     $spec$select = $47 ? 0 : 67574;
+     $$016$i = $spec$select;
+    } else {
+     $$016$i = 67646;
+    }
+   } else {
+    $$016$i = 67622;
+   }
+  } else {
+   $$016$i = 67598;
+  }
+  HEAP32[18130] = $$016$i;
+  $48 = ($$016$i|0)==(0|0);
+  if (!($48)) {
+   HEAP32[$vararg_buffer>>2] = $$016$i;
+   __gcry_log_error(67670,$vararg_buffer);
+  }
+ }
+ $49 = ($2|0)==(32);
+ if (!($49)) {
+  $$0 = 44;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $50 = HEAP32[18130]|0;
+ $51 = ($50|0)==(0|0);
+ if (!($51)) {
+  $$0 = 50;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $52 = ((($0)) + 84|0);
+ HEAP32[$52>>2] = 40192;
+ $53 = $8;
+ $54 = $1;
+ $55 = $54 & 3;
+ $56 = ($55|0)==(0);
+ if ($56) {
+  $57 = ((($1)) + 4|0);
+  $58 = HEAP32[$1>>2]|0;
+  $59 = ((($8)) + 4|0);
+  HEAP32[$8>>2] = $58;
+  $60 = ((($1)) + 8|0);
+  $61 = HEAP32[$57>>2]|0;
+  $62 = ((($8)) + 8|0);
+  HEAP32[$59>>2] = $61;
+  $63 = ((($1)) + 12|0);
+  $64 = HEAP32[$60>>2]|0;
+  $65 = ((($8)) + 12|0);
+  HEAP32[$62>>2] = $64;
+  $66 = ((($1)) + 16|0);
+  $67 = HEAP32[$63>>2]|0;
+  $68 = ((($8)) + 16|0);
+  HEAP32[$65>>2] = $67;
+  $69 = ((($1)) + 20|0);
+  $70 = HEAP32[$66>>2]|0;
+  $71 = ((($8)) + 20|0);
+  HEAP32[$68>>2] = $70;
+  $72 = ((($1)) + 24|0);
+  $73 = HEAP32[$69>>2]|0;
+  $74 = ((($8)) + 24|0);
+  HEAP32[$71>>2] = $73;
+  $75 = ((($1)) + 28|0);
+  $76 = HEAP32[$72>>2]|0;
+  $77 = ((($8)) + 28|0);
+  HEAP32[$74>>2] = $76;
+  $78 = HEAP32[$75>>2]|0;
+  HEAP32[$77>>2] = $78;
+  $180 = 40192;
+ } else {
+  $79 = ((($1)) + 1|0);
+  $80 = HEAP8[$1>>0]|0;
+  $81 = ((($8)) + 1|0);
+  HEAP8[$8>>0] = $80;
+  $82 = ((($1)) + 2|0);
+  $83 = HEAP8[$79>>0]|0;
+  $84 = ((($8)) + 2|0);
+  HEAP8[$81>>0] = $83;
+  $85 = ((($1)) + 3|0);
+  $86 = HEAP8[$82>>0]|0;
+  $87 = ((($8)) + 3|0);
+  HEAP8[$84>>0] = $86;
+  $88 = ((($1)) + 4|0);
+  $89 = HEAP8[$85>>0]|0;
+  $90 = ((($8)) + 4|0);
+  HEAP8[$87>>0] = $89;
+  $91 = ((($1)) + 5|0);
+  $92 = HEAP8[$88>>0]|0;
+  $93 = ((($8)) + 5|0);
+  HEAP8[$90>>0] = $92;
+  $94 = ((($1)) + 6|0);
+  $95 = HEAP8[$91>>0]|0;
+  $96 = ((($8)) + 6|0);
+  HEAP8[$93>>0] = $95;
+  $97 = ((($1)) + 7|0);
+  $98 = HEAP8[$94>>0]|0;
+  $99 = ((($8)) + 7|0);
+  HEAP8[$96>>0] = $98;
+  $100 = ((($1)) + 8|0);
+  $101 = HEAP8[$97>>0]|0;
+  $102 = ((($8)) + 8|0);
+  HEAP8[$99>>0] = $101;
+  $103 = ((($1)) + 9|0);
+  $104 = HEAP8[$100>>0]|0;
+  $105 = ((($8)) + 9|0);
+  HEAP8[$102>>0] = $104;
+  $106 = ((($1)) + 10|0);
+  $107 = HEAP8[$103>>0]|0;
+  $108 = ((($8)) + 10|0);
+  HEAP8[$105>>0] = $107;
+  $109 = ((($1)) + 11|0);
+  $110 = HEAP8[$106>>0]|0;
+  $111 = ((($8)) + 11|0);
+  HEAP8[$108>>0] = $110;
+  $112 = ((($1)) + 12|0);
+  $113 = HEAP8[$109>>0]|0;
+  $114 = ((($8)) + 12|0);
+  HEAP8[$111>>0] = $113;
+  $115 = ((($1)) + 13|0);
+  $116 = HEAP8[$112>>0]|0;
+  $117 = ((($8)) + 13|0);
+  HEAP8[$114>>0] = $116;
+  $118 = ((($1)) + 14|0);
+  $119 = HEAP8[$115>>0]|0;
+  $120 = ((($8)) + 14|0);
+  HEAP8[$117>>0] = $119;
+  $121 = ((($1)) + 15|0);
+  $122 = HEAP8[$118>>0]|0;
+  $123 = ((($8)) + 15|0);
+  HEAP8[$120>>0] = $122;
+  $124 = ((($1)) + 16|0);
+  $125 = HEAP8[$121>>0]|0;
+  $126 = ((($8)) + 16|0);
+  HEAP8[$123>>0] = $125;
+  $127 = ((($1)) + 17|0);
+  $128 = HEAP8[$124>>0]|0;
+  $129 = ((($8)) + 17|0);
+  HEAP8[$126>>0] = $128;
+  $130 = ((($1)) + 18|0);
+  $131 = HEAP8[$127>>0]|0;
+  $132 = ((($8)) + 18|0);
+  HEAP8[$129>>0] = $131;
+  $133 = ((($1)) + 19|0);
+  $134 = HEAP8[$130>>0]|0;
+  $135 = ((($8)) + 19|0);
+  HEAP8[$132>>0] = $134;
+  $136 = ((($1)) + 20|0);
+  $137 = HEAP8[$133>>0]|0;
+  $138 = ((($8)) + 20|0);
+  HEAP8[$135>>0] = $137;
+  $139 = ((($1)) + 21|0);
+  $140 = HEAP8[$136>>0]|0;
+  $141 = ((($8)) + 21|0);
+  HEAP8[$138>>0] = $140;
+  $142 = ((($1)) + 22|0);
+  $143 = HEAP8[$139>>0]|0;
+  $144 = ((($8)) + 22|0);
+  HEAP8[$141>>0] = $143;
+  $145 = ((($1)) + 23|0);
+  $146 = HEAP8[$142>>0]|0;
+  $147 = ((($8)) + 23|0);
+  HEAP8[$144>>0] = $146;
+  $148 = ((($1)) + 24|0);
+  $149 = HEAP8[$145>>0]|0;
+  $150 = ((($8)) + 24|0);
+  HEAP8[$147>>0] = $149;
+  $151 = ((($1)) + 25|0);
+  $152 = HEAP8[$148>>0]|0;
+  $153 = ((($8)) + 25|0);
+  HEAP8[$150>>0] = $152;
+  $154 = ((($1)) + 26|0);
+  $155 = HEAP8[$151>>0]|0;
+  $156 = ((($8)) + 26|0);
+  HEAP8[$153>>0] = $155;
+  $157 = ((($1)) + 27|0);
+  $158 = HEAP8[$154>>0]|0;
+  $159 = ((($8)) + 27|0);
+  HEAP8[$156>>0] = $158;
+  $160 = ((($1)) + 28|0);
+  $161 = HEAP8[$157>>0]|0;
+  $162 = ((($8)) + 28|0);
+  HEAP8[$159>>0] = $161;
+  $163 = ((($1)) + 29|0);
+  $164 = HEAP8[$160>>0]|0;
+  $165 = ((($8)) + 29|0);
+  HEAP8[$162>>0] = $164;
+  $166 = ((($1)) + 30|0);
+  $167 = HEAP8[$163>>0]|0;
+  $168 = ((($8)) + 30|0);
+  HEAP8[$165>>0] = $167;
+  $169 = ((($1)) + 31|0);
+  $170 = HEAP8[$166>>0]|0;
+  $171 = ((($8)) + 31|0);
+  HEAP8[$168>>0] = $170;
+  $172 = HEAP8[$169>>0]|0;
+  HEAP8[$171>>0] = $172;
+  $$pre = HEAP32[$52>>2]|0;
+  $180 = $$pre;
+ }
+ $173 = ((($0)) + 3|0);
+ $174 = $173;
+ $175 = $174 & 3;
+ $176 = (0 - ($175))|0;
+ $177 = (($173) + ($176)|0);
+ $178 = ((($0)) + 88|0);
+ HEAP32[$178>>2] = 0;
+ $179 = ((($180)) + 4|0);
+ $181 = HEAP32[$179>>2]|0;
+ FUNCTION_TABLE_vii[$181 & 63]($177,$8);
+ $182 = $53 & 4;
+ $183 = ($182|0)==(0);
+ if ($183) {
+  $$036$lcssa64 = 32;$$037$lcssa63 = $8;
+  label = 21;
+ } else {
+  $$03648 = 32;$$03747 = $8;
+  while(1) {
+   HEAP8[$$03747>>0] = 0;
+   $184 = ((($$03747)) + 1|0);
+   $185 = (($$03648) + -1)|0;
+   $186 = $184;
+   $187 = $186 & 7;
+   $188 = ($187|0)!=(0);
+   $189 = ($185|0)!=(0);
+   $190 = $189 & $188;
+   if ($190) {
+    $$03648 = $185;$$03747 = $184;
+   } else {
+    break;
+   }
+  }
+  $191 = ($185>>>0)<(8);
+  if ($191) {
+   $$2 = $185;$$239 = $184;
+  } else {
+   $$036$lcssa64 = $185;$$037$lcssa63 = $184;
+   label = 21;
+  }
+ }
+ if ((label|0) == 21) {
+  $192 = (($$036$lcssa64) + -8)|0;
+  $193 = $192 & -8;
+  $194 = (($193) + 8)|0;
+  $$1 = $$036$lcssa64;$$138 = $$037$lcssa63;
+  while(1) {
+   $195 = $$138;
+   $196 = $195;
+   HEAP32[$196>>2] = 0;
+   $197 = (($195) + 4)|0;
+   $198 = $197;
+   HEAP32[$198>>2] = 0;
+   $199 = (($$1) + -8)|0;
+   $200 = ((($$138)) + 8|0);
+   $201 = ($199>>>0)>(7);
+   if ($201) {
+    $$1 = $199;$$138 = $200;
+   } else {
+    break;
+   }
+  }
+  $202 = (($192) - ($193))|0;
+  $scevgep = (($$037$lcssa63) + ($194)|0);
+  $$2 = $202;$$239 = $scevgep;
+ }
+ $203 = ($$2|0)==(0);
+ if ($203) {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $$34045 = $$239;$$346 = $$2;
+ while(1) {
+  HEAP8[$$34045>>0] = 0;
+  $204 = ((($$34045)) + 1|0);
+  $205 = (($$346) + -1)|0;
+  $206 = ($205|0)==(0);
+  if ($206) {
+   $$0 = 0;
+   break;
+  } else {
+   $$34045 = $204;$$346 = $205;
+  }
+ }
+ STACKTOP = sp;return ($$0|0);
+}
+function _poly1305_auth($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0$lcssa49 = 0, $$032$lcssa48 = 0, $$03239 = 0, $$040 = 0, $$1 = 0, 
$$133 = 0, $$2 = 0, $$234 = 0, $$33537 = 0, $$338 = 0, $10 = 0, $11 = 0, $12 = 
0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
+ var $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;
+ var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 
0, $9 = 0, $scevgep = 0, dest = 0, label = 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(96|0);
+ $4 = sp;
+ dest=$4; stop=dest+92|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ (__gcry_poly1305_init($4,$3,32)|0);
+ __gcry_poly1305_update($4,$1,$2);
+ $5 = ((($4)) + 3|0);
+ $6 = $5;
+ $7 = $6 & 3;
+ $8 = (0 - ($7))|0;
+ $9 = (($5) + ($8)|0);
+ $10 = ((($4)) + 84|0);
+ $11 = HEAP32[$10>>2]|0;
+ $12 = ((($11)) + 12|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = ((($4)) + 68|0);
+ $15 = ((($4)) + 88|0);
+ $16 = HEAP32[$15>>2]|0;
+ $17 = (FUNCTION_TABLE_iiiii[$13 & 127]($9,$14,$16,$0)|0);
+ ___gcry_burn_stack($17);
+ $18 = $4;
+ $19 = $18 & 4;
+ $20 = ($19|0)==(0);
+ if ($20) {
+  $$0$lcssa49 = $4;$$032$lcssa48 = 92;
+  label = 5;
+ } else {
+  $$03239 = 92;$$040 = $4;
+  while(1) {
+   HEAP8[$$040>>0] = 0;
+   $21 = ((($$040)) + 1|0);
+   $22 = (($$03239) + -1)|0;
+   $23 = $21;
+   $24 = $23 & 7;
+   $25 = ($24|0)!=(0);
+   $26 = ($22|0)!=(0);
+   $27 = $26 & $25;
+   if ($27) {
+    $$03239 = $22;$$040 = $21;
+   } else {
+    break;
+   }
+  }
+  $28 = ($22>>>0)<(8);
+  if ($28) {
+   $$2 = $21;$$234 = $22;
+  } else {
+   $$0$lcssa49 = $21;$$032$lcssa48 = $22;
+   label = 5;
+  }
+ }
+ if ((label|0) == 5) {
+  $29 = (($$032$lcssa48) + -8)|0;
+  $30 = $29 & -8;
+  $31 = (($30) + 8)|0;
+  $$1 = $$0$lcssa49;$$133 = $$032$lcssa48;
+  while(1) {
+   $32 = $$1;
+   $33 = $32;
+   HEAP32[$33>>2] = 0;
+   $34 = (($32) + 4)|0;
+   $35 = $34;
+   HEAP32[$35>>2] = 0;
+   $36 = (($$133) + -8)|0;
+   $37 = ((($$1)) + 8|0);
+   $38 = ($36>>>0)>(7);
+   if ($38) {
+    $$1 = $37;$$133 = $36;
+   } else {
+    break;
+   }
+  }
+  $39 = (($29) - ($30))|0;
+  $scevgep = (($$0$lcssa49) + ($31)|0);
+  $$2 = $scevgep;$$234 = $39;
+ }
+ $40 = ($$234|0)==(0);
+ if ($40) {
+  STACKTOP = sp;return;
+ }
+ $$33537 = $$234;$$338 = $$2;
+ while(1) {
+  HEAP8[$$338>>0] = 0;
+  $41 = ((($$338)) + 1|0);
+  $42 = (($$33537) + -1)|0;
+  $43 = ($42|0)==(0);
+  if ($43) {
+   break;
+  } else {
+   $$33537 = $42;$$338 = $41;
+  }
+ }
+ STACKTOP = sp;return;
+}
+function _poly1305_init_ext_ref32($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$masked = 0, $$masked26 = 0, $$masked27 = 0, $$masked28 = 0, $$masked29 
= 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 
= 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0;
+ var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 
= 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 
= 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0;
+ var $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, 
$138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, 
$145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0;
+ var $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 
= 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 
= 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0;
+ var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, 
$24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0;
+ var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, 
$42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0;
+ var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, 
$60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 
0, $69 = 0, $7 = 0, $70 = 0;
+ var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, 
$79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, 
$87 = 0, $88 = 0, $89 = 0;
+ var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, 
$97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($1)) + 3|0);
+ $3 = HEAP8[$2>>0]|0;
+ $4 = $3&255;
+ $5 = $4 << 24;
+ $6 = ((($1)) + 2|0);
+ $7 = HEAP8[$6>>0]|0;
+ $8 = $7&255;
+ $9 = $8 << 16;
+ $10 = ((($1)) + 1|0);
+ $11 = HEAP8[$10>>0]|0;
+ $12 = $11&255;
+ $13 = $12 << 8;
+ $14 = HEAP8[$1>>0]|0;
+ $15 = $14&255;
+ $$masked27 = $5 & 50331648;
+ $$masked26 = $9 | $$masked27;
+ $$masked = $$masked26 | $13;
+ $16 = $$masked | $15;
+ HEAP32[$0>>2] = $16;
+ $17 = ((($1)) + 6|0);
+ $18 = HEAP8[$17>>0]|0;
+ $19 = $18&255;
+ $20 = $19 << 24;
+ $21 = ((($1)) + 5|0);
+ $22 = HEAP8[$21>>0]|0;
+ $23 = $22&255;
+ $24 = $23 << 16;
+ $25 = $24 | $20;
+ $26 = ((($1)) + 4|0);
+ $27 = HEAP8[$26>>0]|0;
+ $28 = $27&255;
+ $29 = $28 << 8;
+ $30 = $25 | $29;
+ $31 = HEAP8[$2>>0]|0;
+ $32 = $31&255;
+ $33 = $30 | $32;
+ $34 = $33 >>> 2;
+ $35 = $34 & 67108611;
+ $36 = ((($0)) + 4|0);
+ HEAP32[$36>>2] = $35;
+ $37 = ((($1)) + 9|0);
+ $38 = HEAP8[$37>>0]|0;
+ $39 = $38&255;
+ $40 = $39 << 24;
+ $41 = ((($1)) + 8|0);
+ $42 = HEAP8[$41>>0]|0;
+ $43 = $42&255;
+ $44 = $43 << 16;
+ $45 = $44 | $40;
+ $46 = ((($1)) + 7|0);
+ $47 = HEAP8[$46>>0]|0;
+ $48 = $47&255;
+ $49 = $48 << 8;
+ $50 = $45 | $49;
+ $51 = HEAP8[$17>>0]|0;
+ $52 = $51&255;
+ $53 = $50 | $52;
+ $54 = $53 >>> 4;
+ $55 = $54 & 67092735;
+ $56 = ((($0)) + 8|0);
+ HEAP32[$56>>2] = $55;
+ $57 = ((($1)) + 12|0);
+ $58 = HEAP8[$57>>0]|0;
+ $59 = $58&255;
+ $60 = $59 << 24;
+ $61 = ((($1)) + 11|0);
+ $62 = HEAP8[$61>>0]|0;
+ $63 = $62&255;
+ $64 = $63 << 16;
+ $65 = $64 | $60;
+ $66 = ((($1)) + 10|0);
+ $67 = HEAP8[$66>>0]|0;
+ $68 = $67&255;
+ $69 = $68 << 8;
+ $70 = $65 | $69;
+ $71 = HEAP8[$37>>0]|0;
+ $72 = $71&255;
+ $73 = $70 | $72;
+ $74 = $73 >>> 6;
+ $75 = $74 & 66076671;
+ $76 = ((($0)) + 12|0);
+ HEAP32[$76>>2] = $75;
+ $77 = ((($1)) + 15|0);
+ $78 = HEAP8[$77>>0]|0;
+ $79 = $78&255;
+ $80 = $79 << 16;
+ $81 = ((($1)) + 14|0);
+ $82 = HEAP8[$81>>0]|0;
+ $83 = $82&255;
+ $84 = $83 << 8;
+ $85 = ((($1)) + 13|0);
+ $86 = HEAP8[$85>>0]|0;
+ $87 = $86&255;
+ $$masked29 = $80 & 983040;
+ $$masked28 = $84 | $$masked29;
+ $88 = $$masked28 | $87;
+ $89 = ((($0)) + 16|0);
+ HEAP32[$89>>2] = $88;
+ $90 = ((($0)) + 20|0);
+ $91 = ((($1)) + 16|0);
+ $92 = ((($1)) + 19|0);
+ 
;HEAP32[$90>>2]=0|0;HEAP32[$90+4>>2]=0|0;HEAP32[$90+8>>2]=0|0;HEAP32[$90+12>>2]=0|0;HEAP32[$90+16>>2]=0|0;
+ $93 = HEAP8[$92>>0]|0;
+ $94 = $93&255;
+ $95 = $94 << 24;
+ $96 = ((($1)) + 18|0);
+ $97 = HEAP8[$96>>0]|0;
+ $98 = $97&255;
+ $99 = $98 << 16;
+ $100 = $99 | $95;
+ $101 = ((($1)) + 17|0);
+ $102 = HEAP8[$101>>0]|0;
+ $103 = $102&255;
+ $104 = $103 << 8;
+ $105 = $100 | $104;
+ $106 = HEAP8[$91>>0]|0;
+ $107 = $106&255;
+ $108 = $105 | $107;
+ $109 = ((($0)) + 40|0);
+ HEAP32[$109>>2] = $108;
+ $110 = ((($1)) + 20|0);
+ $111 = ((($1)) + 23|0);
+ $112 = HEAP8[$111>>0]|0;
+ $113 = $112&255;
+ $114 = $113 << 24;
+ $115 = ((($1)) + 22|0);
+ $116 = HEAP8[$115>>0]|0;
+ $117 = $116&255;
+ $118 = $117 << 16;
+ $119 = $118 | $114;
+ $120 = ((($1)) + 21|0);
+ $121 = HEAP8[$120>>0]|0;
+ $122 = $121&255;
+ $123 = $122 << 8;
+ $124 = $119 | $123;
+ $125 = HEAP8[$110>>0]|0;
+ $126 = $125&255;
+ $127 = $124 | $126;
+ $128 = ((($0)) + 44|0);
+ HEAP32[$128>>2] = $127;
+ $129 = ((($1)) + 24|0);
+ $130 = ((($1)) + 27|0);
+ $131 = HEAP8[$130>>0]|0;
+ $132 = $131&255;
+ $133 = $132 << 24;
+ $134 = ((($1)) + 26|0);
+ $135 = HEAP8[$134>>0]|0;
+ $136 = $135&255;
+ $137 = $136 << 16;
+ $138 = $137 | $133;
+ $139 = ((($1)) + 25|0);
+ $140 = HEAP8[$139>>0]|0;
+ $141 = $140&255;
+ $142 = $141 << 8;
+ $143 = $138 | $142;
+ $144 = HEAP8[$129>>0]|0;
+ $145 = $144&255;
+ $146 = $143 | $145;
+ $147 = ((($0)) + 48|0);
+ HEAP32[$147>>2] = $146;
+ $148 = ((($1)) + 28|0);
+ $149 = ((($1)) + 31|0);
+ $150 = HEAP8[$149>>0]|0;
+ $151 = $150&255;
+ $152 = $151 << 24;
+ $153 = ((($1)) + 30|0);
+ $154 = HEAP8[$153>>0]|0;
+ $155 = $154&255;
+ $156 = $155 << 16;
+ $157 = $156 | $152;
+ $158 = ((($1)) + 29|0);
+ $159 = HEAP8[$158>>0]|0;
+ $160 = $159&255;
+ $161 = $160 << 8;
+ $162 = $157 | $161;
+ $163 = HEAP8[$148>>0]|0;
+ $164 = $163&255;
+ $165 = $162 | $164;
+ $166 = ((($0)) + 52|0);
+ HEAP32[$166>>2] = $165;
+ $167 = ((($0)) + 56|0);
+ HEAP8[$167>>0] = 0;
+ return;
+}
+function _poly1305_blocks_ref32($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0156169 = 0, $$0157$lcssa = 0, $$0157168 = 0, $$0158$lcssa = 0, 
$$0158167 = 0, $$0159$lcssa = 0, $$0159166 = 0, $$0160$lcssa = 0, $$0160165 = 
0, $$0161$lcssa = 0, $$0161164 = 0, $$0170 = 0, $$masked = 0, $$masked162 = 0, 
$$masked163 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0;
+ var $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;
+ var $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, 
$136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0;
+ var $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, 
$147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, 
$154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0;
+ var $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 
= 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 
= 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0;
+ var $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 
= 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 
= 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0;
+ var $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 
= 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 
= 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0;
+ var $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 
= 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 
= 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0;
+ var $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $24 = 0, $25 = 0, $26 = 
0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 
0, $35 = 0, $36 = 0, $37 = 0;
+ var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, 
$45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0;
+ var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, 
$63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, 
$71 = 0, $72 = 0, $73 = 0;
+ var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, 
$81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 
0, $9 = 0, $90 = 0, $91 = 0;
+ var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($0)) + 56|0);
+ $4 = HEAP8[$3>>0]|0;
+ $5 = ($4<<24>>24)==(0);
+ $6 = $5 ? 16777216 : 0;
+ $7 = ((($0)) + 4|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ((($0)) + 8|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ((($0)) + 12|0);
+ $12 = HEAP32[$11>>2]|0;
+ $13 = ((($0)) + 16|0);
+ $14 = HEAP32[$13>>2]|0;
+ $15 = ((($0)) + 20|0);
+ $16 = HEAP32[$15>>2]|0;
+ $17 = ((($0)) + 24|0);
+ $18 = HEAP32[$17>>2]|0;
+ $19 = ((($0)) + 28|0);
+ $20 = HEAP32[$19>>2]|0;
+ $21 = ((($0)) + 32|0);
+ $22 = HEAP32[$21>>2]|0;
+ $23 = ((($0)) + 36|0);
+ $24 = HEAP32[$23>>2]|0;
+ $25 = ($2>>>0)>(15);
+ if (!($25)) {
+  $$0157$lcssa = $16;$$0158$lcssa = $18;$$0159$lcssa = $20;$$0160$lcssa = 
$22;$$0161$lcssa = $24;
+  HEAP32[$15>>2] = $$0157$lcssa;
+  HEAP32[$17>>2] = $$0158$lcssa;
+  HEAP32[$19>>2] = $$0159$lcssa;
+  HEAP32[$21>>2] = $$0160$lcssa;
+  HEAP32[$23>>2] = $$0161$lcssa;
+  return 124;
+ }
+ $26 = ($14*5)|0;
+ $27 = ($12*5)|0;
+ $28 = ($10*5)|0;
+ $29 = ($8*5)|0;
+ $30 = HEAP32[$0>>2]|0;
+ $$0156169 = $2;$$0157168 = $16;$$0158167 = $18;$$0159166 = $20;$$0160165 = 
$22;$$0161164 = $24;$$0170 = $1;
+ while(1) {
+  $31 = ((($$0170)) + 3|0);
+  $32 = HEAP8[$31>>0]|0;
+  $33 = $32&255;
+  $34 = $33 << 24;
+  $35 = ((($$0170)) + 2|0);
+  $36 = HEAP8[$35>>0]|0;
+  $37 = $36&255;
+  $38 = $37 << 16;
+  $39 = ((($$0170)) + 1|0);
+  $40 = HEAP8[$39>>0]|0;
+  $41 = $40&255;
+  $42 = $41 << 8;
+  $43 = HEAP8[$$0170>>0]|0;
+  $44 = $43&255;
+  $$masked163 = $34 & 50331648;
+  $$masked162 = $38 | $$masked163;
+  $$masked = $$masked162 | $42;
+  $45 = $$masked | $44;
+  $46 = (($45) + ($$0157168))|0;
+  $47 = ((($$0170)) + 6|0);
+  $48 = HEAP8[$47>>0]|0;
+  $49 = $48&255;
+  $50 = $49 << 24;
+  $51 = ((($$0170)) + 5|0);
+  $52 = HEAP8[$51>>0]|0;
+  $53 = $52&255;
+  $54 = $53 << 16;
+  $55 = ((($$0170)) + 4|0);
+  $56 = HEAP8[$55>>0]|0;
+  $57 = $56&255;
+  $58 = $57 << 8;
+  $59 = $50 | $33;
+  $60 = $59 | $54;
+  $61 = $60 | $58;
+  $62 = $61 >>> 2;
+  $63 = $62 & 67108863;
+  $64 = (($63) + ($$0158167))|0;
+  $65 = ((($$0170)) + 9|0);
+  $66 = HEAP8[$65>>0]|0;
+  $67 = $66&255;
+  $68 = $67 << 24;
+  $69 = ((($$0170)) + 8|0);
+  $70 = HEAP8[$69>>0]|0;
+  $71 = $70&255;
+  $72 = $71 << 16;
+  $73 = $72 | $68;
+  $74 = ((($$0170)) + 7|0);
+  $75 = HEAP8[$74>>0]|0;
+  $76 = $75&255;
+  $77 = $76 << 8;
+  $78 = $73 | $77;
+  $79 = $78 | $49;
+  $80 = $79 >>> 4;
+  $81 = $80 & 67108863;
+  $82 = (($81) + ($$0159166))|0;
+  $83 = ((($$0170)) + 12|0);
+  $84 = HEAP8[$83>>0]|0;
+  $85 = $84&255;
+  $86 = $85 << 24;
+  $87 = ((($$0170)) + 11|0);
+  $88 = HEAP8[$87>>0]|0;
+  $89 = $88&255;
+  $90 = $89 << 16;
+  $91 = $90 | $86;
+  $92 = ((($$0170)) + 10|0);
+  $93 = HEAP8[$92>>0]|0;
+  $94 = $93&255;
+  $95 = $94 << 8;
+  $96 = $91 | $95;
+  $97 = $96 | $67;
+  $98 = $97 >>> 6;
+  $99 = (($98) + ($$0160165))|0;
+  $100 = ((($$0170)) + 15|0);
+  $101 = HEAP8[$100>>0]|0;
+  $102 = $101&255;
+  $103 = $102 << 16;
+  $104 = ((($$0170)) + 14|0);
+  $105 = HEAP8[$104>>0]|0;
+  $106 = $105&255;
+  $107 = $106 << 8;
+  $108 = ((($$0170)) + 13|0);
+  $109 = HEAP8[$108>>0]|0;
+  $110 = $109&255;
+  $111 = $103 | $6;
+  $112 = $111 | $107;
+  $113 = $112 | $110;
+  $114 = (($113) + ($$0161164))|0;
+  $115 = (___muldi3(($46|0),0,($30|0),0)|0);
+  $116 = tempRet0;
+  $117 = (___muldi3(($64|0),0,($26|0),0)|0);
+  $118 = tempRet0;
+  $119 = (_i64Add(($117|0),($118|0),($115|0),($116|0))|0);
+  $120 = tempRet0;
+  $121 = (___muldi3(($82|0),0,($27|0),0)|0);
+  $122 = tempRet0;
+  $123 = (_i64Add(($119|0),($120|0),($121|0),($122|0))|0);
+  $124 = tempRet0;
+  $125 = (___muldi3(($99|0),0,($28|0),0)|0);
+  $126 = tempRet0;
+  $127 = (_i64Add(($123|0),($124|0),($125|0),($126|0))|0);
+  $128 = tempRet0;
+  $129 = (___muldi3(($114|0),0,($29|0),0)|0);
+  $130 = tempRet0;
+  $131 = (_i64Add(($127|0),($128|0),($129|0),($130|0))|0);
+  $132 = tempRet0;
+  $133 = (___muldi3(($46|0),0,($8|0),0)|0);
+  $134 = tempRet0;
+  $135 = (___muldi3(($64|0),0,($30|0),0)|0);
+  $136 = tempRet0;
+  $137 = (_i64Add(($135|0),($136|0),($133|0),($134|0))|0);
+  $138 = tempRet0;
+  $139 = (___muldi3(($82|0),0,($26|0),0)|0);
+  $140 = tempRet0;
+  $141 = (_i64Add(($137|0),($138|0),($139|0),($140|0))|0);
+  $142 = tempRet0;
+  $143 = (___muldi3(($99|0),0,($27|0),0)|0);
+  $144 = tempRet0;
+  $145 = (_i64Add(($141|0),($142|0),($143|0),($144|0))|0);
+  $146 = tempRet0;
+  $147 = (___muldi3(($114|0),0,($28|0),0)|0);
+  $148 = tempRet0;
+  $149 = (_i64Add(($145|0),($146|0),($147|0),($148|0))|0);
+  $150 = tempRet0;
+  $151 = (___muldi3(($46|0),0,($10|0),0)|0);
+  $152 = tempRet0;
+  $153 = (___muldi3(($64|0),0,($8|0),0)|0);
+  $154 = tempRet0;
+  $155 = (_i64Add(($153|0),($154|0),($151|0),($152|0))|0);
+  $156 = tempRet0;
+  $157 = (___muldi3(($82|0),0,($30|0),0)|0);
+  $158 = tempRet0;
+  $159 = (_i64Add(($155|0),($156|0),($157|0),($158|0))|0);
+  $160 = tempRet0;
+  $161 = (___muldi3(($99|0),0,($26|0),0)|0);
+  $162 = tempRet0;
+  $163 = (_i64Add(($159|0),($160|0),($161|0),($162|0))|0);
+  $164 = tempRet0;
+  $165 = (___muldi3(($114|0),0,($27|0),0)|0);
+  $166 = tempRet0;
+  $167 = (_i64Add(($163|0),($164|0),($165|0),($166|0))|0);
+  $168 = tempRet0;
+  $169 = (___muldi3(($46|0),0,($12|0),0)|0);
+  $170 = tempRet0;
+  $171 = (___muldi3(($64|0),0,($10|0),0)|0);
+  $172 = tempRet0;
+  $173 = (_i64Add(($171|0),($172|0),($169|0),($170|0))|0);
+  $174 = tempRet0;
+  $175 = (___muldi3(($82|0),0,($8|0),0)|0);
+  $176 = tempRet0;
+  $177 = (_i64Add(($173|0),($174|0),($175|0),($176|0))|0);
+  $178 = tempRet0;
+  $179 = (___muldi3(($99|0),0,($30|0),0)|0);
+  $180 = tempRet0;
+  $181 = (_i64Add(($177|0),($178|0),($179|0),($180|0))|0);
+  $182 = tempRet0;
+  $183 = (___muldi3(($114|0),0,($26|0),0)|0);
+  $184 = tempRet0;
+  $185 = (_i64Add(($181|0),($182|0),($183|0),($184|0))|0);
+  $186 = tempRet0;
+  $187 = (___muldi3(($46|0),0,($14|0),0)|0);
+  $188 = tempRet0;
+  $189 = (___muldi3(($64|0),0,($12|0),0)|0);
+  $190 = tempRet0;
+  $191 = (_i64Add(($189|0),($190|0),($187|0),($188|0))|0);
+  $192 = tempRet0;
+  $193 = (___muldi3(($82|0),0,($10|0),0)|0);
+  $194 = tempRet0;
+  $195 = (_i64Add(($191|0),($192|0),($193|0),($194|0))|0);
+  $196 = tempRet0;
+  $197 = (___muldi3(($99|0),0,($8|0),0)|0);
+  $198 = tempRet0;
+  $199 = (_i64Add(($195|0),($196|0),($197|0),($198|0))|0);
+  $200 = tempRet0;
+  $201 = (___muldi3(($114|0),0,($30|0),0)|0);
+  $202 = tempRet0;
+  $203 = (_i64Add(($199|0),($200|0),($201|0),($202|0))|0);
+  $204 = tempRet0;
+  $205 = (_bitshift64Lshr(($131|0),($132|0),26)|0);
+  $206 = tempRet0;
+  $207 = $131 & 67108863;
+  $208 = (_i64Add(($149|0),($150|0),($205|0),0)|0);
+  $209 = tempRet0;
+  $210 = (_bitshift64Lshr(($208|0),($209|0),26)|0);
+  $211 = tempRet0;
+  $212 = $208 & 67108863;
+  $213 = (_i64Add(($167|0),($168|0),($210|0),0)|0);
+  $214 = tempRet0;
+  $215 = (_bitshift64Lshr(($213|0),($214|0),26)|0);
+  $216 = tempRet0;
+  $217 = $213 & 67108863;
+  $218 = (_i64Add(($185|0),($186|0),($215|0),0)|0);
+  $219 = tempRet0;
+  $220 = (_bitshift64Lshr(($218|0),($219|0),26)|0);
+  $221 = tempRet0;
+  $222 = $218 & 67108863;
+  $223 = (_i64Add(($203|0),($204|0),($220|0),0)|0);
+  $224 = tempRet0;
+  $225 = (_bitshift64Lshr(($223|0),($224|0),26)|0);
+  $226 = tempRet0;
+  $227 = $223 & 67108863;
+  $228 = ($225*5)|0;
+  $229 = (($228) + ($207))|0;
+  $230 = $229 >>> 26;
+  $231 = $229 & 67108863;
+  $232 = (($230) + ($212))|0;
+  $233 = ((($$0170)) + 16|0);
+  $234 = (($$0156169) + -16)|0;
+  $235 = ($234>>>0)>(15);
+  if ($235) {
+   $$0156169 = $234;$$0157168 = $231;$$0158167 = $232;$$0159166 = 
$217;$$0160165 = $222;$$0161164 = $227;$$0170 = $233;
+  } else {
+   $$0157$lcssa = $231;$$0158$lcssa = $232;$$0159$lcssa = $217;$$0160$lcssa = 
$222;$$0161$lcssa = $227;
+   break;
+  }
+ }
+ HEAP32[$15>>2] = $$0157$lcssa;
+ HEAP32[$17>>2] = $$0158$lcssa;
+ HEAP32[$19>>2] = $$0159$lcssa;
+ HEAP32[$21>>2] = $$0160$lcssa;
+ HEAP32[$23>>2] = $$0161$lcssa;
+ return 124;
+}
+function _poly1305_finish_ext_ref32($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0156 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, 
$105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, 
$112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0;
+ var $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;
+ var $135 = 0, $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 
0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 
= 0, $28 = 0, $29 = 0, $30 = 0;
+ var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, 
$39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, 
$47 = 0, $48 = 0, $49 = 0;
+ var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, 
$57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, 
$65 = 0, $66 = 0, $67 = 0;
+ var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, 
$75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, 
$83 = 0, $84 = 0, $85 = 0;
+ var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, 
$93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, dest = 0, label 
= 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $4 = sp;
+ $5 = ($2|0)==(0);
+ if ($5) {
+  $$0156 = 100;
+ } else {
+  
;HEAP32[$4>>2]=0|0;HEAP32[$4+4>>2]=0|0;HEAP32[$4+8>>2]=0|0;HEAP32[$4+12>>2]=0|0;
+  _memcpy(($4|0),($1|0),($2|0))|0;
+  $6 = (($4) + ($2)|0);
+  HEAP8[$6>>0] = 1;
+  $7 = ((($0)) + 56|0);
+  HEAP8[$7>>0] = 1;
+  (_poly1305_blocks_ref32($0,$4,16)|0);
+  $$0156 = 224;
+ }
+ $8 = ((($0)) + 20|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ((($0)) + 24|0);
+ $11 = HEAP32[$10>>2]|0;
+ $12 = ((($0)) + 28|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = ((($0)) + 32|0);
+ $15 = HEAP32[$14>>2]|0;
+ $16 = ((($0)) + 36|0);
+ $17 = HEAP32[$16>>2]|0;
+ $18 = $11 >>> 26;
+ $19 = $11 & 67108863;
+ $20 = (($13) + ($18))|0;
+ $21 = $20 >>> 26;
+ $22 = $20 & 67108863;
+ $23 = (($21) + ($15))|0;
+ $24 = $23 >>> 26;
+ $25 = $23 & 67108863;
+ $26 = (($24) + ($17))|0;
+ $27 = $26 >>> 26;
+ $28 = ($27*5)|0;
+ $29 = (($28) + ($9))|0;
+ $30 = $29 >>> 26;
+ $31 = $29 & 67108863;
+ $32 = (($30) + ($19))|0;
+ $33 = (($31) + 5)|0;
+ $34 = $33 >>> 26;
+ $35 = (($34) + ($32))|0;
+ $36 = $35 >>> 26;
+ $37 = (($36) + ($22))|0;
+ $38 = $37 >>> 26;
+ $39 = (($38) + ($25))|0;
+ $40 = $39 >>> 26;
+ $41 = $26 | -67108864;
+ $42 = (($41) + ($40))|0;
+ $43 = $42 >>> 31;
+ $44 = (($43) + -1)|0;
+ $45 = $44 & 67108863;
+ $46 = $45 & $33;
+ $47 = $45 & $35;
+ $48 = $45 & $37;
+ $49 = $45 & $39;
+ $50 = $44 & $42;
+ $51 = $42 >> 31;
+ $52 = $51 & $31;
+ $53 = $52 | $46;
+ $54 = $51 & $32;
+ $55 = $54 | $47;
+ $56 = $51 & $22;
+ $57 = $56 | $48;
+ $58 = $51 & $25;
+ $59 = $58 | $49;
+ $60 = $51 & $26;
+ $61 = $50 | $60;
+ $62 = $55 << 26;
+ $63 = $53 | $62;
+ $64 = $55 >>> 6;
+ $65 = $57 << 20;
+ $66 = $64 | $65;
+ $67 = $57 >>> 12;
+ $68 = $59 << 14;
+ $69 = $67 | $68;
+ $70 = $59 >>> 18;
+ $71 = $61 << 8;
+ $72 = $71 | $70;
+ $73 = ((($0)) + 40|0);
+ $74 = HEAP32[$73>>2]|0;
+ $75 = (_i64Add(($63|0),0,($74|0),0)|0);
+ $76 = tempRet0;
+ $77 = ((($0)) + 44|0);
+ $78 = HEAP32[$77>>2]|0;
+ $79 = (_i64Add(($66|0),0,($78|0),0)|0);
+ $80 = tempRet0;
+ $81 = (_i64Add(($79|0),($80|0),($76|0),0)|0);
+ $82 = tempRet0;
+ $83 = ((($0)) + 48|0);
+ $84 = HEAP32[$83>>2]|0;
+ $85 = (_i64Add(($69|0),0,($84|0),0)|0);
+ $86 = tempRet0;
+ $87 = (_i64Add(($85|0),($86|0),($82|0),0)|0);
+ $88 = tempRet0;
+ $89 = ((($0)) + 52|0);
+ $90 = HEAP32[$89>>2]|0;
+ $91 = (_i64Add(($72|0),0,($90|0),0)|0);
+ $92 = tempRet0;
+ $93 = (_i64Add(($91|0),($92|0),($88|0),0)|0);
+ $94 = tempRet0;
+ $95 = $75 >>> 24;
+ $96 = $95&255;
+ $97 = ((($3)) + 3|0);
+ HEAP8[$97>>0] = $96;
+ $98 = $75 >>> 16;
+ $99 = $98&255;
+ $100 = ((($3)) + 2|0);
+ HEAP8[$100>>0] = $99;
+ $101 = $75 >>> 8;
+ $102 = $101&255;
+ $103 = ((($3)) + 1|0);
+ HEAP8[$103>>0] = $102;
+ $104 = $75&255;
+ HEAP8[$3>>0] = $104;
+ $105 = ((($3)) + 4|0);
+ $106 = $81 >>> 24;
+ $107 = $106&255;
+ $108 = ((($3)) + 7|0);
+ HEAP8[$108>>0] = $107;
+ $109 = $81 >>> 16;
+ $110 = $109&255;
+ $111 = ((($3)) + 6|0);
+ HEAP8[$111>>0] = $110;
+ $112 = $81 >>> 8;
+ $113 = $112&255;
+ $114 = ((($3)) + 5|0);
+ HEAP8[$114>>0] = $113;
+ $115 = $81&255;
+ HEAP8[$105>>0] = $115;
+ $116 = ((($3)) + 8|0);
+ $117 = $87 >>> 24;
+ $118 = $117&255;
+ $119 = ((($3)) + 11|0);
+ HEAP8[$119>>0] = $118;
+ $120 = $87 >>> 16;
+ $121 = $120&255;
+ $122 = ((($3)) + 10|0);
+ HEAP8[$122>>0] = $121;
+ $123 = $87 >>> 8;
+ $124 = $123&255;
+ $125 = ((($3)) + 9|0);
+ HEAP8[$125>>0] = $124;
+ $126 = $87&255;
+ HEAP8[$116>>0] = $126;
+ $127 = ((($3)) + 12|0);
+ $128 = $93 >>> 24;
+ $129 = $128&255;
+ $130 = ((($3)) + 15|0);
+ HEAP8[$130>>0] = $129;
+ $131 = $93 >>> 16;
+ $132 = $131&255;
+ $133 = ((($3)) + 14|0);
+ HEAP8[$133>>0] = $132;
+ $134 = $93 >>> 8;
+ $135 = $134&255;
+ $136 = ((($3)) + 13|0);
+ HEAP8[$136>>0] = $135;
+ $137 = $93&255;
+ HEAP8[$127>>0] = $137;
+ dest=$0; stop=dest+56|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ STACKTOP = sp;return ($$0156|0);
+}
+function __gcry_rngcsprng_initialize($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0);
+ if (!($1)) {
+  _initialize();
+  return;
+ }
+ $2 = HEAP32[18131]|0;
+ $3 = ($2|0)==(0);
+ if (!($3)) {
+  return;
+ }
+ HEAP32[18131] = 1;
+ return;
+}
+function _initialize() {
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 
= 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 
= 0, $3 = 0, $4 = 0;
+ var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, 
$vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer3 = sp + 16|0;
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $0 = HEAP32[18131]|0;
+ $1 = ($0|0)==(0);
+ if ($1) {
+  HEAP32[18131] = 1;
+ }
+ $2 = (_gpgrt_lock_lock(40208)|0);
+ $3 = ($2|0)==(0);
+ if (!($3)) {
+  $4 = (_gpg_strerror($2)|0);
+  HEAP32[$vararg_buffer>>2] = $4;
+  __gcry_log_fatal(67701,$vararg_buffer);
+  // unreachable;
+ }
+ HEAP32[18132] = 1;
+ $5 = HEAP32[18133]|0;
+ $6 = ($5|0)==(0|0);
+ do {
+  if ($6) {
+   $7 = HEAP32[18134]|0;
+   $8 = ($7|0)==(0);
+   if ($8) {
+    $10 = (__gcry_xcalloc(1,664)|0);
+    $11 = $10;
+   } else {
+    $9 = (__gcry_xcalloc_secure(1,664)|0);
+    $11 = $9;
+   }
+   HEAP32[18133] = $11;
+   $12 = HEAP32[18134]|0;
+   $13 = ($12|0)==(0);
+   if ($13) {
+    $15 = (__gcry_xcalloc(1,664)|0);
+    $16 = $15;
+   } else {
+    $14 = (__gcry_xcalloc_secure(1,664)|0);
+    $16 = $14;
+   }
+   HEAP32[18135] = $16;
+   $17 = (_access(69685,4)|0);
+   $18 = ($17|0)==(0);
+   if (!($18)) {
+    $21 = (__gcry_gettext(67738)|0);
+    __gcry_log_fatal($21,$vararg_buffer1);
+    // unreachable;
+   }
+   $19 = (_access(69697,4)|0);
+   $20 = ($19|0)==(0);
+   if ($20) {
+    HEAP32[18136] = 83;
+    break;
+   } else {
+    $21 = (__gcry_gettext(67738)|0);
+    __gcry_log_fatal($21,$vararg_buffer1);
+    // unreachable;
+   }
+  }
+ } while(0);
+ HEAP32[18132] = 0;
+ $22 = (_gpgrt_lock_unlock(40208)|0);
+ $23 = ($22|0)==(0);
+ if ($23) {
+  STACKTOP = sp;return;
+ } else {
+  $24 = (_gpg_strerror($22)|0);
+  HEAP32[$vararg_buffer3>>2] = $24;
+  __gcry_log_fatal(67776,$vararg_buffer3);
+  // unreachable;
+ }
+}
+function __gcry_rngcsprng_close_fds() {
+ var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, 
$vararg_buffer1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $0 = (_gpgrt_lock_lock(40208)|0);
+ $1 = ($0|0)==(0);
+ if (!($1)) {
+  $2 = (_gpg_strerror($0)|0);
+  HEAP32[$vararg_buffer>>2] = $2;
+  __gcry_log_fatal(67701,$vararg_buffer);
+  // unreachable;
+ }
+ HEAP32[18132] = 1;
+ (__gcry_rndlinux_gather_random(0,0,0,0)|0);
+ HEAP32[18137] = 0;
+ HEAP32[18132] = 0;
+ $3 = (_gpgrt_lock_unlock(40208)|0);
+ $4 = ($3|0)==(0);
+ if ($4) {
+  STACKTOP = sp;return;
+ } else {
+  $5 = (_gpg_strerror($3)|0);
+  HEAP32[$vararg_buffer1>>2] = $5;
+  __gcry_log_fatal(67776,$vararg_buffer1);
+  // unreachable;
+ }
+}
+function __gcry_rngcsprng_dump_stats() {
+ var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 
0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, 
$vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, 
$vararg_ptr4 = 0;
+ var $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, 
$vararg_ptr9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $vararg_buffer = sp;
+ $0 = HEAP32[18138]|0;
+ $1 = HEAP32[18139]|0;
+ $2 = HEAP32[18140]|0;
+ $3 = HEAP32[18141]|0;
+ $4 = HEAP32[18142]|0;
+ $5 = HEAP32[18143]|0;
+ $6 = HEAP32[18144]|0;
+ $7 = HEAP32[18145]|0;
+ $8 = HEAP32[18146]|0;
+ $9 = HEAP32[18147]|0;
+ $10 = (__gcry_rndhw_failed_p()|0);
+ $11 = ($10|0)==(0);
+ $12 = $11 ? 73338 : 67813;
+ HEAP32[$vararg_buffer>>2] = 600;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $0;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = $1;
+ $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+ HEAP32[$vararg_ptr3>>2] = $2;
+ $vararg_ptr4 = ((($vararg_buffer)) + 16|0);
+ HEAP32[$vararg_ptr4>>2] = $3;
+ $vararg_ptr5 = ((($vararg_buffer)) + 20|0);
+ HEAP32[$vararg_ptr5>>2] = $4;
+ $vararg_ptr6 = ((($vararg_buffer)) + 24|0);
+ HEAP32[$vararg_ptr6>>2] = $5;
+ $vararg_ptr7 = ((($vararg_buffer)) + 28|0);
+ HEAP32[$vararg_ptr7>>2] = $6;
+ $vararg_ptr8 = ((($vararg_buffer)) + 32|0);
+ HEAP32[$vararg_ptr8>>2] = $7;
+ $vararg_ptr9 = ((($vararg_buffer)) + 36|0);
+ HEAP32[$vararg_ptr9>>2] = $8;
+ $vararg_ptr10 = ((($vararg_buffer)) + 40|0);
+ HEAP32[$vararg_ptr10>>2] = $9;
+ $vararg_ptr11 = ((($vararg_buffer)) + 44|0);
+ HEAP32[$vararg_ptr11>>2] = $12;
+ __gcry_log_info(67829,$vararg_buffer);
+ STACKTOP = sp;return;
+}
+function __gcry_rngcsprng_secure_alloc() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ HEAP32[18134] = 1;
+ return;
+}
+function __gcry_rngcsprng_enable_quick_gen() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ HEAP32[18148] = 1;
+ return;
+}
+function __gcry_rngcsprng_set_daemon_socket($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return;
+}
+function __gcry_rngcsprng_use_daemon($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return 0;
+}
+function __gcry_rngcsprng_is_faked() {
+ var $0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ _initialize();
+ $0 = HEAP32[18148]|0;
+ return ($0|0);
+}
+function _mix_pool($0) {
+ $0 = $0|0;
+ var $$04961 = 0, $$052$add = 0, $$052$add53 = 0, $$052$idx60 = 0, 
$$052$ptr$add = 0, $$052$ptr$ptr = 0, $$1$add = 0, $$1$add$1 = 0, $$1$add$10 = 
0, $$1$add$11 = 0, $$1$add$12 = 0, $$1$add$13 = 0, $$1$add$14 = 0, $$1$add$15 = 
0, $$1$add$16 = 0, $$1$add$17 = 0, $$1$add$18 = 0, $$1$add$19 = 0, $$1$add$2 = 
0, $$1$add$20 = 0;
+ var $$1$add$21 = 0, $$1$add$22 = 0, $$1$add$23 = 0, $$1$add$24 = 0, 
$$1$add$25 = 0, $$1$add$26 = 0, $$1$add$27 = 0, $$1$add$28 = 0, $$1$add$29 = 0, 
$$1$add$3 = 0, $$1$add$30 = 0, $$1$add$31 = 0, $$1$add$32 = 0, $$1$add$33 = 0, 
$$1$add$34 = 0, $$1$add$35 = 0, $$1$add$36 = 0, $$1$add$37 = 0, $$1$add$38 = 0, 
$$1$add$39 = 0;
+ var $$1$add$4 = 0, $$1$add$40 = 0, $$1$add$41 = 0, $$1$add$42 = 0, $$1$add$5 
= 0, $$1$add$6 = 0, $$1$add$7 = 0, $$1$add$8 = 0, $$1$add$9 = 0, $$1$ptr = 0, 
$$1$ptr$1 = 0, $$1$ptr$10 = 0, $$1$ptr$11 = 0, $$1$ptr$12 = 0, $$1$ptr$13 = 0, 
$$1$ptr$14 = 0, $$1$ptr$15 = 0, $$1$ptr$16 = 0, $$1$ptr$17 = 0, $$1$ptr$18 = 0;
+ var $$1$ptr$19 = 0, $$1$ptr$2 = 0, $$1$ptr$20 = 0, $$1$ptr$21 = 0, $$1$ptr$22 
= 0, $$1$ptr$23 = 0, $$1$ptr$24 = 0, $$1$ptr$25 = 0, $$1$ptr$26 = 0, $$1$ptr$27 
= 0, $$1$ptr$28 = 0, $$1$ptr$29 = 0, $$1$ptr$3 = 0, $$1$ptr$30 = 0, $$1$ptr$31 
= 0, $$1$ptr$32 = 0, $$1$ptr$33 = 0, $$1$ptr$34 = 0, $$1$ptr$35 = 0, $$1$ptr$36 
= 0;
+ var $$1$ptr$37 = 0, $$1$ptr$38 = 0, $$1$ptr$39 = 0, $$1$ptr$4 = 0, $$1$ptr$40 
= 0, $$1$ptr$41 = 0, $$1$ptr$42 = 0, $$1$ptr$43 = 0, $$1$ptr$5 = 0, $$1$ptr$6 = 
0, $$1$ptr$7 = 0, $$1$ptr$8 = 0, $$1$ptr$9 = 0, $$ptr54 = 0, $$ptr55 = 0, $1 = 
0, $10 = 0, $100 = 0, $101 = 0, $102 = 0;
+ var $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;
+ var $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, $136 = 0, $137 = 0, $138 = 0, $139 = 0;
+ var $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 
= 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 
= 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0;
+ var $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 
= 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 
= 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0;
+ var $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 
= 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 
= 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0;
+ var $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 
0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 
0, $208 = 0, $209 = 0, $21 = 0, $210 = 0;
+ var $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, 
$218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, 
$225 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, 
$34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, 
$42 = 0, $43 = 0, $44 = 0;
+ var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, 
$52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, 
$60 = 0, $61 = 0, $62 = 0;
+ var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, 
$70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 
0, $79 = 0, $8 = 0, $80 = 0;
+ var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, 
$89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, 
$97 = 0, $98 = 0, $99 = 0;
+ var $exitcond = 0, $or$cond = 0, $spec$select = 0, $spec$select$1 = 0, 
$spec$select$10 = 0, $spec$select$11 = 0, $spec$select$12 = 0, $spec$select$13 
= 0, $spec$select$14 = 0, $spec$select$15 = 0, $spec$select$16 = 0, 
$spec$select$17 = 0, $spec$select$18 = 0, $spec$select$19 = 0, $spec$select$2 = 
0, $spec$select$20 = 0, $spec$select$21 = 0, $spec$select$22 = 0, 
$spec$select$23 = 0, $spec$select$24 = 0;
+ var $spec$select$25 = 0, $spec$select$26 = 0, $spec$select$27 = 0, 
$spec$select$28 = 0, $spec$select$29 = 0, $spec$select$3 = 0, $spec$select$30 = 
0, $spec$select$31 = 0, $spec$select$32 = 0, $spec$select$33 = 0, 
$spec$select$34 = 0, $spec$select$35 = 0, $spec$select$36 = 0, $spec$select$37 
= 0, $spec$select$38 = 0, $spec$select$39 = 0, $spec$select$4 = 0, 
$spec$select$40 = 0, $spec$select$41 = 0, $spec$select$42 = 0;
+ var $spec$select$43 = 0, $spec$select$5 = 0, $spec$select$6 = 0, 
$spec$select$7 = 0, $spec$select$8 = 0, $spec$select$9 = 0, dest = 0, label = 
0, sp = 0, src = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(192|0);
+ $1 = sp;
+ $2 = ((($0)) + 600|0);
+ $3 = HEAP32[18132]|0;
+ $4 = ($3|0)==(0);
+ if ($4) {
+  __gcry_assert_failed(67953,67968,615,67984);
+  // unreachable;
+ }
+ __gcry_rmd160_init($1);
+ $5 = ((($0)) + 580|0);
+ dest=$2; src=$5; 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));
+ $6 = ((($0)) + 620|0);
+ dest=$6; src=$0; 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($1,$2);
+ dest=$0; src=$2; 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));
+ $7 = HEAP32[18151]|0;
+ $8 = ($7|0)!=(0);
+ $9 = HEAP32[18133]|0;
+ $10 = ($9|0)==($0|0);
+ $or$cond = $8 & $10;
+ if ($or$cond) {
+  $11 = HEAP8[71216]|0;
+  $12 = HEAP8[$0>>0]|0;
+  $13 = $12 ^ $11;
+  HEAP8[$0>>0] = $13;
+  $14 = HEAP8[(71217)>>0]|0;
+  $15 = ((($0)) + 1|0);
+  $16 = HEAP8[$15>>0]|0;
+  $17 = $16 ^ $14;
+  HEAP8[$15>>0] = $17;
+  $18 = HEAP8[(71218)>>0]|0;
+  $19 = ((($0)) + 2|0);
+  $20 = HEAP8[$19>>0]|0;
+  $21 = $20 ^ $18;
+  HEAP8[$19>>0] = $21;
+  $22 = HEAP8[(71219)>>0]|0;
+  $23 = ((($0)) + 3|0);
+  $24 = HEAP8[$23>>0]|0;
+  $25 = $24 ^ $22;
+  HEAP8[$23>>0] = $25;
+  $26 = HEAP8[(71220)>>0]|0;
+  $27 = ((($0)) + 4|0);
+  $28 = HEAP8[$27>>0]|0;
+  $29 = $28 ^ $26;
+  HEAP8[$27>>0] = $29;
+  $30 = HEAP8[(71221)>>0]|0;
+  $31 = ((($0)) + 5|0);
+  $32 = HEAP8[$31>>0]|0;
+  $33 = $32 ^ $30;
+  HEAP8[$31>>0] = $33;
+  $34 = HEAP8[(71222)>>0]|0;
+  $35 = ((($0)) + 6|0);
+  $36 = HEAP8[$35>>0]|0;
+  $37 = $36 ^ $34;
+  HEAP8[$35>>0] = $37;
+  $38 = HEAP8[(71223)>>0]|0;
+  $39 = ((($0)) + 7|0);
+  $40 = HEAP8[$39>>0]|0;
+  $41 = $40 ^ $38;
+  HEAP8[$39>>0] = $41;
+  $42 = HEAP8[(71224)>>0]|0;
+  $43 = ((($0)) + 8|0);
+  $44 = HEAP8[$43>>0]|0;
+  $45 = $44 ^ $42;
+  HEAP8[$43>>0] = $45;
+  $46 = HEAP8[(71225)>>0]|0;
+  $47 = ((($0)) + 9|0);
+  $48 = HEAP8[$47>>0]|0;
+  $49 = $48 ^ $46;
+  HEAP8[$47>>0] = $49;
+  $50 = HEAP8[(71226)>>0]|0;
+  $51 = ((($0)) + 10|0);
+  $52 = HEAP8[$51>>0]|0;
+  $53 = $52 ^ $50;
+  HEAP8[$51>>0] = $53;
+  $54 = HEAP8[(71227)>>0]|0;
+  $55 = ((($0)) + 11|0);
+  $56 = HEAP8[$55>>0]|0;
+  $57 = $56 ^ $54;
+  HEAP8[$55>>0] = $57;
+  $58 = HEAP8[(71228)>>0]|0;
+  $59 = ((($0)) + 12|0);
+  $60 = HEAP8[$59>>0]|0;
+  $61 = $60 ^ $58;
+  HEAP8[$59>>0] = $61;
+  $62 = HEAP8[(71229)>>0]|0;
+  $63 = ((($0)) + 13|0);
+  $64 = HEAP8[$63>>0]|0;
+  $65 = $64 ^ $62;
+  HEAP8[$63>>0] = $65;
+  $66 = HEAP8[(71230)>>0]|0;
+  $67 = ((($0)) + 14|0);
+  $68 = HEAP8[$67>>0]|0;
+  $69 = $68 ^ $66;
+  HEAP8[$67>>0] = $69;
+  $70 = HEAP8[(71231)>>0]|0;
+  $71 = ((($0)) + 15|0);
+  $72 = HEAP8[$71>>0]|0;
+  $73 = $72 ^ $70;
+  HEAP8[$71>>0] = $73;
+  $74 = HEAP8[(71232)>>0]|0;
+  $75 = ((($0)) + 16|0);
+  $76 = HEAP8[$75>>0]|0;
+  $77 = $76 ^ $74;
+  HEAP8[$75>>0] = $77;
+  $78 = HEAP8[(71233)>>0]|0;
+  $79 = ((($0)) + 17|0);
+  $80 = HEAP8[$79>>0]|0;
+  $81 = $80 ^ $78;
+  HEAP8[$79>>0] = $81;
+  $82 = HEAP8[(71234)>>0]|0;
+  $83 = ((($0)) + 18|0);
+  $84 = HEAP8[$83>>0]|0;
+  $85 = $84 ^ $82;
+  HEAP8[$83>>0] = $85;
+  $86 = HEAP8[(71235)>>0]|0;
+  $87 = ((($0)) + 19|0);
+  $88 = HEAP8[$87>>0]|0;
+  $89 = $88 ^ $86;
+  HEAP8[$87>>0] = $89;
+ }
+ $90 = ((($0)) + 620|0);
+ $91 = ((($0)) + 621|0);
+ $92 = ((($0)) + 622|0);
+ $93 = ((($0)) + 623|0);
+ $94 = ((($0)) + 624|0);
+ $95 = ((($0)) + 625|0);
+ $96 = ((($0)) + 626|0);
+ $97 = ((($0)) + 627|0);
+ $98 = ((($0)) + 628|0);
+ $99 = ((($0)) + 629|0);
+ $100 = ((($0)) + 630|0);
+ $101 = ((($0)) + 631|0);
+ $102 = ((($0)) + 632|0);
+ $103 = ((($0)) + 633|0);
+ $104 = ((($0)) + 634|0);
+ $105 = ((($0)) + 635|0);
+ $106 = ((($0)) + 636|0);
+ $107 = ((($0)) + 637|0);
+ $108 = ((($0)) + 638|0);
+ $109 = ((($0)) + 639|0);
+ $110 = ((($0)) + 640|0);
+ $111 = ((($0)) + 641|0);
+ $112 = ((($0)) + 642|0);
+ $113 = ((($0)) + 643|0);
+ $114 = ((($0)) + 644|0);
+ $115 = ((($0)) + 645|0);
+ $116 = ((($0)) + 646|0);
+ $117 = ((($0)) + 647|0);
+ $118 = ((($0)) + 648|0);
+ $119 = ((($0)) + 649|0);
+ $120 = ((($0)) + 650|0);
+ $121 = ((($0)) + 651|0);
+ $122 = ((($0)) + 652|0);
+ $123 = ((($0)) + 653|0);
+ $124 = ((($0)) + 654|0);
+ $125 = ((($0)) + 655|0);
+ $126 = ((($0)) + 656|0);
+ $127 = ((($0)) + 657|0);
+ $128 = ((($0)) + 658|0);
+ $129 = ((($0)) + 659|0);
+ $130 = ((($0)) + 660|0);
+ $131 = ((($0)) + 661|0);
+ $132 = ((($0)) + 662|0);
+ $133 = ((($0)) + 663|0);
+ $$04961 = 1;$$052$idx60 = 0;
+ while(1) {
+  $$052$ptr$ptr = (($0) + ($$052$idx60)|0);
+  dest=$2; src=$$052$ptr$ptr; 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));
+  $$052$add53 = (($$052$idx60) + 20)|0;
+  $$ptr54 = (($0) + ($$052$add53)|0);
+  $$052$ptr$add = (($$052$idx60) + 40)|0;
+  $$052$add = (($$052$idx60) + 104)|0;
+  $134 = ($$052$add>>>0)<(600);
+  if ($134) {
+   $$ptr55 = (($0) + ($$052$ptr$add)|0);
+   dest=$6; src=$$ptr55; 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 {
+   $135 = ($$052$ptr$add>>>0)>(599);
+   $spec$select = $135 ? 0 : $$052$ptr$add;
+   $$1$ptr = (($0) + ($spec$select)|0);
+   $$1$add = $spec$select | 1;
+   $136 = HEAP8[$$1$ptr>>0]|0;
+   HEAP8[$90>>0] = $136;
+   $137 = ($$1$add>>>0)>(599);
+   $spec$select$1 = $137 ? 0 : $$1$add;
+   $$1$ptr$1 = (($0) + ($spec$select$1)|0);
+   $$1$add$1 = (($spec$select$1) + 1)|0;
+   $138 = HEAP8[$$1$ptr$1>>0]|0;
+   HEAP8[$91>>0] = $138;
+   $139 = ($spec$select$1>>>0)>(598);
+   $spec$select$2 = $139 ? 0 : $$1$add$1;
+   $$1$ptr$2 = (($0) + ($spec$select$2)|0);
+   $$1$add$2 = (($spec$select$2) + 1)|0;
+   $140 = HEAP8[$$1$ptr$2>>0]|0;
+   HEAP8[$92>>0] = $140;
+   $141 = ($spec$select$2|0)>(598);
+   $spec$select$3 = $141 ? 0 : $$1$add$2;
+   $$1$ptr$3 = (($0) + ($spec$select$3)|0);
+   $$1$add$3 = (($spec$select$3) + 1)|0;
+   $142 = HEAP8[$$1$ptr$3>>0]|0;
+   HEAP8[$93>>0] = $142;
+   $143 = ($spec$select$3|0)>(598);
+   $spec$select$4 = $143 ? 0 : $$1$add$3;
+   $$1$ptr$4 = (($0) + ($spec$select$4)|0);
+   $$1$add$4 = (($spec$select$4) + 1)|0;
+   $144 = HEAP8[$$1$ptr$4>>0]|0;
+   HEAP8[$94>>0] = $144;
+   $145 = ($spec$select$4|0)>(598);
+   $spec$select$5 = $145 ? 0 : $$1$add$4;
+   $$1$ptr$5 = (($0) + ($spec$select$5)|0);
+   $$1$add$5 = (($spec$select$5) + 1)|0;
+   $146 = HEAP8[$$1$ptr$5>>0]|0;
+   HEAP8[$95>>0] = $146;
+   $147 = ($spec$select$5|0)>(598);
+   $spec$select$6 = $147 ? 0 : $$1$add$5;
+   $$1$ptr$6 = (($0) + ($spec$select$6)|0);
+   $$1$add$6 = (($spec$select$6) + 1)|0;
+   $148 = HEAP8[$$1$ptr$6>>0]|0;
+   HEAP8[$96>>0] = $148;
+   $149 = ($spec$select$6|0)>(598);
+   $spec$select$7 = $149 ? 0 : $$1$add$6;
+   $$1$ptr$7 = (($0) + ($spec$select$7)|0);
+   $$1$add$7 = (($spec$select$7) + 1)|0;
+   $150 = HEAP8[$$1$ptr$7>>0]|0;
+   HEAP8[$97>>0] = $150;
+   $151 = ($spec$select$7|0)>(598);
+   $spec$select$8 = $151 ? 0 : $$1$add$7;
+   $$1$ptr$8 = (($0) + ($spec$select$8)|0);
+   $$1$add$8 = (($spec$select$8) + 1)|0;
+   $152 = HEAP8[$$1$ptr$8>>0]|0;
+   HEAP8[$98>>0] = $152;
+   $153 = ($spec$select$8|0)>(598);
+   $spec$select$9 = $153 ? 0 : $$1$add$8;
+   $$1$ptr$9 = (($0) + ($spec$select$9)|0);
+   $$1$add$9 = (($spec$select$9) + 1)|0;
+   $154 = HEAP8[$$1$ptr$9>>0]|0;
+   HEAP8[$99>>0] = $154;
+   $155 = ($spec$select$9|0)>(598);
+   $spec$select$10 = $155 ? 0 : $$1$add$9;
+   $$1$ptr$10 = (($0) + ($spec$select$10)|0);
+   $$1$add$10 = (($spec$select$10) + 1)|0;
+   $156 = HEAP8[$$1$ptr$10>>0]|0;
+   HEAP8[$100>>0] = $156;
+   $157 = ($spec$select$10|0)>(598);
+   $spec$select$11 = $157 ? 0 : $$1$add$10;
+   $$1$ptr$11 = (($0) + ($spec$select$11)|0);
+   $$1$add$11 = (($spec$select$11) + 1)|0;
+   $158 = HEAP8[$$1$ptr$11>>0]|0;
+   HEAP8[$101>>0] = $158;
+   $159 = ($spec$select$11|0)>(598);
+   $spec$select$12 = $159 ? 0 : $$1$add$11;
+   $$1$ptr$12 = (($0) + ($spec$select$12)|0);
+   $$1$add$12 = (($spec$select$12) + 1)|0;
+   $160 = HEAP8[$$1$ptr$12>>0]|0;
+   HEAP8[$102>>0] = $160;
+   $161 = ($spec$select$12|0)>(598);
+   $spec$select$13 = $161 ? 0 : $$1$add$12;
+   $$1$ptr$13 = (($0) + ($spec$select$13)|0);
+   $$1$add$13 = (($spec$select$13) + 1)|0;
+   $162 = HEAP8[$$1$ptr$13>>0]|0;
+   HEAP8[$103>>0] = $162;
+   $163 = ($spec$select$13|0)>(598);
+   $spec$select$14 = $163 ? 0 : $$1$add$13;
+   $$1$ptr$14 = (($0) + ($spec$select$14)|0);
+   $$1$add$14 = (($spec$select$14) + 1)|0;
+   $164 = HEAP8[$$1$ptr$14>>0]|0;
+   HEAP8[$104>>0] = $164;
+   $165 = ($spec$select$14|0)>(598);
+   $spec$select$15 = $165 ? 0 : $$1$add$14;
+   $$1$ptr$15 = (($0) + ($spec$select$15)|0);
+   $$1$add$15 = (($spec$select$15) + 1)|0;
+   $166 = HEAP8[$$1$ptr$15>>0]|0;
+   HEAP8[$105>>0] = $166;
+   $167 = ($spec$select$15|0)>(598);
+   $spec$select$16 = $167 ? 0 : $$1$add$15;
+   $$1$ptr$16 = (($0) + ($spec$select$16)|0);
+   $$1$add$16 = (($spec$select$16) + 1)|0;
+   $168 = HEAP8[$$1$ptr$16>>0]|0;
+   HEAP8[$106>>0] = $168;
+   $169 = ($spec$select$16|0)>(598);
+   $spec$select$17 = $169 ? 0 : $$1$add$16;
+   $$1$ptr$17 = (($0) + ($spec$select$17)|0);
+   $$1$add$17 = (($spec$select$17) + 1)|0;
+   $170 = HEAP8[$$1$ptr$17>>0]|0;
+   HEAP8[$107>>0] = $170;
+   $171 = ($spec$select$17|0)>(598);
+   $spec$select$18 = $171 ? 0 : $$1$add$17;
+   $$1$ptr$18 = (($0) + ($spec$select$18)|0);
+   $$1$add$18 = (($spec$select$18) + 1)|0;
+   $172 = HEAP8[$$1$ptr$18>>0]|0;
+   HEAP8[$108>>0] = $172;
+   $173 = ($spec$select$18|0)>(598);
+   $spec$select$19 = $173 ? 0 : $$1$add$18;
+   $$1$ptr$19 = (($0) + ($spec$select$19)|0);
+   $$1$add$19 = (($spec$select$19) + 1)|0;
+   $174 = HEAP8[$$1$ptr$19>>0]|0;
+   HEAP8[$109>>0] = $174;
+   $175 = ($spec$select$19|0)>(598);
+   $spec$select$20 = $175 ? 0 : $$1$add$19;
+   $$1$ptr$20 = (($0) + ($spec$select$20)|0);
+   $$1$add$20 = (($spec$select$20) + 1)|0;
+   $176 = HEAP8[$$1$ptr$20>>0]|0;
+   HEAP8[$110>>0] = $176;
+   $177 = ($spec$select$20|0)>(598);
+   $spec$select$21 = $177 ? 0 : $$1$add$20;
+   $$1$ptr$21 = (($0) + ($spec$select$21)|0);
+   $$1$add$21 = (($spec$select$21) + 1)|0;
+   $178 = HEAP8[$$1$ptr$21>>0]|0;
+   HEAP8[$111>>0] = $178;
+   $179 = ($spec$select$21|0)>(598);
+   $spec$select$22 = $179 ? 0 : $$1$add$21;
+   $$1$ptr$22 = (($0) + ($spec$select$22)|0);
+   $$1$add$22 = (($spec$select$22) + 1)|0;
+   $180 = HEAP8[$$1$ptr$22>>0]|0;
+   HEAP8[$112>>0] = $180;
+   $181 = ($spec$select$22|0)>(598);
+   $spec$select$23 = $181 ? 0 : $$1$add$22;
+   $$1$ptr$23 = (($0) + ($spec$select$23)|0);
+   $$1$add$23 = (($spec$select$23) + 1)|0;
+   $182 = HEAP8[$$1$ptr$23>>0]|0;
+   HEAP8[$113>>0] = $182;
+   $183 = ($spec$select$23|0)>(598);
+   $spec$select$24 = $183 ? 0 : $$1$add$23;
+   $$1$ptr$24 = (($0) + ($spec$select$24)|0);
+   $$1$add$24 = (($spec$select$24) + 1)|0;
+   $184 = HEAP8[$$1$ptr$24>>0]|0;
+   HEAP8[$114>>0] = $184;
+   $185 = ($spec$select$24|0)>(598);
+   $spec$select$25 = $185 ? 0 : $$1$add$24;
+   $$1$ptr$25 = (($0) + ($spec$select$25)|0);
+   $$1$add$25 = (($spec$select$25) + 1)|0;
+   $186 = HEAP8[$$1$ptr$25>>0]|0;
+   HEAP8[$115>>0] = $186;
+   $187 = ($spec$select$25|0)>(598);
+   $spec$select$26 = $187 ? 0 : $$1$add$25;
+   $$1$ptr$26 = (($0) + ($spec$select$26)|0);
+   $$1$add$26 = (($spec$select$26) + 1)|0;
+   $188 = HEAP8[$$1$ptr$26>>0]|0;
+   HEAP8[$116>>0] = $188;
+   $189 = ($spec$select$26|0)>(598);
+   $spec$select$27 = $189 ? 0 : $$1$add$26;
+   $$1$ptr$27 = (($0) + ($spec$select$27)|0);
+   $$1$add$27 = (($spec$select$27) + 1)|0;
+   $190 = HEAP8[$$1$ptr$27>>0]|0;
+   HEAP8[$117>>0] = $190;
+   $191 = ($spec$select$27|0)>(598);
+   $spec$select$28 = $191 ? 0 : $$1$add$27;
+   $$1$ptr$28 = (($0) + ($spec$select$28)|0);
+   $$1$add$28 = (($spec$select$28) + 1)|0;
+   $192 = HEAP8[$$1$ptr$28>>0]|0;
+   HEAP8[$118>>0] = $192;
+   $193 = ($spec$select$28|0)>(598);
+   $spec$select$29 = $193 ? 0 : $$1$add$28;
+   $$1$ptr$29 = (($0) + ($spec$select$29)|0);
+   $$1$add$29 = (($spec$select$29) + 1)|0;
+   $194 = HEAP8[$$1$ptr$29>>0]|0;
+   HEAP8[$119>>0] = $194;
+   $195 = ($spec$select$29|0)>(598);
+   $spec$select$30 = $195 ? 0 : $$1$add$29;
+   $$1$ptr$30 = (($0) + ($spec$select$30)|0);
+   $$1$add$30 = (($spec$select$30) + 1)|0;
+   $196 = HEAP8[$$1$ptr$30>>0]|0;
+   HEAP8[$120>>0] = $196;
+   $197 = ($spec$select$30|0)>(598);
+   $spec$select$31 = $197 ? 0 : $$1$add$30;
+   $$1$ptr$31 = (($0) + ($spec$select$31)|0);
+   $$1$add$31 = (($spec$select$31) + 1)|0;
+   $198 = HEAP8[$$1$ptr$31>>0]|0;
+   HEAP8[$121>>0] = $198;
+   $199 = ($spec$select$31|0)>(598);
+   $spec$select$32 = $199 ? 0 : $$1$add$31;
+   $$1$ptr$32 = (($0) + ($spec$select$32)|0);
+   $$1$add$32 = (($spec$select$32) + 1)|0;
+   $200 = HEAP8[$$1$ptr$32>>0]|0;
+   HEAP8[$122>>0] = $200;
+   $201 = ($spec$select$32|0)>(598);
+   $spec$select$33 = $201 ? 0 : $$1$add$32;
+   $$1$ptr$33 = (($0) + ($spec$select$33)|0);
+   $$1$add$33 = (($spec$select$33) + 1)|0;
+   $202 = HEAP8[$$1$ptr$33>>0]|0;
+   HEAP8[$123>>0] = $202;
+   $203 = ($spec$select$33|0)>(598);
+   $spec$select$34 = $203 ? 0 : $$1$add$33;
+   $$1$ptr$34 = (($0) + ($spec$select$34)|0);
+   $$1$add$34 = (($spec$select$34) + 1)|0;
+   $204 = HEAP8[$$1$ptr$34>>0]|0;
+   HEAP8[$124>>0] = $204;
+   $205 = ($spec$select$34|0)>(598);
+   $spec$select$35 = $205 ? 0 : $$1$add$34;
+   $$1$ptr$35 = (($0) + ($spec$select$35)|0);
+   $$1$add$35 = (($spec$select$35) + 1)|0;
+   $206 = HEAP8[$$1$ptr$35>>0]|0;
+   HEAP8[$125>>0] = $206;
+   $207 = ($spec$select$35|0)>(598);
+   $spec$select$36 = $207 ? 0 : $$1$add$35;
+   $$1$ptr$36 = (($0) + ($spec$select$36)|0);
+   $$1$add$36 = (($spec$select$36) + 1)|0;
+   $208 = HEAP8[$$1$ptr$36>>0]|0;
+   HEAP8[$126>>0] = $208;
+   $209 = ($spec$select$36|0)>(598);
+   $spec$select$37 = $209 ? 0 : $$1$add$36;
+   $$1$ptr$37 = (($0) + ($spec$select$37)|0);
+   $$1$add$37 = (($spec$select$37) + 1)|0;
+   $210 = HEAP8[$$1$ptr$37>>0]|0;
+   HEAP8[$127>>0] = $210;
+   $211 = ($spec$select$37|0)>(598);
+   $spec$select$38 = $211 ? 0 : $$1$add$37;
+   $$1$ptr$38 = (($0) + ($spec$select$38)|0);
+   $$1$add$38 = (($spec$select$38) + 1)|0;
+   $212 = HEAP8[$$1$ptr$38>>0]|0;
+   HEAP8[$128>>0] = $212;
+   $213 = ($spec$select$38|0)>(598);
+   $spec$select$39 = $213 ? 0 : $$1$add$38;
+   $$1$ptr$39 = (($0) + ($spec$select$39)|0);
+   $$1$add$39 = (($spec$select$39) + 1)|0;
+   $214 = HEAP8[$$1$ptr$39>>0]|0;
+   HEAP8[$129>>0] = $214;
+   $215 = ($spec$select$39|0)>(598);
+   $spec$select$40 = $215 ? 0 : $$1$add$39;
+   $$1$ptr$40 = (($0) + ($spec$select$40)|0);
+   $$1$add$40 = (($spec$select$40) + 1)|0;
+   $216 = HEAP8[$$1$ptr$40>>0]|0;
+   HEAP8[$130>>0] = $216;
+   $217 = ($spec$select$40|0)>(598);
+   $spec$select$41 = $217 ? 0 : $$1$add$40;
+   $$1$ptr$41 = (($0) + ($spec$select$41)|0);
+   $$1$add$41 = (($spec$select$41) + 1)|0;
+   $218 = HEAP8[$$1$ptr$41>>0]|0;
+   HEAP8[$131>>0] = $218;
+   $219 = ($spec$select$41|0)>(598);
+   $spec$select$42 = $219 ? 0 : $$1$add$41;
+   $$1$ptr$42 = (($0) + ($spec$select$42)|0);
+   $$1$add$42 = (($spec$select$42) + 1)|0;
+   $220 = HEAP8[$$1$ptr$42>>0]|0;
+   HEAP8[$132>>0] = $220;
+   $221 = ($spec$select$42|0)>(598);
+   $spec$select$43 = $221 ? 0 : $$1$add$42;
+   $$1$ptr$43 = (($0) + ($spec$select$43)|0);
+   $222 = HEAP8[$$1$ptr$43>>0]|0;
+   HEAP8[$133>>0] = $222;
+  }
+  __gcry_rmd160_mixblock($1,$2);
+  dest=$$ptr54; src=$2; 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));
+  $223 = (($$04961) + 1)|0;
+  $exitcond = ($223|0)==(30);
+  if ($exitcond) {
+   break;
+  } else {
+   $$04961 = $223;$$052$idx60 = $$052$add53;
+  }
+ }
+ $224 = HEAP32[18133]|0;
+ $225 = ($224|0)==($0|0);
+ if (!($225)) {
+  ___gcry_burn_stack(384);
+  STACKTOP = sp;return;
+ }
+ __gcry_rmd160_hash_buffer(71216,$0,600);
+ HEAP32[18151] = 1;
+ ___gcry_burn_stack(384);
+ STACKTOP = sp;return;
+}
+function __gcry_rngcsprng_randomize($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$$040$i = 0, $$0$$0$$0$$i = 0, $$0$$0$$0$11$i = 0, $$0$$0$$0$12$i = 0, 
$$0$$0$$0$13$i = 0, $$0$i = 0, $$01113$us$i$i$i = 0, $$0183437 = 0, $$03536 = 
0, $$03763$i = 0, $$03862$i = 0, $$03961$i = 0, $$040$i = 0, $$1$lcssa$i = 0, 
$$164$i = 0, $$in$i = 0, $$op = 0, $$pr$i = 0, $$pre = 0, $$pre$i = 0;
+ var $$pre$i$i = 0, $$pre26$i$i = 0, $$pre27$i$i = 0, $$pre28$i$i = 0, 
$$pre29$i$i = 0, $$pre30$i$i = 0, $$pre31$i$i = 0, $$pre32$i$i = 0, $$pre33$i$i 
= 0, $$pre34$i$i = 0, $$pre35$i$i = 0, $$pre36$i$i = 0, $$pre77$i = 0, 
$$pre78$i = 0, $$pre79$i = 0, $$pre80$i = 0, $$pre81$i = 0, $$pre82$i = 0, 
$$pre83$i = 0, $$pre84$i = 0;
+ var $$pre86$i = 0, $$pre87$i = 0, $$pre88$i = 0, $$pre89$i = 0, $$pre90$i = 
0, $$sroa$3$0$extract$shift = 0, $$sroa$3$0$extract$shift$i = 0, 
$$sroa$3$0$extract$trunc = 0, $$sroa$3$0$extract$trunc$i = 0, 
$$sroa$330$0$extract$shift = 0, $$sroa$330$0$extract$trunc = 0, 
$$sroa$353$0$extract$shift$i = 0, $$sroa$353$0$extract$trunc$i = 0, 
$$sroa$358$0$extract$shift$i = 0, $$sroa$358$0$extract$trunc$i = 0, 
$$sroa$4$0$extract$shift = 0, $$sroa$4$0$extract$trunc = 0, $10 = 0, $100 = 0, 
$101 = 0;
+ var $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;
+ var $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, $136 = 0, $137 = 0, $138 = 0;
+ var $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 
= 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 
= 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0;
+ var $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 
= 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 
= 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0;
+ var $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 
= 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 
= 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0;
+ var $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 
= 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 
= 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0;
+ var $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, 
$218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, 
$225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0;
+ var $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 
= 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 
= 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0;
+ var $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 
= 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 
= 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0;
+ var $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;
+ var $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 
= 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 
= 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0;
+ var $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, 
$308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, 
$315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0;
+ var $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 
= 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 
= 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0;
+ var $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 
= 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 
= 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0;
+ var $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 
= 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 
= 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0;
+ var $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 
= 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 
= 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0;
+ var $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, 
$399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, 
$405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0;
+ var $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 
= 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 
= 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0;
+ var $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 
= 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 
= 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0;
+ var $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 
= 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 
= 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0;
+ var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, 
$58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, 
$66 = 0, $67 = 0, $68 = 0;
+ var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, 
$76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, 
$84 = 0, $85 = 0, $86 = 0;
+ var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, 
$94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond$i = 0, $or$cond 
= 0, $or$cond$i = 0, $pool_balance$promoted$i = 0, $pool_readpos$promoted$i = 
0, $rndstats$6$rndstats$4 = 0;
+ var $rndstats$7$rndstats$5 = 0, $scevgep$i = 0, $spec$select$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;
+ var $vararg_buffer9 = 0, $vararg_ptr12 = 0, $vararg_ptr23 = 0, $vararg_ptr8 = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 832|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(832|0);
+ $vararg_buffer40 = sp + 736|0;
+ $vararg_buffer38 = sp + 728|0;
+ $vararg_buffer36 = sp + 720|0;
+ $vararg_buffer34 = sp + 712|0;
+ $vararg_buffer32 = sp + 704|0;
+ $vararg_buffer30 = sp + 696|0;
+ $vararg_buffer28 = sp + 688|0;
+ $vararg_buffer26 = sp + 680|0;
+ $vararg_buffer24 = sp + 672|0;
+ $vararg_buffer20 = sp + 664|0;
+ $vararg_buffer18 = sp + 656|0;
+ $vararg_buffer16 = sp + 648|0;
+ $vararg_buffer13 = sp + 640|0;
+ $vararg_buffer9 = sp + 632|0;
+ $vararg_buffer5 = sp + 624|0;
+ $vararg_buffer3 = sp + 616|0;
+ $vararg_buffer1 = sp + 608|0;
+ $vararg_buffer = sp + 600|0;
+ $3 = sp + 744|0;
+ $4 = sp;
+ $5 = sp + 740|0;
+ _initialize();
+ $6 = HEAP32[18148]|0;
+ $7 = ($6|0)!=(0);
+ $8 = ($2>>>0)>(1);
+ $or$cond = $8 & $7;
+ $$op = $2 & 3;
+ $9 = $or$cond ? 1 : $$op;
+ $10 = (_gpgrt_lock_lock(40208)|0);
+ $11 = ($10|0)==(0);
+ if (!($11)) {
+  $12 = (_gpg_strerror($10)|0);
+  HEAP32[$vararg_buffer>>2] = $12;
+  __gcry_log_fatal(67701,$vararg_buffer);
+  // unreachable;
+ }
+ HEAP32[18132] = 1;
+ $13 = ($9>>>0)>(1);
+ $rndstats$6$rndstats$4 = $13 ? 72588 : 72580;
+ $rndstats$7$rndstats$5 = $13 ? 72584 : 72576;
+ $14 = HEAP32[$rndstats$6$rndstats$4>>2]|0;
+ $15 = (($14) + ($1))|0;
+ HEAP32[$rndstats$6$rndstats$4>>2] = $15;
+ $16 = HEAP32[$rndstats$7$rndstats$5>>2]|0;
+ $17 = (($16) + 1)|0;
+ HEAP32[$rndstats$7$rndstats$5>>2] = $17;
+ $18 = ($1|0)==(0);
+ L4: do {
+  if (!($18)) {
+   $19 = ($9|0)!=(2);
+   $20 = ($9|0)==(2);
+   $21 = ((($3)) + 12|0);
+   $22 = ((($3)) + 36|0);
+   $23 = ($1>>>0)<(600);
+   $24 = $23 ? $1 : 600;
+   $$0183437 = $0;$$03536 = $1;$451 = $24;
+   L6: while(1) {
+    $$0$i = $$0183437;$$040$i = $451;
+    while(1) {
+     $25 = (_getpid()|0);
+     HEAP32[$5>>2] = $25;
+     $26 = HEAP32[10063]|0;
+     $27 = ($26|0)==(-1);
+     if ($27) {
+      $$0$$0$$0$$i = HEAP32[$5>>2]|0;
+      HEAP32[10063] = $$0$$0$$0$$i;
+     }
+     $28 = HEAP32[10063]|0;
+     $$0$$0$$0$11$i = HEAP32[$5>>2]|0;
+     $29 = ($28|0)==($$0$$0$$0$11$i|0);
+     if (!($29)) {
+      $$0$$0$$0$12$i = HEAP32[$5>>2]|0;
+      HEAP32[10063] = $$0$$0$$0$12$i;
+      $30 = HEAP32[10063]|0;
+      $$sroa$330$0$extract$shift = $30 >>> 24;
+      $$sroa$330$0$extract$trunc = $$sroa$330$0$extract$shift&255;
+      $31 = HEAP32[18132]|0;
+      $32 = ($31|0)==(0);
+      $33 = $30 >>> 8;
+      $34 = $33&255;
+      $35 = $30 >>> 16;
+      $36 = $35&255;
+      if ($32) {
+       label = 11;
+       break L6;
+      }
+      $37 = $30&255;
+      $38 = HEAP32[18142]|0;
+      $39 = (($38) + 4)|0;
+      HEAP32[18142] = $39;
+      $40 = HEAP32[18141]|0;
+      $41 = (($40) + 1)|0;
+      HEAP32[18141] = $41;
+      $42 = HEAP32[18133]|0;
+      $43 = HEAP32[18149]|0;
+      $44 = (($43) + 1)|0;
+      HEAP32[18149] = $44;
+      $45 = (($42) + ($43)|0);
+      $46 = HEAP8[$45>>0]|0;
+      $47 = $46 ^ $37;
+      HEAP8[$45>>0] = $47;
+      $48 = ($44>>>0)>(599);
+      if ($48) {
+       HEAP32[18149] = 0;
+       _mix_pool($42);
+       $49 = HEAP32[18138]|0;
+       $50 = (($49) + 1)|0;
+       HEAP32[18138] = $50;
+       HEAP32[18150] = 0;
+       $$pre$i = HEAP32[18133]|0;
+       $$pre77$i = HEAP32[18149]|0;
+       $52 = $$pre77$i;$54 = $$pre$i;
+      } else {
+       $52 = $44;$54 = $42;
+      }
+      $51 = (($52) + 1)|0;
+      HEAP32[18149] = $51;
+      $53 = (($54) + ($52)|0);
+      $55 = HEAP8[$53>>0]|0;
+      $56 = $55 ^ $34;
+      HEAP8[$53>>0] = $56;
+      $57 = ($51>>>0)>(599);
+      if ($57) {
+       HEAP32[18149] = 0;
+       _mix_pool($54);
+       $390 = HEAP32[18138]|0;
+       $391 = (($390) + 1)|0;
+       HEAP32[18138] = $391;
+       HEAP32[18150] = 0;
+       $$pre78$i = HEAP32[18133]|0;
+       $$pre79$i = HEAP32[18149]|0;
+       $393 = $$pre79$i;$395 = $$pre78$i;
+      } else {
+       $393 = $51;$395 = $54;
+      }
+      $392 = (($393) + 1)|0;
+      HEAP32[18149] = $392;
+      $394 = (($395) + ($393)|0);
+      $396 = HEAP8[$394>>0]|0;
+      $397 = $396 ^ $36;
+      HEAP8[$394>>0] = $397;
+      $398 = ($392>>>0)>(599);
+      if ($398) {
+       HEAP32[18149] = 0;
+       _mix_pool($395);
+       $399 = HEAP32[18138]|0;
+       $400 = (($399) + 1)|0;
+       HEAP32[18138] = $400;
+       HEAP32[18150] = 0;
+      }
+      $401 = HEAP32[18133]|0;
+      $402 = HEAP32[18149]|0;
+      $403 = (($402) + 1)|0;
+      HEAP32[18149] = $403;
+      $404 = (($401) + ($402)|0);
+      $405 = HEAP8[$404>>0]|0;
+      $406 = $405 ^ $$sroa$330$0$extract$trunc;
+      HEAP8[$404>>0] = $406;
+      $407 = ($403>>>0)>(599);
+      if ($407) {
+       HEAP32[18149] = 0;
+       _mix_pool($401);
+       $408 = HEAP32[18138]|0;
+       $409 = (($408) + 1)|0;
+       HEAP32[18138] = $409;
+       HEAP32[18150] = 1;
+      }
+      HEAP32[18150] = 0;
+     }
+     $58 = HEAP32[18132]|0;
+     $59 = ($58|0)==(0);
+     if ($59) {
+      label = 16;
+      break L6;
+     }
+     $60 = ($$040$i>>>0)>(600);
+     if ($60) {
+      label = 18;
+      break L6;
+     }
+     $61 = HEAP32[18137]|0;
+     $62 = ($61|0)==(0);
+     L31: do {
+      if ($62) {
+       $63 = HEAP32[18152]|0;
+       $64 = ($63|0)==(0|0);
+       L33: do {
+        if (!($64)) {
+         $65 = (_open($63,0,$vararg_buffer3)|0);
+         $66 = ($65|0)==(-1);
+         if ($66) {
+          $67 = (___errno_location()|0);
+          $68 = HEAP32[$67>>2]|0;
+          $69 = ($68|0)==(2);
+          if ($69) {
+           HEAP32[18153] = 1;
+           break;
+          } else {
+           $70 = (__gcry_gettext(68050)|0);
+           $71 = HEAP32[18152]|0;
+           $72 = (___errno_location()|0);
+           $73 = HEAP32[$72>>2]|0;
+           $74 = (_strerror($73)|0);
+           HEAP32[$vararg_buffer5>>2] = $71;
+           $vararg_ptr8 = ((($vararg_buffer5)) + 4|0);
+           HEAP32[$vararg_ptr8>>2] = $74;
+           __gcry_log_info($70,$vararg_buffer5);
+           break;
+          }
+         }
+         $75 = HEAP32[18152]|0;
+         $76 = (_lock_seed_file($65,$75,0)|0);
+         $77 = ($76|0)==(0);
+         if (!($77)) {
+          (_close($65)|0);
+          break;
+         }
+         $78 = (_fstat($65,$3)|0);
+         $79 = ($78|0)==(0);
+         if (!($79)) {
+          $80 = (__gcry_gettext(68071)|0);
+          $81 = HEAP32[18152]|0;
+          $82 = (___errno_location()|0);
+          $83 = HEAP32[$82>>2]|0;
+          $84 = (_strerror($83)|0);
+          HEAP32[$vararg_buffer9>>2] = $81;
+          $vararg_ptr12 = ((($vararg_buffer9)) + 4|0);
+          HEAP32[$vararg_ptr12>>2] = $84;
+          __gcry_log_info($80,$vararg_buffer9);
+          (_close($65)|0);
+          break;
+         }
+         $85 = HEAP32[$21>>2]|0;
+         $86 = $85 & 61440;
+         $87 = ($86|0)==(32768);
+         if (!($87)) {
+          $88 = (__gcry_gettext(68092)|0);
+          $89 = HEAP32[18152]|0;
+          HEAP32[$vararg_buffer13>>2] = $89;
+          __gcry_log_info($88,$vararg_buffer13);
+          (_close($65)|0);
+          break;
+         }
+         $90 = HEAP32[$22>>2]|0;
+         switch ($90|0) {
+         case 0:  {
+          $91 = (__gcry_gettext(68130)|0);
+          __gcry_log_info($91,$vararg_buffer16);
+          (_close($65)|0);
+          HEAP32[18153] = 1;
+          break L33;
+          break;
+         }
+         case 600:  {
+          L54: while(1) {
+           $93 = (_read($65,$4,600)|0);
+           switch ($93|0) {
+           case 600:  {
+            break L54;
+            break;
+           }
+           case -1:  {
+            break;
+           }
+           default: {
+            label = 37;
+            break L6;
+           }
+           }
+           $94 = (___errno_location()|0);
+           $95 = HEAP32[$94>>2]|0;
+           $96 = ($95|0)==(4);
+           if (!($96)) {
+            label = 37;
+            break L6;
+           }
+          }
+          (_close($65)|0);
+          $102 = HEAP32[18132]|0;
+          $103 = ($102|0)==(0);
+          if ($103) {
+           label = 39;
+           break L6;
+          }
+          $104 = HEAP32[18142]|0;
+          $105 = (($104) + 600)|0;
+          HEAP32[18142] = $105;
+          $106 = HEAP32[18141]|0;
+          $107 = (($106) + 1)|0;
+          HEAP32[18141] = $107;
+          $$01113$us$i$i$i = $4;$120 = 599;
+          while(1) {
+           $108 = ((($$01113$us$i$i$i)) + 1|0);
+           $109 = HEAP8[$$01113$us$i$i$i>>0]|0;
+           $110 = HEAP32[18133]|0;
+           $111 = HEAP32[18149]|0;
+           $112 = (($111) + 1)|0;
+           HEAP32[18149] = $112;
+           $113 = (($110) + ($111)|0);
+           $114 = HEAP8[$113>>0]|0;
+           $115 = $114 ^ $109;
+           HEAP8[$113>>0] = $115;
+           $116 = ($112>>>0)>(599);
+           if ($116) {
+            HEAP32[18149] = 0;
+            _mix_pool($110);
+            $117 = HEAP32[18138]|0;
+            $118 = (($117) + 1)|0;
+            HEAP32[18138] = $118;
+            $119 = ($120|0)==(0);
+            $121 = $119&1;
+            HEAP32[18150] = $121;
+           }
+           $122 = (($120) + -1)|0;
+           $123 = ($120|0)==(0);
+           if ($123) {
+            break;
+           } else {
+            $$01113$us$i$i$i = $108;$120 = $122;
+           }
+          }
+          $124 = (_getpid()|0);
+          $$sroa$358$0$extract$shift$i = $124 >>> 24;
+          $$sroa$358$0$extract$trunc$i = $$sroa$358$0$extract$shift$i&255;
+          $125 = HEAP32[18132]|0;
+          $126 = ($125|0)==(0);
+          $127 = $124 >>> 8;
+          $128 = $127&255;
+          $129 = $124 >>> 16;
+          $130 = $129&255;
+          if ($126) {
+           label = 45;
+           break L6;
+          }
+          $131 = $124&255;
+          $132 = HEAP32[18142]|0;
+          $133 = (($132) + 4)|0;
+          HEAP32[18142] = $133;
+          $134 = HEAP32[18141]|0;
+          $135 = (($134) + 1)|0;
+          HEAP32[18141] = $135;
+          $136 = HEAP32[18133]|0;
+          $137 = HEAP32[18149]|0;
+          $138 = (($137) + 1)|0;
+          HEAP32[18149] = $138;
+          $139 = (($136) + ($137)|0);
+          $140 = HEAP8[$139>>0]|0;
+          $141 = $140 ^ $131;
+          HEAP8[$139>>0] = $141;
+          $142 = ($138>>>0)>(599);
+          if ($142) {
+           HEAP32[18149] = 0;
+           _mix_pool($136);
+           $143 = HEAP32[18138]|0;
+           $144 = (($143) + 1)|0;
+           HEAP32[18138] = $144;
+           HEAP32[18150] = 0;
+           $$pre$i$i = HEAP32[18133]|0;
+           $$pre26$i$i = HEAP32[18149]|0;
+           $146 = $$pre26$i$i;$148 = $$pre$i$i;
+          } else {
+           $146 = $138;$148 = $136;
+          }
+          $145 = (($146) + 1)|0;
+          HEAP32[18149] = $145;
+          $147 = (($148) + ($146)|0);
+          $149 = HEAP8[$147>>0]|0;
+          $150 = $149 ^ $128;
+          HEAP8[$147>>0] = $150;
+          $151 = ($145>>>0)>(599);
+          if ($151) {
+           HEAP32[18149] = 0;
+           _mix_pool($148);
+           $248 = HEAP32[18138]|0;
+           $249 = (($248) + 1)|0;
+           HEAP32[18138] = $249;
+           HEAP32[18150] = 0;
+           $$pre27$i$i = HEAP32[18133]|0;
+           $$pre28$i$i = HEAP32[18149]|0;
+           $251 = $$pre28$i$i;$253 = $$pre27$i$i;
+          } else {
+           $251 = $145;$253 = $148;
+          }
+          $250 = (($251) + 1)|0;
+          HEAP32[18149] = $250;
+          $252 = (($253) + ($251)|0);
+          $254 = HEAP8[$252>>0]|0;
+          $255 = $254 ^ $130;
+          HEAP8[$252>>0] = $255;
+          $256 = ($250>>>0)>(599);
+          if ($256) {
+           HEAP32[18149] = 0;
+           _mix_pool($253);
+           $257 = HEAP32[18138]|0;
+           $258 = (($257) + 1)|0;
+           HEAP32[18138] = $258;
+           HEAP32[18150] = 0;
+          }
+          $259 = HEAP32[18133]|0;
+          $260 = HEAP32[18149]|0;
+          $261 = (($260) + 1)|0;
+          HEAP32[18149] = $261;
+          $262 = (($259) + ($260)|0);
+          $263 = HEAP8[$262>>0]|0;
+          $264 = $263 ^ $$sroa$358$0$extract$trunc$i;
+          HEAP8[$262>>0] = $264;
+          $265 = ($261>>>0)>(599);
+          if ($265) {
+           HEAP32[18149] = 0;
+           _mix_pool($259);
+           $266 = HEAP32[18138]|0;
+           $267 = (($266) + 1)|0;
+           HEAP32[18138] = $267;
+           HEAP32[18150] = 1;
+          }
+          $153 = (_time((0|0))|0);
+          $$sroa$353$0$extract$shift$i = $153 >>> 24;
+          $$sroa$353$0$extract$trunc$i = $$sroa$353$0$extract$shift$i&255;
+          $268 = HEAP32[18132]|0;
+          $269 = ($268|0)==(0);
+          $270 = $153 >>> 8;
+          $173 = $270&255;
+          $271 = $153 >>> 16;
+          $231 = $271&255;
+          if ($269) {
+           label = 49;
+           break L6;
+          }
+          $152 = $153&255;
+          $154 = HEAP32[18142]|0;
+          $155 = (($154) + 4)|0;
+          HEAP32[18142] = $155;
+          $156 = HEAP32[18141]|0;
+          $157 = (($156) + 1)|0;
+          HEAP32[18141] = $157;
+          $158 = HEAP32[18133]|0;
+          $159 = HEAP32[18149]|0;
+          $160 = (($159) + 1)|0;
+          HEAP32[18149] = $160;
+          $161 = (($158) + ($159)|0);
+          $162 = HEAP8[$161>>0]|0;
+          $163 = $162 ^ $152;
+          HEAP8[$161>>0] = $163;
+          $164 = ($160>>>0)>(599);
+          if ($164) {
+           HEAP32[18149] = 0;
+           _mix_pool($158);
+           $165 = HEAP32[18138]|0;
+           $166 = (($165) + 1)|0;
+           HEAP32[18138] = $166;
+           HEAP32[18150] = 0;
+           $$pre29$i$i = HEAP32[18133]|0;
+           $$pre30$i$i = HEAP32[18149]|0;
+           $168 = $$pre30$i$i;$170 = $$pre29$i$i;
+          } else {
+           $168 = $160;$170 = $158;
+          }
+          $167 = (($168) + 1)|0;
+          HEAP32[18149] = $167;
+          $169 = (($170) + ($168)|0);
+          $171 = HEAP8[$169>>0]|0;
+          $172 = $171 ^ $173;
+          HEAP8[$169>>0] = $172;
+          $174 = ($167>>>0)>(599);
+          if ($174) {
+           HEAP32[18149] = 0;
+           _mix_pool($170);
+           $223 = HEAP32[18138]|0;
+           $224 = (($223) + 1)|0;
+           HEAP32[18138] = $224;
+           HEAP32[18150] = 0;
+           $$pre31$i$i = HEAP32[18133]|0;
+           $$pre32$i$i = HEAP32[18149]|0;
+           $226 = $$pre32$i$i;$228 = $$pre31$i$i;
+          } else {
+           $226 = $167;$228 = $170;
+          }
+          $225 = (($226) + 1)|0;
+          HEAP32[18149] = $225;
+          $227 = (($228) + ($226)|0);
+          $229 = HEAP8[$227>>0]|0;
+          $230 = $229 ^ $231;
+          HEAP8[$227>>0] = $230;
+          $232 = ($225>>>0)>(599);
+          if ($232) {
+           HEAP32[18149] = 0;
+           _mix_pool($228);
+           $233 = HEAP32[18138]|0;
+           $234 = (($233) + 1)|0;
+           HEAP32[18138] = $234;
+           HEAP32[18150] = 0;
+          }
+          $235 = HEAP32[18133]|0;
+          $236 = HEAP32[18149]|0;
+          $237 = (($236) + 1)|0;
+          HEAP32[18149] = $237;
+          $238 = (($235) + ($236)|0);
+          $239 = HEAP8[$238>>0]|0;
+          $240 = $239 ^ $$sroa$353$0$extract$trunc$i;
+          HEAP8[$238>>0] = $240;
+          $241 = ($237>>>0)>(599);
+          if ($241) {
+           HEAP32[18149] = 0;
+           _mix_pool($235);
+           $242 = HEAP32[18138]|0;
+           $243 = (($242) + 1)|0;
+           HEAP32[18138] = $243;
+           HEAP32[18150] = 1;
+          }
+          $176 = (_clock()|0);
+          $$sroa$3$0$extract$shift$i = $176 >>> 24;
+          $$sroa$3$0$extract$trunc$i = $$sroa$3$0$extract$shift$i&255;
+          $244 = HEAP32[18132]|0;
+          $245 = ($244|0)==(0);
+          $246 = $176 >>> 8;
+          $196 = $246&255;
+          $247 = $176 >>> 16;
+          $208 = $247&255;
+          if ($245) {
+           label = 53;
+           break L6;
+          }
+          $175 = $176&255;
+          $177 = HEAP32[18142]|0;
+          $178 = (($177) + 4)|0;
+          HEAP32[18142] = $178;
+          $179 = HEAP32[18141]|0;
+          $180 = (($179) + 1)|0;
+          HEAP32[18141] = $180;
+          $181 = HEAP32[18133]|0;
+          $182 = HEAP32[18149]|0;
+          $183 = (($182) + 1)|0;
+          HEAP32[18149] = $183;
+          $184 = (($181) + ($182)|0);
+          $185 = HEAP8[$184>>0]|0;
+          $186 = $185 ^ $175;
+          HEAP8[$184>>0] = $186;
+          $187 = ($183>>>0)>(599);
+          if ($187) {
+           HEAP32[18149] = 0;
+           _mix_pool($181);
+           $188 = HEAP32[18138]|0;
+           $189 = (($188) + 1)|0;
+           HEAP32[18138] = $189;
+           HEAP32[18150] = 0;
+           $$pre33$i$i = HEAP32[18133]|0;
+           $$pre34$i$i = HEAP32[18149]|0;
+           $191 = $$pre34$i$i;$193 = $$pre33$i$i;
+          } else {
+           $191 = $183;$193 = $181;
+          }
+          $190 = (($191) + 1)|0;
+          HEAP32[18149] = $190;
+          $192 = (($193) + ($191)|0);
+          $194 = HEAP8[$192>>0]|0;
+          $195 = $194 ^ $196;
+          HEAP8[$192>>0] = $195;
+          $197 = ($190>>>0)>(599);
+          if ($197) {
+           HEAP32[18149] = 0;
+           _mix_pool($193);
+           $200 = HEAP32[18138]|0;
+           $201 = (($200) + 1)|0;
+           HEAP32[18138] = $201;
+           HEAP32[18150] = 0;
+           $$pre35$i$i = HEAP32[18133]|0;
+           $$pre36$i$i = HEAP32[18149]|0;
+           $203 = $$pre36$i$i;$205 = $$pre35$i$i;
+          } else {
+           $203 = $190;$205 = $193;
+          }
+          $202 = (($203) + 1)|0;
+          HEAP32[18149] = $202;
+          $204 = (($205) + ($203)|0);
+          $206 = HEAP8[$204>>0]|0;
+          $207 = $206 ^ $208;
+          HEAP8[$204>>0] = $207;
+          $209 = ($202>>>0)>(599);
+          if ($209) {
+           HEAP32[18149] = 0;
+           _mix_pool($205);
+           $210 = HEAP32[18138]|0;
+           $211 = (($210) + 1)|0;
+           HEAP32[18138] = $211;
+           HEAP32[18150] = 0;
+          }
+          $212 = HEAP32[18133]|0;
+          $213 = HEAP32[18149]|0;
+          $214 = (($213) + 1)|0;
+          HEAP32[18149] = $214;
+          $215 = (($212) + ($213)|0);
+          $216 = HEAP8[$215>>0]|0;
+          $217 = $216 ^ $$sroa$3$0$extract$trunc$i;
+          HEAP8[$215>>0] = $217;
+          $218 = ($214>>>0)>(599);
+          if ($218) {
+           HEAP32[18149] = 0;
+           _mix_pool($212);
+           $219 = HEAP32[18138]|0;
+           $220 = (($219) + 1)|0;
+           HEAP32[18138] = $220;
+           HEAP32[18150] = 1;
+          }
+          $221 = HEAP32[18136]|0;
+          $222 = ($221|0)==(0|0);
+          if ($222) {
+           label = 57;
+           break L6;
+          }
+          $198 = (__gcry_rndlinux_gather_random(84,0,16,0)|0);
+          $199 = ($198|0)<(0);
+          if ($199) {
+           label = 59;
+           break L6;
+          }
+          HEAP32[18153] = 1;
+          HEAP32[18137] = 1;
+          break L31;
+          break;
+         }
+         default: {
+          $92 = (__gcry_gettext(68163)|0);
+          __gcry_log_info($92,$vararg_buffer18);
+          (_close($65)|0);
+          break L33;
+         }
+         }
+        }
+       } while(0);
+      }
+     } while(0);
+     $272 = HEAP32[18154]|0;
+     $273 = ($272|0)!=(0);
+     $or$cond$i = $19 | $273;
+     if ($or$cond$i) {
+      if ($20) {
+       $$pr$i = HEAP32[18155]|0;
+       $282 = $$pr$i;
+       label = 88;
+      }
+     } else {
+      HEAP32[18155] = 0;
+      $274 = ($$040$i>>>0)>(16);
+      $$$040$i = $274 ? $$040$i : 16;
+      $275 = HEAP32[18136]|0;
+      $276 = ($275|0)==(0|0);
+      if ($276) {
+       label = 82;
+       break L6;
+      }
+      $277 = (__gcry_rndlinux_gather_random(84,4,$$$040$i,2)|0);
+      $278 = ($277|0)<(0);
+      if ($278) {
+       label = 84;
+       break L6;
+      }
+      $279 = HEAP32[18155]|0;
+      $280 = (($279) + ($$$040$i))|0;
+      HEAP32[18155] = $280;
+      HEAP32[18154] = 1;
+      $282 = $280;
+      label = 88;
+     }
+     if ((label|0) == 88) {
+      label = 0;
+      $281 = ($282>>>0)<($$040$i>>>0);
+      if ($281) {
+       $283 = ($282|0)<(0);
+       if ($283) {
+        HEAP32[18155] = 0;
+        $285 = 0;
+       } else {
+        $285 = $282;
+       }
+       $284 = (($$040$i) - ($285))|0;
+       $286 = ($284>>>0)>(600);
+       if ($286) {
+        label = 92;
+        break L6;
+       }
+       $287 = HEAP32[18136]|0;
+       $288 = ($287|0)==(0|0);
+       if ($288) {
+        label = 94;
+        break L6;
+       }
+       $289 = (__gcry_rndlinux_gather_random(84,4,$284,2)|0);
+       $290 = ($289|0)<(0);
+       if ($290) {
+        label = 96;
+        break L6;
+       }
+       $291 = HEAP32[18155]|0;
+       $292 = (($291) + ($284))|0;
+       HEAP32[18155] = $292;
+      }
+     }
+     $293 = HEAP32[18137]|0;
+     $294 = ($293|0)==(0);
+     if ($294) {
+      while(1) {
+       $297 = HEAP32[18139]|0;
+       $298 = (($297) + 1)|0;
+       HEAP32[18139] = $298;
+       $299 = HEAP32[18136]|0;
+       $300 = ($299|0)==(0|0);
+       if ($300) {
+        label = 102;
+        break L6;
+       }
+       $301 = (__gcry_rndlinux_gather_random(84,3,120,1)|0);
+       $302 = ($301|0)<(0);
+       if ($302) {
+        label = 104;
+        break L6;
+       }
+       $295 = HEAP32[18137]|0;
+       $296 = ($295|0)==(0);
+       if (!($296)) {
+        break;
+       }
+      }
+     }
+     _do_fast_random_poll();
+     $303 = HEAP32[10063]|0;
+     $$sroa$4$0$extract$shift = $303 >>> 24;
+     $$sroa$4$0$extract$trunc = $$sroa$4$0$extract$shift&255;
+     $304 = HEAP32[18132]|0;
+     $305 = ($304|0)==(0);
+     $306 = $303 >>> 8;
+     $307 = $306&255;
+     $308 = $303 >>> 16;
+     $309 = $308&255;
+     if ($305) {
+      label = 106;
+      break L6;
+     }
+     $310 = $303&255;
+     $311 = HEAP32[18142]|0;
+     $312 = (($311) + 4)|0;
+     HEAP32[18142] = $312;
+     $313 = HEAP32[18141]|0;
+     $314 = (($313) + 1)|0;
+     HEAP32[18141] = $314;
+     $315 = HEAP32[18133]|0;
+     $316 = HEAP32[18149]|0;
+     $317 = (($316) + 1)|0;
+     HEAP32[18149] = $317;
+     $318 = (($315) + ($316)|0);
+     $319 = HEAP8[$318>>0]|0;
+     $320 = $319 ^ $310;
+     HEAP8[$318>>0] = $320;
+     $321 = ($317>>>0)>(599);
+     if ($321) {
+      HEAP32[18149] = 0;
+      _mix_pool($315);
+      $322 = HEAP32[18138]|0;
+      $323 = (($322) + 1)|0;
+      HEAP32[18138] = $323;
+      HEAP32[18150] = 0;
+      $$pre80$i = HEAP32[18133]|0;
+      $$pre81$i = HEAP32[18149]|0;
+      $325 = $$pre81$i;$327 = $$pre80$i;
+     } else {
+      $325 = $317;$327 = $315;
+     }
+     $324 = (($325) + 1)|0;
+     HEAP32[18149] = $324;
+     $326 = (($327) + ($325)|0);
+     $328 = HEAP8[$326>>0]|0;
+     $329 = $328 ^ $307;
+     HEAP8[$326>>0] = $329;
+     $330 = ($324>>>0)>(599);
+     if ($330) {
+      HEAP32[18149] = 0;
+      _mix_pool($327);
+      $410 = HEAP32[18138]|0;
+      $411 = (($410) + 1)|0;
+      HEAP32[18138] = $411;
+      HEAP32[18150] = 0;
+      $$pre82$i = HEAP32[18133]|0;
+      $$pre83$i = HEAP32[18149]|0;
+      $413 = $$pre83$i;$415 = $$pre82$i;
+     } else {
+      $413 = $324;$415 = $327;
+     }
+     $412 = (($413) + 1)|0;
+     HEAP32[18149] = $412;
+     $414 = (($415) + ($413)|0);
+     $416 = HEAP8[$414>>0]|0;
+     $417 = $416 ^ $309;
+     HEAP8[$414>>0] = $417;
+     $418 = ($412>>>0)>(599);
+     if ($418) {
+      HEAP32[18149] = 0;
+      _mix_pool($415);
+      $419 = HEAP32[18138]|0;
+      $420 = (($419) + 1)|0;
+      HEAP32[18138] = $420;
+      HEAP32[18150] = 0;
+     }
+     $331 = HEAP32[18133]|0;
+     $421 = HEAP32[18149]|0;
+     $422 = (($421) + 1)|0;
+     HEAP32[18149] = $422;
+     $423 = (($331) + ($421)|0);
+     $424 = HEAP8[$423>>0]|0;
+     $425 = $424 ^ $$sroa$4$0$extract$trunc;
+     HEAP8[$423>>0] = $425;
+     $426 = ($422>>>0)>(599);
+     if ($426) {
+      HEAP32[18149] = 0;
+      _mix_pool($331);
+      $427 = HEAP32[18138]|0;
+      $428 = (($427) + 1)|0;
+      HEAP32[18138] = $428;
+      HEAP32[18150] = 1;
+     } else {
+      $$pre84$i = HEAP32[18150]|0;
+      $429 = ($$pre84$i|0)==(0);
+      if ($429) {
+       _mix_pool($331);
+       $332 = HEAP32[18138]|0;
+       $333 = (($332) + 1)|0;
+       HEAP32[18138] = $333;
+      }
+     }
+     $334 = HEAP32[18135]|0;
+     $335 = HEAP32[18133]|0;
+     $$03763$i = $334;$$03862$i = $335;$$03961$i = 0;
+     while(1) {
+      $336 = HEAP32[$$03862$i>>2]|0;
+      $337 = (($336) + -1515870811)|0;
+      HEAP32[$$03763$i>>2] = $337;
+      $338 = (($$03961$i) + 1)|0;
+      $339 = ((($$03763$i)) + 4|0);
+      $340 = ((($$03862$i)) + 4|0);
+      $exitcond$i = ($338|0)==(150);
+      if ($exitcond$i) {
+       break;
+      } else {
+       $$03763$i = $339;$$03862$i = $340;$$03961$i = $338;
+      }
+     }
+     _mix_pool($335);
+     $341 = HEAP32[18138]|0;
+     $342 = (($341) + 1)|0;
+     HEAP32[18138] = $342;
+     $343 = HEAP32[18135]|0;
+     _mix_pool($343);
+     $344 = HEAP32[18143]|0;
+     $345 = (($344) + 1)|0;
+     HEAP32[18143] = $345;
+     $346 = ($$040$i|0)==(0);
+     if ($346) {
+      $$pre86$i = HEAP32[18155]|0;
+      $$1$lcssa$i = $$0$i;$358 = $$pre86$i;
+     } else {
+      $347 = HEAP32[18135]|0;
+      $pool_readpos$promoted$i = HEAP32[18156]|0;
+      $pool_balance$promoted$i = HEAP32[18155]|0;
+      $$164$i = $$0$i;$$in$i = $$040$i;$350 = $pool_readpos$promoted$i;
+      while(1) {
+       $348 = (($$in$i) + -1)|0;
+       $349 = (($350) + 1)|0;
+       $351 = (($347) + ($350)|0);
+       $352 = HEAP8[$351>>0]|0;
+       $353 = ((($$164$i)) + 1|0);
+       HEAP8[$$164$i>>0] = $352;
+       $354 = ($349>>>0)>(599);
+       $spec$select$i = $354 ? 0 : $349;
+       $355 = ($348|0)==(0);
+       if ($355) {
+        break;
+       } else {
+        $$164$i = $353;$$in$i = $348;$350 = $spec$select$i;
+       }
+      }
+      $scevgep$i = (($$0$i) + ($$040$i)|0);
+      $356 = (($pool_balance$promoted$i) - ($$040$i))|0;
+      HEAP32[18156] = $spec$select$i;
+      HEAP32[18155] = $356;
+      $$1$lcssa$i = $scevgep$i;$358 = $356;
+     }
+     $357 = ($358|0)<(0);
+     if ($357) {
+      HEAP32[18155] = 0;
+     }
+     $359 = HEAP32[18135]|0;
+     _memset(($359|0),0,600)|0;
+     $360 = (_getpid()|0);
+     $$0$$0$$0$13$i = HEAP32[$5>>2]|0;
+     $361 = ($360|0)==($$0$$0$$0$13$i|0);
+     if ($361) {
+      break;
+     }
+     $362 = (_getpid()|0);
+     $$sroa$3$0$extract$shift = $362 >>> 24;
+     $$sroa$3$0$extract$trunc = $$sroa$3$0$extract$shift&255;
+     $363 = HEAP32[18132]|0;
+     $364 = ($363|0)==(0);
+     $365 = $362 >>> 8;
+     $366 = $365&255;
+     $367 = $362 >>> 16;
+     $368 = $367&255;
+     if ($364) {
+      label = 122;
+      break L6;
+     }
+     $369 = $362&255;
+     $370 = HEAP32[18142]|0;
+     $371 = (($370) + 4)|0;
+     HEAP32[18142] = $371;
+     $372 = HEAP32[18141]|0;
+     $373 = (($372) + 1)|0;
+     HEAP32[18141] = $373;
+     $374 = HEAP32[18133]|0;
+     $375 = HEAP32[18149]|0;
+     $376 = (($375) + 1)|0;
+     HEAP32[18149] = $376;
+     $377 = (($374) + ($375)|0);
+     $378 = HEAP8[$377>>0]|0;
+     $379 = $378 ^ $369;
+     HEAP8[$377>>0] = $379;
+     $380 = ($376>>>0)>(599);
+     if ($380) {
+      HEAP32[18149] = 0;
+      _mix_pool($374);
+      $381 = HEAP32[18138]|0;
+      $382 = (($381) + 1)|0;
+      HEAP32[18138] = $382;
+      HEAP32[18150] = 0;
+      $$pre87$i = HEAP32[18133]|0;
+      $$pre88$i = HEAP32[18149]|0;
+      $384 = $$pre88$i;$386 = $$pre87$i;
+     } else {
+      $384 = $376;$386 = $374;
+     }
+     $383 = (($384) + 1)|0;
+     HEAP32[18149] = $383;
+     $385 = (($386) + ($384)|0);
+     $387 = HEAP8[$385>>0]|0;
+     $388 = $387 ^ $366;
+     HEAP8[$385>>0] = $388;
+     $389 = ($383>>>0)>(599);
+     if ($389) {
+      HEAP32[18149] = 0;
+      _mix_pool($386);
+      $430 = HEAP32[18138]|0;
+      $431 = (($430) + 1)|0;
+      HEAP32[18138] = $431;
+      HEAP32[18150] = 0;
+      $$pre89$i = HEAP32[18133]|0;
+      $$pre90$i = HEAP32[18149]|0;
+      $433 = $$pre90$i;$435 = $$pre89$i;
+     } else {
+      $433 = $383;$435 = $386;
+     }
+     $432 = (($433) + 1)|0;
+     HEAP32[18149] = $432;
+     $434 = (($435) + ($433)|0);
+     $436 = HEAP8[$434>>0]|0;
+     $437 = $436 ^ $368;
+     HEAP8[$434>>0] = $437;
+     $438 = ($432>>>0)>(599);
+     if ($438) {
+      HEAP32[18149] = 0;
+      _mix_pool($435);
+      $439 = HEAP32[18138]|0;
+      $440 = (($439) + 1)|0;
+      HEAP32[18138] = $440;
+      HEAP32[18150] = 0;
+     }
+     $441 = HEAP32[18133]|0;
+     $442 = HEAP32[18149]|0;
+     $443 = (($442) + 1)|0;
+     HEAP32[18149] = $443;
+     $444 = (($441) + ($442)|0);
+     $445 = HEAP8[$444>>0]|0;
+     $446 = $445 ^ $$sroa$3$0$extract$trunc;
+     HEAP8[$444>>0] = $446;
+     $447 = ($443>>>0)>(599);
+     if ($447) {
+      HEAP32[18149] = 0;
+      _mix_pool($441);
+      $448 = HEAP32[18138]|0;
+      $449 = (($448) + 1)|0;
+      HEAP32[18138] = $449;
+      HEAP32[18150] = 1;
+     }
+     HEAP32[18150] = 0;
+     HEAP32[10063] = $362;
+     $$0$i = $$1$lcssa$i;$$040$i = -1;
+    }
+    $450 = (($$03536) - ($451))|0;
+    $452 = ($450|0)==(0);
+    if ($452) {
+     break L4;
+    }
+    $453 = (($$0183437) + ($451)|0);
+    $$pre = HEAP32[18132]|0;
+    $454 = ($450>>>0)<(600);
+    $455 = $454 ? $450 : 600;
+    $456 = ($$pre|0)==(0);
+    if ($456) {
+     label = 5;
+     break;
+    } else {
+     $$0183437 = $453;$$03536 = $450;$451 = $455;
+    }
+   }
+   switch (label|0) {
+    case 5: {
+     __gcry_assert_failed(67953,67968,934,67993);
+     // unreachable;
+     break;
+    }
+    case 11: {
+     __gcry_assert_failed(67953,67968,1074,68003);
+     // unreachable;
+     break;
+    }
+    case 16: {
+     __gcry_assert_failed(67953,67968,953,67993);
+     // unreachable;
+     break;
+    }
+    case 18: {
+     __gcry_log_bug(68018,$vararg_buffer1);
+     // unreachable;
+     break;
+    }
+    case 37: {
+     $97 = (__gcry_gettext(68217)|0);
+     $98 = HEAP32[18152]|0;
+     $99 = (___errno_location()|0);
+     $100 = HEAP32[$99>>2]|0;
+     $101 = (_strerror($100)|0);
+     HEAP32[$vararg_buffer20>>2] = $98;
+     $vararg_ptr23 = ((($vararg_buffer20)) + 4|0);
+     HEAP32[$vararg_ptr23>>2] = $101;
+     __gcry_log_fatal($97,$vararg_buffer20);
+     // unreachable;
+     break;
+    }
+    case 39: {
+     __gcry_assert_failed(67953,67968,1074,68003);
+     // unreachable;
+     break;
+    }
+    case 45: {
+     __gcry_assert_failed(67953,67968,1074,68003);
+     // unreachable;
+     break;
+    }
+    case 49: {
+     __gcry_assert_failed(67953,67968,1074,68003);
+     // unreachable;
+     break;
+    }
+    case 53: {
+     __gcry_assert_failed(67953,67968,1074,68003);
+     // unreachable;
+     break;
+    }
+    case 57: {
+     __gcry_log_fatal(68238,$vararg_buffer24);
+     // unreachable;
+     break;
+    }
+    case 59: {
+     __gcry_log_fatal(68289,$vararg_buffer26);
+     // unreachable;
+     break;
+    }
+    case 82: {
+     __gcry_log_fatal(68238,$vararg_buffer28);
+     // unreachable;
+     break;
+    }
+    case 84: {
+     __gcry_log_fatal(68289,$vararg_buffer30);
+     // unreachable;
+     break;
+    }
+    case 92: {
+     __gcry_bug(67968,995,67993);
+     // unreachable;
+     break;
+    }
+    case 94: {
+     __gcry_log_fatal(68238,$vararg_buffer32);
+     // unreachable;
+     break;
+    }
+    case 96: {
+     __gcry_log_fatal(68289,$vararg_buffer34);
+     // unreachable;
+     break;
+    }
+    case 102: {
+     __gcry_log_fatal(68238,$vararg_buffer36);
+     // unreachable;
+     break;
+    }
+    case 104: {
+     __gcry_log_fatal(68289,$vararg_buffer38);
+     // unreachable;
+     break;
+    }
+    case 106: {
+     __gcry_assert_failed(67953,67968,1074,68003);
+     // unreachable;
+     break;
+    }
+    case 122: {
+     __gcry_assert_failed(67953,67968,1074,68003);
+     // unreachable;
+     break;
+    }
+   }
+  }
+ } while(0);
+ HEAP32[18132] = 0;
+ $457 = (_gpgrt_lock_unlock(40208)|0);
+ $458 = ($457|0)==(0);
+ if ($458) {
+  STACKTOP = sp;return;
+ } else {
+  $459 = (_gpg_strerror($457)|0);
+  HEAP32[$vararg_buffer40>>2] = $459;
+  __gcry_log_fatal(67776,$vararg_buffer40);
+  // unreachable;
+ }
+}
+function _lock_seed_file($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$010 = 0, $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 
0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 
= 0, $25 = 0, $26 = 0, $27 = 0;
+ var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, 
$vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer5 = 0, $vararg_buffer8 = 
0, $vararg_ptr4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(64|0);
+ $vararg_buffer8 = sp + 24|0;
+ $vararg_buffer5 = sp + 16|0;
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $3 = sp + 40|0;
+ $4 = sp + 32|0;
+ $5 = ((($3)) + 4|0);
+ ;HEAP32[$5>>2]=0|0;HEAP32[$5+4>>2]=0|0;HEAP32[$5+8>>2]=0|0;
+ $6 = ($2|0)!=(0);
+ $7 = $6&1;
+ HEAP16[$3>>1] = $7;
+ $8 = ((($3)) + 2|0);
+ HEAP16[$8>>1] = 0;
+ HEAP32[$vararg_buffer>>2] = $3;
+ $9 = (_fcntl($0,13,$vararg_buffer)|0);
+ $10 = ($9|0)==(-1);
+ if (!($10)) {
+  $$09 = 0;
+  STACKTOP = sp;return ($$09|0);
+ }
+ $11 = ((($4)) + 4|0);
+ $$010 = 0;
+ while(1) {
+  $12 = (___errno_location()|0);
+  $13 = HEAP32[$12>>2]|0;
+  $14 = ($13|0)==(11);
+  if (!($14)) {
+   $15 = (___errno_location()|0);
+   $16 = HEAP32[$15>>2]|0;
+   $17 = ($16|0)==(13);
+   if (!($17)) {
+    break;
+   }
+  }
+  $22 = ($$010>>>0)>(2);
+  if ($22) {
+   $23 = (__gcry_gettext(68368)|0);
+   HEAP32[$vararg_buffer5>>2] = $1;
+   __gcry_log_info($23,$vararg_buffer5);
+  }
+  HEAP32[$4>>2] = $$010;
+  HEAP32[$11>>2] = 250000;
+  (_select(0,0,0,0,$4)|0);
+  $24 = ($$010>>>0)<(10);
+  $25 = $24&1;
+  $spec$select = (($$010) + ($25))|0;
+  HEAP32[$vararg_buffer8>>2] = $3;
+  $26 = (_fcntl($0,13,$vararg_buffer8)|0);
+  $27 = ($26|0)==(-1);
+  if ($27) {
+   $$010 = $spec$select;
+  } else {
+   $$09 = 0;
+   label = 9;
+   break;
+  }
+ }
+ if ((label|0) == 9) {
+  STACKTOP = sp;return ($$09|0);
+ }
+ $18 = (__gcry_gettext(68347)|0);
+ $19 = (___errno_location()|0);
+ $20 = HEAP32[$19>>2]|0;
+ $21 = (_strerror($20)|0);
+ HEAP32[$vararg_buffer1>>2] = $1;
+ $vararg_ptr4 = ((($vararg_buffer1)) + 4|0);
+ HEAP32[$vararg_ptr4>>2] = $21;
+ __gcry_log_info($18,$vararg_buffer1);
+ $$09 = -1;
+ STACKTOP = sp;return ($$09|0);
+}
+function _add_randomness($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$01113 = 0, $$01113$us = 0, $$014 = 0, $$1 = 0, $$2 = 0, $10 = 0, $11 = 
0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 
= 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0;
+ var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 
= 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = HEAP32[18132]|0;
+ $4 = ($3|0)==(0);
+ if ($4) {
+  __gcry_assert_failed(67953,67968,1074,68003);
+  // unreachable;
+ }
+ $5 = HEAP32[18142]|0;
+ $6 = (($5) + ($1))|0;
+ HEAP32[18142] = $6;
+ $7 = HEAP32[18141]|0;
+ $8 = (($7) + 1)|0;
+ HEAP32[18141] = $8;
+ $9 = (($1) + -1)|0;
+ $10 = ($1|0)==(0);
+ if ($10) {
+  return;
+ }
+ $11 = ($2>>>0)<(3);
+ if ($11) {
+  $$01113$us = $0;$24 = $9;
+  while(1) {
+   $12 = ((($$01113$us)) + 1|0);
+   $13 = HEAP8[$$01113$us>>0]|0;
+   $14 = HEAP32[18133]|0;
+   $15 = HEAP32[18149]|0;
+   $16 = (($15) + 1)|0;
+   HEAP32[18149] = $16;
+   $17 = (($14) + ($15)|0);
+   $18 = HEAP8[$17>>0]|0;
+   $19 = $18 ^ $13;
+   HEAP8[$17>>0] = $19;
+   $20 = ($16>>>0)>(599);
+   if ($20) {
+    HEAP32[18149] = 0;
+    _mix_pool($14);
+    $21 = HEAP32[18138]|0;
+    $22 = (($21) + 1)|0;
+    HEAP32[18138] = $22;
+    $23 = ($24|0)==(0);
+    $25 = $23&1;
+    HEAP32[18150] = $25;
+   }
+   $26 = (($24) + -1)|0;
+   $27 = ($24|0)==(0);
+   if ($27) {
+    break;
+   } else {
+    $$01113$us = $12;$24 = $26;
+   }
+  }
+  return;
+ }
+ $$01113 = $0;$$014 = 0;$46 = $9;
+ while(1) {
+  $28 = ((($$01113)) + 1|0);
+  $29 = HEAP8[$$01113>>0]|0;
+  $30 = HEAP32[18133]|0;
+  $31 = HEAP32[18149]|0;
+  $32 = (($31) + 1)|0;
+  HEAP32[18149] = $32;
+  $33 = (($30) + ($31)|0);
+  $34 = HEAP8[$33>>0]|0;
+  $35 = $34 ^ $29;
+  HEAP8[$33>>0] = $35;
+  $36 = (($$014) + 1)|0;
+  $37 = ($32>>>0)>(599);
+  if ($37) {
+   $38 = HEAP32[18137]|0;
+   $39 = ($38|0)==(0);
+   if ($39) {
+    $40 = HEAP32[18157]|0;
+    $41 = (($40) + ($36))|0;
+    HEAP32[18157] = $41;
+    $42 = ($41>>>0)>(599);
+    if ($42) {
+     HEAP32[18137] = 1;
+     $$1 = 0;
+    } else {
+     $$1 = 0;
+    }
+   } else {
+    $$1 = $36;
+   }
+   HEAP32[18149] = 0;
+   _mix_pool($30);
+   $43 = HEAP32[18138]|0;
+   $44 = (($43) + 1)|0;
+   HEAP32[18138] = $44;
+   $45 = ($46|0)==(0);
+   $47 = $45&1;
+   HEAP32[18150] = $47;
+   $$2 = $$1;
+  } else {
+   $$2 = $36;
+  }
+  $48 = (($46) + -1)|0;
+  $49 = ($46|0)==(0);
+  if ($49) {
+   break;
+  } else {
+   $$01113 = $28;$$014 = $$2;$46 = $48;
+  }
+ }
+ return;
+}
+function _do_fast_random_poll() {
+ var $$01113$us$i3 = 0, $$pre = 0, $$pre13 = 0, $$pre14 = 0, $$pre15 = 0, 
$$pre16 = 0, $$pre17 = 0, $$pre18 = 0, $$pre19 = 0, $$pre20 = 0, $$pre21 = 0, 
$$pre22 = 0, $$pre23 = 0, $$pre24 = 0, $$pre25 = 0, $$pre26 = 0, $$pre27 = 0, 
$0 = 0, $1 = 0, $10 = 0;
+ var $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, 
$107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, 
$114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0;
+ var $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, $136 = 0;
+ var $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 
= 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 
= 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0;
+ var $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 
= 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 
= 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0;
+ var $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 
= 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 
= 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0;
+ var $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, 
$198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, 
$204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0;
+ var $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 
= 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 
= 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0;
+ var $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $24 = 0, $25 = 0, $26 = 
0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 
0, $35 = 0, $36 = 0, $37 = 0;
+ var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, 
$45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0;
+ var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, 
$63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, 
$71 = 0, $72 = 0, $73 = 0;
+ var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, 
$81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 
0, $9 = 0, $90 = 0, $91 = 0;
+ var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(160|0);
+ $0 = sp + 144|0;
+ $1 = sp + 8|0;
+ $2 = sp + 4|0;
+ $3 = sp;
+ $4 = HEAP32[18132]|0;
+ $5 = ($4|0)==(0);
+ if ($5) {
+  __gcry_assert_failed(67953,67968,1180,68327);
+  // unreachable;
+ }
+ $6 = HEAP32[18140]|0;
+ $7 = (($6) + 1)|0;
+ HEAP32[18140] = $7;
+ $8 = (_gettimeofday(($0|0),(0|0))|0);
+ $9 = ($8|0)==(0);
+ if (!($9)) {
+  __gcry_bug(67968,1198,68327);
+  // unreachable;
+ }
+ $10 = HEAP32[18132]|0;
+ $11 = ($10|0)==(0);
+ if ($11) {
+  __gcry_assert_failed(67953,67968,1074,68003);
+  // unreachable;
+ }
+ $12 = HEAP32[18142]|0;
+ $13 = (($12) + 4)|0;
+ HEAP32[18142] = $13;
+ $14 = HEAP32[18141]|0;
+ $15 = (($14) + 1)|0;
+ HEAP32[18141] = $15;
+ $16 = ((($0)) + 1|0);
+ $17 = HEAP8[$0>>0]|0;
+ $18 = HEAP32[18133]|0;
+ $19 = HEAP32[18149]|0;
+ $20 = (($19) + 1)|0;
+ HEAP32[18149] = $20;
+ $21 = (($18) + ($19)|0);
+ $22 = HEAP8[$21>>0]|0;
+ $23 = $22 ^ $17;
+ HEAP8[$21>>0] = $23;
+ $24 = ($20>>>0)>(599);
+ if ($24) {
+  HEAP32[18149] = 0;
+  _mix_pool($18);
+  $25 = HEAP32[18138]|0;
+  $26 = (($25) + 1)|0;
+  HEAP32[18138] = $26;
+  HEAP32[18150] = 0;
+  $$pre = HEAP32[18133]|0;
+  $$pre13 = HEAP32[18149]|0;
+  $30 = $$pre13;$32 = $$pre;
+ } else {
+  $30 = $20;$32 = $18;
+ }
+ $27 = ((($0)) + 2|0);
+ $28 = HEAP8[$16>>0]|0;
+ $29 = (($30) + 1)|0;
+ HEAP32[18149] = $29;
+ $31 = (($32) + ($30)|0);
+ $33 = HEAP8[$31>>0]|0;
+ $34 = $33 ^ $28;
+ HEAP8[$31>>0] = $34;
+ $35 = ($29>>>0)>(599);
+ if ($35) {
+  HEAP32[18149] = 0;
+  _mix_pool($32);
+  $206 = HEAP32[18138]|0;
+  $207 = (($206) + 1)|0;
+  HEAP32[18138] = $207;
+  HEAP32[18150] = 0;
+  $$pre14 = HEAP32[18133]|0;
+  $$pre15 = HEAP32[18149]|0;
+  $211 = $$pre15;$213 = $$pre14;
+ } else {
+  $211 = $29;$213 = $32;
+ }
+ $208 = ((($0)) + 3|0);
+ $209 = HEAP8[$27>>0]|0;
+ $210 = (($211) + 1)|0;
+ HEAP32[18149] = $210;
+ $212 = (($213) + ($211)|0);
+ $214 = HEAP8[$212>>0]|0;
+ $215 = $214 ^ $209;
+ HEAP8[$212>>0] = $215;
+ $216 = ($210>>>0)>(599);
+ if ($216) {
+  HEAP32[18149] = 0;
+  _mix_pool($213);
+  $217 = HEAP32[18138]|0;
+  $218 = (($217) + 1)|0;
+  HEAP32[18138] = $218;
+  HEAP32[18150] = 0;
+ }
+ $219 = HEAP8[$208>>0]|0;
+ $220 = HEAP32[18133]|0;
+ $221 = HEAP32[18149]|0;
+ $222 = (($221) + 1)|0;
+ HEAP32[18149] = $222;
+ $223 = (($220) + ($221)|0);
+ $224 = HEAP8[$223>>0]|0;
+ $225 = $224 ^ $219;
+ HEAP8[$223>>0] = $225;
+ $226 = ($222>>>0)>(599);
+ if ($226) {
+  HEAP32[18149] = 0;
+  _mix_pool($220);
+  $227 = HEAP32[18138]|0;
+  $228 = (($227) + 1)|0;
+  HEAP32[18138] = $228;
+  HEAP32[18150] = 1;
+ }
+ $229 = HEAP32[18132]|0;
+ $230 = ($229|0)==(0);
+ if ($230) {
+  __gcry_assert_failed(67953,67968,1074,68003);
+  // unreachable;
+ }
+ $36 = ((($0)) + 4|0);
+ $37 = HEAP32[18142]|0;
+ $38 = (($37) + 4)|0;
+ HEAP32[18142] = $38;
+ $39 = HEAP32[18141]|0;
+ $40 = (($39) + 1)|0;
+ HEAP32[18141] = $40;
+ $41 = ((($36)) + 1|0);
+ $42 = HEAP8[$36>>0]|0;
+ $43 = HEAP32[18133]|0;
+ $44 = HEAP32[18149]|0;
+ $45 = (($44) + 1)|0;
+ HEAP32[18149] = $45;
+ $46 = (($43) + ($44)|0);
+ $47 = HEAP8[$46>>0]|0;
+ $48 = $47 ^ $42;
+ HEAP8[$46>>0] = $48;
+ $49 = ($45>>>0)>(599);
+ if ($49) {
+  HEAP32[18149] = 0;
+  _mix_pool($43);
+  $50 = HEAP32[18138]|0;
+  $51 = (($50) + 1)|0;
+  HEAP32[18138] = $51;
+  HEAP32[18150] = 0;
+  $$pre16 = HEAP32[18133]|0;
+  $$pre17 = HEAP32[18149]|0;
+  $55 = $$pre17;$57 = $$pre16;
+ } else {
+  $55 = $45;$57 = $43;
+ }
+ $52 = ((($36)) + 2|0);
+ $53 = HEAP8[$41>>0]|0;
+ $54 = (($55) + 1)|0;
+ HEAP32[18149] = $54;
+ $56 = (($57) + ($55)|0);
+ $58 = HEAP8[$56>>0]|0;
+ $59 = $58 ^ $53;
+ HEAP8[$56>>0] = $59;
+ $60 = ($54>>>0)>(599);
+ if ($60) {
+  HEAP32[18149] = 0;
+  _mix_pool($57);
+  $181 = HEAP32[18138]|0;
+  $182 = (($181) + 1)|0;
+  HEAP32[18138] = $182;
+  HEAP32[18150] = 0;
+  $$pre18 = HEAP32[18133]|0;
+  $$pre19 = HEAP32[18149]|0;
+  $186 = $$pre19;$188 = $$pre18;
+ } else {
+  $186 = $54;$188 = $57;
+ }
+ $183 = ((($36)) + 3|0);
+ $184 = HEAP8[$52>>0]|0;
+ $185 = (($186) + 1)|0;
+ HEAP32[18149] = $185;
+ $187 = (($188) + ($186)|0);
+ $189 = HEAP8[$187>>0]|0;
+ $190 = $189 ^ $184;
+ HEAP8[$187>>0] = $190;
+ $191 = ($185>>>0)>(599);
+ if ($191) {
+  HEAP32[18149] = 0;
+  _mix_pool($188);
+  $192 = HEAP32[18138]|0;
+  $193 = (($192) + 1)|0;
+  HEAP32[18138] = $193;
+  HEAP32[18150] = 0;
+ }
+ $194 = HEAP8[$183>>0]|0;
+ $195 = HEAP32[18133]|0;
+ $196 = HEAP32[18149]|0;
+ $197 = (($196) + 1)|0;
+ HEAP32[18149] = $197;
+ $198 = (($195) + ($196)|0);
+ $199 = HEAP8[$198>>0]|0;
+ $200 = $199 ^ $194;
+ HEAP8[$198>>0] = $200;
+ $201 = ($197>>>0)>(599);
+ if ($201) {
+  HEAP32[18149] = 0;
+  _mix_pool($195);
+  $202 = HEAP32[18138]|0;
+  $203 = (($202) + 1)|0;
+  HEAP32[18138] = $203;
+  HEAP32[18150] = 1;
+ }
+ (_getrusage(0,$1)|0);
+ $204 = HEAP32[18132]|0;
+ $205 = ($204|0)==(0);
+ if ($205) {
+  __gcry_assert_failed(67953,67968,1074,68003);
+  // unreachable;
+ }
+ $61 = HEAP32[18142]|0;
+ $62 = (($61) + 136)|0;
+ HEAP32[18142] = $62;
+ $63 = HEAP32[18141]|0;
+ $64 = (($63) + 1)|0;
+ HEAP32[18141] = $64;
+ $$01113$us$i3 = $1;$77 = 135;
+ while(1) {
+  $65 = ((($$01113$us$i3)) + 1|0);
+  $66 = HEAP8[$$01113$us$i3>>0]|0;
+  $67 = HEAP32[18133]|0;
+  $68 = HEAP32[18149]|0;
+  $69 = (($68) + 1)|0;
+  HEAP32[18149] = $69;
+  $70 = (($67) + ($68)|0);
+  $71 = HEAP8[$70>>0]|0;
+  $72 = $71 ^ $66;
+  HEAP8[$70>>0] = $72;
+  $73 = ($69>>>0)>(599);
+  if ($73) {
+   HEAP32[18149] = 0;
+   _mix_pool($67);
+   $74 = HEAP32[18138]|0;
+   $75 = (($74) + 1)|0;
+   HEAP32[18138] = $75;
+   $76 = ($77|0)==(0);
+   $78 = $76&1;
+   HEAP32[18150] = $78;
+  }
+  $79 = (($77) + -1)|0;
+  $80 = ($77|0)==(0);
+  if ($80) {
+   break;
+  } else {
+   $$01113$us$i3 = $65;$77 = $79;
+  }
+ }
+ $81 = (_time((0|0))|0);
+ HEAP32[$2>>2] = $81;
+ $82 = HEAP32[18132]|0;
+ $83 = ($82|0)==(0);
+ $84 = $81 >>> 8;
+ $85 = $84&255;
+ $86 = $81 >>> 16;
+ $87 = $86&255;
+ if ($83) {
+  __gcry_assert_failed(67953,67968,1074,68003);
+  // unreachable;
+ }
+ $88 = $81&255;
+ $89 = HEAP32[18142]|0;
+ $90 = (($89) + 4)|0;
+ HEAP32[18142] = $90;
+ $91 = HEAP32[18141]|0;
+ $92 = (($91) + 1)|0;
+ HEAP32[18141] = $92;
+ $93 = HEAP32[18133]|0;
+ $94 = HEAP32[18149]|0;
+ $95 = (($94) + 1)|0;
+ HEAP32[18149] = $95;
+ $96 = (($93) + ($94)|0);
+ $97 = HEAP8[$96>>0]|0;
+ $98 = $97 ^ $88;
+ HEAP8[$96>>0] = $98;
+ $99 = ($95>>>0)>(599);
+ if ($99) {
+  HEAP32[18149] = 0;
+  _mix_pool($93);
+  $100 = HEAP32[18138]|0;
+  $101 = (($100) + 1)|0;
+  HEAP32[18138] = $101;
+  HEAP32[18150] = 0;
+  $$pre20 = HEAP32[18133]|0;
+  $$pre21 = HEAP32[18149]|0;
+  $103 = $$pre21;$105 = $$pre20;
+ } else {
+  $103 = $95;$105 = $93;
+ }
+ $102 = (($103) + 1)|0;
+ HEAP32[18149] = $102;
+ $104 = (($105) + ($103)|0);
+ $106 = HEAP8[$104>>0]|0;
+ $107 = $106 ^ $85;
+ HEAP8[$104>>0] = $107;
+ $108 = ($102>>>0)>(599);
+ if ($108) {
+  HEAP32[18149] = 0;
+  _mix_pool($105);
+  $155 = HEAP32[18138]|0;
+  $156 = (($155) + 1)|0;
+  HEAP32[18138] = $156;
+  HEAP32[18150] = 0;
+  $$pre22 = HEAP32[18133]|0;
+  $$pre23 = HEAP32[18149]|0;
+  $159 = $$pre23;$161 = $$pre22;
+ } else {
+  $159 = $102;$161 = $105;
+ }
+ $157 = ((($2)) + 3|0);
+ $158 = (($159) + 1)|0;
+ HEAP32[18149] = $158;
+ $160 = (($161) + ($159)|0);
+ $162 = HEAP8[$160>>0]|0;
+ $163 = $162 ^ $87;
+ HEAP8[$160>>0] = $163;
+ $164 = ($158>>>0)>(599);
+ if ($164) {
+  HEAP32[18149] = 0;
+  _mix_pool($161);
+  $165 = HEAP32[18138]|0;
+  $166 = (($165) + 1)|0;
+  HEAP32[18138] = $166;
+  HEAP32[18150] = 0;
+ }
+ $167 = HEAP8[$157>>0]|0;
+ $168 = HEAP32[18133]|0;
+ $169 = HEAP32[18149]|0;
+ $170 = (($169) + 1)|0;
+ HEAP32[18149] = $170;
+ $171 = (($168) + ($169)|0);
+ $172 = HEAP8[$171>>0]|0;
+ $173 = $172 ^ $167;
+ HEAP8[$171>>0] = $173;
+ $174 = ($170>>>0)>(599);
+ if ($174) {
+  HEAP32[18149] = 0;
+  _mix_pool($168);
+  $175 = HEAP32[18138]|0;
+  $176 = (($175) + 1)|0;
+  HEAP32[18138] = $176;
+  HEAP32[18150] = 1;
+ }
+ $110 = (_clock()|0);
+ HEAP32[$3>>2] = $110;
+ $177 = HEAP32[18132]|0;
+ $178 = ($177|0)==(0);
+ $179 = $110 >>> 8;
+ $130 = $179&255;
+ $180 = $110 >>> 16;
+ $141 = $180&255;
+ if ($178) {
+  __gcry_assert_failed(67953,67968,1074,68003);
+  // unreachable;
+ }
+ $109 = $110&255;
+ $111 = HEAP32[18142]|0;
+ $112 = (($111) + 4)|0;
+ HEAP32[18142] = $112;
+ $113 = HEAP32[18141]|0;
+ $114 = (($113) + 1)|0;
+ HEAP32[18141] = $114;
+ $115 = HEAP32[18133]|0;
+ $116 = HEAP32[18149]|0;
+ $117 = (($116) + 1)|0;
+ HEAP32[18149] = $117;
+ $118 = (($115) + ($116)|0);
+ $119 = HEAP8[$118>>0]|0;
+ $120 = $119 ^ $109;
+ HEAP8[$118>>0] = $120;
+ $121 = ($117>>>0)>(599);
+ if ($121) {
+  HEAP32[18149] = 0;
+  _mix_pool($115);
+  $122 = HEAP32[18138]|0;
+  $123 = (($122) + 1)|0;
+  HEAP32[18138] = $123;
+  HEAP32[18150] = 0;
+  $$pre24 = HEAP32[18133]|0;
+  $$pre25 = HEAP32[18149]|0;
+  $125 = $$pre25;$127 = $$pre24;
+ } else {
+  $125 = $117;$127 = $115;
+ }
+ $124 = (($125) + 1)|0;
+ HEAP32[18149] = $124;
+ $126 = (($127) + ($125)|0);
+ $128 = HEAP8[$126>>0]|0;
+ $129 = $128 ^ $130;
+ HEAP8[$126>>0] = $129;
+ $131 = ($124>>>0)>(599);
+ if ($131) {
+  HEAP32[18149] = 0;
+  _mix_pool($127);
+  $132 = HEAP32[18138]|0;
+  $133 = (($132) + 1)|0;
+  HEAP32[18138] = $133;
+  HEAP32[18150] = 0;
+  $$pre26 = HEAP32[18133]|0;
+  $$pre27 = HEAP32[18149]|0;
+  $136 = $$pre27;$138 = $$pre26;
+ } else {
+  $136 = $124;$138 = $127;
+ }
+ $134 = ((($3)) + 3|0);
+ $135 = (($136) + 1)|0;
+ HEAP32[18149] = $135;
+ $137 = (($138) + ($136)|0);
+ $139 = HEAP8[$137>>0]|0;
+ $140 = $139 ^ $141;
+ HEAP8[$137>>0] = $140;
+ $142 = ($135>>>0)>(599);
+ if ($142) {
+  HEAP32[18149] = 0;
+  _mix_pool($138);
+  $143 = HEAP32[18138]|0;
+  $144 = (($143) + 1)|0;
+  HEAP32[18138] = $144;
+  HEAP32[18150] = 0;
+ }
+ $145 = HEAP8[$134>>0]|0;
+ $146 = HEAP32[18133]|0;
+ $147 = HEAP32[18149]|0;
+ $148 = (($147) + 1)|0;
+ HEAP32[18149] = $148;
+ $149 = (($146) + ($147)|0);
+ $150 = HEAP8[$149>>0]|0;
+ $151 = $150 ^ $145;
+ HEAP8[$149>>0] = $151;
+ $152 = ($148>>>0)>(599);
+ if (!($152)) {
+  STACKTOP = sp;return;
+ }
+ HEAP32[18149] = 0;
+ _mix_pool($146);
+ $153 = HEAP32[18138]|0;
+ $154 = (($153) + 1)|0;
+ HEAP32[18138] = $154;
+ HEAP32[18150] = 1;
+ STACKTOP = sp;return;
+}
+function __gcry_rngcsprng_set_seed_file($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[18152]|0;
+ $2 = ($1|0)==(0|0);
+ if ($2) {
+  $3 = (__gcry_xstrdup($0)|0);
+  HEAP32[18152] = $3;
+  return;
+ } else {
+  __gcry_bug(67968,673,68397);
+  // unreachable;
+ }
+}
+function __gcry_rngcsprng_update_seed_file() {
+ var $$02328 = 0, $$02427 = 0, $$029 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, 
$12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, 
$20 = 0, $21 = 0, $22 = 0, $23 = 0;
+ var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, 
$31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 
0, $4 = 0, $40 = 0, $41 = 0;
+ var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, 
$5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, 
$58 = 0, $59 = 0, $6 = 0;
+ var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, 
$68 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $or$cond = 0, $or$cond3 = 0, 
$vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer12 = 0, $vararg_buffer16 
= 0, $vararg_buffer20 = 0;
+ var $vararg_buffer24 = 0, $vararg_buffer28 = 0, $vararg_buffer4 = 0, 
$vararg_buffer7 = 0, $vararg_buffer9 = 0, $vararg_ptr15 = 0, $vararg_ptr19 = 0, 
$vararg_ptr23 = 0, $vararg_ptr27 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(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;
+ $0 = HEAP32[18131]|0;
+ $1 = ($0|0)==(0);
+ if ($1) {
+  HEAP32[18131] = 1;
+ }
+ $2 = (_gpgrt_lock_lock(40208)|0);
+ $3 = ($2|0)==(0);
+ if (!($3)) {
+  $4 = (_gpg_strerror($2)|0);
+  HEAP32[$vararg_buffer>>2] = $4;
+  __gcry_log_fatal(67701,$vararg_buffer);
+  // unreachable;
+ }
+ HEAP32[18132] = 1;
+ $5 = HEAP32[18152]|0;
+ $6 = ($5|0)!=(0|0);
+ $7 = HEAP32[18133]|0;
+ $8 = ($7|0)!=(0|0);
+ $or$cond = $6 & $8;
+ $9 = HEAP32[18137]|0;
+ $10 = ($9|0)!=(0);
+ $or$cond3 = $or$cond & $10;
+ if (!($or$cond3)) {
+  HEAP32[18132] = 0;
+  $11 = (_gpgrt_lock_unlock(40208)|0);
+  $12 = ($11|0)==(0);
+  if ($12) {
+   STACKTOP = sp;return;
+  } else {
+   $13 = (_gpg_strerror($11)|0);
+   HEAP32[$vararg_buffer1>>2] = $13;
+   __gcry_log_fatal(67776,$vararg_buffer1);
+   // unreachable;
+  }
+ }
+ $14 = HEAP32[18153]|0;
+ $15 = ($14|0)==(0);
+ if ($15) {
+  HEAP32[18132] = 0;
+  $16 = (_gpgrt_lock_unlock(40208)|0);
+  $17 = ($16|0)==(0);
+  if (!($17)) {
+   $18 = (_gpg_strerror($16)|0);
+   HEAP32[$vararg_buffer4>>2] = $18;
+   __gcry_log_fatal(67776,$vararg_buffer4);
+   // unreachable;
+  }
+  $19 = (__gcry_gettext(68427)|0);
+  __gcry_log_info($19,$vararg_buffer7);
+  STACKTOP = sp;return;
+ }
+ $20 = HEAP32[18135]|0;
+ $$02328 = $7;$$02427 = $20;$$029 = 0;
+ while(1) {
+  $21 = HEAP32[$$02328>>2]|0;
+  $22 = (($21) + -1515870811)|0;
+  HEAP32[$$02427>>2] = $22;
+  $23 = (($$029) + 1)|0;
+  $24 = ((($$02427)) + 4|0);
+  $25 = ((($$02328)) + 4|0);
+  $exitcond = ($23|0)==(150);
+  if ($exitcond) {
+   break;
+  } else {
+   $$02328 = $25;$$02427 = $24;$$029 = $23;
+  }
+ }
+ _mix_pool($7);
+ $26 = HEAP32[18138]|0;
+ $27 = (($26) + 1)|0;
+ HEAP32[18138] = $27;
+ $28 = HEAP32[18135]|0;
+ _mix_pool($28);
+ $29 = HEAP32[18143]|0;
+ $30 = (($29) + 1)|0;
+ HEAP32[18143] = $30;
+ $31 = HEAP32[18152]|0;
+ HEAP32[$vararg_buffer9>>2] = 384;
+ $32 = (_open($31,65,$vararg_buffer9)|0);
+ $33 = ($32|0)==(-1);
+ do {
+  if ($33) {
+   $34 = (__gcry_gettext(68463)|0);
+   $35 = HEAP32[18152]|0;
+   $36 = (___errno_location()|0);
+   $37 = HEAP32[$36>>2]|0;
+   $38 = (_strerror($37)|0);
+   HEAP32[$vararg_buffer12>>2] = $35;
+   $vararg_ptr15 = ((($vararg_buffer12)) + 4|0);
+   HEAP32[$vararg_ptr15>>2] = $38;
+   __gcry_log_info($34,$vararg_buffer12);
+  } else {
+   $39 = HEAP32[18152]|0;
+   $40 = (_lock_seed_file($32,$39,1)|0);
+   $41 = ($40|0)==(0);
+   if (!($41)) {
+    (_close($32)|0);
+    break;
+   }
+   $42 = (_ftruncate($32,0)|0);
+   $43 = ($42|0)==(0);
+   if (!($43)) {
+    $44 = (__gcry_gettext(68486)|0);
+    $45 = HEAP32[18152]|0;
+    $46 = (___errno_location()|0);
+    $47 = HEAP32[$46>>2]|0;
+    $48 = (_strerror($47)|0);
+    HEAP32[$vararg_buffer16>>2] = $45;
+    $vararg_ptr19 = ((($vararg_buffer16)) + 4|0);
+    HEAP32[$vararg_ptr19>>2] = $48;
+    __gcry_log_info($44,$vararg_buffer16);
+    (_close($32)|0);
+    break;
+   }
+   L32: while(1) {
+    $49 = HEAP32[18135]|0;
+    $50 = (_write($32,$49,600)|0);
+    switch ($50|0) {
+    case 600:  {
+     break L32;
+     break;
+    }
+    case -1:  {
+     break;
+    }
+    default: {
+     label = 23;
+     break L32;
+    }
+    }
+    $51 = (___errno_location()|0);
+    $52 = HEAP32[$51>>2]|0;
+    $53 = ($52|0)==(4);
+    if (!($53)) {
+     label = 23;
+     break;
+    }
+   }
+   if ((label|0) == 23) {
+    $54 = (__gcry_gettext(68486)|0);
+    $55 = HEAP32[18152]|0;
+    $56 = (___errno_location()|0);
+    $57 = HEAP32[$56>>2]|0;
+    $58 = (_strerror($57)|0);
+    HEAP32[$vararg_buffer20>>2] = $55;
+    $vararg_ptr23 = ((($vararg_buffer20)) + 4|0);
+    HEAP32[$vararg_ptr23>>2] = $58;
+    __gcry_log_info($54,$vararg_buffer20);
+   }
+   $59 = (_close($32)|0);
+   $60 = ($59|0)==(0);
+   if (!($60)) {
+    $61 = (__gcry_gettext(68508)|0);
+    $62 = HEAP32[18152]|0;
+    $63 = (___errno_location()|0);
+    $64 = HEAP32[$63>>2]|0;
+    $65 = (_strerror($64)|0);
+    HEAP32[$vararg_buffer24>>2] = $62;
+    $vararg_ptr27 = ((($vararg_buffer24)) + 4|0);
+    HEAP32[$vararg_ptr27>>2] = $65;
+    __gcry_log_info($61,$vararg_buffer24);
+   }
+  }
+ } while(0);
+ HEAP32[18132] = 0;
+ $66 = (_gpgrt_lock_unlock(40208)|0);
+ $67 = ($66|0)==(0);
+ if ($67) {
+  STACKTOP = sp;return;
+ } else {
+  $68 = (_gpg_strerror($66)|0);
+  HEAP32[$vararg_buffer28>>2] = $68;
+  __gcry_log_fatal(67776,$vararg_buffer28);
+  // unreachable;
+ }
+}
+function __gcry_rngcsprng_fast_poll() {
+ var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, 
$9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $0 = HEAP32[18131]|0;
+ $1 = ($0|0)==(0);
+ if ($1) {
+  HEAP32[18131] = 1;
+ }
+ $2 = (_gpgrt_lock_lock(40208)|0);
+ $3 = ($2|0)==(0);
+ if (!($3)) {
+  $4 = (_gpg_strerror($2)|0);
+  HEAP32[$vararg_buffer>>2] = $4;
+  __gcry_log_fatal(67701,$vararg_buffer);
+  // unreachable;
+ }
+ HEAP32[18132] = 1;
+ $5 = HEAP32[18133]|0;
+ $6 = ($5|0)==(0|0);
+ if (!($6)) {
+  _do_fast_random_poll();
+ }
+ HEAP32[18132] = 0;
+ $7 = (_gpgrt_lock_unlock(40208)|0);
+ $8 = ($7|0)==(0);
+ if ($8) {
+  STACKTOP = sp;return;
+ } else {
+  $9 = (_gpg_strerror($7)|0);
+  HEAP32[$vararg_buffer1>>2] = $9;
+  __gcry_log_fatal(67776,$vararg_buffer1);
+  // unreachable;
+ }
+}
+function __gcry_rngfips_initialize($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, 
$25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, 
$43 = 0, $44 = 0, $45 = 0;
+ var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $63 = 0;
+ var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $8 = 0, $9 
= 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, 
$vararg_buffer4 = 0, $vararg_buffer7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(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;
+ $1 = HEAP32[18158]|0;
+ $2 = ($1|0)==(0);
+ if ($2) {
+  HEAP32[18158] = 1;
+  HEAP32[18159] = 0;
+ }
+ $3 = ($0|0)==(0);
+ if ($3) {
+  STACKTOP = sp;return;
+ }
+ $4 = (_gpgrt_lock_lock(40256)|0);
+ $5 = ($4|0)==(0);
+ if (!($5)) {
+  $6 = (_gpg_strerror($4)|0);
+  HEAP32[$vararg_buffer>>2] = $6;
+  __gcry_log_fatal(68530,$vararg_buffer);
+  // unreachable;
+ }
+ HEAP32[18159] = 1;
+ $7 = HEAP32[18160]|0;
+ $8 = ($7|0)==(0|0);
+ if ($8) {
+  $9 = (__gcry_xmalloc_secure(48)|0);
+  HEAP32[18160] = $9;
+  $10 = (__gcry_xcalloc(1,68)|0);
+  HEAP32[18161] = $10;
+  HEAP8[$10>>0] = 17;
+  $11 = ((($10)) + 16|0);
+  HEAP8[$11>>0] = 42;
+  $12 = ((($10)) + 33|0);
+  HEAP8[$12>>0] = -119;
+  $13 = ((($10)) + 50|0);
+  HEAP8[$13>>0] = -4;
+  $14 = (__gcry_xcalloc_secure(1,68)|0);
+  HEAP32[18162] = $14;
+  HEAP8[$14>>0] = 17;
+  $15 = ((($14)) + 16|0);
+  HEAP8[$15>>0] = 42;
+  $16 = ((($14)) + 33|0);
+  HEAP8[$16>>0] = -119;
+  $17 = ((($14)) + 50|0);
+  HEAP8[$17>>0] = -4;
+  $18 = (__gcry_xcalloc_secure(1,68)|0);
+  HEAP32[18163] = $18;
+  HEAP8[$18>>0] = 17;
+  $19 = ((($18)) + 16|0);
+  HEAP8[$19>>0] = 42;
+  $20 = ((($18)) + 33|0);
+  HEAP8[$20>>0] = -119;
+  $21 = ((($18)) + 50|0);
+  HEAP8[$21>>0] = -4;
+ } else {
+  $22 = HEAP32[18161]|0;
+  $23 = ((($22)) + 52|0);
+  $24 = HEAP32[$23>>2]|0;
+  $25 = ($24|0)==(0|0);
+  if (!($25)) {
+   __gcry_assert_failed(68566,68594,767,68608);
+   // unreachable;
+  }
+  $26 = HEAP32[18162]|0;
+  $27 = ((($26)) + 52|0);
+  $28 = HEAP32[$27>>2]|0;
+  $29 = ($28|0)==(0|0);
+  if (!($29)) {
+   __gcry_assert_failed(68633,68594,768,68608);
+   // unreachable;
+  }
+  $30 = HEAP32[18163]|0;
+  $31 = ((($30)) + 52|0);
+  $32 = HEAP32[$31>>2]|0;
+  $33 = ($32|0)==(0|0);
+  if (!($33)) {
+   __gcry_assert_failed(68663,68594,769,68608);
+   // unreachable;
+  }
+  $34 = HEAP8[$22>>0]|0;
+  $35 = ($34<<24>>24)==(17);
+  if (!($35)) {
+   HEAP32[$vararg_buffer1>>2] = $22;
+   __gcry_log_fatal(68696,$vararg_buffer1);
+   // unreachable;
+  }
+  $36 = ((($22)) + 16|0);
+  $37 = HEAP8[$36>>0]|0;
+  $38 = ($37<<24>>24)==(42);
+  if (!($38)) {
+   HEAP32[$vararg_buffer1>>2] = $22;
+   __gcry_log_fatal(68696,$vararg_buffer1);
+   // unreachable;
+  }
+  $39 = ((($22)) + 33|0);
+  $40 = HEAP8[$39>>0]|0;
+  $41 = ($40<<24>>24)==(-119);
+  if (!($41)) {
+   HEAP32[$vararg_buffer1>>2] = $22;
+   __gcry_log_fatal(68696,$vararg_buffer1);
+   // unreachable;
+  }
+  $42 = ((($22)) + 50|0);
+  $43 = HEAP8[$42>>0]|0;
+  $44 = ($43<<24>>24)==(-4);
+  if (!($44)) {
+   HEAP32[$vararg_buffer1>>2] = $22;
+   __gcry_log_fatal(68696,$vararg_buffer1);
+   // unreachable;
+  }
+  $45 = HEAP8[$26>>0]|0;
+  $46 = ($45<<24>>24)==(17);
+  if (!($46)) {
+   HEAP32[$vararg_buffer4>>2] = $26;
+   __gcry_log_fatal(68696,$vararg_buffer4);
+   // unreachable;
+  }
+  $47 = ((($26)) + 16|0);
+  $48 = HEAP8[$47>>0]|0;
+  $49 = ($48<<24>>24)==(42);
+  if (!($49)) {
+   HEAP32[$vararg_buffer4>>2] = $26;
+   __gcry_log_fatal(68696,$vararg_buffer4);
+   // unreachable;
+  }
+  $50 = ((($26)) + 33|0);
+  $51 = HEAP8[$50>>0]|0;
+  $52 = ($51<<24>>24)==(-119);
+  if (!($52)) {
+   HEAP32[$vararg_buffer4>>2] = $26;
+   __gcry_log_fatal(68696,$vararg_buffer4);
+   // unreachable;
+  }
+  $53 = ((($26)) + 50|0);
+  $54 = HEAP8[$53>>0]|0;
+  $55 = ($54<<24>>24)==(-4);
+  if (!($55)) {
+   HEAP32[$vararg_buffer4>>2] = $26;
+   __gcry_log_fatal(68696,$vararg_buffer4);
+   // unreachable;
+  }
+  $56 = HEAP8[$30>>0]|0;
+  $57 = ($56<<24>>24)==(17);
+  if (!($57)) {
+   HEAP32[$vararg_buffer7>>2] = $30;
+   __gcry_log_fatal(68696,$vararg_buffer7);
+   // unreachable;
+  }
+  $58 = ((($30)) + 16|0);
+  $59 = HEAP8[$58>>0]|0;
+  $60 = ($59<<24>>24)==(42);
+  if (!($60)) {
+   HEAP32[$vararg_buffer7>>2] = $30;
+   __gcry_log_fatal(68696,$vararg_buffer7);
+   // unreachable;
+  }
+  $61 = ((($30)) + 33|0);
+  $62 = HEAP8[$61>>0]|0;
+  $63 = ($62<<24>>24)==(-119);
+  if (!($63)) {
+   HEAP32[$vararg_buffer7>>2] = $30;
+   __gcry_log_fatal(68696,$vararg_buffer7);
+   // unreachable;
+  }
+  $64 = ((($30)) + 50|0);
+  $65 = HEAP8[$64>>0]|0;
+  $66 = ($65<<24>>24)==(-4);
+  if (!($66)) {
+   HEAP32[$vararg_buffer7>>2] = $30;
+   __gcry_log_fatal(68696,$vararg_buffer7);
+   // unreachable;
+  }
+ }
+ HEAP32[18159] = 0;
+ $67 = (_gpgrt_lock_unlock(40256)|0);
+ $68 = ($67|0)==(0);
+ if ($68) {
+  STACKTOP = sp;return;
+ } else {
+  $69 = (_gpg_strerror($67)|0);
+  HEAP32[$vararg_buffer10>>2] = $69;
+  __gcry_log_fatal(68742,$vararg_buffer10);
+  // unreachable;
+ }
+}
+function __gcry_rngfips_close_fds() {
+ var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, 
$vararg_buffer1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $0 = (_gpgrt_lock_lock(40256)|0);
+ $1 = ($0|0)==(0);
+ if (!($1)) {
+  $2 = (_gpg_strerror($0)|0);
+  HEAP32[$vararg_buffer>>2] = $2;
+  __gcry_log_fatal(68530,$vararg_buffer);
+  // unreachable;
+ }
+ HEAP32[18159] = 1;
+ (__gcry_rndlinux_gather_random(0,0,0,0)|0);
+ HEAP32[18159] = 0;
+ $3 = (_gpgrt_lock_unlock(40256)|0);
+ $4 = ($3|0)==(0);
+ if ($4) {
+  STACKTOP = sp;return;
+ } else {
+  $5 = (_gpg_strerror($3)|0);
+  HEAP32[$vararg_buffer1>>2] = $5;
+  __gcry_log_fatal(68742,$vararg_buffer1);
+  // unreachable;
+ }
+}
+function __gcry_rngfips_dump_stats() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return;
+}
+function __gcry_rngfips_is_faked() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return 0;
+}
+function __gcry_rngfips_randomize($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ __gcry_rngfips_initialize(1);
+ $3 = (_gpgrt_lock_lock(40256)|0);
+ $4 = ($3|0)==(0);
+ if (!($4)) {
+  $5 = (_gpg_strerror($3)|0);
+  HEAP32[$vararg_buffer>>2] = $5;
+  __gcry_log_fatal(68530,$vararg_buffer);
+  // unreachable;
+ }
+ HEAP32[18159] = 1;
+ $6 = ($2|0)==(2);
+ if ($6) {
+  $7 = HEAP32[18163]|0;
+  _get_random($0,$1,$7);
+ } else {
+  $8 = HEAP32[18162]|0;
+  _get_random($0,$1,$8);
+ }
+ HEAP32[18159] = 0;
+ $9 = (_gpgrt_lock_unlock(40256)|0);
+ $10 = ($9|0)==(0);
+ if ($10) {
+  STACKTOP = sp;return;
+ } else {
+  $11 = (_gpg_strerror($9)|0);
+  HEAP32[$vararg_buffer1>>2] = $11;
+  __gcry_log_fatal(68742,$vararg_buffer1);
+  // unreachable;
+ }
+}
+function _get_random($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$mask = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 
= 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, 
$24 = 0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, 
$43 = 0, $44 = 0, $45 = 0;
+ var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, 
$vararg_buffer1 = 0, $vararg_buffer4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer4 = sp + 16|0;
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $3 = ($0|0)==(0|0);
+ if ($3) {
+  __gcry_assert_failed(69561,68594,685,69584);
+  // unreachable;
+ }
+ $4 = ($2|0)==(0|0);
+ if ($4) {
+  __gcry_assert_failed(68778,68594,686,69584);
+  // unreachable;
+ }
+ $5 = HEAP8[$2>>0]|0;
+ $6 = ($5<<24>>24)==(17);
+ if (!($6)) {
+  HEAP32[$vararg_buffer>>2] = $2;
+  __gcry_log_fatal(68696,$vararg_buffer);
+  // unreachable;
+ }
+ $7 = ((($2)) + 16|0);
+ $8 = HEAP8[$7>>0]|0;
+ $9 = ($8<<24>>24)==(42);
+ if (!($9)) {
+  HEAP32[$vararg_buffer>>2] = $2;
+  __gcry_log_fatal(68696,$vararg_buffer);
+  // unreachable;
+ }
+ $10 = ((($2)) + 33|0);
+ $11 = HEAP8[$10>>0]|0;
+ $12 = ($11<<24>>24)==(-119);
+ if (!($12)) {
+  HEAP32[$vararg_buffer>>2] = $2;
+  __gcry_log_fatal(68696,$vararg_buffer);
+  // unreachable;
+ }
+ $13 = ((($2)) + 50|0);
+ $14 = HEAP8[$13>>0]|0;
+ $15 = ($14<<24>>24)==(-4);
+ if (!($15)) {
+  HEAP32[$vararg_buffer>>2] = $2;
+  __gcry_log_fatal(68696,$vararg_buffer);
+  // unreachable;
+ }
+ $16 = ((($2)) + 4|0);
+ $17 = HEAP32[$16>>2]|0;
+ $18 = ($17|0)==(0|0);
+ do {
+  if ($18) {
+   $19 = HEAP32[18161]|0;
+   $20 = ($19|0)==($2|0);
+   $$sink = $20&1;
+   $21 = (_x931_generate_key($$sink)|0);
+   HEAP32[$16>>2] = $21;
+   $22 = ($21|0)==(0|0);
+   if ($22) {
+    __gcry_log_fatal(68840,$vararg_buffer4);
+    // unreachable;
+   } else {
+    $23 = (_getpid()|0);
+    $24 = ((($2)) + 60|0);
+    HEAP32[$24>>2] = $23;
+    break;
+   }
+  }
+ } while(0);
+ $25 = ((($2)) + 8|0);
+ $26 = HEAP8[$25>>0]|0;
+ $$mask = $26 & 1;
+ $27 = ($$mask<<24>>24)==(0);
+ if ($27) {
+  _x931_reseed($2);
+ }
+ $28 = ((($2)) + 60|0);
+ $29 = HEAP32[$28>>2]|0;
+ $30 = (_getpid()|0);
+ $31 = ($29|0)==($30|0);
+ if ($31) {
+  $32 = ((($2)) + 64|0);
+  $33 = HEAP32[$32>>2]|0;
+  $34 = (_getpid()|0);
+  $35 = ($33|0)==($34|0);
+  if ($35) {
+   $36 = (_x931_aes_driver($0,$1,$2)|0);
+   $37 = ($36|0)==(0);
+   if (!($37)) {
+    __gcry_log_fatal(68840,$vararg_buffer4);
+    // unreachable;
+   }
+   $38 = HEAP8[$2>>0]|0;
+   $39 = ($38<<24>>24)==(17);
+   if (!($39)) {
+    HEAP32[$vararg_buffer1>>2] = $2;
+    __gcry_log_fatal(68696,$vararg_buffer1);
+    // unreachable;
+   }
+   $40 = HEAP8[$7>>0]|0;
+   $41 = ($40<<24>>24)==(42);
+   if (!($41)) {
+    HEAP32[$vararg_buffer1>>2] = $2;
+    __gcry_log_fatal(68696,$vararg_buffer1);
+    // unreachable;
+   }
+   $42 = HEAP8[$10>>0]|0;
+   $43 = ($42<<24>>24)==(-119);
+   if (!($43)) {
+    HEAP32[$vararg_buffer1>>2] = $2;
+    __gcry_log_fatal(68696,$vararg_buffer1);
+    // unreachable;
+   }
+   $44 = HEAP8[$13>>0]|0;
+   $45 = ($44<<24>>24)==(-4);
+   if ($45) {
+    STACKTOP = sp;return;
+   } else {
+    HEAP32[$vararg_buffer1>>2] = $2;
+    __gcry_log_fatal(68696,$vararg_buffer1);
+    // unreachable;
+   }
+  }
+ }
+ __gcry_fips_signal_error(68594,714,69584,0,68786);
+ __gcry_log_fatal(68840,$vararg_buffer4);
+ // unreachable;
+}
+function _x931_generate_key($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$041$lcssa61 = 0, $$04152 = 0, $$042$lcssa60 = 0, $$04251 = 0, 
$$047 = 0, $$1 = 0, $$143 = 0, $$2 = 0, $$244 = 0, $$34549 = 0, $$350 = 0, $1 = 
0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0;
+ var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, 
$24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0;
+ var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, 
$42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $scevgep = 0, $vararg_buffer = 
0, $vararg_buffer1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $1 = sp + 12|0;
+ $2 = HEAP32[18159]|0;
+ $3 = ($2|0)==(0);
+ if ($3) {
+  __gcry_assert_failed(68869,68594,596,69203);
+  // unreachable;
+ }
+ $4 = (__gcry_cipher_open($1,7,1,1)|0);
+ $5 = ($4|0)==(0);
+ if (!($5)) {
+  $6 = (_gpg_strerror($4)|0);
+  HEAP32[$vararg_buffer>>2] = $6;
+  __gcry_log_error(69221,$vararg_buffer);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $7 = ($0|0)==(0);
+ if ($7) {
+  $10 = (_get_entropy()|0);
+  $$047 = $10;
+ } else {
+  $8 = (__gcry_xmalloc(16)|0);
+  $9 = HEAP32[18162]|0;
+  _get_random($8,16,$9);
+  $$047 = $8;
+ }
+ $11 = HEAP32[$1>>2]|0;
+ $12 = (__gcry_cipher_setkey($11,$$047,16)|0);
+ $13 = $$047;
+ $14 = $13 & 7;
+ $15 = ($14|0)==(0);
+ if ($15) {
+  $$041$lcssa61 = 16;$$042$lcssa60 = $$047;
+  label = 12;
+ } else {
+  $$04152 = 16;$$04251 = $$047;
+  while(1) {
+   HEAP8[$$04251>>0] = 0;
+   $16 = ((($$04251)) + 1|0);
+   $17 = (($$04152) + -1)|0;
+   $18 = $16;
+   $19 = $18 & 7;
+   $20 = ($19|0)!=(0);
+   $21 = ($17|0)!=(0);
+   $22 = $21 & $20;
+   if ($22) {
+    $$04152 = $17;$$04251 = $16;
+   } else {
+    break;
+   }
+  }
+  $23 = ($17>>>0)<(8);
+  if ($23) {
+   $$2 = $17;$$244 = $16;
+  } else {
+   $$041$lcssa61 = $17;$$042$lcssa60 = $16;
+   label = 12;
+  }
+ }
+ if ((label|0) == 12) {
+  $24 = (($$041$lcssa61) + -8)|0;
+  $25 = $24 & -8;
+  $26 = (($25) + 8)|0;
+  $$1 = $$041$lcssa61;$$143 = $$042$lcssa60;
+  while(1) {
+   $27 = $$143;
+   $28 = $27;
+   HEAP32[$28>>2] = 0;
+   $29 = (($27) + 4)|0;
+   $30 = $29;
+   HEAP32[$30>>2] = 0;
+   $31 = (($$1) + -8)|0;
+   $32 = ((($$143)) + 8|0);
+   $33 = ($31>>>0)>(7);
+   if ($33) {
+    $$1 = $31;$$143 = $32;
+   } else {
+    break;
+   }
+  }
+  $34 = (($24) - ($25))|0;
+  $scevgep = (($$042$lcssa60) + ($26)|0);
+  $$2 = $34;$$244 = $scevgep;
+ }
+ $35 = ($$2|0)==(0);
+ if (!($35)) {
+  $$34549 = $$244;$$350 = $$2;
+  while(1) {
+   HEAP8[$$34549>>0] = 0;
+   $36 = ((($$34549)) + 1|0);
+   $37 = (($$350) + -1)|0;
+   $38 = ($37|0)==(0);
+   if ($38) {
+    break;
+   } else {
+    $$34549 = $36;$$350 = $37;
+   }
+  }
+ }
+ __gcry_free($$047);
+ $39 = ($12|0)==(0);
+ if ($39) {
+  $42 = HEAP32[$1>>2]|0;
+  $$0 = $42;
+  STACKTOP = sp;return ($$0|0);
+ } else {
+  $40 = (_gpg_strerror($12)|0);
+  HEAP32[$vararg_buffer1>>2] = $40;
+  __gcry_log_error(69264,$vararg_buffer1);
+  $41 = HEAP32[$1>>2]|0;
+  __gcry_cipher_close($41);
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ return (0)|0;
+}
+function _x931_reseed($0) {
+ $0 = $0|0;
+ var $$0$lcssa14$i = 0, $$035$lcssa13$i = 0, $$0354$i = 0, $$05$i = 0, $$1$i = 
0, $$136$i = 0, $$2$i = 0, $$237$i = 0, $$33$i = 0, $$3382$i = 0, $1 = 0, $10 = 
0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
+ var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, 
$26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, 
$34 = 0, $35 = 0, $36 = 0;
+ var $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$scevgep$i = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[18159]|0;
+ $2 = ($1|0)==(0);
+ if ($2) {
+  __gcry_assert_failed(68869,68594,658,69085);
+  // unreachable;
+ }
+ $3 = HEAP32[18161]|0;
+ $4 = ($3|0)==($0|0);
+ $5 = ((($0)) + 17|0);
+ if ($4) {
+  $6 = HEAP32[18162]|0;
+  _get_random($5,16,$6);
+  $34 = ((($0)) + 8|0);
+  $35 = HEAP8[$34>>0]|0;
+  $36 = $35 | 1;
+  HEAP8[$34>>0] = $36;
+  $37 = (_getpid()|0);
+  $38 = ((($0)) + 64|0);
+  HEAP32[$38>>2] = $37;
+  return;
+ }
+ $7 = (_get_entropy()|0);
+ dest=$5; src=$7; 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));
+ $8 = $7;
+ $9 = $8 & 7;
+ $10 = ($9|0)==(0);
+ if ($10) {
+  $$0$lcssa14$i = $7;$$035$lcssa13$i = 16;
+  label = 9;
+ } else {
+  $$0354$i = 16;$$05$i = $7;
+  while(1) {
+   HEAP8[$$05$i>>0] = 0;
+   $11 = ((($$05$i)) + 1|0);
+   $12 = (($$0354$i) + -1)|0;
+   $13 = $11;
+   $14 = $13 & 7;
+   $15 = ($14|0)!=(0);
+   $16 = ($12|0)!=(0);
+   $17 = $16 & $15;
+   if ($17) {
+    $$0354$i = $12;$$05$i = $11;
+   } else {
+    break;
+   }
+  }
+  $18 = ($12>>>0)<(8);
+  if ($18) {
+   $$2$i = $11;$$237$i = $12;
+  } else {
+   $$0$lcssa14$i = $11;$$035$lcssa13$i = $12;
+   label = 9;
+  }
+ }
+ if ((label|0) == 9) {
+  $19 = (($$035$lcssa13$i) + -8)|0;
+  $20 = $19 & -8;
+  $$1$i = $$0$lcssa14$i;$$136$i = $$035$lcssa13$i;
+  while(1) {
+   $21 = $$1$i;
+   $22 = $21;
+   HEAP32[$22>>2] = 0;
+   $23 = (($21) + 4)|0;
+   $24 = $23;
+   HEAP32[$24>>2] = 0;
+   $25 = (($$136$i) + -8)|0;
+   $26 = ((($$1$i)) + 8|0);
+   $27 = ($25>>>0)>(7);
+   if ($27) {
+    $$1$i = $26;$$136$i = $25;
+   } else {
+    break;
+   }
+  }
+  $28 = (($20) + 8)|0;
+  $29 = (($19) - ($20))|0;
+  $scevgep$i = (($$0$lcssa14$i) + ($28)|0);
+  $$2$i = $scevgep$i;$$237$i = $29;
+ }
+ $30 = ($$237$i|0)==(0);
+ if (!($30)) {
+  $$33$i = $$2$i;$$3382$i = $$237$i;
+  while(1) {
+   HEAP8[$$33$i>>0] = 0;
+   $31 = ((($$33$i)) + 1|0);
+   $32 = (($$3382$i) + -1)|0;
+   $33 = ($32|0)==(0);
+   if ($33) {
+    break;
+   } else {
+    $$33$i = $31;$$3382$i = $32;
+   }
+  }
+ }
+ __gcry_free($7);
+ $34 = ((($0)) + 8|0);
+ $35 = HEAP8[$34>>0]|0;
+ $36 = $35 | 1;
+ HEAP8[$34>>0] = $36;
+ $37 = (_getpid()|0);
+ $38 = ((($0)) + 64|0);
+ HEAP32[$38>>2] = $37;
+ return;
+}
+function _x931_aes_driver($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$0$lcssa122$i = 0, $$0108$i = 0, $$071$ph125 = 0, 
$$072$lcssa151 = 0, $$072115 = 0, $$073$lcssa150 = 0, $$073114 = 0, 
$$074$lcssa121$i = 0, $$074107$i = 0, $$078$lcssa124$i = 0, $$078$ph123 = 0, 
$$07897$i = 0, $$082$lcssa123$i = 0, $$08296$i = 0, $$1 = 0, $$1$i = 0, $$174 = 
0, $$175$i = 0, $$179$i = 0;
+ var $$183$i = 0, $$2 = 0, $$2$i = 0, $$275 = 0, $$276$i = 0, $$280$i = 0, 
$$284$i = 0, $$3103$i = 0, $$3119 = 0, $$376118 = 0, $$377102$i = 0, $$38195$i 
= 0, $$38594$i = 0, $$mask = 0, $$mask79 = 0, $10 = 0, $100 = 0, $101 = 0, $102 
= 0, $103 = 0;
+ var $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;
+ var $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, 
$136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0;
+ var $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, 
$147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, 
$154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0;
+ var $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 
= 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 
= 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0;
+ var $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 
= 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 
= 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0;
+ var $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 
= 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 
= 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0;
+ var $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 
= 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 
= 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0;
+ var $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, 
$238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, 
$245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0;
+ var $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 
= 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 
= 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0;
+ var $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 
= 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 
= 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0;
+ var $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 
= 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 
0, $30 = 0, $300 = 0, $301 = 0, $302 = 0;
+ var $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 
= 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 
= 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0;
+ var $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, 
$328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, 
$335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0;
+ var $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 
= 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 
= 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0;
+ var $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 
= 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 
= 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0;
+ var $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 
= 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, 
$42 = 0, $43 = 0, $44 = 0, $45 = 0;
+ var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $63 = 0;
+ var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, 
$71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 
0, $8 = 0, $80 = 0, $81 = 0;
+ var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, 
$9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, 
$98 = 0, $99 = 0, $or$cond = 0;
+ var $or$cond$i = 0, $or$cond3$i = 0, $or$cond5$i = 0, $or$cond7$i = 0, 
$or$cond82 = 0, $or$cond84 = 0, $scevgep = 0, $scevgep$i = 0, $scevgep120$i = 
0, $scevgep149 = 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; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(64|0);
+ $vararg_buffer7 = sp + 40|0;
+ $vararg_buffer4 = sp + 32|0;
+ $vararg_buffer1 = sp + 24|0;
+ $vararg_buffer = sp + 16|0;
+ $3 = sp + 48|0;
+ $4 = sp;
+ $5 = HEAP32[18159]|0;
+ $6 = ($5|0)==(0);
+ if ($6) {
+  __gcry_assert_failed(68869,68594,444,68888);
+  // unreachable;
+ }
+ $7 = ((($2)) + 4|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ($8|0)==(0|0);
+ if ($9) {
+  __gcry_assert_failed(68904,68594,445,68888);
+  // unreachable;
+ }
+ $10 = ((($2)) + 8|0);
+ $11 = HEAP8[$10>>0]|0;
+ $$mask = $11 & 1;
+ $12 = ($$mask<<24>>24)==(0);
+ if ($12) {
+  __gcry_assert_failed(68923,68594,446,68888);
+  // unreachable;
+ }
+ $13 = HEAP32[18160]|0;
+ $14 = ($13|0)==(0|0);
+ if ($14) {
+  __gcry_assert_failed(68942,68594,448,68888);
+  // unreachable;
+ }
+ $15 = ((($13)) + 16|0);
+ $16 = ((($13)) + 32|0);
+ $17 = ($1|0)==(0);
+ if ($17) {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $18 = ((($2)) + 52|0);
+ $19 = ((($2)) + 12|0);
+ $20 = ((($2)) + 17|0);
+ $21 = ((($2)) + 56|0);
+ $22 = ((($4)) + 12|0);
+ $23 = ((($4)) + 13|0);
+ $24 = ((($4)) + 14|0);
+ $25 = ((($4)) + 15|0);
+ $26 = ((($13)) + 1|0);
+ $27 = ((($2)) + 18|0);
+ $28 = ((($13)) + 17|0);
+ $29 = ((($13)) + 2|0);
+ $30 = ((($2)) + 19|0);
+ $31 = ((($13)) + 18|0);
+ $32 = ((($13)) + 3|0);
+ $33 = ((($2)) + 20|0);
+ $34 = ((($13)) + 19|0);
+ $35 = ((($13)) + 4|0);
+ $36 = ((($2)) + 21|0);
+ $37 = ((($13)) + 20|0);
+ $38 = ((($13)) + 5|0);
+ $39 = ((($2)) + 22|0);
+ $40 = ((($13)) + 21|0);
+ $41 = ((($13)) + 6|0);
+ $42 = ((($2)) + 23|0);
+ $43 = ((($13)) + 22|0);
+ $44 = ((($13)) + 7|0);
+ $45 = ((($2)) + 24|0);
+ $46 = ((($13)) + 23|0);
+ $47 = ((($13)) + 8|0);
+ $48 = ((($2)) + 25|0);
+ $49 = ((($13)) + 24|0);
+ $50 = ((($13)) + 9|0);
+ $51 = ((($2)) + 26|0);
+ $52 = ((($13)) + 25|0);
+ $53 = ((($13)) + 10|0);
+ $54 = ((($2)) + 27|0);
+ $55 = ((($13)) + 26|0);
+ $56 = ((($13)) + 11|0);
+ $57 = ((($2)) + 28|0);
+ $58 = ((($13)) + 27|0);
+ $59 = ((($13)) + 12|0);
+ $60 = ((($2)) + 29|0);
+ $61 = ((($13)) + 28|0);
+ $62 = ((($13)) + 13|0);
+ $63 = ((($2)) + 30|0);
+ $64 = ((($13)) + 29|0);
+ $65 = ((($13)) + 14|0);
+ $66 = ((($2)) + 31|0);
+ $67 = ((($13)) + 30|0);
+ $68 = ((($13)) + 15|0);
+ $69 = ((($2)) + 32|0);
+ $70 = ((($13)) + 31|0);
+ $71 = ((($3)) + 4|0);
+ $72 = ((($13)) + 33|0);
+ $73 = ((($13)) + 34|0);
+ $74 = ((($13)) + 35|0);
+ $75 = ((($13)) + 36|0);
+ $76 = ((($13)) + 37|0);
+ $77 = ((($13)) + 38|0);
+ $78 = ((($13)) + 39|0);
+ $79 = ((($13)) + 40|0);
+ $80 = ((($13)) + 41|0);
+ $81 = ((($13)) + 42|0);
+ $82 = ((($13)) + 43|0);
+ $83 = ((($13)) + 44|0);
+ $84 = ((($13)) + 45|0);
+ $85 = ((($13)) + 46|0);
+ $86 = ((($13)) + 47|0);
+ $87 = ((($4)) + 1|0);
+ $88 = ((($4)) + 2|0);
+ $89 = ((($4)) + 3|0);
+ $90 = ((($4)) + 4|0);
+ $91 = ((($4)) + 5|0);
+ $92 = ((($4)) + 6|0);
+ $93 = ((($4)) + 7|0);
+ $94 = ((($4)) + 8|0);
+ $95 = ((($4)) + 9|0);
+ $96 = ((($4)) + 10|0);
+ $97 = ((($4)) + 11|0);
+ $98 = $13;
+ $99 = $98 & 7;
+ $100 = ($99|0)==(0);
+ $101 = $15;
+ $102 = $101 & 7;
+ $103 = ($102|0)==(0);
+ $104 = ((($2)) + 51|0);
+ $105 = ((($2)) + 34|0);
+ $106 = $16;
+ $107 = $106 & 7;
+ $108 = ($107|0)==(0);
+ $$071$ph125 = $0;$$078$ph123 = $1;
+ L16: while(1) {
+  while(1) {
+   $109 = HEAP32[$18>>2]|0;
+   $110 = ($109|0)==(0|0);
+   if ($110) {
+    $111 = HEAP32[$19>>2]|0;
+    $112 = ($111>>>0)>(1000);
+    if ($112) {
+     _x931_reseed($2);
+     HEAP32[$19>>2] = 0;
+    }
+   }
+   $113 = HEAP32[18159]|0;
+   $114 = ($113|0)==(0);
+   if ($114) {
+    label = 16;
+    break L16;
+   }
+   $115 = HEAP32[$18>>2]|0;
+   $116 = ($115|0)==(0|0);
+   $117 = HEAP32[18161]|0;
+   $118 = ($117|0)==($2|0);
+   $or$cond$i = $116 | $118;
+   $119 = HEAP32[18162]|0;
+   $120 = ($119|0)==($2|0);
+   $or$cond3$i = $or$cond$i | $120;
+   $121 = HEAP32[18163]|0;
+   $122 = ($121|0)==($2|0);
+   $or$cond5$i = $or$cond3$i | $122;
+   if ($or$cond5$i) {
+    $132 = HEAP32[18164]|0;
+    $133 = ($132|0)==(0);
+    if ($133) {
+     $134 = (_getpid()|0);
+     HEAP32[18165] = $134;
+     $135 = (_getppid()|0);
+     HEAP32[18166] = $135;
+    }
+    $136 = (_gettimeofday(($3|0),(0|0))|0);
+    $137 = ($136|0)==(0);
+    if (!($137)) {
+     label = 22;
+     break L16;
+    }
+    $141 = HEAP32[$71>>2]|0;
+    $142 = $141 << 4;
+    $143 = HEAP32[$3>>2]|0;
+    $144 = HEAP32[18164]|0;
+    $145 = ($143|0)==($144|0);
+    $146 = HEAP32[18167]|0;
+    $147 = ($142|0)==($146|0);
+    $or$cond7$i = $145 & $147;
+    if ($or$cond7$i) {
+     $148 = HEAP16[36660]|0;
+     $149 = (($148) + 1)<<16>>16;
+     $150 = $149 & 4095;
+     HEAP16[36660] = $150;
+     $163 = $150;
+    } else {
+     HEAP16[36660] = 0;
+     HEAP32[18164] = $143;
+     HEAP32[18167] = $142;
+     $163 = 0;
+    }
+    $151 = $143 >>> 24;
+    $152 = $151&255;
+    HEAP8[$4>>0] = $152;
+    $153 = $143 >>> 16;
+    $154 = $153&255;
+    HEAP8[$87>>0] = $154;
+    $155 = $143 >>> 8;
+    $156 = $155&255;
+    HEAP8[$88>>0] = $156;
+    $157 = $143&255;
+    HEAP8[$89>>0] = $157;
+    $158 = $141 >>> 12;
+    $159 = $158&255;
+    HEAP8[$90>>0] = $159;
+    $160 = $141 >>> 4;
+    $161 = $160&255;
+    HEAP8[$91>>0] = $161;
+    $162 = $163&65535;
+    $164 = $162 >>> 8;
+    $165 = $164 & 15;
+    $166 = $165 | $142;
+    $167 = $166&255;
+    HEAP8[$92>>0] = $167;
+    $168 = $163&255;
+    HEAP8[$93>>0] = $168;
+    $169 = HEAP32[18165]|0;
+    $170 = $169 >>> 24;
+    $171 = $170&255;
+    HEAP8[$94>>0] = $171;
+    $172 = $169 >>> 16;
+    $173 = $172&255;
+    HEAP8[$95>>0] = $173;
+    $174 = $169 >>> 8;
+    $175 = $174&255;
+    HEAP8[$96>>0] = $175;
+    $176 = $169&255;
+    HEAP8[$97>>0] = $176;
+    $177 = HEAP32[18166]|0;
+    $178 = $177 >>> 24;
+    $179 = $178&255;
+    HEAP8[$22>>0] = $179;
+    $180 = $177 >>> 16;
+    $181 = $180&255;
+    HEAP8[$23>>0] = $181;
+    $182 = $177 >>> 8;
+    $183 = $182&255;
+    HEAP8[$24>>0] = $183;
+    $184 = $177&255;
+    HEAP8[$25>>0] = $184;
+    $185 = (($177) + 1)|0;
+    HEAP32[18166] = $185;
+    $186 = ($185|0)==(0);
+    if ($186) {
+     $187 = (($169) + 1)|0;
+     HEAP32[18165] = $187;
+    }
+   } else {
+    dest=$4; src=$115; 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));
+    $123 = HEAP32[$21>>2]|0;
+    $124 = $123 >>> 24;
+    $125 = $124&255;
+    HEAP8[$22>>0] = $125;
+    $126 = $123 >>> 16;
+    $127 = $126&255;
+    HEAP8[$23>>0] = $127;
+    $128 = $123 >>> 8;
+    $129 = $128&255;
+    HEAP8[$24>>0] = $129;
+    $130 = $123&255;
+    HEAP8[$25>>0] = $130;
+    $131 = (($123) + 1)|0;
+    HEAP32[$21>>2] = $131;
+   }
+   $188 = HEAP32[$7>>2]|0;
+   $189 = (__gcry_cipher_encrypt($188,$13,16,$4,16)|0);
+   $190 = ($189|0)==(0);
+   if (!($190)) {
+    label = 30;
+    break L16;
+   }
+   $192 = HEAP8[$13>>0]|0;
+   $193 = HEAP8[$20>>0]|0;
+   $194 = $193 ^ $192;
+   HEAP8[$15>>0] = $194;
+   $195 = HEAP8[$26>>0]|0;
+   $196 = HEAP8[$27>>0]|0;
+   $197 = $196 ^ $195;
+   HEAP8[$28>>0] = $197;
+   $198 = HEAP8[$29>>0]|0;
+   $199 = HEAP8[$30>>0]|0;
+   $200 = $199 ^ $198;
+   HEAP8[$31>>0] = $200;
+   $201 = HEAP8[$32>>0]|0;
+   $202 = HEAP8[$33>>0]|0;
+   $203 = $202 ^ $201;
+   HEAP8[$34>>0] = $203;
+   $204 = HEAP8[$35>>0]|0;
+   $205 = HEAP8[$36>>0]|0;
+   $206 = $205 ^ $204;
+   HEAP8[$37>>0] = $206;
+   $207 = HEAP8[$38>>0]|0;
+   $208 = HEAP8[$39>>0]|0;
+   $209 = $208 ^ $207;
+   HEAP8[$40>>0] = $209;
+   $210 = HEAP8[$41>>0]|0;
+   $211 = HEAP8[$42>>0]|0;
+   $212 = $211 ^ $210;
+   HEAP8[$43>>0] = $212;
+   $213 = HEAP8[$44>>0]|0;
+   $214 = HEAP8[$45>>0]|0;
+   $215 = $214 ^ $213;
+   HEAP8[$46>>0] = $215;
+   $216 = HEAP8[$47>>0]|0;
+   $217 = HEAP8[$48>>0]|0;
+   $218 = $217 ^ $216;
+   HEAP8[$49>>0] = $218;
+   $219 = HEAP8[$50>>0]|0;
+   $220 = HEAP8[$51>>0]|0;
+   $221 = $220 ^ $219;
+   HEAP8[$52>>0] = $221;
+   $222 = HEAP8[$53>>0]|0;
+   $223 = HEAP8[$54>>0]|0;
+   $224 = $223 ^ $222;
+   HEAP8[$55>>0] = $224;
+   $225 = HEAP8[$56>>0]|0;
+   $226 = HEAP8[$57>>0]|0;
+   $227 = $226 ^ $225;
+   HEAP8[$58>>0] = $227;
+   $228 = HEAP8[$59>>0]|0;
+   $229 = HEAP8[$60>>0]|0;
+   $230 = $229 ^ $228;
+   HEAP8[$61>>0] = $230;
+   $231 = HEAP8[$62>>0]|0;
+   $232 = HEAP8[$63>>0]|0;
+   $233 = $232 ^ $231;
+   HEAP8[$64>>0] = $233;
+   $234 = HEAP8[$65>>0]|0;
+   $235 = HEAP8[$66>>0]|0;
+   $236 = $235 ^ $234;
+   HEAP8[$67>>0] = $236;
+   $237 = HEAP8[$68>>0]|0;
+   $238 = HEAP8[$69>>0]|0;
+   $239 = $238 ^ $237;
+   HEAP8[$70>>0] = $239;
+   $240 = (__gcry_cipher_encrypt($188,$16,16,$15,16)|0);
+   $241 = ($240|0)==(0);
+   if (!($241)) {
+    label = 32;
+    break L16;
+   }
+   $243 = HEAP8[$16>>0]|0;
+   $244 = HEAP8[$13>>0]|0;
+   $245 = $244 ^ $243;
+   HEAP8[$15>>0] = $245;
+   $246 = HEAP8[$72>>0]|0;
+   $247 = HEAP8[$26>>0]|0;
+   $248 = $247 ^ $246;
+   HEAP8[$28>>0] = $248;
+   $249 = HEAP8[$73>>0]|0;
+   $250 = HEAP8[$29>>0]|0;
+   $251 = $250 ^ $249;
+   HEAP8[$31>>0] = $251;
+   $252 = HEAP8[$74>>0]|0;
+   $253 = HEAP8[$32>>0]|0;
+   $254 = $253 ^ $252;
+   HEAP8[$34>>0] = $254;
+   $255 = HEAP8[$75>>0]|0;
+   $256 = HEAP8[$35>>0]|0;
+   $257 = $256 ^ $255;
+   HEAP8[$37>>0] = $257;
+   $258 = HEAP8[$76>>0]|0;
+   $259 = HEAP8[$38>>0]|0;
+   $260 = $259 ^ $258;
+   HEAP8[$40>>0] = $260;
+   $261 = HEAP8[$77>>0]|0;
+   $262 = HEAP8[$41>>0]|0;
+   $263 = $262 ^ $261;
+   HEAP8[$43>>0] = $263;
+   $264 = HEAP8[$78>>0]|0;
+   $265 = HEAP8[$44>>0]|0;
+   $266 = $265 ^ $264;
+   HEAP8[$46>>0] = $266;
+   $267 = HEAP8[$79>>0]|0;
+   $268 = HEAP8[$47>>0]|0;
+   $269 = $268 ^ $267;
+   HEAP8[$49>>0] = $269;
+   $270 = HEAP8[$80>>0]|0;
+   $271 = HEAP8[$50>>0]|0;
+   $272 = $271 ^ $270;
+   HEAP8[$52>>0] = $272;
+   $273 = HEAP8[$81>>0]|0;
+   $274 = HEAP8[$53>>0]|0;
+   $275 = $274 ^ $273;
+   HEAP8[$55>>0] = $275;
+   $276 = HEAP8[$82>>0]|0;
+   $277 = HEAP8[$56>>0]|0;
+   $278 = $277 ^ $276;
+   HEAP8[$58>>0] = $278;
+   $279 = HEAP8[$83>>0]|0;
+   $280 = HEAP8[$59>>0]|0;
+   $281 = $280 ^ $279;
+   HEAP8[$61>>0] = $281;
+   $282 = HEAP8[$84>>0]|0;
+   $283 = HEAP8[$62>>0]|0;
+   $284 = $283 ^ $282;
+   HEAP8[$64>>0] = $284;
+   $285 = HEAP8[$85>>0]|0;
+   $286 = HEAP8[$65>>0]|0;
+   $287 = $286 ^ $285;
+   HEAP8[$67>>0] = $287;
+   $288 = HEAP8[$86>>0]|0;
+   $289 = HEAP8[$68>>0]|0;
+   $290 = $289 ^ $288;
+   HEAP8[$70>>0] = $290;
+   $291 = (__gcry_cipher_encrypt($188,$20,16,$15,16)|0);
+   $292 = ($291|0)==(0);
+   if (!($292)) {
+    label = 34;
+    break L16;
+   }
+   if ($100) {
+    $$0$lcssa122$i = $13;$$074$lcssa121$i = 16;
+    label = 39;
+   } else {
+    $$0108$i = $13;$$074107$i = 16;
+    while(1) {
+     HEAP8[$$0108$i>>0] = 0;
+     $294 = ((($$0108$i)) + 1|0);
+     $295 = (($$074107$i) + -1)|0;
+     $296 = $294;
+     $297 = $296 & 7;
+     $298 = ($297|0)!=(0);
+     $299 = ($295|0)!=(0);
+     $300 = $299 & $298;
+     if ($300) {
+      $$0108$i = $294;$$074107$i = $295;
+     } else {
+      break;
+     }
+    }
+    $301 = ($295>>>0)<(8);
+    if ($301) {
+     $$2$i = $294;$$276$i = $295;
+    } else {
+     $$0$lcssa122$i = $294;$$074$lcssa121$i = $295;
+     label = 39;
+    }
+   }
+   if ((label|0) == 39) {
+    label = 0;
+    $302 = (($$074$lcssa121$i) + -8)|0;
+    $303 = $302 & -8;
+    $$1$i = $$0$lcssa122$i;$$175$i = $$074$lcssa121$i;
+    while(1) {
+     $304 = $$1$i;
+     $305 = $304;
+     HEAP32[$305>>2] = 0;
+     $306 = (($304) + 4)|0;
+     $307 = $306;
+     HEAP32[$307>>2] = 0;
+     $308 = (($$175$i) + -8)|0;
+     $309 = ((($$1$i)) + 8|0);
+     $310 = ($308>>>0)>(7);
+     if ($310) {
+      $$1$i = $309;$$175$i = $308;
+     } else {
+      break;
+     }
+    }
+    $311 = (($303) + 8)|0;
+    $312 = (($302) - ($303))|0;
+    $scevgep120$i = (($$0$lcssa122$i) + ($311)|0);
+    $$2$i = $scevgep120$i;$$276$i = $312;
+   }
+   $313 = ($$276$i|0)==(0);
+   if (!($313)) {
+    $$3103$i = $$2$i;$$377102$i = $$276$i;
+    while(1) {
+     HEAP8[$$3103$i>>0] = 0;
+     $314 = ((($$3103$i)) + 1|0);
+     $315 = (($$377102$i) + -1)|0;
+     $316 = ($315|0)==(0);
+     if ($316) {
+      break;
+     } else {
+      $$3103$i = $314;$$377102$i = $315;
+     }
+    }
+   }
+   if ($103) {
+    $$078$lcssa124$i = 16;$$082$lcssa123$i = $15;
+    label = 49;
+   } else {
+    $$07897$i = 16;$$08296$i = $15;
+    while(1) {
+     HEAP8[$$08296$i>>0] = 0;
+     $317 = ((($$08296$i)) + 1|0);
+     $318 = (($$07897$i) + -1)|0;
+     $319 = $317;
+     $320 = $319 & 7;
+     $321 = ($320|0)!=(0);
+     $322 = ($318|0)!=(0);
+     $323 = $322 & $321;
+     if ($323) {
+      $$07897$i = $318;$$08296$i = $317;
+     } else {
+      break;
+     }
+    }
+    $324 = ($318>>>0)<(8);
+    if ($324) {
+     $$280$i = $318;$$284$i = $317;
+    } else {
+     $$078$lcssa124$i = $318;$$082$lcssa123$i = $317;
+     label = 49;
+    }
+   }
+   if ((label|0) == 49) {
+    label = 0;
+    $325 = (($$078$lcssa124$i) + -8)|0;
+    $326 = $325 & -8;
+    $$179$i = $$078$lcssa124$i;$$183$i = $$082$lcssa123$i;
+    while(1) {
+     $327 = $$183$i;
+     $328 = $327;
+     HEAP32[$328>>2] = 0;
+     $329 = (($327) + 4)|0;
+     $330 = $329;
+     HEAP32[$330>>2] = 0;
+     $331 = (($$179$i) + -8)|0;
+     $332 = ((($$183$i)) + 8|0);
+     $333 = ($331>>>0)>(7);
+     if ($333) {
+      $$179$i = $331;$$183$i = $332;
+     } else {
+      break;
+     }
+    }
+    $334 = (($326) + 8)|0;
+    $335 = (($325) - ($326))|0;
+    $scevgep$i = (($$082$lcssa123$i) + ($334)|0);
+    $$280$i = $335;$$284$i = $scevgep$i;
+   }
+   $336 = ($$280$i|0)==(0);
+   if (!($336)) {
+    $$38195$i = $$280$i;$$38594$i = $$284$i;
+    while(1) {
+     HEAP8[$$38594$i>>0] = 0;
+     $337 = ((($$38594$i)) + 1|0);
+     $338 = (($$38195$i) + -1)|0;
+     $339 = ($338|0)==(0);
+     if ($339) {
+      break;
+     } else {
+      $$38195$i = $338;$$38594$i = $337;
+     }
+    }
+   }
+   $340 = HEAP32[$19>>2]|0;
+   $341 = (($340) + 1)|0;
+   HEAP32[$19>>2] = $341;
+   $342 = HEAP8[$104>>0]|0;
+   $343 = ($342<<24>>24)==(0);
+   if (!($343)) {
+    $344 = HEAP32[$18>>2]|0;
+    $345 = ($344|0)==(0|0);
+    $346 = HEAP32[18161]|0;
+    $347 = ($346|0)==($2|0);
+    $or$cond = $345 | $347;
+    $348 = HEAP32[18162]|0;
+    $349 = ($348|0)==($2|0);
+    $or$cond82 = $or$cond | $349;
+    $350 = HEAP32[18163]|0;
+    $351 = ($350|0)==($2|0);
+    $or$cond84 = $or$cond82 | $351;
+    if (!($or$cond84)) {
+     label = 62;
+     break;
+    }
+   }
+   $352 = HEAP8[$10>>0]|0;
+   $$mask79 = $352 & 2;
+   $353 = ($$mask79<<24>>24)==(0);
+   if (!($353)) {
+    label = 59;
+    break;
+   }
+   dest=$105; src=$16; 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));
+   $354 = $352 | 2;
+   HEAP8[$10>>0] = $354;
+  }
+  if ((label|0) == 59) {
+   label = 0;
+   $355 = (_memcmp($105,$16,16)|0);
+   $356 = ($355|0)==(0);
+   if ($356) {
+    label = 60;
+    break;
+   }
+   $357 = ($$078$ph123>>>0)<(16);
+   $358 = $357 ? $$078$ph123 : 16;
+   dest=$105; src=$16; 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));
+   $361 = $358;
+  }
+  else if ((label|0) == 62) {
+   label = 0;
+   $359 = ($$078$ph123>>>0)<(16);
+   $360 = $359 ? $$078$ph123 : 16;
+   $361 = $360;
+  }
+  _memcpy(($$071$ph125|0),($16|0),($361|0))|0;
+  if ($108) {
+   $$072$lcssa151 = 16;$$073$lcssa150 = $16;
+   label = 67;
+  } else {
+   $$072115 = 16;$$073114 = $16;
+   while(1) {
+    HEAP8[$$073114>>0] = 0;
+    $362 = ((($$073114)) + 1|0);
+    $363 = (($$072115) + -1)|0;
+    $364 = $362;
+    $365 = $364 & 7;
+    $366 = ($365|0)!=(0);
+    $367 = ($363|0)!=(0);
+    $368 = $367 & $366;
+    if ($368) {
+     $$072115 = $363;$$073114 = $362;
+    } else {
+     break;
+    }
+   }
+   $369 = ($363>>>0)<(8);
+   if ($369) {
+    $$2 = $363;$$275 = $362;
+   } else {
+    $$072$lcssa151 = $363;$$073$lcssa150 = $362;
+    label = 67;
+   }
+  }
+  if ((label|0) == 67) {
+   label = 0;
+   $370 = (($$072$lcssa151) + -8)|0;
+   $371 = $370 & -8;
+   $scevgep = ((($$073$lcssa150)) + 8|0);
+   $$1 = $$072$lcssa151;$$174 = $$073$lcssa150;
+   while(1) {
+    $372 = $$174;
+    $373 = $372;
+    HEAP32[$373>>2] = 0;
+    $374 = (($372) + 4)|0;
+    $375 = $374;
+    HEAP32[$375>>2] = 0;
+    $376 = (($$1) + -8)|0;
+    $377 = ((($$174)) + 8|0);
+    $378 = ($376>>>0)>(7);
+    if ($378) {
+     $$1 = $376;$$174 = $377;
+    } else {
+     break;
+    }
+   }
+   $379 = (($370) - ($371))|0;
+   $scevgep149 = (($scevgep) + ($371)|0);
+   $$2 = $379;$$275 = $scevgep149;
+  }
+  $380 = ($$2|0)==(0);
+  if (!($380)) {
+   $$3119 = $$2;$$376118 = $$275;
+   while(1) {
+    HEAP8[$$376118>>0] = 0;
+    $381 = ((($$376118)) + 1|0);
+    $382 = (($$3119) + -1)|0;
+    $383 = ($382|0)==(0);
+    if ($383) {
+     break;
+    } else {
+     $$3119 = $382;$$376118 = $381;
+    }
+   }
+  }
+  $384 = (($$071$ph125) + ($361)|0);
+  $385 = (($$078$ph123) - ($361))|0;
+  $386 = ($385|0)==(0);
+  if ($386) {
+   $$0 = 0;
+   label = 74;
+   break;
+  } else {
+   $$071$ph125 = $384;$$078$ph123 = $385;
+  }
+ }
+ if ((label|0) == 16) {
+  __gcry_assert_failed(68869,68594,274,68972);
+  // unreachable;
+ }
+ else if ((label|0) == 22) {
+  $138 = (___errno_location()|0);
+  $139 = HEAP32[$138>>2]|0;
+  $140 = (_strerror($139)|0);
+  HEAP32[$vararg_buffer>>2] = $140;
+  __gcry_log_fatal(68984,$vararg_buffer);
+  // unreachable;
+ }
+ else if ((label|0) == 30) {
+  $191 = (__gcry_strerror($189)|0);
+  HEAP32[$vararg_buffer1>>2] = $191;
+  __gcry_log_fatal(69011,$vararg_buffer1);
+  // unreachable;
+ }
+ else if ((label|0) == 32) {
+  $242 = (__gcry_strerror($240)|0);
+  HEAP32[$vararg_buffer4>>2] = $242;
+  __gcry_log_fatal(69011,$vararg_buffer4);
+  // unreachable;
+ }
+ else if ((label|0) == 34) {
+  $293 = (__gcry_strerror($291)|0);
+  HEAP32[$vararg_buffer7>>2] = $293;
+  __gcry_log_fatal(69011,$vararg_buffer7);
+  // unreachable;
+ }
+ else if ((label|0) == 60) {
+  __gcry_fips_signal_error(68594,502,68888,0,69045);
+  $$0 = -1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ else if ((label|0) == 74) {
+  STACKTOP = sp;return ($$0|0);
+ }
+ return (0)|0;
+}
+function __gcry_strerror($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_gpg_strerror($0)|0);
+ return ($1|0);
+}
+function _get_entropy() {
+ var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, 
$9 = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $0 = HEAP32[18168]|0;
+ $1 = ($0|0)==(0|0);
+ if (!($1)) {
+  __gcry_assert_failed(69097,68594,552,69121);
+  // unreachable;
+ }
+ $2 = (__gcry_xmalloc_secure(16)|0);
+ HEAP32[18168] = $2;
+ HEAP32[18169] = 16;
+ HEAP32[18170] = 0;
+ $3 = (__gcry_rndlinux_gather_random(85,0,16,2)|0);
+ $4 = ($3|0)<(0);
+ if (!($4)) {
+  $5 = HEAP32[18170]|0;
+  $6 = HEAP32[18169]|0;
+  $7 = ($5|0)==($6|0);
+  if ($7) {
+   $9 = HEAP32[18168]|0;
+   HEAP32[18168] = 0;
+   STACKTOP = sp;return ($9|0);
+  }
+ }
+ $8 = HEAP32[18168]|0;
+ __gcry_free($8);
+ HEAP32[18168] = 0;
+ __gcry_log_fatal(69133,$vararg_buffer);
+ // unreachable;
+ return (0)|0;
+}
+function _entropy_collect_cb($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$05 = 0, $$in = 0, $$pre = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 
0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, 
$8 = 0, $9 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ $3 = HEAP32[18159]|0;
+ $4 = ($3|0)==(0);
+ if ($4) {
+  __gcry_assert_failed(68869,68594,531,69161);
+  // unreachable;
+ }
+ $5 = HEAP32[18168]|0;
+ $6 = ($5|0)==(0|0);
+ if ($6) {
+  __gcry_assert_failed(69180,68594,532,69161);
+  // unreachable;
+ }
+ $7 = ($1|0)==(0);
+ if ($7) {
+  return;
+ }
+ $8 = HEAP32[18169]|0;
+ $$pre = HEAP32[18170]|0;
+ $$05 = $0;$$in = $1;$11 = $$pre;
+ while(1) {
+  $9 = (($$in) + -1)|0;
+  $10 = ($11>>>0)<($8>>>0);
+  if (!($10)) {
+   label = 9;
+   break;
+  }
+  $12 = ((($$05)) + 1|0);
+  $13 = HEAP8[$$05>>0]|0;
+  $14 = (($11) + 1)|0;
+  HEAP32[18170] = $14;
+  $15 = (($5) + ($11)|0);
+  $16 = HEAP8[$15>>0]|0;
+  $17 = $16 ^ $13;
+  HEAP8[$15>>0] = $17;
+  $18 = ($9|0)==(0);
+  if ($18) {
+   label = 9;
+   break;
+  } else {
+   $$05 = $12;$$in = $9;$11 = $14;
+  }
+ }
+ if ((label|0) == 9) {
+  return;
+ }
+}
+function __gcry_rngfips_create_nonce($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $vararg_buffer = 
0, $vararg_buffer1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ __gcry_rngfips_initialize(1);
+ $2 = (_gpgrt_lock_lock(40256)|0);
+ $3 = ($2|0)==(0);
+ if (!($3)) {
+  $4 = (_gpg_strerror($2)|0);
+  HEAP32[$vararg_buffer>>2] = $4;
+  __gcry_log_fatal(68530,$vararg_buffer);
+  // unreachable;
+ }
+ HEAP32[18159] = 1;
+ $5 = HEAP32[18161]|0;
+ _get_random($0,$1,$5);
+ HEAP32[18159] = 0;
+ $6 = (_gpgrt_lock_unlock(40256)|0);
+ $7 = ($6|0)==(0);
+ if ($7) {
+  STACKTOP = sp;return;
+ } else {
+  $8 = (_gpg_strerror($6)|0);
+  HEAP32[$vararg_buffer1>>2] = $8;
+  __gcry_log_fatal(68742,$vararg_buffer1);
+  // unreachable;
+ }
+}
+function __gcry_rngfips_selftest($0) {
+ $0 = $0|0;
+ var $$0$i = 0, $$04854$i = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 
= 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 
= 0, $23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, 
$33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0;
+ var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, 
$51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 
0, $6 = 0, $60 = 0, $61 = 0;
+ var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, 
$7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, 
$78 = 0, $79 = 0, $8 = 0;
+ var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, 
$88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, 
$96 = 0, $97 = 0, $or$cond$i = 0;
+ var $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; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(64|0);
+ $vararg_buffer7 = sp + 40|0;
+ $vararg_buffer4 = sp + 32|0;
+ $vararg_buffer1 = sp + 24|0;
+ $vararg_buffer = sp + 16|0;
+ $1 = sp;
+ $2 = sp + 48|0;
+ __gcry_randomize($2,8,1);
+ $3 = HEAP32[18160]|0;
+ $4 = ($3|0)==(0|0);
+ if ($4) {
+  __gcry_assert_failed(68942,68594,912,69296);
+  // unreachable;
+ }
+ $5 = (__gcry_xcalloc(1,68)|0);
+ HEAP8[$5>>0] = 17;
+ $6 = ((($5)) + 16|0);
+ HEAP8[$6>>0] = 42;
+ $7 = ((($5)) + 33|0);
+ HEAP8[$7>>0] = -119;
+ $8 = ((($5)) + 50|0);
+ HEAP8[$8>>0] = -4;
+ $9 = (_gpgrt_lock_lock(40256)|0);
+ $10 = ($9|0)==(0);
+ if (!($10)) {
+  $11 = (_gpg_strerror($9)|0);
+  HEAP32[$vararg_buffer>>2] = $11;
+  __gcry_log_fatal(68530,$vararg_buffer);
+  // unreachable;
+ }
+ HEAP32[18159] = 1;
+ $12 = ((($5)) + 4|0);
+ $13 = ((($5)) + 60|0);
+ $14 = ((($5)) + 17|0);
+ $15 = ((($5)) + 8|0);
+ $16 = ((($5)) + 64|0);
+ $17 = ((($5)) + 52|0);
+ $18 = ((($5)) + 56|0);
+ $$04854$i = 0;
+ while(1) {
+  $21 = (__gcry_cipher_open($12,7,1,1)|0);
+  $22 = ($21|0)==(0);
+  if (!($22)) {
+   $$0$i = 69378;
+   label = 18;
+   break;
+  }
+  $23 = HEAP32[$12>>2]|0;
+  $24 = (16592 + (($$04854$i*96)|0)|0);
+  $25 = (__gcry_cipher_setkey($23,$24,16)|0);
+  $26 = ($25|0)==(0);
+  if (!($26)) {
+   $$0$i = 69416;
+   label = 18;
+   break;
+  }
+  $27 = (_getpid()|0);
+  HEAP32[$13>>2] = $27;
+  $28 = (((16592 + (($$04854$i*96)|0)|0)) + 32|0);
+  dest=$14; src=$28; 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));
+  $29 = HEAP8[$15>>0]|0;
+  $30 = $29 | 1;
+  HEAP8[$15>>0] = $30;
+  $31 = (_getpid()|0);
+  HEAP32[$16>>2] = $31;
+  $32 = (((16592 + (($$04854$i*96)|0)|0)) + 16|0);
+  HEAP32[$17>>2] = $32;
+  $33 = (((16592 + (($$04854$i*96)|0)|0)) + 28|0);
+  $34 = HEAP8[$33>>0]|0;
+  $35 = $34&255;
+  $36 = $35 << 24;
+  $37 = (((16592 + (($$04854$i*96)|0)|0)) + 29|0);
+  $38 = HEAP8[$37>>0]|0;
+  $39 = $38&255;
+  $40 = $39 << 16;
+  $41 = $40 | $36;
+  $42 = (((16592 + (($$04854$i*96)|0)|0)) + 30|0);
+  $43 = HEAP8[$42>>0]|0;
+  $44 = $43&255;
+  $45 = $44 << 8;
+  $46 = $41 | $45;
+  $47 = (((16592 + (($$04854$i*96)|0)|0)) + 31|0);
+  $48 = HEAP8[$47>>0]|0;
+  $49 = $48&255;
+  $50 = $46 | $49;
+  HEAP32[$18>>2] = $50;
+  $51 = (_x931_aes_driver($1,16,$5)|0);
+  $52 = ($51|0)==(0);
+  if (!($52)) {
+   $$0$i = 69309;
+   label = 18;
+   break;
+  }
+  $55 = (((16592 + (($$04854$i*96)|0)|0)) + 48|0);
+  $56 = (_memcmp($1,$55,16)|0);
+  $57 = ($56|0)==(0);
+  if (!($57)) {
+   $$0$i = 69340;
+   label = 18;
+   break;
+  }
+  $53 = (_x931_aes_driver($1,16,$5)|0);
+  $54 = ($53|0)==(0);
+  if (!($54)) {
+   $$0$i = 69309;
+   label = 18;
+   break;
+  }
+  $86 = (((16592 + (($$04854$i*96)|0)|0)) + 64|0);
+  $87 = (_memcmp($1,$86,16)|0);
+  $88 = ($87|0)==(0);
+  if (!($88)) {
+   $$0$i = 69340;
+   label = 18;
+   break;
+  }
+  $89 = (_x931_aes_driver($1,16,$5)|0);
+  $90 = ($89|0)==(0);
+  if (!($90)) {
+   $$0$i = 69309;
+   label = 18;
+   break;
+  }
+  $91 = (((16592 + (($$04854$i*96)|0)|0)) + 80|0);
+  $92 = (_memcmp($1,$91,16)|0);
+  $93 = ($92|0)==(0);
+  if (!($93)) {
+   $$0$i = 69340;
+   label = 18;
+   break;
+  }
+  $94 = HEAP32[$13>>2]|0;
+  $95 = (_getpid()|0);
+  $96 = ($94|0)==($95|0);
+  if (!($96)) {
+   $$0$i = 69442;
+   label = 18;
+   break;
+  }
+  $58 = HEAP32[$16>>2]|0;
+  $59 = (_getpid()|0);
+  $60 = ($58|0)==($59|0);
+  if (!($60)) {
+   $$0$i = 69442;
+   label = 18;
+   break;
+  }
+  $61 = HEAP32[$12>>2]|0;
+  __gcry_cipher_close($61);
+  HEAP32[$12>>2] = 0;
+  $62 = HEAP8[$15>>0]|0;
+  $63 = $62 & -2;
+  HEAP8[$15>>0] = $63;
+  $64 = HEAP8[$5>>0]|0;
+  $65 = ($64<<24>>24)==(17);
+  if (!($65)) {
+   label = 17;
+   break;
+  }
+  $66 = HEAP8[$6>>0]|0;
+  $67 = ($66<<24>>24)==(42);
+  if (!($67)) {
+   label = 17;
+   break;
+  }
+  $68 = HEAP8[$7>>0]|0;
+  $69 = ($68<<24>>24)==(-119);
+  if (!($69)) {
+   label = 17;
+   break;
+  }
+  $70 = HEAP8[$8>>0]|0;
+  $71 = ($70<<24>>24)==(-4);
+  $20 = (($$04854$i) + 1)|0;
+  if (!($71)) {
+   label = 17;
+   break;
+  }
+  $19 = ($20>>>0)<(3);
+  if ($19) {
+   $$04854$i = $20;
+  } else {
+   $$0$i = 0;
+   label = 18;
+   break;
+  }
+ }
+ if ((label|0) == 17) {
+  HEAP32[$vararg_buffer1>>2] = $5;
+  __gcry_log_fatal(68696,$vararg_buffer1);
+  // unreachable;
+ }
+ else if ((label|0) == 18) {
+  HEAP32[18159] = 0;
+  $72 = (_gpgrt_lock_unlock(40256)|0);
+  $73 = ($72|0)==(0);
+  if (!($73)) {
+   $74 = (_gpg_strerror($72)|0);
+   HEAP32[$vararg_buffer4>>2] = $74;
+   __gcry_log_fatal(68742,$vararg_buffer4);
+   // unreachable;
+  }
+  $75 = HEAP32[$12>>2]|0;
+  __gcry_cipher_close($75);
+  $76 = HEAP8[$5>>0]|0;
+  $77 = ($76<<24>>24)==(17);
+  if (!($77)) {
+   HEAP32[$vararg_buffer7>>2] = $5;
+   __gcry_log_fatal(68696,$vararg_buffer7);
+   // unreachable;
+  }
+  $78 = HEAP8[$6>>0]|0;
+  $79 = ($78<<24>>24)==(42);
+  if (!($79)) {
+   HEAP32[$vararg_buffer7>>2] = $5;
+   __gcry_log_fatal(68696,$vararg_buffer7);
+   // unreachable;
+  }
+  $80 = HEAP8[$7>>0]|0;
+  $81 = ($80<<24>>24)==(-119);
+  if (!($81)) {
+   HEAP32[$vararg_buffer7>>2] = $5;
+   __gcry_log_fatal(68696,$vararg_buffer7);
+   // unreachable;
+  }
+  $82 = HEAP8[$8>>0]|0;
+  $83 = ($82<<24>>24)==(-4);
+  if (!($83)) {
+   HEAP32[$vararg_buffer7>>2] = $5;
+   __gcry_log_fatal(68696,$vararg_buffer7);
+   // unreachable;
+  }
+  __gcry_free($5);
+  $84 = ($0|0)!=(0|0);
+  $85 = ($$0$i|0)!=(0|0);
+  $or$cond$i = $84 & $85;
+  if (!($or$cond$i)) {
+   $97 = $85 ? 16777266 : 0;
+   STACKTOP = sp;return ($97|0);
+  }
+  FUNCTION_TABLE_viiii[$0 & 63](69464,0,69471,$$0$i);
+  $97 = $85 ? 16777266 : 0;
+  STACKTOP = sp;return ($97|0);
+ }
+ return (0)|0;
+}
+function __gcry_rngfips_init_external_test($0,$1,$2,$3,$4,$5,$6,$7) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ $7 = $7|0;
+ var $$0 = 0, $$055 = 0, $$05557 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 
= 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, 
$23 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $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, $40 = 0, $41 = 0, $42 = 0, $43 = 
0, $44 = 0, $45 = 0, $46 = 0;
+ var $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;
+ var $67 = 0, $68 = 0, $69 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, 
$75 = 0, $8 = 0, $9 = 0, $or$cond$not = 0, $or$cond11 = 0, $or$cond3 = 0, 
$or$cond5$not = 0, $or$cond7 = 0, $or$cond9$not = 0, $storemerge = 0, 
$vararg_buffer = 0, $vararg_buffer1 = 0;
+ var dest = 0, label = 0, sp = 0, src = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ __gcry_rngfips_initialize(1);
+ $8 = ($0|0)==(0|0);
+ $9 = ($2|0)==(0|0);
+ $or$cond$not = $8 | $9;
+ $10 = ($3|0)!=(16);
+ $or$cond3 = $or$cond$not | $10;
+ $11 = ($4|0)==(0|0);
+ $or$cond5$not = $or$cond3 | $11;
+ $12 = ($5|0)!=(16);
+ $or$cond7 = $or$cond5$not | $12;
+ $13 = ($6|0)==(0|0);
+ $or$cond9$not = $or$cond7 | $13;
+ $14 = ($7|0)!=(16);
+ $or$cond11 = $or$cond9$not | $14;
+ if ($or$cond11) {
+  $$0 = 45;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $15 = (__gcry_calloc(1,84)|0);
+ $16 = ($15|0)==(0|0);
+ if ($16) {
+  $17 = (_gpg_err_code_from_syserror()|0);
+  $$0 = $17;
+  STACKTOP = sp;return ($$0|0);
+ }
+ HEAP8[$15>>0] = 17;
+ $18 = ((($15)) + 16|0);
+ HEAP8[$18>>0] = 42;
+ $19 = ((($15)) + 33|0);
+ HEAP8[$19>>0] = -119;
+ $20 = ((($15)) + 50|0);
+ HEAP8[$20>>0] = -4;
+ $21 = ((($15)) + 4|0);
+ $22 = (__gcry_cipher_open($21,7,1,1)|0);
+ $23 = ($22|0)==(0);
+ do {
+  if ($23) {
+   $24 = HEAP32[$21>>2]|0;
+   $25 = (__gcry_cipher_setkey($24,$2,16)|0);
+   $26 = ($25|0)==(0);
+   if ($26) {
+    $27 = (_getpid()|0);
+    $28 = ((($15)) + 60|0);
+    HEAP32[$28>>2] = $27;
+    $29 = ((($15)) + 17|0);
+    dest=$29; src=$4; 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));
+    $30 = ((($15)) + 8|0);
+    $31 = HEAP8[$30>>0]|0;
+    $32 = $31 | 1;
+    HEAP8[$30>>0] = $32;
+    $33 = (_getpid()|0);
+    $34 = ((($15)) + 64|0);
+    HEAP32[$34>>2] = $33;
+    $35 = ((($15)) + 68|0);
+    dest=$35; src=$6; 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));
+    $36 = ((($15)) + 52|0);
+    HEAP32[$36>>2] = $35;
+    $37 = ((($15)) + 80|0);
+    $38 = HEAP8[$37>>0]|0;
+    $39 = $38&255;
+    $40 = $39 << 24;
+    $41 = ((($15)) + 81|0);
+    $42 = HEAP8[$41>>0]|0;
+    $43 = $42&255;
+    $44 = $43 << 16;
+    $45 = $44 | $40;
+    $46 = ((($15)) + 82|0);
+    $47 = HEAP8[$46>>0]|0;
+    $48 = $47&255;
+    $49 = $48 << 8;
+    $50 = $45 | $49;
+    $51 = ((($15)) + 83|0);
+    $52 = HEAP8[$51>>0]|0;
+    $53 = $52&255;
+    $54 = $50 | $53;
+    $55 = ((($15)) + 56|0);
+    HEAP32[$55>>2] = $54;
+    $56 = $1 & 1;
+    $57 = ($56|0)==(0);
+    if ($57) {
+     $67 = HEAP8[$15>>0]|0;
+     $68 = ($67<<24>>24)==(17);
+     if (!($68)) {
+      HEAP32[$vararg_buffer1>>2] = $15;
+      __gcry_log_fatal(68696,$vararg_buffer1);
+      // unreachable;
+     }
+     $69 = HEAP8[$18>>0]|0;
+     $70 = ($69<<24>>24)==(42);
+     if (!($70)) {
+      HEAP32[$vararg_buffer1>>2] = $15;
+      __gcry_log_fatal(68696,$vararg_buffer1);
+      // unreachable;
+     }
+     $71 = HEAP8[$19>>0]|0;
+     $72 = ($71<<24>>24)==(-119);
+     if (!($72)) {
+      HEAP32[$vararg_buffer1>>2] = $15;
+      __gcry_log_fatal(68696,$vararg_buffer1);
+      // unreachable;
+     }
+     $73 = HEAP8[$20>>0]|0;
+     $74 = ($73<<24>>24)==(-4);
+     if ($74) {
+      $$05557 = 0;$storemerge = $15;
+      break;
+     }
+     HEAP32[$vararg_buffer1>>2] = $15;
+     __gcry_log_fatal(68696,$vararg_buffer1);
+     // unreachable;
+    } else {
+     $58 = ((($15)) + 51|0);
+     HEAP8[$58>>0] = 1;
+     $59 = HEAP8[$15>>0]|0;
+     $60 = ($59<<24>>24)==(17);
+     if (!($60)) {
+      HEAP32[$vararg_buffer>>2] = $15;
+      __gcry_log_fatal(68696,$vararg_buffer);
+      // unreachable;
+     }
+     $61 = HEAP8[$18>>0]|0;
+     $62 = ($61<<24>>24)==(42);
+     if (!($62)) {
+      HEAP32[$vararg_buffer>>2] = $15;
+      __gcry_log_fatal(68696,$vararg_buffer);
+      // unreachable;
+     }
+     $63 = HEAP8[$19>>0]|0;
+     $64 = ($63<<24>>24)==(-119);
+     if (!($64)) {
+      HEAP32[$vararg_buffer>>2] = $15;
+      __gcry_log_fatal(68696,$vararg_buffer);
+      // unreachable;
+     }
+     $65 = HEAP8[$20>>0]|0;
+     $66 = ($65<<24>>24)==(-4);
+     if ($66) {
+      $$05557 = 0;$storemerge = $15;
+      break;
+     }
+     HEAP32[$vararg_buffer>>2] = $15;
+     __gcry_log_fatal(68696,$vararg_buffer);
+     // unreachable;
+    }
+   } else {
+    $$055 = $25;
+    label = 17;
+   }
+  } else {
+   $$055 = $22;
+   label = 17;
+  }
+ } while(0);
+ if ((label|0) == 17) {
+  $75 = HEAP32[$21>>2]|0;
+  __gcry_cipher_close($75);
+  __gcry_free($15);
+  $$05557 = $$055;$storemerge = 0;
+ }
+ HEAP32[$0>>2] = $storemerge;
+ $$0 = $$05557;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_rngfips_run_external_test($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 
0, $9 = 0, $or$cond$not = 0, $or$cond3 = 0, $vararg_buffer = 0, $vararg_buffer1 
= 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $3 = ($0|0)==(0|0);
+ $4 = ($1|0)==(0|0);
+ $or$cond$not = $3 | $4;
+ $5 = ($2|0)!=(16);
+ $or$cond3 = $or$cond$not | $5;
+ if ($or$cond3) {
+  $$0 = 45;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $6 = (_gpgrt_lock_lock(40256)|0);
+ $7 = ($6|0)==(0);
+ if (!($7)) {
+  $8 = (_gpg_strerror($6)|0);
+  HEAP32[$vararg_buffer>>2] = $8;
+  __gcry_log_fatal(68530,$vararg_buffer);
+  // unreachable;
+ }
+ HEAP32[18159] = 1;
+ _get_random($1,16,$0);
+ HEAP32[18159] = 0;
+ $9 = (_gpgrt_lock_unlock(40256)|0);
+ $10 = ($9|0)==(0);
+ if ($10) {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ } else {
+  $11 = (_gpg_strerror($9)|0);
+  HEAP32[$vararg_buffer1>>2] = $11;
+  __gcry_log_fatal(68742,$vararg_buffer1);
+  // unreachable;
+ }
+ return (0)|0;
+}
+function __gcry_rngfips_deinit_external_test($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  return;
+ }
+ $2 = ((($0)) + 4|0);
+ $3 = HEAP32[$2>>2]|0;
+ __gcry_cipher_close($3);
+ __gcry_free($0);
+ return;
+}
+function __gcry_rngsystem_initialize($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[18171]|0;
+ $2 = ($1|0)==(0);
+ if (!($2)) {
+  return;
+ }
+ HEAP32[18171] = 1;
+ HEAP32[18172] = 0;
+ return;
+}
+function __gcry_rngsystem_close_fds() {
+ var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, 
$vararg_buffer1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $0 = (_gpgrt_lock_lock(40300)|0);
+ $1 = ($0|0)==(0);
+ if (!($1)) {
+  $2 = (_gpg_strerror($0)|0);
+  HEAP32[$vararg_buffer>>2] = $2;
+  __gcry_log_fatal(69475,$vararg_buffer);
+  // unreachable;
+ }
+ HEAP32[18172] = 1;
+ (__gcry_rndlinux_gather_random(0,0,0,0)|0);
+ HEAP32[18172] = 0;
+ $3 = (_gpgrt_lock_unlock(40300)|0);
+ $4 = ($3|0)==(0);
+ if ($4) {
+  STACKTOP = sp;return;
+ } else {
+  $5 = (_gpg_strerror($3)|0);
+  HEAP32[$vararg_buffer1>>2] = $5;
+  __gcry_log_fatal(69518,$vararg_buffer1);
+  // unreachable;
+ }
+}
+function __gcry_rngsystem_randomize($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, 
$vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer4 = sp + 16|0;
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $3 = HEAP32[18171]|0;
+ $4 = ($3|0)==(0);
+ if ($4) {
+  HEAP32[18171] = 1;
+  HEAP32[18172] = 0;
+ }
+ $5 = ($2|0)==(2);
+ $spec$select = $5 ? 2 : 1;
+ $6 = (_gpgrt_lock_lock(40300)|0);
+ $7 = ($6|0)==(0);
+ if (!($7)) {
+  $8 = (_gpg_strerror($6)|0);
+  HEAP32[$vararg_buffer>>2] = $8;
+  __gcry_log_fatal(69475,$vararg_buffer);
+  // unreachable;
+ }
+ HEAP32[18172] = 1;
+ $9 = ($0|0)==(0|0);
+ if ($9) {
+  __gcry_assert_failed(69561,69568,144,69584);
+  // unreachable;
+ }
+ HEAP32[18173] = $0;
+ HEAP32[18174] = $1;
+ HEAP32[18175] = 0;
+ $10 = (__gcry_rndlinux_gather_random(86,0,$1,$spec$select)|0);
+ $11 = ($10|0)<(0);
+ if ($11) {
+  HEAP32[$vararg_buffer1>>2] = $10;
+  __gcry_log_fatal(69595,$vararg_buffer1);
+  // unreachable;
+ }
+ $12 = HEAP32[18175]|0;
+ $13 = HEAP32[18174]|0;
+ $14 = ($12|0)==($13|0);
+ if (!($14)) {
+  HEAP32[$vararg_buffer1>>2] = $10;
+  __gcry_log_fatal(69595,$vararg_buffer1);
+  // unreachable;
+ }
+ HEAP32[18172] = 0;
+ $15 = (_gpgrt_lock_unlock(40300)|0);
+ $16 = ($15|0)==(0);
+ if ($16) {
+  STACKTOP = sp;return;
+ } else {
+  $17 = (_gpg_strerror($15)|0);
+  HEAP32[$vararg_buffer4>>2] = $17;
+  __gcry_log_fatal(69518,$vararg_buffer4);
+  // unreachable;
+ }
+}
+function _read_cb($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$05 = 0, $$in = 0, $$pre = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 
0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = HEAP32[18172]|0;
+ $4 = ($3|0)==(0);
+ if ($4) {
+  __gcry_assert_failed(69641,69568,124,69662);
+  // unreachable;
+ }
+ $5 = HEAP32[18173]|0;
+ $6 = ($5|0)==(0|0);
+ if ($6) {
+  __gcry_assert_failed(69670,69568,125,69662);
+  // unreachable;
+ }
+ $7 = ($1|0)==(0);
+ if ($7) {
+  return;
+ }
+ $8 = HEAP32[18174]|0;
+ $$pre = HEAP32[18175]|0;
+ $$05 = $0;$$in = $1;$11 = $$pre;
+ while(1) {
+  $9 = (($$in) + -1)|0;
+  $10 = ($11>>>0)<($8>>>0);
+  if (!($10)) {
+   label = 9;
+   break;
+  }
+  $12 = ((($$05)) + 1|0);
+  $13 = HEAP8[$$05>>0]|0;
+  $14 = (($11) + 1)|0;
+  HEAP32[18175] = $14;
+  $15 = (($5) + ($11)|0);
+  HEAP8[$15>>0] = $13;
+  $16 = ($9|0)==(0);
+  if ($16) {
+   label = 9;
+   break;
+  } else {
+   $$05 = $12;$$in = $9;$11 = $14;
+  }
+ }
+ if ((label|0) == 9) {
+  return;
+ }
+}
+function __gcry_rndhw_failed_p() {
+ var $0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[18176]|0;
+ return ($0|0);
+}
+function __gcry_rndhw_poll_fast($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return;
+}
+function __gcry_rndhw_poll_slow($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return 0;
+}
+function __gcry_rndlinux_gather_random($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0102 = 0, $$0110 = 0, $$0113129 = 0, $$0113129$us = 0, $$0116$ph$be = 
0, $$0116$ph183258 = 0, $$0119$lcssa = 0, $$0119$ph$be = 0, $$0119$ph182259 = 
0, $$0119173 = 0, $$0119173$us = 0, $$0122$ph181260 = 0, $$0122172 = 0, 
$$0122172$us = 0, $$1$ph185257 = 0, $$1120 = 0, $$1120$us = 0, $$1123 = 0, 
$$1123$us = 0, $$1174 = 0;
+ var $$1174$us = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, 
$105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, 
$112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0;
+ var $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;
+ var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 
= 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 
= 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0;
+ var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 
= 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 
= 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0;
+ var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, 
$178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, 
$185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0;
+ var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 
= 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 
= 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0;
+ var $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 
= 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 
= 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0;
+ var $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 
= 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 
= 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0;
+ var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 
= 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 
= 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0;
+ var $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;
+ var $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, 
$287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, 
$294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0;
+ var $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 
= 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 
= 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0;
+ var $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 
= 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 
= 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0;
+ var $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 
= 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 
= 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0;
+ var $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 
= 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 
= 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0;
+ var $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, 
$378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, 
$385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0;
+ var $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 
= 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 
0, $403 = 0, $404 = 0, $405 = 0, $406 = 0;
+ var $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 
= 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 
= 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0;
+ var $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 
= 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 
= 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0;
+ var $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 
= 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 
= 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0;
+ var $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, 
$468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, 
$475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0;
+ var $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 
= 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 
= 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0;
+ var $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 
0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 
0, $511 = 0, $512 = 0, $513 = 0, $514 = 0;
+ var $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 
= 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 
= 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0;
+ var $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;
+ var $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, $57 = 0, $58 = 0, 
$59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
+ var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, 
$70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 
0, $79 = 0, $8 = 0, $80 = 0;
+ var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, 
$89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, 
$97 = 0, $98 = 0, $99 = 0;
+ var $or$cond = 0, $or$cond$us = 0, $or$cond127 = 0, $or$cond127$us = 0, 
$spec$select = 0, $spec$select126 = 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; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(944|0);
+ $vararg_buffer7 = sp + 792|0;
+ $vararg_buffer4 = sp + 784|0;
+ $vararg_buffer1 = sp + 776|0;
+ $vararg_buffer = sp + 768|0;
+ $4 = sp;
+ $5 = sp + 808|0;
+ $6 = sp + 800|0;
+ $7 = ($0|0)==(0|0);
+ if ($7) {
+  $8 = HEAP32[10086]|0;
+  $9 = ($8|0)==(-1);
+  if (!($9)) {
+   (_close($8)|0);
+   HEAP32[10086] = -1;
+  }
+  $10 = HEAP32[10087]|0;
+  $11 = ($10|0)==(-1);
+  if ($11) {
+   STACKTOP = sp;return 0;
+  }
+  (_close($10)|0);
+  HEAP32[10087] = -1;
+  STACKTOP = sp;return 0;
+ }
+ $12 = (__gcry_rndhw_poll_slow($0,$1)|0);
+ $13 = $2 >>> 1;
+ $14 = ($12>>>0)>($13>>>0);
+ $spec$select = $14 ? $13 : $12;
+ $15 = ($2>>>0)>(1);
+ $16 = $15 ? $spec$select : 0;
+ $$0102 = (($2) - ($16))|0;
+ $17 = ($3|0)>(1);
+ if ($17) {
+  $18 = HEAP32[10086]|0;
+  $19 = ($18|0)==(-1);
+  if ($19) {
+   $20 = HEAP8[73337]|0;
+   $21 = $20 & 1;
+   $22 = $21&255;
+   $23 = (_open_device(69685,$22)|0);
+   HEAP32[10086] = $23;
+   $24 = HEAP8[73337]|0;
+   $25 = $24 | 1;
+   HEAP8[73337] = $25;
+   $$0110 = $23;
+  } else {
+   $$0110 = $18;
+  }
+ } else {
+  $26 = HEAP32[10087]|0;
+  $27 = ($26|0)==(-1);
+  if ($27) {
+   $28 = HEAP8[73337]|0;
+   $29 = $28 & 2;
+   $30 = $29&255;
+   $31 = (_open_device(69697,$30)|0);
+   HEAP32[10087] = $31;
+   $32 = HEAP8[73337]|0;
+   $33 = $32 | 2;
+   HEAP8[73337] = $33;
+   $$0110 = $31;
+  } else {
+   $$0110 = $26;
+  }
+ }
+ $34 = ($$0102|0)==(0);
+ L17: do {
+  if ($34) {
+   $$0119$lcssa = 0;
+  } else {
+   $35 = ($$0110|0)<(1024);
+   $36 = $$0110 & 31;
+   $37 = 1 << $36;
+   $38 = $$0110 >>> 5;
+   $39 = (($5) + ($38<<2)|0);
+   $40 = ((($6)) + 4|0);
+   $41 = (($$0110) + 1)|0;
+   L19: do {
+    if ($35) {
+     $$0116$ph183258 = 0;$$0119$ph182259 = 0;$$0122$ph181260 = 0;$$1$ph185257 
= $$0102;$47 = 100000;$66 = 0;
+     L21: while(1) {
+      $$0119173$us = $$0119$ph182259;$$0122172$us = $$0122$ph181260;$$1174$us 
= $$1$ph185257;
+      L23: while(1) {
+       $42 = ($$0119173$us|0)==(0);
+       $43 = (($2) - ($$1174$us))|0;
+       $44 = ($$0122172$us|0)==($43|0);
+       $or$cond$us = $42 & $44;
+       if ($or$cond$us) {
+        $$1120$us = 0;$$1123$us = $$0122172$us;
+       } else {
+        __gcry_random_progress(69710,88,$43,$2);
+        $$1120$us = 1;$$1123$us = $43;
+       }
+       dest=$5; stop=dest+128|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } 
while ((dest|0) < (stop|0));
+       $45 = HEAP32[$39>>2]|0;
+       $46 = $45 | $37;
+       HEAP32[$39>>2] = $46;
+       HEAP32[$6>>2] = $$0116$ph183258;
+       HEAP32[$40>>2] = $47;
+       $48 = (_select($41,$5,0,0,$6)|0);
+       switch ($48|0) {
+       case 0:  {
+        label = 33;
+        break L23;
+        break;
+       }
+       case -1:  {
+        label = 26;
+        break L23;
+        break;
+       }
+       default: {
+       }
+       }
+       $49 = ($$1174$us>>>0)<(768);
+       $50 = $49 ? $$1174$us : 768;
+       while(1) {
+        $51 = (_read($$0110,$4,$50)|0);
+        $52 = ($51|0)>(-1);
+        $53 = ($51>>>0)>($50>>>0);
+        $or$cond127$us = $52 & $53;
+        if ($or$cond127$us) {
+         label = 22;
+         break;
+        }
+        $54 = ($51|0)==(-1);
+        if (!($54)) {
+         $$0113129$us = $51;
+         break;
+        }
+        $55 = (___errno_location()|0);
+        $56 = HEAP32[$55>>2]|0;
+        $57 = ($56|0)==(4);
+        if (!($57)) {
+         break L21;
+        }
+       }
+       if ((label|0) == 22) {
+        label = 0;
+        HEAP32[$vararg_buffer>>2] = $51;
+        __gcry_log_error(69723,$vararg_buffer);
+        $$0113129$us = $50;
+       }
+       FUNCTION_TABLE_viii[$0 & 127]($4,$$0113129$us,$1);
+       $58 = (($$1174$us) - ($$0113129$us))|0;
+       $59 = ($58|0)==(0);
+       if ($59) {
+        $$0119$lcssa = $$1120$us;
+        break L17;
+       } else {
+        $$0119173$us = $$1120$us;$$0122172$us = $$1123$us;$$1174$us = $58;
+       }
+      }
+      if ((label|0) == 26) {
+       label = 0;
+       $63 = (___errno_location()|0);
+       $64 = HEAP32[$63>>2]|0;
+       $65 = (_strerror($64)|0);
+       HEAP32[$vararg_buffer1>>2] = $65;
+       __gcry_log_error(69761,$vararg_buffer1);
+       $spec$select126 = $66 ? $$0116$ph183258 : 1;
+       $$0116$ph$be = $spec$select126;$$0119$ph$be = $$1120$us;
+      }
+      else if ((label|0) == 33) {
+       label = 0;
+       $$0116$ph$be = 3;$$0119$ph$be = 1;
+      }
+      $79 = ($$0116$ph$be|0)!=(0);
+      $80 = $79 ? 0 : 100000;
+      if ($35) {
+       $$0116$ph183258 = $$0116$ph$be;$$0119$ph182259 = 
$$0119$ph$be;$$0122$ph181260 = $$1123$us;$$1$ph185257 = $$1174$us;$47 = $80;$66 
= $79;
+      } else {
+       break L19;
+      }
+     }
+     $76 = (___errno_location()|0);
+     $77 = HEAP32[$76>>2]|0;
+     $78 = (_strerror($77)|0);
+     HEAP32[$vararg_buffer7>>2] = $78;
+     __gcry_log_fatal(69781,$vararg_buffer7);
+     // unreachable;
+    }
+   } while(0);
+   $$0119173 = 0;$$0122172 = 0;$$1174 = $$0102;
+   L42: while(1) {
+    $60 = ($$0119173|0)==(0);
+    $61 = (($2) - ($$1174))|0;
+    $62 = ($$0122172|0)==($61|0);
+    $or$cond = $60 & $62;
+    if ($or$cond) {
+     $$1120 = 0;$$1123 = $$0122172;
+    } else {
+     __gcry_random_progress(69710,88,$61,$2);
+     $$1120 = 1;$$1123 = $61;
+    }
+    $67 = ($$1174>>>0)<(768);
+    $68 = $67 ? $$1174 : 768;
+    while(1) {
+     $69 = (_read($$0110,$4,$68)|0);
+     $70 = ($69|0)>(-1);
+     $71 = ($69>>>0)>($68>>>0);
+     $or$cond127 = $70 & $71;
+     if ($or$cond127) {
+      label = 29;
+      break;
+     }
+     $72 = ($69|0)==(-1);
+     if (!($72)) {
+      $$0113129 = $69;
+      break;
+     }
+     $73 = (___errno_location()|0);
+     $74 = HEAP32[$73>>2]|0;
+     $75 = ($74|0)==(4);
+     if (!($75)) {
+      break L42;
+     }
+    }
+    if ((label|0) == 29) {
+     label = 0;
+     HEAP32[$vararg_buffer4>>2] = $69;
+     __gcry_log_error(69723,$vararg_buffer4);
+     $$0113129 = $68;
+    }
+    FUNCTION_TABLE_viii[$0 & 127]($4,$$0113129,$1);
+    $81 = (($$1174) - ($$0113129))|0;
+    $82 = ($81|0)==(0);
+    if ($82) {
+     $$0119$lcssa = $$1120;
+     break L17;
+    } else {
+     $$0119173 = $$1120;$$0122172 = $$1123;$$1174 = $81;
+    }
+   }
+   $76 = (___errno_location()|0);
+   $77 = HEAP32[$76>>2]|0;
+   $78 = (_strerror($77)|0);
+   HEAP32[$vararg_buffer7>>2] = $78;
+   __gcry_log_fatal(69781,$vararg_buffer7);
+   // unreachable;
+  }
+ } while(0);
+ $83 = $4;
+ $84 = $83;
+ HEAP32[$84>>2] = 0;
+ $85 = (($83) + 4)|0;
+ $86 = $85;
+ HEAP32[$86>>2] = 0;
+ $87 = ((($4)) + 8|0);
+ $88 = $87;
+ $89 = $88;
+ HEAP32[$89>>2] = 0;
+ $90 = (($88) + 4)|0;
+ $91 = $90;
+ HEAP32[$91>>2] = 0;
+ $92 = ((($4)) + 16|0);
+ $93 = $92;
+ $94 = $93;
+ HEAP32[$94>>2] = 0;
+ $95 = (($93) + 4)|0;
+ $96 = $95;
+ HEAP32[$96>>2] = 0;
+ $97 = ((($4)) + 24|0);
+ $98 = $97;
+ $99 = $98;
+ HEAP32[$99>>2] = 0;
+ $100 = (($98) + 4)|0;
+ $101 = $100;
+ HEAP32[$101>>2] = 0;
+ $102 = ((($4)) + 32|0);
+ $103 = $102;
+ $104 = $103;
+ HEAP32[$104>>2] = 0;
+ $105 = (($103) + 4)|0;
+ $106 = $105;
+ HEAP32[$106>>2] = 0;
+ $107 = ((($4)) + 40|0);
+ $108 = $107;
+ $109 = $108;
+ HEAP32[$109>>2] = 0;
+ $110 = (($108) + 4)|0;
+ $111 = $110;
+ HEAP32[$111>>2] = 0;
+ $112 = ((($4)) + 48|0);
+ $113 = $112;
+ $114 = $113;
+ HEAP32[$114>>2] = 0;
+ $115 = (($113) + 4)|0;
+ $116 = $115;
+ HEAP32[$116>>2] = 0;
+ $117 = ((($4)) + 56|0);
+ $118 = $117;
+ $119 = $118;
+ HEAP32[$119>>2] = 0;
+ $120 = (($118) + 4)|0;
+ $121 = $120;
+ HEAP32[$121>>2] = 0;
+ $122 = ((($4)) + 64|0);
+ $123 = $122;
+ $124 = $123;
+ HEAP32[$124>>2] = 0;
+ $125 = (($123) + 4)|0;
+ $126 = $125;
+ HEAP32[$126>>2] = 0;
+ $127 = ((($4)) + 72|0);
+ $128 = $127;
+ $129 = $128;
+ HEAP32[$129>>2] = 0;
+ $130 = (($128) + 4)|0;
+ $131 = $130;
+ HEAP32[$131>>2] = 0;
+ $132 = ((($4)) + 80|0);
+ $133 = $132;
+ $134 = $133;
+ HEAP32[$134>>2] = 0;
+ $135 = (($133) + 4)|0;
+ $136 = $135;
+ HEAP32[$136>>2] = 0;
+ $137 = ((($4)) + 88|0);
+ $138 = $137;
+ $139 = $138;
+ HEAP32[$139>>2] = 0;
+ $140 = (($138) + 4)|0;
+ $141 = $140;
+ HEAP32[$141>>2] = 0;
+ $142 = ((($4)) + 96|0);
+ $143 = $142;
+ $144 = $143;
+ HEAP32[$144>>2] = 0;
+ $145 = (($143) + 4)|0;
+ $146 = $145;
+ HEAP32[$146>>2] = 0;
+ $147 = ((($4)) + 104|0);
+ $148 = $147;
+ $149 = $148;
+ HEAP32[$149>>2] = 0;
+ $150 = (($148) + 4)|0;
+ $151 = $150;
+ HEAP32[$151>>2] = 0;
+ $152 = ((($4)) + 112|0);
+ $153 = $152;
+ $154 = $153;
+ HEAP32[$154>>2] = 0;
+ $155 = (($153) + 4)|0;
+ $156 = $155;
+ HEAP32[$156>>2] = 0;
+ $157 = ((($4)) + 120|0);
+ $158 = $157;
+ $159 = $158;
+ HEAP32[$159>>2] = 0;
+ $160 = (($158) + 4)|0;
+ $161 = $160;
+ HEAP32[$161>>2] = 0;
+ $162 = ((($4)) + 128|0);
+ $163 = $162;
+ $164 = $163;
+ HEAP32[$164>>2] = 0;
+ $165 = (($163) + 4)|0;
+ $166 = $165;
+ HEAP32[$166>>2] = 0;
+ $167 = ((($4)) + 136|0);
+ $168 = $167;
+ $169 = $168;
+ HEAP32[$169>>2] = 0;
+ $170 = (($168) + 4)|0;
+ $171 = $170;
+ HEAP32[$171>>2] = 0;
+ $172 = ((($4)) + 144|0);
+ $173 = $172;
+ $174 = $173;
+ HEAP32[$174>>2] = 0;
+ $175 = (($173) + 4)|0;
+ $176 = $175;
+ HEAP32[$176>>2] = 0;
+ $177 = ((($4)) + 152|0);
+ $178 = $177;
+ $179 = $178;
+ HEAP32[$179>>2] = 0;
+ $180 = (($178) + 4)|0;
+ $181 = $180;
+ HEAP32[$181>>2] = 0;
+ $182 = ((($4)) + 160|0);
+ $183 = $182;
+ $184 = $183;
+ HEAP32[$184>>2] = 0;
+ $185 = (($183) + 4)|0;
+ $186 = $185;
+ HEAP32[$186>>2] = 0;
+ $187 = ((($4)) + 168|0);
+ $188 = $187;
+ $189 = $188;
+ HEAP32[$189>>2] = 0;
+ $190 = (($188) + 4)|0;
+ $191 = $190;
+ HEAP32[$191>>2] = 0;
+ $192 = ((($4)) + 176|0);
+ $193 = $192;
+ $194 = $193;
+ HEAP32[$194>>2] = 0;
+ $195 = (($193) + 4)|0;
+ $196 = $195;
+ HEAP32[$196>>2] = 0;
+ $197 = ((($4)) + 184|0);
+ $198 = $197;
+ $199 = $198;
+ HEAP32[$199>>2] = 0;
+ $200 = (($198) + 4)|0;
+ $201 = $200;
+ HEAP32[$201>>2] = 0;
+ $202 = ((($4)) + 192|0);
+ $203 = $202;
+ $204 = $203;
+ HEAP32[$204>>2] = 0;
+ $205 = (($203) + 4)|0;
+ $206 = $205;
+ HEAP32[$206>>2] = 0;
+ $207 = ((($4)) + 200|0);
+ $208 = $207;
+ $209 = $208;
+ HEAP32[$209>>2] = 0;
+ $210 = (($208) + 4)|0;
+ $211 = $210;
+ HEAP32[$211>>2] = 0;
+ $212 = ((($4)) + 208|0);
+ $213 = $212;
+ $214 = $213;
+ HEAP32[$214>>2] = 0;
+ $215 = (($213) + 4)|0;
+ $216 = $215;
+ HEAP32[$216>>2] = 0;
+ $217 = ((($4)) + 216|0);
+ $218 = $217;
+ $219 = $218;
+ HEAP32[$219>>2] = 0;
+ $220 = (($218) + 4)|0;
+ $221 = $220;
+ HEAP32[$221>>2] = 0;
+ $222 = ((($4)) + 224|0);
+ $223 = $222;
+ $224 = $223;
+ HEAP32[$224>>2] = 0;
+ $225 = (($223) + 4)|0;
+ $226 = $225;
+ HEAP32[$226>>2] = 0;
+ $227 = ((($4)) + 232|0);
+ $228 = $227;
+ $229 = $228;
+ HEAP32[$229>>2] = 0;
+ $230 = (($228) + 4)|0;
+ $231 = $230;
+ HEAP32[$231>>2] = 0;
+ $232 = ((($4)) + 240|0);
+ $233 = $232;
+ $234 = $233;
+ HEAP32[$234>>2] = 0;
+ $235 = (($233) + 4)|0;
+ $236 = $235;
+ HEAP32[$236>>2] = 0;
+ $237 = ((($4)) + 248|0);
+ $238 = $237;
+ $239 = $238;
+ HEAP32[$239>>2] = 0;
+ $240 = (($238) + 4)|0;
+ $241 = $240;
+ HEAP32[$241>>2] = 0;
+ $242 = ((($4)) + 256|0);
+ $243 = $242;
+ $244 = $243;
+ HEAP32[$244>>2] = 0;
+ $245 = (($243) + 4)|0;
+ $246 = $245;
+ HEAP32[$246>>2] = 0;
+ $247 = ((($4)) + 264|0);
+ $248 = $247;
+ $249 = $248;
+ HEAP32[$249>>2] = 0;
+ $250 = (($248) + 4)|0;
+ $251 = $250;
+ HEAP32[$251>>2] = 0;
+ $252 = ((($4)) + 272|0);
+ $253 = $252;
+ $254 = $253;
+ HEAP32[$254>>2] = 0;
+ $255 = (($253) + 4)|0;
+ $256 = $255;
+ HEAP32[$256>>2] = 0;
+ $257 = ((($4)) + 280|0);
+ $258 = $257;
+ $259 = $258;
+ HEAP32[$259>>2] = 0;
+ $260 = (($258) + 4)|0;
+ $261 = $260;
+ HEAP32[$261>>2] = 0;
+ $262 = ((($4)) + 288|0);
+ $263 = $262;
+ $264 = $263;
+ HEAP32[$264>>2] = 0;
+ $265 = (($263) + 4)|0;
+ $266 = $265;
+ HEAP32[$266>>2] = 0;
+ $267 = ((($4)) + 296|0);
+ $268 = $267;
+ $269 = $268;
+ HEAP32[$269>>2] = 0;
+ $270 = (($268) + 4)|0;
+ $271 = $270;
+ HEAP32[$271>>2] = 0;
+ $272 = ((($4)) + 304|0);
+ $273 = $272;
+ $274 = $273;
+ HEAP32[$274>>2] = 0;
+ $275 = (($273) + 4)|0;
+ $276 = $275;
+ HEAP32[$276>>2] = 0;
+ $277 = ((($4)) + 312|0);
+ $278 = $277;
+ $279 = $278;
+ HEAP32[$279>>2] = 0;
+ $280 = (($278) + 4)|0;
+ $281 = $280;
+ HEAP32[$281>>2] = 0;
+ $282 = ((($4)) + 320|0);
+ $283 = $282;
+ $284 = $283;
+ HEAP32[$284>>2] = 0;
+ $285 = (($283) + 4)|0;
+ $286 = $285;
+ HEAP32[$286>>2] = 0;
+ $287 = ((($4)) + 328|0);
+ $288 = $287;
+ $289 = $288;
+ HEAP32[$289>>2] = 0;
+ $290 = (($288) + 4)|0;
+ $291 = $290;
+ HEAP32[$291>>2] = 0;
+ $292 = ((($4)) + 336|0);
+ $293 = $292;
+ $294 = $293;
+ HEAP32[$294>>2] = 0;
+ $295 = (($293) + 4)|0;
+ $296 = $295;
+ HEAP32[$296>>2] = 0;
+ $297 = ((($4)) + 344|0);
+ $298 = $297;
+ $299 = $298;
+ HEAP32[$299>>2] = 0;
+ $300 = (($298) + 4)|0;
+ $301 = $300;
+ HEAP32[$301>>2] = 0;
+ $302 = ((($4)) + 352|0);
+ $303 = $302;
+ $304 = $303;
+ HEAP32[$304>>2] = 0;
+ $305 = (($303) + 4)|0;
+ $306 = $305;
+ HEAP32[$306>>2] = 0;
+ $307 = ((($4)) + 360|0);
+ $308 = $307;
+ $309 = $308;
+ HEAP32[$309>>2] = 0;
+ $310 = (($308) + 4)|0;
+ $311 = $310;
+ HEAP32[$311>>2] = 0;
+ $312 = ((($4)) + 368|0);
+ $313 = $312;
+ $314 = $313;
+ HEAP32[$314>>2] = 0;
+ $315 = (($313) + 4)|0;
+ $316 = $315;
+ HEAP32[$316>>2] = 0;
+ $317 = ((($4)) + 376|0);
+ $318 = $317;
+ $319 = $318;
+ HEAP32[$319>>2] = 0;
+ $320 = (($318) + 4)|0;
+ $321 = $320;
+ HEAP32[$321>>2] = 0;
+ $322 = ((($4)) + 384|0);
+ $323 = $322;
+ $324 = $323;
+ HEAP32[$324>>2] = 0;
+ $325 = (($323) + 4)|0;
+ $326 = $325;
+ HEAP32[$326>>2] = 0;
+ $327 = ((($4)) + 392|0);
+ $328 = $327;
+ $329 = $328;
+ HEAP32[$329>>2] = 0;
+ $330 = (($328) + 4)|0;
+ $331 = $330;
+ HEAP32[$331>>2] = 0;
+ $332 = ((($4)) + 400|0);
+ $333 = $332;
+ $334 = $333;
+ HEAP32[$334>>2] = 0;
+ $335 = (($333) + 4)|0;
+ $336 = $335;
+ HEAP32[$336>>2] = 0;
+ $337 = ((($4)) + 408|0);
+ $338 = $337;
+ $339 = $338;
+ HEAP32[$339>>2] = 0;
+ $340 = (($338) + 4)|0;
+ $341 = $340;
+ HEAP32[$341>>2] = 0;
+ $342 = ((($4)) + 416|0);
+ $343 = $342;
+ $344 = $343;
+ HEAP32[$344>>2] = 0;
+ $345 = (($343) + 4)|0;
+ $346 = $345;
+ HEAP32[$346>>2] = 0;
+ $347 = ((($4)) + 424|0);
+ $348 = $347;
+ $349 = $348;
+ HEAP32[$349>>2] = 0;
+ $350 = (($348) + 4)|0;
+ $351 = $350;
+ HEAP32[$351>>2] = 0;
+ $352 = ((($4)) + 432|0);
+ $353 = $352;
+ $354 = $353;
+ HEAP32[$354>>2] = 0;
+ $355 = (($353) + 4)|0;
+ $356 = $355;
+ HEAP32[$356>>2] = 0;
+ $357 = ((($4)) + 440|0);
+ $358 = $357;
+ $359 = $358;
+ HEAP32[$359>>2] = 0;
+ $360 = (($358) + 4)|0;
+ $361 = $360;
+ HEAP32[$361>>2] = 0;
+ $362 = ((($4)) + 448|0);
+ $363 = $362;
+ $364 = $363;
+ HEAP32[$364>>2] = 0;
+ $365 = (($363) + 4)|0;
+ $366 = $365;
+ HEAP32[$366>>2] = 0;
+ $367 = ((($4)) + 456|0);
+ $368 = $367;
+ $369 = $368;
+ HEAP32[$369>>2] = 0;
+ $370 = (($368) + 4)|0;
+ $371 = $370;
+ HEAP32[$371>>2] = 0;
+ $372 = ((($4)) + 464|0);
+ $373 = $372;
+ $374 = $373;
+ HEAP32[$374>>2] = 0;
+ $375 = (($373) + 4)|0;
+ $376 = $375;
+ HEAP32[$376>>2] = 0;
+ $377 = ((($4)) + 472|0);
+ $378 = $377;
+ $379 = $378;
+ HEAP32[$379>>2] = 0;
+ $380 = (($378) + 4)|0;
+ $381 = $380;
+ HEAP32[$381>>2] = 0;
+ $382 = ((($4)) + 480|0);
+ $383 = $382;
+ $384 = $383;
+ HEAP32[$384>>2] = 0;
+ $385 = (($383) + 4)|0;
+ $386 = $385;
+ HEAP32[$386>>2] = 0;
+ $387 = ((($4)) + 488|0);
+ $388 = $387;
+ $389 = $388;
+ HEAP32[$389>>2] = 0;
+ $390 = (($388) + 4)|0;
+ $391 = $390;
+ HEAP32[$391>>2] = 0;
+ $392 = ((($4)) + 496|0);
+ $393 = $392;
+ $394 = $393;
+ HEAP32[$394>>2] = 0;
+ $395 = (($393) + 4)|0;
+ $396 = $395;
+ HEAP32[$396>>2] = 0;
+ $397 = ((($4)) + 504|0);
+ $398 = $397;
+ $399 = $398;
+ HEAP32[$399>>2] = 0;
+ $400 = (($398) + 4)|0;
+ $401 = $400;
+ HEAP32[$401>>2] = 0;
+ $402 = ((($4)) + 512|0);
+ $403 = $402;
+ $404 = $403;
+ HEAP32[$404>>2] = 0;
+ $405 = (($403) + 4)|0;
+ $406 = $405;
+ HEAP32[$406>>2] = 0;
+ $407 = ((($4)) + 520|0);
+ $408 = $407;
+ $409 = $408;
+ HEAP32[$409>>2] = 0;
+ $410 = (($408) + 4)|0;
+ $411 = $410;
+ HEAP32[$411>>2] = 0;
+ $412 = ((($4)) + 528|0);
+ $413 = $412;
+ $414 = $413;
+ HEAP32[$414>>2] = 0;
+ $415 = (($413) + 4)|0;
+ $416 = $415;
+ HEAP32[$416>>2] = 0;
+ $417 = ((($4)) + 536|0);
+ $418 = $417;
+ $419 = $418;
+ HEAP32[$419>>2] = 0;
+ $420 = (($418) + 4)|0;
+ $421 = $420;
+ HEAP32[$421>>2] = 0;
+ $422 = ((($4)) + 544|0);
+ $423 = $422;
+ $424 = $423;
+ HEAP32[$424>>2] = 0;
+ $425 = (($423) + 4)|0;
+ $426 = $425;
+ HEAP32[$426>>2] = 0;
+ $427 = ((($4)) + 552|0);
+ $428 = $427;
+ $429 = $428;
+ HEAP32[$429>>2] = 0;
+ $430 = (($428) + 4)|0;
+ $431 = $430;
+ HEAP32[$431>>2] = 0;
+ $432 = ((($4)) + 560|0);
+ $433 = $432;
+ $434 = $433;
+ HEAP32[$434>>2] = 0;
+ $435 = (($433) + 4)|0;
+ $436 = $435;
+ HEAP32[$436>>2] = 0;
+ $437 = ((($4)) + 568|0);
+ $438 = $437;
+ $439 = $438;
+ HEAP32[$439>>2] = 0;
+ $440 = (($438) + 4)|0;
+ $441 = $440;
+ HEAP32[$441>>2] = 0;
+ $442 = ((($4)) + 576|0);
+ $443 = $442;
+ $444 = $443;
+ HEAP32[$444>>2] = 0;
+ $445 = (($443) + 4)|0;
+ $446 = $445;
+ HEAP32[$446>>2] = 0;
+ $447 = ((($4)) + 584|0);
+ $448 = $447;
+ $449 = $448;
+ HEAP32[$449>>2] = 0;
+ $450 = (($448) + 4)|0;
+ $451 = $450;
+ HEAP32[$451>>2] = 0;
+ $452 = ((($4)) + 592|0);
+ $453 = $452;
+ $454 = $453;
+ HEAP32[$454>>2] = 0;
+ $455 = (($453) + 4)|0;
+ $456 = $455;
+ HEAP32[$456>>2] = 0;
+ $457 = ((($4)) + 600|0);
+ $458 = $457;
+ $459 = $458;
+ HEAP32[$459>>2] = 0;
+ $460 = (($458) + 4)|0;
+ $461 = $460;
+ HEAP32[$461>>2] = 0;
+ $462 = ((($4)) + 608|0);
+ $463 = $462;
+ $464 = $463;
+ HEAP32[$464>>2] = 0;
+ $465 = (($463) + 4)|0;
+ $466 = $465;
+ HEAP32[$466>>2] = 0;
+ $467 = ((($4)) + 616|0);
+ $468 = $467;
+ $469 = $468;
+ HEAP32[$469>>2] = 0;
+ $470 = (($468) + 4)|0;
+ $471 = $470;
+ HEAP32[$471>>2] = 0;
+ $472 = ((($4)) + 624|0);
+ $473 = $472;
+ $474 = $473;
+ HEAP32[$474>>2] = 0;
+ $475 = (($473) + 4)|0;
+ $476 = $475;
+ HEAP32[$476>>2] = 0;
+ $477 = ((($4)) + 632|0);
+ $478 = $477;
+ $479 = $478;
+ HEAP32[$479>>2] = 0;
+ $480 = (($478) + 4)|0;
+ $481 = $480;
+ HEAP32[$481>>2] = 0;
+ $482 = ((($4)) + 640|0);
+ $483 = $482;
+ $484 = $483;
+ HEAP32[$484>>2] = 0;
+ $485 = (($483) + 4)|0;
+ $486 = $485;
+ HEAP32[$486>>2] = 0;
+ $487 = ((($4)) + 648|0);
+ $488 = $487;
+ $489 = $488;
+ HEAP32[$489>>2] = 0;
+ $490 = (($488) + 4)|0;
+ $491 = $490;
+ HEAP32[$491>>2] = 0;
+ $492 = ((($4)) + 656|0);
+ $493 = $492;
+ $494 = $493;
+ HEAP32[$494>>2] = 0;
+ $495 = (($493) + 4)|0;
+ $496 = $495;
+ HEAP32[$496>>2] = 0;
+ $497 = ((($4)) + 664|0);
+ $498 = $497;
+ $499 = $498;
+ HEAP32[$499>>2] = 0;
+ $500 = (($498) + 4)|0;
+ $501 = $500;
+ HEAP32[$501>>2] = 0;
+ $502 = ((($4)) + 672|0);
+ $503 = $502;
+ $504 = $503;
+ HEAP32[$504>>2] = 0;
+ $505 = (($503) + 4)|0;
+ $506 = $505;
+ HEAP32[$506>>2] = 0;
+ $507 = ((($4)) + 680|0);
+ $508 = $507;
+ $509 = $508;
+ HEAP32[$509>>2] = 0;
+ $510 = (($508) + 4)|0;
+ $511 = $510;
+ HEAP32[$511>>2] = 0;
+ $512 = ((($4)) + 688|0);
+ $513 = $512;
+ $514 = $513;
+ HEAP32[$514>>2] = 0;
+ $515 = (($513) + 4)|0;
+ $516 = $515;
+ HEAP32[$516>>2] = 0;
+ $517 = ((($4)) + 696|0);
+ $518 = $517;
+ $519 = $518;
+ HEAP32[$519>>2] = 0;
+ $520 = (($518) + 4)|0;
+ $521 = $520;
+ HEAP32[$521>>2] = 0;
+ $522 = ((($4)) + 704|0);
+ $523 = $522;
+ $524 = $523;
+ HEAP32[$524>>2] = 0;
+ $525 = (($523) + 4)|0;
+ $526 = $525;
+ HEAP32[$526>>2] = 0;
+ $527 = ((($4)) + 712|0);
+ $528 = $527;
+ $529 = $528;
+ HEAP32[$529>>2] = 0;
+ $530 = (($528) + 4)|0;
+ $531 = $530;
+ HEAP32[$531>>2] = 0;
+ $532 = ((($4)) + 720|0);
+ $533 = $532;
+ $534 = $533;
+ HEAP32[$534>>2] = 0;
+ $535 = (($533) + 4)|0;
+ $536 = $535;
+ HEAP32[$536>>2] = 0;
+ $537 = ((($4)) + 728|0);
+ $538 = $537;
+ $539 = $538;
+ HEAP32[$539>>2] = 0;
+ $540 = (($538) + 4)|0;
+ $541 = $540;
+ HEAP32[$541>>2] = 0;
+ $542 = ((($4)) + 736|0);
+ $543 = $542;
+ $544 = $543;
+ HEAP32[$544>>2] = 0;
+ $545 = (($543) + 4)|0;
+ $546 = $545;
+ HEAP32[$546>>2] = 0;
+ $547 = ((($4)) + 744|0);
+ $548 = $547;
+ $549 = $548;
+ HEAP32[$549>>2] = 0;
+ $550 = (($548) + 4)|0;
+ $551 = $550;
+ HEAP32[$551>>2] = 0;
+ $552 = ((($4)) + 752|0);
+ $553 = $552;
+ $554 = $553;
+ HEAP32[$554>>2] = 0;
+ $555 = (($553) + 4)|0;
+ $556 = $555;
+ HEAP32[$556>>2] = 0;
+ $557 = ((($4)) + 760|0);
+ $558 = $557;
+ $559 = $558;
+ HEAP32[$559>>2] = 0;
+ $560 = (($558) + 4)|0;
+ $561 = $560;
+ HEAP32[$561>>2] = 0;
+ $562 = ($$0119$lcssa|0)==(0);
+ if ($562) {
+  STACKTOP = sp;return 0;
+ }
+ __gcry_random_progress(69710,88,$2,$2);
+ STACKTOP = sp;return 0;
+}
+function _open_device($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$lcssa1016 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, 
$5 = 0, $6 = 0, $7 = 0, $8 = 0;
+ var $9 = 0, $or$cond11 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, 
$vararg_buffer11 = 0, $vararg_buffer14 = 0, $vararg_buffer3 = 0, 
$vararg_buffer5 = 0, $vararg_buffer8 = 0, $vararg_ptr17 = 0, $vararg_ptr7 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(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;
+ $2 = sp + 56|0;
+ $3 = ($1|0)!=(0);
+ do {
+  if ($3) {
+   __gcry_random_progress(69814,88,1,0);
+   $6 = (_open($0,0,$vararg_buffer1)|0);
+   $7 = ($6|0)==(-1);
+   $or$cond11 = $3 & $7;
+   if ($or$cond11) {
+    $8 = ((($2)) + 4|0);
+    while(1) {
+     HEAP32[$2>>2] = 5;
+     HEAP32[$8>>2] = 0;
+     __gcry_random_progress(69830,88,0,5);
+     (_select(0,0,0,0,$2)|0);
+     $9 = (_open($0,0,$vararg_buffer3)|0);
+     $10 = ($9|0)==(-1);
+     if (!($10)) {
+      $$lcssa1016 = $9;
+      break;
+     }
+    }
+   } else {
+    if (!($7)) {
+     $$lcssa1016 = $6;
+     break;
+    }
+    $11 = (___errno_location()|0);
+    $12 = HEAP32[$11>>2]|0;
+    $13 = (_strerror($12)|0);
+    HEAP32[$vararg_buffer5>>2] = $0;
+    $vararg_ptr7 = ((($vararg_buffer5)) + 4|0);
+    HEAP32[$vararg_ptr7>>2] = $13;
+    __gcry_log_fatal(69846,$vararg_buffer5);
+    // unreachable;
+   }
+  } else {
+   $4 = (_open($0,0,$vararg_buffer)|0);
+   $5 = ($4|0)==(-1);
+   if ($5) {
+    $11 = (___errno_location()|0);
+    $12 = HEAP32[$11>>2]|0;
+    $13 = (_strerror($12)|0);
+    HEAP32[$vararg_buffer5>>2] = $0;
+    $vararg_ptr7 = ((($vararg_buffer5)) + 4|0);
+    HEAP32[$vararg_ptr7>>2] = $13;
+    __gcry_log_fatal(69846,$vararg_buffer5);
+    // unreachable;
+   } else {
+    $$lcssa1016 = $4;
+   }
+  }
+ } while(0);
+ HEAP32[$vararg_buffer8>>2] = 0;
+ $14 = (_fcntl($$lcssa1016,1,$vararg_buffer8)|0);
+ $15 = ($14|0)<(0);
+ if (!($15)) {
+  $16 = $14 | 1;
+  HEAP32[$vararg_buffer11>>2] = $16;
+  $17 = (_fcntl($$lcssa1016,2,$vararg_buffer11)|0);
+  $18 = ($17|0)==(0);
+  if ($18) {
+   STACKTOP = sp;return ($$lcssa1016|0);
+  }
+ }
+ $19 = (___errno_location()|0);
+ $20 = HEAP32[$19>>2]|0;
+ $21 = (_strerror($20)|0);
+ HEAP32[$vararg_buffer14>>2] = $$lcssa1016;
+ $vararg_ptr17 = ((($vararg_buffer14)) + 4|0);
+ HEAP32[$vararg_ptr17>>2] = $21;
+ __gcry_log_error(69865,$vararg_buffer14);
+ STACKTOP = sp;return ($$lcssa1016|0);
+}
+function __gcry_mpih_addmul_1($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$076 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (0 - ($2))|0;
+ $5 = (($0) + ($2<<2)|0);
+ $6 = (($1) + ($2<<2)|0);
+ $7 = $3 & 65535;
+ $8 = $3 >>> 16;
+ $$0 = 0;$$076 = $4;
+ while(1) {
+  $9 = (($6) + ($$076<<2)|0);
+  $10 = HEAP32[$9>>2]|0;
+  $11 = $10 & 65535;
+  $12 = $10 >>> 16;
+  $13 = Math_imul($11, $7)|0;
+  $14 = Math_imul($11, $8)|0;
+  $15 = Math_imul($12, $7)|0;
+  $16 = Math_imul($12, $8)|0;
+  $17 = $13 >>> 16;
+  $18 = (($15) + ($14))|0;
+  $19 = (($18) + ($17))|0;
+  $20 = ($19>>>0)<($15>>>0);
+  $21 = (($16) + 65536)|0;
+  $spec$select = $20 ? $21 : $16;
+  $22 = $19 >>> 16;
+  $23 = (($spec$select) + ($22))|0;
+  $24 = $19 << 16;
+  $25 = $13 & 65535;
+  $26 = $24 | $25;
+  $27 = (($26) + ($$0))|0;
+  $28 = ($27>>>0)<($$0>>>0);
+  $29 = $28&1;
+  $30 = (($23) + ($29))|0;
+  $31 = (($5) + ($$076<<2)|0);
+  $32 = HEAP32[$31>>2]|0;
+  $33 = (($27) + ($32))|0;
+  $34 = ($33>>>0)<($32>>>0);
+  $35 = $34&1;
+  $36 = (($30) + ($35))|0;
+  HEAP32[$31>>2] = $33;
+  $37 = (($$076) + 1)|0;
+  $38 = ($37|0)==(0);
+  if ($38) {
+   break;
+  } else {
+   $$0 = $36;$$076 = $37;
+  }
+ }
+ return ($36|0);
+}
+function __gcry_dsa_gen_k($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $$0$us = 0, $$1 = 0, $$1$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, 
$13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, 
$21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 
= 0, $9 = 0, $vararg_buffer = 0;
+ var $vararg_buffer2 = 0, $vararg_buffer4 = 0, $vararg_buffer6 = 0, 
$vararg_buffer8 = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(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 = ((($0)) + 4|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = (__gcry_mpi_alloc_secure($3)|0);
+ $5 = (__gcry_mpi_get_nbits($0)|0);
+ $6 = (($5) + 7)|0;
+ $7 = $6 >>> 3;
+ $8 = (__gcry_get_debug_flag(1)|0);
+ $9 = ($8|0)==(0);
+ if (!($9)) {
+  HEAP32[$vararg_buffer>>2] = $5;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = $1;
+  __gcry_log_debug(69904,$vararg_buffer);
+ }
+ $10 = ($5>>>0)<(32);
+ $11 = (($5) + -1)|0;
+ if ($10) {
+  $$0$us = 0;
+  while(1) {
+   __gcry_free($$0$us);
+   $12 = (__gcry_random_bytes_secure($7,$1)|0);
+   __gcry_mpi_set_buffer($4,$12,$7,0);
+   $13 = (__gcry_mpi_test_bit($4,$11)|0);
+   $14 = ($13|0)==(0);
+   __gcry_mpi_set_highbit($4,$11);
+   if ($14) {
+    __gcry_mpi_clear_bit($4,$11);
+   }
+   $15 = (__gcry_mpi_cmp($4,$0)|0);
+   $16 = ($15|0)<(0);
+   if ($16) {
+    $19 = (__gcry_mpi_cmp_ui($4,0)|0);
+    $20 = ($19|0)>(0);
+    if ($20) {
+     $$1$lcssa = $12;
+     break;
+    }
+    $21 = (__gcry_get_debug_flag(1)|0);
+    $22 = ($21|0)==(0);
+    if (!($22)) {
+     __gcry_log_debug(69973,$vararg_buffer4);
+    }
+   } else {
+    $17 = (__gcry_get_debug_flag(1)|0);
+    $18 = ($17|0)==(0);
+    if (!($18)) {
+     __gcry_log_debug(69951,$vararg_buffer2);
+    }
+   }
+   $$0$us = $12;
+  }
+  __gcry_free($$1$lcssa);
+  STACKTOP = sp;return ($4|0);
+ }
+ $$0 = 0;
+ while(1) {
+  $23 = ($$0|0)==(0|0);
+  if ($23) {
+   __gcry_free(0);
+   $24 = (__gcry_random_bytes_secure($7,$1)|0);
+   $$1 = $24;
+  } else {
+   $25 = (__gcry_random_bytes_secure(4,$1)|0);
+   $26 = 
HEAPU8[$25>>0]|(HEAPU8[$25+1>>0]<<8)|(HEAPU8[$25+2>>0]<<16)|(HEAPU8[$25+3>>0]<<24);
+   
HEAP8[$$0>>0]=$26&255;HEAP8[$$0+1>>0]=($26>>8)&255;HEAP8[$$0+2>>0]=($26>>16)&255;HEAP8[$$0+3>>0]=$26>>24;
+   __gcry_free($25);
+   $$1 = $$0;
+  }
+  __gcry_mpi_set_buffer($4,$$1,$7,0);
+  $27 = (__gcry_mpi_test_bit($4,$11)|0);
+  $28 = ($27|0)==(0);
+  __gcry_mpi_set_highbit($4,$11);
+  if ($28) {
+   __gcry_mpi_clear_bit($4,$11);
+  }
+  $29 = (__gcry_mpi_cmp($4,$0)|0);
+  $30 = ($29|0)<(0);
+  if ($30) {
+   $33 = (__gcry_mpi_cmp_ui($4,0)|0);
+   $34 = ($33|0)>(0);
+   if ($34) {
+    $$1$lcssa = $$1;
+    break;
+   }
+   $35 = (__gcry_get_debug_flag(1)|0);
+   $36 = ($35|0)==(0);
+   if (!($36)) {
+    __gcry_log_debug(69973,$vararg_buffer8);
+   }
+  } else {
+   $31 = (__gcry_get_debug_flag(1)|0);
+   $32 = ($31|0)==(0);
+   if (!($32)) {
+    __gcry_log_debug(69951,$vararg_buffer6);
+   }
+  }
+  $$0 = $$1;
+ }
+ __gcry_free($$1$lcssa);
+ STACKTOP = sp;return ($4|0);
+}
+function __gcry_dsa_gen_rfc6979_k($0,$1,$2,$3,$4,$5,$6) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ var $$0135 = 0, $$0136145$us = 0, $$0136145$us$be = 0, $$0137 = 0, $$0138 = 
0, $$0139 = 0, $$0140$ph = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, 
$104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0;
+ var $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;
+ var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 
= 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;
+ var $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, $40 = 0, $41 = 0, $42 = 
0, $43 = 0, $44 = 0, $45 = 0;
+ var $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;
+ var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, 
$73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, 
$81 = 0, $82 = 0, $83 = 0;
+ var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, 
$91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 
0, $or$cond = 0, $or$cond3 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $7 = sp + 16|0;
+ $8 = sp + 12|0;
+ $9 = sp + 8|0;
+ $10 = sp + 4|0;
+ $11 = sp;
+ HEAP32[$8>>2] = 0;
+ HEAP32[$9>>2] = 0;
+ HEAP32[$10>>2] = 0;
+ HEAP32[$11>>2] = 0;
+ $12 = (__gcry_mpi_get_nbits($1)|0);
+ $13 = ($12|0)!=(0);
+ $14 = ($3|0)!=(0|0);
+ $or$cond = $14 & $13;
+ $15 = ($4|0)!=(0);
+ $or$cond3 = $15 & $or$cond;
+ if (!($or$cond3)) {
+  $$0135 = 32816;
+  STACKTOP = sp;return ($$0135|0);
+ }
+ $16 = (__gcry_md_get_algo_dlen($5)|0);
+ $17 = ($16|0)==($4|0);
+ if (!($17)) {
+  $$0135 = 5;
+  STACKTOP = sp;return ($$0135|0);
+ }
+ $18 = (__gcry_malloc($4)|0);
+ $19 = ($18|0)==(0|0);
+ L7: do {
+  if ($19) {
+   $20 = (_gpg_err_code_from_syserror()|0);
+   $$0137 = 0;$$0138 = 0;$$0139 = $20;
+  } else {
+   _memset(($18|0),1,($4|0))|0;
+   $21 = (__gcry_calloc(1,$4)|0);
+   $22 = ($21|0)==(0|0);
+   if ($22) {
+    $23 = (_gpg_err_code_from_syserror()|0);
+    $$0137 = 0;$$0138 = 0;$$0139 = $23;
+    break;
+   }
+   $24 = (($12) + 7)|0;
+   $25 = $24 >>> 3;
+   $26 = (_int2octets($8,$2,$25)|0);
+   $27 = ($26|0)==(0);
+   if ($27) {
+    $28 = $4 << 3;
+    $29 = $4 & 536870911;
+    $30 = (__gcry_mpi_scan($7,5,$3,$29,0)|0);
+    $31 = ($30|0)==(0);
+    if (!($31)) {
+     $$0137 = 0;$$0138 = $21;$$0139 = $30;
+     break;
+    }
+    $32 = ($28>>>0)>($12>>>0);
+    if ($32) {
+     $33 = (($28) - ($12))|0;
+     $34 = HEAP32[$7>>2]|0;
+     __gcry_mpi_rshift($34,$34,$33);
+    }
+    $35 = HEAP32[$7>>2]|0;
+    $36 = (__gcry_mpi_cmp($35,$1)|0);
+    $37 = ($36|0)>(-1);
+    if ($37) {
+     $38 = HEAP32[$7>>2]|0;
+     __gcry_mpi_sub($38,$38,$1);
+    }
+    $39 = HEAP32[$7>>2]|0;
+    $40 = (_int2octets($9,$39,$25)|0);
+    $41 = HEAP32[$7>>2]|0;
+    __gcry_mpi_free($41);
+    $42 = ($40|0)==(0);
+    if ($42) {
+     $43 = (__gcry_md_open($10,$5,3)|0);
+     $44 = ($43|0)==(0);
+     if ($44) {
+      $45 = HEAP32[$10>>2]|0;
+      $46 = (__gcry_md_setkey($45,$21,$4)|0);
+      $47 = ($46|0)==(0);
+      if ($47) {
+       $48 = HEAP32[$10>>2]|0;
+       __gcry_md_write($48,$18,$4);
+       $49 = HEAP32[$10>>2]|0;
+       __gcry_md_write($49,73338,1);
+       $50 = HEAP32[$10>>2]|0;
+       $51 = HEAP32[$8>>2]|0;
+       __gcry_md_write($50,$51,$25);
+       $52 = HEAP32[$10>>2]|0;
+       $53 = HEAP32[$9>>2]|0;
+       __gcry_md_write($52,$53,$25);
+       $54 = HEAP32[$10>>2]|0;
+       $55 = (__gcry_md_read($54,0)|0);
+       _memcpy(($21|0),($55|0),($4|0))|0;
+       $56 = HEAP32[$10>>2]|0;
+       $57 = (__gcry_md_setkey($56,$21,$4)|0);
+       $58 = ($57|0)==(0);
+       if ($58) {
+        $59 = HEAP32[$10>>2]|0;
+        __gcry_md_write($59,$18,$4);
+        $60 = HEAP32[$10>>2]|0;
+        $61 = (__gcry_md_read($60,0)|0);
+        _memcpy(($18|0),($61|0),($4|0))|0;
+        $62 = HEAP32[$10>>2]|0;
+        $63 = (__gcry_md_setkey($62,$21,$4)|0);
+        $64 = ($63|0)==(0);
+        if ($64) {
+         $65 = HEAP32[$10>>2]|0;
+         __gcry_md_write($65,$18,$4);
+         $66 = HEAP32[$10>>2]|0;
+         __gcry_md_write($66,69993,1);
+         $67 = HEAP32[$10>>2]|0;
+         __gcry_md_write($67,$51,$25);
+         $68 = HEAP32[$10>>2]|0;
+         __gcry_md_write($68,$53,$25);
+         $69 = HEAP32[$10>>2]|0;
+         $70 = (__gcry_md_read($69,0)|0);
+         _memcpy(($21|0),($70|0),($4|0))|0;
+         $71 = HEAP32[$10>>2]|0;
+         $72 = (__gcry_md_setkey($71,$21,$4)|0);
+         $73 = ($72|0)==(0);
+         if ($73) {
+          $74 = HEAP32[$10>>2]|0;
+          __gcry_md_write($74,$18,$4);
+          $75 = HEAP32[$10>>2]|0;
+          $76 = (__gcry_md_read($75,0)|0);
+          _memcpy(($18|0),($76|0),($4|0))|0;
+          $77 = (($25) + ($4))|0;
+          $78 = (__gcry_malloc($77)|0);
+          $79 = ($78|0)==(0|0);
+          if ($79) {
+           $80 = (_gpg_err_code_from_syserror()|0);
+           $$0137 = 0;$$0138 = $21;$$0139 = $80;
+           break;
+          }
+          $$0140$ph = $6;
+          while(1) {
+           $$0136145$us = 0;
+           while(1) {
+            $104 = HEAP32[$10>>2]|0;
+            $105 = (__gcry_md_setkey($104,$21,$4)|0);
+            $106 = ($105|0)==(0);
+            if (!($106)) {
+             $$0137 = $78;$$0138 = $21;$$0139 = $105;
+             break L7;
+            }
+            $107 = HEAP32[$10>>2]|0;
+            __gcry_md_write($107,$18,$4);
+            $108 = HEAP32[$10>>2]|0;
+            $109 = (__gcry_md_read($108,0)|0);
+            _memcpy(($18|0),($109|0),($4|0))|0;
+            $110 = $$0136145$us >>> 3;
+            $111 = (($78) + ($110)|0);
+            _memcpy(($111|0),($18|0),($4|0))|0;
+            $82 = (($$0136145$us) + ($28))|0;
+            $112 = ($82>>>0)<($12>>>0);
+            if ($112) {
+             $$0136145$us$be = $82;
+            } else {
+             $113 = HEAP32[$11>>2]|0;
+             __gcry_mpi_free($113);
+             HEAP32[$11>>2] = 0;
+             $114 = $82 >>> 3;
+             $115 = (__gcry_mpi_scan($11,5,$78,$114,0)|0);
+             $116 = ($115|0)==(0);
+             if (!($116)) {
+              $$0137 = $78;$$0138 = $21;$$0139 = $115;
+              break L7;
+             }
+             $81 = ($82>>>0)>($12>>>0);
+             if ($81) {
+              $83 = (($82) - ($12))|0;
+              $84 = HEAP32[$11>>2]|0;
+              __gcry_mpi_rshift($84,$84,$83);
+             }
+             $85 = HEAP32[$11>>2]|0;
+             $86 = (__gcry_mpi_cmp($85,$1)|0);
+             $87 = ($86|0)<(0);
+             if ($87) {
+              $88 = HEAP32[$11>>2]|0;
+              $89 = (__gcry_mpi_cmp_ui($88,0)|0);
+              $90 = ($89|0)>(0);
+              if ($90) {
+               break;
+              }
+             }
+             $91 = HEAP32[$10>>2]|0;
+             $92 = (__gcry_md_setkey($91,$21,$4)|0);
+             $93 = ($92|0)==(0);
+             if (!($93)) {
+              $$0137 = $78;$$0138 = $21;$$0139 = $92;
+              break L7;
+             }
+             $94 = HEAP32[$10>>2]|0;
+             __gcry_md_write($94,$18,$4);
+             $95 = HEAP32[$10>>2]|0;
+             __gcry_md_write($95,73338,1);
+             $96 = HEAP32[$10>>2]|0;
+             $97 = (__gcry_md_read($96,0)|0);
+             _memcpy(($21|0),($97|0),($4|0))|0;
+             $98 = HEAP32[$10>>2]|0;
+             $99 = (__gcry_md_setkey($98,$21,$4)|0);
+             $100 = ($99|0)==(0);
+             if (!($100)) {
+              $$0137 = $78;$$0138 = $21;$$0139 = $99;
+              break L7;
+             }
+             $101 = HEAP32[$10>>2]|0;
+             __gcry_md_write($101,$18,$4);
+             $102 = HEAP32[$10>>2]|0;
+             $103 = (__gcry_md_read($102,0)|0);
+             _memcpy(($18|0),($103|0),($4|0))|0;
+             $$0136145$us$be = 0;
+            }
+            $$0136145$us = $$0136145$us$be;
+           }
+           $117 = ($$0140$ph|0)==(0);
+           if ($117) {
+            $$0137 = $78;$$0138 = $21;$$0139 = 0;
+            break L7;
+           }
+           $118 = (($$0140$ph) + -1)|0;
+           $119 = HEAP32[$10>>2]|0;
+           $120 = (__gcry_md_setkey($119,$21,$4)|0);
+           $121 = ($120|0)==(0);
+           if (!($121)) {
+            $$0137 = $78;$$0138 = $21;$$0139 = $120;
+            break L7;
+           }
+           $122 = HEAP32[$10>>2]|0;
+           __gcry_md_write($122,$18,$4);
+           $123 = HEAP32[$10>>2]|0;
+           __gcry_md_write($123,73338,1);
+           $124 = HEAP32[$10>>2]|0;
+           $125 = (__gcry_md_read($124,0)|0);
+           _memcpy(($21|0),($125|0),($4|0))|0;
+           $126 = HEAP32[$10>>2]|0;
+           $127 = (__gcry_md_setkey($126,$21,$4)|0);
+           $128 = ($127|0)==(0);
+           if (!($128)) {
+            $$0137 = $78;$$0138 = $21;$$0139 = $127;
+            break L7;
+           }
+           $129 = HEAP32[$10>>2]|0;
+           __gcry_md_write($129,$18,$4);
+           $130 = HEAP32[$10>>2]|0;
+           $131 = (__gcry_md_read($130,0)|0);
+           _memcpy(($18|0),($131|0),($4|0))|0;
+           $$0140$ph = $118;
+          }
+         } else {
+          $$0137 = 0;$$0138 = $21;$$0139 = $72;
+         }
+        } else {
+         $$0137 = 0;$$0138 = $21;$$0139 = $63;
+        }
+       } else {
+        $$0137 = 0;$$0138 = $21;$$0139 = $57;
+       }
+      } else {
+       $$0137 = 0;$$0138 = $21;$$0139 = $46;
+      }
+     } else {
+      $$0137 = 0;$$0138 = $21;$$0139 = $43;
+     }
+    } else {
+     $$0137 = 0;$$0138 = $21;$$0139 = $40;
+    }
+   } else {
+    $$0137 = 0;$$0138 = $21;$$0139 = $26;
+   }
+  }
+ } while(0);
+ __gcry_free($$0137);
+ $132 = HEAP32[$10>>2]|0;
+ __gcry_md_close($132);
+ $133 = HEAP32[$9>>2]|0;
+ __gcry_free($133);
+ $134 = HEAP32[$8>>2]|0;
+ __gcry_free($134);
+ __gcry_free($$0138);
+ __gcry_free($18);
+ $135 = ($$0139|0)==(0);
+ $136 = HEAP32[$11>>2]|0;
+ if ($135) {
+  HEAP32[$0>>2] = $136;
+  $$0135 = 0;
+  STACKTOP = sp;return ($$0135|0);
+ } else {
+  __gcry_mpi_free($136);
+  $$0135 = $$0139;
+  STACKTOP = sp;return ($$0135|0);
+ }
+ return (0)|0;
+}
+function _int2octets($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $3 = 0, $4 = 0;
+ var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $3 = sp;
+ $4 = (__gcry_mpi_print(5,0,0,$3,$1)|0);
+ $5 = ($4|0)==(0);
+ if (!($5)) {
+  $$0 = $4;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $6 = HEAP32[$3>>2]|0;
+ $7 = ($6>>>0)>($2>>>0);
+ if ($7) {
+  $$0 = 67;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $8 = ($6>>>0)<($2>>>0);
+ $9 = (($2) - ($6))|0;
+ $spec$select = $8 ? $9 : 0;
+ $10 = (($spec$select) + ($6))|0;
+ $11 = ($1|0)==(0|0);
+ if ($11) {
+  label = 6;
+ } else {
+  $12 = ((($1)) + 12|0);
+  $13 = HEAP32[$12>>2]|0;
+  $14 = $13 & 1;
+  $15 = ($14|0)==(0);
+  if ($15) {
+   label = 6;
+  } else {
+   $16 = (__gcry_malloc_secure($10)|0);
+   $19 = $16;
+  }
+ }
+ if ((label|0) == 6) {
+  $17 = (__gcry_malloc($10)|0);
+  $19 = $17;
+ }
+ $18 = ($19|0)==(0|0);
+ if ($18) {
+  $20 = (_gpg_err_code_from_syserror()|0);
+  $$0 = $20;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $21 = ($spec$select|0)==(0);
+ if (!($21)) {
+  _memset(($19|0),0,($spec$select|0))|0;
+ }
+ $22 = HEAP32[$3>>2]|0;
+ $23 = (($22) + ($spec$select))|0;
+ HEAP32[$3>>2] = $23;
+ $24 = (($19) + ($spec$select)|0);
+ $25 = (__gcry_mpi_print(5,$24,$22,0,$1)|0);
+ $26 = ($25|0)==(0);
+ if ($26) {
+  HEAP32[$0>>2] = $19;
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ } else {
+  __gcry_free($19);
+  $$0 = $25;
+  STACKTOP = sp;return ($$0|0);
+ }
+ return (0)|0;
+}
+function __gcry_dsa_normalize_hash($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 
= 0, $9 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $3 = sp + 4|0;
+ $4 = sp;
+ $5 = ($0|0)==(0|0);
+ if ($5) {
+  label = 6;
+ } else {
+  $6 = ((($0)) + 12|0);
+  $7 = HEAP32[$6>>2]|0;
+  $8 = $7 & 4;
+  $9 = ($8|0)==(0);
+  if ($9) {
+   label = 6;
+  } else {
+   $10 = (__gcry_mpi_get_opaque($0,$3)|0);
+   $11 = HEAP32[$3>>2]|0;
+   $12 = (($11) + 7)|0;
+   $13 = $12 >>> 3;
+   $14 = (__gcry_mpi_scan($4,5,$10,$13,0)|0);
+   $15 = ($14|0)==(0);
+   if (!($15)) {
+    $$0 = $14;
+    STACKTOP = sp;return ($$0|0);
+   }
+   $16 = HEAP32[$3>>2]|0;
+   $17 = ($16>>>0)>($2>>>0);
+   if ($17) {
+    $18 = (($16) - ($2))|0;
+    $19 = HEAP32[$4>>2]|0;
+    __gcry_mpi_rshift($19,$19,$18);
+   }
+  }
+ }
+ if ((label|0) == 6) {
+  HEAP32[$4>>2] = $0;
+ }
+ $20 = HEAP32[$4>>2]|0;
+ HEAP32[$1>>2] = $20;
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_ecc_ecdsa_sign($0,$1,$2,$3,$4,$5) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ var $$0 = 0, $$074 = 0, $$175$us = 0, $$276$lcssa77 = 0, $$3 = 0, $10 = 0, 
$11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 
0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $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, $40 = 0, $41 = 
0, $42 = 0, $43 = 0, $44 = 0;
+ var $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, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $63 = 0;
+ var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, 
$71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 
0, $8 = 0, $80 = 0, $9 = 0;
+ var $or$cond = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer = sp;
+ $6 = sp + 24|0;
+ $7 = sp + 12|0;
+ $8 = sp + 8|0;
+ $9 = sp + 4|0;
+ $10 = (__gcry_get_debug_flag(1)|0);
+ $11 = ($10|0)==(0);
+ if (!($11)) {
+  __gcry_log_printmpi(69995,$0);
+ }
+ $12 = ((($1)) + 32|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = (__gcry_mpi_get_nbits($13)|0);
+ $15 = (__gcry_dsa_normalize_hash($0,$8,$14)|0);
+ $16 = ($15|0)==(0);
+ if (!($16)) {
+  $$0 = $15;
+  STACKTOP = sp;return ($$0|0);
+ }
+ HEAP32[$6>>2] = 0;
+ $17 = (__gcry_mpi_alloc(0)|0);
+ $18 = (__gcry_mpi_alloc(0)|0);
+ $19 = (__gcry_mpi_alloc(0)|0);
+ $20 = (__gcry_mpi_alloc(0)|0);
+ __gcry_mpi_point_init($7);
+ $21 = HEAP32[$1>>2]|0;
+ $22 = ((($1)) + 4|0);
+ $23 = HEAP32[$22>>2]|0;
+ $24 = ((($1)) + 8|0);
+ $25 = HEAP32[$24>>2]|0;
+ $26 = ((($1)) + 12|0);
+ $27 = HEAP32[$26>>2]|0;
+ $28 = ((($1)) + 16|0);
+ $29 = HEAP32[$28>>2]|0;
+ $30 = (__gcry_mpi_ec_p_internal_new($21,$23,0,$25,$27,$29)|0);
+ $31 = $4 & 2;
+ $32 = ($31|0)!=(0);
+ $33 = ($5|0)!=(0);
+ $or$cond = $32 & $33;
+ $34 = ($0|0)==(0|0);
+ $35 = ((($1)) + 20|0);
+ $36 = ((($0)) + 12|0);
+ $37 = ((($1)) + 56|0);
+ $$074 = 0;
+ L7: while(1) {
+  if ($or$cond) {
+   $$175$us = $$074;
+   while(1) {
+    $38 = HEAP32[$6>>2]|0;
+    __gcry_mpi_free($38);
+    HEAP32[$6>>2] = 0;
+    if ($34) {
+     $$3 = 70;
+     break L7;
+    }
+    $39 = HEAP32[$36>>2]|0;
+    $40 = $39 & 4;
+    $41 = ($40|0)==(0);
+    if ($41) {
+     $$3 = 70;
+     break L7;
+    }
+    $42 = (__gcry_mpi_get_opaque($0,$9)|0);
+    $43 = HEAP32[$12>>2]|0;
+    $44 = HEAP32[$37>>2]|0;
+    $45 = HEAP32[$9>>2]|0;
+    $46 = (($45) + 7)|0;
+    $47 = $46 >>> 3;
+    $48 = (__gcry_dsa_gen_rfc6979_k($6,$43,$44,$42,$47,$5,$$175$us)|0);
+    $49 = ($48|0)==(0);
+    if (!($49)) {
+     $$3 = $48;
+     break L7;
+    }
+    $50 = (($$175$us) + 1)|0;
+    $51 = HEAP32[$6>>2]|0;
+    __gcry_mpi_ec_mul_point($7,$51,$35,$30);
+    $52 = (__gcry_mpi_ec_get_affine($20,0,$7,$30)|0);
+    $53 = ($52|0)==(0);
+    if (!($53)) {
+     label = 14;
+     break L7;
+    }
+    $54 = HEAP32[$12>>2]|0;
+    __gcry_mpi_mod($2,$20,$54);
+    $55 = (__gcry_mpi_cmp_ui($2,0)|0);
+    $56 = ($55|0)==(0);
+    if ($56) {
+     $$175$us = $50;
+    } else {
+     $$276$lcssa77 = $50;
+     break;
+    }
+   }
+  } else {
+   while(1) {
+    $57 = HEAP32[$6>>2]|0;
+    __gcry_mpi_free($57);
+    HEAP32[$6>>2] = 0;
+    $58 = HEAP32[$12>>2]|0;
+    $59 = (__gcry_dsa_gen_k($58,1)|0);
+    HEAP32[$6>>2] = $59;
+    __gcry_mpi_ec_mul_point($7,$59,$35,$30);
+    $60 = (__gcry_mpi_ec_get_affine($20,0,$7,$30)|0);
+    $61 = ($60|0)==(0);
+    if (!($61)) {
+     label = 14;
+     break L7;
+    }
+    $64 = HEAP32[$12>>2]|0;
+    __gcry_mpi_mod($2,$20,$64);
+    $65 = (__gcry_mpi_cmp_ui($2,0)|0);
+    $66 = ($65|0)==(0);
+    if (!($66)) {
+     $$276$lcssa77 = $$074;
+     break;
+    }
+   }
+  }
+  $67 = HEAP32[$37>>2]|0;
+  $68 = HEAP32[$12>>2]|0;
+  __gcry_mpi_mulm($17,$67,$2,$68);
+  $69 = HEAP32[$8>>2]|0;
+  $70 = HEAP32[$12>>2]|0;
+  __gcry_mpi_addm($18,$69,$17,$70);
+  $71 = HEAP32[$6>>2]|0;
+  $72 = HEAP32[$12>>2]|0;
+  (__gcry_mpi_invm($19,$71,$72)|0);
+  $73 = HEAP32[$12>>2]|0;
+  __gcry_mpi_mulm($3,$19,$18,$73);
+  $74 = (__gcry_mpi_cmp_ui($3,0)|0);
+  $75 = ($74|0)==(0);
+  if ($75) {
+   $$074 = $$276$lcssa77;
+  } else {
+   label = 18;
+   break;
+  }
+ }
+ if ((label|0) == 14) {
+  $62 = (__gcry_get_debug_flag(1)|0);
+  $63 = ($62|0)==(0);
+  if ($63) {
+   $$3 = 8;
+  } else {
+   __gcry_log_debug(70072,$vararg_buffer);
+   $$3 = 8;
+  }
+ }
+ else if ((label|0) == 18) {
+  $76 = (__gcry_get_debug_flag(1)|0);
+  $77 = ($76|0)==(0);
+  if ($77) {
+   $$3 = 0;
+  } else {
+   __gcry_log_printmpi(70013,$2);
+   __gcry_log_printmpi(70034,$3);
+   $$3 = 0;
+  }
+ }
+ __gcry_mpi_ec_free($30);
+ __gcry_mpi_point_free_parts($7);
+ __gcry_mpi_free($20);
+ __gcry_mpi_free($19);
+ __gcry_mpi_free($18);
+ __gcry_mpi_free($17);
+ $78 = HEAP32[$6>>2]|0;
+ __gcry_mpi_free($78);
+ $79 = HEAP32[$8>>2]|0;
+ $80 = ($79|0)==($0|0);
+ if ($80) {
+  $$0 = $$3;
+  STACKTOP = sp;return ($$0|0);
+ }
+ __gcry_mpi_free($79);
+ $$0 = $$3;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_ecc_ecdsa_verify($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$063 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $27 = 0;
+ var $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;
+ var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $7 = 0, $8 = 0, 
$9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(64|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $4 = sp + 48|0;
+ $5 = sp + 36|0;
+ $6 = sp + 24|0;
+ $7 = sp + 12|0;
+ $8 = (__gcry_mpi_cmp_ui($2,0)|0);
+ $9 = ($8|0)>(0);
+ if (!($9)) {
+  $$0 = 8;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $10 = ((($1)) + 32|0);
+ $11 = HEAP32[$10>>2]|0;
+ $12 = (__gcry_mpi_cmp($2,$11)|0);
+ $13 = ($12|0)<(0);
+ if (!($13)) {
+  $$0 = 8;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $14 = (__gcry_mpi_cmp_ui($3,0)|0);
+ $15 = ($14|0)>(0);
+ if (!($15)) {
+  $$0 = 8;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $16 = HEAP32[$10>>2]|0;
+ $17 = (__gcry_mpi_cmp($3,$16)|0);
+ $18 = ($17|0)<(0);
+ if (!($18)) {
+  $$0 = 8;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $19 = HEAP32[$10>>2]|0;
+ $20 = (__gcry_mpi_get_nbits($19)|0);
+ $21 = (__gcry_dsa_normalize_hash($0,$4,$20)|0);
+ $22 = ($21|0)==(0);
+ if (!($22)) {
+  $$0 = $21;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $23 = (__gcry_mpi_alloc(0)|0);
+ $24 = (__gcry_mpi_alloc(0)|0);
+ $25 = (__gcry_mpi_alloc(0)|0);
+ $26 = (__gcry_mpi_alloc(0)|0);
+ __gcry_mpi_point_init($5);
+ __gcry_mpi_point_init($6);
+ __gcry_mpi_point_init($7);
+ $27 = HEAP32[$1>>2]|0;
+ $28 = ((($1)) + 4|0);
+ $29 = HEAP32[$28>>2]|0;
+ $30 = ((($1)) + 8|0);
+ $31 = HEAP32[$30>>2]|0;
+ $32 = ((($1)) + 12|0);
+ $33 = HEAP32[$32>>2]|0;
+ $34 = ((($1)) + 16|0);
+ $35 = HEAP32[$34>>2]|0;
+ $36 = (__gcry_mpi_ec_p_internal_new($27,$29,0,$31,$33,$35)|0);
+ $37 = HEAP32[$10>>2]|0;
+ (__gcry_mpi_invm($23,$3,$37)|0);
+ $38 = HEAP32[$4>>2]|0;
+ $39 = HEAP32[$10>>2]|0;
+ __gcry_mpi_mulm($24,$38,$23,$39);
+ $40 = ((($1)) + 20|0);
+ __gcry_mpi_ec_mul_point($6,$24,$40,$36);
+ $41 = HEAP32[$10>>2]|0;
+ __gcry_mpi_mulm($25,$2,$23,$41);
+ $42 = ((($1)) + 44|0);
+ __gcry_mpi_ec_mul_point($7,$25,$42,$36);
+ __gcry_mpi_ec_add_points($5,$6,$7,$36);
+ $43 = ((($5)) + 8|0);
+ $44 = HEAP32[$43>>2]|0;
+ $45 = (__gcry_mpi_cmp_ui($44,0)|0);
+ $46 = ($45|0)==(0);
+ do {
+  if ($46) {
+   $47 = (__gcry_get_debug_flag(1)|0);
+   $48 = ($47|0)==(0);
+   if ($48) {
+    $$063 = 8;
+   } else {
+    __gcry_log_debug(70156,$vararg_buffer);
+    $$063 = 8;
+   }
+  } else {
+   $49 = (__gcry_mpi_ec_get_affine($26,0,$5,$36)|0);
+   $50 = ($49|0)==(0);
+   if (!($50)) {
+    $51 = (__gcry_get_debug_flag(1)|0);
+    $52 = ($51|0)==(0);
+    if ($52) {
+     $$063 = 8;
+     break;
+    }
+    __gcry_log_debug(70178,$vararg_buffer1);
+    $$063 = 8;
+    break;
+   }
+   $53 = HEAP32[$10>>2]|0;
+   __gcry_mpi_mod($26,$26,$53);
+   $54 = (__gcry_mpi_cmp($26,$2)|0);
+   $55 = ($54|0)==(0);
+   if ($55) {
+    $$063 = 0;
+   } else {
+    $56 = (__gcry_get_debug_flag(1)|0);
+    $57 = ($56|0)==(0);
+    if ($57) {
+     $$063 = 8;
+    } else {
+     __gcry_log_printmpi(70224,$26);
+     __gcry_log_printmpi(70231,$2);
+     __gcry_log_printmpi(70238,$3);
+     $$063 = 8;
+    }
+   }
+  }
+ } while(0);
+ __gcry_mpi_ec_free($36);
+ __gcry_mpi_point_free_parts($7);
+ __gcry_mpi_point_free_parts($6);
+ __gcry_mpi_point_free_parts($5);
+ __gcry_mpi_free($26);
+ __gcry_mpi_free($25);
+ __gcry_mpi_free($24);
+ __gcry_mpi_free($23);
+ $58 = HEAP32[$4>>2]|0;
+ $59 = ($58|0)==($0|0);
+ if ($59) {
+  $$0 = $$063;
+  STACKTOP = sp;return ($$0|0);
+ }
+ __gcry_mpi_free($58);
+ $$0 = $$063;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_ecc_gost_sign($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$1 = 0, $$177 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, 
$15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 
0, $24 = 0, $25 = 0, $26 = 0;
+ var $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;
+ var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $63 = 0;
+ var $64 = 0, $65 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, 
sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer = sp;
+ $4 = sp + 12|0;
+ $5 = sp + 8|0;
+ $6 = sp + 4|0;
+ $7 = (__gcry_get_debug_flag(1)|0);
+ $8 = ($7|0)==(0);
+ if (!($8)) {
+  __gcry_log_printmpi(70055,$0);
+ }
+ $9 = ((($1)) + 32|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = (__gcry_mpi_get_nbits($10)|0);
+ $12 = ($0|0)==(0|0);
+ if ($12) {
+  label = 8;
+ } else {
+  $13 = ((($0)) + 12|0);
+  $14 = HEAP32[$13>>2]|0;
+  $15 = $14 & 4;
+  $16 = ($15|0)==(0);
+  if ($16) {
+   label = 8;
+  } else {
+   $17 = (__gcry_mpi_get_opaque($0,$6)|0);
+   $18 = HEAP32[$6>>2]|0;
+   $19 = (($18) + 7)|0;
+   $20 = $19 >>> 3;
+   $21 = (__gcry_mpi_scan($5,5,$17,$20,0)|0);
+   $22 = ($21|0)==(0);
+   if (!($22)) {
+    $$0 = $21;
+    STACKTOP = sp;return ($$0|0);
+   }
+   $23 = HEAP32[$6>>2]|0;
+   $24 = ($23>>>0)>($11>>>0);
+   if ($24) {
+    $25 = (($23) - ($11))|0;
+    $26 = HEAP32[$5>>2]|0;
+    __gcry_mpi_rshift($26,$26,$25);
+   }
+  }
+ }
+ if ((label|0) == 8) {
+  HEAP32[$5>>2] = $0;
+ }
+ $27 = (__gcry_mpi_alloc(0)|0);
+ $28 = (__gcry_mpi_alloc(0)|0);
+ $29 = (__gcry_mpi_alloc(0)|0);
+ $30 = (__gcry_mpi_alloc(0)|0);
+ $31 = (__gcry_mpi_alloc(0)|0);
+ __gcry_mpi_point_init($4);
+ $32 = HEAP32[$1>>2]|0;
+ $33 = ((($1)) + 4|0);
+ $34 = HEAP32[$33>>2]|0;
+ $35 = ((($1)) + 8|0);
+ $36 = HEAP32[$35>>2]|0;
+ $37 = ((($1)) + 12|0);
+ $38 = HEAP32[$37>>2]|0;
+ $39 = ((($1)) + 16|0);
+ $40 = HEAP32[$39>>2]|0;
+ $41 = (__gcry_mpi_ec_p_internal_new($32,$34,0,$36,$38,$40)|0);
+ $42 = HEAP32[$9>>2]|0;
+ __gcry_mpi_mod($30,$0,$42);
+ $43 = (__gcry_mpi_cmp_ui($30,0)|0);
+ $44 = ($43|0)==(0);
+ if ($44) {
+  (__gcry_mpi_set_ui($30,1)|0);
+ }
+ $45 = ((($1)) + 20|0);
+ $46 = ((($1)) + 56|0);
+ $$177 = 0;
+ while(1) {
+  __gcry_mpi_free($$177);
+  $47 = HEAP32[$9>>2]|0;
+  $48 = (__gcry_dsa_gen_k($47,1)|0);
+  __gcry_mpi_ec_mul_point($4,$48,$45,$41);
+  $49 = (__gcry_mpi_ec_get_affine($31,0,$4,$41)|0);
+  $50 = ($49|0)==(0);
+  if (!($50)) {
+   label = 13;
+   break;
+  }
+  $53 = HEAP32[$9>>2]|0;
+  __gcry_mpi_mod($2,$31,$53);
+  $54 = (__gcry_mpi_cmp_ui($2,0)|0);
+  $55 = ($54|0)==(0);
+  if (!($55)) {
+   $56 = HEAP32[$46>>2]|0;
+   $57 = HEAP32[$9>>2]|0;
+   __gcry_mpi_mulm($27,$56,$2,$57);
+   $58 = HEAP32[$9>>2]|0;
+   __gcry_mpi_mulm($29,$48,$30,$58);
+   $59 = HEAP32[$9>>2]|0;
+   __gcry_mpi_addm($3,$29,$27,$59);
+   $60 = (__gcry_mpi_cmp_ui($3,0)|0);
+   $61 = ($60|0)==(0);
+   if (!($61)) {
+    label = 18;
+    break;
+   }
+  }
+  $$177 = $48;
+ }
+ if ((label|0) == 13) {
+  $51 = (__gcry_get_debug_flag(1)|0);
+  $52 = ($51|0)==(0);
+  if ($52) {
+   $$1 = 8;
+  } else {
+   __gcry_log_debug(70072,$vararg_buffer);
+   $$1 = 8;
+  }
+ }
+ else if ((label|0) == 18) {
+  $62 = (__gcry_get_debug_flag(1)|0);
+  $63 = ($62|0)==(0);
+  if ($63) {
+   $$1 = 0;
+  } else {
+   __gcry_log_printmpi(70116,$2);
+   __gcry_log_printmpi(70136,$3);
+   $$1 = 0;
+  }
+ }
+ __gcry_mpi_ec_free($41);
+ __gcry_mpi_point_free_parts($4);
+ __gcry_mpi_free($31);
+ __gcry_mpi_free($30);
+ __gcry_mpi_free($29);
+ __gcry_mpi_free($28);
+ __gcry_mpi_free($27);
+ __gcry_mpi_free($48);
+ $64 = HEAP32[$5>>2]|0;
+ $65 = ($64|0)==($0|0);
+ if ($65) {
+  $$0 = $$1;
+  STACKTOP = sp;return ($$0|0);
+ }
+ __gcry_mpi_free($64);
+ $$0 = $$1;
+ STACKTOP = sp;return ($$0|0);
+}
+function __gcry_ecc_gost_verify($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$074 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $27 = 0;
+ var $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;
+ var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0;
+ var $vararg_buffer5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(64|0);
+ $vararg_buffer5 = sp + 24|0;
+ $vararg_buffer3 = sp + 16|0;
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ $4 = sp + 52|0;
+ $5 = sp + 40|0;
+ $6 = sp + 28|0;
+ $7 = (__gcry_mpi_cmp_ui($2,0)|0);
+ $8 = ($7|0)>(0);
+ if (!($8)) {
+  $$0 = 8;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $9 = ((($1)) + 32|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = (__gcry_mpi_cmp($2,$10)|0);
+ $12 = ($11|0)<(0);
+ if (!($12)) {
+  $$0 = 8;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $13 = (__gcry_mpi_cmp_ui($3,0)|0);
+ $14 = ($13|0)>(0);
+ if (!($14)) {
+  $$0 = 8;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $15 = HEAP32[$9>>2]|0;
+ $16 = (__gcry_mpi_cmp($3,$15)|0);
+ $17 = ($16|0)<(0);
+ if (!($17)) {
+  $$0 = 8;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $18 = (__gcry_mpi_alloc(0)|0);
+ $19 = (__gcry_mpi_alloc(0)|0);
+ $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($4);
+ __gcry_mpi_point_init($5);
+ __gcry_mpi_point_init($6);
+ $25 = HEAP32[$1>>2]|0;
+ $26 = ((($1)) + 4|0);
+ $27 = HEAP32[$26>>2]|0;
+ $28 = ((($1)) + 8|0);
+ $29 = HEAP32[$28>>2]|0;
+ $30 = ((($1)) + 12|0);
+ $31 = HEAP32[$30>>2]|0;
+ $32 = ((($1)) + 16|0);
+ $33 = HEAP32[$32>>2]|0;
+ $34 = (__gcry_mpi_ec_p_internal_new($25,$27,0,$29,$31,$33)|0);
+ $35 = HEAP32[$9>>2]|0;
+ __gcry_mpi_mod($19,$0,$35);
+ $36 = (__gcry_mpi_cmp_ui($19,0)|0);
+ $37 = ($36|0)==(0);
+ if ($37) {
+  (__gcry_mpi_set_ui($19,1)|0);
+ }
+ $38 = HEAP32[$9>>2]|0;
+ (__gcry_mpi_invm($22,$19,$38)|0);
+ $39 = HEAP32[$9>>2]|0;
+ __gcry_mpi_mulm($20,$3,$22,$39);
+ $40 = HEAP32[$9>>2]|0;
+ __gcry_mpi_mulm($23,$2,$22,$40);
+ $41 = HEAP32[$9>>2]|0;
+ __gcry_mpi_subm($21,$24,$23,$41);
+ $42 = ((($1)) + 20|0);
+ __gcry_mpi_ec_mul_point($5,$20,$42,$34);
+ $43 = ((($1)) + 44|0);
+ __gcry_mpi_ec_mul_point($6,$21,$43,$34);
+ __gcry_mpi_ec_add_points($4,$5,$6,$34);
+ $44 = ((($4)) + 8|0);
+ $45 = HEAP32[$44>>2]|0;
+ $46 = (__gcry_mpi_cmp_ui($45,0)|0);
+ $47 = ($46|0)==(0);
+ do {
+  if ($47) {
+   $48 = (__gcry_get_debug_flag(1)|0);
+   $49 = ($48|0)==(0);
+   if ($49) {
+    $$074 = 8;
+   } else {
+    __gcry_log_debug(70156,$vararg_buffer);
+    $$074 = 8;
+   }
+  } else {
+   $50 = (__gcry_mpi_ec_get_affine($18,0,$4,$34)|0);
+   $51 = ($50|0)==(0);
+   if (!($51)) {
+    $52 = (__gcry_get_debug_flag(1)|0);
+    $53 = ($52|0)==(0);
+    if ($53) {
+     $$074 = 8;
+     break;
+    }
+    __gcry_log_debug(70178,$vararg_buffer1);
+    $$074 = 8;
+    break;
+   }
+   $54 = HEAP32[$9>>2]|0;
+   __gcry_mpi_mod($18,$18,$54);
+   $55 = (__gcry_mpi_cmp($18,$2)|0);
+   $56 = ($55|0)==(0);
+   $57 = (__gcry_get_debug_flag(1)|0);
+   $58 = ($57|0)!=(0);
+   if ($56) {
+    if (!($58)) {
+     $$074 = 0;
+     break;
+    }
+    __gcry_log_debug(70271,$vararg_buffer5);
+    $$074 = 0;
+    break;
+   } else {
+    if (!($58)) {
+     $$074 = 8;
+     break;
+    }
+    __gcry_log_printmpi(70224,$18);
+    __gcry_log_printmpi(70231,$2);
+    __gcry_log_printmpi(70238,$3);
+    __gcry_log_debug(70245,$vararg_buffer3);
+    $$074 = 8;
+    break;
+   }
+  }
+ } while(0);
+ __gcry_mpi_ec_free($34);
+ __gcry_mpi_point_free_parts($6);
+ __gcry_mpi_point_free_parts($5);
+ __gcry_mpi_point_free_parts($4);
+ __gcry_mpi_free($24);
+ __gcry_mpi_free($23);
+ __gcry_mpi_free($22);
+ __gcry_mpi_free($21);
+ __gcry_mpi_free($20);
+ __gcry_mpi_free($18);
+ __gcry_mpi_free($19);
+ $$0 = $$074;
+ STACKTOP = sp;return ($$0|0);
+}
+function _gpg_err_init() {
+ var $0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = (__gpg_err_init()|0);
+ return ($0|0);
+}
+function _gpg_strerror($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gpg_strerror($0)|0);
+ return ($1|0);
+}
+function _gpg_err_code_from_errno($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gpg_err_code_from_errno($0)|0);
+ return ($1|0);
+}
+function _gpg_err_code_to_errno($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gpg_err_code_to_errno($0)|0);
+ return ($1|0);
+}
+function _gpg_err_code_from_syserror() {
+ var $0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = (__gpg_err_code_from_syserror()|0);
+ return ($0|0);
+}
+function _gpg_err_set_errno($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __gpg_err_set_errno($0);
+ return;
+}
+function _gpgrt_lock_init($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gpgrt_lock_init($0)|0);
+ return ($1|0);
+}
+function _gpgrt_lock_lock($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gpgrt_lock_lock($0)|0);
+ return ($1|0);
+}
+function _gpgrt_lock_unlock($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gpgrt_lock_unlock($0)|0);
+ return ($1|0);
+}
+function _gpgrt_lock_destroy($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (__gpgrt_lock_destroy($0)|0);
+ return ($1|0);
+}
+function __gpgrt_lock_init($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[$0>>2]|0;
+ switch ($1|0) {
+ case 0:  {
+  HEAP32[$0>>2] = 1;
+  break;
+ }
+ case 1:  {
+  break;
+ }
+ default: {
+  ___assert_fail((70293|0),(70313|0),114,(70326|0));
+  // unreachable;
+ }
+ }
+ $2 = ((($0)) + 4|0);
+ $3 = (_pthread_mutex_init(($2|0),(0|0))|0);
+ $4 = ($3|0)==(0);
+ if ($4) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $5 = (_gpg_err_code_from_errno($3)|0);
+ $$0 = $5;
+ return ($$0|0);
+}
+function __gpgrt_lock_lock($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ $1 = HEAP32[$0>>2]|0;
+ $2 = ($1|0)==(1);
+ if (!($2)) {
+  ___assert_fail((70293|0),(70313|0),114,(70326|0));
+  // unreachable;
+ }
+ $3 = ((($0)) + 4|0);
+ $4 = (_pthread_mutex_lock(($3|0))|0);
+ $5 = ($4|0)==(0);
+ if ($5) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $6 = (_gpg_err_code_from_errno($4)|0);
+ $$0 = $6;
+ return ($$0|0);
+}
+function __gpgrt_lock_unlock($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ $1 = HEAP32[$0>>2]|0;
+ $2 = ($1|0)==(1);
+ if (!($2)) {
+  ___assert_fail((70293|0),(70313|0),114,(70326|0));
+  // unreachable;
+ }
+ $3 = ((($0)) + 4|0);
+ $4 = (_pthread_mutex_unlock(($3|0))|0);
+ $5 = ($4|0)==(0);
+ if ($5) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $6 = (_gpg_err_code_from_errno($4)|0);
+ $$0 = $6;
+ return ($$0|0);
+}
+function __gpgrt_lock_destroy($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, dest = 0, label 
= 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[$0>>2]|0;
+ $2 = ($1|0)==(1);
+ if (!($2)) {
+  ___assert_fail((70293|0),(70313|0),114,(70326|0));
+  // unreachable;
+ }
+ $3 = ((($0)) + 4|0);
+ $4 = (_pthread_mutex_destroy(($3|0))|0);
+ $5 = ($4|0)==(0);
+ if ($5) {
+  HEAP32[$0>>2] = 1;
+  dest=$3; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+  $$0 = 0;
+  return ($$0|0);
+ } else {
+  $6 = (_gpg_err_code_from_errno($4)|0);
+  $$0 = $6;
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function __gpg_err_init() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ (__gpgrt_es_init()|0);
+ return 0;
+}
+function __gpg_err_set_errno($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (___errno_location()|0);
+ HEAP32[$1>>2] = $0;
+ return;
+}
+function __gpgrt_es_init() {
+ var $0 = 0, $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = HEAP32[18177]|0;
+ $1 = ($0|0)==(0);
+ if (!($1)) {
+  return 0;
+ }
+ HEAP32[18177] = 1;
+ (_atexit((87|0))|0);
+ return 0;
+}
+function _do_deinit() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ (__gpgrt_fflush(0)|0);
+ return;
+}
+function __gpgrt_fflush($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$0$i = 0, $$0$i20 = 0, $$014$lcssa = 0, $$01424 = 0, $$025 = 0, 
$$1 = 0, $$2 = 0, $$idx = 0, $$idx$val = 0, $$idx15 = 0, $$idx15$val = 0, 
$$idx16 = 0, $$idx16$val = 0, $$idx17$val = 0, $$pre = 0, $$pre26 = 0, $1 = 0, 
$10 = 0, $11 = 0;
+ var $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, 
$2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, 
$28 = 0, $29 = 0, $3 = 0;
+ var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, 
$38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, 
$5 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if (!($1)) {
+  $$idx15 = ((($0)) + 36|0);
+  $$idx15$val = HEAP32[$$idx15>>2]|0;
+  $2 = ((($$idx15$val)) + 1148|0);
+  $3 = HEAP8[$2>>0]|0;
+  $4 = $3 & 32;
+  $5 = ($4<<24>>24)==(0);
+  if ($5) {
+   $6 = ((($$idx15$val)) + 1040|0);
+   (__gpgrt_lock_lock($6)|0);
+  }
+  $7 = HEAP32[$0>>2]|0;
+  $8 = $7 & 65536;
+  $9 = ($8|0)==(0);
+  if ($9) {
+   $11 = ((($0)) + 12|0);
+   HEAP32[$11>>2] = 0;
+   $12 = ((($0)) + 16|0);
+   HEAP32[$12>>2] = 0;
+   $13 = ((($0)) + 32|0);
+   HEAP32[$13>>2] = 0;
+   $$0$i = 0;
+  } else {
+   $10 = (_es_flush($0)|0);
+   $$0$i = $10;
+  }
+  $$idx17$val = HEAP32[$$idx15>>2]|0;
+  $14 = ((($$idx17$val)) + 1148|0);
+  $15 = HEAP8[$14>>0]|0;
+  $16 = $15 & 32;
+  $17 = ($16<<24>>24)==(0);
+  if (!($17)) {
+   $$2 = $$0$i;
+   $44 = ($$2|0)!=(0);
+   $45 = $44 << 31 >> 31;
+   return ($45|0);
+  }
+  $18 = ((($$idx17$val)) + 1040|0);
+  (__gpgrt_lock_unlock($18)|0);
+  $$2 = $$0$i;
+  $44 = ($$2|0)!=(0);
+  $45 = $44 << 31 >> 31;
+  return ($45|0);
+ }
+ (__gpgrt_lock_lock(40352)|0);
+ $19 = (0|0)==(0|0);
+ if ($19) {
+  $$014$lcssa = 0;
+ } else {
+  $$01424 = 0;$$025 = 0;
+  while(1) {
+   $20 = ((($$025)) + 4|0);
+   $21 = HEAP32[$20>>2]|0;
+   $22 = ($21|0)==(0|0);
+   if ($22) {
+    $$1 = $$01424;
+   } else {
+    $$idx = ((($21)) + 36|0);
+    $$idx$val = HEAP32[$$idx>>2]|0;
+    $23 = ((($$idx$val)) + 1148|0);
+    $24 = HEAP8[$23>>0]|0;
+    $25 = $24 & 32;
+    $26 = ($25<<24>>24)==(0);
+    if ($26) {
+     $27 = ((($$idx$val)) + 1040|0);
+     (__gpgrt_lock_lock($27)|0);
+     $$pre = HEAP32[$20>>2]|0;
+     $29 = $$pre;
+    } else {
+     $29 = $21;
+    }
+    $28 = HEAP32[$29>>2]|0;
+    $30 = $28 & 65536;
+    $31 = ($30|0)==(0);
+    if ($31) {
+     $33 = ((($29)) + 12|0);
+     HEAP32[$33>>2] = 0;
+     $34 = ((($29)) + 16|0);
+     HEAP32[$34>>2] = 0;
+     $35 = ((($29)) + 32|0);
+     HEAP32[$35>>2] = 0;
+     $$0$i20 = 0;$37 = $29;
+    } else {
+     $32 = (_es_flush($29)|0);
+     $$pre26 = HEAP32[$20>>2]|0;
+     $$0$i20 = $32;$37 = $$pre26;
+    }
+    $36 = $$0$i20 | $$01424;
+    $$idx16 = ((($37)) + 36|0);
+    $$idx16$val = HEAP32[$$idx16>>2]|0;
+    $38 = ((($$idx16$val)) + 1148|0);
+    $39 = HEAP8[$38>>0]|0;
+    $40 = $39 & 32;
+    $41 = ($40<<24>>24)==(0);
+    if ($41) {
+     $42 = ((($$idx16$val)) + 1040|0);
+     (__gpgrt_lock_unlock($42)|0);
+     $$1 = $36;
+    } else {
+     $$1 = $36;
+    }
+   }
+   $$0 = HEAP32[$$025>>2]|0;
+   $43 = ($$0|0)==(0|0);
+   if ($43) {
+    $$014$lcssa = $$1;
+    break;
+   } else {
+    $$01424 = $$1;$$025 = $$0;
+   }
+  }
+ }
+ (__gpgrt_lock_unlock(40352)|0);
+ $$2 = $$014$lcssa;
+ $44 = ($$2|0)!=(0);
+ $45 = $44 << 31 >> 31;
+ return ($45|0);
+}
+function _es_flush($0) {
+ $0 = $0|0;
+ var $$ = 0, $$2 = 0, $$446 = 0, $$448 = 0, $$63 = 0, $$lcssa = 0, $$pre = 0, 
$$pre54$pre = 0, $$pre55 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 
0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
+ var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, 
$27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $36 = 0, $37 = 0;
+ var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, 
$45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0;
+ var $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 36|0);
+ $2 = HEAP32[$1>>2]|0;
+ $3 = ((($2)) + 1116|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = HEAP32[$0>>2]|0;
+ $6 = $5 & 65536;
+ $7 = ($6|0)==(0);
+ if ($7) {
+  ___assert_fail((70342|0),(70364|0),1654,(70374|0));
+  // unreachable;
+ }
+ $8 = ((($0)) + 16|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ($9|0)==(0);
+ if ($10) {
+  $$446 = 0;
+  return ($$446|0);
+ }
+ $11 = ($4|0)==(0|0);
+ do {
+  if ($11) {
+   $$448 = 95;$54 = $2;
+  } else {
+   $12 = ($9|0)>(0);
+   if (!($12)) {
+    $$446 = 0;
+    return ($$446|0);
+   }
+   $13 = ((($0)) + 4|0);
+   $14 = ((($2)) + 1084|0);
+   $15 = HEAP32[$14>>2]|0;
+   $16 = HEAP32[$13>>2]|0;
+   $17 = (FUNCTION_TABLE_iiii[$4 & 127]($15,$16,$9)|0);
+   $18 = ($17|0)==(-1);
+   $$63 = $18 ? 0 : $17;
+   L12: do {
+    if ($18) {
+     $$lcssa = $$63;
+     label = 10;
+    } else {
+     $21 = $$63;
+     while(1) {
+      $19 = HEAP32[$8>>2]|0;
+      $20 = (($19) - ($21))|0;
+      $22 = ($20|0)>(0);
+      if (!($22)) {
+       $$2 = 0;$33 = $21;$35 = $19;
+       break L12;
+      }
+      $$pre = HEAP32[$1>>2]|0;
+      $23 = ((($$pre)) + 1084|0);
+      $24 = HEAP32[$23>>2]|0;
+      $25 = HEAP32[$13>>2]|0;
+      $26 = (($25) + ($21)|0);
+      $27 = (FUNCTION_TABLE_iiii[$4 & 127]($24,$26,$20)|0);
+      $28 = ($27|0)==(-1);
+      $$ = $28 ? 0 : $27;
+      $29 = (($$) + ($21))|0;
+      if ($28) {
+       $$lcssa = $29;
+       label = 10;
+       break;
+      } else {
+       $21 = $29;
+      }
+     }
+    }
+   } while(0);
+   if ((label|0) == 10) {
+    $$pre54$pre = HEAP32[$8>>2]|0;
+    $$2 = -1;$33 = $$lcssa;$35 = $$pre54$pre;
+   }
+   $30 = ((($0)) + 20|0);
+   $31 = HEAP32[$30>>2]|0;
+   $32 = (($31) + ($33))|0;
+   HEAP32[$30>>2] = $32;
+   $34 = ($35|0)==($33|0);
+   if ($34) {
+    $36 = HEAP32[$1>>2]|0;
+    $37 = ((($36)) + 1104|0);
+    $38 = $37;
+    $39 = $38;
+    $40 = HEAP32[$39>>2]|0;
+    $41 = (($38) + 4)|0;
+    $42 = $41;
+    $43 = HEAP32[$42>>2]|0;
+    $44 = (_i64Add(($40|0),($43|0),($35|0),0)|0);
+    $45 = tempRet0;
+    $46 = $37;
+    $47 = $46;
+    HEAP32[$47>>2] = $44;
+    $48 = (($46) + 4)|0;
+    $49 = $48;
+    HEAP32[$49>>2] = $45;
+    HEAP32[$8>>2] = 0;
+    HEAP32[$30>>2] = 0;
+    $50 = ((($36)) + 1084|0);
+    $51 = HEAP32[$50>>2]|0;
+    (FUNCTION_TABLE_iiii[$4 & 127]($51,0,0)|0);
+   }
+   $52 = ($$2|0)==(0);
+   if ($52) {
+    $$446 = 0;
+    return ($$446|0);
+   } else {
+    $$pre55 = HEAP32[$1>>2]|0;
+    $$448 = -1;$54 = $$pre55;
+    break;
+   }
+  }
+ } while(0);
+ $53 = ((($54)) + 1144|0);
+ $55 = HEAP8[$53>>0]|0;
+ $56 = $55 | 1;
+ HEAP8[$53>>0] = $56;
+ $$446 = $$448;
+ return ($$446|0);
+}
+function __gpg_strerror($0) {
+ $0 = $0|0;
+ var $$1 = 0, $$1121417202326293235384143454850 = 0, $$off$i = 0, $$off64$i = 
0, $$off65$i = 0, $$off66$i = 0, $$off67$i = 0, $$off68$i = 0, $$off69$i = 0, 
$$off70$i = 0, $$off71$i = 0, $$off75$i = 0, $$off77$i = 0, $1 = 0, $10 = 0, 
$11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0;
+ var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, 
$23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, 
$31 = 0, $32 = 0, $33 = 0;
+ var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 
= 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $trunc = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = $0 & 65535;
+ $2 = $0 & 32768;
+ $3 = ($2|0)==(0);
+ L1: do {
+  if ($3) {
+   $7 = ($1>>>0)<(214);
+   if ($7) {
+    $38 = $1;
+   } else {
+    $$off$i = (($1) + -222)|0;
+    $8 = ($$off$i>>>0)<(33);
+    if ($8) {
+     $9 = (($1) + -8)|0;
+     $38 = $9;
+     break;
+    }
+    $$off64$i = (($1) + -257)|0;
+    $10 = ($$off64$i>>>0)<(15);
+    if ($10) {
+     $11 = (($1) + -10)|0;
+     $38 = $11;
+     break;
+    }
+    $$off65$i = (($1) + -273)|0;
+    $12 = ($$off65$i>>>0)<(9);
+    if ($12) {
+     $13 = (($1) + -11)|0;
+     $38 = $13;
+     break;
+    }
+    $$off66$i = (($1) + -721)|0;
+    $14 = ($$off66$i>>>0)<(9);
+    if ($14) {
+     $15 = (($1) + -450)|0;
+     $38 = $15;
+     break;
+    }
+    $$off67$i = (($1) + -750)|0;
+    $16 = ($$off67$i>>>0)<(3);
+    if ($16) {
+     $17 = (($1) + -470)|0;
+     $38 = $17;
+     break;
+    }
+    $$off68$i = (($1) + -754)|0;
+    $18 = ($$off68$i>>>0)<(29);
+    if ($18) {
+     $19 = (($1) + -471)|0;
+     $38 = $19;
+     break;
+    }
+    $$off69$i = (($1) + -784)|0;
+    $20 = ($$off69$i>>>0)<(6);
+    if ($20) {
+     $21 = (($1) + -472)|0;
+     $38 = $21;
+     break;
+    }
+    $$off70$i = (($1) + -800)|0;
+    $22 = ($$off70$i>>>0)<(5);
+    if ($22) {
+     $23 = (($1) + -482)|0;
+     $38 = $23;
+     break;
+    }
+    $$off71$i = (($1) + -815)|0;
+    $24 = ($$off71$i>>>0)<(8);
+    if ($24) {
+     $25 = (($1) + -492)|0;
+     $38 = $25;
+     break;
+    }
+    $26 = $0 & 65528;
+    $27 = ($26|0)==(832);
+    if ($27) {
+     $28 = (($1) + -501)|0;
+     $38 = $28;
+     break;
+    }
+    $trunc = $0&65535;
+    switch ($trunc<<16>>16) {
+    case 844:  {
+     $38 = 339;
+     break L1;
+     break;
+    }
+    case 848:  {
+     $38 = 340;
+     break L1;
+     break;
+    }
+    default: {
+    }
+    }
+    $$off75$i = (($1) + -881)|0;
+    $29 = ($$off75$i>>>0)<(11);
+    if ($29) {
+     $30 = (($1) + -540)|0;
+     $38 = $30;
+     break;
+    }
+    $31 = $0 & 65520;
+    $32 = ($31|0)==(1024);
+    if ($32) {
+     $33 = (($1) + -672)|0;
+     $38 = $33;
+    } else {
+     $$1121417202326293235384143454850 = $1;
+     label = 31;
+    }
+   }
+  } else {
+   $4 = (_gpg_err_code_to_errno($1)|0);
+   $5 = ($4|0)==(0);
+   if ($5) {
+    $$1121417202326293235384143454850 = 16382;
+    label = 31;
+   } else {
+    $6 = (_strerror($4)|0);
+    $$1 = $6;
+    return ($$1|0);
+   }
+  }
+ } while(0);
+ if ((label|0) == 31) {
+  $$off77$i = (($$1121417202326293235384143454850) + -16381)|0;
+  $34 = ($$off77$i>>>0)<(3);
+  $35 = (($$1121417202326293235384143454850) + -16013)|0;
+  $36 = $34 ? $35 : 371;
+  $38 = $36;
+ }
+ $37 = (16880 + ($38<<2)|0);
+ $39 = HEAP32[$37>>2]|0;
+ $40 = (18368 + ($39)|0);
+ $$1 = $40;
+ return ($$1|0);
+}
+function __gpg_err_code_to_errno($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ $1 = $0 & 32768;
+ $2 = ($1|0)==(0);
+ if ($2) {
+  $$0 = 0;
+ } else {
+  $3 = $0 & -32769;
+  $4 = ($3>>>0)<(141);
+  if ($4) {
+   $5 = (26384 + ($3<<2)|0);
+   $6 = HEAP32[$5>>2]|0;
+   $$0 = $6;
+  } else {
+   $$0 = 0;
+  }
+ }
+ return ($$0|0);
+}
+function __gpg_err_code_from_errno($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$off = 0, $$off29 = 0, $$off30 = 0, $$off31 = 0, $$off32 = 0, 
$$off33 = 0, $$ph$pn = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, 
$3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
+ var $9 = 0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0);
+ if ($1) {
+  $$0 = 0;
+  return ($$0|0);
+ }
+ $$off = (($0) + -1)|0;
+ $2 = ($$off>>>0)<(11);
+ do {
+  if ($2) {
+   $$ph$pn = $$off;
+  } else {
+   $$off29 = (($0) + -11)|0;
+   $3 = ($$off29>>>0)<(25);
+   if ($3) {
+    $$ph$pn = $0;
+   } else {
+    $$off30 = (($0) + -35)|0;
+    $4 = ($$off30>>>0)<(6);
+    if ($4) {
+     $5 = (($0) + 1)|0;
+     $$ph$pn = $5;
+     break;
+    }
+    $$off31 = (($0) + -42)|0;
+    $6 = ($$off31>>>0)<(16);
+    if ($6) {
+     $$ph$pn = $0;
+    } else {
+     $$off32 = (($0) + -59)|0;
+     $7 = ($$off32>>>0)<(37);
+     $$off33 = (($0) + -95)|0;
+     $8 = ($$off33>>>0)<(31);
+     $9 = $8 ? $0 : -1;
+     $spec$select = $7 ? $$off : $9;
+     $10 = ($spec$select|0)<(0);
+     if ($10) {
+      $$0 = 16382;
+      return ($$0|0);
+     } else {
+      $$ph$pn = $spec$select;
+     }
+    }
+   }
+  }
+ } while(0);
+ $11 = (26960 + ($$ph$pn<<2)|0);
+ $12 = HEAP32[$11>>2]|0;
+ $13 = $12 | 32768;
+ $$0 = $13;
+ return ($$0|0);
+}
+function __gpg_err_code_from_syserror() {
+ var $$0 = 0, $$off = 0, $$off31 = 0, $$off32 = 0, $$off33 = 0, $$off34 = 0, 
$$off35 = 0, $$ph$pn = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, 
$14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
+ var $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = (___errno_location()|0);
+ $1 = HEAP32[$0>>2]|0;
+ $2 = ($1|0)==(0);
+ if ($2) {
+  $$0 = 16381;
+  return ($$0|0);
+ }
+ $$off = (($1) + -1)|0;
+ $3 = ($$off>>>0)<(11);
+ do {
+  if ($3) {
+   $$ph$pn = $$off;
+  } else {
+   $$off31 = (($1) + -11)|0;
+   $4 = ($$off31>>>0)<(25);
+   if ($4) {
+    $$ph$pn = $1;
+   } else {
+    $$off32 = (($1) + -35)|0;
+    $5 = ($$off32>>>0)<(6);
+    if ($5) {
+     $6 = (($1) + 1)|0;
+     $$ph$pn = $6;
+     break;
+    }
+    $$off33 = (($1) + -42)|0;
+    $7 = ($$off33>>>0)<(16);
+    if ($7) {
+     $$ph$pn = $1;
+    } else {
+     $$off34 = (($1) + -59)|0;
+     $8 = ($$off34>>>0)<(37);
+     $$off35 = (($1) + -95)|0;
+     $9 = ($$off35>>>0)<(31);
+     $10 = $9 ? $1 : -1;
+     $spec$select = $8 ? $$off : $10;
+     $11 = ($spec$select|0)<(0);
+     if ($11) {
+      $$0 = 16382;
+      return ($$0|0);
+     } else {
+      $$ph$pn = $spec$select;
+     }
+    }
+   }
+  }
+ } while(0);
+ $12 = (26960 + ($$ph$pn<<2)|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = $13 | 32768;
+ $$0 = $14;
+ return ($$0|0);
+}
+function _TALER_amount_hton($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 
0, dest = 0, label = 0;
+ var sp = 0, src = 0, stop = 0;
+ sp = STACKTOP;
+ $2 = $1;
+ $3 = $2;
+ $4 = HEAP32[$3>>2]|0;
+ $5 = (($2) + 4)|0;
+ $6 = $5;
+ $7 = HEAP32[$6>>2]|0;
+ $8 = (_GNUNET_htonll($4,$7)|0);
+ $9 = tempRet0;
+ $10 = $0;
+ $11 = $10;
+ 
HEAP8[$11>>0]=$8&255;HEAP8[$11+1>>0]=($8>>8)&255;HEAP8[$11+2>>0]=($8>>16)&255;HEAP8[$11+3>>0]=$8>>24;
+ $12 = (($10) + 4)|0;
+ $13 = $12;
+ 
HEAP8[$13>>0]=$9&255;HEAP8[$13+1>>0]=($9>>8)&255;HEAP8[$13+2>>0]=($9>>16)&255;HEAP8[$13+3>>0]=$9>>24;
+ $14 = ((($1)) + 8|0);
+ $15 = HEAP32[$14>>2]|0;
+ $16 = (_htonl($15)|0);
+ $17 = ((($0)) + 8|0);
+ 
HEAP8[$17>>0]=$16&255;HEAP8[$17+1>>0]=($16>>8)&255;HEAP8[$17+2>>0]=($16>>16)&255;HEAP8[$17+3>>0]=$16>>24;
+ $18 = ((($0)) + 12|0);
+ $19 = ((($1)) + 12|0);
+ dest=$18; src=$19; 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 _TALER_amount_ntoh($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 
0, dest = 0, label = 0;
+ var sp = 0, src = 0, stop = 0;
+ sp = STACKTOP;
+ $2 = $1;
+ $3 = $2;
+ $4 = 
HEAPU8[$3>>0]|(HEAPU8[$3+1>>0]<<8)|(HEAPU8[$3+2>>0]<<16)|(HEAPU8[$3+3>>0]<<24);
+ $5 = (($2) + 4)|0;
+ $6 = $5;
+ $7 = 
HEAPU8[$6>>0]|(HEAPU8[$6+1>>0]<<8)|(HEAPU8[$6+2>>0]<<16)|(HEAPU8[$6+3>>0]<<24);
+ $8 = (_GNUNET_ntohll($4,$7)|0);
+ $9 = tempRet0;
+ $10 = $0;
+ $11 = $10;
+ HEAP32[$11>>2] = $8;
+ $12 = (($10) + 4)|0;
+ $13 = $12;
+ HEAP32[$13>>2] = $9;
+ $14 = ((($1)) + 8|0);
+ $15 = 
HEAPU8[$14>>0]|(HEAPU8[$14+1>>0]<<8)|(HEAPU8[$14+2>>0]<<16)|(HEAPU8[$14+3>>0]<<24);
+ $16 = (_ntohl($15)|0);
+ $17 = ((($0)) + 8|0);
+ HEAP32[$17>>2] = $16;
+ $18 = ((($0)) + 12|0);
+ $19 = ((($1)) + 12|0);
+ dest=$18; src=$19; 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 _TALER_amount_get_zero($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (_strlen($0)|0);
+ $3 = ($2>>>0)>(11);
+ if ($3) {
+  $$0 = -1;
+  return ($$0|0);
+ }
+ 
;HEAP32[$1>>2]=0|0;HEAP32[$1+4>>2]=0|0;HEAP32[$1+8>>2]=0|0;HEAP32[$1+12>>2]=0|0;HEAP32[$1+16>>2]=0|0;HEAP32[$1+20>>2]=0|0;
+ $4 = ((($1)) + 12|0);
+ _memcpy(($4|0),($0|0),($2|0))|0;
+ $$0 = 1;
+ return ($$0|0);
+}
+function _TALER_amount_cmp($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $$65 = 0, $$66 = 0, $$idx$i = 0, $$idx$val$i = 0, $$idx4$i = 0, 
$$idx4$val$i = 0, $$sroa$7$0 = 0, $$sroa$7$0$$sroa_idx80 = 0, 
$$sroa$7$0$copyload = 0, $$sroa$7$1 = 0, $$sroa$7$2 = 0, $$sroa$796$0 = 0, 
$$sroa$796$0$$sroa_idx97 = 0, $$sroa$796$0$copyload = 0, $$sroa$796$1 = 0, 
$$sroa$796$2$ph = 0, $10 = 0, $11 = 0, $12 = 0;
+ var $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, 
$20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 
0, $29 = 0, $3 = 0, $30 = 0;
+ var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, 
$39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, 
$47 = 0, $48 = 0, $49 = 0;
+ var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, 
$57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, 
$65 = 0, $66 = 0, $67 = 0;
+ var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, 
$75 = 0, $76 = 0, $77 = 0, $78 = 0, $8 = 0, $9 = 0, $spec$select = 0, 
$vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_ptr1 = 0, 
$vararg_ptr5 = 0;
+ var $vararg_ptr9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer6 = sp + 16|0;
+ $vararg_buffer2 = sp + 8|0;
+ $vararg_buffer = sp;
+ $$idx4$i = ((($0)) + 12|0);
+ $$idx4$val$i = HEAP8[$$idx4$i>>0]|0;
+ $2 = ($$idx4$val$i<<24>>24)==(0);
+ if (!($2)) {
+  $$idx$i = ((($1)) + 12|0);
+  $$idx$val$i = HEAP8[$$idx$i>>0]|0;
+  $3 = ($$idx$val$i<<24>>24)==(0);
+  if (!($3)) {
+   $4 = (_strcasecmp($$idx4$i,$$idx$i)|0);
+   $5 = ($4|0)==(0);
+   if ($5) {
+    $13 = $0;
+    $14 = $13;
+    $15 = HEAP32[$14>>2]|0;
+    $16 = (($13) + 4)|0;
+    $17 = $16;
+    $18 = HEAP32[$17>>2]|0;
+    $$sroa$796$0$$sroa_idx97 = ((($0)) + 8|0);
+    $$sroa$796$0$copyload = HEAP32[$$sroa$796$0$$sroa_idx97>>2]|0;
+    $19 = $1;
+    $20 = $19;
+    $21 = HEAP32[$20>>2]|0;
+    $22 = (($19) + 4)|0;
+    $23 = $22;
+    $24 = HEAP32[$23>>2]|0;
+    $$sroa$7$0$$sroa_idx80 = ((($1)) + 8|0);
+    $$sroa$7$0$copyload = HEAP32[$$sroa$7$0$$sroa_idx80>>2]|0;
+    $25 = ($15|0)==(-1);
+    $26 = ($18|0)==(-1);
+    $27 = $25 & $26;
+    L5: do {
+     if ($27) {
+      $$sroa$796$1 = $$sroa$796$0$copyload;
+      label = 15;
+     } else {
+      $$sroa$796$0 = $$sroa$796$0$copyload;$30 = $15;$31 = $18;
+      while(1) {
+       $28 = ($$sroa$796$0>>>0)>(99999999);
+       if (!($28)) {
+        $$sroa$796$2$ph = $$sroa$796$0;$66 = $30;$69 = $31;
+        break L5;
+       }
+       $29 = (($$sroa$796$0) + -100000000)|0;
+       $32 = (_i64Add(($30|0),($31|0),1,0)|0);
+       $33 = tempRet0;
+       $34 = ($32|0)==(-1);
+       $35 = ($33|0)==(-1);
+       $36 = $34 & $35;
+       if ($36) {
+        $$sroa$796$1 = $29;
+        label = 15;
+        break;
+       } else {
+        $$sroa$796$0 = $29;$30 = $32;$31 = $33;
+       }
+      }
+     }
+    } while(0);
+    if ((label|0) == 15) {
+     $37 = ($$sroa$796$1>>>0)>(99999999);
+     if ($37) {
+      $38 = HEAP32[10100]|0;
+      $39 = ($38|0)==(-1);
+      if ($39) {
+       $40 = (_GNUNET_get_log_call_status(1,0,70383,70392,353)|0);
+       HEAP32[10100] = $40;
+      }
+      $41 = (_GNUNET_get_log_skip()|0);
+      $42 = ($41|0)>(0);
+      if ($42) {
+       _GNUNET_log_skip(-1,0);
+       _GNUNET_abort_();
+       // unreachable;
+      }
+      $43 = HEAP32[10100]|0;
+      $44 = ($43|0)==(0);
+      if ($44) {
+       _GNUNET_abort_();
+       // unreachable;
+      }
+      HEAP32[$vararg_buffer2>>2] = 70383;
+      $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+      HEAP32[$vararg_ptr5>>2] = 353;
+      _GNUNET_log_nocheck(1,70521,$vararg_buffer2);
+      _GNUNET_abort_();
+      // unreachable;
+     } else {
+      $$sroa$796$2$ph = $$sroa$796$1;$66 = -1;$69 = -1;
+     }
+    }
+    $45 = ($21|0)==(-1);
+    $46 = ($24|0)==(-1);
+    $47 = $45 & $46;
+    L25: do {
+     if ($47) {
+      $$sroa$7$1 = $$sroa$7$0$copyload;
+      label = 27;
+     } else {
+      $$sroa$7$0 = $$sroa$7$0$copyload;$50 = $21;$51 = $24;
+      while(1) {
+       $48 = ($$sroa$7$0>>>0)>(99999999);
+       if (!($48)) {
+        $$sroa$7$2 = $$sroa$7$0;$67 = $50;$70 = $51;
+        break L25;
+       }
+       $49 = (($$sroa$7$0) + -100000000)|0;
+       $52 = (_i64Add(($50|0),($51|0),1,0)|0);
+       $53 = tempRet0;
+       $54 = ($52|0)==(-1);
+       $55 = ($53|0)==(-1);
+       $56 = $54 & $55;
+       if ($56) {
+        $$sroa$7$1 = $49;
+        label = 27;
+        break;
+       } else {
+        $$sroa$7$0 = $49;$50 = $52;$51 = $53;
+       }
+      }
+     }
+    } while(0);
+    if ((label|0) == 27) {
+     $57 = ($$sroa$7$1>>>0)>(99999999);
+     if ($57) {
+      $58 = HEAP32[10101]|0;
+      $59 = ($58|0)==(-1);
+      if ($59) {
+       $60 = (_GNUNET_get_log_call_status(1,0,70383,70392,355)|0);
+       HEAP32[10101] = $60;
+      }
+      $61 = (_GNUNET_get_log_skip()|0);
+      $62 = ($61|0)>(0);
+      if ($62) {
+       _GNUNET_log_skip(-1,0);
+       _GNUNET_abort_();
+       // unreachable;
+      }
+      $63 = HEAP32[10101]|0;
+      $64 = ($63|0)==(0);
+      if ($64) {
+       _GNUNET_abort_();
+       // unreachable;
+      }
+      HEAP32[$vararg_buffer6>>2] = 70383;
+      $vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
+      HEAP32[$vararg_ptr9>>2] = 355;
+      _GNUNET_log_nocheck(1,70521,$vararg_buffer6);
+      _GNUNET_abort_();
+      // unreachable;
+     } else {
+      $$sroa$7$2 = $$sroa$7$1;$67 = -1;$70 = -1;
+     }
+    }
+    $65 = ($66|0)==($67|0);
+    $68 = ($69|0)==($70|0);
+    $71 = $65 & $68;
+    if ($71) {
+     $72 = ($$sroa$796$2$ph>>>0)<($$sroa$7$2>>>0);
+     $73 = ($$sroa$796$2$ph>>>0)>($$sroa$7$2>>>0);
+     $$65 = $73&1;
+     $spec$select = $72 ? -1 : $$65;
+     $$0 = $spec$select;
+     STACKTOP = sp;return ($$0|0);
+    } else {
+     $74 = ($69>>>0)<($70>>>0);
+     $75 = ($66>>>0)<($67>>>0);
+     $76 = ($69|0)==($70|0);
+     $77 = $76 & $75;
+     $78 = $74 | $77;
+     $$66 = $78 ? -1 : 1;
+     $$0 = $$66;
+     STACKTOP = sp;return ($$0|0);
+    }
+   }
+  }
+ }
+ $6 = HEAP32[10099]|0;
+ $7 = ($6|0)==(-1);
+ if ($7) {
+  $8 = (_GNUNET_get_log_call_status(1,0,70383,70392,349)|0);
+  HEAP32[10099] = $8;
+ }
+ $9 = (_GNUNET_get_log_skip()|0);
+ $10 = ($9|0)>(0);
+ if ($10) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $11 = HEAP32[10099]|0;
+ $12 = ($11|0)==(0);
+ if ($12) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer>>2] = 70383;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = 349;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+ _GNUNET_abort_();
+ // unreachable;
+ return (0)|0;
+}
+function _TALER_amount_normalize($0) {
+ $0 = $0|0;
+ var $$0$lcssa = 0, $$08 = 0, $$09 = 0, $$idx = 0, $$idx$val = 0, $1 = 0, $10 
= 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, 
$19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
+ var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 
= 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $$idx = ((($0)) + 12|0);
+ $$idx$val = HEAP8[$$idx>>0]|0;
+ $1 = ($$idx$val<<24>>24)==(0);
+ if ($1) {
+  $$08 = -1;
+  return ($$08|0);
+ }
+ $2 = ((($0)) + 8|0);
+ $3 = $0;
+ $4 = $3;
+ $5 = HEAP32[$4>>2]|0;
+ $6 = (($3) + 4)|0;
+ $7 = $6;
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ($5|0)==(-1);
+ $10 = ($8|0)==(-1);
+ $11 = $9 & $10;
+ $12 = HEAP32[$2>>2]|0;
+ L4: do {
+  if ($11) {
+   $$0$lcssa = 0;$28 = $12;
+  } else {
+   $$09 = 0;$14 = $12;$16 = $5;$17 = $8;
+   while(1) {
+    $13 = ($14>>>0)>(99999999);
+    if (!($13)) {
+     $$08 = $$09;
+     break;
+    }
+    $15 = (($14) + -100000000)|0;
+    HEAP32[$2>>2] = $15;
+    $18 = (_i64Add(($16|0),($17|0),1,0)|0);
+    $19 = tempRet0;
+    $20 = $0;
+    $21 = $20;
+    HEAP32[$21>>2] = $18;
+    $22 = (($20) + 4)|0;
+    $23 = $22;
+    HEAP32[$23>>2] = $19;
+    $24 = ($18|0)==(-1);
+    $25 = ($19|0)==(-1);
+    $26 = $24 & $25;
+    if ($26) {
+     $$0$lcssa = 1;$28 = $15;
+     break L4;
+    } else {
+     $$09 = 1;$14 = $15;$16 = $18;$17 = $19;
+    }
+   }
+   return ($$08|0);
+  }
+ } while(0);
+ $27 = ($28>>>0)>(99999999);
+ if (!($27)) {
+  $$08 = $$0$lcssa;
+  return ($$08|0);
+ }
+ 
;HEAP32[$0>>2]=0|0;HEAP32[$0+4>>2]=0|0;HEAP32[$0+8>>2]=0|0;HEAP32[$0+12>>2]=0|0;HEAP32[$0+16>>2]=0|0;HEAP32[$0+20>>2]=0|0;
+ $$08 = -1;
+ return ($$08|0);
+}
+function _TALER_amount_subtract($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$idx$i = 0, $$idx$i75 = 0, $$idx$val$i = 0, $$idx$val$i76 = 0, 
$$idx4$i = 0, $$idx4$val$i = 0, $$sroa$8$0 = 0, $$sroa$8$0$$sroa_idx90 = 0, 
$$sroa$8$0$copyload = 0, $$sroa$8$1 = 0, $$sroa$8$2 = 0, $10 = 0, $100 = 0, 
$101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0;
+ var $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $12 
= 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, 
$21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0;
+ var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 
0, $59 = 0, $6 = 0, $60 = 0;
+ var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, 
$69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, 
$77 = 0, $78 = 0, $79 = 0;
+ var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, 
$87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, 
$95 = 0, $96 = 0, $97 = 0;
+ var $98 = 0, $99 = 0, $not$or$cond = 0, $spec$select = 0, $vararg_buffer = 0, 
$vararg_buffer2 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $vararg_buffer2 = sp + 32|0;
+ $vararg_buffer = sp + 24|0;
+ $3 = sp;
+ $$idx4$i = ((($1)) + 12|0);
+ $$idx4$val$i = HEAP8[$$idx4$i>>0]|0;
+ $4 = ($$idx4$val$i<<24>>24)==(0);
+ if (!($4)) {
+  $$idx$i = ((($2)) + 12|0);
+  $$idx$val$i = HEAP8[$$idx$i>>0]|0;
+  $5 = ($$idx$val$i<<24>>24)==(0);
+  if (!($5)) {
+   $6 = (_strcasecmp($$idx4$i,$$idx$i)|0);
+   $7 = ($6|0)==(0);
+   if ($7) {
+    
;HEAP32[$3>>2]=HEAP32[$1>>2]|0;HEAP32[$3+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$3+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[$3+16>>2]=HEAP32[$1+16>>2]|0;HEAP32[$3+20>>2]=HEAP32[$1+20>>2]|0;
+    $8 = $2;
+    $9 = $8;
+    $10 = HEAP32[$9>>2]|0;
+    $11 = (($8) + 4)|0;
+    $12 = $11;
+    $13 = HEAP32[$12>>2]|0;
+    $$sroa$8$0$$sroa_idx90 = ((($2)) + 8|0);
+    $$sroa$8$0$copyload = HEAP32[$$sroa$8$0$$sroa_idx90>>2]|0;
+    $$idx$i75 = ((($3)) + 12|0);
+    $$idx$val$i76 = HEAP8[$$idx$i75>>0]|0;
+    $14 = ($$idx$val$i76<<24>>24)==(0);
+    do {
+     if (!($14)) {
+      $15 = ((($3)) + 8|0);
+      $16 = $3;
+      $17 = $16;
+      $18 = HEAP32[$17>>2]|0;
+      $19 = (($16) + 4)|0;
+      $20 = $19;
+      $21 = HEAP32[$20>>2]|0;
+      $22 = ($18|0)==(-1);
+      $23 = ($21|0)==(-1);
+      $24 = $22 & $23;
+      $25 = HEAP32[$15>>2]|0;
+      do {
+       if ($24) {
+        $41 = $25;
+        label = 11;
+       } else {
+        $27 = $25;$29 = $18;$30 = $21;
+        while(1) {
+         $26 = ($27>>>0)>(99999999);
+         if (!($26)) {
+          label = 13;
+          break;
+         }
+         $28 = (($27) + -100000000)|0;
+         $31 = (_i64Add(($29|0),($30|0),1,0)|0);
+         $32 = tempRet0;
+         $33 = ($31|0)==(-1);
+         $34 = ($32|0)==(-1);
+         $35 = $33 & $34;
+         if ($35) {
+          label = 10;
+          break;
+         } else {
+          $27 = $28;$29 = $31;$30 = $32;
+         }
+        }
+        if ((label|0) == 10) {
+         HEAP32[$15>>2] = $28;
+         $36 = $3;
+         $37 = $36;
+         HEAP32[$37>>2] = -1;
+         $38 = (($36) + 4)|0;
+         $39 = $38;
+         HEAP32[$39>>2] = -1;
+         $41 = $28;
+         label = 11;
+         break;
+        }
+        else if ((label|0) == 13) {
+         HEAP32[$15>>2] = $27;
+         $42 = $3;
+         $43 = $42;
+         HEAP32[$43>>2] = $29;
+         $44 = (($42) + 4)|0;
+         $45 = $44;
+         HEAP32[$45>>2] = $30;
+         $60 = $27;$62 = $29;$64 = $30;
+         break;
+        }
+       }
+      } while(0);
+      if ((label|0) == 11) {
+       $40 = ($41>>>0)>(99999999);
+       if ($40) {
+        
;HEAP32[$3>>2]=0|0;HEAP32[$3+4>>2]=0|0;HEAP32[$3+8>>2]=0|0;HEAP32[$3+12>>2]=0|0;HEAP32[$3+16>>2]=0|0;HEAP32[$3+20>>2]=0|0;
+        break;
+       } else {
+        $60 = $41;$62 = -1;$64 = -1;
+       }
+      }
+      $46 = ($10|0)==(-1);
+      $47 = ($13|0)==(-1);
+      $48 = $46 & $47;
+      L19: do {
+       if ($48) {
+        $$sroa$8$1 = $$sroa$8$0$copyload;
+        label = 18;
+       } else {
+        $$sroa$8$0 = $$sroa$8$0$copyload;$51 = $10;$52 = $13;
+        while(1) {
+         $49 = ($$sroa$8$0>>>0)>(99999999);
+         if (!($49)) {
+          $$sroa$8$2 = $$sroa$8$0;$75 = $52;$78 = $51;
+          break L19;
+         }
+         $50 = (($$sroa$8$0) + -100000000)|0;
+         $53 = (_i64Add(($51|0),($52|0),1,0)|0);
+         $54 = tempRet0;
+         $55 = ($53|0)==(-1);
+         $56 = ($54|0)==(-1);
+         $57 = $55 & $56;
+         if ($57) {
+          $$sroa$8$1 = $50;
+          label = 18;
+          break;
+         } else {
+          $$sroa$8$0 = $50;$51 = $53;$52 = $54;
+         }
+        }
+       }
+      } while(0);
+      if ((label|0) == 18) {
+       $58 = ($$sroa$8$1>>>0)>(99999999);
+       if ($58) {
+        break;
+       } else {
+        $$sroa$8$2 = $$sroa$8$1;$75 = -1;$78 = -1;
+       }
+      }
+      $59 = ($60>>>0)<($$sroa$8$2>>>0);
+      do {
+       if ($59) {
+        $61 = ($62|0)==(0);
+        $63 = ($64|0)==(0);
+        $65 = $61 & $63;
+        if (!($65)) {
+         $66 = (($60) + 100000000)|0;
+         HEAP32[$15>>2] = $66;
+         $67 = (_i64Add(($62|0),($64|0),-1,-1)|0);
+         $68 = tempRet0;
+         $69 = $3;
+         $70 = $69;
+         HEAP32[$70>>2] = $67;
+         $71 = (($69) + 4)|0;
+         $72 = $71;
+         HEAP32[$72>>2] = $68;
+         $74 = $68;$77 = $67;$93 = $66;
+         break;
+        }
+        
;HEAP32[$0>>2]=0|0;HEAP32[$0+4>>2]=0|0;HEAP32[$0+8>>2]=0|0;HEAP32[$0+12>>2]=0|0;HEAP32[$0+16>>2]=0|0;HEAP32[$0+20>>2]=0|0;
+        $$0 = -1;
+        STACKTOP = sp;return ($$0|0);
+       } else {
+        $74 = $64;$77 = $62;$93 = $60;
+       }
+      } while(0);
+      $73 = ($74>>>0)<($75>>>0);
+      $76 = ($77>>>0)<($78>>>0);
+      $79 = ($74|0)==($75|0);
+      $80 = $79 & $76;
+      $81 = $73 | $80;
+      if ($81) {
+       
;HEAP32[$0>>2]=0|0;HEAP32[$0+4>>2]=0|0;HEAP32[$0+8>>2]=0|0;HEAP32[$0+12>>2]=0|0;HEAP32[$0+16>>2]=0|0;HEAP32[$0+20>>2]=0|0;
+       $$0 = -1;
+       STACKTOP = sp;return ($$0|0);
+      }
+      $82 = (_strlen($$idx$i75)|0);
+      $83 = ($82>>>0)>(11);
+      if ($83) {
+       $84 = HEAP32[10102]|0;
+       $85 = ($84|0)==(-1);
+       if ($85) {
+        $86 = (_GNUNET_get_log_call_status(1,0,70383,70409,421)|0);
+        HEAP32[10102] = $86;
+       }
+       $87 = (_GNUNET_get_log_skip()|0);
+       $88 = ($87|0)>(0);
+       if ($88) {
+        _GNUNET_log_skip(-1,0);
+        _GNUNET_abort_();
+        // unreachable;
+       }
+       $89 = HEAP32[10102]|0;
+       $90 = ($89|0)==(0);
+       if ($90) {
+        _GNUNET_abort_();
+        // unreachable;
+       }
+       HEAP32[$vararg_buffer>>2] = 70383;
+       $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+       HEAP32[$vararg_ptr1>>2] = 421;
+       _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+       _GNUNET_abort_();
+       // unreachable;
+      }
+      
;HEAP32[$0>>2]=0|0;HEAP32[$0+4>>2]=0|0;HEAP32[$0+8>>2]=0|0;HEAP32[$0+12>>2]=0|0;HEAP32[$0+16>>2]=0|0;HEAP32[$0+20>>2]=0|0;
+      $91 = ((($0)) + 12|0);
+      _memcpy(($91|0),($$idx$i75|0),($82|0))|0;
+      $92 = ($93>>>0)<($$sroa$8$2>>>0);
+      if (!($92)) {
+       $101 = (($93) - ($$sroa$8$2))|0;
+       $102 = ((($0)) + 8|0);
+       HEAP32[$102>>2] = $101;
+       $103 = (_i64Subtract(($77|0),($74|0),($78|0),($75|0))|0);
+       $104 = tempRet0;
+       $105 = $0;
+       $106 = $105;
+       HEAP32[$106>>2] = $103;
+       $107 = (($105) + 4)|0;
+       $108 = $107;
+       HEAP32[$108>>2] = $104;
+       $109 = ($101|0)!=(0);
+       $110 = ($103|0)!=(0);
+       $111 = ($104|0)!=(0);
+       $112 = $110 | $111;
+       $not$or$cond = $112 | $109;
+       $spec$select = $not$or$cond&1;
+       $$0 = $spec$select;
+       STACKTOP = sp;return ($$0|0);
+      }
+      $94 = HEAP32[10103]|0;
+      $95 = ($94|0)==(-1);
+      if ($95) {
+       $96 = (_GNUNET_get_log_call_status(1,0,70383,70409,422)|0);
+       HEAP32[10103] = $96;
+      }
+      $97 = (_GNUNET_get_log_skip()|0);
+      $98 = ($97|0)>(0);
+      if ($98) {
+       _GNUNET_log_skip(-1,0);
+       _GNUNET_abort_();
+       // unreachable;
+      }
+      $99 = HEAP32[10103]|0;
+      $100 = ($99|0)==(0);
+      if ($100) {
+       _GNUNET_abort_();
+       // unreachable;
+      }
+      HEAP32[$vararg_buffer2>>2] = 70383;
+      $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+      HEAP32[$vararg_ptr5>>2] = 422;
+      _GNUNET_log_nocheck(1,70521,$vararg_buffer2);
+      _GNUNET_abort_();
+      // unreachable;
+     }
+    } while(0);
+    
;HEAP32[$0>>2]=0|0;HEAP32[$0+4>>2]=0|0;HEAP32[$0+8>>2]=0|0;HEAP32[$0+12>>2]=0|0;HEAP32[$0+16>>2]=0|0;HEAP32[$0+20>>2]=0|0;
+    $$0 = -1;
+    STACKTOP = sp;return ($$0|0);
+   }
+  }
+ }
+ 
;HEAP32[$0>>2]=0|0;HEAP32[$0+4>>2]=0|0;HEAP32[$0+8>>2]=0|0;HEAP32[$0+12>>2]=0|0;HEAP32[$0+16>>2]=0|0;HEAP32[$0+20>>2]=0|0;
+ $$0 = -1;
+ STACKTOP = sp;return ($$0|0);
+}
+function _TALER_amount_add($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$idx$i = 0, $$idx$val$i = 0, $$idx4$i = 0, $$idx4$val$i = 0, 
$$sroa$11 = 0, $$sroa$11$0$$sroa$11$12$$idx$val$i29 = 0, $$sroa$11$0$$sroa_idx 
= 0, $$sroa$7$0 = 0, $$sroa$7$0$$sroa_idx72 = 0, $$sroa$7$0$copyload = 0, 
$$sroa$7$1 = 0, $$sroa$7$2 = 0, $$sroa$788$0 = 0, $$sroa$788$0$$sroa_idx90 = 0, 
$$sroa$788$0$copyload = 0, $$sroa$788$1 = 0, $$sroa$788$2$ph = 0, $$sroa$8$0 = 
0, $$sroa$8$0$$sroa_idx51 = 0;
+ var $$sroa$8$1 = 0, $$sroa$8$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 
0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 
= 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, 
$43 = 0, $44 = 0, $45 = 0;
+ var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $63 = 0;
+ var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, 
$71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 
0, $8 = 0, $80 = 0, $81 = 0;
+ var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $9 = 0, 
$vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer = sp;
+ $$sroa$11 = sp + 8|0;
+ $$idx4$i = ((($1)) + 12|0);
+ $$idx4$val$i = HEAP8[$$idx4$i>>0]|0;
+ $3 = ($$idx4$val$i<<24>>24)==(0);
+ if (!($3)) {
+  $$idx$i = ((($2)) + 12|0);
+  $$idx$val$i = HEAP8[$$idx$i>>0]|0;
+  $4 = ($$idx$val$i<<24>>24)==(0);
+  if (!($4)) {
+   $5 = (_strcasecmp($$idx4$i,$$idx$i)|0);
+   $6 = ($5|0)==(0);
+   if ($6) {
+    $7 = $1;
+    $8 = $7;
+    $9 = HEAP32[$8>>2]|0;
+    $10 = (($7) + 4)|0;
+    $11 = $10;
+    $12 = HEAP32[$11>>2]|0;
+    $$sroa$788$0$$sroa_idx90 = ((($1)) + 8|0);
+    $$sroa$788$0$copyload = HEAP32[$$sroa$788$0$$sroa_idx90>>2]|0;
+    $13 = $2;
+    $14 = $13;
+    $15 = HEAP32[$14>>2]|0;
+    $16 = (($13) + 4)|0;
+    $17 = $16;
+    $18 = HEAP32[$17>>2]|0;
+    $$sroa$7$0$$sroa_idx72 = ((($2)) + 8|0);
+    $$sroa$7$0$copyload = HEAP32[$$sroa$7$0$$sroa_idx72>>2]|0;
+    $19 = ($9|0)==(-1);
+    $20 = ($12|0)==(-1);
+    $21 = $19 & $20;
+    L5: do {
+     if ($21) {
+      $$sroa$788$1 = $$sroa$788$0$copyload;
+      label = 9;
+     } else {
+      $$sroa$788$0 = $$sroa$788$0$copyload;$24 = $9;$25 = $12;
+      while(1) {
+       $22 = ($$sroa$788$0>>>0)>(99999999);
+       if (!($22)) {
+        $$sroa$788$2$ph = $$sroa$788$0;$58 = $24;$59 = $25;
+        label = 10;
+        break L5;
+       }
+       $23 = (($$sroa$788$0) + -100000000)|0;
+       $26 = (_i64Add(($24|0),($25|0),1,0)|0);
+       $27 = tempRet0;
+       $28 = ($26|0)==(-1);
+       $29 = ($27|0)==(-1);
+       $30 = $28 & $29;
+       if ($30) {
+        $$sroa$788$1 = $23;
+        label = 9;
+        break;
+       } else {
+        $$sroa$788$0 = $23;$24 = $26;$25 = $27;
+       }
+      }
+     }
+    } while(0);
+    if ((label|0) == 9) {
+     $31 = ($$sroa$788$1>>>0)>(99999999);
+     if (!($31)) {
+      $$sroa$788$2$ph = $$sroa$788$1;$58 = -1;$59 = -1;
+      label = 10;
+     }
+    }
+    do {
+     if ((label|0) == 10) {
+      $32 = ($15|0)==(-1);
+      $33 = ($18|0)==(-1);
+      $34 = $32 & $33;
+      L14: do {
+       if ($34) {
+        $$sroa$7$1 = $$sroa$7$0$copyload;
+        label = 14;
+       } else {
+        $$sroa$7$0 = $$sroa$7$0$copyload;$37 = $15;$38 = $18;
+        while(1) {
+         $35 = ($$sroa$7$0>>>0)>(99999999);
+         if (!($35)) {
+          $$sroa$7$2 = $$sroa$7$0;$56 = $37;$57 = $38;
+          break L14;
+         }
+         $36 = (($$sroa$7$0) + -100000000)|0;
+         $39 = (_i64Add(($37|0),($38|0),1,0)|0);
+         $40 = tempRet0;
+         $41 = ($39|0)==(-1);
+         $42 = ($40|0)==(-1);
+         $43 = $41 & $42;
+         if ($43) {
+          $$sroa$7$1 = $36;
+          label = 14;
+          break;
+         } else {
+          $$sroa$7$0 = $36;$37 = $39;$38 = $40;
+         }
+        }
+       }
+      } while(0);
+      if ((label|0) == 14) {
+       $44 = ($$sroa$7$1>>>0)>(99999999);
+       if ($44) {
+        break;
+       } else {
+        $$sroa$7$2 = $$sroa$7$1;$56 = -1;$57 = -1;
+       }
+      }
+      $45 = (_strlen($$idx4$i)|0);
+      $46 = ($45>>>0)>(11);
+      if ($46) {
+       $47 = HEAP32[10104]|0;
+       $48 = ($47|0)==(-1);
+       if ($48) {
+        $49 = (_GNUNET_get_log_call_status(1,0,70383,70431,468)|0);
+        HEAP32[10104] = $49;
+       }
+       $50 = (_GNUNET_get_log_skip()|0);
+       $51 = ($50|0)>(0);
+       if ($51) {
+        _GNUNET_log_skip(-1,0);
+        _GNUNET_abort_();
+        // unreachable;
+       }
+       $52 = HEAP32[10104]|0;
+       $53 = ($52|0)==(0);
+       if ($53) {
+        _GNUNET_abort_();
+        // unreachable;
+       }
+       HEAP32[$vararg_buffer>>2] = 70383;
+       $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+       HEAP32[$vararg_ptr1>>2] = 468;
+       _GNUNET_log_nocheck(1,70521,$vararg_buffer);
+       _GNUNET_abort_();
+       // unreachable;
+      }
+      $54 = (12 - ($45))|0;
+      $55 = (($$sroa$11) + ($45)|0);
+      _memset(($55|0),0,($54|0))|0;
+      _memcpy(($$sroa$11|0),($$idx4$i|0),($45|0))|0;
+      $60 = (_i64Add(($56|0),($57|0),($58|0),($59|0))|0);
+      $61 = tempRet0;
+      $62 = ($61>>>0)<($59>>>0);
+      $63 = ($60>>>0)<($58>>>0);
+      $64 = ($61|0)==($59|0);
+      $65 = $64 & $63;
+      $66 = $62 | $65;
+      if ($66) {
+       
;HEAP32[$0>>2]=0|0;HEAP32[$0+4>>2]=0|0;HEAP32[$0+8>>2]=0|0;HEAP32[$0+12>>2]=0|0;HEAP32[$0+16>>2]=0|0;HEAP32[$0+20>>2]=0|0;
+       $$0 = -1;
+       STACKTOP = sp;return ($$0|0);
+      }
+      $67 = (($$sroa$7$2) + ($$sroa$788$2$ph))|0;
+      $$sroa$11$0$$sroa$11$12$$idx$val$i29 = HEAP8[$$sroa$11>>0]|0;
+      $68 = ($$sroa$11$0$$sroa$11$12$$idx$val$i29<<24>>24)==(0);
+      do {
+       if (!($68)) {
+        $69 = ($60|0)==(-1);
+        $70 = ($61|0)==(-1);
+        $71 = $69 & $70;
+        L42: do {
+         if ($71) {
+          $$sroa$8$1 = $67;
+          label = 31;
+         } else {
+          $$sroa$8$0 = $67;$74 = $60;$75 = $61;
+          while(1) {
+           $72 = ($$sroa$8$0>>>0)>(99999999);
+           if (!($72)) {
+            $$sroa$8$2 = $$sroa$8$0;$84 = $74;$87 = $75;
+            break L42;
+           }
+           $73 = (($$sroa$8$0) + -100000000)|0;
+           $76 = (_i64Add(($74|0),($75|0),1,0)|0);
+           $77 = tempRet0;
+           $78 = ($76|0)==(-1);
+           $79 = ($77|0)==(-1);
+           $80 = $78 & $79;
+           if ($80) {
+            $$sroa$8$1 = $73;
+            label = 31;
+            break;
+           } else {
+            $$sroa$8$0 = $73;$74 = $76;$75 = $77;
+           }
+          }
+         }
+        } while(0);
+        if ((label|0) == 31) {
+         $81 = ($$sroa$8$1>>>0)>(99999999);
+         if ($81) {
+          
;HEAP32[$$sroa$11>>2]=0|0;HEAP32[$$sroa$11+4>>2]=0|0;HEAP32[$$sroa$11+8>>2]=0|0;
+          break;
+         } else {
+          $$sroa$8$2 = $$sroa$8$1;$84 = -1;$87 = -1;
+         }
+        }
+        $82 = $0;
+        $83 = $82;
+        HEAP32[$83>>2] = $84;
+        $85 = (($82) + 4)|0;
+        $86 = $85;
+        HEAP32[$86>>2] = $87;
+        $$sroa$8$0$$sroa_idx51 = ((($0)) + 8|0);
+        HEAP32[$$sroa$8$0$$sroa_idx51>>2] = $$sroa$8$2;
+        $$sroa$11$0$$sroa_idx = ((($0)) + 12|0);
+        
;HEAP32[$$sroa$11$0$$sroa_idx>>2]=HEAP32[$$sroa$11>>2]|0;HEAP32[$$sroa$11$0$$sroa_idx+4>>2]=HEAP32[$$sroa$11+4>>2]|0;HEAP32[$$sroa$11$0$$sroa_idx+8>>2]=HEAP32[$$sroa$11+8>>2]|0;
+        $$0 = 1;
+        STACKTOP = sp;return ($$0|0);
+       }
+      } while(0);
+      
;HEAP32[$0>>2]=0|0;HEAP32[$0+4>>2]=0|0;HEAP32[$0+8>>2]=0|0;HEAP32[$0+12>>2]=0|0;HEAP32[$0+16>>2]=0|0;HEAP32[$0+20>>2]=0|0;
+      $$0 = -1;
+      STACKTOP = sp;return ($$0|0);
+     }
+    } while(0);
+    
;HEAP32[$0>>2]=0|0;HEAP32[$0+4>>2]=0|0;HEAP32[$0+8>>2]=0|0;HEAP32[$0+12>>2]=0|0;HEAP32[$0+16>>2]=0|0;HEAP32[$0+20>>2]=0|0;
+    $$0 = -1;
+    STACKTOP = sp;return ($$0|0);
+   }
+  }
+ }
+ 
;HEAP32[$0>>2]=0|0;HEAP32[$0+4>>2]=0|0;HEAP32[$0+8>>2]=0|0;HEAP32[$0+12>>2]=0|0;HEAP32[$0+16>>2]=0|0;HEAP32[$0+20>>2]=0|0;
+ $$0 = -1;
+ STACKTOP = sp;return ($$0|0);
+}
+function _TALER_gcrypt_init() {
+ var $0 = 0, $1 = 0, $2 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer1 = sp + 8|0;
+ $vararg_buffer = sp;
+ _gcry_set_fatalerror_handler(88,0);
+ $0 = (_gcry_check_version(70448)|0);
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  $2 = HEAP32[10138]|0;
+  (_fwrite(70454,27,1,$2)|0);
+  _abort();
+  // unreachable;
+ } else {
+  HEAP32[$vararg_buffer>>2] = 0;
+  (_gcry_control(37,$vararg_buffer)|0);
+  HEAP32[$vararg_buffer1>>2] = 0;
+  (_gcry_control(38,$vararg_buffer1)|0);
+  STACKTOP = sp;return;
+ }
+}
+function _fatal_error_handler_2503($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $3 = HEAP32[10138]|0;
+ HEAP32[$vararg_buffer>>2] = $2;
+ (_fprintf($3,70482,$vararg_buffer)|0);
+ _abort();
+ // unreachable;
+}
+function _TALER_setup_fresh_coin($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_ptr1 = 0;
+ var $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer4 = sp + 16|0;
+ $vararg_buffer = sp;
+ $3 = sp + 24|0;
+ $4 = (_htonl($1)|0);
+ HEAP32[$3>>2] = $4;
+ HEAP32[$vararg_buffer>>2] = 70559;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = 21;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = 0;
+ $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+ HEAP32[$vararg_ptr3>>2] = 0;
+ $5 = (_GNUNET_CRYPTO_kdf($2,64,$3,4,$0,64,$vararg_buffer)|0);
+ $6 = ($5|0)==(1);
+ if ($6) {
+  $14 = HEAP8[$2>>0]|0;
+  $15 = $14 & 63;
+  $16 = $15 | 64;
+  HEAP8[$2>>0] = $16;
+  $17 = ((($2)) + 31|0);
+  $18 = HEAP8[$17>>0]|0;
+  $19 = $18 & -8;
+  HEAP8[$17>>0] = $19;
+  STACKTOP = sp;return;
+ }
+ $7 = HEAP32[10105]|0;
+ $8 = ($7|0)==(-1);
+ if ($8) {
+  $9 = (_GNUNET_get_log_call_status(1,0,70512,70581,197)|0);
+  HEAP32[10105] = $9;
+ }
+ $10 = (_GNUNET_get_log_skip()|0);
+ $11 = ($10|0)>(0);
+ if ($11) {
+  _GNUNET_log_skip(-1,0);
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ $12 = HEAP32[10105]|0;
+ $13 = ($12|0)==(0);
+ if ($13) {
+  _GNUNET_abort_();
+  // unreachable;
+ }
+ HEAP32[$vararg_buffer4>>2] = 70512;
+ $vararg_ptr7 = ((($vararg_buffer4)) + 4|0);
+ HEAP32[$vararg_ptr7>>2] = 197;
+ _GNUNET_log_nocheck(1,70521,$vararg_buffer4);
+ _GNUNET_abort_();
+ // unreachable;
+}
+function _malloc($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$0$i = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i20$i = 0, $$0169$i = 
0, $$0170$i = 0, $$0171$i = 0, $$0192 = 0, $$0194 = 0, $$02014$i$i = 0, 
$$0202$lcssa$i$i = 0, $$02023$i$i = 0, $$0206$i$i = 0, $$0207$i$i = 0, 
$$024372$i = 0, $$0259$i$i = 0, $$02604$i$i = 0, $$0261$lcssa$i$i = 0, 
$$02613$i$i = 0;
+ var $$0267$i$i = 0, $$0268$i$i = 0, $$0318$i = 0, $$032012$i = 0, 
$$0321$lcssa$i = 0, $$032111$i = 0, $$0323$i = 0, $$0329$i = 0, $$0335$i = 0, 
$$0336$i = 0, $$0338$i = 0, $$0339$i = 0, $$0344$i = 0, $$1174$i = 0, 
$$1174$i$be = 0, $$1174$i$ph = 0, $$1176$i = 0, $$1176$i$be = 0, $$1176$i$ph = 
0, $$124471$i = 0;
+ var $$1263$i$i = 0, $$1263$i$i$be = 0, $$1263$i$i$ph = 0, $$1265$i$i = 0, 
$$1265$i$i$be = 0, $$1265$i$i$ph = 0, $$1319$i = 0, $$1324$i = 0, $$1340$i = 0, 
$$1346$i = 0, $$1346$i$be = 0, $$1346$i$ph = 0, $$1350$i = 0, $$1350$i$be = 0, 
$$1350$i$ph = 0, $$2234243136$i = 0, $$2247$ph$i = 0, $$2253$ph$i = 0, $$2331$i 
= 0, $$3$i = 0;
+ var $$3$i$i = 0, $$3$i198 = 0, $$3$i198211 = 0, $$3326$i = 0, $$3348$i = 0, 
$$4$lcssa$i = 0, $$415$i = 0, $$415$i$ph = 0, $$4236$i = 0, $$4327$lcssa$i = 0, 
$$432714$i = 0, $$432714$i$ph = 0, $$4333$i = 0, $$533413$i = 0, $$533413$i$ph 
= 0, $$723947$i = 0, $$748$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0;
+ var $$pre$i16$i = 0, $$pre$i195 = 0, $$pre$i204 = 0, $$pre$phi$i$iZ2D = 0, 
$$pre$phi$i17$iZ2D = 0, $$pre$phi$i205Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phiZ2D 
= 0, $$sink = 0, $$sink320 = 0, $$sink321 = 0, $1 = 0, $10 = 0, $100 = 0, $101 
= 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0;
+ var $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 
= 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 
= 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0;
+ var $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 
= 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 
= 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0;
+ var $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 
= 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 
= 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0;
+ var $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, 
$168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, 
$175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0;
+ var $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 
= 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 
= 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0;
+ var $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 
0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 
0, $211 = 0, $212 = 0, $213 = 0, $214 = 0;
+ var $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 
= 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 
= 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0;
+ var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 
= 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 
= 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0;
+ var $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, 
$258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, 
$265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0;
+ var $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 
= 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 
= 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0;
+ var $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 
= 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 
0, $301 = 0, $302 = 0, $303 = 0, $304 = 0;
+ var $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 
= 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 
= 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0;
+ var $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 
= 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 
= 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0;
+ var $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, 
$348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, 
$355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0;
+ var $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 
= 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 
= 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0;
+ var $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 
= 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 
= 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0;
+ var $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 
0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 
0, $41 = 0, $410 = 0, $411 = 0, $412 = 0;
+ var $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 
= 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 
= 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0;
+ var $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, 
$438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, 
$445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0;
+ var $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 
= 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 
= 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0;
+ var $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 
= 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 
= 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0;
+ var $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 
= 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 
0, $50 = 0, $500 = 0, $501 = 0, $502 = 0;
+ var $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 
= 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 
= 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0;
+ var $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, 
$528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, 
$535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $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;
+ var $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 
= 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 
= 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0;
+ var $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 
= 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 
= 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0;
+ var $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 
= 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 
= 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0;
+ var $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 
= 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 
= 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0;
+ var $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, 
$708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, 
$715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0;
+ var $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 
= 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 
= 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0;
+ var $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 
= 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 
= 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0;
+ var $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 
= 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 
= 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0;
+ var $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 
= 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 
= 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0;
+ var $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, 
$799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, 
$805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0;
+ var $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 
= 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 
= 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0;
+ var $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 
= 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 
= 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0;
+ var $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 
= 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 
= 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0;
+ var $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 
= 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 
= 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0;
+ var $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, 
$889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, 
$896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0;
+ var $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 
= 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 
= 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0;
+ var $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 
= 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 
= 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0;
+ var $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 
= 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 
= 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0;
+ var $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 
= 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 
= 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0;
+ var $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, 
$979 = 0, $98 = 0, $99 = 0, $cond$i = 0, $cond$i$i = 0, $cond$i203 = 0, $not$$i 
= 0, $or$cond$i = 0, $or$cond$i199 = 0, $or$cond1$i = 0, $or$cond1$i197 = 0, 
$or$cond11$i = 0, $or$cond2$i = 0;
+ var $or$cond5$i = 0, $or$cond50$i = 0, $or$cond51$i = 0, $or$cond6$i = 0, 
$or$cond7$i = 0, $or$cond8$i = 0, $or$cond8$not$i = 0, $spec$select$i = 0, 
$spec$select$i201 = 0, $spec$select1$i = 0, $spec$select2$i = 0, 
$spec$select4$i = 0, $spec$select49$i = 0, $spec$select9$i = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = sp;
+ $2 = ($0>>>0)<(245);
+ do {
+  if ($2) {
+   $3 = ($0>>>0)<(11);
+   $4 = (($0) + 11)|0;
+   $5 = $4 & -8;
+   $6 = $3 ? 16 : $5;
+   $7 = $6 >>> 3;
+   $8 = HEAP32[18178]|0;
+   $9 = $8 >>> $7;
+   $10 = $9 & 3;
+   $11 = ($10|0)==(0);
+   if (!($11)) {
+    $12 = $9 & 1;
+    $13 = $12 ^ 1;
+    $14 = (($13) + ($7))|0;
+    $15 = $14 << 1;
+    $16 = (72752 + ($15<<2)|0);
+    $17 = ((($16)) + 8|0);
+    $18 = HEAP32[$17>>2]|0;
+    $19 = ((($18)) + 8|0);
+    $20 = HEAP32[$19>>2]|0;
+    $21 = ($20|0)==($16|0);
+    if ($21) {
+     $22 = 1 << $14;
+     $23 = $22 ^ -1;
+     $24 = $8 & $23;
+     HEAP32[18178] = $24;
+    } else {
+     $25 = ((($20)) + 12|0);
+     HEAP32[$25>>2] = $16;
+     HEAP32[$17>>2] = $20;
+    }
+    $26 = $14 << 3;
+    $27 = $26 | 3;
+    $28 = ((($18)) + 4|0);
+    HEAP32[$28>>2] = $27;
+    $29 = (($18) + ($26)|0);
+    $30 = ((($29)) + 4|0);
+    $31 = HEAP32[$30>>2]|0;
+    $32 = $31 | 1;
+    HEAP32[$30>>2] = $32;
+    $$0 = $19;
+    STACKTOP = sp;return ($$0|0);
+   }
+   $33 = HEAP32[(72720)>>2]|0;
+   $34 = ($6>>>0)>($33>>>0);
+   if ($34) {
+    $35 = ($9|0)==(0);
+    if (!($35)) {
+     $36 = $9 << $7;
+     $37 = 2 << $7;
+     $38 = (0 - ($37))|0;
+     $39 = $37 | $38;
+     $40 = $36 & $39;
+     $41 = (0 - ($40))|0;
+     $42 = $40 & $41;
+     $43 = (($42) + -1)|0;
+     $44 = $43 >>> 12;
+     $45 = $44 & 16;
+     $46 = $43 >>> $45;
+     $47 = $46 >>> 5;
+     $48 = $47 & 8;
+     $49 = $48 | $45;
+     $50 = $46 >>> $48;
+     $51 = $50 >>> 2;
+     $52 = $51 & 4;
+     $53 = $49 | $52;
+     $54 = $50 >>> $52;
+     $55 = $54 >>> 1;
+     $56 = $55 & 2;
+     $57 = $53 | $56;
+     $58 = $54 >>> $56;
+     $59 = $58 >>> 1;
+     $60 = $59 & 1;
+     $61 = $57 | $60;
+     $62 = $58 >>> $60;
+     $63 = (($61) + ($62))|0;
+     $64 = $63 << 1;
+     $65 = (72752 + ($64<<2)|0);
+     $66 = ((($65)) + 8|0);
+     $67 = HEAP32[$66>>2]|0;
+     $68 = ((($67)) + 8|0);
+     $69 = HEAP32[$68>>2]|0;
+     $70 = ($69|0)==($65|0);
+     if ($70) {
+      $71 = 1 << $63;
+      $72 = $71 ^ -1;
+      $73 = $8 & $72;
+      HEAP32[18178] = $73;
+      $90 = $73;
+     } else {
+      $74 = ((($69)) + 12|0);
+      HEAP32[$74>>2] = $65;
+      HEAP32[$66>>2] = $69;
+      $90 = $8;
+     }
+     $75 = $63 << 3;
+     $76 = (($75) - ($6))|0;
+     $77 = $6 | 3;
+     $78 = ((($67)) + 4|0);
+     HEAP32[$78>>2] = $77;
+     $79 = (($67) + ($6)|0);
+     $80 = $76 | 1;
+     $81 = ((($79)) + 4|0);
+     HEAP32[$81>>2] = $80;
+     $82 = (($67) + ($75)|0);
+     HEAP32[$82>>2] = $76;
+     $83 = ($33|0)==(0);
+     if (!($83)) {
+      $84 = HEAP32[(72732)>>2]|0;
+      $85 = $33 >>> 3;
+      $86 = $85 << 1;
+      $87 = (72752 + ($86<<2)|0);
+      $88 = 1 << $85;
+      $89 = $90 & $88;
+      $91 = ($89|0)==(0);
+      if ($91) {
+       $92 = $90 | $88;
+       HEAP32[18178] = $92;
+       $$pre = ((($87)) + 8|0);
+       $$0194 = $87;$$pre$phiZ2D = $$pre;
+      } else {
+       $93 = ((($87)) + 8|0);
+       $94 = HEAP32[$93>>2]|0;
+       $$0194 = $94;$$pre$phiZ2D = $93;
+      }
+      HEAP32[$$pre$phiZ2D>>2] = $84;
+      $95 = ((($$0194)) + 12|0);
+      HEAP32[$95>>2] = $84;
+      $96 = ((($84)) + 8|0);
+      HEAP32[$96>>2] = $$0194;
+      $97 = ((($84)) + 12|0);
+      HEAP32[$97>>2] = $87;
+     }
+     HEAP32[(72720)>>2] = $76;
+     HEAP32[(72732)>>2] = $79;
+     $$0 = $68;
+     STACKTOP = sp;return ($$0|0);
+    }
+    $98 = HEAP32[(72716)>>2]|0;
+    $99 = ($98|0)==(0);
+    if ($99) {
+     $$0192 = $6;
+    } else {
+     $100 = (0 - ($98))|0;
+     $101 = $98 & $100;
+     $102 = (($101) + -1)|0;
+     $103 = $102 >>> 12;
+     $104 = $103 & 16;
+     $105 = $102 >>> $104;
+     $106 = $105 >>> 5;
+     $107 = $106 & 8;
+     $108 = $107 | $104;
+     $109 = $105 >>> $107;
+     $110 = $109 >>> 2;
+     $111 = $110 & 4;
+     $112 = $108 | $111;
+     $113 = $109 >>> $111;
+     $114 = $113 >>> 1;
+     $115 = $114 & 2;
+     $116 = $112 | $115;
+     $117 = $113 >>> $115;
+     $118 = $117 >>> 1;
+     $119 = $118 & 1;
+     $120 = $116 | $119;
+     $121 = $117 >>> $119;
+     $122 = (($120) + ($121))|0;
+     $123 = (73016 + ($122<<2)|0);
+     $124 = HEAP32[$123>>2]|0;
+     $125 = ((($124)) + 4|0);
+     $126 = HEAP32[$125>>2]|0;
+     $127 = $126 & -8;
+     $128 = (($127) - ($6))|0;
+     $$0169$i = $124;$$0170$i = $124;$$0171$i = $128;
+     while(1) {
+      $129 = ((($$0169$i)) + 16|0);
+      $130 = HEAP32[$129>>2]|0;
+      $131 = ($130|0)==(0|0);
+      if ($131) {
+       $132 = ((($$0169$i)) + 20|0);
+       $133 = HEAP32[$132>>2]|0;
+       $134 = ($133|0)==(0|0);
+       if ($134) {
+        break;
+       } else {
+        $136 = $133;
+       }
+      } else {
+       $136 = $130;
+      }
+      $135 = ((($136)) + 4|0);
+      $137 = HEAP32[$135>>2]|0;
+      $138 = $137 & -8;
+      $139 = (($138) - ($6))|0;
+      $140 = ($139>>>0)<($$0171$i>>>0);
+      $spec$select$i = $140 ? $139 : $$0171$i;
+      $spec$select1$i = $140 ? $136 : $$0170$i;
+      $$0169$i = $136;$$0170$i = $spec$select1$i;$$0171$i = $spec$select$i;
+     }
+     $141 = (($$0170$i) + ($6)|0);
+     $142 = ($141>>>0)>($$0170$i>>>0);
+     if ($142) {
+      $143 = ((($$0170$i)) + 24|0);
+      $144 = HEAP32[$143>>2]|0;
+      $145 = ((($$0170$i)) + 12|0);
+      $146 = HEAP32[$145>>2]|0;
+      $147 = ($146|0)==($$0170$i|0);
+      do {
+       if ($147) {
+        $152 = ((($$0170$i)) + 20|0);
+        $153 = HEAP32[$152>>2]|0;
+        $154 = ($153|0)==(0|0);
+        if ($154) {
+         $155 = ((($$0170$i)) + 16|0);
+         $156 = HEAP32[$155>>2]|0;
+         $157 = ($156|0)==(0|0);
+         if ($157) {
+          $$3$i = 0;
+          break;
+         } else {
+          $$1174$i$ph = $156;$$1176$i$ph = $155;
+         }
+        } else {
+         $$1174$i$ph = $153;$$1176$i$ph = $152;
+        }
+        $$1174$i = $$1174$i$ph;$$1176$i = $$1176$i$ph;
+        while(1) {
+         $158 = ((($$1174$i)) + 20|0);
+         $159 = HEAP32[$158>>2]|0;
+         $160 = ($159|0)==(0|0);
+         if ($160) {
+          $161 = ((($$1174$i)) + 16|0);
+          $162 = HEAP32[$161>>2]|0;
+          $163 = ($162|0)==(0|0);
+          if ($163) {
+           break;
+          } else {
+           $$1174$i$be = $162;$$1176$i$be = $161;
+          }
+         } else {
+          $$1174$i$be = $159;$$1176$i$be = $158;
+         }
+         $$1174$i = $$1174$i$be;$$1176$i = $$1176$i$be;
+        }
+        HEAP32[$$1176$i>>2] = 0;
+        $$3$i = $$1174$i;
+       } else {
+        $148 = ((($$0170$i)) + 8|0);
+        $149 = HEAP32[$148>>2]|0;
+        $150 = ((($149)) + 12|0);
+        HEAP32[$150>>2] = $146;
+        $151 = ((($146)) + 8|0);
+        HEAP32[$151>>2] = $149;
+        $$3$i = $146;
+       }
+      } while(0);
+      $164 = ($144|0)==(0|0);
+      do {
+       if (!($164)) {
+        $165 = ((($$0170$i)) + 28|0);
+        $166 = HEAP32[$165>>2]|0;
+        $167 = (73016 + ($166<<2)|0);
+        $168 = HEAP32[$167>>2]|0;
+        $169 = ($$0170$i|0)==($168|0);
+        if ($169) {
+         HEAP32[$167>>2] = $$3$i;
+         $cond$i = ($$3$i|0)==(0|0);
+         if ($cond$i) {
+          $170 = 1 << $166;
+          $171 = $170 ^ -1;
+          $172 = $98 & $171;
+          HEAP32[(72716)>>2] = $172;
+          break;
+         }
+        } else {
+         $173 = ((($144)) + 16|0);
+         $174 = HEAP32[$173>>2]|0;
+         $175 = ($174|0)==($$0170$i|0);
+         $176 = ((($144)) + 20|0);
+         $$sink = $175 ? $173 : $176;
+         HEAP32[$$sink>>2] = $$3$i;
+         $177 = ($$3$i|0)==(0|0);
+         if ($177) {
+          break;
+         }
+        }
+        $178 = ((($$3$i)) + 24|0);
+        HEAP32[$178>>2] = $144;
+        $179 = ((($$0170$i)) + 16|0);
+        $180 = HEAP32[$179>>2]|0;
+        $181 = ($180|0)==(0|0);
+        if (!($181)) {
+         $182 = ((($$3$i)) + 16|0);
+         HEAP32[$182>>2] = $180;
+         $183 = ((($180)) + 24|0);
+         HEAP32[$183>>2] = $$3$i;
+        }
+        $184 = ((($$0170$i)) + 20|0);
+        $185 = HEAP32[$184>>2]|0;
+        $186 = ($185|0)==(0|0);
+        if (!($186)) {
+         $187 = ((($$3$i)) + 20|0);
+         HEAP32[$187>>2] = $185;
+         $188 = ((($185)) + 24|0);
+         HEAP32[$188>>2] = $$3$i;
+        }
+       }
+      } while(0);
+      $189 = ($$0171$i>>>0)<(16);
+      if ($189) {
+       $190 = (($$0171$i) + ($6))|0;
+       $191 = $190 | 3;
+       $192 = ((($$0170$i)) + 4|0);
+       HEAP32[$192>>2] = $191;
+       $193 = (($$0170$i) + ($190)|0);
+       $194 = ((($193)) + 4|0);
+       $195 = HEAP32[$194>>2]|0;
+       $196 = $195 | 1;
+       HEAP32[$194>>2] = $196;
+      } else {
+       $197 = $6 | 3;
+       $198 = ((($$0170$i)) + 4|0);
+       HEAP32[$198>>2] = $197;
+       $199 = $$0171$i | 1;
+       $200 = ((($141)) + 4|0);
+       HEAP32[$200>>2] = $199;
+       $201 = (($141) + ($$0171$i)|0);
+       HEAP32[$201>>2] = $$0171$i;
+       $202 = ($33|0)==(0);
+       if (!($202)) {
+        $203 = HEAP32[(72732)>>2]|0;
+        $204 = $33 >>> 3;
+        $205 = $204 << 1;
+        $206 = (72752 + ($205<<2)|0);
+        $207 = 1 << $204;
+        $208 = $207 & $8;
+        $209 = ($208|0)==(0);
+        if ($209) {
+         $210 = $207 | $8;
+         HEAP32[18178] = $210;
+         $$pre$i = ((($206)) + 8|0);
+         $$0$i = $206;$$pre$phi$iZ2D = $$pre$i;
+        } else {
+         $211 = ((($206)) + 8|0);
+         $212 = HEAP32[$211>>2]|0;
+         $$0$i = $212;$$pre$phi$iZ2D = $211;
+        }
+        HEAP32[$$pre$phi$iZ2D>>2] = $203;
+        $213 = ((($$0$i)) + 12|0);
+        HEAP32[$213>>2] = $203;
+        $214 = ((($203)) + 8|0);
+        HEAP32[$214>>2] = $$0$i;
+        $215 = ((($203)) + 12|0);
+        HEAP32[$215>>2] = $206;
+       }
+       HEAP32[(72720)>>2] = $$0171$i;
+       HEAP32[(72732)>>2] = $141;
+      }
+      $216 = ((($$0170$i)) + 8|0);
+      $$0 = $216;
+      STACKTOP = sp;return ($$0|0);
+     } else {
+      $$0192 = $6;
+     }
+    }
+   } else {
+    $$0192 = $6;
+   }
+  } else {
+   $217 = ($0>>>0)>(4294967231);
+   if ($217) {
+    $$0192 = -1;
+   } else {
+    $218 = (($0) + 11)|0;
+    $219 = $218 & -8;
+    $220 = HEAP32[(72716)>>2]|0;
+    $221 = ($220|0)==(0);
+    if ($221) {
+     $$0192 = $219;
+    } else {
+     $222 = (0 - ($219))|0;
+     $223 = $218 >>> 8;
+     $224 = ($223|0)==(0);
+     if ($224) {
+      $$0335$i = 0;
+     } else {
+      $225 = ($219>>>0)>(16777215);
+      if ($225) {
+       $$0335$i = 31;
+      } else {
+       $226 = (($223) + 1048320)|0;
+       $227 = $226 >>> 16;
+       $228 = $227 & 8;
+       $229 = $223 << $228;
+       $230 = (($229) + 520192)|0;
+       $231 = $230 >>> 16;
+       $232 = $231 & 4;
+       $233 = $232 | $228;
+       $234 = $229 << $232;
+       $235 = (($234) + 245760)|0;
+       $236 = $235 >>> 16;
+       $237 = $236 & 2;
+       $238 = $233 | $237;
+       $239 = (14 - ($238))|0;
+       $240 = $234 << $237;
+       $241 = $240 >>> 15;
+       $242 = (($239) + ($241))|0;
+       $243 = $242 << 1;
+       $244 = (($242) + 7)|0;
+       $245 = $219 >>> $244;
+       $246 = $245 & 1;
+       $247 = $246 | $243;
+       $$0335$i = $247;
+      }
+     }
+     $248 = (73016 + ($$0335$i<<2)|0);
+     $249 = HEAP32[$248>>2]|0;
+     $250 = ($249|0)==(0|0);
+     L79: do {
+      if ($250) {
+       $$2331$i = 0;$$3$i198 = 0;$$3326$i = $222;
+       label = 61;
+      } else {
+       $251 = ($$0335$i|0)==(31);
+       $252 = $$0335$i >>> 1;
+       $253 = (25 - ($252))|0;
+       $254 = $251 ? 0 : $253;
+       $255 = $219 << $254;
+       $$0318$i = 0;$$0323$i = $222;$$0329$i = $249;$$0336$i = $255;$$0339$i = 
0;
+       while(1) {
+        $256 = ((($$0329$i)) + 4|0);
+        $257 = HEAP32[$256>>2]|0;
+        $258 = $257 & -8;
+        $259 = (($258) - ($219))|0;
+        $260 = ($259>>>0)<($$0323$i>>>0);
+        if ($260) {
+         $261 = ($259|0)==(0);
+         if ($261) {
+          $$415$i$ph = $$0329$i;$$432714$i$ph = 0;$$533413$i$ph = $$0329$i;
+          label = 65;
+          break L79;
+         } else {
+          $$1319$i = $$0329$i;$$1324$i = $259;
+         }
+        } else {
+         $$1319$i = $$0318$i;$$1324$i = $$0323$i;
+        }
+        $262 = ((($$0329$i)) + 20|0);
+        $263 = HEAP32[$262>>2]|0;
+        $264 = $$0336$i >>> 31;
+        $265 = (((($$0329$i)) + 16|0) + ($264<<2)|0);
+        $266 = HEAP32[$265>>2]|0;
+        $267 = ($263|0)==(0|0);
+        $268 = ($263|0)==($266|0);
+        $or$cond1$i197 = $267 | $268;
+        $$1340$i = $or$cond1$i197 ? $$0339$i : $263;
+        $269 = ($266|0)==(0|0);
+        $spec$select4$i = $$0336$i << 1;
+        if ($269) {
+         $$2331$i = $$1340$i;$$3$i198 = $$1319$i;$$3326$i = $$1324$i;
+         label = 61;
+         break;
+        } else {
+         $$0318$i = $$1319$i;$$0323$i = $$1324$i;$$0329$i = $266;$$0336$i = 
$spec$select4$i;$$0339$i = $$1340$i;
+        }
+       }
+      }
+     } while(0);
+     if ((label|0) == 61) {
+      $270 = ($$2331$i|0)==(0|0);
+      $271 = ($$3$i198|0)==(0|0);
+      $or$cond$i199 = $270 & $271;
+      if ($or$cond$i199) {
+       $272 = 2 << $$0335$i;
+       $273 = (0 - ($272))|0;
+       $274 = $272 | $273;
+       $275 = $274 & $220;
+       $276 = ($275|0)==(0);
+       if ($276) {
+        $$0192 = $219;
+        break;
+       }
+       $277 = (0 - ($275))|0;
+       $278 = $275 & $277;
+       $279 = (($278) + -1)|0;
+       $280 = $279 >>> 12;
+       $281 = $280 & 16;
+       $282 = $279 >>> $281;
+       $283 = $282 >>> 5;
+       $284 = $283 & 8;
+       $285 = $284 | $281;
+       $286 = $282 >>> $284;
+       $287 = $286 >>> 2;
+       $288 = $287 & 4;
+       $289 = $285 | $288;
+       $290 = $286 >>> $288;
+       $291 = $290 >>> 1;
+       $292 = $291 & 2;
+       $293 = $289 | $292;
+       $294 = $290 >>> $292;
+       $295 = $294 >>> 1;
+       $296 = $295 & 1;
+       $297 = $293 | $296;
+       $298 = $294 >>> $296;
+       $299 = (($297) + ($298))|0;
+       $300 = (73016 + ($299<<2)|0);
+       $301 = HEAP32[$300>>2]|0;
+       $$3$i198211 = 0;$$4333$i = $301;
+      } else {
+       $$3$i198211 = $$3$i198;$$4333$i = $$2331$i;
+      }
+      $302 = ($$4333$i|0)==(0|0);
+      if ($302) {
+       $$4$lcssa$i = $$3$i198211;$$4327$lcssa$i = $$3326$i;
+      } else {
+       $$415$i$ph = $$3$i198211;$$432714$i$ph = $$3326$i;$$533413$i$ph = 
$$4333$i;
+       label = 65;
+      }
+     }
+     if ((label|0) == 65) {
+      $$415$i = $$415$i$ph;$$432714$i = $$432714$i$ph;$$533413$i = 
$$533413$i$ph;
+      while(1) {
+       $303 = ((($$533413$i)) + 4|0);
+       $304 = HEAP32[$303>>2]|0;
+       $305 = $304 & -8;
+       $306 = (($305) - ($219))|0;
+       $307 = ($306>>>0)<($$432714$i>>>0);
+       $spec$select$i201 = $307 ? $306 : $$432714$i;
+       $spec$select2$i = $307 ? $$533413$i : $$415$i;
+       $308 = ((($$533413$i)) + 16|0);
+       $309 = HEAP32[$308>>2]|0;
+       $310 = ($309|0)==(0|0);
+       if ($310) {
+        $311 = ((($$533413$i)) + 20|0);
+        $312 = HEAP32[$311>>2]|0;
+        $314 = $312;
+       } else {
+        $314 = $309;
+       }
+       $313 = ($314|0)==(0|0);
+       if ($313) {
+        $$4$lcssa$i = $spec$select2$i;$$4327$lcssa$i = $spec$select$i201;
+        break;
+       } else {
+        $$415$i = $spec$select2$i;$$432714$i = $spec$select$i201;$$533413$i = 
$314;
+       }
+      }
+     }
+     $315 = ($$4$lcssa$i|0)==(0|0);
+     if ($315) {
+      $$0192 = $219;
+     } else {
+      $316 = HEAP32[(72720)>>2]|0;
+      $317 = (($316) - ($219))|0;
+      $318 = ($$4327$lcssa$i>>>0)<($317>>>0);
+      if ($318) {
+       $319 = (($$4$lcssa$i) + ($219)|0);
+       $320 = ($319>>>0)>($$4$lcssa$i>>>0);
+       if ($320) {
+        $321 = ((($$4$lcssa$i)) + 24|0);
+        $322 = HEAP32[$321>>2]|0;
+        $323 = ((($$4$lcssa$i)) + 12|0);
+        $324 = HEAP32[$323>>2]|0;
+        $325 = ($324|0)==($$4$lcssa$i|0);
+        do {
+         if ($325) {
+          $330 = ((($$4$lcssa$i)) + 20|0);
+          $331 = HEAP32[$330>>2]|0;
+          $332 = ($331|0)==(0|0);
+          if ($332) {
+           $333 = ((($$4$lcssa$i)) + 16|0);
+           $334 = HEAP32[$333>>2]|0;
+           $335 = ($334|0)==(0|0);
+           if ($335) {
+            $$3348$i = 0;
+            break;
+           } else {
+            $$1346$i$ph = $334;$$1350$i$ph = $333;
+           }
+          } else {
+           $$1346$i$ph = $331;$$1350$i$ph = $330;
+          }
+          $$1346$i = $$1346$i$ph;$$1350$i = $$1350$i$ph;
+          while(1) {
+           $336 = ((($$1346$i)) + 20|0);
+           $337 = HEAP32[$336>>2]|0;
+           $338 = ($337|0)==(0|0);
+           if ($338) {
+            $339 = ((($$1346$i)) + 16|0);
+            $340 = HEAP32[$339>>2]|0;
+            $341 = ($340|0)==(0|0);
+            if ($341) {
+             break;
+            } else {
+             $$1346$i$be = $340;$$1350$i$be = $339;
+            }
+           } else {
+            $$1346$i$be = $337;$$1350$i$be = $336;
+           }
+           $$1346$i = $$1346$i$be;$$1350$i = $$1350$i$be;
+          }
+          HEAP32[$$1350$i>>2] = 0;
+          $$3348$i = $$1346$i;
+         } else {
+          $326 = ((($$4$lcssa$i)) + 8|0);
+          $327 = HEAP32[$326>>2]|0;
+          $328 = ((($327)) + 12|0);
+          HEAP32[$328>>2] = $324;
+          $329 = ((($324)) + 8|0);
+          HEAP32[$329>>2] = $327;
+          $$3348$i = $324;
+         }
+        } while(0);
+        $342 = ($322|0)==(0|0);
+        do {
+         if ($342) {
+          $425 = $220;
+         } else {
+          $343 = ((($$4$lcssa$i)) + 28|0);
+          $344 = HEAP32[$343>>2]|0;
+          $345 = (73016 + ($344<<2)|0);
+          $346 = HEAP32[$345>>2]|0;
+          $347 = ($$4$lcssa$i|0)==($346|0);
+          if ($347) {
+           HEAP32[$345>>2] = $$3348$i;
+           $cond$i203 = ($$3348$i|0)==(0|0);
+           if ($cond$i203) {
+            $348 = 1 << $344;
+            $349 = $348 ^ -1;
+            $350 = $220 & $349;
+            HEAP32[(72716)>>2] = $350;
+            $425 = $350;
+            break;
+           }
+          } else {
+           $351 = ((($322)) + 16|0);
+           $352 = HEAP32[$351>>2]|0;
+           $353 = ($352|0)==($$4$lcssa$i|0);
+           $354 = ((($322)) + 20|0);
+           $$sink320 = $353 ? $351 : $354;
+           HEAP32[$$sink320>>2] = $$3348$i;
+           $355 = ($$3348$i|0)==(0|0);
+           if ($355) {
+            $425 = $220;
+            break;
+           }
+          }
+          $356 = ((($$3348$i)) + 24|0);
+          HEAP32[$356>>2] = $322;
+          $357 = ((($$4$lcssa$i)) + 16|0);
+          $358 = HEAP32[$357>>2]|0;
+          $359 = ($358|0)==(0|0);
+          if (!($359)) {
+           $360 = ((($$3348$i)) + 16|0);
+           HEAP32[$360>>2] = $358;
+           $361 = ((($358)) + 24|0);
+           HEAP32[$361>>2] = $$3348$i;
+          }
+          $362 = ((($$4$lcssa$i)) + 20|0);
+          $363 = HEAP32[$362>>2]|0;
+          $364 = ($363|0)==(0|0);
+          if ($364) {
+           $425 = $220;
+          } else {
+           $365 = ((($$3348$i)) + 20|0);
+           HEAP32[$365>>2] = $363;
+           $366 = ((($363)) + 24|0);
+           HEAP32[$366>>2] = $$3348$i;
+           $425 = $220;
+          }
+         }
+        } while(0);
+        $367 = ($$4327$lcssa$i>>>0)<(16);
+        L128: do {
+         if ($367) {
+          $368 = (($$4327$lcssa$i) + ($219))|0;
+          $369 = $368 | 3;
+          $370 = ((($$4$lcssa$i)) + 4|0);
+          HEAP32[$370>>2] = $369;
+          $371 = (($$4$lcssa$i) + ($368)|0);
+          $372 = ((($371)) + 4|0);
+          $373 = HEAP32[$372>>2]|0;
+          $374 = $373 | 1;
+          HEAP32[$372>>2] = $374;
+         } else {
+          $375 = $219 | 3;
+          $376 = ((($$4$lcssa$i)) + 4|0);
+          HEAP32[$376>>2] = $375;
+          $377 = $$4327$lcssa$i | 1;
+          $378 = ((($319)) + 4|0);
+          HEAP32[$378>>2] = $377;
+          $379 = (($319) + ($$4327$lcssa$i)|0);
+          HEAP32[$379>>2] = $$4327$lcssa$i;
+          $380 = $$4327$lcssa$i >>> 3;
+          $381 = ($$4327$lcssa$i>>>0)<(256);
+          if ($381) {
+           $382 = $380 << 1;
+           $383 = (72752 + ($382<<2)|0);
+           $384 = HEAP32[18178]|0;
+           $385 = 1 << $380;
+           $386 = $384 & $385;
+           $387 = ($386|0)==(0);
+           if ($387) {
+            $388 = $384 | $385;
+            HEAP32[18178] = $388;
+            $$pre$i204 = ((($383)) + 8|0);
+            $$0344$i = $383;$$pre$phi$i205Z2D = $$pre$i204;
+           } else {
+            $389 = ((($383)) + 8|0);
+            $390 = HEAP32[$389>>2]|0;
+            $$0344$i = $390;$$pre$phi$i205Z2D = $389;
+           }
+           HEAP32[$$pre$phi$i205Z2D>>2] = $319;
+           $391 = ((($$0344$i)) + 12|0);
+           HEAP32[$391>>2] = $319;
+           $392 = ((($319)) + 8|0);
+           HEAP32[$392>>2] = $$0344$i;
+           $393 = ((($319)) + 12|0);
+           HEAP32[$393>>2] = $383;
+           break;
+          }
+          $394 = $$4327$lcssa$i >>> 8;
+          $395 = ($394|0)==(0);
+          if ($395) {
+           $$0338$i = 0;
+          } else {
+           $396 = ($$4327$lcssa$i>>>0)>(16777215);
+           if ($396) {
+            $$0338$i = 31;
+           } else {
+            $397 = (($394) + 1048320)|0;
+            $398 = $397 >>> 16;
+            $399 = $398 & 8;
+            $400 = $394 << $399;
+            $401 = (($400) + 520192)|0;
+            $402 = $401 >>> 16;
+            $403 = $402 & 4;
+            $404 = $403 | $399;
+            $405 = $400 << $403;
+            $406 = (($405) + 245760)|0;
+            $407 = $406 >>> 16;
+            $408 = $407 & 2;
+            $409 = $404 | $408;
+            $410 = (14 - ($409))|0;
+            $411 = $405 << $408;
+            $412 = $411 >>> 15;
+            $413 = (($410) + ($412))|0;
+            $414 = $413 << 1;
+            $415 = (($413) + 7)|0;
+            $416 = $$4327$lcssa$i >>> $415;
+            $417 = $416 & 1;
+            $418 = $417 | $414;
+            $$0338$i = $418;
+           }
+          }
+          $419 = (73016 + ($$0338$i<<2)|0);
+          $420 = ((($319)) + 28|0);
+          HEAP32[$420>>2] = $$0338$i;
+          $421 = ((($319)) + 16|0);
+          $422 = ((($421)) + 4|0);
+          HEAP32[$422>>2] = 0;
+          HEAP32[$421>>2] = 0;
+          $423 = 1 << $$0338$i;
+          $424 = $425 & $423;
+          $426 = ($424|0)==(0);
+          if ($426) {
+           $427 = $425 | $423;
+           HEAP32[(72716)>>2] = $427;
+           HEAP32[$419>>2] = $319;
+           $428 = ((($319)) + 24|0);
+           HEAP32[$428>>2] = $419;
+           $429 = ((($319)) + 12|0);
+           HEAP32[$429>>2] = $319;
+           $430 = ((($319)) + 8|0);
+           HEAP32[$430>>2] = $319;
+           break;
+          }
+          $431 = HEAP32[$419>>2]|0;
+          $432 = ((($431)) + 4|0);
+          $433 = HEAP32[$432>>2]|0;
+          $434 = $433 & -8;
+          $435 = ($434|0)==($$4327$lcssa$i|0);
+          L145: do {
+           if ($435) {
+            $$0321$lcssa$i = $431;
+           } else {
+            $436 = ($$0338$i|0)==(31);
+            $437 = $$0338$i >>> 1;
+            $438 = (25 - ($437))|0;
+            $439 = $436 ? 0 : $438;
+            $440 = $$4327$lcssa$i << $439;
+            $$032012$i = $440;$$032111$i = $431;
+            while(1) {
+             $447 = $$032012$i >>> 31;
+             $448 = (((($$032111$i)) + 16|0) + ($447<<2)|0);
+             $443 = HEAP32[$448>>2]|0;
+             $449 = ($443|0)==(0|0);
+             if ($449) {
+              break;
+             }
+             $441 = $$032012$i << 1;
+             $442 = ((($443)) + 4|0);
+             $444 = HEAP32[$442>>2]|0;
+             $445 = $444 & -8;
+             $446 = ($445|0)==($$4327$lcssa$i|0);
+             if ($446) {
+              $$0321$lcssa$i = $443;
+              break L145;
+             } else {
+              $$032012$i = $441;$$032111$i = $443;
+             }
+            }
+            HEAP32[$448>>2] = $319;
+            $450 = ((($319)) + 24|0);
+            HEAP32[$450>>2] = $$032111$i;
+            $451 = ((($319)) + 12|0);
+            HEAP32[$451>>2] = $319;
+            $452 = ((($319)) + 8|0);
+            HEAP32[$452>>2] = $319;
+            break L128;
+           }
+          } while(0);
+          $453 = ((($$0321$lcssa$i)) + 8|0);
+          $454 = HEAP32[$453>>2]|0;
+          $455 = ((($454)) + 12|0);
+          HEAP32[$455>>2] = $319;
+          HEAP32[$453>>2] = $319;
+          $456 = ((($319)) + 8|0);
+          HEAP32[$456>>2] = $454;
+          $457 = ((($319)) + 12|0);
+          HEAP32[$457>>2] = $$0321$lcssa$i;
+          $458 = ((($319)) + 24|0);
+          HEAP32[$458>>2] = 0;
+         }
+        } while(0);
+        $459 = ((($$4$lcssa$i)) + 8|0);
+        $$0 = $459;
+        STACKTOP = sp;return ($$0|0);
+       } else {
+        $$0192 = $219;
+       }
+      } else {
+       $$0192 = $219;
+      }
+     }
+    }
+   }
+  }
+ } while(0);
+ $460 = HEAP32[(72720)>>2]|0;
+ $461 = ($460>>>0)<($$0192>>>0);
+ if (!($461)) {
+  $462 = (($460) - ($$0192))|0;
+  $463 = HEAP32[(72732)>>2]|0;
+  $464 = ($462>>>0)>(15);
+  if ($464) {
+   $465 = (($463) + ($$0192)|0);
+   HEAP32[(72732)>>2] = $465;
+   HEAP32[(72720)>>2] = $462;
+   $466 = $462 | 1;
+   $467 = ((($465)) + 4|0);
+   HEAP32[$467>>2] = $466;
+   $468 = (($463) + ($460)|0);
+   HEAP32[$468>>2] = $462;
+   $469 = $$0192 | 3;
+   $470 = ((($463)) + 4|0);
+   HEAP32[$470>>2] = $469;
+  } else {
+   HEAP32[(72720)>>2] = 0;
+   HEAP32[(72732)>>2] = 0;
+   $471 = $460 | 3;
+   $472 = ((($463)) + 4|0);
+   HEAP32[$472>>2] = $471;
+   $473 = (($463) + ($460)|0);
+   $474 = ((($473)) + 4|0);
+   $475 = HEAP32[$474>>2]|0;
+   $476 = $475 | 1;
+   HEAP32[$474>>2] = $476;
+  }
+  $477 = ((($463)) + 8|0);
+  $$0 = $477;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $478 = HEAP32[(72724)>>2]|0;
+ $479 = ($478>>>0)>($$0192>>>0);
+ if ($479) {
+  $480 = (($478) - ($$0192))|0;
+  HEAP32[(72724)>>2] = $480;
+  $481 = HEAP32[(72736)>>2]|0;
+  $482 = (($481) + ($$0192)|0);
+  HEAP32[(72736)>>2] = $482;
+  $483 = $480 | 1;
+  $484 = ((($482)) + 4|0);
+  HEAP32[$484>>2] = $483;
+  $485 = $$0192 | 3;
+  $486 = ((($481)) + 4|0);
+  HEAP32[$486>>2] = $485;
+  $487 = ((($481)) + 8|0);
+  $$0 = $487;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $488 = HEAP32[18296]|0;
+ $489 = ($488|0)==(0);
+ if ($489) {
+  HEAP32[(73192)>>2] = 4096;
+  HEAP32[(73188)>>2] = 4096;
+  HEAP32[(73196)>>2] = -1;
+  HEAP32[(73200)>>2] = -1;
+  HEAP32[(73204)>>2] = 0;
+  HEAP32[(73156)>>2] = 0;
+  $490 = $1;
+  $491 = $490 & -16;
+  $492 = $491 ^ 1431655768;
+  HEAP32[18296] = $492;
+  $496 = 4096;
+ } else {
+  $$pre$i195 = HEAP32[(73192)>>2]|0;
+  $496 = $$pre$i195;
+ }
+ $493 = (($$0192) + 48)|0;
+ $494 = (($$0192) + 47)|0;
+ $495 = (($496) + ($494))|0;
+ $497 = (0 - ($496))|0;
+ $498 = $495 & $497;
+ $499 = ($498>>>0)>($$0192>>>0);
+ if (!($499)) {
+  $$0 = 0;
+  STACKTOP = sp;return ($$0|0);
+ }
+ $500 = HEAP32[(73152)>>2]|0;
+ $501 = ($500|0)==(0);
+ if (!($501)) {
+  $502 = HEAP32[(73144)>>2]|0;
+  $503 = (($502) + ($498))|0;
+  $504 = ($503>>>0)<=($502>>>0);
+  $505 = ($503>>>0)>($500>>>0);
+  $or$cond1$i = $504 | $505;
+  if ($or$cond1$i) {
+   $$0 = 0;
+   STACKTOP = sp;return ($$0|0);
+  }
+ }
+ $506 = HEAP32[(73156)>>2]|0;
+ $507 = $506 & 4;
+ $508 = ($507|0)==(0);
+ L178: do {
+  if ($508) {
+   $509 = HEAP32[(72736)>>2]|0;
+   $510 = ($509|0)==(0|0);
+   L180: do {
+    if ($510) {
+     label = 128;
+    } else {
+     $$0$i20$i = (73160);
+     while(1) {
+      $511 = HEAP32[$$0$i20$i>>2]|0;
+      $512 = ($511>>>0)>($509>>>0);
+      if (!($512)) {
+       $513 = ((($$0$i20$i)) + 4|0);
+       $514 = HEAP32[$513>>2]|0;
+       $515 = (($511) + ($514)|0);
+       $516 = ($515>>>0)>($509>>>0);
+       if ($516) {
+        break;
+       }
+      }
+      $517 = ((($$0$i20$i)) + 8|0);
+      $518 = HEAP32[$517>>2]|0;
+      $519 = ($518|0)==(0|0);
+      if ($519) {
+       label = 128;
+       break L180;
+      } else {
+       $$0$i20$i = $518;
+      }
+     }
+     $542 = (($495) - ($478))|0;
+     $543 = $542 & $497;
+     $544 = ($543>>>0)<(2147483647);
+     if ($544) {
+      $545 = ((($$0$i20$i)) + 4|0);
+      $546 = (_sbrk(($543|0))|0);
+      $547 = HEAP32[$$0$i20$i>>2]|0;
+      $548 = HEAP32[$545>>2]|0;
+      $549 = (($547) + ($548)|0);
+      $550 = ($546|0)==($549|0);
+      if ($550) {
+       $551 = ($546|0)==((-1)|0);
+       if ($551) {
+        $$2234243136$i = $543;
+       } else {
+        $$723947$i = $543;$$748$i = $546;
+        label = 145;
+        break L178;
+       }
+      } else {
+       $$2247$ph$i = $546;$$2253$ph$i = $543;
+       label = 136;
+      }
+     } else {
+      $$2234243136$i = 0;
+     }
+    }
+   } while(0);
+   do {
+    if ((label|0) == 128) {
+     $520 = (_sbrk(0)|0);
+     $521 = ($520|0)==((-1)|0);
+     if ($521) {
+      $$2234243136$i = 0;
+     } else {
+      $522 = $520;
+      $523 = HEAP32[(73188)>>2]|0;
+      $524 = (($523) + -1)|0;
+      $525 = $524 & $522;
+      $526 = ($525|0)==(0);
+      $527 = (($524) + ($522))|0;
+      $528 = (0 - ($523))|0;
+      $529 = $527 & $528;
+      $530 = (($529) - ($522))|0;
+      $531 = $526 ? 0 : $530;
+      $spec$select49$i = (($531) + ($498))|0;
+      $532 = HEAP32[(73144)>>2]|0;
+      $533 = (($spec$select49$i) + ($532))|0;
+      $534 = ($spec$select49$i>>>0)>($$0192>>>0);
+      $535 = ($spec$select49$i>>>0)<(2147483647);
+      $or$cond$i = $534 & $535;
+      if ($or$cond$i) {
+       $536 = HEAP32[(73152)>>2]|0;
+       $537 = ($536|0)==(0);
+       if (!($537)) {
+        $538 = ($533>>>0)<=($532>>>0);
+        $539 = ($533>>>0)>($536>>>0);
+        $or$cond2$i = $538 | $539;
+        if ($or$cond2$i) {
+         $$2234243136$i = 0;
+         break;
+        }
+       }
+       $540 = (_sbrk(($spec$select49$i|0))|0);
+       $541 = ($540|0)==($520|0);
+       if ($541) {
+        $$723947$i = $spec$select49$i;$$748$i = $520;
+        label = 145;
+        break L178;
+       } else {
+        $$2247$ph$i = $540;$$2253$ph$i = $spec$select49$i;
+        label = 136;
+       }
+      } else {
+       $$2234243136$i = 0;
+      }
+     }
+    }
+   } while(0);
+   do {
+    if ((label|0) == 136) {
+     $552 = (0 - ($$2253$ph$i))|0;
+     $553 = ($$2247$ph$i|0)!=((-1)|0);
+     $554 = ($$2253$ph$i>>>0)<(2147483647);
+     $or$cond7$i = $554 & $553;
+     $555 = ($493>>>0)>($$2253$ph$i>>>0);
+     $or$cond6$i = $555 & $or$cond7$i;
+     if (!($or$cond6$i)) {
+      $565 = ($$2247$ph$i|0)==((-1)|0);
+      if ($565) {
+       $$2234243136$i = 0;
+       break;
+      } else {
+       $$723947$i = $$2253$ph$i;$$748$i = $$2247$ph$i;
+       label = 145;
+       break L178;
+      }
+     }
+     $556 = HEAP32[(73192)>>2]|0;
+     $557 = (($494) - ($$2253$ph$i))|0;
+     $558 = (($557) + ($556))|0;
+     $559 = (0 - ($556))|0;
+     $560 = $558 & $559;
+     $561 = ($560>>>0)<(2147483647);
+     if (!($561)) {
+      $$723947$i = $$2253$ph$i;$$748$i = $$2247$ph$i;
+      label = 145;
+      break L178;
+     }
+     $562 = (_sbrk(($560|0))|0);
+     $563 = ($562|0)==((-1)|0);
+     if ($563) {
+      (_sbrk(($552|0))|0);
+      $$2234243136$i = 0;
+      break;
+     } else {
+      $564 = (($560) + ($$2253$ph$i))|0;
+      $$723947$i = $564;$$748$i = $$2247$ph$i;
+      label = 145;
+      break L178;
+     }
+    }
+   } while(0);
+   $566 = HEAP32[(73156)>>2]|0;
+   $567 = $566 | 4;
+   HEAP32[(73156)>>2] = $567;
+   $$4236$i = $$2234243136$i;
+   label = 143;
+  } else {
+   $$4236$i = 0;
+   label = 143;
+  }
+ } while(0);
+ if ((label|0) == 143) {
+  $568 = ($498>>>0)<(2147483647);
+  if ($568) {
+   $569 = (_sbrk(($498|0))|0);
+   $570 = (_sbrk(0)|0);
+   $571 = ($569|0)!=((-1)|0);
+   $572 = ($570|0)!=((-1)|0);
+   $or$cond5$i = $571 & $572;
+   $573 = ($569>>>0)<($570>>>0);
+   $or$cond8$i = $573 & $or$cond5$i;
+   $574 = $570;
+   $575 = $569;
+   $576 = (($574) - ($575))|0;
+   $577 = (($$0192) + 40)|0;
+   $578 = ($576>>>0)>($577>>>0);
+   $spec$select9$i = $578 ? $576 : $$4236$i;
+   $or$cond8$not$i = $or$cond8$i ^ 1;
+   $579 = ($569|0)==((-1)|0);
+   $not$$i = $578 ^ 1;
+   $580 = $579 | $not$$i;
+   $or$cond50$i = $580 | $or$cond8$not$i;
+   if (!($or$cond50$i)) {
+    $$723947$i = $spec$select9$i;$$748$i = $569;
+    label = 145;
+   }
+  }
+ }
+ if ((label|0) == 145) {
+  $581 = HEAP32[(73144)>>2]|0;
+  $582 = (($581) + ($$723947$i))|0;
+  HEAP32[(73144)>>2] = $582;
+  $583 = HEAP32[(73148)>>2]|0;
+  $584 = ($582>>>0)>($583>>>0);
+  if ($584) {
+   HEAP32[(73148)>>2] = $582;
+  }
+  $585 = HEAP32[(72736)>>2]|0;
+  $586 = ($585|0)==(0|0);
+  L215: do {
+   if ($586) {
+    $587 = HEAP32[(72728)>>2]|0;
+    $588 = ($587|0)==(0|0);
+    $589 = ($$748$i>>>0)<($587>>>0);
+    $or$cond11$i = $588 | $589;
+    if ($or$cond11$i) {
+     HEAP32[(72728)>>2] = $$748$i;
+    }
+    HEAP32[(73160)>>2] = $$748$i;
+    HEAP32[(73164)>>2] = $$723947$i;
+    HEAP32[(73172)>>2] = 0;
+    $590 = HEAP32[18296]|0;
+    HEAP32[(72748)>>2] = $590;
+    HEAP32[(72744)>>2] = -1;
+    HEAP32[(72764)>>2] = (72752);
+    HEAP32[(72760)>>2] = (72752);
+    HEAP32[(72772)>>2] = (72760);
+    HEAP32[(72768)>>2] = (72760);
+    HEAP32[(72780)>>2] = (72768);
+    HEAP32[(72776)>>2] = (72768);
+    HEAP32[(72788)>>2] = (72776);
+    HEAP32[(72784)>>2] = (72776);
+    HEAP32[(72796)>>2] = (72784);
+    HEAP32[(72792)>>2] = (72784);
+    HEAP32[(72804)>>2] = (72792);
+    HEAP32[(72800)>>2] = (72792);
+    HEAP32[(72812)>>2] = (72800);
+    HEAP32[(72808)>>2] = (72800);
+    HEAP32[(72820)>>2] = (72808);
+    HEAP32[(72816)>>2] = (72808);
+    HEAP32[(72828)>>2] = (72816);
+    HEAP32[(72824)>>2] = (72816);
+    HEAP32[(72836)>>2] = (72824);
+    HEAP32[(72832)>>2] = (72824);
+    HEAP32[(72844)>>2] = (72832);
+    HEAP32[(72840)>>2] = (72832);
+    HEAP32[(72852)>>2] = (72840);
+    HEAP32[(72848)>>2] = (72840);
+    HEAP32[(72860)>>2] = (72848);
+    HEAP32[(72856)>>2] = (72848);
+    HEAP32[(72868)>>2] = (72856);
+    HEAP32[(72864)>>2] = (72856);
+    HEAP32[(72876)>>2] = (72864);
+    HEAP32[(72872)>>2] = (72864);
+    HEAP32[(72884)>>2] = (72872);
+    HEAP32[(72880)>>2] = (72872);
+    HEAP32[(72892)>>2] = (72880);
+    HEAP32[(72888)>>2] = (72880);
+    HEAP32[(72900)>>2] = (72888);
+    HEAP32[(72896)>>2] = (72888);
+    HEAP32[(72908)>>2] = (72896);
+    HEAP32[(72904)>>2] = (72896);
+    HEAP32[(72916)>>2] = (72904);
+    HEAP32[(72912)>>2] = (72904);
+    HEAP32[(72924)>>2] = (72912);
+    HEAP32[(72920)>>2] = (72912);
+    HEAP32[(72932)>>2] = (72920);
+    HEAP32[(72928)>>2] = (72920);
+    HEAP32[(72940)>>2] = (72928);
+    HEAP32[(72936)>>2] = (72928);
+    HEAP32[(72948)>>2] = (72936);
+    HEAP32[(72944)>>2] = (72936);
+    HEAP32[(72956)>>2] = (72944);
+    HEAP32[(72952)>>2] = (72944);
+    HEAP32[(72964)>>2] = (72952);
+    HEAP32[(72960)>>2] = (72952);
+    HEAP32[(72972)>>2] = (72960);
+    HEAP32[(72968)>>2] = (72960);
+    HEAP32[(72980)>>2] = (72968);
+    HEAP32[(72976)>>2] = (72968);
+    HEAP32[(72988)>>2] = (72976);
+    HEAP32[(72984)>>2] = (72976);
+    HEAP32[(72996)>>2] = (72984);
+    HEAP32[(72992)>>2] = (72984);
+    HEAP32[(73004)>>2] = (72992);
+    HEAP32[(73000)>>2] = (72992);
+    HEAP32[(73012)>>2] = (73000);
+    HEAP32[(73008)>>2] = (73000);
+    $591 = (($$723947$i) + -40)|0;
+    $592 = ((($$748$i)) + 8|0);
+    $593 = $592;
+    $594 = $593 & 7;
+    $595 = ($594|0)==(0);
+    $596 = (0 - ($593))|0;
+    $597 = $596 & 7;
+    $598 = $595 ? 0 : $597;
+    $599 = (($$748$i) + ($598)|0);
+    $600 = (($591) - ($598))|0;
+    HEAP32[(72736)>>2] = $599;
+    HEAP32[(72724)>>2] = $600;
+    $601 = $600 | 1;
+    $602 = ((($599)) + 4|0);
+    HEAP32[$602>>2] = $601;
+    $603 = (($$748$i) + ($591)|0);
+    $604 = ((($603)) + 4|0);
+    HEAP32[$604>>2] = 40;
+    $605 = HEAP32[(73200)>>2]|0;
+    HEAP32[(72740)>>2] = $605;
+   } else {
+    $$024372$i = (73160);
+    while(1) {
+     $606 = HEAP32[$$024372$i>>2]|0;
+     $607 = ((($$024372$i)) + 4|0);
+     $608 = HEAP32[$607>>2]|0;
+     $609 = (($606) + ($608)|0);
+     $610 = ($$748$i|0)==($609|0);
+     if ($610) {
+      label = 154;
+      break;
+     }
+     $611 = ((($$024372$i)) + 8|0);
+     $612 = HEAP32[$611>>2]|0;
+     $613 = ($612|0)==(0|0);
+     if ($613) {
+      break;
+     } else {
+      $$024372$i = $612;
+     }
+    }
+    if ((label|0) == 154) {
+     $614 = ((($$024372$i)) + 4|0);
+     $615 = ((($$024372$i)) + 12|0);
+     $616 = HEAP32[$615>>2]|0;
+     $617 = $616 & 8;
+     $618 = ($617|0)==(0);
+     if ($618) {
+      $619 = ($606>>>0)<=($585>>>0);
+      $620 = ($$748$i>>>0)>($585>>>0);
+      $or$cond51$i = $620 & $619;
+      if ($or$cond51$i) {
+       $621 = (($608) + ($$723947$i))|0;
+       HEAP32[$614>>2] = $621;
+       $622 = HEAP32[(72724)>>2]|0;
+       $623 = (($622) + ($$723947$i))|0;
+       $624 = ((($585)) + 8|0);
+       $625 = $624;
+       $626 = $625 & 7;
+       $627 = ($626|0)==(0);
+       $628 = (0 - ($625))|0;
+       $629 = $628 & 7;
+       $630 = $627 ? 0 : $629;
+       $631 = (($585) + ($630)|0);
+       $632 = (($623) - ($630))|0;
+       HEAP32[(72736)>>2] = $631;
+       HEAP32[(72724)>>2] = $632;
+       $633 = $632 | 1;
+       $634 = ((($631)) + 4|0);
+       HEAP32[$634>>2] = $633;
+       $635 = (($585) + ($623)|0);
+       $636 = ((($635)) + 4|0);
+       HEAP32[$636>>2] = 40;
+       $637 = HEAP32[(73200)>>2]|0;
+       HEAP32[(72740)>>2] = $637;
+       break;
+      }
+     }
+    }
+    $638 = HEAP32[(72728)>>2]|0;
+    $639 = ($$748$i>>>0)<($638>>>0);
+    if ($639) {
+     HEAP32[(72728)>>2] = $$748$i;
+    }
+    $640 = (($$748$i) + ($$723947$i)|0);
+    $$124471$i = (73160);
+    while(1) {
+     $641 = HEAP32[$$124471$i>>2]|0;
+     $642 = ($641|0)==($640|0);
+     if ($642) {
+      label = 162;
+      break;
+     }
+     $643 = ((($$124471$i)) + 8|0);
+     $644 = HEAP32[$643>>2]|0;
+     $645 = ($644|0)==(0|0);
+     if ($645) {
+      break;
+     } else {
+      $$124471$i = $644;
+     }
+    }
+    if ((label|0) == 162) {
+     $646 = ((($$124471$i)) + 12|0);
+     $647 = HEAP32[$646>>2]|0;
+     $648 = $647 & 8;
+     $649 = ($648|0)==(0);
+     if ($649) {
+      HEAP32[$$124471$i>>2] = $$748$i;
+      $650 = ((($$124471$i)) + 4|0);
+      $651 = HEAP32[$650>>2]|0;
+      $652 = (($651) + ($$723947$i))|0;
+      HEAP32[$650>>2] = $652;
+      $653 = ((($$748$i)) + 8|0);
+      $654 = $653;
+      $655 = $654 & 7;
+      $656 = ($655|0)==(0);
+      $657 = (0 - ($654))|0;
+      $658 = $657 & 7;
+      $659 = $656 ? 0 : $658;
+      $660 = (($$748$i) + ($659)|0);
+      $661 = ((($640)) + 8|0);
+      $662 = $661;
+      $663 = $662 & 7;
+      $664 = ($663|0)==(0);
+      $665 = (0 - ($662))|0;
+      $666 = $665 & 7;
+      $667 = $664 ? 0 : $666;
+      $668 = (($640) + ($667)|0);
+      $669 = $668;
+      $670 = $660;
+      $671 = (($669) - ($670))|0;
+      $672 = (($660) + ($$0192)|0);
+      $673 = (($671) - ($$0192))|0;
+      $674 = $$0192 | 3;
+      $675 = ((($660)) + 4|0);
+      HEAP32[$675>>2] = $674;
+      $676 = ($585|0)==($668|0);
+      L238: do {
+       if ($676) {
+        $677 = HEAP32[(72724)>>2]|0;
+        $678 = (($677) + ($673))|0;
+        HEAP32[(72724)>>2] = $678;
+        HEAP32[(72736)>>2] = $672;
+        $679 = $678 | 1;
+        $680 = ((($672)) + 4|0);
+        HEAP32[$680>>2] = $679;
+       } else {
+        $681 = HEAP32[(72732)>>2]|0;
+        $682 = ($681|0)==($668|0);
+        if ($682) {
+         $683 = HEAP32[(72720)>>2]|0;
+         $684 = (($683) + ($673))|0;
+         HEAP32[(72720)>>2] = $684;
+         HEAP32[(72732)>>2] = $672;
+         $685 = $684 | 1;
+         $686 = ((($672)) + 4|0);
+         HEAP32[$686>>2] = $685;
+         $687 = (($672) + ($684)|0);
+         HEAP32[$687>>2] = $684;
+         break;
+        }
+        $688 = ((($668)) + 4|0);
+        $689 = HEAP32[$688>>2]|0;
+        $690 = $689 & 3;
+        $691 = ($690|0)==(1);
+        if ($691) {
+         $692 = $689 & -8;
+         $693 = $689 >>> 3;
+         $694 = ($689>>>0)<(256);
+         L246: do {
+          if ($694) {
+           $695 = ((($668)) + 8|0);
+           $696 = HEAP32[$695>>2]|0;
+           $697 = ((($668)) + 12|0);
+           $698 = HEAP32[$697>>2]|0;
+           $699 = ($698|0)==($696|0);
+           if ($699) {
+            $700 = 1 << $693;
+            $701 = $700 ^ -1;
+            $702 = HEAP32[18178]|0;
+            $703 = $702 & $701;
+            HEAP32[18178] = $703;
+            break;
+           } else {
+            $704 = ((($696)) + 12|0);
+            HEAP32[$704>>2] = $698;
+            $705 = ((($698)) + 8|0);
+            HEAP32[$705>>2] = $696;
+            break;
+           }
+          } else {
+           $706 = ((($668)) + 24|0);
+           $707 = HEAP32[$706>>2]|0;
+           $708 = ((($668)) + 12|0);
+           $709 = HEAP32[$708>>2]|0;
+           $710 = ($709|0)==($668|0);
+           do {
+            if ($710) {
+             $715 = ((($668)) + 16|0);
+             $716 = ((($715)) + 4|0);
+             $717 = HEAP32[$716>>2]|0;
+             $718 = ($717|0)==(0|0);
+             if ($718) {
+              $719 = HEAP32[$715>>2]|0;
+              $720 = ($719|0)==(0|0);
+              if ($720) {
+               $$3$i$i = 0;
+               break;
+              } else {
+               $$1263$i$i$ph = $719;$$1265$i$i$ph = $715;
+              }
+             } else {
+              $$1263$i$i$ph = $717;$$1265$i$i$ph = $716;
+             }
+             $$1263$i$i = $$1263$i$i$ph;$$1265$i$i = $$1265$i$i$ph;
+             while(1) {
+              $721 = ((($$1263$i$i)) + 20|0);
+              $722 = HEAP32[$721>>2]|0;
+              $723 = ($722|0)==(0|0);
+              if ($723) {
+               $724 = ((($$1263$i$i)) + 16|0);
+               $725 = HEAP32[$724>>2]|0;
+               $726 = ($725|0)==(0|0);
+               if ($726) {
+                break;
+               } else {
+                $$1263$i$i$be = $725;$$1265$i$i$be = $724;
+               }
+              } else {
+               $$1263$i$i$be = $722;$$1265$i$i$be = $721;
+              }
+              $$1263$i$i = $$1263$i$i$be;$$1265$i$i = $$1265$i$i$be;
+             }
+             HEAP32[$$1265$i$i>>2] = 0;
+             $$3$i$i = $$1263$i$i;
+            } else {
+             $711 = ((($668)) + 8|0);
+             $712 = HEAP32[$711>>2]|0;
+             $713 = ((($712)) + 12|0);
+             HEAP32[$713>>2] = $709;
+             $714 = ((($709)) + 8|0);
+             HEAP32[$714>>2] = $712;
+             $$3$i$i = $709;
+            }
+           } while(0);
+           $727 = ($707|0)==(0|0);
+           if ($727) {
+            break;
+           }
+           $728 = ((($668)) + 28|0);
+           $729 = HEAP32[$728>>2]|0;
+           $730 = (73016 + ($729<<2)|0);
+           $731 = HEAP32[$730>>2]|0;
+           $732 = ($731|0)==($668|0);
+           do {
+            if ($732) {
+             HEAP32[$730>>2] = $$3$i$i;
+             $cond$i$i = ($$3$i$i|0)==(0|0);
+             if (!($cond$i$i)) {
+              break;
+             }
+             $733 = 1 << $729;
+             $734 = $733 ^ -1;
+             $735 = HEAP32[(72716)>>2]|0;
+             $736 = $735 & $734;
+             HEAP32[(72716)>>2] = $736;
+             break L246;
+            } else {
+             $737 = ((($707)) + 16|0);
+             $738 = HEAP32[$737>>2]|0;
+             $739 = ($738|0)==($668|0);
+             $740 = ((($707)) + 20|0);
+             $$sink321 = $739 ? $737 : $740;
+             HEAP32[$$sink321>>2] = $$3$i$i;
+             $741 = ($$3$i$i|0)==(0|0);
+             if ($741) {
+              break L246;
+             }
+            }
+           } while(0);
+           $742 = ((($$3$i$i)) + 24|0);
+           HEAP32[$742>>2] = $707;
+           $743 = ((($668)) + 16|0);
+           $744 = HEAP32[$743>>2]|0;
+           $745 = ($744|0)==(0|0);
+           if (!($745)) {
+            $746 = ((($$3$i$i)) + 16|0);
+            HEAP32[$746>>2] = $744;
+            $747 = ((($744)) + 24|0);
+            HEAP32[$747>>2] = $$3$i$i;
+           }
+           $748 = ((($743)) + 4|0);
+           $749 = HEAP32[$748>>2]|0;
+           $750 = ($749|0)==(0|0);
+           if ($750) {
+            break;
+           }
+           $751 = ((($$3$i$i)) + 20|0);
+           HEAP32[$751>>2] = $749;
+           $752 = ((($749)) + 24|0);
+           HEAP32[$752>>2] = $$3$i$i;
+          }
+         } while(0);
+         $753 = (($668) + ($692)|0);
+         $754 = (($692) + ($673))|0;
+         $$0$i$i = $753;$$0259$i$i = $754;
+        } else {
+         $$0$i$i = $668;$$0259$i$i = $673;
+        }
+        $755 = ((($$0$i$i)) + 4|0);
+        $756 = HEAP32[$755>>2]|0;
+        $757 = $756 & -2;
+        HEAP32[$755>>2] = $757;
+        $758 = $$0259$i$i | 1;
+        $759 = ((($672)) + 4|0);
+        HEAP32[$759>>2] = $758;
+        $760 = (($672) + ($$0259$i$i)|0);
+        HEAP32[$760>>2] = $$0259$i$i;
+        $761 = $$0259$i$i >>> 3;
+        $762 = ($$0259$i$i>>>0)<(256);
+        if ($762) {
+         $763 = $761 << 1;
+         $764 = (72752 + ($763<<2)|0);
+         $765 = HEAP32[18178]|0;
+         $766 = 1 << $761;
+         $767 = $765 & $766;
+         $768 = ($767|0)==(0);
+         if ($768) {
+          $769 = $765 | $766;
+          HEAP32[18178] = $769;
+          $$pre$i16$i = ((($764)) + 8|0);
+          $$0267$i$i = $764;$$pre$phi$i17$iZ2D = $$pre$i16$i;
+         } else {
+          $770 = ((($764)) + 8|0);
+          $771 = HEAP32[$770>>2]|0;
+          $$0267$i$i = $771;$$pre$phi$i17$iZ2D = $770;
+         }
+         HEAP32[$$pre$phi$i17$iZ2D>>2] = $672;
+         $772 = ((($$0267$i$i)) + 12|0);
+         HEAP32[$772>>2] = $672;
+         $773 = ((($672)) + 8|0);
+         HEAP32[$773>>2] = $$0267$i$i;
+         $774 = ((($672)) + 12|0);
+         HEAP32[$774>>2] = $764;
+         break;
+        }
+        $775 = $$0259$i$i >>> 8;
+        $776 = ($775|0)==(0);
+        do {
+         if ($776) {
+          $$0268$i$i = 0;
+         } else {
+          $777 = ($$0259$i$i>>>0)>(16777215);
+          if ($777) {
+           $$0268$i$i = 31;
+           break;
+          }
+          $778 = (($775) + 1048320)|0;
+          $779 = $778 >>> 16;
+          $780 = $779 & 8;
+          $781 = $775 << $780;
+          $782 = (($781) + 520192)|0;
+          $783 = $782 >>> 16;
+          $784 = $783 & 4;
+          $785 = $784 | $780;
+          $786 = $781 << $784;
+          $787 = (($786) + 245760)|0;
+          $788 = $787 >>> 16;
+          $789 = $788 & 2;
+          $790 = $785 | $789;
+          $791 = (14 - ($790))|0;
+          $792 = $786 << $789;
+          $793 = $792 >>> 15;
+          $794 = (($791) + ($793))|0;
+          $795 = $794 << 1;
+          $796 = (($794) + 7)|0;
+          $797 = $$0259$i$i >>> $796;
+          $798 = $797 & 1;
+          $799 = $798 | $795;
+          $$0268$i$i = $799;
+         }
+        } while(0);
+        $800 = (73016 + ($$0268$i$i<<2)|0);
+        $801 = ((($672)) + 28|0);
+        HEAP32[$801>>2] = $$0268$i$i;
+        $802 = ((($672)) + 16|0);
+        $803 = ((($802)) + 4|0);
+        HEAP32[$803>>2] = 0;
+        HEAP32[$802>>2] = 0;
+        $804 = HEAP32[(72716)>>2]|0;
+        $805 = 1 << $$0268$i$i;
+        $806 = $804 & $805;
+        $807 = ($806|0)==(0);
+        if ($807) {
+         $808 = $804 | $805;
+         HEAP32[(72716)>>2] = $808;
+         HEAP32[$800>>2] = $672;
+         $809 = ((($672)) + 24|0);
+         HEAP32[$809>>2] = $800;
+         $810 = ((($672)) + 12|0);
+         HEAP32[$810>>2] = $672;
+         $811 = ((($672)) + 8|0);
+         HEAP32[$811>>2] = $672;
+         break;
+        }
+        $812 = HEAP32[$800>>2]|0;
+        $813 = ((($812)) + 4|0);
+        $814 = HEAP32[$813>>2]|0;
+        $815 = $814 & -8;
+        $816 = ($815|0)==($$0259$i$i|0);
+        L291: do {
+         if ($816) {
+          $$0261$lcssa$i$i = $812;
+         } else {
+          $817 = ($$0268$i$i|0)==(31);
+          $818 = $$0268$i$i >>> 1;
+          $819 = (25 - ($818))|0;
+          $820 = $817 ? 0 : $819;
+          $821 = $$0259$i$i << $820;
+          $$02604$i$i = $821;$$02613$i$i = $812;
+          while(1) {
+           $828 = $$02604$i$i >>> 31;
+           $829 = (((($$02613$i$i)) + 16|0) + ($828<<2)|0);
+           $824 = HEAP32[$829>>2]|0;
+           $830 = ($824|0)==(0|0);
+           if ($830) {
+            break;
+           }
+           $822 = $$02604$i$i << 1;
+           $823 = ((($824)) + 4|0);
+           $825 = HEAP32[$823>>2]|0;
+           $826 = $825 & -8;
+           $827 = ($826|0)==($$0259$i$i|0);
+           if ($827) {
+            $$0261$lcssa$i$i = $824;
+            break L291;
+           } else {
+            $$02604$i$i = $822;$$02613$i$i = $824;
+           }
+          }
+          HEAP32[$829>>2] = $672;
+          $831 = ((($672)) + 24|0);
+          HEAP32[$831>>2] = $$02613$i$i;
+          $832 = ((($672)) + 12|0);
+          HEAP32[$832>>2] = $672;
+          $833 = ((($672)) + 8|0);
+          HEAP32[$833>>2] = $672;
+          break L238;
+         }
+        } while(0);
+        $834 = ((($$0261$lcssa$i$i)) + 8|0);
+        $835 = HEAP32[$834>>2]|0;
+        $836 = ((($835)) + 12|0);
+        HEAP32[$836>>2] = $672;
+        HEAP32[$834>>2] = $672;
+        $837 = ((($672)) + 8|0);
+        HEAP32[$837>>2] = $835;
+        $838 = ((($672)) + 12|0);
+        HEAP32[$838>>2] = $$0261$lcssa$i$i;
+        $839 = ((($672)) + 24|0);
+        HEAP32[$839>>2] = 0;
+       }
+      } while(0);
+      $968 = ((($660)) + 8|0);
+      $$0 = $968;
+      STACKTOP = sp;return ($$0|0);
+     }
+    }
+    $$0$i$i$i = (73160);
+    while(1) {
+     $840 = HEAP32[$$0$i$i$i>>2]|0;
+     $841 = ($840>>>0)>($585>>>0);
+     if (!($841)) {
+      $842 = ((($$0$i$i$i)) + 4|0);
+      $843 = HEAP32[$842>>2]|0;
+      $844 = (($840) + ($843)|0);
+      $845 = ($844>>>0)>($585>>>0);
+      if ($845) {
+       break;
+      }
+     }
+     $846 = ((($$0$i$i$i)) + 8|0);
+     $847 = HEAP32[$846>>2]|0;
+     $$0$i$i$i = $847;
+    }
+    $848 = ((($844)) + -47|0);
+    $849 = ((($848)) + 8|0);
+    $850 = $849;
+    $851 = $850 & 7;
+    $852 = ($851|0)==(0);
+    $853 = (0 - ($850))|0;
+    $854 = $853 & 7;
+    $855 = $852 ? 0 : $854;
+    $856 = (($848) + ($855)|0);
+    $857 = ((($585)) + 16|0);
+    $858 = ($856>>>0)<($857>>>0);
+    $859 = $858 ? $585 : $856;
+    $860 = ((($859)) + 8|0);
+    $861 = ((($859)) + 24|0);
+    $862 = (($$723947$i) + -40)|0;
+    $863 = ((($$748$i)) + 8|0);
+    $864 = $863;
+    $865 = $864 & 7;
+    $866 = ($865|0)==(0);
+    $867 = (0 - ($864))|0;
+    $868 = $867 & 7;
+    $869 = $866 ? 0 : $868;
+    $870 = (($$748$i) + ($869)|0);
+    $871 = (($862) - ($869))|0;
+    HEAP32[(72736)>>2] = $870;
+    HEAP32[(72724)>>2] = $871;
+    $872 = $871 | 1;
+    $873 = ((($870)) + 4|0);
+    HEAP32[$873>>2] = $872;
+    $874 = (($$748$i) + ($862)|0);
+    $875 = ((($874)) + 4|0);
+    HEAP32[$875>>2] = 40;
+    $876 = HEAP32[(73200)>>2]|0;
+    HEAP32[(72740)>>2] = $876;
+    $877 = ((($859)) + 4|0);
+    HEAP32[$877>>2] = 27;
+    
;HEAP32[$860>>2]=HEAP32[(73160)>>2]|0;HEAP32[$860+4>>2]=HEAP32[(73160)+4>>2]|0;HEAP32[$860+8>>2]=HEAP32[(73160)+8>>2]|0;HEAP32[$860+12>>2]=HEAP32[(73160)+12>>2]|0;
+    HEAP32[(73160)>>2] = $$748$i;
+    HEAP32[(73164)>>2] = $$723947$i;
+    HEAP32[(73172)>>2] = 0;
+    HEAP32[(73168)>>2] = $860;
+    $879 = $861;
+    while(1) {
+     $878 = ((($879)) + 4|0);
+     HEAP32[$878>>2] = 7;
+     $880 = ((($879)) + 8|0);
+     $881 = ($880>>>0)<($844>>>0);
+     if ($881) {
+      $879 = $878;
+     } else {
+      break;
+     }
+    }
+    $882 = ($859|0)==($585|0);
+    if (!($882)) {
+     $883 = $859;
+     $884 = $585;
+     $885 = (($883) - ($884))|0;
+     $886 = HEAP32[$877>>2]|0;
+     $887 = $886 & -2;
+     HEAP32[$877>>2] = $887;
+     $888 = $885 | 1;
+     $889 = ((($585)) + 4|0);
+     HEAP32[$889>>2] = $888;
+     HEAP32[$859>>2] = $885;
+     $890 = $885 >>> 3;
+     $891 = ($885>>>0)<(256);
+     if ($891) {
+      $892 = $890 << 1;
+      $893 = (72752 + ($892<<2)|0);
+      $894 = HEAP32[18178]|0;
+      $895 = 1 << $890;
+      $896 = $894 & $895;
+      $897 = ($896|0)==(0);
+      if ($897) {
+       $898 = $894 | $895;
+       HEAP32[18178] = $898;
+       $$pre$i$i = ((($893)) + 8|0);
+       $$0206$i$i = $893;$$pre$phi$i$iZ2D = $$pre$i$i;
+      } else {
+       $899 = ((($893)) + 8|0);
+       $900 = HEAP32[$899>>2]|0;
+       $$0206$i$i = $900;$$pre$phi$i$iZ2D = $899;
+      }
+      HEAP32[$$pre$phi$i$iZ2D>>2] = $585;
+      $901 = ((($$0206$i$i)) + 12|0);
+      HEAP32[$901>>2] = $585;
+      $902 = ((($585)) + 8|0);
+      HEAP32[$902>>2] = $$0206$i$i;
+      $903 = ((($585)) + 12|0);
+      HEAP32[$903>>2] = $893;
+      break;
+     }
+     $904 = $885 >>> 8;
+     $905 = ($904|0)==(0);
+     if ($905) {
+      $$0207$i$i = 0;
+     } else {
+      $906 = ($885>>>0)>(16777215);
+      if ($906) {
+       $$0207$i$i = 31;
+      } else {
+       $907 = (($904) + 1048320)|0;
+       $908 = $907 >>> 16;
+       $909 = $908 & 8;
+       $910 = $904 << $909;
+       $911 = (($910) + 520192)|0;
+       $912 = $911 >>> 16;
+       $913 = $912 & 4;
+       $914 = $913 | $909;
+       $915 = $910 << $913;
+       $916 = (($915) + 245760)|0;
+       $917 = $916 >>> 16;
+       $918 = $917 & 2;
+       $919 = $914 | $918;
+       $920 = (14 - ($919))|0;
+       $921 = $915 << $918;
+       $922 = $921 >>> 15;
+       $923 = (($920) + ($922))|0;
+       $924 = $923 << 1;
+       $925 = (($923) + 7)|0;
+       $926 = $885 >>> $925;
+       $927 = $926 & 1;
+       $928 = $927 | $924;
+       $$0207$i$i = $928;
+      }
+     }
+     $929 = (73016 + ($$0207$i$i<<2)|0);
+     $930 = ((($585)) + 28|0);
+     HEAP32[$930>>2] = $$0207$i$i;
+     $931 = ((($585)) + 20|0);
+     HEAP32[$931>>2] = 0;
+     HEAP32[$857>>2] = 0;
+     $932 = HEAP32[(72716)>>2]|0;
+     $933 = 1 << $$0207$i$i;
+     $934 = $932 & $933;
+     $935 = ($934|0)==(0);
+     if ($935) {
+      $936 = $932 | $933;
+      HEAP32[(72716)>>2] = $936;
+      HEAP32[$929>>2] = $585;
+      $937 = ((($585)) + 24|0);
+      HEAP32[$937>>2] = $929;
+      $938 = ((($585)) + 12|0);
+      HEAP32[$938>>2] = $585;
+      $939 = ((($585)) + 8|0);
+      HEAP32[$939>>2] = $585;
+      break;
+     }
+     $940 = HEAP32[$929>>2]|0;
+     $941 = ((($940)) + 4|0);
+     $942 = HEAP32[$941>>2]|0;
+     $943 = $942 & -8;
+     $944 = ($943|0)==($885|0);
+     L325: do {
+      if ($944) {
+       $$0202$lcssa$i$i = $940;
+      } else {
+       $945 = ($$0207$i$i|0)==(31);
+       $946 = $$0207$i$i >>> 1;
+       $947 = (25 - ($946))|0;
+       $948 = $945 ? 0 : $947;
+       $949 = $885 << $948;
+       $$02014$i$i = $949;$$02023$i$i = $940;
+       while(1) {
+        $956 = $$02014$i$i >>> 31;
+        $957 = (((($$02023$i$i)) + 16|0) + ($956<<2)|0);
+        $952 = HEAP32[$957>>2]|0;
+        $958 = ($952|0)==(0|0);
+        if ($958) {
+         break;
+        }
+        $950 = $$02014$i$i << 1;
+        $951 = ((($952)) + 4|0);
+        $953 = HEAP32[$951>>2]|0;
+        $954 = $953 & -8;
+        $955 = ($954|0)==($885|0);
+        if ($955) {
+         $$0202$lcssa$i$i = $952;
+         break L325;
+        } else {
+         $$02014$i$i = $950;$$02023$i$i = $952;
+        }
+       }
+       HEAP32[$957>>2] = $585;
+       $959 = ((($585)) + 24|0);
+       HEAP32[$959>>2] = $$02023$i$i;
+       $960 = ((($585)) + 12|0);
+       HEAP32[$960>>2] = $585;
+       $961 = ((($585)) + 8|0);
+       HEAP32[$961>>2] = $585;
+       break L215;
+      }
+     } while(0);
+     $962 = ((($$0202$lcssa$i$i)) + 8|0);
+     $963 = HEAP32[$962>>2]|0;
+     $964 = ((($963)) + 12|0);
+     HEAP32[$964>>2] = $585;
+     HEAP32[$962>>2] = $585;
+     $965 = ((($585)) + 8|0);
+     HEAP32[$965>>2] = $963;
+     $966 = ((($585)) + 12|0);
+     HEAP32[$966>>2] = $$0202$lcssa$i$i;
+     $967 = ((($585)) + 24|0);
+     HEAP32[$967>>2] = 0;
+    }
+   }
+  } while(0);
+  $969 = HEAP32[(72724)>>2]|0;
+  $970 = ($969>>>0)>($$0192>>>0);
+  if ($970) {
+   $971 = (($969) - ($$0192))|0;
+   HEAP32[(72724)>>2] = $971;
+   $972 = HEAP32[(72736)>>2]|0;
+   $973 = (($972) + ($$0192)|0);
+   HEAP32[(72736)>>2] = $973;
+   $974 = $971 | 1;
+   $975 = ((($973)) + 4|0);
+   HEAP32[$975>>2] = $974;
+   $976 = $$0192 | 3;
+   $977 = ((($972)) + 4|0);
+   HEAP32[$977>>2] = $976;
+   $978 = ((($972)) + 8|0);
+   $$0 = $978;
+   STACKTOP = sp;return ($$0|0);
+  }
+ }
+ $979 = (___errno_location()|0);
+ HEAP32[$979>>2] = 12;
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function _free($0) {
+ $0 = $0|0;
+ var $$0194$i = 0, $$0194$in$i = 0, $$0346381 = 0, $$0347$lcssa = 0, $$0347380 
= 0, $$0359 = 0, $$0366 = 0, $$1 = 0, $$1345 = 0, $$1350 = 0, $$1350$be = 0, 
$$1350$ph = 0, $$1353 = 0, $$1353$be = 0, $$1353$ph = 0, $$1361 = 0, $$1361$be 
= 0, $$1361$ph = 0, $$1365 = 0, $$1365$be = 0;
+ var $$1365$ph = 0, $$2 = 0, $$3 = 0, $$3363 = 0, $$pre = 0, $$pre$phiZ2D = 0, 
$$sink = 0, $$sink395 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 
= 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0;
+ var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 
= 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 
= 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0;
+ var $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 
= 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 
= 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0;
+ var $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 
= 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 
= 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0;
+ var $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 
= 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 
= 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0;
+ var $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, 
$189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, 
$196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0;
+ var $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 
= 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 
= 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0;
+ var $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 
= 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 
= 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0;
+ var $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 
= 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 
= 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0;
+ var $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 
= 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, 
$30 = 0, $31 = 0, $32 = 0, $33 = 0;
+ var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 
0, $5 = 0, $50 = 0, $51 = 0;
+ var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, 
$6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, 
$68 = 0, $69 = 0, $7 = 0;
+ var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, 
$78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, 
$86 = 0, $87 = 0, $88 = 0;
+ var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, 
$96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond371 = 0, $cond372 = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ if ($1) {
+  return;
+ }
+ $2 = ((($0)) + -8|0);
+ $3 = HEAP32[(72728)>>2]|0;
+ $4 = ((($0)) + -4|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = $5 & -8;
+ $7 = (($2) + ($6)|0);
+ $8 = $5 & 1;
+ $9 = ($8|0)==(0);
+ do {
+  if ($9) {
+   $10 = HEAP32[$2>>2]|0;
+   $11 = $5 & 3;
+   $12 = ($11|0)==(0);
+   if ($12) {
+    return;
+   }
+   $13 = (0 - ($10))|0;
+   $14 = (($2) + ($13)|0);
+   $15 = (($10) + ($6))|0;
+   $16 = ($14>>>0)<($3>>>0);
+   if ($16) {
+    return;
+   }
+   $17 = HEAP32[(72732)>>2]|0;
+   $18 = ($17|0)==($14|0);
+   if ($18) {
+    $79 = ((($7)) + 4|0);
+    $80 = HEAP32[$79>>2]|0;
+    $81 = $80 & 3;
+    $82 = ($81|0)==(3);
+    if (!($82)) {
+     $$1 = $14;$$1345 = $15;$88 = $14;
+     break;
+    }
+    $83 = (($14) + ($15)|0);
+    $84 = ((($14)) + 4|0);
+    $85 = $15 | 1;
+    $86 = $80 & -2;
+    HEAP32[(72720)>>2] = $15;
+    HEAP32[$79>>2] = $86;
+    HEAP32[$84>>2] = $85;
+    HEAP32[$83>>2] = $15;
+    return;
+   }
+   $19 = $10 >>> 3;
+   $20 = ($10>>>0)<(256);
+   if ($20) {
+    $21 = ((($14)) + 8|0);
+    $22 = HEAP32[$21>>2]|0;
+    $23 = ((($14)) + 12|0);
+    $24 = HEAP32[$23>>2]|0;
+    $25 = ($24|0)==($22|0);
+    if ($25) {
+     $26 = 1 << $19;
+     $27 = $26 ^ -1;
+     $28 = HEAP32[18178]|0;
+     $29 = $28 & $27;
+     HEAP32[18178] = $29;
+     $$1 = $14;$$1345 = $15;$88 = $14;
+     break;
+    } else {
+     $30 = ((($22)) + 12|0);
+     HEAP32[$30>>2] = $24;
+     $31 = ((($24)) + 8|0);
+     HEAP32[$31>>2] = $22;
+     $$1 = $14;$$1345 = $15;$88 = $14;
+     break;
+    }
+   }
+   $32 = ((($14)) + 24|0);
+   $33 = HEAP32[$32>>2]|0;
+   $34 = ((($14)) + 12|0);
+   $35 = HEAP32[$34>>2]|0;
+   $36 = ($35|0)==($14|0);
+   do {
+    if ($36) {
+     $41 = ((($14)) + 16|0);
+     $42 = ((($41)) + 4|0);
+     $43 = HEAP32[$42>>2]|0;
+     $44 = ($43|0)==(0|0);
+     if ($44) {
+      $45 = HEAP32[$41>>2]|0;
+      $46 = ($45|0)==(0|0);
+      if ($46) {
+       $$3 = 0;
+       break;
+      } else {
+       $$1350$ph = $45;$$1353$ph = $41;
+      }
+     } else {
+      $$1350$ph = $43;$$1353$ph = $42;
+     }
+     $$1350 = $$1350$ph;$$1353 = $$1353$ph;
+     while(1) {
+      $47 = ((($$1350)) + 20|0);
+      $48 = HEAP32[$47>>2]|0;
+      $49 = ($48|0)==(0|0);
+      if ($49) {
+       $50 = ((($$1350)) + 16|0);
+       $51 = HEAP32[$50>>2]|0;
+       $52 = ($51|0)==(0|0);
+       if ($52) {
+        break;
+       } else {
+        $$1350$be = $51;$$1353$be = $50;
+       }
+      } else {
+       $$1350$be = $48;$$1353$be = $47;
+      }
+      $$1350 = $$1350$be;$$1353 = $$1353$be;
+     }
+     HEAP32[$$1353>>2] = 0;
+     $$3 = $$1350;
+    } else {
+     $37 = ((($14)) + 8|0);
+     $38 = HEAP32[$37>>2]|0;
+     $39 = ((($38)) + 12|0);
+     HEAP32[$39>>2] = $35;
+     $40 = ((($35)) + 8|0);
+     HEAP32[$40>>2] = $38;
+     $$3 = $35;
+    }
+   } while(0);
+   $53 = ($33|0)==(0|0);
+   if ($53) {
+    $$1 = $14;$$1345 = $15;$88 = $14;
+   } else {
+    $54 = ((($14)) + 28|0);
+    $55 = HEAP32[$54>>2]|0;
+    $56 = (73016 + ($55<<2)|0);
+    $57 = HEAP32[$56>>2]|0;
+    $58 = ($57|0)==($14|0);
+    if ($58) {
+     HEAP32[$56>>2] = $$3;
+     $cond371 = ($$3|0)==(0|0);
+     if ($cond371) {
+      $59 = 1 << $55;
+      $60 = $59 ^ -1;
+      $61 = HEAP32[(72716)>>2]|0;
+      $62 = $61 & $60;
+      HEAP32[(72716)>>2] = $62;
+      $$1 = $14;$$1345 = $15;$88 = $14;
+      break;
+     }
+    } else {
+     $63 = ((($33)) + 16|0);
+     $64 = HEAP32[$63>>2]|0;
+     $65 = ($64|0)==($14|0);
+     $66 = ((($33)) + 20|0);
+     $$sink = $65 ? $63 : $66;
+     HEAP32[$$sink>>2] = $$3;
+     $67 = ($$3|0)==(0|0);
+     if ($67) {
+      $$1 = $14;$$1345 = $15;$88 = $14;
+      break;
+     }
+    }
+    $68 = ((($$3)) + 24|0);
+    HEAP32[$68>>2] = $33;
+    $69 = ((($14)) + 16|0);
+    $70 = HEAP32[$69>>2]|0;
+    $71 = ($70|0)==(0|0);
+    if (!($71)) {
+     $72 = ((($$3)) + 16|0);
+     HEAP32[$72>>2] = $70;
+     $73 = ((($70)) + 24|0);
+     HEAP32[$73>>2] = $$3;
+    }
+    $74 = ((($69)) + 4|0);
+    $75 = HEAP32[$74>>2]|0;
+    $76 = ($75|0)==(0|0);
+    if ($76) {
+     $$1 = $14;$$1345 = $15;$88 = $14;
+    } else {
+     $77 = ((($$3)) + 20|0);
+     HEAP32[$77>>2] = $75;
+     $78 = ((($75)) + 24|0);
+     HEAP32[$78>>2] = $$3;
+     $$1 = $14;$$1345 = $15;$88 = $14;
+    }
+   }
+  } else {
+   $$1 = $2;$$1345 = $6;$88 = $2;
+  }
+ } while(0);
+ $87 = ($88>>>0)<($7>>>0);
+ if (!($87)) {
+  return;
+ }
+ $89 = ((($7)) + 4|0);
+ $90 = HEAP32[$89>>2]|0;
+ $91 = $90 & 1;
+ $92 = ($91|0)==(0);
+ if ($92) {
+  return;
+ }
+ $93 = $90 & 2;
+ $94 = ($93|0)==(0);
+ if ($94) {
+  $95 = HEAP32[(72736)>>2]|0;
+  $96 = ($95|0)==($7|0);
+  if ($96) {
+   $97 = HEAP32[(72724)>>2]|0;
+   $98 = (($97) + ($$1345))|0;
+   HEAP32[(72724)>>2] = $98;
+   HEAP32[(72736)>>2] = $$1;
+   $99 = $98 | 1;
+   $100 = ((($$1)) + 4|0);
+   HEAP32[$100>>2] = $99;
+   $101 = HEAP32[(72732)>>2]|0;
+   $102 = ($$1|0)==($101|0);
+   if (!($102)) {
+    return;
+   }
+   HEAP32[(72732)>>2] = 0;
+   HEAP32[(72720)>>2] = 0;
+   return;
+  }
+  $103 = HEAP32[(72732)>>2]|0;
+  $104 = ($103|0)==($7|0);
+  if ($104) {
+   $105 = HEAP32[(72720)>>2]|0;
+   $106 = (($105) + ($$1345))|0;
+   HEAP32[(72720)>>2] = $106;
+   HEAP32[(72732)>>2] = $88;
+   $107 = $106 | 1;
+   $108 = ((($$1)) + 4|0);
+   HEAP32[$108>>2] = $107;
+   $109 = (($88) + ($106)|0);
+   HEAP32[$109>>2] = $106;
+   return;
+  }
+  $110 = $90 & -8;
+  $111 = (($110) + ($$1345))|0;
+  $112 = $90 >>> 3;
+  $113 = ($90>>>0)<(256);
+  do {
+   if ($113) {
+    $114 = ((($7)) + 8|0);
+    $115 = HEAP32[$114>>2]|0;
+    $116 = ((($7)) + 12|0);
+    $117 = HEAP32[$116>>2]|0;
+    $118 = ($117|0)==($115|0);
+    if ($118) {
+     $119 = 1 << $112;
+     $120 = $119 ^ -1;
+     $121 = HEAP32[18178]|0;
+     $122 = $121 & $120;
+     HEAP32[18178] = $122;
+     break;
+    } else {
+     $123 = ((($115)) + 12|0);
+     HEAP32[$123>>2] = $117;
+     $124 = ((($117)) + 8|0);
+     HEAP32[$124>>2] = $115;
+     break;
+    }
+   } else {
+    $125 = ((($7)) + 24|0);
+    $126 = HEAP32[$125>>2]|0;
+    $127 = ((($7)) + 12|0);
+    $128 = HEAP32[$127>>2]|0;
+    $129 = ($128|0)==($7|0);
+    do {
+     if ($129) {
+      $134 = ((($7)) + 16|0);
+      $135 = ((($134)) + 4|0);
+      $136 = HEAP32[$135>>2]|0;
+      $137 = ($136|0)==(0|0);
+      if ($137) {
+       $138 = HEAP32[$134>>2]|0;
+       $139 = ($138|0)==(0|0);
+       if ($139) {
+        $$3363 = 0;
+        break;
+       } else {
+        $$1361$ph = $138;$$1365$ph = $134;
+       }
+      } else {
+       $$1361$ph = $136;$$1365$ph = $135;
+      }
+      $$1361 = $$1361$ph;$$1365 = $$1365$ph;
+      while(1) {
+       $140 = ((($$1361)) + 20|0);
+       $141 = HEAP32[$140>>2]|0;
+       $142 = ($141|0)==(0|0);
+       if ($142) {
+        $143 = ((($$1361)) + 16|0);
+        $144 = HEAP32[$143>>2]|0;
+        $145 = ($144|0)==(0|0);
+        if ($145) {
+         break;
+        } else {
+         $$1361$be = $144;$$1365$be = $143;
+        }
+       } else {
+        $$1361$be = $141;$$1365$be = $140;
+       }
+       $$1361 = $$1361$be;$$1365 = $$1365$be;
+      }
+      HEAP32[$$1365>>2] = 0;
+      $$3363 = $$1361;
+     } else {
+      $130 = ((($7)) + 8|0);
+      $131 = HEAP32[$130>>2]|0;
+      $132 = ((($131)) + 12|0);
+      HEAP32[$132>>2] = $128;
+      $133 = ((($128)) + 8|0);
+      HEAP32[$133>>2] = $131;
+      $$3363 = $128;
+     }
+    } while(0);
+    $146 = ($126|0)==(0|0);
+    if (!($146)) {
+     $147 = ((($7)) + 28|0);
+     $148 = HEAP32[$147>>2]|0;
+     $149 = (73016 + ($148<<2)|0);
+     $150 = HEAP32[$149>>2]|0;
+     $151 = ($150|0)==($7|0);
+     if ($151) {
+      HEAP32[$149>>2] = $$3363;
+      $cond372 = ($$3363|0)==(0|0);
+      if ($cond372) {
+       $152 = 1 << $148;
+       $153 = $152 ^ -1;
+       $154 = HEAP32[(72716)>>2]|0;
+       $155 = $154 & $153;
+       HEAP32[(72716)>>2] = $155;
+       break;
+      }
+     } else {
+      $156 = ((($126)) + 16|0);
+      $157 = HEAP32[$156>>2]|0;
+      $158 = ($157|0)==($7|0);
+      $159 = ((($126)) + 20|0);
+      $$sink395 = $158 ? $156 : $159;
+      HEAP32[$$sink395>>2] = $$3363;
+      $160 = ($$3363|0)==(0|0);
+      if ($160) {
+       break;
+      }
+     }
+     $161 = ((($$3363)) + 24|0);
+     HEAP32[$161>>2] = $126;
+     $162 = ((($7)) + 16|0);
+     $163 = HEAP32[$162>>2]|0;
+     $164 = ($163|0)==(0|0);
+     if (!($164)) {
+      $165 = ((($$3363)) + 16|0);
+      HEAP32[$165>>2] = $163;
+      $166 = ((($163)) + 24|0);
+      HEAP32[$166>>2] = $$3363;
+     }
+     $167 = ((($162)) + 4|0);
+     $168 = HEAP32[$167>>2]|0;
+     $169 = ($168|0)==(0|0);
+     if (!($169)) {
+      $170 = ((($$3363)) + 20|0);
+      HEAP32[$170>>2] = $168;
+      $171 = ((($168)) + 24|0);
+      HEAP32[$171>>2] = $$3363;
+     }
+    }
+   }
+  } while(0);
+  $172 = $111 | 1;
+  $173 = ((($$1)) + 4|0);
+  HEAP32[$173>>2] = $172;
+  $174 = (($88) + ($111)|0);
+  HEAP32[$174>>2] = $111;
+  $175 = HEAP32[(72732)>>2]|0;
+  $176 = ($$1|0)==($175|0);
+  if ($176) {
+   HEAP32[(72720)>>2] = $111;
+   return;
+  } else {
+   $$2 = $111;
+  }
+ } else {
+  $177 = $90 & -2;
+  HEAP32[$89>>2] = $177;
+  $178 = $$1345 | 1;
+  $179 = ((($$1)) + 4|0);
+  HEAP32[$179>>2] = $178;
+  $180 = (($88) + ($$1345)|0);
+  HEAP32[$180>>2] = $$1345;
+  $$2 = $$1345;
+ }
+ $181 = $$2 >>> 3;
+ $182 = ($$2>>>0)<(256);
+ if ($182) {
+  $183 = $181 << 1;
+  $184 = (72752 + ($183<<2)|0);
+  $185 = HEAP32[18178]|0;
+  $186 = 1 << $181;
+  $187 = $185 & $186;
+  $188 = ($187|0)==(0);
+  if ($188) {
+   $189 = $185 | $186;
+   HEAP32[18178] = $189;
+   $$pre = ((($184)) + 8|0);
+   $$0366 = $184;$$pre$phiZ2D = $$pre;
+  } else {
+   $190 = ((($184)) + 8|0);
+   $191 = HEAP32[$190>>2]|0;
+   $$0366 = $191;$$pre$phiZ2D = $190;
+  }
+  HEAP32[$$pre$phiZ2D>>2] = $$1;
+  $192 = ((($$0366)) + 12|0);
+  HEAP32[$192>>2] = $$1;
+  $193 = ((($$1)) + 8|0);
+  HEAP32[$193>>2] = $$0366;
+  $194 = ((($$1)) + 12|0);
+  HEAP32[$194>>2] = $184;
+  return;
+ }
+ $195 = $$2 >>> 8;
+ $196 = ($195|0)==(0);
+ if ($196) {
+  $$0359 = 0;
+ } else {
+  $197 = ($$2>>>0)>(16777215);
+  if ($197) {
+   $$0359 = 31;
+  } else {
+   $198 = (($195) + 1048320)|0;
+   $199 = $198 >>> 16;
+   $200 = $199 & 8;
+   $201 = $195 << $200;
+   $202 = (($201) + 520192)|0;
+   $203 = $202 >>> 16;
+   $204 = $203 & 4;
+   $205 = $204 | $200;
+   $206 = $201 << $204;
+   $207 = (($206) + 245760)|0;
+   $208 = $207 >>> 16;
+   $209 = $208 & 2;
+   $210 = $205 | $209;
+   $211 = (14 - ($210))|0;
+   $212 = $206 << $209;
+   $213 = $212 >>> 15;
+   $214 = (($211) + ($213))|0;
+   $215 = $214 << 1;
+   $216 = (($214) + 7)|0;
+   $217 = $$2 >>> $216;
+   $218 = $217 & 1;
+   $219 = $218 | $215;
+   $$0359 = $219;
+  }
+ }
+ $220 = (73016 + ($$0359<<2)|0);
+ $221 = ((($$1)) + 28|0);
+ HEAP32[$221>>2] = $$0359;
+ $222 = ((($$1)) + 16|0);
+ $223 = ((($$1)) + 20|0);
+ HEAP32[$223>>2] = 0;
+ HEAP32[$222>>2] = 0;
+ $224 = HEAP32[(72716)>>2]|0;
+ $225 = 1 << $$0359;
+ $226 = $224 & $225;
+ $227 = ($226|0)==(0);
+ L112: do {
+  if ($227) {
+   $228 = $224 | $225;
+   HEAP32[(72716)>>2] = $228;
+   HEAP32[$220>>2] = $$1;
+   $229 = ((($$1)) + 24|0);
+   HEAP32[$229>>2] = $220;
+   $230 = ((($$1)) + 12|0);
+   HEAP32[$230>>2] = $$1;
+   $231 = ((($$1)) + 8|0);
+   HEAP32[$231>>2] = $$1;
+  } else {
+   $232 = HEAP32[$220>>2]|0;
+   $233 = ((($232)) + 4|0);
+   $234 = HEAP32[$233>>2]|0;
+   $235 = $234 & -8;
+   $236 = ($235|0)==($$2|0);
+   L115: do {
+    if ($236) {
+     $$0347$lcssa = $232;
+    } else {
+     $237 = ($$0359|0)==(31);
+     $238 = $$0359 >>> 1;
+     $239 = (25 - ($238))|0;
+     $240 = $237 ? 0 : $239;
+     $241 = $$2 << $240;
+     $$0346381 = $241;$$0347380 = $232;
+     while(1) {
+      $248 = $$0346381 >>> 31;
+      $249 = (((($$0347380)) + 16|0) + ($248<<2)|0);
+      $244 = HEAP32[$249>>2]|0;
+      $250 = ($244|0)==(0|0);
+      if ($250) {
+       break;
+      }
+      $242 = $$0346381 << 1;
+      $243 = ((($244)) + 4|0);
+      $245 = HEAP32[$243>>2]|0;
+      $246 = $245 & -8;
+      $247 = ($246|0)==($$2|0);
+      if ($247) {
+       $$0347$lcssa = $244;
+       break L115;
+      } else {
+       $$0346381 = $242;$$0347380 = $244;
+      }
+     }
+     HEAP32[$249>>2] = $$1;
+     $251 = ((($$1)) + 24|0);
+     HEAP32[$251>>2] = $$0347380;
+     $252 = ((($$1)) + 12|0);
+     HEAP32[$252>>2] = $$1;
+     $253 = ((($$1)) + 8|0);
+     HEAP32[$253>>2] = $$1;
+     break L112;
+    }
+   } while(0);
+   $254 = ((($$0347$lcssa)) + 8|0);
+   $255 = HEAP32[$254>>2]|0;
+   $256 = ((($255)) + 12|0);
+   HEAP32[$256>>2] = $$1;
+   HEAP32[$254>>2] = $$1;
+   $257 = ((($$1)) + 8|0);
+   HEAP32[$257>>2] = $255;
+   $258 = ((($$1)) + 12|0);
+   HEAP32[$258>>2] = $$0347$lcssa;
+   $259 = ((($$1)) + 24|0);
+   HEAP32[$259>>2] = 0;
+  }
+ } while(0);
+ $260 = HEAP32[(72744)>>2]|0;
+ $261 = (($260) + -1)|0;
+ HEAP32[(72744)>>2] = $261;
+ $262 = ($261|0)==(0);
+ if (!($262)) {
+  return;
+ }
+ $$0194$in$i = (73168);
+ while(1) {
+  $$0194$i = HEAP32[$$0194$in$i>>2]|0;
+  $263 = ($$0194$i|0)==(0|0);
+  $264 = ((($$0194$i)) + 8|0);
+  if ($263) {
+   break;
+  } else {
+   $$0194$in$i = $264;
+  }
+ }
+ HEAP32[(72744)>>2] = -1;
+ return;
+}
+function _calloc($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 
0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($0|0)==(0);
+ if ($2) {
+  $$0 = 0;
+ } else {
+  $3 = Math_imul($1, $0)|0;
+  $4 = $1 | $0;
+  $5 = ($4>>>0)>(65535);
+  if ($5) {
+   $6 = (($3>>>0) / ($0>>>0))&-1;
+   $7 = ($6|0)==($1|0);
+   $spec$select = $7 ? $3 : -1;
+   $$0 = $spec$select;
+  } else {
+   $$0 = $3;
+  }
+ }
+ $8 = (_malloc($$0)|0);
+ $9 = ($8|0)==(0|0);
+ if ($9) {
+  return ($8|0);
+ }
+ $10 = ((($8)) + -4|0);
+ $11 = HEAP32[$10>>2]|0;
+ $12 = $11 & 3;
+ $13 = ($12|0)==(0);
+ if ($13) {
+  return ($8|0);
+ }
+ (_memset(($8|0),0,($$0|0))|0);
+ return ($8|0);
+}
+function _realloc($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, 
$3 = 0, $4 = 0, $5 = 0;
+ var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($0|0)==(0|0);
+ if ($2) {
+  $3 = (_malloc($1)|0);
+  $$1 = $3;
+  return ($$1|0);
+ }
+ $4 = ($1>>>0)>(4294967231);
+ if ($4) {
+  $5 = (___errno_location()|0);
+  HEAP32[$5>>2] = 12;
+  $$1 = 0;
+  return ($$1|0);
+ }
+ $6 = ($1>>>0)<(11);
+ $7 = (($1) + 11)|0;
+ $8 = $7 & -8;
+ $9 = $6 ? 16 : $8;
+ $10 = ((($0)) + -8|0);
+ $11 = (_try_realloc_chunk($10,$9)|0);
+ $12 = ($11|0)==(0|0);
+ if (!($12)) {
+  $13 = ((($11)) + 8|0);
+  $$1 = $13;
+  return ($$1|0);
+ }
+ $14 = (_malloc($1)|0);
+ $15 = ($14|0)==(0|0);
+ if ($15) {
+  $$1 = 0;
+  return ($$1|0);
+ }
+ $16 = ((($0)) + -4|0);
+ $17 = HEAP32[$16>>2]|0;
+ $18 = $17 & -8;
+ $19 = $17 & 3;
+ $20 = ($19|0)==(0);
+ $21 = $20 ? 8 : 4;
+ $22 = (($18) - ($21))|0;
+ $23 = ($22>>>0)<($1>>>0);
+ $24 = $23 ? $22 : $1;
+ (_memcpy(($14|0),($0|0),($24|0))|0);
+ _free($0);
+ $$1 = $14;
+ return ($$1|0);
+}
+function _try_realloc_chunk($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$1245 = 0, $$1245$be = 0, $$1245$ph = 0, $$1248 = 0, $$1248$be = 0, 
$$1248$ph = 0, $$2 = 0, $$3 = 0, $$sink = 0, $10 = 0, $100 = 0, $101 = 0, $102 
= 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0;
+ var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 
= 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 
= 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0;
+ var $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 
= 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 
= 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0;
+ var $146 = 0, $147 = 0, $148 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 
0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 
0, $28 = 0, $29 = 0, $3 = 0;
+ var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, 
$38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, 
$46 = 0, $47 = 0, $48 = 0;
+ var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, 
$56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, 
$64 = 0, $65 = 0, $66 = 0;
+ var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, 
$74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, 
$82 = 0, $83 = 0, $84 = 0;
+ var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, 
$92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond = 
0, $storemerge = 0, $storemerge1 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 4|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = $3 & -8;
+ $5 = (($0) + ($4)|0);
+ $6 = $3 & 3;
+ $7 = ($6|0)==(0);
+ if ($7) {
+  $8 = ($1>>>0)<(256);
+  if ($8) {
+   $$2 = 0;
+   return ($$2|0);
+  }
+  $9 = (($1) + 4)|0;
+  $10 = ($4>>>0)<($9>>>0);
+  if (!($10)) {
+   $11 = (($4) - ($1))|0;
+   $12 = HEAP32[(73192)>>2]|0;
+   $13 = $12 << 1;
+   $14 = ($11>>>0)>($13>>>0);
+   if (!($14)) {
+    $$2 = $0;
+    return ($$2|0);
+   }
+  }
+  $$2 = 0;
+  return ($$2|0);
+ }
+ $15 = ($4>>>0)<($1>>>0);
+ if (!($15)) {
+  $16 = (($4) - ($1))|0;
+  $17 = ($16>>>0)>(15);
+  if (!($17)) {
+   $$2 = $0;
+   return ($$2|0);
+  }
+  $18 = (($0) + ($1)|0);
+  $19 = $3 & 1;
+  $20 = $19 | $1;
+  $21 = $20 | 2;
+  HEAP32[$2>>2] = $21;
+  $22 = ((($18)) + 4|0);
+  $23 = $16 | 3;
+  HEAP32[$22>>2] = $23;
+  $24 = ((($5)) + 4|0);
+  $25 = HEAP32[$24>>2]|0;
+  $26 = $25 | 1;
+  HEAP32[$24>>2] = $26;
+  _dispose_chunk($18,$16);
+  $$2 = $0;
+  return ($$2|0);
+ }
+ $27 = HEAP32[(72736)>>2]|0;
+ $28 = ($27|0)==($5|0);
+ if ($28) {
+  $29 = HEAP32[(72724)>>2]|0;
+  $30 = (($29) + ($4))|0;
+  $31 = ($30>>>0)>($1>>>0);
+  $32 = (($30) - ($1))|0;
+  $33 = (($0) + ($1)|0);
+  if (!($31)) {
+   $$2 = 0;
+   return ($$2|0);
+  }
+  $34 = $32 | 1;
+  $35 = ((($33)) + 4|0);
+  $36 = $3 & 1;
+  $37 = $36 | $1;
+  $38 = $37 | 2;
+  HEAP32[$2>>2] = $38;
+  HEAP32[$35>>2] = $34;
+  HEAP32[(72736)>>2] = $33;
+  HEAP32[(72724)>>2] = $32;
+  $$2 = $0;
+  return ($$2|0);
+ }
+ $39 = HEAP32[(72732)>>2]|0;
+ $40 = ($39|0)==($5|0);
+ if ($40) {
+  $41 = HEAP32[(72720)>>2]|0;
+  $42 = (($41) + ($4))|0;
+  $43 = ($42>>>0)<($1>>>0);
+  if ($43) {
+   $$2 = 0;
+   return ($$2|0);
+  }
+  $44 = (($42) - ($1))|0;
+  $45 = ($44>>>0)>(15);
+  if ($45) {
+   $46 = (($0) + ($1)|0);
+   $47 = (($0) + ($42)|0);
+   $48 = $3 & 1;
+   $49 = $48 | $1;
+   $50 = $49 | 2;
+   HEAP32[$2>>2] = $50;
+   $51 = ((($46)) + 4|0);
+   $52 = $44 | 1;
+   HEAP32[$51>>2] = $52;
+   HEAP32[$47>>2] = $44;
+   $53 = ((($47)) + 4|0);
+   $54 = HEAP32[$53>>2]|0;
+   $55 = $54 & -2;
+   HEAP32[$53>>2] = $55;
+   $storemerge = $46;$storemerge1 = $44;
+  } else {
+   $56 = $3 & 1;
+   $57 = $56 | $42;
+   $58 = $57 | 2;
+   HEAP32[$2>>2] = $58;
+   $59 = (($0) + ($42)|0);
+   $60 = ((($59)) + 4|0);
+   $61 = HEAP32[$60>>2]|0;
+   $62 = $61 | 1;
+   HEAP32[$60>>2] = $62;
+   $storemerge = 0;$storemerge1 = 0;
+  }
+  HEAP32[(72720)>>2] = $storemerge1;
+  HEAP32[(72732)>>2] = $storemerge;
+  $$2 = $0;
+  return ($$2|0);
+ }
+ $63 = ((($5)) + 4|0);
+ $64 = HEAP32[$63>>2]|0;
+ $65 = $64 & 2;
+ $66 = ($65|0)==(0);
+ if (!($66)) {
+  $$2 = 0;
+  return ($$2|0);
+ }
+ $67 = $64 & -8;
+ $68 = (($67) + ($4))|0;
+ $69 = ($68>>>0)<($1>>>0);
+ if ($69) {
+  $$2 = 0;
+  return ($$2|0);
+ }
+ $70 = (($68) - ($1))|0;
+ $71 = $64 >>> 3;
+ $72 = ($64>>>0)<(256);
+ do {
+  if ($72) {
+   $73 = ((($5)) + 8|0);
+   $74 = HEAP32[$73>>2]|0;
+   $75 = ((($5)) + 12|0);
+   $76 = HEAP32[$75>>2]|0;
+   $77 = ($76|0)==($74|0);
+   if ($77) {
+    $78 = 1 << $71;
+    $79 = $78 ^ -1;
+    $80 = HEAP32[18178]|0;
+    $81 = $80 & $79;
+    HEAP32[18178] = $81;
+    break;
+   } else {
+    $82 = ((($74)) + 12|0);
+    HEAP32[$82>>2] = $76;
+    $83 = ((($76)) + 8|0);
+    HEAP32[$83>>2] = $74;
+    break;
+   }
+  } else {
+   $84 = ((($5)) + 24|0);
+   $85 = HEAP32[$84>>2]|0;
+   $86 = ((($5)) + 12|0);
+   $87 = HEAP32[$86>>2]|0;
+   $88 = ($87|0)==($5|0);
+   do {
+    if ($88) {
+     $93 = ((($5)) + 16|0);
+     $94 = ((($93)) + 4|0);
+     $95 = HEAP32[$94>>2]|0;
+     $96 = ($95|0)==(0|0);
+     if ($96) {
+      $97 = HEAP32[$93>>2]|0;
+      $98 = ($97|0)==(0|0);
+      if ($98) {
+       $$3 = 0;
+       break;
+      } else {
+       $$1245$ph = $97;$$1248$ph = $93;
+      }
+     } else {
+      $$1245$ph = $95;$$1248$ph = $94;
+     }
+     $$1245 = $$1245$ph;$$1248 = $$1248$ph;
+     while(1) {
+      $99 = ((($$1245)) + 20|0);
+      $100 = HEAP32[$99>>2]|0;
+      $101 = ($100|0)==(0|0);
+      if ($101) {
+       $102 = ((($$1245)) + 16|0);
+       $103 = HEAP32[$102>>2]|0;
+       $104 = ($103|0)==(0|0);
+       if ($104) {
+        break;
+       } else {
+        $$1245$be = $103;$$1248$be = $102;
+       }
+      } else {
+       $$1245$be = $100;$$1248$be = $99;
+      }
+      $$1245 = $$1245$be;$$1248 = $$1248$be;
+     }
+     HEAP32[$$1248>>2] = 0;
+     $$3 = $$1245;
+    } else {
+     $89 = ((($5)) + 8|0);
+     $90 = HEAP32[$89>>2]|0;
+     $91 = ((($90)) + 12|0);
+     HEAP32[$91>>2] = $87;
+     $92 = ((($87)) + 8|0);
+     HEAP32[$92>>2] = $90;
+     $$3 = $87;
+    }
+   } while(0);
+   $105 = ($85|0)==(0|0);
+   if (!($105)) {
+    $106 = ((($5)) + 28|0);
+    $107 = HEAP32[$106>>2]|0;
+    $108 = (73016 + ($107<<2)|0);
+    $109 = HEAP32[$108>>2]|0;
+    $110 = ($109|0)==($5|0);
+    if ($110) {
+     HEAP32[$108>>2] = $$3;
+     $cond = ($$3|0)==(0|0);
+     if ($cond) {
+      $111 = 1 << $107;
+      $112 = $111 ^ -1;
+      $113 = HEAP32[(72716)>>2]|0;
+      $114 = $113 & $112;
+      HEAP32[(72716)>>2] = $114;
+      break;
+     }
+    } else {
+     $115 = ((($85)) + 16|0);
+     $116 = HEAP32[$115>>2]|0;
+     $117 = ($116|0)==($5|0);
+     $118 = ((($85)) + 20|0);
+     $$sink = $117 ? $115 : $118;
+     HEAP32[$$sink>>2] = $$3;
+     $119 = ($$3|0)==(0|0);
+     if ($119) {
+      break;
+     }
+    }
+    $120 = ((($$3)) + 24|0);
+    HEAP32[$120>>2] = $85;
+    $121 = ((($5)) + 16|0);
+    $122 = HEAP32[$121>>2]|0;
+    $123 = ($122|0)==(0|0);
+    if (!($123)) {
+     $124 = ((($$3)) + 16|0);
+     HEAP32[$124>>2] = $122;
+     $125 = ((($122)) + 24|0);
+     HEAP32[$125>>2] = $$3;
+    }
+    $126 = ((($121)) + 4|0);
+    $127 = HEAP32[$126>>2]|0;
+    $128 = ($127|0)==(0|0);
+    if (!($128)) {
+     $129 = ((($$3)) + 20|0);
+     HEAP32[$129>>2] = $127;
+     $130 = ((($127)) + 24|0);
+     HEAP32[$130>>2] = $$3;
+    }
+   }
+  }
+ } while(0);
+ $131 = ($70>>>0)<(16);
+ if ($131) {
+  $132 = $3 & 1;
+  $133 = $132 | $68;
+  $134 = $133 | 2;
+  HEAP32[$2>>2] = $134;
+  $135 = (($0) + ($68)|0);
+  $136 = ((($135)) + 4|0);
+  $137 = HEAP32[$136>>2]|0;
+  $138 = $137 | 1;
+  HEAP32[$136>>2] = $138;
+  $$2 = $0;
+  return ($$2|0);
+ } else {
+  $139 = (($0) + ($1)|0);
+  $140 = $3 & 1;
+  $141 = $140 | $1;
+  $142 = $141 | 2;
+  HEAP32[$2>>2] = $142;
+  $143 = ((($139)) + 4|0);
+  $144 = $70 | 3;
+  HEAP32[$143>>2] = $144;
+  $145 = (($0) + ($68)|0);
+  $146 = ((($145)) + 4|0);
+  $147 = HEAP32[$146>>2]|0;
+  $148 = $147 | 1;
+  HEAP32[$146>>2] = $148;
+  _dispose_chunk($139,$70);
+  $$2 = $0;
+  return ($$2|0);
+ }
+ return (0)|0;
+}
+function _dispose_chunk($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$03649 = 0, $$0365$lcssa = 0, $$03658 = 0, $$0376 = 0, $$0383 = 0, $$1 = 
0, $$1363 = 0, $$1371 = 0, $$1371$be = 0, $$1371$ph = 0, $$1374 = 0, $$1374$be 
= 0, $$1374$ph = 0, $$1378 = 0, $$1378$be = 0, $$1378$ph = 0, $$1382 = 0, 
$$1382$be = 0, $$1382$ph = 0, $$2 = 0;
+ var $$3 = 0, $$3380 = 0, $$pre = 0, $$pre$phiZ2D = 0, $$sink = 0, $$sink24 = 
0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 
0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0;
+ var $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;
+ var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, 
$137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, 
$144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0;
+ var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 
= 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 
= 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0;
+ var $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 
= 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 
= 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0;
+ var $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 
= 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 
= 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0;
+ var $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, 
$209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, 
$216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0;
+ var $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, 
$227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, 
$234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0;
+ var $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 
= 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $26 = 0, $27 = 
0, $28 = 0, $29 = 0, $3 = 0, $30 = 0;
+ var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, 
$39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, 
$47 = 0, $48 = 0, $49 = 0;
+ var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, 
$57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, 
$65 = 0, $66 = 0, $67 = 0;
+ var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, 
$75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, 
$83 = 0, $84 = 0, $85 = 0;
+ var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, 
$93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond = 0, 
$cond4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (($0) + ($1)|0);
+ $3 = ((($0)) + 4|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = $4 & 1;
+ $6 = ($5|0)==(0);
+ do {
+  if ($6) {
+   $7 = HEAP32[$0>>2]|0;
+   $8 = $4 & 3;
+   $9 = ($8|0)==(0);
+   if ($9) {
+    return;
+   }
+   $10 = (0 - ($7))|0;
+   $11 = (($0) + ($10)|0);
+   $12 = (($7) + ($1))|0;
+   $13 = HEAP32[(72732)>>2]|0;
+   $14 = ($13|0)==($11|0);
+   if ($14) {
+    $75 = ((($2)) + 4|0);
+    $76 = HEAP32[$75>>2]|0;
+    $77 = $76 & 3;
+    $78 = ($77|0)==(3);
+    if (!($78)) {
+     $$1 = $11;$$1363 = $12;
+     break;
+    }
+    $79 = ((($11)) + 4|0);
+    $80 = $12 | 1;
+    $81 = $76 & -2;
+    HEAP32[(72720)>>2] = $12;
+    HEAP32[$75>>2] = $81;
+    HEAP32[$79>>2] = $80;
+    HEAP32[$2>>2] = $12;
+    return;
+   }
+   $15 = $7 >>> 3;
+   $16 = ($7>>>0)<(256);
+   if ($16) {
+    $17 = ((($11)) + 8|0);
+    $18 = HEAP32[$17>>2]|0;
+    $19 = ((($11)) + 12|0);
+    $20 = HEAP32[$19>>2]|0;
+    $21 = ($20|0)==($18|0);
+    if ($21) {
+     $22 = 1 << $15;
+     $23 = $22 ^ -1;
+     $24 = HEAP32[18178]|0;
+     $25 = $24 & $23;
+     HEAP32[18178] = $25;
+     $$1 = $11;$$1363 = $12;
+     break;
+    } else {
+     $26 = ((($18)) + 12|0);
+     HEAP32[$26>>2] = $20;
+     $27 = ((($20)) + 8|0);
+     HEAP32[$27>>2] = $18;
+     $$1 = $11;$$1363 = $12;
+     break;
+    }
+   }
+   $28 = ((($11)) + 24|0);
+   $29 = HEAP32[$28>>2]|0;
+   $30 = ((($11)) + 12|0);
+   $31 = HEAP32[$30>>2]|0;
+   $32 = ($31|0)==($11|0);
+   do {
+    if ($32) {
+     $37 = ((($11)) + 16|0);
+     $38 = ((($37)) + 4|0);
+     $39 = HEAP32[$38>>2]|0;
+     $40 = ($39|0)==(0|0);
+     if ($40) {
+      $41 = HEAP32[$37>>2]|0;
+      $42 = ($41|0)==(0|0);
+      if ($42) {
+       $$3 = 0;
+       break;
+      } else {
+       $$1371$ph = $41;$$1374$ph = $37;
+      }
+     } else {
+      $$1371$ph = $39;$$1374$ph = $38;
+     }
+     $$1371 = $$1371$ph;$$1374 = $$1374$ph;
+     while(1) {
+      $43 = ((($$1371)) + 20|0);
+      $44 = HEAP32[$43>>2]|0;
+      $45 = ($44|0)==(0|0);
+      if ($45) {
+       $46 = ((($$1371)) + 16|0);
+       $47 = HEAP32[$46>>2]|0;
+       $48 = ($47|0)==(0|0);
+       if ($48) {
+        break;
+       } else {
+        $$1371$be = $47;$$1374$be = $46;
+       }
+      } else {
+       $$1371$be = $44;$$1374$be = $43;
+      }
+      $$1371 = $$1371$be;$$1374 = $$1374$be;
+     }
+     HEAP32[$$1374>>2] = 0;
+     $$3 = $$1371;
+    } else {
+     $33 = ((($11)) + 8|0);
+     $34 = HEAP32[$33>>2]|0;
+     $35 = ((($34)) + 12|0);
+     HEAP32[$35>>2] = $31;
+     $36 = ((($31)) + 8|0);
+     HEAP32[$36>>2] = $34;
+     $$3 = $31;
+    }
+   } while(0);
+   $49 = ($29|0)==(0|0);
+   if ($49) {
+    $$1 = $11;$$1363 = $12;
+   } else {
+    $50 = ((($11)) + 28|0);
+    $51 = HEAP32[$50>>2]|0;
+    $52 = (73016 + ($51<<2)|0);
+    $53 = HEAP32[$52>>2]|0;
+    $54 = ($53|0)==($11|0);
+    if ($54) {
+     HEAP32[$52>>2] = $$3;
+     $cond = ($$3|0)==(0|0);
+     if ($cond) {
+      $55 = 1 << $51;
+      $56 = $55 ^ -1;
+      $57 = HEAP32[(72716)>>2]|0;
+      $58 = $57 & $56;
+      HEAP32[(72716)>>2] = $58;
+      $$1 = $11;$$1363 = $12;
+      break;
+     }
+    } else {
+     $59 = ((($29)) + 16|0);
+     $60 = HEAP32[$59>>2]|0;
+     $61 = ($60|0)==($11|0);
+     $62 = ((($29)) + 20|0);
+     $$sink = $61 ? $59 : $62;
+     HEAP32[$$sink>>2] = $$3;
+     $63 = ($$3|0)==(0|0);
+     if ($63) {
+      $$1 = $11;$$1363 = $12;
+      break;
+     }
+    }
+    $64 = ((($$3)) + 24|0);
+    HEAP32[$64>>2] = $29;
+    $65 = ((($11)) + 16|0);
+    $66 = HEAP32[$65>>2]|0;
+    $67 = ($66|0)==(0|0);
+    if (!($67)) {
+     $68 = ((($$3)) + 16|0);
+     HEAP32[$68>>2] = $66;
+     $69 = ((($66)) + 24|0);
+     HEAP32[$69>>2] = $$3;
+    }
+    $70 = ((($65)) + 4|0);
+    $71 = HEAP32[$70>>2]|0;
+    $72 = ($71|0)==(0|0);
+    if ($72) {
+     $$1 = $11;$$1363 = $12;
+    } else {
+     $73 = ((($$3)) + 20|0);
+     HEAP32[$73>>2] = $71;
+     $74 = ((($71)) + 24|0);
+     HEAP32[$74>>2] = $$3;
+     $$1 = $11;$$1363 = $12;
+    }
+   }
+  } else {
+   $$1 = $0;$$1363 = $1;
+  }
+ } while(0);
+ $82 = ((($2)) + 4|0);
+ $83 = HEAP32[$82>>2]|0;
+ $84 = $83 & 2;
+ $85 = ($84|0)==(0);
+ if ($85) {
+  $86 = HEAP32[(72736)>>2]|0;
+  $87 = ($86|0)==($2|0);
+  if ($87) {
+   $88 = HEAP32[(72724)>>2]|0;
+   $89 = (($88) + ($$1363))|0;
+   HEAP32[(72724)>>2] = $89;
+   HEAP32[(72736)>>2] = $$1;
+   $90 = $89 | 1;
+   $91 = ((($$1)) + 4|0);
+   HEAP32[$91>>2] = $90;
+   $92 = HEAP32[(72732)>>2]|0;
+   $93 = ($$1|0)==($92|0);
+   if (!($93)) {
+    return;
+   }
+   HEAP32[(72732)>>2] = 0;
+   HEAP32[(72720)>>2] = 0;
+   return;
+  }
+  $94 = HEAP32[(72732)>>2]|0;
+  $95 = ($94|0)==($2|0);
+  if ($95) {
+   $96 = HEAP32[(72720)>>2]|0;
+   $97 = (($96) + ($$1363))|0;
+   HEAP32[(72720)>>2] = $97;
+   HEAP32[(72732)>>2] = $$1;
+   $98 = $97 | 1;
+   $99 = ((($$1)) + 4|0);
+   HEAP32[$99>>2] = $98;
+   $100 = (($$1) + ($97)|0);
+   HEAP32[$100>>2] = $97;
+   return;
+  }
+  $101 = $83 & -8;
+  $102 = (($101) + ($$1363))|0;
+  $103 = $83 >>> 3;
+  $104 = ($83>>>0)<(256);
+  do {
+   if ($104) {
+    $105 = ((($2)) + 8|0);
+    $106 = HEAP32[$105>>2]|0;
+    $107 = ((($2)) + 12|0);
+    $108 = HEAP32[$107>>2]|0;
+    $109 = ($108|0)==($106|0);
+    if ($109) {
+     $110 = 1 << $103;
+     $111 = $110 ^ -1;
+     $112 = HEAP32[18178]|0;
+     $113 = $112 & $111;
+     HEAP32[18178] = $113;
+     break;
+    } else {
+     $114 = ((($106)) + 12|0);
+     HEAP32[$114>>2] = $108;
+     $115 = ((($108)) + 8|0);
+     HEAP32[$115>>2] = $106;
+     break;
+    }
+   } else {
+    $116 = ((($2)) + 24|0);
+    $117 = HEAP32[$116>>2]|0;
+    $118 = ((($2)) + 12|0);
+    $119 = HEAP32[$118>>2]|0;
+    $120 = ($119|0)==($2|0);
+    do {
+     if ($120) {
+      $125 = ((($2)) + 16|0);
+      $126 = ((($125)) + 4|0);
+      $127 = HEAP32[$126>>2]|0;
+      $128 = ($127|0)==(0|0);
+      if ($128) {
+       $129 = HEAP32[$125>>2]|0;
+       $130 = ($129|0)==(0|0);
+       if ($130) {
+        $$3380 = 0;
+        break;
+       } else {
+        $$1378$ph = $129;$$1382$ph = $125;
+       }
+      } else {
+       $$1378$ph = $127;$$1382$ph = $126;
+      }
+      $$1378 = $$1378$ph;$$1382 = $$1382$ph;
+      while(1) {
+       $131 = ((($$1378)) + 20|0);
+       $132 = HEAP32[$131>>2]|0;
+       $133 = ($132|0)==(0|0);
+       if ($133) {
+        $134 = ((($$1378)) + 16|0);
+        $135 = HEAP32[$134>>2]|0;
+        $136 = ($135|0)==(0|0);
+        if ($136) {
+         break;
+        } else {
+         $$1378$be = $135;$$1382$be = $134;
+        }
+       } else {
+        $$1378$be = $132;$$1382$be = $131;
+       }
+       $$1378 = $$1378$be;$$1382 = $$1382$be;
+      }
+      HEAP32[$$1382>>2] = 0;
+      $$3380 = $$1378;
+     } else {
+      $121 = ((($2)) + 8|0);
+      $122 = HEAP32[$121>>2]|0;
+      $123 = ((($122)) + 12|0);
+      HEAP32[$123>>2] = $119;
+      $124 = ((($119)) + 8|0);
+      HEAP32[$124>>2] = $122;
+      $$3380 = $119;
+     }
+    } while(0);
+    $137 = ($117|0)==(0|0);
+    if (!($137)) {
+     $138 = ((($2)) + 28|0);
+     $139 = HEAP32[$138>>2]|0;
+     $140 = (73016 + ($139<<2)|0);
+     $141 = HEAP32[$140>>2]|0;
+     $142 = ($141|0)==($2|0);
+     if ($142) {
+      HEAP32[$140>>2] = $$3380;
+      $cond4 = ($$3380|0)==(0|0);
+      if ($cond4) {
+       $143 = 1 << $139;
+       $144 = $143 ^ -1;
+       $145 = HEAP32[(72716)>>2]|0;
+       $146 = $145 & $144;
+       HEAP32[(72716)>>2] = $146;
+       break;
+      }
+     } else {
+      $147 = ((($117)) + 16|0);
+      $148 = HEAP32[$147>>2]|0;
+      $149 = ($148|0)==($2|0);
+      $150 = ((($117)) + 20|0);
+      $$sink24 = $149 ? $147 : $150;
+      HEAP32[$$sink24>>2] = $$3380;
+      $151 = ($$3380|0)==(0|0);
+      if ($151) {
+       break;
+      }
+     }
+     $152 = ((($$3380)) + 24|0);
+     HEAP32[$152>>2] = $117;
+     $153 = ((($2)) + 16|0);
+     $154 = HEAP32[$153>>2]|0;
+     $155 = ($154|0)==(0|0);
+     if (!($155)) {
+      $156 = ((($$3380)) + 16|0);
+      HEAP32[$156>>2] = $154;
+      $157 = ((($154)) + 24|0);
+      HEAP32[$157>>2] = $$3380;
+     }
+     $158 = ((($153)) + 4|0);
+     $159 = HEAP32[$158>>2]|0;
+     $160 = ($159|0)==(0|0);
+     if (!($160)) {
+      $161 = ((($$3380)) + 20|0);
+      HEAP32[$161>>2] = $159;
+      $162 = ((($159)) + 24|0);
+      HEAP32[$162>>2] = $$3380;
+     }
+    }
+   }
+  } while(0);
+  $163 = $102 | 1;
+  $164 = ((($$1)) + 4|0);
+  HEAP32[$164>>2] = $163;
+  $165 = (($$1) + ($102)|0);
+  HEAP32[$165>>2] = $102;
+  $166 = HEAP32[(72732)>>2]|0;
+  $167 = ($$1|0)==($166|0);
+  if ($167) {
+   HEAP32[(72720)>>2] = $102;
+   return;
+  } else {
+   $$2 = $102;
+  }
+ } else {
+  $168 = $83 & -2;
+  HEAP32[$82>>2] = $168;
+  $169 = $$1363 | 1;
+  $170 = ((($$1)) + 4|0);
+  HEAP32[$170>>2] = $169;
+  $171 = (($$1) + ($$1363)|0);
+  HEAP32[$171>>2] = $$1363;
+  $$2 = $$1363;
+ }
+ $172 = $$2 >>> 3;
+ $173 = ($$2>>>0)<(256);
+ if ($173) {
+  $174 = $172 << 1;
+  $175 = (72752 + ($174<<2)|0);
+  $176 = HEAP32[18178]|0;
+  $177 = 1 << $172;
+  $178 = $176 & $177;
+  $179 = ($178|0)==(0);
+  if ($179) {
+   $180 = $176 | $177;
+   HEAP32[18178] = $180;
+   $$pre = ((($175)) + 8|0);
+   $$0383 = $175;$$pre$phiZ2D = $$pre;
+  } else {
+   $181 = ((($175)) + 8|0);
+   $182 = HEAP32[$181>>2]|0;
+   $$0383 = $182;$$pre$phiZ2D = $181;
+  }
+  HEAP32[$$pre$phiZ2D>>2] = $$1;
+  $183 = ((($$0383)) + 12|0);
+  HEAP32[$183>>2] = $$1;
+  $184 = ((($$1)) + 8|0);
+  HEAP32[$184>>2] = $$0383;
+  $185 = ((($$1)) + 12|0);
+  HEAP32[$185>>2] = $175;
+  return;
+ }
+ $186 = $$2 >>> 8;
+ $187 = ($186|0)==(0);
+ if ($187) {
+  $$0376 = 0;
+ } else {
+  $188 = ($$2>>>0)>(16777215);
+  if ($188) {
+   $$0376 = 31;
+  } else {
+   $189 = (($186) + 1048320)|0;
+   $190 = $189 >>> 16;
+   $191 = $190 & 8;
+   $192 = $186 << $191;
+   $193 = (($192) + 520192)|0;
+   $194 = $193 >>> 16;
+   $195 = $194 & 4;
+   $196 = $195 | $191;
+   $197 = $192 << $195;
+   $198 = (($197) + 245760)|0;
+   $199 = $198 >>> 16;
+   $200 = $199 & 2;
+   $201 = $196 | $200;
+   $202 = (14 - ($201))|0;
+   $203 = $197 << $200;
+   $204 = $203 >>> 15;
+   $205 = (($202) + ($204))|0;
+   $206 = $205 << 1;
+   $207 = (($205) + 7)|0;
+   $208 = $$2 >>> $207;
+   $209 = $208 & 1;
+   $210 = $209 | $206;
+   $$0376 = $210;
+  }
+ }
+ $211 = (73016 + ($$0376<<2)|0);
+ $212 = ((($$1)) + 28|0);
+ HEAP32[$212>>2] = $$0376;
+ $213 = ((($$1)) + 16|0);
+ $214 = ((($$1)) + 20|0);
+ HEAP32[$214>>2] = 0;
+ HEAP32[$213>>2] = 0;
+ $215 = HEAP32[(72716)>>2]|0;
+ $216 = 1 << $$0376;
+ $217 = $215 & $216;
+ $218 = ($217|0)==(0);
+ if ($218) {
+  $219 = $215 | $216;
+  HEAP32[(72716)>>2] = $219;
+  HEAP32[$211>>2] = $$1;
+  $220 = ((($$1)) + 24|0);
+  HEAP32[$220>>2] = $211;
+  $221 = ((($$1)) + 12|0);
+  HEAP32[$221>>2] = $$1;
+  $222 = ((($$1)) + 8|0);
+  HEAP32[$222>>2] = $$1;
+  return;
+ }
+ $223 = HEAP32[$211>>2]|0;
+ $224 = ((($223)) + 4|0);
+ $225 = HEAP32[$224>>2]|0;
+ $226 = $225 & -8;
+ $227 = ($226|0)==($$2|0);
+ L104: do {
+  if ($227) {
+   $$0365$lcssa = $223;
+  } else {
+   $228 = ($$0376|0)==(31);
+   $229 = $$0376 >>> 1;
+   $230 = (25 - ($229))|0;
+   $231 = $228 ? 0 : $230;
+   $232 = $$2 << $231;
+   $$03649 = $232;$$03658 = $223;
+   while(1) {
+    $239 = $$03649 >>> 31;
+    $240 = (((($$03658)) + 16|0) + ($239<<2)|0);
+    $235 = HEAP32[$240>>2]|0;
+    $241 = ($235|0)==(0|0);
+    if ($241) {
+     break;
+    }
+    $233 = $$03649 << 1;
+    $234 = ((($235)) + 4|0);
+    $236 = HEAP32[$234>>2]|0;
+    $237 = $236 & -8;
+    $238 = ($237|0)==($$2|0);
+    if ($238) {
+     $$0365$lcssa = $235;
+     break L104;
+    } else {
+     $$03649 = $233;$$03658 = $235;
+    }
+   }
+   HEAP32[$240>>2] = $$1;
+   $242 = ((($$1)) + 24|0);
+   HEAP32[$242>>2] = $$03658;
+   $243 = ((($$1)) + 12|0);
+   HEAP32[$243>>2] = $$1;
+   $244 = ((($$1)) + 8|0);
+   HEAP32[$244>>2] = $$1;
+   return;
+  }
+ } while(0);
+ $245 = ((($$0365$lcssa)) + 8|0);
+ $246 = HEAP32[$245>>2]|0;
+ $247 = ((($246)) + 12|0);
+ HEAP32[$247>>2] = $$1;
+ HEAP32[$245>>2] = $$1;
+ $248 = ((($$1)) + 8|0);
+ HEAP32[$248>>2] = $246;
+ $249 = ((($$1)) + 12|0);
+ HEAP32[$249>>2] = $$0365$lcssa;
+ $250 = ((($$1)) + 24|0);
+ HEAP32[$250>>2] = 0;
+ return;
+}
+function _memalign($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($0>>>0)<(9);
+ if ($2) {
+  $3 = (_malloc($1)|0);
+  $$0 = $3;
+  return ($$0|0);
+ } else {
+  $4 = (_internal_memalign($0,$1)|0);
+  $$0 = $4;
+  return ($$0|0);
+ }
+ return (0)|0;
+}
+function _internal_memalign($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0100 = 0, $$099 = 0, $$1 = 0, $$198 = 0, $10 = 0, $11 = 0, $12 = 0, $13 
= 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 
= 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0;
+ var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 
0, $59 = 0, $6 = 0, $60 = 0;
+ var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, 
$69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, 
$77 = 0, $78 = 0, $79 = 0;
+ var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $9 = 0, $spec$select = 0, label = 0, 
sp = 0;
+ sp = STACKTOP;
+ $2 = ($0>>>0)>(16);
+ $spec$select = $2 ? $0 : 16;
+ $3 = (($spec$select) + -1)|0;
+ $4 = $3 & $spec$select;
+ $5 = ($4|0)==(0);
+ if ($5) {
+  $$1 = $spec$select;
+ } else {
+  $$099 = 16;
+  while(1) {
+   $6 = ($$099>>>0)<($spec$select>>>0);
+   $7 = $$099 << 1;
+   if ($6) {
+    $$099 = $7;
+   } else {
+    $$1 = $$099;
+    break;
+   }
+  }
+ }
+ $8 = (-64 - ($$1))|0;
+ $9 = ($8>>>0)>($1>>>0);
+ if (!($9)) {
+  $10 = (___errno_location()|0);
+  HEAP32[$10>>2] = 12;
+  $$198 = 0;
+  return ($$198|0);
+ }
+ $11 = ($1>>>0)<(11);
+ $12 = (($1) + 11)|0;
+ $13 = $12 & -8;
+ $14 = $11 ? 16 : $13;
+ $15 = (($14) + 12)|0;
+ $16 = (($15) + ($$1))|0;
+ $17 = (_malloc($16)|0);
+ $18 = ($17|0)==(0|0);
+ if ($18) {
+  $$198 = 0;
+  return ($$198|0);
+ }
+ $19 = ((($17)) + -8|0);
+ $20 = $17;
+ $21 = (($$1) + -1)|0;
+ $22 = $21 & $20;
+ $23 = ($22|0)==(0);
+ do {
+  if ($23) {
+   $$0100 = $19;$72 = $19;
+  } else {
+   $24 = (($17) + ($$1)|0);
+   $25 = ((($24)) + -1|0);
+   $26 = $25;
+   $27 = (0 - ($$1))|0;
+   $28 = $26 & $27;
+   $29 = $28;
+   $30 = ((($29)) + -8|0);
+   $31 = $30;
+   $32 = $19;
+   $33 = (($31) - ($32))|0;
+   $34 = ($33>>>0)>(15);
+   $35 = (($30) + ($$1)|0);
+   $36 = $34 ? $30 : $35;
+   $37 = $36;
+   $38 = (($37) - ($32))|0;
+   $39 = ((($17)) + -4|0);
+   $40 = HEAP32[$39>>2]|0;
+   $41 = $40 & -8;
+   $42 = (($41) - ($38))|0;
+   $43 = $40 & 3;
+   $44 = ($43|0)==(0);
+   if ($44) {
+    $45 = HEAP32[$19>>2]|0;
+    $46 = (($45) + ($38))|0;
+    HEAP32[$36>>2] = $46;
+    $47 = ((($36)) + 4|0);
+    HEAP32[$47>>2] = $42;
+    $$0100 = $36;$72 = $36;
+    break;
+   } else {
+    $48 = ((($36)) + 4|0);
+    $49 = HEAP32[$48>>2]|0;
+    $50 = $49 & 1;
+    $51 = $42 | $50;
+    $52 = $51 | 2;
+    HEAP32[$48>>2] = $52;
+    $53 = (($36) + ($42)|0);
+    $54 = ((($53)) + 4|0);
+    $55 = HEAP32[$54>>2]|0;
+    $56 = $55 | 1;
+    HEAP32[$54>>2] = $56;
+    $57 = HEAP32[$39>>2]|0;
+    $58 = $57 & 1;
+    $59 = $38 | $58;
+    $60 = $59 | 2;
+    HEAP32[$39>>2] = $60;
+    $61 = HEAP32[$48>>2]|0;
+    $62 = $61 | 1;
+    HEAP32[$48>>2] = $62;
+    _dispose_chunk($19,$38);
+    $$0100 = $36;$72 = $36;
+    break;
+   }
+  }
+ } while(0);
+ $63 = ((($$0100)) + 4|0);
+ $64 = HEAP32[$63>>2]|0;
+ $65 = $64 & 3;
+ $66 = ($65|0)==(0);
+ if (!($66)) {
+  $67 = $64 & -8;
+  $68 = (($14) + 16)|0;
+  $69 = ($67>>>0)>($68>>>0);
+  if ($69) {
+   $70 = (($67) - ($14))|0;
+   $71 = (($72) + ($14)|0);
+   $73 = $64 & 1;
+   $74 = $14 | $73;
+   $75 = $74 | 2;
+   HEAP32[$63>>2] = $75;
+   $76 = ((($71)) + 4|0);
+   $77 = $70 | 3;
+   HEAP32[$76>>2] = $77;
+   $78 = (($72) + ($67)|0);
+   $79 = ((($78)) + 4|0);
+   $80 = HEAP32[$79>>2]|0;
+   $81 = $80 | 1;
+   HEAP32[$79>>2] = $81;
+   _dispose_chunk($71,$70);
+  }
+ }
+ $82 = ((($72)) + 8|0);
+ $$198 = $82;
+ return ($$198|0);
+}
+function ___stdio_close($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp 
= 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $1 = ((($0)) + 60|0);
+ $2 = HEAP32[$1>>2]|0;
+ $3 = (_dummy_33($2)|0);
+ HEAP32[$vararg_buffer>>2] = $3;
+ $4 = (___syscall6(6,($vararg_buffer|0))|0);
+ $5 = (___syscall_ret($4)|0);
+ STACKTOP = sp;return ($5|0);
+}
+function ___stdio_read($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$cast = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 
0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 
= 0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer = sp + 16|0;
+ $3 = sp;
+ HEAP32[$3>>2] = $1;
+ $4 = ((($3)) + 4|0);
+ $5 = ((($0)) + 48|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ($6|0)!=(0);
+ $8 = $7&1;
+ $9 = (($2) - ($8))|0;
+ HEAP32[$4>>2] = $9;
+ $10 = ((($3)) + 8|0);
+ $11 = ((($0)) + 44|0);
+ $12 = HEAP32[$11>>2]|0;
+ HEAP32[$10>>2] = $12;
+ $13 = ((($3)) + 12|0);
+ HEAP32[$13>>2] = $6;
+ $14 = ((($0)) + 60|0);
+ $15 = HEAP32[$14>>2]|0;
+ $16 = $3;
+ HEAP32[$vararg_buffer>>2] = $15;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $16;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = 2;
+ $17 = (___syscall145(145,($vararg_buffer|0))|0);
+ $18 = (___syscall_ret($17)|0);
+ $19 = ($18|0)<(1);
+ if ($19) {
+  $20 = $18 & 48;
+  $21 = $20 ^ 16;
+  $22 = HEAP32[$0>>2]|0;
+  $23 = $22 | $21;
+  HEAP32[$0>>2] = $23;
+  $$0 = $18;
+ } else {
+  $24 = HEAP32[$4>>2]|0;
+  $25 = ($18>>>0)>($24>>>0);
+  if ($25) {
+   $26 = (($18) - ($24))|0;
+   $27 = HEAP32[$11>>2]|0;
+   $28 = ((($0)) + 4|0);
+   HEAP32[$28>>2] = $27;
+   $$cast = $27;
+   $29 = (($$cast) + ($26)|0);
+   $30 = ((($0)) + 8|0);
+   HEAP32[$30>>2] = $29;
+   $31 = HEAP32[$5>>2]|0;
+   $32 = ($31|0)==(0);
+   if ($32) {
+    $$0 = $2;
+   } else {
+    $33 = ((($$cast)) + 1|0);
+    HEAP32[$28>>2] = $33;
+    $34 = HEAP8[$$cast>>0]|0;
+    $35 = (($2) + -1)|0;
+    $36 = (($1) + ($35)|0);
+    HEAP8[$36>>0] = $34;
+    $$0 = $2;
+   }
+  } else {
+   $$0 = $18;
+  }
+ }
+ STACKTOP = sp;return ($$0|0);
+}
+function ___stdio_seek($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$pre = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 
0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, 
$vararg_ptr4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer = sp;
+ $3 = sp + 20|0;
+ $4 = ((($0)) + 60|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = $3;
+ HEAP32[$vararg_buffer>>2] = $5;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = 0;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = $1;
+ $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+ HEAP32[$vararg_ptr3>>2] = $6;
+ $vararg_ptr4 = ((($vararg_buffer)) + 16|0);
+ HEAP32[$vararg_ptr4>>2] = $2;
+ $7 = (___syscall140(140,($vararg_buffer|0))|0);
+ $8 = (___syscall_ret($7)|0);
+ $9 = ($8|0)<(0);
+ if ($9) {
+  HEAP32[$3>>2] = -1;
+  $10 = -1;
+ } else {
+  $$pre = HEAP32[$3>>2]|0;
+  $10 = $$pre;
+ }
+ STACKTOP = sp;return ($10|0);
+}
+function ___syscall_ret($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0>>>0)>(4294963200);
+ if ($1) {
+  $2 = (0 - ($0))|0;
+  $3 = (___errno_location()|0);
+  HEAP32[$3>>2] = $2;
+  $$0 = -1;
+ } else {
+  $$0 = $0;
+ }
+ return ($$0|0);
+}
+function ___errno_location() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return (73208|0);
+}
+function _dummy_33($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return ($0|0);
+}
+function ___stdout_write($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 
0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer = sp;
+ $3 = sp + 16|0;
+ $4 = ((($0)) + 36|0);
+ HEAP32[$4>>2] = 52;
+ $5 = HEAP32[$0>>2]|0;
+ $6 = $5 & 64;
+ $7 = ($6|0)==(0);
+ if ($7) {
+  $8 = ((($0)) + 60|0);
+  $9 = HEAP32[$8>>2]|0;
+  $10 = $3;
+  HEAP32[$vararg_buffer>>2] = $9;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = 21523;
+  $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+  HEAP32[$vararg_ptr2>>2] = $10;
+  $11 = (___syscall54(54,($vararg_buffer|0))|0);
+  $12 = ($11|0)==(0);
+  if (!($12)) {
+   $13 = ((($0)) + 75|0);
+   HEAP8[$13>>0] = -1;
+  }
+ }
+ $14 = (___stdio_write($0,$1,$2)|0);
+ STACKTOP = sp;return ($14|0);
+}
+function ___stdio_write($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$04756 = 0, $$04855 = 0, $$04954 = 0, $$051 = 0, $$1 = 0, $$150 
= 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0;
+ var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, 
$30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 
0, $39 = 0, $4 = 0, $40 = 0;
+ var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, 
$49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
$vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0;
+ var $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $vararg_buffer3 = sp + 32|0;
+ $vararg_buffer = sp + 16|0;
+ $3 = sp;
+ $4 = ((($0)) + 28|0);
+ $5 = HEAP32[$4>>2]|0;
+ HEAP32[$3>>2] = $5;
+ $6 = ((($3)) + 4|0);
+ $7 = ((($0)) + 20|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = (($8) - ($5))|0;
+ HEAP32[$6>>2] = $9;
+ $10 = ((($3)) + 8|0);
+ HEAP32[$10>>2] = $1;
+ $11 = ((($3)) + 12|0);
+ HEAP32[$11>>2] = $2;
+ $12 = (($9) + ($2))|0;
+ $13 = ((($0)) + 60|0);
+ $14 = HEAP32[$13>>2]|0;
+ $15 = $3;
+ HEAP32[$vararg_buffer>>2] = $14;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $15;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = 2;
+ $16 = (___syscall146(146,($vararg_buffer|0))|0);
+ $17 = (___syscall_ret($16)|0);
+ $18 = ($12|0)==($17|0);
+ L1: do {
+  if ($18) {
+   label = 3;
+  } else {
+   $$04756 = 2;$$04855 = $12;$$04954 = $3;$27 = $17;
+   while(1) {
+    $26 = ($27|0)<(0);
+    if ($26) {
+     break;
+    }
+    $35 = (($$04855) - ($27))|0;
+    $36 = ((($$04954)) + 4|0);
+    $37 = HEAP32[$36>>2]|0;
+    $38 = ($27>>>0)>($37>>>0);
+    $39 = ((($$04954)) + 8|0);
+    $$150 = $38 ? $39 : $$04954;
+    $40 = $38 << 31 >> 31;
+    $$1 = (($$04756) + ($40))|0;
+    $41 = $38 ? $37 : 0;
+    $$0 = (($27) - ($41))|0;
+    $42 = HEAP32[$$150>>2]|0;
+    $43 = (($42) + ($$0)|0);
+    HEAP32[$$150>>2] = $43;
+    $44 = ((($$150)) + 4|0);
+    $45 = HEAP32[$44>>2]|0;
+    $46 = (($45) - ($$0))|0;
+    HEAP32[$44>>2] = $46;
+    $47 = HEAP32[$13>>2]|0;
+    $48 = $$150;
+    HEAP32[$vararg_buffer3>>2] = $47;
+    $vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
+    HEAP32[$vararg_ptr6>>2] = $48;
+    $vararg_ptr7 = ((($vararg_buffer3)) + 8|0);
+    HEAP32[$vararg_ptr7>>2] = $$1;
+    $49 = (___syscall146(146,($vararg_buffer3|0))|0);
+    $50 = (___syscall_ret($49)|0);
+    $51 = ($35|0)==($50|0);
+    if ($51) {
+     label = 3;
+     break L1;
+    } else {
+     $$04756 = $$1;$$04855 = $35;$$04954 = $$150;$27 = $50;
+    }
+   }
+   $28 = ((($0)) + 16|0);
+   HEAP32[$28>>2] = 0;
+   HEAP32[$4>>2] = 0;
+   HEAP32[$7>>2] = 0;
+   $29 = HEAP32[$0>>2]|0;
+   $30 = $29 | 32;
+   HEAP32[$0>>2] = $30;
+   $31 = ($$04756|0)==(2);
+   if ($31) {
+    $$051 = 0;
+   } else {
+    $32 = ((($$04954)) + 4|0);
+    $33 = HEAP32[$32>>2]|0;
+    $34 = (($2) - ($33))|0;
+    $$051 = $34;
+   }
+  }
+ } while(0);
+ if ((label|0) == 3) {
+  $19 = ((($0)) + 44|0);
+  $20 = HEAP32[$19>>2]|0;
+  $21 = ((($0)) + 48|0);
+  $22 = HEAP32[$21>>2]|0;
+  $23 = (($20) + ($22)|0);
+  $24 = ((($0)) + 16|0);
+  HEAP32[$24>>2] = $23;
+  $25 = $20;
+  HEAP32[$4>>2] = $25;
+  HEAP32[$7>>2] = $25;
+  $$051 = $2;
+ }
+ STACKTOP = sp;return ($$051|0);
+}
+function _select($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $10 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, 
$vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer = sp;
+ $5 = $1;
+ $6 = $2;
+ $7 = $3;
+ $8 = $4;
+ HEAP32[$vararg_buffer>>2] = $0;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $5;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = $6;
+ $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+ HEAP32[$vararg_ptr3>>2] = $7;
+ $vararg_ptr4 = ((($vararg_buffer)) + 16|0);
+ HEAP32[$vararg_ptr4>>2] = $8;
+ $9 = (___syscall142(142,($vararg_buffer|0))|0);
+ $10 = (___syscall_ret($9)|0);
+ STACKTOP = sp;return ($10|0);
+}
+function ___fwritex($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$03846 = 0, $$042 = 0, $$1 = 0, $$139 = 0, $$141 = 0, $$143 = 0, $$pre = 
0, $$pre48 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0;
+ var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, 
$3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, 
$6 = 0, $7 = 0, $8 = 0;
+ var $9 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($2)) + 16|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ($4|0)==(0|0);
+ if ($5) {
+  $7 = (___towrite($2)|0);
+  $8 = ($7|0)==(0);
+  if ($8) {
+   $$pre = HEAP32[$3>>2]|0;
+   $12 = $$pre;
+   label = 5;
+  } else {
+   $$1 = 0;
+  }
+ } else {
+  $6 = $4;
+  $12 = $6;
+  label = 5;
+ }
+ L5: do {
+  if ((label|0) == 5) {
+   $9 = ((($2)) + 20|0);
+   $10 = HEAP32[$9>>2]|0;
+   $11 = (($12) - ($10))|0;
+   $13 = ($11>>>0)<($1>>>0);
+   $14 = $10;
+   if ($13) {
+    $15 = ((($2)) + 36|0);
+    $16 = HEAP32[$15>>2]|0;
+    $17 = (FUNCTION_TABLE_iiii[$16 & 127]($2,$0,$1)|0);
+    $$1 = $17;
+    break;
+   }
+   $18 = ((($2)) + 75|0);
+   $19 = HEAP8[$18>>0]|0;
+   $20 = ($19<<24>>24)<(0);
+   $21 = ($1|0)==(0);
+   $or$cond = $20 | $21;
+   L10: do {
+    if ($or$cond) {
+     $$139 = 0;$$141 = $0;$$143 = $1;$32 = $14;
+    } else {
+     $$03846 = $1;
+     while(1) {
+      $23 = (($$03846) + -1)|0;
+      $24 = (($0) + ($23)|0);
+      $25 = HEAP8[$24>>0]|0;
+      $26 = ($25<<24>>24)==(10);
+      if ($26) {
+       break;
+      }
+      $22 = ($23|0)==(0);
+      if ($22) {
+       $$139 = 0;$$141 = $0;$$143 = $1;$32 = $14;
+       break L10;
+      } else {
+       $$03846 = $23;
+      }
+     }
+     $27 = ((($2)) + 36|0);
+     $28 = HEAP32[$27>>2]|0;
+     $29 = (FUNCTION_TABLE_iiii[$28 & 127]($2,$0,$$03846)|0);
+     $30 = ($29>>>0)<($$03846>>>0);
+     if ($30) {
+      $$1 = $29;
+      break L5;
+     }
+     $31 = (($0) + ($$03846)|0);
+     $$042 = (($1) - ($$03846))|0;
+     $$pre48 = HEAP32[$9>>2]|0;
+     $$139 = $$03846;$$141 = $31;$$143 = $$042;$32 = $$pre48;
+    }
+   } while(0);
+   (_memcpy(($32|0),($$141|0),($$143|0))|0);
+   $33 = HEAP32[$9>>2]|0;
+   $34 = (($33) + ($$143)|0);
+   HEAP32[$9>>2] = $34;
+   $35 = (($$139) + ($$143))|0;
+   $$1 = $35;
+  }
+ } while(0);
+ return ($$1|0);
+}
+function ___towrite($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, 
$5 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 74|0);
+ $2 = HEAP8[$1>>0]|0;
+ $3 = $2 << 24 >> 24;
+ $4 = (($3) + 255)|0;
+ $5 = $4 | $3;
+ $6 = $5&255;
+ HEAP8[$1>>0] = $6;
+ $7 = HEAP32[$0>>2]|0;
+ $8 = $7 & 8;
+ $9 = ($8|0)==(0);
+ if ($9) {
+  $11 = ((($0)) + 8|0);
+  HEAP32[$11>>2] = 0;
+  $12 = ((($0)) + 4|0);
+  HEAP32[$12>>2] = 0;
+  $13 = ((($0)) + 44|0);
+  $14 = HEAP32[$13>>2]|0;
+  $15 = ((($0)) + 28|0);
+  HEAP32[$15>>2] = $14;
+  $16 = ((($0)) + 20|0);
+  HEAP32[$16>>2] = $14;
+  $17 = $14;
+  $18 = ((($0)) + 48|0);
+  $19 = HEAP32[$18>>2]|0;
+  $20 = (($17) + ($19)|0);
+  $21 = ((($0)) + 16|0);
+  HEAP32[$21>>2] = $20;
+  $$0 = 0;
+ } else {
+  $10 = $7 | 32;
+  HEAP32[$0>>2] = $10;
+  $$0 = -1;
+ }
+ return ($$0|0);
+}
+function _fwrite($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $4 = 0, $5 = 0, $6 
= 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = Math_imul($2, $1)|0;
+ $5 = ($1|0)==(0);
+ $spec$select = $5 ? 0 : $2;
+ $6 = ((($3)) + 76|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($7|0)>(-1);
+ if ($8) {
+  $10 = (___lockfile($3)|0);
+  $phitmp = ($10|0)==(0);
+  $11 = (___fwritex($0,$4,$3)|0);
+  if ($phitmp) {
+   $13 = $11;
+  } else {
+   ___unlockfile($3);
+   $13 = $11;
+  }
+ } else {
+  $9 = (___fwritex($0,$4,$3)|0);
+  $13 = $9;
+ }
+ $12 = ($13|0)==($4|0);
+ if ($12) {
+  $15 = $spec$select;
+ } else {
+  $14 = (($13>>>0) / ($1>>>0))&-1;
+  $15 = $14;
+ }
+ return ($15|0);
+}
+function ___lockfile($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return 0;
+}
+function ___unlockfile($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return;
+}
+function ___toread($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, 
$24 = 0, $25 = 0, $26 = 0;
+ var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $sext = 0, label 
= 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 74|0);
+ $2 = HEAP8[$1>>0]|0;
+ $3 = $2 << 24 >> 24;
+ $4 = (($3) + 255)|0;
+ $5 = $4 | $3;
+ $6 = $5&255;
+ HEAP8[$1>>0] = $6;
+ $7 = ((($0)) + 20|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ((($0)) + 28|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ($8>>>0)>($10>>>0);
+ if ($11) {
+  $12 = ((($0)) + 36|0);
+  $13 = HEAP32[$12>>2]|0;
+  (FUNCTION_TABLE_iiii[$13 & 127]($0,0,0)|0);
+ }
+ $14 = ((($0)) + 16|0);
+ HEAP32[$14>>2] = 0;
+ HEAP32[$9>>2] = 0;
+ HEAP32[$7>>2] = 0;
+ $15 = HEAP32[$0>>2]|0;
+ $16 = $15 & 4;
+ $17 = ($16|0)==(0);
+ if ($17) {
+  $19 = ((($0)) + 44|0);
+  $20 = HEAP32[$19>>2]|0;
+  $21 = ((($0)) + 48|0);
+  $22 = HEAP32[$21>>2]|0;
+  $23 = (($20) + ($22)|0);
+  $24 = ((($0)) + 8|0);
+  HEAP32[$24>>2] = $23;
+  $25 = ((($0)) + 4|0);
+  HEAP32[$25>>2] = $23;
+  $26 = $15 << 27;
+  $sext = $26 >> 31;
+  $$0 = $sext;
+ } else {
+  $18 = $15 | 32;
+  HEAP32[$0>>2] = $18;
+  $$0 = -1;
+ }
+ return ($$0|0);
+}
+function _isspace($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $narrow = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(32);
+ $2 = (($0) + -9)|0;
+ $3 = ($2>>>0)<(5);
+ $narrow = $1 | $3;
+ $4 = $narrow&1;
+ return ($4|0);
+}
+function ___shlim($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 
0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 104|0);
+ HEAP32[$2>>2] = $1;
+ $3 = ((($0)) + 8|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ((($0)) + 4|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = (($4) - ($6))|0;
+ $8 = ((($0)) + 108|0);
+ HEAP32[$8>>2] = $7;
+ $9 = ($1|0)!=(0);
+ $10 = ($7|0)>($1|0);
+ $or$cond = $9 & $10;
+ if ($or$cond) {
+  $11 = $6;
+  $12 = (($11) + ($1)|0);
+  $13 = ((($0)) + 100|0);
+  HEAP32[$13>>2] = $12;
+ } else {
+  $14 = ((($0)) + 100|0);
+  HEAP32[$14>>2] = $4;
+ }
+ return;
+}
+function ___shgetc($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$phi$trans$insert = 0, $$phi$trans$insert28 = 0, $$pre = 0, 
$$pre29 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 
= 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
+ var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, 
$30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 
0, $39 = 0, $4 = 0, $40 = 0;
+ var $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 104|0);
+ $2 = HEAP32[$1>>2]|0;
+ $3 = ($2|0)==(0);
+ if ($3) {
+  label = 3;
+ } else {
+  $4 = ((($0)) + 108|0);
+  $5 = HEAP32[$4>>2]|0;
+  $6 = ($5|0)<($2|0);
+  if ($6) {
+   label = 3;
+  } else {
+   label = 4;
+  }
+ }
+ if ((label|0) == 3) {
+  $7 = (___uflow($0)|0);
+  $8 = ($7|0)<(0);
+  if ($8) {
+   label = 4;
+  } else {
+   $10 = HEAP32[$1>>2]|0;
+   $11 = ($10|0)==(0);
+   $$phi$trans$insert = ((($0)) + 8|0);
+   $$pre = HEAP32[$$phi$trans$insert>>2]|0;
+   if ($11) {
+    $12 = $$pre;
+    $42 = $12;
+    label = 9;
+   } else {
+    $13 = ((($0)) + 4|0);
+    $14 = HEAP32[$13>>2]|0;
+    $15 = $14;
+    $16 = (($$pre) - ($15))|0;
+    $17 = ((($0)) + 108|0);
+    $18 = HEAP32[$17>>2]|0;
+    $19 = (($10) - ($18))|0;
+    $20 = ($16|0)<($19|0);
+    $21 = $$pre;
+    if ($20) {
+     $42 = $21;
+     label = 9;
+    } else {
+     $22 = (($19) + -1)|0;
+     $23 = (($14) + ($22)|0);
+     $24 = ((($0)) + 100|0);
+     HEAP32[$24>>2] = $23;
+     $27 = $21;
+    }
+   }
+   if ((label|0) == 9) {
+    $25 = ((($0)) + 100|0);
+    HEAP32[$25>>2] = $$pre;
+    $27 = $42;
+   }
+   $26 = ($27|0)==(0|0);
+   $$phi$trans$insert28 = ((($0)) + 4|0);
+   if ($26) {
+    $$pre29 = HEAP32[$$phi$trans$insert28>>2]|0;
+    $37 = $$pre29;
+   } else {
+    $28 = HEAP32[$$phi$trans$insert28>>2]|0;
+    $29 = $27;
+    $30 = ((($0)) + 108|0);
+    $31 = HEAP32[$30>>2]|0;
+    $32 = (($29) + 1)|0;
+    $33 = (($32) - ($28))|0;
+    $34 = (($33) + ($31))|0;
+    HEAP32[$30>>2] = $34;
+    $35 = $28;
+    $37 = $35;
+   }
+   $36 = ((($37)) + -1|0);
+   $38 = HEAP8[$36>>0]|0;
+   $39 = $38&255;
+   $40 = ($7|0)==($39|0);
+   if ($40) {
+    $$0 = $7;
+   } else {
+    $41 = $7&255;
+    HEAP8[$36>>0] = $41;
+    $$0 = $7;
+   }
+  }
+ }
+ if ((label|0) == 4) {
+  $9 = ((($0)) + 100|0);
+  HEAP32[$9>>2] = 0;
+  $$0 = -1;
+ }
+ return ($$0|0);
+}
+function _isdigit($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (($0) + -48)|0;
+ $2 = ($1>>>0)<(10);
+ $3 = $2&1;
+ return ($3|0);
+}
+function ___intscan($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0154215 = 0, $$0157 = 0, $$0159 = 0, $$1155184 = 0, $$1158 = 0, $$1160 
= 0, $$1160170 = 0, $$1165 = 0, $$1165168 = 0, $$1165169 = 0, $$2156202 = 0, 
$$3162208 = 0, $$4163$lcssa = 0, $$6$lcssa = 0, $$7190 = 0, $$8 = 0, 
$$pre$phi237Z2D = 0, $$pre$phi239Z2D = 0, $10 = 0, $100 = 0;
+ var $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;
+ var $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, $136 = 0, $137 = 0;
+ var $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 
= 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 
= 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0;
+ var $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 
= 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 
= 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0;
+ var $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 
= 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 
= 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0;
+ var $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, 
$199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, 
$206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0;
+ var $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, 
$217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, 
$224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0;
+ var $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 
= 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 
= 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0;
+ var $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 
= 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 
= 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0;
+ var $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;
+ var $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 
= 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 
= 0, $298 = 0, $30 = 0, $31 = 0, $32 = 0;
+ var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, 
$41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 
0, $5 = 0, $50 = 0, $51 = 0;
+ var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, 
$6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, 
$68 = 0, $69 = 0, $7 = 0;
+ var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, 
$78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, 
$86 = 0, $87 = 0, $88 = 0;
+ var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, 
$96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, $or$cond12 = 0, $or$cond179 = 
0, $or$cond5 = 0, $or$cond7 = 0, $spec$select166 = 0, $spec$select167 = 0, 
label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ $5 = ($1>>>0)>(36);
+ L1: do {
+  if ($5) {
+   $6 = (___errno_location()|0);
+   HEAP32[$6>>2] = 22;
+   $291 = 0;$292 = 0;
+  } else {
+   $7 = ((($0)) + 4|0);
+   $8 = ((($0)) + 100|0);
+   while(1) {
+    $9 = HEAP32[$7>>2]|0;
+    $10 = HEAP32[$8>>2]|0;
+    $11 = ($9>>>0)<($10>>>0);
+    if ($11) {
+     $12 = ((($9)) + 1|0);
+     HEAP32[$7>>2] = $12;
+     $13 = HEAP8[$9>>0]|0;
+     $14 = $13&255;
+     $16 = $14;
+    } else {
+     $15 = (___shgetc($0)|0);
+     $16 = $15;
+    }
+    $17 = (_isspace($16)|0);
+    $18 = ($17|0)==(0);
+    if ($18) {
+     break;
+    }
+   }
+   L11: do {
+    switch ($16|0) {
+    case 43: case 45:  {
+     $19 = ($16|0)==(45);
+     $20 = $19 << 31 >> 31;
+     $21 = HEAP32[$7>>2]|0;
+     $22 = HEAP32[$8>>2]|0;
+     $23 = ($21>>>0)<($22>>>0);
+     if ($23) {
+      $24 = ((($21)) + 1|0);
+      HEAP32[$7>>2] = $24;
+      $25 = HEAP8[$21>>0]|0;
+      $26 = $25&255;
+      $$0157 = $20;$$0159 = $26;
+      break L11;
+     } else {
+      $27 = (___shgetc($0)|0);
+      $$0157 = $20;$$0159 = $27;
+      break L11;
+     }
+     break;
+    }
+    default: {
+     $$0157 = 0;$$0159 = $16;
+    }
+    }
+   } while(0);
+   $28 = ($1|0)==(0);
+   $29 = $1 | 16;
+   $30 = ($29|0)==(16);
+   $31 = ($$0159|0)==(48);
+   $or$cond5 = $30 & $31;
+   do {
+    if ($or$cond5) {
+     $32 = HEAP32[$7>>2]|0;
+     $33 = HEAP32[$8>>2]|0;
+     $34 = ($32>>>0)<($33>>>0);
+     if ($34) {
+      $35 = ((($32)) + 1|0);
+      HEAP32[$7>>2] = $35;
+      $36 = HEAP8[$32>>0]|0;
+      $37 = $36&255;
+      $40 = $37;
+     } else {
+      $38 = (___shgetc($0)|0);
+      $40 = $38;
+     }
+     $39 = $40 | 32;
+     $41 = ($39|0)==(120);
+     if (!($41)) {
+      if ($28) {
+       $$1160170 = $40;$$1165168 = 8;
+       label = 47;
+       break;
+      } else {
+       $$1160 = $40;$$1165 = $1;
+       label = 32;
+       break;
+      }
+     }
+     $42 = HEAP32[$7>>2]|0;
+     $43 = HEAP32[$8>>2]|0;
+     $44 = ($42>>>0)<($43>>>0);
+     if ($44) {
+      $45 = ((($42)) + 1|0);
+      HEAP32[$7>>2] = $45;
+      $46 = HEAP8[$42>>0]|0;
+      $47 = $46&255;
+      $50 = $47;
+     } else {
+      $48 = (___shgetc($0)|0);
+      $50 = $48;
+     }
+     $49 = ((27681) + ($50)|0);
+     $51 = HEAP8[$49>>0]|0;
+     $52 = ($51&255)>(15);
+     if ($52) {
+      $53 = HEAP32[$8>>2]|0;
+      $54 = ($53|0)==(0|0);
+      if (!($54)) {
+       $55 = HEAP32[$7>>2]|0;
+       $56 = ((($55)) + -1|0);
+       HEAP32[$7>>2] = $56;
+      }
+      $57 = ($2|0)==(0);
+      if ($57) {
+       ___shlim($0,0);
+       $291 = 0;$292 = 0;
+       break L1;
+      }
+      if ($54) {
+       $291 = 0;$292 = 0;
+       break L1;
+      }
+      $58 = HEAP32[$7>>2]|0;
+      $59 = ((($58)) + -1|0);
+      HEAP32[$7>>2] = $59;
+      $291 = 0;$292 = 0;
+      break L1;
+     } else {
+      $$1160170 = $50;$$1165168 = 16;
+      label = 47;
+     }
+    } else {
+     $spec$select166 = $28 ? 10 : $1;
+     $60 = ((27681) + ($$0159)|0);
+     $61 = HEAP8[$60>>0]|0;
+     $62 = $61&255;
+     $63 = ($spec$select166>>>0)>($62>>>0);
+     if ($63) {
+      $$1160 = $$0159;$$1165 = $spec$select166;
+      label = 32;
+     } else {
+      $64 = HEAP32[$8>>2]|0;
+      $65 = ($64|0)==(0|0);
+      if (!($65)) {
+       $66 = HEAP32[$7>>2]|0;
+       $67 = ((($66)) + -1|0);
+       HEAP32[$7>>2] = $67;
+      }
+      ___shlim($0,0);
+      $68 = (___errno_location()|0);
+      HEAP32[$68>>2] = 22;
+      $291 = 0;$292 = 0;
+      break L1;
+     }
+    }
+   } while(0);
+   L43: do {
+    if ((label|0) == 32) {
+     $69 = ($$1165|0)==(10);
+     if ($69) {
+      $70 = (($$1160) + -48)|0;
+      $71 = ($70>>>0)<(10);
+      if ($71) {
+       $$0154215 = 0;$74 = $70;
+       while(1) {
+        $72 = ($$0154215*10)|0;
+        $73 = (($72) + ($74))|0;
+        $75 = HEAP32[$7>>2]|0;
+        $76 = HEAP32[$8>>2]|0;
+        $77 = ($75>>>0)<($76>>>0);
+        if ($77) {
+         $78 = ((($75)) + 1|0);
+         HEAP32[$7>>2] = $78;
+         $79 = HEAP8[$75>>0]|0;
+         $80 = $79&255;
+         $83 = $80;
+        } else {
+         $81 = (___shgetc($0)|0);
+         $83 = $81;
+        }
+        $82 = (($83) + -48)|0;
+        $84 = ($82>>>0)<(10);
+        $85 = ($73>>>0)<(429496729);
+        $86 = $84 & $85;
+        if ($86) {
+         $$0154215 = $73;$74 = $82;
+        } else {
+         break;
+        }
+       }
+       $87 = ($82>>>0)<(10);
+       if ($87) {
+        $$3162208 = $83;$88 = $73;$89 = 0;$93 = $82;
+        while(1) {
+         $90 = (___muldi3(($88|0),($89|0),10,0)|0);
+         $91 = tempRet0;
+         $92 = ($93|0)<(0);
+         $94 = $92 << 31 >> 31;
+         $95 = $93 ^ -1;
+         $96 = $94 ^ -1;
+         $97 = ($91>>>0)>($96>>>0);
+         $98 = ($90>>>0)>($95>>>0);
+         $99 = ($91|0)==($96|0);
+         $100 = $99 & $98;
+         $101 = $97 | $100;
+         if ($101) {
+          $$1165169 = 10;$$8 = $$3162208;$293 = $88;$294 = $89;
+          label = 76;
+          break L43;
+         }
+         $102 = (_i64Add(($90|0),($91|0),($93|0),($94|0))|0);
+         $103 = tempRet0;
+         $104 = HEAP32[$7>>2]|0;
+         $105 = HEAP32[$8>>2]|0;
+         $106 = ($104>>>0)<($105>>>0);
+         if ($106) {
+          $107 = ((($104)) + 1|0);
+          HEAP32[$7>>2] = $107;
+          $108 = HEAP8[$104>>0]|0;
+          $109 = $108&255;
+          $112 = $109;
+         } else {
+          $110 = (___shgetc($0)|0);
+          $112 = $110;
+         }
+         $111 = (($112) + -48)|0;
+         $113 = ($111>>>0)<(10);
+         $114 = ($103>>>0)<(429496729);
+         $115 = ($102>>>0)<(2576980378);
+         $116 = ($103|0)==(429496729);
+         $117 = $116 & $115;
+         $118 = $114 | $117;
+         $or$cond7 = $113 & $118;
+         if ($or$cond7) {
+          $$3162208 = $112;$88 = $102;$89 = $103;$93 = $111;
+         } else {
+          break;
+         }
+        }
+        $119 = ($111>>>0)>(9);
+        if ($119) {
+         $$1158 = $$0157;$265 = $103;$267 = $102;
+        } else {
+         $$1165169 = 10;$$8 = $112;$293 = $102;$294 = $103;
+         label = 76;
+        }
+       } else {
+        $$1158 = $$0157;$265 = 0;$267 = $73;
+       }
+      } else {
+       $$1158 = $$0157;$265 = 0;$267 = 0;
+      }
+     } else {
+      $$1160170 = $$1160;$$1165168 = $$1165;
+      label = 47;
+     }
+    }
+   } while(0);
+   L63: do {
+    if ((label|0) == 47) {
+     $120 = (($$1165168) + -1)|0;
+     $121 = $120 & $$1165168;
+     $122 = ($121|0)==(0);
+     if ($122) {
+      $123 = ($$1165168*23)|0;
+      $124 = $123 >>> 5;
+      $125 = $124 & 7;
+      $126 = (70604 + ($125)|0);
+      $127 = HEAP8[$126>>0]|0;
+      $128 = $127 << 24 >> 24;
+      $129 = ((27681) + ($$1160170)|0);
+      $130 = HEAP8[$129>>0]|0;
+      $131 = $130&255;
+      $132 = ($$1165168>>>0)>($131>>>0);
+      if ($132) {
+       $$1155184 = 0;$135 = $131;
+       while(1) {
+        $133 = $$1155184 << $128;
+        $134 = $135 | $133;
+        $136 = HEAP32[$7>>2]|0;
+        $137 = HEAP32[$8>>2]|0;
+        $138 = ($136>>>0)<($137>>>0);
+        if ($138) {
+         $139 = ((($136)) + 1|0);
+         HEAP32[$7>>2] = $139;
+         $140 = HEAP8[$136>>0]|0;
+         $141 = $140&255;
+         $144 = $141;
+        } else {
+         $142 = (___shgetc($0)|0);
+         $144 = $142;
+        }
+        $143 = ((27681) + ($144)|0);
+        $145 = HEAP8[$143>>0]|0;
+        $146 = $145&255;
+        $147 = ($$1165168>>>0)>($146>>>0);
+        $148 = ($134>>>0)<(134217728);
+        $149 = $148 & $147;
+        if ($149) {
+         $$1155184 = $134;$135 = $146;
+        } else {
+         break;
+        }
+       }
+       $$4163$lcssa = $144;$$pre$phi237Z2D = $146;$154 = 0;$156 = $134;$295 = 
$145;
+      } else {
+       $$4163$lcssa = $$1160170;$$pre$phi237Z2D = $131;$154 = 0;$156 = 0;$295 
= $130;
+      }
+      $150 = (_bitshift64Lshr(-1,-1,($128|0))|0);
+      $151 = tempRet0;
+      $152 = ($$1165168>>>0)<=($$pre$phi237Z2D>>>0);
+      $153 = ($151>>>0)<($154>>>0);
+      $155 = ($150>>>0)<($156>>>0);
+      $157 = ($151|0)==($154|0);
+      $158 = $157 & $155;
+      $159 = $153 | $158;
+      $or$cond179 = $152 | $159;
+      if ($or$cond179) {
+       $$1165169 = $$1165168;$$8 = $$4163$lcssa;$293 = $156;$294 = $154;
+       label = 76;
+       break;
+      }
+      $160 = $156;$161 = $154;$165 = $295;
+      while(1) {
+       $162 = (_bitshift64Shl(($160|0),($161|0),($128|0))|0);
+       $163 = tempRet0;
+       $164 = $165&255;
+       $166 = $162 | $164;
+       $167 = HEAP32[$7>>2]|0;
+       $168 = HEAP32[$8>>2]|0;
+       $169 = ($167>>>0)<($168>>>0);
+       if ($169) {
+        $170 = ((($167)) + 1|0);
+        HEAP32[$7>>2] = $170;
+        $171 = HEAP8[$167>>0]|0;
+        $172 = $171&255;
+        $175 = $172;
+       } else {
+        $173 = (___shgetc($0)|0);
+        $175 = $173;
+       }
+       $174 = ((27681) + ($175)|0);
+       $176 = HEAP8[$174>>0]|0;
+       $177 = $176&255;
+       $178 = ($$1165168>>>0)<=($177>>>0);
+       $179 = ($163>>>0)>($151>>>0);
+       $180 = ($166>>>0)>($150>>>0);
+       $181 = ($163|0)==($151|0);
+       $182 = $181 & $180;
+       $183 = $179 | $182;
+       $or$cond = $178 | $183;
+       if ($or$cond) {
+        $$1165169 = $$1165168;$$8 = $175;$293 = $166;$294 = $163;
+        label = 76;
+        break L63;
+       } else {
+        $160 = $166;$161 = $163;$165 = $176;
+       }
+      }
+     }
+     $184 = ((27681) + ($$1160170)|0);
+     $185 = HEAP8[$184>>0]|0;
+     $186 = $185&255;
+     $187 = ($$1165168>>>0)>($186>>>0);
+     if ($187) {
+      $$2156202 = 0;$190 = $186;
+      while(1) {
+       $188 = Math_imul($$2156202, $$1165168)|0;
+       $189 = (($190) + ($188))|0;
+       $191 = HEAP32[$7>>2]|0;
+       $192 = HEAP32[$8>>2]|0;
+       $193 = ($191>>>0)<($192>>>0);
+       if ($193) {
+        $194 = ((($191)) + 1|0);
+        HEAP32[$7>>2] = $194;
+        $195 = HEAP8[$191>>0]|0;
+        $196 = $195&255;
+        $199 = $196;
+       } else {
+        $197 = (___shgetc($0)|0);
+        $199 = $197;
+       }
+       $198 = ((27681) + ($199)|0);
+       $200 = HEAP8[$198>>0]|0;
+       $201 = $200&255;
+       $202 = ($$1165168>>>0)>($201>>>0);
+       $203 = ($189>>>0)<(119304647);
+       $204 = $203 & $202;
+       if ($204) {
+        $$2156202 = $189;$190 = $201;
+       } else {
+        break;
+       }
+      }
+      $$6$lcssa = $199;$$pre$phi239Z2D = $201;$296 = $200;$297 = $189;$298 = 0;
+     } else {
+      $$6$lcssa = $$1160170;$$pre$phi239Z2D = $186;$296 = $185;$297 = 0;$298 = 
0;
+     }
+     $205 = ($$1165168>>>0)>($$pre$phi239Z2D>>>0);
+     if ($205) {
+      $206 = (___udivdi3(-1,-1,($$1165168|0),0)|0);
+      $207 = tempRet0;
+      $$7190 = $$6$lcssa;$209 = $298;$211 = $297;$218 = $296;
+      while(1) {
+       $208 = ($209>>>0)>($207>>>0);
+       $210 = ($211>>>0)>($206>>>0);
+       $212 = ($209|0)==($207|0);
+       $213 = $212 & $210;
+       $214 = $208 | $213;
+       if ($214) {
+        $$1165169 = $$1165168;$$8 = $$7190;$293 = $211;$294 = $209;
+        label = 76;
+        break L63;
+       }
+       $215 = (___muldi3(($211|0),($209|0),($$1165168|0),0)|0);
+       $216 = tempRet0;
+       $217 = $218&255;
+       $219 = $217 ^ -1;
+       $220 = ($216>>>0)>(4294967295);
+       $221 = ($215>>>0)>($219>>>0);
+       $222 = ($216|0)==(-1);
+       $223 = $222 & $221;
+       $224 = $220 | $223;
+       if ($224) {
+        $$1165169 = $$1165168;$$8 = $$7190;$293 = $211;$294 = $209;
+        label = 76;
+        break L63;
+       }
+       $225 = (_i64Add(($215|0),($216|0),($217|0),0)|0);
+       $226 = tempRet0;
+       $227 = HEAP32[$7>>2]|0;
+       $228 = HEAP32[$8>>2]|0;
+       $229 = ($227>>>0)<($228>>>0);
+       if ($229) {
+        $230 = ((($227)) + 1|0);
+        HEAP32[$7>>2] = $230;
+        $231 = HEAP8[$227>>0]|0;
+        $232 = $231&255;
+        $235 = $232;
+       } else {
+        $233 = (___shgetc($0)|0);
+        $235 = $233;
+       }
+       $234 = ((27681) + ($235)|0);
+       $236 = HEAP8[$234>>0]|0;
+       $237 = $236&255;
+       $238 = ($$1165168>>>0)>($237>>>0);
+       if ($238) {
+        $$7190 = $235;$209 = $226;$211 = $225;$218 = $236;
+       } else {
+        $$1165169 = $$1165168;$$8 = $235;$293 = $225;$294 = $226;
+        label = 76;
+        break;
+       }
+      }
+     } else {
+      $$1165169 = $$1165168;$$8 = $$6$lcssa;$293 = $297;$294 = $298;
+      label = 76;
+     }
+    }
+   } while(0);
+   if ((label|0) == 76) {
+    $239 = ((27681) + ($$8)|0);
+    $240 = HEAP8[$239>>0]|0;
+    $241 = $240&255;
+    $242 = ($$1165169>>>0)>($241>>>0);
+    if ($242) {
+     while(1) {
+      $243 = HEAP32[$7>>2]|0;
+      $244 = HEAP32[$8>>2]|0;
+      $245 = ($243>>>0)<($244>>>0);
+      if ($245) {
+       $246 = ((($243)) + 1|0);
+       HEAP32[$7>>2] = $246;
+       $247 = HEAP8[$243>>0]|0;
+       $248 = $247&255;
+       $251 = $248;
+      } else {
+       $249 = (___shgetc($0)|0);
+       $251 = $249;
+      }
+      $250 = ((27681) + ($251)|0);
+      $252 = HEAP8[$250>>0]|0;
+      $253 = $252&255;
+      $254 = ($$1165169>>>0)>($253>>>0);
+      if (!($254)) {
+       break;
+      }
+     }
+     $255 = (___errno_location()|0);
+     HEAP32[$255>>2] = 34;
+     $256 = $3 & 1;
+     $257 = ($256|0)==(0);
+     $258 = (0)==(0);
+     $259 = $257 & $258;
+     $spec$select167 = $259 ? $$0157 : 0;
+     $$1158 = $spec$select167;$265 = $4;$267 = $3;
+    } else {
+     $$1158 = $$0157;$265 = $294;$267 = $293;
+    }
+   }
+   $260 = HEAP32[$8>>2]|0;
+   $261 = ($260|0)==(0|0);
+   if (!($261)) {
+    $262 = HEAP32[$7>>2]|0;
+    $263 = ((($262)) + -1|0);
+    HEAP32[$7>>2] = $263;
+   }
+   $264 = ($265>>>0)<($4>>>0);
+   $266 = ($267>>>0)<($3>>>0);
+   $268 = ($265|0)==($4|0);
+   $269 = $268 & $266;
+   $270 = $264 | $269;
+   if (!($270)) {
+    $271 = $3 & 1;
+    $272 = ($271|0)!=(0);
+    $273 = (0)!=(0);
+    $274 = $272 | $273;
+    $275 = ($$1158|0)!=(0);
+    $or$cond12 = $274 | $275;
+    if (!($or$cond12)) {
+     $276 = (___errno_location()|0);
+     HEAP32[$276>>2] = 34;
+     $277 = (_i64Add(($3|0),($4|0),-1,-1)|0);
+     $278 = tempRet0;
+     $291 = $278;$292 = $277;
+     break;
+    }
+    $279 = ($265>>>0)>($4>>>0);
+    $280 = ($267>>>0)>($3>>>0);
+    $281 = ($265|0)==($4|0);
+    $282 = $281 & $280;
+    $283 = $279 | $282;
+    if ($283) {
+     $284 = (___errno_location()|0);
+     HEAP32[$284>>2] = 34;
+     $291 = $4;$292 = $3;
+     break;
+    }
+   }
+   $285 = ($$1158|0)<(0);
+   $286 = $285 << 31 >> 31;
+   $287 = $267 ^ $$1158;
+   $288 = $265 ^ $286;
+   $289 = (_i64Subtract(($287|0),($288|0),($$1158|0),($286|0))|0);
+   $290 = tempRet0;
+   $291 = $290;$292 = $289;
+  }
+ } while(0);
+ tempRet0 = ($291);
+ return ($292|0);
+}
+function _pthread_self() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return (40680|0);
+}
+function ___uflow($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, 
$9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $1 = sp;
+ $2 = (___toread($0)|0);
+ $3 = ($2|0)==(0);
+ if ($3) {
+  $4 = ((($0)) + 32|0);
+  $5 = HEAP32[$4>>2]|0;
+  $6 = (FUNCTION_TABLE_iiii[$5 & 127]($0,$1,1)|0);
+  $7 = ($6|0)==(1);
+  if ($7) {
+   $8 = HEAP8[$1>>0]|0;
+   $9 = $8&255;
+   $$0 = $9;
+  } else {
+   $$0 = -1;
+  }
+ } else {
+  $$0 = -1;
+ }
+ STACKTOP = sp;return ($$0|0);
+}
+function _fclose($0) {
+ $0 = $0|0;
+ var $$pre = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, 
$24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 
0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 76|0);
+ $2 = HEAP32[$1>>2]|0;
+ $3 = ($2|0)>(-1);
+ if ($3) {
+  $4 = (___lockfile($0)|0);
+  $30 = $4;
+ } else {
+  $30 = 0;
+ }
+ ___unlist_locked_file($0);
+ $5 = HEAP32[$0>>2]|0;
+ $6 = $5 & 1;
+ $7 = ($6|0)!=(0);
+ if (!($7)) {
+  $8 = (___ofl_lock()|0);
+  $9 = ((($0)) + 52|0);
+  $10 = HEAP32[$9>>2]|0;
+  $11 = ($10|0)==(0|0);
+  $12 = $10;
+  $$pre = ((($0)) + 56|0);
+  if (!($11)) {
+   $13 = HEAP32[$$pre>>2]|0;
+   $14 = ((($10)) + 56|0);
+   HEAP32[$14>>2] = $13;
+  }
+  $15 = HEAP32[$$pre>>2]|0;
+  $16 = ($15|0)==(0|0);
+  $17 = $15;
+  if (!($16)) {
+   $18 = ((($15)) + 52|0);
+   HEAP32[$18>>2] = $12;
+  }
+  $19 = HEAP32[$8>>2]|0;
+  $20 = ($19|0)==($0|0);
+  if ($20) {
+   HEAP32[$8>>2] = $17;
+  }
+  ___ofl_unlock();
+ }
+ $21 = (_fflush($0)|0);
+ $22 = ((($0)) + 12|0);
+ $23 = HEAP32[$22>>2]|0;
+ $24 = (FUNCTION_TABLE_ii[$23 & 63]($0)|0);
+ $25 = $24 | $21;
+ $26 = ((($0)) + 92|0);
+ $27 = HEAP32[$26>>2]|0;
+ $28 = ($27|0)==(0|0);
+ if (!($28)) {
+  _free($27);
+ }
+ if ($7) {
+  $29 = ($30|0)==(0);
+  if (!($29)) {
+   ___unlockfile($0);
+  }
+ } else {
+  _free($0);
+ }
+ return ($25|0);
+}
+function ___unlist_locked_file($0) {
+ $0 = $0|0;
+ var $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 
0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, 
sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 68|0);
+ $2 = HEAP32[$1>>2]|0;
+ $3 = ($2|0)==(0);
+ if (!($3)) {
+  $4 = ((($0)) + 116|0);
+  $5 = HEAP32[$4>>2]|0;
+  $6 = ($5|0)==(0|0);
+  $7 = $5;
+  $$pre = ((($0)) + 112|0);
+  if (!($6)) {
+   $8 = HEAP32[$$pre>>2]|0;
+   $9 = ((($5)) + 112|0);
+   HEAP32[$9>>2] = $8;
+  }
+  $10 = HEAP32[$$pre>>2]|0;
+  $11 = ($10|0)==(0|0);
+  if ($11) {
+   $13 = (___pthread_self_41()|0);
+   $14 = ((($13)) + 232|0);
+   $$sink = $14;
+  } else {
+   $12 = ((($10)) + 116|0);
+   $$sink = $12;
+  }
+  HEAP32[$$sink>>2] = $7;
+ }
+ return;
+}
+function ___ofl_lock() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ ___lock((73276|0));
+ return (73284|0);
+}
+function ___ofl_unlock() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ ___unlock((73276|0));
+ return;
+}
+function _fflush($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$023 = 0, $$02325 = 0, $$02327 = 0, $$024$lcssa = 0, $$02426 = 
0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 
0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0;
+ var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, 
$29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0|0);
+ do {
+  if ($1) {
+   $8 = HEAP32[10137]|0;
+   $9 = ($8|0)==(0|0);
+   if ($9) {
+    $29 = 0;
+   } else {
+    $10 = HEAP32[10137]|0;
+    $11 = (_fflush($10)|0);
+    $29 = $11;
+   }
+   $12 = (___ofl_lock()|0);
+   $$02325 = HEAP32[$12>>2]|0;
+   $13 = ($$02325|0)==(0|0);
+   if ($13) {
+    $$024$lcssa = $29;
+   } else {
+    $$02327 = $$02325;$$02426 = $29;
+    while(1) {
+     $14 = ((($$02327)) + 76|0);
+     $15 = HEAP32[$14>>2]|0;
+     $16 = ($15|0)>(-1);
+     if ($16) {
+      $17 = (___lockfile($$02327)|0);
+      $26 = $17;
+     } else {
+      $26 = 0;
+     }
+     $18 = ((($$02327)) + 20|0);
+     $19 = HEAP32[$18>>2]|0;
+     $20 = ((($$02327)) + 28|0);
+     $21 = HEAP32[$20>>2]|0;
+     $22 = ($19>>>0)>($21>>>0);
+     if ($22) {
+      $23 = (___fflush_unlocked($$02327)|0);
+      $24 = $23 | $$02426;
+      $$1 = $24;
+     } else {
+      $$1 = $$02426;
+     }
+     $25 = ($26|0)==(0);
+     if (!($25)) {
+      ___unlockfile($$02327);
+     }
+     $27 = ((($$02327)) + 56|0);
+     $$023 = HEAP32[$27>>2]|0;
+     $28 = ($$023|0)==(0|0);
+     if ($28) {
+      $$024$lcssa = $$1;
+      break;
+     } else {
+      $$02327 = $$023;$$02426 = $$1;
+     }
+    }
+   }
+   ___ofl_unlock();
+   $$0 = $$024$lcssa;
+  } else {
+   $2 = ((($0)) + 76|0);
+   $3 = HEAP32[$2>>2]|0;
+   $4 = ($3|0)>(-1);
+   if (!($4)) {
+    $5 = (___fflush_unlocked($0)|0);
+    $$0 = $5;
+    break;
+   }
+   $6 = (___lockfile($0)|0);
+   $phitmp = ($6|0)==(0);
+   $7 = (___fflush_unlocked($0)|0);
+   if ($phitmp) {
+    $$0 = $7;
+   } else {
+    ___unlockfile($0);
+    $$0 = $7;
+   }
+  }
+ } while(0);
+ return ($$0|0);
+}
+function ___fflush_unlocked($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 
= 0, $7 = 0, $8 = 0;
+ var $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 20|0);
+ $2 = HEAP32[$1>>2]|0;
+ $3 = ((($0)) + 28|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ($2>>>0)>($4>>>0);
+ if ($5) {
+  $6 = ((($0)) + 36|0);
+  $7 = HEAP32[$6>>2]|0;
+  (FUNCTION_TABLE_iiii[$7 & 127]($0,0,0)|0);
+  $8 = HEAP32[$1>>2]|0;
+  $9 = ($8|0)==(0|0);
+  if ($9) {
+   $$0 = -1;
+  } else {
+   label = 3;
+  }
+ } else {
+  label = 3;
+ }
+ if ((label|0) == 3) {
+  $10 = ((($0)) + 4|0);
+  $11 = HEAP32[$10>>2]|0;
+  $12 = ((($0)) + 8|0);
+  $13 = HEAP32[$12>>2]|0;
+  $14 = ($11>>>0)<($13>>>0);
+  if ($14) {
+   $15 = $11;
+   $16 = $13;
+   $17 = (($15) - ($16))|0;
+   $18 = ((($0)) + 40|0);
+   $19 = HEAP32[$18>>2]|0;
+   (FUNCTION_TABLE_iiii[$19 & 127]($0,$17,1)|0);
+  }
+  $20 = ((($0)) + 16|0);
+  HEAP32[$20>>2] = 0;
+  HEAP32[$3>>2] = 0;
+  HEAP32[$1>>2] = 0;
+  HEAP32[$12>>2] = 0;
+  HEAP32[$10>>2] = 0;
+  $$0 = 0;
+ }
+ return ($$0|0);
+}
+function ___pthread_self_41() {
+ var $0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = (_pthread_self()|0);
+ return ($0|0);
+}
+function _wctomb($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($0|0)==(0|0);
+ if ($2) {
+  $$0 = 0;
+ } else {
+  $3 = (_wcrtomb($0,$1,0)|0);
+  $$0 = $3;
+ }
+ return ($$0|0);
+}
+function _wcrtomb($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $45 = 0, $46 = 0;
+ var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0, $57 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ($0|0)==(0|0);
+ do {
+  if ($3) {
+   $$0 = 1;
+  } else {
+   $4 = ($1>>>0)<(128);
+   if ($4) {
+    $5 = $1&255;
+    HEAP8[$0>>0] = $5;
+    $$0 = 1;
+    break;
+   }
+   $6 = (___pthread_self_436()|0);
+   $7 = ((($6)) + 188|0);
+   $8 = HEAP32[$7>>2]|0;
+   $9 = HEAP32[$8>>2]|0;
+   $10 = ($9|0)==(0|0);
+   if ($10) {
+    $11 = $1 & -128;
+    $12 = ($11|0)==(57216);
+    if ($12) {
+     $14 = $1&255;
+     HEAP8[$0>>0] = $14;
+     $$0 = 1;
+     break;
+    } else {
+     $13 = (___errno_location()|0);
+     HEAP32[$13>>2] = 84;
+     $$0 = -1;
+     break;
+    }
+   }
+   $15 = ($1>>>0)<(2048);
+   if ($15) {
+    $16 = $1 >>> 6;
+    $17 = $16 | 192;
+    $18 = $17&255;
+    $19 = ((($0)) + 1|0);
+    HEAP8[$0>>0] = $18;
+    $20 = $1 & 63;
+    $21 = $20 | 128;
+    $22 = $21&255;
+    HEAP8[$19>>0] = $22;
+    $$0 = 2;
+    break;
+   }
+   $23 = ($1>>>0)<(55296);
+   $24 = $1 & -8192;
+   $25 = ($24|0)==(57344);
+   $or$cond = $23 | $25;
+   if ($or$cond) {
+    $26 = $1 >>> 12;
+    $27 = $26 | 224;
+    $28 = $27&255;
+    $29 = ((($0)) + 1|0);
+    HEAP8[$0>>0] = $28;
+    $30 = $1 >>> 6;
+    $31 = $30 & 63;
+    $32 = $31 | 128;
+    $33 = $32&255;
+    $34 = ((($0)) + 2|0);
+    HEAP8[$29>>0] = $33;
+    $35 = $1 & 63;
+    $36 = $35 | 128;
+    $37 = $36&255;
+    HEAP8[$34>>0] = $37;
+    $$0 = 3;
+    break;
+   }
+   $38 = (($1) + -65536)|0;
+   $39 = ($38>>>0)<(1048576);
+   if ($39) {
+    $40 = $1 >>> 18;
+    $41 = $40 | 240;
+    $42 = $41&255;
+    $43 = ((($0)) + 1|0);
+    HEAP8[$0>>0] = $42;
+    $44 = $1 >>> 12;
+    $45 = $44 & 63;
+    $46 = $45 | 128;
+    $47 = $46&255;
+    $48 = ((($0)) + 2|0);
+    HEAP8[$43>>0] = $47;
+    $49 = $1 >>> 6;
+    $50 = $49 & 63;
+    $51 = $50 | 128;
+    $52 = $51&255;
+    $53 = ((($0)) + 3|0);
+    HEAP8[$48>>0] = $52;
+    $54 = $1 & 63;
+    $55 = $54 | 128;
+    $56 = $55&255;
+    HEAP8[$53>>0] = $56;
+    $$0 = 4;
+    break;
+   } else {
+    $57 = (___errno_location()|0);
+    HEAP32[$57>>2] = 84;
+    $$0 = -1;
+    break;
+   }
+  }
+ } while(0);
+ return ($$0|0);
+}
+function ___pthread_self_436() {
+ var $0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = (_pthread_self()|0);
+ return ($0|0);
+}
+function _memchr($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0$lcssa = 0, $$035$lcssa = 0, $$035$lcssa65 = 0, $$03555 = 0, 
$$036$lcssa = 0, $$036$lcssa64 = 0, $$03654 = 0, $$046 = 0, $$137$lcssa = 0, 
$$137$lcssa66 = 0, $$13745 = 0, $$140 = 0, $$23839 = 0, $$in = 0, $$lcssa = 0, 
$10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0;
+ var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, 
$23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, 
$31 = 0, $32 = 0, $33 = 0;
+ var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 
= 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond53 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = $1 & 255;
+ $4 = $0;
+ $5 = $4 & 3;
+ $6 = ($5|0)!=(0);
+ $7 = ($2|0)!=(0);
+ $or$cond53 = $7 & $6;
+ L1: do {
+  if ($or$cond53) {
+   $8 = $1&255;
+   $$03555 = $0;$$03654 = $2;
+   while(1) {
+    $9 = HEAP8[$$03555>>0]|0;
+    $10 = ($9<<24>>24)==($8<<24>>24);
+    if ($10) {
+     $$035$lcssa65 = $$03555;$$036$lcssa64 = $$03654;
+     label = 6;
+     break L1;
+    }
+    $11 = ((($$03555)) + 1|0);
+    $12 = (($$03654) + -1)|0;
+    $13 = $11;
+    $14 = $13 & 3;
+    $15 = ($14|0)!=(0);
+    $16 = ($12|0)!=(0);
+    $or$cond = $16 & $15;
+    if ($or$cond) {
+     $$03555 = $11;$$03654 = $12;
+    } else {
+     $$035$lcssa = $11;$$036$lcssa = $12;$$lcssa = $16;
+     label = 5;
+     break;
+    }
+   }
+  } else {
+   $$035$lcssa = $0;$$036$lcssa = $2;$$lcssa = $7;
+   label = 5;
+  }
+ } while(0);
+ if ((label|0) == 5) {
+  if ($$lcssa) {
+   $$035$lcssa65 = $$035$lcssa;$$036$lcssa64 = $$036$lcssa;
+   label = 6;
+  } else {
+   label = 16;
+  }
+ }
+ L8: do {
+  if ((label|0) == 6) {
+   $17 = HEAP8[$$035$lcssa65>>0]|0;
+   $18 = $1&255;
+   $19 = ($17<<24>>24)==($18<<24>>24);
+   if ($19) {
+    $38 = ($$036$lcssa64|0)==(0);
+    if ($38) {
+     label = 16;
+     break;
+    } else {
+     $39 = $$035$lcssa65;
+     break;
+    }
+   }
+   $20 = Math_imul($3, 16843009)|0;
+   $21 = ($$036$lcssa64>>>0)>(3);
+   L13: do {
+    if ($21) {
+     $$046 = $$035$lcssa65;$$13745 = $$036$lcssa64;
+     while(1) {
+      $22 = HEAP32[$$046>>2]|0;
+      $23 = $22 ^ $20;
+      $24 = (($23) + -16843009)|0;
+      $25 = $23 & -2139062144;
+      $26 = $25 ^ -2139062144;
+      $27 = $26 & $24;
+      $28 = ($27|0)==(0);
+      if (!($28)) {
+       $$137$lcssa66 = $$13745;$$in = $$046;
+       break L13;
+      }
+      $29 = ((($$046)) + 4|0);
+      $30 = (($$13745) + -4)|0;
+      $31 = ($30>>>0)>(3);
+      if ($31) {
+       $$046 = $29;$$13745 = $30;
+      } else {
+       $$0$lcssa = $29;$$137$lcssa = $30;
+       label = 11;
+       break;
+      }
+     }
+    } else {
+     $$0$lcssa = $$035$lcssa65;$$137$lcssa = $$036$lcssa64;
+     label = 11;
+    }
+   } while(0);
+   if ((label|0) == 11) {
+    $32 = ($$137$lcssa|0)==(0);
+    if ($32) {
+     label = 16;
+     break;
+    } else {
+     $$137$lcssa66 = $$137$lcssa;$$in = $$0$lcssa;
+    }
+   }
+   $$140 = $$in;$$23839 = $$137$lcssa66;
+   while(1) {
+    $33 = HEAP8[$$140>>0]|0;
+    $34 = ($33<<24>>24)==($18<<24>>24);
+    if ($34) {
+     $39 = $$140;
+     break L8;
+    }
+    $35 = ((($$140)) + 1|0);
+    $36 = (($$23839) + -1)|0;
+    $37 = ($36|0)==(0);
+    if ($37) {
+     label = 16;
+     break;
+    } else {
+     $$140 = $35;$$23839 = $36;
+    }
+   }
+  }
+ } while(0);
+ if ((label|0) == 16) {
+  $39 = 0;
+ }
+ return ($39|0);
+}
+function _iswspace($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $phitmp = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(0);
+ if ($1) {
+  $4 = 0;
+ } else {
+  $2 = (_wcschr(30336,$0)|0);
+  $3 = ($2|0)!=(0|0);
+  $phitmp = $3&1;
+  $4 = $phitmp;
+ }
+ return ($4|0);
+}
+function _iswdigit($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (($0) + -48)|0;
+ $2 = ($1>>>0)<(10);
+ $3 = $2&1;
+ return ($3|0);
+}
+function _snprintf($0,$1,$2,$varargs) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $varargs = $varargs|0;
+ var $3 = 0, $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $3 = sp;
+ HEAP32[$3>>2] = $varargs;
+ $4 = (_vsnprintf($0,$1,$2,$3)|0);
+ STACKTOP = sp;return ($4|0);
+}
+function _vsnprintf($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $$014 = 0, $$015 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 
0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 
= 0, $24 = 0, $25 = 0, $4 = 0;
+ var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, dest = 0, label 
= 0, sp = 0, src = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(128|0);
+ $4 = sp + 124|0;
+ $5 = sp;
+ dest=$5; src=40924; stop=dest+124|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; 
dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ $6 = (($1) + -1)|0;
+ $7 = ($6>>>0)>(2147483646);
+ if ($7) {
+  $8 = ($1|0)==(0);
+  if ($8) {
+   $$014 = $4;$$015 = 1;
+   label = 4;
+  } else {
+   $9 = (___errno_location()|0);
+   HEAP32[$9>>2] = 75;
+   $$0 = -1;
+  }
+ } else {
+  $$014 = $0;$$015 = $1;
+  label = 4;
+ }
+ if ((label|0) == 4) {
+  $10 = $$014;
+  $11 = (-2 - ($10))|0;
+  $12 = ($$015>>>0)>($11>>>0);
+  $spec$select = $12 ? $11 : $$015;
+  $13 = ((($5)) + 48|0);
+  HEAP32[$13>>2] = $spec$select;
+  $14 = ((($5)) + 20|0);
+  HEAP32[$14>>2] = $$014;
+  $15 = ((($5)) + 44|0);
+  HEAP32[$15>>2] = $$014;
+  $16 = (($$014) + ($spec$select)|0);
+  $17 = ((($5)) + 16|0);
+  HEAP32[$17>>2] = $16;
+  $18 = ((($5)) + 28|0);
+  HEAP32[$18>>2] = $16;
+  $19 = (_vfprintf($5,$2,$3)|0);
+  $20 = ($spec$select|0)==(0);
+  if ($20) {
+   $$0 = $19;
+  } else {
+   $21 = HEAP32[$14>>2]|0;
+   $22 = HEAP32[$17>>2]|0;
+   $23 = ($21|0)==($22|0);
+   $24 = $23 << 31 >> 31;
+   $25 = (($21) + ($24)|0);
+   HEAP8[$25>>0] = 0;
+   $$0 = $19;
+  }
+ }
+ STACKTOP = sp;return ($$0|0);
+}
+function _vfprintf($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 
0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, 
$7 = 0, $8 = 0, $9 = 0;
+ var $spec$select = 0, $spec$select41 = 0, $vacopy_currentptr = 0, dest = 0, 
label = 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(224|0);
+ $3 = sp + 208|0;
+ $4 = sp + 160|0;
+ $5 = sp + 80|0;
+ $6 = sp;
+ dest=$4; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while 
((dest|0) < (stop|0));
+ $vacopy_currentptr = HEAP32[$2>>2]|0;
+ HEAP32[$3>>2] = $vacopy_currentptr;
+ $7 = (_printf_core(0,$1,$3,$5,$4)|0);
+ $8 = ($7|0)<(0);
+ if ($8) {
+  $$0 = -1;
+ } else {
+  $9 = ((($0)) + 76|0);
+  $10 = HEAP32[$9>>2]|0;
+  $11 = ($10|0)>(-1);
+  if ($11) {
+   $12 = (___lockfile($0)|0);
+   $40 = $12;
+  } else {
+   $40 = 0;
+  }
+  $13 = HEAP32[$0>>2]|0;
+  $14 = $13 & 32;
+  $15 = ((($0)) + 74|0);
+  $16 = HEAP8[$15>>0]|0;
+  $17 = ($16<<24>>24)<(1);
+  if ($17) {
+   $18 = $13 & -33;
+   HEAP32[$0>>2] = $18;
+  }
+  $19 = ((($0)) + 48|0);
+  $20 = HEAP32[$19>>2]|0;
+  $21 = ($20|0)==(0);
+  if ($21) {
+   $23 = ((($0)) + 44|0);
+   $24 = HEAP32[$23>>2]|0;
+   HEAP32[$23>>2] = $6;
+   $25 = ((($0)) + 28|0);
+   HEAP32[$25>>2] = $6;
+   $26 = ((($0)) + 20|0);
+   HEAP32[$26>>2] = $6;
+   HEAP32[$19>>2] = 80;
+   $27 = ((($6)) + 80|0);
+   $28 = ((($0)) + 16|0);
+   HEAP32[$28>>2] = $27;
+   $29 = (_printf_core($0,$1,$3,$5,$4)|0);
+   $30 = ($24|0)==(0|0);
+   if ($30) {
+    $$1 = $29;
+   } else {
+    $31 = ((($0)) + 36|0);
+    $32 = HEAP32[$31>>2]|0;
+    (FUNCTION_TABLE_iiii[$32 & 127]($0,0,0)|0);
+    $33 = HEAP32[$26>>2]|0;
+    $34 = ($33|0)==(0|0);
+    $spec$select = $34 ? -1 : $29;
+    HEAP32[$23>>2] = $24;
+    HEAP32[$19>>2] = 0;
+    HEAP32[$28>>2] = 0;
+    HEAP32[$25>>2] = 0;
+    HEAP32[$26>>2] = 0;
+    $$1 = $spec$select;
+   }
+  } else {
+   $22 = (_printf_core($0,$1,$3,$5,$4)|0);
+   $$1 = $22;
+  }
+  $35 = HEAP32[$0>>2]|0;
+  $36 = $35 & 32;
+  $37 = ($36|0)==(0);
+  $spec$select41 = $37 ? $$1 : -1;
+  $38 = $35 | $14;
+  HEAP32[$0>>2] = $38;
+  $39 = ($40|0)==(0);
+  if (!($39)) {
+   ___unlockfile($0);
+  }
+  $$0 = $spec$select41;
+ }
+ STACKTOP = sp;return ($$0|0);
+}
+function _printf_core($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$ = 0, $$0 = 0, $$0228 = 0, $$0229334 = 0, $$0232 = 0, $$0235 = 0, 
$$0237 = 0, $$0240313 = 0, $$0240313371 = 0, $$0240333 = 0, $$0243 = 0, 
$$0243$ph = 0, $$0243$ph$be = 0, $$0247 = 0, $$0247$ph = 0, $$0249$lcssa = 0, 
$$0249321 = 0, $$0252 = 0, $$0253 = 0, $$0254 = 0;
+ var $$0259 = 0, $$0262$lcssa = 0, $$0262328 = 0, $$0269$ph = 0, $$1 = 0, 
$$1230340 = 0, $$1233 = 0, $$1236 = 0, $$1238 = 0, $$1241339 = 0, $$1248 = 0, 
$$1250 = 0, $$1255 = 0, $$1260 = 0, $$1263 = 0, $$1270 = 0, $$2 = 0, $$2234 = 
0, $$2239 = 0, $$2242320 = 0;
+ var $$2256 = 0, $$2256$ = 0, $$2261 = 0, $$2271 = 0, $$3257 = 0, $$3265 = 0, 
$$3272 = 0, $$3317 = 0, $$4258370 = 0, $$4266 = 0, $$5 = 0, $$6268 = 0, 
$$lcssa308 = 0, $$pre = 0, $$pre$phiZ2D = 0, $$pre360 = 0, $$pre362 = 0, 
$$pre363 = 0, $$pre363$pre = 0, $$pre364 = 0;
+ var $$pre368 = 0, $$sink = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 
0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 
0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
+ var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 
= 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 
= 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
+ var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 
= 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 
= 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
+ var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, 
$159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, 
$166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
+ var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, 
$177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, 
$184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
+ var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 
= 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 
= 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0;
+ var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 
= 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 
= 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0;
+ var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 
= 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 
= 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0;
+ var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 
= 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 
= 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0;
+ var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, 
$268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, 
$275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0;
+ var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 
= 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 
= 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0;
+ var $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 
= 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 
= 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0;
+ var $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 
= 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 
= 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0;
+ var $334 = 0, $335 = 0, $336 = 0.0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, 
$340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, 
$348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0;
+ var $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, 
$359 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 
0, $44 = 0, $45 = 0, $46 = 0, $47 = 0;
+ var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, 
$55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, 
$63 = 0, $64 = 0, $65 = 0;
+ var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, 
$73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, 
$81 = 0, $82 = 0, $83 = 0;
+ var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, 
$91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 
0, $arglist_current = 0, $arglist_current2 = 0, $arglist_next = 0;
+ var $arglist_next3 = 0, $brmerge = 0, $brmerge326 = 0, $expanded = 0, 
$expanded10 = 0, $expanded11 = 0, $expanded13 = 0, $expanded14 = 0, $expanded15 
= 0, $expanded4 = 0, $expanded6 = 0, $expanded7 = 0, $expanded8 = 0, $or$cond = 
0, $or$cond276 = 0, $or$cond278 = 0, $or$cond283 = 0, $spec$select = 0, 
$spec$select281 = 0, $spec$select284 = 0;
+ var $spec$select291 = 0, $spec$select292 = 0, $spec$select293 = 0, 
$spec$select294 = 0, $spec$select295 = 0, $spec$select296 = 0, $spec$select297 
= 0, $spec$select298 = 0, $spec$select299 = 0, $storemerge273$lcssa = 0, 
$storemerge273327 = 0, $storemerge274 = 0, $trunc = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(64|0);
+ $5 = sp + 56|0;
+ $6 = sp + 40|0;
+ $7 = sp;
+ $8 = sp + 48|0;
+ $9 = sp + 60|0;
+ HEAP32[$5>>2] = $1;
+ $10 = ($0|0)!=(0|0);
+ $11 = ((($7)) + 40|0);
+ $12 = $11;
+ $13 = ((($7)) + 39|0);
+ $14 = ((($8)) + 4|0);
+ $$0243$ph = 0;$$0247$ph = 0;$$0269$ph = 0;
+ L1: while(1) {
+  $$0243 = $$0243$ph;$$0247 = $$0247$ph;
+  while(1) {
+   $15 = ($$0247|0)>(-1);
+   do {
+    if ($15) {
+     $16 = (2147483647 - ($$0247))|0;
+     $17 = ($$0243|0)>($16|0);
+     if ($17) {
+      $18 = (___errno_location()|0);
+      HEAP32[$18>>2] = 75;
+      $$1248 = -1;
+      break;
+     } else {
+      $19 = (($$0243) + ($$0247))|0;
+      $$1248 = $19;
+      break;
+     }
+    } else {
+     $$1248 = $$0247;
+    }
+   } while(0);
+   $20 = HEAP32[$5>>2]|0;
+   $21 = HEAP8[$20>>0]|0;
+   $22 = ($21<<24>>24)==(0);
+   if ($22) {
+    label = 94;
+    break L1;
+   }
+   $23 = $21;$25 = $20;
+   L12: while(1) {
+    switch ($23<<24>>24) {
+    case 37:  {
+     label = 10;
+     break L12;
+     break;
+    }
+    case 0:  {
+     $$0249$lcssa = $25;
+     break L12;
+     break;
+    }
+    default: {
+    }
+    }
+    $24 = ((($25)) + 1|0);
+    HEAP32[$5>>2] = $24;
+    $$pre = HEAP8[$24>>0]|0;
+    $23 = $$pre;$25 = $24;
+   }
+   L15: do {
+    if ((label|0) == 10) {
+     label = 0;
+     $$0249321 = $25;$27 = $25;
+     while(1) {
+      $26 = ((($27)) + 1|0);
+      $28 = HEAP8[$26>>0]|0;
+      $29 = ($28<<24>>24)==(37);
+      if (!($29)) {
+       $$0249$lcssa = $$0249321;
+       break L15;
+      }
+      $30 = ((($$0249321)) + 1|0);
+      $31 = ((($27)) + 2|0);
+      HEAP32[$5>>2] = $31;
+      $32 = HEAP8[$31>>0]|0;
+      $33 = ($32<<24>>24)==(37);
+      if ($33) {
+       $$0249321 = $30;$27 = $31;
+      } else {
+       $$0249$lcssa = $30;
+       break;
+      }
+     }
+    }
+   } while(0);
+   $34 = $$0249$lcssa;
+   $35 = $20;
+   $36 = (($34) - ($35))|0;
+   if ($10) {
+    _out($0,$20,$36);
+   }
+   $37 = ($36|0)==(0);
+   if ($37) {
+    break;
+   } else {
+    $$0243 = $36;$$0247 = $$1248;
+   }
+  }
+  $38 = HEAP32[$5>>2]|0;
+  $39 = ((($38)) + 1|0);
+  $40 = HEAP8[$39>>0]|0;
+  $41 = $40 << 24 >> 24;
+  $42 = (_isdigit($41)|0);
+  $43 = ($42|0)==(0);
+  $$pre360 = HEAP32[$5>>2]|0;
+  if ($43) {
+   $$0253 = -1;$$1270 = $$0269$ph;$$sink = 1;
+  } else {
+   $44 = ((($$pre360)) + 2|0);
+   $45 = HEAP8[$44>>0]|0;
+   $46 = ($45<<24>>24)==(36);
+   if ($46) {
+    $47 = ((($$pre360)) + 1|0);
+    $48 = HEAP8[$47>>0]|0;
+    $49 = $48 << 24 >> 24;
+    $50 = (($49) + -48)|0;
+    $$0253 = $50;$$1270 = 1;$$sink = 3;
+   } else {
+    $$0253 = -1;$$1270 = $$0269$ph;$$sink = 1;
+   }
+  }
+  $51 = (($$pre360) + ($$sink)|0);
+  HEAP32[$5>>2] = $51;
+  $52 = HEAP8[$51>>0]|0;
+  $53 = $52 << 24 >> 24;
+  $54 = (($53) + -32)|0;
+  $55 = ($54>>>0)>(31);
+  $56 = 1 << $54;
+  $57 = $56 & 75913;
+  $58 = ($57|0)==(0);
+  $brmerge326 = $55 | $58;
+  if ($brmerge326) {
+   $$0262$lcssa = 0;$$lcssa308 = $52;$storemerge273$lcssa = $51;
+  } else {
+   $$0262328 = 0;$60 = $54;$storemerge273327 = $51;
+   while(1) {
+    $59 = 1 << $60;
+    $61 = $59 | $$0262328;
+    $62 = ((($storemerge273327)) + 1|0);
+    HEAP32[$5>>2] = $62;
+    $63 = HEAP8[$62>>0]|0;
+    $64 = $63 << 24 >> 24;
+    $65 = (($64) + -32)|0;
+    $66 = ($65>>>0)>(31);
+    $67 = 1 << $65;
+    $68 = $67 & 75913;
+    $69 = ($68|0)==(0);
+    $brmerge = $66 | $69;
+    if ($brmerge) {
+     $$0262$lcssa = $61;$$lcssa308 = $63;$storemerge273$lcssa = $62;
+     break;
+    } else {
+     $$0262328 = $61;$60 = $65;$storemerge273327 = $62;
+    }
+   }
+  }
+  $70 = ($$lcssa308<<24>>24)==(42);
+  if ($70) {
+   $71 = ((($storemerge273$lcssa)) + 1|0);
+   $72 = HEAP8[$71>>0]|0;
+   $73 = $72 << 24 >> 24;
+   $74 = (_isdigit($73)|0);
+   $75 = ($74|0)==(0);
+   if ($75) {
+    label = 27;
+   } else {
+    $76 = HEAP32[$5>>2]|0;
+    $77 = ((($76)) + 2|0);
+    $78 = HEAP8[$77>>0]|0;
+    $79 = ($78<<24>>24)==(36);
+    if ($79) {
+     $80 = ((($76)) + 1|0);
+     $81 = HEAP8[$80>>0]|0;
+     $82 = $81 << 24 >> 24;
+     $83 = (($82) + -48)|0;
+     $84 = (($4) + ($83<<2)|0);
+     HEAP32[$84>>2] = 10;
+     $85 = HEAP8[$80>>0]|0;
+     $86 = $85 << 24 >> 24;
+     $87 = (($86) + -48)|0;
+     $88 = (($3) + ($87<<3)|0);
+     $89 = $88;
+     $90 = $89;
+     $91 = HEAP32[$90>>2]|0;
+     $92 = (($89) + 4)|0;
+     $93 = $92;
+     $94 = HEAP32[$93>>2]|0;
+     $95 = ((($76)) + 3|0);
+     $$0259 = $91;$$2271 = 1;$storemerge274 = $95;
+    } else {
+     label = 27;
+    }
+   }
+   if ((label|0) == 27) {
+    label = 0;
+    $96 = ($$1270|0)==(0);
+    if (!($96)) {
+     $$0 = -1;
+     break;
+    }
+    if ($10) {
+     $arglist_current = HEAP32[$2>>2]|0;
+     $97 = $arglist_current;
+     $98 = ((0) + 4|0);
+     $expanded4 = $98;
+     $expanded = (($expanded4) - 1)|0;
+     $99 = (($97) + ($expanded))|0;
+     $100 = ((0) + 4|0);
+     $expanded8 = $100;
+     $expanded7 = (($expanded8) - 1)|0;
+     $expanded6 = $expanded7 ^ -1;
+     $101 = $99 & $expanded6;
+     $102 = $101;
+     $103 = HEAP32[$102>>2]|0;
+     $arglist_next = ((($102)) + 4|0);
+     HEAP32[$2>>2] = $arglist_next;
+     $358 = $103;
+    } else {
+     $358 = 0;
+    }
+    $104 = HEAP32[$5>>2]|0;
+    $105 = ((($104)) + 1|0);
+    $$0259 = $358;$$2271 = 0;$storemerge274 = $105;
+   }
+   HEAP32[$5>>2] = $storemerge274;
+   $106 = ($$0259|0)<(0);
+   $107 = $$0262$lcssa | 8192;
+   $108 = (0 - ($$0259))|0;
+   $spec$select291 = $106 ? $107 : $$0262$lcssa;
+   $spec$select292 = $106 ? $108 : $$0259;
+   $$1260 = $spec$select292;$$1263 = $spec$select291;$$3272 = $$2271;$112 = 
$storemerge274;
+  } else {
+   $109 = (_getint($5)|0);
+   $110 = ($109|0)<(0);
+   if ($110) {
+    $$0 = -1;
+    break;
+   }
+   $$pre362 = HEAP32[$5>>2]|0;
+   $$1260 = $109;$$1263 = $$0262$lcssa;$$3272 = $$1270;$112 = $$pre362;
+  }
+  $111 = HEAP8[$112>>0]|0;
+  $113 = ($111<<24>>24)==(46);
+  do {
+   if ($113) {
+    $114 = ((($112)) + 1|0);
+    $115 = HEAP8[$114>>0]|0;
+    $116 = ($115<<24>>24)==(42);
+    if (!($116)) {
+     HEAP32[$5>>2] = $114;
+     $152 = (_getint($5)|0);
+     $$pre363$pre = HEAP32[$5>>2]|0;
+     $$0254 = $152;$$pre363 = $$pre363$pre;
+     break;
+    }
+    $117 = ((($112)) + 2|0);
+    $118 = HEAP8[$117>>0]|0;
+    $119 = $118 << 24 >> 24;
+    $120 = (_isdigit($119)|0);
+    $121 = ($120|0)==(0);
+    if (!($121)) {
+     $122 = HEAP32[$5>>2]|0;
+     $123 = ((($122)) + 3|0);
+     $124 = HEAP8[$123>>0]|0;
+     $125 = ($124<<24>>24)==(36);
+     if ($125) {
+      $126 = ((($122)) + 2|0);
+      $127 = HEAP8[$126>>0]|0;
+      $128 = $127 << 24 >> 24;
+      $129 = (($128) + -48)|0;
+      $130 = (($4) + ($129<<2)|0);
+      HEAP32[$130>>2] = 10;
+      $131 = HEAP8[$126>>0]|0;
+      $132 = $131 << 24 >> 24;
+      $133 = (($132) + -48)|0;
+      $134 = (($3) + ($133<<3)|0);
+      $135 = $134;
+      $136 = $135;
+      $137 = HEAP32[$136>>2]|0;
+      $138 = (($135) + 4)|0;
+      $139 = $138;
+      $140 = HEAP32[$139>>2]|0;
+      $141 = ((($122)) + 4|0);
+      HEAP32[$5>>2] = $141;
+      $$0254 = $137;$$pre363 = $141;
+      break;
+     }
+    }
+    $142 = ($$3272|0)==(0);
+    if (!($142)) {
+     $$0 = -1;
+     break L1;
+    }
+    if ($10) {
+     $arglist_current2 = HEAP32[$2>>2]|0;
+     $143 = $arglist_current2;
+     $144 = ((0) + 4|0);
+     $expanded11 = $144;
+     $expanded10 = (($expanded11) - 1)|0;
+     $145 = (($143) + ($expanded10))|0;
+     $146 = ((0) + 4|0);
+     $expanded15 = $146;
+     $expanded14 = (($expanded15) - 1)|0;
+     $expanded13 = $expanded14 ^ -1;
+     $147 = $145 & $expanded13;
+     $148 = $147;
+     $149 = HEAP32[$148>>2]|0;
+     $arglist_next3 = ((($148)) + 4|0);
+     HEAP32[$2>>2] = $arglist_next3;
+     $359 = $149;
+    } else {
+     $359 = 0;
+    }
+    $150 = HEAP32[$5>>2]|0;
+    $151 = ((($150)) + 2|0);
+    HEAP32[$5>>2] = $151;
+    $$0254 = $359;$$pre363 = $151;
+   } else {
+    $$0254 = -1;$$pre363 = $112;
+   }
+  } while(0);
+  $$0252 = 0;$154 = $$pre363;
+  while(1) {
+   $153 = HEAP8[$154>>0]|0;
+   $155 = $153 << 24 >> 24;
+   $156 = (($155) + -65)|0;
+   $157 = ($156>>>0)>(57);
+   if ($157) {
+    $$0 = -1;
+    break L1;
+   }
+   $158 = ((($154)) + 1|0);
+   HEAP32[$5>>2] = $158;
+   $159 = HEAP8[$154>>0]|0;
+   $160 = $159 << 24 >> 24;
+   $161 = (($160) + -65)|0;
+   $162 = ((27952 + (($$0252*58)|0)|0) + ($161)|0);
+   $163 = HEAP8[$162>>0]|0;
+   $164 = $163&255;
+   $165 = (($164) + -1)|0;
+   $166 = ($165>>>0)<(8);
+   if ($166) {
+    $$0252 = $164;$154 = $158;
+   } else {
+    break;
+   }
+  }
+  $167 = ($163<<24>>24)==(0);
+  if ($167) {
+   $$0 = -1;
+   break;
+  }
+  $168 = ($163<<24>>24)==(19);
+  $169 = ($$0253|0)>(-1);
+  do {
+   if ($168) {
+    if ($169) {
+     $$0 = -1;
+     break L1;
+    } else {
+     label = 54;
+    }
+   } else {
+    if ($169) {
+     $170 = (($4) + ($$0253<<2)|0);
+     HEAP32[$170>>2] = $164;
+     $171 = (($3) + ($$0253<<3)|0);
+     $172 = $171;
+     $173 = $172;
+     $174 = HEAP32[$173>>2]|0;
+     $175 = (($172) + 4)|0;
+     $176 = $175;
+     $177 = HEAP32[$176>>2]|0;
+     $178 = $6;
+     $179 = $178;
+     HEAP32[$179>>2] = $174;
+     $180 = (($178) + 4)|0;
+     $181 = $180;
+     HEAP32[$181>>2] = $177;
+     label = 54;
+     break;
+    }
+    if (!($10)) {
+     $$0 = 0;
+     break L1;
+    }
+    _pop_arg($6,$164,$2);
+    $$pre364 = HEAP32[$5>>2]|0;
+    $183 = $$pre364;
+    label = 55;
+   }
+  } while(0);
+  if ((label|0) == 54) {
+   label = 0;
+   if ($10) {
+    $183 = $158;
+    label = 55;
+   } else {
+    $$0243$ph$be = 0;
+   }
+  }
+  L77: do {
+   if ((label|0) == 55) {
+    label = 0;
+    $182 = ((($183)) + -1|0);
+    $184 = HEAP8[$182>>0]|0;
+    $185 = $184 << 24 >> 24;
+    $186 = ($$0252|0)!=(0);
+    $187 = $185 & 15;
+    $188 = ($187|0)==(3);
+    $or$cond276 = $186 & $188;
+    $189 = $185 & -33;
+    $$0235 = $or$cond276 ? $189 : $185;
+    $190 = $$1263 & 8192;
+    $191 = ($190|0)==(0);
+    $192 = $$1263 & -65537;
+    $spec$select = $191 ? $$1263 : $192;
+    L79: do {
+     switch ($$0235|0) {
+     case 110:  {
+      $trunc = $$0252&255;
+      switch ($trunc<<24>>24) {
+      case 0:  {
+       $199 = HEAP32[$6>>2]|0;
+       HEAP32[$199>>2] = $$1248;
+       $$0243$ph$be = 0;
+       break L77;
+       break;
+      }
+      case 1:  {
+       $200 = HEAP32[$6>>2]|0;
+       HEAP32[$200>>2] = $$1248;
+       $$0243$ph$be = 0;
+       break L77;
+       break;
+      }
+      case 2:  {
+       $201 = ($$1248|0)<(0);
+       $202 = $201 << 31 >> 31;
+       $203 = HEAP32[$6>>2]|0;
+       $204 = $203;
+       $205 = $204;
+       HEAP32[$205>>2] = $$1248;
+       $206 = (($204) + 4)|0;
+       $207 = $206;
+       HEAP32[$207>>2] = $202;
+       $$0243$ph$be = 0;
+       break L77;
+       break;
+      }
+      case 3:  {
+       $208 = $$1248&65535;
+       $209 = HEAP32[$6>>2]|0;
+       HEAP16[$209>>1] = $208;
+       $$0243$ph$be = 0;
+       break L77;
+       break;
+      }
+      case 4:  {
+       $210 = $$1248&255;
+       $211 = HEAP32[$6>>2]|0;
+       HEAP8[$211>>0] = $210;
+       $$0243$ph$be = 0;
+       break L77;
+       break;
+      }
+      case 6:  {
+       $212 = HEAP32[$6>>2]|0;
+       HEAP32[$212>>2] = $$1248;
+       $$0243$ph$be = 0;
+       break L77;
+       break;
+      }
+      case 7:  {
+       $213 = ($$1248|0)<(0);
+       $214 = $213 << 31 >> 31;
+       $215 = HEAP32[$6>>2]|0;
+       $216 = $215;
+       $217 = $216;
+       HEAP32[$217>>2] = $$1248;
+       $218 = (($216) + 4)|0;
+       $219 = $218;
+       HEAP32[$219>>2] = $214;
+       $$0243$ph$be = 0;
+       break L77;
+       break;
+      }
+      default: {
+       $$0243$ph$be = 0;
+       break L77;
+      }
+      }
+      break;
+     }
+     case 112:  {
+      $220 = ($$0254>>>0)>(8);
+      $221 = $220 ? $$0254 : 8;
+      $222 = $spec$select | 8;
+      $$1236 = 120;$$1255 = $221;$$3265 = $222;
+      label = 67;
+      break;
+     }
+     case 88: case 120:  {
+      $$1236 = $$0235;$$1255 = $$0254;$$3265 = $spec$select;
+      label = 67;
+      break;
+     }
+     case 111:  {
+      $238 = $6;
+      $239 = $238;
+      $240 = HEAP32[$239>>2]|0;
+      $241 = (($238) + 4)|0;
+      $242 = $241;
+      $243 = HEAP32[$242>>2]|0;
+      $244 = (_fmt_o($240,$243,$11)|0);
+      $245 = $spec$select & 8;
+      $246 = ($245|0)==(0);
+      $247 = $244;
+      $248 = (($12) - ($247))|0;
+      $249 = ($$0254|0)>($248|0);
+      $250 = (($248) + 1)|0;
+      $251 = $246 | $249;
+      $spec$select295 = $251 ? $$0254 : $250;
+      $$0228 = $244;$$1233 = 0;$$1238 = 70613;$$2256 = $spec$select295;$$4266 
= $spec$select;$277 = $240;$279 = $243;
+      label = 73;
+      break;
+     }
+     case 105: case 100:  {
+      $252 = $6;
+      $253 = $252;
+      $254 = HEAP32[$253>>2]|0;
+      $255 = (($252) + 4)|0;
+      $256 = $255;
+      $257 = HEAP32[$256>>2]|0;
+      $258 = ($257|0)<(0);
+      if ($258) {
+       $259 = (_i64Subtract(0,0,($254|0),($257|0))|0);
+       $260 = tempRet0;
+       $261 = $6;
+       $262 = $261;
+       HEAP32[$262>>2] = $259;
+       $263 = (($261) + 4)|0;
+       $264 = $263;
+       HEAP32[$264>>2] = $260;
+       $$0232 = 1;$$0237 = 70613;$271 = $259;$272 = $260;
+       label = 72;
+       break L79;
+      } else {
+       $265 = $spec$select & 2048;
+       $266 = ($265|0)==(0);
+       $267 = $spec$select & 1;
+       $268 = ($267|0)==(0);
+       $$ = $268 ? 70613 : (70615);
+       $spec$select296 = $266 ? $$ : (70614);
+       $269 = $spec$select & 2049;
+       $270 = ($269|0)!=(0);
+       $spec$select297 = $270&1;
+       $$0232 = $spec$select297;$$0237 = $spec$select296;$271 = $254;$272 = 
$257;
+       label = 72;
+       break L79;
+      }
+      break;
+     }
+     case 117:  {
+      $193 = $6;
+      $194 = $193;
+      $195 = HEAP32[$194>>2]|0;
+      $196 = (($193) + 4)|0;
+      $197 = $196;
+      $198 = HEAP32[$197>>2]|0;
+      $$0232 = 0;$$0237 = 70613;$271 = $195;$272 = $198;
+      label = 72;
+      break;
+     }
+     case 99:  {
+      $288 = $6;
+      $289 = $288;
+      $290 = HEAP32[$289>>2]|0;
+      $291 = (($288) + 4)|0;
+      $292 = $291;
+      $293 = HEAP32[$292>>2]|0;
+      $294 = $290&255;
+      HEAP8[$13>>0] = $294;
+      $$2 = $13;$$2234 = 0;$$2239 = 70613;$$5 = 1;$$6268 = $192;$$pre$phiZ2D = 
$12;
+      break;
+     }
+     case 109:  {
+      $295 = (___errno_location()|0);
+      $296 = HEAP32[$295>>2]|0;
+      $297 = (_strerror($296)|0);
+      $$1 = $297;
+      label = 77;
+      break;
+     }
+     case 115:  {
+      $298 = HEAP32[$6>>2]|0;
+      $299 = ($298|0)==(0|0);
+      $300 = $299 ? 70623 : $298;
+      $$1 = $300;
+      label = 77;
+      break;
+     }
+     case 67:  {
+      $307 = $6;
+      $308 = $307;
+      $309 = HEAP32[$308>>2]|0;
+      $310 = (($307) + 4)|0;
+      $311 = $310;
+      $312 = HEAP32[$311>>2]|0;
+      HEAP32[$8>>2] = $309;
+      HEAP32[$14>>2] = 0;
+      HEAP32[$6>>2] = $8;
+      $$4258370 = -1;
+      label = 81;
+      break;
+     }
+     case 83:  {
+      $313 = ($$0254|0)==(0);
+      if ($313) {
+       _pad($0,32,$$1260,0,$spec$select);
+       $$0240313371 = 0;
+       label = 91;
+      } else {
+       $$4258370 = $$0254;
+       label = 81;
+      }
+      break;
+     }
+     case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 
101:  {
+      $336 = +HEAPF64[$6>>3];
+      $337 = (_fmt_fp($0,$336,$$1260,$$0254,$spec$select,$$0235)|0);
+      $$0243$ph$be = $337;
+      break L77;
+      break;
+     }
+     default: {
+      $$2 = $20;$$2234 = 0;$$2239 = 70613;$$5 = $$0254;$$6268 = 
$spec$select;$$pre$phiZ2D = $12;
+     }
+     }
+    } while(0);
+    L103: do {
+     if ((label|0) == 67) {
+      label = 0;
+      $223 = $6;
+      $224 = $223;
+      $225 = HEAP32[$224>>2]|0;
+      $226 = (($223) + 4)|0;
+      $227 = $226;
+      $228 = HEAP32[$227>>2]|0;
+      $229 = $$1236 & 32;
+      $230 = (_fmt_x($225,$228,$11,$229)|0);
+      $231 = ($225|0)==(0);
+      $232 = ($228|0)==(0);
+      $233 = $231 & $232;
+      $234 = $$3265 & 8;
+      $235 = ($234|0)==(0);
+      $or$cond278 = $235 | $233;
+      $236 = $$1236 >>> 4;
+      $237 = (70613 + ($236)|0);
+      $spec$select293 = $or$cond278 ? 70613 : $237;
+      $spec$select294 = $or$cond278 ? 0 : 2;
+      $$0228 = $230;$$1233 = $spec$select294;$$1238 = $spec$select293;$$2256 = 
$$1255;$$4266 = $$3265;$277 = $225;$279 = $228;
+      label = 73;
+     }
+     else if ((label|0) == 72) {
+      label = 0;
+      $273 = (_fmt_u($271,$272,$11)|0);
+      $$0228 = $273;$$1233 = $$0232;$$1238 = $$0237;$$2256 = $$0254;$$4266 = 
$spec$select;$277 = $271;$279 = $272;
+      label = 73;
+     }
+     else if ((label|0) == 77) {
+      label = 0;
+      $301 = (_memchr($$1,0,$$0254)|0);
+      $302 = ($301|0)==(0|0);
+      $303 = $301;
+      $304 = $$1;
+      $305 = (($303) - ($304))|0;
+      $306 = (($$1) + ($$0254)|0);
+      $$3257 = $302 ? $$0254 : $305;
+      $$1250 = $302 ? $306 : $301;
+      $$pre368 = $$1250;
+      $$2 = $$1;$$2234 = 0;$$2239 = 70613;$$5 = $$3257;$$6268 = 
$192;$$pre$phiZ2D = $$pre368;
+     }
+     else if ((label|0) == 81) {
+      label = 0;
+      $314 = HEAP32[$6>>2]|0;
+      $$0229334 = $314;$$0240333 = 0;
+      while(1) {
+       $315 = HEAP32[$$0229334>>2]|0;
+       $316 = ($315|0)==(0);
+       if ($316) {
+        $$0240313 = $$0240333;
+        break;
+       }
+       $317 = (_wctomb($9,$315)|0);
+       $318 = ($317|0)<(0);
+       $319 = (($$4258370) - ($$0240333))|0;
+       $320 = ($317>>>0)>($319>>>0);
+       $or$cond283 = $318 | $320;
+       if ($or$cond283) {
+        label = 85;
+        break;
+       }
+       $321 = ((($$0229334)) + 4|0);
+       $322 = (($317) + ($$0240333))|0;
+       $323 = ($$4258370>>>0)>($322>>>0);
+       if ($323) {
+        $$0229334 = $321;$$0240333 = $322;
+       } else {
+        $$0240313 = $322;
+        break;
+       }
+      }
+      if ((label|0) == 85) {
+       label = 0;
+       if ($318) {
+        $$0 = -1;
+        break L1;
+       } else {
+        $$0240313 = $$0240333;
+       }
+      }
+      _pad($0,32,$$1260,$$0240313,$spec$select);
+      $324 = ($$0240313|0)==(0);
+      if ($324) {
+       $$0240313371 = 0;
+       label = 91;
+      } else {
+       $325 = HEAP32[$6>>2]|0;
+       $$1230340 = $325;$$1241339 = 0;
+       while(1) {
+        $326 = HEAP32[$$1230340>>2]|0;
+        $327 = ($326|0)==(0);
+        if ($327) {
+         $$0240313371 = $$0240313;
+         label = 91;
+         break L103;
+        }
+        $328 = (_wctomb($9,$326)|0);
+        $329 = (($328) + ($$1241339))|0;
+        $330 = ($329|0)>($$0240313|0);
+        if ($330) {
+         $$0240313371 = $$0240313;
+         label = 91;
+         break L103;
+        }
+        $331 = ((($$1230340)) + 4|0);
+        _out($0,$9,$328);
+        $332 = ($329>>>0)<($$0240313>>>0);
+        if ($332) {
+         $$1230340 = $331;$$1241339 = $329;
+        } else {
+         $$0240313371 = $$0240313;
+         label = 91;
+         break;
+        }
+       }
+      }
+     }
+    } while(0);
+    if ((label|0) == 73) {
+     label = 0;
+     $274 = ($$2256|0)>(-1);
+     $275 = $$4266 & -65537;
+     $spec$select281 = $274 ? $275 : $$4266;
+     $276 = ($277|0)!=(0);
+     $278 = ($279|0)!=(0);
+     $280 = $276 | $278;
+     $281 = ($$2256|0)!=(0);
+     $or$cond = $281 | $280;
+     $282 = $$0228;
+     $283 = (($12) - ($282))|0;
+     $284 = $280 ^ 1;
+     $285 = $284&1;
+     $286 = (($283) + ($285))|0;
+     $287 = ($$2256|0)>($286|0);
+     $$2256$ = $287 ? $$2256 : $286;
+     $spec$select298 = $or$cond ? $$2256$ : 0;
+     $spec$select299 = $or$cond ? $$0228 : $11;
+     $$2 = $spec$select299;$$2234 = $$1233;$$2239 = $$1238;$$5 = 
$spec$select298;$$6268 = $spec$select281;$$pre$phiZ2D = $12;
+    }
+    else if ((label|0) == 91) {
+     label = 0;
+     $333 = $spec$select ^ 8192;
+     _pad($0,32,$$1260,$$0240313371,$333);
+     $334 = ($$1260|0)>($$0240313371|0);
+     $335 = $334 ? $$1260 : $$0240313371;
+     $$0243$ph$be = $335;
+     break;
+    }
+    $338 = $$2;
+    $339 = (($$pre$phiZ2D) - ($338))|0;
+    $340 = ($$5|0)<($339|0);
+    $spec$select284 = $340 ? $339 : $$5;
+    $341 = (($spec$select284) + ($$2234))|0;
+    $342 = ($$1260|0)<($341|0);
+    $$2261 = $342 ? $341 : $$1260;
+    _pad($0,32,$$2261,$341,$$6268);
+    _out($0,$$2239,$$2234);
+    $343 = $$6268 ^ 65536;
+    _pad($0,48,$$2261,$341,$343);
+    _pad($0,48,$spec$select284,$339,0);
+    _out($0,$$2,$339);
+    $344 = $$6268 ^ 8192;
+    _pad($0,32,$$2261,$341,$344);
+    $$0243$ph$be = $$2261;
+   }
+  } while(0);
+  $$0243$ph = $$0243$ph$be;$$0247$ph = $$1248;$$0269$ph = $$3272;
+ }
+ L125: do {
+  if ((label|0) == 94) {
+   $345 = ($0|0)==(0|0);
+   if ($345) {
+    $346 = ($$0269$ph|0)==(0);
+    if ($346) {
+     $$0 = 0;
+    } else {
+     $$2242320 = 1;
+     while(1) {
+      $347 = (($4) + ($$2242320<<2)|0);
+      $348 = HEAP32[$347>>2]|0;
+      $349 = ($348|0)==(0);
+      if ($349) {
+       break;
+      }
+      $350 = (($3) + ($$2242320<<3)|0);
+      _pop_arg($350,$348,$2);
+      $351 = (($$2242320) + 1)|0;
+      $352 = ($351>>>0)<(10);
+      if ($352) {
+       $$2242320 = $351;
+      } else {
+       $$0 = 1;
+       break L125;
+      }
+     }
+     $$3317 = $$2242320;
+     while(1) {
+      $355 = (($4) + ($$3317<<2)|0);
+      $356 = HEAP32[$355>>2]|0;
+      $357 = ($356|0)==(0);
+      $354 = (($$3317) + 1)|0;
+      if (!($357)) {
+       $$0 = -1;
+       break L125;
+      }
+      $353 = ($354>>>0)<(10);
+      if ($353) {
+       $$3317 = $354;
+      } else {
+       $$0 = 1;
+       break;
+      }
+     }
+    }
+   } else {
+    $$0 = $$1248;
+   }
+  }
+ } while(0);
+ STACKTOP = sp;return ($$0|0);
+}
+function _out($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = HEAP32[$0>>2]|0;
+ $4 = $3 & 32;
+ $5 = ($4|0)==(0);
+ if ($5) {
+  (___fwritex($1,$2,$0)|0);
+ }
+ return;
+}
+function _getint($0) {
+ $0 = $0|0;
+ var $$0$lcssa = 0, $$04 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 
= 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, 
$9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[$0>>2]|0;
+ $2 = HEAP8[$1>>0]|0;
+ $3 = $2 << 24 >> 24;
+ $4 = (_isdigit($3)|0);
+ $5 = ($4|0)==(0);
+ if ($5) {
+  $$0$lcssa = 0;
+ } else {
+  $$04 = 0;
+  while(1) {
+   $6 = ($$04*10)|0;
+   $7 = HEAP32[$0>>2]|0;
+   $8 = HEAP8[$7>>0]|0;
+   $9 = $8 << 24 >> 24;
+   $10 = (($6) + -48)|0;
+   $11 = (($10) + ($9))|0;
+   $12 = ((($7)) + 1|0);
+   HEAP32[$0>>2] = $12;
+   $13 = HEAP8[$12>>0]|0;
+   $14 = $13 << 24 >> 24;
+   $15 = (_isdigit($14)|0);
+   $16 = ($15|0)==(0);
+   if ($16) {
+    $$0$lcssa = $11;
+    break;
+   } else {
+    $$04 = $11;
+   }
+  }
+ }
+ return ($$0$lcssa|0);
+}
+function _pop_arg($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$mask = 0, $$mask31 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 
0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 
= 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
+ var $116 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 
0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 
= 0, $28 = 0, $29 = 0, $3 = 0;
+ var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, 
$38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, 
$46 = 0, $47 = 0, $48 = 0;
+ var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, 
$56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, 
$64 = 0, $65 = 0, $66 = 0;
+ var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, 
$74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, 
$82 = 0, $83 = 0, $84 = 0;
+ var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, 
$92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, 
$arglist_current = 0, $arglist_current11 = 0, $arglist_current14 = 0, 
$arglist_current17 = 0;
+ var $arglist_current2 = 0, $arglist_current20 = 0, $arglist_current23 = 0, 
$arglist_current26 = 0, $arglist_current5 = 0, $arglist_current8 = 0, 
$arglist_next = 0, $arglist_next12 = 0, $arglist_next15 = 0, $arglist_next18 = 
0, $arglist_next21 = 0, $arglist_next24 = 0, $arglist_next27 = 0, 
$arglist_next3 = 0, $arglist_next6 = 0, $arglist_next9 = 0, $expanded = 0, 
$expanded28 = 0, $expanded30 = 0, $expanded31 = 0;
+ var $expanded32 = 0, $expanded34 = 0, $expanded35 = 0, $expanded37 = 0, 
$expanded38 = 0, $expanded39 = 0, $expanded41 = 0, $expanded42 = 0, $expanded44 
= 0, $expanded45 = 0, $expanded46 = 0, $expanded48 = 0, $expanded49 = 0, 
$expanded51 = 0, $expanded52 = 0, $expanded53 = 0, $expanded55 = 0, $expanded56 
= 0, $expanded58 = 0, $expanded59 = 0;
+ var $expanded60 = 0, $expanded62 = 0, $expanded63 = 0, $expanded65 = 0, 
$expanded66 = 0, $expanded67 = 0, $expanded69 = 0, $expanded70 = 0, $expanded72 
= 0, $expanded73 = 0, $expanded74 = 0, $expanded76 = 0, $expanded77 = 0, 
$expanded79 = 0, $expanded80 = 0, $expanded81 = 0, $expanded83 = 0, $expanded84 
= 0, $expanded86 = 0, $expanded87 = 0;
+ var $expanded88 = 0, $expanded90 = 0, $expanded91 = 0, $expanded93 = 0, 
$expanded94 = 0, $expanded95 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ($1>>>0)>(20);
+ L1: do {
+  if (!($3)) {
+   do {
+    switch ($1|0) {
+    case 9:  {
+     $arglist_current = HEAP32[$2>>2]|0;
+     $4 = $arglist_current;
+     $5 = ((0) + 4|0);
+     $expanded28 = $5;
+     $expanded = (($expanded28) - 1)|0;
+     $6 = (($4) + ($expanded))|0;
+     $7 = ((0) + 4|0);
+     $expanded32 = $7;
+     $expanded31 = (($expanded32) - 1)|0;
+     $expanded30 = $expanded31 ^ -1;
+     $8 = $6 & $expanded30;
+     $9 = $8;
+     $10 = HEAP32[$9>>2]|0;
+     $arglist_next = ((($9)) + 4|0);
+     HEAP32[$2>>2] = $arglist_next;
+     HEAP32[$0>>2] = $10;
+     break L1;
+     break;
+    }
+    case 10:  {
+     $arglist_current2 = HEAP32[$2>>2]|0;
+     $11 = $arglist_current2;
+     $12 = ((0) + 4|0);
+     $expanded35 = $12;
+     $expanded34 = (($expanded35) - 1)|0;
+     $13 = (($11) + ($expanded34))|0;
+     $14 = ((0) + 4|0);
+     $expanded39 = $14;
+     $expanded38 = (($expanded39) - 1)|0;
+     $expanded37 = $expanded38 ^ -1;
+     $15 = $13 & $expanded37;
+     $16 = $15;
+     $17 = HEAP32[$16>>2]|0;
+     $arglist_next3 = ((($16)) + 4|0);
+     HEAP32[$2>>2] = $arglist_next3;
+     $18 = ($17|0)<(0);
+     $19 = $18 << 31 >> 31;
+     $20 = $0;
+     $21 = $20;
+     HEAP32[$21>>2] = $17;
+     $22 = (($20) + 4)|0;
+     $23 = $22;
+     HEAP32[$23>>2] = $19;
+     break L1;
+     break;
+    }
+    case 11:  {
+     $arglist_current5 = HEAP32[$2>>2]|0;
+     $24 = $arglist_current5;
+     $25 = ((0) + 4|0);
+     $expanded42 = $25;
+     $expanded41 = (($expanded42) - 1)|0;
+     $26 = (($24) + ($expanded41))|0;
+     $27 = ((0) + 4|0);
+     $expanded46 = $27;
+     $expanded45 = (($expanded46) - 1)|0;
+     $expanded44 = $expanded45 ^ -1;
+     $28 = $26 & $expanded44;
+     $29 = $28;
+     $30 = HEAP32[$29>>2]|0;
+     $arglist_next6 = ((($29)) + 4|0);
+     HEAP32[$2>>2] = $arglist_next6;
+     $31 = $0;
+     $32 = $31;
+     HEAP32[$32>>2] = $30;
+     $33 = (($31) + 4)|0;
+     $34 = $33;
+     HEAP32[$34>>2] = 0;
+     break L1;
+     break;
+    }
+    case 12:  {
+     $arglist_current8 = HEAP32[$2>>2]|0;
+     $35 = $arglist_current8;
+     $36 = ((0) + 8|0);
+     $expanded49 = $36;
+     $expanded48 = (($expanded49) - 1)|0;
+     $37 = (($35) + ($expanded48))|0;
+     $38 = ((0) + 8|0);
+     $expanded53 = $38;
+     $expanded52 = (($expanded53) - 1)|0;
+     $expanded51 = $expanded52 ^ -1;
+     $39 = $37 & $expanded51;
+     $40 = $39;
+     $41 = $40;
+     $42 = $41;
+     $43 = HEAP32[$42>>2]|0;
+     $44 = (($41) + 4)|0;
+     $45 = $44;
+     $46 = HEAP32[$45>>2]|0;
+     $arglist_next9 = ((($40)) + 8|0);
+     HEAP32[$2>>2] = $arglist_next9;
+     $47 = $0;
+     $48 = $47;
+     HEAP32[$48>>2] = $43;
+     $49 = (($47) + 4)|0;
+     $50 = $49;
+     HEAP32[$50>>2] = $46;
+     break L1;
+     break;
+    }
+    case 13:  {
+     $arglist_current11 = HEAP32[$2>>2]|0;
+     $51 = $arglist_current11;
+     $52 = ((0) + 4|0);
+     $expanded56 = $52;
+     $expanded55 = (($expanded56) - 1)|0;
+     $53 = (($51) + ($expanded55))|0;
+     $54 = ((0) + 4|0);
+     $expanded60 = $54;
+     $expanded59 = (($expanded60) - 1)|0;
+     $expanded58 = $expanded59 ^ -1;
+     $55 = $53 & $expanded58;
+     $56 = $55;
+     $57 = HEAP32[$56>>2]|0;
+     $arglist_next12 = ((($56)) + 4|0);
+     HEAP32[$2>>2] = $arglist_next12;
+     $58 = $57&65535;
+     $59 = $58 << 16 >> 16;
+     $60 = ($59|0)<(0);
+     $61 = $60 << 31 >> 31;
+     $62 = $0;
+     $63 = $62;
+     HEAP32[$63>>2] = $59;
+     $64 = (($62) + 4)|0;
+     $65 = $64;
+     HEAP32[$65>>2] = $61;
+     break L1;
+     break;
+    }
+    case 14:  {
+     $arglist_current14 = HEAP32[$2>>2]|0;
+     $66 = $arglist_current14;
+     $67 = ((0) + 4|0);
+     $expanded63 = $67;
+     $expanded62 = (($expanded63) - 1)|0;
+     $68 = (($66) + ($expanded62))|0;
+     $69 = ((0) + 4|0);
+     $expanded67 = $69;
+     $expanded66 = (($expanded67) - 1)|0;
+     $expanded65 = $expanded66 ^ -1;
+     $70 = $68 & $expanded65;
+     $71 = $70;
+     $72 = HEAP32[$71>>2]|0;
+     $arglist_next15 = ((($71)) + 4|0);
+     HEAP32[$2>>2] = $arglist_next15;
+     $$mask31 = $72 & 65535;
+     $73 = $0;
+     $74 = $73;
+     HEAP32[$74>>2] = $$mask31;
+     $75 = (($73) + 4)|0;
+     $76 = $75;
+     HEAP32[$76>>2] = 0;
+     break L1;
+     break;
+    }
+    case 15:  {
+     $arglist_current17 = HEAP32[$2>>2]|0;
+     $77 = $arglist_current17;
+     $78 = ((0) + 4|0);
+     $expanded70 = $78;
+     $expanded69 = (($expanded70) - 1)|0;
+     $79 = (($77) + ($expanded69))|0;
+     $80 = ((0) + 4|0);
+     $expanded74 = $80;
+     $expanded73 = (($expanded74) - 1)|0;
+     $expanded72 = $expanded73 ^ -1;
+     $81 = $79 & $expanded72;
+     $82 = $81;
+     $83 = HEAP32[$82>>2]|0;
+     $arglist_next18 = ((($82)) + 4|0);
+     HEAP32[$2>>2] = $arglist_next18;
+     $84 = $83&255;
+     $85 = $84 << 24 >> 24;
+     $86 = ($85|0)<(0);
+     $87 = $86 << 31 >> 31;
+     $88 = $0;
+     $89 = $88;
+     HEAP32[$89>>2] = $85;
+     $90 = (($88) + 4)|0;
+     $91 = $90;
+     HEAP32[$91>>2] = $87;
+     break L1;
+     break;
+    }
+    case 16:  {
+     $arglist_current20 = HEAP32[$2>>2]|0;
+     $92 = $arglist_current20;
+     $93 = ((0) + 4|0);
+     $expanded77 = $93;
+     $expanded76 = (($expanded77) - 1)|0;
+     $94 = (($92) + ($expanded76))|0;
+     $95 = ((0) + 4|0);
+     $expanded81 = $95;
+     $expanded80 = (($expanded81) - 1)|0;
+     $expanded79 = $expanded80 ^ -1;
+     $96 = $94 & $expanded79;
+     $97 = $96;
+     $98 = HEAP32[$97>>2]|0;
+     $arglist_next21 = ((($97)) + 4|0);
+     HEAP32[$2>>2] = $arglist_next21;
+     $$mask = $98 & 255;
+     $99 = $0;
+     $100 = $99;
+     HEAP32[$100>>2] = $$mask;
+     $101 = (($99) + 4)|0;
+     $102 = $101;
+     HEAP32[$102>>2] = 0;
+     break L1;
+     break;
+    }
+    case 17:  {
+     $arglist_current23 = HEAP32[$2>>2]|0;
+     $103 = $arglist_current23;
+     $104 = ((0) + 8|0);
+     $expanded84 = $104;
+     $expanded83 = (($expanded84) - 1)|0;
+     $105 = (($103) + ($expanded83))|0;
+     $106 = ((0) + 8|0);
+     $expanded88 = $106;
+     $expanded87 = (($expanded88) - 1)|0;
+     $expanded86 = $expanded87 ^ -1;
+     $107 = $105 & $expanded86;
+     $108 = $107;
+     $109 = +HEAPF64[$108>>3];
+     $arglist_next24 = ((($108)) + 8|0);
+     HEAP32[$2>>2] = $arglist_next24;
+     HEAPF64[$0>>3] = $109;
+     break L1;
+     break;
+    }
+    case 18:  {
+     $arglist_current26 = HEAP32[$2>>2]|0;
+     $110 = $arglist_current26;
+     $111 = ((0) + 8|0);
+     $expanded91 = $111;
+     $expanded90 = (($expanded91) - 1)|0;
+     $112 = (($110) + ($expanded90))|0;
+     $113 = ((0) + 8|0);
+     $expanded95 = $113;
+     $expanded94 = (($expanded95) - 1)|0;
+     $expanded93 = $expanded94 ^ -1;
+     $114 = $112 & $expanded93;
+     $115 = $114;
+     $116 = +HEAPF64[$115>>3];
+     $arglist_next27 = ((($115)) + 8|0);
+     HEAP32[$2>>2] = $arglist_next27;
+     HEAPF64[$0>>3] = $116;
+     break L1;
+     break;
+    }
+    default: {
+     break L1;
+    }
+    }
+   } while(0);
+  }
+ } while(0);
+ return;
+}
+function _fmt_x($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$05$lcssa = 0, $$056 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, 
$15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $4 = 0, $5 = 0, $6 = 0, 
$7 = 0, $8 = 0, $9 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ $4 = ($0|0)==(0);
+ $5 = ($1|0)==(0);
+ $6 = $4 & $5;
+ if ($6) {
+  $$05$lcssa = $2;
+ } else {
+  $$056 = $2;$15 = $1;$8 = $0;
+  while(1) {
+   $7 = $8 & 15;
+   $9 = (28416 + ($7)|0);
+   $10 = HEAP8[$9>>0]|0;
+   $11 = $10&255;
+   $12 = $11 | $3;
+   $13 = $12&255;
+   $14 = ((($$056)) + -1|0);
+   HEAP8[$14>>0] = $13;
+   $16 = (_bitshift64Lshr(($8|0),($15|0),4)|0);
+   $17 = tempRet0;
+   $18 = ($16|0)==(0);
+   $19 = ($17|0)==(0);
+   $20 = $18 & $19;
+   if ($20) {
+    $$05$lcssa = $14;
+    break;
+   } else {
+    $$056 = $14;$15 = $17;$8 = $16;
+   }
+  }
+ }
+ return ($$05$lcssa|0);
+}
+function _fmt_o($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0$lcssa = 0, $$06 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 
= 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $3 = ($0|0)==(0);
+ $4 = ($1|0)==(0);
+ $5 = $3 & $4;
+ if ($5) {
+  $$0$lcssa = $2;
+ } else {
+  $$06 = $2;$11 = $1;$7 = $0;
+  while(1) {
+   $6 = $7&255;
+   $8 = $6 & 7;
+   $9 = $8 | 48;
+   $10 = ((($$06)) + -1|0);
+   HEAP8[$10>>0] = $9;
+   $12 = (_bitshift64Lshr(($7|0),($11|0),3)|0);
+   $13 = tempRet0;
+   $14 = ($12|0)==(0);
+   $15 = ($13|0)==(0);
+   $16 = $14 & $15;
+   if ($16) {
+    $$0$lcssa = $10;
+    break;
+   } else {
+    $$06 = $10;$11 = $13;$7 = $12;
+   }
+  }
+ }
+ return ($$0$lcssa|0);
+}
+function _fmt_u($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$010$lcssa$off0 = 0, $$012 = 0, $$09$lcssa = 0, $$0914 = 0, $$1$lcssa = 
0, $$111 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
+ var $24 = 0, $25 = 0, $26 = 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, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ($1>>>0)>(0);
+ $4 = ($0>>>0)>(4294967295);
+ $5 = ($1|0)==(0);
+ $6 = $5 & $4;
+ $7 = $3 | $6;
+ if ($7) {
+  $$0914 = $2;$8 = $0;$9 = $1;
+  while(1) {
+   $10 = (___udivdi3(($8|0),($9|0),10,0)|0);
+   $11 = tempRet0;
+   $12 = (___muldi3(($10|0),($11|0),10,0)|0);
+   $13 = tempRet0;
+   $14 = (_i64Subtract(($8|0),($9|0),($12|0),($13|0))|0);
+   $15 = tempRet0;
+   $16 = $14&255;
+   $17 = $16 | 48;
+   $18 = ((($$0914)) + -1|0);
+   HEAP8[$18>>0] = $17;
+   $19 = ($9>>>0)>(9);
+   $20 = ($8>>>0)>(4294967295);
+   $21 = ($9|0)==(9);
+   $22 = $21 & $20;
+   $23 = $19 | $22;
+   if ($23) {
+    $$0914 = $18;$8 = $10;$9 = $11;
+   } else {
+    break;
+   }
+  }
+  $$010$lcssa$off0 = $10;$$09$lcssa = $18;
+ } else {
+  $$010$lcssa$off0 = $0;$$09$lcssa = $2;
+ }
+ $24 = ($$010$lcssa$off0|0)==(0);
+ if ($24) {
+  $$1$lcssa = $$09$lcssa;
+ } else {
+  $$012 = $$010$lcssa$off0;$$111 = $$09$lcssa;
+  while(1) {
+   $25 = (($$012>>>0) / 10)&-1;
+   $26 = ($25*10)|0;
+   $27 = (($$012) - ($26))|0;
+   $28 = $27 | 48;
+   $29 = $28&255;
+   $30 = ((($$111)) + -1|0);
+   HEAP8[$30>>0] = $29;
+   $31 = ($$012>>>0)<(10);
+   if ($31) {
+    $$1$lcssa = $30;
+    break;
+   } else {
+    $$012 = $25;$$111 = $30;
+   }
+  }
+ }
+ return ($$1$lcssa|0);
+}
+function _strerror($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (___pthread_self_568()|0);
+ $2 = ((($1)) + 188|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = (___strerror_l($0,$3)|0);
+ return ($4|0);
+}
+function _pad($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0$lcssa = 0, $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, 
$15 = 0, $16 = 0, $17 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(256|0);
+ $5 = sp;
+ $6 = $4 & 73728;
+ $7 = ($6|0)==(0);
+ $8 = ($2|0)>($3|0);
+ $or$cond = $8 & $7;
+ if ($or$cond) {
+  $9 = (($2) - ($3))|0;
+  $10 = $1 << 24 >> 24;
+  $11 = ($9>>>0)<(256);
+  $12 = $11 ? $9 : 256;
+  (_memset(($5|0),($10|0),($12|0))|0);
+  $13 = ($9>>>0)>(255);
+  if ($13) {
+   $14 = (($2) - ($3))|0;
+   $$011 = $9;
+   while(1) {
+    _out($0,$5,256);
+    $15 = (($$011) + -256)|0;
+    $16 = ($15>>>0)>(255);
+    if ($16) {
+     $$011 = $15;
+    } else {
+     break;
+    }
+   }
+   $17 = $14 & 255;
+   $$0$lcssa = $17;
+  } else {
+   $$0$lcssa = $9;
+  }
+  _out($0,$5,$$0$lcssa);
+ }
+ STACKTOP = sp;return;
+}
+function _fmt_fp($0,$1,$2,$3,$4,$5) {
+ $0 = $0|0;
+ $1 = +$1;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ var $$ = 0, $$0 = 0, $$0463$lcssa = 0, $$0463588 = 0, $$0464599 = 0, $$0471 = 
0.0, $$0479 = 0, $$0487657 = 0, $$0488 = 0, $$0488669 = 0, $$0488671 = 0, 
$$0497670 = 0, $$0498 = 0, $$0511586 = 0.0, $$0512 = 0, $$0513 = 0, $$0516652 = 
0, $$0522 = 0, $$0523 = 0, $$0525 = 0;
+ var $$0527 = 0, $$0529 = 0, $$0529$in646 = 0, $$0532651 = 0, $$1465 = 0, 
$$1467 = 0.0, $$1469 = 0.0, $$1472 = 0.0, $$1480 = 0, $$1482$lcssa = 0, 
$$1482683 = 0, $$1489656 = 0, $$1499 = 0, $$1510587 = 0, $$1514$lcssa = 0, 
$$1514614 = 0, $$1517 = 0, $$1526 = 0, $$1528 = 0, $$1530621 = 0;
+ var $$1533$lcssa = 0, $$1533645 = 0, $$1604 = 0, $$2 = 0, $$2473 = 0.0, 
$$2476 = 0, $$2483 = 0, $$2490$lcssa = 0, $$2490638 = 0, $$2500$lcssa = 0, 
$$2500682 = 0, $$2515 = 0, $$2518634 = 0, $$2531 = 0, $$2534633 = 0, $$3 = 0.0, 
$$3477 = 0, $$3484$lcssa = 0, $$3484663 = 0, $$3501$lcssa = 0;
+ var $$3501676 = 0, $$3535620 = 0, $$4 = 0.0, $$4478$lcssa = 0, $$4478594 = 0, 
$$4492 = 0, $$4502$lcssa = 0, $$4502662 = 0, $$4520 = 0, $$5$lcssa = 0, 
$$5486$lcssa = 0, $$5486639 = 0, $$5493603 = 0, $$5503 = 0, $$5521 = 0, $$560 = 
0, $$5609 = 0, $$6 = 0, $$6494593 = 0, $$7495608 = 0;
+ var $$8 = 0, $$8506 = 0, $$9 = 0, $$9507$lcssa = 0, $$9507625 = 0, $$lcssa583 
= 0, $$lobit = 0, $$neg = 0, $$neg571 = 0, $$not = 0, $$pn = 0, $$pr = 0, 
$$pr564 = 0, $$pre = 0, $$pre$phi717Z2D = 0, $$pre$phi718Z2D = 0, $$pre720 = 0, 
$$sink757 = 0, $10 = 0, $100 = 0;
+ var $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;
+ var $12 = 0, $120 = 0, $121 = 0.0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, 
$126 = 0, $127 = 0, $128 = 0.0, $129 = 0.0, $13 = 0, $130 = 0.0, $131 = 0, $132 
= 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0;
+ var $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 
= 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0.0, $150 = 0, 
$151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0;
+ var $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 
= 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 
= 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0;
+ var $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 
= 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 
= 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0;
+ var $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, 
$199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, 
$206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0;
+ var $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, 
$217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, 
$224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0;
+ var $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 
= 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 
= 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0.0;
+ var $247 = 0.0, $248 = 0, $249 = 0.0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, 
$253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, 
$260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0;
+ var $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;
+ var $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 
= 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 
= 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0;
+ var $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, 
$308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, 
$315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0;
+ var $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 
= 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 
= 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0;
+ var $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 
= 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 
= 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0;
+ var $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 
= 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 
= 0.0, $370 = 0, $371 = 0, $372 = 0, $373 = 0;
+ var $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0.0, 
$380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, 
$388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0;
+ var $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, 
$399 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, 
$406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0;
+ var $410 = 0, $411 = 0, $412 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 
0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0.0, $54 = 0, 
$55 = 0, $56 = 0, $57 = 0.0, $58 = 0.0;
+ var $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0, $64 = 0, $65 
= 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 
= 0, $74 = 0, $75 = 0, $76 = 0;
+ var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, 
$84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0.0, $91 = 
0.0, $92 = 0.0, $93 = 0, $94 = 0;
+ var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $not$ = 0, $or$cond = 0, 
$or$cond3$not = 0, $or$cond543 = 0, $or$cond546 = 0, $or$cond556 = 0, 
$or$cond559 = 0, $or$cond6 = 0, $scevgep711 = 0, $scevgep711712 = 0, 
$spec$select = 0, $spec$select539 = 0, $spec$select540 = 0, $spec$select540722 
= 0, $spec$select540723 = 0;
+ var $spec$select541 = 0, $spec$select544 = 0.0, $spec$select547 = 0, 
$spec$select548 = 0, $spec$select549 = 0, $spec$select551 = 0, $spec$select554 
= 0, $spec$select557 = 0, $spec$select561 = 0.0, $spec$select562 = 0, 
$spec$select563 = 0, $spec$select565 = 0, $spec$select566 = 0, $spec$select567 
= 0.0, $spec$select568 = 0.0, $spec$select569 = 0.0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 560|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(560|0);
+ $6 = sp + 32|0;
+ $7 = sp + 536|0;
+ $8 = sp;
+ $9 = $8;
+ $10 = sp + 540|0;
+ HEAP32[$7>>2] = 0;
+ $11 = ((($10)) + 12|0);
+ $12 = (___DOUBLE_BITS($1)|0);
+ $13 = tempRet0;
+ $14 = ($13|0)<(0);
+ if ($14) {
+  $15 = - $1;
+  $16 = (___DOUBLE_BITS($15)|0);
+  $17 = tempRet0;
+  $$0471 = $15;$$0522 = 1;$$0523 = 70630;$25 = $17;$412 = $16;
+ } else {
+  $18 = $4 & 2048;
+  $19 = ($18|0)==(0);
+  $20 = $4 & 1;
+  $21 = ($20|0)==(0);
+  $$ = $21 ? (70631) : (70636);
+  $spec$select565 = $19 ? $$ : (70633);
+  $22 = $4 & 2049;
+  $23 = ($22|0)!=(0);
+  $spec$select566 = $23&1;
+  $$0471 = $1;$$0522 = $spec$select566;$$0523 = $spec$select565;$25 = $13;$412 
= $12;
+ }
+ $24 = $25 & 2146435072;
+ $26 = (0)==(0);
+ $27 = ($24|0)==(2146435072);
+ $28 = $26 & $27;
+ do {
+  if ($28) {
+   $29 = $5 & 32;
+   $30 = ($29|0)!=(0);
+   $31 = $30 ? 70649 : 70653;
+   $32 = ($$0471 != $$0471) | (0.0 != 0.0);
+   $33 = $30 ? 70657 : 70661;
+   $$0512 = $32 ? $33 : $31;
+   $34 = (($$0522) + 3)|0;
+   $35 = $4 & -65537;
+   _pad($0,32,$2,$34,$35);
+   _out($0,$$0523,$$0522);
+   _out($0,$$0512,3);
+   $36 = $4 ^ 8192;
+   _pad($0,32,$2,$34,$36);
+   $$sink757 = $34;
+  } else {
+   $37 = (+_frexpl($$0471,$7));
+   $38 = $37 * 2.0;
+   $39 = $38 != 0.0;
+   if ($39) {
+    $40 = HEAP32[$7>>2]|0;
+    $41 = (($40) + -1)|0;
+    HEAP32[$7>>2] = $41;
+   }
+   $42 = $5 | 32;
+   $43 = ($42|0)==(97);
+   if ($43) {
+    $44 = $5 & 32;
+    $45 = ($44|0)==(0);
+    $46 = ((($$0523)) + 9|0);
+    $spec$select = $45 ? $$0523 : $46;
+    $47 = $$0522 | 2;
+    $48 = ($3>>>0)>(11);
+    $49 = (12 - ($3))|0;
+    $50 = ($49|0)==(0);
+    $51 = $48 | $50;
+    do {
+     if ($51) {
+      $$1472 = $38;
+     } else {
+      $$0511586 = 8.0;$$1510587 = $49;
+      while(1) {
+       $52 = (($$1510587) + -1)|0;
+       $53 = $$0511586 * 16.0;
+       $54 = ($52|0)==(0);
+       if ($54) {
+        break;
+       } else {
+        $$0511586 = $53;$$1510587 = $52;
+       }
+      }
+      $55 = HEAP8[$spec$select>>0]|0;
+      $56 = ($55<<24>>24)==(45);
+      if ($56) {
+       $57 = - $38;
+       $58 = $57 - $53;
+       $59 = $53 + $58;
+       $60 = - $59;
+       $$1472 = $60;
+       break;
+      } else {
+       $61 = $38 + $53;
+       $62 = $61 - $53;
+       $$1472 = $62;
+       break;
+      }
+     }
+    } while(0);
+    $63 = HEAP32[$7>>2]|0;
+    $64 = ($63|0)<(0);
+    $65 = (0 - ($63))|0;
+    $66 = $64 ? $65 : $63;
+    $67 = ($66|0)<(0);
+    $68 = $67 << 31 >> 31;
+    $69 = (_fmt_u($66,$68,$11)|0);
+    $70 = ($69|0)==($11|0);
+    if ($70) {
+     $71 = ((($10)) + 11|0);
+     HEAP8[$71>>0] = 48;
+     $$0513 = $71;
+    } else {
+     $$0513 = $69;
+    }
+    $72 = $63 >> 31;
+    $73 = $72 & 2;
+    $74 = (($73) + 43)|0;
+    $75 = $74&255;
+    $76 = ((($$0513)) + -1|0);
+    HEAP8[$76>>0] = $75;
+    $77 = (($5) + 15)|0;
+    $78 = $77&255;
+    $79 = ((($$0513)) + -2|0);
+    HEAP8[$79>>0] = $78;
+    $80 = ($3|0)<(1);
+    $81 = $4 & 8;
+    $82 = ($81|0)==(0);
+    $$0525 = $8;$$2473 = $$1472;
+    while(1) {
+     $83 = (~~(($$2473)));
+     $84 = (28416 + ($83)|0);
+     $85 = HEAP8[$84>>0]|0;
+     $86 = $85&255;
+     $87 = $44 | $86;
+     $88 = $87&255;
+     $89 = ((($$0525)) + 1|0);
+     HEAP8[$$0525>>0] = $88;
+     $90 = (+($83|0));
+     $91 = $$2473 - $90;
+     $92 = $91 * 16.0;
+     $93 = $89;
+     $94 = (($93) - ($9))|0;
+     $95 = ($94|0)==(1);
+     if ($95) {
+      $96 = $92 == 0.0;
+      $or$cond3$not = $80 & $96;
+      $or$cond = $82 & $or$cond3$not;
+      if ($or$cond) {
+       $$1526 = $89;
+      } else {
+       $97 = ((($$0525)) + 2|0);
+       HEAP8[$89>>0] = 46;
+       $$1526 = $97;
+      }
+     } else {
+      $$1526 = $89;
+     }
+     $98 = $92 != 0.0;
+     if ($98) {
+      $$0525 = $$1526;$$2473 = $92;
+     } else {
+      break;
+     }
+    }
+    $99 = ($3|0)==(0);
+    $$pre720 = $$1526;
+    if ($99) {
+     label = 25;
+    } else {
+     $100 = (-2 - ($9))|0;
+     $101 = (($100) + ($$pre720))|0;
+     $102 = ($101|0)<($3|0);
+     if ($102) {
+      $103 = $11;
+      $104 = $79;
+      $105 = (($3) + 2)|0;
+      $106 = (($105) + ($103))|0;
+      $107 = (($106) - ($104))|0;
+      $$0527 = $107;$$pre$phi717Z2D = $103;$$pre$phi718Z2D = $104;
+     } else {
+      label = 25;
+     }
+    }
+    if ((label|0) == 25) {
+     $108 = $11;
+     $109 = $79;
+     $110 = (($108) - ($9))|0;
+     $111 = (($110) - ($109))|0;
+     $112 = (($111) + ($$pre720))|0;
+     $$0527 = $112;$$pre$phi717Z2D = $108;$$pre$phi718Z2D = $109;
+    }
+    $113 = (($$0527) + ($47))|0;
+    _pad($0,32,$2,$113,$4);
+    _out($0,$spec$select,$47);
+    $114 = $4 ^ 65536;
+    _pad($0,48,$2,$113,$114);
+    $115 = (($$pre720) - ($9))|0;
+    _out($0,$8,$115);
+    $116 = (($$pre$phi717Z2D) - ($$pre$phi718Z2D))|0;
+    $117 = (($115) + ($116))|0;
+    $118 = (($$0527) - ($117))|0;
+    _pad($0,48,$118,0,0);
+    _out($0,$79,$116);
+    $119 = $4 ^ 8192;
+    _pad($0,32,$2,$113,$119);
+    $$sink757 = $113;
+    break;
+   }
+   $120 = ($3|0)<(0);
+   $spec$select539 = $120 ? 6 : $3;
+   if ($39) {
+    $121 = $38 * 268435456.0;
+    $122 = HEAP32[$7>>2]|0;
+    $123 = (($122) + -28)|0;
+    HEAP32[$7>>2] = $123;
+    $$3 = $121;$$pr = $123;
+   } else {
+    $$pre = HEAP32[$7>>2]|0;
+    $$3 = $38;$$pr = $$pre;
+   }
+   $124 = ($$pr|0)<(0);
+   $125 = ((($6)) + 288|0);
+   $$0498 = $124 ? $6 : $125;
+   $$1499 = $$0498;$$4 = $$3;
+   while(1) {
+    $126 = (~~(($$4))>>>0);
+    HEAP32[$$1499>>2] = $126;
+    $127 = ((($$1499)) + 4|0);
+    $128 = (+($126>>>0));
+    $129 = $$4 - $128;
+    $130 = $129 * 1.0E+9;
+    $131 = $130 != 0.0;
+    if ($131) {
+     $$1499 = $127;$$4 = $130;
+    } else {
+     break;
+    }
+   }
+   $132 = $$0498;
+   $133 = ($$pr|0)>(0);
+   if ($133) {
+    $$1482683 = $$0498;$$2500682 = $127;$135 = $$pr;
+    while(1) {
+     $134 = ($135|0)<(29);
+     $136 = $134 ? $135 : 29;
+     $$0488669 = ((($$2500682)) + -4|0);
+     $137 = ($$0488669>>>0)<($$1482683>>>0);
+     if ($137) {
+      $$2483 = $$1482683;
+     } else {
+      $$0488671 = $$0488669;$$0497670 = 0;
+      while(1) {
+       $138 = HEAP32[$$0488671>>2]|0;
+       $139 = (_bitshift64Shl(($138|0),0,($136|0))|0);
+       $140 = tempRet0;
+       $141 = (_i64Add(($139|0),($140|0),($$0497670|0),0)|0);
+       $142 = tempRet0;
+       $143 = (___udivdi3(($141|0),($142|0),1000000000,0)|0);
+       $144 = tempRet0;
+       $145 = (___muldi3(($143|0),($144|0),1000000000,0)|0);
+       $146 = tempRet0;
+       $147 = (_i64Subtract(($141|0),($142|0),($145|0),($146|0))|0);
+       $148 = tempRet0;
+       HEAP32[$$0488671>>2] = $147;
+       $$0488 = ((($$0488671)) + -4|0);
+       $149 = ($$0488>>>0)<($$1482683>>>0);
+       if ($149) {
+        break;
+       } else {
+        $$0488671 = $$0488;$$0497670 = $143;
+       }
+      }
+      $150 = ($143|0)==(0);
+      if ($150) {
+       $$2483 = $$1482683;
+      } else {
+       $151 = ((($$1482683)) + -4|0);
+       HEAP32[$151>>2] = $143;
+       $$2483 = $151;
+      }
+     }
+     $152 = ($$2500682>>>0)>($$2483>>>0);
+     L57: do {
+      if ($152) {
+       $$3501676 = $$2500682;
+       while(1) {
+        $154 = ((($$3501676)) + -4|0);
+        $155 = HEAP32[$154>>2]|0;
+        $156 = ($155|0)==(0);
+        if (!($156)) {
+         $$3501$lcssa = $$3501676;
+         break L57;
+        }
+        $153 = ($154>>>0)>($$2483>>>0);
+        if ($153) {
+         $$3501676 = $154;
+        } else {
+         $$3501$lcssa = $154;
+         break;
+        }
+       }
+      } else {
+       $$3501$lcssa = $$2500682;
+      }
+     } while(0);
+     $157 = HEAP32[$7>>2]|0;
+     $158 = (($157) - ($136))|0;
+     HEAP32[$7>>2] = $158;
+     $159 = ($158|0)>(0);
+     if ($159) {
+      $$1482683 = $$2483;$$2500682 = $$3501$lcssa;$135 = $158;
+     } else {
+      $$1482$lcssa = $$2483;$$2500$lcssa = $$3501$lcssa;$$pr564 = $158;
+      break;
+     }
+    }
+   } else {
+    $$1482$lcssa = $$0498;$$2500$lcssa = $127;$$pr564 = $$pr;
+   }
+   $160 = ($$pr564|0)<(0);
+   if ($160) {
+    $161 = (($spec$select539) + 25)|0;
+    $162 = (($161|0) / 9)&-1;
+    $163 = (($162) + 1)|0;
+    $164 = ($42|0)==(102);
+    $$3484663 = $$1482$lcssa;$$4502662 = $$2500$lcssa;$166 = $$pr564;
+    while(1) {
+     $165 = (0 - ($166))|0;
+     $167 = ($165|0)<(9);
+     $168 = $167 ? $165 : 9;
+     $169 = ($$3484663>>>0)<($$4502662>>>0);
+     if ($169) {
+      $173 = 1 << $168;
+      $174 = (($173) + -1)|0;
+      $175 = 1000000000 >>> $168;
+      $$0487657 = 0;$$1489656 = $$3484663;
+      while(1) {
+       $176 = HEAP32[$$1489656>>2]|0;
+       $177 = $176 & $174;
+       $178 = $176 >>> $168;
+       $179 = (($178) + ($$0487657))|0;
+       HEAP32[$$1489656>>2] = $179;
+       $180 = Math_imul($177, $175)|0;
+       $181 = ((($$1489656)) + 4|0);
+       $182 = ($181>>>0)<($$4502662>>>0);
+       if ($182) {
+        $$0487657 = $180;$$1489656 = $181;
+       } else {
+        break;
+       }
+      }
+      $183 = HEAP32[$$3484663>>2]|0;
+      $184 = ($183|0)==(0);
+      $185 = ((($$3484663)) + 4|0);
+      $spec$select540 = $184 ? $185 : $$3484663;
+      $186 = ($180|0)==(0);
+      if ($186) {
+       $$5503 = $$4502662;$spec$select540723 = $spec$select540;
+      } else {
+       $187 = ((($$4502662)) + 4|0);
+       HEAP32[$$4502662>>2] = $180;
+       $$5503 = $187;$spec$select540723 = $spec$select540;
+      }
+     } else {
+      $170 = HEAP32[$$3484663>>2]|0;
+      $171 = ($170|0)==(0);
+      $172 = ((($$3484663)) + 4|0);
+      $spec$select540722 = $171 ? $172 : $$3484663;
+      $$5503 = $$4502662;$spec$select540723 = $spec$select540722;
+     }
+     $188 = $164 ? $$0498 : $spec$select540723;
+     $189 = $$5503;
+     $190 = $188;
+     $191 = (($189) - ($190))|0;
+     $192 = $191 >> 2;
+     $193 = ($192|0)>($163|0);
+     $194 = (($188) + ($163<<2)|0);
+     $spec$select541 = $193 ? $194 : $$5503;
+     $195 = HEAP32[$7>>2]|0;
+     $196 = (($195) + ($168))|0;
+     HEAP32[$7>>2] = $196;
+     $197 = ($196|0)<(0);
+     if ($197) {
+      $$3484663 = $spec$select540723;$$4502662 = $spec$select541;$166 = $196;
+     } else {
+      $$3484$lcssa = $spec$select540723;$$4502$lcssa = $spec$select541;
+      break;
+     }
+    }
+   } else {
+    $$3484$lcssa = $$1482$lcssa;$$4502$lcssa = $$2500$lcssa;
+   }
+   $198 = ($$3484$lcssa>>>0)<($$4502$lcssa>>>0);
+   if ($198) {
+    $199 = $$3484$lcssa;
+    $200 = (($132) - ($199))|0;
+    $201 = $200 >> 2;
+    $202 = ($201*9)|0;
+    $203 = HEAP32[$$3484$lcssa>>2]|0;
+    $204 = ($203>>>0)<(10);
+    if ($204) {
+     $$1517 = $202;
+    } else {
+     $$0516652 = $202;$$0532651 = 10;
+     while(1) {
+      $205 = ($$0532651*10)|0;
+      $206 = (($$0516652) + 1)|0;
+      $207 = ($203>>>0)<($205>>>0);
+      if ($207) {
+       $$1517 = $206;
+       break;
+      } else {
+       $$0516652 = $206;$$0532651 = $205;
+      }
+     }
+    }
+   } else {
+    $$1517 = 0;
+   }
+   $208 = ($42|0)==(102);
+   $209 = $208 ? 0 : $$1517;
+   $210 = (($spec$select539) - ($209))|0;
+   $211 = ($42|0)==(103);
+   $212 = ($spec$select539|0)!=(0);
+   $213 = $212 & $211;
+   $$neg = $213 << 31 >> 31;
+   $214 = (($210) + ($$neg))|0;
+   $215 = $$4502$lcssa;
+   $216 = (($215) - ($132))|0;
+   $217 = $216 >> 2;
+   $218 = ($217*9)|0;
+   $219 = (($218) + -9)|0;
+   $220 = ($214|0)<($219|0);
+   if ($220) {
+    $221 = ((($$0498)) + 4|0);
+    $222 = (($214) + 9216)|0;
+    $223 = (($222|0) / 9)&-1;
+    $224 = (($223) + -1024)|0;
+    $225 = (($221) + ($224<<2)|0);
+    $226 = ($223*9)|0;
+    $227 = (($222) - ($226))|0;
+    $228 = ($227|0)<(8);
+    if ($228) {
+     $$0529$in646 = $227;$$1533645 = 10;
+     while(1) {
+      $$0529 = (($$0529$in646) + 1)|0;
+      $229 = ($$1533645*10)|0;
+      $230 = ($$0529$in646|0)<(7);
+      if ($230) {
+       $$0529$in646 = $$0529;$$1533645 = $229;
+      } else {
+       $$1533$lcssa = $229;
+       break;
+      }
+     }
+    } else {
+     $$1533$lcssa = 10;
+    }
+    $231 = HEAP32[$225>>2]|0;
+    $232 = (($231>>>0) / ($$1533$lcssa>>>0))&-1;
+    $233 = Math_imul($232, $$1533$lcssa)|0;
+    $234 = (($231) - ($233))|0;
+    $235 = ($234|0)==(0);
+    $236 = ((($225)) + 4|0);
+    $237 = ($236|0)==($$4502$lcssa|0);
+    $or$cond543 = $237 & $235;
+    if ($or$cond543) {
+     $$4492 = $225;$$4520 = $$1517;$$8 = $$3484$lcssa;
+    } else {
+     $238 = $232 & 1;
+     $239 = ($238|0)==(0);
+     $spec$select544 = $239 ? 9007199254740992.0 : 9007199254740994.0;
+     $240 = $$1533$lcssa >>> 1;
+     $241 = ($234>>>0)<($240>>>0);
+     $242 = ($234|0)==($240|0);
+     $or$cond546 = $237 & $242;
+     $spec$select561 = $or$cond546 ? 1.0 : 1.5;
+     $spec$select567 = $241 ? 0.5 : $spec$select561;
+     $243 = ($$0522|0)==(0);
+     if ($243) {
+      $$1467 = $spec$select567;$$1469 = $spec$select544;
+     } else {
+      $244 = HEAP8[$$0523>>0]|0;
+      $245 = ($244<<24>>24)==(45);
+      $246 = - $spec$select544;
+      $247 = - $spec$select567;
+      $spec$select568 = $245 ? $246 : $spec$select544;
+      $spec$select569 = $245 ? $247 : $spec$select567;
+      $$1467 = $spec$select569;$$1469 = $spec$select568;
+     }
+     $248 = (($231) - ($234))|0;
+     HEAP32[$225>>2] = $248;
+     $249 = $$1469 + $$1467;
+     $250 = $249 != $$1469;
+     if ($250) {
+      $251 = (($248) + ($$1533$lcssa))|0;
+      HEAP32[$225>>2] = $251;
+      $252 = ($251>>>0)>(999999999);
+      if ($252) {
+       $$2490638 = $225;$$5486639 = $$3484$lcssa;
+       while(1) {
+        $253 = ((($$2490638)) + -4|0);
+        HEAP32[$$2490638>>2] = 0;
+        $254 = ($253>>>0)<($$5486639>>>0);
+        if ($254) {
+         $255 = ((($$5486639)) + -4|0);
+         HEAP32[$255>>2] = 0;
+         $$6 = $255;
+        } else {
+         $$6 = $$5486639;
+        }
+        $256 = HEAP32[$253>>2]|0;
+        $257 = (($256) + 1)|0;
+        HEAP32[$253>>2] = $257;
+        $258 = ($257>>>0)>(999999999);
+        if ($258) {
+         $$2490638 = $253;$$5486639 = $$6;
+        } else {
+         $$2490$lcssa = $253;$$5486$lcssa = $$6;
+         break;
+        }
+       }
+      } else {
+       $$2490$lcssa = $225;$$5486$lcssa = $$3484$lcssa;
+      }
+      $259 = $$5486$lcssa;
+      $260 = (($132) - ($259))|0;
+      $261 = $260 >> 2;
+      $262 = ($261*9)|0;
+      $263 = HEAP32[$$5486$lcssa>>2]|0;
+      $264 = ($263>>>0)<(10);
+      if ($264) {
+       $$4492 = $$2490$lcssa;$$4520 = $262;$$8 = $$5486$lcssa;
+      } else {
+       $$2518634 = $262;$$2534633 = 10;
+       while(1) {
+        $265 = ($$2534633*10)|0;
+        $266 = (($$2518634) + 1)|0;
+        $267 = ($263>>>0)<($265>>>0);
+        if ($267) {
+         $$4492 = $$2490$lcssa;$$4520 = $266;$$8 = $$5486$lcssa;
+         break;
+        } else {
+         $$2518634 = $266;$$2534633 = $265;
+        }
+       }
+      }
+     } else {
+      $$4492 = $225;$$4520 = $$1517;$$8 = $$3484$lcssa;
+     }
+    }
+    $268 = ((($$4492)) + 4|0);
+    $269 = ($$4502$lcssa>>>0)>($268>>>0);
+    $spec$select547 = $269 ? $268 : $$4502$lcssa;
+    $$5521 = $$4520;$$8506 = $spec$select547;$$9 = $$8;
+   } else {
+    $$5521 = $$1517;$$8506 = $$4502$lcssa;$$9 = $$3484$lcssa;
+   }
+   $270 = (0 - ($$5521))|0;
+   $271 = ($$8506>>>0)>($$9>>>0);
+   L109: do {
+    if ($271) {
+     $$9507625 = $$8506;
+     while(1) {
+      $273 = ((($$9507625)) + -4|0);
+      $274 = HEAP32[$273>>2]|0;
+      $275 = ($274|0)==(0);
+      if (!($275)) {
+       $$9507$lcssa = $$9507625;$$lcssa583 = 1;
+       break L109;
+      }
+      $272 = ($273>>>0)>($$9>>>0);
+      if ($272) {
+       $$9507625 = $273;
+      } else {
+       $$9507$lcssa = $273;$$lcssa583 = 0;
+       break;
+      }
+     }
+    } else {
+     $$9507$lcssa = $$8506;$$lcssa583 = 0;
+    }
+   } while(0);
+   do {
+    if ($211) {
+     $not$ = $212 ^ 1;
+     $276 = $not$&1;
+     $spec$select548 = (($spec$select539) + ($276))|0;
+     $277 = ($spec$select548|0)>($$5521|0);
+     $278 = ($$5521|0)>(-5);
+     $or$cond6 = $277 & $278;
+     if ($or$cond6) {
+      $279 = (($5) + -1)|0;
+      $$neg571 = (($spec$select548) + -1)|0;
+      $280 = (($$neg571) - ($$5521))|0;
+      $$0479 = $279;$$2476 = $280;
+     } else {
+      $281 = (($5) + -2)|0;
+      $282 = (($spec$select548) + -1)|0;
+      $$0479 = $281;$$2476 = $282;
+     }
+     $283 = $4 & 8;
+     $284 = ($283|0)==(0);
+     if ($284) {
+      if ($$lcssa583) {
+       $285 = ((($$9507$lcssa)) + -4|0);
+       $286 = HEAP32[$285>>2]|0;
+       $287 = ($286|0)==(0);
+       if ($287) {
+        $$2531 = 9;
+       } else {
+        $288 = (($286>>>0) % 10)&-1;
+        $289 = ($288|0)==(0);
+        if ($289) {
+         $$1530621 = 0;$$3535620 = 10;
+         while(1) {
+          $290 = ($$3535620*10)|0;
+          $291 = (($$1530621) + 1)|0;
+          $292 = (($286>>>0) % ($290>>>0))&-1;
+          $293 = ($292|0)==(0);
+          if ($293) {
+           $$1530621 = $291;$$3535620 = $290;
+          } else {
+           $$2531 = $291;
+           break;
+          }
+         }
+        } else {
+         $$2531 = 0;
+        }
+       }
+      } else {
+       $$2531 = 9;
+      }
+      $294 = $$0479 | 32;
+      $295 = ($294|0)==(102);
+      $296 = $$9507$lcssa;
+      $297 = (($296) - ($132))|0;
+      $298 = $297 >> 2;
+      $299 = ($298*9)|0;
+      $300 = (($299) + -9)|0;
+      if ($295) {
+       $301 = (($300) - ($$2531))|0;
+       $302 = ($301|0)>(0);
+       $spec$select549 = $302 ? $301 : 0;
+       $303 = ($$2476|0)<($spec$select549|0);
+       $spec$select562 = $303 ? $$2476 : $spec$select549;
+       $$1480 = $$0479;$$3477 = $spec$select562;
+       break;
+      } else {
+       $304 = (($300) + ($$5521))|0;
+       $305 = (($304) - ($$2531))|0;
+       $306 = ($305|0)>(0);
+       $spec$select551 = $306 ? $305 : 0;
+       $307 = ($$2476|0)<($spec$select551|0);
+       $spec$select563 = $307 ? $$2476 : $spec$select551;
+       $$1480 = $$0479;$$3477 = $spec$select563;
+       break;
+      }
+     } else {
+      $$1480 = $$0479;$$3477 = $$2476;
+     }
+    } else {
+     $$1480 = $5;$$3477 = $spec$select539;
+    }
+   } while(0);
+   $308 = ($$3477|0)!=(0);
+   $309 = $4 >>> 3;
+   $$lobit = $309 & 1;
+   $310 = $308 ? 1 : $$lobit;
+   $311 = $$1480 | 32;
+   $312 = ($311|0)==(102);
+   if ($312) {
+    $313 = ($$5521|0)>(0);
+    $314 = $313 ? $$5521 : 0;
+    $$2515 = 0;$$pn = $314;
+   } else {
+    $315 = ($$5521|0)<(0);
+    $316 = $315 ? $270 : $$5521;
+    $317 = ($316|0)<(0);
+    $318 = $317 << 31 >> 31;
+    $319 = (_fmt_u($316,$318,$11)|0);
+    $320 = $11;
+    $321 = $319;
+    $322 = (($320) - ($321))|0;
+    $323 = ($322|0)<(2);
+    if ($323) {
+     $$1514614 = $319;
+     while(1) {
+      $324 = ((($$1514614)) + -1|0);
+      HEAP8[$324>>0] = 48;
+      $325 = $324;
+      $326 = (($320) - ($325))|0;
+      $327 = ($326|0)<(2);
+      if ($327) {
+       $$1514614 = $324;
+      } else {
+       $$1514$lcssa = $324;
+       break;
+      }
+     }
+    } else {
+     $$1514$lcssa = $319;
+    }
+    $328 = $$5521 >> 31;
+    $329 = $328 & 2;
+    $330 = (($329) + 43)|0;
+    $331 = $330&255;
+    $332 = ((($$1514$lcssa)) + -1|0);
+    HEAP8[$332>>0] = $331;
+    $333 = $$1480&255;
+    $334 = ((($$1514$lcssa)) + -2|0);
+    HEAP8[$334>>0] = $333;
+    $335 = $334;
+    $336 = (($320) - ($335))|0;
+    $$2515 = $334;$$pn = $336;
+   }
+   $337 = (($$0522) + 1)|0;
+   $338 = (($337) + ($$3477))|0;
+   $$1528 = (($338) + ($310))|0;
+   $339 = (($$1528) + ($$pn))|0;
+   _pad($0,32,$2,$339,$4);
+   _out($0,$$0523,$$0522);
+   $340 = $4 ^ 65536;
+   _pad($0,48,$2,$339,$340);
+   if ($312) {
+    $341 = ($$9>>>0)>($$0498>>>0);
+    $spec$select554 = $341 ? $$0498 : $$9;
+    $342 = ((($8)) + 9|0);
+    $343 = $342;
+    $344 = ((($8)) + 8|0);
+    $$5493603 = $spec$select554;
+    while(1) {
+     $345 = HEAP32[$$5493603>>2]|0;
+     $346 = (_fmt_u($345,0,$342)|0);
+     $347 = ($$5493603|0)==($spec$select554|0);
+     if ($347) {
+      $353 = ($346|0)==($342|0);
+      if ($353) {
+       HEAP8[$344>>0] = 48;
+       $$1465 = $344;
+      } else {
+       $$1465 = $346;
+      }
+     } else {
+      $348 = ($346>>>0)>($8>>>0);
+      if ($348) {
+       $349 = $346;
+       $350 = (($349) - ($9))|0;
+       _memset(($8|0),48,($350|0))|0;
+       $$0464599 = $346;
+       while(1) {
+        $351 = ((($$0464599)) + -1|0);
+        $352 = ($351>>>0)>($8>>>0);
+        if ($352) {
+         $$0464599 = $351;
+        } else {
+         $$1465 = $351;
+         break;
+        }
+       }
+      } else {
+       $$1465 = $346;
+      }
+     }
+     $354 = $$1465;
+     $355 = (($343) - ($354))|0;
+     _out($0,$$1465,$355);
+     $356 = ((($$5493603)) + 4|0);
+     $357 = ($356>>>0)>($$0498>>>0);
+     if ($357) {
+      break;
+     } else {
+      $$5493603 = $356;
+     }
+    }
+    $$not = $308 ^ 1;
+    $358 = $4 & 8;
+    $359 = ($358|0)==(0);
+    $or$cond556 = $359 & $$not;
+    if (!($or$cond556)) {
+     _out($0,70665,1);
+    }
+    $360 = ($356>>>0)<($$9507$lcssa>>>0);
+    $361 = ($$3477|0)>(0);
+    $362 = $360 & $361;
+    if ($362) {
+     $$4478594 = $$3477;$$6494593 = $356;
+     while(1) {
+      $363 = HEAP32[$$6494593>>2]|0;
+      $364 = (_fmt_u($363,0,$342)|0);
+      $365 = ($364>>>0)>($8>>>0);
+      if ($365) {
+       $366 = $364;
+       $367 = (($366) - ($9))|0;
+       _memset(($8|0),48,($367|0))|0;
+       $$0463588 = $364;
+       while(1) {
+        $368 = ((($$0463588)) + -1|0);
+        $369 = ($368>>>0)>($8>>>0);
+        if ($369) {
+         $$0463588 = $368;
+        } else {
+         $$0463$lcssa = $368;
+         break;
+        }
+       }
+      } else {
+       $$0463$lcssa = $364;
+      }
+      $370 = ($$4478594|0)<(9);
+      $371 = $370 ? $$4478594 : 9;
+      _out($0,$$0463$lcssa,$371);
+      $372 = ((($$6494593)) + 4|0);
+      $373 = (($$4478594) + -9)|0;
+      $374 = ($372>>>0)<($$9507$lcssa>>>0);
+      $375 = ($$4478594|0)>(9);
+      $376 = $374 & $375;
+      if ($376) {
+       $$4478594 = $373;$$6494593 = $372;
+      } else {
+       $$4478$lcssa = $373;
+       break;
+      }
+     }
+    } else {
+     $$4478$lcssa = $$3477;
+    }
+    $377 = (($$4478$lcssa) + 9)|0;
+    _pad($0,48,$377,9,0);
+   } else {
+    $378 = ((($$9)) + 4|0);
+    $spec$select557 = $$lcssa583 ? $$9507$lcssa : $378;
+    $379 = ($$9>>>0)<($spec$select557>>>0);
+    $380 = ($$3477|0)>(-1);
+    $381 = $379 & $380;
+    if ($381) {
+     $382 = ((($8)) + 9|0);
+     $383 = $4 & 8;
+     $384 = ($383|0)==(0);
+     $385 = $382;
+     $386 = (0 - ($9))|0;
+     $387 = ((($8)) + 8|0);
+     $$5609 = $$3477;$$7495608 = $$9;
+     while(1) {
+      $388 = HEAP32[$$7495608>>2]|0;
+      $389 = (_fmt_u($388,0,$382)|0);
+      $390 = ($389|0)==($382|0);
+      if ($390) {
+       HEAP8[$387>>0] = 48;
+       $$0 = $387;
+      } else {
+       $$0 = $389;
+      }
+      $391 = ($$7495608|0)==($$9|0);
+      do {
+       if ($391) {
+        $395 = ((($$0)) + 1|0);
+        _out($0,$$0,1);
+        $396 = ($$5609|0)<(1);
+        $or$cond559 = $384 & $396;
+        if ($or$cond559) {
+         $$2 = $395;
+         break;
+        }
+        _out($0,70665,1);
+        $$2 = $395;
+       } else {
+        $392 = ($$0>>>0)>($8>>>0);
+        if (!($392)) {
+         $$2 = $$0;
+         break;
+        }
+        $scevgep711 = (($$0) + ($386)|0);
+        $scevgep711712 = $scevgep711;
+        _memset(($8|0),48,($scevgep711712|0))|0;
+        $$1604 = $$0;
+        while(1) {
+         $393 = ((($$1604)) + -1|0);
+         $394 = ($393>>>0)>($8>>>0);
+         if ($394) {
+          $$1604 = $393;
+         } else {
+          $$2 = $393;
+          break;
+         }
+        }
+       }
+      } while(0);
+      $397 = $$2;
+      $398 = (($385) - ($397))|0;
+      $399 = ($$5609|0)>($398|0);
+      $400 = $399 ? $398 : $$5609;
+      _out($0,$$2,$400);
+      $401 = (($$5609) - ($398))|0;
+      $402 = ((($$7495608)) + 4|0);
+      $403 = ($402>>>0)<($spec$select557>>>0);
+      $404 = ($401|0)>(-1);
+      $405 = $403 & $404;
+      if ($405) {
+       $$5609 = $401;$$7495608 = $402;
+      } else {
+       $$5$lcssa = $401;
+       break;
+      }
+     }
+    } else {
+     $$5$lcssa = $$3477;
+    }
+    $406 = (($$5$lcssa) + 18)|0;
+    _pad($0,48,$406,18,0);
+    $407 = $11;
+    $408 = $$2515;
+    $409 = (($407) - ($408))|0;
+    _out($0,$$2515,$409);
+   }
+   $410 = $4 ^ 8192;
+   _pad($0,32,$2,$339,$410);
+   $$sink757 = $339;
+  }
+ } while(0);
+ $411 = ($$sink757|0)<($2|0);
+ $$560 = $411 ? $2 : $$sink757;
+ STACKTOP = sp;return ($$560|0);
+}
+function ___DOUBLE_BITS($0) {
+ $0 = +$0;
+ var $1 = 0, $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ HEAPF64[tempDoublePtr>>3] = $0;$1 = HEAP32[tempDoublePtr>>2]|0;
+ $2 = HEAP32[tempDoublePtr+4>>2]|0;
+ tempRet0 = ($2);
+ return ($1|0);
+}
+function _frexpl($0,$1) {
+ $0 = +$0;
+ $1 = $1|0;
+ var $2 = 0.0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (+_frexp($0,$1));
+ return (+$2);
+}
+function _frexp($0,$1) {
+ $0 = +$0;
+ $1 = $1|0;
+ var $$0 = 0.0, $$016 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 
= 0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 
0.0, $storemerge = 0, $trunc$clear = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0;
+ $3 = HEAP32[tempDoublePtr+4>>2]|0;
+ $4 = (_bitshift64Lshr(($2|0),($3|0),52)|0);
+ $5 = tempRet0;
+ $6 = $4&65535;
+ $trunc$clear = $6 & 2047;
+ switch ($trunc$clear<<16>>16) {
+ case 0:  {
+  $7 = $0 != 0.0;
+  if ($7) {
+   $8 = $0 * 1.8446744073709552E+19;
+   $9 = (+_frexp($8,$1));
+   $10 = HEAP32[$1>>2]|0;
+   $11 = (($10) + -64)|0;
+   $$016 = $9;$storemerge = $11;
+  } else {
+   $$016 = $0;$storemerge = 0;
+  }
+  HEAP32[$1>>2] = $storemerge;
+  $$0 = $$016;
+  break;
+ }
+ case 2047:  {
+  $$0 = $0;
+  break;
+ }
+ default: {
+  $12 = $4 & 2047;
+  $13 = (($12) + -1022)|0;
+  HEAP32[$1>>2] = $13;
+  $14 = $3 & -2146435073;
+  $15 = $14 | 1071644672;
+  HEAP32[tempDoublePtr>>2] = $2;HEAP32[tempDoublePtr+4>>2] = $15;$16 = 
+HEAPF64[tempDoublePtr>>3];
+  $$0 = $16;
+ }
+ }
+ return (+$$0);
+}
+function ___pthread_self_568() {
+ var $0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = (_pthread_self()|0);
+ return ($0|0);
+}
+function ___strerror_l($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$012$lcssa = 0, $$01214 = 0, $$016 = 0, $$113 = 0, $$115 = 0, $$115$ph = 
0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 
0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
+ var $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $$016 = 0;
+ while(1) {
+  $2 = (28432 + ($$016)|0);
+  $3 = HEAP8[$2>>0]|0;
+  $4 = $3&255;
+  $5 = ($4|0)==($0|0);
+  if ($5) {
+   label = 4;
+   break;
+  }
+  $6 = (($$016) + 1)|0;
+  $7 = ($6|0)==(87);
+  if ($7) {
+   $$115$ph = 87;
+   label = 5;
+   break;
+  } else {
+   $$016 = $6;
+  }
+ }
+ if ((label|0) == 4) {
+  $8 = ($$016|0)==(0);
+  if ($8) {
+   $$012$lcssa = 28528;
+  } else {
+   $$115$ph = $$016;
+   label = 5;
+  }
+ }
+ if ((label|0) == 5) {
+  $$01214 = 28528;$$115 = $$115$ph;
+  while(1) {
+   $$113 = $$01214;
+   while(1) {
+    $9 = HEAP8[$$113>>0]|0;
+    $10 = ($9<<24>>24)==(0);
+    $11 = ((($$113)) + 1|0);
+    if ($10) {
+     break;
+    } else {
+     $$113 = $11;
+    }
+   }
+   $12 = (($$115) + -1)|0;
+   $13 = ($12|0)==(0);
+   if ($13) {
+    $$012$lcssa = $11;
+    break;
+   } else {
+    $$01214 = $11;$$115 = $12;
+   }
+  }
+ }
+ $14 = ((($1)) + 20|0);
+ $15 = HEAP32[$14>>2]|0;
+ $16 = (___lctrans($$012$lcssa,$15)|0);
+ return ($16|0);
+}
+function ___lctrans($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (___lctrans_impl($0,$1)|0);
+ return ($2|0);
+}
+function ___lctrans_impl($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($1|0)==(0|0);
+ if ($2) {
+  $$0 = 0;
+ } else {
+  $3 = HEAP32[$1>>2]|0;
+  $4 = ((($1)) + 4|0);
+  $5 = HEAP32[$4>>2]|0;
+  $6 = (___mo_lookup($3,$5,$0)|0);
+  $$0 = $6;
+ }
+ $7 = ($$0|0)==(0|0);
+ $8 = $7 ? $0 : $$0;
+ return ($8|0);
+}
+function ___mo_lookup($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$090 = 0, $$094 = 0, $$191 = 0, $$195 = 0, $$4 = 0, $10 = 0, $11 = 0, 
$12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 
0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0;
+ var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 
0, $59 = 0, $6 = 0, $60 = 0;
+ var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, 
$or$cond102 = 0, $or$cond104 = 0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = HEAP32[$0>>2]|0;
+ $4 = (($3) + 1794895138)|0;
+ $5 = ((($0)) + 8|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = (_swapc($6,$4)|0);
+ $8 = ((($0)) + 12|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = (_swapc($9,$4)|0);
+ $11 = ((($0)) + 16|0);
+ $12 = HEAP32[$11>>2]|0;
+ $13 = (_swapc($12,$4)|0);
+ $14 = $1 >>> 2;
+ $15 = ($7>>>0)<($14>>>0);
+ L1: do {
+  if ($15) {
+   $16 = $7 << 2;
+   $17 = (($1) - ($16))|0;
+   $18 = ($10>>>0)<($17>>>0);
+   $19 = ($13>>>0)<($17>>>0);
+   $or$cond = $18 & $19;
+   if ($or$cond) {
+    $20 = $13 | $10;
+    $21 = $20 & 3;
+    $22 = ($21|0)==(0);
+    if ($22) {
+     $23 = $10 >>> 2;
+     $24 = $13 >>> 2;
+     $$090 = 0;$$094 = $7;
+     while(1) {
+      $25 = $$094 >>> 1;
+      $26 = (($$090) + ($25))|0;
+      $27 = $26 << 1;
+      $28 = (($27) + ($23))|0;
+      $29 = (($0) + ($28<<2)|0);
+      $30 = HEAP32[$29>>2]|0;
+      $31 = (_swapc($30,$4)|0);
+      $32 = (($28) + 1)|0;
+      $33 = (($0) + ($32<<2)|0);
+      $34 = HEAP32[$33>>2]|0;
+      $35 = (_swapc($34,$4)|0);
+      $36 = ($35>>>0)<($1>>>0);
+      $37 = (($1) - ($35))|0;
+      $38 = ($31>>>0)<($37>>>0);
+      $or$cond102 = $36 & $38;
+      if (!($or$cond102)) {
+       $$4 = 0;
+       break L1;
+      }
+      $39 = (($35) + ($31))|0;
+      $40 = (($0) + ($39)|0);
+      $41 = HEAP8[$40>>0]|0;
+      $42 = ($41<<24>>24)==(0);
+      if (!($42)) {
+       $$4 = 0;
+       break L1;
+      }
+      $43 = (($0) + ($35)|0);
+      $44 = (_strcmp($2,$43)|0);
+      $45 = ($44|0)==(0);
+      if ($45) {
+       break;
+      }
+      $62 = ($$094|0)==(1);
+      $63 = ($44|0)<(0);
+      if ($62) {
+       $$4 = 0;
+       break L1;
+      }
+      $$191 = $63 ? $$090 : $26;
+      $64 = (($$094) - ($25))|0;
+      $$195 = $63 ? $25 : $64;
+      $$090 = $$191;$$094 = $$195;
+     }
+     $46 = (($27) + ($24))|0;
+     $47 = (($0) + ($46<<2)|0);
+     $48 = HEAP32[$47>>2]|0;
+     $49 = (_swapc($48,$4)|0);
+     $50 = (($46) + 1)|0;
+     $51 = (($0) + ($50<<2)|0);
+     $52 = HEAP32[$51>>2]|0;
+     $53 = (_swapc($52,$4)|0);
+     $54 = ($53>>>0)<($1>>>0);
+     $55 = (($1) - ($53))|0;
+     $56 = ($49>>>0)<($55>>>0);
+     $or$cond104 = $54 & $56;
+     if ($or$cond104) {
+      $57 = (($0) + ($53)|0);
+      $58 = (($53) + ($49))|0;
+      $59 = (($0) + ($58)|0);
+      $60 = HEAP8[$59>>0]|0;
+      $61 = ($60<<24>>24)==(0);
+      $spec$select = $61 ? $57 : 0;
+      $$4 = $spec$select;
+     } else {
+      $$4 = 0;
+     }
+    } else {
+     $$4 = 0;
+    }
+   } else {
+    $$4 = 0;
+   }
+  } else {
+   $$4 = 0;
+  }
+ } while(0);
+ return ($$4|0);
+}
+function _swapc($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($1|0)==(0);
+ $3 = (_llvm_bswap_i32(($0|0))|0);
+ $spec$select = $2 ? $0 : $3;
+ return ($spec$select|0);
+}
+function _strcmp($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$011 = 0, $$0710 = 0, $$lcssa = 0, $$lcssa8 = 0, $10 = 0, $11 = 0, $12 = 
0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 
= 0, $or$cond = 0, $or$cond9 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ $2 = HEAP8[$0>>0]|0;
+ $3 = HEAP8[$1>>0]|0;
+ $4 = ($2<<24>>24)!=($3<<24>>24);
+ $5 = ($2<<24>>24)==(0);
+ $or$cond9 = $5 | $4;
+ if ($or$cond9) {
+  $$lcssa = $3;$$lcssa8 = $2;
+ } else {
+  $$011 = $1;$$0710 = $0;
+  while(1) {
+   $6 = ((($$0710)) + 1|0);
+   $7 = ((($$011)) + 1|0);
+   $8 = HEAP8[$6>>0]|0;
+   $9 = HEAP8[$7>>0]|0;
+   $10 = ($8<<24>>24)!=($9<<24>>24);
+   $11 = ($8<<24>>24)==(0);
+   $or$cond = $11 | $10;
+   if ($or$cond) {
+    $$lcssa = $9;$$lcssa8 = $8;
+    break;
+   } else {
+    $$011 = $7;$$0710 = $6;
+   }
+  }
+ }
+ $12 = $$lcssa8&255;
+ $13 = $$lcssa&255;
+ $14 = (($12) - ($13))|0;
+ return ($14|0);
+}
+function _sn_write($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$cast = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 
0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($0)) + 16|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ((($0)) + 20|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = (($4) - ($6))|0;
+ $8 = ($7>>>0)>($2>>>0);
+ $spec$select = $8 ? $2 : $7;
+ $$cast = $6;
+ (_memcpy(($$cast|0),($1|0),($spec$select|0))|0);
+ $9 = HEAP32[$5>>2]|0;
+ $10 = (($9) + ($spec$select)|0);
+ HEAP32[$5>>2] = $10;
+ return ($2|0);
+}
+function _wcschr($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $$09 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 
0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($1|0)==(0);
+ if ($2) {
+  $3 = (_wcslen($0)|0);
+  $4 = (($0) + ($3<<2)|0);
+  $$0 = $4;
+ } else {
+  $$09 = $0;
+  while(1) {
+   $5 = HEAP32[$$09>>2]|0;
+   $6 = ($5|0)==(0);
+   $7 = ($5|0)==($1|0);
+   $or$cond = $6 | $7;
+   $8 = ((($$09)) + 4|0);
+   if ($or$cond) {
+    break;
+   } else {
+    $$09 = $8;
+   }
+  }
+  $9 = $6 ? 0 : $$09;
+  $$0 = $9;
+ }
+ return ($$0|0);
+}
+function _wcslen($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $$0 = $0;
+ while(1) {
+  $1 = HEAP32[$$0>>2]|0;
+  $2 = ($1|0)==(0);
+  $3 = ((($$0)) + 4|0);
+  if ($2) {
+   break;
+  } else {
+   $$0 = $3;
+  }
+ }
+ $4 = $$0;
+ $5 = $0;
+ $6 = (($4) - ($5))|0;
+ $7 = $6 >> 2;
+ return ($7|0);
+}
+function ___fdopen($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $$pre = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, 
$24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, 
$34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, 
$42 = 0, $43 = 0, $5 = 0;
+ var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, 
$vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, 
$vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr16 = 0, $vararg_ptr2 = 0, 
$vararg_ptr6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(64|0);
+ $vararg_buffer12 = sp + 40|0;
+ $vararg_buffer7 = sp + 24|0;
+ $vararg_buffer3 = sp + 16|0;
+ $vararg_buffer = sp;
+ $2 = sp + 56|0;
+ $3 = HEAP8[$1>>0]|0;
+ $4 = $3 << 24 >> 24;
+ $5 = (_strchr(70667,$4)|0);
+ $6 = ($5|0)==(0|0);
+ if ($6) {
+  $7 = (___errno_location()|0);
+  HEAP32[$7>>2] = 22;
+  $$0 = 0;
+ } else {
+  $8 = (_malloc(1156)|0);
+  $9 = ($8|0)==(0|0);
+  if ($9) {
+   $$0 = 0;
+  } else {
+   (_memset(($8|0),0,124)|0);
+   $10 = (_strchr($1,43)|0);
+   $11 = ($10|0)==(0|0);
+   if ($11) {
+    $12 = HEAP8[$1>>0]|0;
+    $13 = ($12<<24>>24)==(114);
+    $14 = $13 ? 8 : 4;
+    HEAP32[$8>>2] = $14;
+   }
+   $15 = (_strchr($1,101)|0);
+   $16 = ($15|0)==(0|0);
+   if (!($16)) {
+    HEAP32[$vararg_buffer>>2] = $0;
+    $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+    HEAP32[$vararg_ptr1>>2] = 2;
+    $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+    HEAP32[$vararg_ptr2>>2] = 1;
+    (___syscall221(221,($vararg_buffer|0))|0);
+   }
+   $17 = HEAP8[$1>>0]|0;
+   $18 = ($17<<24>>24)==(97);
+   if ($18) {
+    HEAP32[$vararg_buffer3>>2] = $0;
+    $vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
+    HEAP32[$vararg_ptr6>>2] = 3;
+    $19 = (___syscall221(221,($vararg_buffer3|0))|0);
+    $20 = $19 & 1024;
+    $21 = ($20|0)==(0);
+    if ($21) {
+     $22 = $19 | 1024;
+     HEAP32[$vararg_buffer7>>2] = $0;
+     $vararg_ptr10 = ((($vararg_buffer7)) + 4|0);
+     HEAP32[$vararg_ptr10>>2] = 4;
+     $vararg_ptr11 = ((($vararg_buffer7)) + 8|0);
+     HEAP32[$vararg_ptr11>>2] = $22;
+     (___syscall221(221,($vararg_buffer7|0))|0);
+    }
+    $23 = HEAP32[$8>>2]|0;
+    $24 = $23 | 128;
+    HEAP32[$8>>2] = $24;
+    $31 = $24;
+   } else {
+    $$pre = HEAP32[$8>>2]|0;
+    $31 = $$pre;
+   }
+   $25 = ((($8)) + 60|0);
+   HEAP32[$25>>2] = $0;
+   $26 = ((($8)) + 132|0);
+   $27 = ((($8)) + 44|0);
+   HEAP32[$27>>2] = $26;
+   $28 = ((($8)) + 48|0);
+   HEAP32[$28>>2] = 1024;
+   $29 = ((($8)) + 75|0);
+   HEAP8[$29>>0] = -1;
+   $30 = $31 & 8;
+   $32 = ($30|0)==(0);
+   if ($32) {
+    $33 = $2;
+    HEAP32[$vararg_buffer12>>2] = $0;
+    $vararg_ptr15 = ((($vararg_buffer12)) + 4|0);
+    HEAP32[$vararg_ptr15>>2] = 21523;
+    $vararg_ptr16 = ((($vararg_buffer12)) + 8|0);
+    HEAP32[$vararg_ptr16>>2] = $33;
+    $34 = (___syscall54(54,($vararg_buffer12|0))|0);
+    $35 = ($34|0)==(0);
+    if ($35) {
+     HEAP8[$29>>0] = 10;
+    }
+   }
+   $36 = ((($8)) + 32|0);
+   HEAP32[$36>>2] = 89;
+   $37 = ((($8)) + 36|0);
+   HEAP32[$37>>2] = 52;
+   $38 = ((($8)) + 40|0);
+   HEAP32[$38>>2] = 51;
+   $39 = ((($8)) + 12|0);
+   HEAP32[$39>>2] = 49;
+   $40 = HEAP32[(73216)>>2]|0;
+   $41 = ($40|0)==(0);
+   if ($41) {
+    $42 = ((($8)) + 76|0);
+    HEAP32[$42>>2] = -1;
+   }
+   $43 = (___ofl_add($8)|0);
+   $$0 = $8;
+  }
+ }
+ STACKTOP = sp;return ($$0|0);
+}
+function _strchr($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (___strchrnul($0,$1)|0);
+ $3 = HEAP8[$2>>0]|0;
+ $4 = $1&255;
+ $5 = ($3<<24>>24)==($4<<24>>24);
+ $6 = $5 ? $2 : 0;
+ return ($6|0);
+}
+function ___ofl_add($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (___ofl_lock()|0);
+ $2 = HEAP32[$1>>2]|0;
+ $3 = ((($0)) + 56|0);
+ HEAP32[$3>>2] = $2;
+ $4 = HEAP32[$1>>2]|0;
+ $5 = ($4|0)==(0|0);
+ if (!($5)) {
+  $6 = ((($4)) + 52|0);
+  HEAP32[$6>>2] = $0;
+ }
+ HEAP32[$1>>2] = $0;
+ ___ofl_unlock();
+ return ($0|0);
+}
+function ___strchrnul($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $$029$lcssa = 0, $$02936 = 0, $$030$lcssa = 0, $$03039 = 0, $$1 
= 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, 
$18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
+ var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, 
$30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 
0, $39 = 0, $4 = 0, $40 = 0;
+ var $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, 
$or$cond33 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = $1 & 255;
+ $3 = ($2|0)==(0);
+ L1: do {
+  if ($3) {
+   $4 = (_strlen($0)|0);
+   $5 = (($0) + ($4)|0);
+   $$0 = $5;
+  } else {
+   $6 = $0;
+   $7 = $6 & 3;
+   $8 = ($7|0)==(0);
+   if ($8) {
+    $$030$lcssa = $0;
+   } else {
+    $9 = $1&255;
+    $$03039 = $0;
+    while(1) {
+     $10 = HEAP8[$$03039>>0]|0;
+     $11 = ($10<<24>>24)==(0);
+     $12 = ($10<<24>>24)==($9<<24>>24);
+     $or$cond = $11 | $12;
+     if ($or$cond) {
+      $$0 = $$03039;
+      break L1;
+     }
+     $13 = ((($$03039)) + 1|0);
+     $14 = $13;
+     $15 = $14 & 3;
+     $16 = ($15|0)==(0);
+     if ($16) {
+      $$030$lcssa = $13;
+      break;
+     } else {
+      $$03039 = $13;
+     }
+    }
+   }
+   $17 = Math_imul($2, 16843009)|0;
+   $18 = HEAP32[$$030$lcssa>>2]|0;
+   $19 = (($18) + -16843009)|0;
+   $20 = $18 & -2139062144;
+   $21 = $20 ^ -2139062144;
+   $22 = $21 & $19;
+   $23 = ($22|0)==(0);
+   L10: do {
+    if ($23) {
+     $$02936 = $$030$lcssa;$25 = $18;
+     while(1) {
+      $24 = $25 ^ $17;
+      $26 = (($24) + -16843009)|0;
+      $27 = $24 & -2139062144;
+      $28 = $27 ^ -2139062144;
+      $29 = $28 & $26;
+      $30 = ($29|0)==(0);
+      if (!($30)) {
+       $$029$lcssa = $$02936;
+       break L10;
+      }
+      $31 = ((($$02936)) + 4|0);
+      $32 = HEAP32[$31>>2]|0;
+      $33 = (($32) + -16843009)|0;
+      $34 = $32 & -2139062144;
+      $35 = $34 ^ -2139062144;
+      $36 = $35 & $33;
+      $37 = ($36|0)==(0);
+      if ($37) {
+       $$02936 = $31;$25 = $32;
+      } else {
+       $$029$lcssa = $31;
+       break;
+      }
+     }
+    } else {
+     $$029$lcssa = $$030$lcssa;
+    }
+   } while(0);
+   $38 = $1&255;
+   $$1 = $$029$lcssa;
+   while(1) {
+    $39 = HEAP8[$$1>>0]|0;
+    $40 = ($39<<24>>24)==(0);
+    $41 = ($39<<24>>24)==($38<<24>>24);
+    $or$cond33 = $40 | $41;
+    $42 = ((($$1)) + 1|0);
+    if ($or$cond33) {
+     $$0 = $$1;
+     break;
+    } else {
+     $$1 = $42;
+    }
+   }
+  }
+ } while(0);
+ return ($$0|0);
+}
+function _strlen($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$014 = 0, $$015$lcssa = 0, $$01518 = 0, $$1$lcssa = 0, $$pn = 
0, $$pn29 = 0, $$pre = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, 
$15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0;
+ var $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 
0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = $0;
+ $2 = $1 & 3;
+ $3 = ($2|0)==(0);
+ L1: do {
+  if ($3) {
+   $$015$lcssa = $0;
+   label = 5;
+  } else {
+   $$01518 = $0;$22 = $1;
+   while(1) {
+    $4 = HEAP8[$$01518>>0]|0;
+    $5 = ($4<<24>>24)==(0);
+    if ($5) {
+     $$pn = $22;
+     break L1;
+    }
+    $6 = ((($$01518)) + 1|0);
+    $7 = $6;
+    $8 = $7 & 3;
+    $9 = ($8|0)==(0);
+    if ($9) {
+     $$015$lcssa = $6;
+     label = 5;
+     break;
+    } else {
+     $$01518 = $6;$22 = $7;
+    }
+   }
+  }
+ } while(0);
+ if ((label|0) == 5) {
+  $$0 = $$015$lcssa;
+  while(1) {
+   $10 = HEAP32[$$0>>2]|0;
+   $11 = (($10) + -16843009)|0;
+   $12 = $10 & -2139062144;
+   $13 = $12 ^ -2139062144;
+   $14 = $13 & $11;
+   $15 = ($14|0)==(0);
+   $16 = ((($$0)) + 4|0);
+   if ($15) {
+    $$0 = $16;
+   } else {
+    break;
+   }
+  }
+  $17 = $10&255;
+  $18 = ($17<<24>>24)==(0);
+  if ($18) {
+   $$1$lcssa = $$0;
+  } else {
+   $$pn29 = $$0;
+   while(1) {
+    $19 = ((($$pn29)) + 1|0);
+    $$pre = HEAP8[$19>>0]|0;
+    $20 = ($$pre<<24>>24)==(0);
+    if ($20) {
+     $$1$lcssa = $19;
+     break;
+    } else {
+     $$pn29 = $19;
+    }
+   }
+  }
+  $21 = $$1$lcssa;
+  $$pn = $21;
+ }
+ $$014 = (($$pn) - ($1))|0;
+ return ($$014|0);
+}
+function _fprintf($0,$1,$varargs) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $varargs = $varargs|0;
+ var $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $2 = sp;
+ HEAP32[$2>>2] = $varargs;
+ $3 = (_vfprintf($0,$1,$2)|0);
+ STACKTOP = sp;return ($3|0);
+}
+function _vsprintf($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (_vsnprintf($0,2147483647,$1,$2)|0);
+ return ($3|0);
+}
+function _mbtowc($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 
0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, 
$36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, 
$44 = 0, $45 = 0, $46 = 0;
+ var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, 
$54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $7 = 0, $8 = 0, 
$9 = 0, $spec$select = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $3 = sp;
+ $4 = ($1|0)==(0|0);
+ L1: do {
+  if ($4) {
+   $$0 = 0;
+  } else {
+   $5 = ($2|0)==(0);
+   do {
+    if (!($5)) {
+     $6 = ($0|0)==(0|0);
+     $spec$select = $6 ? $3 : $0;
+     $7 = HEAP8[$1>>0]|0;
+     $8 = ($7<<24>>24)>(-1);
+     if ($8) {
+      $9 = $7&255;
+      HEAP32[$spec$select>>2] = $9;
+      $10 = ($7<<24>>24)!=(0);
+      $11 = $10&1;
+      $$0 = $11;
+      break L1;
+     }
+     $12 = (___pthread_self_423()|0);
+     $13 = ((($12)) + 188|0);
+     $14 = HEAP32[$13>>2]|0;
+     $15 = HEAP32[$14>>2]|0;
+     $16 = ($15|0)==(0|0);
+     $17 = HEAP8[$1>>0]|0;
+     if ($16) {
+      $18 = $17 << 24 >> 24;
+      $19 = $18 & 57343;
+      HEAP32[$spec$select>>2] = $19;
+      $$0 = 1;
+      break L1;
+     }
+     $20 = $17&255;
+     $21 = (($20) + -194)|0;
+     $22 = ($21>>>0)>(50);
+     if (!($22)) {
+      $23 = ((($1)) + 1|0);
+      $24 = (27472 + ($21<<2)|0);
+      $25 = HEAP32[$24>>2]|0;
+      $26 = ($2>>>0)<(4);
+      if ($26) {
+       $27 = ($2*6)|0;
+       $28 = (($27) + -6)|0;
+       $29 = -2147483648 >>> $28;
+       $30 = $25 & $29;
+       $31 = ($30|0)==(0);
+       if (!($31)) {
+        break;
+       }
+      }
+      $32 = HEAP8[$23>>0]|0;
+      $33 = $32&255;
+      $34 = $33 >>> 3;
+      $35 = (($34) + -16)|0;
+      $36 = $25 >> 26;
+      $37 = (($34) + ($36))|0;
+      $38 = $35 | $37;
+      $39 = ($38>>>0)>(7);
+      if (!($39)) {
+       $40 = $25 << 6;
+       $41 = (($33) + -128)|0;
+       $42 = $41 | $40;
+       $43 = ($42|0)<(0);
+       if (!($43)) {
+        HEAP32[$spec$select>>2] = $42;
+        $$0 = 2;
+        break L1;
+       }
+       $44 = ((($1)) + 2|0);
+       $45 = HEAP8[$44>>0]|0;
+       $46 = $45&255;
+       $47 = (($46) + -128)|0;
+       $48 = ($47>>>0)>(63);
+       if (!($48)) {
+        $49 = $42 << 6;
+        $50 = $47 | $49;
+        $51 = ($50|0)<(0);
+        if (!($51)) {
+         HEAP32[$spec$select>>2] = $50;
+         $$0 = 3;
+         break L1;
+        }
+        $52 = ((($1)) + 3|0);
+        $53 = HEAP8[$52>>0]|0;
+        $54 = $53&255;
+        $55 = (($54) + -128)|0;
+        $56 = ($55>>>0)>(63);
+        if (!($56)) {
+         $57 = $50 << 6;
+         $58 = $55 | $57;
+         HEAP32[$spec$select>>2] = $58;
+         $$0 = 4;
+         break L1;
+        }
+       }
+      }
+     }
+    }
+   } while(0);
+   $59 = (___errno_location()|0);
+   HEAP32[$59>>2] = 84;
+   $$0 = -1;
+  }
+ } while(0);
+ STACKTOP = sp;return ($$0|0);
+}
+function ___pthread_self_423() {
+ var $0 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $0 = (_pthread_self()|0);
+ return ($0|0);
+}
+function _fopen($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer 
= 0, $vararg_buffer3 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0;
+ var $vararg_ptr2 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $vararg_buffer8 = sp + 32|0;
+ $vararg_buffer3 = sp + 16|0;
+ $vararg_buffer = sp;
+ $2 = HEAP8[$1>>0]|0;
+ $3 = $2 << 24 >> 24;
+ $4 = (_strchr(70667,$3)|0);
+ $5 = ($4|0)==(0|0);
+ if ($5) {
+  $6 = (___errno_location()|0);
+  HEAP32[$6>>2] = 22;
+  $$0 = 0;
+ } else {
+  $7 = (___fmodeflags($1)|0);
+  $8 = $0;
+  $9 = $7 | 32768;
+  HEAP32[$vararg_buffer>>2] = $8;
+  $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+  HEAP32[$vararg_ptr1>>2] = $9;
+  $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+  HEAP32[$vararg_ptr2>>2] = 438;
+  $10 = (___syscall5(5,($vararg_buffer|0))|0);
+  $11 = (___syscall_ret($10)|0);
+  $12 = ($11|0)<(0);
+  if ($12) {
+   $$0 = 0;
+  } else {
+   $13 = $7 & 524288;
+   $14 = ($13|0)==(0);
+   if (!($14)) {
+    HEAP32[$vararg_buffer3>>2] = $11;
+    $vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
+    HEAP32[$vararg_ptr6>>2] = 2;
+    $vararg_ptr7 = ((($vararg_buffer3)) + 8|0);
+    HEAP32[$vararg_ptr7>>2] = 1;
+    (___syscall221(221,($vararg_buffer3|0))|0);
+   }
+   $15 = (___fdopen($11,$1)|0);
+   $16 = ($15|0)==(0|0);
+   if ($16) {
+    HEAP32[$vararg_buffer8>>2] = $11;
+    (___syscall6(6,($vararg_buffer8|0))|0);
+    $$0 = 0;
+   } else {
+    $$0 = $15;
+   }
+  }
+ }
+ STACKTOP = sp;return ($$0|0);
+}
+function ___fmodeflags($0) {
+ $0 = $0|0;
+ var $$ = 0, $$0 = 0, $$2 = 0, $$4 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 
= 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, 
$8 = 0, $9 = 0;
+ var $spec$select = 0, $spec$select13 = 0, $spec$select14 = 0, label = 0, sp = 
0;
+ sp = STACKTOP;
+ $1 = (_strchr($0,43)|0);
+ $2 = ($1|0)==(0|0);
+ $3 = HEAP8[$0>>0]|0;
+ $4 = ($3<<24>>24)!=(114);
+ $$ = $4&1;
+ $$0 = $2 ? $$ : 2;
+ $5 = (_strchr($0,120)|0);
+ $6 = ($5|0)==(0|0);
+ $7 = $$0 | 128;
+ $spec$select = $6 ? $$0 : $7;
+ $8 = (_strchr($0,101)|0);
+ $9 = ($8|0)==(0|0);
+ $10 = $spec$select | 524288;
+ $$2 = $9 ? $spec$select : $10;
+ $11 = ($3<<24>>24)==(114);
+ $12 = $$2 | 64;
+ $spec$select13 = $11 ? $$2 : $12;
+ $13 = ($3<<24>>24)==(119);
+ $14 = $spec$select13 | 512;
+ $$4 = $13 ? $14 : $spec$select13;
+ $15 = ($3<<24>>24)==(97);
+ $16 = $$4 | 1024;
+ $spec$select14 = $15 ? $16 : $$4;
+ return ($spec$select14|0);
+}
+function _fgets($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$05963 = 0, $$06065 = 0, $$06164 = 0, $$1 = 0, $10 = 0, $11 = 
0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 
= 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, 
$40 = 0, $41 = 0, $42 = 0;
+ var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, 
$50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, 
$8 = 0, $9 = 0, $or$cond = 0;
+ var $or$cond72 = 0, $sext$mask = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($2)) + 76|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ($4|0)>(-1);
+ if ($5) {
+  $6 = (___lockfile($2)|0);
+  $16 = $6;
+ } else {
+  $16 = 0;
+ }
+ $7 = (($1) + -1)|0;
+ $8 = ($1|0)<(2);
+ if ($8) {
+  $9 = ((($2)) + 74|0);
+  $10 = HEAP8[$9>>0]|0;
+  $11 = $10 << 24 >> 24;
+  $12 = (($11) + 255)|0;
+  $13 = $12 | $11;
+  $14 = $13&255;
+  HEAP8[$9>>0] = $14;
+  $15 = ($16|0)==(0);
+  if (!($15)) {
+   ___unlockfile($2);
+  }
+  $17 = ($7|0)==(0);
+  if ($17) {
+   HEAP8[$0>>0] = 0;
+   $$0 = $0;
+  } else {
+   $$0 = 0;
+  }
+ } else {
+  $18 = ($7|0)==(0);
+  L11: do {
+   if ($18) {
+    $$1 = $0;
+    label = 17;
+   } else {
+    $19 = ((($2)) + 4|0);
+    $20 = ((($2)) + 8|0);
+    $$06065 = $7;$$06164 = $0;
+    while(1) {
+     $21 = HEAP32[$19>>2]|0;
+     $22 = HEAP32[$20>>2]|0;
+     $23 = $21;
+     $24 = (($22) - ($23))|0;
+     $25 = (_memchr($21,10,$24)|0);
+     $26 = ($25|0)==(0|0);
+     $27 = $25;
+     $28 = (1 - ($23))|0;
+     $29 = (($28) + ($27))|0;
+     $30 = $26 ? $24 : $29;
+     $31 = ($30>>>0)<($$06065>>>0);
+     $32 = $31 ? $30 : $$06065;
+     (_memcpy(($$06164|0),($21|0),($32|0))|0);
+     $33 = HEAP32[$19>>2]|0;
+     $34 = (($33) + ($32)|0);
+     HEAP32[$19>>2] = $34;
+     $35 = (($$06164) + ($32)|0);
+     $36 = (($$06065) - ($32))|0;
+     $37 = ($36|0)!=(0);
+     $or$cond = $26 & $37;
+     if (!($or$cond)) {
+      $$1 = $35;
+      label = 17;
+      break L11;
+     }
+     $38 = HEAP32[$20>>2]|0;
+     $39 = ($34>>>0)<($38>>>0);
+     if ($39) {
+      $40 = ((($34)) + 1|0);
+      HEAP32[$19>>2] = $40;
+      $41 = HEAP8[$34>>0]|0;
+      $42 = $41&255;
+      $50 = $42;
+     } else {
+      $43 = (___uflow($2)|0);
+      $44 = ($43|0)<(0);
+      if ($44) {
+       break;
+      } else {
+       $50 = $43;
+      }
+     }
+     $49 = $50&255;
+     $51 = ((($35)) + 1|0);
+     HEAP8[$35>>0] = $49;
+     $sext$mask = $50 & 255;
+     $52 = ($sext$mask|0)==(10);
+     $53 = (($36) + -1)|0;
+     $54 = ($53|0)==(0);
+     $or$cond72 = $52 | $54;
+     if ($or$cond72) {
+      $$1 = $51;
+      label = 17;
+      break L11;
+     } else {
+      $$06065 = $53;$$06164 = $51;
+     }
+    }
+    $45 = ($35|0)==($0|0);
+    if ($45) {
+     $$05963 = 0;
+    } else {
+     $46 = HEAP32[$2>>2]|0;
+     $47 = $46 & 16;
+     $48 = ($47|0)==(0);
+     if ($48) {
+      $$05963 = 0;
+     } else {
+      $$1 = $35;
+      label = 17;
+     }
+    }
+   }
+  } while(0);
+  if ((label|0) == 17) {
+   $55 = ($0|0)==(0|0);
+   if ($55) {
+    $$05963 = 0;
+   } else {
+    HEAP8[$$1>>0] = 0;
+    $$05963 = $0;
+   }
+  }
+  $56 = ($16|0)==(0);
+  if ($56) {
+   $$0 = $$05963;
+  } else {
+   ___unlockfile($2);
+   $$0 = $$05963;
+  }
+ }
+ return ($$0|0);
+}
+function _strcpy($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ (___stpcpy($0,$1)|0);
+ return ($0|0);
+}
+function ___stpcpy($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0$lcssa = 0, $$025$lcssa = 0, $$02536 = 0, $$026$lcssa = 0, $$02642 = 
0, $$027$lcssa = 0, $$02741 = 0, $$030 = 0, $$037 = 0, $$1 = 0, $$128 = 0, 
$$22934 = 0, $$235 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0;
+ var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, 
$24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, 
$32 = 0, $33 = 0, $34 = 0;
+ var $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 
0, sp = 0;
+ sp = STACKTOP;
+ $2 = $1;
+ $3 = $0;
+ $4 = $2 ^ $3;
+ $5 = $4 & 3;
+ $6 = ($5|0)==(0);
+ L1: do {
+  if ($6) {
+   $7 = $2 & 3;
+   $8 = ($7|0)==(0);
+   if ($8) {
+    $$026$lcssa = $1;$$027$lcssa = $0;
+   } else {
+    $$02642 = $1;$$02741 = $0;
+    while(1) {
+     $9 = HEAP8[$$02642>>0]|0;
+     HEAP8[$$02741>>0] = $9;
+     $10 = ($9<<24>>24)==(0);
+     if ($10) {
+      $$030 = $$02741;
+      break L1;
+     }
+     $11 = ((($$02642)) + 1|0);
+     $12 = ((($$02741)) + 1|0);
+     $13 = $11;
+     $14 = $13 & 3;
+     $15 = ($14|0)==(0);
+     if ($15) {
+      $$026$lcssa = $11;$$027$lcssa = $12;
+      break;
+     } else {
+      $$02642 = $11;$$02741 = $12;
+     }
+    }
+   }
+   $16 = HEAP32[$$026$lcssa>>2]|0;
+   $17 = (($16) + -16843009)|0;
+   $18 = $16 & -2139062144;
+   $19 = $18 ^ -2139062144;
+   $20 = $19 & $17;
+   $21 = ($20|0)==(0);
+   if ($21) {
+    $$02536 = $$027$lcssa;$$037 = $$026$lcssa;$24 = $16;
+    while(1) {
+     $22 = ((($$037)) + 4|0);
+     $23 = ((($$02536)) + 4|0);
+     HEAP32[$$02536>>2] = $24;
+     $25 = HEAP32[$22>>2]|0;
+     $26 = (($25) + -16843009)|0;
+     $27 = $25 & -2139062144;
+     $28 = $27 ^ -2139062144;
+     $29 = $28 & $26;
+     $30 = ($29|0)==(0);
+     if ($30) {
+      $$02536 = $23;$$037 = $22;$24 = $25;
+     } else {
+      $$0$lcssa = $22;$$025$lcssa = $23;
+      break;
+     }
+    }
+   } else {
+    $$0$lcssa = $$026$lcssa;$$025$lcssa = $$027$lcssa;
+   }
+   $$1 = $$0$lcssa;$$128 = $$025$lcssa;
+   label = 10;
+  } else {
+   $$1 = $1;$$128 = $0;
+   label = 10;
+  }
+ } while(0);
+ if ((label|0) == 10) {
+  $31 = HEAP8[$$1>>0]|0;
+  HEAP8[$$128>>0] = $31;
+  $32 = ($31<<24>>24)==(0);
+  if ($32) {
+   $$030 = $$128;
+  } else {
+   $$22934 = $$128;$$235 = $$1;
+   while(1) {
+    $33 = ((($$235)) + 1|0);
+    $34 = ((($$22934)) + 1|0);
+    $35 = HEAP8[$33>>0]|0;
+    HEAP8[$34>>0] = $35;
+    $36 = ($35<<24>>24)==(0);
+    if ($36) {
+     $$030 = $34;
+     break;
+    } else {
+     $$22934 = $34;$$235 = $33;
+    }
+   }
+  }
+ }
+ return ($$030|0);
+}
+function _feof($0) {
+ $0 = $0|0;
+ var $$lobit = 0, $$lobit8 = 0, $$lobit9 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, 
$5 = 0, $6 = 0, $7 = 0, $8 = 0, $phitmp = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 76|0);
+ $2 = HEAP32[$1>>2]|0;
+ $3 = ($2|0)>(-1);
+ if ($3) {
+  $6 = (___lockfile($0)|0);
+  $phitmp = ($6|0)==(0);
+  $7 = HEAP32[$0>>2]|0;
+  $8 = $7 >>> 4;
+  $$lobit = $8 & 1;
+  if ($phitmp) {
+   $$lobit9 = $$lobit;
+  } else {
+   ___unlockfile($0);
+   $$lobit9 = $$lobit;
+  }
+ } else {
+  $4 = HEAP32[$0>>2]|0;
+  $5 = $4 >>> 4;
+  $$lobit8 = $5 & 1;
+  $$lobit9 = $$lobit8;
+ }
+ return ($$lobit9|0);
+}
+function _sprintf($0,$1,$varargs) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $varargs = $varargs|0;
+ var $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $2 = sp;
+ HEAP32[$2>>2] = $varargs;
+ $3 = (_vsprintf($0,$1,$2)|0);
+ STACKTOP = sp;return ($3|0);
+}
+function _strncmp($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0$lcssa = 0, $$01823 = 0, $$01925 = 0, $$01925$in = 0, $$020 = 0, $$024 
= 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 
0, $17 = 0, $18 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
+ var $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond21 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ($2|0)==(0);
+ if ($3) {
+  $$020 = 0;
+ } else {
+  $4 = HEAP8[$0>>0]|0;
+  $5 = ($4<<24>>24)==(0);
+  L3: do {
+   if ($5) {
+    $$0$lcssa = $1;$$lcssa = 0;
+   } else {
+    $$01823 = $0;$$01925$in = $2;$$024 = $1;$10 = $4;
+    while(1) {
+     $$01925 = (($$01925$in) + -1)|0;
+     $6 = HEAP8[$$024>>0]|0;
+     $7 = ($6<<24>>24)!=(0);
+     $8 = ($$01925|0)!=(0);
+     $or$cond = $8 & $7;
+     $9 = ($10<<24>>24)==($6<<24>>24);
+     $or$cond21 = $9 & $or$cond;
+     if (!($or$cond21)) {
+      $$0$lcssa = $$024;$$lcssa = $10;
+      break L3;
+     }
+     $11 = ((($$01823)) + 1|0);
+     $12 = ((($$024)) + 1|0);
+     $13 = HEAP8[$11>>0]|0;
+     $14 = ($13<<24>>24)==(0);
+     if ($14) {
+      $$0$lcssa = $12;$$lcssa = 0;
+      break;
+     } else {
+      $$01823 = $11;$$01925$in = $$01925;$$024 = $12;$10 = $13;
+     }
+    }
+   }
+  } while(0);
+  $15 = $$lcssa&255;
+  $16 = HEAP8[$$0$lcssa>>0]|0;
+  $17 = $16&255;
+  $18 = (($15) - ($17))|0;
+  $$020 = $18;
+ }
+ return ($$020|0);
+}
+function _close($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $spec$store$select = 0, $vararg_buffer = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $1 = (_dummy_33($0)|0);
+ HEAP32[$vararg_buffer>>2] = $1;
+ $2 = (___syscall6(6,($vararg_buffer|0))|0);
+ $3 = ($2|0)==(-4);
+ $spec$store$select = $3 ? 0 : $2;
+ $4 = (___syscall_ret($spec$store$select)|0);
+ STACKTOP = sp;return ($4|0);
+}
+function _fcntl($0,$1,$varargs) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $varargs = $varargs|0;
+ var $$0 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, 
$16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, 
$24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, 
$34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, 
$7 = 0, $8 = 0, $9 = 0;
+ var $arglist_current = 0, $arglist_next = 0, $expanded = 0, $expanded2 = 0, 
$expanded4 = 0, $expanded5 = 0, $expanded6 = 0, $spec$select = 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, $vararg_ptr1 = 0;
+ var $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr16 = 0, $vararg_ptr17 = 
0, $vararg_ptr2 = 0, $vararg_ptr21 = 0, $vararg_ptr22 = 0, $vararg_ptr26 = 0, 
$vararg_ptr27 = 0, $vararg_ptr34 = 0, $vararg_ptr35 = 0, $vararg_ptr39 = 0, 
$vararg_ptr40 = 0, $vararg_ptr44 = 0, $vararg_ptr45 = 0, $vararg_ptr49 = 0, 
$vararg_ptr50 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(192|0);
+ $vararg_buffer46 = sp + 168|0;
+ $vararg_buffer41 = sp + 152|0;
+ $vararg_buffer36 = sp + 136|0;
+ $vararg_buffer31 = sp + 120|0;
+ $vararg_buffer28 = sp + 112|0;
+ $vararg_buffer23 = sp + 96|0;
+ $vararg_buffer18 = sp + 80|0;
+ $vararg_buffer13 = sp + 64|0;
+ $vararg_buffer8 = sp + 48|0;
+ $vararg_buffer3 = sp + 32|0;
+ $vararg_buffer = sp + 16|0;
+ $2 = sp;
+ $3 = sp + 184|0;
+ HEAP32[$2>>2] = $varargs;
+ $arglist_current = HEAP32[$2>>2]|0;
+ $4 = $arglist_current;
+ $5 = ((0) + 4|0);
+ $expanded2 = $5;
+ $expanded = (($expanded2) - 1)|0;
+ $6 = (($4) + ($expanded))|0;
+ $7 = ((0) + 4|0);
+ $expanded6 = $7;
+ $expanded5 = (($expanded6) - 1)|0;
+ $expanded4 = $expanded5 ^ -1;
+ $8 = $6 & $expanded4;
+ $9 = $8;
+ $10 = HEAP32[$9>>2]|0;
+ $arglist_next = ((($9)) + 4|0);
+ HEAP32[$2>>2] = $arglist_next;
+ $11 = ($1|0)==(4);
+ $12 = $10 | 32768;
+ $spec$select = $11 ? $12 : $10;
+ L1: do {
+  switch ($1|0) {
+  case 14:  {
+   HEAP32[$vararg_buffer>>2] = $0;
+   $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+   HEAP32[$vararg_ptr1>>2] = 14;
+   $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+   HEAP32[$vararg_ptr2>>2] = $spec$select;
+   $13 = (___syscall221(221,($vararg_buffer|0))|0);
+   $14 = (___syscall_ret($13)|0);
+   $$2 = $14;
+   break;
+  }
+  case 9:  {
+   $15 = $3;
+   HEAP32[$vararg_buffer3>>2] = $0;
+   $vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
+   HEAP32[$vararg_ptr6>>2] = 16;
+   $vararg_ptr7 = ((($vararg_buffer3)) + 8|0);
+   HEAP32[$vararg_ptr7>>2] = $15;
+   $16 = (___syscall221(221,($vararg_buffer3|0))|0);
+   switch ($16|0) {
+   case -22:  {
+    HEAP32[$vararg_buffer8>>2] = $0;
+    $vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
+    HEAP32[$vararg_ptr11>>2] = 9;
+    $vararg_ptr12 = ((($vararg_buffer8)) + 8|0);
+    HEAP32[$vararg_ptr12>>2] = $spec$select;
+    $17 = (___syscall221(221,($vararg_buffer8|0))|0);
+    $$0 = $17;
+    break;
+   }
+   case 0:  {
+    $19 = HEAP32[$3>>2]|0;
+    $20 = ($19|0)==(2);
+    $21 = ((($3)) + 4|0);
+    $22 = HEAP32[$21>>2]|0;
+    $23 = (0 - ($22))|0;
+    $24 = $20 ? $23 : $22;
+    $$0 = $24;
+    break;
+   }
+   default: {
+    $18 = (___syscall_ret($16)|0);
+    $$0 = $18;
+   }
+   }
+   $$2 = $$0;
+   break;
+  }
+  case 1030:  {
+   HEAP32[$vararg_buffer13>>2] = $0;
+   $vararg_ptr16 = ((($vararg_buffer13)) + 4|0);
+   HEAP32[$vararg_ptr16>>2] = 1030;
+   $vararg_ptr17 = ((($vararg_buffer13)) + 8|0);
+   HEAP32[$vararg_ptr17>>2] = $spec$select;
+   $25 = (___syscall221(221,($vararg_buffer13|0))|0);
+   $26 = ($25|0)==(-22);
+   if (!($26)) {
+    $27 = ($25|0)>(-1);
+    if ($27) {
+     HEAP32[$vararg_buffer18>>2] = $25;
+     $vararg_ptr21 = ((($vararg_buffer18)) + 4|0);
+     HEAP32[$vararg_ptr21>>2] = 2;
+     $vararg_ptr22 = ((($vararg_buffer18)) + 8|0);
+     HEAP32[$vararg_ptr22>>2] = 1;
+     (___syscall221(221,($vararg_buffer18|0))|0);
+    }
+    $28 = (___syscall_ret($25)|0);
+    $$2 = $28;
+    break L1;
+   }
+   HEAP32[$vararg_buffer23>>2] = $0;
+   $vararg_ptr26 = ((($vararg_buffer23)) + 4|0);
+   HEAP32[$vararg_ptr26>>2] = 1030;
+   $vararg_ptr27 = ((($vararg_buffer23)) + 8|0);
+   HEAP32[$vararg_ptr27>>2] = 0;
+   $29 = (___syscall221(221,($vararg_buffer23|0))|0);
+   $30 = ($29|0)==(-22);
+   if ($30) {
+    HEAP32[$vararg_buffer31>>2] = $0;
+    $vararg_ptr34 = ((($vararg_buffer31)) + 4|0);
+    HEAP32[$vararg_ptr34>>2] = 0;
+    $vararg_ptr35 = ((($vararg_buffer31)) + 8|0);
+    HEAP32[$vararg_ptr35>>2] = $spec$select;
+    $33 = (___syscall221(221,($vararg_buffer31|0))|0);
+    $34 = ($33|0)>(-1);
+    if ($34) {
+     HEAP32[$vararg_buffer36>>2] = $33;
+     $vararg_ptr39 = ((($vararg_buffer36)) + 4|0);
+     HEAP32[$vararg_ptr39>>2] = 2;
+     $vararg_ptr40 = ((($vararg_buffer36)) + 8|0);
+     HEAP32[$vararg_ptr40>>2] = 1;
+     (___syscall221(221,($vararg_buffer36|0))|0);
+    }
+    $35 = (___syscall_ret($33)|0);
+    $$2 = $35;
+    break L1;
+   } else {
+    $31 = ($29|0)>(-1);
+    if ($31) {
+     HEAP32[$vararg_buffer28>>2] = $29;
+     (___syscall6(6,($vararg_buffer28|0))|0);
+    }
+    $32 = (___syscall_ret(-22)|0);
+    $$2 = $32;
+    break L1;
+   }
+   break;
+  }
+  case 15: case 16: case 12: case 13:  {
+   HEAP32[$vararg_buffer41>>2] = $0;
+   $vararg_ptr44 = ((($vararg_buffer41)) + 4|0);
+   HEAP32[$vararg_ptr44>>2] = $1;
+   $vararg_ptr45 = ((($vararg_buffer41)) + 8|0);
+   HEAP32[$vararg_ptr45>>2] = $spec$select;
+   $36 = (___syscall221(221,($vararg_buffer41|0))|0);
+   $37 = (___syscall_ret($36)|0);
+   $$2 = $37;
+   break;
+  }
+  default: {
+   HEAP32[$vararg_buffer46>>2] = $0;
+   $vararg_ptr49 = ((($vararg_buffer46)) + 4|0);
+   HEAP32[$vararg_ptr49>>2] = $1;
+   $vararg_ptr50 = ((($vararg_buffer46)) + 8|0);
+   HEAP32[$vararg_ptr50>>2] = $spec$select;
+   $38 = (___syscall221(221,($vararg_buffer46|0))|0);
+   $39 = (___syscall_ret($38)|0);
+   $$2 = $39;
+  }
+  }
+ } while(0);
+ STACKTOP = sp;return ($$2|0);
+}
+function _open($0,$1,$varargs) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $varargs = $varargs|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 
0, $arglist_current = 0, $arglist_next = 0;
+ var $expanded = 0, $expanded2 = 0, $expanded4 = 0, $expanded5 = 0, $expanded6 
= 0, $or$cond14 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, 
$vararg_ptr2 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(48|0);
+ $vararg_buffer3 = sp + 32|0;
+ $vararg_buffer = sp + 16|0;
+ $2 = sp;
+ $3 = $1 & 4194368;
+ $4 = ($3|0)==(0);
+ if ($4) {
+  $$0 = 0;
+ } else {
+  HEAP32[$2>>2] = $varargs;
+  $arglist_current = HEAP32[$2>>2]|0;
+  $5 = $arglist_current;
+  $6 = ((0) + 4|0);
+  $expanded2 = $6;
+  $expanded = (($expanded2) - 1)|0;
+  $7 = (($5) + ($expanded))|0;
+  $8 = ((0) + 4|0);
+  $expanded6 = $8;
+  $expanded5 = (($expanded6) - 1)|0;
+  $expanded4 = $expanded5 ^ -1;
+  $9 = $7 & $expanded4;
+  $10 = $9;
+  $11 = HEAP32[$10>>2]|0;
+  $arglist_next = ((($10)) + 4|0);
+  HEAP32[$2>>2] = $arglist_next;
+  $$0 = $11;
+ }
+ $12 = $0;
+ $13 = $1 | 32768;
+ HEAP32[$vararg_buffer>>2] = $12;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $13;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = $$0;
+ $14 = (___syscall5(5,($vararg_buffer|0))|0);
+ $15 = ($14|0)<(0);
+ $16 = $1 & 524288;
+ $17 = ($16|0)==(0);
+ $or$cond14 = $17 | $15;
+ if (!($or$cond14)) {
+  HEAP32[$vararg_buffer3>>2] = $14;
+  $vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
+  HEAP32[$vararg_ptr6>>2] = 2;
+  $vararg_ptr7 = ((($vararg_buffer3)) + 8|0);
+  HEAP32[$vararg_ptr7>>2] = 1;
+  (___syscall221(221,($vararg_buffer3|0))|0);
+ }
+ $18 = (___syscall_ret($14)|0);
+ STACKTOP = sp;return ($18|0);
+}
+function ___synccall($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ FUNCTION_TABLE_vi[$0 & 127]($1);
+ return;
+}
+function _memcmp($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$01318 = 0, $$01417 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, 
$14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp 
= 0;
+ sp = STACKTOP;
+ $3 = ($2|0)==(0);
+ L1: do {
+  if ($3) {
+   $14 = 0;
+  } else {
+   $$01318 = $0;$$01417 = $2;$$019 = $1;
+   while(1) {
+    $4 = HEAP8[$$01318>>0]|0;
+    $5 = HEAP8[$$019>>0]|0;
+    $6 = ($4<<24>>24)==($5<<24>>24);
+    if (!($6)) {
+     break;
+    }
+    $7 = (($$01417) + -1)|0;
+    $8 = ((($$01318)) + 1|0);
+    $9 = ((($$019)) + 1|0);
+    $10 = ($7|0)==(0);
+    if ($10) {
+     $14 = 0;
+     break L1;
+    } else {
+     $$01318 = $8;$$01417 = $7;$$019 = $9;
+    }
+   }
+   $11 = $4&255;
+   $12 = $5&255;
+   $13 = (($11) - ($12))|0;
+   $14 = $13;
+  }
+ } while(0);
+ return ($14|0);
+}
+function ___procfdname($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$02324 = 0, $$027 = 0, $$126 = 0, $$225 = 0, $10 = 0, $11 = 0, $12 = 0, 
$13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 
= 0, $8 = 0, $9 = 0, dest = 0;
+ var label = 0, sp = 0, src = 0, stop = 0;
+ sp = STACKTOP;
+ dest=$0; src=70671; 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));
+ $2 = ($1|0)==(0);
+ if ($2) {
+  $3 = ((($0)) + 14|0);
+  HEAP8[$3>>0] = 48;
+  $4 = ((($0)) + 15|0);
+  HEAP8[$4>>0] = 0;
+ } else {
+  $$027 = $1;$$126 = 14;
+  while(1) {
+   $5 = (($$027>>>0) / 10)&-1;
+   $6 = (($$126) + 1)|0;
+   $7 = ($$027>>>0)<(10);
+   if ($7) {
+    break;
+   } else {
+    $$027 = $5;$$126 = $6;
+   }
+  }
+  $8 = (($0) + ($6)|0);
+  HEAP8[$8>>0] = 0;
+  $$02324 = $1;$$225 = $6;
+  while(1) {
+   $9 = (($$02324>>>0) / 10)&-1;
+   $10 = ($9*10)|0;
+   $11 = (($$02324) - ($10))|0;
+   $12 = $11 | 48;
+   $13 = $12&255;
+   $14 = (($$225) + -1)|0;
+   $15 = (($0) + ($14)|0);
+   HEAP8[$15>>0] = $13;
+   $16 = ($$02324>>>0)<(10);
+   if ($16) {
+    break;
+   } else {
+    $$02324 = $9;$$225 = $14;
+   }
+  }
+ }
+ return;
+}
+function _fstat($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 
0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 
0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(64|0);
+ $vararg_buffer6 = sp + 48|0;
+ $vararg_buffer2 = sp + 40|0;
+ $vararg_buffer = sp + 32|0;
+ $2 = sp;
+ $3 = $1;
+ HEAP32[$vararg_buffer>>2] = $0;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $3;
+ $4 = (___syscall197(197,($vararg_buffer|0))|0);
+ $5 = ($4|0)==(-9);
+ if ($5) {
+  HEAP32[$vararg_buffer2>>2] = $0;
+  $vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
+  HEAP32[$vararg_ptr5>>2] = 1;
+  $6 = (___syscall221(221,($vararg_buffer2|0))|0);
+  $7 = ($6|0)<(0);
+  if ($7) {
+   label = 3;
+  } else {
+   ___procfdname($2,$0);
+   $9 = $2;
+   HEAP32[$vararg_buffer6>>2] = $9;
+   $vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
+   HEAP32[$vararg_ptr9>>2] = $3;
+   $10 = (___syscall195(195,($vararg_buffer6|0))|0);
+   $11 = (___syscall_ret($10)|0);
+   $$0 = $11;
+  }
+ } else {
+  label = 3;
+ }
+ if ((label|0) == 3) {
+  $8 = (___syscall_ret($4)|0);
+  $$0 = $8;
+ }
+ STACKTOP = sp;return ($$0|0);
+}
+function _getpid() {
+ var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $0 = (___syscall20(20,($vararg_buffer|0))|0);
+ STACKTOP = sp;return ($0|0);
+}
+function _write($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, 
$vararg_ptr2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $3 = $1;
+ HEAP32[$vararg_buffer>>2] = $0;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $3;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = $2;
+ $4 = (___syscall4(4,($vararg_buffer|0))|0);
+ $5 = (___syscall_ret($4)|0);
+ STACKTOP = sp;return ($5|0);
+}
+function _read($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, 
$vararg_ptr2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $3 = $1;
+ HEAP32[$vararg_buffer>>2] = $0;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $3;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = $2;
+ $4 = (___syscall3(3,($vararg_buffer|0))|0);
+ $5 = (___syscall_ret($4)|0);
+ STACKTOP = sp;return ($5|0);
+}
+function _access($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $4 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, 
sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $2 = $0;
+ HEAP32[$vararg_buffer>>2] = $2;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $1;
+ $3 = (___syscall33(33,($vararg_buffer|0))|0);
+ $4 = (___syscall_ret($3)|0);
+ STACKTOP = sp;return ($4|0);
+}
+function _getrusage($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $4 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, 
sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $2 = $1;
+ HEAP32[$vararg_buffer>>2] = $0;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $2;
+ $3 = (___syscall77(77,($vararg_buffer|0))|0);
+ $4 = (___syscall_ret($3)|0);
+ STACKTOP = sp;return ($4|0);
+}
+function _strtoul($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $3 = 0, $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = (_strtox_765($0,$1,$2,-1,0)|0);
+ $4 = tempRet0;
+ return ($3|0);
+}
+function _strncpy($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ (___stpncpy($0,$1,$2)|0);
+ return ($0|0);
+}
+function ___stpncpy($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0$lcssa = 0, $$037$lcssa = 0, $$03754 = 0, $$038$lcssa = 0, $$03867 = 
0, $$039$lcssa = 0, $$03966 = 0, $$042$lcssa = 0, $$04265 = 0, $$055 = 0, 
$$1$lcssa = 0, $$140 = 0, $$143 = 0, $$153 = 0, $$2 = 0, $$24147 = 0, $$24446 = 
0, $$345 = 0, $$348 = 0, $$4 = 0;
+ var $$lcssa = 0, $$pr = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 
0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 
= 0, $25 = 0, $26 = 0, $27 = 0;
+ var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, 
$35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 
= 0, $or$cond = 0, $or$cond64 = 0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = $1;
+ $4 = $0;
+ $5 = $3 ^ $4;
+ $6 = $5 & 3;
+ $7 = ($6|0)==(0);
+ L1: do {
+  if ($7) {
+   $8 = $3 & 3;
+   $9 = ($8|0)!=(0);
+   $10 = ($2|0)!=(0);
+   $or$cond64 = $10 & $9;
+   if ($or$cond64) {
+    $$03867 = $2;$$03966 = $1;$$04265 = $0;
+    while(1) {
+     $11 = HEAP8[$$03966>>0]|0;
+     HEAP8[$$04265>>0] = $11;
+     $12 = ($11<<24>>24)==(0);
+     if ($12) {
+      $$345 = $$04265;$$4 = $$03867;
+      break L1;
+     }
+     $13 = (($$03867) + -1)|0;
+     $14 = ((($$03966)) + 1|0);
+     $15 = ((($$04265)) + 1|0);
+     $16 = $14;
+     $17 = $16 & 3;
+     $18 = ($17|0)!=(0);
+     $19 = ($13|0)!=(0);
+     $or$cond = $19 & $18;
+     if ($or$cond) {
+      $$03867 = $13;$$03966 = $14;$$04265 = $15;
+     } else {
+      $$038$lcssa = $13;$$039$lcssa = $14;$$042$lcssa = $15;$$lcssa = $19;
+      break;
+     }
+    }
+   } else {
+    $$038$lcssa = $2;$$039$lcssa = $1;$$042$lcssa = $0;$$lcssa = $10;
+   }
+   if ($$lcssa) {
+    $$pr = HEAP8[$$039$lcssa>>0]|0;
+    $20 = ($$pr<<24>>24)==(0);
+    if ($20) {
+     $$345 = $$042$lcssa;$$4 = $$038$lcssa;
+    } else {
+     $21 = ($$038$lcssa>>>0)>(3);
+     L11: do {
+      if ($21) {
+       $$03754 = $$042$lcssa;$$055 = $$039$lcssa;$$153 = $$038$lcssa;
+       while(1) {
+        $22 = HEAP32[$$055>>2]|0;
+        $23 = (($22) + -16843009)|0;
+        $24 = $22 & -2139062144;
+        $25 = $24 ^ -2139062144;
+        $26 = $25 & $23;
+        $27 = ($26|0)==(0);
+        if (!($27)) {
+         $$0$lcssa = $$055;$$037$lcssa = $$03754;$$1$lcssa = $$153;
+         break L11;
+        }
+        HEAP32[$$03754>>2] = $22;
+        $28 = (($$153) + -4)|0;
+        $29 = ((($$055)) + 4|0);
+        $30 = ((($$03754)) + 4|0);
+        $31 = ($28>>>0)>(3);
+        if ($31) {
+         $$03754 = $30;$$055 = $29;$$153 = $28;
+        } else {
+         $$0$lcssa = $29;$$037$lcssa = $30;$$1$lcssa = $28;
+         break;
+        }
+       }
+      } else {
+       $$0$lcssa = $$039$lcssa;$$037$lcssa = $$042$lcssa;$$1$lcssa = 
$$038$lcssa;
+      }
+     } while(0);
+     $$140 = $$0$lcssa;$$143 = $$037$lcssa;$$2 = $$1$lcssa;
+     label = 13;
+    }
+   } else {
+    $$345 = $$042$lcssa;$$4 = 0;
+   }
+  } else {
+   $$140 = $1;$$143 = $0;$$2 = $2;
+   label = 13;
+  }
+ } while(0);
+ L17: do {
+  if ((label|0) == 13) {
+   $32 = ($$2|0)==(0);
+   if ($32) {
+    $$345 = $$143;$$4 = 0;
+   } else {
+    $$24147 = $$140;$$24446 = $$143;$$348 = $$2;
+    while(1) {
+     $33 = HEAP8[$$24147>>0]|0;
+     HEAP8[$$24446>>0] = $33;
+     $34 = ($33<<24>>24)==(0);
+     if ($34) {
+      $$345 = $$24446;$$4 = $$348;
+      break L17;
+     }
+     $35 = (($$348) + -1)|0;
+     $36 = ((($$24147)) + 1|0);
+     $37 = ((($$24446)) + 1|0);
+     $38 = ($35|0)==(0);
+     if ($38) {
+      $$345 = $37;$$4 = 0;
+      break;
+     } else {
+      $$24147 = $36;$$24446 = $37;$$348 = $35;
+     }
+    }
+   }
+  }
+ } while(0);
+ (_memset(($$345|0),0,($$4|0))|0);
+ return ($$345|0);
+}
+function _strtox_765($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 
0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, 
$9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(128|0);
+ $5 = sp;
+ HEAP32[$5>>2] = 0;
+ $6 = ((($5)) + 4|0);
+ HEAP32[$6>>2] = $0;
+ $7 = ((($5)) + 44|0);
+ HEAP32[$7>>2] = $0;
+ $8 = ($0|0)<(0|0);
+ $9 = ((($0)) + 2147483647|0);
+ $$sink = $8 ? (-1) : $9;
+ $10 = ((($5)) + 8|0);
+ HEAP32[$10>>2] = $$sink;
+ $11 = ((($5)) + 76|0);
+ HEAP32[$11>>2] = -1;
+ ___shlim($5,0);
+ $12 = (___intscan($5,$2,1,$3,$4)|0);
+ $13 = tempRet0;
+ $14 = ($1|0)==(0|0);
+ if (!($14)) {
+  $15 = ((($5)) + 108|0);
+  $16 = HEAP32[$15>>2]|0;
+  $17 = HEAP32[$6>>2]|0;
+  $18 = HEAP32[$10>>2]|0;
+  $19 = (($17) + ($16))|0;
+  $20 = (($19) - ($18))|0;
+  $21 = (($0) + ($20)|0);
+  HEAP32[$1>>2] = $21;
+ }
+ tempRet0 = ($13);
+ STACKTOP = sp;return ($12|0);
+}
+function _htonl($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (___bswap_32($0)|0);
+ return ($1|0);
+}
+function ___bswap_32($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_llvm_bswap_i32(($0|0))|0);
+ return ($1|0);
+}
+function _ntohl($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (___bswap_32_187($0)|0);
+ return ($1|0);
+}
+function ___bswap_32_187($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_llvm_bswap_i32(($0|0))|0);
+ return ($1|0);
+}
+function ___tre_mem_new_impl($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0$in = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ($0|0)==(0);
+ if ($2) {
+  $3 = (_calloc(1,24)|0);
+  $$0$in = $3;
+ } else {
+  (_memset(($1|0),0,24)|0);
+  $$0$in = $1;
+ }
+ return ($$0$in|0);
+}
+function ___tre_mem_destroy($0) {
+ $0 = $0|0;
+ var $$in1011 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, 
sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[$0>>2]|0;
+ $2 = ($1|0)==(0|0);
+ if (!($2)) {
+  $$in1011 = $1;
+  while(1) {
+   $3 = HEAP32[$$in1011>>2]|0;
+   _free($3);
+   $4 = ((($$in1011)) + 4|0);
+   $5 = HEAP32[$4>>2]|0;
+   _free($$in1011);
+   $6 = ($5|0)==(0|0);
+   if ($6) {
+    break;
+   } else {
+    $$in1011 = $5;
+   }
+  }
+ }
+ _free($0);
+ return;
+}
+function ___tre_mem_alloc_impl($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$ = 0, $$3 = 0, $$phi$trans$insert = 0, $$pre = 0, $$pre$phiZ2D = 0, $10 
= 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, 
$19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $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, $40 = 0, $41 = 
0, $5 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = ((($0)) + 16|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ($6|0)==(0);
+ L1: do {
+  if ($7) {
+   $8 = ((($0)) + 12|0);
+   $9 = HEAP32[$8>>2]|0;
+   $10 = ($9>>>0)<($4>>>0);
+   do {
+    if ($10) {
+     $12 = ($1|0)==(0);
+     if (!($12)) {
+      $13 = ($2|0)==(0|0);
+      if ($13) {
+       HEAP32[$5>>2] = 1;
+       $$3 = 0;
+       break L1;
+      } else {
+       $14 = ((($0)) + 8|0);
+       HEAP32[$14>>2] = $2;
+       HEAP32[$8>>2] = 1024;
+       $15 = $2;
+       $$pre$phiZ2D = $14;$32 = $15;$38 = $2;$40 = 1024;
+       break;
+      }
+     }
+     $16 = $4 << 3;
+     $17 = ($16>>>0)>(1024);
+     $$ = $17 ? $16 : 1024;
+     $18 = (_malloc(8)|0);
+     $19 = ($18|0)==(0|0);
+     if ($19) {
+      HEAP32[$5>>2] = 1;
+      $$3 = 0;
+      break L1;
+     }
+     $20 = (_malloc($$)|0);
+     HEAP32[$18>>2] = $20;
+     $21 = ($20|0)==(0|0);
+     $22 = $20;
+     if ($21) {
+      _free($18);
+      HEAP32[$5>>2] = 1;
+      $$3 = 0;
+      break L1;
+     }
+     $23 = ((($18)) + 4|0);
+     HEAP32[$23>>2] = 0;
+     $24 = ((($0)) + 4|0);
+     $25 = HEAP32[$24>>2]|0;
+     $26 = ($25|0)==(0|0);
+     if (!($26)) {
+      $27 = ((($25)) + 4|0);
+      HEAP32[$27>>2] = $18;
+     }
+     $28 = HEAP32[$0>>2]|0;
+     $29 = ($28|0)==(0|0);
+     if ($29) {
+      HEAP32[$0>>2] = $18;
+     }
+     HEAP32[$24>>2] = $18;
+     $30 = ((($0)) + 8|0);
+     HEAP32[$30>>2] = $22;
+     HEAP32[$8>>2] = $$;
+     $$pre$phiZ2D = $30;$32 = $22;$38 = $20;$40 = $$;
+    } else {
+     $$phi$trans$insert = ((($0)) + 8|0);
+     $$pre = HEAP32[$$phi$trans$insert>>2]|0;
+     $11 = $$pre;
+     $$pre$phiZ2D = $$phi$trans$insert;$32 = $$pre;$38 = $11;$40 = $9;
+    }
+   } while(0);
+   $31 = (($32) + ($4))|0;
+   $33 = $31 & 3;
+   $34 = ($33|0)==(0);
+   $35 = (4 - ($33))|0;
+   $spec$select = $34 ? 0 : $35;
+   $36 = (($spec$select) + ($4))|0;
+   $37 = (($38) + ($36)|0);
+   HEAP32[$$pre$phiZ2D>>2] = $37;
+   $39 = (($40) - ($36))|0;
+   HEAP32[$8>>2] = $39;
+   $41 = ($3|0)==(0);
+   if ($41) {
+    $$3 = $38;
+   } else {
+    (_memset(($38|0),0,($36|0))|0);
+    $$3 = $38;
+   }
+  } else {
+   $$3 = 0;
+  }
+ } while(0);
+ return ($$3|0);
+}
+function _iswupper($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_towlower($0)|0);
+ $2 = ($1|0)!=($0|0);
+ $3 = $2&1;
+ return ($3|0);
+}
+function _iswlower($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_towupper($0)|0);
+ $2 = ($1|0)!=($0|0);
+ $3 = $2&1;
+ return ($3|0);
+}
+function _towupper($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (___towcase($0,0)|0);
+ return ($1|0);
+}
+function _towlower($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (___towcase($0,1)|0);
+ return ($1|0);
+}
+function ___towcase($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$06283 = 0, $$16382 = 0, $$2 = 0, $$neg75 = 0, $$neg77 = 0, $$neg78 = 0, 
$$not = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 
0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
+ var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, 
$3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, 
$38 = 0, $39 = 0, $4 = 0;
+ var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, 
$48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, 
$56 = 0, $57 = 0, $58 = 0;
+ var $59 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond65 = 0, 
$or$cond67 = 0, $or$cond69 = 0, $or$cond71 = 0, $spec$select = 0, label = 0, sp 
= 0;
+ sp = STACKTOP;
+ $2 = $1 << 1;
+ $3 = (($2) + -1)|0;
+ $4 = (($1) + -1)|0;
+ $5 = (_iswalpha($0)|0);
+ $6 = ($5|0)==(0);
+ $7 = (($0) + -1536)|0;
+ $8 = ($7>>>0)<(2560);
+ $or$cond65 = $8 | $6;
+ $9 = (($0) + -11776)|0;
+ $10 = ($9>>>0)<(30784);
+ $or$cond67 = $10 | $or$cond65;
+ $11 = (($0) + -43008)|0;
+ $12 = ($11>>>0)<(22272);
+ $or$cond69 = $12 | $or$cond67;
+ L1: do {
+  if ($or$cond69) {
+   $$2 = $0;
+  } else {
+   $13 = ($1|0)!=(0);
+   $14 = (($0) + -4256)|0;
+   $15 = ($14>>>0)<(46);
+   $or$cond71 = $13 & $15;
+   if ($or$cond71) {
+    $16 = ($0|0)>(4293);
+    if ($16) {
+     switch ($0|0) {
+     case 4295: case 4301:  {
+      break;
+     }
+     default: {
+      $$2 = $0;
+      break L1;
+     }
+     }
+    }
+    $17 = (($0) + 7264)|0;
+    $$2 = $17;
+    break;
+   }
+   $$not = $13 ^ 1;
+   $18 = (($0) + -11520)|0;
+   $19 = ($18>>>0)<(38);
+   $or$cond = $19 & $$not;
+   if ($or$cond) {
+    $20 = (($0) + -7264)|0;
+    $$2 = $20;
+    break;
+   }
+   $$06283 = 0;
+   while(1) {
+    $23 = (((30432 + ($$06283<<2)|0)) + 3|0);
+    $24 = HEAP8[$23>>0]|0;
+    $25 = (30432 + ($$06283<<2)|0);
+    $26 = HEAP16[$25>>1]|0;
+    $27 = $26&65535;
+    $28 = (((30432 + ($$06283<<2)|0)) + 2|0);
+    $29 = HEAP8[$28>>0]|0;
+    $30 = $29 << 24 >> 24;
+    $31 = $4 & $30;
+    $$neg75 = (($0) - ($27))|0;
+    $32 = (($$neg75) - ($31))|0;
+    $33 = $24&255;
+    $34 = ($32>>>0)<($33>>>0);
+    $22 = (($$06283) + 1)|0;
+    if ($34) {
+     label = 11;
+     break;
+    }
+    $21 = ($22|0)==(61);
+    if ($21) {
+     break;
+    } else {
+     $$06283 = $22;
+    }
+   }
+   if ((label|0) == 11) {
+    $35 = ($29<<24>>24)==(1);
+    if ($35) {
+     $36 = (($1) + ($0))|0;
+     $37 = $$neg75 & 1;
+     $38 = (($36) - ($37))|0;
+     $$2 = $38;
+     break;
+    } else {
+     $39 = Math_imul($3, $30)|0;
+     $40 = (($39) + ($0))|0;
+     $$2 = $40;
+     break;
+    }
+   }
+   $41 = (1 - ($1))|0;
+   $42 = (30688 + ($41<<1)|0);
+   $43 = HEAP16[$42>>1]|0;
+   $44 = ($43<<16>>16)==(0);
+   L21: do {
+    if (!($44)) {
+     $$16382 = 0;$46 = $43;
+     while(1) {
+      $45 = $46&65535;
+      $47 = ($45|0)==($0|0);
+      if ($47) {
+       break;
+      }
+      $51 = (($$16382) + 1)|0;
+      $52 = ((30688 + ($51<<2)|0) + ($41<<1)|0);
+      $53 = HEAP16[$52>>1]|0;
+      $54 = ($53<<16>>16)==(0);
+      if ($54) {
+       break L21;
+      } else {
+       $$16382 = $51;$46 = $53;
+      }
+     }
+     $48 = ((30688 + ($$16382<<2)|0) + ($1<<1)|0);
+     $49 = HEAP16[$48>>1]|0;
+     $50 = $49&65535;
+     $$2 = $50;
+     break L1;
+    }
+   } while(0);
+   $$neg77 = ($1*40)|0;
+   $$neg78 = (($0) + -66600)|0;
+   $55 = (($$neg78) + ($$neg77))|0;
+   $56 = ($55>>>0)<(40);
+   $57 = (($0) + -40)|0;
+   $58 = ($1*80)|0;
+   $59 = (($57) + ($58))|0;
+   $spec$select = $56 ? $59 : $0;
+   return ($spec$select|0);
+  }
+ } while(0);
+ return ($$2|0);
+}
+function _iswalpha($0) {
+ $0 = $0|0;
+ var $$ = 0, $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 
= 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0>>>0)<(131072);
+ if ($1) {
+  $2 = $0 >>> 8;
+  $3 = (31184 + ($2)|0);
+  $4 = HEAP8[$3>>0]|0;
+  $5 = $4&255;
+  $6 = $5 << 5;
+  $7 = $0 >>> 3;
+  $8 = $7 & 31;
+  $9 = $6 | $8;
+  $10 = (31184 + ($9)|0);
+  $11 = HEAP8[$10>>0]|0;
+  $12 = $11&255;
+  $13 = $0 & 7;
+  $14 = $12 >>> $13;
+  $15 = $14 & 1;
+  $$0 = $15;
+ } else {
+  $16 = ($0>>>0)<(196606);
+  $$ = $16&1;
+  $$0 = $$;
+ }
+ return ($$0|0);
+}
+function _iswctype($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 
0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ do {
+  switch ($1|0) {
+  case 1:  {
+   $2 = (_iswalnum($0)|0);
+   $$0 = $2;
+   break;
+  }
+  case 2:  {
+   $3 = (_iswalpha($0)|0);
+   $$0 = $3;
+   break;
+  }
+  case 3:  {
+   $4 = (_iswblank($0)|0);
+   $$0 = $4;
+   break;
+  }
+  case 4:  {
+   $5 = (_iswcntrl($0)|0);
+   $$0 = $5;
+   break;
+  }
+  case 5:  {
+   $6 = (_iswdigit($0)|0);
+   $$0 = $6;
+   break;
+  }
+  case 6:  {
+   $7 = (_iswgraph($0)|0);
+   $$0 = $7;
+   break;
+  }
+  case 7:  {
+   $8 = (_iswlower($0)|0);
+   $$0 = $8;
+   break;
+  }
+  case 8:  {
+   $9 = (_iswprint($0)|0);
+   $$0 = $9;
+   break;
+  }
+  case 9:  {
+   $10 = (_iswpunct($0)|0);
+   $$0 = $10;
+   break;
+  }
+  case 10:  {
+   $11 = (_iswspace($0)|0);
+   $$0 = $11;
+   break;
+  }
+  case 11:  {
+   $12 = (_iswupper($0)|0);
+   $$0 = $12;
+   break;
+  }
+  case 12:  {
+   $13 = (_iswxdigit($0)|0);
+   $$0 = $13;
+   break;
+  }
+  default: {
+   $$0 = 0;
+  }
+  }
+ } while(0);
+ return ($$0|0);
+}
+function _iswalnum($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $phitmp = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_iswdigit($0)|0);
+ $2 = ($1|0)==(0);
+ if ($2) {
+  $3 = (_iswalpha($0)|0);
+  $4 = ($3|0)!=(0);
+  $phitmp = $4&1;
+  $5 = $phitmp;
+ } else {
+  $5 = 1;
+ }
+ return ($5|0);
+}
+function _iswblank($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_isblank($0)|0);
+ return ($1|0);
+}
+function _iswcntrl($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $narrow = 
0, $or$cond = 0, $or$cond6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0>>>0)<(32);
+ $2 = (($0) + -127)|0;
+ $3 = ($2>>>0)<(33);
+ $or$cond = $1 | $3;
+ $4 = $0 & -2;
+ $5 = ($4|0)==(8232);
+ $or$cond6 = $5 | $or$cond;
+ $6 = (($0) + -65529)|0;
+ $7 = ($6>>>0)<(3);
+ $narrow = $7 | $or$cond6;
+ $8 = $narrow&1;
+ return ($8|0);
+}
+function _iswgraph($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $phitmp = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_iswspace($0)|0);
+ $2 = ($1|0)==(0);
+ if ($2) {
+  $3 = (_iswprint($0)|0);
+  $4 = ($3|0)!=(0);
+  $phitmp = $4&1;
+  $5 = $phitmp;
+ } else {
+  $5 = 0;
+ }
+ return ($5|0);
+}
+function _iswprint($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 
= 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $not$or$cond11 = 0, 
$or$cond = 0, $or$cond9 = 0, $spec$select = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ $1 = ($0>>>0)<(255);
+ if ($1) {
+  $2 = (($0) + 1)|0;
+  $3 = $2 & 127;
+  $4 = ($3>>>0)>(32);
+  $5 = $4&1;
+  $$0 = $5;
+ } else {
+  $6 = ($0>>>0)<(8232);
+  $7 = (($0) + -8234)|0;
+  $8 = ($7>>>0)<(47062);
+  $or$cond = $6 | $8;
+  $9 = (($0) + -57344)|0;
+  $10 = ($9>>>0)<(8185);
+  $or$cond9 = $10 | $or$cond;
+  if ($or$cond9) {
+   $$0 = 1;
+  } else {
+   $11 = (($0) + -65532)|0;
+   $12 = ($11>>>0)<(1048580);
+   $13 = $0 & 65534;
+   $14 = ($13|0)!=(65534);
+   $not$or$cond11 = $14 & $12;
+   $spec$select = $not$or$cond11&1;
+   return ($spec$select|0);
+  }
+ }
+ return ($$0|0);
+}
+function _iswpunct($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 
= 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0>>>0)<(131072);
+ if ($1) {
+  $2 = $0 >>> 8;
+  $3 = (34160 + ($2)|0);
+  $4 = HEAP8[$3>>0]|0;
+  $5 = $4&255;
+  $6 = $5 << 5;
+  $7 = $0 >>> 3;
+  $8 = $7 & 31;
+  $9 = $6 | $8;
+  $10 = (34160 + ($9)|0);
+  $11 = HEAP8[$10>>0]|0;
+  $12 = $11&255;
+  $13 = $0 & 7;
+  $14 = $12 >>> $13;
+  $15 = $14 & 1;
+  $$0 = $15;
+ } else {
+  $$0 = 0;
+ }
+ return ($$0|0);
+}
+function _iswxdigit($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $narrow = 0, $spec$select = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (($0) + -48)|0;
+ $2 = ($1>>>0)<(10);
+ $3 = $0 | 32;
+ $4 = (($3) + -97)|0;
+ $5 = ($4>>>0)<(6);
+ $narrow = $2 | $5;
+ $spec$select = $narrow&1;
+ return ($spec$select|0);
+}
+function _isblank($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ($0|0)==(32);
+ $2 = ($0|0)==(9);
+ $3 = $1 | $2;
+ $4 = $3&1;
+ return ($4|0);
+}
+function _regexec($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0 = 0, $$026 = 0, $$027 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 
0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 
= 0, $24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, 
$spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $5 = sp;
+ $6 = ((($0)) + 4|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ((($7)) + 56|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = $9 & 8;
+ $11 = ($10|0)==(0);
+ $spec$select = $11 ? $2 : 0;
+ $12 = ((($7)) + 40|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = ($13|0)>(0);
+ $15 = ($spec$select|0)!=(0);
+ $or$cond = $14 & $15;
+ if ($or$cond) {
+  $16 = $13 << 2;
+  $17 = (_malloc($16)|0);
+  $18 = ($17|0)==(0|0);
+  if ($18) {
+   $$027 = 12;
+  } else {
+   $$0 = $17;$28 = $17;
+   label = 3;
+  }
+ } else {
+  $$0 = 0;$28 = 0;
+  label = 3;
+ }
+ if ((label|0) == 3) {
+  $19 = ((($7)) + 60|0);
+  $20 = HEAP32[$19>>2]|0;
+  $21 = ($20|0)==(0);
+  if ($21) {
+   $23 = (_tre_tnfa_run_parallel($7,$1,$$0,$4,$5)|0);
+   $$026 = $23;
+  } else {
+   $22 = (_tre_tnfa_run_backtrack($7,$1,$$0,$4,$5)|0);
+   $$026 = $22;
+  }
+  $24 = ($$026|0)==(0);
+  if ($24) {
+   $25 = HEAP32[$8>>2]|0;
+   $26 = HEAP32[$5>>2]|0;
+   _tre_fill_pmatch($spec$select,$3,$25,$7,$$0,$26);
+  }
+  $27 = ($$0|0)==(0|0);
+  if ($27) {
+   $$027 = $$026;
+  } else {
+   _free($28);
+   $$027 = $$026;
+  }
+ }
+ STACKTOP = sp;return ($$027|0);
+}
+function _tre_tnfa_run_backtrack($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0450616675 = 0, $$0452612 = 0, $$0453 = 0, $$0453$ph = 0, $$0458 = 0, 
$$0463 = 0, $$0463$ph = 0, $$0467 = 0, $$0476 = 0, $$0477638 = 0, $$0479627 = 
0, $$0481590 = 0, $$0482 = 0, $$0487586 = 0, $$0488579 = 0, $$0502 = 0, 
$$0504597 = 0, $$0506 = 0, $$0520594 = 0, $$0531 = 0;
+ var $$0533593 = 0, $$0537 = 0, $$0608 = 0, $$11517 = 0, $$12518 = 0, 
$$12518$ph = 0, $$14 = 0, $$1454 = 0, $$1459 = 0, $$1459$ph = 0, $$1464 = 0, 
$$1468 = 0, $$1480 = 0, $$1483$ph = 0, $$1503 = 0, $$1505624 = 0, $$1507595 = 
0, $$1521 = 0, $$1532 = 0, $$1534 = 0;
+ var $$1538 = 0, $$2455 = 0, $$2460 = 0, $$2465 = 0, $$2469 = 0, $$2469$ph = 
0, $$2492 = 0, $$2492$clear = 0, $$2522604 = 0, $$2535 = 0, $$2535$ph = 0, 
$$3456 = 0, $$3456$ph = 0, $$3461 = 0, $$3470 = 0, $$3485 = 0, $$3509 = 0, 
$$3523 = 0, $$4471 = 0, $$4524 = 0;
+ var $$4524$be = 0, $$4524$ph = 0, $$5472 = 0, $$5511 = 0, $$5525620 = 0, 
$$6473 = 0, $$6501 = 0, $$6512 = 0, $$6512$ph = 0, $$6526 = 0, $$7474 = 0, 
$$7474$ph = 0, $$7513621 = 0, $$7527634 = 0, $$9515 = 0, $$9529 = 0, $$9529$ph 
= 0, $$old = 0, $$old11 = 0, $$old37 = 0;
+ var $$old38 = 0, $$pr = 0, $$pr539 = 0, $$pr545 = 0, $$pr547 = 0, $$pre = 0, 
$$pre651 = 0, $$pre655 = 0, $$pre657 = 0, $$pre658 = 0, $$pre659 = 0, $10 = 0, 
$100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0;
+ var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 
= 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 
= 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0;
+ var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 
= 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 
= 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0;
+ var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 
= 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 
= 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0;
+ var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, 
$169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, 
$176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0;
+ var $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, 
$187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, 
$194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0;
+ var $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 
= 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 
= 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0;
+ var $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 
= 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 
= 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0;
+ var $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 
= 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 
= 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0;
+ var $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 
= 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 
= 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0;
+ var $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, 
$278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, 
$285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0;
+ var $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 
= 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 
= 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0;
+ var $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 
= 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 
= 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0;
+ var $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 
= 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 
= 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0;
+ var $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 
= 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 
= 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0;
+ var $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, 
$369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, 
$376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0;
+ var $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, 
$387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, 
$394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0;
+ var $399 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 
= 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 
= 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0;
+ var $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 
= 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 
= 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0;
+ var $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 
= 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 
= 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0;
+ var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, 
$53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $63 = 0;
+ var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, 
$71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 
0, $8 = 0, $80 = 0, $81 = 0;
+ var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, 
$9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, 
$98 = 0, $99 = 0, $brmerge = 0;
+ var $brmerge640 = 0, $brmerge643 = 0, $brmerge644 = 0, $not$ = 0, 
$or$cond$not = 0, $or$cond10 = 0, $or$cond12 = 0, $or$cond15 = 0, $or$cond18 = 
0, $or$cond21 = 0, $or$cond24 = 0, $or$cond27$not = 0, $or$cond30 = 0, 
$or$cond36 = 0, $or$cond39 = 0, $or$cond42 = 0, $or$cond45 = 0, $or$cond48 = 0, 
$or$cond51 = 0, $or$cond6 = 0;
+ var $or$cond642 = 0, $or$cond646 = 0, $spec$select = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $5 = sp;
+ HEAP32[$5>>2] = 0;
+ $6 = $3 & 1;
+ $7 = $3 & 2;
+ $8 = ((($0)) + 56|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = $9 & 4;
+ $11 = (___tre_mem_new_impl(0,0)|0);
+ $12 = ($11|0)==(0|0);
+ L1: do {
+  if ($12) {
+   $$14 = 12;
+  } else {
+   $13 = (___tre_mem_alloc_impl($11,0,0,0,32)|0);
+   $14 = ($13|0)==(0|0);
+   if ($14) {
+    ___tre_mem_destroy($11);
+    $$14 = 12;
+    break;
+   }
+   $15 = ((($13)) + 24|0);
+   HEAP32[$15>>2] = 0;
+   $16 = ((($13)) + 28|0);
+   HEAP32[$16>>2] = 0;
+   $17 = ((($0)) + 40|0);
+   $18 = HEAP32[$17>>2]|0;
+   $19 = ($18|0)==(0);
+   if ($19) {
+    $$0537 = 0;$135 = 0;
+    label = 6;
+   } else {
+    $20 = $18 << 2;
+    $21 = (_malloc($20)|0);
+    $22 = ($21|0)==(0|0);
+    if ($22) {
+     $$1503 = 0;$$1532 = 0;$$1538 = $21;$$6501 = 12;$447 = 0;$449 = 0;$451 = 0;
+    } else {
+     $$0537 = $21;$135 = $21;
+     label = 6;
+    }
+   }
+   L8: do {
+    if ((label|0) == 6) {
+     $23 = ((($0)) + 28|0);
+     $24 = HEAP32[$23>>2]|0;
+     $25 = ($24|0)==(0);
+     if ($25) {
+      $$0502 = 0;$137 = 0;
+     } else {
+      $26 = $24 << 3;
+      $27 = (_malloc($26)|0);
+      $28 = ($27|0)==(0|0);
+      if ($28) {
+       $$1503 = $27;$$1532 = 0;$$1538 = $$0537;$$6501 = 12;$447 = $135;$449 = 
0;$451 = 0;
+       break;
+      } else {
+       $$0502 = $27;$137 = $27;
+      }
+     }
+     $29 = ((($0)) + 52|0);
+     $30 = HEAP32[$29>>2]|0;
+     $31 = ($30|0)==(0);
+     if ($31) {
+      $$0531 = 0;$52 = 0;
+     } else {
+      $32 = $30 << 2;
+      $33 = (_malloc($32)|0);
+      $34 = ($33|0)==(0|0);
+      if ($34) {
+       $$1503 = $$0502;$$1532 = $33;$$1538 = $$0537;$$6501 = 12;$447 = 
$135;$449 = $137;$451 = 0;
+       break;
+      } else {
+       $$0531 = $33;$52 = $33;
+      }
+     }
+     $35 = ($2|0)==(0|0);
+     $36 = ((($0)) + 8|0);
+     $37 = ($6|0)==(0);
+     $38 = ($10|0)!=(0);
+     $39 = ((($0)) + 12|0);
+     $40 = ($2|0)!=(0|0);
+     $41 = ((($0)) + 32|0);
+     $$0458 = $1;$$0467 = 1;$$0476 = -1;$$0482 = -1;$$0506 = $13;$65 = 0;
+     L16: while(1) {
+      $42 = HEAP32[$17>>2]|0;
+      $43 = ($42|0)>(0);
+      if ($43) {
+       $$0488579 = 0;$452 = $42;
+       while(1) {
+        $44 = (($$0537) + ($$0488579<<2)|0);
+        HEAP32[$44>>2] = -1;
+        if ($35) {
+         $48 = $452;
+        } else {
+         $45 = (($2) + ($$0488579<<2)|0);
+         HEAP32[$45>>2] = -1;
+         $$pre = HEAP32[$17>>2]|0;
+         $48 = $$pre;
+        }
+        $46 = (($$0488579) + 1)|0;
+        $47 = ($46|0)<($48|0);
+        if ($47) {
+         $$0488579 = $46;$452 = $48;
+        } else {
+         break;
+        }
+       }
+      }
+      $49 = HEAP32[$29>>2]|0;
+      $50 = ($49|0)>(0);
+      if ($50) {
+       $51 = $49 << 2;
+       _memset(($52|0),0,($51|0))|0;
+      }
+      $53 = (($$0467) + ($$0476))|0;
+      $54 = (_mbtowc($5,$$0458,4)|0);
+      $55 = ($54|0)<(1);
+      if ($55) {
+       $56 = ($54|0)<(0);
+       if ($56) {
+        $$1503 = $$0502;$$1532 = $$0531;$$1538 = $$0537;$$6501 = 1;$447 = 
$135;$449 = $137;$451 = $52;
+        break L8;
+       } else {
+        $$1468 = 1;
+       }
+      } else {
+       $$1468 = $54;
+      }
+      $57 = (($$0458) + ($$1468)|0);
+      $58 = HEAP32[$5>>2]|0;
+      $59 = HEAP32[$36>>2]|0;
+      $60 = ((($59)) + 8|0);
+      $61 = HEAP32[$60>>2]|0;
+      $62 = ($61|0)==(0|0);
+      if ($62) {
+       $$12518 = $$0506;$$3456 = $65;$$3485 = $$0482;$$7474 = $$1468;$$9529 = 
0;
+       label = 179;
+      } else {
+       $63 = ($53|0)<(1);
+       $64 = ($65|0)==(10);
+       $or$cond6 = $38 & $64;
+       $66 = ($65|0)==(95);
+       $67 = ($53|0)!=(0);
+       $68 = ($53|0)==(0);
+       $or$cond$not = $63 & $37;
+       $$0504597 = $59;$$0520594 = 0;$$0533593 = 0;$$1507595 = $$0506;$126 = 
$60;
+       while(1) {
+        $69 = ((($$0504597)) + 20|0);
+        $70 = HEAP32[$69>>2]|0;
+        $71 = ($70|0)==(0);
+        L36: do {
+         if ($71) {
+          label = 50;
+         } else {
+          $72 = $70 & 1;
+          $73 = ($72|0)==(0);
+          $brmerge = $73 | $or$cond$not;
+          $brmerge640 = $brmerge | $or$cond6;
+          if ($brmerge640) {
+           $74 = $70 & 2;
+           $75 = ($74|0)==(0);
+           if (!($75)) {
+            $76 = HEAP32[$5>>2]|0;
+            $77 = $76 | $7;
+            $78 = ($77|0)==(0);
+            $79 = ($76|0)==(10);
+            $or$cond10 = $38 & $79;
+            $or$cond642 = $78 | $or$cond10;
+            if (!($or$cond642)) {
+             $$1521 = $$0520594;$$1534 = $$0533593;$$5511 = $$1507595;
+             break;
+            }
+           }
+           $80 = $70 & 16;
+           $81 = ($80|0)==(0);
+           do {
+            if (!($81)) {
+             if ($66) {
+              $$1521 = $$0520594;$$1534 = $$0533593;$$5511 = $$1507595;
+              break L36;
+             }
+             $82 = (_iswalnum($65)|0);
+             $83 = ($82|0)==(0);
+             if (!($83)) {
+              $$1521 = $$0520594;$$1534 = $$0533593;$$5511 = $$1507595;
+              break L36;
+             }
+             $84 = HEAP32[$5>>2]|0;
+             $85 = ($84|0)==(95);
+             if ($85) {
+              break;
+             }
+             $86 = (_iswalnum($84)|0);
+             $87 = ($86|0)==(0);
+             if ($87) {
+              $$1521 = $$0520594;$$1534 = $$0533593;$$5511 = $$1507595;
+              break L36;
+             }
+            }
+           } while(0);
+           $88 = HEAP32[$69>>2]|0;
+           $89 = $88 & 32;
+           $90 = ($89|0)==(0);
+           if ($90) {
+            $99 = $88;
+           } else {
+            if ($66) {
+             $$old = HEAP32[$5>>2]|0;
+             $$old11 = ($$old|0)==(95);
+             if ($$old11) {
+              $$1521 = $$0520594;$$1534 = $$0533593;$$5511 = $$1507595;
+              break;
+             } else {
+              $95 = $$old;
+             }
+            } else {
+             $91 = (_iswalnum($65)|0);
+             $92 = ($91|0)==(0);
+             $93 = HEAP32[$5>>2]|0;
+             $94 = ($93|0)==(95);
+             $or$cond12 = $92 | $94;
+             if ($or$cond12) {
+              $$1521 = $$0520594;$$1534 = $$0533593;$$5511 = $$1507595;
+              break;
+             } else {
+              $95 = $93;
+             }
+            }
+            $96 = (_iswalnum($95)|0);
+            $97 = ($96|0)==(0);
+            if (!($97)) {
+             $$1521 = $$0520594;$$1534 = $$0533593;$$5511 = $$1507595;
+             break;
+            }
+            $$pre651 = HEAP32[$69>>2]|0;
+            $99 = $$pre651;
+           }
+           $98 = $99 & 64;
+           $100 = ($98|0)!=(0);
+           $or$cond15 = $67 & $100;
+           $101 = HEAP32[$5>>2]|0;
+           $102 = ($101|0)!=(0);
+           $or$cond18 = $102 & $or$cond15;
+           do {
+            if ($or$cond18) {
+             if ($66) {
+              $106 = $101;$110 = 1;
+             } else {
+              $103 = (_iswalnum($65)|0);
+              $104 = ($103|0)!=(0);
+              $$pr = HEAP32[$5>>2]|0;
+              $106 = $$pr;$110 = $104;
+             }
+             $105 = ($106|0)==(95);
+             if ($105) {
+              if ($110) {
+               $$1521 = $$0520594;$$1534 = $$0533593;$$5511 = $$1507595;
+               break L36;
+              } else {
+               break;
+              }
+             } else {
+              $107 = (_iswalnum($106)|0);
+              $108 = ($107|0)!=(0);
+              $109 = $110 ^ $108;
+              if ($109) {
+               break;
+              } else {
+               $$1521 = $$0520594;$$1534 = $$0533593;$$5511 = $$1507595;
+               break L36;
+              }
+             }
+            }
+           } while(0);
+           $111 = HEAP32[$69>>2]|0;
+           $112 = $111 & 128;
+           $113 = ($112|0)==(0);
+           if ($113) {
+            label = 50;
+            break;
+           }
+           $114 = HEAP32[$5>>2]|0;
+           $115 = ($114|0)==(0);
+           $or$cond21 = $68 | $115;
+           if ($or$cond21) {
+            $$1521 = $$0520594;$$1534 = $$0533593;$$5511 = $$1507595;
+            break;
+           }
+           if ($66) {
+            $119 = $114;$123 = 1;
+           } else {
+            $116 = (_iswalnum($65)|0);
+            $117 = ($116|0)!=(0);
+            $$pr539 = HEAP32[$5>>2]|0;
+            $119 = $$pr539;$123 = $117;
+           }
+           $118 = ($119|0)==(95);
+           if ($118) {
+            if ($123) {
+             label = 50;
+             break;
+            } else {
+             $$1521 = $$0520594;$$1534 = $$0533593;$$5511 = $$1507595;
+             break;
+            }
+           } else {
+            $120 = (_iswalnum($119)|0);
+            $121 = ($120|0)!=(0);
+            $122 = $123 ^ $121;
+            if ($122) {
+             $$1521 = $$0520594;$$1534 = $$0533593;$$5511 = $$1507595;
+             break;
+            } else {
+             label = 50;
+             break;
+            }
+           }
+          } else {
+           $$1521 = $$0520594;$$1534 = $$0533593;$$5511 = $$1507595;
+          }
+         }
+        } while(0);
+        do {
+         if ((label|0) == 50) {
+          label = 0;
+          $124 = ($$0533593|0)==(0|0);
+          if ($124) {
+           $125 = HEAP32[$126>>2]|0;
+           $127 = ((($$0504597)) + 16|0);
+           $128 = HEAP32[$127>>2]|0;
+           $$1521 = $128;$$1534 = $125;$$5511 = $$1507595;
+           break;
+          }
+          $129 = ((($$1507595)) + 28|0);
+          $130 = HEAP32[$129>>2]|0;
+          $131 = ($130|0)==(0|0);
+          if ($131) {
+           $132 = (___tre_mem_alloc_impl($11,0,0,0,32)|0);
+           $133 = ($132|0)==(0|0);
+           if ($133) {
+            label = 54;
+            break L16;
+           }
+           $139 = ((($132)) + 24|0);
+           HEAP32[$139>>2] = $$1507595;
+           $140 = ((($132)) + 28|0);
+           HEAP32[$140>>2] = 0;
+           $141 = HEAP32[$17>>2]|0;
+           $142 = $141 << 2;
+           $143 = (___tre_mem_alloc_impl($11,0,0,0,$142)|0);
+           $144 = ((($132)) + 20|0);
+           HEAP32[$144>>2] = $143;
+           $145 = ($143|0)==(0|0);
+           if ($145) {
+            label = 61;
+            break L16;
+           }
+           HEAP32[$129>>2] = $132;
+           $$3509 = $132;
+          } else {
+           $$3509 = $130;
+          }
+          HEAP32[$$3509>>2] = $53;
+          $149 = ((($$3509)) + 4|0);
+          HEAP32[$149>>2] = $57;
+          $150 = HEAP32[$126>>2]|0;
+          $151 = ((($$3509)) + 8|0);
+          HEAP32[$151>>2] = $150;
+          $152 = ((($$0504597)) + 12|0);
+          $153 = HEAP32[$152>>2]|0;
+          $154 = ((($$3509)) + 12|0);
+          HEAP32[$154>>2] = $153;
+          $155 = HEAP32[$5>>2]|0;
+          $156 = ((($$3509)) + 16|0);
+          HEAP32[$156>>2] = $155;
+          $157 = HEAP32[$17>>2]|0;
+          $158 = ($157|0)>(0);
+          if ($158) {
+           $159 = ((($$3509)) + 20|0);
+           $160 = HEAP32[$159>>2]|0;
+           $$0487586 = 0;
+           while(1) {
+            $161 = (($$0537) + ($$0487586<<2)|0);
+            $162 = HEAP32[$161>>2]|0;
+            $163 = (($160) + ($$0487586<<2)|0);
+            HEAP32[$163>>2] = $162;
+            $164 = (($$0487586) + 1)|0;
+            $165 = HEAP32[$17>>2]|0;
+            $166 = ($164|0)<($165|0);
+            if ($166) {
+             $$0487586 = $164;
+            } else {
+             break;
+            }
+           }
+          }
+          $167 = ((($$0504597)) + 16|0);
+          $168 = HEAP32[$167>>2]|0;
+          $169 = ($168|0)==(0|0);
+          if ($169) {
+           $$1521 = $$0520594;$$1534 = $$0533593;$$5511 = $$3509;
+          } else {
+           $170 = HEAP32[$168>>2]|0;
+           $171 = ($170|0)>(-1);
+           if (!($171)) {
+            $$1521 = $$0520594;$$1534 = $$0533593;$$5511 = $$3509;
+            break;
+           }
+           $172 = ((($$3509)) + 20|0);
+           $173 = HEAP32[$172>>2]|0;
+           $$0481590 = $168;$176 = $170;
+           while(1) {
+            $174 = ((($$0481590)) + 4|0);
+            $175 = (($173) + ($176<<2)|0);
+            HEAP32[$175>>2] = $53;
+            $177 = HEAP32[$174>>2]|0;
+            $178 = ($177|0)>(-1);
+            if ($178) {
+             $$0481590 = $174;$176 = $177;
+            } else {
+             $$1521 = $$0520594;$$1534 = $$0533593;$$5511 = $$3509;
+             break;
+            }
+           }
+          }
+         }
+        } while(0);
+        $179 = ((($$0504597)) + 32|0);
+        $180 = ((($$0504597)) + 40|0);
+        $181 = HEAP32[$180>>2]|0;
+        $182 = ($181|0)==(0|0);
+        if ($182) {
+         break;
+        } else {
+         $$0504597 = $179;$$0520594 = $$1521;$$0533593 = $$1534;$$1507595 = 
$$5511;$126 = $180;
+        }
+       }
+       $183 = ($$1521|0)==(0|0);
+       if ($183) {
+        $$3523 = 0;
+       } else {
+        $184 = HEAP32[$$1521>>2]|0;
+        $185 = ($184|0)>(-1);
+        if ($185) {
+         $$2522604 = $$1521;$187 = $184;
+         while(1) {
+          $186 = (($$0537) + ($187<<2)|0);
+          HEAP32[$186>>2] = $53;
+          $188 = ((($$2522604)) + 4|0);
+          $189 = HEAP32[$188>>2]|0;
+          $190 = ($189|0)>(-1);
+          if ($190) {
+           $$2522604 = $188;$187 = $189;
+          } else {
+           $$3523 = $188;
+           break;
+          }
+         }
+        } else {
+         $$3523 = $$1521;
+        }
+       }
+       $191 = ($$1534|0)==(0|0);
+       if ($191) {
+        $$12518 = $$5511;$$3456 = $65;$$3485 = $$0482;$$7474 = $$1468;$$9529 = 
$$3523;
+        label = 179;
+       } else {
+        $$0453$ph = $65;$$0463$ph = $53;$$1459$ph = $57;$$1483$ph = 
$$0482;$$2469$ph = $$1468;$$2535$ph = $$1534;$$4524$ph = $$3523;$$6512$ph = 
$$5511;
+       }
+      }
+      L100: while(1) {
+       if ((label|0) == 179) {
+        label = 0;
+        $416 = ((($$12518)) + 24|0);
+        $417 = HEAP32[$416>>2]|0;
+        $418 = ($417|0)==(0|0);
+        if ($418) {
+         break;
+        }
+        $419 = ((($$12518)) + 8|0);
+        $420 = HEAP32[$419>>2]|0;
+        $421 = ((($420)) + 20|0);
+        $422 = HEAP32[$421>>2]|0;
+        $423 = $422 & 256;
+        $424 = ($423|0)==(0);
+        if (!($424)) {
+         $425 = ((($$12518)) + 12|0);
+         $426 = HEAP32[$425>>2]|0;
+         $427 = (($$0531) + ($426<<2)|0);
+         HEAP32[$427>>2] = 0;
+        }
+        $428 = HEAP32[$$12518>>2]|0;
+        $429 = ((($$12518)) + 4|0);
+        $430 = HEAP32[$429>>2]|0;
+        $431 = ((($$12518)) + 16|0);
+        $432 = HEAP32[$431>>2]|0;
+        HEAP32[$5>>2] = $432;
+        $433 = HEAP32[$17>>2]|0;
+        $434 = ($433|0)>(0);
+        if (!($434)) {
+         $$0453$ph = $$3456;$$0463$ph = $428;$$1459$ph = $430;$$1483$ph = 
$$3485;$$2469$ph = $$7474;$$2535$ph = $420;$$4524$ph = $$9529;$$6512$ph = $417;
+         continue;
+        }
+        $435 = ((($$12518)) + 20|0);
+        $436 = HEAP32[$435>>2]|0;
+        $$0608 = 0;
+        while(1) {
+         $437 = (($436) + ($$0608<<2)|0);
+         $438 = HEAP32[$437>>2]|0;
+         $439 = (($$0537) + ($$0608<<2)|0);
+         HEAP32[$439>>2] = $438;
+         $440 = (($$0608) + 1)|0;
+         $441 = ($440|0)<($433|0);
+         if ($441) {
+          $$0608 = $440;
+         } else {
+          $$0453$ph = $$3456;$$0463$ph = $428;$$1459$ph = $430;$$1483$ph = 
$$3485;$$2469$ph = $$7474;$$2535$ph = $420;$$4524$ph = $$9529;$$6512$ph = $417;
+          continue L100;
+         }
+        }
+       }
+       $$0453 = $$0453$ph;$$0463 = $$0463$ph;$$1459 = $$1459$ph;$$2469 = 
$$2469$ph;$$2535 = $$2535$ph;$$4524 = $$4524$ph;$$6512 = $$6512$ph;
+       L111: while(1) {
+        $192 = HEAP32[$39>>2]|0;
+        $193 = ($$2535|0)==($192|0);
+        if ($193) {
+         break;
+        }
+        $208 = ((($$2535)) + 8|0);
+        $209 = HEAP32[$208>>2]|0;
+        $210 = ($209|0)==(0|0);
+        if ($210) {
+         label = 100;
+        } else {
+         $211 = ((($$2535)) + 20|0);
+         $212 = HEAP32[$211>>2]|0;
+         $213 = $212 & 256;
+         $214 = ($213|0)==(0);
+         if ($214) {
+          label = 100;
+         } else {
+          $215 = ((($$2535)) + 24|0);
+          $216 = HEAP32[$215>>2]|0;
+          $217 = (($216) + 1)|0;
+          $218 = HEAP32[$8>>2]|0;
+          $219 = $218 & -9;
+          _tre_fill_pmatch($217,$$0502,$219,$0,$$0537,$$0463);
+          $220 = (($$0502) + ($216<<3)|0);
+          $221 = HEAP32[$220>>2]|0;
+          $222 = (((($$0502) + ($216<<3)|0)) + 4|0);
+          $223 = HEAP32[$222>>2]|0;
+          $224 = (($223) - ($221))|0;
+          $225 = (($1) + ($221)|0);
+          $226 = ((($$1459)) + -1|0);
+          $227 = (_strncmp($225,$226,$224)|0);
+          $228 = ($227|0)==(0);
+          do {
+           if ($228) {
+            $229 = ($224|0)==(0);
+            $spec$select = $229&1;
+            $230 = ((($$2535)) + 12|0);
+            $231 = HEAP32[$230>>2]|0;
+            $232 = (($$0531) + ($231<<2)|0);
+            if ($229) {
+             $233 = HEAP32[$232>>2]|0;
+             $234 = ($233|0)==(0);
+             if (!($234)) {
+              $$1454 = $$0453;$$1464 = $$0463;$$2460 = $$1459;$$2492 = 
25;$$4471 = $$2469;
+              break;
+             }
+            }
+            HEAP32[$232>>2] = $spec$select;
+            $235 = (($224) + -1)|0;
+            $236 = (($$1459) + ($235)|0);
+            $237 = HEAP32[$5>>2]|0;
+            $238 = (($$0463) + ($$2469))|0;
+            $239 = (($238) + ($235))|0;
+            $240 = (_mbtowc($5,$236,4)|0);
+            $241 = ($240|0)<(1);
+            if ($241) {
+             $242 = ($240|0)<(0);
+             if ($242) {
+              $$1454 = $237;$$1464 = $239;$$2460 = $236;$$2492 = 2;$$4471 = 
$240;
+              break;
+             } else {
+              $$3470 = 1;
+             }
+            } else {
+             $$3470 = $240;
+            }
+            $243 = (($236) + ($$3470)|0);
+            $$1454 = $237;$$1464 = $239;$$2460 = $243;$$2492 = 0;$$4471 = 
$$3470;
+           } else {
+            $$1454 = $$0453;$$1464 = $$0463;$$2460 = $$1459;$$2492 = 25;$$4471 
= $$2469;
+           }
+          } while(0);
+          $$2492$clear = $$2492 & 31;
+          switch ($$2492$clear<<24>>24) {
+          case 2:  {
+           $$1503 = $$0502;$$1532 = $$0531;$$1538 = $$0537;$$6501 = 1;$447 = 
$135;$449 = $137;$451 = $52;
+           break L8;
+           break;
+          }
+          case 25:  {
+           $$12518$ph = $$6512;$$3456$ph = $$1454;$$7474$ph = $$4471;$$9529$ph 
= $$4524;
+           label = 178;
+           break L111;
+           break;
+          }
+          case 0:  {
+           $$2455 = $$1454;$$2465 = $$1464;$$3461 = $$2460;$$6473 = $$4471;
+           break;
+          }
+          default: {
+           $$14 = 12;
+           break L1;
+          }
+          }
+         }
+        }
+        if ((label|0) == 100) {
+         label = 0;
+         $244 = HEAP32[$5>>2]|0;
+         $245 = ($244|0)==(0);
+         if ($245) {
+          $$12518$ph = $$6512;$$3456$ph = $$0453;$$7474$ph = $$2469;$$9529$ph 
= $$4524;
+          label = 178;
+          break;
+         }
+         $246 = (($$0463) + ($$2469))|0;
+         $247 = (_mbtowc($5,$$1459,4)|0);
+         $248 = ($247|0)<(1);
+         if ($248) {
+          $249 = ($247|0)<(0);
+          if ($249) {
+           $$1503 = $$0502;$$1532 = $$0531;$$1538 = $$0537;$$6501 = 1;$447 = 
$135;$449 = $137;$451 = $52;
+           break L8;
+          } else {
+           $$5472 = 1;
+          }
+         } else {
+          $$5472 = $247;
+         }
+         $250 = (($$1459) + ($$5472)|0);
+         $$2455 = $244;$$2465 = $246;$$3461 = $250;$$6473 = $$5472;
+        }
+        $251 = HEAP32[$208>>2]|0;
+        $252 = ($251|0)==(0|0);
+        if ($252) {
+         $$12518$ph = $$6512;$$3456$ph = $$2455;$$7474$ph = $$6473;$$9529$ph = 
$$4524;
+         label = 178;
+         break;
+        }
+        $253 = ($$2465|0)<(1);
+        $254 = ($$2455|0)==(10);
+        $or$cond30 = $38 & $254;
+        $255 = ($$2455|0)==(95);
+        $256 = ($$2465|0)!=(0);
+        $257 = ($$2465|0)==(0);
+        $or$cond27$not = $253 & $37;
+        $$0479627 = 0;$$1505624 = $$2535;$$5525620 = $$4524;$$7513621 = 
$$6512;$352 = $208;
+        while(1) {
+         $258 = HEAP32[$$1505624>>2]|0;
+         $259 = ($258>>>0)>($$2455>>>0);
+         L136: do {
+          if ($259) {
+           $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+          } else {
+           $260 = ((($$1505624)) + 4|0);
+           $261 = HEAP32[$260>>2]|0;
+           $262 = ($261>>>0)<($$2455>>>0);
+           if ($262) {
+            $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+            break;
+           }
+           $263 = ((($$1505624)) + 20|0);
+           $264 = HEAP32[$263>>2]|0;
+           $265 = ($264|0)==(0);
+           do {
+            if (!($265)) {
+             $266 = $264 & 1;
+             $267 = ($266|0)==(0);
+             $brmerge643 = $267 | $or$cond27$not;
+             $brmerge644 = $brmerge643 | $or$cond30;
+             if (!($brmerge644)) {
+              $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+              break L136;
+             }
+             $268 = $264 & 2;
+             $269 = ($268|0)==(0);
+             if (!($269)) {
+              $270 = HEAP32[$5>>2]|0;
+              $271 = $270 | $7;
+              $272 = ($271|0)==(0);
+              $273 = ($270|0)==(10);
+              $or$cond36 = $38 & $273;
+              $or$cond646 = $272 | $or$cond36;
+              if (!($or$cond646)) {
+               $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+               break L136;
+              }
+             }
+             $274 = $264 & 16;
+             $275 = ($274|0)==(0);
+             do {
+              if (!($275)) {
+               if ($255) {
+                $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+                break L136;
+               }
+               $276 = (_iswalnum($$2455)|0);
+               $277 = ($276|0)==(0);
+               if (!($277)) {
+                $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+                break L136;
+               }
+               $278 = HEAP32[$5>>2]|0;
+               $279 = ($278|0)==(95);
+               if ($279) {
+                break;
+               }
+               $280 = (_iswalnum($278)|0);
+               $281 = ($280|0)==(0);
+               if ($281) {
+                $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+                break L136;
+               }
+              }
+             } while(0);
+             $282 = HEAP32[$263>>2]|0;
+             $283 = $282 & 32;
+             $284 = ($283|0)==(0);
+             if ($284) {
+              $293 = $282;
+             } else {
+              if ($255) {
+               $$old37 = HEAP32[$5>>2]|0;
+               $$old38 = ($$old37|0)==(95);
+               if ($$old38) {
+                $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+                break L136;
+               } else {
+                $289 = $$old37;
+               }
+              } else {
+               $285 = (_iswalnum($$2455)|0);
+               $286 = ($285|0)==(0);
+               $287 = HEAP32[$5>>2]|0;
+               $288 = ($287|0)==(95);
+               $or$cond39 = $286 | $288;
+               if ($or$cond39) {
+                $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+                break L136;
+               } else {
+                $289 = $287;
+               }
+              }
+              $290 = (_iswalnum($289)|0);
+              $291 = ($290|0)==(0);
+              if (!($291)) {
+               $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+               break L136;
+              }
+              $$pre655 = HEAP32[$263>>2]|0;
+              $293 = $$pre655;
+             }
+             $292 = $293 & 64;
+             $294 = ($292|0)!=(0);
+             $or$cond42 = $256 & $294;
+             $295 = HEAP32[$5>>2]|0;
+             $296 = ($295|0)!=(0);
+             $or$cond45 = $296 & $or$cond42;
+             do {
+              if ($or$cond45) {
+               if ($255) {
+                $300 = $295;$304 = 1;
+               } else {
+                $297 = (_iswalnum($$2455)|0);
+                $298 = ($297|0)!=(0);
+                $$pr545 = HEAP32[$5>>2]|0;
+                $300 = $$pr545;$304 = $298;
+               }
+               $299 = ($300|0)==(95);
+               if ($299) {
+                if ($304) {
+                 $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+                 break L136;
+                } else {
+                 break;
+                }
+               } else {
+                $301 = (_iswalnum($300)|0);
+                $302 = ($301|0)!=(0);
+                $303 = $304 ^ $302;
+                if ($303) {
+                 break;
+                } else {
+                 $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+                 break L136;
+                }
+               }
+              }
+             } while(0);
+             $305 = HEAP32[$263>>2]|0;
+             $306 = $305 & 128;
+             $307 = ($306|0)==(0);
+             do {
+              if (!($307)) {
+               $308 = HEAP32[$5>>2]|0;
+               $309 = ($308|0)==(0);
+               $or$cond48 = $257 | $309;
+               if ($or$cond48) {
+                $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+                break L136;
+               }
+               if ($255) {
+                $313 = $308;$317 = 1;
+               } else {
+                $310 = (_iswalnum($$2455)|0);
+                $311 = ($310|0)!=(0);
+                $$pr547 = HEAP32[$5>>2]|0;
+                $313 = $$pr547;$317 = $311;
+               }
+               $312 = ($313|0)==(95);
+               if ($312) {
+                if ($317) {
+                 break;
+                } else {
+                 $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+                 break L136;
+                }
+               } else {
+                $314 = (_iswalnum($313)|0);
+                $315 = ($314|0)!=(0);
+                $316 = $317 ^ $315;
+                if ($316) {
+                 $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+                 break L136;
+                } else {
+                 break;
+                }
+               }
+              }
+             } while(0);
+             $318 = HEAP32[$263>>2]|0;
+             $319 = $318 & 4;
+             $320 = ($319|0)==(0);
+             do {
+              if (!($320)) {
+               $321 = HEAP32[$8>>2]|0;
+               $322 = $321 & 2;
+               $323 = ($322|0)==(0);
+               if ($323) {
+                $324 = ((($$1505624)) + 24|0);
+                $325 = HEAP32[$324>>2]|0;
+                $326 = (_iswctype($$2455,$325)|0);
+                $327 = ($326|0)==(0);
+                if ($327) {
+                 $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+                 break L136;
+                }
+                $$pre657 = HEAP32[$263>>2]|0;
+                $$pre659 = $$pre657 & 4;
+                $328 = ($$pre659|0)==(0);
+                if ($328) {
+                 break;
+                }
+               }
+               $329 = HEAP32[$8>>2]|0;
+               $330 = $329 & 2;
+               $331 = ($330|0)==(0);
+               if ($331) {
+                break;
+               }
+               $332 = (_towlower($$2455)|0);
+               $333 = ((($$1505624)) + 24|0);
+               $334 = HEAP32[$333>>2]|0;
+               $335 = (_iswctype($332,$334)|0);
+               $336 = ($335|0)==(0);
+               if (!($336)) {
+                break;
+               }
+               $337 = (_towupper($$2455)|0);
+               $338 = HEAP32[$333>>2]|0;
+               $339 = (_iswctype($337,$338)|0);
+               $340 = ($339|0)==(0);
+               if ($340) {
+                $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+                break L136;
+               }
+              }
+             } while(0);
+             $341 = HEAP32[$263>>2]|0;
+             $342 = $341 & 8;
+             $343 = ($342|0)==(0);
+             if ($343) {
+              break;
+             }
+             $344 = ((($$1505624)) + 28|0);
+             $345 = HEAP32[$344>>2]|0;
+             $346 = HEAP32[$8>>2]|0;
+             $347 = $346 & 2;
+             $348 = (_tre_neg_char_classes_match($345,$$2455,$347)|0);
+             $349 = ($348|0)==(0);
+             if (!($349)) {
+              $$11517 = $$7513621;$$1480 = $$0479627;$$6526 = $$5525620;
+              break L136;
+             }
+            }
+           } while(0);
+           $350 = ($$0479627|0)==(0|0);
+           if ($350) {
+            $351 = HEAP32[$352>>2]|0;
+            $353 = ((($$1505624)) + 16|0);
+            $354 = HEAP32[$353>>2]|0;
+            $$11517 = $$7513621;$$1480 = $351;$$6526 = $354;
+            break;
+           }
+           $355 = ((($$7513621)) + 28|0);
+           $356 = HEAP32[$355>>2]|0;
+           $357 = ($356|0)==(0|0);
+           if ($357) {
+            $358 = (___tre_mem_alloc_impl($11,0,0,0,32)|0);
+            $359 = ($358|0)==(0|0);
+            if ($359) {
+             label = 149;
+             break L16;
+            }
+            $363 = ((($358)) + 24|0);
+            HEAP32[$363>>2] = $$7513621;
+            $364 = ((($358)) + 28|0);
+            HEAP32[$364>>2] = 0;
+            $365 = HEAP32[$17>>2]|0;
+            $366 = $365 << 2;
+            $367 = (___tre_mem_alloc_impl($11,0,0,0,$366)|0);
+            $368 = ((($358)) + 20|0);
+            HEAP32[$368>>2] = $367;
+            $369 = ($367|0)==(0|0);
+            if ($369) {
+             label = 156;
+             break L16;
+            }
+            HEAP32[$355>>2] = $358;
+            $$9515 = $358;
+           } else {
+            $$9515 = $356;
+           }
+           HEAP32[$$9515>>2] = $$2465;
+           $373 = ((($$9515)) + 4|0);
+           HEAP32[$373>>2] = $$3461;
+           $374 = HEAP32[$352>>2]|0;
+           $375 = ((($$9515)) + 8|0);
+           HEAP32[$375>>2] = $374;
+           $376 = ((($$1505624)) + 12|0);
+           $377 = HEAP32[$376>>2]|0;
+           $378 = ((($$9515)) + 12|0);
+           HEAP32[$378>>2] = $377;
+           $379 = HEAP32[$5>>2]|0;
+           $380 = ((($$9515)) + 16|0);
+           HEAP32[$380>>2] = $379;
+           $381 = HEAP32[$17>>2]|0;
+           $382 = ($381|0)>(0);
+           if ($382) {
+            $383 = ((($$9515)) + 20|0);
+            $384 = HEAP32[$383>>2]|0;
+            $$0452612 = 0;
+            while(1) {
+             $385 = (($$0537) + ($$0452612<<2)|0);
+             $386 = HEAP32[$385>>2]|0;
+             $387 = (($384) + ($$0452612<<2)|0);
+             HEAP32[$387>>2] = $386;
+             $388 = (($$0452612) + 1)|0;
+             $389 = HEAP32[$17>>2]|0;
+             $390 = ($388|0)<($389|0);
+             if ($390) {
+              $$0452612 = $388;
+             } else {
+              break;
+             }
+            }
+           }
+           $391 = ((($$1505624)) + 16|0);
+           $392 = HEAP32[$391>>2]|0;
+           $393 = ($392|0)==(0|0);
+           if ($393) {
+            $$11517 = $$9515;$$1480 = $$0479627;$$6526 = $$5525620;
+            break;
+           }
+           $394 = ((($$9515)) + 20|0);
+           $395 = HEAP32[$392>>2]|0;
+           $396 = ($395|0)>(-1);
+           if (!($396)) {
+            $$11517 = $$9515;$$1480 = $$0479627;$$6526 = $$5525620;
+            break;
+           }
+           $397 = HEAP32[$394>>2]|0;
+           $$0450616675 = $392;$399 = $395;
+           while(1) {
+            $398 = (($397) + ($399<<2)|0);
+            HEAP32[$398>>2] = $$2465;
+            $400 = ((($$0450616675)) + 4|0);
+            $401 = HEAP32[$400>>2]|0;
+            $402 = ($401|0)>(-1);
+            if ($402) {
+             $$0450616675 = $400;$399 = $401;
+            } else {
+             $$11517 = $$9515;$$1480 = $$0479627;$$6526 = $$5525620;
+             break;
+            }
+           }
+          }
+         } while(0);
+         $403 = ((($$1505624)) + 32|0);
+         $404 = ((($$1505624)) + 40|0);
+         $405 = HEAP32[$404>>2]|0;
+         $406 = ($405|0)==(0|0);
+         if ($406) {
+          break;
+         } else {
+          $$0479627 = $$1480;$$1505624 = $403;$$5525620 = $$6526;$$7513621 = 
$$11517;$352 = $404;
+         }
+        }
+        $407 = ($$1480|0)==(0|0);
+        if ($407) {
+         $$12518$ph = $$11517;$$3456$ph = $$2455;$$7474$ph = $$6473;$$9529$ph 
= $$6526;
+         label = 178;
+         break;
+        }
+        $408 = ($$6526|0)==(0|0);
+        do {
+         if ($408) {
+          $$4524$be = 0;
+         } else {
+          $409 = HEAP32[$$6526>>2]|0;
+          $410 = ($409|0)>(-1);
+          if (!($410)) {
+           $$4524$be = $$6526;
+           break;
+          }
+          $$7527634 = $$6526;$413 = $409;
+          while(1) {
+           $411 = ((($$7527634)) + 4|0);
+           $412 = (($$0537) + ($413<<2)|0);
+           HEAP32[$412>>2] = $$2465;
+           $414 = HEAP32[$411>>2]|0;
+           $415 = ($414|0)>(-1);
+           if ($415) {
+            $$7527634 = $411;$413 = $414;
+           } else {
+            $$4524$be = $411;
+            break;
+           }
+          }
+         }
+        } while(0);
+        $$0453 = $$2455;$$0463 = $$2465;$$1459 = $$3461;$$2469 = $$6473;$$2535 
= $$1480;$$4524 = $$4524$be;$$6512 = $$11517;
+       }
+       if ((label|0) == 178) {
+        label = 0;
+        $$12518 = $$12518$ph;$$3456 = $$3456$ph;$$3485 = $$1483$ph;$$7474 = 
$$7474$ph;$$9529 = $$9529$ph;
+        label = 179;
+        continue;
+       }
+       $194 = ($$1483$ph|0)<($$0463|0);
+       if ($194) {
+        if ($35) {
+         $$12518 = $$6512;$$3456 = $$0453;$$3485 = $$0463;$$7474 = 
$$2469;$$9529 = $$4524;
+         label = 179;
+         continue;
+        }
+        $$pre658 = HEAP32[$17>>2]|0;
+        $201 = $$pre658;
+       } else {
+        $195 = ($$1483$ph|0)==($$0463|0);
+        $or$cond24 = $40 & $195;
+        if (!($or$cond24)) {
+         $$12518 = $$6512;$$3456 = $$0453;$$3485 = $$1483$ph;$$7474 = 
$$2469;$$9529 = $$4524;
+         label = 179;
+         continue;
+        }
+        $196 = HEAP32[$17>>2]|0;
+        $197 = HEAP32[$41>>2]|0;
+        $198 = (_tre_tag_order($196,$197,$$0537,$2)|0);
+        $199 = ($198|0)==(0);
+        if ($199) {
+         $$12518 = $$6512;$$3456 = $$0453;$$3485 = $$1483$ph;$$7474 = 
$$2469;$$9529 = $$4524;
+         label = 179;
+         continue;
+        } else {
+         $201 = $196;
+        }
+       }
+       $200 = ($201|0)>(0);
+       if (!($200)) {
+        $$12518 = $$6512;$$3456 = $$0453;$$3485 = $$0463;$$7474 = 
$$2469;$$9529 = $$4524;
+        label = 179;
+        continue;
+       }
+       $$0477638 = 0;
+       while(1) {
+        $202 = (($$0537) + ($$0477638<<2)|0);
+        $203 = HEAP32[$202>>2]|0;
+        $204 = (($2) + ($$0477638<<2)|0);
+        HEAP32[$204>>2] = $203;
+        $205 = (($$0477638) + 1)|0;
+        $206 = HEAP32[$17>>2]|0;
+        $207 = ($205|0)<($206|0);
+        if ($207) {
+         $$0477638 = $205;
+        } else {
+         break;
+        }
+       }
+       $$12518 = $$6512;$$3456 = $$0453;$$3485 = $$0463;$$7474 = $$2469;$$9529 
= $$4524;
+       label = 179;
+      }
+      $442 = ($$3485|0)>(-1);
+      $443 = HEAP32[$5>>2]|0;
+      $444 = ($443|0)==(0);
+      $or$cond51 = $442 | $444;
+      if ($or$cond51) {
+       label = 187;
+       break;
+      }
+      HEAP32[$5>>2] = $58;
+      $$0458 = $57;$$0467 = $$7474;$$0476 = $53;$$0482 = $$3485;$$0506 = 
$$12518;$65 = $58;
+     }
+     if ((label|0) == 54) {
+      ___tre_mem_destroy($11);
+      $134 = ($$0537|0)==(0|0);
+      if (!($134)) {
+       _free($135);
+      }
+      $136 = ($$0502|0)==(0|0);
+      if (!($136)) {
+       _free($137);
+      }
+      $138 = ($$0531|0)==(0|0);
+      if ($138) {
+       $$14 = 12;
+       break L1;
+      }
+      _free($52);
+      $$14 = 12;
+      break L1;
+     }
+     else if ((label|0) == 61) {
+      ___tre_mem_destroy($11);
+      $146 = ($$0537|0)==(0|0);
+      if (!($146)) {
+       _free($135);
+      }
+      $147 = ($$0502|0)==(0|0);
+      if (!($147)) {
+       _free($137);
+      }
+      $148 = ($$0531|0)==(0|0);
+      if ($148) {
+       $$14 = 12;
+       break L1;
+      }
+      _free($52);
+      $$14 = 12;
+      break L1;
+     }
+     else if ((label|0) == 149) {
+      ___tre_mem_destroy($11);
+      $360 = ($$0537|0)==(0|0);
+      if (!($360)) {
+       _free($135);
+      }
+      $361 = ($$0502|0)==(0|0);
+      if (!($361)) {
+       _free($137);
+      }
+      $362 = ($$0531|0)==(0|0);
+      if ($362) {
+       $$14 = 12;
+       break L1;
+      }
+      _free($52);
+      $$14 = 12;
+      break L1;
+     }
+     else if ((label|0) == 156) {
+      ___tre_mem_destroy($11);
+      $370 = ($$0537|0)==(0|0);
+      if (!($370)) {
+       _free($135);
+      }
+      $371 = ($$0502|0)==(0|0);
+      if (!($371)) {
+       _free($137);
+      }
+      $372 = ($$0531|0)==(0|0);
+      if ($372) {
+       $$14 = 12;
+       break L1;
+      }
+      _free($52);
+      $$14 = 12;
+      break L1;
+     }
+     else if ((label|0) == 187) {
+      $not$ = $442 ^ 1;
+      $445 = $not$&1;
+      HEAP32[$4>>2] = $$3485;
+      $$1503 = $$0502;$$1532 = $$0531;$$1538 = $$0537;$$6501 = $445;$447 = 
$135;$449 = $137;$451 = $52;
+      break;
+     }
+    }
+   } while(0);
+   ___tre_mem_destroy($11);
+   $446 = ($$1538|0)==(0|0);
+   if (!($446)) {
+    _free($447);
+   }
+   $448 = ($$1503|0)==(0|0);
+   if (!($448)) {
+    _free($449);
+   }
+   $450 = ($$1532|0)==(0|0);
+   if ($450) {
+    $$14 = $$6501;
+   } else {
+    _free($451);
+    $$14 = $$6501;
+   }
+  }
+ } while(0);
+ STACKTOP = sp;return ($$14|0);
+}
+function _tre_tnfa_run_parallel($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0415 = 0, $$0420592 = 0, $$0421 = 0, $$0422 = 0, $$0423 = 0, $$0426 = 
0, $$0427$ph526 = 0, $$0427502 = 0, $$0432 = 0, $$0437 = 0, $$0448591 = 0, 
$$0456 = 0, $$0457514 = 0, $$0460 = 0, $$0468534 = 0, $$1 = 0, $$10 = 0, 
$$10447 = 0, $$10447$lobit = 0, $$1424 = 0;
+ var $$1428565 = 0, $$1430 = 0, $$1433$ph$lcssa = 0, $$1433$ph524 = 0, 
$$1433$ph525$mux = 0, $$1438$ph$lcssa = 0, $$1438$ph522 = 0, $$1438$ph523$mux = 
0, $$1449587 = 0, $$1458546 = 0, $$1461$ph$lcssa = 0, $$1461$ph520 = 0, 
$$1469575 = 0, $$1471 = 0, $$1474 = 0, $$2425 = 0, $$2431$lcssa = 0, $$2431579 
= 0, $$2434 = 0, $$2439 = 0;
+ var $$2462 = 0, $$2472 = 0, $$2475 = 0, $$3$lcssa = 0, $$3435 = 0, $$3440 = 
0, $$3451517 = 0, $$3463$lcssa = 0, $$3463536 = 0, $$3562 = 0, $$4 = 0, $$4436 
= 0, $$4441 = 0, $$4452530 = 0, $$4464 = 0, $$5 = 0, $$5442$lcssa = 0, 
$$5442577 = 0, $$5453542 = 0, $$5465$lcssa = 0;
+ var $$5465576 = 0, $$6$lcssa = 0, $$6443$lcssa = 0, $$6443556 = 0, $$6454552 
= 0, $$6466$lcssa = 0, $$6466555 = 0, $$6578 = 0, $$7$lcssa = 0, $$7444 = 0, 
$$7455549 = 0, $$7467 = 0, $$7559 = 0, $$8 = 0, $$9446 = 0, $$old = 0, $$old34 
= 0, $$old35 = 0, $$old46 = 0, $$old47 = 0;
+ var $$old8 = 0, $$pr = 0, $$pr481 = 0, $$pr484 = 0, $$pr486 = 0, $$pre = 0, 
$$pre$phi629Z2D = 0, $$pre$phi631Z2D = 0, $$pre621 = 0, $$pre623 = 0, $$pre625 
= 0, $$pre626 = 0, $$pre630 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 
0, $104 = 0, $105 = 0;
+ var $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;
+ var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 
= 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 
= 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0;
+ var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, 
$149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, 
$156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0;
+ var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, 
$167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, 
$174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0;
+ var $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 
= 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 
= 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0;
+ var $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 
= 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 
= 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0;
+ var $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 
= 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 
= 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0;
+ var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 
= 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 
= 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0;
+ var $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, 
$258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, 
$265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0;
+ var $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 
= 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 
= 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0;
+ var $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 
= 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 
= 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0;
+ var $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 
= 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 
= 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0;
+ var $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 
= 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 
= 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0;
+ var $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, 
$349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, 
$356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0;
+ var $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, 
$367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, 
$374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0;
+ var $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 
= 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 
= 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0;
+ var $397 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, 
$47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, 
$55 = 0, $56 = 0, $57 = 0;
+ var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, 
$65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, 
$73 = 0, $74 = 0, $75 = 0;
+ var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, 
$83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, 
$91 = 0, $92 = 0, $93 = 0;
+ var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge = 0, 
$brmerge596 = 0, $brmerge599 = 0, $brmerge600 = 0, $brmerge604 = 0, $exitcond = 
0, $exitcond616 = 0, $exitcond618 = 0, $or$cond$not = 0, $or$cond12 = 0, 
$or$cond15 = 0, $or$cond18 = 0, $or$cond21 = 0, $or$cond24$not = 0;
+ var $or$cond27 = 0, $or$cond3 = 0, $or$cond33 = 0, $or$cond36 = 0, $or$cond39 
= 0, $or$cond42 = 0, $or$cond45 = 0, $or$cond48 = 0, $or$cond598 = 0, 
$or$cond602 = 0, $or$cond7 = 0, $or$cond9 = 0, $spec$select = 0, 
$spec$select476 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $5 = sp;
+ HEAP32[$5>>2] = 0;
+ $6 = $3 & 1;
+ $7 = $3 & 2;
+ $8 = ((($0)) + 56|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = $9 & 4;
+ $11 = ($2|0)==(0|0);
+ if ($11) {
+  $$0456 = 0;
+ } else {
+  $12 = ((($0)) + 40|0);
+  $13 = HEAP32[$12>>2]|0;
+  $$0456 = $13;
+ }
+ $14 = $$0456 << 2;
+ $15 = ((($0)) + 52|0);
+ $16 = HEAP32[$15>>2]|0;
+ $17 = $16 << 3;
+ $18 = (($17) + 8)|0;
+ $19 = Math_imul($14, $16)|0;
+ $20 = (($18) + ($19))|0;
+ $21 = $20 << 1;
+ $22 = (($14) + 12)|0;
+ $23 = (($22) + ($17))|0;
+ $24 = (($23) + ($21))|0;
+ $25 = (_malloc($24)|0);
+ $26 = ($25|0)==(0|0);
+ if ($26) {
+  $$1 = 12;
+ } else {
+  (_memset(($25|0),0,($24|0))|0);
+  $27 = (($25) + ($14)|0);
+  $28 = $27;
+  $29 = $28 & 3;
+  $30 = ($29|0)==(0);
+  $31 = (4 - ($29))|0;
+  $spec$select = $30 ? 0 : $31;
+  $32 = (($27) + ($spec$select)|0);
+  $33 = (($32) + ($18)|0);
+  $34 = $33;
+  $35 = $34 & 3;
+  $36 = ($35|0)==(0);
+  $37 = (4 - ($35))|0;
+  $38 = $36 ? 0 : $37;
+  $39 = (($33) + ($38)|0);
+  $40 = (($39) + ($18)|0);
+  $41 = $40;
+  $42 = $41 & 3;
+  $43 = ($42|0)==(0);
+  $44 = (4 - ($42))|0;
+  $spec$select476 = $43 ? 0 : $44;
+  $45 = (($40) + ($spec$select476)|0);
+  $46 = (($45) + ($17)|0);
+  $47 = $46;
+  $48 = $47 & 3;
+  $49 = HEAP32[$15>>2]|0;
+  $50 = ($49|0)>(0);
+  if ($50) {
+   $51 = ($48|0)==(0);
+   $52 = (4 - ($48))|0;
+   $53 = $51 ? 0 : $52;
+   $54 = (($46) + ($53)|0);
+   $$0420592 = $54;$$0448591 = 0;
+   while(1) {
+    $55 = (((($39) + ($$0448591<<3)|0)) + 4|0);
+    HEAP32[$55>>2] = $$0420592;
+    $56 = (($$0420592) + ($14)|0);
+    $57 = (((($32) + ($$0448591<<3)|0)) + 4|0);
+    HEAP32[$57>>2] = $56;
+    $58 = (($56) + ($14)|0);
+    $59 = (($$0448591) + 1)|0;
+    $60 = ($59|0)<($49|0);
+    if ($60) {
+     $$0420592 = $58;$$0448591 = $59;
+    } else {
+     break;
+    }
+   }
+   if ($50) {
+    $$1449587 = 0;
+    while(1) {
+     $61 = (($45) + ($$1449587<<3)|0);
+     HEAP32[$61>>2] = -1;
+     $62 = (($$1449587) + 1)|0;
+     $63 = ($62|0)<($49|0);
+     if ($63) {
+      $$1449587 = $62;
+     } else {
+      break;
+     }
+    }
+   }
+  }
+  $64 = (_mbtowc($5,$1,4)|0);
+  $65 = ($64|0)<(1);
+  if ($65) {
+   $66 = ($64|0)<(0);
+   if ($66) {
+    $$0426 = 1;
+   } else {
+    $$0423 = 1;
+    label = 12;
+   }
+  } else {
+   $$0423 = $64;
+   label = 12;
+  }
+  L17: do {
+   if ((label|0) == 12) {
+    $67 = (($1) + ($$0423)|0);
+    $68 = ((($0)) + 8|0);
+    $69 = ($$0456|0)==(0);
+    $70 = ($6|0)==(0);
+    $71 = ($10|0)!=(0);
+    $72 = ($$0456|0)>(0);
+    $73 = ((($0)) + 12|0);
+    $74 = ($$0456|0)<(1);
+    $75 = ((($0)) + 44|0);
+    $76 = ((($0)) + 36|0);
+    $77 = ((($0)) + 32|0);
+    $$0415 = 0;$$0421 = $67;$$0422 = 0;$$0432 = 0;$$0437 = -1;$$0460 = 
$32;$$1424 = $$0423;$$1430 = $25;$$1471 = $32;$$1474 = $39;
+    while(1) {
+     $78 = ($$0437|0)<(0);
+     if ($78) {
+      $79 = HEAP32[$68>>2]|0;
+      $80 = ((($79)) + 8|0);
+      $81 = HEAP32[$80>>2]|0;
+      $82 = ($81|0)==(0|0);
+      L23: do {
+       if ($82) {
+        $$1433$ph$lcssa = $$0432;$$1438$ph$lcssa = $$0437;$$1461$ph$lcssa = 
$$0460;
+       } else {
+        $83 = ($$0422|0)<(1);
+        $84 = ($$0415|0)==(10);
+        $or$cond3 = $71 & $84;
+        $85 = ($$0415|0)==(95);
+        $86 = ($$0422|0)!=(0);
+        $87 = ($$0422|0)==(0);
+        $or$cond$not = $83 & $70;
+        $$0427$ph526 = $79;$$1433$ph524 = $$0432;$$1438$ph522 = 
$$0437;$$1461$ph520 = $$0460;$397 = $80;
+        while(1) {
+         $$0427502 = $$0427$ph526;$154 = $397;
+         L27: while(1) {
+          $88 = ((($$0427502)) + 12|0);
+          $89 = HEAP32[$88>>2]|0;
+          $90 = (($45) + ($89<<3)|0);
+          $91 = HEAP32[$90>>2]|0;
+          $92 = ($91|0)<($$0422|0);
+          if (!($92)) {
+           $$2462 = $$1461$ph520;$$3435 = $$1433$ph524;$$3440 = $$1438$ph522;
+           break;
+          }
+          $93 = ((($$0427502)) + 20|0);
+          $94 = HEAP32[$93>>2]|0;
+          $95 = ($94|0)==(0);
+          if ($95) {
+           label = 47;
+           break;
+          }
+          $96 = $94 & 1;
+          $97 = ($96|0)==(0);
+          $brmerge = $97 | $or$cond$not;
+          $brmerge596 = $brmerge | $or$cond3;
+          L31: do {
+           if ($brmerge596) {
+            $98 = $94 & 2;
+            $99 = ($98|0)==(0);
+            if (!($99)) {
+             $100 = HEAP32[$5>>2]|0;
+             $101 = $100 | $7;
+             $102 = ($101|0)==(0);
+             $103 = ($100|0)==(10);
+             $or$cond7 = $71 & $103;
+             $or$cond598 = $102 | $or$cond7;
+             if (!($or$cond598)) {
+              break;
+             }
+            }
+            $104 = $94 & 16;
+            $105 = ($104|0)==(0);
+            do {
+             if (!($105)) {
+              if ($85) {
+               break L31;
+              }
+              $106 = (_iswalnum($$0415)|0);
+              $107 = ($106|0)==(0);
+              if (!($107)) {
+               break L31;
+              }
+              $108 = HEAP32[$5>>2]|0;
+              $109 = ($108|0)==(95);
+              if ($109) {
+               break;
+              }
+              $110 = (_iswalnum($108)|0);
+              $111 = ($110|0)==(0);
+              if ($111) {
+               break L31;
+              }
+             }
+            } while(0);
+            $112 = HEAP32[$93>>2]|0;
+            $113 = $112 & 32;
+            $114 = ($113|0)==(0);
+            if ($114) {
+             $123 = $112;
+            } else {
+             if ($85) {
+              $$old = HEAP32[$5>>2]|0;
+              $$old8 = ($$old|0)==(95);
+              if ($$old8) {
+               break;
+              } else {
+               $119 = $$old;
+              }
+             } else {
+              $115 = (_iswalnum($$0415)|0);
+              $116 = ($115|0)==(0);
+              $117 = HEAP32[$5>>2]|0;
+              $118 = ($117|0)==(95);
+              $or$cond9 = $116 | $118;
+              if ($or$cond9) {
+               break;
+              } else {
+               $119 = $117;
+              }
+             }
+             $120 = (_iswalnum($119)|0);
+             $121 = ($120|0)==(0);
+             if (!($121)) {
+              break;
+             }
+             $$pre = HEAP32[$93>>2]|0;
+             $123 = $$pre;
+            }
+            $122 = $123 & 64;
+            $124 = ($122|0)!=(0);
+            $or$cond12 = $86 & $124;
+            $125 = HEAP32[$5>>2]|0;
+            $126 = ($125|0)!=(0);
+            $or$cond15 = $126 & $or$cond12;
+            do {
+             if ($or$cond15) {
+              if ($85) {
+               $130 = $125;$134 = 1;
+              } else {
+               $127 = (_iswalnum($$0415)|0);
+               $128 = ($127|0)!=(0);
+               $$pr = HEAP32[$5>>2]|0;
+               $130 = $$pr;$134 = $128;
+              }
+              $129 = ($130|0)==(95);
+              if ($129) {
+               if ($134) {
+                break L31;
+               } else {
+                break;
+               }
+              } else {
+               $131 = (_iswalnum($130)|0);
+               $132 = ($131|0)!=(0);
+               $133 = $134 ^ $132;
+               if ($133) {
+                break;
+               } else {
+                break L31;
+               }
+              }
+             }
+            } while(0);
+            $135 = HEAP32[$93>>2]|0;
+            $136 = $135 & 128;
+            $137 = ($136|0)==(0);
+            if ($137) {
+             label = 47;
+             break L27;
+            }
+            $138 = HEAP32[$5>>2]|0;
+            $139 = ($138|0)==(0);
+            $or$cond18 = $87 | $139;
+            if ($or$cond18) {
+             break;
+            }
+            if ($85) {
+             $143 = $138;$147 = 1;
+            } else {
+             $140 = (_iswalnum($$0415)|0);
+             $141 = ($140|0)!=(0);
+             $$pr481 = HEAP32[$5>>2]|0;
+             $143 = $$pr481;$147 = $141;
+            }
+            $142 = ($143|0)==(95);
+            if ($142) {
+             if ($147) {
+              label = 47;
+              break L27;
+             } else {
+              break;
+             }
+            } else {
+             $144 = (_iswalnum($143)|0);
+             $145 = ($144|0)!=(0);
+             $146 = $147 ^ $145;
+             if ($146) {
+              break;
+             } else {
+              label = 47;
+              break L27;
+             }
+            }
+           }
+          } while(0);
+          $148 = ((($$0427502)) + 32|0);
+          $149 = ((($$0427502)) + 40|0);
+          $150 = HEAP32[$149>>2]|0;
+          $151 = ($150|0)==(0|0);
+          if ($151) {
+           $$1433$ph$lcssa = $$1433$ph524;$$1438$ph$lcssa = 
$$1438$ph522;$$1461$ph$lcssa = $$1461$ph520;
+           break L23;
+          } else {
+           $$0427502 = $148;$154 = $149;
+          }
+         }
+         if ((label|0) == 47) {
+          label = 0;
+          $152 = ((($$0427502)) + 12|0);
+          $153 = HEAP32[$154>>2]|0;
+          HEAP32[$$1461$ph520>>2] = $153;
+          if ($72) {
+           $155 = ((($$1461$ph520)) + 4|0);
+           $156 = HEAP32[$155>>2]|0;
+           _memset(($156|0),-1,($14|0))|0;
+          }
+          $157 = ((($$0427502)) + 16|0);
+          $158 = HEAP32[$157>>2]|0;
+          $159 = ($158|0)==(0|0);
+          if (!($159)) {
+           $160 = HEAP32[$158>>2]|0;
+           $161 = ($160|0)>(-1);
+           if ($161) {
+            $162 = ((($$1461$ph520)) + 4|0);
+            $$0457514 = $158;$164 = $160;
+            while(1) {
+             $163 = ($164|0)<($$0456|0);
+             if ($163) {
+              $165 = HEAP32[$162>>2]|0;
+              $166 = (($165) + ($164<<2)|0);
+              HEAP32[$166>>2] = $$0422;
+             }
+             $167 = ((($$0457514)) + 4|0);
+             $168 = HEAP32[$167>>2]|0;
+             $169 = ($168|0)>(-1);
+             if ($169) {
+              $$0457514 = $167;$164 = $168;
+             } else {
+              break;
+             }
+            }
+           }
+          }
+          $170 = HEAP32[$$1461$ph520>>2]|0;
+          $171 = HEAP32[$73>>2]|0;
+          $172 = ($170|0)!=($171|0);
+          $brmerge604 = $172 | $74;
+          if ($brmerge604) {
+           $$1433$ph525$mux = $172 ? $$1433$ph524 : 1;
+           $$1438$ph523$mux = $172 ? $$1438$ph522 : $$0422;
+           $$pre630 = ((($$1461$ph520)) + 4|0);
+           $$2434 = $$1433$ph525$mux;$$2439 = $$1438$ph523$mux;$$pre$phi631Z2D 
= $$pre630;
+          } else {
+           $173 = ((($$1461$ph520)) + 4|0);
+           $174 = HEAP32[$173>>2]|0;
+           $$3451517 = 0;
+           while(1) {
+            $175 = (($174) + ($$3451517<<2)|0);
+            $176 = HEAP32[$175>>2]|0;
+            $177 = (($2) + ($$3451517<<2)|0);
+            HEAP32[$177>>2] = $176;
+            $178 = (($$3451517) + 1)|0;
+            $exitcond = ($178|0)==($$0456|0);
+            if ($exitcond) {
+             $$2434 = 1;$$2439 = $$0422;$$pre$phi631Z2D = $173;
+             break;
+            } else {
+             $$3451517 = $178;
+            }
+           }
+          }
+          $179 = HEAP32[$152>>2]|0;
+          $180 = (($45) + ($179<<3)|0);
+          HEAP32[$180>>2] = $$0422;
+          $181 = (((($45) + ($179<<3)|0)) + 4|0);
+          HEAP32[$181>>2] = $$pre$phi631Z2D;
+          $182 = ((($$1461$ph520)) + 8|0);
+          $$2462 = $182;$$3435 = $$2434;$$3440 = $$2439;
+         }
+         $183 = ((($$0427502)) + 32|0);
+         $184 = ((($$0427502)) + 40|0);
+         $185 = HEAP32[$184>>2]|0;
+         $186 = ($185|0)==(0|0);
+         if ($186) {
+          $$1433$ph$lcssa = $$3435;$$1438$ph$lcssa = $$3440;$$1461$ph$lcssa = 
$$2462;
+          break;
+         } else {
+          $$0427$ph526 = $183;$$1433$ph524 = $$3435;$$1438$ph522 = 
$$3440;$$1461$ph520 = $$2462;$397 = $184;
+         }
+        }
+       }
+      } while(0);
+      HEAP32[$$1461$ph$lcssa>>2] = 0;
+      $$old46 = HEAP32[$5>>2]|0;
+      $$old47 = ($$old46|0)==(0);
+      if ($$old47) {
+       $$10447 = $$1438$ph$lcssa;
+       break;
+      } else {
+       $$4436 = $$1433$ph$lcssa;$$4441 = $$1438$ph$lcssa;$237 = $$old46;
+      }
+     } else {
+      if ($69) {
+       $$10447 = $$0437;
+       break;
+      }
+      $187 = ($$0460|0)!=($$1471|0);
+      $188 = HEAP32[$5>>2]|0;
+      $189 = ($188|0)!=(0);
+      $or$cond48 = $187 & $189;
+      if ($or$cond48) {
+       $$4436 = $$0432;$$4441 = $$0437;$237 = $188;
+      } else {
+       $$10447 = $$0437;
+       break;
+      }
+     }
+     $190 = (($$0422) + ($$1424))|0;
+     $191 = (_mbtowc($5,$$0421,4)|0);
+     $192 = ($191|0)<(1);
+     if ($192) {
+      $193 = ($191|0)<(0);
+      if ($193) {
+       $$0426 = 1;
+       break L17;
+      } else {
+       $$2425 = 1;
+      }
+     } else {
+      $$2425 = $191;
+     }
+     $194 = (($$0421) + ($$2425)|0);
+     $195 = HEAP32[$75>>2]|0;
+     $196 = ($195|0)!=(0);
+     $197 = ($$4436|0)!=(0);
+     $or$cond21 = $197 & $196;
+     if ($or$cond21) {
+      $198 = HEAP32[$$1471>>2]|0;
+      $199 = ($198|0)==(0|0);
+      if ($199) {
+       $$3463$lcssa = $$1474;
+      } else {
+       $200 = HEAP32[$76>>2]|0;
+       $201 = HEAP32[$200>>2]|0;
+       $202 = ($201|0)>(-1);
+       $$0468534 = $$1471;$$3463536 = $$1474;
+       while(1) {
+        $203 = ((($$0468534)) + 4|0);
+        L102: do {
+         if ($202) {
+          $$4452530 = 0;$208 = $201;
+          while(1) {
+           $204 = $$4452530 | 1;
+           $205 = (($200) + ($204<<2)|0);
+           $206 = HEAP32[$205>>2]|0;
+           $207 = ($208|0)<($$0456|0);
+           if (!($207)) {
+            $$4464 = $$3463536;
+            break L102;
+           }
+           $209 = HEAP32[$203>>2]|0;
+           $210 = (($209) + ($206<<2)|0);
+           $211 = HEAP32[$210>>2]|0;
+           $212 = (($2) + ($206<<2)|0);
+           $213 = HEAP32[$212>>2]|0;
+           $214 = ($211|0)==($213|0);
+           if ($214) {
+            $215 = (($209) + ($208<<2)|0);
+            $216 = HEAP32[$215>>2]|0;
+            $217 = (($2) + ($208<<2)|0);
+            $218 = HEAP32[$217>>2]|0;
+            $219 = ($216|0)<($218|0);
+            if ($219) {
+             $$4464 = $$3463536;
+             break L102;
+            }
+           }
+           $220 = (($$4452530) + 2)|0;
+           $221 = (($200) + ($220<<2)|0);
+           $222 = HEAP32[$221>>2]|0;
+           $223 = ($222|0)>(-1);
+           if ($223) {
+            $$4452530 = $220;$208 = $222;
+           } else {
+            break;
+           }
+          }
+          $224 = $209;
+          $$pre$phi629Z2D = $203;$228 = $224;
+          label = 77;
+         } else {
+          $$pre621 = HEAP32[$203>>2]|0;
+          $$pre$phi629Z2D = $203;$228 = $$pre621;
+          label = 77;
+         }
+        } while(0);
+        if ((label|0) == 77) {
+         label = 0;
+         $225 = HEAP32[$$0468534>>2]|0;
+         HEAP32[$$3463536>>2] = $225;
+         $226 = ((($$3463536)) + 4|0);
+         $227 = HEAP32[$226>>2]|0;
+         HEAP32[$226>>2] = $228;
+         HEAP32[$$pre$phi629Z2D>>2] = $227;
+         $229 = ((($$3463536)) + 8|0);
+         $$4464 = $229;
+        }
+        $230 = ((($$0468534)) + 8|0);
+        $231 = HEAP32[$230>>2]|0;
+        $232 = ($231|0)==(0|0);
+        if ($232) {
+         $$3463$lcssa = $$4464;
+         break;
+        } else {
+         $$0468534 = $230;$$3463536 = $$4464;
+        }
+       }
+      }
+      HEAP32[$$3463$lcssa>>2] = 0;
+      $$2472 = $$1471;$$2475 = $$1474;$$5 = 0;
+     } else {
+      $$2472 = $$1474;$$2475 = $$1471;$$5 = $$4436;
+     }
+     $233 = HEAP32[$$2475>>2]|0;
+     $234 = ($233|0)==(0|0);
+     if ($234) {
+      $$2431$lcssa = $$1430;$$5442$lcssa = $$4441;$$5465$lcssa = 
$$2472;$$6$lcssa = $$5;
+     } else {
+      $235 = ($190|0)<(1);
+      $236 = ($237|0)==(10);
+      $or$cond27 = $71 & $236;
+      $238 = ($237|0)==(95);
+      $239 = ($190|0)!=(0);
+      $240 = ($190|0)==(0);
+      $or$cond24$not = $235 & $70;
+      $$1469575 = $$2475;$$2431579 = $$1430;$$5442577 = $$4441;$$5465576 = 
$$2472;$$6578 = $$5;$242 = $233;
+      while(1) {
+       $241 = ((($242)) + 8|0);
+       $243 = HEAP32[$241>>2]|0;
+       $244 = ($243|0)==(0|0);
+       if ($244) {
+        $$3$lcssa = $$2431579;$$6443$lcssa = $$5442577;$$6466$lcssa = 
$$5465576;$$7$lcssa = $$6578;
+       } else {
+        $245 = ((($$1469575)) + 4|0);
+        $$1428565 = $242;$$3562 = $$2431579;$$6443556 = $$5442577;$$6466555 = 
$$5465576;$$7559 = $$6578;$360 = $241;
+        while(1) {
+         $246 = HEAP32[$$1428565>>2]|0;
+         $247 = ($246>>>0)>($237>>>0);
+         L125: do {
+          if ($247) {
+           $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = $$6443556;
+          } else {
+           $248 = ((($$1428565)) + 4|0);
+           $249 = HEAP32[$248>>2]|0;
+           $250 = ($249>>>0)<($237>>>0);
+           if ($250) {
+            $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = $$6443556;
+           } else {
+            $251 = ((($$1428565)) + 20|0);
+            $252 = HEAP32[$251>>2]|0;
+            $253 = ($252|0)==(0);
+            do {
+             if (!($253)) {
+              $254 = $252 & 1;
+              $255 = ($254|0)==(0);
+              $brmerge599 = $255 | $or$cond24$not;
+              $brmerge600 = $brmerge599 | $or$cond27;
+              if (!($brmerge600)) {
+               $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = 
$$6443556;
+               break L125;
+              }
+              $256 = $252 & 2;
+              $257 = ($256|0)==(0);
+              if (!($257)) {
+               $258 = HEAP32[$5>>2]|0;
+               $259 = $258 | $7;
+               $260 = ($259|0)==(0);
+               $261 = ($258|0)==(10);
+               $or$cond33 = $71 & $261;
+               $or$cond602 = $260 | $or$cond33;
+               if (!($or$cond602)) {
+                $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = 
$$6443556;
+                break L125;
+               }
+              }
+              $262 = $252 & 16;
+              $263 = ($262|0)==(0);
+              do {
+               if (!($263)) {
+                if ($238) {
+                 $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = 
$$6443556;
+                 break L125;
+                }
+                $264 = (_iswalnum($237)|0);
+                $265 = ($264|0)==(0);
+                if (!($265)) {
+                 $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = 
$$6443556;
+                 break L125;
+                }
+                $266 = HEAP32[$5>>2]|0;
+                $267 = ($266|0)==(95);
+                if ($267) {
+                 break;
+                }
+                $268 = (_iswalnum($266)|0);
+                $269 = ($268|0)==(0);
+                if ($269) {
+                 $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = 
$$6443556;
+                 break L125;
+                }
+               }
+              } while(0);
+              $270 = HEAP32[$251>>2]|0;
+              $271 = $270 & 32;
+              $272 = ($271|0)==(0);
+              if ($272) {
+               $281 = $270;
+              } else {
+               if ($238) {
+                $$old34 = HEAP32[$5>>2]|0;
+                $$old35 = ($$old34|0)==(95);
+                if ($$old35) {
+                 $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = 
$$6443556;
+                 break L125;
+                } else {
+                 $277 = $$old34;
+                }
+               } else {
+                $273 = (_iswalnum($237)|0);
+                $274 = ($273|0)==(0);
+                $275 = HEAP32[$5>>2]|0;
+                $276 = ($275|0)==(95);
+                $or$cond36 = $274 | $276;
+                if ($or$cond36) {
+                 $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = 
$$6443556;
+                 break L125;
+                } else {
+                 $277 = $275;
+                }
+               }
+               $278 = (_iswalnum($277)|0);
+               $279 = ($278|0)==(0);
+               if (!($279)) {
+                $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = 
$$6443556;
+                break L125;
+               }
+               $$pre623 = HEAP32[$251>>2]|0;
+               $281 = $$pre623;
+              }
+              $280 = $281 & 64;
+              $282 = ($280|0)!=(0);
+              $or$cond39 = $239 & $282;
+              $283 = HEAP32[$5>>2]|0;
+              $284 = ($283|0)!=(0);
+              $or$cond42 = $284 & $or$cond39;
+              do {
+               if ($or$cond42) {
+                if ($238) {
+                 $288 = $283;$292 = 1;
+                } else {
+                 $285 = (_iswalnum($237)|0);
+                 $286 = ($285|0)!=(0);
+                 $$pr484 = HEAP32[$5>>2]|0;
+                 $288 = $$pr484;$292 = $286;
+                }
+                $287 = ($288|0)==(95);
+                if ($287) {
+                 if ($292) {
+                  $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = 
$$6443556;
+                  break L125;
+                 } else {
+                  break;
+                 }
+                } else {
+                 $289 = (_iswalnum($288)|0);
+                 $290 = ($289|0)!=(0);
+                 $291 = $292 ^ $290;
+                 if ($291) {
+                  break;
+                 } else {
+                  $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = 
$$6443556;
+                  break L125;
+                 }
+                }
+               }
+              } while(0);
+              $293 = HEAP32[$251>>2]|0;
+              $294 = $293 & 128;
+              $295 = ($294|0)==(0);
+              do {
+               if (!($295)) {
+                $296 = HEAP32[$5>>2]|0;
+                $297 = ($296|0)==(0);
+                $or$cond45 = $240 | $297;
+                if ($or$cond45) {
+                 $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = 
$$6443556;
+                 break L125;
+                }
+                if ($238) {
+                 $301 = $296;$305 = 1;
+                } else {
+                 $298 = (_iswalnum($237)|0);
+                 $299 = ($298|0)!=(0);
+                 $$pr486 = HEAP32[$5>>2]|0;
+                 $301 = $$pr486;$305 = $299;
+                }
+                $300 = ($301|0)==(95);
+                if ($300) {
+                 if ($305) {
+                  break;
+                 } else {
+                  $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = 
$$6443556;
+                  break L125;
+                 }
+                } else {
+                 $302 = (_iswalnum($301)|0);
+                 $303 = ($302|0)!=(0);
+                 $304 = $305 ^ $303;
+                 if ($304) {
+                  $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = 
$$6443556;
+                  break L125;
+                 } else {
+                  break;
+                 }
+                }
+               }
+              } while(0);
+              $306 = HEAP32[$251>>2]|0;
+              $307 = $306 & 4;
+              $308 = ($307|0)==(0);
+              do {
+               if (!($308)) {
+                $309 = HEAP32[$8>>2]|0;
+                $310 = $309 & 2;
+                $311 = ($310|0)==(0);
+                if ($311) {
+                 $312 = ((($$1428565)) + 24|0);
+                 $313 = HEAP32[$312>>2]|0;
+                 $314 = (_iswctype($237,$313)|0);
+                 $315 = ($314|0)==(0);
+                 if ($315) {
+                  $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = 
$$6443556;
+                  break L125;
+                 }
+                 $$pre625 = HEAP32[$251>>2]|0;
+                 $$pre626 = $$pre625 & 4;
+                 $316 = ($$pre626|0)==(0);
+                 if ($316) {
+                  break;
+                 }
+                }
+                $317 = HEAP32[$8>>2]|0;
+                $318 = $317 & 2;
+                $319 = ($318|0)==(0);
+                if ($319) {
+                 break;
+                }
+                $320 = (_towlower($237)|0);
+                $321 = ((($$1428565)) + 24|0);
+                $322 = HEAP32[$321>>2]|0;
+                $323 = (_iswctype($320,$322)|0);
+                $324 = ($323|0)==(0);
+                if (!($324)) {
+                 break;
+                }
+                $325 = (_towupper($237)|0);
+                $326 = HEAP32[$321>>2]|0;
+                $327 = (_iswctype($325,$326)|0);
+                $328 = ($327|0)==(0);
+                if ($328) {
+                 $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = 
$$6443556;
+                 break L125;
+                }
+               }
+              } while(0);
+              $329 = HEAP32[$251>>2]|0;
+              $330 = $329 & 8;
+              $331 = ($330|0)==(0);
+              if ($331) {
+               break;
+              }
+              $332 = ((($$1428565)) + 28|0);
+              $333 = HEAP32[$332>>2]|0;
+              $334 = HEAP32[$8>>2]|0;
+              $335 = $334 & 2;
+              $336 = (_tre_neg_char_classes_match($333,$237,$335)|0);
+              $337 = ($336|0)==(0);
+              if (!($337)) {
+               $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = 
$$6443556;
+               break L125;
+              }
+             }
+            } while(0);
+            if ($72) {
+             $338 = HEAP32[$245>>2]|0;
+             $$5453542 = 0;
+             while(1) {
+              $339 = (($338) + ($$5453542<<2)|0);
+              $340 = HEAP32[$339>>2]|0;
+              $341 = (($$3562) + ($$5453542<<2)|0);
+              HEAP32[$341>>2] = $340;
+              $342 = (($$5453542) + 1)|0;
+              $exitcond616 = ($342|0)==($$0456|0);
+              if ($exitcond616) {
+               break;
+              } else {
+               $$5453542 = $342;
+              }
+             }
+            }
+            $343 = ((($$1428565)) + 16|0);
+            $344 = HEAP32[$343>>2]|0;
+            $345 = ($344|0)==(0|0);
+            do {
+             if (!($345)) {
+              $346 = HEAP32[$344>>2]|0;
+              $347 = ($346|0)>(-1);
+              if (!($347)) {
+               break;
+              }
+              $$1458546 = $344;$349 = $346;
+              while(1) {
+               $348 = ($349|0)<($$0456|0);
+               if ($348) {
+                $350 = (($$3562) + ($349<<2)|0);
+                HEAP32[$350>>2] = $190;
+               }
+               $351 = ((($$1458546)) + 4|0);
+               $352 = HEAP32[$351>>2]|0;
+               $353 = ($352|0)>(-1);
+               if ($353) {
+                $$1458546 = $351;$349 = $352;
+               } else {
+                break;
+               }
+              }
+             }
+            } while(0);
+            $354 = ((($$1428565)) + 12|0);
+            $355 = HEAP32[$354>>2]|0;
+            $356 = (($45) + ($355<<3)|0);
+            $357 = HEAP32[$356>>2]|0;
+            $358 = ($357|0)<($190|0);
+            if (!($358)) {
+             $377 = HEAP32[$77>>2]|0;
+             $378 = (((($45) + ($355<<3)|0)) + 4|0);
+             $379 = HEAP32[$378>>2]|0;
+             $380 = HEAP32[$379>>2]|0;
+             $381 = (_tre_tag_order($$0456,$377,$$3562,$380)|0);
+             $382 = ($381|0)==(0);
+             if ($382) {
+              $$10 = $$7559;$$4 = $$3562;$$7467 = $$6466555;$$9446 = $$6443556;
+              break;
+             }
+             HEAP32[$379>>2] = $$3562;
+             $383 = HEAP32[$360>>2]|0;
+             $384 = HEAP32[$73>>2]|0;
+             $385 = ($383|0)==($384|0);
+             if (!($385)) {
+              $$10 = $$7559;$$4 = $380;$$7467 = $$6466555;$$9446 = $$6443556;
+              break;
+             }
+             if (!($72)) {
+              $$10 = 1;$$4 = $380;$$7467 = $$6466555;$$9446 = $190;
+              break;
+             }
+             $$7455549 = 0;
+             while(1) {
+              $386 = (($$3562) + ($$7455549<<2)|0);
+              $387 = HEAP32[$386>>2]|0;
+              $388 = (($2) + ($$7455549<<2)|0);
+              HEAP32[$388>>2] = $387;
+              $389 = (($$7455549) + 1)|0;
+              $exitcond618 = ($389|0)==($$0456|0);
+              if ($exitcond618) {
+               $$10 = 1;$$4 = $380;$$7467 = $$6466555;$$9446 = $190;
+               break L125;
+              } else {
+               $$7455549 = $389;
+              }
+             }
+            }
+            $359 = HEAP32[$360>>2]|0;
+            HEAP32[$$6466555>>2] = $359;
+            $361 = ((($$6466555)) + 4|0);
+            $362 = HEAP32[$361>>2]|0;
+            HEAP32[$361>>2] = $$3562;
+            HEAP32[$356>>2] = $190;
+            $363 = (((($45) + ($355<<3)|0)) + 4|0);
+            HEAP32[$363>>2] = $361;
+            $364 = $359;
+            $365 = HEAP32[$73>>2]|0;
+            $366 = ($365|0)==($364|0);
+            do {
+             if ($366) {
+              $367 = ($$6443556|0)==(-1);
+              if ($367) {
+               if (!($72)) {
+                $$7444 = $190;$$8 = 1;
+                break;
+               }
+              } else {
+               if (!($72)) {
+                $$7444 = $$6443556;$$8 = $$7559;
+                break;
+               }
+               $368 = HEAP32[$$3562>>2]|0;
+               $369 = HEAP32[$2>>2]|0;
+               $370 = ($368|0)>($369|0);
+               if ($370) {
+                $$7444 = $$6443556;$$8 = $$7559;
+                break;
+               }
+              }
+              $$6454552 = 0;
+              while(1) {
+               $371 = (($$3562) + ($$6454552<<2)|0);
+               $372 = HEAP32[$371>>2]|0;
+               $373 = (($2) + ($$6454552<<2)|0);
+               HEAP32[$373>>2] = $372;
+               $374 = (($$6454552) + 1)|0;
+               $375 = ($374|0)<($$0456|0);
+               if ($375) {
+                $$6454552 = $374;
+               } else {
+                $$7444 = $190;$$8 = 1;
+                break;
+               }
+              }
+             } else {
+              $$7444 = $$6443556;$$8 = $$7559;
+             }
+            } while(0);
+            $376 = ((($$6466555)) + 8|0);
+            $$10 = $$8;$$4 = $362;$$7467 = $376;$$9446 = $$7444;
+           }
+          }
+         } while(0);
+         $390 = ((($$1428565)) + 32|0);
+         $391 = ((($$1428565)) + 40|0);
+         $392 = HEAP32[$391>>2]|0;
+         $393 = ($392|0)==(0|0);
+         if ($393) {
+          $$3$lcssa = $$4;$$6443$lcssa = $$9446;$$6466$lcssa = 
$$7467;$$7$lcssa = $$10;
+          break;
+         } else {
+          $$1428565 = $390;$$3562 = $$4;$$6443556 = $$9446;$$6466555 = 
$$7467;$$7559 = $$10;$360 = $391;
+         }
+        }
+       }
+       $394 = ((($$1469575)) + 8|0);
+       $395 = HEAP32[$394>>2]|0;
+       $396 = ($395|0)==(0|0);
+       if ($396) {
+        $$2431$lcssa = $$3$lcssa;$$5442$lcssa = $$6443$lcssa;$$5465$lcssa = 
$$6466$lcssa;$$6$lcssa = $$7$lcssa;
+        break;
+       } else {
+        $$1469575 = $394;$$2431579 = $$3$lcssa;$$5442577 = 
$$6443$lcssa;$$5465576 = $$6466$lcssa;$$6578 = $$7$lcssa;$242 = $395;
+       }
+      }
+     }
+     HEAP32[$$5465$lcssa>>2] = 0;
+     $$0415 = $237;$$0421 = $194;$$0422 = $190;$$0432 = $$6$lcssa;$$0437 = 
$$5442$lcssa;$$0460 = $$5465$lcssa;$$1424 = $$2425;$$1430 = $$2431$lcssa;$$1471 
= $$2472;$$1474 = $$2475;
+    }
+    HEAP32[$4>>2] = $$10447;
+    $$10447$lobit = $$10447 >>> 31;
+    $$0426 = $$10447$lobit;
+   }
+  } while(0);
+  _free($25);
+  $$1 = $$0426;
+ }
+ STACKTOP = sp;return ($$1|0);
+}
+function _tre_fill_pmatch($0,$1,$2,$3,$4,$5) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ var $$07984 = 0, $$091 = 0, $$188 = 0, $$2 = 0, $$pre = 0, $10 = 0, $11 = 0, 
$12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 
0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $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, $40 = 0, $41 = 
0, $42 = 0, $43 = 0, $44 = 0;
+ var $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, $6 = 0, $60 = 0, 
$61 = 0, $62 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, $or$cond = 0, $or$cond81 = 0, $or$cond8190 = 0, 
$or$cond82 = 0, $or$cond99 = 0, $scevgep = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $6 = ($5|0)>(-1);
+ $7 = $2 & 8;
+ $8 = ($7|0)==(0);
+ $or$cond = $8 & $6;
+ if ($or$cond) {
+  $9 = ((($3)) + 16|0);
+  $10 = HEAP32[$9>>2]|0;
+  $11 = ((($3)) + 28|0);
+  $12 = HEAP32[$11>>2]|0;
+  $13 = ($12|0)!=(0);
+  $14 = ($0|0)!=(0);
+  $or$cond8190 = $14 & $13;
+  if ($or$cond8190) {
+   $15 = ((($3)) + 48|0);
+   $16 = HEAP32[$15>>2]|0;
+   $$091 = 0;
+   while(1) {
+    $17 = (($10) + (($$091*12)|0)|0);
+    $18 = HEAP32[$17>>2]|0;
+    $19 = ($18|0)==($16|0);
+    if ($19) {
+     $23 = $5;
+    } else {
+     $20 = (($4) + ($18<<2)|0);
+     $21 = HEAP32[$20>>2]|0;
+     $23 = $21;
+    }
+    $22 = (($1) + ($$091<<3)|0);
+    HEAP32[$22>>2] = $23;
+    $24 = (((($10) + (($$091*12)|0)|0)) + 4|0);
+    $25 = HEAP32[$24>>2]|0;
+    $26 = ($25|0)==($16|0);
+    if ($26) {
+     $30 = $5;
+    } else {
+     $27 = (($4) + ($25<<2)|0);
+     $28 = HEAP32[$27>>2]|0;
+     $30 = $28;
+    }
+    $29 = (((($1) + ($$091<<3)|0)) + 4|0);
+    HEAP32[$29>>2] = $30;
+    $31 = ($23|0)==(-1);
+    $32 = ($30|0)==(-1);
+    $or$cond99 = $31 | $32;
+    if ($or$cond99) {
+     HEAP32[$29>>2] = -1;
+     HEAP32[$22>>2] = -1;
+    }
+    $33 = (($$091) + 1)|0;
+    $34 = ($33>>>0)<($12>>>0);
+    $35 = ($33>>>0)<($0>>>0);
+    $or$cond81 = $35 & $34;
+    if ($or$cond81) {
+     $$091 = $33;
+    } else {
+     break;
+    }
+   }
+   if ($or$cond8190) {
+    $$188 = 0;
+    while(1) {
+     $36 = (((($1) + ($$188<<3)|0)) + 4|0);
+     $37 = (((($10) + (($$188*12)|0)|0)) + 8|0);
+     $38 = HEAP32[$37>>2]|0;
+     $39 = ($38|0)==(0|0);
+     if (!($39)) {
+      $40 = HEAP32[$38>>2]|0;
+      $41 = ($40|0)>(-1);
+      if ($41) {
+       $42 = (($1) + ($$188<<3)|0);
+       $$pre = HEAP32[$42>>2]|0;
+       $$07984 = 0;$44 = $40;$47 = $$pre;
+       while(1) {
+        $43 = (($1) + ($44<<3)|0);
+        $45 = HEAP32[$43>>2]|0;
+        $46 = ($47|0)<($45|0);
+        if ($46) {
+         label = 18;
+        } else {
+         $48 = HEAP32[$36>>2]|0;
+         $49 = (((($1) + ($44<<3)|0)) + 4|0);
+         $50 = HEAP32[$49>>2]|0;
+         $51 = ($48|0)>($50|0);
+         if ($51) {
+          label = 18;
+         } else {
+          $62 = $47;
+         }
+        }
+        if ((label|0) == 18) {
+         label = 0;
+         HEAP32[$36>>2] = -1;
+         HEAP32[$42>>2] = -1;
+         $62 = -1;
+        }
+        $52 = (($$07984) + 1)|0;
+        $53 = (($38) + ($52<<2)|0);
+        $54 = HEAP32[$53>>2]|0;
+        $55 = ($54|0)>(-1);
+        if ($55) {
+         $$07984 = $52;$44 = $54;$47 = $62;
+        } else {
+         break;
+        }
+       }
+      }
+     }
+     $56 = (($$188) + 1)|0;
+     $57 = ($56>>>0)<($12>>>0);
+     $58 = ($56>>>0)<($0>>>0);
+     $or$cond82 = $57 & $58;
+     if ($or$cond82) {
+      $$188 = $56;
+     } else {
+      $$2 = $56;
+      break;
+     }
+    }
+   } else {
+    $$2 = 0;
+   }
+  } else {
+   $$2 = 0;
+  }
+ } else {
+  $$2 = 0;
+ }
+ $59 = ($$2>>>0)<($0>>>0);
+ if ($59) {
+  $scevgep = (($1) + ($$2<<3)|0);
+  $60 = (($0) - ($$2))|0;
+  $61 = $60 << 3;
+  _memset(($scevgep|0),-1,($61|0))|0;
+ }
+ return;
+}
+function _tre_neg_char_classes_match($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$01011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 
0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, 
$8 = 0, $9 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ $3 = HEAP32[$0>>2]|0;
+ $4 = ($3|0)==(0);
+ L1: do {
+  if ($4) {
+   $$0 = 0;
+  } else {
+   $5 = ($2|0)==(0);
+   $$01011 = $0;$6 = $3;
+   while(1) {
+    if ($5) {
+     $7 = (_iswctype($1,$6)|0);
+     $8 = ($7|0)==(0);
+     if (!($8)) {
+      $$0 = 1;
+      break L1;
+     }
+    } else {
+     $9 = (_towupper($1)|0);
+     $10 = HEAP32[$$01011>>2]|0;
+     $11 = (_iswctype($9,$10)|0);
+     $12 = ($11|0)==(0);
+     if (!($12)) {
+      $$0 = 1;
+      break L1;
+     }
+     $13 = (_towlower($1)|0);
+     $14 = HEAP32[$$01011>>2]|0;
+     $15 = (_iswctype($13,$14)|0);
+     $16 = ($15|0)==(0);
+     if (!($16)) {
+      $$0 = 1;
+      break L1;
+     }
+    }
+    $17 = ((($$01011)) + 4|0);
+    $18 = HEAP32[$17>>2]|0;
+    $19 = ($18|0)==(0);
+    if ($19) {
+     $$0 = 0;
+     break;
+    } else {
+     $$01011 = $17;$6 = $18;
+    }
+   }
+  }
+ } while(0);
+ return ($$0|0);
+}
+function _tre_tag_order($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$018 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 
0, $16 = 0, $17 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, 
sp = 0;
+ sp = STACKTOP;
+ $4 = ($0|0)>(0);
+ L1: do {
+  if ($4) {
+   $$019 = 0;
+   while(1) {
+    $5 = (($1) + ($$019<<2)|0);
+    $6 = HEAP32[$5>>2]|0;
+    $7 = ($6|0)==(0);
+    $8 = (($2) + ($$019<<2)|0);
+    $9 = HEAP32[$8>>2]|0;
+    $10 = (($3) + ($$019<<2)|0);
+    $11 = HEAP32[$10>>2]|0;
+    if ($7) {
+     $12 = ($9|0)<($11|0);
+     if ($12) {
+      $$018 = 1;
+      break L1;
+     }
+     $13 = ($9|0)>($11|0);
+     if ($13) {
+      $$018 = 0;
+      break L1;
+     }
+    } else {
+     $14 = ($9|0)>($11|0);
+     if ($14) {
+      $$018 = 1;
+      break L1;
+     }
+     $15 = ($9|0)<($11|0);
+     if ($15) {
+      $$018 = 0;
+      break L1;
+     }
+    }
+    $16 = (($$019) + 1)|0;
+    $17 = ($16|0)<($0|0);
+    if ($17) {
+     $$019 = $16;
+    } else {
+     $$018 = 0;
+     break;
+    }
+   }
+  } else {
+   $$018 = 0;
+  }
+ } while(0);
+ return ($$018|0);
+}
+function _isxdigit($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $narrow = 0, $spec$select = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_isdigit($0)|0);
+ $2 = ($1|0)!=(0);
+ $3 = $0 | 32;
+ $4 = (($3) + -97)|0;
+ $5 = ($4>>>0)<(6);
+ $narrow = $5 | $2;
+ $spec$select = $narrow&1;
+ return ($spec$select|0);
+}
+function _toupper($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_islower($0)|0);
+ $2 = ($1|0)==(0);
+ $3 = $0 & 95;
+ $$0 = $2 ? $0 : $3;
+ return ($$0|0);
+}
+function _islower($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (($0) + -97)|0;
+ $2 = ($1>>>0)<(26);
+ $3 = $2&1;
+ return ($3|0);
+}
+function _isupper($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (($0) + -65)|0;
+ $2 = ($1>>>0)<(26);
+ $3 = $2&1;
+ return ($3|0);
+}
+function _tolower($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_isupper($0)|0);
+ $2 = ($1|0)==(0);
+ $3 = $0 | 32;
+ $$0 = $2 ? $0 : $3;
+ return ($$0|0);
+}
+function ___munmap($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $4 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, 
sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $2 = $0;
+ HEAP32[$vararg_buffer>>2] = $2;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $1;
+ $3 = (___syscall91(91,($vararg_buffer|0))|0);
+ $4 = (___syscall_ret($3)|0);
+ STACKTOP = sp;return ($4|0);
+}
+function _dummy_735() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return;
+}
+function _strcasecmp($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0$lcssa = 0, $$01718 = 0, $$019 = 0, $$pre$pre = 0, $10 = 0, $11 = 0, 
$12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, 
$20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = HEAP8[$0>>0]|0;
+ $3 = ($2<<24>>24)==(0);
+ L1: do {
+  if ($3) {
+   $$0$lcssa = $1;$21 = 0;
+  } else {
+   $4 = $2&255;
+   $$01718 = $0;$$019 = $1;$8 = $2;$9 = $4;
+   while(1) {
+    $5 = HEAP8[$$019>>0]|0;
+    $6 = ($5<<24>>24)==(0);
+    if ($6) {
+     $$0$lcssa = $$019;$21 = $8;
+     break L1;
+    }
+    $7 = ($8<<24>>24)==($5<<24>>24);
+    if (!($7)) {
+     $10 = (_tolower($9)|0);
+     $11 = HEAP8[$$019>>0]|0;
+     $12 = $11&255;
+     $13 = (_tolower($12)|0);
+     $14 = ($10|0)==($13|0);
+     if (!($14)) {
+      break;
+     }
+    }
+    $15 = ((($$01718)) + 1|0);
+    $16 = ((($$019)) + 1|0);
+    $17 = HEAP8[$15>>0]|0;
+    $18 = $17&255;
+    $19 = ($17<<24>>24)==(0);
+    if ($19) {
+     $$0$lcssa = $16;$21 = 0;
+     break L1;
+    } else {
+     $$01718 = $15;$$019 = $16;$8 = $17;$9 = $18;
+    }
+   }
+   $$pre$pre = HEAP8[$$01718>>0]|0;
+   $$0$lcssa = $$019;$21 = $$pre$pre;
+  }
+ } while(0);
+ $20 = $21&255;
+ $22 = (_tolower($20)|0);
+ $23 = HEAP8[$$0$lcssa>>0]|0;
+ $24 = $23&255;
+ $25 = (_tolower($24)|0);
+ $26 = (($22) - ($25))|0;
+ return ($26|0);
+}
+function _srandom($0) {
+ $0 = $0|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ ___lock((73288|0));
+ ___srandom($0);
+ ___unlock((73288|0));
+ return;
+}
+function ___srandom($0) {
+ $0 = $0|0;
+ var $$01011 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 
0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 
0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (31)==(0);
+ if ($1) {
+  HEAP32[(37332)>>2] = $0;
+ } else {
+  $2 = (31)==(31);
+  $3 = (31)==(7);
+  $4 = $2 | $3;
+  $5 = $4 ? 3 : 1;
+  HEAP32[10262] = $5;
+  HEAP32[18324] = 0;
+  $6 = (31)>(0);
+  if ($6) {
+   $$01011 = 0;$7 = $0;$8 = 0;
+   while(1) {
+    $9 = (_lcg64($7,$8)|0);
+    $10 = tempRet0;
+    $11 = ((37332) + ($$01011<<2)|0);
+    HEAP32[$11>>2] = $10;
+    $12 = (($$01011) + 1)|0;
+    $exitcond = ($12|0)==(31);
+    if ($exitcond) {
+     $14 = (37332);
+     break;
+    } else {
+     $$01011 = $12;$7 = $9;$8 = $10;
+    }
+   }
+  } else {
+   $14 = (37332);
+  }
+  $13 = HEAP32[$14>>2]|0;
+  $15 = $13 | 1;
+  HEAP32[$14>>2] = $15;
+ }
+ return;
+}
+function _lcg64($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (___muldi3(($0|0),($1|0),1284865837,1481765933)|0);
+ $3 = tempRet0;
+ $4 = (_i64Add(($2|0),($3|0),1,0)|0);
+ $5 = tempRet0;
+ tempRet0 = ($5);
+ return ($4|0);
+}
+function _random() {
+ var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 
= 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$store$select 
= 0, $spec$store$select1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ ___lock((73288|0));
+ $0 = (31)==(0);
+ if ($0) {
+  $1 = HEAP32[(37332)>>2]|0;
+  $2 = (_lcg31($1)|0);
+  HEAP32[(37332)>>2] = $2;
+  $$0 = $2;
+ } else {
+  $3 = HEAP32[18324]|0;
+  $4 = ((37332) + ($3<<2)|0);
+  $5 = HEAP32[$4>>2]|0;
+  $6 = HEAP32[10262]|0;
+  $7 = ((37332) + ($6<<2)|0);
+  $8 = HEAP32[$7>>2]|0;
+  $9 = (($8) + ($5))|0;
+  HEAP32[$7>>2] = $9;
+  $10 = $9 >>> 1;
+  $11 = (($6) + 1)|0;
+  $12 = ($11|0)==(31);
+  $spec$store$select = $12 ? 0 : $11;
+  HEAP32[10262] = $spec$store$select;
+  $13 = (($3) + 1)|0;
+  $14 = ($13|0)==(31);
+  $spec$store$select1 = $14 ? 0 : $13;
+  HEAP32[18324] = $spec$store$select1;
+  $$0 = $10;
+ }
+ ___unlock((73288|0));
+ return ($$0|0);
+}
+function _lcg31($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = Math_imul($0, 1103515245)|0;
+ $2 = (($1) + 12345)|0;
+ $3 = $2 & 2147483647;
+ return ($3|0);
+}
+function ___mmap($0,$1,$2,$3,$4,$5) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, 
$17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $6 = 0, $7 = 0, $8 = 0, 
$9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0;
+ var $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, 
label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $vararg_buffer = sp;
+ $6 = ($5|0)<(0);
+ $7 = $6 << 31 >> 31;
+ $8 = $5 & 4095;
+ $9 = $7 & -4096;
+ $10 = ($8|0)==(0);
+ $11 = ($9|0)==(0);
+ $12 = $10 & $11;
+ do {
+  if ($12) {
+   $14 = ($1>>>0)>(2147483646);
+   if ($14) {
+    $15 = (___errno_location()|0);
+    HEAP32[$15>>2] = 12;
+    $$0 = (-1);
+    break;
+   }
+   $16 = $3 & 16;
+   $17 = ($16|0)==(0);
+   if (!($17)) {
+   }
+   $18 = $0;
+   $19 = $5 >> 12;
+   HEAP32[$vararg_buffer>>2] = $18;
+   $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+   HEAP32[$vararg_ptr1>>2] = $1;
+   $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+   HEAP32[$vararg_ptr2>>2] = $2;
+   $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+   HEAP32[$vararg_ptr3>>2] = $3;
+   $vararg_ptr4 = ((($vararg_buffer)) + 16|0);
+   HEAP32[$vararg_ptr4>>2] = $4;
+   $vararg_ptr5 = ((($vararg_buffer)) + 20|0);
+   HEAP32[$vararg_ptr5>>2] = $19;
+   $20 = (___syscall192(192,($vararg_buffer|0))|0);
+   $21 = (___syscall_ret($20)|0);
+   $22 = $21;
+   $$0 = $22;
+  } else {
+   $13 = (___errno_location()|0);
+   HEAP32[$13>>2] = 22;
+   $$0 = (-1);
+  }
+ } while(0);
+ STACKTOP = sp;return ($$0|0);
+}
+function _atoi($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$010$lcssa = 0, $$01015 = 0, $$011 = 0, $$1 = 0, $$112 = 0, 
$$214 = 0, $$neg13 = 0, $$pre = 0, $$pre$phiZ2D = 0, $$pre16 = 0, $1 = 0, $10 = 
0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0;
+ var $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 
0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $$011 = $0;
+ while(1) {
+  $1 = HEAP8[$$011>>0]|0;
+  $2 = $1 << 24 >> 24;
+  $3 = (_isspace($2)|0);
+  $4 = ($3|0)==(0);
+  $5 = ((($$011)) + 1|0);
+  if ($4) {
+   break;
+  } else {
+   $$011 = $5;
+  }
+ }
+ $6 = HEAP8[$$011>>0]|0;
+ $7 = $6 << 24 >> 24;
+ switch ($7|0) {
+ case 45:  {
+  $$0 = 1;
+  label = 5;
+  break;
+ }
+ case 43:  {
+  $$0 = 0;
+  label = 5;
+  break;
+ }
+ default: {
+  $$1 = 0;$$112 = $$011;$$pre$phiZ2D = $7;
+ }
+ }
+ if ((label|0) == 5) {
+  $$pre = HEAP8[$5>>0]|0;
+  $$pre16 = $$pre << 24 >> 24;
+  $$1 = $$0;$$112 = $5;$$pre$phiZ2D = $$pre16;
+ }
+ $8 = (_isdigit($$pre$phiZ2D)|0);
+ $9 = ($8|0)==(0);
+ if ($9) {
+  $$010$lcssa = 0;
+ } else {
+  $$01015 = 0;$$214 = $$112;
+  while(1) {
+   $10 = ($$01015*10)|0;
+   $11 = ((($$214)) + 1|0);
+   $12 = HEAP8[$$214>>0]|0;
+   $13 = $12 << 24 >> 24;
+   $$neg13 = (($10) + 48)|0;
+   $14 = (($$neg13) - ($13))|0;
+   $15 = HEAP8[$11>>0]|0;
+   $16 = $15 << 24 >> 24;
+   $17 = (_isdigit($16)|0);
+   $18 = ($17|0)==(0);
+   if ($18) {
+    $$010$lcssa = $14;
+    break;
+   } else {
+    $$01015 = $14;$$214 = $11;
+   }
+  }
+ }
+ $19 = ($$1|0)==(0);
+ $20 = (0 - ($$010$lcssa))|0;
+ $21 = $19 ? $20 : $$010$lcssa;
+ return ($21|0);
+}
+function ___setxid($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 
0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(32|0);
+ $4 = sp;
+ HEAP32[$4>>2] = $1;
+ $5 = ((($4)) + 4|0);
+ HEAP32[$5>>2] = $2;
+ $6 = ((($4)) + 8|0);
+ HEAP32[$6>>2] = $3;
+ $7 = ((($4)) + 12|0);
+ HEAP32[$7>>2] = $0;
+ $8 = ((($4)) + 16|0);
+ HEAP32[$8>>2] = -1;
+ ___synccall(90,$4);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ($9|0)==(0);
+ if ($10) {
+  $$0 = 0;
+ } else {
+  $11 = ($9|0)>(0);
+  if ($11) {
+   $12 = (___errno_location()|0);
+   HEAP32[$12>>2] = $9;
+   $$0 = -1;
+  } else {
+   $$0 = -1;
+  }
+ }
+ STACKTOP = sp;return ($$0|0);
+}
+function _do_setxid($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 16|0);
+ $2 = HEAP32[$1>>2]|0;
+ $3 = ($2|0)>(0);
+ if (!($3)) {
+  HEAP32[$1>>2] = 1;
+ }
+ return;
+}
+function _getppid() {
+ var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $0 = (___syscall64(64,($vararg_buffer|0))|0);
+ STACKTOP = sp;return ($0|0);
+}
+function _getuid() {
+ var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $0 = (___syscall199(199,($vararg_buffer|0))|0);
+ STACKTOP = sp;return ($0|0);
+}
+function _geteuid() {
+ var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $0 = (___syscall201(201,($vararg_buffer|0))|0);
+ STACKTOP = sp;return ($0|0);
+}
+function _ftruncate($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $4 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, 
$vararg_ptr2 = 0, $vararg_ptr3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) 
abortStackOverflow(16|0);
+ $vararg_buffer = sp;
+ $2 = $1 >> 31;
+ HEAP32[$vararg_buffer>>2] = $0;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = 0;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = $1;
+ $vararg_ptr3 = ((($vararg_buffer)) + 12|0);
+ HEAP32[$vararg_ptr3>>2] = $2;
+ $3 = (___syscall194(194,($vararg_buffer|0))|0);
+ $4 = (___syscall_ret($3)|0);
+ STACKTOP = sp;return ($4|0);
+}
+function _setuid($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (___setxid(213,$0,0,0)|0);
+ return ($1|0);
+}
+function ___emscripten_environ_constructor() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ ___buildEnvironment((73316|0));
+ return;
+}
+function __get_tzname() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return (73300|0);
+}
+function __get_daylight() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return (73308|0);
+}
+function __get_timezone() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return (73312|0);
+}
+function __get_environ() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ return (73316|0);
+}
+function runPostSets() {
+}
+function _i64Add(a, b, c, d) {
+    /*
+      x = a + b*2^32
+      y = c + d*2^32
+      result = l + h*2^32
+    */
+    a = a|0; b = b|0; c = c|0; d = d|0;
+    var l = 0, h = 0;
+    l = (a + c)>>>0;
+    h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to 
high word on overflow.
+    return ((tempRet0 = h,l|0)|0);
+}
+function _i64Subtract(a, b, c, d) {
+    a = a|0; b = b|0; c = c|0; d = d|0;
+    var l = 0, h = 0;
+    l = (a - c)>>>0;
+    h = (b - d)>>>0;
+    h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to 
low word on underflow.
+    return ((tempRet0 = h,l|0)|0);
+}
+function _llvm_cttz_i32(x) { // Note: Currently doesn't take isZeroUndef()
+    x = x | 0;
+    return (x ? (31 - (Math_clz32((x ^ (x - 1))) | 0) | 0) : 32) | 0;
+}
+function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) {
+    $a$0 = $a$0 | 0;
+    $a$1 = $a$1 | 0;
+    $b$0 = $b$0 | 0;
+    $b$1 = $b$1 | 0;
+    $rem = $rem | 0;
+    var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, 
$n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, 
$d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 
0, $37 = 0, $49 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $86 = 0, $88 
= 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $117 = 0, $119 = 0, $125 = 
0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 
0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sro [...]
+    $n_sroa_0_0_extract_trunc = $a$0;
+    $n_sroa_1_4_extract_shift$0 = $a$1;
+    $n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0;
+    $d_sroa_0_0_extract_trunc = $b$0;
+    $d_sroa_1_4_extract_shift$0 = $b$1;
+    $d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0;
+    if (($n_sroa_1_4_extract_trunc | 0) == 0) {
+      $4 = ($rem | 0) != 0;
+      if (($d_sroa_1_4_extract_trunc | 0) == 0) {
+        if ($4) {
+          HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % 
($d_sroa_0_0_extract_trunc >>> 0);
+          HEAP32[$rem + 4 >> 2] = 0;
+        }
+        $_0$1 = 0;
+        $_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc 
>>> 0) >>> 0;
+        return (tempRet0 = $_0$1, $_0$0) | 0;
+      } else {
+        if (!$4) {
+          $_0$1 = 0;
+          $_0$0 = 0;
+          return (tempRet0 = $_0$1, $_0$0) | 0;
+        }
+        HEAP32[$rem >> 2] = $a$0 & -1;
+        HEAP32[$rem + 4 >> 2] = $a$1 & 0;
+        $_0$1 = 0;
+        $_0$0 = 0;
+        return (tempRet0 = $_0$1, $_0$0) | 0;
+      }
+    }
+    $17 = ($d_sroa_1_4_extract_trunc | 0) == 0;
+    do {
+      if (($d_sroa_0_0_extract_trunc | 0) == 0) {
+        if ($17) {
+          if (($rem | 0) != 0) {
+            HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % 
($d_sroa_0_0_extract_trunc >>> 0);
+            HEAP32[$rem + 4 >> 2] = 0;
+          }
+          $_0$1 = 0;
+          $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / 
($d_sroa_0_0_extract_trunc >>> 0) >>> 0;
+          return (tempRet0 = $_0$1, $_0$0) | 0;
+        }
+        if (($n_sroa_0_0_extract_trunc | 0) == 0) {
+          if (($rem | 0) != 0) {
+            HEAP32[$rem >> 2] = 0;
+            HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % 
($d_sroa_1_4_extract_trunc >>> 0);
+          }
+          $_0$1 = 0;
+          $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / 
($d_sroa_1_4_extract_trunc >>> 0) >>> 0;
+          return (tempRet0 = $_0$1, $_0$0) | 0;
+        }
+        $37 = $d_sroa_1_4_extract_trunc - 1 | 0;
+        if (($37 & $d_sroa_1_4_extract_trunc | 0) == 0) {
+          if (($rem | 0) != 0) {
+            HEAP32[$rem >> 2] = 0 | $a$0 & -1;
+            HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0;
+          }
+          $_0$1 = 0;
+          $_0$0 = $n_sroa_1_4_extract_trunc >>> 
((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0);
+          return (tempRet0 = $_0$1, $_0$0) | 0;
+        }
+        $49 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0;
+        $51 = $49 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0;
+        if ($51 >>> 0 <= 30) {
+          $57 = $51 + 1 | 0;
+          $58 = 31 - $51 | 0;
+          $sr_1_ph = $57;
+          $r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | 
$n_sroa_0_0_extract_trunc >>> ($57 >>> 0);
+          $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0);
+          $q_sroa_0_1_ph = 0;
+          $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58;
+          break;
+        }
+        if (($rem | 0) == 0) {
+          $_0$1 = 0;
+          $_0$0 = 0;
+          return (tempRet0 = $_0$1, $_0$0) | 0;
+        }
+        HEAP32[$rem >> 2] = 0 | $a$0 & -1;
+        HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0;
+        $_0$1 = 0;
+        $_0$0 = 0;
+        return (tempRet0 = $_0$1, $_0$0) | 0;
+      } else {
+        if (!$17) {
+          $117 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0;
+          $119 = $117 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0;
+          if ($119 >>> 0 <= 31) {
+            $125 = $119 + 1 | 0;
+            $126 = 31 - $119 | 0;
+            $130 = $119 - 31 >> 31;
+            $sr_1_ph = $125;
+            $r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 
| $n_sroa_1_4_extract_trunc << $126;
+            $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130;
+            $q_sroa_0_1_ph = 0;
+            $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126;
+            break;
+          }
+          if (($rem | 0) == 0) {
+            $_0$1 = 0;
+            $_0$0 = 0;
+            return (tempRet0 = $_0$1, $_0$0) | 0;
+          }
+          HEAP32[$rem >> 2] = 0 | $a$0 & -1;
+          HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0;
+          $_0$1 = 0;
+          $_0$0 = 0;
+          return (tempRet0 = $_0$1, $_0$0) | 0;
+        }
+        $66 = $d_sroa_0_0_extract_trunc - 1 | 0;
+        if (($66 & $d_sroa_0_0_extract_trunc | 0) != 0) {
+          $86 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 | 0;
+          $88 = $86 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0;
+          $89 = 64 - $88 | 0;
+          $91 = 32 - $88 | 0;
+          $92 = $91 >> 31;
+          $95 = $88 - 32 | 0;
+          $105 = $95 >> 31;
+          $sr_1_ph = $88;
+          $r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 
>>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 
>>> 0)) & $105;
+          $r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0);
+          $q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92;
+          $q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | 
$n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << 
$91 & $88 - 33 >> 31;
+          break;
+        }
+        if (($rem | 0) != 0) {
+          HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc;
+          HEAP32[$rem + 4 >> 2] = 0;
+        }
+        if (($d_sroa_0_0_extract_trunc | 0) == 1) {
+          $_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0;
+          $_0$0 = 0 | $a$0 & -1;
+          return (tempRet0 = $_0$1, $_0$0) | 0;
+        } else {
+          $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0;
+          $_0$1 = 0 | $n_sroa_1_4_extract_trunc >>> ($78 >>> 0);
+          $_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | 
$n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0;
+          return (tempRet0 = $_0$1, $_0$0) | 0;
+        }
+      }
+    } while (0);
+    if (($sr_1_ph | 0) == 0) {
+      $q_sroa_1_1_lcssa = $q_sroa_1_1_ph;
+      $q_sroa_0_1_lcssa = $q_sroa_0_1_ph;
+      $r_sroa_1_1_lcssa = $r_sroa_1_1_ph;
+      $r_sroa_0_1_lcssa = $r_sroa_0_1_ph;
+      $carry_0_lcssa$1 = 0;
+      $carry_0_lcssa$0 = 0;
+    } else {
+      $d_sroa_0_0_insert_insert99$0 = 0 | $b$0 & -1;
+      $d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0;
+      $137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, 
$d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0;
+      $137$1 = tempRet0;
+      $q_sroa_1_1198 = $q_sroa_1_1_ph;
+      $q_sroa_0_1199 = $q_sroa_0_1_ph;
+      $r_sroa_1_1200 = $r_sroa_1_1_ph;
+      $r_sroa_0_1201 = $r_sroa_0_1_ph;
+      $sr_1202 = $sr_1_ph;
+      $carry_0203 = 0;
+      while (1) {
+        $147 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1;
+        $149 = $carry_0203 | $q_sroa_0_1199 << 1;
+        $r_sroa_0_0_insert_insert42$0 = 0 | ($r_sroa_0_1201 << 1 | 
$q_sroa_1_1198 >>> 31);
+        $r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 
<< 1 | 0;
+        _i64Subtract($137$0 | 0, $137$1 | 0, $r_sroa_0_0_insert_insert42$0 | 
0, $r_sroa_0_0_insert_insert42$1 | 0) | 0;
+        $150$1 = tempRet0;
+        $151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1;
+        $152 = $151$0 & 1;
+        $154$0 = _i64Subtract($r_sroa_0_0_insert_insert42$0 | 0, 
$r_sroa_0_0_insert_insert42$1 | 0, $151$0 & $d_sroa_0_0_insert_insert99$0 | 0, 
((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & 
$d_sroa_0_0_insert_insert99$1 | 0) | 0;
+        $r_sroa_0_0_extract_trunc = $154$0;
+        $r_sroa_1_4_extract_trunc = tempRet0;
+        $155 = $sr_1202 - 1 | 0;
+        if (($155 | 0) == 0) {
+          break;
+        } else {
+          $q_sroa_1_1198 = $147;
+          $q_sroa_0_1199 = $149;
+          $r_sroa_1_1200 = $r_sroa_1_4_extract_trunc;
+          $r_sroa_0_1201 = $r_sroa_0_0_extract_trunc;
+          $sr_1202 = $155;
+          $carry_0203 = $152;
+        }
+      }
+      $q_sroa_1_1_lcssa = $147;
+      $q_sroa_0_1_lcssa = $149;
+      $r_sroa_1_1_lcssa = $r_sroa_1_4_extract_trunc;
+      $r_sroa_0_1_lcssa = $r_sroa_0_0_extract_trunc;
+      $carry_0_lcssa$1 = 0;
+      $carry_0_lcssa$0 = $152;
+    }
+    $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa;
+    $q_sroa_0_0_insert_ext75$1 = 0;
+    $q_sroa_0_0_insert_insert77$1 = $q_sroa_1_1_lcssa | 
$q_sroa_0_0_insert_ext75$1;
+    if (($rem | 0) != 0) {
+      HEAP32[$rem >> 2] = 0 | $r_sroa_0_1_lcssa;
+      HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa | 0;
+    }
+    $_0$1 = (0 | $q_sroa_0_0_insert_ext75$0) >>> 31 | 
$q_sroa_0_0_insert_insert77$1 << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | 
$q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1;
+    $_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | 
$carry_0_lcssa$0;
+    return (tempRet0 = $_0$1, $_0$0) | 0;
+}
+function ___divdi3($a$0, $a$1, $b$0, $b$1) {
+    $a$0 = $a$0 | 0;
+    $a$1 = $a$1 | 0;
+    $b$0 = $b$0 | 0;
+    $b$1 = $b$1 | 0;
+    var $1$0 = 0, $1$1 = 0, $2$0 = 0, $2$1 = 0, $4$0 = 0, $4$1 = 0, $6$0 = 0, 
$7$0 = 0, $7$1 = 0, $8$0 = 0, $10$0 = 0;
+    $1$0 = $a$1 >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1;
+    $1$1 = (($a$1 | 0) < 0 ? -1 : 0) >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1;
+    $2$0 = $b$1 >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1;
+    $2$1 = (($b$1 | 0) < 0 ? -1 : 0) >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1;
+    $4$0 = _i64Subtract($1$0 ^ $a$0 | 0, $1$1 ^ $a$1 | 0, $1$0 | 0, $1$1 | 0) 
| 0;
+    $4$1 = tempRet0;
+    $6$0 = _i64Subtract($2$0 ^ $b$0 | 0, $2$1 ^ $b$1 | 0, $2$0 | 0, $2$1 | 0) 
| 0;
+    $7$0 = $2$0 ^ $1$0;
+    $7$1 = $2$1 ^ $1$1;
+    $8$0 = ___udivmoddi4($4$0, $4$1, $6$0, tempRet0, 0) | 0;
+    $10$0 = _i64Subtract($8$0 ^ $7$0 | 0, tempRet0 ^ $7$1 | 0, $7$0 | 0, $7$1 
| 0) | 0;
+    return $10$0 | 0;
+}
+function ___muldsi3($a, $b) {
+    $a = $a | 0;
+    $b = $b | 0;
+    var $1 = 0, $2 = 0, $3 = 0, $6 = 0, $8 = 0, $11 = 0, $12 = 0;
+    $1 = $a & 65535;
+    $2 = $b & 65535;
+    $3 = Math_imul($2, $1) | 0;
+    $6 = $a >>> 16;
+    $8 = ($3 >>> 16) + (Math_imul($2, $6) | 0) | 0;
+    $11 = $b >>> 16;
+    $12 = Math_imul($11, $1) | 0;
+    return (tempRet0 = (($8 >>> 16) + (Math_imul($11, $6) | 0) | 0) + ((($8 & 
65535) + $12 | 0) >>> 16) | 0, 0 | ($8 + $12 << 16 | $3 & 65535)) | 0;
+}
+function ___muldi3($a$0, $a$1, $b$0, $b$1) {
+    $a$0 = $a$0 | 0;
+    $a$1 = $a$1 | 0;
+    $b$0 = $b$0 | 0;
+    $b$1 = $b$1 | 0;
+    var $x_sroa_0_0_extract_trunc = 0, $y_sroa_0_0_extract_trunc = 0, $1$0 = 
0, $1$1 = 0, $2 = 0;
+    $x_sroa_0_0_extract_trunc = $a$0;
+    $y_sroa_0_0_extract_trunc = $b$0;
+    $1$0 = ___muldsi3($x_sroa_0_0_extract_trunc, $y_sroa_0_0_extract_trunc) | 
0;
+    $1$1 = tempRet0;
+    $2 = Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0;
+    return (tempRet0 = ((Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $2 
| 0) + $1$1 | $1$1 & 0, 0 | $1$0 & -1) | 0;
+}
+function ___udivdi3($a$0, $a$1, $b$0, $b$1) {
+    $a$0 = $a$0 | 0;
+    $a$1 = $a$1 | 0;
+    $b$0 = $b$0 | 0;
+    $b$1 = $b$1 | 0;
+    var $1$0 = 0;
+    $1$0 = ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0;
+    return $1$0 | 0;
+}
+function ___uremdi3($a$0, $a$1, $b$0, $b$1) {
+    $a$0 = $a$0 | 0;
+    $a$1 = $a$1 | 0;
+    $b$0 = $b$0 | 0;
+    $b$1 = $b$1 | 0;
+    var $rem = 0, __stackBase__ = 0;
+    __stackBase__ = STACKTOP;
+    STACKTOP = STACKTOP + 16 | 0;
+    $rem = __stackBase__ | 0;
+    ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) | 0;
+    STACKTOP = __stackBase__;
+    return (tempRet0 = HEAP32[$rem + 4 >> 2] | 0, HEAP32[$rem >> 2] | 0) | 0;
+}
+function _bitshift64Ashr(low, high, bits) {
+    low = low|0; high = high|0; bits = bits|0;
+    var ander = 0;
+    if ((bits|0) < 32) {
+      ander = ((1 << bits) - 1)|0;
+      tempRet0 = high >> bits;
+      return (low >>> bits) | ((high&ander) << (32 - bits));
+    }
+    tempRet0 = (high|0) < 0 ? -1 : 0;
+    return (high >> (bits - 32))|0;
+}
+function _bitshift64Lshr(low, high, bits) {
+    low = low|0; high = high|0; bits = bits|0;
+    var ander = 0;
+    if ((bits|0) < 32) {
+      ander = ((1 << bits) - 1)|0;
+      tempRet0 = high >>> bits;
+      return (low >>> bits) | ((high&ander) << (32 - bits));
+    }
+    tempRet0 = 0;
+    return (high >>> (bits - 32))|0;
+}
+function _bitshift64Shl(low, high, bits) {
+    low = low|0; high = high|0; bits = bits|0;
+    var ander = 0;
+    if ((bits|0) < 32) {
+      ander = ((1 << bits) - 1)|0;
+      tempRet0 = (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - 
bits));
+      return low << bits;
+    }
+    tempRet0 = low << (bits - 32);
+    return 0;
+}
+function _llvm_bswap_i32(x) {
+    x = x|0;
+    return (((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | 
(x>>>24))|0;
+}
+function _memcpy(dest, src, num) {
+    dest = dest|0; src = src|0; num = num|0;
+    var ret = 0;
+    var aligned_dest_end = 0;
+    var block_aligned_dest_end = 0;
+    var dest_end = 0;
+    // Test against a benchmarked cutoff limit for when HEAPU8.set() becomes 
faster to use.
+    if ((num|0) >=
+      8192
+    ) {
+      return _emscripten_memcpy_big(dest|0, src|0, num|0)|0;
+    }
+
+    ret = dest|0;
+    dest_end = (dest + num)|0;
+    if ((dest&3) == (src&3)) {
+      // The initial unaligned < 4-byte front.
+      while (dest & 3) {
+        if ((num|0) == 0) return ret|0;
+        HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
+        dest = (dest+1)|0;
+        src = (src+1)|0;
+        num = (num-1)|0;
+      }
+      aligned_dest_end = (dest_end & -4)|0;
+      block_aligned_dest_end = (aligned_dest_end - 64)|0;
+      while ((dest|0) <= (block_aligned_dest_end|0) ) {
+        HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0);
+        HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0);
+        HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0);
+        HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0);
+        HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0);
+        HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0);
+        HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0);
+        HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0);
+        HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0);
+        HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0);
+        HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0);
+        HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0);
+        HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0);
+        HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0);
+        HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0);
+        HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0);
+        dest = (dest+64)|0;
+        src = (src+64)|0;
+      }
+      while ((dest|0) < (aligned_dest_end|0) ) {
+        HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0);
+        dest = (dest+4)|0;
+        src = (src+4)|0;
+      }
+    } else {
+      // In the unaligned copy case, unroll a bit as well.
+      aligned_dest_end = (dest_end - 4)|0;
+      while ((dest|0) < (aligned_dest_end|0) ) {
+        HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
+        HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0);
+        HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0);
+        HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0);
+        dest = (dest+4)|0;
+        src = (src+4)|0;
+      }
+    }
+    // The remaining unaligned < 4 byte tail.
+    while ((dest|0) < (dest_end|0)) {
+      HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
+      dest = (dest+1)|0;
+      src = (src+1)|0;
+    }
+    return ret|0;
+}
+function _memmove(dest, src, num) {
+    dest = dest|0; src = src|0; num = num|0;
+    var ret = 0;
+    if (((src|0) < (dest|0)) & ((dest|0) < ((src + num)|0))) {
+      // Unlikely case: Copy backwards in a safe manner
+      ret = dest;
+      src = (src + num)|0;
+      dest = (dest + num)|0;
+      while ((num|0) > 0) {
+        dest = (dest - 1)|0;
+        src = (src - 1)|0;
+        num = (num - 1)|0;
+        HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
+      }
+      dest = ret;
+    } else {
+      _memcpy(dest, src, num) | 0;
+    }
+    return dest | 0;
+}
+function _memset(ptr, value, num) {
+    ptr = ptr|0; value = value|0; num = num|0;
+    var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0;
+    end = (ptr + num)|0;
+
+    value = value & 0xff;
+    if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned 
head*/) {
+      while ((ptr&3) != 0) {
+        HEAP8[((ptr)>>0)]=value;
+        ptr = (ptr+1)|0;
+      }
+
+      aligned_end = (end & -4)|0;
+      block_aligned_end = (aligned_end - 64)|0;
+      value4 = value | (value << 8) | (value << 16) | (value << 24);
+
+      while((ptr|0) <= (block_aligned_end|0)) {
+        HEAP32[((ptr)>>2)]=value4;
+        HEAP32[(((ptr)+(4))>>2)]=value4;
+        HEAP32[(((ptr)+(8))>>2)]=value4;
+        HEAP32[(((ptr)+(12))>>2)]=value4;
+        HEAP32[(((ptr)+(16))>>2)]=value4;
+        HEAP32[(((ptr)+(20))>>2)]=value4;
+        HEAP32[(((ptr)+(24))>>2)]=value4;
+        HEAP32[(((ptr)+(28))>>2)]=value4;
+        HEAP32[(((ptr)+(32))>>2)]=value4;
+        HEAP32[(((ptr)+(36))>>2)]=value4;
+        HEAP32[(((ptr)+(40))>>2)]=value4;
+        HEAP32[(((ptr)+(44))>>2)]=value4;
+        HEAP32[(((ptr)+(48))>>2)]=value4;
+        HEAP32[(((ptr)+(52))>>2)]=value4;
+        HEAP32[(((ptr)+(56))>>2)]=value4;
+        HEAP32[(((ptr)+(60))>>2)]=value4;
+        ptr = (ptr + 64)|0;
+      }
+
+      while ((ptr|0) < (aligned_end|0) ) {
+        HEAP32[((ptr)>>2)]=value4;
+        ptr = (ptr+4)|0;
+      }
+    }
+    // The remaining bytes.
+    while ((ptr|0) < (end|0)) {
+      HEAP8[((ptr)>>0)]=value;
+      ptr = (ptr+1)|0;
+    }
+    return (end-num)|0;
+}
+function _pthread_mutex_lock(x) {
+    x = x | 0;
+    return 0;
+}
+function _pthread_mutex_unlock(x) {
+    x = x | 0;
+    return 0;
+}
+function _sbrk(increment) {
+    increment = increment|0;
+    var oldDynamicTop = 0;
+    var oldDynamicTopOnChange = 0;
+    var newDynamicTop = 0;
+    var totalMemory = 0;
+    oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0;
+    newDynamicTop = oldDynamicTop + increment | 0;
+
+    if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect 
and fail if we would wrap around signed 32-bit int.
+      | (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to 
be used to subtract.
+      abortOnCannotGrowMemory()|0;
+      ___setErrNo(12);
+      return -1;
+    }
+
+    HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop;
+    totalMemory = getTotalMemory()|0;
+    if ((newDynamicTop|0) > (totalMemory|0)) {
+      if ((enlargeMemory()|0) == 0) {
+        HEAP32[DYNAMICTOP_PTR>>2] = oldDynamicTop;
+        ___setErrNo(12);
+        return -1;
+      }
+    }
+    return oldDynamicTop|0;
+}
+
+  
+function dynCall_ii(index,a1) {
+  index = index|0;
+  a1=a1|0;
+  return FUNCTION_TABLE_ii[index&63](a1|0)|0;
+}
+
 
+function dynCall_iii(index,a1,a2) {
+  index = index|0;
+  a1=a1|0; a2=a2|0;
+  return FUNCTION_TABLE_iii[index&127](a1|0,a2|0)|0;
+}
 
+
+function dynCall_iiii(index,a1,a2,a3) {
+  index = index|0;
+  a1=a1|0; a2=a2|0; a3=a3|0;
+  return FUNCTION_TABLE_iiii[index&127](a1|0,a2|0,a3|0)|0;
+}
+
+
+function dynCall_iiiii(index,a1,a2,a3,a4) {
+  index = index|0;
+  a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0;
+  return FUNCTION_TABLE_iiiii[index&127](a1|0,a2|0,a3|0,a4|0)|0;
+}
+
+
+function dynCall_v(index) {
+  index = index|0;
+  
+  FUNCTION_TABLE_v[index&127]();
+}
+
+
+function dynCall_vi(index,a1) {
+  index = index|0;
+  a1=a1|0;
+  FUNCTION_TABLE_vi[index&127](a1|0);
+}
+
+
+function dynCall_vii(index,a1,a2) {
+  index = index|0;
+  a1=a1|0; a2=a2|0;
+  FUNCTION_TABLE_vii[index&63](a1|0,a2|0);
+}
+
+
+function dynCall_viii(index,a1,a2,a3) {
+  index = index|0;
+  a1=a1|0; a2=a2|0; a3=a3|0;
+  FUNCTION_TABLE_viii[index&127](a1|0,a2|0,a3|0);
+}
+
+
+function dynCall_viiii(index,a1,a2,a3,a4) {
+  index = index|0;
+  a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0;
+  FUNCTION_TABLE_viiii[index&63](a1|0,a2|0,a3|0,a4|0);
+}
+
+
+function dynCall_viiiii(index,a1,a2,a3,a4,a5) {
+  index = index|0;
+  a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0;
+  FUNCTION_TABLE_viiiii[index&127](a1|0,a2|0,a3|0,a4|0,a5|0);
+}
+
+
+function dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6) {
+  index = index|0;
+  a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0;
+  FUNCTION_TABLE_viiiiii[index&63](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0);
+}
+
+function b0(p0) {
+ p0 = p0|0; nullFunc_ii(0);return 0;
+}
+function b1(p0,p1) {
+ p0 = p0|0;p1 = p1|0; nullFunc_iii(1);return 0;
+}
+function b2(p0,p1,p2) {
+ p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_iiii(2);return 0;
+}
+function b3(p0,p1,p2,p3) {
+ p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_iiiii(3);return 0;
+}
+function b4() {
+ ; nullFunc_v(4);
+}
+function b5(p0) {
+ p0 = p0|0; nullFunc_vi(5);
+}
+function b6(p0,p1) {
+ p0 = p0|0;p1 = p1|0; nullFunc_vii(6);
+}
+function b7(p0,p1,p2) {
+ p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_viii(7);
+}
+function b8(p0,p1,p2,p3) {
+ p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_viiii(8);
+}
+function b9(p0,p1,p2,p3,p4) {
+ p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; nullFunc_viiiii(9);
+}
+function b10(p0,p1,p2,p3,p4,p5) {
+ p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; 
nullFunc_viiiiii(10);
+}
+
+// EMSCRIPTEN_END_FUNCS
+var FUNCTION_TABLE_ii = 
[b0,b0,b0,b0,b0,b0,b0,b0,_rmd160_read,b0,_rsa_check_secret_key,b0,b0,b0,b0,_rsa_get_nbits,b0,b0,b0,b0,_sha1_read,b0,b0,b0,_sha256_read,b0,b0,b0,b0
+,_sha512_read,b0,b0,b0,b0,b0,b0,_ecc_check_secret_key,b0,b0,b0,b0,_ecc_get_nbits,b0,b0,b0,__gcry_ecc_get_param_sexp,b0,b0,b0,___stdio_close,b0,b0,b0,b0,_w_malloc,_w_check,b0,b0,b0
+,b0,b0,b0,b0,b0];
+var FUNCTION_TABLE_iii = 
[b1,b1,b1,b1,b1,b1,b1,b1,b1,_rsa_generate,b1,b1,b1,b1,b1,b1,b1,_compute_keygrip,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1
+,b1,b1,b1,b1,b1,b1,_ecc_generate,b1,b1,b1,b1,b1,b1,b1,_compute_keygrip_1815,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,_realloc,b1,b1
+,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,_pss_verify_cmp,b1,b1,b1,b1,b1,_check_exponent,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1
+,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1
+,b1,b1,b1,b1,b1,b1,b1,b1,b1];
+var FUNCTION_TABLE_iiii = 
[b2,_rijndael_setkey,_rijndael_encrypt,_rijndael_decrypt,_run_selftests,b2,b2,b2,b2,b2,b2,_rsa_encrypt,_rsa_decrypt,_rsa_sign,_rsa_verify,b2,_run_selftests_1209,b2,b2,b2,b2,_run_selftests_1309,b2,b2,b2,_run_selftests_1332,b2,b2,b2
+,b2,_run_selftests_1355,b2,_twofish_setkey,_twofish_encrypt,_twofish_decrypt,b2,b2,_ecc_encrypt_raw,_ecc_decrypt_raw,_ecc_sign,_ecc_verify,b2,_run_selftests_1814,b2,__gcry_ecc_get_curve,b2,b2,_poly1305_blocks_ref32,b2,b2,___stdout_write,___stdio_seek,___stdio_write,_sn_write,b2,b2,b2,b2,__gcry_log_info_with_dummy_fp
+,_fprintf,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,_do_encrypt,_do_decrypt,b2,b2,_transform,b2,_transform_1319,_transform_1345,_transform_1368,b2,b2,b2,b2,b2,b2,b2,b2
+,___stdio_read,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2
+,b2,b2,b2,b2,b2,b2,b2,b2,b2];
+var FUNCTION_TABLE_iiiii = 
[b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3
+,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,_poly1305_finish_ext_ref32,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3
+,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,_ghash_internal,__gcry_rndlinux_gather_random,b3,b3,b3,b3,b3
+,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3
+,b3,b3,b3,b3,b3,b3,b3,b3,b3];
+var FUNCTION_TABLE_v = 
[b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4
+,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4
+,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,_prefetch_enc,_prefetch_dec,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,_do_deinit,b4
+,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4
+,b4,b4,b4,b4,b4,b4,b4,b4,b4];
+var FUNCTION_TABLE_vi = 
[b5,b5,b5,b5,b5,b5,b5,_rmd160_final,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,_sha1_final,b5,b5,b5,_sha256_final,b5,b5,b5,b5,_sha512_final
+,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,_free,b5
+,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,_ec_deinit,b5,b5,b5,b5,b5,b5,b5
+,b5,_do_setxid,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5
+,b5,b5,b5,b5,b5,b5,b5,b5,b5];
+var FUNCTION_TABLE_vii = 
[b6,b6,b6,b6,b6,_rmd160_init,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,_sha1_init,b6,b6,b6,_sha224_init,b6,b6,b6,_sha256_init,_sha512_init,b6
+,b6,b6,_sha384_init,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,_poly1305_init_ext_ref32,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6
+,b6,b6,b6,b6,b6];
+var FUNCTION_TABLE_viii = 
[b7,b7,b7,b7,b7,b7,__gcry_md_block_write,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7
+,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7
+,b7,b7,b7,b7,b7,b7,b7,b7,__gcry_aes_ocb_auth,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,_add_randomness,_entropy_collect_cb,_read_cb,b7,_fatal_error_handler_2503
+,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7
+,b7,b7,b7,b7,b7,b7,b7,b7,b7];
+var FUNCTION_TABLE_viiii = 
[b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8
+,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8
+,b8,_reporter,b8,b8,b8];
+var FUNCTION_TABLE_viiiii = 
[b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9
+,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9
+,b9,b9,__gcry_aes_cfb_enc,__gcry_aes_cfb_dec,b9,__gcry_aes_cbc_dec,__gcry_aes_ctr_enc,__gcry_aes_ocb_crypt,b9,__gcry_twofish_cbc_dec,__gcry_twofish_cfb_dec,__gcry_twofish_ctr_enc,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9
+,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9
+,b9,b9,b9,b9,b9,b9,b9,b9,b9];
+var FUNCTION_TABLE_viiiiii = 
[b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10
+,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10
+,b10,b10,b10,b10,__gcry_aes_cbc_enc];
+
+  return { _GNUNET_CRYPTO_ecc_ecdh: _GNUNET_CRYPTO_ecc_ecdh, 
_GNUNET_CRYPTO_ecdh_eddsa: _GNUNET_CRYPTO_ecdh_eddsa, 
_GNUNET_CRYPTO_ecdhe_key_create: _GNUNET_CRYPTO_ecdhe_key_create, 
_GNUNET_CRYPTO_ecdhe_key_get_public: _GNUNET_CRYPTO_ecdhe_key_get_public, 
_GNUNET_CRYPTO_ecdsa_key_create: _GNUNET_CRYPTO_ecdsa_key_create, 
_GNUNET_CRYPTO_eddsa_key_create: _GNUNET_CRYPTO_eddsa_key_create, 
_GNUNET_CRYPTO_eddsa_key_get_public: _GNUNET_CRYPTO_eddsa_key_get_public, 
_GNUNET_CRYPTO_eddsa_sign: _GNU [...]
+})
 // EMSCRIPTEN_END_ASM
-(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var 
real__bitshift64Lshr=asm["_bitshift64Lshr"];asm["_bitshift64Lshr"]=(function(){assert(runtimeInitialized,"you
 need to wait for the runtime to be ready (e.g. wait for main() to be 
called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to 
keep it alive after main() exits)");return 
real__bitshift64Lshr.apply(null,arguments)});var 
real__bitshift64Ashr=asm["_bitshift64Ashr"];asm["_bitshift64Ashr"]=(function(){assert(r
 [...]
+(Module.asmGlobalArg, Module.asmLibraryArg, buffer);
+
+var real__GNUNET_CRYPTO_ecc_ecdh = asm["_GNUNET_CRYPTO_ecc_ecdh"]; 
asm["_GNUNET_CRYPTO_ecc_ecdh"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_ecc_ecdh.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_ecdh_eddsa = asm["_GNUNET_CRYPTO_ecdh_eddsa"]; 
asm["_GNUNET_CRYPTO_ecdh_eddsa"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_ecdh_eddsa.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_ecdhe_key_create = 
asm["_GNUNET_CRYPTO_ecdhe_key_create"]; asm["_GNUNET_CRYPTO_ecdhe_key_create"] 
= function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_ecdhe_key_create.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_ecdhe_key_get_public = 
asm["_GNUNET_CRYPTO_ecdhe_key_get_public"]; 
asm["_GNUNET_CRYPTO_ecdhe_key_get_public"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_ecdhe_key_get_public.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_ecdsa_key_create = 
asm["_GNUNET_CRYPTO_ecdsa_key_create"]; asm["_GNUNET_CRYPTO_ecdsa_key_create"] 
= function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_ecdsa_key_create.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_eddsa_key_create = 
asm["_GNUNET_CRYPTO_eddsa_key_create"]; asm["_GNUNET_CRYPTO_eddsa_key_create"] 
= function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_eddsa_key_create.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_eddsa_key_get_public = 
asm["_GNUNET_CRYPTO_eddsa_key_get_public"]; 
asm["_GNUNET_CRYPTO_eddsa_key_get_public"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_eddsa_key_get_public.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_eddsa_sign = asm["_GNUNET_CRYPTO_eddsa_sign"]; 
asm["_GNUNET_CRYPTO_eddsa_sign"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_eddsa_sign.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_eddsa_verify = asm["_GNUNET_CRYPTO_eddsa_verify"]; 
asm["_GNUNET_CRYPTO_eddsa_verify"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_eddsa_verify.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_hash = asm["_GNUNET_CRYPTO_hash"]; 
asm["_GNUNET_CRYPTO_hash"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_hash.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_hash_context_abort = 
asm["_GNUNET_CRYPTO_hash_context_abort"]; 
asm["_GNUNET_CRYPTO_hash_context_abort"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_hash_context_abort.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_hash_context_finish = 
asm["_GNUNET_CRYPTO_hash_context_finish"]; 
asm["_GNUNET_CRYPTO_hash_context_finish"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_hash_context_finish.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_hash_context_read = 
asm["_GNUNET_CRYPTO_hash_context_read"]; 
asm["_GNUNET_CRYPTO_hash_context_read"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_hash_context_read.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_hash_context_start = 
asm["_GNUNET_CRYPTO_hash_context_start"]; 
asm["_GNUNET_CRYPTO_hash_context_start"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_hash_context_start.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_hash_create_random = 
asm["_GNUNET_CRYPTO_hash_create_random"]; 
asm["_GNUNET_CRYPTO_hash_create_random"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_hash_create_random.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_hkdf = asm["_GNUNET_CRYPTO_hkdf"]; 
asm["_GNUNET_CRYPTO_hkdf"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_hkdf.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_kdf = asm["_GNUNET_CRYPTO_kdf"]; 
asm["_GNUNET_CRYPTO_kdf"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_kdf.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_random_block = asm["_GNUNET_CRYPTO_random_block"]; 
asm["_GNUNET_CRYPTO_random_block"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_random_block.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_random_init = asm["_GNUNET_CRYPTO_random_init"]; 
asm["_GNUNET_CRYPTO_random_init"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_random_init.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_rsa_blind = asm["_GNUNET_CRYPTO_rsa_blind"]; 
asm["_GNUNET_CRYPTO_rsa_blind"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_rsa_blind.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_rsa_private_key_create = 
asm["_GNUNET_CRYPTO_rsa_private_key_create"]; 
asm["_GNUNET_CRYPTO_rsa_private_key_create"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_rsa_private_key_create.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_rsa_private_key_decode = 
asm["_GNUNET_CRYPTO_rsa_private_key_decode"]; 
asm["_GNUNET_CRYPTO_rsa_private_key_decode"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_rsa_private_key_decode.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_rsa_private_key_encode = 
asm["_GNUNET_CRYPTO_rsa_private_key_encode"]; 
asm["_GNUNET_CRYPTO_rsa_private_key_encode"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_rsa_private_key_encode.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_rsa_private_key_free = 
asm["_GNUNET_CRYPTO_rsa_private_key_free"]; 
asm["_GNUNET_CRYPTO_rsa_private_key_free"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_rsa_private_key_free.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_rsa_private_key_get_public = 
asm["_GNUNET_CRYPTO_rsa_private_key_get_public"]; 
asm["_GNUNET_CRYPTO_rsa_private_key_get_public"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_rsa_private_key_get_public.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_rsa_public_key_decode = 
asm["_GNUNET_CRYPTO_rsa_public_key_decode"]; 
asm["_GNUNET_CRYPTO_rsa_public_key_decode"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_rsa_public_key_decode.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_rsa_public_key_encode = 
asm["_GNUNET_CRYPTO_rsa_public_key_encode"]; 
asm["_GNUNET_CRYPTO_rsa_public_key_encode"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_rsa_public_key_encode.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_rsa_public_key_free = 
asm["_GNUNET_CRYPTO_rsa_public_key_free"]; 
asm["_GNUNET_CRYPTO_rsa_public_key_free"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_rsa_public_key_free.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_rsa_signature_decode = 
asm["_GNUNET_CRYPTO_rsa_signature_decode"]; 
asm["_GNUNET_CRYPTO_rsa_signature_decode"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_rsa_signature_decode.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_rsa_signature_encode = 
asm["_GNUNET_CRYPTO_rsa_signature_encode"]; 
asm["_GNUNET_CRYPTO_rsa_signature_encode"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_rsa_signature_encode.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_rsa_signature_free = 
asm["_GNUNET_CRYPTO_rsa_signature_free"]; 
asm["_GNUNET_CRYPTO_rsa_signature_free"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_rsa_signature_free.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_rsa_unblind = asm["_GNUNET_CRYPTO_rsa_unblind"]; 
asm["_GNUNET_CRYPTO_rsa_unblind"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_rsa_unblind.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_rsa_verify = asm["_GNUNET_CRYPTO_rsa_verify"]; 
asm["_GNUNET_CRYPTO_rsa_verify"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_rsa_verify.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_symmetric_decrypt = 
asm["_GNUNET_CRYPTO_symmetric_decrypt"]; 
asm["_GNUNET_CRYPTO_symmetric_decrypt"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_symmetric_decrypt.apply(null, arguments);
+};
+
+var real__GNUNET_CRYPTO_symmetric_encrypt = 
asm["_GNUNET_CRYPTO_symmetric_encrypt"]; 
asm["_GNUNET_CRYPTO_symmetric_encrypt"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_CRYPTO_symmetric_encrypt.apply(null, arguments);
+};
+
+var real__GNUNET_STRINGS_data_to_string_alloc = 
asm["_GNUNET_STRINGS_data_to_string_alloc"]; 
asm["_GNUNET_STRINGS_data_to_string_alloc"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_STRINGS_data_to_string_alloc.apply(null, arguments);
+};
+
+var real__GNUNET_STRINGS_string_to_data = 
asm["_GNUNET_STRINGS_string_to_data"]; asm["_GNUNET_STRINGS_string_to_data"] = 
function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_STRINGS_string_to_data.apply(null, arguments);
+};
+
+var real__GNUNET_util_cl_init = asm["_GNUNET_util_cl_init"]; 
asm["_GNUNET_util_cl_init"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__GNUNET_util_cl_init.apply(null, arguments);
+};
+
+var real__TALER_WRALL_ecdhe_public_key_from_private = 
asm["_TALER_WRALL_ecdhe_public_key_from_private"]; 
asm["_TALER_WRALL_ecdhe_public_key_from_private"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__TALER_WRALL_ecdhe_public_key_from_private.apply(null, 
arguments);
+};
+
+var real__TALER_WRALL_ecdsa_public_key_from_private = 
asm["_TALER_WRALL_ecdsa_public_key_from_private"]; 
asm["_TALER_WRALL_ecdsa_public_key_from_private"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__TALER_WRALL_ecdsa_public_key_from_private.apply(null, 
arguments);
+};
+
+var real__TALER_WRALL_eddsa_public_key_from_private = 
asm["_TALER_WRALL_eddsa_public_key_from_private"]; 
asm["_TALER_WRALL_eddsa_public_key_from_private"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__TALER_WRALL_eddsa_public_key_from_private.apply(null, 
arguments);
+};
+
+var real__TALER_WRALL_get_amount = asm["_TALER_WRALL_get_amount"]; 
asm["_TALER_WRALL_get_amount"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__TALER_WRALL_get_amount.apply(null, arguments);
+};
+
+var real__TALER_WRALL_purpose_create = asm["_TALER_WRALL_purpose_create"]; 
asm["_TALER_WRALL_purpose_create"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__TALER_WRALL_purpose_create.apply(null, arguments);
+};
+
+var real__TALER_WR_get_currency = asm["_TALER_WR_get_currency"]; 
asm["_TALER_WR_get_currency"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__TALER_WR_get_currency.apply(null, arguments);
+};
+
+var real__TALER_WR_get_fraction = asm["_TALER_WR_get_fraction"]; 
asm["_TALER_WR_get_fraction"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__TALER_WR_get_fraction.apply(null, arguments);
+};
+
+var real__TALER_WR_get_value = asm["_TALER_WR_get_value"]; 
asm["_TALER_WR_get_value"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__TALER_WR_get_value.apply(null, arguments);
+};
+
+var real__TALER_amount_add = asm["_TALER_amount_add"]; 
asm["_TALER_amount_add"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__TALER_amount_add.apply(null, arguments);
+};
+
+var real__TALER_amount_cmp = asm["_TALER_amount_cmp"]; 
asm["_TALER_amount_cmp"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__TALER_amount_cmp.apply(null, arguments);
+};
+
+var real__TALER_amount_get_zero = asm["_TALER_amount_get_zero"]; 
asm["_TALER_amount_get_zero"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__TALER_amount_get_zero.apply(null, arguments);
+};
+
+var real__TALER_amount_hton = asm["_TALER_amount_hton"]; 
asm["_TALER_amount_hton"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__TALER_amount_hton.apply(null, arguments);
+};
+
+var real__TALER_amount_normalize = asm["_TALER_amount_normalize"]; 
asm["_TALER_amount_normalize"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__TALER_amount_normalize.apply(null, arguments);
+};
+
+var real__TALER_amount_ntoh = asm["_TALER_amount_ntoh"]; 
asm["_TALER_amount_ntoh"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__TALER_amount_ntoh.apply(null, arguments);
+};
+
+var real__TALER_amount_subtract = asm["_TALER_amount_subtract"]; 
asm["_TALER_amount_subtract"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__TALER_amount_subtract.apply(null, arguments);
+};
+
+var real__TALER_gcrypt_init = asm["_TALER_gcrypt_init"]; 
asm["_TALER_gcrypt_init"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__TALER_gcrypt_init.apply(null, arguments);
+};
+
+var real__TALER_setup_fresh_coin = asm["_TALER_setup_fresh_coin"]; 
asm["_TALER_setup_fresh_coin"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__TALER_setup_fresh_coin.apply(null, arguments);
+};
+
+var real____divdi3 = asm["___divdi3"]; asm["___divdi3"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real____divdi3.apply(null, arguments);
+};
+
+var real____emscripten_environ_constructor = 
asm["___emscripten_environ_constructor"]; 
asm["___emscripten_environ_constructor"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real____emscripten_environ_constructor.apply(null, arguments);
+};
+
+var real____errno_location = asm["___errno_location"]; 
asm["___errno_location"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real____errno_location.apply(null, arguments);
+};
+
+var real____muldi3 = asm["___muldi3"]; asm["___muldi3"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real____muldi3.apply(null, arguments);
+};
+
+var real____udivdi3 = asm["___udivdi3"]; asm["___udivdi3"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real____udivdi3.apply(null, arguments);
+};
+
+var real____uremdi3 = asm["___uremdi3"]; asm["___uremdi3"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real____uremdi3.apply(null, arguments);
+};
+
+var real___get_daylight = asm["__get_daylight"]; asm["__get_daylight"] = 
function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real___get_daylight.apply(null, arguments);
+};
+
+var real___get_environ = asm["__get_environ"]; asm["__get_environ"] = 
function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real___get_environ.apply(null, arguments);
+};
+
+var real___get_timezone = asm["__get_timezone"]; asm["__get_timezone"] = 
function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real___get_timezone.apply(null, arguments);
+};
+
+var real___get_tzname = asm["__get_tzname"]; asm["__get_tzname"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real___get_tzname.apply(null, arguments);
+};
+
+var real__bitshift64Ashr = asm["_bitshift64Ashr"]; asm["_bitshift64Ashr"] = 
function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__bitshift64Ashr.apply(null, arguments);
+};
+
+var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = 
function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__bitshift64Lshr.apply(null, arguments);
+};
+
+var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = 
function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__bitshift64Shl.apply(null, arguments);
+};
+
+var real__fflush = asm["_fflush"]; asm["_fflush"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__fflush.apply(null, arguments);
+};
+
+var real__free = asm["_free"]; asm["_free"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__free.apply(null, arguments);
+};
+
+var real__gpg_err_init = asm["_gpg_err_init"]; asm["_gpg_err_init"] = 
function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__gpg_err_init.apply(null, arguments);
+};
+
+var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__i64Add.apply(null, arguments);
+};
+
+var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__i64Subtract.apply(null, arguments);
+};
+
+var real__llvm_bswap_i32 = asm["_llvm_bswap_i32"]; asm["_llvm_bswap_i32"] = 
function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__llvm_bswap_i32.apply(null, arguments);
+};
+
+var real__llvm_cttz_i32 = asm["_llvm_cttz_i32"]; asm["_llvm_cttz_i32"] = 
function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__llvm_cttz_i32.apply(null, arguments);
+};
+
+var real__malloc = asm["_malloc"]; asm["_malloc"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__malloc.apply(null, arguments);
+};
+
+var real__memalign = asm["_memalign"]; asm["_memalign"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__memalign.apply(null, arguments);
+};
+
+var real__memmove = asm["_memmove"]; asm["_memmove"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__memmove.apply(null, arguments);
+};
+
+var real__pthread_mutex_lock = asm["_pthread_mutex_lock"]; 
asm["_pthread_mutex_lock"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__pthread_mutex_lock.apply(null, arguments);
+};
+
+var real__pthread_mutex_unlock = asm["_pthread_mutex_unlock"]; 
asm["_pthread_mutex_unlock"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__pthread_mutex_unlock.apply(null, arguments);
+};
+
+var real__sbrk = asm["_sbrk"]; asm["_sbrk"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real__sbrk.apply(null, arguments);
+};
+
+var real_establishStackSpace = asm["establishStackSpace"]; 
asm["establishStackSpace"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real_establishStackSpace.apply(null, arguments);
+};
+
+var real_getTempRet0 = asm["getTempRet0"]; asm["getTempRet0"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real_getTempRet0.apply(null, arguments);
+};
+
+var real_setTempRet0 = asm["setTempRet0"]; asm["setTempRet0"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real_setTempRet0.apply(null, arguments);
+};
+
+var real_setThrew = asm["setThrew"]; asm["setThrew"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real_setThrew.apply(null, arguments);
+};
+
+var real_stackAlloc = asm["stackAlloc"]; asm["stackAlloc"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real_stackAlloc.apply(null, arguments);
+};
+
+var real_stackRestore = asm["stackRestore"]; asm["stackRestore"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real_stackRestore.apply(null, arguments);
+};
+
+var real_stackSave = asm["stackSave"]; asm["stackSave"] = function() {
+  assert(runtimeInitialized, 'you need to wait for the runtime to be ready 
(e.g. wait for main() to be called)');
+  assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep 
it alive after main() exits)');
+  return real_stackSave.apply(null, arguments);
+};
+var _GNUNET_CRYPTO_ecc_ecdh = Module["_GNUNET_CRYPTO_ecc_ecdh"] = 
asm["_GNUNET_CRYPTO_ecc_ecdh"];
+var _GNUNET_CRYPTO_ecdh_eddsa = Module["_GNUNET_CRYPTO_ecdh_eddsa"] = 
asm["_GNUNET_CRYPTO_ecdh_eddsa"];
+var _GNUNET_CRYPTO_ecdhe_key_create = 
Module["_GNUNET_CRYPTO_ecdhe_key_create"] = 
asm["_GNUNET_CRYPTO_ecdhe_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_CRYPTO_ecdsa_key_create = 
Module["_GNUNET_CRYPTO_ecdsa_key_create"] = 
asm["_GNUNET_CRYPTO_ecdsa_key_create"];
+var _GNUNET_CRYPTO_eddsa_key_create = 
Module["_GNUNET_CRYPTO_eddsa_key_create"] = 
asm["_GNUNET_CRYPTO_eddsa_key_create"];
+var _GNUNET_CRYPTO_eddsa_key_get_public = 
Module["_GNUNET_CRYPTO_eddsa_key_get_public"] = 
asm["_GNUNET_CRYPTO_eddsa_key_get_public"];
+var _GNUNET_CRYPTO_eddsa_sign = Module["_GNUNET_CRYPTO_eddsa_sign"] = 
asm["_GNUNET_CRYPTO_eddsa_sign"];
+var _GNUNET_CRYPTO_eddsa_verify = Module["_GNUNET_CRYPTO_eddsa_verify"] = 
asm["_GNUNET_CRYPTO_eddsa_verify"];
+var _GNUNET_CRYPTO_hash = Module["_GNUNET_CRYPTO_hash"] = 
asm["_GNUNET_CRYPTO_hash"];
+var _GNUNET_CRYPTO_hash_context_abort = 
Module["_GNUNET_CRYPTO_hash_context_abort"] = 
asm["_GNUNET_CRYPTO_hash_context_abort"];
+var _GNUNET_CRYPTO_hash_context_finish = 
Module["_GNUNET_CRYPTO_hash_context_finish"] = 
asm["_GNUNET_CRYPTO_hash_context_finish"];
+var _GNUNET_CRYPTO_hash_context_read = 
Module["_GNUNET_CRYPTO_hash_context_read"] = 
asm["_GNUNET_CRYPTO_hash_context_read"];
+var _GNUNET_CRYPTO_hash_context_start = 
Module["_GNUNET_CRYPTO_hash_context_start"] = 
asm["_GNUNET_CRYPTO_hash_context_start"];
+var _GNUNET_CRYPTO_hash_create_random = 
Module["_GNUNET_CRYPTO_hash_create_random"] = 
asm["_GNUNET_CRYPTO_hash_create_random"];
+var _GNUNET_CRYPTO_hkdf = Module["_GNUNET_CRYPTO_hkdf"] = 
asm["_GNUNET_CRYPTO_hkdf"];
+var _GNUNET_CRYPTO_kdf = Module["_GNUNET_CRYPTO_kdf"] = 
asm["_GNUNET_CRYPTO_kdf"];
+var _GNUNET_CRYPTO_random_block = Module["_GNUNET_CRYPTO_random_block"] = 
asm["_GNUNET_CRYPTO_random_block"];
+var _GNUNET_CRYPTO_random_init = Module["_GNUNET_CRYPTO_random_init"] = 
asm["_GNUNET_CRYPTO_random_init"];
+var _GNUNET_CRYPTO_rsa_blind = Module["_GNUNET_CRYPTO_rsa_blind"] = 
asm["_GNUNET_CRYPTO_rsa_blind"];
+var _GNUNET_CRYPTO_rsa_private_key_create = 
Module["_GNUNET_CRYPTO_rsa_private_key_create"] = 
asm["_GNUNET_CRYPTO_rsa_private_key_create"];
+var _GNUNET_CRYPTO_rsa_private_key_decode = 
Module["_GNUNET_CRYPTO_rsa_private_key_decode"] = 
asm["_GNUNET_CRYPTO_rsa_private_key_decode"];
+var _GNUNET_CRYPTO_rsa_private_key_encode = 
Module["_GNUNET_CRYPTO_rsa_private_key_encode"] = 
asm["_GNUNET_CRYPTO_rsa_private_key_encode"];
+var _GNUNET_CRYPTO_rsa_private_key_free = 
Module["_GNUNET_CRYPTO_rsa_private_key_free"] = 
asm["_GNUNET_CRYPTO_rsa_private_key_free"];
+var _GNUNET_CRYPTO_rsa_private_key_get_public = 
Module["_GNUNET_CRYPTO_rsa_private_key_get_public"] = 
asm["_GNUNET_CRYPTO_rsa_private_key_get_public"];
+var _GNUNET_CRYPTO_rsa_public_key_decode = 
Module["_GNUNET_CRYPTO_rsa_public_key_decode"] = 
asm["_GNUNET_CRYPTO_rsa_public_key_decode"];
+var _GNUNET_CRYPTO_rsa_public_key_encode = 
Module["_GNUNET_CRYPTO_rsa_public_key_encode"] = 
asm["_GNUNET_CRYPTO_rsa_public_key_encode"];
+var _GNUNET_CRYPTO_rsa_public_key_free = 
Module["_GNUNET_CRYPTO_rsa_public_key_free"] = 
asm["_GNUNET_CRYPTO_rsa_public_key_free"];
+var _GNUNET_CRYPTO_rsa_signature_decode = 
Module["_GNUNET_CRYPTO_rsa_signature_decode"] = 
asm["_GNUNET_CRYPTO_rsa_signature_decode"];
+var _GNUNET_CRYPTO_rsa_signature_encode = 
Module["_GNUNET_CRYPTO_rsa_signature_encode"] = 
asm["_GNUNET_CRYPTO_rsa_signature_encode"];
+var _GNUNET_CRYPTO_rsa_signature_free = 
Module["_GNUNET_CRYPTO_rsa_signature_free"] = 
asm["_GNUNET_CRYPTO_rsa_signature_free"];
+var _GNUNET_CRYPTO_rsa_unblind = Module["_GNUNET_CRYPTO_rsa_unblind"] = 
asm["_GNUNET_CRYPTO_rsa_unblind"];
+var _GNUNET_CRYPTO_rsa_verify = Module["_GNUNET_CRYPTO_rsa_verify"] = 
asm["_GNUNET_CRYPTO_rsa_verify"];
+var _GNUNET_CRYPTO_symmetric_decrypt = 
Module["_GNUNET_CRYPTO_symmetric_decrypt"] = 
asm["_GNUNET_CRYPTO_symmetric_decrypt"];
+var _GNUNET_CRYPTO_symmetric_encrypt = 
Module["_GNUNET_CRYPTO_symmetric_encrypt"] = 
asm["_GNUNET_CRYPTO_symmetric_encrypt"];
+var _GNUNET_STRINGS_data_to_string_alloc = 
Module["_GNUNET_STRINGS_data_to_string_alloc"] = 
asm["_GNUNET_STRINGS_data_to_string_alloc"];
+var _GNUNET_STRINGS_string_to_data = Module["_GNUNET_STRINGS_string_to_data"] 
= asm["_GNUNET_STRINGS_string_to_data"];
+var _GNUNET_util_cl_init = Module["_GNUNET_util_cl_init"] = 
asm["_GNUNET_util_cl_init"];
+var _TALER_WRALL_ecdhe_public_key_from_private = 
Module["_TALER_WRALL_ecdhe_public_key_from_private"] = 
asm["_TALER_WRALL_ecdhe_public_key_from_private"];
+var _TALER_WRALL_ecdsa_public_key_from_private = 
Module["_TALER_WRALL_ecdsa_public_key_from_private"] = 
asm["_TALER_WRALL_ecdsa_public_key_from_private"];
+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 _TALER_WRALL_get_amount = Module["_TALER_WRALL_get_amount"] = 
asm["_TALER_WRALL_get_amount"];
+var _TALER_WRALL_purpose_create = Module["_TALER_WRALL_purpose_create"] = 
asm["_TALER_WRALL_purpose_create"];
+var _TALER_WR_get_currency = Module["_TALER_WR_get_currency"] = 
asm["_TALER_WR_get_currency"];
+var _TALER_WR_get_fraction = Module["_TALER_WR_get_fraction"] = 
asm["_TALER_WR_get_fraction"];
+var _TALER_WR_get_value = Module["_TALER_WR_get_value"] = 
asm["_TALER_WR_get_value"];
+var _TALER_amount_add = Module["_TALER_amount_add"] = asm["_TALER_amount_add"];
+var _TALER_amount_cmp = Module["_TALER_amount_cmp"] = asm["_TALER_amount_cmp"];
+var _TALER_amount_get_zero = Module["_TALER_amount_get_zero"] = 
asm["_TALER_amount_get_zero"];
+var _TALER_amount_hton = Module["_TALER_amount_hton"] = 
asm["_TALER_amount_hton"];
+var _TALER_amount_normalize = Module["_TALER_amount_normalize"] = 
asm["_TALER_amount_normalize"];
+var _TALER_amount_ntoh = Module["_TALER_amount_ntoh"] = 
asm["_TALER_amount_ntoh"];
+var _TALER_amount_subtract = Module["_TALER_amount_subtract"] = 
asm["_TALER_amount_subtract"];
+var _TALER_gcrypt_init = Module["_TALER_gcrypt_init"] = 
asm["_TALER_gcrypt_init"];
+var _TALER_setup_fresh_coin = Module["_TALER_setup_fresh_coin"] = 
asm["_TALER_setup_fresh_coin"];
+var ___divdi3 = Module["___divdi3"] = asm["___divdi3"];
+var ___emscripten_environ_constructor = 
Module["___emscripten_environ_constructor"] = 
asm["___emscripten_environ_constructor"];
+var ___errno_location = Module["___errno_location"] = asm["___errno_location"];
+var ___muldi3 = Module["___muldi3"] = asm["___muldi3"];
+var ___udivdi3 = Module["___udivdi3"] = asm["___udivdi3"];
+var ___uremdi3 = Module["___uremdi3"] = asm["___uremdi3"];
+var __get_daylight = Module["__get_daylight"] = asm["__get_daylight"];
+var __get_environ = Module["__get_environ"] = asm["__get_environ"];
+var __get_timezone = Module["__get_timezone"] = asm["__get_timezone"];
+var __get_tzname = Module["__get_tzname"] = asm["__get_tzname"];
+var _bitshift64Ashr = Module["_bitshift64Ashr"] = asm["_bitshift64Ashr"];
+var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"];
+var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"];
+var _fflush = Module["_fflush"] = asm["_fflush"];
+var _free = Module["_free"] = asm["_free"];
+var _gpg_err_init = Module["_gpg_err_init"] = asm["_gpg_err_init"];
+var _i64Add = Module["_i64Add"] = asm["_i64Add"];
+var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"];
+var _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = asm["_llvm_bswap_i32"];
+var _llvm_cttz_i32 = Module["_llvm_cttz_i32"] = asm["_llvm_cttz_i32"];
+var _malloc = Module["_malloc"] = asm["_malloc"];
+var _memalign = Module["_memalign"] = asm["_memalign"];
+var _memcpy = Module["_memcpy"] = asm["_memcpy"];
+var _memmove = Module["_memmove"] = asm["_memmove"];
+var _memset = Module["_memset"] = asm["_memset"];
+var _pthread_mutex_lock = Module["_pthread_mutex_lock"] = 
asm["_pthread_mutex_lock"];
+var _pthread_mutex_unlock = Module["_pthread_mutex_unlock"] = 
asm["_pthread_mutex_unlock"];
+var _sbrk = Module["_sbrk"] = asm["_sbrk"];
+var establishStackSpace = Module["establishStackSpace"] = 
asm["establishStackSpace"];
+var getTempRet0 = Module["getTempRet0"] = asm["getTempRet0"];
+var runPostSets = Module["runPostSets"] = asm["runPostSets"];
+var setTempRet0 = Module["setTempRet0"] = asm["setTempRet0"];
+var setThrew = Module["setThrew"] = asm["setThrew"];
+var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"];
+var stackRestore = Module["stackRestore"] = asm["stackRestore"];
+var stackSave = Module["stackSave"] = asm["stackSave"];
+var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"];
+var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"];
+var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"];
+var dynCall_iiiii = Module["dynCall_iiiii"] = asm["dynCall_iiiii"];
+var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"];
+var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"];
+var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"];
+var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"];
+var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"];
+var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"];
+var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"];
+;
+
+
+
+// === Auto-generated postamble setup entry stuff ===
+
+Module['asm'] = asm;
+
+if (!Module["intArrayFromString"]) Module["intArrayFromString"] = function() { 
abort("'intArrayFromString' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["intArrayToString"]) Module["intArrayToString"] = function() { 
abort("'intArrayToString' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+Module["ccall"] = ccall;
+Module["cwrap"] = cwrap;
+Module["setValue"] = setValue;
+Module["getValue"] = getValue;
+if (!Module["allocate"]) Module["allocate"] = function() { abort("'allocate' 
was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["getMemory"]) Module["getMemory"] = function() { 
abort("'getMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS 
(see the FAQ). Alternatively, forcing filesystem support (-s 
FORCE_FILESYSTEM=1) can export this for you") };
+Module["Pointer_stringify"] = Pointer_stringify;
+if (!Module["AsciiToString"]) Module["AsciiToString"] = function() { 
abort("'AsciiToString' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["stringToAscii"]) Module["stringToAscii"] = function() { 
abort("'stringToAscii' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["UTF8ArrayToString"]) Module["UTF8ArrayToString"] = function() { 
abort("'UTF8ArrayToString' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["UTF8ToString"]) Module["UTF8ToString"] = function() { 
abort("'UTF8ToString' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["stringToUTF8Array"]) Module["stringToUTF8Array"] = function() { 
abort("'stringToUTF8Array' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+Module["stringToUTF8"] = stringToUTF8;
+if (!Module["lengthBytesUTF8"]) Module["lengthBytesUTF8"] = function() { 
abort("'lengthBytesUTF8' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["UTF16ToString"]) Module["UTF16ToString"] = function() { 
abort("'UTF16ToString' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["stringToUTF16"]) Module["stringToUTF16"] = function() { 
abort("'stringToUTF16' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["lengthBytesUTF16"]) Module["lengthBytesUTF16"] = function() { 
abort("'lengthBytesUTF16' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["UTF32ToString"]) Module["UTF32ToString"] = function() { 
abort("'UTF32ToString' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["stringToUTF32"]) Module["stringToUTF32"] = function() { 
abort("'stringToUTF32' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["lengthBytesUTF32"]) Module["lengthBytesUTF32"] = function() { 
abort("'lengthBytesUTF32' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["allocateUTF8"]) Module["allocateUTF8"] = function() { 
abort("'allocateUTF8' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["stackTrace"]) Module["stackTrace"] = function() { 
abort("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS 
(see the FAQ)") };
+if (!Module["addOnPreRun"]) Module["addOnPreRun"] = function() { 
abort("'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS 
(see the FAQ)") };
+if (!Module["addOnInit"]) Module["addOnInit"] = function() { 
abort("'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS 
(see the FAQ)") };
+if (!Module["addOnPreMain"]) Module["addOnPreMain"] = function() { 
abort("'addOnPreMain' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["addOnExit"]) Module["addOnExit"] = function() { 
abort("'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS 
(see the FAQ)") };
+if (!Module["addOnPostRun"]) Module["addOnPostRun"] = function() { 
abort("'addOnPostRun' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["writeStringToMemory"]) Module["writeStringToMemory"] = function() 
{ abort("'writeStringToMemory' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["writeArrayToMemory"]) Module["writeArrayToMemory"] = function() { 
abort("'writeArrayToMemory' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["writeAsciiToMemory"]) Module["writeAsciiToMemory"] = function() { 
abort("'writeAsciiToMemory' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["addRunDependency"]) Module["addRunDependency"] = function() { 
abort("'addRunDependency' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem 
support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Module["removeRunDependency"]) Module["removeRunDependency"] = function() 
{ abort("'removeRunDependency' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem 
support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Module["ENV"]) Module["ENV"] = function() { abort("'ENV' was not 
exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["FS"]) Module["FS"] = function() { abort("'FS' was not exported. 
add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["FS_createFolder"]) Module["FS_createFolder"] = function() { 
abort("'FS_createFolder' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem 
support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Module["FS_createPath"]) Module["FS_createPath"] = function() { 
abort("'FS_createPath' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem 
support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Module["FS_createDataFile"]) Module["FS_createDataFile"] = function() { 
abort("'FS_createDataFile' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem 
support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Module["FS_createPreloadedFile"]) Module["FS_createPreloadedFile"] = 
function() { abort("'FS_createPreloadedFile' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem 
support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Module["FS_createLazyFile"]) Module["FS_createLazyFile"] = function() { 
abort("'FS_createLazyFile' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem 
support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Module["FS_createLink"]) Module["FS_createLink"] = function() { 
abort("'FS_createLink' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem 
support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Module["FS_createDevice"]) Module["FS_createDevice"] = function() { 
abort("'FS_createDevice' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem 
support (-s FORCE_FILESYSTEM=1) can export this for you") };
+if (!Module["FS_unlink"]) Module["FS_unlink"] = function() { 
abort("'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS 
(see the FAQ). Alternatively, forcing filesystem support (-s 
FORCE_FILESYSTEM=1) can export this for you") };
+if (!Module["GL"]) Module["GL"] = function() { abort("'GL' was not exported. 
add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["staticAlloc"]) Module["staticAlloc"] = function() { 
abort("'staticAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS 
(see the FAQ)") };
+if (!Module["dynamicAlloc"]) Module["dynamicAlloc"] = function() { 
abort("'dynamicAlloc' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["warnOnce"]) Module["warnOnce"] = function() { abort("'warnOnce' 
was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["loadDynamicLibrary"]) Module["loadDynamicLibrary"] = function() { 
abort("'loadDynamicLibrary' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["loadWebAssemblyModule"]) Module["loadWebAssemblyModule"] = 
function() { abort("'loadWebAssemblyModule' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["getLEB"]) Module["getLEB"] = function() { abort("'getLEB' was not 
exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["getFunctionTables"]) Module["getFunctionTables"] = function() { 
abort("'getFunctionTables' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["alignFunctionTables"]) Module["alignFunctionTables"] = function() 
{ abort("'alignFunctionTables' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["registerFunctions"]) Module["registerFunctions"] = function() { 
abort("'registerFunctions' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["addFunction"]) Module["addFunction"] = function() { 
abort("'addFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS 
(see the FAQ)") };
+if (!Module["removeFunction"]) Module["removeFunction"] = function() { 
abort("'removeFunction' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["getFuncWrapper"]) Module["getFuncWrapper"] = function() { 
abort("'getFuncWrapper' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["prettyPrint"]) Module["prettyPrint"] = function() { 
abort("'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS 
(see the FAQ)") };
+if (!Module["makeBigInt"]) Module["makeBigInt"] = function() { 
abort("'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS 
(see the FAQ)") };
+if (!Module["dynCall"]) Module["dynCall"] = function() { abort("'dynCall' was 
not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["getCompilerSetting"]) Module["getCompilerSetting"] = function() { 
abort("'getCompilerSetting' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["stackSave"]) Module["stackSave"] = function() { 
abort("'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS 
(see the FAQ)") };
+if (!Module["stackRestore"]) Module["stackRestore"] = function() { 
abort("'stackRestore' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["stackAlloc"]) Module["stackAlloc"] = function() { 
abort("'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS 
(see the FAQ)") };
+if (!Module["establishStackSpace"]) Module["establishStackSpace"] = function() 
{ abort("'establishStackSpace' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["print"]) Module["print"] = function() { abort("'print' was not 
exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["printErr"]) Module["printErr"] = function() { abort("'printErr' 
was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["intArrayFromBase64"]) Module["intArrayFromBase64"] = function() { 
abort("'intArrayFromBase64' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
+if (!Module["tryParseAsDataURI"]) Module["tryParseAsDataURI"] = function() { 
abort("'tryParseAsDataURI' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };if (!Module["ALLOC_NORMAL"]) 
Object.defineProperty(Module, "ALLOC_NORMAL", { get: function() { 
abort("'ALLOC_NORMAL' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
+if (!Module["ALLOC_STACK"]) Object.defineProperty(Module, "ALLOC_STACK", { 
get: function() { abort("'ALLOC_STACK' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
+if (!Module["ALLOC_STATIC"]) Object.defineProperty(Module, "ALLOC_STATIC", { 
get: function() { abort("'ALLOC_STATIC' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
+if (!Module["ALLOC_DYNAMIC"]) Object.defineProperty(Module, "ALLOC_DYNAMIC", { 
get: function() { abort("'ALLOC_DYNAMIC' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
+if (!Module["ALLOC_NONE"]) Object.defineProperty(Module, "ALLOC_NONE", { get: 
function() { abort("'ALLOC_NONE' was not exported. add it to 
EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
+
+if (memoryInitializer) {
+  if (!isDataURI(memoryInitializer)) {
+    memoryInitializer = locateFile(memoryInitializer);
+  }
+  if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) {
+    var data = Module['readBinary'](memoryInitializer);
+    HEAPU8.set(data, GLOBAL_BASE);
+  } else {
+    addRunDependency('memory initializer');
+    var applyMemoryInitializer = function(data) {
+      if (data.byteLength) data = new Uint8Array(data);
+      for (var i = 0; i < data.length; i++) {
+        assert(HEAPU8[GLOBAL_BASE + i] === 0, "area for memory initializer 
should not have been touched before it's loaded");
+      }
+      HEAPU8.set(data, GLOBAL_BASE);
+      // Delete the typed array that contains the large blob of the memory 
initializer request response so that
+      // we won't keep unnecessary memory lying around. However, keep the XHR 
object itself alive so that e.g.
+      // its .status field can still be accessed later.
+      if (Module['memoryInitializerRequest']) delete 
Module['memoryInitializerRequest'].response;
+      removeRunDependency('memory initializer');
+    }
+    function doBrowserLoad() {
+      Module['readAsync'](memoryInitializer, applyMemoryInitializer, 
function() {
+        throw 'could not load memory initializer ' + memoryInitializer;
+      });
+    }
+    var memoryInitializerBytes = tryParseAsDataURI(memoryInitializer);
+    if (memoryInitializerBytes) {
+      applyMemoryInitializer(memoryInitializerBytes.buffer);
+    } else
+    if (Module['memoryInitializerRequest']) {
+      // a network request has already been created, just use that
+      function useRequest() {
+        var request = Module['memoryInitializerRequest'];
+        var response = request.response;
+        if (request.status !== 200 && request.status !== 0) {
+          var data = tryParseAsDataURI(Module['memoryInitializerRequestURL']);
+          if (data) {
+            response = data.buffer;
+          } else {
+            // If you see this warning, the issue may be that you are using 
locateFile and defining it in JS. That
+            // means that the HTML file doesn't know about it, and when it 
tries to create the mem init request early, does it to the wrong place.
+            // Look in your browser's devtools network console to see what's 
going on.
+            console.warn('a problem seems to have happened with 
Module.memoryInitializerRequest, status: ' + request.status + ', retrying ' + 
memoryInitializer);
+            doBrowserLoad();
+            return;
+          }
+        }
+        applyMemoryInitializer(response);
+      }
+      if (Module['memoryInitializerRequest'].response) {
+        setTimeout(useRequest, 0); // it's already here; but, apply it 
asynchronously
+      } else {
+        Module['memoryInitializerRequest'].addEventListener('load', 
useRequest); // wait for it
+      }
+    } else {
+      // fetch it from the network ourselves
+      doBrowserLoad();
+    }
+  }
+}
+
+
+
+/**
+ * @constructor
+ * @extends {Error}
+ * @this {ExitStatus}
+ */
+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 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
+}
+
+
+
+
+
+/** @type {function(Array=)} */
+function run(args) {
+  args = args || Module['arguments'];
+
+  if (runDependencies > 0) {
+    return;
+  }
+
+  writeStackCookie();
+
+  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']();
+
+    assert(!Module['_main'], 'compiled without a main, but one is present. if 
you added it from JS, use Module["onRuntimeInitialized"]');
+
+    postRun();
+  }
+
+  if (Module['setStatus']) {
+    Module['setStatus']('Running...');
+    setTimeout(function() {
+      setTimeout(function() {
+        Module['setStatus']('');
+      }, 1);
+      doRun();
+    }, 1);
+  } else {
+    doRun();
+  }
+  checkStackCookie();
+}
+Module['run'] = run;
+
+function checkUnflushedContent() {
+  // Compiler settings do not allow exiting the runtime, so flushing
+  // the streams is not possible. but in ASSERTIONS mode we check
+  // if there was something to flush, and if so tell the user they
+  // should request that the runtime be exitable.
+  // Normally we would not even include flush() at all, but in ASSERTIONS
+  // builds we do so just for this check, and here we see if there is any
+  // content to flush, that is, we check if there would have been
+  // something a non-ASSERTIONS build would have not seen.
+  // How we flush the streams depends on whether we are in NO_FILESYSTEM
+  // mode (which has its own special function for this; otherwise, all
+  // the code is inside libc)
+  var print = out;
+  var printErr = err;
+  var has = false;
+  out = err = function(x) {
+    has = true;
+  }
+  try { // it doesn't matter if it fails
+    var flush = Module['_fflush'];
+    if (flush) flush(0);
+    // also flush in the JS FS layer
+    var hasFS = true;
+    if (hasFS) {
+      ['stdout', 'stderr'].forEach(function(name) {
+        var info = FS.analyzePath('/dev/' + name);
+        if (!info) return;
+        var stream = info.object;
+        var rdev = stream.rdev;
+        var tty = TTY.ttys[rdev];
+        if (tty && tty.output && tty.output.length) {
+          has = true;
+        }
+      });
+    }
+  } catch(e) {}
+  out = print;
+  err = printErr;
+  if (has) {
+    warnOnce('stdio streams had content in them that was not flushed. you 
should set NO_EXIT_RUNTIME to 0 (see the FAQ), or make sure to emit a newline 
when you printf etc.');
+  }
+}
+
+function exit(status, implicit) {
+  checkUnflushedContent();
+
+  // if this is just main exit-ing implicitly, and the status is 0, then we
+  // don't need to do anything here and can just leave. if the status is
+  // non-zero, though, then we need to report it.
+  // (we may have warned about this earlier, if a situation justifies doing so)
+  if (implicit && Module['noExitRuntime'] && status === 0) {
+    return;
+  }
+
+  if (Module['noExitRuntime']) {
+    // if exit() was called, we may warn the user if the runtime isn't 
actually being shut down
+    if (!implicit) {
+      err('exit(' + status + ') called, but NO_EXIT_RUNTIME is set, so halting 
execution but not exiting the runtime or preventing further async execution 
(build with NO_EXIT_RUNTIME=0, if you want a true shutdown)');
+    }
+  } else {
+
+    ABORT = true;
+    EXITSTATUS = status;
+    STACKTOP = initialStackTop;
+
+    exitRuntime();
+
+    if (Module['onExit']) Module['onExit'](status);
+  }
+
+  Module['quit'](status, new ExitStatus(status));
+}
+
+var abortDecorators = [];
+
+function abort(what) {
+  if (Module['onAbort']) {
+    Module['onAbort'](what);
+  }
+
+  if (what !== undefined) {
+    out(what);
+    err(what);
+    what = JSON.stringify(what)
+  } else {
+    what = '';
+  }
+
+  ABORT = true;
+  EXITSTATUS = 1;
+
+  var extra = '';
+  var output = 'abort(' + what + ') at ' + stackTrace() + extra;
+  if (abortDecorators) {
+    abortDecorators.forEach(function(decorator) {
+      output = decorator(output, what);
+    });
+  }
+  throw output;
+}
+Module['abort'] = abort;
+
+if (Module['preInit']) {
+  if (typeof Module['preInit'] == 'function') Module['preInit'] = 
[Module['preInit']];
+  while (Module['preInit'].length > 0) {
+    Module['preInit'].pop()();
+  }
+}
+
+
+Module["noExitRuntime"] = true;
+
+run();
+
+
+
+
 
+// {{MODULE_ADDITIONS}}
 
 
 
diff --git a/src/crypto/cryptoWorker.ts b/src/crypto/cryptoWorker.ts
index 7cec5f28..3e71794b 100644
--- a/src/crypto/cryptoWorker.ts
+++ b/src/crypto/cryptoWorker.ts
@@ -53,6 +53,8 @@ import {
 
 import { canonicalJson } from "../helpers";
 
+import * as emscLoader from "./emscLoader";
+
 import {
   Amount,
   EddsaPublicKey,
@@ -580,6 +582,20 @@ worker.onmessage = (msg: MessageEvent) => {
     console.error(`unknown operation: '${msg.data.operation}'`);
     return;
   }
-  const res = f(...msg.data.args);
-  worker.postMessage({result: res, id: msg.data.id});
+
+  console.log("onmessage with", msg.data.operation);
+  console.log("foo");
+
+  emscLoader.getLib().then((p) => {
+    const lib = p.lib;
+    if (!native.isInitialized()) {
+      console.log("initializing emscripten for then first time with lib");
+      native.initialize(lib);
+    }
+
+    console.log("about to execute", msg.data.operation);
+    const res = f(...msg.data.args);
+    console.log("finished executing", msg.data.operation);
+    worker.postMessage({ result: res, id: msg.data.id });
+  });
 };
diff --git a/src/crypto/emscInterface.ts b/src/crypto/emscInterface.ts
index 0662f4a7..eae8ee5c 100644
--- a/src/crypto/emscInterface.ts
+++ b/src/crypto/emscInterface.ts
@@ -28,9 +28,34 @@
  */
 import { AmountJson } from "../amounts";
 
-import { EmscFunGen, getLib } from "./emscLoader";
+import { EmscFunGen, EmscLib } from "./emscLoader";
 
-const emscLib = getLib();
+
+// Will be set only after initialization.
+let maybeEmscEnv: EmscEnvironment | undefined = undefined;
+
+export function isInitialized() {
+  return !!maybeEmscEnv;
+}
+
+
+export function initialize(lib: EmscLib) {
+  if (!lib) {
+    throw Error("library must be object");
+  }
+  if (maybeEmscEnv) {
+    throw Error("emsc lib already initialized");
+  }
+  maybeEmscEnv = new EmscEnvironment(lib);
+}
+
+
+function emsc() {
+  if (maybeEmscEnv) {
+    return maybeEmscEnv;
+  }
+  throw Error("cannot use taler emscripten before initialization");
+}
 
 
 /**
@@ -41,75 +66,131 @@ const PTR_SIZE = 4;
 
 const GNUNET_OK = 1;
 
+interface EmscFunctions {
+  amount_add(a1: number, a2: number, a3: number): number;
+  amount_cmp(a1: number, a2: number): number;
+  amount_get_zero(a1: string, a2: number): number;
+  amount_hton(a1: number, a2: number): void;
+  amount_normalize(a1: number): void;
+  amount_ntoh(a1: number, a2: number): void;
+  amount_subtract(a1: number, a2: number, a3: number): number;
+  ecdh_eddsa(a1: number, a2: number, a3: number): number;
+  eddsa_sign(a1: number, a2: number, a3: number): number;
+  eddsa_verify(a1: number, a2: number, a3: number, a4: number): number;
+  free(ptr: number): void;
+  get_currency(a: number): string;
+  get_fraction(a: number): number;
+  get_value(a: number): number;
+  hash(a1: number, a2: number, a3: number): void;
+  hash_context_abort(ctx: number): void;
+  hash_context_finish(a1: number, a2: number): void;
+  hash_context_read(a1: number, a2: number, a3: number): void;
+  hash_create_random(a1: number, a2: number): void;
+  memmove(a1: number, a2: number, a3: number): number;
+  random_block(a1: number, a2: number, a3: number): void;
+  rsa_blinding_key_free(a1: number): void;
+  rsa_public_key_free(a1: number): void;
+  rsa_signature_free(a1: number): void;
+  setup_fresh_coin(a1: number, a2: number, a3: number): void;
+  string_to_data(a1: number, a2: number, a3: number, a4: number): number;
+}
 
-/**
- * Get an emscripten-compiled function.
- */
-const getEmsc: EmscFunGen = (name: string, ret: any, argTypes: any[]) => {
-  return (...args: any[]) => {
-    return emscLib.ccall(name, ret, argTypes, args);
-  };
-};
+interface EmscAllocFunctions {
+  data_to_string_alloc(a1: number, a2: number): number;
+  ecdhe_key_create(): number;
+  ecdhe_public_key_from_private(a1: number): number;
+  ecdsa_key_create(): number;
+  ecdsa_public_key_from_private(a1: number): number;
+  eddsa_key_create(): number;
+  eddsa_public_key_from_private(a1: number): number;
+  get_amount(a1: number, a2: number, a22: number, a3: string): number;
+  hash_context_start(): number;
+  malloc(size: number): number;
+  purpose_create(a1: number, a2: number, a3: number): number;
+  rsa_blind(a1: number, a2: number, a3: number, a4: number, a5: number): 
number;
+  rsa_blinding_key_create(a1: number): number;
+  rsa_blinding_key_decode(a1: number, a2: number): number;
+  rsa_blinding_key_encode(a1: number, a2: number): number;
+  rsa_public_key_decode(a1: number, a2: number): number;
+  rsa_public_key_encode(a1: number, a2: number): number;
+  rsa_signature_encode(a1: number, a2: number): number;
+  rsa_signature_decode(a1: number, a2: number): number;
+  rsa_unblind(a1: number, a2: number, a3: number): number;
+}
 
+class EmscEnvironment {
 
-/**
- * Wrapped emscripten functions that do not allocate any memory.
- */
-const emsc = {
-  amount_add: getEmsc("TALER_amount_add", "number", ["number", "number", 
"number"]),
-  amount_cmp: getEmsc("TALER_amount_cmp", "number", ["number", "number"]),
-  amount_get_zero: getEmsc("TALER_amount_get_zero", "number", ["string", 
"number"]),
-  amount_hton: getEmsc("TALER_amount_hton", "void", ["number", "number"]),
-  amount_normalize: getEmsc("TALER_amount_normalize", "void", ["number"]),
-  amount_ntoh: getEmsc("TALER_amount_ntoh", "void", ["number", "number"]),
-  amount_subtract: getEmsc("TALER_amount_subtract", "number", ["number", 
"number", "number"]),
-  ecdh_eddsa: getEmsc("GNUNET_CRYPTO_ecdh_eddsa", "number", ["number", 
"number", "number"]),
-  eddsa_sign: getEmsc("GNUNET_CRYPTO_eddsa_sign", "number", ["number", 
"number", "number"]),
-  eddsa_verify: getEmsc("GNUNET_CRYPTO_eddsa_verify", "number", ["number", 
"number", "number", "number"]),
-  free: (ptr: number) => emscLib._free(ptr),
-  get_currency: getEmsc("TALER_WR_get_currency", "string", ["number"]),
-  get_fraction: getEmsc("TALER_WR_get_fraction", "number", ["number"]),
-  get_value: getEmsc("TALER_WR_get_value", "number", ["number"]),
-  hash: getEmsc("GNUNET_CRYPTO_hash", "void", ["number", "number", "number"]),
-  hash_context_abort: getEmsc("GNUNET_CRYPTO_hash_context_abort", "void", 
["number"]),
-  hash_context_finish: getEmsc("GNUNET_CRYPTO_hash_context_finish", "void", 
["number", "number"]),
-  hash_context_read: getEmsc("GNUNET_CRYPTO_hash_context_read", "void", 
["number", "number", "number"]),
-  hash_create_random: getEmsc("GNUNET_CRYPTO_hash_create_random", "void", 
["number", "number"]),
-  memmove: getEmsc("memmove", "number", ["number", "number", "number"]),
-  random_block: getEmsc("GNUNET_CRYPTO_random_block", "void", ["number", 
"number", "number"]),
-  rsa_blinding_key_destroy: getEmsc("GNUNET_CRYPTO_rsa_blinding_key_free", 
"void", ["number"]),
-  rsa_public_key_free: getEmsc("GNUNET_CRYPTO_rsa_public_key_free", "void", 
["number"]),
-  rsa_signature_free: getEmsc("GNUNET_CRYPTO_rsa_signature_free", "void", 
["number"]),
-  setup_fresh_coin: getEmsc( "TALER_setup_fresh_coin", "void", ["number", 
"number", "number"]),
-  string_to_data: getEmsc("GNUNET_STRINGS_string_to_data", "number", 
["number", "number", "number", "number"]),
-};
+  /**
+   * Emscripten functions that don't do any memory allocations.
+   */
+  public funcs: EmscFunctions;
 
+  /**
+   * Emscripten functions that allocate memory.
+   */
+  public allocFuncs: EmscAllocFunctions;
 
-/**
- * Emscripten functions that allocate memory.
- */
-const emscAlloc = {
-  data_to_string_alloc: getEmsc("GNUNET_STRINGS_data_to_string_alloc", 
"number", ["number", "number"]),
-  ecdhe_key_create: getEmsc("GNUNET_CRYPTO_ecdhe_key_create", "number", []),
-  ecdhe_public_key_from_private: getEmsc( 
"TALER_WRALL_ecdhe_public_key_from_private", "number", ["number"]),
-  ecdsa_key_create: getEmsc("GNUNET_CRYPTO_ecdsa_key_create", "number", []),
-  ecdsa_public_key_from_private: getEmsc( 
"TALER_WRALL_ecdsa_public_key_from_private", "number", ["number"]),
-  eddsa_key_create: getEmsc("GNUNET_CRYPTO_eddsa_key_create", "number", []),
-  eddsa_public_key_from_private: getEmsc( 
"TALER_WRALL_eddsa_public_key_from_private", "number", ["number"]),
-  get_amount: getEmsc("TALER_WRALL_get_amount", "number", ["number", "number", 
"number", "string"]),
-  hash_context_start: getEmsc("GNUNET_CRYPTO_hash_context_start", "number", 
[]),
-  malloc: (size: number) => emscLib._malloc(size),
-  purpose_create: getEmsc("TALER_WRALL_purpose_create", "number", ["number", 
"number", "number"]),
-  rsa_blind: getEmsc("GNUNET_CRYPTO_rsa_blind", "number", ["number", "number", 
"number", "number", "number"]),
-  rsa_blinding_key_create: getEmsc("GNUNET_CRYPTO_rsa_blinding_key_create", 
"number", ["number"]),
-  rsa_blinding_key_decode: getEmsc("GNUNET_CRYPTO_rsa_blinding_key_decode", 
"number", ["number", "number"]),
-  rsa_blinding_key_encode: getEmsc("GNUNET_CRYPTO_rsa_blinding_key_encode", 
"number", ["number", "number"]),
-  rsa_public_key_decode: getEmsc("GNUNET_CRYPTO_rsa_public_key_decode", 
"number", ["number", "number"]),
-  rsa_public_key_encode: getEmsc("GNUNET_CRYPTO_rsa_public_key_encode", 
"number", ["number", "number"]),
-  rsa_signature_decode: getEmsc("GNUNET_CRYPTO_rsa_signature_decode", 
"number", ["number", "number"]),
-  rsa_signature_encode: getEmsc("GNUNET_CRYPTO_rsa_signature_encode", 
"number", ["number", "number"]),
-  rsa_unblind: getEmsc("GNUNET_CRYPTO_rsa_unblind", "number", ["number", 
"number", "number"]),
-};
+  public lib: EmscLib;
+
+  constructor(lib: EmscLib) {
+    const getEmsc: EmscFunGen = (name: string, ret: any, argTypes: any[]) => {
+      return (...args: any[]) => {
+        return lib.ccall(name, ret, argTypes, args);
+      };
+    };
+    this.lib = lib;
+    this.allocFuncs = {
+      data_to_string_alloc: getEmsc("GNUNET_STRINGS_data_to_string_alloc", 
"number", ["number", "number"]),
+      ecdhe_key_create: getEmsc("GNUNET_CRYPTO_ecdhe_key_create", "number", 
[]),
+      ecdhe_public_key_from_private: getEmsc( 
"TALER_WRALL_ecdhe_public_key_from_private", "number", ["number"]),
+      ecdsa_key_create: getEmsc("GNUNET_CRYPTO_ecdsa_key_create", "number", 
[]),
+      ecdsa_public_key_from_private: getEmsc( 
"TALER_WRALL_ecdsa_public_key_from_private", "number", ["number"]),
+      eddsa_key_create: getEmsc("GNUNET_CRYPTO_eddsa_key_create", "number", 
[]),
+      eddsa_public_key_from_private: getEmsc( 
"TALER_WRALL_eddsa_public_key_from_private", "number", ["number"]),
+      get_amount: getEmsc("TALER_WRALL_get_amount", "number", ["number", 
"number", "string"]),
+      hash_context_start: getEmsc("GNUNET_CRYPTO_hash_context_start", 
"number", []),
+      malloc: (size: number) => lib._malloc(size),
+      purpose_create: getEmsc("TALER_WRALL_purpose_create", "number", 
["number", "number", "number"]),
+      rsa_blind: getEmsc("GNUNET_CRYPTO_rsa_blind", "number", ["number", 
"number", "number", "number", "number"]),
+      rsa_blinding_key_create: 
getEmsc("GNUNET_CRYPTO_rsa_blinding_key_create", "number", ["number"]),
+      rsa_blinding_key_decode: 
getEmsc("GNUNET_CRYPTO_rsa_blinding_key_decode", "number", ["number", 
"number"]),
+      rsa_blinding_key_encode: 
getEmsc("GNUNET_CRYPTO_rsa_blinding_key_encode", "number", ["number", 
"number"]),
+      rsa_public_key_decode: getEmsc("GNUNET_CRYPTO_rsa_public_key_decode", 
"number", ["number", "number"]),
+      rsa_public_key_encode: getEmsc("GNUNET_CRYPTO_rsa_public_key_encode", 
"number", ["number", "number"]),
+      rsa_signature_decode: getEmsc("GNUNET_CRYPTO_rsa_signature_decode", 
"number", ["number", "number"]),
+      rsa_signature_encode: getEmsc("GNUNET_CRYPTO_rsa_signature_encode", 
"number", ["number", "number"]),
+      rsa_unblind: getEmsc("GNUNET_CRYPTO_rsa_unblind", "number", ["number", 
"number", "number"]),
+    };
+    this.funcs = {
+      amount_add: getEmsc("TALER_amount_add", "number", ["number", "number", 
"number"]),
+      amount_cmp: getEmsc("TALER_amount_cmp", "number", ["number", "number"]),
+      amount_get_zero: getEmsc("TALER_amount_get_zero", "number", ["string", 
"number"]),
+      amount_hton: getEmsc("TALER_amount_hton", "void", ["number", "number"]),
+      amount_normalize: getEmsc("TALER_amount_normalize", "void", ["number"]),
+      amount_ntoh: getEmsc("TALER_amount_ntoh", "void", ["number", "number"]),
+      amount_subtract: getEmsc("TALER_amount_subtract", "number", ["number", 
"number", "number"]),
+      ecdh_eddsa: getEmsc("GNUNET_CRYPTO_ecdh_eddsa", "number", ["number", 
"number", "number"]),
+      eddsa_sign: getEmsc("GNUNET_CRYPTO_eddsa_sign", "number", ["number", 
"number", "number"]),
+      eddsa_verify: getEmsc("GNUNET_CRYPTO_eddsa_verify", "number", ["number", 
"number", "number", "number"]),
+      free: (ptr: number) => lib._free(ptr),
+      get_currency: getEmsc("TALER_WR_get_currency", "string", ["number"]),
+      get_fraction: getEmsc("TALER_WR_get_fraction", "number", ["number"]),
+      get_value: getEmsc("TALER_WR_get_value", "number", ["number"]),
+      hash: getEmsc("GNUNET_CRYPTO_hash", "void", ["number", "number", 
"number"]),
+      hash_context_abort: getEmsc("GNUNET_CRYPTO_hash_context_abort", "void", 
["number"]),
+      hash_context_finish: getEmsc("GNUNET_CRYPTO_hash_context_finish", 
"void", ["number", "number"]),
+      hash_context_read: getEmsc("GNUNET_CRYPTO_hash_context_read", "void", 
["number", "number", "number"]),
+      hash_create_random: getEmsc("GNUNET_CRYPTO_hash_create_random", "void", 
["number", "number"]),
+      memmove: getEmsc("memmove", "number", ["number", "number", "number"]),
+      random_block: getEmsc("GNUNET_CRYPTO_random_block", "void", ["number", 
"number", "number"]),
+      rsa_blinding_key_free: getEmsc("GNUNET_CRYPTO_rsa_blinding_key_free", 
"void", ["number"]),
+      rsa_public_key_free: getEmsc("GNUNET_CRYPTO_rsa_public_key_free", 
"void", ["number"]),
+      rsa_signature_free: getEmsc("GNUNET_CRYPTO_rsa_signature_free", "void", 
["number"]),
+      setup_fresh_coin: getEmsc("TALER_setup_fresh_coin", "void", ["number", 
"number", "number"]),
+      string_to_data: getEmsc("GNUNET_STRINGS_string_to_data", "number", 
["number", "number", "number", "number"]),
+    };
+  }
+}
 
 
 /**
@@ -152,7 +233,7 @@ export class HashContext implements ArenaObject {
   private hashContextPtr: number | undefined;
 
   constructor() {
-    this.hashContextPtr = emscAlloc.hash_context_start();
+    this.hashContextPtr = emsc().allocFuncs.hash_context_start();
   }
 
   /**
@@ -162,7 +243,7 @@ export class HashContext implements ArenaObject {
     if (!this.hashContextPtr) {
       throw Error("assertion failed");
     }
-    emsc.hash_context_read(this.hashContextPtr, obj.nativePtr, obj.size());
+    emsc().funcs.hash_context_read(this.hashContextPtr, obj.nativePtr, 
obj.size());
   }
 
   /**
@@ -173,7 +254,7 @@ export class HashContext implements ArenaObject {
       throw Error("assertion failed");
     }
     h.alloc();
-    emsc.hash_context_finish(this.hashContextPtr, h.nativePtr);
+    emsc().funcs.hash_context_finish(this.hashContextPtr, h.nativePtr);
   }
 
   /**
@@ -181,7 +262,7 @@ export class HashContext implements ArenaObject {
    */
   destroy(): void {
     if (this.hashContextPtr) {
-      emsc.hash_context_abort(this.hashContextPtr);
+      emsc().funcs.hash_context_abort(this.hashContextPtr);
     }
     this.hashContextPtr = undefined;
   }
@@ -201,7 +282,7 @@ abstract class MallocArenaObject implements ArenaObject {
 
   destroy(): void {
     if (this._nativePtr && !this.isWeak) {
-      emsc.free(this.nativePtr);
+      emsc().funcs.free(this.nativePtr);
       this._nativePtr = undefined;
     }
   }
@@ -220,7 +301,7 @@ abstract class MallocArenaObject implements ArenaObject {
     if (this._nativePtr !== undefined) {
       throw Error("Double allocation");
     }
-    this.nativePtr = emscAlloc.malloc(size);
+    this.nativePtr = emsc().allocFuncs.malloc(size);
   }
 
   set nativePtr(v: number) {
@@ -314,18 +395,18 @@ export class Amount extends MallocArenaObject {
   constructor(args?: AmountJson, arena?: Arena) {
     super(arena);
     if (args) {
-      this.nativePtr = emscAlloc.get_amount(args.value,
+      this.nativePtr = emsc().allocFuncs.get_amount(args.value,
                                             0,
                                             args.fraction,
                                             args.currency);
     } else {
-      this.nativePtr = emscAlloc.get_amount(0, 0, 0, "");
+      this.nativePtr = emsc().allocFuncs.get_amount(0, 0, 0, "");
     }
   }
 
   static getZero(currency: string, a?: Arena): Amount {
     const am = new Amount(undefined, a);
-    const r = emsc.amount_get_zero(currency, am.nativePtr);
+    const r = emsc().funcs.amount_get_zero(currency, am.nativePtr);
     if (r !== GNUNET_OK) {
       throw Error("invalid currency");
     }
@@ -336,31 +417,31 @@ export class Amount extends MallocArenaObject {
   toNbo(a?: Arena): AmountNbo {
     const x = new AmountNbo(a);
     x.alloc();
-    emsc.amount_hton(x.nativePtr, this.nativePtr);
+    emsc().funcs.amount_hton(x.nativePtr, this.nativePtr);
     return x;
   }
 
   fromNbo(nbo: AmountNbo): void {
-    emsc.amount_ntoh(this.nativePtr, nbo.nativePtr);
+    emsc().funcs.amount_ntoh(this.nativePtr, nbo.nativePtr);
   }
 
   get value() {
-    return emsc.get_value(this.nativePtr);
+    return emsc().funcs.get_value(this.nativePtr);
   }
 
   get fraction() {
-    return emsc.get_fraction(this.nativePtr);
+    return emsc().funcs.get_fraction(this.nativePtr);
   }
 
   get currency(): string {
-    return emsc.get_currency(this.nativePtr);
+    return emsc().funcs.get_currency(this.nativePtr);
   }
 
   toJson(): AmountJson {
     return {
-      currency: emsc.get_currency(this.nativePtr),
-      fraction: emsc.get_fraction(this.nativePtr),
-      value: emsc.get_value(this.nativePtr),
+      currency: emsc().funcs.get_currency(this.nativePtr),
+      fraction: emsc().funcs.get_fraction(this.nativePtr),
+      value: emsc().funcs.get_value(this.nativePtr),
     };
   }
 
@@ -368,7 +449,7 @@ export class Amount extends MallocArenaObject {
    * Add an amount to this amount.
    */
   add(a: Amount) {
-    const res = emsc.amount_add(this.nativePtr, a.nativePtr, this.nativePtr);
+    const res = emsc().funcs.amount_add(this.nativePtr, a.nativePtr, 
this.nativePtr);
     if (res < 1) {
       // Overflow
       return false;
@@ -381,7 +462,7 @@ export class Amount extends MallocArenaObject {
    */
   sub(a: Amount) {
     // this = this - a
-    const res = emsc.amount_subtract(this.nativePtr, this.nativePtr, 
a.nativePtr);
+    const res = emsc().funcs.amount_subtract(this.nativePtr, this.nativePtr, 
a.nativePtr);
     if (res === 0) {
       // Underflow
       return false;
@@ -397,11 +478,11 @@ export class Amount extends MallocArenaObject {
     if (this.currency !== a.currency) {
       throw Error(`incomparable currencies (${this.currency} and 
${a.currency})`);
     }
-    return emsc.amount_cmp(this.nativePtr, a.nativePtr);
+    return emsc().funcs.amount_cmp(this.nativePtr, a.nativePtr);
   }
 
   normalize() {
-    emsc.amount_normalize(this.nativePtr);
+    emsc().funcs.amount_normalize(this.nativePtr);
   }
 }
 
@@ -443,13 +524,13 @@ abstract class PackedArenaObject extends 
MallocArenaObject {
   }
 
   randomize(qual: RandomQuality = RandomQuality.STRONG): void {
-    emsc.random_block(qual, this.nativePtr, this.size());
+    emsc().funcs.random_block(qual, this.nativePtr, this.size());
   }
 
   toCrock(): string {
-    const d = emscAlloc.data_to_string_alloc(this.nativePtr, this.size());
-    const s = emscLib.Pointer_stringify(d);
-    emsc.free(d);
+    const d = emsc().allocFuncs.data_to_string_alloc(this.nativePtr, 
this.size());
+    const s = emsc().lib.Pointer_stringify(d);
+    emsc().funcs.free(d);
     return s;
   }
 
@@ -465,7 +546,7 @@ abstract class PackedArenaObject extends MallocArenaObject {
     // We need to get the javascript string
     // to the emscripten heap first.
     const buf = ByteArray.fromStringWithNull(s);
-    const res = emsc.string_to_data(buf.nativePtr,
+    const res = emsc().funcs.string_to_data(buf.nativePtr,
                                   s.length,
                                   this.nativePtr,
                                   this.size());
@@ -478,21 +559,21 @@ abstract class PackedArenaObject extends 
MallocArenaObject {
   alloc() {
     // FIXME: should the client be allowed to call alloc multiple times?
     if (!this._nativePtr) {
-      this.nativePtr = emscAlloc.malloc(this.size());
+      this.nativePtr = emsc().allocFuncs.malloc(this.size());
     }
   }
 
   hash(): HashCode {
     const x = new HashCode();
     x.alloc();
-    emsc.hash(this.nativePtr, this.size(), x.nativePtr);
+    emsc().funcs.hash(this.nativePtr, this.size(), x.nativePtr);
     return x;
   }
 
   hexdump() {
     const bytes: string[] = [];
     for (let i = 0; i < this.size(); i++) {
-      let b = emscLib.getValue(this.nativePtr + i, "i8");
+      let b = emsc().lib.getValue(this.nativePtr + i, "i8");
       b = (b + 256) % 256;
       bytes.push("0".concat(b.toString(16)).slice(-2));
     }
@@ -554,11 +635,11 @@ function fromCrockDecoded<T extends MallocArenaObject>(s: 
string,
  * Encode an object using a special encoding function.
  */
 function encode<T extends MallocArenaObject>(obj: T, encodeFn: any, arena?: 
Arena): ByteArray {
-  const ptr = emscAlloc.malloc(PTR_SIZE);
+  const ptr = emsc().allocFuncs.malloc(PTR_SIZE);
   const len = encodeFn(obj.nativePtr, ptr);
   const res = new ByteArray(len, undefined, arena);
-  res.nativePtr = emscLib.getValue(ptr, "*");
-  emsc.free(ptr);
+  res.nativePtr = emsc().lib.getValue(ptr, "*");
+  emsc().funcs.free(ptr);
   return res;
 }
 
@@ -569,7 +650,7 @@ function encode<T extends MallocArenaObject>(obj: T, 
encodeFn: any, arena?: Aren
 export class EddsaPrivateKey extends PackedArenaObject {
   static create(a?: Arena): EddsaPrivateKey {
     const obj = new EddsaPrivateKey(a);
-    obj.nativePtr = emscAlloc.eddsa_key_create();
+    obj.nativePtr = emsc().allocFuncs.eddsa_key_create();
     return obj;
   }
 
@@ -579,7 +660,7 @@ export class EddsaPrivateKey extends PackedArenaObject {
 
   getPublicKey(a?: Arena): EddsaPublicKey {
     const obj = new EddsaPublicKey(a);
-    obj.nativePtr = emscAlloc.eddsa_public_key_from_private(this.nativePtr);
+    obj.nativePtr = 
emsc().allocFuncs.eddsa_public_key_from_private(this.nativePtr);
     return obj;
   }
 
@@ -595,7 +676,7 @@ export class EddsaPrivateKey extends PackedArenaObject {
 export class EcdsaPrivateKey extends PackedArenaObject {
   static create(a?: Arena): EcdsaPrivateKey {
     const obj = new EcdsaPrivateKey(a);
-    obj.nativePtr = emscAlloc.ecdsa_key_create();
+    obj.nativePtr = emsc().allocFuncs.ecdsa_key_create();
     return obj;
   }
 
@@ -605,7 +686,7 @@ export class EcdsaPrivateKey extends PackedArenaObject {
 
   getPublicKey(a?: Arena): EcdsaPublicKey {
     const obj = new EcdsaPublicKey(a);
-    obj.nativePtr = emscAlloc.ecdsa_public_key_from_private(this.nativePtr);
+    obj.nativePtr = 
emsc().allocFuncs.ecdsa_public_key_from_private(this.nativePtr);
     return obj;
   }
 
@@ -621,7 +702,7 @@ export class EcdsaPrivateKey extends PackedArenaObject {
 export class EcdhePrivateKey extends PackedArenaObject {
   static create(a?: Arena): EcdhePrivateKey {
     const obj = new EcdhePrivateKey(a);
-    obj.nativePtr = emscAlloc.ecdhe_key_create();
+    obj.nativePtr = emsc().allocFuncs.ecdhe_key_create();
     return obj;
   }
 
@@ -631,7 +712,7 @@ export class EcdhePrivateKey extends PackedArenaObject {
 
   getPublicKey(a?: Arena): EcdhePublicKey {
     const obj = new EcdhePublicKey(a);
-    obj.nativePtr = emscAlloc.ecdhe_public_key_from_private(this.nativePtr);
+    obj.nativePtr = 
emsc().allocFuncs.ecdhe_public_key_from_private(this.nativePtr);
     return obj;
   }
 
@@ -728,7 +809,7 @@ export class HashCode extends PackedArenaObject {
 
   random(qual: RandomQuality = RandomQuality.STRONG) {
     this.alloc();
-    emsc.hash_create_random(qual, this.nativePtr);
+    emsc().funcs.hash_create_random(qual, this.nativePtr);
   }
 }
 
@@ -746,7 +827,7 @@ export class ByteArray extends PackedArenaObject {
   constructor(desiredSize: number, init?: number, a?: Arena) {
     super(a);
     if (init === undefined) {
-      this.nativePtr = emscAlloc.malloc(desiredSize);
+      this.nativePtr = emsc().allocFuncs.malloc(desiredSize);
     } else {
       this.nativePtr = init;
     }
@@ -756,16 +837,16 @@ export class ByteArray extends PackedArenaObject {
   static fromStringWithoutNull(s: string, a?: Arena): ByteArray {
     // UTF-8 bytes, including 0-terminator
     const terminatedByteLength = countUtf8Bytes(s) + 1;
-    const hstr = emscAlloc.malloc(terminatedByteLength);
-    emscLib.stringToUTF8(s, hstr, terminatedByteLength);
+    const hstr = emsc().allocFuncs.malloc(terminatedByteLength);
+    emsc().lib.stringToUTF8(s, hstr, terminatedByteLength);
     return new ByteArray(terminatedByteLength - 1, hstr, a);
   }
 
   static fromStringWithNull(s: string, a?: Arena): ByteArray {
     // UTF-8 bytes, including 0-terminator
     const terminatedByteLength = countUtf8Bytes(s) + 1;
-    const hstr = emscAlloc.malloc(terminatedByteLength);
-    emscLib.stringToUTF8(s, hstr, terminatedByteLength);
+    const hstr = emsc().allocFuncs.malloc(terminatedByteLength);
+    emsc().lib.stringToUTF8(s, hstr, terminatedByteLength);
     return new ByteArray(terminatedByteLength, hstr, a);
   }
 
@@ -773,12 +854,12 @@ export class ByteArray extends PackedArenaObject {
     // this one is a bit more complicated than the other fromCrock functions,
     // since we don't have a fixed size
     const byteLength = countUtf8Bytes(s);
-    const hstr = emscAlloc.malloc(byteLength + 1);
-    emscLib.stringToUTF8(s, hstr, byteLength + 1);
+    const hstr = emsc().allocFuncs.malloc(byteLength + 1);
+    emsc().lib.stringToUTF8(s, hstr, byteLength + 1);
     const decodedLen = Math.floor((byteLength * 5) / 8);
     const ba = new ByteArray(decodedLen, undefined, a);
-    const res = emsc.string_to_data(hstr, byteLength, ba.nativePtr, 
decodedLen);
-    emsc.free(hstr);
+    const res = emsc().funcs.string_to_data(hstr, byteLength, ba.nativePtr, 
decodedLen);
+    emsc().funcs.free(hstr);
     if (res !== GNUNET_OK) {
       throw Error("decoding failed");
     }
@@ -802,9 +883,9 @@ export class EccSignaturePurpose extends PackedArenaObject {
               payload: PackedArenaObject,
               a?: Arena) {
     super(a);
-    this.nativePtr = emscAlloc.purpose_create(purpose,
-                                              payload.nativePtr,
-                                              payload.size());
+    this.nativePtr = emsc().allocFuncs.purpose_create(purpose,
+                                                      payload.nativePtr,
+                                                      payload.size());
     this.payloadSize = payload.size();
   }
 }
@@ -834,13 +915,13 @@ abstract class SignatureStruct {
       totalSize += member.size();
     }
 
-    const buf = emscAlloc.malloc(totalSize);
+    const buf = emsc().allocFuncs.malloc(totalSize);
     let ptr = buf;
     for (const f of this.fieldTypes()) {
       const name = f[0];
       const member = this.members[name];
       const size = member.size();
-      emsc.memmove(ptr, member.nativePtr, size);
+      emsc().funcs.memmove(ptr, member.nativePtr, size);
       ptr += size;
     }
     const ba = new ByteArray(totalSize, buf, a);
@@ -1081,7 +1162,7 @@ export class AbsoluteTimeNbo extends PackedArenaObject {
 // XXX: This only works up to 54 bit numbers.
 function set64(p: number, n: number) {
   for (let i = 0; i < 8; ++i) {
-    emscLib.setValue(p + (7 - i), n & 0xFF, "i8");
+    emsc().lib.setValue(p + (7 - i), n & 0xFF, "i8");
     n = Math.floor(n / 256);
   }
 }
@@ -1089,7 +1170,7 @@ function set64(p: number, n: number) {
 // XXX: This only works up to 54 bit numbers.
 function set32(p: number, n: number) {
   for (let i = 0; i < 4; ++i) {
-    emscLib.setValue(p + (3 - i), n & 0xFF, "i8");
+    emsc().lib.setValue(p + (3 - i), n & 0xFF, "i8");
     n = Math.floor(n / 256);
   }
 }
@@ -1277,7 +1358,7 @@ export class PaymentSignaturePS extends SignatureStruct {
  */
 export class RsaPublicKey extends MallocArenaObject {
   static fromCrock(s: string): RsaPublicKey {
-    return fromCrockDecoded(s, this, emscAlloc.rsa_public_key_decode);
+    return fromCrockDecoded(s, this, emsc().allocFuncs.rsa_public_key_decode);
   }
 
   toCrock() {
@@ -1285,12 +1366,12 @@ export class RsaPublicKey extends MallocArenaObject {
   }
 
   destroy() {
-    emsc.rsa_public_key_free(this.nativePtr);
+    emsc().funcs.rsa_public_key_free(this.nativePtr);
     this.nativePtr = 0;
   }
 
   encode(arena?: Arena): ByteArray {
-    return encode(this, emscAlloc.rsa_public_key_encode);
+    return encode(this, emsc().allocFuncs.rsa_public_key_encode);
   }
 }
 
@@ -1313,15 +1394,15 @@ export class EddsaSignature extends PackedArenaObject {
  */
 export class RsaSignature extends MallocArenaObject {
   static fromCrock(s: string, a?: Arena) {
-    return fromCrockDecoded(s, this, emscAlloc.rsa_signature_decode);
+    return fromCrockDecoded(s, this, emsc().allocFuncs.rsa_signature_decode);
   }
 
   encode(arena?: Arena): ByteArray {
-    return encode(this, emscAlloc.rsa_signature_encode);
+    return encode(this, emsc().allocFuncs.rsa_signature_encode);
   }
 
   destroy() {
-    emsc.rsa_signature_free(this.nativePtr);
+    emsc().funcs.rsa_signature_free(this.nativePtr);
     this.nativePtr = 0;
   }
 }
@@ -1334,17 +1415,17 @@ export function rsaBlind(hashCode: HashCode,
                          blindingKey: RsaBlindingKeySecret,
                          pkey: RsaPublicKey,
                          arena?: Arena): ByteArray|null {
-  const buf_ptr_out = emscAlloc.malloc(PTR_SIZE);
-  const buf_size_out = emscAlloc.malloc(PTR_SIZE);
-  const res = emscAlloc.rsa_blind(hashCode.nativePtr,
-                                blindingKey.nativePtr,
-                                pkey.nativePtr,
-                                buf_ptr_out,
-                                buf_size_out);
-  const buf_ptr = emscLib.getValue(buf_ptr_out, "*");
-  const buf_size = emscLib.getValue(buf_size_out, "*");
-  emsc.free(buf_ptr_out);
-  emsc.free(buf_size_out);
+  const buf_ptr_out = emsc().allocFuncs.malloc(PTR_SIZE);
+  const buf_size_out = emsc().allocFuncs.malloc(PTR_SIZE);
+  const res = emsc().allocFuncs.rsa_blind(hashCode.nativePtr,
+                                          blindingKey.nativePtr,
+                                          pkey.nativePtr,
+                                          buf_ptr_out,
+                                          buf_size_out);
+  const buf_ptr = emsc().lib.getValue(buf_ptr_out, "*");
+  const buf_size = emsc().lib.getValue(buf_size_out, "*");
+  emsc().funcs.free(buf_ptr_out);
+  emsc().funcs.free(buf_size_out);
   if (res !== GNUNET_OK) {
     // malicious key
     return null;
@@ -1361,7 +1442,7 @@ export function eddsaSign(purpose: EccSignaturePurpose,
                           a?: Arena): EddsaSignature {
   const sig = new EddsaSignature(a);
   sig.alloc();
-  const res = emsc.eddsa_sign(priv.nativePtr, purpose.nativePtr, 
sig.nativePtr);
+  const res = emsc().funcs.eddsa_sign(priv.nativePtr, purpose.nativePtr, 
sig.nativePtr);
   if (res < 1) {
     throw Error("EdDSA signing failed");
   }
@@ -1377,10 +1458,10 @@ export function eddsaVerify(purposeNum: number,
                             sig: EddsaSignature,
                             pub: EddsaPublicKey,
                             a?: Arena): boolean {
-  const r = emsc.eddsa_verify(purposeNum,
-                            verify.nativePtr,
-                            sig.nativePtr,
-                            pub.nativePtr);
+  const r = emsc().funcs.eddsa_verify(purposeNum,
+                                      verify.nativePtr,
+                                      sig.nativePtr,
+                                      pub.nativePtr);
   return r === GNUNET_OK;
 }
 
@@ -1393,9 +1474,9 @@ export function rsaUnblind(sig: RsaSignature,
                            pk: RsaPublicKey,
                            a?: Arena): RsaSignature {
   const x = new RsaSignature(a);
-  x.nativePtr = emscAlloc.rsa_unblind(sig.nativePtr,
-                                      bk.nativePtr,
-                                      pk.nativePtr);
+  x.nativePtr = emsc().allocFuncs.rsa_unblind(sig.nativePtr,
+                                              bk.nativePtr,
+                                              pk.nativePtr);
   return x;
 }
 
@@ -1424,7 +1505,7 @@ export function ecdhEddsa(priv: EcdhePrivateKey,
                           pub: EddsaPublicKey): HashCode {
   const h = new HashCode();
   h.alloc();
-  const res = emsc.ecdh_eddsa(priv.nativePtr, pub.nativePtr, h.nativePtr);
+  const res = emsc().funcs.ecdh_eddsa(priv.nativePtr, pub.nativePtr, 
h.nativePtr);
   if (res !== GNUNET_OK) {
     throw Error("ecdh_eddsa failed");
   }
@@ -1443,10 +1524,10 @@ export function setupFreshCoin(secretSeed: 
TransferSecretP,
   blindingKey.isWeak = true;
   const buf = new ByteArray(priv.size() + blindingKey.size());
 
-  emsc.setup_fresh_coin(secretSeed.nativePtr, coinIndex, buf.nativePtr);
+  emsc().funcs.setup_fresh_coin(secretSeed.nativePtr, coinIndex, 
buf.nativePtr);
 
   priv.nativePtr = buf.nativePtr;
   blindingKey.nativePtr = buf.nativePtr + priv.size();
 
-  return {priv, blindingKey};
+  return { priv, blindingKey };
 }
diff --git a/src/crypto/emscLoader.d.ts b/src/crypto/emscLoader.d.ts
index f62604ee..3ec4f4cf 100644
--- a/src/crypto/emscLoader.d.ts
+++ b/src/crypto/emscLoader.d.ts
@@ -15,7 +15,7 @@
  */
 
 
-declare function getLib(): EmscLib;
+declare function getLib(): Promise<{ lib: EmscLib }>;
 
 /**
  * Signature of the function that retrieves emscripten
@@ -44,6 +44,12 @@ interface EmscLib {
 
   stringToUTF8(s: string, addr: number, maxLength: number): void;
 
+  onRuntimeInitialized(f: () => void): void;
+
+  readBinary?: (filename: string) => Promise<ArrayBuffer>;
+
+  calledRun?: boolean;
+
   _free(ptr: number): void;
 
   _malloc(n: number): number;
diff --git a/src/crypto/emscLoader.js b/src/crypto/emscLoader.js
index ed866281..7251a598 100644
--- a/src/crypto/emscLoader.js
+++ b/src/crypto/emscLoader.js
@@ -24,6 +24,8 @@
  * the right way to load the library.
  */
 
+let cachedLib = undefined;
+
 /**
  * Load the taler emscripten lib.
  *
@@ -31,6 +33,11 @@
  * be globally available.  Inside node, require is used.
  */
 export function getLib() {
+  console.log("in getLib");
+  if (cachedLib) {
+    console.log("lib is cached");
+    return Promise.resolve({ lib: cachedLib });
+  }
   if (typeof require !== "undefined") {
     // Make sure that TypeScript doesn't try
     // to check the taler-emscripten-lib.
@@ -45,7 +52,8 @@ export function getLib() {
     const lib = indirectRequire("../../../emscripten/taler-emscripten-lib.js");
     g.importScripts = savedImportScripts;
     if (lib) {
-      return lib;
+      cachedLib = lib;
+      return Promise.resolve({ lib: cachedLib });
     }
     // When we're running as a webpack bundle, the above require might
     // have failed and returned 'undefined', so we try other ways to import.
@@ -57,7 +65,22 @@ export function getLib() {
     if (!self.TalerEmscriptenLib) {
       throw Error("can't import taler emscripten lib");
     }
-    return self.TalerEmscriptenLib
+    const locateFile = (path, scriptDir) => {
+      console.log("locating file", "path", path, "scriptDir", scriptDir);
+      // This is quite hacky and assumes that our scriptDir is dist/
+      return scriptDir + "../emscripten/" + path;
+    };
+    console.log("instantiating TalerEmscriptenLib");
+    //const lib = self.TalerEmscriptenLib({ locateFile });
+    const lib = self.TalerEmscriptenLib;
+    cachedLib = lib;
+    return Promise.resolve({ lib: lib });
+    //return new Promise((resolve, reject) => {
+    //  lib.then(mod => {
+    //    console.log("emscripten module fully loaded");
+    //    resolve({ lib: mod });
+    //  });
+    //});
   }
 
   // Last resort, we don't have require, we're not running in a webworker.
@@ -66,7 +89,7 @@ export function getLib() {
 
   if (typeof window !== "undefined") {
     if (window.TalerEmscriptenLib) {
-      return TalerEmscriptenLib;
+      return Promise.resolve(TalerEmscriptenLib);
     }
     throw Error("Looks like running in browser, but TalerEmscriptenLib is not 
defined");
   }

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]