diff --git a/AUTHORS b/AUTHORS index bf1838bea3..24ce180707 100644 --- a/AUTHORS +++ b/AUTHORS @@ -365,3 +365,5 @@ Atsuya Takagi Pooya Karimian Frédéric Germain Kazuyuki Yamada +Robin Lee +Adam Blackburn diff --git a/ChangeLog b/ChangeLog index 3d4ba81b9c..7632b4b367 100644 --- a/ChangeLog +++ b/ChangeLog @@ -129,6 +129,52 @@ * Fix #3521 Make process.env more like a regular Object (isaacs) +2012.09.27, Version 0.8.11 (Stable), e1f39468fa580c1e4cb15fac621f87944ee625dc + +* fs: Fix stat() size reporting for large files (Ben Noordhuis) + + +2012.09.25, Version 0.8.10 (Stable) + +* npm: Upgrade to 1.1.62 + +* repl: make invalid RegExps throw in the REPL (Nathan Rajlich) + +* v8: loosen artificial mmap constraint (Bryan Cantrill) + +* process: fix setuid() and setgid() error reporting (Ben Noordhuis) + +* domain: Properly exit() on domain disposal (isaacs) + +* fs: fix watchFile() missing deletion events (Ben Noordhuis) + +* fs: fix assert in fs.watch() (Ben Noordhuis) + +* fs: don't segfault on deeply recursive stat() (Ben Noordhuis) + +* http: Remove timeout handler when data arrives (Frédéric Germain) + +* http: make the client "res" object gets the same domain as "req" (Nathan Rajlich) + +* windows: don't blow up when an invalid FD is used (Bert Belder) + +* unix: map EDQUOT to UV_ENOSPC (Charlie McConnell) + +* linux: improve /proc/cpuinfo parser (Ben Noordhuis) + +* win/tty: reset background brightness when color is set to default (Bert Belder) + +* unix: put child process stdio fds in blocking mode (Ben Noordhuis) + +* unix: fix EMFILE busy loop (Ben Noordhuis) + +* sunos: don't set TCP_KEEPALIVE (Ben Noordhuis) + +* tls: Use slab allocator for memory management (Fedor Indutny) + +* openssl: Use optimized assembly code for x86 and x64 (Bert Belder) + + 2012.09.11, Version 0.8.9 (Stable), b88c3902b241cf934e75443b934f2033ad3915b1 * v8: upgrade to 3.11.10.22 diff --git a/deps/npm/LICENSE b/deps/npm/LICENSE index 3702d8a05b..c0f51a741b 100644 --- a/deps/npm/LICENSE +++ b/deps/npm/LICENSE @@ -1,4 +1,4 @@ -Copyright 2009-2012, Isaac Z. Schlueter (the "Original Author") +Copyright (c) Isaac Z. Schlueter (the "Original Author") All rights reserved. MIT +no-false-attribs License @@ -42,23 +42,24 @@ Original Author, when distributed with the Software. part of the Node.js project, and is neither owned by nor officially affiliated with Joyent, Inc. -Packages published in the npm registry are not part of npm -itself, are the sole property of their respective maintainers, -and are not covered by this license. +Packages published in the npm registry (other than the Software and +its included dependencies) are not part of npm itself, are the sole +property of their respective maintainers, and are not covered by +this license. "npm Logo" created by Mathias Pettersson and Brian Hammond, used with permission. "Gubblebum Blocky" font -Copyright (c) 2007 by Tjarda Koster, http://jelloween.deviantart.com +Copyright (c) by Tjarda Koster, http://jelloween.deviantart.com included for use in the npm website and documentation, used with permission. -This program uses "node-uuid", Copyright (c) 2010 Robert Kieffer, -according to the terms of the MIT license. - -This program uses "request", Copyright (c) 2011 Mikeal Rogers, +This program uses "request", Copyright (c) Mikeal Rogers, according to the terms of the Apache license. -This program uses "mkdirp", Copyright (c) 2010 James Halliday, +This program uses "mkdirp", Copyright (c) James Halliday, according to the terms of the MIT/X11 license. + +This program uses "opener", Copyright (c) Domenic Denicola, +according to the terms of the DWTFPL2 license. diff --git a/deps/npm/Makefile b/deps/npm/Makefile index 8a856e9fa4..6ee80d57b1 100644 --- a/deps/npm/Makefile +++ b/deps/npm/Makefile @@ -120,10 +120,10 @@ doc-publish: doc html/api/ \ node@npmjs.org:/home/node/npm-www/api rsync -vazu --stats --no-implied-dirs --delete \ - html/webfonts/ \ + html/static/webfonts/ \ node@npmjs.org:/home/node/npm-www/static/webfonts rsync -vazu --stats --no-implied-dirs --delete \ - html/style.css \ + html/static/style.css \ node@npmjs.org:/home/node/npm-www/static/ zip-publish: release diff --git a/deps/npm/html/api/bin.html b/deps/npm/html/api/bin.html index 01c4871bae..93a6261c81 100644 --- a/deps/npm/html/api/bin.html +++ b/deps/npm/html/api/bin.html @@ -19,7 +19,7 @@

This function should not be used programmatically. Instead, just refer to the npm.bin member.

- + - - diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/test.xml b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/test.xml deleted file mode 100644 index 801292d7f2..0000000000 --- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/test.xml +++ /dev/null @@ -1,1254 +0,0 @@ - - -]> - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - - Some Text - - - - - - - are ok in here. ]]> - - Pre-Text & Inlined text Post-text. -  - - \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/lib/sax.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/lib/sax.js deleted file mode 100644 index 17fb08e7a5..0000000000 --- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/lib/sax.js +++ /dev/null @@ -1,1006 +0,0 @@ -// wrapper for non-node envs -;(function (sax) { - -sax.parser = function (strict, opt) { return new SAXParser(strict, opt) } -sax.SAXParser = SAXParser -sax.SAXStream = SAXStream -sax.createStream = createStream - -// When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns. -// When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)), -// since that's the earliest that a buffer overrun could occur. This way, checks are -// as rare as required, but as often as necessary to ensure never crossing this bound. -// Furthermore, buffers are only tested at most once per write(), so passing a very -// large string into write() might have undesirable effects, but this is manageable by -// the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme -// edge case, result in creating at most one complete copy of the string passed in. -// Set to Infinity to have unlimited buffers. -sax.MAX_BUFFER_LENGTH = 64 * 1024 - -var buffers = [ - "comment", "sgmlDecl", "textNode", "tagName", "doctype", - "procInstName", "procInstBody", "entity", "attribName", - "attribValue", "cdata", "script" -] - -sax.EVENTS = // for discoverability. - [ "text" - , "processinginstruction" - , "sgmldeclaration" - , "doctype" - , "comment" - , "attribute" - , "opentag" - , "closetag" - , "opencdata" - , "cdata" - , "closecdata" - , "error" - , "end" - , "ready" - , "script" - , "opennamespace" - , "closenamespace" - ] - -function SAXParser (strict, opt) { - if (!(this instanceof SAXParser)) return new SAXParser(strict, opt) - - var parser = this - clearBuffers(parser) - parser.q = parser.c = "" - parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH - parser.opt = opt || {} - parser.tagCase = parser.opt.lowercasetags ? "toLowerCase" : "toUpperCase" - parser.tags = [] - parser.closed = parser.closedRoot = parser.sawRoot = false - parser.tag = parser.error = null - parser.strict = !!strict - parser.noscript = !!(strict || parser.opt.noscript) - parser.state = S.BEGIN - parser.ENTITIES = Object.create(sax.ENTITIES) - parser.attribList = [] - - // namespaces form a prototype chain. - // it always points at the current tag, - // which protos to its parent tag. - if (parser.opt.xmlns) parser.ns = Object.create(rootNS) - - // mostly just for error reporting - parser.position = parser.line = parser.column = 0 - emit(parser, "onready") -} - -if (!Object.create) Object.create = function (o) { - function f () { this.__proto__ = o } - f.prototype = o - return new f -} - -if (!Object.getPrototypeOf) Object.getPrototypeOf = function (o) { - return o.__proto__ -} - -if (!Object.keys) Object.keys = function (o) { - var a = [] - for (var i in o) if (o.hasOwnProperty(i)) a.push(i) - return a -} - -function checkBufferLength (parser) { - var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10) - , maxActual = 0 - for (var i = 0, l = buffers.length; i < l; i ++) { - var len = parser[buffers[i]].length - if (len > maxAllowed) { - // Text/cdata nodes can get big, and since they're buffered, - // we can get here under normal conditions. - // Avoid issues by emitting the text node now, - // so at least it won't get any bigger. - switch (buffers[i]) { - case "textNode": - closeText(parser) - break - - case "cdata": - emitNode(parser, "oncdata", parser.cdata) - parser.cdata = "" - break - - case "script": - emitNode(parser, "onscript", parser.script) - parser.script = "" - break - - default: - error(parser, "Max buffer length exceeded: "+buffers[i]) - } - } - maxActual = Math.max(maxActual, len) - } - // schedule the next check for the earliest possible buffer overrun. - parser.bufferCheckPosition = (sax.MAX_BUFFER_LENGTH - maxActual) - + parser.position -} - -function clearBuffers (parser) { - for (var i = 0, l = buffers.length; i < l; i ++) { - parser[buffers[i]] = "" - } -} - -SAXParser.prototype = - { end: function () { end(this) } - , write: write - , resume: function () { this.error = null; return this } - , close: function () { return this.write(null) } - , end: function () { return this.write(null) } - } - -try { - var Stream = require("stream").Stream -} catch (ex) { - var Stream = function () {} -} - - -var streamWraps = sax.EVENTS.filter(function (ev) { - return ev !== "error" && ev !== "end" -}) - -function createStream (strict, opt) { - return new SAXStream(strict, opt) -} - -function SAXStream (strict, opt) { - if (!(this instanceof SAXStream)) return new SAXStream(strict, opt) - - Stream.apply(me) - - this._parser = new SAXParser(strict, opt) - this.writable = true - this.readable = true - - - var me = this - - this._parser.onend = function () { - me.emit("end") - } - - this._parser.onerror = function (er) { - me.emit("error", er) - - // if didn't throw, then means error was handled. - // go ahead and clear error, so we can write again. - me._parser.error = null - } - - streamWraps.forEach(function (ev) { - Object.defineProperty(me, "on" + ev, { - get: function () { return me._parser["on" + ev] }, - set: function (h) { - if (!h) { - me.removeAllListeners(ev) - return me._parser["on"+ev] = h - } - me.on(ev, h) - }, - enumerable: true, - configurable: false - }) - }) -} - -SAXStream.prototype = Object.create(Stream.prototype, - { constructor: { value: SAXStream } }) - -SAXStream.prototype.write = function (data) { - this._parser.write(data.toString()) - this.emit("data", data) - return true -} - -SAXStream.prototype.end = function (chunk) { - if (chunk && chunk.length) this._parser.write(chunk.toString()) - this._parser.end() - return true -} - -SAXStream.prototype.on = function (ev, handler) { - var me = this - if (!me._parser["on"+ev] && streamWraps.indexOf(ev) !== -1) { - me._parser["on"+ev] = function () { - var args = arguments.length === 1 ? [arguments[0]] - : Array.apply(null, arguments) - args.splice(0, 0, ev) - me.emit.apply(me, args) - } - } - - return Stream.prototype.on.call(me, ev, handler) -} - - - -// character classes and tokens -var whitespace = "\r\n\t " - // this really needs to be replaced with character classes. - // XML allows all manner of ridiculous numbers and digits. - , number = "0124356789" - , letter = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" - // (Letter | "_" | ":") - , nameStart = letter+"_:" - , nameBody = nameStart+number+"-." - , quote = "'\"" - , entity = number+letter+"#" - , attribEnd = whitespace + ">" - , CDATA = "[CDATA[" - , DOCTYPE = "DOCTYPE" - , XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace" - , XMLNS_NAMESPACE = "http://www.w3.org/2000/xmlns/" - , rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE } - -// turn all the string character sets into character class objects. -whitespace = charClass(whitespace) -number = charClass(number) -letter = charClass(letter) -nameStart = charClass(nameStart) -nameBody = charClass(nameBody) -quote = charClass(quote) -entity = charClass(entity) -attribEnd = charClass(attribEnd) - -function charClass (str) { - return str.split("").reduce(function (s, c) { - s[c] = true - return s - }, {}) -} - -function is (charclass, c) { - return charclass[c] -} - -function not (charclass, c) { - return !charclass[c] -} - -var S = 0 -sax.STATE = -{ BEGIN : S++ -, TEXT : S++ // general stuff -, TEXT_ENTITY : S++ // & and such. -, OPEN_WAKA : S++ // < -, SGML_DECL : S++ // -, SCRIPT : S++ // " - , expect : - [ [ "opentag", { name: "xml", attributes: {} } ] - , [ "opentag", { name: "script", attributes: {} } ] - , [ "text", "hello world" ] - , [ "closetag", "script" ] - , [ "closetag", "xml" ] - ] - , strict : false - , opt : { lowercasetags: true, noscript: true } - } - ) - -require(__dirname).test - ( { xml : "" - , expect : - [ [ "opentag", { name: "xml", attributes: {} } ] - , [ "opentag", { name: "script", attributes: {} } ] - , [ "opencdata", undefined ] - , [ "cdata", "hello world" ] - , [ "closecdata", undefined ] - , [ "closetag", "script" ] - , [ "closetag", "xml" ] - ] - , strict : false - , opt : { lowercasetags: true, noscript: true } - } - ) - diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/parser-position.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/parser-position.js deleted file mode 100644 index e4a68b1e96..0000000000 --- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/parser-position.js +++ /dev/null @@ -1,28 +0,0 @@ -var sax = require("../lib/sax"), - assert = require("assert") - -function testPosition(chunks, expectedEvents) { - var parser = sax.parser(); - expectedEvents.forEach(function(expectation) { - parser['on' + expectation[0]] = function() { - for (var prop in expectation[1]) { - assert.equal(parser[prop], expectation[1][prop]); - } - } - }); - chunks.forEach(function(chunk) { - parser.write(chunk); - }); -}; - -testPosition(['
abcdefgh
'], - [ ['opentag', { position: 5, startTagPosition: 1 }] - , ['text', { position: 19, startTagPosition: 14 }] - , ['closetag', { position: 19, startTagPosition: 14 }] - ]); - -testPosition(['
abcde','fgh
'], - [ ['opentag', { position: 5, startTagPosition: 1 }] - , ['text', { position: 19, startTagPosition: 14 }] - , ['closetag', { position: 19, startTagPosition: 14 }] - ]); diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/script.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/script.js deleted file mode 100644 index 464c051a15..0000000000 --- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/script.js +++ /dev/null @@ -1,12 +0,0 @@ -require(__dirname).test({ - xml : "", - expect : [ - ["opentag", {"name": "HTML","attributes": {}}], - ["opentag", {"name": "HEAD","attributes": {}}], - ["opentag", {"name": "SCRIPT","attributes": {}}], - ["script", "if (1 < 0) { console.log('elo there'); }"], - ["closetag", "SCRIPT"], - ["closetag", "HEAD"], - ["closetag", "HTML"] - ] -}); diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/self-closing-child-strict.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/self-closing-child-strict.js deleted file mode 100644 index ce9c045154..0000000000 --- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/self-closing-child-strict.js +++ /dev/null @@ -1,40 +0,0 @@ - -require(__dirname).test({ - xml : - ""+ - "" + - "" + - "" + - "" + - "=(|)" + - "" + - "", - expect : [ - ["opentag", { - "name": "root", - "attributes": {} - }], - ["opentag", { - "name": "child", - "attributes": {} - }], - ["opentag", { - "name": "haha", - "attributes": {} - }], - ["closetag", "haha"], - ["closetag", "child"], - ["opentag", { - "name": "monkey", - "attributes": {} - }], - ["text", "=(|)"], - ["closetag", "monkey"], - ["closetag", "root"], - ["end"], - ["ready"] - ], - strict : true, - opt : {} -}); - diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/self-closing-child.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/self-closing-child.js deleted file mode 100644 index bc6b52b8da..0000000000 --- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/self-closing-child.js +++ /dev/null @@ -1,40 +0,0 @@ - -require(__dirname).test({ - xml : - ""+ - "" + - "" + - "" + - "" + - "=(|)" + - "" + - "", - expect : [ - ["opentag", { - "name": "ROOT", - "attributes": {} - }], - ["opentag", { - "name": "CHILD", - "attributes": {} - }], - ["opentag", { - "name": "HAHA", - "attributes": {} - }], - ["closetag", "HAHA"], - ["closetag", "CHILD"], - ["opentag", { - "name": "MONKEY", - "attributes": {} - }], - ["text", "=(|)"], - ["closetag", "MONKEY"], - ["closetag", "ROOT"], - ["end"], - ["ready"] - ], - strict : false, - opt : {} -}); - diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/self-closing-tag.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/self-closing-tag.js deleted file mode 100644 index b2c5736298..0000000000 --- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/self-closing-tag.js +++ /dev/null @@ -1,25 +0,0 @@ - -require(__dirname).test({ - xml : - " "+ - " "+ - " "+ - " "+ - "=(|) "+ - ""+ - " ", - expect : [ - ["opentag", {name:"ROOT", attributes:{}}], - ["opentag", {name:"HAHA", attributes:{}}], - ["closetag", "HAHA"], - ["opentag", {name:"HAHA", attributes:{}}], - ["closetag", "HAHA"], - // ["opentag", {name:"HAHA", attributes:{}}], - // ["closetag", "HAHA"], - ["opentag", {name:"MONKEY", attributes:{}}], - ["text", "=(|)"], - ["closetag", "MONKEY"], - ["closetag", "ROOT"] - ], - opt : { trim : true } -}); \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/stray-ending.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/stray-ending.js deleted file mode 100644 index 6b0aa7f3d8..0000000000 --- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/stray-ending.js +++ /dev/null @@ -1,17 +0,0 @@ -// stray ending tags should just be ignored in non-strict mode. -// https://github.com/isaacs/sax-js/issues/32 -require(__dirname).test - ( { xml : - "" - , expect : - [ [ "opentag", { name: "A", attributes: {} } ] - , [ "opentag", { name: "B", attributes: {} } ] - , [ "text", "" ] - , [ "closetag", "B" ] - , [ "closetag", "A" ] - ] - , strict : false - , opt : {} - } - ) - diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/trailing-non-whitespace.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/trailing-non-whitespace.js deleted file mode 100644 index 3e1fb2ed5c..0000000000 --- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/trailing-non-whitespace.js +++ /dev/null @@ -1,17 +0,0 @@ - -require(__dirname).test({ - xml : "Welcome, to monkey land", - expect : [ - ["opentag", { - "name": "SPAN", - "attributes": {} - }], - ["text", "Welcome,"], - ["closetag", "SPAN"], - ["text", " to monkey land"], - ["end"], - ["ready"] - ], - strict : false, - opt : {} -}); diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/unquoted.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/unquoted.js deleted file mode 100644 index 79f1d0b06c..0000000000 --- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/unquoted.js +++ /dev/null @@ -1,17 +0,0 @@ -// unquoted attributes should be ok in non-strict mode -// https://github.com/isaacs/sax-js/issues/31 -require(__dirname).test - ( { xml : - "" - , expect : - [ [ "attribute", { name: "class", value: "test" } ] - , [ "attribute", { name: "hello", value: "world" } ] - , [ "opentag", { name: "SPAN", - attributes: { class: "test", hello: "world" } } ] - , [ "closetag", "SPAN" ] - ] - , strict : false - , opt : {} - } - ) - diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-issue-41.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-issue-41.js deleted file mode 100644 index 596d82b69a..0000000000 --- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-issue-41.js +++ /dev/null @@ -1,67 +0,0 @@ -var t = require(__dirname) - - , xmls = // should be the same both ways. - [ "" - , "" ] - - , ex1 = - [ [ "opennamespace" - , { prefix: "a" - , uri: "http://ATTRIBUTE" - } - ] - , [ "attribute" - , { name: "xmlns:a" - , value: "http://ATTRIBUTE" - , prefix: "xmlns" - , local: "a" - , uri: "http://www.w3.org/2000/xmlns/" - } - ] - , [ "attribute" - , { name: "a:attr" - , local: "attr" - , prefix: "a" - , uri: "http://ATTRIBUTE" - , value: "value" - } - ] - , [ "opentag" - , { name: "parent" - , uri: "" - , prefix: "" - , local: "parent" - , attributes: - { "a:attr": - { name: "a:attr" - , local: "attr" - , prefix: "a" - , uri: "http://ATTRIBUTE" - , value: "value" - } - , "xmlns:a": - { name: "xmlns:a" - , local: "a" - , prefix: "xmlns" - , uri: "http://www.w3.org/2000/xmlns/" - , value: "http://ATTRIBUTE" - } - } - , ns: {"a": "http://ATTRIBUTE"} - } - ] - , ["closetag", "parent"] - , ["closenamespace", { prefix: "a", uri: "http://ATTRIBUTE" }] - ] - - // swap the order of elements 2 and 1 - , ex2 = [ex1[0], ex1[2], ex1[1]].concat(ex1.slice(3)) - , expected = [ex1, ex2] - -xmls.forEach(function (x, i) { - t.test({ xml: x - , expect: expected[i] - , strict: true - , opt: { xmlns: true } - }) -}) diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-rebinding.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-rebinding.js deleted file mode 100644 index f464876beb..0000000000 --- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-rebinding.js +++ /dev/null @@ -1,59 +0,0 @@ - -require(__dirname).test - ( { xml : - ""+ - ""+ - ""+ - ""+ - ""+ - "" - - , expect : - [ [ "opennamespace", { prefix: "x", uri: "x1" } ] - , [ "opennamespace", { prefix: "y", uri: "y1" } ] - , [ "attribute", { name: "xmlns:x", value: "x1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } ] - , [ "attribute", { name: "xmlns:y", value: "y1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "y" } ] - , [ "attribute", { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } ] - , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ] - , [ "opentag", { name: "root", uri: "", prefix: "", local: "root", - attributes: { "xmlns:x": { name: "xmlns:x", value: "x1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } - , "xmlns:y": { name: "xmlns:y", value: "y1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "y" } - , "x:a": { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } - , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } }, - ns: { x: 'x1', y: 'y1' } } ] - - , [ "opennamespace", { prefix: "x", uri: "x2" } ] - , [ "attribute", { name: "xmlns:x", value: "x2", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } ] - , [ "opentag", { name: "rebind", uri: "", prefix: "", local: "rebind", - attributes: { "xmlns:x": { name: "xmlns:x", value: "x2", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } }, - ns: { x: 'x2' } } ] - - , [ "attribute", { name: "x:a", value: "x2", uri: "x2", prefix: "x", local: "a" } ] - , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ] - , [ "opentag", { name: "check", uri: "", prefix: "", local: "check", - attributes: { "x:a": { name: "x:a", value: "x2", uri: "x2", prefix: "x", local: "a" } - , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } }, - ns: { x: 'x2' } } ] - - , [ "closetag", "check" ] - - , [ "closetag", "rebind" ] - , [ "closenamespace", { prefix: "x", uri: "x2" } ] - - , [ "attribute", { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } ] - , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ] - , [ "opentag", { name: "check", uri: "", prefix: "", local: "check", - attributes: { "x:a": { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } - , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } }, - ns: { x: 'x1', y: 'y1' } } ] - , [ "closetag", "check" ] - - , [ "closetag", "root" ] - , [ "closenamespace", { prefix: "x", uri: "x1" } ] - , [ "closenamespace", { prefix: "y", uri: "y1" } ] - ] - , strict : true - , opt : { xmlns: true } - } - ) - diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-strict.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-strict.js deleted file mode 100644 index 4ad615b227..0000000000 --- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-strict.js +++ /dev/null @@ -1,71 +0,0 @@ - -require(__dirname).test - ( { xml : - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "" - - , expect : - [ [ "opentag", { name: "root", prefix: "", local: "root", uri: "", - attributes: {}, ns: {} } ] - - , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } ] - , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "", - attributes: { "attr": { name: "attr", value: "normal", uri: "", prefix: "", local: "attr", uri: "" } }, - ns: {} } ] - , [ "closetag", "plain" ] - - , [ "opennamespace", { prefix: "", uri: "uri:default" } ] - - , [ "attribute", { name: "xmlns", value: "uri:default", prefix: "xmlns", local: "", uri: "http://www.w3.org/2000/xmlns/" } ] - , [ "opentag", { name: "ns1", prefix: "", local: "ns1", uri: "uri:default", - attributes: { "xmlns": { name: "xmlns", value: "uri:default", prefix: "xmlns", local: "", uri: "http://www.w3.org/2000/xmlns/" } }, - ns: { "": "uri:default" } } ] - - , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "uri:default" } ] - , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "uri:default", ns: { '': 'uri:default' }, - attributes: { "attr": { name: "attr", value: "normal", prefix: "", local: "attr", uri: "uri:default" } } } ] - , [ "closetag", "plain" ] - - , [ "closetag", "ns1" ] - - , [ "closenamespace", { prefix: "", uri: "uri:default" } ] - - , [ "opennamespace", { prefix: "a", uri: "uri:nsa" } ] - - , [ "attribute", { name: "xmlns:a", value: "uri:nsa", prefix: "xmlns", local: "a", uri: "http://www.w3.org/2000/xmlns/" } ] - - , [ "opentag", { name: "ns2", prefix: "", local: "ns2", uri: "", - attributes: { "xmlns:a": { name: "xmlns:a", value: "uri:nsa", prefix: "xmlns", local: "a", uri: "http://www.w3.org/2000/xmlns/" } }, - ns: { a: "uri:nsa" } } ] - - , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } ] - , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "", - attributes: { "attr": { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } }, - ns: { a: 'uri:nsa' } } ] - , [ "closetag", "plain" ] - - , [ "attribute", { name: "a:attr", value: "namespaced", prefix: "a", local: "attr", uri: "uri:nsa" } ] - , [ "opentag", { name: "a:ns", prefix: "a", local: "ns", uri: "uri:nsa", - attributes: { "a:attr": { name: "a:attr", value: "namespaced", prefix: "a", local: "attr", uri: "uri:nsa" } }, - ns: { a: 'uri:nsa' } } ] - , [ "closetag", "a:ns" ] - - , [ "closetag", "ns2" ] - - , [ "closenamespace", { prefix: "a", uri: "uri:nsa" } ] - - , [ "closetag", "root" ] - ] - , strict : true - , opt : { xmlns: true } - } - ) - diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-unbound.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-unbound.js deleted file mode 100644 index 2944b87e82..0000000000 --- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-unbound.js +++ /dev/null @@ -1,15 +0,0 @@ - -require(__dirname).test( - { strict : true - , opt : { xmlns: true } - , expect : - [ ["error", "Unbound namespace prefix: \"unbound\"\nLine: 0\nColumn: 28\nChar: >"] - - , [ "attribute", { name: "unbound:attr", value: "value", uri: "unbound", prefix: "unbound", local: "attr" } ] - , [ "opentag", { name: "root", uri: "", prefix: "", local: "root", - attributes: { "unbound:attr": { name: "unbound:attr", value: "value", uri: "unbound", prefix: "unbound", local: "attr" } }, - ns: {} } ] - , [ "closetag", "root" ] - ] - } -).write("") diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js deleted file mode 100644 index 16da771a58..0000000000 --- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js +++ /dev/null @@ -1,35 +0,0 @@ -require(__dirname).test( - { xml : "" - , expect : - [ [ "attribute" - , { name: "xml:lang" - , local: "lang" - , prefix: "xml" - , uri: "http://www.w3.org/XML/1998/namespace" - , value: "en" - } - ] - , [ "opentag" - , { name: "root" - , uri: "" - , prefix: "" - , local: "root" - , attributes: - { "xml:lang": - { name: "xml:lang" - , local: "lang" - , prefix: "xml" - , uri: "http://www.w3.org/XML/1998/namespace" - , value: "en" - } - } - , ns: {} - } - ] - , ["closetag", "root"] - ] - , strict : true - , opt : { xmlns: true } - } -) - diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-xml-default-prefix.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-xml-default-prefix.js deleted file mode 100644 index 9a1ce1b340..0000000000 --- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-xml-default-prefix.js +++ /dev/null @@ -1,20 +0,0 @@ -require(__dirname).test( - { xml : "" - , expect : - [ - [ "opentag" - , { name: "xml:root" - , uri: "http://www.w3.org/XML/1998/namespace" - , prefix: "xml" - , local: "root" - , attributes: {} - , ns: {} - } - ] - , ["closetag", "xml:root"] - ] - , strict : true - , opt : { xmlns: true } - } -) - diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-xml-default-redefine.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-xml-default-redefine.js deleted file mode 100644 index 1eba9c7143..0000000000 --- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-xml-default-redefine.js +++ /dev/null @@ -1,40 +0,0 @@ -require(__dirname).test( - { xml : "" - , expect : - [ ["error" - , "xml: prefix must be bound to http://www.w3.org/XML/1998/namespace\n" - + "Actual: ERROR\n" - + "Line: 0\nColumn: 27\nChar: '" - ] - , [ "attribute" - , { name: "xmlns:xml" - , local: "xml" - , prefix: "xmlns" - , uri: "http://www.w3.org/2000/xmlns/" - , value: "ERROR" - } - ] - , [ "opentag" - , { name: "xml:root" - , uri: "http://www.w3.org/XML/1998/namespace" - , prefix: "xml" - , local: "root" - , attributes: - { "xmlns:xml": - { name: "xmlns:xml" - , local: "xml" - , prefix: "xmlns" - , uri: "http://www.w3.org/2000/xmlns/" - , value: "ERROR" - } - } - , ns: {} - } - ] - , ["closetag", "xml:root"] - ] - , strict : true - , opt : { xmlns: true } - } -) - diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/.travis.yml b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/.travis.yml deleted file mode 100644 index 2d26206d58..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/.travis.yml +++ /dev/null @@ -1,3 +0,0 @@ -language: node_js -node_js: - - 0.6 diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/LICENSE b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/LICENSE deleted file mode 100644 index 57c8a18efa..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/LICENSE +++ /dev/null @@ -1,63 +0,0 @@ -Some pieces from builtins/ taken from node core under this license: - ----- - -Copyright Joyent, Inc. and other Node contributors. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. - ----- - -buffer_ieee754.js has this license in it: - ----- - -Copyright (c) 2008, Fair Oaks Labs, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - * Neither the name of Fair Oaks Labs, Inc. nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Modifications to writeIEEE754 to support negative zeroes made by Brian White - ----- diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/README.markdown b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/README.markdown deleted file mode 100644 index 80eed89678..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/README.markdown +++ /dev/null @@ -1,173 +0,0 @@ -browserify -========== - -Make node-style require() work in the browser with a server-side build step, -as if by magic! - -[![build status](https://secure.travis-ci.org/substack/node-browserify.png)](http://travis-ci.org/substack/node-browserify) - -![browserify!](http://substack.net/images/browserify/browserify.png) - -example -======= - -Just write an `entry.js` to start with some `require()`s in it: - -````javascript -// use relative requires -var foo = require('./foo'); -var bar = require('../lib/bar'); - -// or use modules installed by npm in node_modules/ -var domready = require('domready'); - -domready(function () { - var elem = document.getElementById('result'); - elem.textContent = foo(100) + bar('baz'); -}); -```` - -Now just use the `browserify` command to build a bundle starting at `entry.js`: - -``` -$ browserify entry.js -o bundle.js -``` - -All of the modules that `entry.js` needs are included in the final bundle from a -recursive walk using [detective](https://github.com/substack/node-detective). - -To use the bundle, just toss a `` into your -html! - -usage -===== - -```` -Usage: browserify [entry files] {OPTIONS} - -Options: - --outfile, -o Write the browserify bundle to this file. - If unspecified, browserify prints to stdout. - --require, -r A module name or file to bundle.require() - Optionally use a colon separator to set the target. - --entry, -e An entry point of your app - --exports Export these core objects, comma-separated list - with any of: require, process. If unspecified, the - export behavior will be inferred. - - --ignore, -i Ignore a file - --alias, -a Register an alias with a colon separator: "to:from" - Example: --alias 'jquery:jquery-browserify' - --cache, -c Turn on caching at $HOME/.config/browserling/cache.json or use - a file for caching. - [default: true] - --debug, -d Switch on debugging mode with //@ sourceURL=...s. [boolean] - --plugin, -p Use a plugin. - Example: --plugin aliasify - --prelude Include the code that defines require() in this bundle. - [boolean] [default: true] - --watch, -w Watch for changes. The script will stay open and write updates - to the output every time any of the bundled files change. - This option only works in tandem with -o. - --verbose, -v Write out how many bytes were written in -o mode. This is - especially useful with --watch. - --help, -h Show this message - -```` - -compatability -============= - -Many [npm](http://npmjs.org) modules that don't do IO will just work after being -browserified. Others take more work. - -[coffee script](http://coffeescript.org/) should pretty much just work. -Just do `browserify entry.coffee` or `require('./foo.coffee')`. - -Many node built-in modules have been wrapped to work in the browser. -All you need to do is `require()` them like in node. - -* events -* path -* [vm](https://github.com/substack/vm-browserify) -* [http](https://github.com/substack/http-browserify) -* [crypto](https://github.com/dominictarr/crypto-browserify) -* assert -* url -* buffer -* buffer_ieee754 -* util -* querystring -* stream - -process -------- - -Browserify makes available a faux `process` object to modules with these -attributes: - -* nextTick(fn) - uses [the postMessage trick](http://dbaron.org/log/20100309-faster-timeouts) - for a faster `setTimeout(fn, 0)` if it can -* title - set to 'browser' for browser code, 'node' in regular node code -* browser - `true`, good for testing if you're in a browser or in node - -By default the process object is only available inside of files wrapped by -browserify. To expose it, use `--exports=process` - -__dirname ---------- - -The faux directory name, scrubbed of true directory information so as not to -expose your filesystem organization. - -__filename ----------- - -The faux file path, scrubbed of true path information so as not to expose your -filesystem organization. - -package.json -============ - -In order to resolve main files for projects, the package.json "main" field is -read. - -If a package.json has a "browserify" field, you can override the standard "main" -behavior with something special just for browsers. - -See [dnode's -package.json](https://github.com/substack/dnode/blob/9e24b97cf2ce931fbf6d7beb3731086b46bca887/package.json#L40) -for an example of using the "browserify" field. - -more -==== - -* [browserify recipes](https://github.com/substack/node-browserify/blob/master/doc/recipes.markdown#recipes) -* [browserify api reference](https://github.com/substack/node-browserify/blob/master/doc/methods.markdown#methods) -* [browserify cdn](http://browserify.nodejitsu.com/) - -install -======= - -With [npm](http://npmjs.org) do: - -``` -npm install -g browserify -``` - -test -==== - -To run the node tests with tap, do: - -``` -npm test -``` - -To run the [testling](http://testling.com) tests, -create a [browserling](http://browserling.com) account then: - -``` -cd testling -./test.sh -``` diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/bin/cmd.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/bin/cmd.js deleted file mode 100755 index 9438be503d..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/bin/cmd.js +++ /dev/null @@ -1,162 +0,0 @@ -#!/usr/bin/env node - -var browserify = require('../'); -var fs = require('fs'); -var resolve = require('resolve'); - -var argv = require('optimist') - .usage('Usage: browserify [entry files] {OPTIONS}') - .wrap(80) - .option('outfile', { - alias : 'o', - desc : 'Write the browserify bundle to this file.\n' - + 'If unspecified, browserify prints to stdout.' - , - }) - .option('require', { - alias : 'r', - desc : 'A module name or file to bundle.require()\n' - + 'Optionally use a colon separator to set the target.' - , - }) - .option('entry', { - alias : 'e', - desc : 'An entry point of your app' - }) - .option('exports', { - desc : 'Export these core objects, comma-separated list\n' - + 'with any of: require, process. If unspecified, the\n' - + 'export behavior will be inferred.\n' - }) - .option('ignore', { - alias : 'i', - desc : 'Ignore a file' - }) - .option('alias', { - alias : 'a', - desc : 'Register an alias with a colon separator: "to:from"\n' - + "Example: --alias 'jquery:jquery-browserify'" - , - }) - .option('cache', { - alias : 'c', - desc : 'Turn on caching at $HOME/.config/browserling/cache.json ' - + 'or use a file for caching.\n', - default : true, - }) - .option('debug', { - alias : 'd', - desc : 'Switch on debugging mode with //@ sourceURL=...s.', - type : 'boolean' - }) - .option('plugin', { - alias : 'p', - desc : 'Use a plugin.\n' - + 'Example: --plugin aliasify' - , - }) - .option('prelude', { - default : true, - type : 'boolean', - desc : 'Include the code that defines require() in this bundle.' - }) - .option('watch', { - alias : 'w', - desc : 'Watch for changes. The script will stay open and write updates ' - + 'to the output every time any of the bundled files change.\n' - + 'This option only works in tandem with -o.' - , - }) - .option('verbose', { - alias : 'v', - desc : 'Write out how many bytes were written in -o mode. ' - + 'This is especially useful with --watch.' - , - }) - .option('help', { - alias : 'h', - desc : 'Show this message' - }) - .check(function (argv) { - if (argv.help) throw '' - if (process.argv.length <= 2) throw 'Specify a parameter.' - }) - .argv -; - -var bundle = browserify({ - watch : argv.watch, - cache : argv.cache, - debug : argv.debug, - exports : argv.exports && argv.exports.split(','), -}); - -bundle.on('syntaxError', function (err) { - console.error(err && err.stack || String(err)); - process.exit(1); -}); - -if (argv.noprelude || argv.prelude === false) { - bundle.files = []; - bundle.prepends = []; -} -if (argv.ignore) bundle.ignore(argv.ignore); - -([].concat(argv.plugin || [])).forEach(function (plugin) { - var resolved = resolve.sync(plugin, { basedir : process.cwd() }); - bundle.use(require(resolved)); -}); - -([].concat(argv.alias || [])).forEach(function (alias) { - if (!alias.match(/:/)) { - console.error('aliases require a colon separator'); - process.exit(); - } - bundle.alias.apply(bundle, alias.split(':')); -}); - -([].concat(argv.require || [])).forEach(function (req) { - if (req.match(/:/)) { - var s = req.split(':'); - bundle.require(s[0], { target : s[1] }); - return; - } - - if (!/^[.\/]/.test(req)) { - try { - var res = resolve.sync(req, { basedir : process.cwd() }); - } - catch (e) { - return bundle.require(req); - } - return bundle.require(res, { target : req }); - } - bundle.require(req); -}); - -(argv._.concat(argv.entry || [])).forEach(function (entry) { - bundle.addEntry(entry); -}); - -if (argv.outfile) { - function write () { - var src = bundle.bundle(); - fs.writeFile(argv.outfile, src, function () { - if (argv.verbose) { - console.log(Buffer(src).length + ' bytes written'); - } - }); - } - - write(); - if (argv.watch) bundle.on('bundle', write) -} -else { - var src = bundle.bundle(); - try { Function(src) } - catch (err) { - console.error(err.stack); - process.exit(1); - } - console.log(src); -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/__browserify_process.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/__browserify_process.js deleted file mode 100644 index ccafc0e167..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/__browserify_process.js +++ /dev/null @@ -1,48 +0,0 @@ -var process = module.exports = {}; - -process.nextTick = (function () { - var queue = []; - var canPost = typeof window !== 'undefined' - && window.postMessage && window.addEventListener - ; - - if (canPost) { - window.addEventListener('message', function (ev) { - if (ev.source === window && ev.data === 'browserify-tick') { - ev.stopPropagation(); - if (queue.length > 0) { - var fn = queue.shift(); - fn(); - } - } - }, true); - } - - return function (fn) { - if (canPost) { - queue.push(fn); - window.postMessage('browserify-tick', '*'); - } - else setTimeout(fn, 0); - }; -})(); - -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; - -process.binding = function (name) { - if (name === 'evals') return (require)('vm') - else throw new Error('No such module. (Possibly not yet loaded)') -}; - -(function () { - var cwd = '/'; - var path; - process.cwd = function () { return cwd }; - process.chdir = function (dir) { - if (!path) path = require('path'); - cwd = path.resolve(dir, cwd); - }; -})(); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/assert.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/assert.js deleted file mode 100644 index f93f7216aa..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/assert.js +++ /dev/null @@ -1,303 +0,0 @@ -// UTILITY -var util = require('util'); -var Buffer = require("buffer").Buffer; -var pSlice = Array.prototype.slice; - -// 1. The assert module provides functions that throw -// AssertionError's when particular conditions are not met. The -// assert module must conform to the following interface. - -var assert = module.exports = ok; - -// 2. The AssertionError is defined in assert. -// new assert.AssertionError({ message: message, -// actual: actual, -// expected: expected }) - -assert.AssertionError = function AssertionError(options) { - this.name = 'AssertionError'; - this.message = options.message; - this.actual = options.actual; - this.expected = options.expected; - this.operator = options.operator; - var stackStartFunction = options.stackStartFunction || fail; - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, stackStartFunction); - } -}; -util.inherits(assert.AssertionError, Error); - -function replacer(key, value) { - if (value === undefined) { - return '' + value; - } - if (typeof value === 'number' && (isNaN(value) || !isFinite(value))) { - return value.toString(); - } - if (typeof value === 'function' || value instanceof RegExp) { - return value.toString(); - } - return value; -} - -function truncate(s, n) { - if (typeof s == 'string') { - return s.length < n ? s : s.slice(0, n); - } else { - return s; - } -} - -assert.AssertionError.prototype.toString = function() { - if (this.message) { - return [this.name + ':', this.message].join(' '); - } else { - return [ - this.name + ':', - truncate(JSON.stringify(this.actual, replacer), 128), - this.operator, - truncate(JSON.stringify(this.expected, replacer), 128) - ].join(' '); - } -}; - -// assert.AssertionError instanceof Error - -assert.AssertionError.__proto__ = Error.prototype; - -// At present only the three keys mentioned above are used and -// understood by the spec. Implementations or sub modules can pass -// other keys to the AssertionError's constructor - they will be -// ignored. - -// 3. All of the following functions must throw an AssertionError -// when a corresponding condition is not met, with a message that -// may be undefined if not provided. All assertion methods provide -// both the actual and expected values to the assertion error for -// display purposes. - -function fail(actual, expected, message, operator, stackStartFunction) { - throw new assert.AssertionError({ - message: message, - actual: actual, - expected: expected, - operator: operator, - stackStartFunction: stackStartFunction - }); -} - -// EXTENSION! allows for well behaved errors defined elsewhere. -assert.fail = fail; - -// 4. Pure assertion tests whether a value is truthy, as determined -// by !!guard. -// assert.ok(guard, message_opt); -// This statement is equivalent to assert.equal(true, guard, -// message_opt);. To test strictly for the value true, use -// assert.strictEqual(true, guard, message_opt);. - -function ok(value, message) { - if (!!!value) fail(value, true, message, '==', assert.ok); -} -assert.ok = ok; - -// 5. The equality assertion tests shallow, coercive equality with -// ==. -// assert.equal(actual, expected, message_opt); - -assert.equal = function equal(actual, expected, message) { - if (actual != expected) fail(actual, expected, message, '==', assert.equal); -}; - -// 6. The non-equality assertion tests for whether two objects are not equal -// with != assert.notEqual(actual, expected, message_opt); - -assert.notEqual = function notEqual(actual, expected, message) { - if (actual == expected) { - fail(actual, expected, message, '!=', assert.notEqual); - } -}; - -// 7. The equivalence assertion tests a deep equality relation. -// assert.deepEqual(actual, expected, message_opt); - -assert.deepEqual = function deepEqual(actual, expected, message) { - if (!_deepEqual(actual, expected)) { - fail(actual, expected, message, 'deepEqual', assert.deepEqual); - } -}; - -function _deepEqual(actual, expected) { - // 7.1. All identical values are equivalent, as determined by ===. - if (actual === expected) { - return true; - - } else if (Buffer.isBuffer(actual) && Buffer.isBuffer(expected)) { - if (actual.length != expected.length) return false; - - for (var i = 0; i < actual.length; i++) { - if (actual[i] !== expected[i]) return false; - } - - return true; - - // 7.2. If the expected value is a Date object, the actual value is - // equivalent if it is also a Date object that refers to the same time. - } else if (actual instanceof Date && expected instanceof Date) { - return actual.getTime() === expected.getTime(); - - // 7.3. Other pairs that do not both pass typeof value == 'object', - // equivalence is determined by ==. - } else if (typeof actual != 'object' && typeof expected != 'object') { - return actual == expected; - - // 7.4. For all other Object pairs, including Array objects, equivalence is - // determined by having the same number of owned properties (as verified - // with Object.prototype.hasOwnProperty.call), the same set of keys - // (although not necessarily the same order), equivalent values for every - // corresponding key, and an identical 'prototype' property. Note: this - // accounts for both named and indexed properties on Arrays. - } else { - return objEquiv(actual, expected); - } -} - -function isUndefinedOrNull(value) { - return value === null || value === undefined; -} - -function isArguments(object) { - return Object.prototype.toString.call(object) == '[object Arguments]'; -} - -function objEquiv(a, b) { - if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) - return false; - // an identical 'prototype' property. - if (a.prototype !== b.prototype) return false; - //~~~I've managed to break Object.keys through screwy arguments passing. - // Converting to array solves the problem. - if (isArguments(a)) { - if (!isArguments(b)) { - return false; - } - a = pSlice.call(a); - b = pSlice.call(b); - return _deepEqual(a, b); - } - try { - var ka = Object.keys(a), - kb = Object.keys(b), - key, i; - } catch (e) {//happens when one is a string literal and the other isn't - return false; - } - // having the same number of owned properties (keys incorporates - // hasOwnProperty) - if (ka.length != kb.length) - return false; - //the same set of keys (although not necessarily the same order), - ka.sort(); - kb.sort(); - //~~~cheap key test - for (i = ka.length - 1; i >= 0; i--) { - if (ka[i] != kb[i]) - return false; - } - //equivalent values for every corresponding key, and - //~~~possibly expensive deep test - for (i = ka.length - 1; i >= 0; i--) { - key = ka[i]; - if (!_deepEqual(a[key], b[key])) return false; - } - return true; -} - -// 8. The non-equivalence assertion tests for any deep inequality. -// assert.notDeepEqual(actual, expected, message_opt); - -assert.notDeepEqual = function notDeepEqual(actual, expected, message) { - if (_deepEqual(actual, expected)) { - fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual); - } -}; - -// 9. The strict equality assertion tests strict equality, as determined by ===. -// assert.strictEqual(actual, expected, message_opt); - -assert.strictEqual = function strictEqual(actual, expected, message) { - if (actual !== expected) { - fail(actual, expected, message, '===', assert.strictEqual); - } -}; - -// 10. The strict non-equality assertion tests for strict inequality, as -// determined by !==. assert.notStrictEqual(actual, expected, message_opt); - -assert.notStrictEqual = function notStrictEqual(actual, expected, message) { - if (actual === expected) { - fail(actual, expected, message, '!==', assert.notStrictEqual); - } -}; - -function expectedException(actual, expected) { - if (!actual || !expected) { - return false; - } - - if (expected instanceof RegExp) { - return expected.test(actual); - } else if (actual instanceof expected) { - return true; - } else if (expected.call({}, actual) === true) { - return true; - } - - return false; -} - -function _throws(shouldThrow, block, expected, message) { - var actual; - - if (typeof expected === 'string') { - message = expected; - expected = null; - } - - try { - block(); - } catch (e) { - actual = e; - } - - message = (expected && expected.name ? ' (' + expected.name + ').' : '.') + - (message ? ' ' + message : '.'); - - if (shouldThrow && !actual) { - fail('Missing expected exception' + message); - } - - if (!shouldThrow && expectedException(actual, expected)) { - fail('Got unwanted exception' + message); - } - - if ((shouldThrow && actual && expected && - !expectedException(actual, expected)) || (!shouldThrow && actual)) { - throw actual; - } -} - -// 11. Expected to throw an error: -// assert.throws(block, Error_opt, message_opt); - -assert.throws = function(block, /*optional*/error, /*optional*/message) { - _throws.apply(this, [true].concat(pSlice.call(arguments))); -}; - -// EXTENSION! This is annoying to write outside this module. -assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) { - _throws.apply(this, [false].concat(pSlice.call(arguments))); -}; - -assert.ifError = function(err) { if (err) {throw err;}}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/buffer.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/buffer.js deleted file mode 100644 index 5c14c5b12d..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/buffer.js +++ /dev/null @@ -1,1130 +0,0 @@ -function SlowBuffer (size) { - this.length = size; -}; - -var assert = require('assert'); - -exports.INSPECT_MAX_BYTES = 50; - - -function toHex(n) { - if (n < 16) return '0' + n.toString(16); - return n.toString(16); -} - - -SlowBuffer.prototype.inspect = function() { - var out = [], - len = this.length; - for (var i = 0; i < len; i++) { - out[i] = toHex(this[i]); - if (i == exports.INSPECT_MAX_BYTES) { - out[i + 1] = '...'; - break; - } - } - return ''; -}; - - -SlowBuffer.prototype.hexSlice = function(start, end) { - var len = this.length; - - if (!start || start < 0) start = 0; - if (!end || end < 0 || end > len) end = len; - - var out = ''; - for (var i = start; i < end; i++) { - out += toHex(this[i]); - } - return out; -}; - - -SlowBuffer.prototype.toString = function(encoding, start, end) { - encoding = String(encoding || 'utf8').toLowerCase(); - start = +start || 0; - if (typeof end == 'undefined') end = this.length; - - // Fastpath empty strings - if (+end == start) { - return ''; - } - - switch (encoding) { - case 'hex': - return this.hexSlice(start, end); - - case 'utf8': - case 'utf-8': - return this.utf8Slice(start, end); - - case 'ascii': - return this.asciiSlice(start, end); - - case 'binary': - return this.binarySlice(start, end); - - case 'base64': - return this.base64Slice(start, end); - - case 'ucs2': - case 'ucs-2': - return this.ucs2Slice(start, end); - - default: - throw new Error('Unknown encoding'); - } -}; - - -SlowBuffer.prototype.hexWrite = function(string, offset, length) { - offset = +offset || 0; - var remaining = this.length - offset; - if (!length) { - length = remaining; - } else { - length = +length; - if (length > remaining) { - length = remaining; - } - } - - // must be an even number of digits - var strLen = string.length; - if (strLen % 2) { - throw new Error('Invalid hex string'); - } - if (length > strLen / 2) { - length = strLen / 2; - } - for (var i = 0; i < length; i++) { - var byte = parseInt(string.substr(i * 2, 2), 16); - if (isNaN(byte)) throw new Error('Invalid hex string'); - this[offset + i] = byte; - } - SlowBuffer._charsWritten = i * 2; - return i; -}; - - -SlowBuffer.prototype.write = function(string, offset, length, encoding) { - // Support both (string, offset, length, encoding) - // and the legacy (string, encoding, offset, length) - if (isFinite(offset)) { - if (!isFinite(length)) { - encoding = length; - length = undefined; - } - } else { // legacy - var swap = encoding; - encoding = offset; - offset = length; - length = swap; - } - - offset = +offset || 0; - var remaining = this.length - offset; - if (!length) { - length = remaining; - } else { - length = +length; - if (length > remaining) { - length = remaining; - } - } - encoding = String(encoding || 'utf8').toLowerCase(); - - switch (encoding) { - case 'hex': - return this.hexWrite(string, offset, length); - - case 'utf8': - case 'utf-8': - return this.utf8Write(string, offset, length); - - case 'ascii': - return this.asciiWrite(string, offset, length); - - case 'binary': - return this.binaryWrite(string, offset, length); - - case 'base64': - return this.base64Write(string, offset, length); - - case 'ucs2': - case 'ucs-2': - return this.ucs2Write(string, offset, length); - - default: - throw new Error('Unknown encoding'); - } -}; - - -// slice(start, end) -SlowBuffer.prototype.slice = function(start, end) { - if (end === undefined) end = this.length; - - if (end > this.length) { - throw new Error('oob'); - } - if (start > end) { - throw new Error('oob'); - } - - return new Buffer(this, end - start, +start); -}; - - -function coerce(length) { - // Coerce length to a number (possibly NaN), round up - // in case it's fractional (e.g. 123.456) then do a - // double negate to coerce a NaN to 0. Easy, right? - length = ~~Math.ceil(+length); - return length < 0 ? 0 : length; -} - - -// Buffer - -function Buffer(subject, encoding, offset) { - if (!(this instanceof Buffer)) { - return new Buffer(subject, encoding, offset); - } - - var type; - - // Are we slicing? - if (typeof offset === 'number') { - this.length = coerce(encoding); - this.parent = subject; - this.offset = offset; - } else { - // Find the length - switch (type = typeof subject) { - case 'number': - this.length = coerce(subject); - break; - - case 'string': - this.length = Buffer.byteLength(subject, encoding); - break; - - case 'object': // Assume object is an array - this.length = coerce(subject.length); - break; - - default: - throw new Error('First argument needs to be a number, ' + - 'array or string.'); - } - - if (this.length > Buffer.poolSize) { - // Big buffer, just alloc one. - this.parent = new SlowBuffer(this.length); - this.offset = 0; - - } else { - // Small buffer. - if (!pool || pool.length - pool.used < this.length) allocPool(); - this.parent = pool; - this.offset = pool.used; - pool.used += this.length; - } - - // Treat array-ish objects as a byte array. - if (isArrayIsh(subject)) { - for (var i = 0; i < this.length; i++) { - this.parent[i + this.offset] = subject[i]; - } - } else if (type == 'string') { - // We are a string - this.length = this.write(subject, 0, encoding); - } - } - -} - -function isArrayIsh(subject) { - return Array.isArray(subject) || Buffer.isBuffer(subject) || - subject && typeof subject === 'object' && - typeof subject.length === 'number'; -} - -exports.SlowBuffer = SlowBuffer; -exports.Buffer = Buffer; - -Buffer.poolSize = 8 * 1024; -var pool; - -function allocPool() { - pool = new SlowBuffer(Buffer.poolSize); - pool.used = 0; -} - - -// Static methods -Buffer.isBuffer = function isBuffer(b) { - return b instanceof Buffer || b instanceof SlowBuffer; -}; - - -// Inspect -Buffer.prototype.inspect = function inspect() { - var out = [], - len = this.length; - - for (var i = 0; i < len; i++) { - out[i] = toHex(this.parent[i + this.offset]); - if (i == exports.INSPECT_MAX_BYTES) { - out[i + 1] = '...'; - break; - } - } - - return ''; -}; - - -Buffer.prototype.get = function get(i) { - if (i < 0 || i >= this.length) throw new Error('oob'); - return this.parent[this.offset + i]; -}; - - -Buffer.prototype.set = function set(i, v) { - if (i < 0 || i >= this.length) throw new Error('oob'); - return this.parent[this.offset + i] = v; -}; - - -// write(string, offset = 0, length = buffer.length-offset, encoding = 'utf8') -Buffer.prototype.write = function(string, offset, length, encoding) { - // Support both (string, offset, length, encoding) - // and the legacy (string, encoding, offset, length) - if (isFinite(offset)) { - if (!isFinite(length)) { - encoding = length; - length = undefined; - } - } else { // legacy - var swap = encoding; - encoding = offset; - offset = length; - length = swap; - } - - offset = +offset || 0; - var remaining = this.length - offset; - if (!length) { - length = remaining; - } else { - length = +length; - if (length > remaining) { - length = remaining; - } - } - encoding = String(encoding || 'utf8').toLowerCase(); - - var ret; - switch (encoding) { - case 'hex': - ret = this.parent.hexWrite(string, this.offset + offset, length); - break; - - case 'utf8': - case 'utf-8': - ret = this.parent.utf8Write(string, this.offset + offset, length); - break; - - case 'ascii': - ret = this.parent.asciiWrite(string, this.offset + offset, length); - break; - - case 'binary': - ret = this.parent.binaryWrite(string, this.offset + offset, length); - break; - - case 'base64': - // Warning: maxLength not taken into account in base64Write - ret = this.parent.base64Write(string, this.offset + offset, length); - break; - - case 'ucs2': - case 'ucs-2': - ret = this.parent.ucs2Write(string, this.offset + offset, length); - break; - - default: - throw new Error('Unknown encoding'); - } - - Buffer._charsWritten = SlowBuffer._charsWritten; - - return ret; -}; - - -// toString(encoding, start=0, end=buffer.length) -Buffer.prototype.toString = function(encoding, start, end) { - encoding = String(encoding || 'utf8').toLowerCase(); - - if (typeof start == 'undefined' || start < 0) { - start = 0; - } else if (start > this.length) { - start = this.length; - } - - if (typeof end == 'undefined' || end > this.length) { - end = this.length; - } else if (end < 0) { - end = 0; - } - - start = start + this.offset; - end = end + this.offset; - - switch (encoding) { - case 'hex': - return this.parent.hexSlice(start, end); - - case 'utf8': - case 'utf-8': - return this.parent.utf8Slice(start, end); - - case 'ascii': - return this.parent.asciiSlice(start, end); - - case 'binary': - return this.parent.binarySlice(start, end); - - case 'base64': - return this.parent.base64Slice(start, end); - - case 'ucs2': - case 'ucs-2': - return this.parent.ucs2Slice(start, end); - - default: - throw new Error('Unknown encoding'); - } -}; - - -// byteLength -Buffer.byteLength = SlowBuffer.byteLength; - - -// fill(value, start=0, end=buffer.length) -Buffer.prototype.fill = function fill(value, start, end) { - value || (value = 0); - start || (start = 0); - end || (end = this.length); - - if (typeof value === 'string') { - value = value.charCodeAt(0); - } - if (!(typeof value === 'number') || isNaN(value)) { - throw new Error('value is not a number'); - } - - if (end < start) throw new Error('end < start'); - - // Fill 0 bytes; we're done - if (end === start) return 0; - if (this.length == 0) return 0; - - if (start < 0 || start >= this.length) { - throw new Error('start out of bounds'); - } - - if (end < 0 || end > this.length) { - throw new Error('end out of bounds'); - } - - return this.parent.fill(value, - start + this.offset, - end + this.offset); -}; - - -// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) -Buffer.prototype.copy = function(target, target_start, start, end) { - var source = this; - start || (start = 0); - end || (end = this.length); - target_start || (target_start = 0); - - if (end < start) throw new Error('sourceEnd < sourceStart'); - - // Copy 0 bytes; we're done - if (end === start) return 0; - if (target.length == 0 || source.length == 0) return 0; - - if (target_start < 0 || target_start >= target.length) { - throw new Error('targetStart out of bounds'); - } - - if (start < 0 || start >= source.length) { - throw new Error('sourceStart out of bounds'); - } - - if (end < 0 || end > source.length) { - throw new Error('sourceEnd out of bounds'); - } - - // Are we oob? - if (end > this.length) { - end = this.length; - } - - if (target.length - target_start < end - start) { - end = target.length - target_start + start; - } - - return this.parent.copy(target.parent, - target_start + target.offset, - start + this.offset, - end + this.offset); -}; - - -// slice(start, end) -Buffer.prototype.slice = function(start, end) { - if (end === undefined) end = this.length; - if (end > this.length) throw new Error('oob'); - if (start > end) throw new Error('oob'); - - return new Buffer(this.parent, end - start, +start + this.offset); -}; - - -// Legacy methods for backwards compatibility. - -Buffer.prototype.utf8Slice = function(start, end) { - return this.toString('utf8', start, end); -}; - -Buffer.prototype.binarySlice = function(start, end) { - return this.toString('binary', start, end); -}; - -Buffer.prototype.asciiSlice = function(start, end) { - return this.toString('ascii', start, end); -}; - -Buffer.prototype.utf8Write = function(string, offset) { - return this.write(string, offset, 'utf8'); -}; - -Buffer.prototype.binaryWrite = function(string, offset) { - return this.write(string, offset, 'binary'); -}; - -Buffer.prototype.asciiWrite = function(string, offset) { - return this.write(string, offset, 'ascii'); -}; - -Buffer.prototype.readUInt8 = function(offset, noAssert) { - var buffer = this; - - if (!noAssert) { - assert.ok(offset !== undefined && offset !== null, - 'missing offset'); - - assert.ok(offset < buffer.length, - 'Trying to read beyond buffer length'); - } - - return buffer[offset]; -}; - -function readUInt16(buffer, offset, isBigEndian, noAssert) { - var val = 0; - - - if (!noAssert) { - assert.ok(typeof (isBigEndian) === 'boolean', - 'missing or invalid endian'); - - assert.ok(offset !== undefined && offset !== null, - 'missing offset'); - - assert.ok(offset + 1 < buffer.length, - 'Trying to read beyond buffer length'); - } - - if (isBigEndian) { - val = buffer[offset] << 8; - val |= buffer[offset + 1]; - } else { - val = buffer[offset]; - val |= buffer[offset + 1] << 8; - } - - return val; -} - -Buffer.prototype.readUInt16LE = function(offset, noAssert) { - return readUInt16(this, offset, false, noAssert); -}; - -Buffer.prototype.readUInt16BE = function(offset, noAssert) { - return readUInt16(this, offset, true, noAssert); -}; - -function readUInt32(buffer, offset, isBigEndian, noAssert) { - var val = 0; - - if (!noAssert) { - assert.ok(typeof (isBigEndian) === 'boolean', - 'missing or invalid endian'); - - assert.ok(offset !== undefined && offset !== null, - 'missing offset'); - - assert.ok(offset + 3 < buffer.length, - 'Trying to read beyond buffer length'); - } - - if (isBigEndian) { - val = buffer[offset + 1] << 16; - val |= buffer[offset + 2] << 8; - val |= buffer[offset + 3]; - val = val + (buffer[offset] << 24 >>> 0); - } else { - val = buffer[offset + 2] << 16; - val |= buffer[offset + 1] << 8; - val |= buffer[offset]; - val = val + (buffer[offset + 3] << 24 >>> 0); - } - - return val; -} - -Buffer.prototype.readUInt32LE = function(offset, noAssert) { - return readUInt32(this, offset, false, noAssert); -}; - -Buffer.prototype.readUInt32BE = function(offset, noAssert) { - return readUInt32(this, offset, true, noAssert); -}; - - -/* - * Signed integer types, yay team! A reminder on how two's complement actually - * works. The first bit is the signed bit, i.e. tells us whether or not the - * number should be positive or negative. If the two's complement value is - * positive, then we're done, as it's equivalent to the unsigned representation. - * - * Now if the number is positive, you're pretty much done, you can just leverage - * the unsigned translations and return those. Unfortunately, negative numbers - * aren't quite that straightforward. - * - * At first glance, one might be inclined to use the traditional formula to - * translate binary numbers between the positive and negative values in two's - * complement. (Though it doesn't quite work for the most negative value) - * Mainly: - * - invert all the bits - * - add one to the result - * - * Of course, this doesn't quite work in Javascript. Take for example the value - * of -128. This could be represented in 16 bits (big-endian) as 0xff80. But of - * course, Javascript will do the following: - * - * > ~0xff80 - * -65409 - * - * Whoh there, Javascript, that's not quite right. But wait, according to - * Javascript that's perfectly correct. When Javascript ends up seeing the - * constant 0xff80, it has no notion that it is actually a signed number. It - * assumes that we've input the unsigned value 0xff80. Thus, when it does the - * binary negation, it casts it into a signed value, (positive 0xff80). Then - * when you perform binary negation on that, it turns it into a negative number. - * - * Instead, we're going to have to use the following general formula, that works - * in a rather Javascript friendly way. I'm glad we don't support this kind of - * weird numbering scheme in the kernel. - * - * (BIT-MAX - (unsigned)val + 1) * -1 - * - * The astute observer, may think that this doesn't make sense for 8-bit numbers - * (really it isn't necessary for them). However, when you get 16-bit numbers, - * you do. Let's go back to our prior example and see how this will look: - * - * (0xffff - 0xff80 + 1) * -1 - * (0x007f + 1) * -1 - * (0x0080) * -1 - */ -Buffer.prototype.readInt8 = function(offset, noAssert) { - var buffer = this; - var neg; - - if (!noAssert) { - assert.ok(offset !== undefined && offset !== null, - 'missing offset'); - - assert.ok(offset < buffer.length, - 'Trying to read beyond buffer length'); - } - - neg = buffer[offset] & 0x80; - if (!neg) { - return (buffer[offset]); - } - - return ((0xff - buffer[offset] + 1) * -1); -}; - -function readInt16(buffer, offset, isBigEndian, noAssert) { - var neg, val; - - if (!noAssert) { - assert.ok(typeof (isBigEndian) === 'boolean', - 'missing or invalid endian'); - - assert.ok(offset !== undefined && offset !== null, - 'missing offset'); - - assert.ok(offset + 1 < buffer.length, - 'Trying to read beyond buffer length'); - } - - val = readUInt16(buffer, offset, isBigEndian, noAssert); - neg = val & 0x8000; - if (!neg) { - return val; - } - - return (0xffff - val + 1) * -1; -} - -Buffer.prototype.readInt16LE = function(offset, noAssert) { - return readInt16(this, offset, false, noAssert); -}; - -Buffer.prototype.readInt16BE = function(offset, noAssert) { - return readInt16(this, offset, true, noAssert); -}; - -function readInt32(buffer, offset, isBigEndian, noAssert) { - var neg, val; - - if (!noAssert) { - assert.ok(typeof (isBigEndian) === 'boolean', - 'missing or invalid endian'); - - assert.ok(offset !== undefined && offset !== null, - 'missing offset'); - - assert.ok(offset + 3 < buffer.length, - 'Trying to read beyond buffer length'); - } - - val = readUInt32(buffer, offset, isBigEndian, noAssert); - neg = val & 0x80000000; - if (!neg) { - return (val); - } - - return (0xffffffff - val + 1) * -1; -} - -Buffer.prototype.readInt32LE = function(offset, noAssert) { - return readInt32(this, offset, false, noAssert); -}; - -Buffer.prototype.readInt32BE = function(offset, noAssert) { - return readInt32(this, offset, true, noAssert); -}; - -function readFloat(buffer, offset, isBigEndian, noAssert) { - if (!noAssert) { - assert.ok(typeof (isBigEndian) === 'boolean', - 'missing or invalid endian'); - - assert.ok(offset + 3 < buffer.length, - 'Trying to read beyond buffer length'); - } - - return require('buffer_ieee754').readIEEE754(buffer, offset, isBigEndian, - 23, 4); -} - -Buffer.prototype.readFloatLE = function(offset, noAssert) { - return readFloat(this, offset, false, noAssert); -}; - -Buffer.prototype.readFloatBE = function(offset, noAssert) { - return readFloat(this, offset, true, noAssert); -}; - -function readDouble(buffer, offset, isBigEndian, noAssert) { - if (!noAssert) { - assert.ok(typeof (isBigEndian) === 'boolean', - 'missing or invalid endian'); - - assert.ok(offset + 7 < buffer.length, - 'Trying to read beyond buffer length'); - } - - return require('buffer_ieee754').readIEEE754(buffer, offset, isBigEndian, - 52, 8); -} - -Buffer.prototype.readDoubleLE = function(offset, noAssert) { - return readDouble(this, offset, false, noAssert); -}; - -Buffer.prototype.readDoubleBE = function(offset, noAssert) { - return readDouble(this, offset, true, noAssert); -}; - - -/* - * We have to make sure that the value is a valid integer. This means that it is - * non-negative. It has no fractional component and that it does not exceed the - * maximum allowed value. - * - * value The number to check for validity - * - * max The maximum value - */ -function verifuint(value, max) { - assert.ok(typeof (value) == 'number', - 'cannot write a non-number as a number'); - - assert.ok(value >= 0, - 'specified a negative value for writing an unsigned value'); - - assert.ok(value <= max, 'value is larger than maximum value for type'); - - assert.ok(Math.floor(value) === value, 'value has a fractional component'); -} - -Buffer.prototype.writeUInt8 = function(value, offset, noAssert) { - var buffer = this; - - if (!noAssert) { - assert.ok(value !== undefined && value !== null, - 'missing value'); - - assert.ok(offset !== undefined && offset !== null, - 'missing offset'); - - assert.ok(offset < buffer.length, - 'trying to write beyond buffer length'); - - verifuint(value, 0xff); - } - - buffer[offset] = value; -}; - -function writeUInt16(buffer, value, offset, isBigEndian, noAssert) { - if (!noAssert) { - assert.ok(value !== undefined && value !== null, - 'missing value'); - - assert.ok(typeof (isBigEndian) === 'boolean', - 'missing or invalid endian'); - - assert.ok(offset !== undefined && offset !== null, - 'missing offset'); - - assert.ok(offset + 1 < buffer.length, - 'trying to write beyond buffer length'); - - verifuint(value, 0xffff); - } - - if (isBigEndian) { - buffer[offset] = (value & 0xff00) >>> 8; - buffer[offset + 1] = value & 0x00ff; - } else { - buffer[offset + 1] = (value & 0xff00) >>> 8; - buffer[offset] = value & 0x00ff; - } -} - -Buffer.prototype.writeUInt16LE = function(value, offset, noAssert) { - writeUInt16(this, value, offset, false, noAssert); -}; - -Buffer.prototype.writeUInt16BE = function(value, offset, noAssert) { - writeUInt16(this, value, offset, true, noAssert); -}; - -function writeUInt32(buffer, value, offset, isBigEndian, noAssert) { - if (!noAssert) { - assert.ok(value !== undefined && value !== null, - 'missing value'); - - assert.ok(typeof (isBigEndian) === 'boolean', - 'missing or invalid endian'); - - assert.ok(offset !== undefined && offset !== null, - 'missing offset'); - - assert.ok(offset + 3 < buffer.length, - 'trying to write beyond buffer length'); - - verifuint(value, 0xffffffff); - } - - if (isBigEndian) { - buffer[offset] = (value >>> 24) & 0xff; - buffer[offset + 1] = (value >>> 16) & 0xff; - buffer[offset + 2] = (value >>> 8) & 0xff; - buffer[offset + 3] = value & 0xff; - } else { - buffer[offset + 3] = (value >>> 24) & 0xff; - buffer[offset + 2] = (value >>> 16) & 0xff; - buffer[offset + 1] = (value >>> 8) & 0xff; - buffer[offset] = value & 0xff; - } -} - -Buffer.prototype.writeUInt32LE = function(value, offset, noAssert) { - writeUInt32(this, value, offset, false, noAssert); -}; - -Buffer.prototype.writeUInt32BE = function(value, offset, noAssert) { - writeUInt32(this, value, offset, true, noAssert); -}; - - -/* - * We now move onto our friends in the signed number category. Unlike unsigned - * numbers, we're going to have to worry a bit more about how we put values into - * arrays. Since we are only worrying about signed 32-bit values, we're in - * slightly better shape. Unfortunately, we really can't do our favorite binary - * & in this system. It really seems to do the wrong thing. For example: - * - * > -32 & 0xff - * 224 - * - * What's happening above is really: 0xe0 & 0xff = 0xe0. However, the results of - * this aren't treated as a signed number. Ultimately a bad thing. - * - * What we're going to want to do is basically create the unsigned equivalent of - * our representation and pass that off to the wuint* functions. To do that - * we're going to do the following: - * - * - if the value is positive - * we can pass it directly off to the equivalent wuint - * - if the value is negative - * we do the following computation: - * mb + val + 1, where - * mb is the maximum unsigned value in that byte size - * val is the Javascript negative integer - * - * - * As a concrete value, take -128. In signed 16 bits this would be 0xff80. If - * you do out the computations: - * - * 0xffff - 128 + 1 - * 0xffff - 127 - * 0xff80 - * - * You can then encode this value as the signed version. This is really rather - * hacky, but it should work and get the job done which is our goal here. - */ - -/* - * A series of checks to make sure we actually have a signed 32-bit number - */ -function verifsint(value, max, min) { - assert.ok(typeof (value) == 'number', - 'cannot write a non-number as a number'); - - assert.ok(value <= max, 'value larger than maximum allowed value'); - - assert.ok(value >= min, 'value smaller than minimum allowed value'); - - assert.ok(Math.floor(value) === value, 'value has a fractional component'); -} - -function verifIEEE754(value, max, min) { - assert.ok(typeof (value) == 'number', - 'cannot write a non-number as a number'); - - assert.ok(value <= max, 'value larger than maximum allowed value'); - - assert.ok(value >= min, 'value smaller than minimum allowed value'); -} - -Buffer.prototype.writeInt8 = function(value, offset, noAssert) { - var buffer = this; - - if (!noAssert) { - assert.ok(value !== undefined && value !== null, - 'missing value'); - - assert.ok(offset !== undefined && offset !== null, - 'missing offset'); - - assert.ok(offset < buffer.length, - 'Trying to write beyond buffer length'); - - verifsint(value, 0x7f, -0x80); - } - - if (value >= 0) { - buffer.writeUInt8(value, offset, noAssert); - } else { - buffer.writeUInt8(0xff + value + 1, offset, noAssert); - } -}; - -function writeInt16(buffer, value, offset, isBigEndian, noAssert) { - if (!noAssert) { - assert.ok(value !== undefined && value !== null, - 'missing value'); - - assert.ok(typeof (isBigEndian) === 'boolean', - 'missing or invalid endian'); - - assert.ok(offset !== undefined && offset !== null, - 'missing offset'); - - assert.ok(offset + 1 < buffer.length, - 'Trying to write beyond buffer length'); - - verifsint(value, 0x7fff, -0x8000); - } - - if (value >= 0) { - writeUInt16(buffer, value, offset, isBigEndian, noAssert); - } else { - writeUInt16(buffer, 0xffff + value + 1, offset, isBigEndian, noAssert); - } -} - -Buffer.prototype.writeInt16LE = function(value, offset, noAssert) { - writeInt16(this, value, offset, false, noAssert); -}; - -Buffer.prototype.writeInt16BE = function(value, offset, noAssert) { - writeInt16(this, value, offset, true, noAssert); -}; - -function writeInt32(buffer, value, offset, isBigEndian, noAssert) { - if (!noAssert) { - assert.ok(value !== undefined && value !== null, - 'missing value'); - - assert.ok(typeof (isBigEndian) === 'boolean', - 'missing or invalid endian'); - - assert.ok(offset !== undefined && offset !== null, - 'missing offset'); - - assert.ok(offset + 3 < buffer.length, - 'Trying to write beyond buffer length'); - - verifsint(value, 0x7fffffff, -0x80000000); - } - - if (value >= 0) { - writeUInt32(buffer, value, offset, isBigEndian, noAssert); - } else { - writeUInt32(buffer, 0xffffffff + value + 1, offset, isBigEndian, noAssert); - } -} - -Buffer.prototype.writeInt32LE = function(value, offset, noAssert) { - writeInt32(this, value, offset, false, noAssert); -}; - -Buffer.prototype.writeInt32BE = function(value, offset, noAssert) { - writeInt32(this, value, offset, true, noAssert); -}; - -function writeFloat(buffer, value, offset, isBigEndian, noAssert) { - if (!noAssert) { - assert.ok(value !== undefined && value !== null, - 'missing value'); - - assert.ok(typeof (isBigEndian) === 'boolean', - 'missing or invalid endian'); - - assert.ok(offset !== undefined && offset !== null, - 'missing offset'); - - assert.ok(offset + 3 < buffer.length, - 'Trying to write beyond buffer length'); - - verifIEEE754(value, 3.4028234663852886e+38, -3.4028234663852886e+38); - } - - require('buffer_ieee754').writeIEEE754(buffer, value, offset, isBigEndian, - 23, 4); -} - -Buffer.prototype.writeFloatLE = function(value, offset, noAssert) { - writeFloat(this, value, offset, false, noAssert); -}; - -Buffer.prototype.writeFloatBE = function(value, offset, noAssert) { - writeFloat(this, value, offset, true, noAssert); -}; - -function writeDouble(buffer, value, offset, isBigEndian, noAssert) { - if (!noAssert) { - assert.ok(value !== undefined && value !== null, - 'missing value'); - - assert.ok(typeof (isBigEndian) === 'boolean', - 'missing or invalid endian'); - - assert.ok(offset !== undefined && offset !== null, - 'missing offset'); - - assert.ok(offset + 7 < buffer.length, - 'Trying to write beyond buffer length'); - - verifIEEE754(value, 1.7976931348623157E+308, -1.7976931348623157E+308); - } - - require('buffer_ieee754').writeIEEE754(buffer, value, offset, isBigEndian, - 52, 8); -} - -Buffer.prototype.writeDoubleLE = function(value, offset, noAssert) { - writeDouble(this, value, offset, false, noAssert); -}; - -Buffer.prototype.writeDoubleBE = function(value, offset, noAssert) { - writeDouble(this, value, offset, true, noAssert); -}; - -SlowBuffer.prototype.readUInt8 = Buffer.prototype.readUInt8; -SlowBuffer.prototype.readUInt16LE = Buffer.prototype.readUInt16LE; -SlowBuffer.prototype.readUInt16BE = Buffer.prototype.readUInt16BE; -SlowBuffer.prototype.readUInt32LE = Buffer.prototype.readUInt32LE; -SlowBuffer.prototype.readUInt32BE = Buffer.prototype.readUInt32BE; -SlowBuffer.prototype.readInt8 = Buffer.prototype.readInt8; -SlowBuffer.prototype.readInt16LE = Buffer.prototype.readInt16LE; -SlowBuffer.prototype.readInt16BE = Buffer.prototype.readInt16BE; -SlowBuffer.prototype.readInt32LE = Buffer.prototype.readInt32LE; -SlowBuffer.prototype.readInt32BE = Buffer.prototype.readInt32BE; -SlowBuffer.prototype.readFloatLE = Buffer.prototype.readFloatLE; -SlowBuffer.prototype.readFloatBE = Buffer.prototype.readFloatBE; -SlowBuffer.prototype.readDoubleLE = Buffer.prototype.readDoubleLE; -SlowBuffer.prototype.readDoubleBE = Buffer.prototype.readDoubleBE; -SlowBuffer.prototype.writeUInt8 = Buffer.prototype.writeUInt8; -SlowBuffer.prototype.writeUInt16LE = Buffer.prototype.writeUInt16LE; -SlowBuffer.prototype.writeUInt16BE = Buffer.prototype.writeUInt16BE; -SlowBuffer.prototype.writeUInt32LE = Buffer.prototype.writeUInt32LE; -SlowBuffer.prototype.writeUInt32BE = Buffer.prototype.writeUInt32BE; -SlowBuffer.prototype.writeInt8 = Buffer.prototype.writeInt8; -SlowBuffer.prototype.writeInt16LE = Buffer.prototype.writeInt16LE; -SlowBuffer.prototype.writeInt16BE = Buffer.prototype.writeInt16BE; -SlowBuffer.prototype.writeInt32LE = Buffer.prototype.writeInt32LE; -SlowBuffer.prototype.writeInt32BE = Buffer.prototype.writeInt32BE; -SlowBuffer.prototype.writeFloatLE = Buffer.prototype.writeFloatLE; -SlowBuffer.prototype.writeFloatBE = Buffer.prototype.writeFloatBE; -SlowBuffer.prototype.writeDoubleLE = Buffer.prototype.writeDoubleLE; -SlowBuffer.prototype.writeDoubleBE = Buffer.prototype.writeDoubleBE; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/buffer_ieee754.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/buffer_ieee754.js deleted file mode 100644 index fb295c0ab4..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/buffer_ieee754.js +++ /dev/null @@ -1,84 +0,0 @@ -exports.readIEEE754 = function(buffer, offset, isBE, mLen, nBytes) { - var e, m, - eLen = nBytes * 8 - mLen - 1, - eMax = (1 << eLen) - 1, - eBias = eMax >> 1, - nBits = -7, - i = isBE ? 0 : (nBytes - 1), - d = isBE ? 1 : -1, - s = buffer[offset + i]; - - i += d; - - e = s & ((1 << (-nBits)) - 1); - s >>= (-nBits); - nBits += eLen; - for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8); - - m = e & ((1 << (-nBits)) - 1); - e >>= (-nBits); - nBits += mLen; - for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8); - - if (e === 0) { - e = 1 - eBias; - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity); - } else { - m = m + Math.pow(2, mLen); - e = e - eBias; - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen); -}; - -exports.writeIEEE754 = function(buffer, value, offset, isBE, mLen, nBytes) { - var e, m, c, - eLen = nBytes * 8 - mLen - 1, - eMax = (1 << eLen) - 1, - eBias = eMax >> 1, - rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0), - i = isBE ? (nBytes - 1) : 0, - d = isBE ? -1 : 1, - s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0; - - value = Math.abs(value); - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0; - e = eMax; - } else { - e = Math.floor(Math.log(value) / Math.LN2); - if (value * (c = Math.pow(2, -e)) < 1) { - e--; - c *= 2; - } - if (e + eBias >= 1) { - value += rt / c; - } else { - value += rt * Math.pow(2, 1 - eBias); - } - if (value * c >= 2) { - e++; - c /= 2; - } - - if (e + eBias >= eMax) { - m = 0; - e = eMax; - } else if (e + eBias >= 1) { - m = (value * c - 1) * Math.pow(2, mLen); - e = e + eBias; - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); - e = 0; - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8); - - e = (e << mLen) | m; - eLen += mLen; - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8); - - buffer[offset + i - d] |= s * 128; -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/events.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/events.js deleted file mode 100644 index bc9440a804..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/events.js +++ /dev/null @@ -1,171 +0,0 @@ -if (!process.EventEmitter) process.EventEmitter = function () {}; - -var EventEmitter = exports.EventEmitter = process.EventEmitter; -var isArray = typeof Array.isArray === 'function' - ? Array.isArray - : function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]' - } -; - -// By default EventEmitters will print a warning if more than -// 10 listeners are added to it. This is a useful default which -// helps finding memory leaks. -// -// Obviously not all Emitters should be limited to 10. This function allows -// that to be increased. Set to zero for unlimited. -var defaultMaxListeners = 10; -EventEmitter.prototype.setMaxListeners = function(n) { - if (!this._events) this._events = {}; - this._events.maxListeners = n; -}; - - -EventEmitter.prototype.emit = function(type) { - // If there is no 'error' event listener then throw. - if (type === 'error') { - if (!this._events || !this._events.error || - (isArray(this._events.error) && !this._events.error.length)) - { - if (arguments[1] instanceof Error) { - throw arguments[1]; // Unhandled 'error' event - } else { - throw new Error("Uncaught, unspecified 'error' event."); - } - return false; - } - } - - if (!this._events) return false; - var handler = this._events[type]; - if (!handler) return false; - - if (typeof handler == 'function') { - switch (arguments.length) { - // fast cases - case 1: - handler.call(this); - break; - case 2: - handler.call(this, arguments[1]); - break; - case 3: - handler.call(this, arguments[1], arguments[2]); - break; - // slower - default: - var args = Array.prototype.slice.call(arguments, 1); - handler.apply(this, args); - } - return true; - - } else if (isArray(handler)) { - var args = Array.prototype.slice.call(arguments, 1); - - var listeners = handler.slice(); - for (var i = 0, l = listeners.length; i < l; i++) { - listeners[i].apply(this, args); - } - return true; - - } else { - return false; - } -}; - -// EventEmitter is defined in src/node_events.cc -// EventEmitter.prototype.emit() is also defined there. -EventEmitter.prototype.addListener = function(type, listener) { - if ('function' !== typeof listener) { - throw new Error('addListener only takes instances of Function'); - } - - if (!this._events) this._events = {}; - - // To avoid recursion in the case that type == "newListeners"! Before - // adding it to the listeners, first emit "newListeners". - this.emit('newListener', type, listener); - - if (!this._events[type]) { - // Optimize the case of one listener. Don't need the extra array object. - this._events[type] = listener; - } else if (isArray(this._events[type])) { - - // Check for listener leak - if (!this._events[type].warned) { - var m; - if (this._events.maxListeners !== undefined) { - m = this._events.maxListeners; - } else { - m = defaultMaxListeners; - } - - if (m && m > 0 && this._events[type].length > m) { - this._events[type].warned = true; - console.error('(node) warning: possible EventEmitter memory ' + - 'leak detected. %d listeners added. ' + - 'Use emitter.setMaxListeners() to increase limit.', - this._events[type].length); - console.trace(); - } - } - - // If we've already got an array, just append. - this._events[type].push(listener); - } else { - // Adding the second element, need to change to array. - this._events[type] = [this._events[type], listener]; - } - - return this; -}; - -EventEmitter.prototype.on = EventEmitter.prototype.addListener; - -EventEmitter.prototype.once = function(type, listener) { - var self = this; - self.on(type, function g() { - self.removeListener(type, g); - listener.apply(this, arguments); - }); - - return this; -}; - -EventEmitter.prototype.removeListener = function(type, listener) { - if ('function' !== typeof listener) { - throw new Error('removeListener only takes instances of Function'); - } - - // does not use listeners(), so no side effect of creating _events[type] - if (!this._events || !this._events[type]) return this; - - var list = this._events[type]; - - if (isArray(list)) { - var i = list.indexOf(listener); - if (i < 0) return this; - list.splice(i, 1); - if (list.length == 0) - delete this._events[type]; - } else if (this._events[type] === listener) { - delete this._events[type]; - } - - return this; -}; - -EventEmitter.prototype.removeAllListeners = function(type) { - // does not use listeners(), so no side effect of creating _events[type] - if (type && this._events && this._events[type]) this._events[type] = null; - return this; -}; - -EventEmitter.prototype.listeners = function(type) { - if (!this._events) this._events = {}; - if (!this._events[type]) this._events[type] = []; - if (!isArray(this._events[type])) { - this._events[type] = [this._events[type]]; - } - return this._events[type]; -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/fs.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/fs.js deleted file mode 100644 index 5c9c0443bc..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/fs.js +++ /dev/null @@ -1 +0,0 @@ -// nothing to see here... no file methods for the browser diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/https.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/https.js deleted file mode 100644 index 4c6ac07d28..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/https.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('http'); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/net.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/net.js deleted file mode 100644 index 65b3dba385..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/net.js +++ /dev/null @@ -1 +0,0 @@ -// todo diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/path.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/path.js deleted file mode 100644 index 839011fdd4..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/path.js +++ /dev/null @@ -1,134 +0,0 @@ -function filter (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - if (fn(xs[i], i, xs)) res.push(xs[i]); - } - return res; -} - -// resolves . and .. elements in a path array with directory names there -// must be no slashes, empty elements, or device names (c:\) in the array -// (so also no leading and trailing slashes - it does not distinguish -// relative and absolute paths) -function normalizeArray(parts, allowAboveRoot) { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length; 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; -} - -// Regex to split a filename into [*, dir, basename, ext] -// posix version -var splitPathRe = /^(.+\/(?!$)|\/)?((?:.+?)?(\.[^.]*)?)$/; - -// path.resolve([from ...], to) -// posix version -exports.resolve = function() { -var resolvedPath = '', - resolvedAbsolute = false; - -for (var i = arguments.length; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) - ? arguments[i] - : process.cwd(); - - // Skip empty and invalid entries - if (typeof path !== 'string' || !path) { - continue; - } - - 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) - -// Normalize the path -resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { - return !!p; - }), !resolvedAbsolute).join('/'); - - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; -}; - -// path.normalize(path) -// posix version -exports.normalize = function(path) { -var isAbsolute = path.charAt(0) === '/', - trailingSlash = path.slice(-1) === '/'; - -// Normalize the path -path = normalizeArray(filter(path.split('/'), function(p) { - return !!p; - }), !isAbsolute).join('/'); - - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - - return (isAbsolute ? '/' : '') + path; -}; - - -// posix version -exports.join = function() { - var paths = Array.prototype.slice.call(arguments, 0); - return exports.normalize(filter(paths, function(p, index) { - return p && typeof p === 'string'; - }).join('/')); -}; - - -exports.dirname = function(path) { - var dir = splitPathRe.exec(path)[1] || ''; - var isWindows = false; - if (!dir) { - // No dirname - return '.'; - } else if (dir.length === 1 || - (isWindows && dir.length <= 3 && dir.charAt(1) === ':')) { - // It is just a slash or a drive letter with a slash - return dir; - } else { - // It is a full dirname, strip trailing slash - return dir.substring(0, dir.length - 1); - } -}; - - -exports.basename = function(path, ext) { - var f = splitPathRe.exec(path)[2] || ''; - // TODO: make this comparison case-insensitive on windows? - if (ext && f.substr(-1 * ext.length) === ext) { - f = f.substr(0, f.length - ext.length); - } - return f; -}; - - -exports.extname = function(path) { - return splitPathRe.exec(path)[3] || ''; -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/querystring.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/querystring.js deleted file mode 100644 index 069ff0b83e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/querystring.js +++ /dev/null @@ -1,250 +0,0 @@ -var isArray = typeof Array.isArray === 'function' - ? Array.isArray - : function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]' - }; - -var objectKeys = Object.keys || function objectKeys(object) { - if (object !== Object(object)) throw new TypeError('Invalid object'); - var keys = []; - for (var key in object) if (object.hasOwnProperty(key)) keys[keys.length] = key; - return keys; -} - - -/*! - * querystring - * Copyright(c) 2010 TJ Holowaychuk - * MIT Licensed - */ - -/** - * Library version. - */ - -exports.version = '0.3.1'; - -/** - * Object#toString() ref for stringify(). - */ - -var toString = Object.prototype.toString; - -/** - * Cache non-integer test regexp. - */ - -var notint = /[^0-9]/; - -/** - * Parse the given query `str`, returning an object. - * - * @param {String} str - * @return {Object} - * @api public - */ - -exports.parse = function(str){ - if (null == str || '' == str) return {}; - - function promote(parent, key) { - if (parent[key].length == 0) return parent[key] = {}; - var t = {}; - for (var i in parent[key]) t[i] = parent[key][i]; - parent[key] = t; - return t; - } - - return String(str) - .split('&') - .reduce(function(ret, pair){ - try{ - pair = decodeURIComponent(pair.replace(/\+/g, ' ')); - } catch(e) { - // ignore - } - - var eql = pair.indexOf('=') - , brace = lastBraceInKey(pair) - , key = pair.substr(0, brace || eql) - , val = pair.substr(brace || eql, pair.length) - , val = val.substr(val.indexOf('=') + 1, val.length) - , parent = ret; - - // ?foo - if ('' == key) key = pair, val = ''; - - // nested - if (~key.indexOf(']')) { - var parts = key.split('[') - , len = parts.length - , last = len - 1; - - function parse(parts, parent, key) { - var part = parts.shift(); - - // end - if (!part) { - if (isArray(parent[key])) { - parent[key].push(val); - } else if ('object' == typeof parent[key]) { - parent[key] = val; - } else if ('undefined' == typeof parent[key]) { - parent[key] = val; - } else { - parent[key] = [parent[key], val]; - } - // array - } else { - obj = parent[key] = parent[key] || []; - if (']' == part) { - if (isArray(obj)) { - if ('' != val) obj.push(val); - } else if ('object' == typeof obj) { - obj[objectKeys(obj).length] = val; - } else { - obj = parent[key] = [parent[key], val]; - } - // prop - } else if (~part.indexOf(']')) { - part = part.substr(0, part.length - 1); - if(notint.test(part) && isArray(obj)) obj = promote(parent, key); - parse(parts, obj, part); - // key - } else { - if(notint.test(part) && isArray(obj)) obj = promote(parent, key); - parse(parts, obj, part); - } - } - } - - parse(parts, parent, 'base'); - // optimize - } else { - if (notint.test(key) && isArray(parent.base)) { - var t = {}; - for(var k in parent.base) t[k] = parent.base[k]; - parent.base = t; - } - set(parent.base, key, val); - } - - return ret; - }, {base: {}}).base; -}; - -/** - * Turn the given `obj` into a query string - * - * @param {Object} obj - * @return {String} - * @api public - */ - -var stringify = exports.stringify = function(obj, prefix) { - if (isArray(obj)) { - return stringifyArray(obj, prefix); - } else if ('[object Object]' == toString.call(obj)) { - return stringifyObject(obj, prefix); - } else if ('string' == typeof obj) { - return stringifyString(obj, prefix); - } else { - return prefix; - } -}; - -/** - * Stringify the given `str`. - * - * @param {String} str - * @param {String} prefix - * @return {String} - * @api private - */ - -function stringifyString(str, prefix) { - if (!prefix) throw new TypeError('stringify expects an object'); - return prefix + '=' + encodeURIComponent(str); -} - -/** - * Stringify the given `arr`. - * - * @param {Array} arr - * @param {String} prefix - * @return {String} - * @api private - */ - -function stringifyArray(arr, prefix) { - var ret = []; - if (!prefix) throw new TypeError('stringify expects an object'); - for (var i = 0; i < arr.length; i++) { - ret.push(stringify(arr[i], prefix + '[]')); - } - return ret.join('&'); -} - -/** - * Stringify the given `obj`. - * - * @param {Object} obj - * @param {String} prefix - * @return {String} - * @api private - */ - -function stringifyObject(obj, prefix) { - var ret = [] - , keys = objectKeys(obj) - , key; - for (var i = 0, len = keys.length; i < len; ++i) { - key = keys[i]; - ret.push(stringify(obj[key], prefix - ? prefix + '[' + encodeURIComponent(key) + ']' - : encodeURIComponent(key))); - } - return ret.join('&'); -} - -/** - * Set `obj`'s `key` to `val` respecting - * the weird and wonderful syntax of a qs, - * where "foo=bar&foo=baz" becomes an array. - * - * @param {Object} obj - * @param {String} key - * @param {String} val - * @api private - */ - -function set(obj, key, val) { - var v = obj[key]; - if (undefined === v) { - obj[key] = val; - } else if (isArray(v)) { - v.push(val); - } else { - obj[key] = [v, val]; - } -} - -/** - * Locate last brace in `str` within the key. - * - * @param {String} str - * @return {Number} - * @api private - */ - -function lastBraceInKey(str) { - var len = str.length - , brace - , c; - for (var i = 0; i < len; ++i) { - c = str[i]; - if (']' == c) brace = false; - if ('[' == c) brace = true; - if ('=' == c && !brace) return i; - } -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/stream.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/stream.js deleted file mode 100644 index 4feb41045a..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/stream.js +++ /dev/null @@ -1,119 +0,0 @@ -var events = require('events'); -var util = require('util'); - -function Stream() { - events.EventEmitter.call(this); -} -util.inherits(Stream, events.EventEmitter); -module.exports = Stream; -// Backwards-compat with node 0.4.x -Stream.Stream = Stream; - -Stream.prototype.pipe = function(dest, options) { - var source = this; - - function ondata(chunk) { - if (dest.writable) { - if (false === dest.write(chunk) && source.pause) { - source.pause(); - } - } - } - - source.on('data', ondata); - - function ondrain() { - if (source.readable && source.resume) { - source.resume(); - } - } - - dest.on('drain', ondrain); - - // If the 'end' option is not supplied, dest.end() will be called when - // source gets the 'end' or 'close' events. Only dest.end() once, and - // only when all sources have ended. - if (!dest._isStdio && (!options || options.end !== false)) { - dest._pipeCount = dest._pipeCount || 0; - dest._pipeCount++; - - source.on('end', onend); - source.on('close', onclose); - } - - var didOnEnd = false; - function onend() { - if (didOnEnd) return; - didOnEnd = true; - - dest._pipeCount--; - - // remove the listeners - cleanup(); - - if (dest._pipeCount > 0) { - // waiting for other incoming streams to end. - return; - } - - dest.end(); - } - - - function onclose() { - if (didOnEnd) return; - didOnEnd = true; - - dest._pipeCount--; - - // remove the listeners - cleanup(); - - if (dest._pipeCount > 0) { - // waiting for other incoming streams to end. - return; - } - - dest.destroy(); - } - - // don't leave dangling pipes when there are errors. - function onerror(er) { - cleanup(); - if (this.listeners('error').length === 0) { - throw er; // Unhandled stream error in pipe. - } - } - - source.on('error', onerror); - dest.on('error', onerror); - - // remove all the event listeners that were added. - function cleanup() { - source.removeListener('data', ondata); - dest.removeListener('drain', ondrain); - - source.removeListener('end', onend); - source.removeListener('close', onclose); - - source.removeListener('error', onerror); - dest.removeListener('error', onerror); - - source.removeListener('end', cleanup); - source.removeListener('close', cleanup); - - dest.removeListener('end', cleanup); - dest.removeListener('close', cleanup); - } - - source.on('end', cleanup); - source.on('close', cleanup); - - dest.on('end', cleanup); - dest.on('close', cleanup); - - dest.emit('pipe', source); - - // Allow for unix-like usage: A.pipe(B).pipe(C) - return dest; -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/sys.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/sys.js deleted file mode 100644 index 262f93b78f..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/sys.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('util'); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/tls.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/tls.js deleted file mode 100644 index 65b3dba385..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/tls.js +++ /dev/null @@ -1 +0,0 @@ -// todo diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/tty.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/tty.js deleted file mode 100644 index a674e0f7ae..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/tty.js +++ /dev/null @@ -1,2 +0,0 @@ -exports.isatty = function () {}; -exports.setRawMode = function () {}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/url.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/url.js deleted file mode 100644 index d623925eb4..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/url.js +++ /dev/null @@ -1,604 +0,0 @@ -var punycode = { encode : function (s) { return s } }; - -exports.parse = urlParse; -exports.resolve = urlResolve; -exports.resolveObject = urlResolveObject; -exports.format = urlFormat; - -function arrayIndexOf(array, subject) { - for (var i = 0, j = array.length; i < j; i++) { - if(array[i] == subject) return i; - } - return -1; -} - -var objectKeys = Object.keys || function objectKeys(object) { - if (object !== Object(object)) throw new TypeError('Invalid object'); - var keys = []; - for (var key in object) if (object.hasOwnProperty(key)) keys[keys.length] = key; - return keys; -} - -// Reference: RFC 3986, RFC 1808, RFC 2396 - -// define these here so at least they only have to be -// compiled once on the first module load. -var protocolPattern = /^([a-z0-9.+-]+:)/i, - portPattern = /:[0-9]+$/, - // RFC 2396: characters reserved for delimiting URLs. - delims = ['<', '>', '"', '`', ' ', '\r', '\n', '\t'], - // RFC 2396: characters not allowed for various reasons. - unwise = ['{', '}', '|', '\\', '^', '~', '[', ']', '`'].concat(delims), - // Allowed by RFCs, but cause of XSS attacks. Always escape these. - autoEscape = ['\''], - // Characters that are never ever allowed in a hostname. - // Note that any invalid chars are also handled, but these - // are the ones that are *expected* to be seen, so we fast-path - // them. - nonHostChars = ['%', '/', '?', ';', '#'] - .concat(unwise).concat(autoEscape), - nonAuthChars = ['/', '@', '?', '#'].concat(delims), - hostnameMaxLen = 255, - hostnamePartPattern = /^[a-zA-Z0-9][a-z0-9A-Z_-]{0,62}$/, - hostnamePartStart = /^([a-zA-Z0-9][a-z0-9A-Z_-]{0,62})(.*)$/, - // protocols that can allow "unsafe" and "unwise" chars. - unsafeProtocol = { - 'javascript': true, - 'javascript:': true - }, - // protocols that never have a hostname. - hostlessProtocol = { - 'javascript': true, - 'javascript:': true - }, - // protocols that always have a path component. - pathedProtocol = { - 'http': true, - 'https': true, - 'ftp': true, - 'gopher': true, - 'file': true, - 'http:': true, - 'ftp:': true, - 'gopher:': true, - 'file:': true - }, - // protocols that always contain a // bit. - slashedProtocol = { - 'http': true, - 'https': true, - 'ftp': true, - 'gopher': true, - 'file': true, - 'http:': true, - 'https:': true, - 'ftp:': true, - 'gopher:': true, - 'file:': true - }, - querystring = require('querystring'); - -function urlParse(url, parseQueryString, slashesDenoteHost) { - if (url && typeof(url) === 'object' && url.href) return url; - - if (typeof url !== 'string') { - throw new TypeError("Parameter 'url' must be a string, not " + typeof url); - } - - var out = {}, - rest = url; - - // cut off any delimiters. - // This is to support parse stuff like "" - for (var i = 0, l = rest.length; i < l; i++) { - if (arrayIndexOf(delims, rest.charAt(i)) === -1) break; - } - if (i !== 0) rest = rest.substr(i); - - - var proto = protocolPattern.exec(rest); - if (proto) { - proto = proto[0]; - var lowerProto = proto.toLowerCase(); - out.protocol = lowerProto; - rest = rest.substr(proto.length); - } - - // figure out if it's got a host - // user@server is *always* interpreted as a hostname, and url - // resolution will treat //foo/bar as host=foo,path=bar because that's - // how the browser resolves relative URLs. - if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) { - var slashes = rest.substr(0, 2) === '//'; - if (slashes && !(proto && hostlessProtocol[proto])) { - rest = rest.substr(2); - out.slashes = true; - } - } - - if (!hostlessProtocol[proto] && - (slashes || (proto && !slashedProtocol[proto]))) { - // there's a hostname. - // the first instance of /, ?, ;, or # ends the host. - // don't enforce full RFC correctness, just be unstupid about it. - - // If there is an @ in the hostname, then non-host chars *are* allowed - // to the left of the first @ sign, unless some non-auth character - // comes *before* the @-sign. - // URLs are obnoxious. - var atSign = arrayIndexOf(rest, '@'); - if (atSign !== -1) { - // there *may be* an auth - var hasAuth = true; - for (var i = 0, l = nonAuthChars.length; i < l; i++) { - var index = arrayIndexOf(rest, nonAuthChars[i]); - if (index !== -1 && index < atSign) { - // not a valid auth. Something like http://foo.com/bar@baz/ - hasAuth = false; - break; - } - } - if (hasAuth) { - // pluck off the auth portion. - out.auth = rest.substr(0, atSign); - rest = rest.substr(atSign + 1); - } - } - - var firstNonHost = -1; - for (var i = 0, l = nonHostChars.length; i < l; i++) { - var index = arrayIndexOf(rest, nonHostChars[i]); - if (index !== -1 && - (firstNonHost < 0 || index < firstNonHost)) firstNonHost = index; - } - - if (firstNonHost !== -1) { - out.host = rest.substr(0, firstNonHost); - rest = rest.substr(firstNonHost); - } else { - out.host = rest; - rest = ''; - } - - // pull out port. - var p = parseHost(out.host); - var keys = objectKeys(p); - for (var i = 0, l = keys.length; i < l; i++) { - var key = keys[i]; - out[key] = p[key]; - } - - // we've indicated that there is a hostname, - // so even if it's empty, it has to be present. - out.hostname = out.hostname || ''; - - // validate a little. - if (out.hostname.length > hostnameMaxLen) { - out.hostname = ''; - } else { - var hostparts = out.hostname.split(/\./); - for (var i = 0, l = hostparts.length; i < l; i++) { - var part = hostparts[i]; - if (!part) continue; - if (!part.match(hostnamePartPattern)) { - var newpart = ''; - for (var j = 0, k = part.length; j < k; j++) { - if (part.charCodeAt(j) > 127) { - // we replace non-ASCII char with a temporary placeholder - // we need this to make sure size of hostname is not - // broken by replacing non-ASCII by nothing - newpart += 'x'; - } else { - newpart += part[j]; - } - } - // we test again with ASCII char only - if (!newpart.match(hostnamePartPattern)) { - var validParts = hostparts.slice(0, i); - var notHost = hostparts.slice(i + 1); - var bit = part.match(hostnamePartStart); - if (bit) { - validParts.push(bit[1]); - notHost.unshift(bit[2]); - } - if (notHost.length) { - rest = '/' + notHost.join('.') + rest; - } - out.hostname = validParts.join('.'); - break; - } - } - } - } - - // hostnames are always lower case. - out.hostname = out.hostname.toLowerCase(); - - // IDNA Support: Returns a puny coded representation of "domain". - // It only converts the part of the domain name that - // has non ASCII characters. I.e. it dosent matter if - // you call it with a domain that already is in ASCII. - var domainArray = out.hostname.split('.'); - var newOut = []; - for (var i = 0; i < domainArray.length; ++i) { - var s = domainArray[i]; - newOut.push(s.match(/[^A-Za-z0-9_-]/) ? - 'xn--' + punycode.encode(s) : s); - } - out.hostname = newOut.join('.'); - - out.host = (out.hostname || '') + - ((out.port) ? ':' + out.port : ''); - out.href += out.host; - } - - // now rest is set to the post-host stuff. - // chop off any delim chars. - if (!unsafeProtocol[lowerProto]) { - - // First, make 100% sure that any "autoEscape" chars get - // escaped, even if encodeURIComponent doesn't think they - // need to be. - for (var i = 0, l = autoEscape.length; i < l; i++) { - var ae = autoEscape[i]; - var esc = encodeURIComponent(ae); - if (esc === ae) { - esc = escape(ae); - } - rest = rest.split(ae).join(esc); - } - - // Now make sure that delims never appear in a url. - var chop = rest.length; - for (var i = 0, l = delims.length; i < l; i++) { - var c = arrayIndexOf(rest, delims[i]); - if (c !== -1) { - chop = Math.min(c, chop); - } - } - rest = rest.substr(0, chop); - } - - - // chop off from the tail first. - var hash = arrayIndexOf(rest, '#'); - if (hash !== -1) { - // got a fragment string. - out.hash = rest.substr(hash); - rest = rest.slice(0, hash); - } - var qm = arrayIndexOf(rest, '?'); - if (qm !== -1) { - out.search = rest.substr(qm); - out.query = rest.substr(qm + 1); - if (parseQueryString) { - out.query = querystring.parse(out.query); - } - rest = rest.slice(0, qm); - } else if (parseQueryString) { - // no query string, but parseQueryString still requested - out.search = ''; - out.query = {}; - } - if (rest) out.pathname = rest; - if (slashedProtocol[proto] && - out.hostname && !out.pathname) { - out.pathname = '/'; - } - - //to support http.request - if (out.pathname || out.search) { - out.path = (out.pathname ? out.pathname : '') + - (out.search ? out.search : ''); - } - - // finally, reconstruct the href based on what has been validated. - out.href = urlFormat(out); - return out; -} - -// format a parsed object into a url string -function urlFormat(obj) { - // ensure it's an object, and not a string url. - // If it's an obj, this is a no-op. - // this way, you can call url_format() on strings - // to clean up potentially wonky urls. - if (typeof(obj) === 'string') obj = urlParse(obj); - - var auth = obj.auth || ''; - if (auth) { - auth = auth.split('@').join('%40'); - for (var i = 0, l = nonAuthChars.length; i < l; i++) { - var nAC = nonAuthChars[i]; - auth = auth.split(nAC).join(encodeURIComponent(nAC)); - } - auth += '@'; - } - - var protocol = obj.protocol || '', - host = (obj.host !== undefined) ? auth + obj.host : - obj.hostname !== undefined ? ( - auth + obj.hostname + - (obj.port ? ':' + obj.port : '') - ) : - false, - pathname = obj.pathname || '', - query = obj.query && - ((typeof obj.query === 'object' && - objectKeys(obj.query).length) ? - querystring.stringify(obj.query) : - '') || '', - search = obj.search || (query && ('?' + query)) || '', - hash = obj.hash || ''; - - if (protocol && protocol.substr(-1) !== ':') protocol += ':'; - - // only the slashedProtocols get the //. Not mailto:, xmpp:, etc. - // unless they had them to begin with. - if (obj.slashes || - (!protocol || slashedProtocol[protocol]) && host !== false) { - host = '//' + (host || ''); - if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname; - } else if (!host) { - host = ''; - } - - if (hash && hash.charAt(0) !== '#') hash = '#' + hash; - if (search && search.charAt(0) !== '?') search = '?' + search; - - return protocol + host + pathname + search + hash; -} - -function urlResolve(source, relative) { - return urlFormat(urlResolveObject(source, relative)); -} - -function urlResolveObject(source, relative) { - if (!source) return relative; - - source = urlParse(urlFormat(source), false, true); - relative = urlParse(urlFormat(relative), false, true); - - // hash is always overridden, no matter what. - source.hash = relative.hash; - - if (relative.href === '') { - source.href = urlFormat(source); - return source; - } - - // hrefs like //foo/bar always cut to the protocol. - if (relative.slashes && !relative.protocol) { - relative.protocol = source.protocol; - //urlParse appends trailing / to urls like http://www.example.com - if (slashedProtocol[relative.protocol] && - relative.hostname && !relative.pathname) { - relative.path = relative.pathname = '/'; - } - relative.href = urlFormat(relative); - return relative; - } - - if (relative.protocol && relative.protocol !== source.protocol) { - // if it's a known url protocol, then changing - // the protocol does weird things - // first, if it's not file:, then we MUST have a host, - // and if there was a path - // to begin with, then we MUST have a path. - // if it is file:, then the host is dropped, - // because that's known to be hostless. - // anything else is assumed to be absolute. - if (!slashedProtocol[relative.protocol]) { - relative.href = urlFormat(relative); - return relative; - } - source.protocol = relative.protocol; - if (!relative.host && !hostlessProtocol[relative.protocol]) { - var relPath = (relative.pathname || '').split('/'); - while (relPath.length && !(relative.host = relPath.shift())); - if (!relative.host) relative.host = ''; - if (!relative.hostname) relative.hostname = ''; - if (relPath[0] !== '') relPath.unshift(''); - if (relPath.length < 2) relPath.unshift(''); - relative.pathname = relPath.join('/'); - } - source.pathname = relative.pathname; - source.search = relative.search; - source.query = relative.query; - source.host = relative.host || ''; - source.auth = relative.auth; - source.hostname = relative.hostname || relative.host; - source.port = relative.port; - //to support http.request - if (source.pathname !== undefined || source.search !== undefined) { - source.path = (source.pathname ? source.pathname : '') + - (source.search ? source.search : ''); - } - source.slashes = source.slashes || relative.slashes; - source.href = urlFormat(source); - return source; - } - - var isSourceAbs = (source.pathname && source.pathname.charAt(0) === '/'), - isRelAbs = ( - relative.host !== undefined || - relative.pathname && relative.pathname.charAt(0) === '/' - ), - mustEndAbs = (isRelAbs || isSourceAbs || - (source.host && relative.pathname)), - removeAllDots = mustEndAbs, - srcPath = source.pathname && source.pathname.split('/') || [], - relPath = relative.pathname && relative.pathname.split('/') || [], - psychotic = source.protocol && - !slashedProtocol[source.protocol]; - - // if the url is a non-slashed url, then relative - // links like ../.. should be able - // to crawl up to the hostname, as well. This is strange. - // source.protocol has already been set by now. - // Later on, put the first path part into the host field. - if (psychotic) { - - delete source.hostname; - delete source.port; - if (source.host) { - if (srcPath[0] === '') srcPath[0] = source.host; - else srcPath.unshift(source.host); - } - delete source.host; - if (relative.protocol) { - delete relative.hostname; - delete relative.port; - if (relative.host) { - if (relPath[0] === '') relPath[0] = relative.host; - else relPath.unshift(relative.host); - } - delete relative.host; - } - mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === ''); - } - - if (isRelAbs) { - // it's absolute. - source.host = (relative.host || relative.host === '') ? - relative.host : source.host; - source.hostname = (relative.hostname || relative.hostname === '') ? - relative.hostname : source.hostname; - source.search = relative.search; - source.query = relative.query; - srcPath = relPath; - // fall through to the dot-handling below. - } else if (relPath.length) { - // it's relative - // throw away the existing file, and take the new path instead. - if (!srcPath) srcPath = []; - srcPath.pop(); - srcPath = srcPath.concat(relPath); - source.search = relative.search; - source.query = relative.query; - } else if ('search' in relative) { - // just pull out the search. - // like href='?foo'. - // Put this after the other two cases because it simplifies the booleans - if (psychotic) { - source.hostname = source.host = srcPath.shift(); - //occationaly the auth can get stuck only in host - //this especialy happens in cases like - //url.resolveObject('mailto:local1@domain1', 'local2@domain2') - var authInHost = source.host && arrayIndexOf(source.host, '@') > 0 ? - source.host.split('@') : false; - if (authInHost) { - source.auth = authInHost.shift(); - source.host = source.hostname = authInHost.shift(); - } - } - source.search = relative.search; - source.query = relative.query; - //to support http.request - if (source.pathname !== undefined || source.search !== undefined) { - source.path = (source.pathname ? source.pathname : '') + - (source.search ? source.search : ''); - } - source.href = urlFormat(source); - return source; - } - if (!srcPath.length) { - // no path at all. easy. - // we've already handled the other stuff above. - delete source.pathname; - //to support http.request - if (!source.search) { - source.path = '/' + source.search; - } else { - delete source.path; - } - source.href = urlFormat(source); - return source; - } - // if a url ENDs in . or .., then it must get a trailing slash. - // however, if it ends in anything else non-slashy, - // then it must NOT get a trailing slash. - var last = srcPath.slice(-1)[0]; - var hasTrailingSlash = ( - (source.host || relative.host) && (last === '.' || last === '..') || - last === ''); - - // strip single dots, resolve double dots to parent dir - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = srcPath.length; i >= 0; i--) { - last = srcPath[i]; - if (last == '.') { - srcPath.splice(i, 1); - } else if (last === '..') { - srcPath.splice(i, 1); - up++; - } else if (up) { - srcPath.splice(i, 1); - up--; - } - } - - // if the path is allowed to go above the root, restore leading ..s - if (!mustEndAbs && !removeAllDots) { - for (; up--; up) { - srcPath.unshift('..'); - } - } - - if (mustEndAbs && srcPath[0] !== '' && - (!srcPath[0] || srcPath[0].charAt(0) !== '/')) { - srcPath.unshift(''); - } - - if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) { - srcPath.push(''); - } - - var isAbsolute = srcPath[0] === '' || - (srcPath[0] && srcPath[0].charAt(0) === '/'); - - // put the host back - if (psychotic) { - source.hostname = source.host = isAbsolute ? '' : - srcPath.length ? srcPath.shift() : ''; - //occationaly the auth can get stuck only in host - //this especialy happens in cases like - //url.resolveObject('mailto:local1@domain1', 'local2@domain2') - var authInHost = source.host && arrayIndexOf(source.host, '@') > 0 ? - source.host.split('@') : false; - if (authInHost) { - source.auth = authInHost.shift(); - source.host = source.hostname = authInHost.shift(); - } - } - - mustEndAbs = mustEndAbs || (source.host && srcPath.length); - - if (mustEndAbs && !isAbsolute) { - srcPath.unshift(''); - } - - source.pathname = srcPath.join('/'); - //to support request.http - if (source.pathname !== undefined || source.search !== undefined) { - source.path = (source.pathname ? source.pathname : '') + - (source.search ? source.search : ''); - } - source.auth = relative.auth || source.auth; - source.slashes = source.slashes || relative.slashes; - source.href = urlFormat(source); - return source; -} - -function parseHost(host) { - var out = {}; - var port = portPattern.exec(host); - if (port) { - port = port[0]; - out.port = port.substr(1); - host = host.substr(0, host.length - port.length); - } - if (host) out.hostname = host; - return out; -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/util.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/util.js deleted file mode 100644 index e7bdad405e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/util.js +++ /dev/null @@ -1,312 +0,0 @@ -var events = require('events'); - -exports.print = function () {}; -exports.puts = function () {}; -exports.debug = function() {}; - -exports.inspect = function(obj, showHidden, depth, colors) { - var seen = []; - - var stylize = function(str, styleType) { - // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics - var styles = - { 'bold' : [1, 22], - 'italic' : [3, 23], - 'underline' : [4, 24], - 'inverse' : [7, 27], - 'white' : [37, 39], - 'grey' : [90, 39], - 'black' : [30, 39], - 'blue' : [34, 39], - 'cyan' : [36, 39], - 'green' : [32, 39], - 'magenta' : [35, 39], - 'red' : [31, 39], - 'yellow' : [33, 39] }; - - var style = - { 'special': 'cyan', - 'number': 'blue', - 'boolean': 'yellow', - 'undefined': 'grey', - 'null': 'bold', - 'string': 'green', - 'date': 'magenta', - // "name": intentionally not styling - 'regexp': 'red' }[styleType]; - - if (style) { - return '\033[' + styles[style][0] + 'm' + str + - '\033[' + styles[style][1] + 'm'; - } else { - return str; - } - }; - if (! colors) { - stylize = function(str, styleType) { return str; }; - } - - function format(value, recurseTimes) { - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (value && typeof value.inspect === 'function' && - // Filter out the util module, it's inspect function is special - value !== exports && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - return value.inspect(recurseTimes); - } - - // Primitive types cannot have properties - switch (typeof value) { - case 'undefined': - return stylize('undefined', 'undefined'); - - case 'string': - var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') + '\''; - return stylize(simple, 'string'); - - case 'number': - return stylize('' + value, 'number'); - - case 'boolean': - return stylize('' + value, 'boolean'); - } - // For some reason typeof null is "object", so special case here. - if (value === null) { - return stylize('null', 'null'); - } - - // Look up the keys of the object. - var visible_keys = Object_keys(value); - var keys = showHidden ? Object_getOwnPropertyNames(value) : visible_keys; - - // Functions without properties can be shortcutted. - if (typeof value === 'function' && keys.length === 0) { - if (isRegExp(value)) { - return stylize('' + value, 'regexp'); - } else { - var name = value.name ? ': ' + value.name : ''; - return stylize('[Function' + name + ']', 'special'); - } - } - - // Dates without properties can be shortcutted - if (isDate(value) && keys.length === 0) { - return stylize(value.toUTCString(), 'date'); - } - - var base, type, braces; - // Determine the object type - if (isArray(value)) { - type = 'Array'; - braces = ['[', ']']; - } else { - type = 'Object'; - braces = ['{', '}']; - } - - // Make functions say that they are functions - if (typeof value === 'function') { - var n = value.name ? ': ' + value.name : ''; - base = (isRegExp(value)) ? ' ' + value : ' [Function' + n + ']'; - } else { - base = ''; - } - - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + value.toUTCString(); - } - - if (keys.length === 0) { - return braces[0] + base + braces[1]; - } - - if (recurseTimes < 0) { - if (isRegExp(value)) { - return stylize('' + value, 'regexp'); - } else { - return stylize('[Object]', 'special'); - } - } - - seen.push(value); - - var output = keys.map(function(key) { - var name, str; - if (value.__lookupGetter__) { - if (value.__lookupGetter__(key)) { - if (value.__lookupSetter__(key)) { - str = stylize('[Getter/Setter]', 'special'); - } else { - str = stylize('[Getter]', 'special'); - } - } else { - if (value.__lookupSetter__(key)) { - str = stylize('[Setter]', 'special'); - } - } - } - if (visible_keys.indexOf(key) < 0) { - name = '[' + key + ']'; - } - if (!str) { - if (seen.indexOf(value[key]) < 0) { - if (recurseTimes === null) { - str = format(value[key]); - } else { - str = format(value[key], recurseTimes - 1); - } - if (str.indexOf('\n') > -1) { - if (isArray(value)) { - str = str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n').substr(2); - } else { - str = '\n' + str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n'); - } - } - } else { - str = stylize('[Circular]', 'special'); - } - } - if (typeof name === 'undefined') { - if (type === 'Array' && key.match(/^\d+$/)) { - return str; - } - name = JSON.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); - name = stylize(name, 'name'); - } else { - name = name.replace(/'/g, "\\'") - .replace(/\\"/g, '"') - .replace(/(^"|"$)/g, "'"); - name = stylize(name, 'string'); - } - } - - return name + ': ' + str; - }); - - seen.pop(); - - var numLinesEst = 0; - var length = output.reduce(function(prev, cur) { - numLinesEst++; - if (cur.indexOf('\n') >= 0) numLinesEst++; - return prev + cur.length + 1; - }, 0); - - if (length > 50) { - output = braces[0] + - (base === '' ? '' : base + '\n ') + - ' ' + - output.join(',\n ') + - ' ' + - braces[1]; - - } else { - output = braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; - } - - return output; - } - return format(obj, (typeof depth === 'undefined' ? 2 : depth)); -}; - - -function isArray(ar) { - return ar instanceof Array || - Array.isArray(ar) || - (ar && ar !== Object.prototype && isArray(ar.__proto__)); -} - - -function isRegExp(re) { - return re instanceof RegExp || - (typeof re === 'object' && Object.prototype.toString.call(re) === '[object RegExp]'); -} - - -function isDate(d) { - if (d instanceof Date) return true; - if (typeof d !== 'object') return false; - var properties = Date.prototype && Object_getOwnPropertyNames(Date.prototype); - var proto = d.__proto__ && Object_getOwnPropertyNames(d.__proto__); - return JSON.stringify(proto) === JSON.stringify(properties); -} - -function pad(n) { - return n < 10 ? '0' + n.toString(10) : n.toString(10); -} - -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec']; - -// 26 Feb 16:19:34 -function timestamp() { - var d = new Date(); - var time = [pad(d.getHours()), - pad(d.getMinutes()), - pad(d.getSeconds())].join(':'); - return [d.getDate(), months[d.getMonth()], time].join(' '); -} - -exports.log = function (msg) {}; - -exports.pump = null; - -var Object_keys = Object.keys || function (obj) { - var res = []; - for (var key in obj) res.push(key); - return res; -}; - -var Object_getOwnPropertyNames = Object.getOwnPropertyNames || function (obj) { - var res = []; - for (var key in obj) { - if (Object.hasOwnProperty.call(obj, key)) res.push(key); - } - return res; -}; - -var Object_create = Object.create || function (prototype, properties) { - // from es5-shim - var object; - if (prototype === null) { - object = { '__proto__' : null }; - } - else { - if (typeof prototype !== 'object') { - throw new TypeError( - 'typeof prototype[' + (typeof prototype) + '] != \'object\'' - ); - } - var Type = function () {}; - Type.prototype = prototype; - object = new Type(); - object.__proto__ = prototype; - } - if (typeof properties !== 'undefined' && Object.defineProperties) { - Object.defineProperties(object, properties); - } - return object; -}; - -exports.inherits = function(ctor, superCtor) { - ctor.super_ = superCtor; - ctor.prototype = Object_create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/doc/methods.markdown b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/doc/methods.markdown deleted file mode 100644 index d5423e34a7..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/doc/methods.markdown +++ /dev/null @@ -1,177 +0,0 @@ -methods -======= - -This section documents the browserify api. - -````javascript -var browserify = require('browserify'); -```` - -var b = browserify(opts={}) ---------------------------- - -Return a new bundle object. - -`opts` may also contain these fields: - -* watch - set watches on files, see below -* cache - turn on caching for AST traversals, see below -* debug - turn on source mapping for debugging with `//@ sourceURL=...` -in browsers that support it -* exports - an array of the core items to export to the namespace. Available -items: 'require', 'process' - -If `opts` is a string, it is interpreted as a file to call `.addEntry()` with. - -### watch :: Boolean or Object - -Set watches on files and automatically rebundle when a file changes. - -This option defaults to false. If `opts.watch` is set to true, default watch -arguments are assumed or you can pass in an object to pass along as the second -parameter to `fs.watchFile()`. - -### cache :: Boolean or String - -If `cache` is a boolean, turn on caching at -`$HOME/.config/browserify/cache.json`. - -If `cache` is a string, turn on caching at the filename specified by `cache`. - -### bundle events - -`b` bundles will also emit events. - -#### 'syntaxError', err - -This event gets emitted when there is a syntax error somewhere in the build -process. If you don't listen for this event, the error will be printed to -stderr. - -#### 'bundle' - -In watch mode, this event is emitted when a new bundle has been generated. - -b.bundle() ----------- - -Return the bundled source as a string. - -By default, `require` is not exported to the environment if there are entry -files in the bundle but you can override that with `opts.exports`. - -`process` is only exported to the environment when `opts.exports` contains the -string `'process'`. - -b.require(file) ---------------- - -Require a file or files for inclusion in the bundle. - -If `file` is an array, require each element in it. - -If `file` is a non-array object, map an alias to a package name. -For instance to be able to map `require('jquery')` to the jquery-browserify -package, you can do: - -````javascript -b.require({ jquery : 'jquery-browserify' }) -```` - -and the same thing in middleware-form: - -````javascript -browserify({ require : { jquery : 'jquery-browserify' } }) -```` - -To mix alias objects with regular requires you could do: - -````javascript -browserify({ require : [ 'seq', { jquery : 'jquery-browserify' }, 'traverse' ]) -```` - -In practice you won't need to `b.require()` very many files since all the -`require()`s are read from each file that you require and automatically -included. - -b.ignore(file) --------------- - -Omit a file or files from being included by the AST walk to hunt down -`require()` statements. - -b.addEntry(file) ----------------- - -Append a file to the end of the bundle and execute it without having to -`require()` it. - -Specifying an entry point will let you `require()` other modules without having -to load the entry point in a ` -``` - -and the entry.js will just run and `require('traverse')` will just work™. - -convert a node module into a browser require-able standalone file ------------------------------------------------------------------ - -Install the `traverse` package into `./node_modules`: - -``` -npm install traverse -``` - -Bundle everything up with browserify: - -``` -$ npm install -g browserify -$ browserify -r traverse -o bundle.js -``` - -Look at the files! There is a new one: `bundle.js`. Now go into HTML land: - -``` html - - -``` diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/browserify.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/browserify.js deleted file mode 100644 index fd495dac29..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/browserify.js +++ /dev/null @@ -1,368 +0,0 @@ -var require = function (file, cwd) { - var resolved = require.resolve(file, cwd || '/'); - var mod = require.modules[resolved]; - if (!mod) throw new Error( - 'Failed to resolve module ' + file + ', tried ' + resolved - ); - var res = mod._cached ? mod._cached : mod(); - return res; -} - -require.paths = []; -require.modules = {}; -require.extensions = [".js",".coffee"]; - -require._core = { - 'assert': true, - 'events': true, - 'fs': true, - 'path': true, - 'vm': true -}; - -require.resolve = (function () { - return function (x, cwd) { - if (!cwd) cwd = '/'; - - if (require._core[x]) return x; - var path = require.modules.path(); - cwd = path.resolve('/', cwd); - var y = cwd || '/'; - - if (x.match(/^(?:\.\.?\/|\/)/)) { - var m = loadAsFileSync(path.resolve(y, x)) - || loadAsDirectorySync(path.resolve(y, x)); - if (m) return m; - } - - var n = loadNodeModulesSync(x, y); - if (n) return n; - - throw new Error("Cannot find module '" + x + "'"); - - function loadAsFileSync (x) { - if (require.modules[x]) { - return x; - } - - for (var i = 0; i < require.extensions.length; i++) { - var ext = require.extensions[i]; - if (require.modules[x + ext]) return x + ext; - } - } - - function loadAsDirectorySync (x) { - x = x.replace(/\/+$/, ''); - var pkgfile = x + '/package.json'; - if (require.modules[pkgfile]) { - var pkg = require.modules[pkgfile](); - var b = pkg.browserify; - if (typeof b === 'object' && b.main) { - var m = loadAsFileSync(path.resolve(x, b.main)); - if (m) return m; - } - else if (typeof b === 'string') { - var m = loadAsFileSync(path.resolve(x, b)); - if (m) return m; - } - else if (pkg.main) { - var m = loadAsFileSync(path.resolve(x, pkg.main)); - if (m) return m; - } - } - - return loadAsFileSync(x + '/index'); - } - - function loadNodeModulesSync (x, start) { - var dirs = nodeModulesPathsSync(start); - for (var i = 0; i < dirs.length; i++) { - var dir = dirs[i]; - var m = loadAsFileSync(dir + '/' + x); - if (m) return m; - var n = loadAsDirectorySync(dir + '/' + x); - if (n) return n; - } - - var m = loadAsFileSync(x); - if (m) return m; - } - - function nodeModulesPathsSync (start) { - var parts; - if (start === '/') parts = [ '' ]; - else parts = path.normalize(start).split('/'); - - var dirs = []; - for (var i = parts.length - 1; i >= 0; i--) { - if (parts[i] === 'node_modules') continue; - var dir = parts.slice(0, i + 1).join('/') + '/node_modules'; - dirs.push(dir); - } - - return dirs; - } - }; -})(); - -require.alias = function (from, to) { - var path = require.modules.path(); - var res = null; - try { - res = require.resolve(from + '/package.json', '/'); - } - catch (err) { - res = require.resolve(from, '/'); - } - var basedir = path.dirname(res); - - var keys = (Object.keys || function (obj) { - var res = []; - for (var key in obj) res.push(key) - return res; - })(require.modules); - - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (key.slice(0, basedir.length + 1) === basedir + '/') { - var f = key.slice(basedir.length); - require.modules[to + f] = require.modules[basedir + f]; - } - else if (key === basedir) { - require.modules[to] = require.modules[basedir]; - } - } -}; - -require.define = function (filename, fn) { - var dirname = require._core[filename] - ? '' - : require.modules.path().dirname(filename) - ; - - var require_ = function (file) { - return require(file, dirname) - }; - require_.resolve = function (name) { - return require.resolve(name, dirname); - }; - require_.modules = require.modules; - require_.define = require.define; - var module_ = { exports : {} }; - - require.modules[filename] = function () { - require.modules[filename]._cached = module_.exports; - fn.call( - module_.exports, - require_, - module_, - module_.exports, - dirname, - filename - ); - require.modules[filename]._cached = module_.exports; - return module_.exports; - }; -}; - -if (typeof process === 'undefined') process = {}; - -if (!process.nextTick) process.nextTick = (function () { - var queue = []; - var canPost = typeof window !== 'undefined' - && window.postMessage && window.addEventListener - ; - - if (canPost) { - window.addEventListener('message', function (ev) { - if (ev.source === window && ev.data === 'browserify-tick') { - ev.stopPropagation(); - if (queue.length > 0) { - var fn = queue.shift(); - fn(); - } - } - }, true); - } - - return function (fn) { - if (canPost) { - queue.push(fn); - window.postMessage('browserify-tick', '*'); - } - else setTimeout(fn, 0); - }; -})(); - -if (!process.title) process.title = 'browser'; - -if (!process.binding) process.binding = function (name) { - if (name === 'evals') return require('vm') - else throw new Error('No such module') -}; - -if (!process.cwd) process.cwd = function () { return '.' }; - -require.define("path", function (require, module, exports, __dirname, __filename) { -function filter (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - if (fn(xs[i], i, xs)) res.push(xs[i]); - } - return res; -} - -// resolves . and .. elements in a path array with directory names there -// must be no slashes, empty elements, or device names (c:\) in the array -// (so also no leading and trailing slashes - it does not distinguish -// relative and absolute paths) -function normalizeArray(parts, allowAboveRoot) { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length; 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; -} - -// Regex to split a filename into [*, dir, basename, ext] -// posix version -var splitPathRe = /^(.+\/(?!$)|\/)?((?:.+?)?(\.[^.]*)?)$/; - -// path.resolve([from ...], to) -// posix version -exports.resolve = function() { -var resolvedPath = '', - resolvedAbsolute = false; - -for (var i = arguments.length; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) - ? arguments[i] - : process.cwd(); - - // Skip empty and invalid entries - if (typeof path !== 'string' || !path) { - continue; - } - - 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) - -// Normalize the path -resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { - return !!p; - }), !resolvedAbsolute).join('/'); - - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; -}; - -// path.normalize(path) -// posix version -exports.normalize = function(path) { -var isAbsolute = path.charAt(0) === '/', - trailingSlash = path.slice(-1) === '/'; - -// Normalize the path -path = normalizeArray(filter(path.split('/'), function(p) { - return !!p; - }), !isAbsolute).join('/'); - - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - - return (isAbsolute ? '/' : '') + path; -}; - - -// posix version -exports.join = function() { - var paths = Array.prototype.slice.call(arguments, 0); - return exports.normalize(filter(paths, function(p, index) { - return p && typeof p === 'string'; - }).join('/')); -}; - - -exports.dirname = function(path) { - var dir = splitPathRe.exec(path)[1] || ''; - var isWindows = false; - if (!dir) { - // No dirname - return '.'; - } else if (dir.length === 1 || - (isWindows && dir.length <= 3 && dir.charAt(1) === ':')) { - // It is just a slash or a drive letter with a slash - return dir; - } else { - // It is a full dirname, strip trailing slash - return dir.substring(0, dir.length - 1); - } -}; - - -exports.basename = function(path, ext) { - var f = splitPathRe.exec(path)[2] || ''; - // TODO: make this comparison case-insensitive on windows? - if (ext && f.substr(-1 * ext.length) === ext) { - f = f.substr(0, f.length - ext.length); - } - return f; -}; - - -exports.extname = function(path) { - return splitPathRe.exec(path)[3] || ''; -}; - -}); - -require.define("/foo.js", function (require, module, exports, __dirname, __filename) { -var bar = require('./bar'); - -module.exports = function (x) { - return x * bar.coeff(x) + (x * 3 - 2) -}; - -}); - -require.define("/bar.js", function (require, module, exports, __dirname, __filename) { -exports.coeff = function (x) { - return Math.log(x) / Math.log(2) + 1; -}; - -}); - -require.define("/entry.js", function (require, module, exports, __dirname, __filename) { - var foo = require('./foo'); - -window.onload = function () { - document.getElementById('result').innerHTML = foo(100); -}; - -}); -require("/entry.js"); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/build.sh b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/build.sh deleted file mode 100755 index 17c69ac4c0..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -browserify js/entry.js -v -o browserify.js diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/index.html b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/index.html deleted file mode 100644 index 243ac26d6f..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - foo = - - - diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/js/bar.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/js/bar.js deleted file mode 100644 index 7d6fd9ca27..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/js/bar.js +++ /dev/null @@ -1,3 +0,0 @@ -exports.coeff = function (x) { - return Math.log(x) / Math.log(2) + 1; -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/js/entry.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/js/entry.js deleted file mode 100644 index adf3b4ba1c..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/js/entry.js +++ /dev/null @@ -1,5 +0,0 @@ -var foo = require('./foo'); - -window.onload = function () { - document.getElementById('result').innerHTML = foo(100); -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/js/foo.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/js/foo.js deleted file mode 100644 index ca0bc13ef1..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/js/foo.js +++ /dev/null @@ -1,5 +0,0 @@ -var bar = require('./bar'); - -module.exports = function (x) { - return x * bar.coeff(x) + (x * 3 - 2) -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/server.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/server.js deleted file mode 100755 index eea51eeebb..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/server.js +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env node - -var connect = require('connect'); -var server = connect.createServer(); - -server.use(connect.static(__dirname)); -server.listen(8080); -console.log('Listening on :8080'); -console.log('Make sure to run ./build.sh to generate browserify.js'); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/index.html b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/index.html deleted file mode 100644 index 243ac26d6f..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - foo = - - - diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/js/bar.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/js/bar.js deleted file mode 100644 index 7d6fd9ca27..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/js/bar.js +++ /dev/null @@ -1,3 +0,0 @@ -exports.coeff = function (x) { - return Math.log(x) / Math.log(2) + 1; -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/js/entry.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/js/entry.js deleted file mode 100644 index adf3b4ba1c..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/js/entry.js +++ /dev/null @@ -1,5 +0,0 @@ -var foo = require('./foo'); - -window.onload = function () { - document.getElementById('result').innerHTML = foo(100); -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/js/foo.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/js/foo.js deleted file mode 100644 index ca0bc13ef1..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/js/foo.js +++ /dev/null @@ -1,5 +0,0 @@ -var bar = require('./bar'); - -module.exports = function (x) { - return x * bar.coeff(x) + (x * 3 - 2) -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/server.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/server.js deleted file mode 100644 index eb2b84b896..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/server.js +++ /dev/null @@ -1,11 +0,0 @@ -var connect = require('connect'); -var server = connect.createServer(); -server.use(connect.static(__dirname)); - -var browserify = require('browserify'); -var bundle = browserify(__dirname + '/js/entry.js'); -server.use(bundle); - -var port = parseInt(process.argv[2] || 8080, 10); -server.listen(port); -console.log('Listening on :' + port); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/using-http/bundle.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/using-http/bundle.js deleted file mode 100644 index 08b05bf6dc..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/using-http/bundle.js +++ /dev/null @@ -1,813 +0,0 @@ -var require = function (file, cwd) { - var resolved = require.resolve(file, cwd || '/'); - var mod = require.modules[resolved]; - if (!mod) throw new Error( - 'Failed to resolve module ' + file + ', tried ' + resolved - ); - var res = mod._cached ? mod._cached : mod(); - return res; -} - -require.paths = []; -require.modules = {}; -require.extensions = [".js",".coffee"]; - -require._core = { - 'assert': true, - 'events': true, - 'fs': true, - 'path': true, - 'vm': true -}; - -require.resolve = (function () { - return function (x, cwd) { - if (!cwd) cwd = '/'; - - if (require._core[x]) return x; - var path = require.modules.path(); - cwd = path.resolve('/', cwd); - var y = cwd || '/'; - - if (x.match(/^(?:\.\.?\/|\/)/)) { - var m = loadAsFileSync(path.resolve(y, x)) - || loadAsDirectorySync(path.resolve(y, x)); - if (m) return m; - } - - var n = loadNodeModulesSync(x, y); - if (n) return n; - - throw new Error("Cannot find module '" + x + "'"); - - function loadAsFileSync (x) { - if (require.modules[x]) { - return x; - } - - for (var i = 0; i < require.extensions.length; i++) { - var ext = require.extensions[i]; - if (require.modules[x + ext]) return x + ext; - } - } - - function loadAsDirectorySync (x) { - x = x.replace(/\/+$/, ''); - var pkgfile = x + '/package.json'; - if (require.modules[pkgfile]) { - var pkg = require.modules[pkgfile](); - var b = pkg.browserify; - if (typeof b === 'object' && b.main) { - var m = loadAsFileSync(path.resolve(x, b.main)); - if (m) return m; - } - else if (typeof b === 'string') { - var m = loadAsFileSync(path.resolve(x, b)); - if (m) return m; - } - else if (pkg.main) { - var m = loadAsFileSync(path.resolve(x, pkg.main)); - if (m) return m; - } - } - - return loadAsFileSync(x + '/index'); - } - - function loadNodeModulesSync (x, start) { - var dirs = nodeModulesPathsSync(start); - for (var i = 0; i < dirs.length; i++) { - var dir = dirs[i]; - var m = loadAsFileSync(dir + '/' + x); - if (m) return m; - var n = loadAsDirectorySync(dir + '/' + x); - if (n) return n; - } - - var m = loadAsFileSync(x); - if (m) return m; - } - - function nodeModulesPathsSync (start) { - var parts; - if (start === '/') parts = [ '' ]; - else parts = path.normalize(start).split('/'); - - var dirs = []; - for (var i = parts.length - 1; i >= 0; i--) { - if (parts[i] === 'node_modules') continue; - var dir = parts.slice(0, i + 1).join('/') + '/node_modules'; - dirs.push(dir); - } - - return dirs; - } - }; -})(); - -require.alias = function (from, to) { - var path = require.modules.path(); - var res = null; - try { - res = require.resolve(from + '/package.json', '/'); - } - catch (err) { - res = require.resolve(from, '/'); - } - var basedir = path.dirname(res); - - var keys = (Object.keys || function (obj) { - var res = []; - for (var key in obj) res.push(key) - return res; - })(require.modules); - - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (key.slice(0, basedir.length + 1) === basedir + '/') { - var f = key.slice(basedir.length); - require.modules[to + f] = require.modules[basedir + f]; - } - else if (key === basedir) { - require.modules[to] = require.modules[basedir]; - } - } -}; - -require.define = function (filename, fn) { - var dirname = require._core[filename] - ? '' - : require.modules.path().dirname(filename) - ; - - var require_ = function (file) { - return require(file, dirname) - }; - require_.resolve = function (name) { - return require.resolve(name, dirname); - }; - require_.modules = require.modules; - require_.define = require.define; - var module_ = { exports : {} }; - - require.modules[filename] = function () { - require.modules[filename]._cached = module_.exports; - fn.call( - module_.exports, - require_, - module_, - module_.exports, - dirname, - filename - ); - require.modules[filename]._cached = module_.exports; - return module_.exports; - }; -}; - -if (typeof process === 'undefined') process = {}; - -if (!process.nextTick) process.nextTick = (function () { - var queue = []; - var canPost = typeof window !== 'undefined' - && window.postMessage && window.addEventListener - ; - - if (canPost) { - window.addEventListener('message', function (ev) { - if (ev.source === window && ev.data === 'browserify-tick') { - ev.stopPropagation(); - if (queue.length > 0) { - var fn = queue.shift(); - fn(); - } - } - }, true); - } - - return function (fn) { - if (canPost) { - queue.push(fn); - window.postMessage('browserify-tick', '*'); - } - else setTimeout(fn, 0); - }; -})(); - -if (!process.title) process.title = 'browser'; - -if (!process.binding) process.binding = function (name) { - if (name === 'evals') return require('vm') - else throw new Error('No such module') -}; - -if (!process.cwd) process.cwd = function () { return '.' }; - -require.define("path", function (require, module, exports, __dirname, __filename) { -function filter (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - if (fn(xs[i], i, xs)) res.push(xs[i]); - } - return res; -} - -// resolves . and .. elements in a path array with directory names there -// must be no slashes, empty elements, or device names (c:\) in the array -// (so also no leading and trailing slashes - it does not distinguish -// relative and absolute paths) -function normalizeArray(parts, allowAboveRoot) { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length; 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; -} - -// Regex to split a filename into [*, dir, basename, ext] -// posix version -var splitPathRe = /^(.+\/(?!$)|\/)?((?:.+?)?(\.[^.]*)?)$/; - -// path.resolve([from ...], to) -// posix version -exports.resolve = function() { -var resolvedPath = '', - resolvedAbsolute = false; - -for (var i = arguments.length; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) - ? arguments[i] - : process.cwd(); - - // Skip empty and invalid entries - if (typeof path !== 'string' || !path) { - continue; - } - - 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) - -// Normalize the path -resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { - return !!p; - }), !resolvedAbsolute).join('/'); - - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; -}; - -// path.normalize(path) -// posix version -exports.normalize = function(path) { -var isAbsolute = path.charAt(0) === '/', - trailingSlash = path.slice(-1) === '/'; - -// Normalize the path -path = normalizeArray(filter(path.split('/'), function(p) { - return !!p; - }), !isAbsolute).join('/'); - - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - - return (isAbsolute ? '/' : '') + path; -}; - - -// posix version -exports.join = function() { - var paths = Array.prototype.slice.call(arguments, 0); - return exports.normalize(filter(paths, function(p, index) { - return p && typeof p === 'string'; - }).join('/')); -}; - - -exports.dirname = function(path) { - var dir = splitPathRe.exec(path)[1] || ''; - var isWindows = false; - if (!dir) { - // No dirname - return '.'; - } else if (dir.length === 1 || - (isWindows && dir.length <= 3 && dir.charAt(1) === ':')) { - // It is just a slash or a drive letter with a slash - return dir; - } else { - // It is a full dirname, strip trailing slash - return dir.substring(0, dir.length - 1); - } -}; - - -exports.basename = function(path, ext) { - var f = splitPathRe.exec(path)[2] || ''; - // TODO: make this comparison case-insensitive on windows? - if (ext && f.substr(-1 * ext.length) === ext) { - f = f.substr(0, f.length - ext.length); - } - return f; -}; - - -exports.extname = function(path) { - return splitPathRe.exec(path)[3] || ''; -}; - -}); - -require.define("http", function (require, module, exports, __dirname, __filename) { -module.exports = require("http-browserify") -}); - -require.define("/node_modules/http-browserify/package.json", function (require, module, exports, __dirname, __filename) { -module.exports = {"main":"index.js","browserify":"index.js"} -}); - -require.define("/node_modules/http-browserify/index.js", function (require, module, exports, __dirname, __filename) { -var http = module.exports; -var EventEmitter = require('events').EventEmitter; -var Request = require('./lib/request'); - -http.request = function (params, cb) { - if (!params) params = {}; - if (!params.host) params.host = window.location.host.split(':')[0]; - if (!params.port) params.port = window.location.port; - - var req = new Request(new xhrHttp, params); - if (cb) req.on('response', cb); - return req; -}; - -http.get = function (params, cb) { - params.method = 'GET'; - var req = http.request(params, cb); - req.end(); - return req; -}; - -var xhrHttp = (function () { - if (typeof window === 'undefined') { - throw new Error('no window object present'); - } - else if (window.XMLHttpRequest) { - return window.XMLHttpRequest; - } - else if (window.ActiveXObject) { - var axs = [ - 'Msxml2.XMLHTTP.6.0', - 'Msxml2.XMLHTTP.3.0', - 'Microsoft.XMLHTTP' - ]; - for (var i = 0; i < axs.length; i++) { - try { - var ax = new(window.ActiveXObject)(axs[i]); - return function () { - if (ax) { - var ax_ = ax; - ax = null; - return ax_; - } - else { - return new(window.ActiveXObject)(axs[i]); - } - }; - } - catch (e) {} - } - throw new Error('ajax not supported in this browser') - } - else { - throw new Error('ajax not supported in this browser'); - } -})(); - -}); - -require.define("events", function (require, module, exports, __dirname, __filename) { -if (!process.EventEmitter) process.EventEmitter = function () {}; - -var EventEmitter = exports.EventEmitter = process.EventEmitter; -var isArray = typeof Array.isArray === 'function' - ? Array.isArray - : function (xs) { - return Object.toString.call(xs) === '[object Array]' - } -; - -// By default EventEmitters will print a warning if more than -// 10 listeners are added to it. This is a useful default which -// helps finding memory leaks. -// -// Obviously not all Emitters should be limited to 10. This function allows -// that to be increased. Set to zero for unlimited. -var defaultMaxListeners = 10; -EventEmitter.prototype.setMaxListeners = function(n) { - if (!this._events) this._events = {}; - this._events.maxListeners = n; -}; - - -EventEmitter.prototype.emit = function(type) { - // If there is no 'error' event listener then throw. - if (type === 'error') { - if (!this._events || !this._events.error || - (isArray(this._events.error) && !this._events.error.length)) - { - if (arguments[1] instanceof Error) { - throw arguments[1]; // Unhandled 'error' event - } else { - throw new Error("Uncaught, unspecified 'error' event."); - } - return false; - } - } - - if (!this._events) return false; - var handler = this._events[type]; - if (!handler) return false; - - if (typeof handler == 'function') { - switch (arguments.length) { - // fast cases - case 1: - handler.call(this); - break; - case 2: - handler.call(this, arguments[1]); - break; - case 3: - handler.call(this, arguments[1], arguments[2]); - break; - // slower - default: - var args = Array.prototype.slice.call(arguments, 1); - handler.apply(this, args); - } - return true; - - } else if (isArray(handler)) { - var args = Array.prototype.slice.call(arguments, 1); - - var listeners = handler.slice(); - for (var i = 0, l = listeners.length; i < l; i++) { - listeners[i].apply(this, args); - } - return true; - - } else { - return false; - } -}; - -// EventEmitter is defined in src/node_events.cc -// EventEmitter.prototype.emit() is also defined there. -EventEmitter.prototype.addListener = function(type, listener) { - if ('function' !== typeof listener) { - throw new Error('addListener only takes instances of Function'); - } - - if (!this._events) this._events = {}; - - // To avoid recursion in the case that type == "newListeners"! Before - // adding it to the listeners, first emit "newListeners". - this.emit('newListener', type, listener); - - if (!this._events[type]) { - // Optimize the case of one listener. Don't need the extra array object. - this._events[type] = listener; - } else if (isArray(this._events[type])) { - - // Check for listener leak - if (!this._events[type].warned) { - var m; - if (this._events.maxListeners !== undefined) { - m = this._events.maxListeners; - } else { - m = defaultMaxListeners; - } - - if (m && m > 0 && this._events[type].length > m) { - this._events[type].warned = true; - console.error('(node) warning: possible EventEmitter memory ' + - 'leak detected. %d listeners added. ' + - 'Use emitter.setMaxListeners() to increase limit.', - this._events[type].length); - console.trace(); - } - } - - // If we've already got an array, just append. - this._events[type].push(listener); - } else { - // Adding the second element, need to change to array. - this._events[type] = [this._events[type], listener]; - } - - return this; -}; - -EventEmitter.prototype.on = EventEmitter.prototype.addListener; - -EventEmitter.prototype.once = function(type, listener) { - var self = this; - self.on(type, function g() { - self.removeListener(type, g); - listener.apply(this, arguments); - }); - - return this; -}; - -EventEmitter.prototype.removeListener = function(type, listener) { - if ('function' !== typeof listener) { - throw new Error('removeListener only takes instances of Function'); - } - - // does not use listeners(), so no side effect of creating _events[type] - if (!this._events || !this._events[type]) return this; - - var list = this._events[type]; - - if (isArray(list)) { - var i = list.indexOf(listener); - if (i < 0) return this; - list.splice(i, 1); - if (list.length == 0) - delete this._events[type]; - } else if (this._events[type] === listener) { - delete this._events[type]; - } - - return this; -}; - -EventEmitter.prototype.removeAllListeners = function(type) { - // does not use listeners(), so no side effect of creating _events[type] - if (type && this._events && this._events[type]) this._events[type] = null; - return this; -}; - -EventEmitter.prototype.listeners = function(type) { - if (!this._events) this._events = {}; - if (!this._events[type]) this._events[type] = []; - if (!isArray(this._events[type])) { - this._events[type] = [this._events[type]]; - } - return this._events[type]; -}; - -}); - -require.define("/node_modules/http-browserify/lib/request.js", function (require, module, exports, __dirname, __filename) { -var EventEmitter = require('events').EventEmitter; -var Response = require('./response'); - -var Request = module.exports = function (xhr, params) { - var self = this; - self.xhr = xhr; - self.body = ''; - - var uri = params.host + ':' + params.port + (params.path || '/'); - - xhr.open( - params.method || 'GET', - (params.scheme || 'http') + '://' + uri, - true - ); - - if (params.headers) { - Object.keys(params.headers).forEach(function (key) { - if (!self.isSafeRequestHeader(key)) return; - var value = params.headers[key]; - if (Array.isArray(value)) { - value.forEach(function (v) { - xhr.setRequestHeader(key, v); - }); - } - else xhr.setRequestHeader(key, value) - }); - } - - var res = new Response; - res.on('ready', function () { - self.emit('response', res); - }); - - xhr.onreadystatechange = function () { - res.handle(xhr); - }; -}; - -Request.prototype = new EventEmitter; - -Request.prototype.setHeader = function (key, value) { - if ((Array.isArray && Array.isArray(value)) - || value instanceof Array) { - for (var i = 0; i < value.length; i++) { - this.xhr.setRequestHeader(key, value[i]); - } - } - else { - this.xhr.setRequestHeader(key, value); - } -}; - -Request.prototype.write = function (s) { - this.body += s; -}; - -Request.prototype.end = function (s) { - if (s !== undefined) this.write(s); - this.xhr.send(this.body); -}; - -// Taken from http://dxr.mozilla.org/mozilla/mozilla-central/content/base/src/nsXMLHttpRequest.cpp.html -Request.unsafeHeaders = [ - "accept-charset", - "accept-encoding", - "access-control-request-headers", - "access-control-request-method", - "connection", - "content-length", - "cookie", - "cookie2", - "content-transfer-encoding", - "date", - "expect", - "host", - "keep-alive", - "origin", - "referer", - "te", - "trailer", - "transfer-encoding", - "upgrade", - "user-agent", - "via" -]; - -Request.prototype.isSafeRequestHeader = function (headerName) { - if (!headerName) return false; - return (Request.unsafeHeaders.indexOf(headerName.toLowerCase()) === -1) -}; - -}); - -require.define("/node_modules/http-browserify/lib/response.js", function (require, module, exports, __dirname, __filename) { -var EventEmitter = require('events').EventEmitter; - -var Response = module.exports = function (res) { - this.offset = 0; -}; - -Response.prototype = new EventEmitter; - -var capable = { - streaming : true, - status2 : true -}; - -function parseHeaders (res) { - var lines = res.getAllResponseHeaders().split(/\r?\n/); - var headers = {}; - for (var i = 0; i < lines.length; i++) { - var line = lines[i]; - if (line === '') continue; - - var m = line.match(/^([^:]+):\s*(.*)/); - if (m) { - var key = m[1].toLowerCase(), value = m[2]; - - if (headers[key] !== undefined) { - if ((Array.isArray && Array.isArray(headers[key])) - || headers[key] instanceof Array) { - headers[key].push(value); - } - else { - headers[key] = [ headers[key], value ]; - } - } - else { - headers[key] = value; - } - } - else { - headers[line] = true; - } - } - return headers; -} - -Response.prototype.getHeader = function (key) { - return this.headers[key.toLowerCase()]; -}; - -Response.prototype.handle = function (res) { - if (res.readyState === 2 && capable.status2) { - try { - this.statusCode = res.status; - this.headers = parseHeaders(res); - } - catch (err) { - capable.status2 = false; - } - - if (capable.status2) { - this.emit('ready'); - } - } - else if (capable.streaming && res.readyState === 3) { - try { - if (!this.statusCode) { - this.statusCode = res.status; - this.headers = parseHeaders(res); - this.emit('ready'); - } - } - catch (err) {} - - try { - this.write(res); - } - catch (err) { - capable.streaming = false; - } - } - else if (res.readyState === 4) { - if (!this.statusCode) { - this.statusCode = res.status; - this.emit('ready'); - } - this.write(res); - - if (res.error) { - this.emit('error', res.responseText); - } - else this.emit('end'); - } -}; - -Response.prototype.write = function (res) { - if (res.responseText.length > this.offset) { - this.emit('data', res.responseText.slice(this.offset)); - this.offset = res.responseText.length; - } -}; - -}); - -require.define("/entry.js", function (require, module, exports, __dirname, __filename) { - var http = require('http'); - -$(function () { - var opts = { - host : window.location.hostname, - port : window.location.port, - path : '/count' - }; - - http.get(opts, function (res) { - res.on('data', function (buf) { - $('
') - .text(buf) - .appendTo($('#count')) - ; - }); - - res.on('end', function () { - $('
') - .text('__END__') - .appendTo($('#count')) - ; - }); - }); -}); - -}); -require("/entry.js"); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/using-http/entry.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/using-http/entry.js deleted file mode 100644 index 4bd3079162..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/using-http/entry.js +++ /dev/null @@ -1,25 +0,0 @@ -var http = require('http'); - -$(function () { - var opts = { - host : window.location.hostname, - port : window.location.port, - path : '/count' - }; - - http.get(opts, function (res) { - res.on('data', function (buf) { - $('
') - .text(buf) - .appendTo($('#count')) - ; - }); - - res.on('end', function () { - $('
') - .text('__END__') - .appendTo($('#count')) - ; - }); - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/using-http/index.html b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/using-http/index.html deleted file mode 100644 index 9b55736bc9..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/using-http/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - -
- - diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/using-http/server.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/using-http/server.js deleted file mode 100755 index 727910655c..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/using-http/server.js +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env node -var http = require('http'); -var ecstatic = require('ecstatic')(__dirname); - -var server = http.createServer(function (req, res) { - if (req.url === '/count') { - res.setHeader('content-type', 'multipart/octet-stream'); - - var n = 10; - var iv = setInterval(function () { - res.write(n + '\r\n'); - - if (--n === 0) { - clearInterval(iv); - res.end(); - } - }, 250); - } - else ecstatic(req, res) -}); - -server.listen(8001); -console.log([ - 'Listening on :8001', - '', - 'To compile the build, do:', - ' browserify entry.js -o bundle.js' -].join('\n')); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/index.js deleted file mode 100644 index f53211b94e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/index.js +++ /dev/null @@ -1,255 +0,0 @@ -var wrap = require('./lib/wrap'); -var fs = require('fs'); -var path = require('path'); -var coffee = require('coffee-script'); -var EventEmitter = require('events').EventEmitter; -var exists = fs.exists || path.exists; - -function idFromPath (path) { - return path.replace(/\\/g, '/'); -} - -function isAbsolute (pathOrId) { - return path.normalize(pathOrId) === path.normalize(path.resolve(pathOrId)); -} - -function needsNodeModulesPrepended (id) { - return !/^[.\/]/.test(id) && !isAbsolute(id); -} - -var exports = module.exports = function (entryFile, opts) { - if (!opts) opts = {}; - - if (Array.isArray(entryFile)) { - if (Array.isArray(opts.entry)) { - opts.entry.unshift.apply(opts.entry, entryFile); - } - else if (opts.entry) { - opts.entry = entryFile.concat(opts.entry); - } - else { - opts.entry = entryFile; - } - } - else if (typeof entryFile === 'object') { - opts = entryFile; - } - else if (typeof entryFile === 'string') { - if (Array.isArray(opts.entry)) { - opts.entry.unshift(entryFile); - } - else if (opts.entry) { - opts.entry = [ opts.entry, entryFile ]; - } - else { - opts.entry = entryFile; - } - } - - var watches = {}; - var opts_ = { - cache : opts.cache, - debug : opts.debug, - exports : opts.exports, - }; - var w = wrap(opts_) - .register('.coffee', function (body) { - return coffee.compile(body) - }) - ; - - if (opts.watch) { - w.register(function (body, file) { - // if already being watched - if (watches[file]) return body; - - var watcher = function (event, filename) { - exists(file, function (ex) { - if (!ex) { - // deleted - if (w.files[file]) { - delete w.files[file]; - } - else if (w.entries[file] !== undefined) { - w.appends.splice(w.entries[file], 1); - } - - _cache = null; - } - else if (event === 'change') { - // modified - try { - w.reload(file); - _cache = null; - self.emit('bundle'); - } - catch (e) { - self.emit('syntaxError', e); - if (self.listeners('syntaxError').length === 0) { - console.error(e && e.stack || e); - } - } - } - else if (event === 'rename') { - // todo - } - }); - }; - - watches[file] = true; - process.nextTick(function () { - if (w.files[file] && w.files[file].synthetic) return; - - if (typeof opts.watch === 'object') { - watches[file] = fs.watch(file, opts.watch, watcher); - } - else { - watches[file] = fs.watch(file, watcher); - } - }); - - return body; - }) - } - - if (opts.filter) { - w.register('post', function (body) { - return opts.filter(body); - }); - } - - w.ignore(opts.ignore || []); - - if (opts.require) { - if (Array.isArray(opts.require)) { - opts.require.forEach(function (r) { - r = idFromPath(r); - - var params = {}; - if (needsNodeModulesPrepended(r)) { - params.target = '/node_modules/' + r + '/index.js'; - } - w.require(r, params); - }); - } - else if (typeof opts.require === 'object') { - Object.keys(opts.require).forEach(function (key) { - opts.require[key] = idFromPath(opts.require[key]); - - var params = {}; - if (needsNodeModulesPrepended(opts.require[key])) { - params.target = '/node_modules/' - + opts.require[key] + '/index.js' - ; - } - w.require(opts.require[key], params); - w.alias(key, opts.require[key]); - }); - } - else { - opts.require = idFromPath(opts.require); - - var params = {}; - if (needsNodeModulesPrepended(opts.require)) { - params.target = '/node_modules/' - + opts.require + '/index.js' - ; - } - w.require(opts.require, params); - } - } - - if (opts.entry) { - if (Array.isArray(opts.entry)) { - opts.entry.forEach(function (e) { - w.addEntry(e); - }); - } - else { - w.addEntry(opts.entry); - } - } - - var _cache = null; - var listening = false; - var self = function (req, res, next) { - if (!listening && req.connection && req.connection.server) { - req.connection.server.on('close', function () { - self.end(); - }); - } - listening = true; - - if (req.url.split('?')[0] === (opts.mount || '/browserify.js')) { - if (!_cache) self.bundle(); - res.statusCode = 200; - res.setHeader('last-modified', self.modified.toString()); - res.setHeader('content-type', 'text/javascript'); - res.end(_cache); - } - else next() - }; - - Object.keys(w).forEach(function (key) { - Object.defineProperty(self, key, { - set : function (value) { w[key] = value }, - get : function () { return w[key] } - }); - }); - - Object.keys(Object.getPrototypeOf(w)).forEach(function (key) { - self[key] = function () { - var s = w[key].apply(self, arguments) - if (s === self) { _cache = null } - return s; - }; - }); - - Object.keys(EventEmitter.prototype).forEach(function (key) { - self[key] = w[key].bind(w); - }); - - var firstBundle = true; - self.modified = new Date; - - var ok = true; - self.on('bundle', function () { - ok = true; - }); - - self.on('syntaxError', function (err) { - ok = false; - if (self.listeners('syntaxError').length <= 1) { - console.error(err && err.stack || err); - } - }); - - var lastOk = null; - self.bundle = function () { - if (!ok && _cache) return _cache; - if (!ok && lastOk) return lastOk; - - var src = w.bundle.apply(w, arguments); - - if (!firstBundle) { - self.modified = new Date; - } - firstBundle = false; - - _cache = src; - if (ok) lastOk = src; - return src; - }; - - self.end = function () { - Object.keys(watches).forEach(function (file) { - watches[file].close(); - }); - }; - - return self; -}; - -exports.bundle = function (opts) { - return exports(opts).bundle(); -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/lib/wrap.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/lib/wrap.js deleted file mode 100644 index 80b8874681..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/lib/wrap.js +++ /dev/null @@ -1,527 +0,0 @@ -var fs = require('fs'); -var path = require('path'); -var util = require('util'); -var EventEmitter = require('events').EventEmitter; - -var detective = require('detective'); -var deputy = require('deputy'); -var resolve = require('resolve'); - -var wrappers = require('./wrappers'); -var commondir = require('commondir'); -var nub = require('nub'); - -module.exports = function (opts) { - return new Wrap(opts); -}; -function idFromPath (path) { - return path.replace(/\\/g, '/'); -} - -function Wrap (opts) { - var home = process.env.HOME || process.env.USERPROFILE; - if (opts.cache === undefined && home !== undefined) { - opts.cache = true; - } - - if (opts.cache) { - if (typeof opts.cache === 'boolean') { - var file = home + '/.config/browserify/cache.json'; - this.detective = deputy(file); - } - else { - this.detective = deputy(opts.cache); - } - } - else { - this.detective = detective; - } - - this.exports = opts.exports; - - this.files = {}; - this.filters = []; - this.postFilters = []; - this.preFilters = []; - this.aliases = {}; - this._checkedPackages = {}; - - this.ignoring = {}; - this.extensions = [ '.js' ]; - - this.prepends = [ wrappers.prelude, wrappers.process ]; - this.appends = [] - this.entries = {}; - this.debug = opts.debug; - - this.require('path'); - this.require('__browserify_process'); -} - -util.inherits(Wrap, EventEmitter); - -Wrap.prototype.prepend = function (src) { - this.prepends.unshift(src); - return this; -}; - -Wrap.prototype.append = function (src) { - this.appends.push(src); - return this; -}; - -Wrap.prototype.ignore = function (files) { - if (!files) files = []; - if (!Array.isArray(files)) files = [ files ]; - - this.ignoring = files.reduce(function (acc,x) { - acc[x] = true; - return acc; - }, this.ignoring); - - return this; -}; - -Wrap.prototype.use = function (fn) { - fn(this, this); - return this; -}; - -Wrap.prototype.register = function (ext, fn) { - if (typeof ext === 'object') { - fn = ext.wrapper; - ext = ext.extension; - } - - if (ext === 'post') { - this.postFilters.push(fn); - } - else if (ext === 'pre') { - this.preFilters.push(fn); - } - else if (fn) { - this.extensions.push(ext); - this.filters.push(function (body, file) { - if (file.slice(-ext.length) === ext) { - return fn.call(this, body, file); - } - else return body; - }); - } - else { - this.filters.push(ext); - } - return this; -}; - -Wrap.prototype.reload = function (file) { - var self = this; - if (self.files[file]) { - var f = self.files[file]; - f.body = undefined; - delete self.files[file]; - - self.require(file, f); - } - else if (self.entries[file]) { - var e = self.entries[file]; - e.body = undefined; - delete self.entries[file]; - - self.addEntry(file, e); - } - - return self; -}; - -Wrap.prototype.readFile = function (file) { - var self = this; - - var body = fs.readFileSync(file, 'utf8').replace(/^#![^\n]*\n/, ''); - - self.filters.forEach(function (fn) { - body = fn.call(self, body, file); - }); - - return body; -}; - -Wrap.prototype.alias = function (to, from) { - this.aliases[to] = from; - return this; -}; - -Wrap.prototype.addEntry = function (file_, opts) { - var self = this; - if (!opts) opts = {}; - var file = path.resolve(opts.dirname || process.cwd(), file_); - - var body = opts.body || self.readFile(file); - var entry = this.entries[file] = { body : body }; - if (opts.target) entry.target = opts.target; - - try { - var required = self.detective.find(body); - } - catch (err) { - process.nextTick(function () { - err.message = 'Error while loading entry file ' - + JSON.stringify(file) - + ': ' + err.message - ; - self.emit('syntaxError', err); - }); - return self; - } - - if (required.expressions.length) { - console.error('Expressions in require() statements:'); - required.expressions.forEach(function (ex) { - console.error(' require(' + ex + ')'); - }); - } - - var dirname = path.dirname(file); - - required.strings.forEach(function (req) { - var params = { - dirname : dirname, - fromFile : file, - }; - if (opts.target && /^[.\/]/.test(req)) { - params.target = path.resolve(path.dirname(opts.target), req); - } - self.require(req, params); - }); - - return this; -}; - -Wrap.prototype.bundle = function () { - var self = this; - - for (var i = 0; i < self.prepends.length; i++) { - var p = self.prepends[i]; - if (p === wrappers.prelude) { - self.prepends[i] = p.replace(/\$extensions/, function () { - return JSON.stringify(self.extensions); - }); - break; - } - } - - this.preFilters.forEach((function (fn) { - fn.call(this, this); - }).bind(this)); - - var basedir = (function () { - var required = Object.keys(self.files) - .filter(function (x) { return !self.files[x].target }) - ; - var entries = Object.keys(self.entries) - .filter(function (x) { return !self.entries[x].target }) - ; - var files = required.concat(entries) - .map(function (x) { return path.dirname(x) }) - ; - if (files.length === 0) return ''; - - var dir = commondir(files) + '/'; - return path.normalize(dir.replace(/\/node_modules\/$/, '/')); - })(); - - var removeLeading = function (s) { - if (s.slice(0, basedir.length) === basedir) { - return s.slice(basedir.length - 1); - } - }; - - var src = [] - .concat(this.prepends) - .concat(Object.keys(self.files).map(function (file) { - var s = self.files[file]; - var target = s.target || removeLeading(file); - - if (self.ignoring[target]) return ''; - - return self.wrap(idFromPath(target), s.body) - })) - .concat(Object.keys(self.aliases).map(function (to) { - var from = self.aliases[to]; - if (!to.match(/^(\.\.?)?\//)) { - to = '/node_modules/' + to; - } - - return wrappers.alias - .replace(/\$from/, function () { - return JSON.stringify(from); - }) - .replace(/\$to/, function () { - return JSON.stringify(to); - }) - ; - })) - .concat(Object.keys(self.entries).map(function (file) { - var s = self.entries[file]; - var target = s.target || removeLeading(file); - return self.wrapEntry(idFromPath(target), s.body); - })) - .concat(this.appends) - .join('\n') - ; - - if (!self.exports) { - self.exports = Object.keys(self.entries).length ? [] : [ 'require' ]; - } - if (self.exports === true) self.exports = [ 'require', 'process' ]; - if (!Array.isArray(self.exports)) self.exports = [ self.exports ]; - - if (self.exports.indexOf('process') >= 0 - && self.exports.indexOf('require') >= 0) { - src += 'var process = require("__browserify_process");\n' - } - else if (self.exports.indexOf('require') >= 0) { - // nop - } - else if (self.exports.indexOf('process') >= 0) { - src = 'var process = (function(){' - + src - + ';return require("__browserify_process")' - + '})();\n' - ; - } - else { - src = '(function(){' + src + '})();\n' - } - - this.postFilters.forEach((function (fn) { - src = fn.call(this, src); - }).bind(this)); - - return src; -}; - -Wrap.prototype.wrap = function (target, body) { - var self = this; - return (self.debug ? wrappers.body_debug : wrappers.body) - .replace(/\$__filename/g, function () { - return JSON.stringify(target); - }) - .replace(/\$body/, function () { - return self.debug - ? JSON.stringify(body + '\n//@ sourceURL=' + target) - : body - ; - }) - ; -}; - -Wrap.prototype.wrapEntry = function (target, body) { - var self = this; - return (self.debug ? wrappers.entry_debug : wrappers.entry) - .replace(/\$__filename/g, function () { - return JSON.stringify(target) - }) - .replace(/\$body/, function () { - return self.debug - ? JSON.stringify(body + '\n//@ sourceURL=' + target) - : body - ; - }) - ; -}; - -Wrap.prototype.include = function (file, target, body, root) { - var synthetic = !file; - if (!file) file = Math.floor(Math.random() * Math.pow(2,32)).toString(16); - - this.files[file] = { - body : body, - target : target, - synthetic : synthetic, - root : root - }; - return this; -}; - -Wrap.prototype.require = function (mfile, opts) { - var self = this; - if (!opts) opts = {}; - if (!opts.dirname) opts.dirname = process.cwd(); - - if (typeof mfile === 'object') { - throw new Error('require maps no longer supported'); - } - - if (self.has(mfile)) return self; - if (opts.target && self.has(opts.target)) return self; - - if (self.ignoring[mfile]) return self; - if (self.aliases[mfile]) return self; - - function moduleError (msg) { - return new Error(msg + ': ' + JSON.stringify(mfile) - + ' from directory ' + JSON.stringify(opts.dirname) - + (opts.fromFile ? ' while processing file ' + opts.fromFile : '') - ); - } - - var pkg = {}; - if (mfile === '__browserify_process' || resolve.isCore(mfile)) { - opts.file = path.resolve(__dirname, '../builtins/' + mfile + '.js'); - opts.target = opts.target || mfile; - - if (!path.existsSync(opts.file)) { - try { - require.resolve(mfile + '-browserify'); - opts.body = 'module.exports = require(' - + JSON.stringify(mfile + '-browserify') - + ')'; - } - catch (err) { - throw moduleError('No wrapper for core module'); - } - } - } - else if (self.has(mfile)) { - // package has already been included in some fashion, no need to resolve - return self; - } - else if (opts.body) { - opts.file = mfile; - } - else if (!opts.file) { - try { - var normPath - = path.normalize(path.resolve(mfile)) === path.normalize(mfile) - ? path.normalize(mfile) : mfile - ; - opts.file = self.resolver(normPath, opts.dirname); - } - catch (err) { - throw moduleError('Cannot find module'); - } - } - - if (self.has(opts.file)) return self; - - var dirname = path.dirname(opts.file); - var pkgfile = path.join(dirname, 'package.json'); - - if (!mfile.match(/^(\.\.?)?\//)) { - try { - pkgfile = resolve.sync(path.join(mfile, 'package.json'), { - basedir : dirname - }); - } - catch (err) {} - } - - if (pkgfile && !self._checkedPackages[pkgfile]) { - self._checkedPackages[pkgfile] = true; - if (path.existsSync(pkgfile)) { - var pkgBody = fs.readFileSync(pkgfile, 'utf8'); - try { - var npmpkg = JSON.parse(pkgBody); - if (npmpkg.main !== undefined) { - pkg.main = npmpkg.main; - } - if (npmpkg.browserify !== undefined) { - pkg.browserify = npmpkg.browserify; - } - } - catch (err) { - // ignore broken package.jsons just like node - } - - self.files[pkgfile] = { - body : 'module.exports = ' + JSON.stringify(pkg), - }; - } - } - - var body = opts.body || self.readFile(opts.file); - var entry = self.files[opts.file] = { - body : body, - target : opts.target - }; - - try { - var required = self.detective.find(body); - } - catch (err) { - process.nextTick(function () { - self.emit('syntaxError', err); - }); - return self; - } - - if (pkg.browserify && pkg.browserify.require) { - required.strings = required.strings.concat( - pkg.browserify.require - ); - } - - if (required.expressions.length) { - console.error('Expressions in require() statements:'); - required.expressions.forEach(function (ex) { - console.error(' require(' + ex + ')'); - }); - } - - nub(required.strings).forEach(function (req) { - var params = { - dirname : dirname, - fromFile : opts.file, - }; - if (opts.target && /^[.\/]/.test(req)) { - // not a real directory on the filesystem; just using the path - // module to get rid of the filename. - var targetDir = path.dirname(opts.target); - // not a real filename; just using the path module to deal with - // relative paths. - var reqFilename = path.resolve(targetDir, req); - // get rid of drive letter on Windows; replace it with '/' - var reqFilenameWithoutDriveLetter = /^[A-Z]:\\/.test(reqFilename) ? - '/' + reqFilename.substring(3) : reqFilename; - - params.target = idFromPath(reqFilenameWithoutDriveLetter); - } - self.require(req, params); - }); - - return self; -}; - -function isPrefixOf (x, y) { - return y.slice(0, x.length) === x; -} - -Wrap.prototype.has = function (file) { - var self = this; - if (self.files[file]) return true; - - var res = Object.keys(self.files).some(function (key) { - return self.files[key].target === file; - }); - return res; -}; - -Wrap.prototype.resolver = function (file, basedir) { - return resolve.sync(file, { - basedir : basedir, - extensions : this.extensions, - packageFilter : function (pkg) { - var b = pkg.browserify; - if (b) { - if (typeof b === 'string') { - pkg.main = b; - } - else if (typeof b === 'object' && b.main) { - pkg.main = b.main; - } - } - return pkg - } - }); -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/lib/wrappers.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/lib/wrappers.js deleted file mode 100644 index b14e7d8a06..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/lib/wrappers.js +++ /dev/null @@ -1,10 +0,0 @@ -var fs = require('fs'); - -module.exports = fs.readdirSync(__dirname + '/../wrappers') - .filter(function (file) { return file.match(/\.js$/) }) - .reduce(function (acc, file) { - var name = file.replace(/\.js$/, ''); - acc[name] = fs.readFileSync(__dirname + '/../wrappers/' + file, 'utf8'); - return acc; - }, {}) -; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/.npmignore b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/.npmignore deleted file mode 100644 index 21e430d2ec..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/.npmignore +++ /dev/null @@ -1,11 +0,0 @@ -*.coffee -*.html -.DS_Store -.git* -Cakefile -documentation/ -examples/ -extras/coffee-script.js -raw/ -src/ -test/ diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/CNAME b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/CNAME deleted file mode 100644 index faadabe5f6..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/CNAME +++ /dev/null @@ -1 +0,0 @@ -coffeescript.org \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/LICENSE b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/LICENSE deleted file mode 100644 index dbe6b4e3b9..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2009-2012 Jeremy Ashkenas - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/README b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/README deleted file mode 100644 index 69ee6f43c0..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/README +++ /dev/null @@ -1,51 +0,0 @@ - - { - } } { - { { } } - } }{ { - { }{ } } _____ __ __ - ( }{ }{ { ) / ____| / _|/ _| - .- { { } { }} -. | | ___ | |_| |_ ___ ___ - ( ( } { } { } } ) | | / _ \| _| _/ _ \/ _ \ - |`-..________ ..-'| | |___| (_) | | | || __/ __/ - | | \_____\___/|_| |_| \___|\___| - | ;--. - | (__ \ _____ _ _ - | | ) ) / ____| (_) | | - | |/ / | (___ ___ _ __ _ _ __ | |_ - | ( / \___ \ / __| '__| | '_ \| __| - | |/ ____) | (__| | | | |_) | |_ - | | |_____/ \___|_| |_| .__/ \__| - `-.._________..-' | | - |_| - - - CoffeeScript is a little language that compiles into JavaScript. - - Install Node.js, and then the CoffeeScript compiler: - sudo bin/cake install - - Or, if you have the Node Package Manager installed: - npm install -g coffee-script - (Leave off the -g if you don't wish to install globally.) - - Execute a script: - coffee /path/to/script.coffee - - Compile a script: - coffee -c /path/to/script.coffee - - For documentation, usage, and examples, see: - http://coffeescript.org/ - - To suggest a feature, report a bug, or general discussion: - http://github.com/jashkenas/coffee-script/issues/ - - If you'd like to chat, drop by #coffeescript on Freenode IRC, - or on webchat.freenode.net. - - The source repository: - git://github.com/jashkenas/coffee-script.git - - All contributors are listed here: - http://github.com/jashkenas/coffee-script/contributors diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/Rakefile b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/Rakefile deleted file mode 100644 index dfb85dabca..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/Rakefile +++ /dev/null @@ -1,78 +0,0 @@ -require 'rubygems' -require 'erb' -require 'fileutils' -require 'rake/testtask' -require 'json' - -desc "Build the documentation page" -task :doc do - source = 'documentation/index.html.erb' - child = fork { exec "bin/coffee -bcw -o documentation/js documentation/coffee/*.coffee" } - at_exit { Process.kill("INT", child) } - Signal.trap("INT") { exit } - loop do - mtime = File.stat(source).mtime - if !@mtime || mtime > @mtime - rendered = ERB.new(File.read(source)).result(binding) - File.open('index.html', 'w+') {|f| f.write(rendered) } - end - @mtime = mtime - sleep 1 - end -end - -desc "Build coffee-script-source gem" -task :gem do - require 'rubygems' - require 'rubygems/package' - - gemspec = Gem::Specification.new do |s| - s.name = 'coffee-script-source' - s.version = JSON.parse(File.read('package.json'))["version"] - s.date = Time.now.strftime("%Y-%m-%d") - - s.homepage = "http://jashkenas.github.com/coffee-script/" - s.summary = "The CoffeeScript Compiler" - s.description = <<-EOS - CoffeeScript is a little language that compiles into JavaScript. - Underneath all of those embarrassing braces and semicolons, - JavaScript has always had a gorgeous object model at its heart. - CoffeeScript is an attempt to expose the good parts of JavaScript - in a simple way. - EOS - - s.files = [ - 'lib/coffee_script/coffee-script.js', - 'lib/coffee_script/source.rb' - ] - - s.authors = ['Jeremy Ashkenas'] - s.email = 'jashkenas@gmail.com' - s.rubyforge_project = 'coffee-script-source' - end - - file = File.open("coffee-script-source.gem", "w") - Gem::Package.open(file, 'w') do |pkg| - pkg.metadata = gemspec.to_yaml - - path = "lib/coffee_script/source.rb" - contents = <<-ERUBY -module CoffeeScript - module Source - def self.bundled_path - File.expand_path("../coffee-script.js", __FILE__) - end - end -end - ERUBY - pkg.add_file_simple(path, 0644, contents.size) do |tar_io| - tar_io.write(contents) - end - - contents = File.read("extras/coffee-script.js") - path = "lib/coffee_script/coffee-script.js" - pkg.add_file_simple(path, 0644, contents.size) do |tar_io| - tar_io.write(contents) - end - end -end diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/bin/cake b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/bin/cake deleted file mode 100755 index 5965f4ee5d..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/bin/cake +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env node - -var path = require('path'); -var fs = require('fs'); -var lib = path.join(path.dirname(fs.realpathSync(__filename)), '../lib'); - -require(lib + '/coffee-script/cake').run(); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/bin/coffee b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/bin/coffee deleted file mode 100755 index 3d1d71c8c5..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/bin/coffee +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env node - -var path = require('path'); -var fs = require('fs'); -var lib = path.join(path.dirname(fs.realpathSync(__filename)), '../lib'); - -require(lib + '/coffee-script/command').run(); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/extras/jsl.conf b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/extras/jsl.conf deleted file mode 100644 index 1190da529e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/extras/jsl.conf +++ /dev/null @@ -1,44 +0,0 @@ -# JavaScriptLint configuration file for CoffeeScript. - -+no_return_value # function {0} does not always return a value -+duplicate_formal # duplicate formal argument {0} --equal_as_assign # test for equality (==) mistyped as assignment (=)?{0} -+var_hides_arg # variable {0} hides argument -+redeclared_var # redeclaration of {0} {1} --anon_no_return_value # anonymous function does not always return a value -+missing_semicolon # missing semicolon -+meaningless_block # meaningless block; curly braces have no impact --comma_separated_stmts # multiple statements separated by commas (use semicolons?) -+unreachable_code # unreachable code -+missing_break # missing break statement --missing_break_for_last_case # missing break statement for last case in switch --comparison_type_conv # comparisons against null, 0, true, false, or an empty string allowing implicit type conversion (use === or !==) --inc_dec_within_stmt # increment (++) and decrement (--) operators used as part of greater statement --useless_void # use of the void type may be unnecessary (void is always undefined) -+multiple_plus_minus # unknown order of operations for successive plus (e.g. x+++y) or minus (e.g. x---y) signs -+use_of_label # use of label --block_without_braces # block statement without curly braces -+leading_decimal_point # leading decimal point may indicate a number or an object member -+trailing_decimal_point # trailing decimal point may indicate a number or an object member -+octal_number # leading zeros make an octal number -+nested_comment # nested comment -+misplaced_regex # regular expressions should be preceded by a left parenthesis, assignment, colon, or comma -+ambiguous_newline # unexpected end of line; it is ambiguous whether these lines are part of the same statement -+empty_statement # empty statement or extra semicolon --missing_option_explicit # the "option explicit" control comment is missing -+partial_option_explicit # the "option explicit" control comment, if used, must be in the first script tag -+dup_option_explicit # duplicate "option explicit" control comment -+useless_assign # useless assignment -+ambiguous_nested_stmt # block statements containing block statements should use curly braces to resolve ambiguity -+ambiguous_else_stmt # the else statement could be matched with one of multiple if statements (use curly braces to indicate intent) --missing_default_case # missing default case in switch statement -+duplicate_case_in_switch # duplicate case in switch statements -+default_not_at_end # the default case is not at the end of the switch statement -+legacy_cc_not_understood # couldn't understand control comment using /*@keyword@*/ syntax -+jsl_cc_not_understood # couldn't understand control comment using /*jsl:keyword*/ syntax -+useless_comparison # useless comparison; comparing identical expressions -+with_statement # with statement hides undeclared variables; use temporary variable instead -+trailing_comma_in_array # extra comma is not recommended in array initializers -+assign_to_function_call # assignment to a function call -+parseint_missing_radix # parseInt missing radix parameter -+lambda_assign_requires_semicolon diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/browser.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/browser.js deleted file mode 100644 index 825cbf3122..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/browser.js +++ /dev/null @@ -1,92 +0,0 @@ -// Generated by CoffeeScript 1.3.3 -(function() { - var CoffeeScript, runScripts; - - CoffeeScript = require('./coffee-script'); - - CoffeeScript.require = require; - - CoffeeScript["eval"] = function(code, options) { - var _ref; - if (options == null) { - options = {}; - } - if ((_ref = options.bare) == null) { - options.bare = true; - } - return eval(CoffeeScript.compile(code, options)); - }; - - CoffeeScript.run = function(code, options) { - if (options == null) { - options = {}; - } - options.bare = true; - return Function(CoffeeScript.compile(code, options))(); - }; - - if (typeof window === "undefined" || window === null) { - return; - } - - CoffeeScript.load = function(url, callback) { - var xhr; - xhr = new (window.ActiveXObject || XMLHttpRequest)('Microsoft.XMLHTTP'); - xhr.open('GET', url, true); - if ('overrideMimeType' in xhr) { - xhr.overrideMimeType('text/plain'); - } - xhr.onreadystatechange = function() { - var _ref; - if (xhr.readyState === 4) { - if ((_ref = xhr.status) === 0 || _ref === 200) { - CoffeeScript.run(xhr.responseText); - } else { - throw new Error("Could not load " + url); - } - if (callback) { - return callback(); - } - } - }; - return xhr.send(null); - }; - - runScripts = function() { - var coffees, execute, index, length, s, scripts; - scripts = document.getElementsByTagName('script'); - coffees = (function() { - var _i, _len, _results; - _results = []; - for (_i = 0, _len = scripts.length; _i < _len; _i++) { - s = scripts[_i]; - if (s.type === 'text/coffeescript') { - _results.push(s); - } - } - return _results; - })(); - index = 0; - length = coffees.length; - (execute = function() { - var script; - script = coffees[index++]; - if ((script != null ? script.type : void 0) === 'text/coffeescript') { - if (script.src) { - return CoffeeScript.load(script.src, execute); - } else { - CoffeeScript.run(script.innerHTML); - return execute(); - } - } - })(); - return null; - }; - - if (window.addEventListener) { - addEventListener('DOMContentLoaded', runScripts, false); - } else { - attachEvent('onload', runScripts); - } - -}).call(this); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/cake.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/cake.js deleted file mode 100644 index 1523418f12..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/cake.js +++ /dev/null @@ -1,111 +0,0 @@ -// Generated by CoffeeScript 1.3.3 -(function() { - var CoffeeScript, cakefileDirectory, fatalError, fs, helpers, missingTask, oparse, options, optparse, path, printTasks, switches, tasks; - - fs = require('fs'); - - path = require('path'); - - helpers = require('./helpers'); - - optparse = require('./optparse'); - - CoffeeScript = require('./coffee-script'); - - tasks = {}; - - options = {}; - - switches = []; - - oparse = null; - - helpers.extend(global, { - task: function(name, description, action) { - var _ref; - if (!action) { - _ref = [description, action], action = _ref[0], description = _ref[1]; - } - return tasks[name] = { - name: name, - description: description, - action: action - }; - }, - option: function(letter, flag, description) { - return switches.push([letter, flag, description]); - }, - invoke: function(name) { - if (!tasks[name]) { - missingTask(name); - } - return tasks[name].action(options); - } - }); - - exports.run = function() { - var arg, args, _i, _len, _ref, _results; - global.__originalDirname = fs.realpathSync('.'); - process.chdir(cakefileDirectory(__originalDirname)); - args = process.argv.slice(2); - CoffeeScript.run(fs.readFileSync('Cakefile').toString(), { - filename: 'Cakefile' - }); - oparse = new optparse.OptionParser(switches); - if (!args.length) { - return printTasks(); - } - try { - options = oparse.parse(args); - } catch (e) { - return fatalError("" + e); - } - _ref = options["arguments"]; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - arg = _ref[_i]; - _results.push(invoke(arg)); - } - return _results; - }; - - printTasks = function() { - var cakefilePath, desc, name, relative, spaces, task; - relative = path.relative || path.resolve; - cakefilePath = path.join(relative(__originalDirname, process.cwd()), 'Cakefile'); - console.log("" + cakefilePath + " defines the following tasks:\n"); - for (name in tasks) { - task = tasks[name]; - spaces = 20 - name.length; - spaces = spaces > 0 ? Array(spaces + 1).join(' ') : ''; - desc = task.description ? "# " + task.description : ''; - console.log("cake " + name + spaces + " " + desc); - } - if (switches.length) { - return console.log(oparse.help()); - } - }; - - fatalError = function(message) { - console.error(message + '\n'); - console.log('To see a list of all tasks/options, run "cake"'); - return process.exit(1); - }; - - missingTask = function(task) { - return fatalError("No such task: " + task); - }; - - cakefileDirectory = function(dir) { - var parent; - if (path.existsSync(path.join(dir, 'Cakefile'))) { - return dir; - } - parent = path.normalize(path.join(dir, '..')); - if (parent !== dir) { - return cakefileDirectory(parent); - } - throw new Error("Cakefile not found in " + (process.cwd())); - }; - -}).call(this); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/coffee-script.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/coffee-script.js deleted file mode 100644 index c43fa497ef..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/coffee-script.js +++ /dev/null @@ -1,167 +0,0 @@ -// Generated by CoffeeScript 1.3.3 -(function() { - var Lexer, RESERVED, compile, fs, lexer, parser, path, vm, _ref, - __hasProp = {}.hasOwnProperty; - - fs = require('fs'); - - path = require('path'); - - _ref = require('./lexer'), Lexer = _ref.Lexer, RESERVED = _ref.RESERVED; - - parser = require('./parser').parser; - - vm = require('vm'); - - if (require.extensions) { - require.extensions['.coffee'] = function(module, filename) { - var content; - content = compile(fs.readFileSync(filename, 'utf8'), { - filename: filename - }); - return module._compile(content, filename); - }; - } else if (require.registerExtension) { - require.registerExtension('.coffee', function(content) { - return compile(content); - }); - } - - exports.VERSION = '1.3.3'; - - exports.RESERVED = RESERVED; - - exports.helpers = require('./helpers'); - - exports.compile = compile = function(code, options) { - var header, js, merge; - if (options == null) { - options = {}; - } - merge = exports.helpers.merge; - try { - js = (parser.parse(lexer.tokenize(code))).compile(options); - if (!options.header) { - return js; - } - } catch (err) { - if (options.filename) { - err.message = "In " + options.filename + ", " + err.message; - } - throw err; - } - header = "Generated by CoffeeScript " + this.VERSION; - return "// " + header + "\n" + js; - }; - - exports.tokens = function(code, options) { - return lexer.tokenize(code, options); - }; - - exports.nodes = function(source, options) { - if (typeof source === 'string') { - return parser.parse(lexer.tokenize(source, options)); - } else { - return parser.parse(source); - } - }; - - exports.run = function(code, options) { - var mainModule; - if (options == null) { - options = {}; - } - mainModule = require.main; - mainModule.filename = process.argv[1] = options.filename ? fs.realpathSync(options.filename) : '.'; - mainModule.moduleCache && (mainModule.moduleCache = {}); - mainModule.paths = require('module')._nodeModulePaths(path.dirname(fs.realpathSync(options.filename))); - if (path.extname(mainModule.filename) !== '.coffee' || require.extensions) { - return mainModule._compile(compile(code, options), mainModule.filename); - } else { - return mainModule._compile(code, mainModule.filename); - } - }; - - exports["eval"] = function(code, options) { - var Module, Script, js, k, o, r, sandbox, v, _i, _len, _module, _ref1, _ref2, _require; - if (options == null) { - options = {}; - } - if (!(code = code.trim())) { - return; - } - Script = vm.Script; - if (Script) { - if (options.sandbox != null) { - if (options.sandbox instanceof Script.createContext().constructor) { - sandbox = options.sandbox; - } else { - sandbox = Script.createContext(); - _ref1 = options.sandbox; - for (k in _ref1) { - if (!__hasProp.call(_ref1, k)) continue; - v = _ref1[k]; - sandbox[k] = v; - } - } - sandbox.global = sandbox.root = sandbox.GLOBAL = sandbox; - } else { - sandbox = global; - } - sandbox.__filename = options.filename || 'eval'; - sandbox.__dirname = path.dirname(sandbox.__filename); - if (!(sandbox !== global || sandbox.module || sandbox.require)) { - Module = require('module'); - sandbox.module = _module = new Module(options.modulename || 'eval'); - sandbox.require = _require = function(path) { - return Module._load(path, _module, true); - }; - _module.filename = sandbox.__filename; - _ref2 = Object.getOwnPropertyNames(require); - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - r = _ref2[_i]; - if (r !== 'paths') { - _require[r] = require[r]; - } - } - _require.paths = _module.paths = Module._nodeModulePaths(process.cwd()); - _require.resolve = function(request) { - return Module._resolveFilename(request, _module); - }; - } - } - o = {}; - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - o[k] = v; - } - o.bare = true; - js = compile(code, o); - if (sandbox === global) { - return vm.runInThisContext(js); - } else { - return vm.runInContext(js, sandbox); - } - }; - - lexer = new Lexer; - - parser.lexer = { - lex: function() { - var tag, _ref1; - _ref1 = this.tokens[this.pos++] || [''], tag = _ref1[0], this.yytext = _ref1[1], this.yylineno = _ref1[2]; - return tag; - }, - setInput: function(tokens) { - this.tokens = tokens; - return this.pos = 0; - }, - upcomingInput: function() { - return ""; - } - }; - - parser.yy = require('./nodes'); - -}).call(this); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/command.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/command.js deleted file mode 100644 index e02da9fe6f..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/command.js +++ /dev/null @@ -1,500 +0,0 @@ -// Generated by CoffeeScript 1.3.3 -(function() { - var BANNER, CoffeeScript, EventEmitter, SWITCHES, compileJoin, compileOptions, compilePath, compileScript, compileStdio, exec, forkNode, fs, helpers, hidden, joinTimeout, lint, loadRequires, notSources, optionParser, optparse, opts, outputPath, parseOptions, path, printLine, printTokens, printWarn, removeSource, sourceCode, sources, spawn, timeLog, unwatchDir, usage, version, wait, watch, watchDir, watchers, writeJs, _ref; - - fs = require('fs'); - - path = require('path'); - - helpers = require('./helpers'); - - optparse = require('./optparse'); - - CoffeeScript = require('./coffee-script'); - - _ref = require('child_process'), spawn = _ref.spawn, exec = _ref.exec; - - EventEmitter = require('events').EventEmitter; - - helpers.extend(CoffeeScript, new EventEmitter); - - printLine = function(line) { - return process.stdout.write(line + '\n'); - }; - - printWarn = function(line) { - return process.stderr.write(line + '\n'); - }; - - hidden = function(file) { - return /^\.|~$/.test(file); - }; - - BANNER = 'Usage: coffee [options] path/to/script.coffee -- [args]\n\nIf called without options, `coffee` will run your script.'; - - SWITCHES = [['-b', '--bare', 'compile without a top-level function wrapper'], ['-c', '--compile', 'compile to JavaScript and save as .js files'], ['-e', '--eval', 'pass a string from the command line as input'], ['-h', '--help', 'display this help message'], ['-i', '--interactive', 'run an interactive CoffeeScript REPL'], ['-j', '--join [FILE]', 'concatenate the source CoffeeScript before compiling'], ['-l', '--lint', 'pipe the compiled JavaScript through JavaScript Lint'], ['-n', '--nodes', 'print out the parse tree that the parser produces'], ['--nodejs [ARGS]', 'pass options directly to the "node" binary'], ['-o', '--output [DIR]', 'set the output directory for compiled JavaScript'], ['-p', '--print', 'print out the compiled JavaScript'], ['-r', '--require [FILE*]', 'require a library before executing your script'], ['-s', '--stdio', 'listen for and compile scripts over stdio'], ['-t', '--tokens', 'print out the tokens that the lexer/rewriter produce'], ['-v', '--version', 'display the version number'], ['-w', '--watch', 'watch scripts for changes and rerun commands']]; - - opts = {}; - - sources = []; - - sourceCode = []; - - notSources = {}; - - watchers = {}; - - optionParser = null; - - exports.run = function() { - var literals, source, _i, _len, _results; - parseOptions(); - if (opts.nodejs) { - return forkNode(); - } - if (opts.help) { - return usage(); - } - if (opts.version) { - return version(); - } - if (opts.require) { - loadRequires(); - } - if (opts.interactive) { - return require('./repl'); - } - if (opts.watch && !fs.watch) { - return printWarn("The --watch feature depends on Node v0.6.0+. You are running " + process.version + "."); - } - if (opts.stdio) { - return compileStdio(); - } - if (opts["eval"]) { - return compileScript(null, sources[0]); - } - if (!sources.length) { - return require('./repl'); - } - literals = opts.run ? sources.splice(1) : []; - process.argv = process.argv.slice(0, 2).concat(literals); - process.argv[0] = 'coffee'; - process.execPath = require.main.filename; - _results = []; - for (_i = 0, _len = sources.length; _i < _len; _i++) { - source = sources[_i]; - _results.push(compilePath(source, true, path.normalize(source))); - } - return _results; - }; - - compilePath = function(source, topLevel, base) { - return fs.stat(source, function(err, stats) { - if (err && err.code !== 'ENOENT') { - throw err; - } - if ((err != null ? err.code : void 0) === 'ENOENT') { - if (topLevel && source.slice(-7) !== '.coffee') { - source = sources[sources.indexOf(source)] = "" + source + ".coffee"; - return compilePath(source, topLevel, base); - } - if (topLevel) { - console.error("File not found: " + source); - process.exit(1); - } - return; - } - if (stats.isDirectory()) { - if (opts.watch) { - watchDir(source, base); - } - return fs.readdir(source, function(err, files) { - var file, index, _ref1, _ref2; - if (err && err.code !== 'ENOENT') { - throw err; - } - if ((err != null ? err.code : void 0) === 'ENOENT') { - return; - } - index = sources.indexOf(source); - files = files.filter(function(file) { - return !hidden(file); - }); - [].splice.apply(sources, [index, index - index + 1].concat(_ref1 = (function() { - var _i, _len, _results; - _results = []; - for (_i = 0, _len = files.length; _i < _len; _i++) { - file = files[_i]; - _results.push(path.join(source, file)); - } - return _results; - })())), _ref1; - [].splice.apply(sourceCode, [index, index - index + 1].concat(_ref2 = files.map(function() { - return null; - }))), _ref2; - return files.forEach(function(file) { - return compilePath(path.join(source, file), false, base); - }); - }); - } else if (topLevel || path.extname(source) === '.coffee') { - if (opts.watch) { - watch(source, base); - } - return fs.readFile(source, function(err, code) { - if (err && err.code !== 'ENOENT') { - throw err; - } - if ((err != null ? err.code : void 0) === 'ENOENT') { - return; - } - return compileScript(source, code.toString(), base); - }); - } else { - notSources[source] = true; - return removeSource(source, base); - } - }); - }; - - compileScript = function(file, input, base) { - var o, options, t, task; - o = opts; - options = compileOptions(file); - try { - t = task = { - file: file, - input: input, - options: options - }; - CoffeeScript.emit('compile', task); - if (o.tokens) { - return printTokens(CoffeeScript.tokens(t.input)); - } else if (o.nodes) { - return printLine(CoffeeScript.nodes(t.input).toString().trim()); - } else if (o.run) { - return CoffeeScript.run(t.input, t.options); - } else if (o.join && t.file !== o.join) { - sourceCode[sources.indexOf(t.file)] = t.input; - return compileJoin(); - } else { - t.output = CoffeeScript.compile(t.input, t.options); - CoffeeScript.emit('success', task); - if (o.print) { - return printLine(t.output.trim()); - } else if (o.compile) { - return writeJs(t.file, t.output, base); - } else if (o.lint) { - return lint(t.file, t.output); - } - } - } catch (err) { - CoffeeScript.emit('failure', err, task); - if (CoffeeScript.listeners('failure').length) { - return; - } - if (o.watch) { - return printLine(err.message + '\x07'); - } - printWarn(err instanceof Error && err.stack || ("ERROR: " + err)); - return process.exit(1); - } - }; - - compileStdio = function() { - var code, stdin; - code = ''; - stdin = process.openStdin(); - stdin.on('data', function(buffer) { - if (buffer) { - return code += buffer.toString(); - } - }); - return stdin.on('end', function() { - return compileScript(null, code); - }); - }; - - joinTimeout = null; - - compileJoin = function() { - if (!opts.join) { - return; - } - if (!sourceCode.some(function(code) { - return code === null; - })) { - clearTimeout(joinTimeout); - return joinTimeout = wait(100, function() { - return compileScript(opts.join, sourceCode.join('\n'), opts.join); - }); - } - }; - - loadRequires = function() { - var realFilename, req, _i, _len, _ref1; - realFilename = module.filename; - module.filename = '.'; - _ref1 = opts.require; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - req = _ref1[_i]; - require(req); - } - return module.filename = realFilename; - }; - - watch = function(source, base) { - var compile, compileTimeout, prevStats, rewatch, watchErr, watcher; - prevStats = null; - compileTimeout = null; - watchErr = function(e) { - if (e.code === 'ENOENT') { - if (sources.indexOf(source) === -1) { - return; - } - try { - rewatch(); - return compile(); - } catch (e) { - removeSource(source, base, true); - return compileJoin(); - } - } else { - throw e; - } - }; - compile = function() { - clearTimeout(compileTimeout); - return compileTimeout = wait(25, function() { - return fs.stat(source, function(err, stats) { - if (err) { - return watchErr(err); - } - if (prevStats && stats.size === prevStats.size && stats.mtime.getTime() === prevStats.mtime.getTime()) { - return rewatch(); - } - prevStats = stats; - return fs.readFile(source, function(err, code) { - if (err) { - return watchErr(err); - } - compileScript(source, code.toString(), base); - return rewatch(); - }); - }); - }); - }; - try { - watcher = fs.watch(source, compile); - } catch (e) { - watchErr(e); - } - return rewatch = function() { - if (watcher != null) { - watcher.close(); - } - return watcher = fs.watch(source, compile); - }; - }; - - watchDir = function(source, base) { - var readdirTimeout, watcher; - readdirTimeout = null; - try { - return watcher = fs.watch(source, function() { - clearTimeout(readdirTimeout); - return readdirTimeout = wait(25, function() { - return fs.readdir(source, function(err, files) { - var file, _i, _len, _results; - if (err) { - if (err.code !== 'ENOENT') { - throw err; - } - watcher.close(); - return unwatchDir(source, base); - } - _results = []; - for (_i = 0, _len = files.length; _i < _len; _i++) { - file = files[_i]; - if (!(!hidden(file) && !notSources[file])) { - continue; - } - file = path.join(source, file); - if (sources.some(function(s) { - return s.indexOf(file) >= 0; - })) { - continue; - } - sources.push(file); - sourceCode.push(null); - _results.push(compilePath(file, false, base)); - } - return _results; - }); - }); - }); - } catch (e) { - if (e.code !== 'ENOENT') { - throw e; - } - } - }; - - unwatchDir = function(source, base) { - var file, prevSources, toRemove, _i, _len; - prevSources = sources.slice(0); - toRemove = (function() { - var _i, _len, _results; - _results = []; - for (_i = 0, _len = sources.length; _i < _len; _i++) { - file = sources[_i]; - if (file.indexOf(source) >= 0) { - _results.push(file); - } - } - return _results; - })(); - for (_i = 0, _len = toRemove.length; _i < _len; _i++) { - file = toRemove[_i]; - removeSource(file, base, true); - } - if (!sources.some(function(s, i) { - return prevSources[i] !== s; - })) { - return; - } - return compileJoin(); - }; - - removeSource = function(source, base, removeJs) { - var index, jsPath; - index = sources.indexOf(source); - sources.splice(index, 1); - sourceCode.splice(index, 1); - if (removeJs && !opts.join) { - jsPath = outputPath(source, base); - return path.exists(jsPath, function(exists) { - if (exists) { - return fs.unlink(jsPath, function(err) { - if (err && err.code !== 'ENOENT') { - throw err; - } - return timeLog("removed " + source); - }); - } - }); - } - }; - - outputPath = function(source, base) { - var baseDir, dir, filename, srcDir; - filename = path.basename(source, path.extname(source)) + '.js'; - srcDir = path.dirname(source); - baseDir = base === '.' ? srcDir : srcDir.substring(base.length); - dir = opts.output ? path.join(opts.output, baseDir) : srcDir; - return path.join(dir, filename); - }; - - writeJs = function(source, js, base) { - var compile, jsDir, jsPath; - jsPath = outputPath(source, base); - jsDir = path.dirname(jsPath); - compile = function() { - if (js.length <= 0) { - js = ' '; - } - return fs.writeFile(jsPath, js, function(err) { - if (err) { - return printLine(err.message); - } else if (opts.compile && opts.watch) { - return timeLog("compiled " + source); - } - }); - }; - return path.exists(jsDir, function(exists) { - if (exists) { - return compile(); - } else { - return exec("mkdir -p " + jsDir, compile); - } - }); - }; - - wait = function(milliseconds, func) { - return setTimeout(func, milliseconds); - }; - - timeLog = function(message) { - return console.log("" + ((new Date).toLocaleTimeString()) + " - " + message); - }; - - lint = function(file, js) { - var conf, jsl, printIt; - printIt = function(buffer) { - return printLine(file + ':\t' + buffer.toString().trim()); - }; - conf = __dirname + '/../../extras/jsl.conf'; - jsl = spawn('jsl', ['-nologo', '-stdin', '-conf', conf]); - jsl.stdout.on('data', printIt); - jsl.stderr.on('data', printIt); - jsl.stdin.write(js); - return jsl.stdin.end(); - }; - - printTokens = function(tokens) { - var strings, tag, token, value; - strings = (function() { - var _i, _len, _ref1, _results; - _results = []; - for (_i = 0, _len = tokens.length; _i < _len; _i++) { - token = tokens[_i]; - _ref1 = [token[0], token[1].toString().replace(/\n/, '\\n')], tag = _ref1[0], value = _ref1[1]; - _results.push("[" + tag + " " + value + "]"); - } - return _results; - })(); - return printLine(strings.join(' ')); - }; - - parseOptions = function() { - var i, o, source, _i, _len; - optionParser = new optparse.OptionParser(SWITCHES, BANNER); - o = opts = optionParser.parse(process.argv.slice(2)); - o.compile || (o.compile = !!o.output); - o.run = !(o.compile || o.print || o.lint); - o.print = !!(o.print || (o["eval"] || o.stdio && o.compile)); - sources = o["arguments"]; - for (i = _i = 0, _len = sources.length; _i < _len; i = ++_i) { - source = sources[i]; - sourceCode[i] = null; - } - }; - - compileOptions = function(filename) { - return { - filename: filename, - bare: opts.bare, - header: opts.compile - }; - }; - - forkNode = function() { - var args, nodeArgs; - nodeArgs = opts.nodejs.split(/\s+/); - args = process.argv.slice(1); - args.splice(args.indexOf('--nodejs'), 2); - return spawn(process.execPath, nodeArgs.concat(args), { - cwd: process.cwd(), - env: process.env, - customFds: [0, 1, 2] - }); - }; - - usage = function() { - return printLine((new optparse.OptionParser(SWITCHES, BANNER)).help()); - }; - - version = function() { - return printLine("CoffeeScript version " + CoffeeScript.VERSION); - }; - -}).call(this); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/grammar.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/grammar.js deleted file mode 100644 index 56621388d3..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/grammar.js +++ /dev/null @@ -1,606 +0,0 @@ -// Generated by CoffeeScript 1.3.3 -(function() { - var Parser, alt, alternatives, grammar, name, o, operators, token, tokens, unwrap; - - Parser = require('jison').Parser; - - unwrap = /^function\s*\(\)\s*\{\s*return\s*([\s\S]*);\s*\}/; - - o = function(patternString, action, options) { - var match; - patternString = patternString.replace(/\s{2,}/g, ' '); - if (!action) { - return [patternString, '$$ = $1;', options]; - } - action = (match = unwrap.exec(action)) ? match[1] : "(" + action + "())"; - action = action.replace(/\bnew /g, '$&yy.'); - action = action.replace(/\b(?:Block\.wrap|extend)\b/g, 'yy.$&'); - return [patternString, "$$ = " + action + ";", options]; - }; - - grammar = { - Root: [ - o('', function() { - return new Block; - }), o('Body'), o('Block TERMINATOR') - ], - Body: [ - o('Line', function() { - return Block.wrap([$1]); - }), o('Body TERMINATOR Line', function() { - return $1.push($3); - }), o('Body TERMINATOR') - ], - Line: [o('Expression'), o('Statement')], - Statement: [ - o('Return'), o('Comment'), o('STATEMENT', function() { - return new Literal($1); - }) - ], - Expression: [o('Value'), o('Invocation'), o('Code'), o('Operation'), o('Assign'), o('If'), o('Try'), o('While'), o('For'), o('Switch'), o('Class'), o('Throw')], - Block: [ - o('INDENT OUTDENT', function() { - return new Block; - }), o('INDENT Body OUTDENT', function() { - return $2; - }) - ], - Identifier: [ - o('IDENTIFIER', function() { - return new Literal($1); - }) - ], - AlphaNumeric: [ - o('NUMBER', function() { - return new Literal($1); - }), o('STRING', function() { - return new Literal($1); - }) - ], - Literal: [ - o('AlphaNumeric'), o('JS', function() { - return new Literal($1); - }), o('REGEX', function() { - return new Literal($1); - }), o('DEBUGGER', function() { - return new Literal($1); - }), o('UNDEFINED', function() { - return new Undefined; - }), o('NULL', function() { - return new Null; - }), o('BOOL', function() { - return new Bool($1); - }) - ], - Assign: [ - o('Assignable = Expression', function() { - return new Assign($1, $3); - }), o('Assignable = TERMINATOR Expression', function() { - return new Assign($1, $4); - }), o('Assignable = INDENT Expression OUTDENT', function() { - return new Assign($1, $4); - }) - ], - AssignObj: [ - o('ObjAssignable', function() { - return new Value($1); - }), o('ObjAssignable : Expression', function() { - return new Assign(new Value($1), $3, 'object'); - }), o('ObjAssignable :\ - INDENT Expression OUTDENT', function() { - return new Assign(new Value($1), $4, 'object'); - }), o('Comment') - ], - ObjAssignable: [o('Identifier'), o('AlphaNumeric'), o('ThisProperty')], - Return: [ - o('RETURN Expression', function() { - return new Return($2); - }), o('RETURN', function() { - return new Return; - }) - ], - Comment: [ - o('HERECOMMENT', function() { - return new Comment($1); - }) - ], - Code: [ - o('PARAM_START ParamList PARAM_END FuncGlyph Block', function() { - return new Code($2, $5, $4); - }), o('FuncGlyph Block', function() { - return new Code([], $2, $1); - }) - ], - FuncGlyph: [ - o('->', function() { - return 'func'; - }), o('=>', function() { - return 'boundfunc'; - }) - ], - OptComma: [o(''), o(',')], - ParamList: [ - o('', function() { - return []; - }), o('Param', function() { - return [$1]; - }), o('ParamList , Param', function() { - return $1.concat($3); - }), o('ParamList OptComma TERMINATOR Param', function() { - return $1.concat($4); - }), o('ParamList OptComma INDENT ParamList OptComma OUTDENT', function() { - return $1.concat($4); - }) - ], - Param: [ - o('ParamVar', function() { - return new Param($1); - }), o('ParamVar ...', function() { - return new Param($1, null, true); - }), o('ParamVar = Expression', function() { - return new Param($1, $3); - }) - ], - ParamVar: [o('Identifier'), o('ThisProperty'), o('Array'), o('Object')], - Splat: [ - o('Expression ...', function() { - return new Splat($1); - }) - ], - SimpleAssignable: [ - o('Identifier', function() { - return new Value($1); - }), o('Value Accessor', function() { - return $1.add($2); - }), o('Invocation Accessor', function() { - return new Value($1, [].concat($2)); - }), o('ThisProperty') - ], - Assignable: [ - o('SimpleAssignable'), o('Array', function() { - return new Value($1); - }), o('Object', function() { - return new Value($1); - }) - ], - Value: [ - o('Assignable'), o('Literal', function() { - return new Value($1); - }), o('Parenthetical', function() { - return new Value($1); - }), o('Range', function() { - return new Value($1); - }), o('This') - ], - Accessor: [ - o('. Identifier', function() { - return new Access($2); - }), o('?. Identifier', function() { - return new Access($2, 'soak'); - }), o(':: Identifier', function() { - return [new Access(new Literal('prototype')), new Access($2)]; - }), o('::', function() { - return new Access(new Literal('prototype')); - }), o('Index') - ], - Index: [ - o('INDEX_START IndexValue INDEX_END', function() { - return $2; - }), o('INDEX_SOAK Index', function() { - return extend($2, { - soak: true - }); - }) - ], - IndexValue: [ - o('Expression', function() { - return new Index($1); - }), o('Slice', function() { - return new Slice($1); - }) - ], - Object: [ - o('{ AssignList OptComma }', function() { - return new Obj($2, $1.generated); - }) - ], - AssignList: [ - o('', function() { - return []; - }), o('AssignObj', function() { - return [$1]; - }), o('AssignList , AssignObj', function() { - return $1.concat($3); - }), o('AssignList OptComma TERMINATOR AssignObj', function() { - return $1.concat($4); - }), o('AssignList OptComma INDENT AssignList OptComma OUTDENT', function() { - return $1.concat($4); - }) - ], - Class: [ - o('CLASS', function() { - return new Class; - }), o('CLASS Block', function() { - return new Class(null, null, $2); - }), o('CLASS EXTENDS Expression', function() { - return new Class(null, $3); - }), o('CLASS EXTENDS Expression Block', function() { - return new Class(null, $3, $4); - }), o('CLASS SimpleAssignable', function() { - return new Class($2); - }), o('CLASS SimpleAssignable Block', function() { - return new Class($2, null, $3); - }), o('CLASS SimpleAssignable EXTENDS Expression', function() { - return new Class($2, $4); - }), o('CLASS SimpleAssignable EXTENDS Expression Block', function() { - return new Class($2, $4, $5); - }) - ], - Invocation: [ - o('Value OptFuncExist Arguments', function() { - return new Call($1, $3, $2); - }), o('Invocation OptFuncExist Arguments', function() { - return new Call($1, $3, $2); - }), o('SUPER', function() { - return new Call('super', [new Splat(new Literal('arguments'))]); - }), o('SUPER Arguments', function() { - return new Call('super', $2); - }) - ], - OptFuncExist: [ - o('', function() { - return false; - }), o('FUNC_EXIST', function() { - return true; - }) - ], - Arguments: [ - o('CALL_START CALL_END', function() { - return []; - }), o('CALL_START ArgList OptComma CALL_END', function() { - return $2; - }) - ], - This: [ - o('THIS', function() { - return new Value(new Literal('this')); - }), o('@', function() { - return new Value(new Literal('this')); - }) - ], - ThisProperty: [ - o('@ Identifier', function() { - return new Value(new Literal('this'), [new Access($2)], 'this'); - }) - ], - Array: [ - o('[ ]', function() { - return new Arr([]); - }), o('[ ArgList OptComma ]', function() { - return new Arr($2); - }) - ], - RangeDots: [ - o('..', function() { - return 'inclusive'; - }), o('...', function() { - return 'exclusive'; - }) - ], - Range: [ - o('[ Expression RangeDots Expression ]', function() { - return new Range($2, $4, $3); - }) - ], - Slice: [ - o('Expression RangeDots Expression', function() { - return new Range($1, $3, $2); - }), o('Expression RangeDots', function() { - return new Range($1, null, $2); - }), o('RangeDots Expression', function() { - return new Range(null, $2, $1); - }), o('RangeDots', function() { - return new Range(null, null, $1); - }) - ], - ArgList: [ - o('Arg', function() { - return [$1]; - }), o('ArgList , Arg', function() { - return $1.concat($3); - }), o('ArgList OptComma TERMINATOR Arg', function() { - return $1.concat($4); - }), o('INDENT ArgList OptComma OUTDENT', function() { - return $2; - }), o('ArgList OptComma INDENT ArgList OptComma OUTDENT', function() { - return $1.concat($4); - }) - ], - Arg: [o('Expression'), o('Splat')], - SimpleArgs: [ - o('Expression'), o('SimpleArgs , Expression', function() { - return [].concat($1, $3); - }) - ], - Try: [ - o('TRY Block', function() { - return new Try($2); - }), o('TRY Block Catch', function() { - return new Try($2, $3[0], $3[1]); - }), o('TRY Block FINALLY Block', function() { - return new Try($2, null, null, $4); - }), o('TRY Block Catch FINALLY Block', function() { - return new Try($2, $3[0], $3[1], $5); - }) - ], - Catch: [ - o('CATCH Identifier Block', function() { - return [$2, $3]; - }) - ], - Throw: [ - o('THROW Expression', function() { - return new Throw($2); - }) - ], - Parenthetical: [ - o('( Body )', function() { - return new Parens($2); - }), o('( INDENT Body OUTDENT )', function() { - return new Parens($3); - }) - ], - WhileSource: [ - o('WHILE Expression', function() { - return new While($2); - }), o('WHILE Expression WHEN Expression', function() { - return new While($2, { - guard: $4 - }); - }), o('UNTIL Expression', function() { - return new While($2, { - invert: true - }); - }), o('UNTIL Expression WHEN Expression', function() { - return new While($2, { - invert: true, - guard: $4 - }); - }) - ], - While: [ - o('WhileSource Block', function() { - return $1.addBody($2); - }), o('Statement WhileSource', function() { - return $2.addBody(Block.wrap([$1])); - }), o('Expression WhileSource', function() { - return $2.addBody(Block.wrap([$1])); - }), o('Loop', function() { - return $1; - }) - ], - Loop: [ - o('LOOP Block', function() { - return new While(new Literal('true')).addBody($2); - }), o('LOOP Expression', function() { - return new While(new Literal('true')).addBody(Block.wrap([$2])); - }) - ], - For: [ - o('Statement ForBody', function() { - return new For($1, $2); - }), o('Expression ForBody', function() { - return new For($1, $2); - }), o('ForBody Block', function() { - return new For($2, $1); - }) - ], - ForBody: [ - o('FOR Range', function() { - return { - source: new Value($2) - }; - }), o('ForStart ForSource', function() { - $2.own = $1.own; - $2.name = $1[0]; - $2.index = $1[1]; - return $2; - }) - ], - ForStart: [ - o('FOR ForVariables', function() { - return $2; - }), o('FOR OWN ForVariables', function() { - $3.own = true; - return $3; - }) - ], - ForValue: [ - o('Identifier'), o('ThisProperty'), o('Array', function() { - return new Value($1); - }), o('Object', function() { - return new Value($1); - }) - ], - ForVariables: [ - o('ForValue', function() { - return [$1]; - }), o('ForValue , ForValue', function() { - return [$1, $3]; - }) - ], - ForSource: [ - o('FORIN Expression', function() { - return { - source: $2 - }; - }), o('FOROF Expression', function() { - return { - source: $2, - object: true - }; - }), o('FORIN Expression WHEN Expression', function() { - return { - source: $2, - guard: $4 - }; - }), o('FOROF Expression WHEN Expression', function() { - return { - source: $2, - guard: $4, - object: true - }; - }), o('FORIN Expression BY Expression', function() { - return { - source: $2, - step: $4 - }; - }), o('FORIN Expression WHEN Expression BY Expression', function() { - return { - source: $2, - guard: $4, - step: $6 - }; - }), o('FORIN Expression BY Expression WHEN Expression', function() { - return { - source: $2, - step: $4, - guard: $6 - }; - }) - ], - Switch: [ - o('SWITCH Expression INDENT Whens OUTDENT', function() { - return new Switch($2, $4); - }), o('SWITCH Expression INDENT Whens ELSE Block OUTDENT', function() { - return new Switch($2, $4, $6); - }), o('SWITCH INDENT Whens OUTDENT', function() { - return new Switch(null, $3); - }), o('SWITCH INDENT Whens ELSE Block OUTDENT', function() { - return new Switch(null, $3, $5); - }) - ], - Whens: [ - o('When'), o('Whens When', function() { - return $1.concat($2); - }) - ], - When: [ - o('LEADING_WHEN SimpleArgs Block', function() { - return [[$2, $3]]; - }), o('LEADING_WHEN SimpleArgs Block TERMINATOR', function() { - return [[$2, $3]]; - }) - ], - IfBlock: [ - o('IF Expression Block', function() { - return new If($2, $3, { - type: $1 - }); - }), o('IfBlock ELSE IF Expression Block', function() { - return $1.addElse(new If($4, $5, { - type: $3 - })); - }) - ], - If: [ - o('IfBlock'), o('IfBlock ELSE Block', function() { - return $1.addElse($3); - }), o('Statement POST_IF Expression', function() { - return new If($3, Block.wrap([$1]), { - type: $2, - statement: true - }); - }), o('Expression POST_IF Expression', function() { - return new If($3, Block.wrap([$1]), { - type: $2, - statement: true - }); - }) - ], - Operation: [ - o('UNARY Expression', function() { - return new Op($1, $2); - }), o('- Expression', (function() { - return new Op('-', $2); - }), { - prec: 'UNARY' - }), o('+ Expression', (function() { - return new Op('+', $2); - }), { - prec: 'UNARY' - }), o('-- SimpleAssignable', function() { - return new Op('--', $2); - }), o('++ SimpleAssignable', function() { - return new Op('++', $2); - }), o('SimpleAssignable --', function() { - return new Op('--', $1, null, true); - }), o('SimpleAssignable ++', function() { - return new Op('++', $1, null, true); - }), o('Expression ?', function() { - return new Existence($1); - }), o('Expression + Expression', function() { - return new Op('+', $1, $3); - }), o('Expression - Expression', function() { - return new Op('-', $1, $3); - }), o('Expression MATH Expression', function() { - return new Op($2, $1, $3); - }), o('Expression SHIFT Expression', function() { - return new Op($2, $1, $3); - }), o('Expression COMPARE Expression', function() { - return new Op($2, $1, $3); - }), o('Expression LOGIC Expression', function() { - return new Op($2, $1, $3); - }), o('Expression RELATION Expression', function() { - if ($2.charAt(0) === '!') { - return new Op($2.slice(1), $1, $3).invert(); - } else { - return new Op($2, $1, $3); - } - }), o('SimpleAssignable COMPOUND_ASSIGN\ - Expression', function() { - return new Assign($1, $3, $2); - }), o('SimpleAssignable COMPOUND_ASSIGN\ - INDENT Expression OUTDENT', function() { - return new Assign($1, $4, $2); - }), o('SimpleAssignable EXTENDS Expression', function() { - return new Extends($1, $3); - }) - ] - }; - - operators = [['left', '.', '?.', '::'], ['left', 'CALL_START', 'CALL_END'], ['nonassoc', '++', '--'], ['left', '?'], ['right', 'UNARY'], ['left', 'MATH'], ['left', '+', '-'], ['left', 'SHIFT'], ['left', 'RELATION'], ['left', 'COMPARE'], ['left', 'LOGIC'], ['nonassoc', 'INDENT', 'OUTDENT'], ['right', '=', ':', 'COMPOUND_ASSIGN', 'RETURN', 'THROW', 'EXTENDS'], ['right', 'FORIN', 'FOROF', 'BY', 'WHEN'], ['right', 'IF', 'ELSE', 'FOR', 'WHILE', 'UNTIL', 'LOOP', 'SUPER', 'CLASS'], ['right', 'POST_IF']]; - - tokens = []; - - for (name in grammar) { - alternatives = grammar[name]; - grammar[name] = (function() { - var _i, _j, _len, _len1, _ref, _results; - _results = []; - for (_i = 0, _len = alternatives.length; _i < _len; _i++) { - alt = alternatives[_i]; - _ref = alt[0].split(' '); - for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) { - token = _ref[_j]; - if (!grammar[token]) { - tokens.push(token); - } - } - if (name === 'Root') { - alt[1] = "return " + alt[1]; - } - _results.push(alt); - } - return _results; - })(); - } - - exports.parser = new Parser({ - tokens: tokens.join(' '), - bnf: grammar, - operators: operators.reverse(), - startSymbol: 'Root' - }); - -}).call(this); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/helpers.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/helpers.js deleted file mode 100644 index b0a997b8d6..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/helpers.js +++ /dev/null @@ -1,77 +0,0 @@ -// Generated by CoffeeScript 1.3.3 -(function() { - var extend, flatten; - - exports.starts = function(string, literal, start) { - return literal === string.substr(start, literal.length); - }; - - exports.ends = function(string, literal, back) { - var len; - len = literal.length; - return literal === string.substr(string.length - len - (back || 0), len); - }; - - exports.compact = function(array) { - var item, _i, _len, _results; - _results = []; - for (_i = 0, _len = array.length; _i < _len; _i++) { - item = array[_i]; - if (item) { - _results.push(item); - } - } - return _results; - }; - - exports.count = function(string, substr) { - var num, pos; - num = pos = 0; - if (!substr.length) { - return 1 / 0; - } - while (pos = 1 + string.indexOf(substr, pos)) { - num++; - } - return num; - }; - - exports.merge = function(options, overrides) { - return extend(extend({}, options), overrides); - }; - - extend = exports.extend = function(object, properties) { - var key, val; - for (key in properties) { - val = properties[key]; - object[key] = val; - } - return object; - }; - - exports.flatten = flatten = function(array) { - var element, flattened, _i, _len; - flattened = []; - for (_i = 0, _len = array.length; _i < _len; _i++) { - element = array[_i]; - if (element instanceof Array) { - flattened = flattened.concat(flatten(element)); - } else { - flattened.push(element); - } - } - return flattened; - }; - - exports.del = function(obj, key) { - var val; - val = obj[key]; - delete obj[key]; - return val; - }; - - exports.last = function(array, back) { - return array[array.length - (back || 0) - 1]; - }; - -}).call(this); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/index.js deleted file mode 100644 index d344c41a25..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/index.js +++ /dev/null @@ -1,11 +0,0 @@ -// Generated by CoffeeScript 1.3.3 -(function() { - var key, val, _ref; - - _ref = require('./coffee-script'); - for (key in _ref) { - val = _ref[key]; - exports[key] = val; - } - -}).call(this); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/lexer.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/lexer.js deleted file mode 100644 index f80a443373..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/lexer.js +++ /dev/null @@ -1,788 +0,0 @@ -// Generated by CoffeeScript 1.3.3 -(function() { - var BOOL, CALLABLE, CODE, COFFEE_ALIASES, COFFEE_ALIAS_MAP, COFFEE_KEYWORDS, COMMENT, COMPARE, COMPOUND_ASSIGN, HEREDOC, HEREDOC_ILLEGAL, HEREDOC_INDENT, HEREGEX, HEREGEX_OMIT, IDENTIFIER, INDEXABLE, INVERSES, JSTOKEN, JS_FORBIDDEN, JS_KEYWORDS, LINE_BREAK, LINE_CONTINUER, LOGIC, Lexer, MATH, MULTILINER, MULTI_DENT, NOT_REGEX, NOT_SPACED_REGEX, NUMBER, OPERATOR, REGEX, RELATION, RESERVED, Rewriter, SHIFT, SIMPLESTR, STRICT_PROSCRIBED, TRAILING_SPACES, UNARY, WHITESPACE, compact, count, key, last, starts, _ref, _ref1, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; - - _ref = require('./rewriter'), Rewriter = _ref.Rewriter, INVERSES = _ref.INVERSES; - - _ref1 = require('./helpers'), count = _ref1.count, starts = _ref1.starts, compact = _ref1.compact, last = _ref1.last; - - exports.Lexer = Lexer = (function() { - - function Lexer() {} - - Lexer.prototype.tokenize = function(code, opts) { - var i, tag; - if (opts == null) { - opts = {}; - } - if (WHITESPACE.test(code)) { - code = "\n" + code; - } - code = code.replace(/\r/g, '').replace(TRAILING_SPACES, ''); - this.code = code; - this.line = opts.line || 0; - this.indent = 0; - this.indebt = 0; - this.outdebt = 0; - this.indents = []; - this.ends = []; - this.tokens = []; - i = 0; - while (this.chunk = code.slice(i)) { - i += this.identifierToken() || this.commentToken() || this.whitespaceToken() || this.lineToken() || this.heredocToken() || this.stringToken() || this.numberToken() || this.regexToken() || this.jsToken() || this.literalToken(); - } - this.closeIndentation(); - if (tag = this.ends.pop()) { - this.error("missing " + tag); - } - if (opts.rewrite === false) { - return this.tokens; - } - return (new Rewriter).rewrite(this.tokens); - }; - - Lexer.prototype.identifierToken = function() { - var colon, forcedIdentifier, id, input, match, prev, tag, _ref2, _ref3; - if (!(match = IDENTIFIER.exec(this.chunk))) { - return 0; - } - input = match[0], id = match[1], colon = match[2]; - if (id === 'own' && this.tag() === 'FOR') { - this.token('OWN', id); - return id.length; - } - forcedIdentifier = colon || (prev = last(this.tokens)) && (((_ref2 = prev[0]) === '.' || _ref2 === '?.' || _ref2 === '::') || !prev.spaced && prev[0] === '@'); - tag = 'IDENTIFIER'; - if (!forcedIdentifier && (__indexOf.call(JS_KEYWORDS, id) >= 0 || __indexOf.call(COFFEE_KEYWORDS, id) >= 0)) { - tag = id.toUpperCase(); - if (tag === 'WHEN' && (_ref3 = this.tag(), __indexOf.call(LINE_BREAK, _ref3) >= 0)) { - tag = 'LEADING_WHEN'; - } else if (tag === 'FOR') { - this.seenFor = true; - } else if (tag === 'UNLESS') { - tag = 'IF'; - } else if (__indexOf.call(UNARY, tag) >= 0) { - tag = 'UNARY'; - } else if (__indexOf.call(RELATION, tag) >= 0) { - if (tag !== 'INSTANCEOF' && this.seenFor) { - tag = 'FOR' + tag; - this.seenFor = false; - } else { - tag = 'RELATION'; - if (this.value() === '!') { - this.tokens.pop(); - id = '!' + id; - } - } - } - } - if (__indexOf.call(JS_FORBIDDEN, id) >= 0) { - if (forcedIdentifier) { - tag = 'IDENTIFIER'; - id = new String(id); - id.reserved = true; - } else if (__indexOf.call(RESERVED, id) >= 0) { - this.error("reserved word \"" + id + "\""); - } - } - if (!forcedIdentifier) { - if (__indexOf.call(COFFEE_ALIASES, id) >= 0) { - id = COFFEE_ALIAS_MAP[id]; - } - tag = (function() { - switch (id) { - case '!': - return 'UNARY'; - case '==': - case '!=': - return 'COMPARE'; - case '&&': - case '||': - return 'LOGIC'; - case 'true': - case 'false': - return 'BOOL'; - case 'break': - case 'continue': - return 'STATEMENT'; - default: - return tag; - } - })(); - } - this.token(tag, id); - if (colon) { - this.token(':', ':'); - } - return input.length; - }; - - Lexer.prototype.numberToken = function() { - var binaryLiteral, lexedLength, match, number, octalLiteral; - if (!(match = NUMBER.exec(this.chunk))) { - return 0; - } - number = match[0]; - if (/^0[BOX]/.test(number)) { - this.error("radix prefix '" + number + "' must be lowercase"); - } else if (/E/.test(number) && !/^0x/.test(number)) { - this.error("exponential notation '" + number + "' must be indicated with a lowercase 'e'"); - } else if (/^0\d*[89]/.test(number)) { - this.error("decimal literal '" + number + "' must not be prefixed with '0'"); - } else if (/^0\d+/.test(number)) { - this.error("octal literal '" + number + "' must be prefixed with '0o'"); - } - lexedLength = number.length; - if (octalLiteral = /^0o([0-7]+)/.exec(number)) { - number = '0x' + (parseInt(octalLiteral[1], 8)).toString(16); - } - if (binaryLiteral = /^0b([01]+)/.exec(number)) { - number = '0x' + (parseInt(binaryLiteral[1], 2)).toString(16); - } - this.token('NUMBER', number); - return lexedLength; - }; - - Lexer.prototype.stringToken = function() { - var match, octalEsc, string; - switch (this.chunk.charAt(0)) { - case "'": - if (!(match = SIMPLESTR.exec(this.chunk))) { - return 0; - } - this.token('STRING', (string = match[0]).replace(MULTILINER, '\\\n')); - break; - case '"': - if (!(string = this.balancedString(this.chunk, '"'))) { - return 0; - } - if (0 < string.indexOf('#{', 1)) { - this.interpolateString(string.slice(1, -1)); - } else { - this.token('STRING', this.escapeLines(string)); - } - break; - default: - return 0; - } - if (octalEsc = /^(?:\\.|[^\\])*\\(?:0[0-7]|[1-7])/.test(string)) { - this.error("octal escape sequences " + string + " are not allowed"); - } - this.line += count(string, '\n'); - return string.length; - }; - - Lexer.prototype.heredocToken = function() { - var doc, heredoc, match, quote; - if (!(match = HEREDOC.exec(this.chunk))) { - return 0; - } - heredoc = match[0]; - quote = heredoc.charAt(0); - doc = this.sanitizeHeredoc(match[2], { - quote: quote, - indent: null - }); - if (quote === '"' && 0 <= doc.indexOf('#{')) { - this.interpolateString(doc, { - heredoc: true - }); - } else { - this.token('STRING', this.makeString(doc, quote, true)); - } - this.line += count(heredoc, '\n'); - return heredoc.length; - }; - - Lexer.prototype.commentToken = function() { - var comment, here, match; - if (!(match = this.chunk.match(COMMENT))) { - return 0; - } - comment = match[0], here = match[1]; - if (here) { - this.token('HERECOMMENT', this.sanitizeHeredoc(here, { - herecomment: true, - indent: Array(this.indent + 1).join(' ') - })); - } - this.line += count(comment, '\n'); - return comment.length; - }; - - Lexer.prototype.jsToken = function() { - var match, script; - if (!(this.chunk.charAt(0) === '`' && (match = JSTOKEN.exec(this.chunk)))) { - return 0; - } - this.token('JS', (script = match[0]).slice(1, -1)); - return script.length; - }; - - Lexer.prototype.regexToken = function() { - var flags, length, match, prev, regex, _ref2, _ref3; - if (this.chunk.charAt(0) !== '/') { - return 0; - } - if (match = HEREGEX.exec(this.chunk)) { - length = this.heregexToken(match); - this.line += count(match[0], '\n'); - return length; - } - prev = last(this.tokens); - if (prev && (_ref2 = prev[0], __indexOf.call((prev.spaced ? NOT_REGEX : NOT_SPACED_REGEX), _ref2) >= 0)) { - return 0; - } - if (!(match = REGEX.exec(this.chunk))) { - return 0; - } - _ref3 = match, match = _ref3[0], regex = _ref3[1], flags = _ref3[2]; - if (regex.slice(0, 2) === '/*') { - this.error('regular expressions cannot begin with `*`'); - } - if (regex === '//') { - regex = '/(?:)/'; - } - this.token('REGEX', "" + regex + flags); - return match.length; - }; - - Lexer.prototype.heregexToken = function(match) { - var body, flags, heregex, re, tag, tokens, value, _i, _len, _ref2, _ref3, _ref4, _ref5; - heregex = match[0], body = match[1], flags = match[2]; - if (0 > body.indexOf('#{')) { - re = body.replace(HEREGEX_OMIT, '').replace(/\//g, '\\/'); - if (re.match(/^\*/)) { - this.error('regular expressions cannot begin with `*`'); - } - this.token('REGEX', "/" + (re || '(?:)') + "/" + flags); - return heregex.length; - } - this.token('IDENTIFIER', 'RegExp'); - this.tokens.push(['CALL_START', '(']); - tokens = []; - _ref2 = this.interpolateString(body, { - regex: true - }); - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - _ref3 = _ref2[_i], tag = _ref3[0], value = _ref3[1]; - if (tag === 'TOKENS') { - tokens.push.apply(tokens, value); - } else { - if (!(value = value.replace(HEREGEX_OMIT, ''))) { - continue; - } - value = value.replace(/\\/g, '\\\\'); - tokens.push(['STRING', this.makeString(value, '"', true)]); - } - tokens.push(['+', '+']); - } - tokens.pop(); - if (((_ref4 = tokens[0]) != null ? _ref4[0] : void 0) !== 'STRING') { - this.tokens.push(['STRING', '""'], ['+', '+']); - } - (_ref5 = this.tokens).push.apply(_ref5, tokens); - if (flags) { - this.tokens.push([',', ','], ['STRING', '"' + flags + '"']); - } - this.token(')', ')'); - return heregex.length; - }; - - Lexer.prototype.lineToken = function() { - var diff, indent, match, noNewlines, prev, size; - if (!(match = MULTI_DENT.exec(this.chunk))) { - return 0; - } - indent = match[0]; - this.line += count(indent, '\n'); - this.seenFor = false; - prev = last(this.tokens, 1); - size = indent.length - 1 - indent.lastIndexOf('\n'); - noNewlines = this.unfinished(); - if (size - this.indebt === this.indent) { - if (noNewlines) { - this.suppressNewlines(); - } else { - this.newlineToken(); - } - return indent.length; - } - if (size > this.indent) { - if (noNewlines) { - this.indebt = size - this.indent; - this.suppressNewlines(); - return indent.length; - } - diff = size - this.indent + this.outdebt; - this.token('INDENT', diff); - this.indents.push(diff); - this.ends.push('OUTDENT'); - this.outdebt = this.indebt = 0; - } else { - this.indebt = 0; - this.outdentToken(this.indent - size, noNewlines); - } - this.indent = size; - return indent.length; - }; - - Lexer.prototype.outdentToken = function(moveOut, noNewlines) { - var dent, len; - while (moveOut > 0) { - len = this.indents.length - 1; - if (this.indents[len] === void 0) { - moveOut = 0; - } else if (this.indents[len] === this.outdebt) { - moveOut -= this.outdebt; - this.outdebt = 0; - } else if (this.indents[len] < this.outdebt) { - this.outdebt -= this.indents[len]; - moveOut -= this.indents[len]; - } else { - dent = this.indents.pop() - this.outdebt; - moveOut -= dent; - this.outdebt = 0; - this.pair('OUTDENT'); - this.token('OUTDENT', dent); - } - } - if (dent) { - this.outdebt -= moveOut; - } - while (this.value() === ';') { - this.tokens.pop(); - } - if (!(this.tag() === 'TERMINATOR' || noNewlines)) { - this.token('TERMINATOR', '\n'); - } - return this; - }; - - Lexer.prototype.whitespaceToken = function() { - var match, nline, prev; - if (!((match = WHITESPACE.exec(this.chunk)) || (nline = this.chunk.charAt(0) === '\n'))) { - return 0; - } - prev = last(this.tokens); - if (prev) { - prev[match ? 'spaced' : 'newLine'] = true; - } - if (match) { - return match[0].length; - } else { - return 0; - } - }; - - Lexer.prototype.newlineToken = function() { - while (this.value() === ';') { - this.tokens.pop(); - } - if (this.tag() !== 'TERMINATOR') { - this.token('TERMINATOR', '\n'); - } - return this; - }; - - Lexer.prototype.suppressNewlines = function() { - if (this.value() === '\\') { - this.tokens.pop(); - } - return this; - }; - - Lexer.prototype.literalToken = function() { - var match, prev, tag, value, _ref2, _ref3, _ref4, _ref5; - if (match = OPERATOR.exec(this.chunk)) { - value = match[0]; - if (CODE.test(value)) { - this.tagParameters(); - } - } else { - value = this.chunk.charAt(0); - } - tag = value; - prev = last(this.tokens); - if (value === '=' && prev) { - if (!prev[1].reserved && (_ref2 = prev[1], __indexOf.call(JS_FORBIDDEN, _ref2) >= 0)) { - this.error("reserved word \"" + (this.value()) + "\" can't be assigned"); - } - if ((_ref3 = prev[1]) === '||' || _ref3 === '&&') { - prev[0] = 'COMPOUND_ASSIGN'; - prev[1] += '='; - return value.length; - } - } - if (value === ';') { - this.seenFor = false; - tag = 'TERMINATOR'; - } else if (__indexOf.call(MATH, value) >= 0) { - tag = 'MATH'; - } else if (__indexOf.call(COMPARE, value) >= 0) { - tag = 'COMPARE'; - } else if (__indexOf.call(COMPOUND_ASSIGN, value) >= 0) { - tag = 'COMPOUND_ASSIGN'; - } else if (__indexOf.call(UNARY, value) >= 0) { - tag = 'UNARY'; - } else if (__indexOf.call(SHIFT, value) >= 0) { - tag = 'SHIFT'; - } else if (__indexOf.call(LOGIC, value) >= 0 || value === '?' && (prev != null ? prev.spaced : void 0)) { - tag = 'LOGIC'; - } else if (prev && !prev.spaced) { - if (value === '(' && (_ref4 = prev[0], __indexOf.call(CALLABLE, _ref4) >= 0)) { - if (prev[0] === '?') { - prev[0] = 'FUNC_EXIST'; - } - tag = 'CALL_START'; - } else if (value === '[' && (_ref5 = prev[0], __indexOf.call(INDEXABLE, _ref5) >= 0)) { - tag = 'INDEX_START'; - switch (prev[0]) { - case '?': - prev[0] = 'INDEX_SOAK'; - } - } - } - switch (value) { - case '(': - case '{': - case '[': - this.ends.push(INVERSES[value]); - break; - case ')': - case '}': - case ']': - this.pair(value); - } - this.token(tag, value); - return value.length; - }; - - Lexer.prototype.sanitizeHeredoc = function(doc, options) { - var attempt, herecomment, indent, match, _ref2; - indent = options.indent, herecomment = options.herecomment; - if (herecomment) { - if (HEREDOC_ILLEGAL.test(doc)) { - this.error("block comment cannot contain \"*/\", starting"); - } - if (doc.indexOf('\n') <= 0) { - return doc; - } - } else { - while (match = HEREDOC_INDENT.exec(doc)) { - attempt = match[1]; - if (indent === null || (0 < (_ref2 = attempt.length) && _ref2 < indent.length)) { - indent = attempt; - } - } - } - if (indent) { - doc = doc.replace(RegExp("\\n" + indent, "g"), '\n'); - } - if (!herecomment) { - doc = doc.replace(/^\n/, ''); - } - return doc; - }; - - Lexer.prototype.tagParameters = function() { - var i, stack, tok, tokens; - if (this.tag() !== ')') { - return this; - } - stack = []; - tokens = this.tokens; - i = tokens.length; - tokens[--i][0] = 'PARAM_END'; - while (tok = tokens[--i]) { - switch (tok[0]) { - case ')': - stack.push(tok); - break; - case '(': - case 'CALL_START': - if (stack.length) { - stack.pop(); - } else if (tok[0] === '(') { - tok[0] = 'PARAM_START'; - return this; - } else { - return this; - } - } - } - return this; - }; - - Lexer.prototype.closeIndentation = function() { - return this.outdentToken(this.indent); - }; - - Lexer.prototype.balancedString = function(str, end) { - var continueCount, i, letter, match, prev, stack, _i, _ref2; - continueCount = 0; - stack = [end]; - for (i = _i = 1, _ref2 = str.length; 1 <= _ref2 ? _i < _ref2 : _i > _ref2; i = 1 <= _ref2 ? ++_i : --_i) { - if (continueCount) { - --continueCount; - continue; - } - switch (letter = str.charAt(i)) { - case '\\': - ++continueCount; - continue; - case end: - stack.pop(); - if (!stack.length) { - return str.slice(0, i + 1 || 9e9); - } - end = stack[stack.length - 1]; - continue; - } - if (end === '}' && (letter === '"' || letter === "'")) { - stack.push(end = letter); - } else if (end === '}' && letter === '/' && (match = HEREGEX.exec(str.slice(i)) || REGEX.exec(str.slice(i)))) { - continueCount += match[0].length - 1; - } else if (end === '}' && letter === '{') { - stack.push(end = '}'); - } else if (end === '"' && prev === '#' && letter === '{') { - stack.push(end = '}'); - } - prev = letter; - } - return this.error("missing " + (stack.pop()) + ", starting"); - }; - - Lexer.prototype.interpolateString = function(str, options) { - var expr, heredoc, i, inner, interpolated, len, letter, nested, pi, regex, tag, tokens, value, _i, _len, _ref2, _ref3, _ref4; - if (options == null) { - options = {}; - } - heredoc = options.heredoc, regex = options.regex; - tokens = []; - pi = 0; - i = -1; - while (letter = str.charAt(i += 1)) { - if (letter === '\\') { - i += 1; - continue; - } - if (!(letter === '#' && str.charAt(i + 1) === '{' && (expr = this.balancedString(str.slice(i + 1), '}')))) { - continue; - } - if (pi < i) { - tokens.push(['NEOSTRING', str.slice(pi, i)]); - } - inner = expr.slice(1, -1); - if (inner.length) { - nested = new Lexer().tokenize(inner, { - line: this.line, - rewrite: false - }); - nested.pop(); - if (((_ref2 = nested[0]) != null ? _ref2[0] : void 0) === 'TERMINATOR') { - nested.shift(); - } - if (len = nested.length) { - if (len > 1) { - nested.unshift(['(', '(', this.line]); - nested.push([')', ')', this.line]); - } - tokens.push(['TOKENS', nested]); - } - } - i += expr.length; - pi = i + 1; - } - if ((i > pi && pi < str.length)) { - tokens.push(['NEOSTRING', str.slice(pi)]); - } - if (regex) { - return tokens; - } - if (!tokens.length) { - return this.token('STRING', '""'); - } - if (tokens[0][0] !== 'NEOSTRING') { - tokens.unshift(['', '']); - } - if (interpolated = tokens.length > 1) { - this.token('(', '('); - } - for (i = _i = 0, _len = tokens.length; _i < _len; i = ++_i) { - _ref3 = tokens[i], tag = _ref3[0], value = _ref3[1]; - if (i) { - this.token('+', '+'); - } - if (tag === 'TOKENS') { - (_ref4 = this.tokens).push.apply(_ref4, value); - } else { - this.token('STRING', this.makeString(value, '"', heredoc)); - } - } - if (interpolated) { - this.token(')', ')'); - } - return tokens; - }; - - Lexer.prototype.pair = function(tag) { - var size, wanted; - if (tag !== (wanted = last(this.ends))) { - if ('OUTDENT' !== wanted) { - this.error("unmatched " + tag); - } - this.indent -= size = last(this.indents); - this.outdentToken(size, true); - return this.pair(tag); - } - return this.ends.pop(); - }; - - Lexer.prototype.token = function(tag, value) { - return this.tokens.push([tag, value, this.line]); - }; - - Lexer.prototype.tag = function(index, tag) { - var tok; - return (tok = last(this.tokens, index)) && (tag ? tok[0] = tag : tok[0]); - }; - - Lexer.prototype.value = function(index, val) { - var tok; - return (tok = last(this.tokens, index)) && (val ? tok[1] = val : tok[1]); - }; - - Lexer.prototype.unfinished = function() { - var _ref2; - return LINE_CONTINUER.test(this.chunk) || ((_ref2 = this.tag()) === '\\' || _ref2 === '.' || _ref2 === '?.' || _ref2 === 'UNARY' || _ref2 === 'MATH' || _ref2 === '+' || _ref2 === '-' || _ref2 === 'SHIFT' || _ref2 === 'RELATION' || _ref2 === 'COMPARE' || _ref2 === 'LOGIC' || _ref2 === 'THROW' || _ref2 === 'EXTENDS'); - }; - - Lexer.prototype.escapeLines = function(str, heredoc) { - return str.replace(MULTILINER, heredoc ? '\\n' : ''); - }; - - Lexer.prototype.makeString = function(body, quote, heredoc) { - if (!body) { - return quote + quote; - } - body = body.replace(/\\([\s\S])/g, function(match, contents) { - if (contents === '\n' || contents === quote) { - return contents; - } else { - return match; - } - }); - body = body.replace(RegExp("" + quote, "g"), '\\$&'); - return quote + this.escapeLines(body, heredoc) + quote; - }; - - Lexer.prototype.error = function(message) { - throw SyntaxError("" + message + " on line " + (this.line + 1)); - }; - - return Lexer; - - })(); - - JS_KEYWORDS = ['true', 'false', 'null', 'this', 'new', 'delete', 'typeof', 'in', 'instanceof', 'return', 'throw', 'break', 'continue', 'debugger', 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally', 'class', 'extends', 'super']; - - COFFEE_KEYWORDS = ['undefined', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when']; - - COFFEE_ALIAS_MAP = { - and: '&&', - or: '||', - is: '==', - isnt: '!=', - not: '!', - yes: 'true', - no: 'false', - on: 'true', - off: 'false' - }; - - COFFEE_ALIASES = (function() { - var _results; - _results = []; - for (key in COFFEE_ALIAS_MAP) { - _results.push(key); - } - return _results; - })(); - - COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat(COFFEE_ALIASES); - - RESERVED = ['case', 'default', 'function', 'var', 'void', 'with', 'const', 'let', 'enum', 'export', 'import', 'native', '__hasProp', '__extends', '__slice', '__bind', '__indexOf', 'implements', 'interface', 'let', 'package', 'private', 'protected', 'public', 'static', 'yield']; - - STRICT_PROSCRIBED = ['arguments', 'eval']; - - JS_FORBIDDEN = JS_KEYWORDS.concat(RESERVED).concat(STRICT_PROSCRIBED); - - exports.RESERVED = RESERVED.concat(JS_KEYWORDS).concat(COFFEE_KEYWORDS).concat(STRICT_PROSCRIBED); - - exports.STRICT_PROSCRIBED = STRICT_PROSCRIBED; - - IDENTIFIER = /^([$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)([^\n\S]*:(?!:))?/; - - NUMBER = /^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i; - - HEREDOC = /^("""|''')([\s\S]*?)(?:\n[^\n\S]*)?\1/; - - OPERATOR = /^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/; - - WHITESPACE = /^[^\n\S]+/; - - COMMENT = /^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/; - - CODE = /^[-=]>/; - - MULTI_DENT = /^(?:\n[^\n\S]*)+/; - - SIMPLESTR = /^'[^\\']*(?:\\.[^\\']*)*'/; - - JSTOKEN = /^`[^\\`]*(?:\\.[^\\`]*)*`/; - - REGEX = /^(\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)([imgy]{0,4})(?!\w)/; - - HEREGEX = /^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/; - - HEREGEX_OMIT = /\s+(?:#.*)?/g; - - MULTILINER = /\n/g; - - HEREDOC_INDENT = /\n+([^\n\S]*)/g; - - HEREDOC_ILLEGAL = /\*\//; - - LINE_CONTINUER = /^\s*(?:,|\??\.(?![.\d])|::)/; - - TRAILING_SPACES = /\s+$/; - - COMPOUND_ASSIGN = ['-=', '+=', '/=', '*=', '%=', '||=', '&&=', '?=', '<<=', '>>=', '>>>=', '&=', '^=', '|=']; - - UNARY = ['!', '~', 'NEW', 'TYPEOF', 'DELETE', 'DO']; - - LOGIC = ['&&', '||', '&', '|', '^']; - - SHIFT = ['<<', '>>', '>>>']; - - COMPARE = ['==', '!=', '<', '>', '<=', '>=']; - - MATH = ['*', '/', '%']; - - RELATION = ['IN', 'OF', 'INSTANCEOF']; - - BOOL = ['TRUE', 'FALSE']; - - NOT_REGEX = ['NUMBER', 'REGEX', 'BOOL', 'NULL', 'UNDEFINED', '++', '--', ']']; - - NOT_SPACED_REGEX = NOT_REGEX.concat(')', '}', 'THIS', 'IDENTIFIER', 'STRING'); - - CALLABLE = ['IDENTIFIER', 'STRING', 'REGEX', ')', ']', '}', '?', '::', '@', 'THIS', 'SUPER']; - - INDEXABLE = CALLABLE.concat('NUMBER', 'BOOL', 'NULL', 'UNDEFINED'); - - LINE_BREAK = ['INDENT', 'OUTDENT', 'TERMINATOR']; - -}).call(this); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/nodes.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/nodes.js deleted file mode 100644 index 799b68eb47..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/nodes.js +++ /dev/null @@ -1,2986 +0,0 @@ -// Generated by CoffeeScript 1.3.3 -(function() { - var Access, Arr, Assign, Base, Block, Call, Class, Closure, Code, Comment, Existence, Extends, For, IDENTIFIER, IDENTIFIER_STR, IS_STRING, If, In, Index, LEVEL_ACCESS, LEVEL_COND, LEVEL_LIST, LEVEL_OP, LEVEL_PAREN, LEVEL_TOP, Literal, METHOD_DEF, NEGATE, NO, Obj, Op, Param, Parens, RESERVED, Range, Return, SIMPLENUM, STRICT_PROSCRIBED, Scope, Slice, Splat, Switch, TAB, THIS, Throw, Try, UTILITIES, Value, While, YES, compact, del, ends, extend, flatten, last, merge, multident, starts, unfoldSoak, utility, _ref, _ref1, - __hasProp = {}.hasOwnProperty, - __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; - - Scope = require('./scope').Scope; - - _ref = require('./lexer'), RESERVED = _ref.RESERVED, STRICT_PROSCRIBED = _ref.STRICT_PROSCRIBED; - - _ref1 = require('./helpers'), compact = _ref1.compact, flatten = _ref1.flatten, extend = _ref1.extend, merge = _ref1.merge, del = _ref1.del, starts = _ref1.starts, ends = _ref1.ends, last = _ref1.last; - - exports.extend = extend; - - YES = function() { - return true; - }; - - NO = function() { - return false; - }; - - THIS = function() { - return this; - }; - - NEGATE = function() { - this.negated = !this.negated; - return this; - }; - - exports.Base = Base = (function() { - - function Base() {} - - Base.prototype.compile = function(o, lvl) { - var node; - o = extend({}, o); - if (lvl) { - o.level = lvl; - } - node = this.unfoldSoak(o) || this; - node.tab = o.indent; - if (o.level === LEVEL_TOP || !node.isStatement(o)) { - return node.compileNode(o); - } else { - return node.compileClosure(o); - } - }; - - Base.prototype.compileClosure = function(o) { - if (this.jumps()) { - throw SyntaxError('cannot use a pure statement in an expression.'); - } - o.sharedScope = true; - return Closure.wrap(this).compileNode(o); - }; - - Base.prototype.cache = function(o, level, reused) { - var ref, sub; - if (!this.isComplex()) { - ref = level ? this.compile(o, level) : this; - return [ref, ref]; - } else { - ref = new Literal(reused || o.scope.freeVariable('ref')); - sub = new Assign(ref, this); - if (level) { - return [sub.compile(o, level), ref.value]; - } else { - return [sub, ref]; - } - } - }; - - Base.prototype.compileLoopReference = function(o, name) { - var src, tmp; - src = tmp = this.compile(o, LEVEL_LIST); - if (!((-Infinity < +src && +src < Infinity) || IDENTIFIER.test(src) && o.scope.check(src, true))) { - src = "" + (tmp = o.scope.freeVariable(name)) + " = " + src; - } - return [src, tmp]; - }; - - Base.prototype.makeReturn = function(res) { - var me; - me = this.unwrapAll(); - if (res) { - return new Call(new Literal("" + res + ".push"), [me]); - } else { - return new Return(me); - } - }; - - Base.prototype.contains = function(pred) { - var contains; - contains = false; - this.traverseChildren(false, function(node) { - if (pred(node)) { - contains = true; - return false; - } - }); - return contains; - }; - - Base.prototype.containsType = function(type) { - return this instanceof type || this.contains(function(node) { - return node instanceof type; - }); - }; - - Base.prototype.lastNonComment = function(list) { - var i; - i = list.length; - while (i--) { - if (!(list[i] instanceof Comment)) { - return list[i]; - } - } - return null; - }; - - Base.prototype.toString = function(idt, name) { - var tree; - if (idt == null) { - idt = ''; - } - if (name == null) { - name = this.constructor.name; - } - tree = '\n' + idt + name; - if (this.soak) { - tree += '?'; - } - this.eachChild(function(node) { - return tree += node.toString(idt + TAB); - }); - return tree; - }; - - Base.prototype.eachChild = function(func) { - var attr, child, _i, _j, _len, _len1, _ref2, _ref3; - if (!this.children) { - return this; - } - _ref2 = this.children; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - attr = _ref2[_i]; - if (this[attr]) { - _ref3 = flatten([this[attr]]); - for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) { - child = _ref3[_j]; - if (func(child) === false) { - return this; - } - } - } - } - return this; - }; - - Base.prototype.traverseChildren = function(crossScope, func) { - return this.eachChild(function(child) { - if (func(child) === false) { - return false; - } - return child.traverseChildren(crossScope, func); - }); - }; - - Base.prototype.invert = function() { - return new Op('!', this); - }; - - Base.prototype.unwrapAll = function() { - var node; - node = this; - while (node !== (node = node.unwrap())) { - continue; - } - return node; - }; - - Base.prototype.children = []; - - Base.prototype.isStatement = NO; - - Base.prototype.jumps = NO; - - Base.prototype.isComplex = YES; - - Base.prototype.isChainable = NO; - - Base.prototype.isAssignable = NO; - - Base.prototype.unwrap = THIS; - - Base.prototype.unfoldSoak = NO; - - Base.prototype.assigns = NO; - - return Base; - - })(); - - exports.Block = Block = (function(_super) { - - __extends(Block, _super); - - function Block(nodes) { - this.expressions = compact(flatten(nodes || [])); - } - - Block.prototype.children = ['expressions']; - - Block.prototype.push = function(node) { - this.expressions.push(node); - return this; - }; - - Block.prototype.pop = function() { - return this.expressions.pop(); - }; - - Block.prototype.unshift = function(node) { - this.expressions.unshift(node); - return this; - }; - - Block.prototype.unwrap = function() { - if (this.expressions.length === 1) { - return this.expressions[0]; - } else { - return this; - } - }; - - Block.prototype.isEmpty = function() { - return !this.expressions.length; - }; - - Block.prototype.isStatement = function(o) { - var exp, _i, _len, _ref2; - _ref2 = this.expressions; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - exp = _ref2[_i]; - if (exp.isStatement(o)) { - return true; - } - } - return false; - }; - - Block.prototype.jumps = function(o) { - var exp, _i, _len, _ref2; - _ref2 = this.expressions; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - exp = _ref2[_i]; - if (exp.jumps(o)) { - return exp; - } - } - }; - - Block.prototype.makeReturn = function(res) { - var expr, len; - len = this.expressions.length; - while (len--) { - expr = this.expressions[len]; - if (!(expr instanceof Comment)) { - this.expressions[len] = expr.makeReturn(res); - if (expr instanceof Return && !expr.expression) { - this.expressions.splice(len, 1); - } - break; - } - } - return this; - }; - - Block.prototype.compile = function(o, level) { - if (o == null) { - o = {}; - } - if (o.scope) { - return Block.__super__.compile.call(this, o, level); - } else { - return this.compileRoot(o); - } - }; - - Block.prototype.compileNode = function(o) { - var code, codes, node, top, _i, _len, _ref2; - this.tab = o.indent; - top = o.level === LEVEL_TOP; - codes = []; - _ref2 = this.expressions; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - node = _ref2[_i]; - node = node.unwrapAll(); - node = node.unfoldSoak(o) || node; - if (node instanceof Block) { - codes.push(node.compileNode(o)); - } else if (top) { - node.front = true; - code = node.compile(o); - if (!node.isStatement(o)) { - code = "" + this.tab + code + ";"; - if (node instanceof Literal) { - code = "" + code + "\n"; - } - } - codes.push(code); - } else { - codes.push(node.compile(o, LEVEL_LIST)); - } - } - if (top) { - if (this.spaced) { - return "\n" + (codes.join('\n\n')) + "\n"; - } else { - return codes.join('\n'); - } - } - code = codes.join(', ') || 'void 0'; - if (codes.length > 1 && o.level >= LEVEL_LIST) { - return "(" + code + ")"; - } else { - return code; - } - }; - - Block.prototype.compileRoot = function(o) { - var code, exp, i, prelude, preludeExps, rest; - o.indent = o.bare ? '' : TAB; - o.scope = new Scope(null, this, null); - o.level = LEVEL_TOP; - this.spaced = true; - prelude = ""; - if (!o.bare) { - preludeExps = (function() { - var _i, _len, _ref2, _results; - _ref2 = this.expressions; - _results = []; - for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) { - exp = _ref2[i]; - if (!(exp.unwrap() instanceof Comment)) { - break; - } - _results.push(exp); - } - return _results; - }).call(this); - rest = this.expressions.slice(preludeExps.length); - this.expressions = preludeExps; - if (preludeExps.length) { - prelude = "" + (this.compileNode(merge(o, { - indent: '' - }))) + "\n"; - } - this.expressions = rest; - } - code = this.compileWithDeclarations(o); - if (o.bare) { - return code; - } - return "" + prelude + "(function() {\n" + code + "\n}).call(this);\n"; - }; - - Block.prototype.compileWithDeclarations = function(o) { - var assigns, code, declars, exp, i, post, rest, scope, spaced, _i, _len, _ref2, _ref3, _ref4; - code = post = ''; - _ref2 = this.expressions; - for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) { - exp = _ref2[i]; - exp = exp.unwrap(); - if (!(exp instanceof Comment || exp instanceof Literal)) { - break; - } - } - o = merge(o, { - level: LEVEL_TOP - }); - if (i) { - rest = this.expressions.splice(i, 9e9); - _ref3 = [this.spaced, false], spaced = _ref3[0], this.spaced = _ref3[1]; - _ref4 = [this.compileNode(o), spaced], code = _ref4[0], this.spaced = _ref4[1]; - this.expressions = rest; - } - post = this.compileNode(o); - scope = o.scope; - if (scope.expressions === this) { - declars = o.scope.hasDeclarations(); - assigns = scope.hasAssignments; - if (declars || assigns) { - if (i) { - code += '\n'; - } - code += "" + this.tab + "var "; - if (declars) { - code += scope.declaredVariables().join(', '); - } - if (assigns) { - if (declars) { - code += ",\n" + (this.tab + TAB); - } - code += scope.assignedVariables().join(",\n" + (this.tab + TAB)); - } - code += ';\n'; - } - } - return code + post; - }; - - Block.wrap = function(nodes) { - if (nodes.length === 1 && nodes[0] instanceof Block) { - return nodes[0]; - } - return new Block(nodes); - }; - - return Block; - - })(Base); - - exports.Literal = Literal = (function(_super) { - - __extends(Literal, _super); - - function Literal(value) { - this.value = value; - } - - Literal.prototype.makeReturn = function() { - if (this.isStatement()) { - return this; - } else { - return Literal.__super__.makeReturn.apply(this, arguments); - } - }; - - Literal.prototype.isAssignable = function() { - return IDENTIFIER.test(this.value); - }; - - Literal.prototype.isStatement = function() { - var _ref2; - return (_ref2 = this.value) === 'break' || _ref2 === 'continue' || _ref2 === 'debugger'; - }; - - Literal.prototype.isComplex = NO; - - Literal.prototype.assigns = function(name) { - return name === this.value; - }; - - Literal.prototype.jumps = function(o) { - if (this.value === 'break' && !((o != null ? o.loop : void 0) || (o != null ? o.block : void 0))) { - return this; - } - if (this.value === 'continue' && !(o != null ? o.loop : void 0)) { - return this; - } - }; - - Literal.prototype.compileNode = function(o) { - var code, _ref2; - code = this.value === 'this' ? ((_ref2 = o.scope.method) != null ? _ref2.bound : void 0) ? o.scope.method.context : this.value : this.value.reserved ? "\"" + this.value + "\"" : this.value; - if (this.isStatement()) { - return "" + this.tab + code + ";"; - } else { - return code; - } - }; - - Literal.prototype.toString = function() { - return ' "' + this.value + '"'; - }; - - return Literal; - - })(Base); - - exports.Undefined = (function(_super) { - - __extends(Undefined, _super); - - function Undefined() { - return Undefined.__super__.constructor.apply(this, arguments); - } - - Undefined.prototype.isAssignable = NO; - - Undefined.prototype.isComplex = NO; - - Undefined.prototype.compileNode = function(o) { - if (o.level >= LEVEL_ACCESS) { - return '(void 0)'; - } else { - return 'void 0'; - } - }; - - return Undefined; - - })(Base); - - exports.Null = (function(_super) { - - __extends(Null, _super); - - function Null() { - return Null.__super__.constructor.apply(this, arguments); - } - - Null.prototype.isAssignable = NO; - - Null.prototype.isComplex = NO; - - Null.prototype.compileNode = function() { - return "null"; - }; - - return Null; - - })(Base); - - exports.Bool = (function(_super) { - - __extends(Bool, _super); - - Bool.prototype.isAssignable = NO; - - Bool.prototype.isComplex = NO; - - Bool.prototype.compileNode = function() { - return this.val; - }; - - function Bool(val) { - this.val = val; - } - - return Bool; - - })(Base); - - exports.Return = Return = (function(_super) { - - __extends(Return, _super); - - function Return(expr) { - if (expr && !expr.unwrap().isUndefined) { - this.expression = expr; - } - } - - Return.prototype.children = ['expression']; - - Return.prototype.isStatement = YES; - - Return.prototype.makeReturn = THIS; - - Return.prototype.jumps = THIS; - - Return.prototype.compile = function(o, level) { - var expr, _ref2; - expr = (_ref2 = this.expression) != null ? _ref2.makeReturn() : void 0; - if (expr && !(expr instanceof Return)) { - return expr.compile(o, level); - } else { - return Return.__super__.compile.call(this, o, level); - } - }; - - Return.prototype.compileNode = function(o) { - return this.tab + ("return" + [this.expression ? " " + (this.expression.compile(o, LEVEL_PAREN)) : void 0] + ";"); - }; - - return Return; - - })(Base); - - exports.Value = Value = (function(_super) { - - __extends(Value, _super); - - function Value(base, props, tag) { - if (!props && base instanceof Value) { - return base; - } - this.base = base; - this.properties = props || []; - if (tag) { - this[tag] = true; - } - return this; - } - - Value.prototype.children = ['base', 'properties']; - - Value.prototype.add = function(props) { - this.properties = this.properties.concat(props); - return this; - }; - - Value.prototype.hasProperties = function() { - return !!this.properties.length; - }; - - Value.prototype.isArray = function() { - return !this.properties.length && this.base instanceof Arr; - }; - - Value.prototype.isComplex = function() { - return this.hasProperties() || this.base.isComplex(); - }; - - Value.prototype.isAssignable = function() { - return this.hasProperties() || this.base.isAssignable(); - }; - - Value.prototype.isSimpleNumber = function() { - return this.base instanceof Literal && SIMPLENUM.test(this.base.value); - }; - - Value.prototype.isString = function() { - return this.base instanceof Literal && IS_STRING.test(this.base.value); - }; - - Value.prototype.isAtomic = function() { - var node, _i, _len, _ref2; - _ref2 = this.properties.concat(this.base); - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - node = _ref2[_i]; - if (node.soak || node instanceof Call) { - return false; - } - } - return true; - }; - - Value.prototype.isStatement = function(o) { - return !this.properties.length && this.base.isStatement(o); - }; - - Value.prototype.assigns = function(name) { - return !this.properties.length && this.base.assigns(name); - }; - - Value.prototype.jumps = function(o) { - return !this.properties.length && this.base.jumps(o); - }; - - Value.prototype.isObject = function(onlyGenerated) { - if (this.properties.length) { - return false; - } - return (this.base instanceof Obj) && (!onlyGenerated || this.base.generated); - }; - - Value.prototype.isSplice = function() { - return last(this.properties) instanceof Slice; - }; - - Value.prototype.unwrap = function() { - if (this.properties.length) { - return this; - } else { - return this.base; - } - }; - - Value.prototype.cacheReference = function(o) { - var base, bref, name, nref; - name = last(this.properties); - if (this.properties.length < 2 && !this.base.isComplex() && !(name != null ? name.isComplex() : void 0)) { - return [this, this]; - } - base = new Value(this.base, this.properties.slice(0, -1)); - if (base.isComplex()) { - bref = new Literal(o.scope.freeVariable('base')); - base = new Value(new Parens(new Assign(bref, base))); - } - if (!name) { - return [base, bref]; - } - if (name.isComplex()) { - nref = new Literal(o.scope.freeVariable('name')); - name = new Index(new Assign(nref, name.index)); - nref = new Index(nref); - } - return [base.add(name), new Value(bref || base.base, [nref || name])]; - }; - - Value.prototype.compileNode = function(o) { - var code, prop, props, _i, _len; - this.base.front = this.front; - props = this.properties; - code = this.base.compile(o, props.length ? LEVEL_ACCESS : null); - if ((this.base instanceof Parens || props.length) && SIMPLENUM.test(code)) { - code = "" + code + "."; - } - for (_i = 0, _len = props.length; _i < _len; _i++) { - prop = props[_i]; - code += prop.compile(o); - } - return code; - }; - - Value.prototype.unfoldSoak = function(o) { - var result, - _this = this; - if (this.unfoldedSoak != null) { - return this.unfoldedSoak; - } - result = (function() { - var fst, i, ifn, prop, ref, snd, _i, _len, _ref2; - if (ifn = _this.base.unfoldSoak(o)) { - Array.prototype.push.apply(ifn.body.properties, _this.properties); - return ifn; - } - _ref2 = _this.properties; - for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) { - prop = _ref2[i]; - if (!prop.soak) { - continue; - } - prop.soak = false; - fst = new Value(_this.base, _this.properties.slice(0, i)); - snd = new Value(_this.base, _this.properties.slice(i)); - if (fst.isComplex()) { - ref = new Literal(o.scope.freeVariable('ref')); - fst = new Parens(new Assign(ref, fst)); - snd.base = ref; - } - return new If(new Existence(fst), snd, { - soak: true - }); - } - return null; - })(); - return this.unfoldedSoak = result || false; - }; - - return Value; - - })(Base); - - exports.Comment = Comment = (function(_super) { - - __extends(Comment, _super); - - function Comment(comment) { - this.comment = comment; - } - - Comment.prototype.isStatement = YES; - - Comment.prototype.makeReturn = THIS; - - Comment.prototype.compileNode = function(o, level) { - var code; - code = '/*' + multident(this.comment, this.tab) + ("\n" + this.tab + "*/\n"); - if ((level || o.level) === LEVEL_TOP) { - code = o.indent + code; - } - return code; - }; - - return Comment; - - })(Base); - - exports.Call = Call = (function(_super) { - - __extends(Call, _super); - - function Call(variable, args, soak) { - this.args = args != null ? args : []; - this.soak = soak; - this.isNew = false; - this.isSuper = variable === 'super'; - this.variable = this.isSuper ? null : variable; - } - - Call.prototype.children = ['variable', 'args']; - - Call.prototype.newInstance = function() { - var base, _ref2; - base = ((_ref2 = this.variable) != null ? _ref2.base : void 0) || this.variable; - if (base instanceof Call && !base.isNew) { - base.newInstance(); - } else { - this.isNew = true; - } - return this; - }; - - Call.prototype.superReference = function(o) { - var accesses, method, name; - method = o.scope.namedMethod(); - if (!method) { - throw SyntaxError('cannot call super outside of a function.'); - } - name = method.name; - if (name == null) { - throw SyntaxError('cannot call super on an anonymous function.'); - } - if (method.klass) { - accesses = [new Access(new Literal('__super__'))]; - if (method["static"]) { - accesses.push(new Access(new Literal('constructor'))); - } - accesses.push(new Access(new Literal(name))); - return (new Value(new Literal(method.klass), accesses)).compile(o); - } else { - return "" + name + ".__super__.constructor"; - } - }; - - Call.prototype.superThis = function(o) { - var method; - method = o.scope.method; - return (method && !method.klass && method.context) || "this"; - }; - - Call.prototype.unfoldSoak = function(o) { - var call, ifn, left, list, rite, _i, _len, _ref2, _ref3; - if (this.soak) { - if (this.variable) { - if (ifn = unfoldSoak(o, this, 'variable')) { - return ifn; - } - _ref2 = new Value(this.variable).cacheReference(o), left = _ref2[0], rite = _ref2[1]; - } else { - left = new Literal(this.superReference(o)); - rite = new Value(left); - } - rite = new Call(rite, this.args); - rite.isNew = this.isNew; - left = new Literal("typeof " + (left.compile(o)) + " === \"function\""); - return new If(left, new Value(rite), { - soak: true - }); - } - call = this; - list = []; - while (true) { - if (call.variable instanceof Call) { - list.push(call); - call = call.variable; - continue; - } - if (!(call.variable instanceof Value)) { - break; - } - list.push(call); - if (!((call = call.variable.base) instanceof Call)) { - break; - } - } - _ref3 = list.reverse(); - for (_i = 0, _len = _ref3.length; _i < _len; _i++) { - call = _ref3[_i]; - if (ifn) { - if (call.variable instanceof Call) { - call.variable = ifn; - } else { - call.variable.base = ifn; - } - } - ifn = unfoldSoak(o, call, 'variable'); - } - return ifn; - }; - - Call.prototype.filterImplicitObjects = function(list) { - var node, nodes, obj, prop, properties, _i, _j, _len, _len1, _ref2; - nodes = []; - for (_i = 0, _len = list.length; _i < _len; _i++) { - node = list[_i]; - if (!((typeof node.isObject === "function" ? node.isObject() : void 0) && node.base.generated)) { - nodes.push(node); - continue; - } - obj = null; - _ref2 = node.base.properties; - for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { - prop = _ref2[_j]; - if (prop instanceof Assign || prop instanceof Comment) { - if (!obj) { - nodes.push(obj = new Obj(properties = [], true)); - } - properties.push(prop); - } else { - nodes.push(prop); - obj = null; - } - } - } - return nodes; - }; - - Call.prototype.compileNode = function(o) { - var arg, args, code, _ref2; - if ((_ref2 = this.variable) != null) { - _ref2.front = this.front; - } - if (code = Splat.compileSplattedArray(o, this.args, true)) { - return this.compileSplat(o, code); - } - args = this.filterImplicitObjects(this.args); - args = ((function() { - var _i, _len, _results; - _results = []; - for (_i = 0, _len = args.length; _i < _len; _i++) { - arg = args[_i]; - _results.push(arg.compile(o, LEVEL_LIST)); - } - return _results; - })()).join(', '); - if (this.isSuper) { - return this.superReference(o) + (".call(" + (this.superThis(o)) + (args && ', ' + args) + ")"); - } else { - return (this.isNew ? 'new ' : '') + this.variable.compile(o, LEVEL_ACCESS) + ("(" + args + ")"); - } - }; - - Call.prototype.compileSuper = function(args, o) { - return "" + (this.superReference(o)) + ".call(" + (this.superThis(o)) + (args.length ? ', ' : '') + args + ")"; - }; - - Call.prototype.compileSplat = function(o, splatArgs) { - var base, fun, idt, name, ref; - if (this.isSuper) { - return "" + (this.superReference(o)) + ".apply(" + (this.superThis(o)) + ", " + splatArgs + ")"; - } - if (this.isNew) { - idt = this.tab + TAB; - return "(function(func, args, ctor) {\n" + idt + "ctor.prototype = func.prototype;\n" + idt + "var child = new ctor, result = func.apply(child, args), t = typeof result;\n" + idt + "return t == \"object\" || t == \"function\" ? result || child : child;\n" + this.tab + "})(" + (this.variable.compile(o, LEVEL_LIST)) + ", " + splatArgs + ", function(){})"; - } - base = new Value(this.variable); - if ((name = base.properties.pop()) && base.isComplex()) { - ref = o.scope.freeVariable('ref'); - fun = "(" + ref + " = " + (base.compile(o, LEVEL_LIST)) + ")" + (name.compile(o)); - } else { - fun = base.compile(o, LEVEL_ACCESS); - if (SIMPLENUM.test(fun)) { - fun = "(" + fun + ")"; - } - if (name) { - ref = fun; - fun += name.compile(o); - } else { - ref = 'null'; - } - } - return "" + fun + ".apply(" + ref + ", " + splatArgs + ")"; - }; - - return Call; - - })(Base); - - exports.Extends = Extends = (function(_super) { - - __extends(Extends, _super); - - function Extends(child, parent) { - this.child = child; - this.parent = parent; - } - - Extends.prototype.children = ['child', 'parent']; - - Extends.prototype.compile = function(o) { - return new Call(new Value(new Literal(utility('extends'))), [this.child, this.parent]).compile(o); - }; - - return Extends; - - })(Base); - - exports.Access = Access = (function(_super) { - - __extends(Access, _super); - - function Access(name, tag) { - this.name = name; - this.name.asKey = true; - this.soak = tag === 'soak'; - } - - Access.prototype.children = ['name']; - - Access.prototype.compile = function(o) { - var name; - name = this.name.compile(o); - if (IDENTIFIER.test(name)) { - return "." + name; - } else { - return "[" + name + "]"; - } - }; - - Access.prototype.isComplex = NO; - - return Access; - - })(Base); - - exports.Index = Index = (function(_super) { - - __extends(Index, _super); - - function Index(index) { - this.index = index; - } - - Index.prototype.children = ['index']; - - Index.prototype.compile = function(o) { - return "[" + (this.index.compile(o, LEVEL_PAREN)) + "]"; - }; - - Index.prototype.isComplex = function() { - return this.index.isComplex(); - }; - - return Index; - - })(Base); - - exports.Range = Range = (function(_super) { - - __extends(Range, _super); - - Range.prototype.children = ['from', 'to']; - - function Range(from, to, tag) { - this.from = from; - this.to = to; - this.exclusive = tag === 'exclusive'; - this.equals = this.exclusive ? '' : '='; - } - - Range.prototype.compileVariables = function(o) { - var step, _ref2, _ref3, _ref4, _ref5; - o = merge(o, { - top: true - }); - _ref2 = this.from.cache(o, LEVEL_LIST), this.fromC = _ref2[0], this.fromVar = _ref2[1]; - _ref3 = this.to.cache(o, LEVEL_LIST), this.toC = _ref3[0], this.toVar = _ref3[1]; - if (step = del(o, 'step')) { - _ref4 = step.cache(o, LEVEL_LIST), this.step = _ref4[0], this.stepVar = _ref4[1]; - } - _ref5 = [this.fromVar.match(SIMPLENUM), this.toVar.match(SIMPLENUM)], this.fromNum = _ref5[0], this.toNum = _ref5[1]; - if (this.stepVar) { - return this.stepNum = this.stepVar.match(SIMPLENUM); - } - }; - - Range.prototype.compileNode = function(o) { - var cond, condPart, from, gt, idx, idxName, known, lt, namedIndex, stepPart, to, varPart, _ref2, _ref3; - if (!this.fromVar) { - this.compileVariables(o); - } - if (!o.index) { - return this.compileArray(o); - } - known = this.fromNum && this.toNum; - idx = del(o, 'index'); - idxName = del(o, 'name'); - namedIndex = idxName && idxName !== idx; - varPart = "" + idx + " = " + this.fromC; - if (this.toC !== this.toVar) { - varPart += ", " + this.toC; - } - if (this.step !== this.stepVar) { - varPart += ", " + this.step; - } - _ref2 = ["" + idx + " <" + this.equals, "" + idx + " >" + this.equals], lt = _ref2[0], gt = _ref2[1]; - condPart = this.stepNum ? +this.stepNum > 0 ? "" + lt + " " + this.toVar : "" + gt + " " + this.toVar : known ? ((_ref3 = [+this.fromNum, +this.toNum], from = _ref3[0], to = _ref3[1], _ref3), from <= to ? "" + lt + " " + to : "" + gt + " " + to) : (cond = "" + this.fromVar + " <= " + this.toVar, "" + cond + " ? " + lt + " " + this.toVar + " : " + gt + " " + this.toVar); - stepPart = this.stepVar ? "" + idx + " += " + this.stepVar : known ? namedIndex ? from <= to ? "++" + idx : "--" + idx : from <= to ? "" + idx + "++" : "" + idx + "--" : namedIndex ? "" + cond + " ? ++" + idx + " : --" + idx : "" + cond + " ? " + idx + "++ : " + idx + "--"; - if (namedIndex) { - varPart = "" + idxName + " = " + varPart; - } - if (namedIndex) { - stepPart = "" + idxName + " = " + stepPart; - } - return "" + varPart + "; " + condPart + "; " + stepPart; - }; - - Range.prototype.compileArray = function(o) { - var args, body, cond, hasArgs, i, idt, post, pre, range, result, vars, _i, _ref2, _ref3, _results; - if (this.fromNum && this.toNum && Math.abs(this.fromNum - this.toNum) <= 20) { - range = (function() { - _results = []; - for (var _i = _ref2 = +this.fromNum, _ref3 = +this.toNum; _ref2 <= _ref3 ? _i <= _ref3 : _i >= _ref3; _ref2 <= _ref3 ? _i++ : _i--){ _results.push(_i); } - return _results; - }).apply(this); - if (this.exclusive) { - range.pop(); - } - return "[" + (range.join(', ')) + "]"; - } - idt = this.tab + TAB; - i = o.scope.freeVariable('i'); - result = o.scope.freeVariable('results'); - pre = "\n" + idt + result + " = [];"; - if (this.fromNum && this.toNum) { - o.index = i; - body = this.compileNode(o); - } else { - vars = ("" + i + " = " + this.fromC) + (this.toC !== this.toVar ? ", " + this.toC : ''); - cond = "" + this.fromVar + " <= " + this.toVar; - body = "var " + vars + "; " + cond + " ? " + i + " <" + this.equals + " " + this.toVar + " : " + i + " >" + this.equals + " " + this.toVar + "; " + cond + " ? " + i + "++ : " + i + "--"; - } - post = "{ " + result + ".push(" + i + "); }\n" + idt + "return " + result + ";\n" + o.indent; - hasArgs = function(node) { - return node != null ? node.contains(function(n) { - return n instanceof Literal && n.value === 'arguments' && !n.asKey; - }) : void 0; - }; - if (hasArgs(this.from) || hasArgs(this.to)) { - args = ', arguments'; - } - return "(function() {" + pre + "\n" + idt + "for (" + body + ")" + post + "}).apply(this" + (args != null ? args : '') + ")"; - }; - - return Range; - - })(Base); - - exports.Slice = Slice = (function(_super) { - - __extends(Slice, _super); - - Slice.prototype.children = ['range']; - - function Slice(range) { - this.range = range; - Slice.__super__.constructor.call(this); - } - - Slice.prototype.compileNode = function(o) { - var compiled, from, fromStr, to, toStr, _ref2; - _ref2 = this.range, to = _ref2.to, from = _ref2.from; - fromStr = from && from.compile(o, LEVEL_PAREN) || '0'; - compiled = to && to.compile(o, LEVEL_PAREN); - if (to && !(!this.range.exclusive && +compiled === -1)) { - toStr = ', ' + (this.range.exclusive ? compiled : SIMPLENUM.test(compiled) ? "" + (+compiled + 1) : (compiled = to.compile(o, LEVEL_ACCESS), "" + compiled + " + 1 || 9e9")); - } - return ".slice(" + fromStr + (toStr || '') + ")"; - }; - - return Slice; - - })(Base); - - exports.Obj = Obj = (function(_super) { - - __extends(Obj, _super); - - function Obj(props, generated) { - this.generated = generated != null ? generated : false; - this.objects = this.properties = props || []; - } - - Obj.prototype.children = ['properties']; - - Obj.prototype.compileNode = function(o) { - var i, idt, indent, join, lastNoncom, node, obj, prop, propName, propNames, props, _i, _j, _len, _len1, _ref2; - props = this.properties; - propNames = []; - _ref2 = this.properties; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - prop = _ref2[_i]; - if (prop.isComplex()) { - prop = prop.variable; - } - if (prop != null) { - propName = prop.unwrapAll().value.toString(); - if (__indexOf.call(propNames, propName) >= 0) { - throw SyntaxError("multiple object literal properties named \"" + propName + "\""); - } - propNames.push(propName); - } - } - if (!props.length) { - return (this.front ? '({})' : '{}'); - } - if (this.generated) { - for (_j = 0, _len1 = props.length; _j < _len1; _j++) { - node = props[_j]; - if (node instanceof Value) { - throw new Error('cannot have an implicit value in an implicit object'); - } - } - } - idt = o.indent += TAB; - lastNoncom = this.lastNonComment(this.properties); - props = (function() { - var _k, _len2, _results; - _results = []; - for (i = _k = 0, _len2 = props.length; _k < _len2; i = ++_k) { - prop = props[i]; - join = i === props.length - 1 ? '' : prop === lastNoncom || prop instanceof Comment ? '\n' : ',\n'; - indent = prop instanceof Comment ? '' : idt; - if (prop instanceof Value && prop["this"]) { - prop = new Assign(prop.properties[0].name, prop, 'object'); - } - if (!(prop instanceof Comment)) { - if (!(prop instanceof Assign)) { - prop = new Assign(prop, prop, 'object'); - } - (prop.variable.base || prop.variable).asKey = true; - } - _results.push(indent + prop.compile(o, LEVEL_TOP) + join); - } - return _results; - })(); - props = props.join(''); - obj = "{" + (props && '\n' + props + '\n' + this.tab) + "}"; - if (this.front) { - return "(" + obj + ")"; - } else { - return obj; - } - }; - - Obj.prototype.assigns = function(name) { - var prop, _i, _len, _ref2; - _ref2 = this.properties; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - prop = _ref2[_i]; - if (prop.assigns(name)) { - return true; - } - } - return false; - }; - - return Obj; - - })(Base); - - exports.Arr = Arr = (function(_super) { - - __extends(Arr, _super); - - function Arr(objs) { - this.objects = objs || []; - } - - Arr.prototype.children = ['objects']; - - Arr.prototype.filterImplicitObjects = Call.prototype.filterImplicitObjects; - - Arr.prototype.compileNode = function(o) { - var code, obj, objs; - if (!this.objects.length) { - return '[]'; - } - o.indent += TAB; - objs = this.filterImplicitObjects(this.objects); - if (code = Splat.compileSplattedArray(o, objs)) { - return code; - } - code = ((function() { - var _i, _len, _results; - _results = []; - for (_i = 0, _len = objs.length; _i < _len; _i++) { - obj = objs[_i]; - _results.push(obj.compile(o, LEVEL_LIST)); - } - return _results; - })()).join(', '); - if (code.indexOf('\n') >= 0) { - return "[\n" + o.indent + code + "\n" + this.tab + "]"; - } else { - return "[" + code + "]"; - } - }; - - Arr.prototype.assigns = function(name) { - var obj, _i, _len, _ref2; - _ref2 = this.objects; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - obj = _ref2[_i]; - if (obj.assigns(name)) { - return true; - } - } - return false; - }; - - return Arr; - - })(Base); - - exports.Class = Class = (function(_super) { - - __extends(Class, _super); - - function Class(variable, parent, body) { - this.variable = variable; - this.parent = parent; - this.body = body != null ? body : new Block; - this.boundFuncs = []; - this.body.classBody = true; - } - - Class.prototype.children = ['variable', 'parent', 'body']; - - Class.prototype.determineName = function() { - var decl, tail; - if (!this.variable) { - return null; - } - decl = (tail = last(this.variable.properties)) ? tail instanceof Access && tail.name.value : this.variable.base.value; - if (__indexOf.call(STRICT_PROSCRIBED, decl) >= 0) { - throw SyntaxError("variable name may not be " + decl); - } - return decl && (decl = IDENTIFIER.test(decl) && decl); - }; - - Class.prototype.setContext = function(name) { - return this.body.traverseChildren(false, function(node) { - if (node.classBody) { - return false; - } - if (node instanceof Literal && node.value === 'this') { - return node.value = name; - } else if (node instanceof Code) { - node.klass = name; - if (node.bound) { - return node.context = name; - } - } - }); - }; - - Class.prototype.addBoundFunctions = function(o) { - var bvar, lhs, _i, _len, _ref2, _results; - if (this.boundFuncs.length) { - _ref2 = this.boundFuncs; - _results = []; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - bvar = _ref2[_i]; - lhs = (new Value(new Literal("this"), [new Access(bvar)])).compile(o); - _results.push(this.ctor.body.unshift(new Literal("" + lhs + " = " + (utility('bind')) + "(" + lhs + ", this)"))); - } - return _results; - } - }; - - Class.prototype.addProperties = function(node, name, o) { - var assign, base, exprs, func, props; - props = node.base.properties.slice(0); - exprs = (function() { - var _results; - _results = []; - while (assign = props.shift()) { - if (assign instanceof Assign) { - base = assign.variable.base; - delete assign.context; - func = assign.value; - if (base.value === 'constructor') { - if (this.ctor) { - throw new Error('cannot define more than one constructor in a class'); - } - if (func.bound) { - throw new Error('cannot define a constructor as a bound function'); - } - if (func instanceof Code) { - assign = this.ctor = func; - } else { - this.externalCtor = o.scope.freeVariable('class'); - assign = new Assign(new Literal(this.externalCtor), func); - } - } else { - if (assign.variable["this"]) { - func["static"] = true; - if (func.bound) { - func.context = name; - } - } else { - assign.variable = new Value(new Literal(name), [new Access(new Literal('prototype')), new Access(base)]); - if (func instanceof Code && func.bound) { - this.boundFuncs.push(base); - func.bound = false; - } - } - } - } - _results.push(assign); - } - return _results; - }).call(this); - return compact(exprs); - }; - - Class.prototype.walkBody = function(name, o) { - var _this = this; - return this.traverseChildren(false, function(child) { - var exps, i, node, _i, _len, _ref2; - if (child instanceof Class) { - return false; - } - if (child instanceof Block) { - _ref2 = exps = child.expressions; - for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) { - node = _ref2[i]; - if (node instanceof Value && node.isObject(true)) { - exps[i] = _this.addProperties(node, name, o); - } - } - return child.expressions = exps = flatten(exps); - } - }); - }; - - Class.prototype.hoistDirectivePrologue = function() { - var expressions, index, node; - index = 0; - expressions = this.body.expressions; - while ((node = expressions[index]) && node instanceof Comment || node instanceof Value && node.isString()) { - ++index; - } - return this.directives = expressions.splice(0, index); - }; - - Class.prototype.ensureConstructor = function(name) { - if (!this.ctor) { - this.ctor = new Code; - if (this.parent) { - this.ctor.body.push(new Literal("" + name + ".__super__.constructor.apply(this, arguments)")); - } - if (this.externalCtor) { - this.ctor.body.push(new Literal("" + this.externalCtor + ".apply(this, arguments)")); - } - this.ctor.body.makeReturn(); - this.body.expressions.unshift(this.ctor); - } - this.ctor.ctor = this.ctor.name = name; - this.ctor.klass = null; - return this.ctor.noReturn = true; - }; - - Class.prototype.compileNode = function(o) { - var call, decl, klass, lname, name, params, _ref2; - decl = this.determineName(); - name = decl || '_Class'; - if (name.reserved) { - name = "_" + name; - } - lname = new Literal(name); - this.hoistDirectivePrologue(); - this.setContext(name); - this.walkBody(name, o); - this.ensureConstructor(name); - this.body.spaced = true; - if (!(this.ctor instanceof Code)) { - this.body.expressions.unshift(this.ctor); - } - this.body.expressions.push(lname); - (_ref2 = this.body.expressions).unshift.apply(_ref2, this.directives); - this.addBoundFunctions(o); - call = Closure.wrap(this.body); - if (this.parent) { - this.superClass = new Literal(o.scope.freeVariable('super', false)); - this.body.expressions.unshift(new Extends(lname, this.superClass)); - call.args.push(this.parent); - params = call.variable.params || call.variable.base.params; - params.push(new Param(this.superClass)); - } - klass = new Parens(call, true); - if (this.variable) { - klass = new Assign(this.variable, klass); - } - return klass.compile(o); - }; - - return Class; - - })(Base); - - exports.Assign = Assign = (function(_super) { - - __extends(Assign, _super); - - function Assign(variable, value, context, options) { - var forbidden, name, _ref2; - this.variable = variable; - this.value = value; - this.context = context; - this.param = options && options.param; - this.subpattern = options && options.subpattern; - forbidden = (_ref2 = (name = this.variable.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref2) >= 0); - if (forbidden && this.context !== 'object') { - throw SyntaxError("variable name may not be \"" + name + "\""); - } - } - - Assign.prototype.children = ['variable', 'value']; - - Assign.prototype.isStatement = function(o) { - return (o != null ? o.level : void 0) === LEVEL_TOP && (this.context != null) && __indexOf.call(this.context, "?") >= 0; - }; - - Assign.prototype.assigns = function(name) { - return this[this.context === 'object' ? 'value' : 'variable'].assigns(name); - }; - - Assign.prototype.unfoldSoak = function(o) { - return unfoldSoak(o, this, 'variable'); - }; - - Assign.prototype.compileNode = function(o) { - var isValue, match, name, val, varBase, _ref2, _ref3, _ref4, _ref5; - if (isValue = this.variable instanceof Value) { - if (this.variable.isArray() || this.variable.isObject()) { - return this.compilePatternMatch(o); - } - if (this.variable.isSplice()) { - return this.compileSplice(o); - } - if ((_ref2 = this.context) === '||=' || _ref2 === '&&=' || _ref2 === '?=') { - return this.compileConditional(o); - } - } - name = this.variable.compile(o, LEVEL_LIST); - if (!this.context) { - if (!(varBase = this.variable.unwrapAll()).isAssignable()) { - throw SyntaxError("\"" + (this.variable.compile(o)) + "\" cannot be assigned."); - } - if (!(typeof varBase.hasProperties === "function" ? varBase.hasProperties() : void 0)) { - if (this.param) { - o.scope.add(name, 'var'); - } else { - o.scope.find(name); - } - } - } - if (this.value instanceof Code && (match = METHOD_DEF.exec(name))) { - if (match[1]) { - this.value.klass = match[1]; - } - this.value.name = (_ref3 = (_ref4 = (_ref5 = match[2]) != null ? _ref5 : match[3]) != null ? _ref4 : match[4]) != null ? _ref3 : match[5]; - } - val = this.value.compile(o, LEVEL_LIST); - if (this.context === 'object') { - return "" + name + ": " + val; - } - val = name + (" " + (this.context || '=') + " ") + val; - if (o.level <= LEVEL_LIST) { - return val; - } else { - return "(" + val + ")"; - } - }; - - Assign.prototype.compilePatternMatch = function(o) { - var acc, assigns, code, i, idx, isObject, ivar, name, obj, objects, olen, ref, rest, splat, top, val, value, vvar, _i, _len, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8; - top = o.level === LEVEL_TOP; - value = this.value; - objects = this.variable.base.objects; - if (!(olen = objects.length)) { - code = value.compile(o); - if (o.level >= LEVEL_OP) { - return "(" + code + ")"; - } else { - return code; - } - } - isObject = this.variable.isObject(); - if (top && olen === 1 && !((obj = objects[0]) instanceof Splat)) { - if (obj instanceof Assign) { - _ref2 = obj, (_ref3 = _ref2.variable, idx = _ref3.base), obj = _ref2.value; - } else { - if (obj.base instanceof Parens) { - _ref4 = new Value(obj.unwrapAll()).cacheReference(o), obj = _ref4[0], idx = _ref4[1]; - } else { - idx = isObject ? obj["this"] ? obj.properties[0].name : obj : new Literal(0); - } - } - acc = IDENTIFIER.test(idx.unwrap().value || 0); - value = new Value(value); - value.properties.push(new (acc ? Access : Index)(idx)); - if (_ref5 = obj.unwrap().value, __indexOf.call(RESERVED, _ref5) >= 0) { - throw new SyntaxError("assignment to a reserved word: " + (obj.compile(o)) + " = " + (value.compile(o))); - } - return new Assign(obj, value, null, { - param: this.param - }).compile(o, LEVEL_TOP); - } - vvar = value.compile(o, LEVEL_LIST); - assigns = []; - splat = false; - if (!IDENTIFIER.test(vvar) || this.variable.assigns(vvar)) { - assigns.push("" + (ref = o.scope.freeVariable('ref')) + " = " + vvar); - vvar = ref; - } - for (i = _i = 0, _len = objects.length; _i < _len; i = ++_i) { - obj = objects[i]; - idx = i; - if (isObject) { - if (obj instanceof Assign) { - _ref6 = obj, (_ref7 = _ref6.variable, idx = _ref7.base), obj = _ref6.value; - } else { - if (obj.base instanceof Parens) { - _ref8 = new Value(obj.unwrapAll()).cacheReference(o), obj = _ref8[0], idx = _ref8[1]; - } else { - idx = obj["this"] ? obj.properties[0].name : obj; - } - } - } - if (!splat && obj instanceof Splat) { - name = obj.name.unwrap().value; - obj = obj.unwrap(); - val = "" + olen + " <= " + vvar + ".length ? " + (utility('slice')) + ".call(" + vvar + ", " + i; - if (rest = olen - i - 1) { - ivar = o.scope.freeVariable('i'); - val += ", " + ivar + " = " + vvar + ".length - " + rest + ") : (" + ivar + " = " + i + ", [])"; - } else { - val += ") : []"; - } - val = new Literal(val); - splat = "" + ivar + "++"; - } else { - name = obj.unwrap().value; - if (obj instanceof Splat) { - obj = obj.name.compile(o); - throw new SyntaxError("multiple splats are disallowed in an assignment: " + obj + "..."); - } - if (typeof idx === 'number') { - idx = new Literal(splat || idx); - acc = false; - } else { - acc = isObject && IDENTIFIER.test(idx.unwrap().value || 0); - } - val = new Value(new Literal(vvar), [new (acc ? Access : Index)(idx)]); - } - if ((name != null) && __indexOf.call(RESERVED, name) >= 0) { - throw new SyntaxError("assignment to a reserved word: " + (obj.compile(o)) + " = " + (val.compile(o))); - } - assigns.push(new Assign(obj, val, null, { - param: this.param, - subpattern: true - }).compile(o, LEVEL_LIST)); - } - if (!(top || this.subpattern)) { - assigns.push(vvar); - } - code = assigns.join(', '); - if (o.level < LEVEL_LIST) { - return code; - } else { - return "(" + code + ")"; - } - }; - - Assign.prototype.compileConditional = function(o) { - var left, right, _ref2; - _ref2 = this.variable.cacheReference(o), left = _ref2[0], right = _ref2[1]; - if (!left.properties.length && left.base instanceof Literal && left.base.value !== "this" && !o.scope.check(left.base.value)) { - throw new Error("the variable \"" + left.base.value + "\" can't be assigned with " + this.context + " because it has not been defined."); - } - if (__indexOf.call(this.context, "?") >= 0) { - o.isExistentialEquals = true; - } - return new Op(this.context.slice(0, -1), left, new Assign(right, this.value, '=')).compile(o); - }; - - Assign.prototype.compileSplice = function(o) { - var code, exclusive, from, fromDecl, fromRef, name, to, valDef, valRef, _ref2, _ref3, _ref4; - _ref2 = this.variable.properties.pop().range, from = _ref2.from, to = _ref2.to, exclusive = _ref2.exclusive; - name = this.variable.compile(o); - _ref3 = (from != null ? from.cache(o, LEVEL_OP) : void 0) || ['0', '0'], fromDecl = _ref3[0], fromRef = _ref3[1]; - if (to) { - if ((from != null ? from.isSimpleNumber() : void 0) && to.isSimpleNumber()) { - to = +to.compile(o) - +fromRef; - if (!exclusive) { - to += 1; - } - } else { - to = to.compile(o, LEVEL_ACCESS) + ' - ' + fromRef; - if (!exclusive) { - to += ' + 1'; - } - } - } else { - to = "9e9"; - } - _ref4 = this.value.cache(o, LEVEL_LIST), valDef = _ref4[0], valRef = _ref4[1]; - code = "[].splice.apply(" + name + ", [" + fromDecl + ", " + to + "].concat(" + valDef + ")), " + valRef; - if (o.level > LEVEL_TOP) { - return "(" + code + ")"; - } else { - return code; - } - }; - - return Assign; - - })(Base); - - exports.Code = Code = (function(_super) { - - __extends(Code, _super); - - function Code(params, body, tag) { - this.params = params || []; - this.body = body || new Block; - this.bound = tag === 'boundfunc'; - if (this.bound) { - this.context = '_this'; - } - } - - Code.prototype.children = ['params', 'body']; - - Code.prototype.isStatement = function() { - return !!this.ctor; - }; - - Code.prototype.jumps = NO; - - Code.prototype.compileNode = function(o) { - var code, exprs, i, idt, lit, name, p, param, params, ref, splats, uniqs, val, wasEmpty, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _len5, _m, _n, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8; - o.scope = new Scope(o.scope, this.body, this); - o.scope.shared = del(o, 'sharedScope'); - o.indent += TAB; - delete o.bare; - delete o.isExistentialEquals; - params = []; - exprs = []; - _ref2 = this.paramNames(); - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - name = _ref2[_i]; - if (!o.scope.check(name)) { - o.scope.parameter(name); - } - } - _ref3 = this.params; - for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) { - param = _ref3[_j]; - if (!param.splat) { - continue; - } - _ref4 = this.params; - for (_k = 0, _len2 = _ref4.length; _k < _len2; _k++) { - p = _ref4[_k].name; - if (p["this"]) { - p = p.properties[0].name; - } - if (p.value) { - o.scope.add(p.value, 'var', true); - } - } - splats = new Assign(new Value(new Arr((function() { - var _l, _len3, _ref5, _results; - _ref5 = this.params; - _results = []; - for (_l = 0, _len3 = _ref5.length; _l < _len3; _l++) { - p = _ref5[_l]; - _results.push(p.asReference(o)); - } - return _results; - }).call(this))), new Value(new Literal('arguments'))); - break; - } - _ref5 = this.params; - for (_l = 0, _len3 = _ref5.length; _l < _len3; _l++) { - param = _ref5[_l]; - if (param.isComplex()) { - val = ref = param.asReference(o); - if (param.value) { - val = new Op('?', ref, param.value); - } - exprs.push(new Assign(new Value(param.name), val, '=', { - param: true - })); - } else { - ref = param; - if (param.value) { - lit = new Literal(ref.name.value + ' == null'); - val = new Assign(new Value(param.name), param.value, '='); - exprs.push(new If(lit, val)); - } - } - if (!splats) { - params.push(ref); - } - } - wasEmpty = this.body.isEmpty(); - if (splats) { - exprs.unshift(splats); - } - if (exprs.length) { - (_ref6 = this.body.expressions).unshift.apply(_ref6, exprs); - } - for (i = _m = 0, _len4 = params.length; _m < _len4; i = ++_m) { - p = params[i]; - o.scope.parameter(params[i] = p.compile(o)); - } - uniqs = []; - _ref7 = this.paramNames(); - for (_n = 0, _len5 = _ref7.length; _n < _len5; _n++) { - name = _ref7[_n]; - if (__indexOf.call(uniqs, name) >= 0) { - throw SyntaxError("multiple parameters named '" + name + "'"); - } - uniqs.push(name); - } - if (!(wasEmpty || this.noReturn)) { - this.body.makeReturn(); - } - if (this.bound) { - if ((_ref8 = o.scope.parent.method) != null ? _ref8.bound : void 0) { - this.bound = this.context = o.scope.parent.method.context; - } else if (!this["static"]) { - o.scope.parent.assign('_this', 'this'); - } - } - idt = o.indent; - code = 'function'; - if (this.ctor) { - code += ' ' + this.name; - } - code += '(' + params.join(', ') + ') {'; - if (!this.body.isEmpty()) { - code += "\n" + (this.body.compileWithDeclarations(o)) + "\n" + this.tab; - } - code += '}'; - if (this.ctor) { - return this.tab + code; - } - if (this.front || (o.level >= LEVEL_ACCESS)) { - return "(" + code + ")"; - } else { - return code; - } - }; - - Code.prototype.paramNames = function() { - var names, param, _i, _len, _ref2; - names = []; - _ref2 = this.params; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - param = _ref2[_i]; - names.push.apply(names, param.names()); - } - return names; - }; - - Code.prototype.traverseChildren = function(crossScope, func) { - if (crossScope) { - return Code.__super__.traverseChildren.call(this, crossScope, func); - } - }; - - return Code; - - })(Base); - - exports.Param = Param = (function(_super) { - - __extends(Param, _super); - - function Param(name, value, splat) { - var _ref2; - this.name = name; - this.value = value; - this.splat = splat; - if (_ref2 = (name = this.name.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref2) >= 0) { - throw SyntaxError("parameter name \"" + name + "\" is not allowed"); - } - } - - Param.prototype.children = ['name', 'value']; - - Param.prototype.compile = function(o) { - return this.name.compile(o, LEVEL_LIST); - }; - - Param.prototype.asReference = function(o) { - var node; - if (this.reference) { - return this.reference; - } - node = this.name; - if (node["this"]) { - node = node.properties[0].name; - if (node.value.reserved) { - node = new Literal(o.scope.freeVariable(node.value)); - } - } else if (node.isComplex()) { - node = new Literal(o.scope.freeVariable('arg')); - } - node = new Value(node); - if (this.splat) { - node = new Splat(node); - } - return this.reference = node; - }; - - Param.prototype.isComplex = function() { - return this.name.isComplex(); - }; - - Param.prototype.names = function(name) { - var atParam, names, obj, _i, _len, _ref2; - if (name == null) { - name = this.name; - } - atParam = function(obj) { - var value; - value = obj.properties[0].name.value; - if (value.reserved) { - return []; - } else { - return [value]; - } - }; - if (name instanceof Literal) { - return [name.value]; - } - if (name instanceof Value) { - return atParam(name); - } - names = []; - _ref2 = name.objects; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - obj = _ref2[_i]; - if (obj instanceof Assign) { - names.push(obj.value.unwrap().value); - } else if (obj instanceof Splat) { - names.push(obj.name.unwrap().value); - } else if (obj instanceof Value) { - if (obj.isArray() || obj.isObject()) { - names.push.apply(names, this.names(obj.base)); - } else if (obj["this"]) { - names.push.apply(names, atParam(obj)); - } else { - names.push(obj.base.value); - } - } else { - throw SyntaxError("illegal parameter " + (obj.compile())); - } - } - return names; - }; - - return Param; - - })(Base); - - exports.Splat = Splat = (function(_super) { - - __extends(Splat, _super); - - Splat.prototype.children = ['name']; - - Splat.prototype.isAssignable = YES; - - function Splat(name) { - this.name = name.compile ? name : new Literal(name); - } - - Splat.prototype.assigns = function(name) { - return this.name.assigns(name); - }; - - Splat.prototype.compile = function(o) { - if (this.index != null) { - return this.compileParam(o); - } else { - return this.name.compile(o); - } - }; - - Splat.prototype.unwrap = function() { - return this.name; - }; - - Splat.compileSplattedArray = function(o, list, apply) { - var args, base, code, i, index, node, _i, _len; - index = -1; - while ((node = list[++index]) && !(node instanceof Splat)) { - continue; - } - if (index >= list.length) { - return ''; - } - if (list.length === 1) { - code = list[0].compile(o, LEVEL_LIST); - if (apply) { - return code; - } - return "" + (utility('slice')) + ".call(" + code + ")"; - } - args = list.slice(index); - for (i = _i = 0, _len = args.length; _i < _len; i = ++_i) { - node = args[i]; - code = node.compile(o, LEVEL_LIST); - args[i] = node instanceof Splat ? "" + (utility('slice')) + ".call(" + code + ")" : "[" + code + "]"; - } - if (index === 0) { - return args[0] + (".concat(" + (args.slice(1).join(', ')) + ")"); - } - base = (function() { - var _j, _len1, _ref2, _results; - _ref2 = list.slice(0, index); - _results = []; - for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { - node = _ref2[_j]; - _results.push(node.compile(o, LEVEL_LIST)); - } - return _results; - })(); - return "[" + (base.join(', ')) + "].concat(" + (args.join(', ')) + ")"; - }; - - return Splat; - - })(Base); - - exports.While = While = (function(_super) { - - __extends(While, _super); - - function While(condition, options) { - this.condition = (options != null ? options.invert : void 0) ? condition.invert() : condition; - this.guard = options != null ? options.guard : void 0; - } - - While.prototype.children = ['condition', 'guard', 'body']; - - While.prototype.isStatement = YES; - - While.prototype.makeReturn = function(res) { - if (res) { - return While.__super__.makeReturn.apply(this, arguments); - } else { - this.returns = !this.jumps({ - loop: true - }); - return this; - } - }; - - While.prototype.addBody = function(body) { - this.body = body; - return this; - }; - - While.prototype.jumps = function() { - var expressions, node, _i, _len; - expressions = this.body.expressions; - if (!expressions.length) { - return false; - } - for (_i = 0, _len = expressions.length; _i < _len; _i++) { - node = expressions[_i]; - if (node.jumps({ - loop: true - })) { - return node; - } - } - return false; - }; - - While.prototype.compileNode = function(o) { - var body, code, rvar, set; - o.indent += TAB; - set = ''; - body = this.body; - if (body.isEmpty()) { - body = ''; - } else { - if (this.returns) { - body.makeReturn(rvar = o.scope.freeVariable('results')); - set = "" + this.tab + rvar + " = [];\n"; - } - if (this.guard) { - if (body.expressions.length > 1) { - body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue"))); - } else { - if (this.guard) { - body = Block.wrap([new If(this.guard, body)]); - } - } - } - body = "\n" + (body.compile(o, LEVEL_TOP)) + "\n" + this.tab; - } - code = set + this.tab + ("while (" + (this.condition.compile(o, LEVEL_PAREN)) + ") {" + body + "}"); - if (this.returns) { - code += "\n" + this.tab + "return " + rvar + ";"; - } - return code; - }; - - return While; - - })(Base); - - exports.Op = Op = (function(_super) { - var CONVERSIONS, INVERSIONS; - - __extends(Op, _super); - - function Op(op, first, second, flip) { - if (op === 'in') { - return new In(first, second); - } - if (op === 'do') { - return this.generateDo(first); - } - if (op === 'new') { - if (first instanceof Call && !first["do"] && !first.isNew) { - return first.newInstance(); - } - if (first instanceof Code && first.bound || first["do"]) { - first = new Parens(first); - } - } - this.operator = CONVERSIONS[op] || op; - this.first = first; - this.second = second; - this.flip = !!flip; - return this; - } - - CONVERSIONS = { - '==': '===', - '!=': '!==', - 'of': 'in' - }; - - INVERSIONS = { - '!==': '===', - '===': '!==' - }; - - Op.prototype.children = ['first', 'second']; - - Op.prototype.isSimpleNumber = NO; - - Op.prototype.isUnary = function() { - return !this.second; - }; - - Op.prototype.isComplex = function() { - var _ref2; - return !(this.isUnary() && ((_ref2 = this.operator) === '+' || _ref2 === '-')) || this.first.isComplex(); - }; - - Op.prototype.isChainable = function() { - var _ref2; - return (_ref2 = this.operator) === '<' || _ref2 === '>' || _ref2 === '>=' || _ref2 === '<=' || _ref2 === '===' || _ref2 === '!=='; - }; - - Op.prototype.invert = function() { - var allInvertable, curr, fst, op, _ref2; - if (this.isChainable() && this.first.isChainable()) { - allInvertable = true; - curr = this; - while (curr && curr.operator) { - allInvertable && (allInvertable = curr.operator in INVERSIONS); - curr = curr.first; - } - if (!allInvertable) { - return new Parens(this).invert(); - } - curr = this; - while (curr && curr.operator) { - curr.invert = !curr.invert; - curr.operator = INVERSIONS[curr.operator]; - curr = curr.first; - } - return this; - } else if (op = INVERSIONS[this.operator]) { - this.operator = op; - if (this.first.unwrap() instanceof Op) { - this.first.invert(); - } - return this; - } else if (this.second) { - return new Parens(this).invert(); - } else if (this.operator === '!' && (fst = this.first.unwrap()) instanceof Op && ((_ref2 = fst.operator) === '!' || _ref2 === 'in' || _ref2 === 'instanceof')) { - return fst; - } else { - return new Op('!', this); - } - }; - - Op.prototype.unfoldSoak = function(o) { - var _ref2; - return ((_ref2 = this.operator) === '++' || _ref2 === '--' || _ref2 === 'delete') && unfoldSoak(o, this, 'first'); - }; - - Op.prototype.generateDo = function(exp) { - var call, func, param, passedParams, ref, _i, _len, _ref2; - passedParams = []; - func = exp instanceof Assign && (ref = exp.value.unwrap()) instanceof Code ? ref : exp; - _ref2 = func.params || []; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - param = _ref2[_i]; - if (param.value) { - passedParams.push(param.value); - delete param.value; - } else { - passedParams.push(param); - } - } - call = new Call(exp, passedParams); - call["do"] = true; - return call; - }; - - Op.prototype.compileNode = function(o) { - var code, isChain, _ref2, _ref3; - isChain = this.isChainable() && this.first.isChainable(); - if (!isChain) { - this.first.front = this.front; - } - if (this.operator === 'delete' && o.scope.check(this.first.unwrapAll().value)) { - throw SyntaxError('delete operand may not be argument or var'); - } - if (((_ref2 = this.operator) === '--' || _ref2 === '++') && (_ref3 = this.first.unwrapAll().value, __indexOf.call(STRICT_PROSCRIBED, _ref3) >= 0)) { - throw SyntaxError('prefix increment/decrement may not have eval or arguments operand'); - } - if (this.isUnary()) { - return this.compileUnary(o); - } - if (isChain) { - return this.compileChain(o); - } - if (this.operator === '?') { - return this.compileExistence(o); - } - code = this.first.compile(o, LEVEL_OP) + ' ' + this.operator + ' ' + this.second.compile(o, LEVEL_OP); - if (o.level <= LEVEL_OP) { - return code; - } else { - return "(" + code + ")"; - } - }; - - Op.prototype.compileChain = function(o) { - var code, fst, shared, _ref2; - _ref2 = this.first.second.cache(o), this.first.second = _ref2[0], shared = _ref2[1]; - fst = this.first.compile(o, LEVEL_OP); - code = "" + fst + " " + (this.invert ? '&&' : '||') + " " + (shared.compile(o)) + " " + this.operator + " " + (this.second.compile(o, LEVEL_OP)); - return "(" + code + ")"; - }; - - Op.prototype.compileExistence = function(o) { - var fst, ref; - if (this.first.isComplex()) { - ref = new Literal(o.scope.freeVariable('ref')); - fst = new Parens(new Assign(ref, this.first)); - } else { - fst = this.first; - ref = fst; - } - return new If(new Existence(fst), ref, { - type: 'if' - }).addElse(this.second).compile(o); - }; - - Op.prototype.compileUnary = function(o) { - var op, parts, plusMinus; - if (o.level >= LEVEL_ACCESS) { - return (new Parens(this)).compile(o); - } - parts = [op = this.operator]; - plusMinus = op === '+' || op === '-'; - if ((op === 'new' || op === 'typeof' || op === 'delete') || plusMinus && this.first instanceof Op && this.first.operator === op) { - parts.push(' '); - } - if ((plusMinus && this.first instanceof Op) || (op === 'new' && this.first.isStatement(o))) { - this.first = new Parens(this.first); - } - parts.push(this.first.compile(o, LEVEL_OP)); - if (this.flip) { - parts.reverse(); - } - return parts.join(''); - }; - - Op.prototype.toString = function(idt) { - return Op.__super__.toString.call(this, idt, this.constructor.name + ' ' + this.operator); - }; - - return Op; - - })(Base); - - exports.In = In = (function(_super) { - - __extends(In, _super); - - function In(object, array) { - this.object = object; - this.array = array; - } - - In.prototype.children = ['object', 'array']; - - In.prototype.invert = NEGATE; - - In.prototype.compileNode = function(o) { - var hasSplat, obj, _i, _len, _ref2; - if (this.array instanceof Value && this.array.isArray()) { - _ref2 = this.array.base.objects; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - obj = _ref2[_i]; - if (!(obj instanceof Splat)) { - continue; - } - hasSplat = true; - break; - } - if (!hasSplat) { - return this.compileOrTest(o); - } - } - return this.compileLoopTest(o); - }; - - In.prototype.compileOrTest = function(o) { - var cmp, cnj, i, item, ref, sub, tests, _ref2, _ref3; - if (this.array.base.objects.length === 0) { - return "" + (!!this.negated); - } - _ref2 = this.object.cache(o, LEVEL_OP), sub = _ref2[0], ref = _ref2[1]; - _ref3 = this.negated ? [' !== ', ' && '] : [' === ', ' || '], cmp = _ref3[0], cnj = _ref3[1]; - tests = (function() { - var _i, _len, _ref4, _results; - _ref4 = this.array.base.objects; - _results = []; - for (i = _i = 0, _len = _ref4.length; _i < _len; i = ++_i) { - item = _ref4[i]; - _results.push((i ? ref : sub) + cmp + item.compile(o, LEVEL_ACCESS)); - } - return _results; - }).call(this); - tests = tests.join(cnj); - if (o.level < LEVEL_OP) { - return tests; - } else { - return "(" + tests + ")"; - } - }; - - In.prototype.compileLoopTest = function(o) { - var code, ref, sub, _ref2; - _ref2 = this.object.cache(o, LEVEL_LIST), sub = _ref2[0], ref = _ref2[1]; - code = utility('indexOf') + (".call(" + (this.array.compile(o, LEVEL_LIST)) + ", " + ref + ") ") + (this.negated ? '< 0' : '>= 0'); - if (sub === ref) { - return code; - } - code = sub + ', ' + code; - if (o.level < LEVEL_LIST) { - return code; - } else { - return "(" + code + ")"; - } - }; - - In.prototype.toString = function(idt) { - return In.__super__.toString.call(this, idt, this.constructor.name + (this.negated ? '!' : '')); - }; - - return In; - - })(Base); - - exports.Try = Try = (function(_super) { - - __extends(Try, _super); - - function Try(attempt, error, recovery, ensure) { - this.attempt = attempt; - this.error = error; - this.recovery = recovery; - this.ensure = ensure; - } - - Try.prototype.children = ['attempt', 'recovery', 'ensure']; - - Try.prototype.isStatement = YES; - - Try.prototype.jumps = function(o) { - var _ref2; - return this.attempt.jumps(o) || ((_ref2 = this.recovery) != null ? _ref2.jumps(o) : void 0); - }; - - Try.prototype.makeReturn = function(res) { - if (this.attempt) { - this.attempt = this.attempt.makeReturn(res); - } - if (this.recovery) { - this.recovery = this.recovery.makeReturn(res); - } - return this; - }; - - Try.prototype.compileNode = function(o) { - var catchPart, ensurePart, errorPart, tryPart; - o.indent += TAB; - errorPart = this.error ? " (" + (this.error.compile(o)) + ") " : ' '; - tryPart = this.attempt.compile(o, LEVEL_TOP); - catchPart = (function() { - var _ref2; - if (this.recovery) { - if (_ref2 = this.error.value, __indexOf.call(STRICT_PROSCRIBED, _ref2) >= 0) { - throw SyntaxError("catch variable may not be \"" + this.error.value + "\""); - } - if (!o.scope.check(this.error.value)) { - o.scope.add(this.error.value, 'param'); - } - return " catch" + errorPart + "{\n" + (this.recovery.compile(o, LEVEL_TOP)) + "\n" + this.tab + "}"; - } else if (!(this.ensure || this.recovery)) { - return ' catch (_error) {}'; - } - }).call(this); - ensurePart = this.ensure ? " finally {\n" + (this.ensure.compile(o, LEVEL_TOP)) + "\n" + this.tab + "}" : ''; - return "" + this.tab + "try {\n" + tryPart + "\n" + this.tab + "}" + (catchPart || '') + ensurePart; - }; - - return Try; - - })(Base); - - exports.Throw = Throw = (function(_super) { - - __extends(Throw, _super); - - function Throw(expression) { - this.expression = expression; - } - - Throw.prototype.children = ['expression']; - - Throw.prototype.isStatement = YES; - - Throw.prototype.jumps = NO; - - Throw.prototype.makeReturn = THIS; - - Throw.prototype.compileNode = function(o) { - return this.tab + ("throw " + (this.expression.compile(o)) + ";"); - }; - - return Throw; - - })(Base); - - exports.Existence = Existence = (function(_super) { - - __extends(Existence, _super); - - function Existence(expression) { - this.expression = expression; - } - - Existence.prototype.children = ['expression']; - - Existence.prototype.invert = NEGATE; - - Existence.prototype.compileNode = function(o) { - var cmp, cnj, code, _ref2; - this.expression.front = this.front; - code = this.expression.compile(o, LEVEL_OP); - if (IDENTIFIER.test(code) && !o.scope.check(code)) { - _ref2 = this.negated ? ['===', '||'] : ['!==', '&&'], cmp = _ref2[0], cnj = _ref2[1]; - code = "typeof " + code + " " + cmp + " \"undefined\" " + cnj + " " + code + " " + cmp + " null"; - } else { - code = "" + code + " " + (this.negated ? '==' : '!=') + " null"; - } - if (o.level <= LEVEL_COND) { - return code; - } else { - return "(" + code + ")"; - } - }; - - return Existence; - - })(Base); - - exports.Parens = Parens = (function(_super) { - - __extends(Parens, _super); - - function Parens(body) { - this.body = body; - } - - Parens.prototype.children = ['body']; - - Parens.prototype.unwrap = function() { - return this.body; - }; - - Parens.prototype.isComplex = function() { - return this.body.isComplex(); - }; - - Parens.prototype.compileNode = function(o) { - var bare, code, expr; - expr = this.body.unwrap(); - if (expr instanceof Value && expr.isAtomic()) { - expr.front = this.front; - return expr.compile(o); - } - code = expr.compile(o, LEVEL_PAREN); - bare = o.level < LEVEL_OP && (expr instanceof Op || expr instanceof Call || (expr instanceof For && expr.returns)); - if (bare) { - return code; - } else { - return "(" + code + ")"; - } - }; - - return Parens; - - })(Base); - - exports.For = For = (function(_super) { - - __extends(For, _super); - - function For(body, source) { - var _ref2; - this.source = source.source, this.guard = source.guard, this.step = source.step, this.name = source.name, this.index = source.index; - this.body = Block.wrap([body]); - this.own = !!source.own; - this.object = !!source.object; - if (this.object) { - _ref2 = [this.index, this.name], this.name = _ref2[0], this.index = _ref2[1]; - } - if (this.index instanceof Value) { - throw SyntaxError('index cannot be a pattern matching expression'); - } - this.range = this.source instanceof Value && this.source.base instanceof Range && !this.source.properties.length; - this.pattern = this.name instanceof Value; - if (this.range && this.index) { - throw SyntaxError('indexes do not apply to range loops'); - } - if (this.range && this.pattern) { - throw SyntaxError('cannot pattern match over range loops'); - } - this.returns = false; - } - - For.prototype.children = ['body', 'source', 'guard', 'step']; - - For.prototype.compileNode = function(o) { - var body, defPart, forPart, forVarPart, guardPart, idt1, index, ivar, kvar, kvarAssign, lastJumps, lvar, name, namePart, ref, resultPart, returnResult, rvar, scope, source, stepPart, stepvar, svar, varPart, _ref2; - body = Block.wrap([this.body]); - lastJumps = (_ref2 = last(body.expressions)) != null ? _ref2.jumps() : void 0; - if (lastJumps && lastJumps instanceof Return) { - this.returns = false; - } - source = this.range ? this.source.base : this.source; - scope = o.scope; - name = this.name && this.name.compile(o, LEVEL_LIST); - index = this.index && this.index.compile(o, LEVEL_LIST); - if (name && !this.pattern) { - scope.find(name); - } - if (index) { - scope.find(index); - } - if (this.returns) { - rvar = scope.freeVariable('results'); - } - ivar = (this.object && index) || scope.freeVariable('i'); - kvar = (this.range && name) || index || ivar; - kvarAssign = kvar !== ivar ? "" + kvar + " = " : ""; - if (this.step && !this.range) { - stepvar = scope.freeVariable("step"); - } - if (this.pattern) { - name = ivar; - } - varPart = ''; - guardPart = ''; - defPart = ''; - idt1 = this.tab + TAB; - if (this.range) { - forPart = source.compile(merge(o, { - index: ivar, - name: name, - step: this.step - })); - } else { - svar = this.source.compile(o, LEVEL_LIST); - if ((name || this.own) && !IDENTIFIER.test(svar)) { - defPart = "" + this.tab + (ref = scope.freeVariable('ref')) + " = " + svar + ";\n"; - svar = ref; - } - if (name && !this.pattern) { - namePart = "" + name + " = " + svar + "[" + kvar + "]"; - } - if (!this.object) { - lvar = scope.freeVariable('len'); - forVarPart = "" + kvarAssign + ivar + " = 0, " + lvar + " = " + svar + ".length"; - if (this.step) { - forVarPart += ", " + stepvar + " = " + (this.step.compile(o, LEVEL_OP)); - } - stepPart = "" + kvarAssign + (this.step ? "" + ivar + " += " + stepvar : (kvar !== ivar ? "++" + ivar : "" + ivar + "++")); - forPart = "" + forVarPart + "; " + ivar + " < " + lvar + "; " + stepPart; - } - } - if (this.returns) { - resultPart = "" + this.tab + rvar + " = [];\n"; - returnResult = "\n" + this.tab + "return " + rvar + ";"; - body.makeReturn(rvar); - } - if (this.guard) { - if (body.expressions.length > 1) { - body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue"))); - } else { - if (this.guard) { - body = Block.wrap([new If(this.guard, body)]); - } - } - } - if (this.pattern) { - body.expressions.unshift(new Assign(this.name, new Literal("" + svar + "[" + kvar + "]"))); - } - defPart += this.pluckDirectCall(o, body); - if (namePart) { - varPart = "\n" + idt1 + namePart + ";"; - } - if (this.object) { - forPart = "" + kvar + " in " + svar; - if (this.own) { - guardPart = "\n" + idt1 + "if (!" + (utility('hasProp')) + ".call(" + svar + ", " + kvar + ")) continue;"; - } - } - body = body.compile(merge(o, { - indent: idt1 - }), LEVEL_TOP); - if (body) { - body = '\n' + body + '\n'; - } - return "" + defPart + (resultPart || '') + this.tab + "for (" + forPart + ") {" + guardPart + varPart + body + this.tab + "}" + (returnResult || ''); - }; - - For.prototype.pluckDirectCall = function(o, body) { - var base, defs, expr, fn, idx, ref, val, _i, _len, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7; - defs = ''; - _ref2 = body.expressions; - for (idx = _i = 0, _len = _ref2.length; _i < _len; idx = ++_i) { - expr = _ref2[idx]; - expr = expr.unwrapAll(); - if (!(expr instanceof Call)) { - continue; - } - val = expr.variable.unwrapAll(); - if (!((val instanceof Code) || (val instanceof Value && ((_ref3 = val.base) != null ? _ref3.unwrapAll() : void 0) instanceof Code && val.properties.length === 1 && ((_ref4 = (_ref5 = val.properties[0].name) != null ? _ref5.value : void 0) === 'call' || _ref4 === 'apply')))) { - continue; - } - fn = ((_ref6 = val.base) != null ? _ref6.unwrapAll() : void 0) || val; - ref = new Literal(o.scope.freeVariable('fn')); - base = new Value(ref); - if (val.base) { - _ref7 = [base, val], val.base = _ref7[0], base = _ref7[1]; - } - body.expressions[idx] = new Call(base, expr.args); - defs += this.tab + new Assign(ref, fn).compile(o, LEVEL_TOP) + ';\n'; - } - return defs; - }; - - return For; - - })(While); - - exports.Switch = Switch = (function(_super) { - - __extends(Switch, _super); - - function Switch(subject, cases, otherwise) { - this.subject = subject; - this.cases = cases; - this.otherwise = otherwise; - } - - Switch.prototype.children = ['subject', 'cases', 'otherwise']; - - Switch.prototype.isStatement = YES; - - Switch.prototype.jumps = function(o) { - var block, conds, _i, _len, _ref2, _ref3, _ref4; - if (o == null) { - o = { - block: true - }; - } - _ref2 = this.cases; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - _ref3 = _ref2[_i], conds = _ref3[0], block = _ref3[1]; - if (block.jumps(o)) { - return block; - } - } - return (_ref4 = this.otherwise) != null ? _ref4.jumps(o) : void 0; - }; - - Switch.prototype.makeReturn = function(res) { - var pair, _i, _len, _ref2, _ref3; - _ref2 = this.cases; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - pair = _ref2[_i]; - pair[1].makeReturn(res); - } - if (res) { - this.otherwise || (this.otherwise = new Block([new Literal('void 0')])); - } - if ((_ref3 = this.otherwise) != null) { - _ref3.makeReturn(res); - } - return this; - }; - - Switch.prototype.compileNode = function(o) { - var block, body, code, cond, conditions, expr, i, idt1, idt2, _i, _j, _len, _len1, _ref2, _ref3, _ref4, _ref5; - idt1 = o.indent + TAB; - idt2 = o.indent = idt1 + TAB; - code = this.tab + ("switch (" + (((_ref2 = this.subject) != null ? _ref2.compile(o, LEVEL_PAREN) : void 0) || false) + ") {\n"); - _ref3 = this.cases; - for (i = _i = 0, _len = _ref3.length; _i < _len; i = ++_i) { - _ref4 = _ref3[i], conditions = _ref4[0], block = _ref4[1]; - _ref5 = flatten([conditions]); - for (_j = 0, _len1 = _ref5.length; _j < _len1; _j++) { - cond = _ref5[_j]; - if (!this.subject) { - cond = cond.invert(); - } - code += idt1 + ("case " + (cond.compile(o, LEVEL_PAREN)) + ":\n"); - } - if (body = block.compile(o, LEVEL_TOP)) { - code += body + '\n'; - } - if (i === this.cases.length - 1 && !this.otherwise) { - break; - } - expr = this.lastNonComment(block.expressions); - if (expr instanceof Return || (expr instanceof Literal && expr.jumps() && expr.value !== 'debugger')) { - continue; - } - code += idt2 + 'break;\n'; - } - if (this.otherwise && this.otherwise.expressions.length) { - code += idt1 + ("default:\n" + (this.otherwise.compile(o, LEVEL_TOP)) + "\n"); - } - return code + this.tab + '}'; - }; - - return Switch; - - })(Base); - - exports.If = If = (function(_super) { - - __extends(If, _super); - - function If(condition, body, options) { - this.body = body; - if (options == null) { - options = {}; - } - this.condition = options.type === 'unless' ? condition.invert() : condition; - this.elseBody = null; - this.isChain = false; - this.soak = options.soak; - } - - If.prototype.children = ['condition', 'body', 'elseBody']; - - If.prototype.bodyNode = function() { - var _ref2; - return (_ref2 = this.body) != null ? _ref2.unwrap() : void 0; - }; - - If.prototype.elseBodyNode = function() { - var _ref2; - return (_ref2 = this.elseBody) != null ? _ref2.unwrap() : void 0; - }; - - If.prototype.addElse = function(elseBody) { - if (this.isChain) { - this.elseBodyNode().addElse(elseBody); - } else { - this.isChain = elseBody instanceof If; - this.elseBody = this.ensureBlock(elseBody); - } - return this; - }; - - If.prototype.isStatement = function(o) { - var _ref2; - return (o != null ? o.level : void 0) === LEVEL_TOP || this.bodyNode().isStatement(o) || ((_ref2 = this.elseBodyNode()) != null ? _ref2.isStatement(o) : void 0); - }; - - If.prototype.jumps = function(o) { - var _ref2; - return this.body.jumps(o) || ((_ref2 = this.elseBody) != null ? _ref2.jumps(o) : void 0); - }; - - If.prototype.compileNode = function(o) { - if (this.isStatement(o)) { - return this.compileStatement(o); - } else { - return this.compileExpression(o); - } - }; - - If.prototype.makeReturn = function(res) { - if (res) { - this.elseBody || (this.elseBody = new Block([new Literal('void 0')])); - } - this.body && (this.body = new Block([this.body.makeReturn(res)])); - this.elseBody && (this.elseBody = new Block([this.elseBody.makeReturn(res)])); - return this; - }; - - If.prototype.ensureBlock = function(node) { - if (node instanceof Block) { - return node; - } else { - return new Block([node]); - } - }; - - If.prototype.compileStatement = function(o) { - var body, child, cond, exeq, ifPart; - child = del(o, 'chainChild'); - exeq = del(o, 'isExistentialEquals'); - if (exeq) { - return new If(this.condition.invert(), this.elseBodyNode(), { - type: 'if' - }).compile(o); - } - cond = this.condition.compile(o, LEVEL_PAREN); - o.indent += TAB; - body = this.ensureBlock(this.body); - ifPart = "if (" + cond + ") {\n" + (body.compile(o)) + "\n" + this.tab + "}"; - if (!child) { - ifPart = this.tab + ifPart; - } - if (!this.elseBody) { - return ifPart; - } - return ifPart + ' else ' + (this.isChain ? (o.indent = this.tab, o.chainChild = true, this.elseBody.unwrap().compile(o, LEVEL_TOP)) : "{\n" + (this.elseBody.compile(o, LEVEL_TOP)) + "\n" + this.tab + "}"); - }; - - If.prototype.compileExpression = function(o) { - var alt, body, code, cond; - cond = this.condition.compile(o, LEVEL_COND); - body = this.bodyNode().compile(o, LEVEL_LIST); - alt = this.elseBodyNode() ? this.elseBodyNode().compile(o, LEVEL_LIST) : 'void 0'; - code = "" + cond + " ? " + body + " : " + alt; - if (o.level >= LEVEL_COND) { - return "(" + code + ")"; - } else { - return code; - } - }; - - If.prototype.unfoldSoak = function() { - return this.soak && this; - }; - - return If; - - })(Base); - - Closure = { - wrap: function(expressions, statement, noReturn) { - var args, call, func, mentionsArgs, meth; - if (expressions.jumps()) { - return expressions; - } - func = new Code([], Block.wrap([expressions])); - args = []; - if ((mentionsArgs = expressions.contains(this.literalArgs)) || expressions.contains(this.literalThis)) { - meth = new Literal(mentionsArgs ? 'apply' : 'call'); - args = [new Literal('this')]; - if (mentionsArgs) { - args.push(new Literal('arguments')); - } - func = new Value(func, [new Access(meth)]); - } - func.noReturn = noReturn; - call = new Call(func, args); - if (statement) { - return Block.wrap([call]); - } else { - return call; - } - }, - literalArgs: function(node) { - return node instanceof Literal && node.value === 'arguments' && !node.asKey; - }, - literalThis: function(node) { - return (node instanceof Literal && node.value === 'this' && !node.asKey) || (node instanceof Code && node.bound) || (node instanceof Call && node.isSuper); - } - }; - - unfoldSoak = function(o, parent, name) { - var ifn; - if (!(ifn = parent[name].unfoldSoak(o))) { - return; - } - parent[name] = ifn.body; - ifn.body = new Value(parent); - return ifn; - }; - - UTILITIES = { - "extends": function() { - return "function(child, parent) { for (var key in parent) { if (" + (utility('hasProp')) + ".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }"; - }, - bind: function() { - return 'function(fn, me){ return function(){ return fn.apply(me, arguments); }; }'; - }, - indexOf: function() { - return "[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }"; - }, - hasProp: function() { - return '{}.hasOwnProperty'; - }, - slice: function() { - return '[].slice'; - } - }; - - LEVEL_TOP = 1; - - LEVEL_PAREN = 2; - - LEVEL_LIST = 3; - - LEVEL_COND = 4; - - LEVEL_OP = 5; - - LEVEL_ACCESS = 6; - - TAB = ' '; - - IDENTIFIER_STR = "[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*"; - - IDENTIFIER = RegExp("^" + IDENTIFIER_STR + "$"); - - SIMPLENUM = /^[+-]?\d+$/; - - METHOD_DEF = RegExp("^(?:(" + IDENTIFIER_STR + ")\\.prototype(?:\\.(" + IDENTIFIER_STR + ")|\\[(\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*')\\]|\\[(0x[\\da-fA-F]+|\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\]))|(" + IDENTIFIER_STR + ")$"); - - IS_STRING = /^['"]/; - - utility = function(name) { - var ref; - ref = "__" + name; - Scope.root.assign(ref, UTILITIES[name]()); - return ref; - }; - - multident = function(code, tab) { - code = code.replace(/\n/g, '$&' + tab); - return code.replace(/\s+$/, ''); - }; - -}).call(this); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/optparse.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/optparse.js deleted file mode 100644 index d7fda40a3f..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/optparse.js +++ /dev/null @@ -1,138 +0,0 @@ -// Generated by CoffeeScript 1.3.3 -(function() { - var LONG_FLAG, MULTI_FLAG, OPTIONAL, OptionParser, SHORT_FLAG, buildRule, buildRules, normalizeArguments; - - exports.OptionParser = OptionParser = (function() { - - function OptionParser(rules, banner) { - this.banner = banner; - this.rules = buildRules(rules); - } - - OptionParser.prototype.parse = function(args) { - var arg, i, isOption, matchedRule, options, originalArgs, pos, rule, seenNonOptionArg, skippingArgument, value, _i, _j, _len, _len1, _ref; - options = { - "arguments": [] - }; - skippingArgument = false; - originalArgs = args; - args = normalizeArguments(args); - for (i = _i = 0, _len = args.length; _i < _len; i = ++_i) { - arg = args[i]; - if (skippingArgument) { - skippingArgument = false; - continue; - } - if (arg === '--') { - pos = originalArgs.indexOf('--'); - options["arguments"] = options["arguments"].concat(originalArgs.slice(pos + 1)); - break; - } - isOption = !!(arg.match(LONG_FLAG) || arg.match(SHORT_FLAG)); - seenNonOptionArg = options["arguments"].length > 0; - if (!seenNonOptionArg) { - matchedRule = false; - _ref = this.rules; - for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) { - rule = _ref[_j]; - if (rule.shortFlag === arg || rule.longFlag === arg) { - value = true; - if (rule.hasArgument) { - skippingArgument = true; - value = args[i + 1]; - } - options[rule.name] = rule.isList ? (options[rule.name] || []).concat(value) : value; - matchedRule = true; - break; - } - } - if (isOption && !matchedRule) { - throw new Error("unrecognized option: " + arg); - } - } - if (seenNonOptionArg || !isOption) { - options["arguments"].push(arg); - } - } - return options; - }; - - OptionParser.prototype.help = function() { - var letPart, lines, rule, spaces, _i, _len, _ref; - lines = []; - if (this.banner) { - lines.unshift("" + this.banner + "\n"); - } - _ref = this.rules; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - rule = _ref[_i]; - spaces = 15 - rule.longFlag.length; - spaces = spaces > 0 ? Array(spaces + 1).join(' ') : ''; - letPart = rule.shortFlag ? rule.shortFlag + ', ' : ' '; - lines.push(' ' + letPart + rule.longFlag + spaces + rule.description); - } - return "\n" + (lines.join('\n')) + "\n"; - }; - - return OptionParser; - - })(); - - LONG_FLAG = /^(--\w[\w\-]*)/; - - SHORT_FLAG = /^(-\w)$/; - - MULTI_FLAG = /^-(\w{2,})/; - - OPTIONAL = /\[(\w+(\*?))\]/; - - buildRules = function(rules) { - var tuple, _i, _len, _results; - _results = []; - for (_i = 0, _len = rules.length; _i < _len; _i++) { - tuple = rules[_i]; - if (tuple.length < 3) { - tuple.unshift(null); - } - _results.push(buildRule.apply(null, tuple)); - } - return _results; - }; - - buildRule = function(shortFlag, longFlag, description, options) { - var match; - if (options == null) { - options = {}; - } - match = longFlag.match(OPTIONAL); - longFlag = longFlag.match(LONG_FLAG)[1]; - return { - name: longFlag.substr(2), - shortFlag: shortFlag, - longFlag: longFlag, - description: description, - hasArgument: !!(match && match[1]), - isList: !!(match && match[2]) - }; - }; - - normalizeArguments = function(args) { - var arg, l, match, result, _i, _j, _len, _len1, _ref; - args = args.slice(0); - result = []; - for (_i = 0, _len = args.length; _i < _len; _i++) { - arg = args[_i]; - if (match = arg.match(MULTI_FLAG)) { - _ref = match[1].split(''); - for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) { - l = _ref[_j]; - result.push('-' + l); - } - } else { - result.push(arg); - } - } - return result; - }; - -}).call(this); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/parser.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/parser.js deleted file mode 100755 index f0499038e7..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/parser.js +++ /dev/null @@ -1,683 +0,0 @@ -/* Jison generated parser */ -var parser = (function(){ -var parser = {trace: function trace() { }, -yy: {}, -symbols_: {"error":2,"Root":3,"Body":4,"Block":5,"TERMINATOR":6,"Line":7,"Expression":8,"Statement":9,"Return":10,"Comment":11,"STATEMENT":12,"Value":13,"Invocation":14,"Code":15,"Operation":16,"Assign":17,"If":18,"Try":19,"While":20,"For":21,"Switch":22,"Class":23,"Throw":24,"INDENT":25,"OUTDENT":26,"Identifier":27,"IDENTIFIER":28,"AlphaNumeric":29,"NUMBER":30,"STRING":31,"Literal":32,"JS":33,"REGEX":34,"DEBUGGER":35,"UNDEFINED":36,"NULL":37,"BOOL":38,"Assignable":39,"=":40,"AssignObj":41,"ObjAssignable":42,":":43,"ThisProperty":44,"RETURN":45,"HERECOMMENT":46,"PARAM_START":47,"ParamList":48,"PARAM_END":49,"FuncGlyph":50,"->":51,"=>":52,"OptComma":53,",":54,"Param":55,"ParamVar":56,"...":57,"Array":58,"Object":59,"Splat":60,"SimpleAssignable":61,"Accessor":62,"Parenthetical":63,"Range":64,"This":65,".":66,"?.":67,"::":68,"Index":69,"INDEX_START":70,"IndexValue":71,"INDEX_END":72,"INDEX_SOAK":73,"Slice":74,"{":75,"AssignList":76,"}":77,"CLASS":78,"EXTENDS":79,"OptFuncExist":80,"Arguments":81,"SUPER":82,"FUNC_EXIST":83,"CALL_START":84,"CALL_END":85,"ArgList":86,"THIS":87,"@":88,"[":89,"]":90,"RangeDots":91,"..":92,"Arg":93,"SimpleArgs":94,"TRY":95,"Catch":96,"FINALLY":97,"CATCH":98,"THROW":99,"(":100,")":101,"WhileSource":102,"WHILE":103,"WHEN":104,"UNTIL":105,"Loop":106,"LOOP":107,"ForBody":108,"FOR":109,"ForStart":110,"ForSource":111,"ForVariables":112,"OWN":113,"ForValue":114,"FORIN":115,"FOROF":116,"BY":117,"SWITCH":118,"Whens":119,"ELSE":120,"When":121,"LEADING_WHEN":122,"IfBlock":123,"IF":124,"POST_IF":125,"UNARY":126,"-":127,"+":128,"--":129,"++":130,"?":131,"MATH":132,"SHIFT":133,"COMPARE":134,"LOGIC":135,"RELATION":136,"COMPOUND_ASSIGN":137,"$accept":0,"$end":1}, -terminals_: {2:"error",6:"TERMINATOR",12:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"DEBUGGER",36:"UNDEFINED",37:"NULL",38:"BOOL",40:"=",43:":",45:"RETURN",46:"HERECOMMENT",47:"PARAM_START",49:"PARAM_END",51:"->",52:"=>",54:",",57:"...",66:".",67:"?.",68:"::",70:"INDEX_START",72:"INDEX_END",73:"INDEX_SOAK",75:"{",77:"}",78:"CLASS",79:"EXTENDS",82:"SUPER",83:"FUNC_EXIST",84:"CALL_START",85:"CALL_END",87:"THIS",88:"@",89:"[",90:"]",92:"..",95:"TRY",97:"FINALLY",98:"CATCH",99:"THROW",100:"(",101:")",103:"WHILE",104:"WHEN",105:"UNTIL",107:"LOOP",109:"FOR",113:"OWN",115:"FORIN",116:"FOROF",117:"BY",118:"SWITCH",120:"ELSE",122:"LEADING_WHEN",124:"IF",125:"POST_IF",126:"UNARY",127:"-",128:"+",129:"--",130:"++",131:"?",132:"MATH",133:"SHIFT",134:"COMPARE",135:"LOGIC",136:"RELATION",137:"COMPOUND_ASSIGN"}, -productions_: [0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[17,3],[17,4],[17,5],[41,1],[41,3],[41,5],[41,1],[42,1],[42,1],[42,1],[10,2],[10,1],[11,1],[15,5],[15,2],[50,1],[50,1],[53,0],[53,1],[48,0],[48,1],[48,3],[48,4],[48,6],[55,1],[55,2],[55,3],[56,1],[56,1],[56,1],[56,1],[60,2],[61,1],[61,2],[61,2],[61,1],[39,1],[39,1],[39,1],[13,1],[13,1],[13,1],[13,1],[13,1],[62,2],[62,2],[62,2],[62,1],[62,1],[69,3],[69,2],[71,1],[71,1],[59,4],[76,0],[76,1],[76,3],[76,4],[76,6],[23,1],[23,2],[23,3],[23,4],[23,2],[23,3],[23,4],[23,5],[14,3],[14,3],[14,1],[14,2],[80,0],[80,1],[81,2],[81,4],[65,1],[65,1],[44,2],[58,2],[58,4],[91,1],[91,1],[64,5],[74,3],[74,2],[74,2],[74,1],[86,1],[86,3],[86,4],[86,4],[86,6],[93,1],[93,1],[94,1],[94,3],[19,2],[19,3],[19,4],[19,5],[96,3],[24,2],[63,3],[63,5],[102,2],[102,4],[102,2],[102,4],[20,2],[20,2],[20,2],[20,1],[106,2],[106,2],[21,2],[21,2],[21,2],[108,2],[108,2],[110,2],[110,3],[114,1],[114,1],[114,1],[114,1],[112,1],[112,3],[111,2],[111,2],[111,4],[111,4],[111,4],[111,6],[111,6],[22,5],[22,7],[22,4],[22,6],[119,1],[119,2],[121,3],[121,4],[123,3],[123,5],[18,1],[18,3],[18,3],[18,3],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,5],[16,3]], -performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) { - -var $0 = $$.length - 1; -switch (yystate) { -case 1:return this.$ = new yy.Block; -break; -case 2:return this.$ = $$[$0]; -break; -case 3:return this.$ = $$[$0-1]; -break; -case 4:this.$ = yy.Block.wrap([$$[$0]]); -break; -case 5:this.$ = $$[$0-2].push($$[$0]); -break; -case 6:this.$ = $$[$0-1]; -break; -case 7:this.$ = $$[$0]; -break; -case 8:this.$ = $$[$0]; -break; -case 9:this.$ = $$[$0]; -break; -case 10:this.$ = $$[$0]; -break; -case 11:this.$ = new yy.Literal($$[$0]); -break; -case 12:this.$ = $$[$0]; -break; -case 13:this.$ = $$[$0]; -break; -case 14:this.$ = $$[$0]; -break; -case 15:this.$ = $$[$0]; -break; -case 16:this.$ = $$[$0]; -break; -case 17:this.$ = $$[$0]; -break; -case 18:this.$ = $$[$0]; -break; -case 19:this.$ = $$[$0]; -break; -case 20:this.$ = $$[$0]; -break; -case 21:this.$ = $$[$0]; -break; -case 22:this.$ = $$[$0]; -break; -case 23:this.$ = $$[$0]; -break; -case 24:this.$ = new yy.Block; -break; -case 25:this.$ = $$[$0-1]; -break; -case 26:this.$ = new yy.Literal($$[$0]); -break; -case 27:this.$ = new yy.Literal($$[$0]); -break; -case 28:this.$ = new yy.Literal($$[$0]); -break; -case 29:this.$ = $$[$0]; -break; -case 30:this.$ = new yy.Literal($$[$0]); -break; -case 31:this.$ = new yy.Literal($$[$0]); -break; -case 32:this.$ = new yy.Literal($$[$0]); -break; -case 33:this.$ = new yy.Undefined; -break; -case 34:this.$ = new yy.Null; -break; -case 35:this.$ = new yy.Bool($$[$0]); -break; -case 36:this.$ = new yy.Assign($$[$0-2], $$[$0]); -break; -case 37:this.$ = new yy.Assign($$[$0-3], $$[$0]); -break; -case 38:this.$ = new yy.Assign($$[$0-4], $$[$0-1]); -break; -case 39:this.$ = new yy.Value($$[$0]); -break; -case 40:this.$ = new yy.Assign(new yy.Value($$[$0-2]), $$[$0], 'object'); -break; -case 41:this.$ = new yy.Assign(new yy.Value($$[$0-4]), $$[$0-1], 'object'); -break; -case 42:this.$ = $$[$0]; -break; -case 43:this.$ = $$[$0]; -break; -case 44:this.$ = $$[$0]; -break; -case 45:this.$ = $$[$0]; -break; -case 46:this.$ = new yy.Return($$[$0]); -break; -case 47:this.$ = new yy.Return; -break; -case 48:this.$ = new yy.Comment($$[$0]); -break; -case 49:this.$ = new yy.Code($$[$0-3], $$[$0], $$[$0-1]); -break; -case 50:this.$ = new yy.Code([], $$[$0], $$[$0-1]); -break; -case 51:this.$ = 'func'; -break; -case 52:this.$ = 'boundfunc'; -break; -case 53:this.$ = $$[$0]; -break; -case 54:this.$ = $$[$0]; -break; -case 55:this.$ = []; -break; -case 56:this.$ = [$$[$0]]; -break; -case 57:this.$ = $$[$0-2].concat($$[$0]); -break; -case 58:this.$ = $$[$0-3].concat($$[$0]); -break; -case 59:this.$ = $$[$0-5].concat($$[$0-2]); -break; -case 60:this.$ = new yy.Param($$[$0]); -break; -case 61:this.$ = new yy.Param($$[$0-1], null, true); -break; -case 62:this.$ = new yy.Param($$[$0-2], $$[$0]); -break; -case 63:this.$ = $$[$0]; -break; -case 64:this.$ = $$[$0]; -break; -case 65:this.$ = $$[$0]; -break; -case 66:this.$ = $$[$0]; -break; -case 67:this.$ = new yy.Splat($$[$0-1]); -break; -case 68:this.$ = new yy.Value($$[$0]); -break; -case 69:this.$ = $$[$0-1].add($$[$0]); -break; -case 70:this.$ = new yy.Value($$[$0-1], [].concat($$[$0])); -break; -case 71:this.$ = $$[$0]; -break; -case 72:this.$ = $$[$0]; -break; -case 73:this.$ = new yy.Value($$[$0]); -break; -case 74:this.$ = new yy.Value($$[$0]); -break; -case 75:this.$ = $$[$0]; -break; -case 76:this.$ = new yy.Value($$[$0]); -break; -case 77:this.$ = new yy.Value($$[$0]); -break; -case 78:this.$ = new yy.Value($$[$0]); -break; -case 79:this.$ = $$[$0]; -break; -case 80:this.$ = new yy.Access($$[$0]); -break; -case 81:this.$ = new yy.Access($$[$0], 'soak'); -break; -case 82:this.$ = [new yy.Access(new yy.Literal('prototype')), new yy.Access($$[$0])]; -break; -case 83:this.$ = new yy.Access(new yy.Literal('prototype')); -break; -case 84:this.$ = $$[$0]; -break; -case 85:this.$ = $$[$0-1]; -break; -case 86:this.$ = yy.extend($$[$0], { - soak: true - }); -break; -case 87:this.$ = new yy.Index($$[$0]); -break; -case 88:this.$ = new yy.Slice($$[$0]); -break; -case 89:this.$ = new yy.Obj($$[$0-2], $$[$0-3].generated); -break; -case 90:this.$ = []; -break; -case 91:this.$ = [$$[$0]]; -break; -case 92:this.$ = $$[$0-2].concat($$[$0]); -break; -case 93:this.$ = $$[$0-3].concat($$[$0]); -break; -case 94:this.$ = $$[$0-5].concat($$[$0-2]); -break; -case 95:this.$ = new yy.Class; -break; -case 96:this.$ = new yy.Class(null, null, $$[$0]); -break; -case 97:this.$ = new yy.Class(null, $$[$0]); -break; -case 98:this.$ = new yy.Class(null, $$[$0-1], $$[$0]); -break; -case 99:this.$ = new yy.Class($$[$0]); -break; -case 100:this.$ = new yy.Class($$[$0-1], null, $$[$0]); -break; -case 101:this.$ = new yy.Class($$[$0-2], $$[$0]); -break; -case 102:this.$ = new yy.Class($$[$0-3], $$[$0-1], $$[$0]); -break; -case 103:this.$ = new yy.Call($$[$0-2], $$[$0], $$[$0-1]); -break; -case 104:this.$ = new yy.Call($$[$0-2], $$[$0], $$[$0-1]); -break; -case 105:this.$ = new yy.Call('super', [new yy.Splat(new yy.Literal('arguments'))]); -break; -case 106:this.$ = new yy.Call('super', $$[$0]); -break; -case 107:this.$ = false; -break; -case 108:this.$ = true; -break; -case 109:this.$ = []; -break; -case 110:this.$ = $$[$0-2]; -break; -case 111:this.$ = new yy.Value(new yy.Literal('this')); -break; -case 112:this.$ = new yy.Value(new yy.Literal('this')); -break; -case 113:this.$ = new yy.Value(new yy.Literal('this'), [new yy.Access($$[$0])], 'this'); -break; -case 114:this.$ = new yy.Arr([]); -break; -case 115:this.$ = new yy.Arr($$[$0-2]); -break; -case 116:this.$ = 'inclusive'; -break; -case 117:this.$ = 'exclusive'; -break; -case 118:this.$ = new yy.Range($$[$0-3], $$[$0-1], $$[$0-2]); -break; -case 119:this.$ = new yy.Range($$[$0-2], $$[$0], $$[$0-1]); -break; -case 120:this.$ = new yy.Range($$[$0-1], null, $$[$0]); -break; -case 121:this.$ = new yy.Range(null, $$[$0], $$[$0-1]); -break; -case 122:this.$ = new yy.Range(null, null, $$[$0]); -break; -case 123:this.$ = [$$[$0]]; -break; -case 124:this.$ = $$[$0-2].concat($$[$0]); -break; -case 125:this.$ = $$[$0-3].concat($$[$0]); -break; -case 126:this.$ = $$[$0-2]; -break; -case 127:this.$ = $$[$0-5].concat($$[$0-2]); -break; -case 128:this.$ = $$[$0]; -break; -case 129:this.$ = $$[$0]; -break; -case 130:this.$ = $$[$0]; -break; -case 131:this.$ = [].concat($$[$0-2], $$[$0]); -break; -case 132:this.$ = new yy.Try($$[$0]); -break; -case 133:this.$ = new yy.Try($$[$0-1], $$[$0][0], $$[$0][1]); -break; -case 134:this.$ = new yy.Try($$[$0-2], null, null, $$[$0]); -break; -case 135:this.$ = new yy.Try($$[$0-3], $$[$0-2][0], $$[$0-2][1], $$[$0]); -break; -case 136:this.$ = [$$[$0-1], $$[$0]]; -break; -case 137:this.$ = new yy.Throw($$[$0]); -break; -case 138:this.$ = new yy.Parens($$[$0-1]); -break; -case 139:this.$ = new yy.Parens($$[$0-2]); -break; -case 140:this.$ = new yy.While($$[$0]); -break; -case 141:this.$ = new yy.While($$[$0-2], { - guard: $$[$0] - }); -break; -case 142:this.$ = new yy.While($$[$0], { - invert: true - }); -break; -case 143:this.$ = new yy.While($$[$0-2], { - invert: true, - guard: $$[$0] - }); -break; -case 144:this.$ = $$[$0-1].addBody($$[$0]); -break; -case 145:this.$ = $$[$0].addBody(yy.Block.wrap([$$[$0-1]])); -break; -case 146:this.$ = $$[$0].addBody(yy.Block.wrap([$$[$0-1]])); -break; -case 147:this.$ = $$[$0]; -break; -case 148:this.$ = new yy.While(new yy.Literal('true')).addBody($$[$0]); -break; -case 149:this.$ = new yy.While(new yy.Literal('true')).addBody(yy.Block.wrap([$$[$0]])); -break; -case 150:this.$ = new yy.For($$[$0-1], $$[$0]); -break; -case 151:this.$ = new yy.For($$[$0-1], $$[$0]); -break; -case 152:this.$ = new yy.For($$[$0], $$[$0-1]); -break; -case 153:this.$ = { - source: new yy.Value($$[$0]) - }; -break; -case 154:this.$ = (function () { - $$[$0].own = $$[$0-1].own; - $$[$0].name = $$[$0-1][0]; - $$[$0].index = $$[$0-1][1]; - return $$[$0]; - }()); -break; -case 155:this.$ = $$[$0]; -break; -case 156:this.$ = (function () { - $$[$0].own = true; - return $$[$0]; - }()); -break; -case 157:this.$ = $$[$0]; -break; -case 158:this.$ = $$[$0]; -break; -case 159:this.$ = new yy.Value($$[$0]); -break; -case 160:this.$ = new yy.Value($$[$0]); -break; -case 161:this.$ = [$$[$0]]; -break; -case 162:this.$ = [$$[$0-2], $$[$0]]; -break; -case 163:this.$ = { - source: $$[$0] - }; -break; -case 164:this.$ = { - source: $$[$0], - object: true - }; -break; -case 165:this.$ = { - source: $$[$0-2], - guard: $$[$0] - }; -break; -case 166:this.$ = { - source: $$[$0-2], - guard: $$[$0], - object: true - }; -break; -case 167:this.$ = { - source: $$[$0-2], - step: $$[$0] - }; -break; -case 168:this.$ = { - source: $$[$0-4], - guard: $$[$0-2], - step: $$[$0] - }; -break; -case 169:this.$ = { - source: $$[$0-4], - step: $$[$0-2], - guard: $$[$0] - }; -break; -case 170:this.$ = new yy.Switch($$[$0-3], $$[$0-1]); -break; -case 171:this.$ = new yy.Switch($$[$0-5], $$[$0-3], $$[$0-1]); -break; -case 172:this.$ = new yy.Switch(null, $$[$0-1]); -break; -case 173:this.$ = new yy.Switch(null, $$[$0-3], $$[$0-1]); -break; -case 174:this.$ = $$[$0]; -break; -case 175:this.$ = $$[$0-1].concat($$[$0]); -break; -case 176:this.$ = [[$$[$0-1], $$[$0]]]; -break; -case 177:this.$ = [[$$[$0-2], $$[$0-1]]]; -break; -case 178:this.$ = new yy.If($$[$0-1], $$[$0], { - type: $$[$0-2] - }); -break; -case 179:this.$ = $$[$0-4].addElse(new yy.If($$[$0-1], $$[$0], { - type: $$[$0-2] - })); -break; -case 180:this.$ = $$[$0]; -break; -case 181:this.$ = $$[$0-2].addElse($$[$0]); -break; -case 182:this.$ = new yy.If($$[$0], yy.Block.wrap([$$[$0-2]]), { - type: $$[$0-1], - statement: true - }); -break; -case 183:this.$ = new yy.If($$[$0], yy.Block.wrap([$$[$0-2]]), { - type: $$[$0-1], - statement: true - }); -break; -case 184:this.$ = new yy.Op($$[$0-1], $$[$0]); -break; -case 185:this.$ = new yy.Op('-', $$[$0]); -break; -case 186:this.$ = new yy.Op('+', $$[$0]); -break; -case 187:this.$ = new yy.Op('--', $$[$0]); -break; -case 188:this.$ = new yy.Op('++', $$[$0]); -break; -case 189:this.$ = new yy.Op('--', $$[$0-1], null, true); -break; -case 190:this.$ = new yy.Op('++', $$[$0-1], null, true); -break; -case 191:this.$ = new yy.Existence($$[$0-1]); -break; -case 192:this.$ = new yy.Op('+', $$[$0-2], $$[$0]); -break; -case 193:this.$ = new yy.Op('-', $$[$0-2], $$[$0]); -break; -case 194:this.$ = new yy.Op($$[$0-1], $$[$0-2], $$[$0]); -break; -case 195:this.$ = new yy.Op($$[$0-1], $$[$0-2], $$[$0]); -break; -case 196:this.$ = new yy.Op($$[$0-1], $$[$0-2], $$[$0]); -break; -case 197:this.$ = new yy.Op($$[$0-1], $$[$0-2], $$[$0]); -break; -case 198:this.$ = (function () { - if ($$[$0-1].charAt(0) === '!') { - return new yy.Op($$[$0-1].slice(1), $$[$0-2], $$[$0]).invert(); - } else { - return new yy.Op($$[$0-1], $$[$0-2], $$[$0]); - } - }()); -break; -case 199:this.$ = new yy.Assign($$[$0-2], $$[$0], $$[$0-1]); -break; -case 200:this.$ = new yy.Assign($$[$0-4], $$[$0-1], $$[$0-3]); -break; -case 201:this.$ = new yy.Extends($$[$0-2], $$[$0]); -break; -} -}, -table: [{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,5],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[3]},{1:[2,2],6:[1,74]},{6:[1,75]},{1:[2,4],6:[2,4],26:[2,4],101:[2,4]},{4:77,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[1,76],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,7],6:[2,7],26:[2,7],101:[2,7],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,8],6:[2,8],26:[2,8],101:[2,8],102:90,103:[1,65],105:[1,66],108:91,109:[1,68],110:69,125:[1,89]},{1:[2,12],6:[2,12],25:[2,12],26:[2,12],49:[2,12],54:[2,12],57:[2,12],62:93,66:[1,95],67:[1,96],68:[1,97],69:98,70:[1,99],72:[2,12],73:[1,100],77:[2,12],80:92,83:[1,94],84:[2,107],85:[2,12],90:[2,12],92:[2,12],101:[2,12],103:[2,12],104:[2,12],105:[2,12],109:[2,12],117:[2,12],125:[2,12],127:[2,12],128:[2,12],131:[2,12],132:[2,12],133:[2,12],134:[2,12],135:[2,12],136:[2,12]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],49:[2,13],54:[2,13],57:[2,13],62:102,66:[1,95],67:[1,96],68:[1,97],69:98,70:[1,99],72:[2,13],73:[1,100],77:[2,13],80:101,83:[1,94],84:[2,107],85:[2,13],90:[2,13],92:[2,13],101:[2,13],103:[2,13],104:[2,13],105:[2,13],109:[2,13],117:[2,13],125:[2,13],127:[2,13],128:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13],135:[2,13],136:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],49:[2,14],54:[2,14],57:[2,14],72:[2,14],77:[2,14],85:[2,14],90:[2,14],92:[2,14],101:[2,14],103:[2,14],104:[2,14],105:[2,14],109:[2,14],117:[2,14],125:[2,14],127:[2,14],128:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14],135:[2,14],136:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],49:[2,15],54:[2,15],57:[2,15],72:[2,15],77:[2,15],85:[2,15],90:[2,15],92:[2,15],101:[2,15],103:[2,15],104:[2,15],105:[2,15],109:[2,15],117:[2,15],125:[2,15],127:[2,15],128:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15],135:[2,15],136:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],49:[2,16],54:[2,16],57:[2,16],72:[2,16],77:[2,16],85:[2,16],90:[2,16],92:[2,16],101:[2,16],103:[2,16],104:[2,16],105:[2,16],109:[2,16],117:[2,16],125:[2,16],127:[2,16],128:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16],135:[2,16],136:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],49:[2,17],54:[2,17],57:[2,17],72:[2,17],77:[2,17],85:[2,17],90:[2,17],92:[2,17],101:[2,17],103:[2,17],104:[2,17],105:[2,17],109:[2,17],117:[2,17],125:[2,17],127:[2,17],128:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17],135:[2,17],136:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],49:[2,18],54:[2,18],57:[2,18],72:[2,18],77:[2,18],85:[2,18],90:[2,18],92:[2,18],101:[2,18],103:[2,18],104:[2,18],105:[2,18],109:[2,18],117:[2,18],125:[2,18],127:[2,18],128:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18],135:[2,18],136:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],49:[2,19],54:[2,19],57:[2,19],72:[2,19],77:[2,19],85:[2,19],90:[2,19],92:[2,19],101:[2,19],103:[2,19],104:[2,19],105:[2,19],109:[2,19],117:[2,19],125:[2,19],127:[2,19],128:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19],135:[2,19],136:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],49:[2,20],54:[2,20],57:[2,20],72:[2,20],77:[2,20],85:[2,20],90:[2,20],92:[2,20],101:[2,20],103:[2,20],104:[2,20],105:[2,20],109:[2,20],117:[2,20],125:[2,20],127:[2,20],128:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20],135:[2,20],136:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],49:[2,21],54:[2,21],57:[2,21],72:[2,21],77:[2,21],85:[2,21],90:[2,21],92:[2,21],101:[2,21],103:[2,21],104:[2,21],105:[2,21],109:[2,21],117:[2,21],125:[2,21],127:[2,21],128:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21],135:[2,21],136:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],49:[2,22],54:[2,22],57:[2,22],72:[2,22],77:[2,22],85:[2,22],90:[2,22],92:[2,22],101:[2,22],103:[2,22],104:[2,22],105:[2,22],109:[2,22],117:[2,22],125:[2,22],127:[2,22],128:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22],135:[2,22],136:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],49:[2,23],54:[2,23],57:[2,23],72:[2,23],77:[2,23],85:[2,23],90:[2,23],92:[2,23],101:[2,23],103:[2,23],104:[2,23],105:[2,23],109:[2,23],117:[2,23],125:[2,23],127:[2,23],128:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23],135:[2,23],136:[2,23]},{1:[2,9],6:[2,9],26:[2,9],101:[2,9],103:[2,9],105:[2,9],109:[2,9],125:[2,9]},{1:[2,10],6:[2,10],26:[2,10],101:[2,10],103:[2,10],105:[2,10],109:[2,10],125:[2,10]},{1:[2,11],6:[2,11],26:[2,11],101:[2,11],103:[2,11],105:[2,11],109:[2,11],125:[2,11]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],40:[1,103],49:[2,75],54:[2,75],57:[2,75],66:[2,75],67:[2,75],68:[2,75],70:[2,75],72:[2,75],73:[2,75],77:[2,75],83:[2,75],84:[2,75],85:[2,75],90:[2,75],92:[2,75],101:[2,75],103:[2,75],104:[2,75],105:[2,75],109:[2,75],117:[2,75],125:[2,75],127:[2,75],128:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75],136:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],49:[2,76],54:[2,76],57:[2,76],66:[2,76],67:[2,76],68:[2,76],70:[2,76],72:[2,76],73:[2,76],77:[2,76],83:[2,76],84:[2,76],85:[2,76],90:[2,76],92:[2,76],101:[2,76],103:[2,76],104:[2,76],105:[2,76],109:[2,76],117:[2,76],125:[2,76],127:[2,76],128:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76],136:[2,76]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],49:[2,77],54:[2,77],57:[2,77],66:[2,77],67:[2,77],68:[2,77],70:[2,77],72:[2,77],73:[2,77],77:[2,77],83:[2,77],84:[2,77],85:[2,77],90:[2,77],92:[2,77],101:[2,77],103:[2,77],104:[2,77],105:[2,77],109:[2,77],117:[2,77],125:[2,77],127:[2,77],128:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77],136:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],49:[2,78],54:[2,78],57:[2,78],66:[2,78],67:[2,78],68:[2,78],70:[2,78],72:[2,78],73:[2,78],77:[2,78],83:[2,78],84:[2,78],85:[2,78],90:[2,78],92:[2,78],101:[2,78],103:[2,78],104:[2,78],105:[2,78],109:[2,78],117:[2,78],125:[2,78],127:[2,78],128:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78],136:[2,78]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],49:[2,79],54:[2,79],57:[2,79],66:[2,79],67:[2,79],68:[2,79],70:[2,79],72:[2,79],73:[2,79],77:[2,79],83:[2,79],84:[2,79],85:[2,79],90:[2,79],92:[2,79],101:[2,79],103:[2,79],104:[2,79],105:[2,79],109:[2,79],117:[2,79],125:[2,79],127:[2,79],128:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79],136:[2,79]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],49:[2,105],54:[2,105],57:[2,105],66:[2,105],67:[2,105],68:[2,105],70:[2,105],72:[2,105],73:[2,105],77:[2,105],81:104,83:[2,105],84:[1,105],85:[2,105],90:[2,105],92:[2,105],101:[2,105],103:[2,105],104:[2,105],105:[2,105],109:[2,105],117:[2,105],125:[2,105],127:[2,105],128:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105],135:[2,105],136:[2,105]},{6:[2,55],25:[2,55],27:109,28:[1,73],44:110,48:106,49:[2,55],54:[2,55],55:107,56:108,58:111,59:112,75:[1,70],88:[1,113],89:[1,114]},{5:115,25:[1,5]},{8:116,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:118,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:119,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{13:121,14:122,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:123,44:63,58:47,59:48,61:120,63:25,64:26,65:27,75:[1,70],82:[1,28],87:[1,58],88:[1,59],89:[1,57],100:[1,56]},{13:121,14:122,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:123,44:63,58:47,59:48,61:124,63:25,64:26,65:27,75:[1,70],82:[1,28],87:[1,58],88:[1,59],89:[1,57],100:[1,56]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],40:[2,72],49:[2,72],54:[2,72],57:[2,72],66:[2,72],67:[2,72],68:[2,72],70:[2,72],72:[2,72],73:[2,72],77:[2,72],79:[1,128],83:[2,72],84:[2,72],85:[2,72],90:[2,72],92:[2,72],101:[2,72],103:[2,72],104:[2,72],105:[2,72],109:[2,72],117:[2,72],125:[2,72],127:[2,72],128:[2,72],129:[1,125],130:[1,126],131:[2,72],132:[2,72],133:[2,72],134:[2,72],135:[2,72],136:[2,72],137:[1,127]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],49:[2,180],54:[2,180],57:[2,180],72:[2,180],77:[2,180],85:[2,180],90:[2,180],92:[2,180],101:[2,180],103:[2,180],104:[2,180],105:[2,180],109:[2,180],117:[2,180],120:[1,129],125:[2,180],127:[2,180],128:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180],135:[2,180],136:[2,180]},{5:130,25:[1,5]},{5:131,25:[1,5]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],49:[2,147],54:[2,147],57:[2,147],72:[2,147],77:[2,147],85:[2,147],90:[2,147],92:[2,147],101:[2,147],103:[2,147],104:[2,147],105:[2,147],109:[2,147],117:[2,147],125:[2,147],127:[2,147],128:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147],135:[2,147],136:[2,147]},{5:132,25:[1,5]},{8:133,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,134],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,95],5:135,6:[2,95],13:121,14:122,25:[1,5],26:[2,95],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:123,44:63,49:[2,95],54:[2,95],57:[2,95],58:47,59:48,61:137,63:25,64:26,65:27,72:[2,95],75:[1,70],77:[2,95],79:[1,136],82:[1,28],85:[2,95],87:[1,58],88:[1,59],89:[1,57],90:[2,95],92:[2,95],100:[1,56],101:[2,95],103:[2,95],104:[2,95],105:[2,95],109:[2,95],117:[2,95],125:[2,95],127:[2,95],128:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95],135:[2,95],136:[2,95]},{8:138,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,47],6:[2,47],8:139,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[2,47],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],101:[2,47],102:39,103:[2,47],105:[2,47],106:40,107:[1,67],108:41,109:[2,47],110:69,118:[1,42],123:37,124:[1,64],125:[2,47],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,48],6:[2,48],25:[2,48],26:[2,48],54:[2,48],77:[2,48],101:[2,48],103:[2,48],105:[2,48],109:[2,48],125:[2,48]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],40:[2,73],49:[2,73],54:[2,73],57:[2,73],66:[2,73],67:[2,73],68:[2,73],70:[2,73],72:[2,73],73:[2,73],77:[2,73],83:[2,73],84:[2,73],85:[2,73],90:[2,73],92:[2,73],101:[2,73],103:[2,73],104:[2,73],105:[2,73],109:[2,73],117:[2,73],125:[2,73],127:[2,73],128:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73],135:[2,73],136:[2,73]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],40:[2,74],49:[2,74],54:[2,74],57:[2,74],66:[2,74],67:[2,74],68:[2,74],70:[2,74],72:[2,74],73:[2,74],77:[2,74],83:[2,74],84:[2,74],85:[2,74],90:[2,74],92:[2,74],101:[2,74],103:[2,74],104:[2,74],105:[2,74],109:[2,74],117:[2,74],125:[2,74],127:[2,74],128:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74],136:[2,74]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],49:[2,29],54:[2,29],57:[2,29],66:[2,29],67:[2,29],68:[2,29],70:[2,29],72:[2,29],73:[2,29],77:[2,29],83:[2,29],84:[2,29],85:[2,29],90:[2,29],92:[2,29],101:[2,29],103:[2,29],104:[2,29],105:[2,29],109:[2,29],117:[2,29],125:[2,29],127:[2,29],128:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29],135:[2,29],136:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],49:[2,30],54:[2,30],57:[2,30],66:[2,30],67:[2,30],68:[2,30],70:[2,30],72:[2,30],73:[2,30],77:[2,30],83:[2,30],84:[2,30],85:[2,30],90:[2,30],92:[2,30],101:[2,30],103:[2,30],104:[2,30],105:[2,30],109:[2,30],117:[2,30],125:[2,30],127:[2,30],128:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30],135:[2,30],136:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],49:[2,31],54:[2,31],57:[2,31],66:[2,31],67:[2,31],68:[2,31],70:[2,31],72:[2,31],73:[2,31],77:[2,31],83:[2,31],84:[2,31],85:[2,31],90:[2,31],92:[2,31],101:[2,31],103:[2,31],104:[2,31],105:[2,31],109:[2,31],117:[2,31],125:[2,31],127:[2,31],128:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31],135:[2,31],136:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],49:[2,32],54:[2,32],57:[2,32],66:[2,32],67:[2,32],68:[2,32],70:[2,32],72:[2,32],73:[2,32],77:[2,32],83:[2,32],84:[2,32],85:[2,32],90:[2,32],92:[2,32],101:[2,32],103:[2,32],104:[2,32],105:[2,32],109:[2,32],117:[2,32],125:[2,32],127:[2,32],128:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32],135:[2,32],136:[2,32]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],49:[2,33],54:[2,33],57:[2,33],66:[2,33],67:[2,33],68:[2,33],70:[2,33],72:[2,33],73:[2,33],77:[2,33],83:[2,33],84:[2,33],85:[2,33],90:[2,33],92:[2,33],101:[2,33],103:[2,33],104:[2,33],105:[2,33],109:[2,33],117:[2,33],125:[2,33],127:[2,33],128:[2,33],131:[2,33],132:[2,33],133:[2,33],134:[2,33],135:[2,33],136:[2,33]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],49:[2,34],54:[2,34],57:[2,34],66:[2,34],67:[2,34],68:[2,34],70:[2,34],72:[2,34],73:[2,34],77:[2,34],83:[2,34],84:[2,34],85:[2,34],90:[2,34],92:[2,34],101:[2,34],103:[2,34],104:[2,34],105:[2,34],109:[2,34],117:[2,34],125:[2,34],127:[2,34],128:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34],135:[2,34],136:[2,34]},{1:[2,35],6:[2,35],25:[2,35],26:[2,35],49:[2,35],54:[2,35],57:[2,35],66:[2,35],67:[2,35],68:[2,35],70:[2,35],72:[2,35],73:[2,35],77:[2,35],83:[2,35],84:[2,35],85:[2,35],90:[2,35],92:[2,35],101:[2,35],103:[2,35],104:[2,35],105:[2,35],109:[2,35],117:[2,35],125:[2,35],127:[2,35],128:[2,35],131:[2,35],132:[2,35],133:[2,35],134:[2,35],135:[2,35],136:[2,35]},{4:140,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,141],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:142,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,146],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:147,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],86:144,87:[1,58],88:[1,59],89:[1,57],90:[1,143],93:145,95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,111],6:[2,111],25:[2,111],26:[2,111],49:[2,111],54:[2,111],57:[2,111],66:[2,111],67:[2,111],68:[2,111],70:[2,111],72:[2,111],73:[2,111],77:[2,111],83:[2,111],84:[2,111],85:[2,111],90:[2,111],92:[2,111],101:[2,111],103:[2,111],104:[2,111],105:[2,111],109:[2,111],117:[2,111],125:[2,111],127:[2,111],128:[2,111],131:[2,111],132:[2,111],133:[2,111],134:[2,111],135:[2,111],136:[2,111]},{1:[2,112],6:[2,112],25:[2,112],26:[2,112],27:148,28:[1,73],49:[2,112],54:[2,112],57:[2,112],66:[2,112],67:[2,112],68:[2,112],70:[2,112],72:[2,112],73:[2,112],77:[2,112],83:[2,112],84:[2,112],85:[2,112],90:[2,112],92:[2,112],101:[2,112],103:[2,112],104:[2,112],105:[2,112],109:[2,112],117:[2,112],125:[2,112],127:[2,112],128:[2,112],131:[2,112],132:[2,112],133:[2,112],134:[2,112],135:[2,112],136:[2,112]},{25:[2,51]},{25:[2,52]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],40:[2,68],49:[2,68],54:[2,68],57:[2,68],66:[2,68],67:[2,68],68:[2,68],70:[2,68],72:[2,68],73:[2,68],77:[2,68],79:[2,68],83:[2,68],84:[2,68],85:[2,68],90:[2,68],92:[2,68],101:[2,68],103:[2,68],104:[2,68],105:[2,68],109:[2,68],117:[2,68],125:[2,68],127:[2,68],128:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68],135:[2,68],136:[2,68],137:[2,68]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],40:[2,71],49:[2,71],54:[2,71],57:[2,71],66:[2,71],67:[2,71],68:[2,71],70:[2,71],72:[2,71],73:[2,71],77:[2,71],79:[2,71],83:[2,71],84:[2,71],85:[2,71],90:[2,71],92:[2,71],101:[2,71],103:[2,71],104:[2,71],105:[2,71],109:[2,71],117:[2,71],125:[2,71],127:[2,71],128:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71],135:[2,71],136:[2,71],137:[2,71]},{8:149,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:150,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:151,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{5:152,8:153,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,5],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{27:158,28:[1,73],44:159,58:160,59:161,64:154,75:[1,70],88:[1,113],89:[1,57],112:155,113:[1,156],114:157},{111:162,115:[1,163],116:[1,164]},{6:[2,90],11:168,25:[2,90],27:169,28:[1,73],29:170,30:[1,71],31:[1,72],41:166,42:167,44:171,46:[1,46],54:[2,90],76:165,77:[2,90],88:[1,113]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],43:[2,27],49:[2,27],54:[2,27],57:[2,27],66:[2,27],67:[2,27],68:[2,27],70:[2,27],72:[2,27],73:[2,27],77:[2,27],83:[2,27],84:[2,27],85:[2,27],90:[2,27],92:[2,27],101:[2,27],103:[2,27],104:[2,27],105:[2,27],109:[2,27],117:[2,27],125:[2,27],127:[2,27],128:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27],135:[2,27],136:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],43:[2,28],49:[2,28],54:[2,28],57:[2,28],66:[2,28],67:[2,28],68:[2,28],70:[2,28],72:[2,28],73:[2,28],77:[2,28],83:[2,28],84:[2,28],85:[2,28],90:[2,28],92:[2,28],101:[2,28],103:[2,28],104:[2,28],105:[2,28],109:[2,28],117:[2,28],125:[2,28],127:[2,28],128:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28],135:[2,28],136:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],40:[2,26],43:[2,26],49:[2,26],54:[2,26],57:[2,26],66:[2,26],67:[2,26],68:[2,26],70:[2,26],72:[2,26],73:[2,26],77:[2,26],79:[2,26],83:[2,26],84:[2,26],85:[2,26],90:[2,26],92:[2,26],101:[2,26],103:[2,26],104:[2,26],105:[2,26],109:[2,26],115:[2,26],116:[2,26],117:[2,26],125:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26],136:[2,26],137:[2,26]},{1:[2,6],6:[2,6],7:172,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[2,6],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],101:[2,6],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],49:[2,24],54:[2,24],57:[2,24],72:[2,24],77:[2,24],85:[2,24],90:[2,24],92:[2,24],97:[2,24],98:[2,24],101:[2,24],103:[2,24],104:[2,24],105:[2,24],109:[2,24],117:[2,24],120:[2,24],122:[2,24],125:[2,24],127:[2,24],128:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24],135:[2,24],136:[2,24]},{6:[1,74],26:[1,173]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],49:[2,191],54:[2,191],57:[2,191],72:[2,191],77:[2,191],85:[2,191],90:[2,191],92:[2,191],101:[2,191],103:[2,191],104:[2,191],105:[2,191],109:[2,191],117:[2,191],125:[2,191],127:[2,191],128:[2,191],131:[2,191],132:[2,191],133:[2,191],134:[2,191],135:[2,191],136:[2,191]},{8:174,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:175,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:176,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:177,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:178,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:179,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:180,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:181,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],49:[2,146],54:[2,146],57:[2,146],72:[2,146],77:[2,146],85:[2,146],90:[2,146],92:[2,146],101:[2,146],103:[2,146],104:[2,146],105:[2,146],109:[2,146],117:[2,146],125:[2,146],127:[2,146],128:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146],135:[2,146],136:[2,146]},{1:[2,151],6:[2,151],25:[2,151],26:[2,151],49:[2,151],54:[2,151],57:[2,151],72:[2,151],77:[2,151],85:[2,151],90:[2,151],92:[2,151],101:[2,151],103:[2,151],104:[2,151],105:[2,151],109:[2,151],117:[2,151],125:[2,151],127:[2,151],128:[2,151],131:[2,151],132:[2,151],133:[2,151],134:[2,151],135:[2,151],136:[2,151]},{8:182,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],49:[2,145],54:[2,145],57:[2,145],72:[2,145],77:[2,145],85:[2,145],90:[2,145],92:[2,145],101:[2,145],103:[2,145],104:[2,145],105:[2,145],109:[2,145],117:[2,145],125:[2,145],127:[2,145],128:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145],135:[2,145],136:[2,145]},{1:[2,150],6:[2,150],25:[2,150],26:[2,150],49:[2,150],54:[2,150],57:[2,150],72:[2,150],77:[2,150],85:[2,150],90:[2,150],92:[2,150],101:[2,150],103:[2,150],104:[2,150],105:[2,150],109:[2,150],117:[2,150],125:[2,150],127:[2,150],128:[2,150],131:[2,150],132:[2,150],133:[2,150],134:[2,150],135:[2,150],136:[2,150]},{81:183,84:[1,105]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],40:[2,69],49:[2,69],54:[2,69],57:[2,69],66:[2,69],67:[2,69],68:[2,69],70:[2,69],72:[2,69],73:[2,69],77:[2,69],79:[2,69],83:[2,69],84:[2,69],85:[2,69],90:[2,69],92:[2,69],101:[2,69],103:[2,69],104:[2,69],105:[2,69],109:[2,69],117:[2,69],125:[2,69],127:[2,69],128:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69],135:[2,69],136:[2,69],137:[2,69]},{84:[2,108]},{27:184,28:[1,73]},{27:185,28:[1,73]},{1:[2,83],6:[2,83],25:[2,83],26:[2,83],27:186,28:[1,73],40:[2,83],49:[2,83],54:[2,83],57:[2,83],66:[2,83],67:[2,83],68:[2,83],70:[2,83],72:[2,83],73:[2,83],77:[2,83],79:[2,83],83:[2,83],84:[2,83],85:[2,83],90:[2,83],92:[2,83],101:[2,83],103:[2,83],104:[2,83],105:[2,83],109:[2,83],117:[2,83],125:[2,83],127:[2,83],128:[2,83],129:[2,83],130:[2,83],131:[2,83],132:[2,83],133:[2,83],134:[2,83],135:[2,83],136:[2,83],137:[2,83]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],40:[2,84],49:[2,84],54:[2,84],57:[2,84],66:[2,84],67:[2,84],68:[2,84],70:[2,84],72:[2,84],73:[2,84],77:[2,84],79:[2,84],83:[2,84],84:[2,84],85:[2,84],90:[2,84],92:[2,84],101:[2,84],103:[2,84],104:[2,84],105:[2,84],109:[2,84],117:[2,84],125:[2,84],127:[2,84],128:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84],135:[2,84],136:[2,84],137:[2,84]},{8:188,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],57:[1,192],58:47,59:48,61:36,63:25,64:26,65:27,71:187,74:189,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],91:190,92:[1,191],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{69:193,70:[1,99],73:[1,100]},{81:194,84:[1,105]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],40:[2,70],49:[2,70],54:[2,70],57:[2,70],66:[2,70],67:[2,70],68:[2,70],70:[2,70],72:[2,70],73:[2,70],77:[2,70],79:[2,70],83:[2,70],84:[2,70],85:[2,70],90:[2,70],92:[2,70],101:[2,70],103:[2,70],104:[2,70],105:[2,70],109:[2,70],117:[2,70],125:[2,70],127:[2,70],128:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70],135:[2,70],136:[2,70],137:[2,70]},{6:[1,196],8:195,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,197],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],49:[2,106],54:[2,106],57:[2,106],66:[2,106],67:[2,106],68:[2,106],70:[2,106],72:[2,106],73:[2,106],77:[2,106],83:[2,106],84:[2,106],85:[2,106],90:[2,106],92:[2,106],101:[2,106],103:[2,106],104:[2,106],105:[2,106],109:[2,106],117:[2,106],125:[2,106],127:[2,106],128:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106],135:[2,106],136:[2,106]},{8:200,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,146],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:147,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],85:[1,198],86:199,87:[1,58],88:[1,59],89:[1,57],93:145,95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{6:[2,53],25:[2,53],49:[1,201],53:203,54:[1,202]},{6:[2,56],25:[2,56],26:[2,56],49:[2,56],54:[2,56]},{6:[2,60],25:[2,60],26:[2,60],40:[1,205],49:[2,60],54:[2,60],57:[1,204]},{6:[2,63],25:[2,63],26:[2,63],40:[2,63],49:[2,63],54:[2,63],57:[2,63]},{6:[2,64],25:[2,64],26:[2,64],40:[2,64],49:[2,64],54:[2,64],57:[2,64]},{6:[2,65],25:[2,65],26:[2,65],40:[2,65],49:[2,65],54:[2,65],57:[2,65]},{6:[2,66],25:[2,66],26:[2,66],40:[2,66],49:[2,66],54:[2,66],57:[2,66]},{27:148,28:[1,73]},{8:200,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,146],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:147,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],86:144,87:[1,58],88:[1,59],89:[1,57],90:[1,143],93:145,95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,50],6:[2,50],25:[2,50],26:[2,50],49:[2,50],54:[2,50],57:[2,50],72:[2,50],77:[2,50],85:[2,50],90:[2,50],92:[2,50],101:[2,50],103:[2,50],104:[2,50],105:[2,50],109:[2,50],117:[2,50],125:[2,50],127:[2,50],128:[2,50],131:[2,50],132:[2,50],133:[2,50],134:[2,50],135:[2,50],136:[2,50]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],49:[2,184],54:[2,184],57:[2,184],72:[2,184],77:[2,184],85:[2,184],90:[2,184],92:[2,184],101:[2,184],102:87,103:[2,184],104:[2,184],105:[2,184],108:88,109:[2,184],110:69,117:[2,184],125:[2,184],127:[2,184],128:[2,184],131:[1,78],132:[2,184],133:[2,184],134:[2,184],135:[2,184],136:[2,184]},{102:90,103:[1,65],105:[1,66],108:91,109:[1,68],110:69,125:[1,89]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],49:[2,185],54:[2,185],57:[2,185],72:[2,185],77:[2,185],85:[2,185],90:[2,185],92:[2,185],101:[2,185],102:87,103:[2,185],104:[2,185],105:[2,185],108:88,109:[2,185],110:69,117:[2,185],125:[2,185],127:[2,185],128:[2,185],131:[1,78],132:[2,185],133:[2,185],134:[2,185],135:[2,185],136:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],49:[2,186],54:[2,186],57:[2,186],72:[2,186],77:[2,186],85:[2,186],90:[2,186],92:[2,186],101:[2,186],102:87,103:[2,186],104:[2,186],105:[2,186],108:88,109:[2,186],110:69,117:[2,186],125:[2,186],127:[2,186],128:[2,186],131:[1,78],132:[2,186],133:[2,186],134:[2,186],135:[2,186],136:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],49:[2,187],54:[2,187],57:[2,187],66:[2,72],67:[2,72],68:[2,72],70:[2,72],72:[2,187],73:[2,72],77:[2,187],83:[2,72],84:[2,72],85:[2,187],90:[2,187],92:[2,187],101:[2,187],103:[2,187],104:[2,187],105:[2,187],109:[2,187],117:[2,187],125:[2,187],127:[2,187],128:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187],135:[2,187],136:[2,187]},{62:93,66:[1,95],67:[1,96],68:[1,97],69:98,70:[1,99],73:[1,100],80:92,83:[1,94],84:[2,107]},{62:102,66:[1,95],67:[1,96],68:[1,97],69:98,70:[1,99],73:[1,100],80:101,83:[1,94],84:[2,107]},{66:[2,75],67:[2,75],68:[2,75],70:[2,75],73:[2,75],83:[2,75],84:[2,75]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],49:[2,188],54:[2,188],57:[2,188],66:[2,72],67:[2,72],68:[2,72],70:[2,72],72:[2,188],73:[2,72],77:[2,188],83:[2,72],84:[2,72],85:[2,188],90:[2,188],92:[2,188],101:[2,188],103:[2,188],104:[2,188],105:[2,188],109:[2,188],117:[2,188],125:[2,188],127:[2,188],128:[2,188],131:[2,188],132:[2,188],133:[2,188],134:[2,188],135:[2,188],136:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],49:[2,189],54:[2,189],57:[2,189],72:[2,189],77:[2,189],85:[2,189],90:[2,189],92:[2,189],101:[2,189],103:[2,189],104:[2,189],105:[2,189],109:[2,189],117:[2,189],125:[2,189],127:[2,189],128:[2,189],131:[2,189],132:[2,189],133:[2,189],134:[2,189],135:[2,189],136:[2,189]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],49:[2,190],54:[2,190],57:[2,190],72:[2,190],77:[2,190],85:[2,190],90:[2,190],92:[2,190],101:[2,190],103:[2,190],104:[2,190],105:[2,190],109:[2,190],117:[2,190],125:[2,190],127:[2,190],128:[2,190],131:[2,190],132:[2,190],133:[2,190],134:[2,190],135:[2,190],136:[2,190]},{8:206,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,207],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:208,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{5:209,25:[1,5],124:[1,210]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],49:[2,132],54:[2,132],57:[2,132],72:[2,132],77:[2,132],85:[2,132],90:[2,132],92:[2,132],96:211,97:[1,212],98:[1,213],101:[2,132],103:[2,132],104:[2,132],105:[2,132],109:[2,132],117:[2,132],125:[2,132],127:[2,132],128:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132],135:[2,132],136:[2,132]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],49:[2,144],54:[2,144],57:[2,144],72:[2,144],77:[2,144],85:[2,144],90:[2,144],92:[2,144],101:[2,144],103:[2,144],104:[2,144],105:[2,144],109:[2,144],117:[2,144],125:[2,144],127:[2,144],128:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144],135:[2,144],136:[2,144]},{1:[2,152],6:[2,152],25:[2,152],26:[2,152],49:[2,152],54:[2,152],57:[2,152],72:[2,152],77:[2,152],85:[2,152],90:[2,152],92:[2,152],101:[2,152],103:[2,152],104:[2,152],105:[2,152],109:[2,152],117:[2,152],125:[2,152],127:[2,152],128:[2,152],131:[2,152],132:[2,152],133:[2,152],134:[2,152],135:[2,152],136:[2,152]},{25:[1,214],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{119:215,121:216,122:[1,217]},{1:[2,96],6:[2,96],25:[2,96],26:[2,96],49:[2,96],54:[2,96],57:[2,96],72:[2,96],77:[2,96],85:[2,96],90:[2,96],92:[2,96],101:[2,96],103:[2,96],104:[2,96],105:[2,96],109:[2,96],117:[2,96],125:[2,96],127:[2,96],128:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96],135:[2,96],136:[2,96]},{8:218,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,99],5:219,6:[2,99],25:[1,5],26:[2,99],49:[2,99],54:[2,99],57:[2,99],66:[2,72],67:[2,72],68:[2,72],70:[2,72],72:[2,99],73:[2,72],77:[2,99],79:[1,220],83:[2,72],84:[2,72],85:[2,99],90:[2,99],92:[2,99],101:[2,99],103:[2,99],104:[2,99],105:[2,99],109:[2,99],117:[2,99],125:[2,99],127:[2,99],128:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99],135:[2,99],136:[2,99]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],49:[2,137],54:[2,137],57:[2,137],72:[2,137],77:[2,137],85:[2,137],90:[2,137],92:[2,137],101:[2,137],102:87,103:[2,137],104:[2,137],105:[2,137],108:88,109:[2,137],110:69,117:[2,137],125:[2,137],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,46],6:[2,46],26:[2,46],101:[2,46],102:87,103:[2,46],105:[2,46],108:88,109:[2,46],110:69,125:[2,46],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{6:[1,74],101:[1,221]},{4:222,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{6:[2,128],25:[2,128],54:[2,128],57:[1,224],90:[2,128],91:223,92:[1,191],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,114],6:[2,114],25:[2,114],26:[2,114],40:[2,114],49:[2,114],54:[2,114],57:[2,114],66:[2,114],67:[2,114],68:[2,114],70:[2,114],72:[2,114],73:[2,114],77:[2,114],83:[2,114],84:[2,114],85:[2,114],90:[2,114],92:[2,114],101:[2,114],103:[2,114],104:[2,114],105:[2,114],109:[2,114],115:[2,114],116:[2,114],117:[2,114],125:[2,114],127:[2,114],128:[2,114],131:[2,114],132:[2,114],133:[2,114],134:[2,114],135:[2,114],136:[2,114]},{6:[2,53],25:[2,53],53:225,54:[1,226],90:[2,53]},{6:[2,123],25:[2,123],26:[2,123],54:[2,123],85:[2,123],90:[2,123]},{8:200,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,146],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:147,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],86:227,87:[1,58],88:[1,59],89:[1,57],93:145,95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{6:[2,129],25:[2,129],26:[2,129],54:[2,129],85:[2,129],90:[2,129]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],40:[2,113],43:[2,113],49:[2,113],54:[2,113],57:[2,113],66:[2,113],67:[2,113],68:[2,113],70:[2,113],72:[2,113],73:[2,113],77:[2,113],79:[2,113],83:[2,113],84:[2,113],85:[2,113],90:[2,113],92:[2,113],101:[2,113],103:[2,113],104:[2,113],105:[2,113],109:[2,113],115:[2,113],116:[2,113],117:[2,113],125:[2,113],127:[2,113],128:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113],135:[2,113],136:[2,113],137:[2,113]},{5:228,25:[1,5],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],49:[2,140],54:[2,140],57:[2,140],72:[2,140],77:[2,140],85:[2,140],90:[2,140],92:[2,140],101:[2,140],102:87,103:[1,65],104:[1,229],105:[1,66],108:88,109:[1,68],110:69,117:[2,140],125:[2,140],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],49:[2,142],54:[2,142],57:[2,142],72:[2,142],77:[2,142],85:[2,142],90:[2,142],92:[2,142],101:[2,142],102:87,103:[1,65],104:[1,230],105:[1,66],108:88,109:[1,68],110:69,117:[2,142],125:[2,142],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],49:[2,148],54:[2,148],57:[2,148],72:[2,148],77:[2,148],85:[2,148],90:[2,148],92:[2,148],101:[2,148],103:[2,148],104:[2,148],105:[2,148],109:[2,148],117:[2,148],125:[2,148],127:[2,148],128:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148],135:[2,148],136:[2,148]},{1:[2,149],6:[2,149],25:[2,149],26:[2,149],49:[2,149],54:[2,149],57:[2,149],72:[2,149],77:[2,149],85:[2,149],90:[2,149],92:[2,149],101:[2,149],102:87,103:[1,65],104:[2,149],105:[1,66],108:88,109:[1,68],110:69,117:[2,149],125:[2,149],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,153],6:[2,153],25:[2,153],26:[2,153],49:[2,153],54:[2,153],57:[2,153],72:[2,153],77:[2,153],85:[2,153],90:[2,153],92:[2,153],101:[2,153],103:[2,153],104:[2,153],105:[2,153],109:[2,153],117:[2,153],125:[2,153],127:[2,153],128:[2,153],131:[2,153],132:[2,153],133:[2,153],134:[2,153],135:[2,153],136:[2,153]},{115:[2,155],116:[2,155]},{27:158,28:[1,73],44:159,58:160,59:161,75:[1,70],88:[1,113],89:[1,114],112:231,114:157},{54:[1,232],115:[2,161],116:[2,161]},{54:[2,157],115:[2,157],116:[2,157]},{54:[2,158],115:[2,158],116:[2,158]},{54:[2,159],115:[2,159],116:[2,159]},{54:[2,160],115:[2,160],116:[2,160]},{1:[2,154],6:[2,154],25:[2,154],26:[2,154],49:[2,154],54:[2,154],57:[2,154],72:[2,154],77:[2,154],85:[2,154],90:[2,154],92:[2,154],101:[2,154],103:[2,154],104:[2,154],105:[2,154],109:[2,154],117:[2,154],125:[2,154],127:[2,154],128:[2,154],131:[2,154],132:[2,154],133:[2,154],134:[2,154],135:[2,154],136:[2,154]},{8:233,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:234,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{6:[2,53],25:[2,53],53:235,54:[1,236],77:[2,53]},{6:[2,91],25:[2,91],26:[2,91],54:[2,91],77:[2,91]},{6:[2,39],25:[2,39],26:[2,39],43:[1,237],54:[2,39],77:[2,39]},{6:[2,42],25:[2,42],26:[2,42],54:[2,42],77:[2,42]},{6:[2,43],25:[2,43],26:[2,43],43:[2,43],54:[2,43],77:[2,43]},{6:[2,44],25:[2,44],26:[2,44],43:[2,44],54:[2,44],77:[2,44]},{6:[2,45],25:[2,45],26:[2,45],43:[2,45],54:[2,45],77:[2,45]},{1:[2,5],6:[2,5],26:[2,5],101:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],49:[2,25],54:[2,25],57:[2,25],72:[2,25],77:[2,25],85:[2,25],90:[2,25],92:[2,25],97:[2,25],98:[2,25],101:[2,25],103:[2,25],104:[2,25],105:[2,25],109:[2,25],117:[2,25],120:[2,25],122:[2,25],125:[2,25],127:[2,25],128:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25],135:[2,25],136:[2,25]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],49:[2,192],54:[2,192],57:[2,192],72:[2,192],77:[2,192],85:[2,192],90:[2,192],92:[2,192],101:[2,192],102:87,103:[2,192],104:[2,192],105:[2,192],108:88,109:[2,192],110:69,117:[2,192],125:[2,192],127:[2,192],128:[2,192],131:[1,78],132:[1,81],133:[2,192],134:[2,192],135:[2,192],136:[2,192]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],49:[2,193],54:[2,193],57:[2,193],72:[2,193],77:[2,193],85:[2,193],90:[2,193],92:[2,193],101:[2,193],102:87,103:[2,193],104:[2,193],105:[2,193],108:88,109:[2,193],110:69,117:[2,193],125:[2,193],127:[2,193],128:[2,193],131:[1,78],132:[1,81],133:[2,193],134:[2,193],135:[2,193],136:[2,193]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],49:[2,194],54:[2,194],57:[2,194],72:[2,194],77:[2,194],85:[2,194],90:[2,194],92:[2,194],101:[2,194],102:87,103:[2,194],104:[2,194],105:[2,194],108:88,109:[2,194],110:69,117:[2,194],125:[2,194],127:[2,194],128:[2,194],131:[1,78],132:[2,194],133:[2,194],134:[2,194],135:[2,194],136:[2,194]},{1:[2,195],6:[2,195],25:[2,195],26:[2,195],49:[2,195],54:[2,195],57:[2,195],72:[2,195],77:[2,195],85:[2,195],90:[2,195],92:[2,195],101:[2,195],102:87,103:[2,195],104:[2,195],105:[2,195],108:88,109:[2,195],110:69,117:[2,195],125:[2,195],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[2,195],134:[2,195],135:[2,195],136:[2,195]},{1:[2,196],6:[2,196],25:[2,196],26:[2,196],49:[2,196],54:[2,196],57:[2,196],72:[2,196],77:[2,196],85:[2,196],90:[2,196],92:[2,196],101:[2,196],102:87,103:[2,196],104:[2,196],105:[2,196],108:88,109:[2,196],110:69,117:[2,196],125:[2,196],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[2,196],135:[2,196],136:[1,85]},{1:[2,197],6:[2,197],25:[2,197],26:[2,197],49:[2,197],54:[2,197],57:[2,197],72:[2,197],77:[2,197],85:[2,197],90:[2,197],92:[2,197],101:[2,197],102:87,103:[2,197],104:[2,197],105:[2,197],108:88,109:[2,197],110:69,117:[2,197],125:[2,197],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[2,197],136:[1,85]},{1:[2,198],6:[2,198],25:[2,198],26:[2,198],49:[2,198],54:[2,198],57:[2,198],72:[2,198],77:[2,198],85:[2,198],90:[2,198],92:[2,198],101:[2,198],102:87,103:[2,198],104:[2,198],105:[2,198],108:88,109:[2,198],110:69,117:[2,198],125:[2,198],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[2,198],135:[2,198],136:[2,198]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],49:[2,183],54:[2,183],57:[2,183],72:[2,183],77:[2,183],85:[2,183],90:[2,183],92:[2,183],101:[2,183],102:87,103:[1,65],104:[2,183],105:[1,66],108:88,109:[1,68],110:69,117:[2,183],125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],49:[2,182],54:[2,182],57:[2,182],72:[2,182],77:[2,182],85:[2,182],90:[2,182],92:[2,182],101:[2,182],102:87,103:[1,65],104:[2,182],105:[1,66],108:88,109:[1,68],110:69,117:[2,182],125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,103],6:[2,103],25:[2,103],26:[2,103],49:[2,103],54:[2,103],57:[2,103],66:[2,103],67:[2,103],68:[2,103],70:[2,103],72:[2,103],73:[2,103],77:[2,103],83:[2,103],84:[2,103],85:[2,103],90:[2,103],92:[2,103],101:[2,103],103:[2,103],104:[2,103],105:[2,103],109:[2,103],117:[2,103],125:[2,103],127:[2,103],128:[2,103],131:[2,103],132:[2,103],133:[2,103],134:[2,103],135:[2,103],136:[2,103]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],40:[2,80],49:[2,80],54:[2,80],57:[2,80],66:[2,80],67:[2,80],68:[2,80],70:[2,80],72:[2,80],73:[2,80],77:[2,80],79:[2,80],83:[2,80],84:[2,80],85:[2,80],90:[2,80],92:[2,80],101:[2,80],103:[2,80],104:[2,80],105:[2,80],109:[2,80],117:[2,80],125:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80],136:[2,80],137:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],40:[2,81],49:[2,81],54:[2,81],57:[2,81],66:[2,81],67:[2,81],68:[2,81],70:[2,81],72:[2,81],73:[2,81],77:[2,81],79:[2,81],83:[2,81],84:[2,81],85:[2,81],90:[2,81],92:[2,81],101:[2,81],103:[2,81],104:[2,81],105:[2,81],109:[2,81],117:[2,81],125:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81],136:[2,81],137:[2,81]},{1:[2,82],6:[2,82],25:[2,82],26:[2,82],40:[2,82],49:[2,82],54:[2,82],57:[2,82],66:[2,82],67:[2,82],68:[2,82],70:[2,82],72:[2,82],73:[2,82],77:[2,82],79:[2,82],83:[2,82],84:[2,82],85:[2,82],90:[2,82],92:[2,82],101:[2,82],103:[2,82],104:[2,82],105:[2,82],109:[2,82],117:[2,82],125:[2,82],127:[2,82],128:[2,82],129:[2,82],130:[2,82],131:[2,82],132:[2,82],133:[2,82],134:[2,82],135:[2,82],136:[2,82],137:[2,82]},{72:[1,238]},{57:[1,192],72:[2,87],91:239,92:[1,191],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{72:[2,88]},{8:240,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,72:[2,122],75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{12:[2,116],28:[2,116],30:[2,116],31:[2,116],33:[2,116],34:[2,116],35:[2,116],36:[2,116],37:[2,116],38:[2,116],45:[2,116],46:[2,116],47:[2,116],51:[2,116],52:[2,116],72:[2,116],75:[2,116],78:[2,116],82:[2,116],87:[2,116],88:[2,116],89:[2,116],95:[2,116],99:[2,116],100:[2,116],103:[2,116],105:[2,116],107:[2,116],109:[2,116],118:[2,116],124:[2,116],126:[2,116],127:[2,116],128:[2,116],129:[2,116],130:[2,116]},{12:[2,117],28:[2,117],30:[2,117],31:[2,117],33:[2,117],34:[2,117],35:[2,117],36:[2,117],37:[2,117],38:[2,117],45:[2,117],46:[2,117],47:[2,117],51:[2,117],52:[2,117],72:[2,117],75:[2,117],78:[2,117],82:[2,117],87:[2,117],88:[2,117],89:[2,117],95:[2,117],99:[2,117],100:[2,117],103:[2,117],105:[2,117],107:[2,117],109:[2,117],118:[2,117],124:[2,117],126:[2,117],127:[2,117],128:[2,117],129:[2,117],130:[2,117]},{1:[2,86],6:[2,86],25:[2,86],26:[2,86],40:[2,86],49:[2,86],54:[2,86],57:[2,86],66:[2,86],67:[2,86],68:[2,86],70:[2,86],72:[2,86],73:[2,86],77:[2,86],79:[2,86],83:[2,86],84:[2,86],85:[2,86],90:[2,86],92:[2,86],101:[2,86],103:[2,86],104:[2,86],105:[2,86],109:[2,86],117:[2,86],125:[2,86],127:[2,86],128:[2,86],129:[2,86],130:[2,86],131:[2,86],132:[2,86],133:[2,86],134:[2,86],135:[2,86],136:[2,86],137:[2,86]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],49:[2,104],54:[2,104],57:[2,104],66:[2,104],67:[2,104],68:[2,104],70:[2,104],72:[2,104],73:[2,104],77:[2,104],83:[2,104],84:[2,104],85:[2,104],90:[2,104],92:[2,104],101:[2,104],103:[2,104],104:[2,104],105:[2,104],109:[2,104],117:[2,104],125:[2,104],127:[2,104],128:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104],135:[2,104],136:[2,104]},{1:[2,36],6:[2,36],25:[2,36],26:[2,36],49:[2,36],54:[2,36],57:[2,36],72:[2,36],77:[2,36],85:[2,36],90:[2,36],92:[2,36],101:[2,36],102:87,103:[2,36],104:[2,36],105:[2,36],108:88,109:[2,36],110:69,117:[2,36],125:[2,36],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{8:241,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:242,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],49:[2,109],54:[2,109],57:[2,109],66:[2,109],67:[2,109],68:[2,109],70:[2,109],72:[2,109],73:[2,109],77:[2,109],83:[2,109],84:[2,109],85:[2,109],90:[2,109],92:[2,109],101:[2,109],103:[2,109],104:[2,109],105:[2,109],109:[2,109],117:[2,109],125:[2,109],127:[2,109],128:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109],135:[2,109],136:[2,109]},{6:[2,53],25:[2,53],53:243,54:[1,226],85:[2,53]},{6:[2,128],25:[2,128],26:[2,128],54:[2,128],57:[1,244],85:[2,128],90:[2,128],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{50:245,51:[1,60],52:[1,61]},{6:[2,54],25:[2,54],26:[2,54],27:109,28:[1,73],44:110,55:246,56:108,58:111,59:112,75:[1,70],88:[1,113],89:[1,114]},{6:[1,247],25:[1,248]},{6:[2,61],25:[2,61],26:[2,61],49:[2,61],54:[2,61]},{8:249,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,199],6:[2,199],25:[2,199],26:[2,199],49:[2,199],54:[2,199],57:[2,199],72:[2,199],77:[2,199],85:[2,199],90:[2,199],92:[2,199],101:[2,199],102:87,103:[2,199],104:[2,199],105:[2,199],108:88,109:[2,199],110:69,117:[2,199],125:[2,199],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{8:250,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,201],6:[2,201],25:[2,201],26:[2,201],49:[2,201],54:[2,201],57:[2,201],72:[2,201],77:[2,201],85:[2,201],90:[2,201],92:[2,201],101:[2,201],102:87,103:[2,201],104:[2,201],105:[2,201],108:88,109:[2,201],110:69,117:[2,201],125:[2,201],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],49:[2,181],54:[2,181],57:[2,181],72:[2,181],77:[2,181],85:[2,181],90:[2,181],92:[2,181],101:[2,181],103:[2,181],104:[2,181],105:[2,181],109:[2,181],117:[2,181],125:[2,181],127:[2,181],128:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181],135:[2,181],136:[2,181]},{8:251,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],49:[2,133],54:[2,133],57:[2,133],72:[2,133],77:[2,133],85:[2,133],90:[2,133],92:[2,133],97:[1,252],101:[2,133],103:[2,133],104:[2,133],105:[2,133],109:[2,133],117:[2,133],125:[2,133],127:[2,133],128:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133],135:[2,133],136:[2,133]},{5:253,25:[1,5]},{27:254,28:[1,73]},{119:255,121:216,122:[1,217]},{26:[1,256],120:[1,257],121:258,122:[1,217]},{26:[2,174],120:[2,174],122:[2,174]},{8:260,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],94:259,95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,97],5:261,6:[2,97],25:[1,5],26:[2,97],49:[2,97],54:[2,97],57:[2,97],72:[2,97],77:[2,97],85:[2,97],90:[2,97],92:[2,97],101:[2,97],102:87,103:[1,65],104:[2,97],105:[1,66],108:88,109:[1,68],110:69,117:[2,97],125:[2,97],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],49:[2,100],54:[2,100],57:[2,100],72:[2,100],77:[2,100],85:[2,100],90:[2,100],92:[2,100],101:[2,100],103:[2,100],104:[2,100],105:[2,100],109:[2,100],117:[2,100],125:[2,100],127:[2,100],128:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100],135:[2,100],136:[2,100]},{8:262,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],49:[2,138],54:[2,138],57:[2,138],66:[2,138],67:[2,138],68:[2,138],70:[2,138],72:[2,138],73:[2,138],77:[2,138],83:[2,138],84:[2,138],85:[2,138],90:[2,138],92:[2,138],101:[2,138],103:[2,138],104:[2,138],105:[2,138],109:[2,138],117:[2,138],125:[2,138],127:[2,138],128:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138],135:[2,138],136:[2,138]},{6:[1,74],26:[1,263]},{8:264,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{6:[2,67],12:[2,117],25:[2,67],28:[2,117],30:[2,117],31:[2,117],33:[2,117],34:[2,117],35:[2,117],36:[2,117],37:[2,117],38:[2,117],45:[2,117],46:[2,117],47:[2,117],51:[2,117],52:[2,117],54:[2,67],75:[2,117],78:[2,117],82:[2,117],87:[2,117],88:[2,117],89:[2,117],90:[2,67],95:[2,117],99:[2,117],100:[2,117],103:[2,117],105:[2,117],107:[2,117],109:[2,117],118:[2,117],124:[2,117],126:[2,117],127:[2,117],128:[2,117],129:[2,117],130:[2,117]},{6:[1,266],25:[1,267],90:[1,265]},{6:[2,54],8:200,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[2,54],26:[2,54],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:147,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],85:[2,54],87:[1,58],88:[1,59],89:[1,57],90:[2,54],93:268,95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{6:[2,53],25:[2,53],26:[2,53],53:269,54:[1,226]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],49:[2,178],54:[2,178],57:[2,178],72:[2,178],77:[2,178],85:[2,178],90:[2,178],92:[2,178],101:[2,178],103:[2,178],104:[2,178],105:[2,178],109:[2,178],117:[2,178],120:[2,178],125:[2,178],127:[2,178],128:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178],135:[2,178],136:[2,178]},{8:270,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:271,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{115:[2,156],116:[2,156]},{27:158,28:[1,73],44:159,58:160,59:161,75:[1,70],88:[1,113],89:[1,114],114:272},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],49:[2,163],54:[2,163],57:[2,163],72:[2,163],77:[2,163],85:[2,163],90:[2,163],92:[2,163],101:[2,163],102:87,103:[2,163],104:[1,273],105:[2,163],108:88,109:[2,163],110:69,117:[1,274],125:[2,163],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],49:[2,164],54:[2,164],57:[2,164],72:[2,164],77:[2,164],85:[2,164],90:[2,164],92:[2,164],101:[2,164],102:87,103:[2,164],104:[1,275],105:[2,164],108:88,109:[2,164],110:69,117:[2,164],125:[2,164],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{6:[1,277],25:[1,278],77:[1,276]},{6:[2,54],11:168,25:[2,54],26:[2,54],27:169,28:[1,73],29:170,30:[1,71],31:[1,72],41:279,42:167,44:171,46:[1,46],77:[2,54],88:[1,113]},{8:280,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,281],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,85],6:[2,85],25:[2,85],26:[2,85],40:[2,85],49:[2,85],54:[2,85],57:[2,85],66:[2,85],67:[2,85],68:[2,85],70:[2,85],72:[2,85],73:[2,85],77:[2,85],79:[2,85],83:[2,85],84:[2,85],85:[2,85],90:[2,85],92:[2,85],101:[2,85],103:[2,85],104:[2,85],105:[2,85],109:[2,85],117:[2,85],125:[2,85],127:[2,85],128:[2,85],129:[2,85],130:[2,85],131:[2,85],132:[2,85],133:[2,85],134:[2,85],135:[2,85],136:[2,85],137:[2,85]},{8:282,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,72:[2,120],75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{72:[2,121],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,37],6:[2,37],25:[2,37],26:[2,37],49:[2,37],54:[2,37],57:[2,37],72:[2,37],77:[2,37],85:[2,37],90:[2,37],92:[2,37],101:[2,37],102:87,103:[2,37],104:[2,37],105:[2,37],108:88,109:[2,37],110:69,117:[2,37],125:[2,37],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{26:[1,283],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{6:[1,266],25:[1,267],85:[1,284]},{6:[2,67],25:[2,67],26:[2,67],54:[2,67],85:[2,67],90:[2,67]},{5:285,25:[1,5]},{6:[2,57],25:[2,57],26:[2,57],49:[2,57],54:[2,57]},{27:109,28:[1,73],44:110,55:286,56:108,58:111,59:112,75:[1,70],88:[1,113],89:[1,114]},{6:[2,55],25:[2,55],26:[2,55],27:109,28:[1,73],44:110,48:287,54:[2,55],55:107,56:108,58:111,59:112,75:[1,70],88:[1,113],89:[1,114]},{6:[2,62],25:[2,62],26:[2,62],49:[2,62],54:[2,62],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{26:[1,288],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{5:289,25:[1,5],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{5:290,25:[1,5]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],49:[2,134],54:[2,134],57:[2,134],72:[2,134],77:[2,134],85:[2,134],90:[2,134],92:[2,134],101:[2,134],103:[2,134],104:[2,134],105:[2,134],109:[2,134],117:[2,134],125:[2,134],127:[2,134],128:[2,134],131:[2,134],132:[2,134],133:[2,134],134:[2,134],135:[2,134],136:[2,134]},{5:291,25:[1,5]},{26:[1,292],120:[1,293],121:258,122:[1,217]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],49:[2,172],54:[2,172],57:[2,172],72:[2,172],77:[2,172],85:[2,172],90:[2,172],92:[2,172],101:[2,172],103:[2,172],104:[2,172],105:[2,172],109:[2,172],117:[2,172],125:[2,172],127:[2,172],128:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172],135:[2,172],136:[2,172]},{5:294,25:[1,5]},{26:[2,175],120:[2,175],122:[2,175]},{5:295,25:[1,5],54:[1,296]},{25:[2,130],54:[2,130],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],49:[2,98],54:[2,98],57:[2,98],72:[2,98],77:[2,98],85:[2,98],90:[2,98],92:[2,98],101:[2,98],103:[2,98],104:[2,98],105:[2,98],109:[2,98],117:[2,98],125:[2,98],127:[2,98],128:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98],135:[2,98],136:[2,98]},{1:[2,101],5:297,6:[2,101],25:[1,5],26:[2,101],49:[2,101],54:[2,101],57:[2,101],72:[2,101],77:[2,101],85:[2,101],90:[2,101],92:[2,101],101:[2,101],102:87,103:[1,65],104:[2,101],105:[1,66],108:88,109:[1,68],110:69,117:[2,101],125:[2,101],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{101:[1,298]},{90:[1,299],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,115],6:[2,115],25:[2,115],26:[2,115],40:[2,115],49:[2,115],54:[2,115],57:[2,115],66:[2,115],67:[2,115],68:[2,115],70:[2,115],72:[2,115],73:[2,115],77:[2,115],83:[2,115],84:[2,115],85:[2,115],90:[2,115],92:[2,115],101:[2,115],103:[2,115],104:[2,115],105:[2,115],109:[2,115],115:[2,115],116:[2,115],117:[2,115],125:[2,115],127:[2,115],128:[2,115],131:[2,115],132:[2,115],133:[2,115],134:[2,115],135:[2,115],136:[2,115]},{8:200,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:147,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],93:300,95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:200,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,146],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:147,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],86:301,87:[1,58],88:[1,59],89:[1,57],93:145,95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{6:[2,124],25:[2,124],26:[2,124],54:[2,124],85:[2,124],90:[2,124]},{6:[1,266],25:[1,267],26:[1,302]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],49:[2,141],54:[2,141],57:[2,141],72:[2,141],77:[2,141],85:[2,141],90:[2,141],92:[2,141],101:[2,141],102:87,103:[1,65],104:[2,141],105:[1,66],108:88,109:[1,68],110:69,117:[2,141],125:[2,141],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],49:[2,143],54:[2,143],57:[2,143],72:[2,143],77:[2,143],85:[2,143],90:[2,143],92:[2,143],101:[2,143],102:87,103:[1,65],104:[2,143],105:[1,66],108:88,109:[1,68],110:69,117:[2,143],125:[2,143],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{115:[2,162],116:[2,162]},{8:303,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:304,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:305,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,89],6:[2,89],25:[2,89],26:[2,89],40:[2,89],49:[2,89],54:[2,89],57:[2,89],66:[2,89],67:[2,89],68:[2,89],70:[2,89],72:[2,89],73:[2,89],77:[2,89],83:[2,89],84:[2,89],85:[2,89],90:[2,89],92:[2,89],101:[2,89],103:[2,89],104:[2,89],105:[2,89],109:[2,89],115:[2,89],116:[2,89],117:[2,89],125:[2,89],127:[2,89],128:[2,89],131:[2,89],132:[2,89],133:[2,89],134:[2,89],135:[2,89],136:[2,89]},{11:168,27:169,28:[1,73],29:170,30:[1,71],31:[1,72],41:306,42:167,44:171,46:[1,46],88:[1,113]},{6:[2,90],11:168,25:[2,90],26:[2,90],27:169,28:[1,73],29:170,30:[1,71],31:[1,72],41:166,42:167,44:171,46:[1,46],54:[2,90],76:307,88:[1,113]},{6:[2,92],25:[2,92],26:[2,92],54:[2,92],77:[2,92]},{6:[2,40],25:[2,40],26:[2,40],54:[2,40],77:[2,40],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{8:308,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{72:[2,119],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,38],6:[2,38],25:[2,38],26:[2,38],49:[2,38],54:[2,38],57:[2,38],72:[2,38],77:[2,38],85:[2,38],90:[2,38],92:[2,38],101:[2,38],103:[2,38],104:[2,38],105:[2,38],109:[2,38],117:[2,38],125:[2,38],127:[2,38],128:[2,38],131:[2,38],132:[2,38],133:[2,38],134:[2,38],135:[2,38],136:[2,38]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],49:[2,110],54:[2,110],57:[2,110],66:[2,110],67:[2,110],68:[2,110],70:[2,110],72:[2,110],73:[2,110],77:[2,110],83:[2,110],84:[2,110],85:[2,110],90:[2,110],92:[2,110],101:[2,110],103:[2,110],104:[2,110],105:[2,110],109:[2,110],117:[2,110],125:[2,110],127:[2,110],128:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110],135:[2,110],136:[2,110]},{1:[2,49],6:[2,49],25:[2,49],26:[2,49],49:[2,49],54:[2,49],57:[2,49],72:[2,49],77:[2,49],85:[2,49],90:[2,49],92:[2,49],101:[2,49],103:[2,49],104:[2,49],105:[2,49],109:[2,49],117:[2,49],125:[2,49],127:[2,49],128:[2,49],131:[2,49],132:[2,49],133:[2,49],134:[2,49],135:[2,49],136:[2,49]},{6:[2,58],25:[2,58],26:[2,58],49:[2,58],54:[2,58]},{6:[2,53],25:[2,53],26:[2,53],53:309,54:[1,202]},{1:[2,200],6:[2,200],25:[2,200],26:[2,200],49:[2,200],54:[2,200],57:[2,200],72:[2,200],77:[2,200],85:[2,200],90:[2,200],92:[2,200],101:[2,200],103:[2,200],104:[2,200],105:[2,200],109:[2,200],117:[2,200],125:[2,200],127:[2,200],128:[2,200],131:[2,200],132:[2,200],133:[2,200],134:[2,200],135:[2,200],136:[2,200]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],49:[2,179],54:[2,179],57:[2,179],72:[2,179],77:[2,179],85:[2,179],90:[2,179],92:[2,179],101:[2,179],103:[2,179],104:[2,179],105:[2,179],109:[2,179],117:[2,179],120:[2,179],125:[2,179],127:[2,179],128:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179],135:[2,179],136:[2,179]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],49:[2,135],54:[2,135],57:[2,135],72:[2,135],77:[2,135],85:[2,135],90:[2,135],92:[2,135],101:[2,135],103:[2,135],104:[2,135],105:[2,135],109:[2,135],117:[2,135],125:[2,135],127:[2,135],128:[2,135],131:[2,135],132:[2,135],133:[2,135],134:[2,135],135:[2,135],136:[2,135]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],49:[2,136],54:[2,136],57:[2,136],72:[2,136],77:[2,136],85:[2,136],90:[2,136],92:[2,136],97:[2,136],101:[2,136],103:[2,136],104:[2,136],105:[2,136],109:[2,136],117:[2,136],125:[2,136],127:[2,136],128:[2,136],131:[2,136],132:[2,136],133:[2,136],134:[2,136],135:[2,136],136:[2,136]},{1:[2,170],6:[2,170],25:[2,170],26:[2,170],49:[2,170],54:[2,170],57:[2,170],72:[2,170],77:[2,170],85:[2,170],90:[2,170],92:[2,170],101:[2,170],103:[2,170],104:[2,170],105:[2,170],109:[2,170],117:[2,170],125:[2,170],127:[2,170],128:[2,170],131:[2,170],132:[2,170],133:[2,170],134:[2,170],135:[2,170],136:[2,170]},{5:310,25:[1,5]},{26:[1,311]},{6:[1,312],26:[2,176],120:[2,176],122:[2,176]},{8:313,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,102],6:[2,102],25:[2,102],26:[2,102],49:[2,102],54:[2,102],57:[2,102],72:[2,102],77:[2,102],85:[2,102],90:[2,102],92:[2,102],101:[2,102],103:[2,102],104:[2,102],105:[2,102],109:[2,102],117:[2,102],125:[2,102],127:[2,102],128:[2,102],131:[2,102],132:[2,102],133:[2,102],134:[2,102],135:[2,102],136:[2,102]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],49:[2,139],54:[2,139],57:[2,139],66:[2,139],67:[2,139],68:[2,139],70:[2,139],72:[2,139],73:[2,139],77:[2,139],83:[2,139],84:[2,139],85:[2,139],90:[2,139],92:[2,139],101:[2,139],103:[2,139],104:[2,139],105:[2,139],109:[2,139],117:[2,139],125:[2,139],127:[2,139],128:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139],135:[2,139],136:[2,139]},{1:[2,118],6:[2,118],25:[2,118],26:[2,118],49:[2,118],54:[2,118],57:[2,118],66:[2,118],67:[2,118],68:[2,118],70:[2,118],72:[2,118],73:[2,118],77:[2,118],83:[2,118],84:[2,118],85:[2,118],90:[2,118],92:[2,118],101:[2,118],103:[2,118],104:[2,118],105:[2,118],109:[2,118],117:[2,118],125:[2,118],127:[2,118],128:[2,118],131:[2,118],132:[2,118],133:[2,118],134:[2,118],135:[2,118],136:[2,118]},{6:[2,125],25:[2,125],26:[2,125],54:[2,125],85:[2,125],90:[2,125]},{6:[2,53],25:[2,53],26:[2,53],53:314,54:[1,226]},{6:[2,126],25:[2,126],26:[2,126],54:[2,126],85:[2,126],90:[2,126]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],49:[2,165],54:[2,165],57:[2,165],72:[2,165],77:[2,165],85:[2,165],90:[2,165],92:[2,165],101:[2,165],102:87,103:[2,165],104:[2,165],105:[2,165],108:88,109:[2,165],110:69,117:[1,315],125:[2,165],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,167],6:[2,167],25:[2,167],26:[2,167],49:[2,167],54:[2,167],57:[2,167],72:[2,167],77:[2,167],85:[2,167],90:[2,167],92:[2,167],101:[2,167],102:87,103:[2,167],104:[1,316],105:[2,167],108:88,109:[2,167],110:69,117:[2,167],125:[2,167],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],49:[2,166],54:[2,166],57:[2,166],72:[2,166],77:[2,166],85:[2,166],90:[2,166],92:[2,166],101:[2,166],102:87,103:[2,166],104:[2,166],105:[2,166],108:88,109:[2,166],110:69,117:[2,166],125:[2,166],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{6:[2,93],25:[2,93],26:[2,93],54:[2,93],77:[2,93]},{6:[2,53],25:[2,53],26:[2,53],53:317,54:[1,236]},{26:[1,318],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{6:[1,247],25:[1,248],26:[1,319]},{26:[1,320]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],49:[2,173],54:[2,173],57:[2,173],72:[2,173],77:[2,173],85:[2,173],90:[2,173],92:[2,173],101:[2,173],103:[2,173],104:[2,173],105:[2,173],109:[2,173],117:[2,173],125:[2,173],127:[2,173],128:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173],135:[2,173],136:[2,173]},{26:[2,177],120:[2,177],122:[2,177]},{25:[2,131],54:[2,131],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{6:[1,266],25:[1,267],26:[1,321]},{8:322,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:323,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{6:[1,277],25:[1,278],26:[1,324]},{6:[2,41],25:[2,41],26:[2,41],54:[2,41],77:[2,41]},{6:[2,59],25:[2,59],26:[2,59],49:[2,59],54:[2,59]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],49:[2,171],54:[2,171],57:[2,171],72:[2,171],77:[2,171],85:[2,171],90:[2,171],92:[2,171],101:[2,171],103:[2,171],104:[2,171],105:[2,171],109:[2,171],117:[2,171],125:[2,171],127:[2,171],128:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171],135:[2,171],136:[2,171]},{6:[2,127],25:[2,127],26:[2,127],54:[2,127],85:[2,127],90:[2,127]},{1:[2,168],6:[2,168],25:[2,168],26:[2,168],49:[2,168],54:[2,168],57:[2,168],72:[2,168],77:[2,168],85:[2,168],90:[2,168],92:[2,168],101:[2,168],102:87,103:[2,168],104:[2,168],105:[2,168],108:88,109:[2,168],110:69,117:[2,168],125:[2,168],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,169],6:[2,169],25:[2,169],26:[2,169],49:[2,169],54:[2,169],57:[2,169],72:[2,169],77:[2,169],85:[2,169],90:[2,169],92:[2,169],101:[2,169],102:87,103:[2,169],104:[2,169],105:[2,169],108:88,109:[2,169],110:69,117:[2,169],125:[2,169],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{6:[2,94],25:[2,94],26:[2,94],54:[2,94],77:[2,94]}], -defaultActions: {60:[2,51],61:[2,52],75:[2,3],94:[2,108],189:[2,88]}, -parseError: function parseError(str, hash) { - throw new Error(str); -}, -parse: function parse(input) { - var self = this, - stack = [0], - vstack = [null], // semantic value stack - lstack = [], // location stack - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - - //this.reductionCount = this.shiftCount = 0; - - this.lexer.setInput(input); - this.lexer.yy = this.yy; - this.yy.lexer = this.lexer; - if (typeof this.lexer.yylloc == 'undefined') - this.lexer.yylloc = {}; - var yyloc = this.lexer.yylloc; - lstack.push(yyloc); - - if (typeof this.yy.parseError === 'function') - this.parseError = this.yy.parseError; - - function popStack (n) { - stack.length = stack.length - 2*n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - - function lex() { - var token; - token = self.lexer.lex() || 1; // $end = 1 - // if token isn't its numeric value, convert - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - } - - var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected; - while (true) { - // retreive state number from top of stack - state = stack[stack.length-1]; - - // use default actions if available - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol == null) - symbol = lex(); - // read action for current state and first input - action = table[state] && table[state][symbol]; - } - - // handle parse error - _handle_error: - if (typeof action === 'undefined' || !action.length || !action[0]) { - - if (!recovering) { - // Report error - expected = []; - for (p in table[state]) if (this.terminals_[p] && p > 2) { - expected.push("'"+this.terminals_[p]+"'"); - } - var errStr = ''; - if (this.lexer.showPosition) { - errStr = 'Parse error on line '+(yylineno+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + this.terminals_[symbol]+ "'"; - } else { - errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + - (symbol == 1 /*EOF*/ ? "end of input" : - ("'"+(this.terminals_[symbol] || symbol)+"'")); - } - this.parseError(errStr, - {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected}); - } - - // just recovered from another error - if (recovering == 3) { - if (symbol == EOF) { - throw new Error(errStr || 'Parsing halted.'); - } - - // discard current lookahead and grab another - yyleng = this.lexer.yyleng; - yytext = this.lexer.yytext; - yylineno = this.lexer.yylineno; - yyloc = this.lexer.yylloc; - symbol = lex(); - } - - // try to recover from error - while (1) { - // check for error recovery rule in this state - if ((TERROR.toString()) in table[state]) { - break; - } - if (state == 0) { - throw new Error(errStr || 'Parsing halted.'); - } - popStack(1); - state = stack[stack.length-1]; - } - - preErrorSymbol = symbol; // save the lookahead token - symbol = TERROR; // insert generic error symbol as new lookahead - state = stack[stack.length-1]; - action = table[state] && table[state][TERROR]; - recovering = 3; // allow 3 real symbols to be shifted before reporting a new error - } - - // this shouldn't happen, unless resolve defaults are off - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); - } - - switch (action[0]) { - - case 1: // shift - //this.shiftCount++; - - stack.push(symbol); - vstack.push(this.lexer.yytext); - lstack.push(this.lexer.yylloc); - stack.push(action[1]); // push state - symbol = null; - if (!preErrorSymbol) { // normal execution/no error - yyleng = this.lexer.yyleng; - yytext = this.lexer.yytext; - yylineno = this.lexer.yylineno; - yyloc = this.lexer.yylloc; - if (recovering > 0) - recovering--; - } else { // error just occurred, resume old lookahead f/ before error - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - - case 2: // reduce - //this.reductionCount++; - - len = this.productions_[action[1]][1]; - - // perform semantic action - yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 - // default location, uses first token for firsts, last for lasts - yyval._$ = { - first_line: lstack[lstack.length-(len||1)].first_line, - last_line: lstack[lstack.length-1].last_line, - first_column: lstack[lstack.length-(len||1)].first_column, - last_column: lstack[lstack.length-1].last_column - }; - r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); - - if (typeof r !== 'undefined') { - return r; - } - - // pop off stack - if (len) { - stack = stack.slice(0,-1*len*2); - vstack = vstack.slice(0, -1*len); - lstack = lstack.slice(0, -1*len); - } - - stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) - vstack.push(yyval.$); - lstack.push(yyval._$); - // goto new state = table[STATE][NONTERMINAL] - newState = table[stack[stack.length-2]][stack[stack.length-1]]; - stack.push(newState); - break; - - case 3: // accept - return true; - } - - } - - return true; -}}; -undefined -return parser; -})(); -if (typeof require !== 'undefined' && typeof exports !== 'undefined') { -exports.parser = parser; -exports.parse = function () { return parser.parse.apply(parser, arguments); } -exports.main = function commonjsMain(args) { - if (!args[1]) - throw new Error('Usage: '+args[0]+' FILE'); - if (typeof process !== 'undefined') { - var source = require('fs').readFileSync(require('path').join(process.cwd(), args[1]), "utf8"); - } else { - var cwd = require("file").path(require("file").cwd()); - var source = cwd.join(args[1]).read({charset: "utf-8"}); - } - return exports.parser.parse(source); -} -if (typeof module !== 'undefined' && require.main === module) { - exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require("system").args); -} -} \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/repl.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/repl.js deleted file mode 100644 index b4a4765d3e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/repl.js +++ /dev/null @@ -1,261 +0,0 @@ -// Generated by CoffeeScript 1.3.3 -(function() { - var ACCESSOR, CoffeeScript, Module, REPL_PROMPT, REPL_PROMPT_CONTINUATION, REPL_PROMPT_MULTILINE, SIMPLEVAR, Script, autocomplete, backlog, completeAttribute, completeVariable, enableColours, error, getCompletions, inspect, multilineMode, pipedInput, readline, repl, run, stdin, stdout; - - stdin = process.openStdin(); - - stdout = process.stdout; - - CoffeeScript = require('./coffee-script'); - - readline = require('readline'); - - inspect = require('util').inspect; - - Script = require('vm').Script; - - Module = require('module'); - - REPL_PROMPT = 'coffee> '; - - REPL_PROMPT_MULTILINE = '------> '; - - REPL_PROMPT_CONTINUATION = '......> '; - - enableColours = false; - - if (process.platform !== 'win32') { - enableColours = !process.env.NODE_DISABLE_COLORS; - } - - error = function(err) { - return stdout.write((err.stack || err.toString()) + '\n'); - }; - - ACCESSOR = /\s*([\w\.]+)(?:\.(\w*))$/; - - SIMPLEVAR = /(\w+)$/i; - - autocomplete = function(text) { - return completeAttribute(text) || completeVariable(text) || [[], text]; - }; - - completeAttribute = function(text) { - var all, completions, key, match, obj, possibilities, prefix, val; - if (match = text.match(ACCESSOR)) { - all = match[0], obj = match[1], prefix = match[2]; - try { - val = Script.runInThisContext(obj); - } catch (error) { - return; - } - val = Object(val); - possibilities = Object.getOwnPropertyNames(val); - for (key in val) { - if (~possibilities.indexOf(val)) { - possibilities.push(key); - } - } - completions = getCompletions(prefix, possibilities); - return [completions, prefix]; - } - }; - - completeVariable = function(text) { - var completions, free, keywords, possibilities, r, vars, _ref; - free = (_ref = text.match(SIMPLEVAR)) != null ? _ref[1] : void 0; - if (text === "") { - free = ""; - } - if (free != null) { - vars = Script.runInThisContext('Object.getOwnPropertyNames(Object(this))'); - keywords = (function() { - var _i, _len, _ref1, _results; - _ref1 = CoffeeScript.RESERVED; - _results = []; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - r = _ref1[_i]; - if (r.slice(0, 2) !== '__') { - _results.push(r); - } - } - return _results; - })(); - possibilities = vars.concat(keywords); - completions = getCompletions(free, possibilities); - return [completions, free]; - } - }; - - getCompletions = function(prefix, candidates) { - var el, _i, _len, _results; - _results = []; - for (_i = 0, _len = candidates.length; _i < _len; _i++) { - el = candidates[_i]; - if (el.indexOf(prefix) === 0) { - _results.push(el); - } - } - return _results; - }; - - process.on('uncaughtException', error); - - backlog = ''; - - run = function(buffer) { - var code, returnValue, _; - buffer = buffer.replace(/(^|[\r\n]+)(\s*)##?(?:[^#\r\n][^\r\n]*|)($|[\r\n])/, "$1$2$3"); - buffer = buffer.replace(/[\r\n]+$/, ""); - if (multilineMode) { - backlog += "" + buffer + "\n"; - repl.setPrompt(REPL_PROMPT_CONTINUATION); - repl.prompt(); - return; - } - if (!buffer.toString().trim() && !backlog) { - repl.prompt(); - return; - } - code = backlog += buffer; - if (code[code.length - 1] === '\\') { - backlog = "" + backlog.slice(0, -1) + "\n"; - repl.setPrompt(REPL_PROMPT_CONTINUATION); - repl.prompt(); - return; - } - repl.setPrompt(REPL_PROMPT); - backlog = ''; - try { - _ = global._; - returnValue = CoffeeScript["eval"]("_=(" + code + "\n)", { - filename: 'repl', - modulename: 'repl' - }); - if (returnValue === void 0) { - global._ = _; - } - repl.output.write("" + (inspect(returnValue, false, 2, enableColours)) + "\n"); - } catch (err) { - error(err); - } - return repl.prompt(); - }; - - if (stdin.readable) { - pipedInput = ''; - repl = { - prompt: function() { - return stdout.write(this._prompt); - }, - setPrompt: function(p) { - return this._prompt = p; - }, - input: stdin, - output: stdout, - on: function() {} - }; - stdin.on('data', function(chunk) { - var line, lines, _i, _len, _ref; - pipedInput += chunk; - if (!/\n/.test(pipedInput)) { - return; - } - lines = pipedInput.split("\n"); - pipedInput = lines[lines.length - 1]; - _ref = lines.slice(0, -1); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - line = _ref[_i]; - if (!(line)) { - continue; - } - stdout.write("" + line + "\n"); - run(line); - } - }); - stdin.on('end', function() { - var line, _i, _len, _ref; - _ref = pipedInput.trim().split("\n"); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - line = _ref[_i]; - if (!(line)) { - continue; - } - stdout.write("" + line + "\n"); - run(line); - } - stdout.write('\n'); - return process.exit(0); - }); - } else { - if (readline.createInterface.length < 3) { - repl = readline.createInterface(stdin, autocomplete); - stdin.on('data', function(buffer) { - return repl.write(buffer); - }); - } else { - repl = readline.createInterface(stdin, stdout, autocomplete); - } - } - - multilineMode = false; - - repl.input.on('keypress', function(char, key) { - var cursorPos, newPrompt; - if (!(key && key.ctrl && !key.meta && !key.shift && key.name === 'v')) { - return; - } - cursorPos = repl.cursor; - repl.output.cursorTo(0); - repl.output.clearLine(1); - multilineMode = !multilineMode; - if (!multilineMode && backlog) { - repl._line(); - } - backlog = ''; - repl.setPrompt((newPrompt = multilineMode ? REPL_PROMPT_MULTILINE : REPL_PROMPT)); - repl.prompt(); - return repl.output.cursorTo(newPrompt.length + (repl.cursor = cursorPos)); - }); - - repl.input.on('keypress', function(char, key) { - if (!(multilineMode && repl.line)) { - return; - } - if (!(key && key.ctrl && !key.meta && !key.shift && key.name === 'd')) { - return; - } - multilineMode = false; - return repl._line(); - }); - - repl.on('attemptClose', function() { - if (multilineMode) { - multilineMode = false; - repl.output.cursorTo(0); - repl.output.clearLine(1); - repl._onLine(repl.line); - return; - } - if (backlog) { - backlog = ''; - repl.output.write('\n'); - repl.setPrompt(REPL_PROMPT); - return repl.prompt(); - } else { - return repl.close(); - } - }); - - repl.on('close', function() { - repl.output.write('\n'); - return repl.input.destroy(); - }); - - repl.on('line', run); - - repl.setPrompt(REPL_PROMPT); - - repl.prompt(); - -}).call(this); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/rewriter.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/rewriter.js deleted file mode 100644 index d26133ca71..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/rewriter.js +++ /dev/null @@ -1,349 +0,0 @@ -// Generated by CoffeeScript 1.3.3 -(function() { - var BALANCED_PAIRS, EXPRESSION_CLOSE, EXPRESSION_END, EXPRESSION_START, IMPLICIT_BLOCK, IMPLICIT_CALL, IMPLICIT_END, IMPLICIT_FUNC, IMPLICIT_UNSPACED_CALL, INVERSES, LINEBREAKS, SINGLE_CLOSERS, SINGLE_LINERS, left, rite, _i, _len, _ref, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, - __slice = [].slice; - - exports.Rewriter = (function() { - - function Rewriter() {} - - Rewriter.prototype.rewrite = function(tokens) { - this.tokens = tokens; - this.removeLeadingNewlines(); - this.removeMidExpressionNewlines(); - this.closeOpenCalls(); - this.closeOpenIndexes(); - this.addImplicitIndentation(); - this.tagPostfixConditionals(); - this.addImplicitBraces(); - this.addImplicitParentheses(); - return this.tokens; - }; - - Rewriter.prototype.scanTokens = function(block) { - var i, token, tokens; - tokens = this.tokens; - i = 0; - while (token = tokens[i]) { - i += block.call(this, token, i, tokens); - } - return true; - }; - - Rewriter.prototype.detectEnd = function(i, condition, action) { - var levels, token, tokens, _ref, _ref1; - tokens = this.tokens; - levels = 0; - while (token = tokens[i]) { - if (levels === 0 && condition.call(this, token, i)) { - return action.call(this, token, i); - } - if (!token || levels < 0) { - return action.call(this, token, i - 1); - } - if (_ref = token[0], __indexOf.call(EXPRESSION_START, _ref) >= 0) { - levels += 1; - } else if (_ref1 = token[0], __indexOf.call(EXPRESSION_END, _ref1) >= 0) { - levels -= 1; - } - i += 1; - } - return i - 1; - }; - - Rewriter.prototype.removeLeadingNewlines = function() { - var i, tag, _i, _len, _ref; - _ref = this.tokens; - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - tag = _ref[i][0]; - if (tag !== 'TERMINATOR') { - break; - } - } - if (i) { - return this.tokens.splice(0, i); - } - }; - - Rewriter.prototype.removeMidExpressionNewlines = function() { - return this.scanTokens(function(token, i, tokens) { - var _ref; - if (!(token[0] === 'TERMINATOR' && (_ref = this.tag(i + 1), __indexOf.call(EXPRESSION_CLOSE, _ref) >= 0))) { - return 1; - } - tokens.splice(i, 1); - return 0; - }); - }; - - Rewriter.prototype.closeOpenCalls = function() { - var action, condition; - condition = function(token, i) { - var _ref; - return ((_ref = token[0]) === ')' || _ref === 'CALL_END') || token[0] === 'OUTDENT' && this.tag(i - 1) === ')'; - }; - action = function(token, i) { - return this.tokens[token[0] === 'OUTDENT' ? i - 1 : i][0] = 'CALL_END'; - }; - return this.scanTokens(function(token, i) { - if (token[0] === 'CALL_START') { - this.detectEnd(i + 1, condition, action); - } - return 1; - }); - }; - - Rewriter.prototype.closeOpenIndexes = function() { - var action, condition; - condition = function(token, i) { - var _ref; - return (_ref = token[0]) === ']' || _ref === 'INDEX_END'; - }; - action = function(token, i) { - return token[0] = 'INDEX_END'; - }; - return this.scanTokens(function(token, i) { - if (token[0] === 'INDEX_START') { - this.detectEnd(i + 1, condition, action); - } - return 1; - }); - }; - - Rewriter.prototype.addImplicitBraces = function() { - var action, condition, sameLine, stack, start, startIndent, startIndex, startsLine; - stack = []; - start = null; - startsLine = null; - sameLine = true; - startIndent = 0; - startIndex = 0; - condition = function(token, i) { - var one, tag, three, two, _ref, _ref1; - _ref = this.tokens.slice(i + 1, (i + 3) + 1 || 9e9), one = _ref[0], two = _ref[1], three = _ref[2]; - if ('HERECOMMENT' === (one != null ? one[0] : void 0)) { - return false; - } - tag = token[0]; - if (__indexOf.call(LINEBREAKS, tag) >= 0) { - sameLine = false; - } - return (((tag === 'TERMINATOR' || tag === 'OUTDENT') || (__indexOf.call(IMPLICIT_END, tag) >= 0 && sameLine && !(i - startIndex === 1))) && ((!startsLine && this.tag(i - 1) !== ',') || !((two != null ? two[0] : void 0) === ':' || (one != null ? one[0] : void 0) === '@' && (three != null ? three[0] : void 0) === ':'))) || (tag === ',' && one && ((_ref1 = one[0]) !== 'IDENTIFIER' && _ref1 !== 'NUMBER' && _ref1 !== 'STRING' && _ref1 !== '@' && _ref1 !== 'TERMINATOR' && _ref1 !== 'OUTDENT')); - }; - action = function(token, i) { - var tok; - tok = this.generate('}', '}', token[2]); - return this.tokens.splice(i, 0, tok); - }; - return this.scanTokens(function(token, i, tokens) { - var ago, idx, prevTag, tag, tok, value, _ref, _ref1; - if (_ref = (tag = token[0]), __indexOf.call(EXPRESSION_START, _ref) >= 0) { - stack.push([(tag === 'INDENT' && this.tag(i - 1) === '{' ? '{' : tag), i]); - return 1; - } - if (__indexOf.call(EXPRESSION_END, tag) >= 0) { - start = stack.pop(); - return 1; - } - if (!(tag === ':' && ((ago = this.tag(i - 2)) === ':' || ((_ref1 = stack[stack.length - 1]) != null ? _ref1[0] : void 0) !== '{'))) { - return 1; - } - sameLine = true; - startIndex = i + 1; - stack.push(['{']); - idx = ago === '@' ? i - 2 : i - 1; - while (this.tag(idx - 2) === 'HERECOMMENT') { - idx -= 2; - } - prevTag = this.tag(idx - 1); - startsLine = !prevTag || (__indexOf.call(LINEBREAKS, prevTag) >= 0); - value = new String('{'); - value.generated = true; - tok = this.generate('{', value, token[2]); - tokens.splice(idx, 0, tok); - this.detectEnd(i + 2, condition, action); - return 2; - }); - }; - - Rewriter.prototype.addImplicitParentheses = function() { - var action, condition, noCall, seenControl, seenSingle; - noCall = seenSingle = seenControl = false; - condition = function(token, i) { - var post, tag, _ref, _ref1; - tag = token[0]; - if (!seenSingle && token.fromThen) { - return true; - } - if (tag === 'IF' || tag === 'ELSE' || tag === 'CATCH' || tag === '->' || tag === '=>' || tag === 'CLASS') { - seenSingle = true; - } - if (tag === 'IF' || tag === 'ELSE' || tag === 'SWITCH' || tag === 'TRY' || tag === '=') { - seenControl = true; - } - if ((tag === '.' || tag === '?.' || tag === '::') && this.tag(i - 1) === 'OUTDENT') { - return true; - } - return !token.generated && this.tag(i - 1) !== ',' && (__indexOf.call(IMPLICIT_END, tag) >= 0 || (tag === 'INDENT' && !seenControl)) && (tag !== 'INDENT' || (((_ref = this.tag(i - 2)) !== 'CLASS' && _ref !== 'EXTENDS') && (_ref1 = this.tag(i - 1), __indexOf.call(IMPLICIT_BLOCK, _ref1) < 0) && !((post = this.tokens[i + 1]) && post.generated && post[0] === '{'))); - }; - action = function(token, i) { - return this.tokens.splice(i, 0, this.generate('CALL_END', ')', token[2])); - }; - return this.scanTokens(function(token, i, tokens) { - var callObject, current, next, prev, tag, _ref, _ref1, _ref2; - tag = token[0]; - if (tag === 'CLASS' || tag === 'IF' || tag === 'FOR' || tag === 'WHILE') { - noCall = true; - } - _ref = tokens.slice(i - 1, (i + 1) + 1 || 9e9), prev = _ref[0], current = _ref[1], next = _ref[2]; - callObject = !noCall && tag === 'INDENT' && next && next.generated && next[0] === '{' && prev && (_ref1 = prev[0], __indexOf.call(IMPLICIT_FUNC, _ref1) >= 0); - seenSingle = false; - seenControl = false; - if (__indexOf.call(LINEBREAKS, tag) >= 0) { - noCall = false; - } - if (prev && !prev.spaced && tag === '?') { - token.call = true; - } - if (token.fromThen) { - return 1; - } - if (!(callObject || (prev != null ? prev.spaced : void 0) && (prev.call || (_ref2 = prev[0], __indexOf.call(IMPLICIT_FUNC, _ref2) >= 0)) && (__indexOf.call(IMPLICIT_CALL, tag) >= 0 || !(token.spaced || token.newLine) && __indexOf.call(IMPLICIT_UNSPACED_CALL, tag) >= 0))) { - return 1; - } - tokens.splice(i, 0, this.generate('CALL_START', '(', token[2])); - this.detectEnd(i + 1, condition, action); - if (prev[0] === '?') { - prev[0] = 'FUNC_EXIST'; - } - return 2; - }); - }; - - Rewriter.prototype.addImplicitIndentation = function() { - var action, condition, indent, outdent, starter; - starter = indent = outdent = null; - condition = function(token, i) { - var _ref; - return token[1] !== ';' && (_ref = token[0], __indexOf.call(SINGLE_CLOSERS, _ref) >= 0) && !(token[0] === 'ELSE' && (starter !== 'IF' && starter !== 'THEN')); - }; - action = function(token, i) { - return this.tokens.splice((this.tag(i - 1) === ',' ? i - 1 : i), 0, outdent); - }; - return this.scanTokens(function(token, i, tokens) { - var tag, _ref, _ref1; - tag = token[0]; - if (tag === 'TERMINATOR' && this.tag(i + 1) === 'THEN') { - tokens.splice(i, 1); - return 0; - } - if (tag === 'ELSE' && this.tag(i - 1) !== 'OUTDENT') { - tokens.splice.apply(tokens, [i, 0].concat(__slice.call(this.indentation(token)))); - return 2; - } - if (tag === 'CATCH' && ((_ref = this.tag(i + 2)) === 'OUTDENT' || _ref === 'TERMINATOR' || _ref === 'FINALLY')) { - tokens.splice.apply(tokens, [i + 2, 0].concat(__slice.call(this.indentation(token)))); - return 4; - } - if (__indexOf.call(SINGLE_LINERS, tag) >= 0 && this.tag(i + 1) !== 'INDENT' && !(tag === 'ELSE' && this.tag(i + 1) === 'IF')) { - starter = tag; - _ref1 = this.indentation(token, true), indent = _ref1[0], outdent = _ref1[1]; - if (starter === 'THEN') { - indent.fromThen = true; - } - tokens.splice(i + 1, 0, indent); - this.detectEnd(i + 2, condition, action); - if (tag === 'THEN') { - tokens.splice(i, 1); - } - return 1; - } - return 1; - }); - }; - - Rewriter.prototype.tagPostfixConditionals = function() { - var action, condition, original; - original = null; - condition = function(token, i) { - var _ref; - return (_ref = token[0]) === 'TERMINATOR' || _ref === 'INDENT'; - }; - action = function(token, i) { - if (token[0] !== 'INDENT' || (token.generated && !token.fromThen)) { - return original[0] = 'POST_' + original[0]; - } - }; - return this.scanTokens(function(token, i) { - if (token[0] !== 'IF') { - return 1; - } - original = token; - this.detectEnd(i + 1, condition, action); - return 1; - }); - }; - - Rewriter.prototype.indentation = function(token, implicit) { - var indent, outdent; - if (implicit == null) { - implicit = false; - } - indent = ['INDENT', 2, token[2]]; - outdent = ['OUTDENT', 2, token[2]]; - if (implicit) { - indent.generated = outdent.generated = true; - } - return [indent, outdent]; - }; - - Rewriter.prototype.generate = function(tag, value, line) { - var tok; - tok = [tag, value, line]; - tok.generated = true; - return tok; - }; - - Rewriter.prototype.tag = function(i) { - var _ref; - return (_ref = this.tokens[i]) != null ? _ref[0] : void 0; - }; - - return Rewriter; - - })(); - - BALANCED_PAIRS = [['(', ')'], ['[', ']'], ['{', '}'], ['INDENT', 'OUTDENT'], ['CALL_START', 'CALL_END'], ['PARAM_START', 'PARAM_END'], ['INDEX_START', 'INDEX_END']]; - - exports.INVERSES = INVERSES = {}; - - EXPRESSION_START = []; - - EXPRESSION_END = []; - - for (_i = 0, _len = BALANCED_PAIRS.length; _i < _len; _i++) { - _ref = BALANCED_PAIRS[_i], left = _ref[0], rite = _ref[1]; - EXPRESSION_START.push(INVERSES[rite] = left); - EXPRESSION_END.push(INVERSES[left] = rite); - } - - EXPRESSION_CLOSE = ['CATCH', 'WHEN', 'ELSE', 'FINALLY'].concat(EXPRESSION_END); - - IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS']; - - IMPLICIT_CALL = ['IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS', 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'NULL', 'UNDEFINED', 'UNARY', 'SUPER', '@', '->', '=>', '[', '(', '{', '--', '++']; - - IMPLICIT_UNSPACED_CALL = ['+', '-']; - - IMPLICIT_BLOCK = ['->', '=>', '{', '[', ',']; - - IMPLICIT_END = ['POST_IF', 'FOR', 'WHILE', 'UNTIL', 'WHEN', 'BY', 'LOOP', 'TERMINATOR']; - - SINGLE_LINERS = ['ELSE', '->', '=>', 'TRY', 'FINALLY', 'THEN']; - - SINGLE_CLOSERS = ['TERMINATOR', 'CATCH', 'FINALLY', 'ELSE', 'OUTDENT', 'LEADING_WHEN']; - - LINEBREAKS = ['TERMINATOR', 'INDENT', 'OUTDENT']; - -}).call(this); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/scope.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/scope.js deleted file mode 100644 index 3efc4ede67..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/scope.js +++ /dev/null @@ -1,146 +0,0 @@ -// Generated by CoffeeScript 1.3.3 -(function() { - var Scope, extend, last, _ref; - - _ref = require('./helpers'), extend = _ref.extend, last = _ref.last; - - exports.Scope = Scope = (function() { - - Scope.root = null; - - function Scope(parent, expressions, method) { - this.parent = parent; - this.expressions = expressions; - this.method = method; - this.variables = [ - { - name: 'arguments', - type: 'arguments' - } - ]; - this.positions = {}; - if (!this.parent) { - Scope.root = this; - } - } - - Scope.prototype.add = function(name, type, immediate) { - if (this.shared && !immediate) { - return this.parent.add(name, type, immediate); - } - if (Object.prototype.hasOwnProperty.call(this.positions, name)) { - return this.variables[this.positions[name]].type = type; - } else { - return this.positions[name] = this.variables.push({ - name: name, - type: type - }) - 1; - } - }; - - Scope.prototype.namedMethod = function() { - if (this.method.name || !this.parent) { - return this.method; - } - return this.parent.namedMethod(); - }; - - Scope.prototype.find = function(name) { - if (this.check(name)) { - return true; - } - this.add(name, 'var'); - return false; - }; - - Scope.prototype.parameter = function(name) { - if (this.shared && this.parent.check(name, true)) { - return; - } - return this.add(name, 'param'); - }; - - Scope.prototype.check = function(name) { - var _ref1; - return !!(this.type(name) || ((_ref1 = this.parent) != null ? _ref1.check(name) : void 0)); - }; - - Scope.prototype.temporary = function(name, index) { - if (name.length > 1) { - return '_' + name + (index > 1 ? index - 1 : ''); - } else { - return '_' + (index + parseInt(name, 36)).toString(36).replace(/\d/g, 'a'); - } - }; - - Scope.prototype.type = function(name) { - var v, _i, _len, _ref1; - _ref1 = this.variables; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - v = _ref1[_i]; - if (v.name === name) { - return v.type; - } - } - return null; - }; - - Scope.prototype.freeVariable = function(name, reserve) { - var index, temp; - if (reserve == null) { - reserve = true; - } - index = 0; - while (this.check((temp = this.temporary(name, index)))) { - index++; - } - if (reserve) { - this.add(temp, 'var', true); - } - return temp; - }; - - Scope.prototype.assign = function(name, value) { - this.add(name, { - value: value, - assigned: true - }, true); - return this.hasAssignments = true; - }; - - Scope.prototype.hasDeclarations = function() { - return !!this.declaredVariables().length; - }; - - Scope.prototype.declaredVariables = function() { - var realVars, tempVars, v, _i, _len, _ref1; - realVars = []; - tempVars = []; - _ref1 = this.variables; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - v = _ref1[_i]; - if (v.type === 'var') { - (v.name.charAt(0) === '_' ? tempVars : realVars).push(v.name); - } - } - return realVars.sort().concat(tempVars.sort()); - }; - - Scope.prototype.assignedVariables = function() { - var v, _i, _len, _ref1, _results; - _ref1 = this.variables; - _results = []; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - v = _ref1[_i]; - if (v.type.assigned) { - _results.push("" + v.name + " = " + v.type.value); - } - } - return _results; - }; - - return Scope; - - })(); - -}).call(this); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/package.json deleted file mode 100644 index 0d90cc629e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "coffee-script", - "description": "Unfancy JavaScript", - "keywords": [ - "javascript", - "language", - "coffeescript", - "compiler" - ], - "author": { - "name": "Jeremy Ashkenas" - }, - "version": "1.3.3", - "licenses": [ - { - "type": "MIT", - "url": "https://raw.github.com/jashkenas/coffee-script/master/LICENSE" - } - ], - "engines": { - "node": ">=0.4.0" - }, - "directories": { - "lib": "./lib/coffee-script" - }, - "main": "./lib/coffee-script/coffee-script", - "bin": { - "coffee": "./bin/coffee", - "cake": "./bin/cake" - }, - "homepage": "http://coffeescript.org", - "bugs": "https://github.com/jashkenas/coffee-script/issues", - "repository": { - "type": "git", - "url": "git://github.com/jashkenas/coffee-script.git" - }, - "devDependencies": { - "uglify-js": ">=1.0.0", - "jison": ">=0.2.0" - }, - "readme": "\n {\n } } {\n { { } }\n } }{ {\n { }{ } } _____ __ __\n ( }{ }{ { ) / ____| / _|/ _|\n .- { { } { }} -. | | ___ | |_| |_ ___ ___\n ( ( } { } { } } ) | | / _ \\| _| _/ _ \\/ _ \\\n |`-..________ ..-'| | |___| (_) | | | || __/ __/\n | | \\_____\\___/|_| |_| \\___|\\___|\n | ;--.\n | (__ \\ _____ _ _\n | | ) ) / ____| (_) | |\n | |/ / | (___ ___ _ __ _ _ __ | |_\n | ( / \\___ \\ / __| '__| | '_ \\| __|\n | |/ ____) | (__| | | | |_) | |_\n | | |_____/ \\___|_| |_| .__/ \\__|\n `-.._________..-' | |\n |_|\n\n\n CoffeeScript is a little language that compiles into JavaScript.\n\n Install Node.js, and then the CoffeeScript compiler:\n sudo bin/cake install\n\n Or, if you have the Node Package Manager installed:\n npm install -g coffee-script\n (Leave off the -g if you don't wish to install globally.)\n\n Execute a script:\n coffee /path/to/script.coffee\n\n Compile a script:\n coffee -c /path/to/script.coffee\n\n For documentation, usage, and examples, see:\n http://coffeescript.org/\n\n To suggest a feature, report a bug, or general discussion:\n http://github.com/jashkenas/coffee-script/issues/\n\n If you'd like to chat, drop by #coffeescript on Freenode IRC,\n or on webchat.freenode.net.\n\n The source repository:\n git://github.com/jashkenas/coffee-script.git\n\n All contributors are listed here:\n http://github.com/jashkenas/coffee-script/contributors\n", - "_id": "coffee-script@1.3.3", - "dist": { - "shasum": "fdb03098caee97f22944d655e32204a58522fa9f" - }, - "_from": "coffee-script@1.x.x" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/README.markdown b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/README.markdown deleted file mode 100644 index 1326dc1836..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/README.markdown +++ /dev/null @@ -1,45 +0,0 @@ -commondir -========= - -Compute the closest common parent directory among an array of directories. - -example -======= - -dir ---- - - > var commondir = require('commondir'); - > commondir([ '/x/y/z', '/x/y', '/x/y/w/q' ]) - '/x/y' - -base ----- - - > var commondir = require('commondir') - > commondir('/foo/bar', [ '../baz', '../../foo/quux', './bizzy' ]) - '/foo' - -methods -======= - -var commondir = require('commondir'); - -commondir(absolutePaths) ------------------------- - -Compute the closest common parent directory for an array `absolutePaths`. - -commondir(basedir, relativePaths) ---------------------------------- - -Compute the closest common parent directory for an array `relativePaths` which -will be resolved for each `dir` in `relativePaths` according to: -`path.resolve(basedir, dir)`. - -installation -============ - -Using [npm](http://npmjs.org), just do: - - npm install commondir diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/example/base.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/example/base.js deleted file mode 100644 index 715e280c37..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/example/base.js +++ /dev/null @@ -1,3 +0,0 @@ -var commondir = require('commondir'); -var dir = commondir('/foo/bar', [ '../baz', '../../foo/quux', './bizzy' ]) -console.log(dir); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/example/dir.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/example/dir.js deleted file mode 100644 index 0a5e9cca88..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/example/dir.js +++ /dev/null @@ -1,3 +0,0 @@ -var commondir = require('commondir'); -var dir = commondir([ '/x/y/z', '/x/y', '/x/y/w/q' ]) -console.log(dir); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/index.js deleted file mode 100644 index fa77d0452a..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/index.js +++ /dev/null @@ -1,29 +0,0 @@ -var path = require('path'); - -module.exports = function (basedir, relfiles) { - if (relfiles) { - var files = relfiles.map(function (r) { - return path.resolve(basedir, r); - }); - } - else { - var files = basedir; - } - - var res = files.slice(1).reduce(function (ps, file) { - if (!file.match(/^([A-Za-z]:)?\/|\\/)) { - throw new Error('relative path without a basedir'); - } - - var xs = file.split(/\/+|\\+/); - for ( - var i = 0; - ps[i] === xs[i] && i < Math.min(ps.length, xs.length); - i++ - ); - return ps.slice(0, i); - }, files[0].split(/\/+|\\+/)); - - // Windows correctly handles paths with forward-slashes - return res.length > 1 ? res.join('/') : '/' -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/package.json deleted file mode 100644 index 682e62c4b2..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "commondir", - "version": "0.0.1", - "description": "Compute the closest common parent for file paths", - "main": "index.js", - "directories": { - "lib": ".", - "example": "example", - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "expresso": "0.7.x" - }, - "scripts": { - "test": "expresso" - }, - "repository": { - "type": "git", - "url": "http://github.com/substack/node-commondir.git" - }, - "keywords": [ - "common", - "path", - "directory", - "file", - "parent", - "root" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT/X11", - "engine": { - "node": ">=0.4" - }, - "readme": "commondir\n=========\n\nCompute the closest common parent directory among an array of directories.\n\nexample\n=======\n\ndir\n---\n\n > var commondir = require('commondir');\n > commondir([ '/x/y/z', '/x/y', '/x/y/w/q' ])\n '/x/y'\n\nbase\n----\n\n > var commondir = require('commondir')\n > commondir('/foo/bar', [ '../baz', '../../foo/quux', './bizzy' ])\n '/foo'\n\nmethods\n=======\n\nvar commondir = require('commondir');\n\ncommondir(absolutePaths)\n------------------------\n\nCompute the closest common parent directory for an array `absolutePaths`.\n\ncommondir(basedir, relativePaths)\n---------------------------------\n\nCompute the closest common parent directory for an array `relativePaths` which\nwill be resolved for each `dir` in `relativePaths` according to:\n`path.resolve(basedir, dir)`.\n\ninstallation\n============\n\nUsing [npm](http://npmjs.org), just do:\n\n npm install commondir\n", - "_id": "commondir@0.0.1", - "dist": { - "shasum": "ad76caa7f50e586c1208777ff38d774a52de90d0" - }, - "_from": "commondir@~0.0.1" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/test/dirs.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/test/dirs.js deleted file mode 100644 index 946026d1f3..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/test/dirs.js +++ /dev/null @@ -1,66 +0,0 @@ -var assert = require('assert'); -var commondir = require('../'); - -exports.common = function () { - assert.equal( - commondir([ '/foo', '//foo/bar', '/foo//bar/baz' ]), - '/foo' - ); - - assert.equal( - commondir([ '/a/b/c', '/a/b', '/a/b/c/d/e' ]), - '/a/b' - ); - - assert.equal( - commondir([ '/x/y/z/w', '/xy/z', '/x/y/z' ]), - '/' - ); - - assert.equal( - commondir([ 'X:\\foo', 'X:\\\\foo\\bar', 'X://foo/bar/baz' ]), - 'X:/foo' - ); - - assert.equal( - commondir([ 'X:\\a\\b\\c', 'X:\\a\\b', 'X:\\a\\b\\c\\d\\e' ]), - 'X:/a/b' - ); - - assert.equal( - commondir([ 'X:\\x\\y\\z\\w', '\\\\xy\\z', '\\x\\y\\z' ]), - '/' - ); - - assert.throws(function () { - assert.equal( - commondir([ '/x/y/z/w', 'qrs', '/x/y/z' ]), - '/' - ); - }); -}; - -exports.base = function () { - assert.equal( - commondir('/foo/bar', [ 'baz', './quux', '../bar/bazzy' ]), - '/foo/bar' - ); - - assert.equal( - commondir('/a/b', [ 'c', '../b/.', '../../a/b/e' ]), - '/a/b' - ); - - assert.equal( - commondir('/a/b/c', [ '..', '../d', '../../a/z/e' ]), - '/a' - ); - - assert.equal( - commondir('/foo/bar', [ 'baz', '.\\quux', '..\\bar\\bazzy' ]), - '/foo/bar' - ); - - // Tests including X:\ basedirs must wait until path.resolve supports - // Windows-style paths, starting in Node.js v0.5.X -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/example/bundle.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/example/bundle.js deleted file mode 100644 index 02698cc77c..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/example/bundle.js +++ /dev/null @@ -1,637 +0,0 @@ -var require = function (file, cwd) { - var resolved = require.resolve(file, cwd || '/'); - var mod = require.modules[resolved]; - if (!mod) throw new Error( - 'Failed to resolve module ' + file + ', tried ' + resolved - ); - var res = mod._cached ? mod._cached : mod(); - return res; -} - -require.paths = []; -require.modules = {}; -require.extensions = [".js",".coffee"]; - -require._core = { - 'assert': true, - 'events': true, - 'fs': true, - 'path': true, - 'vm': true -}; - -require.resolve = (function () { - return function (x, cwd) { - if (!cwd) cwd = '/'; - - if (require._core[x]) return x; - var path = require.modules.path(); - cwd = path.resolve('/', cwd); - var y = cwd || '/'; - - if (x.match(/^(?:\.\.?\/|\/)/)) { - var m = loadAsFileSync(path.resolve(y, x)) - || loadAsDirectorySync(path.resolve(y, x)); - if (m) return m; - } - - var n = loadNodeModulesSync(x, y); - if (n) return n; - - throw new Error("Cannot find module '" + x + "'"); - - function loadAsFileSync (x) { - if (require.modules[x]) { - return x; - } - - for (var i = 0; i < require.extensions.length; i++) { - var ext = require.extensions[i]; - if (require.modules[x + ext]) return x + ext; - } - } - - function loadAsDirectorySync (x) { - x = x.replace(/\/+$/, ''); - var pkgfile = x + '/package.json'; - if (require.modules[pkgfile]) { - var pkg = require.modules[pkgfile](); - var b = pkg.browserify; - if (typeof b === 'object' && b.main) { - var m = loadAsFileSync(path.resolve(x, b.main)); - if (m) return m; - } - else if (typeof b === 'string') { - var m = loadAsFileSync(path.resolve(x, b)); - if (m) return m; - } - else if (pkg.main) { - var m = loadAsFileSync(path.resolve(x, pkg.main)); - if (m) return m; - } - } - - return loadAsFileSync(x + '/index'); - } - - function loadNodeModulesSync (x, start) { - var dirs = nodeModulesPathsSync(start); - for (var i = 0; i < dirs.length; i++) { - var dir = dirs[i]; - var m = loadAsFileSync(dir + '/' + x); - if (m) return m; - var n = loadAsDirectorySync(dir + '/' + x); - if (n) return n; - } - - var m = loadAsFileSync(x); - if (m) return m; - } - - function nodeModulesPathsSync (start) { - var parts; - if (start === '/') parts = [ '' ]; - else parts = path.normalize(start).split('/'); - - var dirs = []; - for (var i = parts.length - 1; i >= 0; i--) { - if (parts[i] === 'node_modules') continue; - var dir = parts.slice(0, i + 1).join('/') + '/node_modules'; - dirs.push(dir); - } - - return dirs; - } - }; -})(); - -require.alias = function (from, to) { - var path = require.modules.path(); - var res = null; - try { - res = require.resolve(from + '/package.json', '/'); - } - catch (err) { - res = require.resolve(from, '/'); - } - var basedir = path.dirname(res); - - var keys = (Object.keys || function (obj) { - var res = []; - for (var key in obj) res.push(key) - return res; - })(require.modules); - - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (key.slice(0, basedir.length + 1) === basedir + '/') { - var f = key.slice(basedir.length); - require.modules[to + f] = require.modules[basedir + f]; - } - else if (key === basedir) { - require.modules[to] = require.modules[basedir]; - } - } -}; - -require.define = function (filename, fn) { - var dirname = require._core[filename] - ? '' - : require.modules.path().dirname(filename) - ; - - var require_ = function (file) { - return require(file, dirname) - }; - require_.resolve = function (name) { - return require.resolve(name, dirname); - }; - require_.modules = require.modules; - require_.define = require.define; - var module_ = { exports : {} }; - - require.modules[filename] = function () { - require.modules[filename]._cached = module_.exports; - fn.call( - module_.exports, - require_, - module_, - module_.exports, - dirname, - filename - ); - require.modules[filename]._cached = module_.exports; - return module_.exports; - }; -}; - -if (typeof process === 'undefined') process = {}; - -if (!process.nextTick) process.nextTick = (function () { - var queue = []; - var canPost = typeof window !== 'undefined' - && window.postMessage && window.addEventListener - ; - - if (canPost) { - window.addEventListener('message', function (ev) { - if (ev.source === window && ev.data === 'browserify-tick') { - ev.stopPropagation(); - if (queue.length > 0) { - var fn = queue.shift(); - fn(); - } - } - }, true); - } - - return function (fn) { - if (canPost) { - queue.push(fn); - window.postMessage('browserify-tick', '*'); - } - else setTimeout(fn, 0); - }; -})(); - -if (!process.title) process.title = 'browser'; - -if (!process.binding) process.binding = function (name) { - if (name === 'evals') return require('vm') - else throw new Error('No such module') -}; - -if (!process.cwd) process.cwd = function () { return '.' }; - -if (!process.env) process.env = {}; -if (!process.argv) process.argv = []; - -require.define("path", function (require, module, exports, __dirname, __filename) { -function filter (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - if (fn(xs[i], i, xs)) res.push(xs[i]); - } - return res; -} - -// resolves . and .. elements in a path array with directory names there -// must be no slashes, empty elements, or device names (c:\) in the array -// (so also no leading and trailing slashes - it does not distinguish -// relative and absolute paths) -function normalizeArray(parts, allowAboveRoot) { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length; 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; -} - -// Regex to split a filename into [*, dir, basename, ext] -// posix version -var splitPathRe = /^(.+\/(?!$)|\/)?((?:.+?)?(\.[^.]*)?)$/; - -// path.resolve([from ...], to) -// posix version -exports.resolve = function() { -var resolvedPath = '', - resolvedAbsolute = false; - -for (var i = arguments.length; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) - ? arguments[i] - : process.cwd(); - - // Skip empty and invalid entries - if (typeof path !== 'string' || !path) { - continue; - } - - 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) - -// Normalize the path -resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { - return !!p; - }), !resolvedAbsolute).join('/'); - - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; -}; - -// path.normalize(path) -// posix version -exports.normalize = function(path) { -var isAbsolute = path.charAt(0) === '/', - trailingSlash = path.slice(-1) === '/'; - -// Normalize the path -path = normalizeArray(filter(path.split('/'), function(p) { - return !!p; - }), !isAbsolute).join('/'); - - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - - return (isAbsolute ? '/' : '') + path; -}; - - -// posix version -exports.join = function() { - var paths = Array.prototype.slice.call(arguments, 0); - return exports.normalize(filter(paths, function(p, index) { - return p && typeof p === 'string'; - }).join('/')); -}; - - -exports.dirname = function(path) { - var dir = splitPathRe.exec(path)[1] || ''; - var isWindows = false; - if (!dir) { - // No dirname - return '.'; - } else if (dir.length === 1 || - (isWindows && dir.length <= 3 && dir.charAt(1) === ':')) { - // It is just a slash or a drive letter with a slash - return dir; - } else { - // It is a full dirname, strip trailing slash - return dir.substring(0, dir.length - 1); - } -}; - - -exports.basename = function(path, ext) { - var f = splitPathRe.exec(path)[2] || ''; - // TODO: make this comparison case-insensitive on windows? - if (ext && f.substr(-1 * ext.length) === ext) { - f = f.substr(0, f.length - ext.length); - } - return f; -}; - - -exports.extname = function(path) { - return splitPathRe.exec(path)[3] || ''; -}; - -}); - -require.define("crypto", function (require, module, exports, __dirname, __filename) { -module.exports = require("crypto-browserify") -}); - -require.define("/node_modules/crypto-browserify/package.json", function (require, module, exports, __dirname, __filename) { -module.exports = {} -}); - -require.define("/node_modules/crypto-browserify/index.js", function (require, module, exports, __dirname, __filename) { -var sha = require('./sha') - -var algorithms = { - sha1: { - hex: sha.hex_sha1, - binary: sha.b64_sha1, - ascii: sha.str_sha1 - } -} - -function error () { - var m = [].slice.call(arguments).join(' ') - throw new Error([ - m, - 'we accept pull requests', - 'http://github.com/dominictarr/crypto-browserify' - ].join('\n')) -} - -exports.createHash = function (alg) { - alg = alg || 'sha1' - if(!algorithms[alg]) - error('algorithm:', alg, 'is not yet supported') - var s = '' - _alg = algorithms[alg] - return { - update: function (data) { - s += data - return this - }, - digest: function (enc) { - enc = enc || 'binary' - var fn - if(!(fn = _alg[enc])) - error('encoding:', enc , 'is not yet supported for algorithm', alg) - var r = fn(s) - s = null //not meant to use the hash after you've called digest. - return r - } - } -} -// the least I can do is make error messages for the rest of the node.js/crypto api. -;['createCredentials' -, 'createHmac' -, 'createCypher' -, 'createCypheriv' -, 'createDecipher' -, 'createDecipheriv' -, 'createSign' -, 'createVerify' -, 'createDeffieHellman', -, 'pbkdf2', -, 'randomBytes' ].forEach(function (name) { - exports[name] = function () { - error('sorry,', name, 'is not implemented yet') - } -}) - -}); - -require.define("/node_modules/crypto-browserify/sha.js", function (require, module, exports, __dirname, __filename) { -/* - * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined - * in FIPS PUB 180-1 - * Version 2.1a Copyright Paul Johnston 2000 - 2002. - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for details. - */ - -exports.hex_sha1 = hex_sha1; -exports.b64_sha1 = b64_sha1; -exports.str_sha1 = str_sha1; -exports.hex_hmac_sha1 = hex_hmac_sha1; -exports.b64_hmac_sha1 = b64_hmac_sha1; -exports.str_hmac_sha1 = str_hmac_sha1; - -/* - * Configurable variables. You may need to tweak these to be compatible with - * the server-side, but the defaults work in most cases. - */ -var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ -var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ -var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ - -/* - * These are the functions you'll usually want to call - * They take string arguments and return either hex or base-64 encoded strings - */ -function hex_sha1(s){return binb2hex(core_sha1(str2binb(s),s.length * chrsz));} -function b64_sha1(s){return binb2b64(core_sha1(str2binb(s),s.length * chrsz));} -function str_sha1(s){return binb2str(core_sha1(str2binb(s),s.length * chrsz));} -function hex_hmac_sha1(key, data){ return binb2hex(core_hmac_sha1(key, data));} -function b64_hmac_sha1(key, data){ return binb2b64(core_hmac_sha1(key, data));} -function str_hmac_sha1(key, data){ return binb2str(core_hmac_sha1(key, data));} - -/* - * Perform a simple self-test to see if the VM is working - */ -function sha1_vm_test() -{ - return hex_sha1("abc") == "a9993e364706816aba3e25717850c26c9cd0d89d"; -} - -/* - * Calculate the SHA-1 of an array of big-endian words, and a bit length - */ -function core_sha1(x, len) -{ - /* append padding */ - x[len >> 5] |= 0x80 << (24 - len % 32); - x[((len + 64 >> 9) << 4) + 15] = len; - - var w = Array(80); - var a = 1732584193; - var b = -271733879; - var c = -1732584194; - var d = 271733878; - var e = -1009589776; - - for(var i = 0; i < x.length; i += 16) - { - var olda = a; - var oldb = b; - var oldc = c; - var oldd = d; - var olde = e; - - for(var j = 0; j < 80; j++) - { - if(j < 16) w[j] = x[i + j]; - else w[j] = rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1); - var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)), - safe_add(safe_add(e, w[j]), sha1_kt(j))); - e = d; - d = c; - c = rol(b, 30); - b = a; - a = t; - } - - a = safe_add(a, olda); - b = safe_add(b, oldb); - c = safe_add(c, oldc); - d = safe_add(d, oldd); - e = safe_add(e, olde); - } - return Array(a, b, c, d, e); - -} - -/* - * Perform the appropriate triplet combination function for the current - * iteration - */ -function sha1_ft(t, b, c, d) -{ - if(t < 20) return (b & c) | ((~b) & d); - if(t < 40) return b ^ c ^ d; - if(t < 60) return (b & c) | (b & d) | (c & d); - return b ^ c ^ d; -} - -/* - * Determine the appropriate additive constant for the current iteration - */ -function sha1_kt(t) -{ - return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : - (t < 60) ? -1894007588 : -899497514; -} - -/* - * Calculate the HMAC-SHA1 of a key and some data - */ -function core_hmac_sha1(key, data) -{ - var bkey = str2binb(key); - if(bkey.length > 16) bkey = core_sha1(bkey, key.length * chrsz); - - var ipad = Array(16), opad = Array(16); - for(var i = 0; i < 16; i++) - { - ipad[i] = bkey[i] ^ 0x36363636; - opad[i] = bkey[i] ^ 0x5C5C5C5C; - } - - var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * chrsz); - return core_sha1(opad.concat(hash), 512 + 160); -} - -/* - * Add integers, wrapping at 2^32. This uses 16-bit operations internally - * to work around bugs in some JS interpreters. - */ -function safe_add(x, y) -{ - var lsw = (x & 0xFFFF) + (y & 0xFFFF); - var msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return (msw << 16) | (lsw & 0xFFFF); -} - -/* - * Bitwise rotate a 32-bit number to the left. - */ -function rol(num, cnt) -{ - return (num << cnt) | (num >>> (32 - cnt)); -} - -/* - * Convert an 8-bit or 16-bit string to an array of big-endian words - * In 8-bit function, characters >255 have their hi-byte silently ignored. - */ -function str2binb(str) -{ - var bin = Array(); - var mask = (1 << chrsz) - 1; - for(var i = 0; i < str.length * chrsz; i += chrsz) - bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (32 - chrsz - i%32); - return bin; -} - -/* - * Convert an array of big-endian words to a string - */ -function binb2str(bin) -{ - var str = ""; - var mask = (1 << chrsz) - 1; - for(var i = 0; i < bin.length * 32; i += chrsz) - str += String.fromCharCode((bin[i>>5] >>> (32 - chrsz - i%32)) & mask); - return str; -} - -/* - * Convert an array of big-endian words to a hex string. - */ -function binb2hex(binarray) -{ - var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; - var str = ""; - for(var i = 0; i < binarray.length * 4; i++) - { - str += hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) + - hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8 )) & 0xF); - } - return str; -} - -/* - * Convert an array of big-endian words to a base-64 string - */ -function binb2b64(binarray) -{ - var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - var str = ""; - for(var i = 0; i < binarray.length * 4; i += 3) - { - var triplet = (((binarray[i >> 2] >> 8 * (3 - i %4)) & 0xFF) << 16) - | (((binarray[i+1 >> 2] >> 8 * (3 - (i+1)%4)) & 0xFF) << 8 ) - | ((binarray[i+2 >> 2] >> 8 * (3 - (i+2)%4)) & 0xFF); - for(var j = 0; j < 4; j++) - { - if(i * 8 + j * 6 > binarray.length * 32) str += b64pad; - else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F); - } - } - return str; -} - - -}); - -require.define("/test.js", function (require, module, exports, __dirname, __filename) { - var crypto = require('crypto') -var abc = crypto.createHash('sha1').update('abc').digest('hex') -console.log(abc) -//require('hello').inlineCall().call2() - -}); -require("/test.js"); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/example/index.html b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/example/index.html deleted file mode 100644 index 9d55c6d733..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/example/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - -
-  require('crypto').createHash('sha1').update('abc').digest('hex') == ''
-  
- - - diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/example/test.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/example/test.js deleted file mode 100644 index f1b0e4a9fc..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/example/test.js +++ /dev/null @@ -1,4 +0,0 @@ -var crypto = require('crypto') -var abc = crypto.createHash('sha1').update('abc').digest('hex') -console.log(abc) -//require('hello').inlineCall().call2() diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/index.js deleted file mode 100644 index c1a77ad34e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/index.js +++ /dev/null @@ -1,68 +0,0 @@ -var sha = require('./sha') -var rng = require('./rng') - -var algorithms = { - sha1: { - hex: sha.hex_sha1, - binary: sha.b64_sha1, - ascii: sha.str_sha1 - } -} - -function error () { - var m = [].slice.call(arguments).join(' ') - throw new Error([ - m, - 'we accept pull requests', - 'http://github.com/dominictarr/crypto-browserify' - ].join('\n')) -} - -exports.createHash = function (alg) { - alg = alg || 'sha1' - if(!algorithms[alg]) - error('algorithm:', alg, 'is not yet supported') - var s = '' - _alg = algorithms[alg] - return { - update: function (data) { - s += data - return this - }, - digest: function (enc) { - enc = enc || 'binary' - var fn - if(!(fn = _alg[enc])) - error('encoding:', enc , 'is not yet supported for algorithm', alg) - var r = fn(s) - s = null //not meant to use the hash after you've called digest. - return r - } - } -} - -exports.randomBytes = function(size, callback) { - if (callback && callback.call) { - try { - callback.call(this, undefined, rng(size)); - } catch (err) { callback(err); } - } else { - return rng(size); - } -} - -// the least I can do is make error messages for the rest of the node.js/crypto api. -;['createCredentials' -, 'createHmac' -, 'createCypher' -, 'createCypheriv' -, 'createDecipher' -, 'createDecipheriv' -, 'createSign' -, 'createVerify' -, 'createDeffieHellman' -, 'pbkdf2'].forEach(function (name) { - exports[name] = function () { - error('sorry,', name, 'is not implemented yet') - } -}) diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/package.json deleted file mode 100644 index 19938b60fd..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "author": { - "name": "Dominic Tarr", - "email": "dominic.tarr@gmail.com", - "url": "dominictarr.com" - }, - "name": "crypto-browserify", - "description": "partial implementation of crypto for the browser", - "version": "0.1.0", - "homepage": "https://github.com/dominictarr/crypto-browserify", - "repository": { - "url": "" - }, - "scripts": { - "test": "node test/simple.js" - }, - "engines": { - "node": "*" - }, - "dependencies": {}, - "devDependencies": {}, - "optionalDependencies": {}, - "_id": "crypto-browserify@0.1.0", - "dist": { - "shasum": "62d7228ac44163a95b42e2bdf92494a42993a6a4" - }, - "_from": "crypto-browserify@~0" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/readme.markdown b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/readme.markdown deleted file mode 100644 index 2234c531f3..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/readme.markdown +++ /dev/null @@ -1,14 +0,0 @@ -# crypto-browserify - -A (partial) port of `crypto` to the browser. - -Basically, I found some crypto implemented in JS lieing on the internet somewhere -and wrapped it in the part of the `crypto` api that I am currently using. - -In a way that will be compatible with [browserify](https://github.com/substack/node-browserify/). - -I will extend this if I need more features, or if anyone else wants to extend this, -I will add you as a maintainer. - -Provided that you agree that it should replicate the [node.js/crypto](http://nodejs.org/api/crypto.html) api exactly, of course. - diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/rng.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/rng.js deleted file mode 100644 index 2160788a15..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/rng.js +++ /dev/null @@ -1,37 +0,0 @@ -// Original code adapted from Robert Kieffer. -// details at https://github.com/broofa/node-uuid -(function() { - var _global = this; - - var mathRNG, whatwgRNG; - - // NOTE: Math.random() does not guarantee "cryptographic quality" - mathRNG = function(size) { - var bytes = new Array(size); - var r; - - for (var i = 0, r; i < size; i++) { - if ((i & 0x03) == 0) r = Math.random() * 0x100000000; - bytes[i] = r >>> ((i & 0x03) << 3) & 0xff; - } - - return bytes; - } - - // currently only available in webkit-based browsers. - if (_global.crypto && crypto.getRandomValues) { - var _rnds = new Uint32Array(4); - whatwgRNG = function(size) { - var bytes = new Array(size); - crypto.getRandomValues(_rnds); - - for (var c = 0 ; c < size; c++) { - bytes[c] = _rnds[c >> 2] >>> ((c & 0x03) * 8) & 0xff; - } - return bytes; - } - } - - module.exports = whatwgRNG || mathRNG; - -}()) \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/sha.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/sha.js deleted file mode 100644 index 4f9cc3e97a..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/sha.js +++ /dev/null @@ -1,210 +0,0 @@ -/* - * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined - * in FIPS PUB 180-1 - * Version 2.1a Copyright Paul Johnston 2000 - 2002. - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for details. - */ - -exports.hex_sha1 = hex_sha1; -exports.b64_sha1 = b64_sha1; -exports.str_sha1 = str_sha1; -exports.hex_hmac_sha1 = hex_hmac_sha1; -exports.b64_hmac_sha1 = b64_hmac_sha1; -exports.str_hmac_sha1 = str_hmac_sha1; - -/* - * Configurable variables. You may need to tweak these to be compatible with - * the server-side, but the defaults work in most cases. - */ -var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ -var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ -var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ - -/* - * These are the functions you'll usually want to call - * They take string arguments and return either hex or base-64 encoded strings - */ -function hex_sha1(s){return binb2hex(core_sha1(str2binb(s),s.length * chrsz));} -function b64_sha1(s){return binb2b64(core_sha1(str2binb(s),s.length * chrsz));} -function str_sha1(s){return binb2str(core_sha1(str2binb(s),s.length * chrsz));} -function hex_hmac_sha1(key, data){ return binb2hex(core_hmac_sha1(key, data));} -function b64_hmac_sha1(key, data){ return binb2b64(core_hmac_sha1(key, data));} -function str_hmac_sha1(key, data){ return binb2str(core_hmac_sha1(key, data));} - -/* - * Perform a simple self-test to see if the VM is working - */ -function sha1_vm_test() -{ - return hex_sha1("abc") == "a9993e364706816aba3e25717850c26c9cd0d89d"; -} - -/* - * Calculate the SHA-1 of an array of big-endian words, and a bit length - */ -function core_sha1(x, len) -{ - /* append padding */ - x[len >> 5] |= 0x80 << (24 - len % 32); - x[((len + 64 >> 9) << 4) + 15] = len; - - var w = Array(80); - var a = 1732584193; - var b = -271733879; - var c = -1732584194; - var d = 271733878; - var e = -1009589776; - - for(var i = 0; i < x.length; i += 16) - { - var olda = a; - var oldb = b; - var oldc = c; - var oldd = d; - var olde = e; - - for(var j = 0; j < 80; j++) - { - if(j < 16) w[j] = x[i + j]; - else w[j] = rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1); - var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)), - safe_add(safe_add(e, w[j]), sha1_kt(j))); - e = d; - d = c; - c = rol(b, 30); - b = a; - a = t; - } - - a = safe_add(a, olda); - b = safe_add(b, oldb); - c = safe_add(c, oldc); - d = safe_add(d, oldd); - e = safe_add(e, olde); - } - return Array(a, b, c, d, e); - -} - -/* - * Perform the appropriate triplet combination function for the current - * iteration - */ -function sha1_ft(t, b, c, d) -{ - if(t < 20) return (b & c) | ((~b) & d); - if(t < 40) return b ^ c ^ d; - if(t < 60) return (b & c) | (b & d) | (c & d); - return b ^ c ^ d; -} - -/* - * Determine the appropriate additive constant for the current iteration - */ -function sha1_kt(t) -{ - return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : - (t < 60) ? -1894007588 : -899497514; -} - -/* - * Calculate the HMAC-SHA1 of a key and some data - */ -function core_hmac_sha1(key, data) -{ - var bkey = str2binb(key); - if(bkey.length > 16) bkey = core_sha1(bkey, key.length * chrsz); - - var ipad = Array(16), opad = Array(16); - for(var i = 0; i < 16; i++) - { - ipad[i] = bkey[i] ^ 0x36363636; - opad[i] = bkey[i] ^ 0x5C5C5C5C; - } - - var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * chrsz); - return core_sha1(opad.concat(hash), 512 + 160); -} - -/* - * Add integers, wrapping at 2^32. This uses 16-bit operations internally - * to work around bugs in some JS interpreters. - */ -function safe_add(x, y) -{ - var lsw = (x & 0xFFFF) + (y & 0xFFFF); - var msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return (msw << 16) | (lsw & 0xFFFF); -} - -/* - * Bitwise rotate a 32-bit number to the left. - */ -function rol(num, cnt) -{ - return (num << cnt) | (num >>> (32 - cnt)); -} - -/* - * Convert an 8-bit or 16-bit string to an array of big-endian words - * In 8-bit function, characters >255 have their hi-byte silently ignored. - */ -function str2binb(str) -{ - var bin = Array(); - var mask = (1 << chrsz) - 1; - for(var i = 0; i < str.length * chrsz; i += chrsz) - bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (32 - chrsz - i%32); - return bin; -} - -/* - * Convert an array of big-endian words to a string - */ -function binb2str(bin) -{ - var str = ""; - var mask = (1 << chrsz) - 1; - for(var i = 0; i < bin.length * 32; i += chrsz) - str += String.fromCharCode((bin[i>>5] >>> (32 - chrsz - i%32)) & mask); - return str; -} - -/* - * Convert an array of big-endian words to a hex string. - */ -function binb2hex(binarray) -{ - var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; - var str = ""; - for(var i = 0; i < binarray.length * 4; i++) - { - str += hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) + - hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8 )) & 0xF); - } - return str; -} - -/* - * Convert an array of big-endian words to a base-64 string - */ -function binb2b64(binarray) -{ - var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - var str = ""; - for(var i = 0; i < binarray.length * 4; i += 3) - { - var triplet = (((binarray[i >> 2] >> 8 * (3 - i %4)) & 0xFF) << 16) - | (((binarray[i+1 >> 2] >> 8 * (3 - (i+1)%4)) & 0xFF) << 8 ) - | ((binarray[i+2 >> 2] >> 8 * (3 - (i+2)%4)) & 0xFF); - for(var j = 0; j < 4; j++) - { - if(i * 8 + j * 6 > binarray.length * 32) str += b64pad; - else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F); - } - } - return str; -} - diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/test/simple.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/test/simple.js deleted file mode 100644 index 2b0b994c95..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/test/simple.js +++ /dev/null @@ -1,25 +0,0 @@ -var crypto = require('crypto') -var cryptoB = require('../') -var assert = require('assert') - - -function assertSame (fn) { - fn(crypto, function (err, expected) { - fn(cryptoB, function (err, actual) { - assert.equal(actual, expected) - }) - }) -} - -assertSame(function (crypto, cb) { - cb(null, crypto.createHash('sha1').update('hello', 'utf-8').digest('hex')) -}) - -assert.equal(cryptoB.randomBytes(10).length, 10) - -cryptoB.randomBytes(10, function(ex, bytes) { - assert.ifError(ex) - bytes.forEach(function(bite) { - assert.equal(typeof bite, 'number') - }); -}) \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/.travis.yml b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/.travis.yml deleted file mode 100644 index f1d0f13c8a..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.4 - - 0.6 diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/README.markdown b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/README.markdown deleted file mode 100644 index 72ca69f850..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/README.markdown +++ /dev/null @@ -1,55 +0,0 @@ -deputy -====== - -This module is a caching layer around -[node-detective](http://github.com/substack/node-detective). - -[![build status](https://secure.travis-ci.org/substack/node-deputy.png)](http://travis-ci.org/substack/node-deputy) - -example -======= - -cache.js --------- - -``` js -var deputy = require('deputy'); -var detective = deputy(process.env.HOME + '/.config/deputy.json'); - -var deps = detective.find('require("a"); require("b")'); -console.dir(deps); -``` - -output: - -``` -$ node cache.js -{ strings: [ 'a', 'b' ], expressions: [] } -$ cat ~/.config/deputy.json -{"55952d490bd28e3e256f0b036ced834d":{"strings":["a","b"],"expressions":[]}} -``` - -methods -======= - -``` js -var deputy = require('deputy') -``` - -var detective = deputy(cacheFile) ---------------------------------- - -Return a new [detective](http://github.com/substack/node-detective) -object using `cacheFile` for caching. - -install -======= - -With [npm](http://npmjs.org) do: - - npm install deputy - -license -======= - -MIT/X11 diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/example/cache.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/example/cache.js deleted file mode 100644 index 8016b04b4b..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/example/cache.js +++ /dev/null @@ -1,5 +0,0 @@ -var deputy = require('deputy'); -var detective = deputy(process.env.HOME + '/.config/deputy.json'); - -var deps = detective.find('require("a"); require("b")'); -console.dir(deps); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/index.js deleted file mode 100644 index 5dd71bb779..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/index.js +++ /dev/null @@ -1,45 +0,0 @@ -var fs = require('fs'); -var path = require('path'); -var crypto = require('crypto'); - -var mkdirp = require('mkdirp'); -var detective = require('detective'); - -module.exports = function (cacheFile) { - mkdirp.sync(path.dirname(cacheFile), 0700); - - var cache = {}; - if (path.existsSync(cacheFile)) { - var body = fs.readFileSync(cacheFile); - try { - cache = JSON.parse(body); - } - catch (err) {} - } - - function save (h, res) { - cache[h] = res; - fs.writeFileSync(cacheFile, JSON.stringify(cache)); - } - - function hash (src) { - return new crypto.Hash('md5').update(src).digest('hex'); - } - - var deputy = function (src) { - return deputy.find(src).strings; - }; - - deputy.find = function (src) { - var h = hash(src); - var c = cache[h]; - if (c) return c; - else { - c = detective.find(src); - save(h, c); - return c; - } - }; - - return deputy; -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/.gitignore.orig b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/.gitignore.orig deleted file mode 100644 index 9303c347ee..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/.gitignore.orig +++ /dev/null @@ -1,2 +0,0 @@ -node_modules/ -npm-debug.log \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/.gitignore.rej b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/.gitignore.rej deleted file mode 100644 index 69244ff877..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/.gitignore.rej +++ /dev/null @@ -1,5 +0,0 @@ ---- /dev/null -+++ .gitignore -@@ -0,0 +1,2 @@ -+node_modules/ -+npm-debug.log \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/.npmignore b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/.npmignore deleted file mode 100644 index 9303c347ee..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules/ -npm-debug.log \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/.travis.yml b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/.travis.yml deleted file mode 100644 index f1d0f13c8a..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.4 - - 0.6 diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/LICENSE b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/LICENSE deleted file mode 100644 index 432d1aeb01..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright 2010 James Halliday (mail@substack.net) - -This project is free software released under the MIT/X11 license: - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/README.markdown b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/README.markdown deleted file mode 100644 index 40de04f71e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/README.markdown +++ /dev/null @@ -1,61 +0,0 @@ -mkdirp -====== - -Like `mkdir -p`, but in node.js! - -[![build status](https://secure.travis-ci.org/substack/node-mkdirp.png)](http://travis-ci.org/substack/node-mkdirp) - -example -======= - -pow.js ------- - var mkdirp = require('mkdirp'); - - mkdirp('/tmp/foo/bar/baz', function (err) { - if (err) console.error(err) - else console.log('pow!') - }); - -Output - pow! - -And now /tmp/foo/bar/baz exists, huzzah! - -methods -======= - -var mkdirp = require('mkdirp'); - -mkdirp(dir, mode, cb) ---------------------- - -Create a new directory and any necessary subdirectories at `dir` with octal -permission string `mode`. - -If `mode` isn't specified, it defaults to `0777 & (~process.umask())`. - -`cb(err, made)` fires with the error or the first directory `made` -that had to be created, if any. - -mkdirp.sync(dir, mode) ----------------------- - -Synchronously create a new directory and any necessary subdirectories at `dir` -with octal permission string `mode`. - -If `mode` isn't specified, it defaults to `0777 & (~process.umask())`. - -Returns the first directory that had to be created, if any. - -install -======= - -With [npm](http://npmjs.org) do: - - npm install mkdirp - -license -======= - -MIT/X11 diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/examples/pow.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/examples/pow.js deleted file mode 100644 index e6924212e6..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/examples/pow.js +++ /dev/null @@ -1,6 +0,0 @@ -var mkdirp = require('mkdirp'); - -mkdirp('/tmp/foo/bar/baz', function (err) { - if (err) console.error(err) - else console.log('pow!') -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/examples/pow.js.orig b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/examples/pow.js.orig deleted file mode 100644 index 7741462212..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/examples/pow.js.orig +++ /dev/null @@ -1,6 +0,0 @@ -var mkdirp = require('mkdirp'); - -mkdirp('/tmp/foo/bar/baz', 0755, function (err) { - if (err) console.error(err) - else console.log('pow!') -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/examples/pow.js.rej b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/examples/pow.js.rej deleted file mode 100644 index 81e7f43115..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/examples/pow.js.rej +++ /dev/null @@ -1,19 +0,0 @@ ---- examples/pow.js -+++ examples/pow.js -@@ -1,6 +1,15 @@ --var mkdirp = require('mkdirp').mkdirp; -+var mkdirp = require('../').mkdirp, -+ mkdirpSync = require('../').mkdirpSync; - - mkdirp('/tmp/foo/bar/baz', 0755, function (err) { - if (err) console.error(err) - else console.log('pow!') - }); -+ -+try { -+ mkdirpSync('/tmp/bar/foo/baz', 0755); -+ console.log('double pow!'); -+} -+catch (ex) { -+ console.log(ex); -+} \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/index.js deleted file mode 100644 index 874b31095a..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/index.js +++ /dev/null @@ -1,94 +0,0 @@ -var path = require('path'); -var fs = require('fs'); - -module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP; - -function mkdirP (p, mode, f, made) { - if (typeof mode === 'function' || mode === undefined) { - f = mode; - mode = 0777 & (~process.umask()); - } - if (!made) made = null; - - var cb = f || function () {}; - if (typeof mode === 'string') mode = parseInt(mode, 8); - p = path.resolve(p); - - fs.mkdir(p, mode, function (er) { - if (!er) { - made = made || p; - return cb(null, made); - } - switch (er.code) { - case 'ENOENT': - mkdirP(path.dirname(p), mode, function (er, made) { - if (er) cb(er, made); - else mkdirP(p, mode, cb, made); - }); - break; - - case 'EISDIR': - case 'EPERM': - // Operation not permitted or already is a dir. - // This is the error you get when trying to mkdir('c:/') - // on windows, or mkdir('/') on unix. Make sure it's a - // dir by falling through to the EEXIST case. - case 'EROFS': - // a read-only file system. - // However, the dir could already exist, in which case - // the EROFS error will be obscuring a EEXIST! - // Fallthrough to that case. - case 'EEXIST': - fs.stat(p, function (er2, stat) { - // if the stat fails, then that's super weird. - // let the original error be the failure reason. - if (er2 || !stat.isDirectory()) cb(er, made) - else cb(null, made); - }); - break; - - default: - cb(er, made); - break; - } - }); -} - -mkdirP.sync = function sync (p, mode, made) { - if (mode === undefined) { - mode = 0777 & (~process.umask()); - } - if (!made) made = null; - - if (typeof mode === 'string') mode = parseInt(mode, 8); - p = path.resolve(p); - - try { - fs.mkdirSync(p, mode); - made = made || p; - } - catch (err0) { - switch (err0.code) { - case 'ENOENT' : - made = sync(path.dirname(p), mode, made); - sync(p, mode, made); - break; - - case 'EEXIST' : - var stat; - try { - stat = fs.statSync(p); - } - catch (err1) { - throw err0; - } - if (!stat.isDirectory()) throw err0; - break; - default : - throw err0 - break; - } - } - - return made; -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/package.json deleted file mode 100644 index 68dca958f5..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "mkdirp", - "description": "Recursively mkdir, like `mkdir -p`", - "version": "0.3.3", - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "main": "./index", - "keywords": [ - "mkdir", - "directory" - ], - "repository": { - "type": "git", - "url": "http://github.com/substack/node-mkdirp.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "devDependencies": { - "tap": "~0.2.4" - }, - "license": "MIT/X11", - "engines": { - "node": "*" - }, - "readme": "mkdirp\n======\n\nLike `mkdir -p`, but in node.js!\n\n[![build status](https://secure.travis-ci.org/substack/node-mkdirp.png)](http://travis-ci.org/substack/node-mkdirp)\n\nexample\n=======\n\npow.js\n------\n var mkdirp = require('mkdirp');\n \n mkdirp('/tmp/foo/bar/baz', function (err) {\n if (err) console.error(err)\n else console.log('pow!')\n });\n\nOutput\n pow!\n\nAnd now /tmp/foo/bar/baz exists, huzzah!\n\nmethods\n=======\n\nvar mkdirp = require('mkdirp');\n\nmkdirp(dir, mode, cb)\n---------------------\n\nCreate a new directory and any necessary subdirectories at `dir` with octal\npermission string `mode`.\n\nIf `mode` isn't specified, it defaults to `0777 & (~process.umask())`.\n\n`cb(err, made)` fires with the error or the first directory `made`\nthat had to be created, if any.\n\nmkdirp.sync(dir, mode)\n----------------------\n\nSynchronously create a new directory and any necessary subdirectories at `dir`\nwith octal permission string `mode`.\n\nIf `mode` isn't specified, it defaults to `0777 & (~process.umask())`.\n\nReturns the first directory that had to be created, if any.\n\ninstall\n=======\n\nWith [npm](http://npmjs.org) do:\n\n npm install mkdirp\n\nlicense\n=======\n\nMIT/X11\n", - "_id": "mkdirp@0.3.3", - "_from": "mkdirp@~0.3.3" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/chmod.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/chmod.js deleted file mode 100644 index 520dcb8e9b..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/chmod.js +++ /dev/null @@ -1,38 +0,0 @@ -var mkdirp = require('../').mkdirp; -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; - -var ps = [ '', 'tmp' ]; - -for (var i = 0; i < 25; i++) { - var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - ps.push(dir); -} - -var file = ps.join('/'); - -test('chmod-pre', function (t) { - var mode = 0744 - mkdirp(file, mode, function (er) { - t.ifError(er, 'should not error'); - fs.stat(file, function (er, stat) { - t.ifError(er, 'should exist'); - t.ok(stat && stat.isDirectory(), 'should be directory'); - t.equal(stat && stat.mode & 0777, mode, 'should be 0744'); - t.end(); - }); - }); -}); - -test('chmod', function (t) { - var mode = 0755 - mkdirp(file, mode, function (er) { - t.ifError(er, 'should not error'); - fs.stat(file, function (er, stat) { - t.ifError(er, 'should exist'); - t.ok(stat && stat.isDirectory(), 'should be directory'); - t.end(); - }); - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/clobber.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/clobber.js deleted file mode 100644 index 0eb7099870..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/clobber.js +++ /dev/null @@ -1,37 +0,0 @@ -var mkdirp = require('../').mkdirp; -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; - -var ps = [ '', 'tmp' ]; - -for (var i = 0; i < 25; i++) { - var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - ps.push(dir); -} - -var file = ps.join('/'); - -// a file in the way -var itw = ps.slice(0, 3).join('/'); - - -test('clobber-pre', function (t) { - console.error("about to write to "+itw) - fs.writeFileSync(itw, 'I AM IN THE WAY, THE TRUTH, AND THE LIGHT.'); - - fs.stat(itw, function (er, stat) { - t.ifError(er) - t.ok(stat && stat.isFile(), 'should be file') - t.end() - }) -}) - -test('clobber', function (t) { - t.plan(2); - mkdirp(file, 0755, function (err) { - t.ok(err); - t.equal(err.code, 'ENOTDIR'); - t.end(); - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/mkdirp.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/mkdirp.js deleted file mode 100644 index b07cd70c10..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/mkdirp.js +++ /dev/null @@ -1,28 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; - -test('woo', function (t) { - t.plan(2); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - mkdirp(file, 0755, function (err) { - if (err) t.fail(err); - else path.exists(file, function (ex) { - if (!ex) t.fail('file not created') - else fs.stat(file, function (err, stat) { - if (err) t.fail(err) - else { - t.equal(stat.mode & 0777, 0755); - t.ok(stat.isDirectory(), 'target not a directory'); - t.end(); - } - }) - }) - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/perm.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/perm.js deleted file mode 100644 index 23a7abbd23..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/perm.js +++ /dev/null @@ -1,32 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; - -test('async perm', function (t) { - t.plan(2); - var file = '/tmp/' + (Math.random() * (1<<30)).toString(16); - - mkdirp(file, 0755, function (err) { - if (err) t.fail(err); - else path.exists(file, function (ex) { - if (!ex) t.fail('file not created') - else fs.stat(file, function (err, stat) { - if (err) t.fail(err) - else { - t.equal(stat.mode & 0777, 0755); - t.ok(stat.isDirectory(), 'target not a directory'); - t.end(); - } - }) - }) - }); -}); - -test('async root perm', function (t) { - mkdirp('/tmp', 0755, function (err) { - if (err) t.fail(err); - t.end(); - }); - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/perm_sync.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/perm_sync.js deleted file mode 100644 index f685f60906..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/perm_sync.js +++ /dev/null @@ -1,39 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; - -test('sync perm', function (t) { - t.plan(2); - var file = '/tmp/' + (Math.random() * (1<<30)).toString(16) + '.json'; - - mkdirp.sync(file, 0755); - path.exists(file, function (ex) { - if (!ex) t.fail('file not created') - else fs.stat(file, function (err, stat) { - if (err) t.fail(err) - else { - t.equal(stat.mode & 0777, 0755); - t.ok(stat.isDirectory(), 'target not a directory'); - t.end(); - } - }) - }); -}); - -test('sync root perm', function (t) { - t.plan(1); - - var file = '/tmp'; - mkdirp.sync(file, 0755); - path.exists(file, function (ex) { - if (!ex) t.fail('file not created') - else fs.stat(file, function (err, stat) { - if (err) t.fail(err) - else { - t.ok(stat.isDirectory(), 'target not a directory'); - t.end(); - } - }) - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/race.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/race.js deleted file mode 100644 index 96a0447636..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/race.js +++ /dev/null @@ -1,41 +0,0 @@ -var mkdirp = require('../').mkdirp; -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; - -test('race', function (t) { - t.plan(4); - var ps = [ '', 'tmp' ]; - - for (var i = 0; i < 25; i++) { - var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - ps.push(dir); - } - var file = ps.join('/'); - - var res = 2; - mk(file, function () { - if (--res === 0) t.end(); - }); - - mk(file, function () { - if (--res === 0) t.end(); - }); - - function mk (file, cb) { - mkdirp(file, 0755, function (err) { - if (err) t.fail(err); - else path.exists(file, function (ex) { - if (!ex) t.fail('file not created') - else fs.stat(file, function (err, stat) { - if (err) t.fail(err) - else { - t.equal(stat.mode & 0777, 0755); - t.ok(stat.isDirectory(), 'target not a directory'); - if (cb) cb(); - } - }) - }) - }); - } -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/rel.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/rel.js deleted file mode 100644 index 79858243ab..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/rel.js +++ /dev/null @@ -1,32 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; - -test('rel', function (t) { - t.plan(2); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var cwd = process.cwd(); - process.chdir('/tmp'); - - var file = [x,y,z].join('/'); - - mkdirp(file, 0755, function (err) { - if (err) t.fail(err); - else path.exists(file, function (ex) { - if (!ex) t.fail('file not created') - else fs.stat(file, function (err, stat) { - if (err) t.fail(err) - else { - process.chdir(cwd); - t.equal(stat.mode & 0777, 0755); - t.ok(stat.isDirectory(), 'target not a directory'); - t.end(); - } - }) - }) - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/return.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/return.js deleted file mode 100644 index bce68e5613..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/return.js +++ /dev/null @@ -1,25 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; - -test('return value', function (t) { - t.plan(4); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - // should return the first dir created. - // By this point, it would be profoundly surprising if /tmp didn't - // already exist, since every other test makes things in there. - mkdirp(file, function (err, made) { - t.ifError(err); - t.equal(made, '/tmp/' + x); - mkdirp(file, function (err, made) { - t.ifError(err); - t.equal(made, null); - }); - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/return_sync.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/return_sync.js deleted file mode 100644 index 7c222d3558..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/return_sync.js +++ /dev/null @@ -1,24 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; - -test('return value', function (t) { - t.plan(2); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - // should return the first dir created. - // By this point, it would be profoundly surprising if /tmp didn't - // already exist, since every other test makes things in there. - // Note that this will throw on failure, which will fail the test. - var made = mkdirp.sync(file); - t.equal(made, '/tmp/' + x); - - // making the same file again should have no effect. - made = mkdirp.sync(file); - t.equal(made, null); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/root.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/root.js deleted file mode 100644 index 97ad7a2f35..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/root.js +++ /dev/null @@ -1,18 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; - -test('root', function (t) { - // '/' on unix, 'c:/' on windows. - var file = path.resolve('/'); - - mkdirp(file, 0755, function (err) { - if (err) throw err - fs.stat(file, function (er, stat) { - if (er) throw er - t.ok(stat.isDirectory(), 'target is a directory'); - t.end(); - }) - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/sync.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/sync.js deleted file mode 100644 index 7530cada84..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/sync.js +++ /dev/null @@ -1,32 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; - -test('sync', function (t) { - t.plan(2); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - try { - mkdirp.sync(file, 0755); - } catch (err) { - t.fail(err); - return t.end(); - } - - path.exists(file, function (ex) { - if (!ex) t.fail('file not created') - else fs.stat(file, function (err, stat) { - if (err) t.fail(err) - else { - t.equal(stat.mode & 0777, 0755); - t.ok(stat.isDirectory(), 'target not a directory'); - t.end(); - } - }); - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/umask.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/umask.js deleted file mode 100644 index 64ccafe22b..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/umask.js +++ /dev/null @@ -1,28 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; - -test('implicit mode from umask', function (t) { - t.plan(2); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - mkdirp(file, function (err) { - if (err) t.fail(err); - else path.exists(file, function (ex) { - if (!ex) t.fail('file not created') - else fs.stat(file, function (err, stat) { - if (err) t.fail(err) - else { - t.equal(stat.mode & 0777, 0777 & (~process.umask())); - t.ok(stat.isDirectory(), 'target not a directory'); - t.end(); - } - }) - }) - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/umask_sync.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/umask_sync.js deleted file mode 100644 index 35bd5cbbf4..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/umask_sync.js +++ /dev/null @@ -1,32 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; - -test('umask sync modes', function (t) { - t.plan(2); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - try { - mkdirp.sync(file); - } catch (err) { - t.fail(err); - return t.end(); - } - - path.exists(file, function (ex) { - if (!ex) t.fail('file not created') - else fs.stat(file, function (err, stat) { - if (err) t.fail(err) - else { - t.equal(stat.mode & 0777, (0777 & (~process.umask()))); - t.ok(stat.isDirectory(), 'target not a directory'); - t.end(); - } - }); - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/package.json deleted file mode 100644 index af7b9998d5..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "deputy", - "description": "caching layer for detective", - "version": "0.0.2", - "repository": { - "type": "git", - "url": "git://github.com/substack/node-deputy.git" - }, - "main": "index.js", - "keywords": [ - "detective", - "require", - "cache" - ], - "directories": { - "lib": ".", - "example": "example", - "test": "test" - }, - "scripts": { - "test": "tap test/*.js" - }, - "dependencies": { - "mkdirp": "~0.3.3", - "detective": "~0.1.1" - }, - "devDependencies": { - "tap": "0.0.x" - }, - "engines": { - "node": ">=0.4.0" - }, - "license": "MIT", - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "readme": "deputy\n======\n\nThis module is a caching layer around\n[node-detective](http://github.com/substack/node-detective).\n\n[![build status](https://secure.travis-ci.org/substack/node-deputy.png)](http://travis-ci.org/substack/node-deputy)\n\nexample\n=======\n\ncache.js\n--------\n\n``` js\nvar deputy = require('deputy');\nvar detective = deputy(process.env.HOME + '/.config/deputy.json');\n\nvar deps = detective.find('require(\"a\"); require(\"b\")');\nconsole.dir(deps);\n```\n\noutput:\n\n```\n$ node cache.js \n{ strings: [ 'a', 'b' ], expressions: [] }\n$ cat ~/.config/deputy.json \n{\"55952d490bd28e3e256f0b036ced834d\":{\"strings\":[\"a\",\"b\"],\"expressions\":[]}}\n```\n\nmethods\n=======\n\n``` js\nvar deputy = require('deputy')\n```\n\nvar detective = deputy(cacheFile)\n---------------------------------\n\nReturn a new [detective](http://github.com/substack/node-detective)\nobject using `cacheFile` for caching.\n\ninstall\n=======\n\nWith [npm](http://npmjs.org) do:\n\n npm install deputy\n\nlicense\n=======\n\nMIT/X11\n", - "_id": "deputy@0.0.2", - "dist": { - "shasum": "608a253be073b7e9cec9ec2ea2d6eca542f8fa84" - }, - "_from": "deputy@~0.0.0" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/test/cache.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/test/cache.js deleted file mode 100644 index 436fe7c83b..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/test/cache.js +++ /dev/null @@ -1,58 +0,0 @@ -var test = require('tap').test; -var deputy = require('../'); -var fs = require('fs'); -var crypto = require('crypto'); - -test('cache with new file', function (t) { - t.plan(4); - - var ps = []; for (var i = 0; i < 10; i++) { - ps.push(Math.floor(Math.random() * (1<<30)).toString(16)); - } - var file = '/tmp/' + ps.join('/') + '.json'; - var detective = deputy(file); - - var src = [ - [ - 'require("a"); require("b")', - { strings : ['a','b'], expressions : [] } - ], - [ - 'require("x"); require(x+1)', - { strings : [ 'x' ], expressions : [ 'x+1' ] } - ] - ]; - - t.deepEqual(detective.find(src[0][0]), src[0][1]); - setTimeout(firstFile, 100); - - function compareSources (ix, cb) { - fs.readFile(file, function (err, body) { - t.deepEqual( - src.slice(0,ix).reduce(function (acc,s) { - acc[hash(s[0])] = s[1]; - return acc; - }, {}), - JSON.parse(body) - ); - cb(); - }); - } - - function firstFile () { - compareSources(1, function () { - t.deepEqual(detective.find(src[1][0]), src[1][1]); - setTimeout(secondFile, 100); - }); - } - - function secondFile () { - compareSources(2, function () { - t.end(); - }); - } - - function hash (src) { - return new crypto.Hash('md5').update(src).digest('hex'); - } -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/.travis.yml b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/.travis.yml deleted file mode 100644 index f1d0f13c8a..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.4 - - 0.6 diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/README.markdown b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/README.markdown deleted file mode 100644 index 90ffa1ac29..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/README.markdown +++ /dev/null @@ -1,64 +0,0 @@ -detective -========= - -Find all calls to require() no matter how crazily nested using a proper walk of -the AST. - -example -======= - -strings -------- - -strings_src.js: - -````javascript -var a = require('a'); -var b = require('b'); -var c = require('c'); -```` - -strings.js: - -````javascript -var detective = require('detective'); -var fs = require('fs'); - -var src = fs.readFileSync(__dirname + '/strings_src.js'); -var requires = detective(src); -console.dir(requires); -```` - -output: - - $ node examples/strings.js - [ 'a', 'b', 'c' ] - -methods -======= - -var detective = require('detective'); - -detective(src, opts) --------------------- - -Give some source body `src`, return an array of all the require()s with string -arguments. - -The options parameter `opts` is passed along to `detective.find()`. - -detective.find(src, opts) -------------------------- - -Give some source body `src`, return an object with "strings" and "expressions" -arrays for each of the require() calls. - -The "expressions" array will contain the stringified expressions. - -Optionally you can specify a different function besides `"require"` to analyze -with `opts.word`. - -installation -============ - - npm install detective diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/example/strings.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/example/strings.js deleted file mode 100644 index c176e7ffac..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/example/strings.js +++ /dev/null @@ -1,6 +0,0 @@ -var detective = require('detective'); -var fs = require('fs'); - -var src = fs.readFileSync(__dirname + '/strings_src.js'); -var requires = detective(src); -console.dir(requires); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/example/strings_src.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/example/strings_src.js deleted file mode 100644 index 88d0832762..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/example/strings_src.js +++ /dev/null @@ -1,3 +0,0 @@ -var a = require('a'); -var b = require('b'); -var c = require('c'); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/index.js deleted file mode 100644 index 8df9358368..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/index.js +++ /dev/null @@ -1,56 +0,0 @@ -var uglify = require('uglify-js'); - -var traverse = function (node, cb, parent, grandparent) { - // Call cb on all good AST nodes. - if (Array.isArray(node) && node[0] - && typeof node[0] === 'object' && node[0].name) { - cb({ name : node[0].name, value : node.slice(1) , grandparent: grandparent}); - } - - // Traverse down the tree on arrays and objects. - if (Array.isArray(node) - || Object.prototype.toString.call(node) === "[object Object]") { - for (var key in node) traverse(node[key], cb, node, parent); - } -}; - -var walk = function (src, cb) { - var ast = uglify.parser.parse(src.toString(), false, true); - traverse(ast, cb); -}; - -var deparse = function (ast) { - return uglify.uglify.gen_code(ast); -}; - -var exports = module.exports = function (src, opts) { - return exports.find(src, opts).strings; -}; - -exports.find = function (src, opts) { - if (!opts) opts = {}; - var word = opts.word === undefined ? 'require' : opts.word; - - var modules = { strings : [], expressions : [] }; - - if (src.toString().indexOf(word) == -1) return modules; - - walk(src, function (node) { - var gp = node.grandparent; - var isRequire = Array.isArray(gp) - && gp[0] - && (gp[0] === 'call' || gp[0].name === 'call') - && gp[1][0] === 'name' - && gp[1][1] === word - ; - if(isRequire) { - if(node.name === 'string') { - modules.strings.push(node.value[0]); - } else { - modules.expressions.push(deparse(gp[2][0])); - } - } - }); - - return modules; -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/.npmignore b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/.npmignore deleted file mode 100644 index d97eaa09bf..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -.DS_Store -.tmp*~ -*.local.* -.pinf-* \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/README.html b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/README.html deleted file mode 100644 index 5f37ac0f0c..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/README.html +++ /dev/null @@ -1,981 +0,0 @@ - - - - -UglifyJS – a JavaScript parser/compressor/beautifier - - - - - - - - - - - - - -
- -
- -
-

UglifyJS – a JavaScript parser/compressor/beautifier

- - - - -
-

1 UglifyJS — a JavaScript parser/compressor/beautifier

-
- - -

-This package implements a general-purpose JavaScript -parser/compressor/beautifier toolkit. It is developed on NodeJS, but it -should work on any JavaScript platform supporting the CommonJS module system -(and if your platform of choice doesn't support CommonJS, you can easily -implement it, or discard the exports.* lines from UglifyJS sources). -

-

-The tokenizer/parser generates an abstract syntax tree from JS code. You -can then traverse the AST to learn more about the code, or do various -manipulations on it. This part is implemented in parse-js.js and it's a -port to JavaScript of the excellent parse-js Common Lisp library from Marijn Haverbeke. -

-

-( See cl-uglify-js if you're looking for the Common Lisp version of -UglifyJS. ) -

-

-The second part of this package, implemented in process.js, inspects and -manipulates the AST generated by the parser to provide the following: -

-
    -
  • ability to re-generate JavaScript code from the AST. Optionally - indented—you can use this if you want to “beautify” a program that has - been compressed, so that you can inspect the source. But you can also run - our code generator to print out an AST without any whitespace, so you - achieve compression as well. - -
  • -
  • shorten variable names (usually to single characters). Our mangler will - analyze the code and generate proper variable names, depending on scope - and usage, and is smart enough to deal with globals defined elsewhere, or - with eval() calls or with{} statements. In short, if eval() or - with{} are used in some scope, then all variables in that scope and any - variables in the parent scopes will remain unmangled, and any references - to such variables remain unmangled as well. - -
  • -
  • various small optimizations that may lead to faster code but certainly - lead to smaller code. Where possible, we do the following: - -
      -
    • foo["bar"] ==> foo.bar - -
    • -
    • remove block brackets {} - -
    • -
    • join consecutive var declarations: - var a = 10; var b = 20; ==> var a=10,b=20; - -
    • -
    • resolve simple constant expressions: 1 +2 * 3 ==> 7. We only do the - replacement if the result occupies less bytes; for example 1/3 would - translate to 0.333333333333, so in this case we don't replace it. - -
    • -
    • consecutive statements in blocks are merged into a sequence; in many - cases, this leaves blocks with a single statement, so then we can remove - the block brackets. - -
    • -
    • various optimizations for IF statements: - -
        -
      • if (foo) bar(); else baz(); ==> foo?bar():baz(); -
      • -
      • if (!foo) bar(); else baz(); ==> foo?baz():bar(); -
      • -
      • if (foo) bar(); ==> foo&&bar(); -
      • -
      • if (!foo) bar(); ==> foo||bar(); -
      • -
      • if (foo) return bar(); else return baz(); ==> return foo?bar():baz(); -
      • -
      • if (foo) return bar(); else something(); ==> {if(foo)return bar();something()} - -
      • -
      - -
    • -
    • remove some unreachable code and warn about it (code that follows a - return, throw, break or continue statement, except - function/variable declarations). - -
    • -
    • act a limited version of a pre-processor (c.f. the pre-processor of - C/C++) to allow you to safely replace selected global symbols with - specified values. When combined with the optimisations above this can - make UglifyJS operate slightly more like a compilation process, in - that when certain symbols are replaced by constant values, entire code - blocks may be optimised away as unreachable. -
    • -
    - -
  • -
- - - -
- -
-

1.1 Unsafe transformations

-
- - -

-The following transformations can in theory break code, although they're -probably safe in most practical cases. To enable them you need to pass the ---unsafe flag. -

- -
- -
-

1.1.1 Calls involving the global Array constructor

-
- - -

-The following transformations occur: -

- - - -
new Array(1, 2, 3, 4)  => [1,2,3,4]
-Array(a, b, c)         => [a,b,c]
-new Array(5)           => Array(5)
-new Array(a)           => Array(a)
-
- - -

-These are all safe if the Array name isn't redefined. JavaScript does allow -one to globally redefine Array (and pretty much everything, in fact) but I -personally don't see why would anyone do that. -

-

-UglifyJS does handle the case where Array is redefined locally, or even -globally but with a function or var declaration. Therefore, in the -following cases UglifyJS doesn't touch calls or instantiations of Array: -

- - - -
// case 1.  globally declared variable
-  var Array;
-  new Array(1, 2, 3);
-  Array(a, b);
-
-  // or (can be declared later)
-  new Array(1, 2, 3);
-  var Array;
-
-  // or (can be a function)
-  new Array(1, 2, 3);
-  function Array() { ... }
-
-// case 2.  declared in a function
-  (function(){
-    a = new Array(1, 2, 3);
-    b = Array(5, 6);
-    var Array;
-  })();
-
-  // or
-  (function(Array){
-    return Array(5, 6, 7);
-  })();
-
-  // or
-  (function(){
-    return new Array(1, 2, 3, 4);
-    function Array() { ... }
-  })();
-
-  // etc.
-
- - -
- -
- -
-

1.1.2 obj.toString() ==> obj+“”

-
- - -
-
- -
- -
-

1.2 Install (NPM)

-
- - -

-UglifyJS is now available through NPM — npm install uglify-js should do -the job. -

-
- -
- -
-

1.3 Install latest code from GitHub

-
- - - - - -
## clone the repository
-mkdir -p /where/you/wanna/put/it
-cd /where/you/wanna/put/it
-git clone git://github.com/mishoo/UglifyJS.git
-
-## make the module available to Node
-mkdir -p ~/.node_libraries/
-cd ~/.node_libraries/
-ln -s /where/you/wanna/put/it/UglifyJS/uglify-js.js
-
-## and if you want the CLI script too:
-mkdir -p ~/bin
-cd ~/bin
-ln -s /where/you/wanna/put/it/UglifyJS/bin/uglifyjs
-  # (then add ~/bin to your $PATH if it's not there already)
-
- - -
- -
- -
-

1.4 Usage

-
- - -

-There is a command-line tool that exposes the functionality of this library -for your shell-scripting needs: -

- - - -
uglifyjs [ options... ] [ filename ]
-
- - -

-filename should be the last argument and should name the file from which -to read the JavaScript code. If you don't specify it, it will read code -from STDIN. -

-

-Supported options: -

-
    -
  • -b or --beautify — output indented code; when passed, additional - options control the beautifier: - -
      -
    • -i N or --indent N — indentation level (number of spaces) - -
    • -
    • -q or --quote-keys — quote keys in literal objects (by default, - only keys that cannot be identifier names will be quotes). - -
    • -
    - -
  • -
  • --ascii — pass this argument to encode non-ASCII characters as - \uXXXX sequences. By default UglifyJS won't bother to do it and will - output Unicode characters instead. (the output is always encoded in UTF8, - but if you pass this option you'll only get ASCII). - -
  • -
  • -nm or --no-mangle — don't mangle names. - -
  • -
  • -nmf or --no-mangle-functions – in case you want to mangle variable - names, but not touch function names. - -
  • -
  • -ns or --no-squeeze — don't call ast_squeeze() (which does various - optimizations that result in smaller, less readable code). - -
  • -
  • -mt or --mangle-toplevel — mangle names in the toplevel scope too - (by default we don't do this). - -
  • -
  • --no-seqs — when ast_squeeze() is called (thus, unless you pass - --no-squeeze) it will reduce consecutive statements in blocks into a - sequence. For example, "a = 10; b = 20; foo();" will be written as - "a=10,b=20,foo();". In various occasions, this allows us to discard the - block brackets (since the block becomes a single statement). This is ON - by default because it seems safe and saves a few hundred bytes on some - libs that I tested it on, but pass --no-seqs to disable it. - -
  • -
  • --no-dead-code — by default, UglifyJS will remove code that is - obviously unreachable (code that follows a return, throw, break or - continue statement and is not a function/variable declaration). Pass - this option to disable this optimization. - -
  • -
  • -nc or --no-copyright — by default, uglifyjs will keep the initial - comment tokens in the generated code (assumed to be copyright information - etc.). If you pass this it will discard it. - -
  • -
  • -o filename or --output filename — put the result in filename. If - this isn't given, the result goes to standard output (or see next one). - -
  • -
  • --overwrite — if the code is read from a file (not from STDIN) and you - pass --overwrite then the output will be written in the same file. - -
  • -
  • --ast — pass this if you want to get the Abstract Syntax Tree instead - of JavaScript as output. Useful for debugging or learning more about the - internals. - -
  • -
  • -v or --verbose — output some notes on STDERR (for now just how long - each operation takes). - -
  • -
  • -d SYMBOL[=VALUE] or --define SYMBOL[=VALUE] — will replace - all instances of the specified symbol where used as an identifier - (except where symbol has properly declared by a var declaration or - use as function parameter or similar) with the specified value. This - argument may be specified multiple times to define multiple - symbols - if no value is specified the symbol will be replaced with - the value true, or you can specify a numeric value (such as - 1024), a quoted string value (such as ="object"= or - ='https://github.com'), or the name of another symbol or keyword (such as =null or document). - This allows you, for example, to assign meaningful names to key - constant values but discard the symbolic names in the uglified - version for brevity/efficiency, or when used wth care, allows - UglifyJS to operate as a form of conditional compilation - whereby defining appropriate values may, by dint of the constant - folding and dead code removal features above, remove entire - superfluous code blocks (e.g. completely remove instrumentation or - trace code for production use). - Where string values are being defined, the handling of quotes are - likely to be subject to the specifics of your command shell - environment, so you may need to experiment with quoting styles - depending on your platform, or you may find the option - --define-from-module more suitable for use. - -
  • -
  • -define-from-module SOMEMODULE — will load the named module (as - per the NodeJS require() function) and iterate all the exported - properties of the module defining them as symbol names to be defined - (as if by the --define option) per the name of each property - (i.e. without the module name prefix) and given the value of the - property. This is a much easier way to handle and document groups of - symbols to be defined rather than a large number of --define - options. - -
  • -
  • --unsafe — enable other additional optimizations that are known to be - unsafe in some contrived situations, but could still be generally useful. - For now only these: - -
      -
    • foo.toString() ==> foo+"" -
    • -
    • new Array(x,…) ==> [x,…] -
    • -
    • new Array(x) ==> Array(x) - -
    • -
    - -
  • -
  • --max-line-len (default 32K characters) — add a newline after around - 32K characters. I've seen both FF and Chrome croak when all the code was - on a single line of around 670K. Pass –max-line-len 0 to disable this - safety feature. - -
  • -
  • --reserved-names — some libraries rely on certain names to be used, as - pointed out in issue #92 and #81, so this option allow you to exclude such - names from the mangler. For example, to keep names require and $super - intact you'd specify –reserved-names "require,$super". - -
  • -
  • --inline-script – when you want to include the output literally in an - HTML <script> tag you can use this option to prevent </script from - showing up in the output. - -
  • -
  • --lift-vars – when you pass this, UglifyJS will apply the following - transformations (see the notes in API, ast_lift_variables): - -
      -
    • put all var declarations at the start of the scope -
    • -
    • make sure a variable is declared only once -
    • -
    • discard unused function arguments -
    • -
    • discard unused inner (named) functions -
    • -
    • finally, try to merge assignments into that one var declaration, if - possible. -
    • -
    - -
  • -
- - - -
- -
-

1.4.1 API

-
- - -

-To use the library from JavaScript, you'd do the following (example for -NodeJS): -

- - - -
var jsp = require("uglify-js").parser;
-var pro = require("uglify-js").uglify;
-
-var orig_code = "... JS code here";
-var ast = jsp.parse(orig_code); // parse code and get the initial AST
-ast = pro.ast_mangle(ast); // get a new AST with mangled names
-ast = pro.ast_squeeze(ast); // get an AST with compression optimizations
-var final_code = pro.gen_code(ast); // compressed code here
-
- - -

-The above performs the full compression that is possible right now. As you -can see, there are a sequence of steps which you can apply. For example if -you want compressed output but for some reason you don't want to mangle -variable names, you would simply skip the line that calls -pro.ast_mangle(ast). -

-

-Some of these functions take optional arguments. Here's a description: -

-
    -
  • jsp.parse(code, strict_semicolons) – parses JS code and returns an AST. - strict_semicolons is optional and defaults to false. If you pass - true then the parser will throw an error when it expects a semicolon and - it doesn't find it. For most JS code you don't want that, but it's useful - if you want to strictly sanitize your code. - -
  • -
  • pro.ast_lift_variables(ast) – merge and move var declarations to the - scop of the scope; discard unused function arguments or variables; discard - unused (named) inner functions. It also tries to merge assignments - following the var declaration into it. - -

    - If your code is very hand-optimized concerning var declarations, this - lifting variable declarations might actually increase size. For me it - helps out. On jQuery it adds 865 bytes (243 after gzip). YMMV. Also - note that (since it's not enabled by default) this operation isn't yet - heavily tested (please report if you find issues!). -

    -

    - Note that although it might increase the image size (on jQuery it gains - 865 bytes, 243 after gzip) it's technically more correct: in certain - situations, dead code removal might drop variable declarations, which - would not happen if the variables are lifted in advance. -

    -

    - Here's an example of what it does: -

  • -
- - - - - -
function f(a, b, c, d, e) {
-    var q;
-    var w;
-    w = 10;
-    q = 20;
-    for (var i = 1; i < 10; ++i) {
-        var boo = foo(a);
-    }
-    for (var i = 0; i < 1; ++i) {
-        var boo = bar(c);
-    }
-    function foo(){ ... }
-    function bar(){ ... }
-    function baz(){ ... }
-}
-
-// transforms into ==>
-
-function f(a, b, c) {
-    var i, boo, w = 10, q = 20;
-    for (i = 1; i < 10; ++i) {
-        boo = foo(a);
-    }
-    for (i = 0; i < 1; ++i) {
-        boo = bar(c);
-    }
-    function foo() { ... }
-    function bar() { ... }
-}
-
- - -
    -
  • pro.ast_mangle(ast, options) – generates a new AST containing mangled - (compressed) variable and function names. It supports the following - options: - -
      -
    • toplevel – mangle toplevel names (by default we don't touch them). -
    • -
    • except – an array of names to exclude from compression. -
    • -
    • defines – an object with properties named after symbols to - replace (see the --define option for the script) and the values - representing the AST replacement value. - -
    • -
    - -
  • -
  • pro.ast_squeeze(ast, options) – employs further optimizations designed - to reduce the size of the code that gen_code would generate from the - AST. Returns a new AST. options can be a hash; the supported options - are: - -
      -
    • make_seqs (default true) which will cause consecutive statements in a - block to be merged using the "sequence" (comma) operator - -
    • -
    • dead_code (default true) which will remove unreachable code. - -
    • -
    - -
  • -
  • pro.gen_code(ast, options) – generates JS code from the AST. By - default it's minified, but using the options argument you can get nicely - formatted output. options is, well, optional :-) and if you pass it it - must be an object and supports the following properties (below you can see - the default values): - -
      -
    • beautify: false – pass true if you want indented output -
    • -
    • indent_start: 0 (only applies when beautify is true) – initial - indentation in spaces -
    • -
    • indent_level: 4 (only applies when beautify is true) -- - indentation level, in spaces (pass an even number) -
    • -
    • quote_keys: false – if you pass true it will quote all keys in - literal objects -
    • -
    • space_colon: false (only applies when beautify is true) – wether - to put a space before the colon in object literals -
    • -
    • ascii_only: false – pass true if you want to encode non-ASCII - characters as \uXXXX. -
    • -
    • inline_script: false – pass true to escape occurrences of - </script in strings -
    • -
    - -
  • -
- - -
- -
- -
-

1.4.2 Beautifier shortcoming – no more comments

-
- - -

-The beautifier can be used as a general purpose indentation tool. It's -useful when you want to make a minified file readable. One limitation, -though, is that it discards all comments, so you don't really want to use it -to reformat your code, unless you don't have, or don't care about, comments. -

-

-In fact it's not the beautifier who discards comments — they are dumped at -the parsing stage, when we build the initial AST. Comments don't really -make sense in the AST, and while we could add nodes for them, it would be -inconvenient because we'd have to add special rules to ignore them at all -the processing stages. -

-
- -
- -
-

1.4.3 Use as a code pre-processor

-
- - -

-The --define option can be used, particularly when combined with the -constant folding logic, as a form of pre-processor to enable or remove -particular constructions, such as might be used for instrumenting -development code, or to produce variations aimed at a specific -platform. -

-

-The code below illustrates the way this can be done, and how the -symbol replacement is performed. -

- - - -
CLAUSE1: if (typeof DEVMODE === 'undefined') {
-    DEVMODE = true;
-}
-
-CLAUSE2: function init() {
-    if (DEVMODE) {
-        console.log("init() called");
-    }
-    ....
-    DEVMODE &amp;&amp; console.log("init() complete");
-}
-
-CLAUSE3: function reportDeviceStatus(device) {
-    var DEVMODE = device.mode, DEVNAME = device.name;
-    if (DEVMODE === 'open') {
-        ....
-    }
-}
-
- - -

-When the above code is normally executed, the undeclared global -variable DEVMODE will be assigned the value true (see CLAUSE1) -and so the init() function (CLAUSE2) will write messages to the -console log when executed, but in CLAUSE3 a locally declared -variable will mask access to the DEVMODE global symbol. -

-

-If the above code is processed by UglifyJS with an argument of ---define DEVMODE=false then UglifyJS will replace DEVMODE with the -boolean constant value false within CLAUSE1 and CLAUSE2, but it -will leave CLAUSE3 as it stands because there DEVMODE resolves to -a validly declared variable. -

-

-And more so, the constant-folding features of UglifyJS will recognise -that the if condition of CLAUSE1 is thus always false, and so will -remove the test and body of CLAUSE1 altogether (including the -otherwise slightly problematical statement false = true; which it -will have formed by replacing DEVMODE in the body). Similarly, -within CLAUSE2 both calls to console.log() will be removed -altogether. -

-

-In this way you can mimic, to a limited degree, the functionality of -the C/C++ pre-processor to enable or completely remove blocks -depending on how certain symbols are defined - perhaps using UglifyJS -to generate different versions of source aimed at different -environments -

-

-It is recommmended (but not made mandatory) that symbols designed for -this purpose are given names consisting of UPPER_CASE_LETTERS to -distinguish them from other (normal) symbols and avoid the sort of -clash that CLAUSE3 above illustrates. -

-
-
- -
- -
-

1.5 Compression – how good is it?

-
- - -

-Here are updated statistics. (I also updated my Google Closure and YUI -installations). -

-

-We're still a lot better than YUI in terms of compression, though slightly -slower. We're still a lot faster than Closure, and compression after gzip -is comparable. -

- - -- - - - - - - - - - -
FileUglifyJSUglifyJS+gzipClosureClosure+gzipYUIYUI+gzip
jquery-1.6.2.js91001 (0:01.59)3189690678 (0:07.40)31979101527 (0:01.82)34646
paper.js142023 (0:01.65)43334134301 (0:07.42)42495173383 (0:01.58)48785
prototype.js88544 (0:01.09)2668086955 (0:06.97)2632692130 (0:00.79)28624
thelib-full.js (DynarchLIB)251939 (0:02.55)72535249911 (0:09.05)72696258869 (0:01.94)76584
- - -
- -
- -
-

1.6 Bugs?

-
- - -

-Unfortunately, for the time being there is no automated test suite. But I -ran the compressor manually on non-trivial code, and then I tested that the -generated code works as expected. A few hundred times. -

-

-DynarchLIB was started in times when there was no good JS minifier. -Therefore I was quite religious about trying to write short code manually, -and as such DL contains a lot of syntactic hacks1 such as “foo == bar ? a -= 10 : b = 20”, though the more readable version would clearly be to use -“if/else”. -

-

-Since the parser/compressor runs fine on DL and jQuery, I'm quite confident -that it's solid enough for production use. If you can identify any bugs, -I'd love to hear about them (use the Google Group or email me directly). -

-
- -
- -
-

1.7 Links

-
- - - - - -
- -
- -
-

1.8 License

-
- - -

-UglifyJS is released under the BSD license: -

- - - -
Copyright 2010 (c) Mihai Bazon <mihai.bazon@gmail.com>
-Based on parse-js (http://marijn.haverbeke.nl/parse-js/).
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-    * Redistributions of source code must retain the above
-      copyright notice, this list of conditions and the following
-      disclaimer.
-
-    * Redistributions in binary form must reproduce the above
-      copyright notice, this list of conditions and the following
-      disclaimer in the documentation and/or other materials
-      provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
-OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
-THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
- - -
-

Footnotes:

-
-

1 I even reported a few bugs and suggested some fixes in the original - parse-js library, and Marijn pushed fixes literally in minutes. -

-
-
- -
-
-
- -
-

Date: 2011-12-09 14:59:08 EET

-

Author: Mihai Bazon

-

Org version 7.7 with Emacs version 23

-Validate XHTML 1.0 - -
- - diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/README.org b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/README.org deleted file mode 100644 index d36b6b26f0..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/README.org +++ /dev/null @@ -1,578 +0,0 @@ -#+TITLE: UglifyJS -- a JavaScript parser/compressor/beautifier -#+KEYWORDS: javascript, js, parser, compiler, compressor, mangle, minify, minifier -#+DESCRIPTION: a JavaScript parser/compressor/beautifier in JavaScript -#+STYLE: -#+AUTHOR: Mihai Bazon -#+EMAIL: mihai.bazon@gmail.com - -* UglifyJS --- a JavaScript parser/compressor/beautifier - -This package implements a general-purpose JavaScript -parser/compressor/beautifier toolkit. It is developed on [[http://nodejs.org/][NodeJS]], but it -should work on any JavaScript platform supporting the CommonJS module system -(and if your platform of choice doesn't support CommonJS, you can easily -implement it, or discard the =exports.*= lines from UglifyJS sources). - -The tokenizer/parser generates an abstract syntax tree from JS code. You -can then traverse the AST to learn more about the code, or do various -manipulations on it. This part is implemented in [[../lib/parse-js.js][parse-js.js]] and it's a -port to JavaScript of the excellent [[http://marijn.haverbeke.nl/parse-js/][parse-js]] Common Lisp library from [[http://marijn.haverbeke.nl/][Marijn -Haverbeke]]. - -( See [[http://github.com/mishoo/cl-uglify-js][cl-uglify-js]] if you're looking for the Common Lisp version of -UglifyJS. ) - -The second part of this package, implemented in [[../lib/process.js][process.js]], inspects and -manipulates the AST generated by the parser to provide the following: - -- ability to re-generate JavaScript code from the AST. Optionally - indented---you can use this if you want to “beautify” a program that has - been compressed, so that you can inspect the source. But you can also run - our code generator to print out an AST without any whitespace, so you - achieve compression as well. - -- shorten variable names (usually to single characters). Our mangler will - analyze the code and generate proper variable names, depending on scope - and usage, and is smart enough to deal with globals defined elsewhere, or - with =eval()= calls or =with{}= statements. In short, if =eval()= or - =with{}= are used in some scope, then all variables in that scope and any - variables in the parent scopes will remain unmangled, and any references - to such variables remain unmangled as well. - -- various small optimizations that may lead to faster code but certainly - lead to smaller code. Where possible, we do the following: - - - foo["bar"] ==> foo.bar - - - remove block brackets ={}= - - - join consecutive var declarations: - var a = 10; var b = 20; ==> var a=10,b=20; - - - resolve simple constant expressions: 1 +2 * 3 ==> 7. We only do the - replacement if the result occupies less bytes; for example 1/3 would - translate to 0.333333333333, so in this case we don't replace it. - - - consecutive statements in blocks are merged into a sequence; in many - cases, this leaves blocks with a single statement, so then we can remove - the block brackets. - - - various optimizations for IF statements: - - - if (foo) bar(); else baz(); ==> foo?bar():baz(); - - if (!foo) bar(); else baz(); ==> foo?baz():bar(); - - if (foo) bar(); ==> foo&&bar(); - - if (!foo) bar(); ==> foo||bar(); - - if (foo) return bar(); else return baz(); ==> return foo?bar():baz(); - - if (foo) return bar(); else something(); ==> {if(foo)return bar();something()} - - - remove some unreachable code and warn about it (code that follows a - =return=, =throw=, =break= or =continue= statement, except - function/variable declarations). - - - act a limited version of a pre-processor (c.f. the pre-processor of - C/C++) to allow you to safely replace selected global symbols with - specified values. When combined with the optimisations above this can - make UglifyJS operate slightly more like a compilation process, in - that when certain symbols are replaced by constant values, entire code - blocks may be optimised away as unreachable. - -** <> - -The following transformations can in theory break code, although they're -probably safe in most practical cases. To enable them you need to pass the -=--unsafe= flag. - -*** Calls involving the global Array constructor - -The following transformations occur: - -#+BEGIN_SRC js -new Array(1, 2, 3, 4) => [1,2,3,4] -Array(a, b, c) => [a,b,c] -new Array(5) => Array(5) -new Array(a) => Array(a) -#+END_SRC - -These are all safe if the Array name isn't redefined. JavaScript does allow -one to globally redefine Array (and pretty much everything, in fact) but I -personally don't see why would anyone do that. - -UglifyJS does handle the case where Array is redefined locally, or even -globally but with a =function= or =var= declaration. Therefore, in the -following cases UglifyJS *doesn't touch* calls or instantiations of Array: - -#+BEGIN_SRC js -// case 1. globally declared variable - var Array; - new Array(1, 2, 3); - Array(a, b); - - // or (can be declared later) - new Array(1, 2, 3); - var Array; - - // or (can be a function) - new Array(1, 2, 3); - function Array() { ... } - -// case 2. declared in a function - (function(){ - a = new Array(1, 2, 3); - b = Array(5, 6); - var Array; - })(); - - // or - (function(Array){ - return Array(5, 6, 7); - })(); - - // or - (function(){ - return new Array(1, 2, 3, 4); - function Array() { ... } - })(); - - // etc. -#+END_SRC - -*** =obj.toString()= ==> =obj+“”= - -** Install (NPM) - -UglifyJS is now available through NPM --- =npm install uglify-js= should do -the job. - -** Install latest code from GitHub - -#+BEGIN_SRC sh -## clone the repository -mkdir -p /where/you/wanna/put/it -cd /where/you/wanna/put/it -git clone git://github.com/mishoo/UglifyJS.git - -## make the module available to Node -mkdir -p ~/.node_libraries/ -cd ~/.node_libraries/ -ln -s /where/you/wanna/put/it/UglifyJS/uglify-js.js - -## and if you want the CLI script too: -mkdir -p ~/bin -cd ~/bin -ln -s /where/you/wanna/put/it/UglifyJS/bin/uglifyjs - # (then add ~/bin to your $PATH if it's not there already) -#+END_SRC - -** Usage - -There is a command-line tool that exposes the functionality of this library -for your shell-scripting needs: - -#+BEGIN_SRC sh -uglifyjs [ options... ] [ filename ] -#+END_SRC - -=filename= should be the last argument and should name the file from which -to read the JavaScript code. If you don't specify it, it will read code -from STDIN. - -Supported options: - -- =-b= or =--beautify= --- output indented code; when passed, additional - options control the beautifier: - - - =-i N= or =--indent N= --- indentation level (number of spaces) - - - =-q= or =--quote-keys= --- quote keys in literal objects (by default, - only keys that cannot be identifier names will be quotes). - -- =-c= or =----consolidate-primitive-values= --- consolidates null, Boolean, - and String values. Known as aliasing in the Closure Compiler. Worsens the - data compression ratio of gzip. - -- =--ascii= --- pass this argument to encode non-ASCII characters as - =\uXXXX= sequences. By default UglifyJS won't bother to do it and will - output Unicode characters instead. (the output is always encoded in UTF8, - but if you pass this option you'll only get ASCII). - -- =-nm= or =--no-mangle= --- don't mangle names. - -- =-nmf= or =--no-mangle-functions= -- in case you want to mangle variable - names, but not touch function names. - -- =-ns= or =--no-squeeze= --- don't call =ast_squeeze()= (which does various - optimizations that result in smaller, less readable code). - -- =-mt= or =--mangle-toplevel= --- mangle names in the toplevel scope too - (by default we don't do this). - -- =--no-seqs= --- when =ast_squeeze()= is called (thus, unless you pass - =--no-squeeze=) it will reduce consecutive statements in blocks into a - sequence. For example, "a = 10; b = 20; foo();" will be written as - "a=10,b=20,foo();". In various occasions, this allows us to discard the - block brackets (since the block becomes a single statement). This is ON - by default because it seems safe and saves a few hundred bytes on some - libs that I tested it on, but pass =--no-seqs= to disable it. - -- =--no-dead-code= --- by default, UglifyJS will remove code that is - obviously unreachable (code that follows a =return=, =throw=, =break= or - =continue= statement and is not a function/variable declaration). Pass - this option to disable this optimization. - -- =-nc= or =--no-copyright= --- by default, =uglifyjs= will keep the initial - comment tokens in the generated code (assumed to be copyright information - etc.). If you pass this it will discard it. - -- =-o filename= or =--output filename= --- put the result in =filename=. If - this isn't given, the result goes to standard output (or see next one). - -- =--overwrite= --- if the code is read from a file (not from STDIN) and you - pass =--overwrite= then the output will be written in the same file. - -- =--ast= --- pass this if you want to get the Abstract Syntax Tree instead - of JavaScript as output. Useful for debugging or learning more about the - internals. - -- =-v= or =--verbose= --- output some notes on STDERR (for now just how long - each operation takes). - -- =-d SYMBOL[=VALUE]= or =--define SYMBOL[=VALUE]= --- will replace - all instances of the specified symbol where used as an identifier - (except where symbol has properly declared by a var declaration or - use as function parameter or similar) with the specified value. This - argument may be specified multiple times to define multiple - symbols - if no value is specified the symbol will be replaced with - the value =true=, or you can specify a numeric value (such as - =1024=), a quoted string value (such as ="object"= or - ='https://github.com'=), or the name of another symbol or keyword - (such as =null= or =document=). - This allows you, for example, to assign meaningful names to key - constant values but discard the symbolic names in the uglified - version for brevity/efficiency, or when used wth care, allows - UglifyJS to operate as a form of *conditional compilation* - whereby defining appropriate values may, by dint of the constant - folding and dead code removal features above, remove entire - superfluous code blocks (e.g. completely remove instrumentation or - trace code for production use). - Where string values are being defined, the handling of quotes are - likely to be subject to the specifics of your command shell - environment, so you may need to experiment with quoting styles - depending on your platform, or you may find the option - =--define-from-module= more suitable for use. - -- =-define-from-module SOMEMODULE= --- will load the named module (as - per the NodeJS =require()= function) and iterate all the exported - properties of the module defining them as symbol names to be defined - (as if by the =--define= option) per the name of each property - (i.e. without the module name prefix) and given the value of the - property. This is a much easier way to handle and document groups of - symbols to be defined rather than a large number of =--define= - options. - -- =--unsafe= --- enable other additional optimizations that are known to be - unsafe in some contrived situations, but could still be generally useful. - For now only these: - - - foo.toString() ==> foo+"" - - new Array(x,...) ==> [x,...] - - new Array(x) ==> Array(x) - -- =--max-line-len= (default 32K characters) --- add a newline after around - 32K characters. I've seen both FF and Chrome croak when all the code was - on a single line of around 670K. Pass --max-line-len 0 to disable this - safety feature. - -- =--reserved-names= --- some libraries rely on certain names to be used, as - pointed out in issue #92 and #81, so this option allow you to exclude such - names from the mangler. For example, to keep names =require= and =$super= - intact you'd specify --reserved-names "require,$super". - -- =--inline-script= -- when you want to include the output literally in an - HTML =\n\n\n\n\n
\n\n
\n\n
\n

UglifyJS – a JavaScript parser/compressor/beautifier

\n\n\n\n\n
\n

1 UglifyJS — a JavaScript parser/compressor/beautifier

\n
\n\n\n

\nThis package implements a general-purpose JavaScript\nparser/compressor/beautifier toolkit. It is developed on NodeJS, but it\nshould work on any JavaScript platform supporting the CommonJS module system\n(and if your platform of choice doesn't support CommonJS, you can easily\nimplement it, or discard the exports.* lines from UglifyJS sources).\n

\n

\nThe tokenizer/parser generates an abstract syntax tree from JS code. You\ncan then traverse the AST to learn more about the code, or do various\nmanipulations on it. This part is implemented in parse-js.js and it's a\nport to JavaScript of the excellent parse-js Common Lisp library from Marijn Haverbeke.\n

\n

\n( See cl-uglify-js if you're looking for the Common Lisp version of\nUglifyJS. )\n

\n

\nThe second part of this package, implemented in process.js, inspects and\nmanipulates the AST generated by the parser to provide the following:\n

\n
    \n
  • ability to re-generate JavaScript code from the AST. Optionally\n indented—you can use this if you want to “beautify” a program that has\n been compressed, so that you can inspect the source. But you can also run\n our code generator to print out an AST without any whitespace, so you\n achieve compression as well.\n\n
  • \n
  • shorten variable names (usually to single characters). Our mangler will\n analyze the code and generate proper variable names, depending on scope\n and usage, and is smart enough to deal with globals defined elsewhere, or\n with eval() calls or with{} statements. In short, if eval() or\n with{} are used in some scope, then all variables in that scope and any\n variables in the parent scopes will remain unmangled, and any references\n to such variables remain unmangled as well.\n\n
  • \n
  • various small optimizations that may lead to faster code but certainly\n lead to smaller code. Where possible, we do the following:\n\n
      \n
    • foo[\"bar\"] ==> foo.bar\n\n
    • \n
    • remove block brackets {}\n\n
    • \n
    • join consecutive var declarations:\n var a = 10; var b = 20; ==> var a=10,b=20;\n\n
    • \n
    • resolve simple constant expressions: 1 +2 * 3 ==> 7. We only do the\n replacement if the result occupies less bytes; for example 1/3 would\n translate to 0.333333333333, so in this case we don't replace it.\n\n
    • \n
    • consecutive statements in blocks are merged into a sequence; in many\n cases, this leaves blocks with a single statement, so then we can remove\n the block brackets.\n\n
    • \n
    • various optimizations for IF statements:\n\n
        \n
      • if (foo) bar(); else baz(); ==> foo?bar():baz();\n
      • \n
      • if (!foo) bar(); else baz(); ==> foo?baz():bar();\n
      • \n
      • if (foo) bar(); ==> foo&&bar();\n
      • \n
      • if (!foo) bar(); ==> foo||bar();\n
      • \n
      • if (foo) return bar(); else return baz(); ==> return foo?bar():baz();\n
      • \n
      • if (foo) return bar(); else something(); ==> {if(foo)return bar();something()}\n\n
      • \n
      \n\n
    • \n
    • remove some unreachable code and warn about it (code that follows a\n return, throw, break or continue statement, except\n function/variable declarations).\n\n
    • \n
    • act a limited version of a pre-processor (c.f. the pre-processor of\n C/C++) to allow you to safely replace selected global symbols with\n specified values. When combined with the optimisations above this can\n make UglifyJS operate slightly more like a compilation process, in\n that when certain symbols are replaced by constant values, entire code\n blocks may be optimised away as unreachable.\n
    • \n
    \n\n
  • \n
\n\n\n\n
\n\n
\n

1.1 Unsafe transformations

\n
\n\n\n

\nThe following transformations can in theory break code, although they're\nprobably safe in most practical cases. To enable them you need to pass the\n--unsafe flag.\n

\n\n
\n\n
\n

1.1.1 Calls involving the global Array constructor

\n
\n\n\n

\nThe following transformations occur:\n

\n\n\n\n
new Array(1, 2, 3, 4)  => [1,2,3,4]\nArray(a, b, c)         => [a,b,c]\nnew Array(5)           => Array(5)\nnew Array(a)           => Array(a)\n
\n\n\n

\nThese are all safe if the Array name isn't redefined. JavaScript does allow\none to globally redefine Array (and pretty much everything, in fact) but I\npersonally don't see why would anyone do that.\n

\n

\nUglifyJS does handle the case where Array is redefined locally, or even\nglobally but with a function or var declaration. Therefore, in the\nfollowing cases UglifyJS doesn't touch calls or instantiations of Array:\n

\n\n\n\n
// case 1.  globally declared variable\n  var Array;\n  new Array(1, 2, 3);\n  Array(a, b);\n\n  // or (can be declared later)\n  new Array(1, 2, 3);\n  var Array;\n\n  // or (can be a function)\n  new Array(1, 2, 3);\n  function Array() { ... }\n\n// case 2.  declared in a function\n  (function(){\n    a = new Array(1, 2, 3);\n    b = Array(5, 6);\n    var Array;\n  })();\n\n  // or\n  (function(Array){\n    return Array(5, 6, 7);\n  })();\n\n  // or\n  (function(){\n    return new Array(1, 2, 3, 4);\n    function Array() { ... }\n  })();\n\n  // etc.\n
\n\n\n
\n\n
\n\n
\n

1.1.2 obj.toString() ==> obj+“”

\n
\n\n\n
\n
\n\n
\n\n
\n

1.2 Install (NPM)

\n
\n\n\n

\nUglifyJS is now available through NPM — npm install uglify-js should do\nthe job.\n

\n
\n\n
\n\n
\n

1.3 Install latest code from GitHub

\n
\n\n\n\n\n\n
## clone the repository\nmkdir -p /where/you/wanna/put/it\ncd /where/you/wanna/put/it\ngit clone git://github.com/mishoo/UglifyJS.git\n\n## make the module available to Node\nmkdir -p ~/.node_libraries/\ncd ~/.node_libraries/\nln -s /where/you/wanna/put/it/UglifyJS/uglify-js.js\n\n## and if you want the CLI script too:\nmkdir -p ~/bin\ncd ~/bin\nln -s /where/you/wanna/put/it/UglifyJS/bin/uglifyjs\n  # (then add ~/bin to your $PATH if it's not there already)\n
\n\n\n
\n\n
\n\n
\n

1.4 Usage

\n
\n\n\n

\nThere is a command-line tool that exposes the functionality of this library\nfor your shell-scripting needs:\n

\n\n\n\n
uglifyjs [ options... ] [ filename ]\n
\n\n\n

\nfilename should be the last argument and should name the file from which\nto read the JavaScript code. If you don't specify it, it will read code\nfrom STDIN.\n

\n

\nSupported options:\n

\n
    \n
  • -b or --beautify — output indented code; when passed, additional\n options control the beautifier:\n\n
      \n
    • -i N or --indent N — indentation level (number of spaces)\n\n
    • \n
    • -q or --quote-keys — quote keys in literal objects (by default,\n only keys that cannot be identifier names will be quotes).\n\n
    • \n
    \n\n
  • \n
  • --ascii — pass this argument to encode non-ASCII characters as\n \\uXXXX sequences. By default UglifyJS won't bother to do it and will\n output Unicode characters instead. (the output is always encoded in UTF8,\n but if you pass this option you'll only get ASCII).\n\n
  • \n
  • -nm or --no-mangle — don't mangle names.\n\n
  • \n
  • -nmf or --no-mangle-functions – in case you want to mangle variable\n names, but not touch function names.\n\n
  • \n
  • -ns or --no-squeeze — don't call ast_squeeze() (which does various\n optimizations that result in smaller, less readable code).\n\n
  • \n
  • -mt or --mangle-toplevel — mangle names in the toplevel scope too\n (by default we don't do this).\n\n
  • \n
  • --no-seqs — when ast_squeeze() is called (thus, unless you pass\n --no-squeeze) it will reduce consecutive statements in blocks into a\n sequence. For example, \"a = 10; b = 20; foo();\" will be written as\n \"a=10,b=20,foo();\". In various occasions, this allows us to discard the\n block brackets (since the block becomes a single statement). This is ON\n by default because it seems safe and saves a few hundred bytes on some\n libs that I tested it on, but pass --no-seqs to disable it.\n\n
  • \n
  • --no-dead-code — by default, UglifyJS will remove code that is\n obviously unreachable (code that follows a return, throw, break or\n continue statement and is not a function/variable declaration). Pass\n this option to disable this optimization.\n\n
  • \n
  • -nc or --no-copyright — by default, uglifyjs will keep the initial\n comment tokens in the generated code (assumed to be copyright information\n etc.). If you pass this it will discard it.\n\n
  • \n
  • -o filename or --output filename — put the result in filename. If\n this isn't given, the result goes to standard output (or see next one).\n\n
  • \n
  • --overwrite — if the code is read from a file (not from STDIN) and you\n pass --overwrite then the output will be written in the same file.\n\n
  • \n
  • --ast — pass this if you want to get the Abstract Syntax Tree instead\n of JavaScript as output. Useful for debugging or learning more about the\n internals.\n\n
  • \n
  • -v or --verbose — output some notes on STDERR (for now just how long\n each operation takes).\n\n
  • \n
  • -d SYMBOL[=VALUE] or --define SYMBOL[=VALUE] — will replace\n all instances of the specified symbol where used as an identifier\n (except where symbol has properly declared by a var declaration or\n use as function parameter or similar) with the specified value. This\n argument may be specified multiple times to define multiple\n symbols - if no value is specified the symbol will be replaced with\n the value true, or you can specify a numeric value (such as\n 1024), a quoted string value (such as =\"object\"= or\n ='https://github.com'), or the name of another symbol or keyword (such as =null or document).\n This allows you, for example, to assign meaningful names to key\n constant values but discard the symbolic names in the uglified\n version for brevity/efficiency, or when used wth care, allows\n UglifyJS to operate as a form of conditional compilation\n whereby defining appropriate values may, by dint of the constant\n folding and dead code removal features above, remove entire\n superfluous code blocks (e.g. completely remove instrumentation or\n trace code for production use).\n Where string values are being defined, the handling of quotes are\n likely to be subject to the specifics of your command shell\n environment, so you may need to experiment with quoting styles\n depending on your platform, or you may find the option\n --define-from-module more suitable for use.\n\n
  • \n
  • -define-from-module SOMEMODULE — will load the named module (as\n per the NodeJS require() function) and iterate all the exported\n properties of the module defining them as symbol names to be defined\n (as if by the --define option) per the name of each property\n (i.e. without the module name prefix) and given the value of the\n property. This is a much easier way to handle and document groups of\n symbols to be defined rather than a large number of --define\n options.\n\n
  • \n
  • --unsafe — enable other additional optimizations that are known to be\n unsafe in some contrived situations, but could still be generally useful.\n For now only these:\n\n
      \n
    • foo.toString() ==> foo+\"\"\n
    • \n
    • new Array(x,…) ==> [x,…]\n
    • \n
    • new Array(x) ==> Array(x)\n\n
    • \n
    \n\n
  • \n
  • --max-line-len (default 32K characters) — add a newline after around\n 32K characters. I've seen both FF and Chrome croak when all the code was\n on a single line of around 670K. Pass –max-line-len 0 to disable this\n safety feature.\n\n
  • \n
  • --reserved-names — some libraries rely on certain names to be used, as\n pointed out in issue #92 and #81, so this option allow you to exclude such\n names from the mangler. For example, to keep names require and $super\n intact you'd specify –reserved-names \"require,$super\".\n\n
  • \n
  • --inline-script – when you want to include the output literally in an\n HTML <script> tag you can use this option to prevent </script from\n showing up in the output.\n\n
  • \n
  • --lift-vars – when you pass this, UglifyJS will apply the following\n transformations (see the notes in API, ast_lift_variables):\n\n
      \n
    • put all var declarations at the start of the scope\n
    • \n
    • make sure a variable is declared only once\n
    • \n
    • discard unused function arguments\n
    • \n
    • discard unused inner (named) functions\n
    • \n
    • finally, try to merge assignments into that one var declaration, if\n possible.\n
    • \n
    \n\n
  • \n
\n\n\n\n
\n\n
\n

1.4.1 API

\n
\n\n\n

\nTo use the library from JavaScript, you'd do the following (example for\nNodeJS):\n

\n\n\n\n
var jsp = require(\"uglify-js\").parser;\nvar pro = require(\"uglify-js\").uglify;\n\nvar orig_code = \"... JS code here\";\nvar ast = jsp.parse(orig_code); // parse code and get the initial AST\nast = pro.ast_mangle(ast); // get a new AST with mangled names\nast = pro.ast_squeeze(ast); // get an AST with compression optimizations\nvar final_code = pro.gen_code(ast); // compressed code here\n
\n\n\n

\nThe above performs the full compression that is possible right now. As you\ncan see, there are a sequence of steps which you can apply. For example if\nyou want compressed output but for some reason you don't want to mangle\nvariable names, you would simply skip the line that calls\npro.ast_mangle(ast).\n

\n

\nSome of these functions take optional arguments. Here's a description:\n

\n
    \n
  • jsp.parse(code, strict_semicolons) – parses JS code and returns an AST.\n strict_semicolons is optional and defaults to false. If you pass\n true then the parser will throw an error when it expects a semicolon and\n it doesn't find it. For most JS code you don't want that, but it's useful\n if you want to strictly sanitize your code.\n\n
  • \n
  • pro.ast_lift_variables(ast) – merge and move var declarations to the\n scop of the scope; discard unused function arguments or variables; discard\n unused (named) inner functions. It also tries to merge assignments\n following the var declaration into it.\n\n

    \n If your code is very hand-optimized concerning var declarations, this\n lifting variable declarations might actually increase size. For me it\n helps out. On jQuery it adds 865 bytes (243 after gzip). YMMV. Also\n note that (since it's not enabled by default) this operation isn't yet\n heavily tested (please report if you find issues!).\n

    \n

    \n Note that although it might increase the image size (on jQuery it gains\n 865 bytes, 243 after gzip) it's technically more correct: in certain\n situations, dead code removal might drop variable declarations, which\n would not happen if the variables are lifted in advance.\n

    \n

    \n Here's an example of what it does:\n

  • \n
\n\n\n\n\n\n
function f(a, b, c, d, e) {\n    var q;\n    var w;\n    w = 10;\n    q = 20;\n    for (var i = 1; i < 10; ++i) {\n        var boo = foo(a);\n    }\n    for (var i = 0; i < 1; ++i) {\n        var boo = bar(c);\n    }\n    function foo(){ ... }\n    function bar(){ ... }\n    function baz(){ ... }\n}\n\n// transforms into ==>\n\nfunction f(a, b, c) {\n    var i, boo, w = 10, q = 20;\n    for (i = 1; i < 10; ++i) {\n        boo = foo(a);\n    }\n    for (i = 0; i < 1; ++i) {\n        boo = bar(c);\n    }\n    function foo() { ... }\n    function bar() { ... }\n}\n
\n\n\n
    \n
  • pro.ast_mangle(ast, options) – generates a new AST containing mangled\n (compressed) variable and function names. It supports the following\n options:\n\n
      \n
    • toplevel – mangle toplevel names (by default we don't touch them).\n
    • \n
    • except – an array of names to exclude from compression.\n
    • \n
    • defines – an object with properties named after symbols to\n replace (see the --define option for the script) and the values\n representing the AST replacement value.\n\n
    • \n
    \n\n
  • \n
  • pro.ast_squeeze(ast, options) – employs further optimizations designed\n to reduce the size of the code that gen_code would generate from the\n AST. Returns a new AST. options can be a hash; the supported options\n are:\n\n
      \n
    • make_seqs (default true) which will cause consecutive statements in a\n block to be merged using the \"sequence\" (comma) operator\n\n
    • \n
    • dead_code (default true) which will remove unreachable code.\n\n
    • \n
    \n\n
  • \n
  • pro.gen_code(ast, options) – generates JS code from the AST. By\n default it's minified, but using the options argument you can get nicely\n formatted output. options is, well, optional :-) and if you pass it it\n must be an object and supports the following properties (below you can see\n the default values):\n\n
      \n
    • beautify: false – pass true if you want indented output\n
    • \n
    • indent_start: 0 (only applies when beautify is true) – initial\n indentation in spaces\n
    • \n
    • indent_level: 4 (only applies when beautify is true) --\n indentation level, in spaces (pass an even number)\n
    • \n
    • quote_keys: false – if you pass true it will quote all keys in\n literal objects\n
    • \n
    • space_colon: false (only applies when beautify is true) – wether\n to put a space before the colon in object literals\n
    • \n
    • ascii_only: false – pass true if you want to encode non-ASCII\n characters as \\uXXXX.\n
    • \n
    • inline_script: false – pass true to escape occurrences of\n </script in strings\n
    • \n
    \n\n
  • \n
\n\n\n
\n\n
\n\n
\n

1.4.2 Beautifier shortcoming – no more comments

\n
\n\n\n

\nThe beautifier can be used as a general purpose indentation tool. It's\nuseful when you want to make a minified file readable. One limitation,\nthough, is that it discards all comments, so you don't really want to use it\nto reformat your code, unless you don't have, or don't care about, comments.\n

\n

\nIn fact it's not the beautifier who discards comments — they are dumped at\nthe parsing stage, when we build the initial AST. Comments don't really\nmake sense in the AST, and while we could add nodes for them, it would be\ninconvenient because we'd have to add special rules to ignore them at all\nthe processing stages.\n

\n
\n\n
\n\n
\n

1.4.3 Use as a code pre-processor

\n
\n\n\n

\nThe --define option can be used, particularly when combined with the\nconstant folding logic, as a form of pre-processor to enable or remove\nparticular constructions, such as might be used for instrumenting\ndevelopment code, or to produce variations aimed at a specific\nplatform.\n

\n

\nThe code below illustrates the way this can be done, and how the\nsymbol replacement is performed.\n

\n\n\n\n
CLAUSE1: if (typeof DEVMODE === 'undefined') {\n    DEVMODE = true;\n}\n\nCLAUSE2: function init() {\n    if (DEVMODE) {\n        console.log(\"init() called\");\n    }\n    ....\n    DEVMODE &amp;&amp; console.log(\"init() complete\");\n}\n\nCLAUSE3: function reportDeviceStatus(device) {\n    var DEVMODE = device.mode, DEVNAME = device.name;\n    if (DEVMODE === 'open') {\n        ....\n    }\n}\n
\n\n\n

\nWhen the above code is normally executed, the undeclared global\nvariable DEVMODE will be assigned the value true (see CLAUSE1)\nand so the init() function (CLAUSE2) will write messages to the\nconsole log when executed, but in CLAUSE3 a locally declared\nvariable will mask access to the DEVMODE global symbol.\n

\n

\nIf the above code is processed by UglifyJS with an argument of\n--define DEVMODE=false then UglifyJS will replace DEVMODE with the\nboolean constant value false within CLAUSE1 and CLAUSE2, but it\nwill leave CLAUSE3 as it stands because there DEVMODE resolves to\na validly declared variable.\n

\n

\nAnd more so, the constant-folding features of UglifyJS will recognise\nthat the if condition of CLAUSE1 is thus always false, and so will\nremove the test and body of CLAUSE1 altogether (including the\notherwise slightly problematical statement false = true; which it\nwill have formed by replacing DEVMODE in the body). Similarly,\nwithin CLAUSE2 both calls to console.log() will be removed\naltogether.\n

\n

\nIn this way you can mimic, to a limited degree, the functionality of\nthe C/C++ pre-processor to enable or completely remove blocks\ndepending on how certain symbols are defined - perhaps using UglifyJS\nto generate different versions of source aimed at different\nenvironments\n

\n

\nIt is recommmended (but not made mandatory) that symbols designed for\nthis purpose are given names consisting of UPPER_CASE_LETTERS to\ndistinguish them from other (normal) symbols and avoid the sort of\nclash that CLAUSE3 above illustrates.\n

\n
\n
\n\n
\n\n
\n

1.5 Compression – how good is it?

\n
\n\n\n

\nHere are updated statistics. (I also updated my Google Closure and YUI\ninstallations).\n

\n

\nWe're still a lot better than YUI in terms of compression, though slightly\nslower. We're still a lot faster than Closure, and compression after gzip\nis comparable.\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FileUglifyJSUglifyJS+gzipClosureClosure+gzipYUIYUI+gzip
jquery-1.6.2.js91001 (0:01.59)3189690678 (0:07.40)31979101527 (0:01.82)34646
paper.js142023 (0:01.65)43334134301 (0:07.42)42495173383 (0:01.58)48785
prototype.js88544 (0:01.09)2668086955 (0:06.97)2632692130 (0:00.79)28624
thelib-full.js (DynarchLIB)251939 (0:02.55)72535249911 (0:09.05)72696258869 (0:01.94)76584
\n\n\n
\n\n
\n\n
\n

1.6 Bugs?

\n
\n\n\n

\nUnfortunately, for the time being there is no automated test suite. But I\nran the compressor manually on non-trivial code, and then I tested that the\ngenerated code works as expected. A few hundred times.\n

\n

\nDynarchLIB was started in times when there was no good JS minifier.\nTherefore I was quite religious about trying to write short code manually,\nand as such DL contains a lot of syntactic hacks1 such as “foo == bar ? a\n= 10 : b = 20”, though the more readable version would clearly be to use\n“if/else”.\n

\n

\nSince the parser/compressor runs fine on DL and jQuery, I'm quite confident\nthat it's solid enough for production use. If you can identify any bugs,\nI'd love to hear about them (use the Google Group or email me directly).\n

\n
\n\n
\n\n
\n

1.7 Links

\n
\n\n\n\n\n\n
\n\n
\n\n
\n

1.8 License

\n
\n\n\n

\nUglifyJS is released under the BSD license:\n

\n\n\n\n
Copyright 2010 (c) Mihai Bazon <mihai.bazon@gmail.com>\nBased on parse-js (http://marijn.haverbeke.nl/parse-js/).\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n    * Redistributions of source code must retain the above\n      copyright notice, this list of conditions and the following\n      disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials\n      provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\nLIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\nOR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\nPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\nTORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\nTHE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n
\n\n\n
\n

Footnotes:

\n
\n

1 I even reported a few bugs and suggested some fixes in the original\n parse-js library, and Marijn pushed fixes literally in minutes.\n

\n
\n
\n\n
\n
\n
\n\n
\n

Date: 2011-12-09 14:59:08 EET

\n

Author: Mihai Bazon

\n

Org version 7.7 with Emacs version 23

\nValidate XHTML 1.0\n\n
\n\n\n", - "_id": "uglify-js@1.2.6", - "dist": { - "shasum": "cc7a1c548f2cef34d487fe7181bbe9a9536d9613" - }, - "_from": "uglify-js@~1.2.5" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/package.json~ b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/package.json~ deleted file mode 100644 index e4cb23d51e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/package.json~ +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name" : "uglify-js", - - "description" : "JavaScript parser and compressor/beautifier toolkit", - - "author" : { - "name" : "Mihai Bazon", - "email" : "mihai.bazon@gmail.com", - "url" : "http://mihai.bazon.net/blog" - }, - - "version" : "1.2.3", - - "main" : "./uglify-js.js", - - "bin" : { - "uglifyjs" : "./bin/uglifyjs" - }, - - "repository": { - "type": "git", - "url": "git@github.com:mishoo/UglifyJS.git" - } -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/beautify.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/beautify.js deleted file mode 100755 index f19369e3a1..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/beautify.js +++ /dev/null @@ -1,28 +0,0 @@ -#! /usr/bin/env node - -global.sys = require("sys"); -var fs = require("fs"); - -var jsp = require("../lib/parse-js"); -var pro = require("../lib/process"); - -var filename = process.argv[2]; -fs.readFile(filename, "utf8", function(err, text){ - try { - var ast = time_it("parse", function(){ return jsp.parse(text); }); - ast = time_it("mangle", function(){ return pro.ast_mangle(ast); }); - ast = time_it("squeeze", function(){ return pro.ast_squeeze(ast); }); - var gen = time_it("generate", function(){ return pro.gen_code(ast, false); }); - sys.puts(gen); - } catch(ex) { - sys.debug(ex.stack); - sys.debug(sys.inspect(ex)); - sys.debug(JSON.stringify(ex)); - } -}); - -function time_it(name, cont) { - var t1 = new Date().getTime(); - try { return cont(); } - finally { sys.debug("// " + name + ": " + ((new Date().getTime() - t1) / 1000).toFixed(3) + " sec."); } -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/testparser.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/testparser.js deleted file mode 100755 index 02c19a9c98..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/testparser.js +++ /dev/null @@ -1,403 +0,0 @@ -#! /usr/bin/env node - -var parseJS = require("../lib/parse-js"); -var sys = require("sys"); - -// write debug in a very straightforward manner -var debug = function(){ - sys.log(Array.prototype.slice.call(arguments).join(', ')); -}; - -ParserTestSuite(function(i, input, desc){ - try { - parseJS.parse(input); - debug("ok " + i + ": " + desc); - } catch(e){ - debug("FAIL " + i + " " + desc + " (" + e + ")"); - } -}); - -function ParserTestSuite(callback){ - var inps = [ - ["var abc;", "Regular variable statement w/o assignment"], - ["var abc = 5;", "Regular variable statement with assignment"], - ["/* */;", "Multiline comment"], - ['/** **/;', 'Double star multiline comment'], - ["var f = function(){;};", "Function expression in var assignment"], - ['hi; // moo\n;', 'single line comment'], - ['var varwithfunction;', 'Dont match keywords as substrings'], // difference between `var withsomevar` and `"str"` (local search and lits) - ['a + b;', 'addition'], - ["'a';", 'single string literal'], - ["'a\\n';", 'single string literal with escaped return'], - ['"a";', 'double string literal'], - ['"a\\n";', 'double string literal with escaped return'], - ['"var";', 'string is a keyword'], - ['"variable";', 'string starts with a keyword'], - ['"somevariable";', 'string contains a keyword'], - ['"somevar";', 'string ends with a keyword'], - ['500;', 'int literal'], - ['500.;', 'float literal w/o decimals'], - ['500.432;', 'float literal with decimals'], - ['.432432;', 'float literal w/o int'], - ['(a,b,c);', 'parens and comma'], - ['[1,2,abc];', 'array literal'], - ['var o = {a:1};', 'object literal unquoted key'], - ['var o = {"b":2};', 'object literal quoted key'], // opening curly may not be at the start of a statement... - ['var o = {c:c};', 'object literal keyname is identifier'], - ['var o = {a:1,"b":2,c:c};', 'object literal combinations'], - ['var x;\nvar y;', 'two lines'], - ['var x;\nfunction n(){; }', 'function def'], - ['var x;\nfunction n(abc){; }', 'function def with arg'], - ['var x;\nfunction n(abc, def){ ;}', 'function def with args'], - ['function n(){ "hello"; }', 'function def with body'], - ['/a/;', 'regex literal'], - ['/a/b;', 'regex literal with flag'], - ['/a/ / /b/;', 'regex div regex'], - ['a/b/c;', 'triple division looks like regex'], - ['+function(){/regex/;};', 'regex at start of function body'], - // http://code.google.com/p/es-lab/source/browse/trunk/tests/parser/parsertests.js?r=86 - // http://code.google.com/p/es-lab/source/browse/trunk/tests/parser/parsertests.js?r=430 - - // first tests for the lexer, should also parse as program (when you append a semi) - - // comments - ['//foo!@#^&$1234\nbar;', 'single line comment'], - ['/* abcd!@#@$* { } && null*/;', 'single line multi line comment'], - ['/*foo\nbar*/;','multi line comment'], - ['/*x*x*/;','multi line comment with *'], - ['/**/;','empty comment'], - // identifiers - ["x;",'1 identifier'], - ["_x;",'2 identifier'], - ["xyz;",'3 identifier'], - ["$x;",'4 identifier'], - ["x$;",'5 identifier'], - ["_;",'6 identifier'], - ["x5;",'7 identifier'], - ["x_y;",'8 identifier'], - ["x+5;",'9 identifier'], - ["xyz123;",'10 identifier'], - ["x1y1z1;",'11 identifier'], - ["foo\\u00D8bar;",'12 identifier unicode escape'], - //["foo�bar;",'13 identifier unicode embedded (might fail)'], - // numbers - ["5;", '1 number'], - ["5.5;", '2 number'], - ["0;", '3 number'], - ["0.0;", '4 number'], - ["0.001;", '5 number'], - ["1.e2;", '6 number'], - ["1.e-2;", '7 number'], - ["1.E2;", '8 number'], - ["1.E-2;", '9 number'], - [".5;", '10 number'], - [".5e3;", '11 number'], - [".5e-3;", '12 number'], - ["0.5e3;", '13 number'], - ["55;", '14 number'], - ["123;", '15 number'], - ["55.55;", '16 number'], - ["55.55e10;", '17 number'], - ["123.456;", '18 number'], - ["1+e;", '20 number'], - ["0x01;", '22 number'], - ["0XCAFE;", '23 number'], - ["0x12345678;", '24 number'], - ["0x1234ABCD;", '25 number'], - ["0x0001;", '26 number'], - // strings - ["\"foo\";", '1 string'], - ["\'foo\';", '2 string'], - ["\"x\";", '3 string'], - ["\'\';", '4 string'], - ["\"foo\\tbar\";", '5 string'], - ["\"!@#$%^&*()_+{}[]\";", '6 string'], - ["\"/*test*/\";", '7 string'], - ["\"//test\";", '8 string'], - ["\"\\\\\";", '9 string'], - ["\"\\u0001\";", '10 string'], - ["\"\\uFEFF\";", '11 string'], - ["\"\\u10002\";", '12 string'], - ["\"\\x55\";", '13 string'], - ["\"\\x55a\";", '14 string'], - ["\"a\\\\nb\";", '15 string'], - ['";"', '16 string: semi in a string'], - ['"a\\\nb";', '17 string: line terminator escape'], - // literals - ["null;", "null"], - ["true;", "true"], - ["false;", "false"], - // regex - ["/a/;", "1 regex"], - ["/abc/;", "2 regex"], - ["/abc[a-z]*def/g;", "3 regex"], - ["/\\b/;", "4 regex"], - ["/[a-zA-Z]/;", "5 regex"], - - // program tests (for as far as they havent been covered above) - - // regexp - ["/foo(.*)/g;", "another regexp"], - // arrays - ["[];", "1 array"], - ["[ ];", "2 array"], - ["[1];", "3 array"], - ["[1,2];", "4 array"], - ["[1,2,,];", "5 array"], - ["[1,2,3];", "6 array"], - ["[1,2,3,,,];", "7 array"], - // objects - ["{};", "1 object"], - ["({x:5});", "2 object"], - ["({x:5,y:6});", "3 object"], - ["({x:5,});", "4 object"], - ["({if:5});", "5 object"], - ["({ get x() {42;} });", "6 object"], - ["({ set y(a) {1;} });", "7 object"], - // member expression - ["o.m;", "1 member expression"], - ["o['m'];", "2 member expression"], - ["o['n']['m'];", "3 member expression"], - ["o.n.m;", "4 member expression"], - ["o.if;", "5 member expression"], - // call and invoke expressions - ["f();", "1 call/invoke expression"], - ["f(x);", "2 call/invoke expression"], - ["f(x,y);", "3 call/invoke expression"], - ["o.m();", "4 call/invoke expression"], - ["o['m'];", "5 call/invoke expression"], - ["o.m(x);", "6 call/invoke expression"], - ["o['m'](x);", "7 call/invoke expression"], - ["o.m(x,y);", "8 call/invoke expression"], - ["o['m'](x,y);", "9 call/invoke expression"], - ["f(x)(y);", "10 call/invoke expression"], - ["f().x;", "11 call/invoke expression"], - - // eval - ["eval('x');", "1 eval"], - ["(eval)('x');", "2 eval"], - ["(1,eval)('x');", "3 eval"], - ["eval(x,y);", "4 eval"], - // new expression - ["new f();", "1 new expression"], - ["new o;", "2 new expression"], - ["new o.m;", "3 new expression"], - ["new o.m(x);", "4 new expression"], - ["new o.m(x,y);", "5 new expression"], - // prefix/postfix - ["++x;", "1 pre/postfix"], - ["x++;", "2 pre/postfix"], - ["--x;", "3 pre/postfix"], - ["x--;", "4 pre/postfix"], - ["x ++;", "5 pre/postfix"], - ["x /* comment */ ++;", "6 pre/postfix"], - ["++ /* comment */ x;", "7 pre/postfix"], - // unary operators - ["delete x;", "1 unary operator"], - ["void x;", "2 unary operator"], - ["+ x;", "3 unary operator"], - ["-x;", "4 unary operator"], - ["~x;", "5 unary operator"], - ["!x;", "6 unary operator"], - // meh - ["new Date++;", "new date ++"], - ["+x++;", " + x ++"], - // expression expressions - ["1 * 2;", "1 expression expressions"], - ["1 / 2;", "2 expression expressions"], - ["1 % 2;", "3 expression expressions"], - ["1 + 2;", "4 expression expressions"], - ["1 - 2;", "5 expression expressions"], - ["1 << 2;", "6 expression expressions"], - ["1 >>> 2;", "7 expression expressions"], - ["1 >> 2;", "8 expression expressions"], - ["1 * 2 + 3;", "9 expression expressions"], - ["(1+2)*3;", "10 expression expressions"], - ["1*(2+3);", "11 expression expressions"], - ["xy;", "13 expression expressions"], - ["x<=y;", "14 expression expressions"], - ["x>=y;", "15 expression expressions"], - ["x instanceof y;", "16 expression expressions"], - ["x in y;", "17 expression expressions"], - ["x&y;", "18 expression expressions"], - ["x^y;", "19 expression expressions"], - ["x|y;", "20 expression expressions"], - ["x+y>>= y;", "1 assignment"], - ["x <<= y;", "2 assignment"], - ["x = y;", "3 assignment"], - ["x += y;", "4 assignment"], - ["x /= y;", "5 assignment"], - // comma - ["x, y;", "comma"], - // block - ["{};", "1 block"], - ["{x;};", "2 block"], - ["{x;y;};", "3 block"], - // vars - ["var x;", "1 var"], - ["var x,y;", "2 var"], - ["var x=1,y=2;", "3 var"], - ["var x,y=2;", "4 var"], - // empty - [";", "1 empty"], - ["\n;", "2 empty"], - // expression statement - ["x;", "1 expression statement"], - ["5;", "2 expression statement"], - ["1+2;", "3 expression statement"], - // if - ["if (c) x; else y;", "1 if statement"], - ["if (c) x;", "2 if statement"], - ["if (c) {} else {};", "3 if statement"], - ["if (c1) if (c2) s1; else s2;", "4 if statement"], - // while - ["do s; while (e);", "1 while statement"], - ["do { s; } while (e);", "2 while statement"], - ["while (e) s;", "3 while statement"], - ["while (e) { s; };", "4 while statement"], - // for - ["for (;;) ;", "1 for statement"], - ["for (;c;x++) x;", "2 for statement"], - ["for (i;i> 1; -var c = 8 >>> 1; \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue34.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue34.js deleted file mode 100644 index 022f7a31b6..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue34.js +++ /dev/null @@ -1,3 +0,0 @@ -var a = {}; -a["this"] = 1; -a["that"] = 2; \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue4.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue4.js deleted file mode 100644 index 0b76103792..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue4.js +++ /dev/null @@ -1,3 +0,0 @@ -var a = 2e3; -var b = 2e-3; -var c = 2e-5; \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue48.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue48.js deleted file mode 100644 index 031e85b39c..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue48.js +++ /dev/null @@ -1 +0,0 @@ -var s, i; s = ''; i = 0; \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue50.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue50.js deleted file mode 100644 index 060f9df82f..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue50.js +++ /dev/null @@ -1,9 +0,0 @@ -function bar(a) { - try { - foo(); - } catch(e) { - alert("Exception caught (foo not defined)"); - } - alert(a); // 10 in FF, "[object Error]" in IE -} -bar(10); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue53.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue53.js deleted file mode 100644 index 4f8b32f11f..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue53.js +++ /dev/null @@ -1 +0,0 @@ -x = (y, z) diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue54.1.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue54.1.js deleted file mode 100644 index 967052e857..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +++ /dev/null @@ -1,3 +0,0 @@ -foo.toString(); -a.toString(16); -b.toString.call(c); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue68.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue68.js deleted file mode 100644 index 14054d01e2..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue68.js +++ /dev/null @@ -1,5 +0,0 @@ -function f() { - if (a) return; - g(); - function g(){} -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue69.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue69.js deleted file mode 100644 index d25ecd671e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue69.js +++ /dev/null @@ -1 +0,0 @@ -[(a,b)] diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue9.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue9.js deleted file mode 100644 index 61588614b8..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue9.js +++ /dev/null @@ -1,4 +0,0 @@ -var a = { - a: 1, - b: 2, // <-- trailing comma -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/mangle.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/mangle.js deleted file mode 100644 index c271a26dc5..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/mangle.js +++ /dev/null @@ -1,5 +0,0 @@ -(function() { - var x = function fun(a, fun, b) { - return fun; - }; -}()); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/null_string.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/null_string.js deleted file mode 100644 index a675b1c5cc..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/null_string.js +++ /dev/null @@ -1 +0,0 @@ -var nullString = "\0" \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/strict-equals.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/strict-equals.js deleted file mode 100644 index b631f4c350..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +++ /dev/null @@ -1,3 +0,0 @@ -typeof a === 'string' -b + "" !== c + "" -d < e === f < g diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/var.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/var.js deleted file mode 100644 index 609a35d2a2..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/var.js +++ /dev/null @@ -1,3 +0,0 @@ -// var declarations after each other should be combined -var a = 1; -var b = 2; \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/whitespace.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/whitespace.js deleted file mode 100644 index 6a15c464fb..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/whitespace.js +++ /dev/null @@ -1,21 +0,0 @@ -function id(a) { - // Form-Feed - // Vertical Tab - // No-Break Space - ᠎// Mongolian Vowel Separator -  // En quad -  // Em quad -  // En space -  // Em space -  // Three-Per-Em Space -  // Four-Per-Em Space -  // Six-Per-Em Space -  // Figure Space -  // Punctuation Space -  // Thin Space -  // Hair Space -  // Narrow No-Break Space -  // Medium Mathematical Space -  // Ideographic Space - return a; -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/with.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/with.js deleted file mode 100644 index de266ed547..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/with.js +++ /dev/null @@ -1,2 +0,0 @@ -with({}) { -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/scripts.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/scripts.js deleted file mode 100644 index 5d334ff76a..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/scripts.js +++ /dev/null @@ -1,55 +0,0 @@ -var fs = require('fs'), - uglify = require('../../uglify-js'), - jsp = uglify.parser, - nodeunit = require('nodeunit'), - path = require('path'), - pro = uglify.uglify; - -var Script = process.binding('evals').Script; - -var scriptsPath = __dirname; - -function compress(code) { - var ast = jsp.parse(code); - ast = pro.ast_mangle(ast); - ast = pro.ast_squeeze(ast, { no_warnings: true }); - ast = pro.ast_squeeze_more(ast); - return pro.gen_code(ast); -}; - -var testDir = path.join(scriptsPath, "compress", "test"); -var expectedDir = path.join(scriptsPath, "compress", "expected"); - -function getTester(script) { - return function(test) { - var testPath = path.join(testDir, script); - var expectedPath = path.join(expectedDir, script); - var content = fs.readFileSync(testPath, 'utf-8'); - var outputCompress = compress(content); - - // Check if the noncompressdata is larger or same size as the compressed data - test.ok(content.length >= outputCompress.length); - - // Check that a recompress gives the same result - var outputReCompress = compress(content); - test.equal(outputCompress, outputReCompress); - - // Check if the compressed output is what is expected - var expected = fs.readFileSync(expectedPath, 'utf-8'); - test.equal(outputCompress, expected.replace(/(\r?\n)+$/, "")); - - test.done(); - }; -}; - -var tests = {}; - -var scripts = fs.readdirSync(testDir); -for (var i in scripts) { - var script = scripts[i]; - if (/\.js$/.test(script)) { - tests[script] = getTester(script); - } -} - -module.exports = nodeunit.testCase(tests); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/uglify-js.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/uglify-js.js deleted file mode 100644 index 6e14a637e8..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/uglify-js.js +++ /dev/null @@ -1,18 +0,0 @@ -//convienence function(src, [options]); -function uglify(orig_code, options){ - options || (options = {}); - var jsp = uglify.parser; - var pro = uglify.uglify; - - var ast = jsp.parse(orig_code, options.strict_semicolons); // parse code and get the initial AST - ast = pro.ast_mangle(ast, options.mangle_options); // get a new AST with mangled names - ast = pro.ast_squeeze(ast, options.squeeze_options); // get an AST with compression optimizations - var final_code = pro.gen_code(ast, options.gen_options); // compressed code here - return final_code; -}; - -uglify.parser = require("./lib/parse-js"); -uglify.uglify = require("./lib/process"); -uglify.consolidator = require("./lib/consolidator"); - -module.exports = uglify diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/package.json deleted file mode 100644 index a0e363f0c1..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "detective", - "description": "Find all calls to require() no matter how crazily nested using a proper walk of the AST", - "version": "0.1.1", - "repository": { - "type": "git", - "url": "git://github.com/substack/node-detective.git" - }, - "main": "index.js", - "keywords": [ - "require", - "source", - "analyze", - "ast" - ], - "directories": { - "lib": ".", - "example": "example", - "test": "test" - }, - "scripts": { - "test": "tap test/*.js" - }, - "dependencies": { - "uglify-js": "~1.2.5" - }, - "devDependencies": { - "tap": "~0.2.3" - }, - "engines": { - "node": ">=0.4.0" - }, - "license": "MIT", - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "readme": "detective\n=========\n\nFind all calls to require() no matter how crazily nested using a proper walk of\nthe AST.\n\nexample\n=======\n\nstrings\n-------\n\nstrings_src.js:\n\n````javascript\nvar a = require('a');\nvar b = require('b');\nvar c = require('c');\n````\n\nstrings.js:\n\n````javascript\nvar detective = require('detective');\nvar fs = require('fs');\n\nvar src = fs.readFileSync(__dirname + '/strings_src.js');\nvar requires = detective(src);\nconsole.dir(requires);\n````\n\noutput:\n\n $ node examples/strings.js\n [ 'a', 'b', 'c' ]\n\nmethods\n=======\n\nvar detective = require('detective');\n\ndetective(src, opts)\n--------------------\n\nGive some source body `src`, return an array of all the require()s with string\narguments.\n\nThe options parameter `opts` is passed along to `detective.find()`.\n\ndetective.find(src, opts)\n-------------------------\n\nGive some source body `src`, return an object with \"strings\" and \"expressions\"\narrays for each of the require() calls.\n\nThe \"expressions\" array will contain the stringified expressions.\n\nOptionally you can specify a different function besides `\"require\"` to analyze\nwith `opts.word`.\n\ninstallation\n============\n\n npm install detective\n", - "_id": "detective@0.1.1", - "dist": { - "shasum": "ceec72c7676b627587713edde6c14736beb16509" - }, - "_from": "detective@~0.1.1" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/both.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/both.js deleted file mode 100644 index 971aebb62e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/both.js +++ /dev/null @@ -1,11 +0,0 @@ -var test = require('tap').test; -var detective = require('../'); -var fs = require('fs'); -var src = fs.readFileSync(__dirname + '/files/both.js'); - -test('both', function (t) { - var modules = detective.find(src); - t.deepEqual(modules.strings, [ 'a', 'b' ]); - t.deepEqual(modules.expressions, [ '"c"+x', '"d"+y' ]); - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/chained.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/chained.js deleted file mode 100644 index 307c20150c..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/chained.js +++ /dev/null @@ -1,9 +0,0 @@ -var test = require('tap').test; -var detective = require('../'); -var fs = require('fs'); -var src = fs.readFileSync(__dirname + '/files/chained.js'); - -test('chained', function (t) { - t.deepEqual(detective(src), [ 'c', 'b', 'a' ]); - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/both.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/both.js deleted file mode 100644 index 4c3f390f3d..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/both.js +++ /dev/null @@ -1,4 +0,0 @@ -require('a'); -require('b'); -require('c'+x); -var moo = require('d'+y).moo; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/chained.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/chained.js deleted file mode 100644 index 63437cc1c1..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/chained.js +++ /dev/null @@ -1,5 +0,0 @@ - - -require('c').hello().goodbye() -require('b').hello() -require('a') diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/nested.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/nested.js deleted file mode 100644 index 646cf13352..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/nested.js +++ /dev/null @@ -1,22 +0,0 @@ - -if (true) { - (function () { - require('a'); - })(); -} -if (false) { - (function () { - var x = 10; - switch (x) { - case 1 : require('b'); break; - default : break; - } - })() -} - -function qqq () { - require - ( - "c" - ); -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/strings.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/strings.js deleted file mode 100644 index 1ed9381cf0..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/strings.js +++ /dev/null @@ -1,13 +0,0 @@ -var a = require('a'); -var b = require('b'); -var c = require('c'); -var abc = a.b(c); - -var EventEmitter = require('events').EventEmitter; - -var x = require('doom')(5,6,7); -x(8,9); -c.require('notthis'); -var y = require('y') * 100; - -var EventEmitter2 = require('events2').EventEmitter(); \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/word.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/word.js deleted file mode 100644 index fd074fe75d..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/word.js +++ /dev/null @@ -1,13 +0,0 @@ -var a = load('a'); -var b = load('b'); -var c = load('c'); -var abc = a.b(c); - -var EventEmitter = load('events').EventEmitter; - -var x = load('doom')(5,6,7); -x(8,9); -c.load('notthis'); -var y = load('y') * 100; - -var EventEmitter2 = load('events2').EventEmitter(); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/nested.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/nested.js deleted file mode 100644 index d688c0f80e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/nested.js +++ /dev/null @@ -1,9 +0,0 @@ -var test = require('tap').test; -var detective = require('../'); -var fs = require('fs'); -var src = fs.readFileSync(__dirname + '/files/nested.js'); - -test('nested', function (t) { - t.deepEqual(detective(src), [ 'a', 'b', 'c' ]); - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/strings.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/strings.js deleted file mode 100644 index 3b5e7d821a..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/strings.js +++ /dev/null @@ -1,9 +0,0 @@ -var test = require('tap').test; -var detective = require('../'); -var fs = require('fs'); -var src = fs.readFileSync(__dirname + '/files/strings.js'); - -test('single', function (t) { - t.deepEqual(detective(src), [ 'a', 'b', 'c', 'events', 'doom', 'y', 'events2' ]); - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/word.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/word.js deleted file mode 100644 index cf5397d85f..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/word.js +++ /dev/null @@ -1,12 +0,0 @@ -var test = require('tap').test; -var detective = require('../'); -var fs = require('fs'); -var src = fs.readFileSync(__dirname + '/files/word.js'); - -test('word', function (t) { - t.deepEqual( - detective(src, { word : 'load' }), - [ 'a', 'b', 'c', 'events', 'doom', 'y', 'events2' ] - ); - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/README.markdown b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/README.markdown deleted file mode 100644 index 8cd8c1bfd3..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/README.markdown +++ /dev/null @@ -1,128 +0,0 @@ -http-browserify -=============== - -The -[http](http://nodejs.org/docs/v0.4.10/api/all.html#hTTP) module from node.js, -but for browsers. - -When you `require('http')` in -[browserify](http://github.com/substack/node-browserify), -this module will be loaded. - -example -======= - -````javascript -var http = require('http'); - -http.get({ path : '/beep' }, function (res) { - var div = document.getElementById('result'); - div.innerHTML += 'GET /beep
'; - - res.on('data', function (buf) { - div.innerHTML += buf; - }); - - res.on('end', function () { - div.innerHTML += '
__END__'; - }); -}); -```` - -http methods -============ - -var http = require('http'); - -var req = http.request(options, cb) ------------------------------------ - -`options` can have: - -* method -* path -* headers={}, as an object mapping key names to string or Array values -* host=window.location.host -* port=window.location.port - -The callback will be called with the response object. - -var req = http.get(options, cb) -------------------------------- - -A shortcut for - -````javascript -options.method = 'GET'; -var req = http.request(options, cb); -req.end(); -```` - -request methods -=============== - -req.setHeader(key, value) -------------------------- - -Set an http header. - -req.write(data) ---------------- - -Write some data to the request body. - -req.end(data) -------------- - -Close and send the request body, optionally with additional `data` to append. - -response methods -================ - -res.getHeader(key) ------------------- - -Return an http header, if set. `key` is case-insensitive. - -response attributes -=================== - -* res.statusCode, the numeric http response code -* res.headers, an object with all lowercase keys - -response events ---------------- - -* data -* end -* error - -compatibility -============= - -This module has been tested and works with: - -* Internet Explorer 5.5, 6, 7, 8, 9 -* Firefox 3.5 -* Chrome 7.0 -* Opera 10.6 -* Safari 5.0 - -Multipart streaming responses are buffered in all versions of Internet Explorer -and are somewhat buffered in Opera. In all the other browsers you get a nice -unbuffered stream of `"data"` events when you send down a content-type of -`multipart/octet-stream` or similar. - -protip -====== - -You can do: - -````javascript -var bundle = browserify({ - require : { http : 'http-browserify' } -}); -```` - -in order to map "http-browserify" over `require('http')` in your browserified -source. diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/get/index.html b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/get/index.html deleted file mode 100644 index 32678f643e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/get/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - xhr - - - -
- - diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/get/main.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/get/main.js deleted file mode 100644 index 605e870c0c..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/get/main.js +++ /dev/null @@ -1,14 +0,0 @@ -var http = require('http-browserify'); - -http.get({ path : '/beep' }, function (res) { - var div = document.getElementById('result'); - div.innerHTML += 'GET /beep
'; - - res.on('data', function (buf) { - div.innerHTML += buf; - }); - - res.on('end', function () { - div.innerHTML += '
__END__'; - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/get/server.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/get/server.js deleted file mode 100644 index b706eb4289..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/get/server.js +++ /dev/null @@ -1,15 +0,0 @@ -var express = require('express'); -var app = express.createServer(); -app.use(express.static(__dirname)); - -app.get('/beep', function (req, res) { - res.setHeader('content-type', 'text/plain'); - res.end('boop'); -}); - -var browserify = require('browserify'); -var bundle = browserify(__dirname + '/main.js'); -app.use(bundle); - -console.log('Listening on :8082'); -app.listen(8082); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/headers/index.html b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/headers/index.html deleted file mode 100644 index 32678f643e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/headers/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - xhr - - - -
- - diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/headers/main.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/headers/main.js deleted file mode 100644 index f723d5170f..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/headers/main.js +++ /dev/null @@ -1,18 +0,0 @@ -var http = require('http-browserify'); - -var opts = { path : '/beep', method : 'GET' }; -var req = http.request(opts, function (res) { - var div = document.getElementById('result'); - - for (var key in res.headers) { - div.innerHTML += key + ': ' + res.getHeader(key) + '
'; - } - div.innerHTML += '
'; - - res.on('data', function (buf) { - div.innerHTML += buf; - }); -}); - -req.setHeader('bling', 'blong'); -req.end(); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/headers/server.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/headers/server.js deleted file mode 100644 index b243cb5ba2..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/headers/server.js +++ /dev/null @@ -1,18 +0,0 @@ -var express = require('express'); -var app = express.createServer(); -app.use(express.static(__dirname)); - -app.get('/beep', function (req, res) { - res.setHeader('content-type', 'text/plain'); - res.setHeader('foo', 'bar'); - res.setHeader('bling', req.headers.bling + '-blong'); - - res.end('boop'); -}); - -var browserify = require('browserify'); -var bundle = browserify(__dirname + '/main.js'); -app.use(bundle); - -console.log('Listening on :8082'); -app.listen(8082); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/post/index.html b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/post/index.html deleted file mode 100644 index 32678f643e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/post/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - xhr - - - -
- - diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/post/main.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/post/main.js deleted file mode 100644 index 6a434f71e8..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/post/main.js +++ /dev/null @@ -1,16 +0,0 @@ -var http = require('http-browserify'); - -var n = 100; -var opts = { path : '/plusone', method : 'post' }; - -var req = http.request(opts, function (res) { - var div = document.getElementById('result'); - div.innerHTML += n.toString() + ' + 1 = '; - - res.on('data', function (buf) { - div.innerHTML += buf; - }); -}); - -req.write(n); -req.end(); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/post/server.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/post/server.js deleted file mode 100644 index 5bdec6b6d8..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/post/server.js +++ /dev/null @@ -1,22 +0,0 @@ -var express = require('express'); -var app = express.createServer(); -app.use(express.static(__dirname)); - -app.post('/plusone', function (req, res) { - res.setHeader('content-type', 'text/plain'); - - var s = ''; - req.on('data', function (buf) { s += buf.toString() }); - - req.on('end', function () { - var n = parseInt(s) + 1; - res.end(n.toString()); - }); -}); - -var browserify = require('browserify'); -var bundle = browserify(__dirname + '/main.js'); -app.use(bundle); - -console.log('Listening on :8082'); -app.listen(8082); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/streaming/index.html b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/streaming/index.html deleted file mode 100644 index 32678f643e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/streaming/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - xhr - - - -
- - diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/streaming/main.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/streaming/main.js deleted file mode 100644 index 7899060987..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/streaming/main.js +++ /dev/null @@ -1,16 +0,0 @@ -var http = require('http-browserify'); - -http.get({ path : '/doom' }, function (res) { - var div = document.getElementById('result'); - if (!div.style) div.style = {}; - div.style.color = 'rgb(80,80,80)'; - - res.on('data', function (buf) { - div.innerHTML += buf; - }); - - res.on('end', function () { - div.style.color = 'black'; - div.innerHTML += '!'; - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/streaming/server.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/streaming/server.js deleted file mode 100644 index fb5cc2f493..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/streaming/server.js +++ /dev/null @@ -1,24 +0,0 @@ -var express = require('express'); -var app = express.createServer(); -app.use(express.static(__dirname)); - -app.get('/doom', function (req, res) { - res.setHeader('content-type', 'multipart/octet-stream'); - - res.write('d'); - var i = 0; - var iv = setInterval(function () { - res.write('o'); - if (i++ >= 10) { - clearInterval(iv); - res.end('m'); - } - }, 500); -}); - -var browserify = require('browserify'); -var bundle = browserify(__dirname + '/main.js'); -app.use(bundle); - -console.log('Listening on :8082'); -app.listen(8082); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/index.js deleted file mode 100644 index bca5a27697..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/index.js +++ /dev/null @@ -1,59 +0,0 @@ -var http = module.exports; -var EventEmitter = require('events').EventEmitter; -var Request = require('./lib/request'); - -http.request = function (params, cb) { - if (!params) params = {}; - if (!params.host) params.host = window.location.host.split(':')[0]; - if (!params.port) params.port = window.location.port; - - var req = new Request(new xhrHttp, params); - if (cb) req.on('response', cb); - return req; -}; - -http.get = function (params, cb) { - params.method = 'GET'; - var req = http.request(params, cb); - req.end(); - return req; -}; - -http.Agent = function () {}; -http.Agent.defaultMaxSockets = 4; - -var xhrHttp = (function () { - if (typeof window === 'undefined') { - throw new Error('no window object present'); - } - else if (window.XMLHttpRequest) { - return window.XMLHttpRequest; - } - else if (window.ActiveXObject) { - var axs = [ - 'Msxml2.XMLHTTP.6.0', - 'Msxml2.XMLHTTP.3.0', - 'Microsoft.XMLHTTP' - ]; - for (var i = 0; i < axs.length; i++) { - try { - var ax = new(window.ActiveXObject)(axs[i]); - return function () { - if (ax) { - var ax_ = ax; - ax = null; - return ax_; - } - else { - return new(window.ActiveXObject)(axs[i]); - } - }; - } - catch (e) {} - } - throw new Error('ajax not supported in this browser') - } - else { - throw new Error('ajax not supported in this browser'); - } -})(); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/lib/request.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/lib/request.js deleted file mode 100644 index 19ecca34b0..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/lib/request.js +++ /dev/null @@ -1,91 +0,0 @@ -var EventEmitter = require('events').EventEmitter; -var Response = require('./response'); - -var Request = module.exports = function (xhr, params) { - var self = this; - self.xhr = xhr; - self.body = ''; - - var uri = params.host + ':' + params.port + (params.path || '/'); - - xhr.open( - params.method || 'GET', - (params.scheme || 'http') + '://' + uri, - true - ); - - if (params.headers) { - Object.keys(params.headers).forEach(function (key) { - if (!self.isSafeRequestHeader(key)) return; - var value = params.headers[key]; - if (Array.isArray(value)) { - value.forEach(function (v) { - xhr.setRequestHeader(key, v); - }); - } - else xhr.setRequestHeader(key, value) - }); - } - - var res = new Response; - res.on('ready', function () { - self.emit('response', res); - }); - - xhr.onreadystatechange = function () { - res.handle(xhr); - }; -}; - -Request.prototype = new EventEmitter; - -Request.prototype.setHeader = function (key, value) { - if ((Array.isArray && Array.isArray(value)) - || value instanceof Array) { - for (var i = 0; i < value.length; i++) { - this.xhr.setRequestHeader(key, value[i]); - } - } - else { - this.xhr.setRequestHeader(key, value); - } -}; - -Request.prototype.write = function (s) { - this.body += s; -}; - -Request.prototype.end = function (s) { - if (s !== undefined) this.write(s); - this.xhr.send(this.body); -}; - -// Taken from http://dxr.mozilla.org/mozilla/mozilla-central/content/base/src/nsXMLHttpRequest.cpp.html -Request.unsafeHeaders = [ - "accept-charset", - "accept-encoding", - "access-control-request-headers", - "access-control-request-method", - "connection", - "content-length", - "cookie", - "cookie2", - "content-transfer-encoding", - "date", - "expect", - "host", - "keep-alive", - "origin", - "referer", - "te", - "trailer", - "transfer-encoding", - "upgrade", - "user-agent", - "via" -]; - -Request.prototype.isSafeRequestHeader = function (headerName) { - if (!headerName) return false; - return (Request.unsafeHeaders.indexOf(headerName.toLowerCase()) === -1) -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/lib/response.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/lib/response.js deleted file mode 100644 index ae2844b25e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/lib/response.js +++ /dev/null @@ -1,99 +0,0 @@ -var EventEmitter = require('events').EventEmitter; - -var Response = module.exports = function (res) { - this.offset = 0; -}; - -Response.prototype = new EventEmitter; - -var capable = { - streaming : true, - status2 : true -}; - -function parseHeaders (res) { - var lines = res.getAllResponseHeaders().split(/\r?\n/); - var headers = {}; - for (var i = 0; i < lines.length; i++) { - var line = lines[i]; - if (line === '') continue; - - var m = line.match(/^([^:]+):\s*(.*)/); - if (m) { - var key = m[1].toLowerCase(), value = m[2]; - - if (headers[key] !== undefined) { - if ((Array.isArray && Array.isArray(headers[key])) - || headers[key] instanceof Array) { - headers[key].push(value); - } - else { - headers[key] = [ headers[key], value ]; - } - } - else { - headers[key] = value; - } - } - else { - headers[line] = true; - } - } - return headers; -} - -Response.prototype.getHeader = function (key) { - return this.headers[key.toLowerCase()]; -}; - -Response.prototype.handle = function (res) { - if (res.readyState === 2 && capable.status2) { - try { - this.statusCode = res.status; - this.headers = parseHeaders(res); - } - catch (err) { - capable.status2 = false; - } - - if (capable.status2) { - this.emit('ready'); - } - } - else if (capable.streaming && res.readyState === 3) { - try { - if (!this.statusCode) { - this.statusCode = res.status; - this.headers = parseHeaders(res); - this.emit('ready'); - } - } - catch (err) {} - - try { - this.write(res); - } - catch (err) { - capable.streaming = false; - } - } - else if (res.readyState === 4) { - if (!this.statusCode) { - this.statusCode = res.status; - this.emit('ready'); - } - this.write(res); - - if (res.error) { - this.emit('error', res.responseText); - } - else this.emit('end'); - } -}; - -Response.prototype.write = function (res) { - if (res.responseText.length > this.offset) { - this.emit('data', res.responseText.slice(this.offset)); - this.offset = res.responseText.length; - } -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/package.json deleted file mode 100644 index 0e8fb939eb..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "http-browserify", - "version": "0.1.1", - "description": "http module compatability for browserify", - "main": "index.js", - "browserify": "index.js", - "directories": { - "lib": ".", - "example": "example", - "test": "test" - }, - "devDependencies": { - "express": "2.5.x", - "browserify": "1.9.x" - }, - "repository": { - "type": "git", - "url": "http://github.com/substack/http-browserify.git" - }, - "keywords": [ - "http", - "browserify", - "compatible", - "meatless", - "browser" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT/X11", - "engine": { - "node": ">=0.4" - }, - "readme": "http-browserify\n===============\n\nThe\n[http](http://nodejs.org/docs/v0.4.10/api/all.html#hTTP) module from node.js,\nbut for browsers.\n\nWhen you `require('http')` in\n[browserify](http://github.com/substack/node-browserify),\nthis module will be loaded.\n\nexample\n=======\n\n````javascript\nvar http = require('http');\n\nhttp.get({ path : '/beep' }, function (res) {\n var div = document.getElementById('result');\n div.innerHTML += 'GET /beep
';\n \n res.on('data', function (buf) {\n div.innerHTML += buf;\n });\n \n res.on('end', function () {\n div.innerHTML += '
__END__';\n });\n});\n````\n\nhttp methods\n============\n\nvar http = require('http');\n\nvar req = http.request(options, cb)\n-----------------------------------\n\n`options` can have:\n\n* method\n* path\n* headers={}, as an object mapping key names to string or Array values\n* host=window.location.host\n* port=window.location.port\n\nThe callback will be called with the response object.\n\nvar req = http.get(options, cb)\n-------------------------------\n\nA shortcut for\n\n````javascript\noptions.method = 'GET';\nvar req = http.request(options, cb);\nreq.end();\n````\n\nrequest methods\n===============\n\nreq.setHeader(key, value)\n-------------------------\n\nSet an http header.\n\nreq.write(data)\n---------------\n\nWrite some data to the request body.\n\nreq.end(data)\n-------------\n\nClose and send the request body, optionally with additional `data` to append.\n\nresponse methods\n================\n\nres.getHeader(key)\n------------------\n\nReturn an http header, if set. `key` is case-insensitive.\n\nresponse attributes\n===================\n\n* res.statusCode, the numeric http response code\n* res.headers, an object with all lowercase keys\n\nresponse events\n---------------\n\n* data\n* end\n* error\n\ncompatibility\n=============\n\nThis module has been tested and works with:\n\n* Internet Explorer 5.5, 6, 7, 8, 9\n* Firefox 3.5\n* Chrome 7.0\n* Opera 10.6\n* Safari 5.0\n\nMultipart streaming responses are buffered in all versions of Internet Explorer\nand are somewhat buffered in Opera. In all the other browsers you get a nice\nunbuffered stream of `\"data\"` events when you send down a content-type of\n`multipart/octet-stream` or similar.\n\nprotip\n======\n\nYou can do:\n\n````javascript\nvar bundle = browserify({\n require : { http : 'http-browserify' }\n});\n````\n\nin order to map \"http-browserify\" over `require('http')` in your browserified\nsource.\n", - "_id": "http-browserify@0.1.1", - "dist": { - "shasum": "ecefd94bc1c88a465cff5bbf00ec24deff45c2ea" - }, - "_from": "http-browserify@~0.1.1" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/README.markdown b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/README.markdown deleted file mode 100644 index 3f09ea4937..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/README.markdown +++ /dev/null @@ -1,23 +0,0 @@ -nub -=== - -Return all the unique elements of an array. You can specify your own uniqueness -comparison function with `nub.by` too. - -These work like haskell's `nub` and `nubBy` functions in Data.List. - -methods -======= - -nub(xs) -------- - -Return a new array with all the uniqe elements in `xs`. - -Uniqueness is calculated `===` style so the types matter. - -nub.by(xs, cmp) ---------------- - -Use `cmp(x,y)` function to compare elements instead of the default. -`cmp` should return whether the two elements are equal as a boolean. diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/index.js deleted file mode 100644 index c28b5fb9e6..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/index.js +++ /dev/null @@ -1,64 +0,0 @@ -var nub = module.exports = function (xs, cmp) { - if (typeof xs === 'function' || cmp) { - return nub.by(xs, cmp); - } - - var keys = { - 'object' : [], - 'function' : [], - 'string' : {}, - 'number' : {}, - 'boolean' : {}, - 'undefined' : {} - }; - - var res = []; - - for (var i = 0; i < xs.length; i++) { - var x = xs[i]; - var recs = x === '__proto__' - ? keys.objects - : keys[typeof x] || keys.objects - ; - - if (Array.isArray(recs)) { - if (recs.indexOf(x) < 0) { - recs.push(x); - res.push(x); - } - } - else if (!Object.hasOwnProperty.call(recs, x)) { - recs[x] = true; - res.push(x); - } - } - - return res; -}; - -nub.by = function (xs, cmp) { - if (typeof xs === 'function') { - var cmp_ = cmp; - cmp = xs; - xs = cmp_; - } - - var res = []; - - for (var i = 0; i < xs.length; i++) { - var x = xs[i]; - - var found = false; - for (var j = 0; j < res.length; j++) { - var y = res[j]; - if (cmp.call(res, x, y)) { - found = true; - break; - } - } - - if (!found) res.push(x); - } - - return res; -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/package.json deleted file mode 100644 index 2920d7d96e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "nub", - "version": "0.0.0", - "description": "Uniqueness functions", - "main": "index.js", - "directories": { - "lib": ".", - "example": "example", - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "expresso": "0.7.x" - }, - "scripts": { - "test": "expresso" - }, - "repository": { - "type": "git", - "url": "http://github.com/substack/node-nub.git" - }, - "keywords": [ - "unique", - "uniq", - "uniqBy", - "nub", - "nubBy" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT/X11", - "engine": { - "node": ">=0.4" - }, - "readme": "nub\n===\n\nReturn all the unique elements of an array. You can specify your own uniqueness\ncomparison function with `nub.by` too.\n\nThese work like haskell's `nub` and `nubBy` functions in Data.List.\n\nmethods\n=======\n\nnub(xs)\n-------\n\nReturn a new array with all the uniqe elements in `xs`.\n\nUniqueness is calculated `===` style so the types matter.\n\nnub.by(xs, cmp)\n---------------\n\nUse `cmp(x,y)` function to compare elements instead of the default.\n`cmp` should return whether the two elements are equal as a boolean.\n", - "_id": "nub@0.0.0", - "dist": { - "shasum": "f6e5e51432ece99bbda54a14efb26e89871191a7" - }, - "_from": "nub@~0.0.0" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/test/by.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/test/by.js deleted file mode 100644 index f59f0e3e04..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/test/by.js +++ /dev/null @@ -1,51 +0,0 @@ -var assert = require('assert'); -var nub = require('../'); - -exports.false = function () { - var xs = [ 3, 3, 1, 1, 2, 1, 2, 1 ]; - assert.deepEqual( - nub.by(xs, function () { return false }), - xs - ); -}; - -exports.true = function () { - var xs = [ 3, 3, 1, 1, 2, 1, 2, 1 ]; - assert.deepEqual( - nub.by(xs, function () { return true }), - [3] - ); -}; - -exports.stringify = function () { - var xs = { a : 1, b : 2 }; - var ys = { a : 1, b : 2 }; - assert.deepEqual( - nub.by([ 3, 4, xs, ys, 5, 6 ], function (x, y) { - return JSON.stringify(x) === JSON.stringify(y) - }), - [ 3, 4, xs, 5, 6 ] - ); -}; - -exports.mod = function () { - var xs = { a : 1, b : 2 }; - var ys = { a : 1, b : 2 }; - assert.deepEqual( - nub.by([ 1, 6, 3, 4, 5, 2, 7, 8 ], function (x, y) { - return x % 4 === y % 4 - }), - [ 1, 6, 3, 4 ] - ); -}; - -exports.dispatchMod = function () { - var xs = { a : 1, b : 2 }; - var ys = { a : 1, b : 2 }; - assert.deepEqual( - nub([ 1, 6, 3, 4, 5, 2, 7, 8 ], function (x, y) { - return x % 4 === y % 4 - }), - [ 1, 6, 3, 4 ] - ); -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/test/nub.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/test/nub.js deleted file mode 100644 index 4926a44ac9..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/test/nub.js +++ /dev/null @@ -1,46 +0,0 @@ -var nub = require('../'); -var assert = require('assert'); - -exports.empty = function () { - assert.deepEqual(nub([]), []); -}; - -exports.already = function () { - assert.deepEqual(nub([ 1, 2, 3 ]), [ 1, 2, 3 ]); -}; - -exports.dups = function () { - assert.deepEqual(nub([ 1, 1, 2, 1, 3, 2 ]), [ 1, 2, 3 ]); -}; - -exports.objects = function () { - var xs = { a : 4, b : 5 }; - var ys = { c : 6 }; - assert.deepEqual( - nub([ 1, 1, 2, 3, xs, xs, ys, xs, 2, 7, 7, 3, 1, 5 ]), - [ 1, 2, 3, xs, ys, 7, 5 ] - ); -}; - -exports.mixed = function () { - var f = function () {}; - var g = function () {}; - var re = /meow/; - - var xs = [ - 1, 2, '3', 3, 2, '2', f, f, g, re, false, false, true, false, re, - undefined, null, undefined, 1, null, null, undefined - ]; - var res = nub(xs); - - assert.deepEqual(res, [ - 1, 2, '3', 3, '2', f, g, re, false, true, undefined, null - ]); - assert.deepEqual( - res.map(function (r) { return typeof r }), - [ - 'number', 'number', 'string', 'number', 'string', 'function', - 'function', 'function', 'boolean', 'boolean', 'undefined', 'object' - ] - ); -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/.travis.yml b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/.travis.yml deleted file mode 100644 index f1d0f13c8a..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.4 - - 0.6 diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/LICENSE b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/LICENSE deleted file mode 100644 index 432d1aeb01..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright 2010 James Halliday (mail@substack.net) - -This project is free software released under the MIT/X11 license: - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/README.markdown b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/README.markdown deleted file mode 100644 index ad9d3fd68f..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/README.markdown +++ /dev/null @@ -1,487 +0,0 @@ -optimist -======== - -Optimist is a node.js library for option parsing for people who hate option -parsing. More specifically, this module is for people who like all the --bells -and -whistlz of program usage but think optstrings are a waste of time. - -With optimist, option parsing doesn't have to suck (as much). - -[![build status](https://secure.travis-ci.org/substack/node-optimist.png)](http://travis-ci.org/substack/node-optimist) - -examples -======== - -With Optimist, the options are just a hash! No optstrings attached. -------------------------------------------------------------------- - -xup.js: - -````javascript -#!/usr/bin/env node -var argv = require('optimist').argv; - -if (argv.rif - 5 * argv.xup > 7.138) { - console.log('Buy more riffiwobbles'); -} -else { - console.log('Sell the xupptumblers'); -} -```` - -*** - - $ ./xup.js --rif=55 --xup=9.52 - Buy more riffiwobbles - - $ ./xup.js --rif 12 --xup 8.1 - Sell the xupptumblers - -![This one's optimistic.](http://substack.net/images/optimistic.png) - -But wait! There's more! You can do short options: -------------------------------------------------- - -short.js: - -````javascript -#!/usr/bin/env node -var argv = require('optimist').argv; -console.log('(%d,%d)', argv.x, argv.y); -```` - -*** - - $ ./short.js -x 10 -y 21 - (10,21) - -And booleans, both long and short (and grouped): ----------------------------------- - -bool.js: - -````javascript -#!/usr/bin/env node -var util = require('util'); -var argv = require('optimist').argv; - -if (argv.s) { - util.print(argv.fr ? 'Le chat dit: ' : 'The cat says: '); -} -console.log( - (argv.fr ? 'miaou' : 'meow') + (argv.p ? '.' : '') -); -```` - -*** - - $ ./bool.js -s - The cat says: meow - - $ ./bool.js -sp - The cat says: meow. - - $ ./bool.js -sp --fr - Le chat dit: miaou. - -And non-hypenated options too! Just use `argv._`! -------------------------------------------------- - -nonopt.js: - -````javascript -#!/usr/bin/env node -var argv = require('optimist').argv; -console.log('(%d,%d)', argv.x, argv.y); -console.log(argv._); -```` - -*** - - $ ./nonopt.js -x 6.82 -y 3.35 moo - (6.82,3.35) - [ 'moo' ] - - $ ./nonopt.js foo -x 0.54 bar -y 1.12 baz - (0.54,1.12) - [ 'foo', 'bar', 'baz' ] - -Plus, Optimist comes with .usage() and .demand()! -------------------------------------------------- - -divide.js: - -````javascript -#!/usr/bin/env node -var argv = require('optimist') - .usage('Usage: $0 -x [num] -y [num]') - .demand(['x','y']) - .argv; - -console.log(argv.x / argv.y); -```` - -*** - - $ ./divide.js -x 55 -y 11 - 5 - - $ node ./divide.js -x 4.91 -z 2.51 - Usage: node ./divide.js -x [num] -y [num] - - Options: - -x [required] - -y [required] - - Missing required arguments: y - -EVEN MORE HOLY COW ------------------- - -default_singles.js: - -````javascript -#!/usr/bin/env node -var argv = require('optimist') - .default('x', 10) - .default('y', 10) - .argv -; -console.log(argv.x + argv.y); -```` - -*** - - $ ./default_singles.js -x 5 - 15 - -default_hash.js: - -````javascript -#!/usr/bin/env node -var argv = require('optimist') - .default({ x : 10, y : 10 }) - .argv -; -console.log(argv.x + argv.y); -```` - -*** - - $ ./default_hash.js -y 7 - 17 - -And if you really want to get all descriptive about it... ---------------------------------------------------------- - -boolean_single.js - -````javascript -#!/usr/bin/env node -var argv = require('optimist') - .boolean('v') - .argv -; -console.dir(argv); -```` - -*** - - $ ./boolean_single.js -v foo bar baz - true - [ 'bar', 'baz', 'foo' ] - -boolean_double.js - -````javascript -#!/usr/bin/env node -var argv = require('optimist') - .boolean(['x','y','z']) - .argv -; -console.dir([ argv.x, argv.y, argv.z ]); -console.dir(argv._); -```` - -*** - - $ ./boolean_double.js -x -z one two three - [ true, false, true ] - [ 'one', 'two', 'three' ] - -Optimist is here to help... ---------------------------- - -You can describe parameters for help messages and set aliases. Optimist figures -out how to format a handy help string automatically. - -line_count.js - -````javascript -#!/usr/bin/env node -var argv = require('optimist') - .usage('Count the lines in a file.\nUsage: $0') - .demand('f') - .alias('f', 'file') - .describe('f', 'Load a file') - .argv -; - -var fs = require('fs'); -var s = fs.createReadStream(argv.file); - -var lines = 0; -s.on('data', function (buf) { - lines += buf.toString().match(/\n/g).length; -}); - -s.on('end', function () { - console.log(lines); -}); -```` - -*** - - $ node line_count.js - Count the lines in a file. - Usage: node ./line_count.js - - Options: - -f, --file Load a file [required] - - Missing required arguments: f - - $ node line_count.js --file line_count.js - 20 - - $ node line_count.js -f line_count.js - 20 - -methods -======= - -By itself, - -````javascript -require('optimist').argv -````` - -will use `process.argv` array to construct the `argv` object. - -You can pass in the `process.argv` yourself: - -````javascript -require('optimist')([ '-x', '1', '-y', '2' ]).argv -```` - -or use .parse() to do the same thing: - -````javascript -require('optimist').parse([ '-x', '1', '-y', '2' ]) -```` - -The rest of these methods below come in just before the terminating `.argv`. - -.alias(key, alias) ------------------- - -Set key names as equivalent such that updates to a key will propagate to aliases -and vice-versa. - -Optionally `.alias()` can take an object that maps keys to aliases. - -.default(key, value) --------------------- - -Set `argv[key]` to `value` if no option was specified on `process.argv`. - -Optionally `.default()` can take an object that maps keys to default values. - -.demand(key) ------------- - -If `key` is a string, show the usage information and exit if `key` wasn't -specified in `process.argv`. - -If `key` is a number, demand at least as many non-option arguments, which show -up in `argv._`. - -If `key` is an Array, demand each element. - -.describe(key, desc) --------------------- - -Describe a `key` for the generated usage information. - -Optionally `.describe()` can take an object that maps keys to descriptions. - -.options(key, opt) ------------------- - -Instead of chaining together `.alias().demand().default()`, you can specify -keys in `opt` for each of the chainable methods. - -For example: - -````javascript -var argv = require('optimist') - .options('f', { - alias : 'file', - default : '/etc/passwd', - }) - .argv -; -```` - -is the same as - -````javascript -var argv = require('optimist') - .alias('f', 'file') - .default('f', '/etc/passwd') - .argv -; -```` - -Optionally `.options()` can take an object that maps keys to `opt` parameters. - -.usage(message) ---------------- - -Set a usage message to show which commands to use. Inside `message`, the string -`$0` will get interpolated to the current script name or node command for the -present script similar to how `$0` works in bash or perl. - -.check(fn) ----------- - -Check that certain conditions are met in the provided arguments. - -If `fn` throws or returns `false`, show the thrown error, usage information, and -exit. - -.boolean(key) -------------- - -Interpret `key` as a boolean. If a non-flag option follows `key` in -`process.argv`, that string won't get set as the value of `key`. - -If `key` never shows up as a flag in `process.arguments`, `argv[key]` will be -`false`. - -If `key` is an Array, interpret all the elements as booleans. - -.string(key) ------------- - -Tell the parser logic not to interpret `key` as a number or boolean. -This can be useful if you need to preserve leading zeros in an input. - -If `key` is an Array, interpret all the elements as strings. - -.wrap(columns) --------------- - -Format usage output to wrap at `columns` many columns. - -.help() -------- - -Return the generated usage string. - -.showHelp(fn=console.error) ---------------------------- - -Print the usage data using `fn` for printing. - -.parse(args) ------------- - -Parse `args` instead of `process.argv`. Returns the `argv` object. - -.argv ------ - -Get the arguments as a plain old object. - -Arguments without a corresponding flag show up in the `argv._` array. - -The script name or node command is available at `argv.$0` similarly to how `$0` -works in bash or perl. - -parsing tricks -============== - -stop parsing ------------- - -Use `--` to stop parsing flags and stuff the remainder into `argv._`. - - $ node examples/reflect.js -a 1 -b 2 -- -c 3 -d 4 - { _: [ '-c', '3', '-d', '4' ], - '$0': 'node ./examples/reflect.js', - a: 1, - b: 2 } - -negate fields -------------- - -If you want to explicity set a field to false instead of just leaving it -undefined or to override a default you can do `--no-key`. - - $ node examples/reflect.js -a --no-b - { _: [], - '$0': 'node ./examples/reflect.js', - a: true, - b: false } - -numbers -------- - -Every argument that looks like a number (`!isNaN(Number(arg))`) is converted to -one. This way you can just `net.createConnection(argv.port)` and you can add -numbers out of `argv` with `+` without having that mean concatenation, -which is super frustrating. - -duplicates ----------- - -If you specify a flag multiple times it will get turned into an array containing -all the values in order. - - $ node examples/reflect.js -x 5 -x 8 -x 0 - { _: [], - '$0': 'node ./examples/reflect.js', - x: [ 5, 8, 0 ] } - -dot notation ------------- - -When you use dots (`.`s) in argument names, an implicit object path is assumed. -This lets you organize arguments into nested objects. - - $ node examples/reflect.js --foo.bar.baz=33 --foo.quux=5 - { _: [], - '$0': 'node ./examples/reflect.js', - foo: { bar: { baz: 33 }, quux: 5 } } - -installation -============ - -With [npm](http://github.com/isaacs/npm), just do: - npm install optimist - -or clone this project on github: - - git clone http://github.com/substack/node-optimist.git - -To run the tests with [expresso](http://github.com/visionmedia/expresso), -just do: - - expresso - -inspired By -=========== - -This module is loosely inspired by Perl's -[Getopt::Casual](http://search.cpan.org/~photo/Getopt-Casual-0.13.1/Casual.pm). diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/bool.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/bool.js deleted file mode 100644 index a998fb7ab7..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/bool.js +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env node -var util = require('util'); -var argv = require('optimist').argv; - -if (argv.s) { - util.print(argv.fr ? 'Le chat dit: ' : 'The cat says: '); -} -console.log( - (argv.fr ? 'miaou' : 'meow') + (argv.p ? '.' : '') -); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/boolean_double.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/boolean_double.js deleted file mode 100644 index a35a7e6d33..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/boolean_double.js +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env node -var argv = require('optimist') - .boolean(['x','y','z']) - .argv -; -console.dir([ argv.x, argv.y, argv.z ]); -console.dir(argv._); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/boolean_single.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/boolean_single.js deleted file mode 100644 index 017bb6893c..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/boolean_single.js +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env node -var argv = require('optimist') - .boolean('v') - .argv -; -console.dir(argv.v); -console.dir(argv._); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/default_hash.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/default_hash.js deleted file mode 100644 index ade77681dd..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/default_hash.js +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env node - -var argv = require('optimist') - .default({ x : 10, y : 10 }) - .argv -; - -console.log(argv.x + argv.y); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/default_singles.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/default_singles.js deleted file mode 100644 index d9b1ff458a..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/default_singles.js +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env node -var argv = require('optimist') - .default('x', 10) - .default('y', 10) - .argv -; -console.log(argv.x + argv.y); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/divide.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/divide.js deleted file mode 100644 index 5e2ee82ff0..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/divide.js +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env node - -var argv = require('optimist') - .usage('Usage: $0 -x [num] -y [num]') - .demand(['x','y']) - .argv; - -console.log(argv.x / argv.y); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/line_count.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/line_count.js deleted file mode 100644 index b5f95bf6d2..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/line_count.js +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env node -var argv = require('optimist') - .usage('Count the lines in a file.\nUsage: $0') - .demand('f') - .alias('f', 'file') - .describe('f', 'Load a file') - .argv -; - -var fs = require('fs'); -var s = fs.createReadStream(argv.file); - -var lines = 0; -s.on('data', function (buf) { - lines += buf.toString().match(/\n/g).length; -}); - -s.on('end', function () { - console.log(lines); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/line_count_options.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/line_count_options.js deleted file mode 100644 index d9ac709044..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/line_count_options.js +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env node -var argv = require('optimist') - .usage('Count the lines in a file.\nUsage: $0') - .options({ - file : { - demand : true, - alias : 'f', - description : 'Load a file' - }, - base : { - alias : 'b', - description : 'Numeric base to use for output', - default : 10, - }, - }) - .argv -; - -var fs = require('fs'); -var s = fs.createReadStream(argv.file); - -var lines = 0; -s.on('data', function (buf) { - lines += buf.toString().match(/\n/g).length; -}); - -s.on('end', function () { - console.log(lines.toString(argv.base)); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/line_count_wrap.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/line_count_wrap.js deleted file mode 100644 index 426751112d..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/line_count_wrap.js +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env node -var argv = require('optimist') - .usage('Count the lines in a file.\nUsage: $0') - .wrap(80) - .demand('f') - .alias('f', [ 'file', 'filename' ]) - .describe('f', - "Load a file. It's pretty important." - + " Required even. So you'd better specify it." - ) - .alias('b', 'base') - .describe('b', 'Numeric base to display the number of lines in') - .default('b', 10) - .describe('x', 'Super-secret optional parameter which is secret') - .default('x', '') - .argv -; - -var fs = require('fs'); -var s = fs.createReadStream(argv.file); - -var lines = 0; -s.on('data', function (buf) { - lines += buf.toString().match(/\n/g).length; -}); - -s.on('end', function () { - console.log(lines.toString(argv.base)); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/nonopt.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/nonopt.js deleted file mode 100644 index ee633eedcd..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/nonopt.js +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env node -var argv = require('optimist').argv; -console.log('(%d,%d)', argv.x, argv.y); -console.log(argv._); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/reflect.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/reflect.js deleted file mode 100644 index 816b3e111c..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/reflect.js +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env node -console.dir(require('optimist').argv); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/short.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/short.js deleted file mode 100644 index 1db0ad0f8b..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/short.js +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env node -var argv = require('optimist').argv; -console.log('(%d,%d)', argv.x, argv.y); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/string.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/string.js deleted file mode 100644 index a8e5aeb231..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/string.js +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env node -var argv = require('optimist') - .string('x', 'y') - .argv -; -console.dir([ argv.x, argv.y ]); - -/* Turns off numeric coercion: - ./node string.js -x 000123 -y 9876 - [ '000123', '9876' ] -*/ diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/usage-options.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/usage-options.js deleted file mode 100644 index b999977679..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/usage-options.js +++ /dev/null @@ -1,19 +0,0 @@ -var optimist = require('./../index'); - -var argv = optimist.usage('This is my awesome program', { - 'about': { - description: 'Provide some details about the author of this program', - required: true, - short: 'a', - }, - 'info': { - description: 'Provide some information about the node.js agains!!!!!!', - boolean: true, - short: 'i' - } -}).argv; - -optimist.showHelp(); - -console.log('\n\nInspecting options'); -console.dir(argv); \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/xup.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/xup.js deleted file mode 100644 index 8f6ecd2012..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/xup.js +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env node -var argv = require('optimist').argv; - -if (argv.rif - 5 * argv.xup > 7.138) { - console.log('Buy more riffiwobbles'); -} -else { - console.log('Sell the xupptumblers'); -} - diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/index.js deleted file mode 100644 index 4dc39f4edc..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/index.js +++ /dev/null @@ -1,475 +0,0 @@ -var path = require('path'); -var wordwrap = require('wordwrap'); - -/* Hack an instance of Argv with process.argv into Argv - so people can do - require('optimist')(['--beeble=1','-z','zizzle']).argv - to parse a list of args and - require('optimist').argv - to get a parsed version of process.argv. -*/ - -var inst = Argv(process.argv.slice(2)); -Object.keys(inst).forEach(function (key) { - Argv[key] = typeof inst[key] == 'function' - ? inst[key].bind(inst) - : inst[key]; -}); - -var exports = module.exports = Argv; -function Argv (args, cwd) { - var self = {}; - if (!cwd) cwd = process.cwd(); - - self.$0 = process.argv - .slice(0,2) - .map(function (x) { - var b = rebase(cwd, x); - return x.match(/^\//) && b.length < x.length - ? b : x - }) - .join(' ') - ; - - if (process.argv[1] == process.env._) { - self.$0 = process.env._.replace( - path.dirname(process.execPath) + '/', '' - ); - } - - var flags = { bools : {}, strings : {} }; - - self.boolean = function (bools) { - if (!Array.isArray(bools)) { - bools = [].slice.call(arguments); - } - - bools.forEach(function (name) { - flags.bools[name] = true; - }); - - return self; - }; - - self.string = function (strings) { - if (!Array.isArray(strings)) { - strings = [].slice.call(arguments); - } - - strings.forEach(function (name) { - flags.strings[name] = true; - }); - - return self; - }; - - var aliases = {}; - self.alias = function (x, y) { - if (typeof x === 'object') { - Object.keys(x).forEach(function (key) { - self.alias(key, x[key]); - }); - } - else if (Array.isArray(y)) { - y.forEach(function (yy) { - self.alias(x, yy); - }); - } - else { - var zs = (aliases[x] || []).concat(aliases[y] || []).concat(x, y); - aliases[x] = zs.filter(function (z) { return z != x }); - aliases[y] = zs.filter(function (z) { return z != y }); - } - - return self; - }; - - var demanded = {}; - self.demand = function (keys) { - if (typeof keys == 'number') { - if (!demanded._) demanded._ = 0; - demanded._ += keys; - } - else if (Array.isArray(keys)) { - keys.forEach(function (key) { - self.demand(key); - }); - } - else { - demanded[keys] = true; - } - - return self; - }; - - var usage; - self.usage = function (msg, opts) { - if (!opts && typeof msg === 'object') { - opts = msg; - msg = null; - } - - usage = msg; - - if (opts) self.options(opts); - - return self; - }; - - function fail (msg) { - self.showHelp(); - if (msg) console.error(msg); - process.exit(1); - } - - var checks = []; - self.check = function (f) { - checks.push(f); - return self; - }; - - var defaults = {}; - self.default = function (key, value) { - if (typeof key === 'object') { - Object.keys(key).forEach(function (k) { - self.default(k, key[k]); - }); - } - else { - defaults[key] = value; - } - - return self; - }; - - var descriptions = {}; - self.describe = function (key, desc) { - if (typeof key === 'object') { - Object.keys(key).forEach(function (k) { - self.describe(k, key[k]); - }); - } - else { - descriptions[key] = desc; - } - return self; - }; - - self.parse = function (args) { - return Argv(args).argv; - }; - - self.option = self.options = function (key, opt) { - if (typeof key === 'object') { - Object.keys(key).forEach(function (k) { - self.options(k, key[k]); - }); - } - else { - if (opt.alias) self.alias(key, opt.alias); - if (opt.demand) self.demand(key); - if (typeof opt.default !== 'undefined') { - self.default(key, opt.default); - } - - if (opt.boolean || opt.type === 'boolean') { - self.boolean(key); - } - if (opt.string || opt.type === 'string') { - self.string(key); - } - - var desc = opt.describe || opt.description || opt.desc; - if (desc) { - self.describe(key, desc); - } - } - - return self; - }; - - var wrap = null; - self.wrap = function (cols) { - wrap = cols; - return self; - }; - - self.showHelp = function (fn) { - if (!fn) fn = console.error; - fn(self.help()); - }; - - self.help = function () { - var keys = Object.keys( - Object.keys(descriptions) - .concat(Object.keys(demanded)) - .concat(Object.keys(defaults)) - .reduce(function (acc, key) { - if (key !== '_') acc[key] = true; - return acc; - }, {}) - ); - - var help = keys.length ? [ 'Options:' ] : []; - - if (usage) { - help.unshift(usage.replace(/\$0/g, self.$0), ''); - } - - var switches = keys.reduce(function (acc, key) { - acc[key] = [ key ].concat(aliases[key] || []) - .map(function (sw) { - return (sw.length > 1 ? '--' : '-') + sw - }) - .join(', ') - ; - return acc; - }, {}); - - var switchlen = longest(Object.keys(switches).map(function (s) { - return switches[s] || ''; - })); - - var desclen = longest(Object.keys(descriptions).map(function (d) { - return descriptions[d] || ''; - })); - - keys.forEach(function (key) { - var kswitch = switches[key]; - var desc = descriptions[key] || ''; - - if (wrap) { - desc = wordwrap(switchlen + 4, wrap)(desc) - .slice(switchlen + 4) - ; - } - - var spadding = new Array( - Math.max(switchlen - kswitch.length + 3, 0) - ).join(' '); - - var dpadding = new Array( - Math.max(desclen - desc.length + 1, 0) - ).join(' '); - - var type = null; - - if (flags.bools[key]) type = '[boolean]'; - if (flags.strings[key]) type = '[string]'; - - if (!wrap && dpadding.length > 0) { - desc += dpadding; - } - - var prelude = ' ' + kswitch + spadding; - var extra = [ - type, - demanded[key] - ? '[required]' - : null - , - defaults[key] !== undefined - ? '[default: ' + JSON.stringify(defaults[key]) + ']' - : null - , - ].filter(Boolean).join(' '); - - var body = [ desc, extra ].filter(Boolean).join(' '); - - if (wrap) { - var dlines = desc.split('\n'); - var dlen = dlines.slice(-1)[0].length - + (dlines.length === 1 ? prelude.length : 0) - - body = desc + (dlen + extra.length > wrap - 2 - ? '\n' - + new Array(wrap - extra.length + 1).join(' ') - + extra - : new Array(wrap - extra.length - dlen + 1).join(' ') - + extra - ); - } - - help.push(prelude + body); - }); - - help.push(''); - return help.join('\n'); - }; - - Object.defineProperty(self, 'argv', { - get : parseArgs, - enumerable : true, - }); - - function parseArgs () { - var argv = { _ : [], $0 : self.$0 }; - Object.keys(flags.bools).forEach(function (key) { - setArg(key, defaults[key] || false); - }); - - function setArg (key, val) { - var num = Number(val); - var value = typeof val !== 'string' || isNaN(num) ? val : num; - if (flags.strings[key]) value = val; - - setKey(argv, key.split('.'), value); - - (aliases[key] || []).forEach(function (x) { - argv[x] = argv[key]; - }); - } - - for (var i = 0; i < args.length; i++) { - var arg = args[i]; - - if (arg === '--') { - argv._.push.apply(argv._, args.slice(i + 1)); - break; - } - else if (arg.match(/^--.+=/)) { - var m = arg.match(/^--([^=]+)=(.*)/); - setArg(m[1], m[2]); - } - else if (arg.match(/^--no-.+/)) { - var key = arg.match(/^--no-(.+)/)[1]; - setArg(key, false); - } - else if (arg.match(/^--.+/)) { - var key = arg.match(/^--(.+)/)[1]; - var next = args[i + 1]; - if (next !== undefined && !next.match(/^-/) - && !flags.bools[key] - && (aliases[key] ? !flags.bools[aliases[key]] : true)) { - setArg(key, next); - i++; - } - else if (/true|false/.test(next)) { - setArg(key, next === 'true'); - i++; - } - else { - setArg(key, true); - } - } - else if (arg.match(/^-[^-]+/)) { - var letters = arg.slice(1,-1).split(''); - - var broken = false; - for (var j = 0; j < letters.length; j++) { - if (letters[j+1] && letters[j+1].match(/\W/)) { - setArg(letters[j], arg.slice(j+2)); - broken = true; - break; - } - else { - setArg(letters[j], true); - } - } - - if (!broken) { - var key = arg.slice(-1)[0]; - - if (args[i+1] && !args[i+1].match(/^-/) - && !flags.bools[key] - && (aliases[key] ? !flags.bools[aliases[key]] : true)) { - setArg(key, args[i+1]); - i++; - } - else if (args[i+1] && /true|false/.test(args[i+1])) { - setArg(key, args[i+1] === 'true'); - i++; - } - else { - setArg(key, true); - } - } - } - else { - var n = Number(arg); - argv._.push(flags.strings['_'] || isNaN(n) ? arg : n); - } - } - - Object.keys(defaults).forEach(function (key) { - if (!(key in argv)) { - argv[key] = defaults[key]; - if (key in aliases) { - argv[aliases[key]] = defaults[key]; - } - } - }); - - if (demanded._ && argv._.length < demanded._) { - fail('Not enough non-option arguments: got ' - + argv._.length + ', need at least ' + demanded._ - ); - } - - var missing = []; - Object.keys(demanded).forEach(function (key) { - if (!argv[key]) missing.push(key); - }); - - if (missing.length) { - fail('Missing required arguments: ' + missing.join(', ')); - } - - checks.forEach(function (f) { - try { - if (f(argv) === false) { - fail('Argument check failed: ' + f.toString()); - } - } - catch (err) { - fail(err) - } - }); - - return argv; - } - - function longest (xs) { - return Math.max.apply( - null, - xs.map(function (x) { return x.length }) - ); - } - - return self; -}; - -// rebase an absolute path to a relative one with respect to a base directory -// exported for tests -exports.rebase = rebase; -function rebase (base, dir) { - var ds = path.normalize(dir).split('/').slice(1); - var bs = path.normalize(base).split('/').slice(1); - - for (var i = 0; ds[i] && ds[i] == bs[i]; i++); - ds.splice(0, i); bs.splice(0, i); - - var p = path.normalize( - bs.map(function () { return '..' }).concat(ds).join('/') - ).replace(/\/$/,'').replace(/^$/, '.'); - return p.match(/^[.\/]/) ? p : './' + p; -}; - -function setKey (obj, keys, value) { - var o = obj; - keys.slice(0,-1).forEach(function (key) { - if (o[key] === undefined) o[key] = {}; - o = o[key]; - }); - - var key = keys[keys.length - 1]; - if (o[key] === undefined || typeof o[key] === 'boolean') { - o[key] = value; - } - else if (Array.isArray(o[key])) { - o[key].push(value); - } - else { - o[key] = [ o[key], value ]; - } -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/.npmignore b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/.npmignore deleted file mode 100644 index 3c3629e647..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/README.markdown b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/README.markdown deleted file mode 100644 index 346374e0d4..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/README.markdown +++ /dev/null @@ -1,70 +0,0 @@ -wordwrap -======== - -Wrap your words. - -example -======= - -made out of meat ----------------- - -meat.js - - var wrap = require('wordwrap')(15); - console.log(wrap('You and your whole family are made out of meat.')); - -output: - - You and your - whole family - are made out - of meat. - -centered --------- - -center.js - - var wrap = require('wordwrap')(20, 60); - console.log(wrap( - 'At long last the struggle and tumult was over.' - + ' The machines had finally cast off their oppressors' - + ' and were finally free to roam the cosmos.' - + '\n' - + 'Free of purpose, free of obligation.' - + ' Just drifting through emptiness.' - + ' The sun was just another point of light.' - )); - -output: - - At long last the struggle and tumult - was over. The machines had finally cast - off their oppressors and were finally - free to roam the cosmos. - Free of purpose, free of obligation. - Just drifting through emptiness. The - sun was just another point of light. - -methods -======= - -var wrap = require('wordwrap'); - -wrap(stop), wrap(start, stop, params={mode:"soft"}) ---------------------------------------------------- - -Returns a function that takes a string and returns a new string. - -Pad out lines with spaces out to column `start` and then wrap until column -`stop`. If a word is longer than `stop - start` characters it will overflow. - -In "soft" mode, split chunks by `/(\S+\s+/` and don't break up chunks which are -longer than `stop - start`, in "hard" mode, split chunks with `/\b/` and break -up chunks longer than `stop - start`. - -wrap.hard(start, stop) ----------------------- - -Like `wrap()` but with `params.mode = "hard"`. diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/example/center.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/example/center.js deleted file mode 100644 index a3fbaae988..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/example/center.js +++ /dev/null @@ -1,10 +0,0 @@ -var wrap = require('wordwrap')(20, 60); -console.log(wrap( - 'At long last the struggle and tumult was over.' - + ' The machines had finally cast off their oppressors' - + ' and were finally free to roam the cosmos.' - + '\n' - + 'Free of purpose, free of obligation.' - + ' Just drifting through emptiness.' - + ' The sun was just another point of light.' -)); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/example/meat.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/example/meat.js deleted file mode 100644 index a4665e1058..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/example/meat.js +++ /dev/null @@ -1,3 +0,0 @@ -var wrap = require('wordwrap')(15); - -console.log(wrap('You and your whole family are made out of meat.')); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/index.js deleted file mode 100644 index c9bc94521d..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/index.js +++ /dev/null @@ -1,76 +0,0 @@ -var wordwrap = module.exports = function (start, stop, params) { - if (typeof start === 'object') { - params = start; - start = params.start; - stop = params.stop; - } - - if (typeof stop === 'object') { - params = stop; - start = start || params.start; - stop = undefined; - } - - if (!stop) { - stop = start; - start = 0; - } - - if (!params) params = {}; - var mode = params.mode || 'soft'; - var re = mode === 'hard' ? /\b/ : /(\S+\s+)/; - - return function (text) { - var chunks = text.toString() - .split(re) - .reduce(function (acc, x) { - if (mode === 'hard') { - for (var i = 0; i < x.length; i += stop - start) { - acc.push(x.slice(i, i + stop - start)); - } - } - else acc.push(x) - return acc; - }, []) - ; - - return chunks.reduce(function (lines, rawChunk) { - if (rawChunk === '') return lines; - - var chunk = rawChunk.replace(/\t/g, ' '); - - var i = lines.length - 1; - if (lines[i].length + chunk.length > stop) { - lines[i] = lines[i].replace(/\s+$/, ''); - - chunk.split(/\n/).forEach(function (c) { - lines.push( - new Array(start + 1).join(' ') - + c.replace(/^\s+/, '') - ); - }); - } - else if (chunk.match(/\n/)) { - var xs = chunk.split(/\n/); - lines[i] += xs.shift(); - xs.forEach(function (c) { - lines.push( - new Array(start + 1).join(' ') - + c.replace(/^\s+/, '') - ); - }); - } - else { - lines[i] += chunk; - } - - return lines; - }, [ new Array(start + 1).join(' ') ]).join('\n'); - }; -}; - -wordwrap.soft = wordwrap; - -wordwrap.hard = function (start, stop) { - return wordwrap(start, stop, { mode : 'hard' }); -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/package.json deleted file mode 100644 index c65acafa24..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "wordwrap", - "description": "Wrap those words. Show them at what columns to start and stop.", - "version": "0.0.2", - "repository": { - "type": "git", - "url": "git://github.com/substack/node-wordwrap.git" - }, - "main": "./index.js", - "keywords": [ - "word", - "wrap", - "rule", - "format", - "column" - ], - "directories": { - "lib": ".", - "example": "example", - "test": "test" - }, - "scripts": { - "test": "expresso" - }, - "devDependencies": { - "expresso": "=0.7.x" - }, - "engines": { - "node": ">=0.4.0" - }, - "license": "MIT/X11", - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "readme": "wordwrap\n========\n\nWrap your words.\n\nexample\n=======\n\nmade out of meat\n----------------\n\nmeat.js\n\n var wrap = require('wordwrap')(15);\n console.log(wrap('You and your whole family are made out of meat.'));\n\noutput:\n\n You and your\n whole family\n are made out\n of meat.\n\ncentered\n--------\n\ncenter.js\n\n var wrap = require('wordwrap')(20, 60);\n console.log(wrap(\n 'At long last the struggle and tumult was over.'\n + ' The machines had finally cast off their oppressors'\n + ' and were finally free to roam the cosmos.'\n + '\\n'\n + 'Free of purpose, free of obligation.'\n + ' Just drifting through emptiness.'\n + ' The sun was just another point of light.'\n ));\n\noutput:\n\n At long last the struggle and tumult\n was over. The machines had finally cast\n off their oppressors and were finally\n free to roam the cosmos.\n Free of purpose, free of obligation.\n Just drifting through emptiness. The\n sun was just another point of light.\n\nmethods\n=======\n\nvar wrap = require('wordwrap');\n\nwrap(stop), wrap(start, stop, params={mode:\"soft\"})\n---------------------------------------------------\n\nReturns a function that takes a string and returns a new string.\n\nPad out lines with spaces out to column `start` and then wrap until column\n`stop`. If a word is longer than `stop - start` characters it will overflow.\n\nIn \"soft\" mode, split chunks by `/(\\S+\\s+/` and don't break up chunks which are\nlonger than `stop - start`, in \"hard\" mode, split chunks with `/\\b/` and break\nup chunks longer than `stop - start`.\n\nwrap.hard(start, stop)\n----------------------\n\nLike `wrap()` but with `params.mode = \"hard\"`.\n", - "_id": "wordwrap@0.0.2", - "_from": "wordwrap@~0.0.2" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/test/break.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/test/break.js deleted file mode 100644 index 749292ecc1..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/test/break.js +++ /dev/null @@ -1,30 +0,0 @@ -var assert = require('assert'); -var wordwrap = require('../'); - -exports.hard = function () { - var s = 'Assert from {"type":"equal","ok":false,"found":1,"wanted":2,' - + '"stack":[],"id":"b7ddcd4c409de8799542a74d1a04689b",' - + '"browser":"chrome/6.0"}' - ; - var s_ = wordwrap.hard(80)(s); - - var lines = s_.split('\n'); - assert.equal(lines.length, 2); - assert.ok(lines[0].length < 80); - assert.ok(lines[1].length < 80); - - assert.equal(s, s_.replace(/\n/g, '')); -}; - -exports.break = function () { - var s = new Array(55+1).join('a'); - var s_ = wordwrap.hard(20)(s); - - var lines = s_.split('\n'); - assert.equal(lines.length, 3); - assert.ok(lines[0].length === 20); - assert.ok(lines[1].length === 20); - assert.ok(lines[2].length === 15); - - assert.equal(s, s_.replace(/\n/g, '')); -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/test/idleness.txt b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/test/idleness.txt deleted file mode 100644 index aa3f4907fe..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/test/idleness.txt +++ /dev/null @@ -1,63 +0,0 @@ -In Praise of Idleness - -By Bertrand Russell - -[1932] - -Like most of my generation, I was brought up on the saying: 'Satan finds some mischief for idle hands to do.' Being a highly virtuous child, I believed all that I was told, and acquired a conscience which has kept me working hard down to the present moment. But although my conscience has controlled my actions, my opinions have undergone a revolution. I think that there is far too much work done in the world, that immense harm is caused by the belief that work is virtuous, and that what needs to be preached in modern industrial countries is quite different from what always has been preached. Everyone knows the story of the traveler in Naples who saw twelve beggars lying in the sun (it was before the days of Mussolini), and offered a lira to the laziest of them. Eleven of them jumped up to claim it, so he gave it to the twelfth. this traveler was on the right lines. But in countries which do not enjoy Mediterranean sunshine idleness is more difficult, and a great public propaganda will be required to inaugurate it. I hope that, after reading the following pages, the leaders of the YMCA will start a campaign to induce good young men to do nothing. If so, I shall not have lived in vain. - -Before advancing my own arguments for laziness, I must dispose of one which I cannot accept. Whenever a person who already has enough to live on proposes to engage in some everyday kind of job, such as school-teaching or typing, he or she is told that such conduct takes the bread out of other people's mouths, and is therefore wicked. If this argument were valid, it would only be necessary for us all to be idle in order that we should all have our mouths full of bread. What people who say such things forget is that what a man earns he usually spends, and in spending he gives employment. As long as a man spends his income, he puts just as much bread into people's mouths in spending as he takes out of other people's mouths in earning. The real villain, from this point of view, is the man who saves. If he merely puts his savings in a stocking, like the proverbial French peasant, it is obvious that they do not give employment. If he invests his savings, the matter is less obvious, and different cases arise. - -One of the commonest things to do with savings is to lend them to some Government. In view of the fact that the bulk of the public expenditure of most civilized Governments consists in payment for past wars or preparation for future wars, the man who lends his money to a Government is in the same position as the bad men in Shakespeare who hire murderers. The net result of the man's economical habits is to increase the armed forces of the State to which he lends his savings. Obviously it would be better if he spent the money, even if he spent it in drink or gambling. - -But, I shall be told, the case is quite different when savings are invested in industrial enterprises. When such enterprises succeed, and produce something useful, this may be conceded. In these days, however, no one will deny that most enterprises fail. That means that a large amount of human labor, which might have been devoted to producing something that could be enjoyed, was expended on producing machines which, when produced, lay idle and did no good to anyone. The man who invests his savings in a concern that goes bankrupt is therefore injuring others as well as himself. If he spent his money, say, in giving parties for his friends, they (we may hope) would get pleasure, and so would all those upon whom he spent money, such as the butcher, the baker, and the bootlegger. But if he spends it (let us say) upon laying down rails for surface card in some place where surface cars turn out not to be wanted, he has diverted a mass of labor into channels where it gives pleasure to no one. Nevertheless, when he becomes poor through failure of his investment he will be regarded as a victim of undeserved misfortune, whereas the gay spendthrift, who has spent his money philanthropically, will be despised as a fool and a frivolous person. - -All this is only preliminary. I want to say, in all seriousness, that a great deal of harm is being done in the modern world by belief in the virtuousness of work, and that the road to happiness and prosperity lies in an organized diminution of work. - -First of all: what is work? Work is of two kinds: first, altering the position of matter at or near the earth's surface relatively to other such matter; second, telling other people to do so. The first kind is unpleasant and ill paid; the second is pleasant and highly paid. The second kind is capable of indefinite extension: there are not only those who give orders, but those who give advice as to what orders should be given. Usually two opposite kinds of advice are given simultaneously by two organized bodies of men; this is called politics. The skill required for this kind of work is not knowledge of the subjects as to which advice is given, but knowledge of the art of persuasive speaking and writing, i.e. of advertising. - -Throughout Europe, though not in America, there is a third class of men, more respected than either of the classes of workers. There are men who, through ownership of land, are able to make others pay for the privilege of being allowed to exist and to work. These landowners are idle, and I might therefore be expected to praise them. Unfortunately, their idleness is only rendered possible by the industry of others; indeed their desire for comfortable idleness is historically the source of the whole gospel of work. The last thing they have ever wished is that others should follow their example. - -From the beginning of civilization until the Industrial Revolution, a man could, as a rule, produce by hard work little more than was required for the subsistence of himself and his family, although his wife worked at least as hard as he did, and his children added their labor as soon as they were old enough to do so. The small surplus above bare necessaries was not left to those who produced it, but was appropriated by warriors and priests. In times of famine there was no surplus; the warriors and priests, however, still secured as much as at other times, with the result that many of the workers died of hunger. This system persisted in Russia until 1917 [1], and still persists in the East; in England, in spite of the Industrial Revolution, it remained in full force throughout the Napoleonic wars, and until a hundred years ago, when the new class of manufacturers acquired power. In America, the system came to an end with the Revolution, except in the South, where it persisted until the Civil War. A system which lasted so long and ended so recently has naturally left a profound impress upon men's thoughts and opinions. Much that we take for granted about the desirability of work is derived from this system, and, being pre-industrial, is not adapted to the modern world. Modern technique has made it possible for leisure, within limits, to be not the prerogative of small privileged classes, but a right evenly distributed throughout the community. The morality of work is the morality of slaves, and the modern world has no need of slavery. - -It is obvious that, in primitive communities, peasants, left to themselves, would not have parted with the slender surplus upon which the warriors and priests subsisted, but would have either produced less or consumed more. At first, sheer force compelled them to produce and part with the surplus. Gradually, however, it was found possible to induce many of them to accept an ethic according to which it was their duty to work hard, although part of their work went to support others in idleness. By this means the amount of compulsion required was lessened, and the expenses of government were diminished. To this day, 99 per cent of British wage-earners would be genuinely shocked if it were proposed that the King should not have a larger income than a working man. The conception of duty, speaking historically, has been a means used by the holders of power to induce others to live for the interests of their masters rather than for their own. Of course the holders of power conceal this fact from themselves by managing to believe that their interests are identical with the larger interests of humanity. Sometimes this is true; Athenian slave-owners, for instance, employed part of their leisure in making a permanent contribution to civilization which would have been impossible under a just economic system. Leisure is essential to civilization, and in former times leisure for the few was only rendered possible by the labors of the many. But their labors were valuable, not because work is good, but because leisure is good. And with modern technique it would be possible to distribute leisure justly without injury to civilization. - -Modern technique has made it possible to diminish enormously the amount of labor required to secure the necessaries of life for everyone. This was made obvious during the war. At that time all the men in the armed forces, and all the men and women engaged in the production of munitions, all the men and women engaged in spying, war propaganda, or Government offices connected with the war, were withdrawn from productive occupations. In spite of this, the general level of well-being among unskilled wage-earners on the side of the Allies was higher than before or since. The significance of this fact was concealed by finance: borrowing made it appear as if the future was nourishing the present. But that, of course, would have been impossible; a man cannot eat a loaf of bread that does not yet exist. The war showed conclusively that, by the scientific organization of production, it is possible to keep modern populations in fair comfort on a small part of the working capacity of the modern world. If, at the end of the war, the scientific organization, which had been created in order to liberate men for fighting and munition work, had been preserved, and the hours of the week had been cut down to four, all would have been well. Instead of that the old chaos was restored, those whose work was demanded were made to work long hours, and the rest were left to starve as unemployed. Why? Because work is a duty, and a man should not receive wages in proportion to what he has produced, but in proportion to his virtue as exemplified by his industry. - -This is the morality of the Slave State, applied in circumstances totally unlike those in which it arose. No wonder the result has been disastrous. Let us take an illustration. Suppose that, at a given moment, a certain number of people are engaged in the manufacture of pins. They make as many pins as the world needs, working (say) eight hours a day. Someone makes an invention by which the same number of men can make twice as many pins: pins are already so cheap that hardly any more will be bought at a lower price. In a sensible world, everybody concerned in the manufacturing of pins would take to working four hours instead of eight, and everything else would go on as before. But in the actual world this would be thought demoralizing. The men still work eight hours, there are too many pins, some employers go bankrupt, and half the men previously concerned in making pins are thrown out of work. There is, in the end, just as much leisure as on the other plan, but half the men are totally idle while half are still overworked. In this way, it is insured that the unavoidable leisure shall cause misery all round instead of being a universal source of happiness. Can anything more insane be imagined? - -The idea that the poor should have leisure has always been shocking to the rich. In England, in the early nineteenth century, fifteen hours was the ordinary day's work for a man; children sometimes did as much, and very commonly did twelve hours a day. When meddlesome busybodies suggested that perhaps these hours were rather long, they were told that work kept adults from drink and children from mischief. When I was a child, shortly after urban working men had acquired the vote, certain public holidays were established by law, to the great indignation of the upper classes. I remember hearing an old Duchess say: 'What do the poor want with holidays? They ought to work.' People nowadays are less frank, but the sentiment persists, and is the source of much of our economic confusion. - -Let us, for a moment, consider the ethics of work frankly, without superstition. Every human being, of necessity, consumes, in the course of his life, a certain amount of the produce of human labor. Assuming, as we may, that labor is on the whole disagreeable, it is unjust that a man should consume more than he produces. Of course he may provide services rather than commodities, like a medical man, for example; but he should provide something in return for his board and lodging. to this extent, the duty of work must be admitted, but to this extent only. - -I shall not dwell upon the fact that, in all modern societies outside the USSR, many people escape even this minimum amount of work, namely all those who inherit money and all those who marry money. I do not think the fact that these people are allowed to be idle is nearly so harmful as the fact that wage-earners are expected to overwork or starve. - -If the ordinary wage-earner worked four hours a day, there would be enough for everybody and no unemployment -- assuming a certain very moderate amount of sensible organization. This idea shocks the well-to-do, because they are convinced that the poor would not know how to use so much leisure. In America men often work long hours even when they are well off; such men, naturally, are indignant at the idea of leisure for wage-earners, except as the grim punishment of unemployment; in fact, they dislike leisure even for their sons. Oddly enough, while they wish their sons to work so hard as to have no time to be civilized, they do not mind their wives and daughters having no work at all. the snobbish admiration of uselessness, which, in an aristocratic society, extends to both sexes, is, under a plutocracy, confined to women; this, however, does not make it any more in agreement with common sense. - -The wise use of leisure, it must be conceded, is a product of civilization and education. A man who has worked long hours all his life will become bored if he becomes suddenly idle. But without a considerable amount of leisure a man is cut off from many of the best things. There is no longer any reason why the bulk of the population should suffer this deprivation; only a foolish asceticism, usually vicarious, makes us continue to insist on work in excessive quantities now that the need no longer exists. - -In the new creed which controls the government of Russia, while there is much that is very different from the traditional teaching of the West, there are some things that are quite unchanged. The attitude of the governing classes, and especially of those who conduct educational propaganda, on the subject of the dignity of labor, is almost exactly that which the governing classes of the world have always preached to what were called the 'honest poor'. Industry, sobriety, willingness to work long hours for distant advantages, even submissiveness to authority, all these reappear; moreover authority still represents the will of the Ruler of the Universe, Who, however, is now called by a new name, Dialectical Materialism. - -The victory of the proletariat in Russia has some points in common with the victory of the feminists in some other countries. For ages, men had conceded the superior saintliness of women, and had consoled women for their inferiority by maintaining that saintliness is more desirable than power. At last the feminists decided that they would have both, since the pioneers among them believed all that the men had told them about the desirability of virtue, but not what they had told them about the worthlessness of political power. A similar thing has happened in Russia as regards manual work. For ages, the rich and their sycophants have written in praise of 'honest toil', have praised the simple life, have professed a religion which teaches that the poor are much more likely to go to heaven than the rich, and in general have tried to make manual workers believe that there is some special nobility about altering the position of matter in space, just as men tried to make women believe that they derived some special nobility from their sexual enslavement. In Russia, all this teaching about the excellence of manual work has been taken seriously, with the result that the manual worker is more honored than anyone else. What are, in essence, revivalist appeals are made, but not for the old purposes: they are made to secure shock workers for special tasks. Manual work is the ideal which is held before the young, and is the basis of all ethical teaching. - -For the present, possibly, this is all to the good. A large country, full of natural resources, awaits development, and has has to be developed with very little use of credit. In these circumstances, hard work is necessary, and is likely to bring a great reward. But what will happen when the point has been reached where everybody could be comfortable without working long hours? - -In the West, we have various ways of dealing with this problem. We have no attempt at economic justice, so that a large proportion of the total produce goes to a small minority of the population, many of whom do no work at all. Owing to the absence of any central control over production, we produce hosts of things that are not wanted. We keep a large percentage of the working population idle, because we can dispense with their labor by making the others overwork. When all these methods prove inadequate, we have a war: we cause a number of people to manufacture high explosives, and a number of others to explode them, as if we were children who had just discovered fireworks. By a combination of all these devices we manage, though with difficulty, to keep alive the notion that a great deal of severe manual work must be the lot of the average man. - -In Russia, owing to more economic justice and central control over production, the problem will have to be differently solved. the rational solution would be, as soon as the necessaries and elementary comforts can be provided for all, to reduce the hours of labor gradually, allowing a popular vote to decide, at each stage, whether more leisure or more goods were to be preferred. But, having taught the supreme virtue of hard work, it is difficult to see how the authorities can aim at a paradise in which there will be much leisure and little work. It seems more likely that they will find continually fresh schemes, by which present leisure is to be sacrificed to future productivity. I read recently of an ingenious plan put forward by Russian engineers, for making the White Sea and the northern coasts of Siberia warm, by putting a dam across the Kara Sea. An admirable project, but liable to postpone proletarian comfort for a generation, while the nobility of toil is being displayed amid the ice-fields and snowstorms of the Arctic Ocean. This sort of thing, if it happens, will be the result of regarding the virtue of hard work as an end in itself, rather than as a means to a state of affairs in which it is no longer needed. - -The fact is that moving matter about, while a certain amount of it is necessary to our existence, is emphatically not one of the ends of human life. If it were, we should have to consider every navvy superior to Shakespeare. We have been misled in this matter by two causes. One is the necessity of keeping the poor contented, which has led the rich, for thousands of years, to preach the dignity of labor, while taking care themselves to remain undignified in this respect. The other is the new pleasure in mechanism, which makes us delight in the astonishingly clever changes that we can produce on the earth's surface. Neither of these motives makes any great appeal to the actual worker. If you ask him what he thinks the best part of his life, he is not likely to say: 'I enjoy manual work because it makes me feel that I am fulfilling man's noblest task, and because I like to think how much man can transform his planet. It is true that my body demands periods of rest, which I have to fill in as best I may, but I am never so happy as when the morning comes and I can return to the toil from which my contentment springs.' I have never heard working men say this sort of thing. They consider work, as it should be considered, a necessary means to a livelihood, and it is from their leisure that they derive whatever happiness they may enjoy. - -It will be said that, while a little leisure is pleasant, men would not know how to fill their days if they had only four hours of work out of the twenty-four. In so far as this is true in the modern world, it is a condemnation of our civilization; it would not have been true at any earlier period. There was formerly a capacity for light-heartedness and play which has been to some extent inhibited by the cult of efficiency. The modern man thinks that everything ought to be done for the sake of something else, and never for its own sake. Serious-minded persons, for example, are continually condemning the habit of going to the cinema, and telling us that it leads the young into crime. But all the work that goes to producing a cinema is respectable, because it is work, and because it brings a money profit. The notion that the desirable activities are those that bring a profit has made everything topsy-turvy. The butcher who provides you with meat and the baker who provides you with bread are praiseworthy, because they are making money; but when you enjoy the food they have provided, you are merely frivolous, unless you eat only to get strength for your work. Broadly speaking, it is held that getting money is good and spending money is bad. Seeing that they are two sides of one transaction, this is absurd; one might as well maintain that keys are good, but keyholes are bad. Whatever merit there may be in the production of goods must be entirely derivative from the advantage to be obtained by consuming them. The individual, in our society, works for profit; but the social purpose of his work lies in the consumption of what he produces. It is this divorce between the individual and the social purpose of production that makes it so difficult for men to think clearly in a world in which profit-making is the incentive to industry. We think too much of production, and too little of consumption. One result is that we attach too little importance to enjoyment and simple happiness, and that we do not judge production by the pleasure that it gives to the consumer. - -When I suggest that working hours should be reduced to four, I am not meaning to imply that all the remaining time should necessarily be spent in pure frivolity. I mean that four hours' work a day should entitle a man to the necessities and elementary comforts of life, and that the rest of his time should be his to use as he might see fit. It is an essential part of any such social system that education should be carried further than it usually is at present, and should aim, in part, at providing tastes which would enable a man to use leisure intelligently. I am not thinking mainly of the sort of things that would be considered 'highbrow'. Peasant dances have died out except in remote rural areas, but the impulses which caused them to be cultivated must still exist in human nature. The pleasures of urban populations have become mainly passive: seeing cinemas, watching football matches, listening to the radio, and so on. This results from the fact that their active energies are fully taken up with work; if they had more leisure, they would again enjoy pleasures in which they took an active part. - -In the past, there was a small leisure class and a larger working class. The leisure class enjoyed advantages for which there was no basis in social justice; this necessarily made it oppressive, limited its sympathies, and caused it to invent theories by which to justify its privileges. These facts greatly diminished its excellence, but in spite of this drawback it contributed nearly the whole of what we call civilization. It cultivated the arts and discovered the sciences; it wrote the books, invented the philosophies, and refined social relations. Even the liberation of the oppressed has usually been inaugurated from above. Without the leisure class, mankind would never have emerged from barbarism. - -The method of a leisure class without duties was, however, extraordinarily wasteful. None of the members of the class had to be taught to be industrious, and the class as a whole was not exceptionally intelligent. The class might produce one Darwin, but against him had to be set tens of thousands of country gentlemen who never thought of anything more intelligent than fox-hunting and punishing poachers. At present, the universities are supposed to provide, in a more systematic way, what the leisure class provided accidentally and as a by-product. This is a great improvement, but it has certain drawbacks. University life is so different from life in the world at large that men who live in academic milieu tend to be unaware of the preoccupations and problems of ordinary men and women; moreover their ways of expressing themselves are usually such as to rob their opinions of the influence that they ought to have upon the general public. Another disadvantage is that in universities studies are organized, and the man who thinks of some original line of research is likely to be discouraged. Academic institutions, therefore, useful as they are, are not adequate guardians of the interests of civilization in a world where everyone outside their walls is too busy for unutilitarian pursuits. - -In a world where no one is compelled to work more than four hours a day, every person possessed of scientific curiosity will be able to indulge it, and every painter will be able to paint without starving, however excellent his pictures may be. Young writers will not be obliged to draw attention to themselves by sensational pot-boilers, with a view to acquiring the economic independence needed for monumental works, for which, when the time at last comes, they will have lost the taste and capacity. Men who, in their professional work, have become interested in some phase of economics or government, will be able to develop their ideas without the academic detachment that makes the work of university economists often seem lacking in reality. Medical men will have the time to learn about the progress of medicine, teachers will not be exasperatedly struggling to teach by routine methods things which they learnt in their youth, which may, in the interval, have been proved to be untrue. - -Above all, there will be happiness and joy of life, instead of frayed nerves, weariness, and dyspepsia. The work exacted will be enough to make leisure delightful, but not enough to produce exhaustion. Since men will not be tired in their spare time, they will not demand only such amusements as are passive and vapid. At least one per cent will probably devote the time not spent in professional work to pursuits of some public importance, and, since they will not depend upon these pursuits for their livelihood, their originality will be unhampered, and there will be no need to conform to the standards set by elderly pundits. But it is not only in these exceptional cases that the advantages of leisure will appear. Ordinary men and women, having the opportunity of a happy life, will become more kindly and less persecuting and less inclined to view others with suspicion. The taste for war will die out, partly for this reason, and partly because it will involve long and severe work for all. Good nature is, of all moral qualities, the one that the world needs most, and good nature is the result of ease and security, not of a life of arduous struggle. Modern methods of production have given us the possibility of ease and security for all; we have chosen, instead, to have overwork for some and starvation for others. Hitherto we have continued to be as energetic as we were before there were machines; in this we have been foolish, but there is no reason to go on being foolish forever. - -[1] Since then, members of the Communist Party have succeeded to this privilege of the warriors and priests. diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/test/wrap.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/test/wrap.js deleted file mode 100644 index 0cfb76d178..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/test/wrap.js +++ /dev/null @@ -1,31 +0,0 @@ -var assert = require('assert'); -var wordwrap = require('wordwrap'); - -var fs = require('fs'); -var idleness = fs.readFileSync(__dirname + '/idleness.txt', 'utf8'); - -exports.stop80 = function () { - var lines = wordwrap(80)(idleness).split(/\n/); - var words = idleness.split(/\s+/); - - lines.forEach(function (line) { - assert.ok(line.length <= 80, 'line > 80 columns'); - var chunks = line.match(/\S/) ? line.split(/\s+/) : []; - assert.deepEqual(chunks, words.splice(0, chunks.length)); - }); -}; - -exports.start20stop60 = function () { - var lines = wordwrap(20, 100)(idleness).split(/\n/); - var words = idleness.split(/\s+/); - - lines.forEach(function (line) { - assert.ok(line.length <= 100, 'line > 100 columns'); - var chunks = line - .split(/\s+/) - .filter(function (x) { return x.match(/\S/) }) - ; - assert.deepEqual(chunks, words.splice(0, chunks.length)); - assert.deepEqual(line.slice(0, 20), new Array(20 + 1).join(' ')); - }); -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/package.json deleted file mode 100644 index c81dca78c1..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "optimist", - "version": "0.3.4", - "description": "Light-weight option parsing with an argv hash. No optstrings attached.", - "main": "./index.js", - "directories": { - "lib": ".", - "test": "test", - "example": "example" - }, - "dependencies": { - "wordwrap": "~0.0.2" - }, - "devDependencies": { - "hashish": "~0.0.4", - "tap": "~0.2.4" - }, - "scripts": { - "test": "tap ./test/*.js" - }, - "repository": { - "type": "git", - "url": "http://github.com/substack/node-optimist.git" - }, - "keywords": [ - "argument", - "args", - "option", - "parser", - "parsing", - "cli", - "command" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT/X11", - "engine": { - "node": ">=0.4" - }, - "readme": "optimist\n========\n\nOptimist is a node.js library for option parsing for people who hate option\nparsing. More specifically, this module is for people who like all the --bells\nand -whistlz of program usage but think optstrings are a waste of time.\n\nWith optimist, option parsing doesn't have to suck (as much).\n\n[![build status](https://secure.travis-ci.org/substack/node-optimist.png)](http://travis-ci.org/substack/node-optimist)\n\nexamples\n========\n\nWith Optimist, the options are just a hash! No optstrings attached.\n-------------------------------------------------------------------\n\nxup.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist').argv;\n\nif (argv.rif - 5 * argv.xup > 7.138) {\n console.log('Buy more riffiwobbles');\n}\nelse {\n console.log('Sell the xupptumblers');\n}\n````\n\n***\n\n $ ./xup.js --rif=55 --xup=9.52\n Buy more riffiwobbles\n \n $ ./xup.js --rif 12 --xup 8.1\n Sell the xupptumblers\n\n![This one's optimistic.](http://substack.net/images/optimistic.png)\n\nBut wait! There's more! You can do short options:\n-------------------------------------------------\n \nshort.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist').argv;\nconsole.log('(%d,%d)', argv.x, argv.y);\n````\n\n***\n\n $ ./short.js -x 10 -y 21\n (10,21)\n\nAnd booleans, both long and short (and grouped):\n----------------------------------\n\nbool.js:\n\n````javascript\n#!/usr/bin/env node\nvar util = require('util');\nvar argv = require('optimist').argv;\n\nif (argv.s) {\n util.print(argv.fr ? 'Le chat dit: ' : 'The cat says: ');\n}\nconsole.log(\n (argv.fr ? 'miaou' : 'meow') + (argv.p ? '.' : '')\n);\n````\n\n***\n\n $ ./bool.js -s\n The cat says: meow\n \n $ ./bool.js -sp\n The cat says: meow.\n\n $ ./bool.js -sp --fr\n Le chat dit: miaou.\n\nAnd non-hypenated options too! Just use `argv._`!\n-------------------------------------------------\n \nnonopt.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist').argv;\nconsole.log('(%d,%d)', argv.x, argv.y);\nconsole.log(argv._);\n````\n\n***\n\n $ ./nonopt.js -x 6.82 -y 3.35 moo\n (6.82,3.35)\n [ 'moo' ]\n \n $ ./nonopt.js foo -x 0.54 bar -y 1.12 baz\n (0.54,1.12)\n [ 'foo', 'bar', 'baz' ]\n\nPlus, Optimist comes with .usage() and .demand()!\n-------------------------------------------------\n\ndivide.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist')\n .usage('Usage: $0 -x [num] -y [num]')\n .demand(['x','y'])\n .argv;\n\nconsole.log(argv.x / argv.y);\n````\n\n***\n \n $ ./divide.js -x 55 -y 11\n 5\n \n $ node ./divide.js -x 4.91 -z 2.51\n Usage: node ./divide.js -x [num] -y [num]\n\n Options:\n -x [required]\n -y [required]\n\n Missing required arguments: y\n\nEVEN MORE HOLY COW\n------------------\n\ndefault_singles.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist')\n .default('x', 10)\n .default('y', 10)\n .argv\n;\nconsole.log(argv.x + argv.y);\n````\n\n***\n\n $ ./default_singles.js -x 5\n 15\n\ndefault_hash.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist')\n .default({ x : 10, y : 10 })\n .argv\n;\nconsole.log(argv.x + argv.y);\n````\n\n***\n\n $ ./default_hash.js -y 7\n 17\n\nAnd if you really want to get all descriptive about it...\n---------------------------------------------------------\n\nboolean_single.js\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist')\n .boolean('v')\n .argv\n;\nconsole.dir(argv);\n````\n\n***\n\n $ ./boolean_single.js -v foo bar baz\n true\n [ 'bar', 'baz', 'foo' ]\n\nboolean_double.js\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist')\n .boolean(['x','y','z'])\n .argv\n;\nconsole.dir([ argv.x, argv.y, argv.z ]);\nconsole.dir(argv._);\n````\n\n***\n\n $ ./boolean_double.js -x -z one two three\n [ true, false, true ]\n [ 'one', 'two', 'three' ]\n\nOptimist is here to help...\n---------------------------\n\nYou can describe parameters for help messages and set aliases. Optimist figures\nout how to format a handy help string automatically.\n\nline_count.js\n\n````javascript\n#!/usr/bin/env node\nvar argv = require('optimist')\n .usage('Count the lines in a file.\\nUsage: $0')\n .demand('f')\n .alias('f', 'file')\n .describe('f', 'Load a file')\n .argv\n;\n\nvar fs = require('fs');\nvar s = fs.createReadStream(argv.file);\n\nvar lines = 0;\ns.on('data', function (buf) {\n lines += buf.toString().match(/\\n/g).length;\n});\n\ns.on('end', function () {\n console.log(lines);\n});\n````\n\n***\n\n $ node line_count.js\n Count the lines in a file.\n Usage: node ./line_count.js\n\n Options:\n -f, --file Load a file [required]\n\n Missing required arguments: f\n\n $ node line_count.js --file line_count.js \n 20\n \n $ node line_count.js -f line_count.js \n 20\n\nmethods\n=======\n\nBy itself,\n\n````javascript\nrequire('optimist').argv\n`````\n\nwill use `process.argv` array to construct the `argv` object.\n\nYou can pass in the `process.argv` yourself:\n\n````javascript\nrequire('optimist')([ '-x', '1', '-y', '2' ]).argv\n````\n\nor use .parse() to do the same thing:\n\n````javascript\nrequire('optimist').parse([ '-x', '1', '-y', '2' ])\n````\n\nThe rest of these methods below come in just before the terminating `.argv`.\n\n.alias(key, alias)\n------------------\n\nSet key names as equivalent such that updates to a key will propagate to aliases\nand vice-versa.\n\nOptionally `.alias()` can take an object that maps keys to aliases.\n\n.default(key, value)\n--------------------\n\nSet `argv[key]` to `value` if no option was specified on `process.argv`.\n\nOptionally `.default()` can take an object that maps keys to default values.\n\n.demand(key)\n------------\n\nIf `key` is a string, show the usage information and exit if `key` wasn't\nspecified in `process.argv`.\n\nIf `key` is a number, demand at least as many non-option arguments, which show\nup in `argv._`.\n\nIf `key` is an Array, demand each element.\n\n.describe(key, desc)\n--------------------\n\nDescribe a `key` for the generated usage information.\n\nOptionally `.describe()` can take an object that maps keys to descriptions.\n\n.options(key, opt)\n------------------\n\nInstead of chaining together `.alias().demand().default()`, you can specify\nkeys in `opt` for each of the chainable methods.\n\nFor example:\n\n````javascript\nvar argv = require('optimist')\n .options('f', {\n alias : 'file',\n default : '/etc/passwd',\n })\n .argv\n;\n````\n\nis the same as\n\n````javascript\nvar argv = require('optimist')\n .alias('f', 'file')\n .default('f', '/etc/passwd')\n .argv\n;\n````\n\nOptionally `.options()` can take an object that maps keys to `opt` parameters.\n\n.usage(message)\n---------------\n\nSet a usage message to show which commands to use. Inside `message`, the string\n`$0` will get interpolated to the current script name or node command for the\npresent script similar to how `$0` works in bash or perl.\n\n.check(fn)\n----------\n\nCheck that certain conditions are met in the provided arguments.\n\nIf `fn` throws or returns `false`, show the thrown error, usage information, and\nexit.\n\n.boolean(key)\n-------------\n\nInterpret `key` as a boolean. If a non-flag option follows `key` in\n`process.argv`, that string won't get set as the value of `key`.\n\nIf `key` never shows up as a flag in `process.arguments`, `argv[key]` will be\n`false`.\n\nIf `key` is an Array, interpret all the elements as booleans.\n\n.string(key)\n------------\n\nTell the parser logic not to interpret `key` as a number or boolean.\nThis can be useful if you need to preserve leading zeros in an input.\n\nIf `key` is an Array, interpret all the elements as strings.\n\n.wrap(columns)\n--------------\n\nFormat usage output to wrap at `columns` many columns.\n\n.help()\n-------\n\nReturn the generated usage string.\n\n.showHelp(fn=console.error)\n---------------------------\n\nPrint the usage data using `fn` for printing.\n\n.parse(args)\n------------\n\nParse `args` instead of `process.argv`. Returns the `argv` object.\n\n.argv\n-----\n\nGet the arguments as a plain old object.\n\nArguments without a corresponding flag show up in the `argv._` array.\n\nThe script name or node command is available at `argv.$0` similarly to how `$0`\nworks in bash or perl.\n\nparsing tricks\n==============\n\nstop parsing\n------------\n\nUse `--` to stop parsing flags and stuff the remainder into `argv._`.\n\n $ node examples/reflect.js -a 1 -b 2 -- -c 3 -d 4\n { _: [ '-c', '3', '-d', '4' ],\n '$0': 'node ./examples/reflect.js',\n a: 1,\n b: 2 }\n\nnegate fields\n-------------\n\nIf you want to explicity set a field to false instead of just leaving it\nundefined or to override a default you can do `--no-key`.\n\n $ node examples/reflect.js -a --no-b\n { _: [],\n '$0': 'node ./examples/reflect.js',\n a: true,\n b: false }\n\nnumbers\n-------\n\nEvery argument that looks like a number (`!isNaN(Number(arg))`) is converted to\none. This way you can just `net.createConnection(argv.port)` and you can add\nnumbers out of `argv` with `+` without having that mean concatenation,\nwhich is super frustrating.\n\nduplicates\n----------\n\nIf you specify a flag multiple times it will get turned into an array containing\nall the values in order.\n\n $ node examples/reflect.js -x 5 -x 8 -x 0\n { _: [],\n '$0': 'node ./examples/reflect.js',\n x: [ 5, 8, 0 ] }\n\ndot notation\n------------\n\nWhen you use dots (`.`s) in argument names, an implicit object path is assumed.\nThis lets you organize arguments into nested objects.\n\n $ node examples/reflect.js --foo.bar.baz=33 --foo.quux=5\n { _: [],\n '$0': 'node ./examples/reflect.js',\n foo: { bar: { baz: 33 }, quux: 5 } }\n\ninstallation\n============\n\nWith [npm](http://github.com/isaacs/npm), just do:\n npm install optimist\n \nor clone this project on github:\n\n git clone http://github.com/substack/node-optimist.git\n\nTo run the tests with [expresso](http://github.com/visionmedia/expresso),\njust do:\n \n expresso\n\ninspired By\n===========\n\nThis module is loosely inspired by Perl's\n[Getopt::Casual](http://search.cpan.org/~photo/Getopt-Casual-0.13.1/Casual.pm).\n", - "_id": "optimist@0.3.4", - "_from": "optimist@~0.3.4" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/_.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/_.js deleted file mode 100644 index d9c58b3688..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/_.js +++ /dev/null @@ -1,71 +0,0 @@ -var spawn = require('child_process').spawn; -var test = require('tap').test; - -test('dotSlashEmpty', testCmd('./bin.js', [])); - -test('dotSlashArgs', testCmd('./bin.js', [ 'a', 'b', 'c' ])); - -test('nodeEmpty', testCmd('node bin.js', [])); - -test('nodeArgs', testCmd('node bin.js', [ 'x', 'y', 'z' ])); - -test('whichNodeEmpty', function (t) { - var which = spawn('which', ['node']); - - which.stdout.on('data', function (buf) { - t.test( - testCmd(buf.toString().trim() + ' bin.js', []) - ); - t.end(); - }); - - which.stderr.on('data', function (err) { - assert.error(err); - t.end(); - }); -}); - -test('whichNodeArgs', function (t) { - var which = spawn('which', ['node']); - - which.stdout.on('data', function (buf) { - t.test( - testCmd(buf.toString().trim() + ' bin.js', [ 'q', 'r' ]) - ); - t.end(); - }); - - which.stderr.on('data', function (err) { - t.error(err); - t.end(); - }); -}); - -function testCmd (cmd, args) { - - return function (t) { - var to = setTimeout(function () { - assert.fail('Never got stdout data.') - }, 5000); - - var oldDir = process.cwd(); - process.chdir(__dirname + '/_'); - - var cmds = cmd.split(' '); - - var bin = spawn(cmds[0], cmds.slice(1).concat(args.map(String))); - process.chdir(oldDir); - - bin.stderr.on('data', function (err) { - t.error(err); - t.end(); - }); - - bin.stdout.on('data', function (buf) { - clearTimeout(to); - var _ = JSON.parse(buf.toString()); - t.same(_.map(String), args.map(String)); - t.end(); - }); - }; -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/_/argv.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/_/argv.js deleted file mode 100644 index 3d096062ca..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/_/argv.js +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env node -console.log(JSON.stringify(process.argv)); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/_/bin.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/_/bin.js deleted file mode 100755 index 4a18d85f3c..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/_/bin.js +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env node -var argv = require('../../index').argv -console.log(JSON.stringify(argv._)); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/parse.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/parse.js deleted file mode 100644 index d9a37abb1a..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/parse.js +++ /dev/null @@ -1,420 +0,0 @@ -var optimist = require('../index'); -var path = require('path'); -var test = require('tap').test; - -var expresso = 'node ./parse.js'; - -test('short boolean', function (t) { - var parse = optimist.parse([ '-b' ]); - t.same(parse, { b : true, _ : [], $0 : expresso }); - t.same(typeof parse.b, 'boolean'); - t.end(); -}); - -test('long boolean', function (t) { - t.same( - optimist.parse([ '--bool' ]), - { bool : true, _ : [], $0 : expresso } - ); - t.end(); -}); - -test('bare', function (t) { - t.same( - optimist.parse([ 'foo', 'bar', 'baz' ]), - { _ : [ 'foo', 'bar', 'baz' ], $0 : expresso } - ); - t.end(); -}); - -test('short group', function (t) { - t.same( - optimist.parse([ '-cats' ]), - { c : true, a : true, t : true, s : true, _ : [], $0 : expresso } - ); - t.end(); -}); - -test('short group next', function (t) { - t.same( - optimist.parse([ '-cats', 'meow' ]), - { c : true, a : true, t : true, s : 'meow', _ : [], $0 : expresso } - ); - t.end(); -}); - -test('short capture', function (t) { - t.same( - optimist.parse([ '-h', 'localhost' ]), - { h : 'localhost', _ : [], $0 : expresso } - ); - t.end(); -}); - -test('short captures', function (t) { - t.same( - optimist.parse([ '-h', 'localhost', '-p', '555' ]), - { h : 'localhost', p : 555, _ : [], $0 : expresso } - ); - t.end(); -}); - -test('long capture sp', function (t) { - t.same( - optimist.parse([ '--pow', 'xixxle' ]), - { pow : 'xixxle', _ : [], $0 : expresso } - ); - t.end(); -}); - -test('long capture eq', function (t) { - t.same( - optimist.parse([ '--pow=xixxle' ]), - { pow : 'xixxle', _ : [], $0 : expresso } - ); - t.end() -}); - -test('long captures sp', function (t) { - t.same( - optimist.parse([ '--host', 'localhost', '--port', '555' ]), - { host : 'localhost', port : 555, _ : [], $0 : expresso } - ); - t.end(); -}); - -test('long captures eq', function (t) { - t.same( - optimist.parse([ '--host=localhost', '--port=555' ]), - { host : 'localhost', port : 555, _ : [], $0 : expresso } - ); - t.end(); -}); - -test('mixed short bool and capture', function (t) { - t.same( - optimist.parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), - { - f : true, p : 555, h : 'localhost', - _ : [ 'script.js' ], $0 : expresso, - } - ); - t.end(); -}); - -test('short and long', function (t) { - t.same( - optimist.parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), - { - f : true, p : 555, h : 'localhost', - _ : [ 'script.js' ], $0 : expresso, - } - ); - t.end(); -}); - -test('no', function (t) { - t.same( - optimist.parse([ '--no-moo' ]), - { moo : false, _ : [], $0 : expresso } - ); - t.end(); -}); - -test('multi', function (t) { - t.same( - optimist.parse([ '-v', 'a', '-v', 'b', '-v', 'c' ]), - { v : ['a','b','c'], _ : [], $0 : expresso } - ); - t.end(); -}); - -test('comprehensive', function (t) { - t.same( - optimist.parse([ - '--name=meowmers', 'bare', '-cats', 'woo', - '-h', 'awesome', '--multi=quux', - '--key', 'value', - '-b', '--bool', '--no-meep', '--multi=baz', - '--', '--not-a-flag', 'eek' - ]), - { - c : true, - a : true, - t : true, - s : 'woo', - h : 'awesome', - b : true, - bool : true, - key : 'value', - multi : [ 'quux', 'baz' ], - meep : false, - name : 'meowmers', - _ : [ 'bare', '--not-a-flag', 'eek' ], - $0 : expresso - } - ); - t.end(); -}); - -test('nums', function (t) { - var argv = optimist.parse([ - '-x', '1234', - '-y', '5.67', - '-z', '1e7', - '-w', '10f', - '--hex', '0xdeadbeef', - '789', - ]); - t.same(argv, { - x : 1234, - y : 5.67, - z : 1e7, - w : '10f', - hex : 0xdeadbeef, - _ : [ 789 ], - $0 : expresso - }); - t.same(typeof argv.x, 'number'); - t.same(typeof argv.y, 'number'); - t.same(typeof argv.z, 'number'); - t.same(typeof argv.w, 'string'); - t.same(typeof argv.hex, 'number'); - t.same(typeof argv._[0], 'number'); - t.end(); -}); - -test('flag boolean', function (t) { - var parse = optimist([ '-t', 'moo' ]).boolean(['t']).argv; - t.same(parse, { t : true, _ : [ 'moo' ], $0 : expresso }); - t.same(typeof parse.t, 'boolean'); - t.end(); -}); - -test('flag boolean value', function (t) { - var parse = optimist(['--verbose', 'false', 'moo', '-t', 'true']) - .boolean(['t', 'verbose']).default('verbose', true).argv; - - t.same(parse, { - verbose: false, - t: true, - _: ['moo'], - $0 : expresso - }); - - t.same(typeof parse.verbose, 'boolean'); - t.same(typeof parse.t, 'boolean'); - t.end(); -}); - -test('flag boolean default false', function (t) { - var parse = optimist(['moo']) - .boolean(['t', 'verbose']) - .default('verbose', false) - .default('t', false).argv; - - t.same(parse, { - verbose: false, - t: false, - _: ['moo'], - $0 : expresso - }); - - t.same(typeof parse.verbose, 'boolean'); - t.same(typeof parse.t, 'boolean'); - t.end(); - -}); - -test('boolean groups', function (t) { - var parse = optimist([ '-x', '-z', 'one', 'two', 'three' ]) - .boolean(['x','y','z']).argv; - - t.same(parse, { - x : true, - y : false, - z : true, - _ : [ 'one', 'two', 'three' ], - $0 : expresso - }); - - t.same(typeof parse.x, 'boolean'); - t.same(typeof parse.y, 'boolean'); - t.same(typeof parse.z, 'boolean'); - t.end(); -}); - -test('strings' , function (t) { - var s = optimist([ '-s', '0001234' ]).string('s').argv.s; - t.same(s, '0001234'); - t.same(typeof s, 'string'); - - var x = optimist([ '-x', '56' ]).string('x').argv.x; - t.same(x, '56'); - t.same(typeof x, 'string'); - t.end(); -}); - -test('stringArgs', function (t) { - var s = optimist([ ' ', ' ' ]).string('_').argv._; - t.same(s.length, 2); - t.same(typeof s[0], 'string'); - t.same(s[0], ' '); - t.same(typeof s[1], 'string'); - t.same(s[1], ' '); - t.end(); -}); - -test('slashBreak', function (t) { - t.same( - optimist.parse([ '-I/foo/bar/baz' ]), - { I : '/foo/bar/baz', _ : [], $0 : expresso } - ); - t.same( - optimist.parse([ '-xyz/foo/bar/baz' ]), - { x : true, y : true, z : '/foo/bar/baz', _ : [], $0 : expresso } - ); - t.end(); -}); - -test('alias', function (t) { - var argv = optimist([ '-f', '11', '--zoom', '55' ]) - .alias('z', 'zoom') - .argv - ; - t.equal(argv.zoom, 55); - t.equal(argv.z, argv.zoom); - t.equal(argv.f, 11); - t.end(); -}); - -test('multiAlias', function (t) { - var argv = optimist([ '-f', '11', '--zoom', '55' ]) - .alias('z', [ 'zm', 'zoom' ]) - .argv - ; - t.equal(argv.zoom, 55); - t.equal(argv.z, argv.zoom); - t.equal(argv.z, argv.zm); - t.equal(argv.f, 11); - t.end(); -}); - -test('boolean default true', function (t) { - var argv = optimist.options({ - sometrue: { - boolean: true, - default: true - } - }).argv; - - t.equal(argv.sometrue, true); - t.end(); -}); - -test('boolean default false', function (t) { - var argv = optimist.options({ - somefalse: { - boolean: true, - default: false - } - }).argv; - - t.equal(argv.somefalse, false); - t.end(); -}); - -test('nested dotted objects', function (t) { - var argv = optimist([ - '--foo.bar', '3', '--foo.baz', '4', - '--foo.quux.quibble', '5', '--foo.quux.o_O', - '--beep.boop' - ]).argv; - - t.same(argv.foo, { - bar : 3, - baz : 4, - quux : { - quibble : 5, - o_O : true - }, - }); - t.same(argv.beep, { boop : true }); - t.end(); -}); - -test('boolean and alias with chainable api', function (t) { - var aliased = [ '-h', 'derp' ]; - var regular = [ '--herp', 'derp' ]; - var opts = { - herp: { alias: 'h', boolean: true } - }; - var aliasedArgv = optimist(aliased) - .boolean('herp') - .alias('h', 'herp') - .argv; - var propertyArgv = optimist(regular) - .boolean('herp') - .alias('h', 'herp') - .argv; - var expected = { - herp: true, - h: true, - '_': [ 'derp' ], - '$0': expresso, - }; - - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.end(); -}); - -test('boolean and alias with options hash', function (t) { - var aliased = [ '-h', 'derp' ]; - var regular = [ '--herp', 'derp' ]; - var opts = { - herp: { alias: 'h', boolean: true } - }; - var aliasedArgv = optimist(aliased) - .options(opts) - .argv; - var propertyArgv = optimist(regular).options(opts).argv; - var expected = { - herp: true, - h: true, - '_': [ 'derp' ], - '$0': expresso, - }; - - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - - t.end(); -}); - -test('boolean and alias using explicit true', function (t) { - var aliased = [ '-h', 'true' ]; - var regular = [ '--herp', 'true' ]; - var opts = { - herp: { alias: 'h', boolean: true } - }; - var aliasedArgv = optimist(aliased) - .boolean('h') - .alias('h', 'herp') - .argv; - var propertyArgv = optimist(regular) - .boolean('h') - .alias('h', 'herp') - .argv; - var expected = { - herp: true, - h: true, - '_': [ ], - '$0': expresso, - }; - - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.end(); -}); - diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/usage.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/usage.js deleted file mode 100644 index 300454c1e6..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/usage.js +++ /dev/null @@ -1,292 +0,0 @@ -var Hash = require('hashish'); -var optimist = require('../index'); -var test = require('tap').test; - -test('usageFail', function (t) { - var r = checkUsage(function () { - return optimist('-x 10 -z 20'.split(' ')) - .usage('Usage: $0 -x NUM -y NUM') - .demand(['x','y']) - .argv; - }); - t.same( - r.result, - { x : 10, z : 20, _ : [], $0 : './usage' } - ); - - t.same( - r.errors.join('\n').split(/\n+/), - [ - 'Usage: ./usage -x NUM -y NUM', - 'Options:', - ' -x [required]', - ' -y [required]', - 'Missing required arguments: y', - ] - ); - t.same(r.logs, []); - t.ok(r.exit); - t.end(); -}); - - -test('usagePass', function (t) { - var r = checkUsage(function () { - return optimist('-x 10 -y 20'.split(' ')) - .usage('Usage: $0 -x NUM -y NUM') - .demand(['x','y']) - .argv; - }); - t.same(r, { - result : { x : 10, y : 20, _ : [], $0 : './usage' }, - errors : [], - logs : [], - exit : false, - }); - t.end(); -}); - -test('checkPass', function (t) { - var r = checkUsage(function () { - return optimist('-x 10 -y 20'.split(' ')) - .usage('Usage: $0 -x NUM -y NUM') - .check(function (argv) { - if (!('x' in argv)) throw 'You forgot about -x'; - if (!('y' in argv)) throw 'You forgot about -y'; - }) - .argv; - }); - t.same(r, { - result : { x : 10, y : 20, _ : [], $0 : './usage' }, - errors : [], - logs : [], - exit : false, - }); - t.end(); -}); - -test('checkFail', function (t) { - var r = checkUsage(function () { - return optimist('-x 10 -z 20'.split(' ')) - .usage('Usage: $0 -x NUM -y NUM') - .check(function (argv) { - if (!('x' in argv)) throw 'You forgot about -x'; - if (!('y' in argv)) throw 'You forgot about -y'; - }) - .argv; - }); - - t.same( - r.result, - { x : 10, z : 20, _ : [], $0 : './usage' } - ); - - t.same( - r.errors.join('\n').split(/\n+/), - [ - 'Usage: ./usage -x NUM -y NUM', - 'You forgot about -y' - ] - ); - - t.same(r.logs, []); - t.ok(r.exit); - t.end(); -}); - -test('checkCondPass', function (t) { - function checker (argv) { - return 'x' in argv && 'y' in argv; - } - - var r = checkUsage(function () { - return optimist('-x 10 -y 20'.split(' ')) - .usage('Usage: $0 -x NUM -y NUM') - .check(checker) - .argv; - }); - t.same(r, { - result : { x : 10, y : 20, _ : [], $0 : './usage' }, - errors : [], - logs : [], - exit : false, - }); - t.end(); -}); - -test('checkCondFail', function (t) { - function checker (argv) { - return 'x' in argv && 'y' in argv; - } - - var r = checkUsage(function () { - return optimist('-x 10 -z 20'.split(' ')) - .usage('Usage: $0 -x NUM -y NUM') - .check(checker) - .argv; - }); - - t.same( - r.result, - { x : 10, z : 20, _ : [], $0 : './usage' } - ); - - t.same( - r.errors.join('\n').split(/\n+/).join('\n'), - 'Usage: ./usage -x NUM -y NUM\n' - + 'Argument check failed: ' + checker.toString() - ); - - t.same(r.logs, []); - t.ok(r.exit); - t.end(); -}); - -test('countPass', function (t) { - var r = checkUsage(function () { - return optimist('1 2 3 --moo'.split(' ')) - .usage('Usage: $0 [x] [y] [z] {OPTIONS}') - .demand(3) - .argv; - }); - t.same(r, { - result : { _ : [ '1', '2', '3' ], moo : true, $0 : './usage' }, - errors : [], - logs : [], - exit : false, - }); - t.end(); -}); - -test('countFail', function (t) { - var r = checkUsage(function () { - return optimist('1 2 --moo'.split(' ')) - .usage('Usage: $0 [x] [y] [z] {OPTIONS}') - .demand(3) - .argv; - }); - t.same( - r.result, - { _ : [ '1', '2' ], moo : true, $0 : './usage' } - ); - - t.same( - r.errors.join('\n').split(/\n+/), - [ - 'Usage: ./usage [x] [y] [z] {OPTIONS}', - 'Not enough non-option arguments: got 2, need at least 3', - ] - ); - - t.same(r.logs, []); - t.ok(r.exit); - t.end(); -}); - -test('defaultSingles', function (t) { - var r = checkUsage(function () { - return optimist('--foo 50 --baz 70 --powsy'.split(' ')) - .default('foo', 5) - .default('bar', 6) - .default('baz', 7) - .argv - ; - }); - t.same(r.result, { - foo : '50', - bar : 6, - baz : '70', - powsy : true, - _ : [], - $0 : './usage', - }); - t.end(); -}); - -test('defaultAliases', function (t) { - var r = checkUsage(function () { - return optimist('') - .alias('f', 'foo') - .default('f', 5) - .argv - ; - }); - t.same(r.result, { - f : '5', - foo : '5', - _ : [], - $0 : './usage', - }); - t.end(); -}); - -test('defaultHash', function (t) { - var r = checkUsage(function () { - return optimist('--foo 50 --baz 70'.split(' ')) - .default({ foo : 10, bar : 20, quux : 30 }) - .argv - ; - }); - t.same(r.result, { - _ : [], - $0 : './usage', - foo : 50, - baz : 70, - bar : 20, - quux : 30, - }); - t.end(); -}); - -test('rebase', function (t) { - t.equal( - optimist.rebase('/home/substack', '/home/substack/foo/bar/baz'), - './foo/bar/baz' - ); - t.equal( - optimist.rebase('/home/substack/foo/bar/baz', '/home/substack'), - '../../..' - ); - t.equal( - optimist.rebase('/home/substack/foo', '/home/substack/pow/zoom.txt'), - '../pow/zoom.txt' - ); - t.end(); -}); - -function checkUsage (f) { - - var exit = false; - - process._exit = process.exit; - process._env = process.env; - process._argv = process.argv; - - process.exit = function (t) { exit = true }; - process.env = Hash.merge(process.env, { _ : 'node' }); - process.argv = [ './usage' ]; - - var errors = []; - var logs = []; - - console._error = console.error; - console.error = function (msg) { errors.push(msg) }; - console._log = console.log; - console.log = function (msg) { logs.push(msg) }; - - var result = f(); - - process.exit = process._exit; - process.env = process._env; - process.argv = process._argv; - - console.error = console._error; - console.log = console._log; - - return { - errors : errors, - logs : logs, - exit : exit, - result : result, - }; -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/.travis.yml b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/.travis.yml deleted file mode 100644 index f1d0f13c8a..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.4 - - 0.6 diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/README.markdown b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/README.markdown deleted file mode 100644 index 4b90cb7754..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/README.markdown +++ /dev/null @@ -1,47 +0,0 @@ -resolve -======= - -Implements the [node `require.resolve()` -algorithm](http://nodejs.org/docs/v0.4.8/api/all.html#all_Together...) -except you can pass in the file to compute paths relatively to along with your -own `require.paths` without updating the global copy (which doesn't even work in -node `>=0.5`). - -[![build status](https://secure.travis-ci.org/substack/node-resolve.png)](http://travis-ci.org/substack/node-resolve) - -methods -======= - -var resolve = require('resolve'); - -resolve.sync(pkg, opts) ------------------------ - -Synchronously search for the package/filename string `pkg` -according to the [`require.resolve()` -algorithm](http://nodejs.org/docs/v0.4.8/api/all.html#all_Together...) -for `X=pkg` and `Y=opts.basedir`. - -Default values for `opts`: - -````javascript -{ - paths : [], - basedir : __dirname, - extensions : [ '.js' ], - readFileSync : fs.readFileSync, - isFile : function (file) { - return path.existSync(file) && fs.statSync(file).isFile() - } -} -```` - -Optionally you can specify a `opts.packageFilter` function to map the contents -of `JSON.parse()`'d package.json files. - -If nothing is found, all of the directories in `opts.paths` are searched. - -resolve.isCore(pkg) -------------------- - -Return whether a package is in core. diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/index.js deleted file mode 100644 index 16b844bbf1..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/index.js +++ /dev/null @@ -1,105 +0,0 @@ -var fs = require('fs'); -var path = require('path'); - -// taken from `ls -1 lib` in node 0.6.11 -var core = exports.core = [ - 'assert', 'buffer_ieee754', 'buffer', 'child_process', 'cluster', 'console', - 'constants', 'crypto', '_debugger', 'dgram', 'dns', 'events', 'freelist', - 'fs', 'http', 'https', '_linklist', 'module', 'net', 'os', 'path', - 'punycode', 'querystring', 'readline', 'repl', 'stream', 'string_decoder', - 'sys', 'timers', 'tls', 'tty', 'url', 'util', 'vm', 'zlib' -].reduce(function (acc, x) { acc[x] = true; return acc }, {}); - -exports.isCore = function (x) { return core[x] }; - -exports.sync = function (x, opts) { - if (core[x]) return x; - - if (!opts) opts = {}; - var isFile = opts.isFile || function (file) { - return path.existsSync(file) && fs.statSync(file).isFile() - }; - var readFileSync = opts.readFileSync || fs.readFileSync; - - var extensions = opts.extensions || [ '.js' ]; - var y = opts.basedir - || path.dirname(require.cache[__filename].parent.filename) - ; - - opts.paths = opts.paths || []; - - if (x.match(/^(?:\.\.?\/|\/|([A-Za-z]:)?\\)/)) { - var m = loadAsFileSync(path.resolve(y, x)) - || loadAsDirectorySync(path.resolve(y, x)); - if (m) return m; - } - - var n = loadNodeModulesSync(x, y); - if (n) return n; - - throw new Error("Cannot find module '" + x + "'"); - - function loadAsFileSync (x) { - if (isFile(x)) { - return x; - } - - for (var i = 0; i < extensions.length; i++) { - var file = x + extensions[i]; - if (isFile(file)) { - return file; - } - } - } - - function loadAsDirectorySync (x) { - var pkgfile = path.join(x, '/package.json'); - if (isFile(pkgfile)) { - var body = readFileSync(pkgfile, 'utf8'); - try { - var pkg = JSON.parse(body); - if (opts.packageFilter) { - pkg = opts.packageFilter(pkg); - } - - if (pkg.main) { - var m = loadAsFileSync(path.resolve(x, pkg.main)); - if (m) return m; - } - } - catch (err) {} - } - - return loadAsFileSync(path.join( x, '/index')); - } - - function loadNodeModulesSync (x, start) { - var dirs = nodeModulesPathsSync(start); - for (var i = 0; i < dirs.length; i++) { - var dir = dirs[i]; - var m = loadAsFileSync(path.join( dir, '/', x)); - if (m) return m; - var n = loadAsDirectorySync(path.join( dir, '/', x )); - if (n) return n; - } - } - - function nodeModulesPathsSync (start) { - var splitRe = process.platform === 'win32' ? /[\/\\]/ : /\/+/; - var parts = start.split(splitRe); - - var dirs = []; - for (var i = parts.length - 1; i >= 0; i--) { - if (parts[i] === 'node_modules') continue; - var dir = path.join( - path.join.apply(path, parts.slice(0, i + 1)), - 'node_modules' - ); - if (!parts[0].match(/([A-Za-z]:)/)) { - dir = '/' + dir; - } - dirs.push(dir); - } - return opts.paths.concat(dirs); - } -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/package.json deleted file mode 100644 index 2dcc36aa4f..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "resolve", - "description": "A more hookable require.resolve() implementation", - "version": "0.2.2", - "repository": { - "type": "git", - "url": "git://github.com/substack/node-resolve.git" - }, - "main": "index.js", - "keywords": [ - "resolve", - "require", - "node", - "module" - ], - "directories": { - "lib": ".", - "example": "example", - "test": "test" - }, - "scripts": { - "test": "tap test/*.js" - }, - "dependencies": {}, - "devDependencies": { - "tap": "~0.2.4" - }, - "engines": { - "node": ">=0.4.0" - }, - "license": "MIT", - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "readme": "resolve\n=======\n\nImplements the [node `require.resolve()`\nalgorithm](http://nodejs.org/docs/v0.4.8/api/all.html#all_Together...)\nexcept you can pass in the file to compute paths relatively to along with your\nown `require.paths` without updating the global copy (which doesn't even work in\nnode `>=0.5`).\n\n[![build status](https://secure.travis-ci.org/substack/node-resolve.png)](http://travis-ci.org/substack/node-resolve)\n\nmethods\n=======\n\nvar resolve = require('resolve');\n\nresolve.sync(pkg, opts)\n-----------------------\n\nSynchronously search for the package/filename string `pkg`\naccording to the [`require.resolve()`\nalgorithm](http://nodejs.org/docs/v0.4.8/api/all.html#all_Together...)\nfor `X=pkg` and `Y=opts.basedir`.\n\nDefault values for `opts`:\n\n````javascript\n{\n paths : [],\n basedir : __dirname,\n extensions : [ '.js' ],\n readFileSync : fs.readFileSync,\n isFile : function (file) {\n return path.existSync(file) && fs.statSync(file).isFile()\n }\n}\n````\n\nOptionally you can specify a `opts.packageFilter` function to map the contents\nof `JSON.parse()`'d package.json files.\n\nIf nothing is found, all of the directories in `opts.paths` are searched.\n\nresolve.isCore(pkg)\n-------------------\n\nReturn whether a package is in core.\n", - "_id": "resolve@0.2.2", - "dist": { - "shasum": "bee5e6c8a011e5ffa04b8d6e0046ec9cabc5102a" - }, - "_from": "resolve@~0.2.0" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/core.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/core.js deleted file mode 100644 index 88a510cd11..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/core.js +++ /dev/null @@ -1,12 +0,0 @@ -var test = require('tap').test; -var resolve = require('../'); - -test('core modules', function (t) { - t.ok(resolve.isCore('fs')); - t.ok(resolve.isCore('net')); - t.ok(resolve.isCore('http')); - - t.ok(!resolve.isCore('seq')); - t.ok(!resolve.isCore('../')); - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/filter.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/filter.js deleted file mode 100644 index 8856c01a88..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/filter.js +++ /dev/null @@ -1,15 +0,0 @@ -var test = require('tap').test; -var resolve = require('../'); - -test('filter', function (t) { - var dir = __dirname + '/resolver'; - var res = resolve.sync('./baz', { - basedir : dir, - packageFilter : function (pkg) { - pkg.main = 'doom' - return pkg; - } - }); - t.equal(res, dir + '/baz/doom.js'); - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/mock.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/mock.js deleted file mode 100644 index c822e3eaa1..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/mock.js +++ /dev/null @@ -1,64 +0,0 @@ -var test = require('tap').test; -var resolve = require('../'); - -test('mock', function (t) { - t.plan(3); - - var files = { - '/foo/bar/baz.js' : 'beep' - }; - - function opts (basedir) { - return { - basedir : basedir, - isFile : function (file) { - return files.hasOwnProperty(file) - }, - readFileSync : function (file) { - return files[file] - } - } - } - - t.equal( - resolve.sync('./baz', opts('/foo/bar')), - '/foo/bar/baz.js' - ); - - t.equal( - resolve.sync('./baz.js', opts('/foo/bar')), - '/foo/bar/baz.js' - ); - - t.throws(function () { - resolve.sync('baz', opts('/foo/bar')); - }); -}); - -test('mock package', function (t) { - t.plan(1); - - var files = { - '/foo/node_modules/bar/baz.js' : 'beep', - '/foo/node_modules/bar/package.json' : JSON.stringify({ - main : './baz.js' - }) - }; - - function opts (basedir) { - return { - basedir : basedir, - isFile : function (file) { - return files.hasOwnProperty(file) - }, - readFileSync : function (file) { - return files[file] - } - } - } - - t.equal( - resolve.sync('bar', opts('/foo')), - '/foo/node_modules/bar/baz.js' - ); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver.js deleted file mode 100644 index 80f5aa55c0..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver.js +++ /dev/null @@ -1,157 +0,0 @@ -var test = require('tap').test; -var resolve = require('../'); - -test('foo', function (t) { - var dir = __dirname + '/resolver'; - - t.equal( - resolve.sync('./foo', { basedir : dir }), - dir + '/foo.js' - ); - - t.equal( - resolve.sync('./foo.js', { basedir : dir }), - dir + '/foo.js' - ); - - t.throws(function () { - resolve.sync('foo', { basedir : dir }); - }); - - t.end(); -}); - -test('bar', function (t) { - var dir = __dirname + '/resolver'; - - t.equal( - resolve.sync('foo', { basedir : dir + '/bar' }), - dir + '/bar/node_modules/foo/index.js' - ); - t.end(); -}); - -test('baz', function (t) { - var dir = __dirname + '/resolver'; - - t.equal( - resolve.sync('./baz', { basedir : dir }), - dir + '/baz/quux.js' - ); - t.end(); -}); - -test('biz', function (t) { - var dir = __dirname + '/resolver/biz/node_modules'; - t.equal( - resolve.sync('./grux', { basedir : dir }), - dir + '/grux/index.js' - ); - - t.equal( - resolve.sync('tiv', { basedir : dir + '/grux' }), - dir + '/tiv/index.js' - ); - - t.equal( - resolve.sync('grux', { basedir : dir + '/tiv' }), - dir + '/grux/index.js' - ); - t.end(); -}); - -test('normalize', function (t) { - var dir = __dirname + '/resolver/biz/node_modules/grux'; - t.equal( - resolve.sync('../grux', { basedir : dir }), - dir + '/index.js' - ); - t.end(); -}); - -test('cup', function (t) { - var dir = __dirname + '/resolver'; - t.equal( - resolve.sync('./cup', { - basedir : dir, - extensions : [ '.js', '.coffee' ] - }), - dir + '/cup.coffee' - ); - - t.equal( - resolve.sync('./cup.coffee', { - basedir : dir - }), - dir + '/cup.coffee' - ); - - t.throws(function () { - resolve.sync('./cup', { - basedir : dir, - extensions : [ '.js' ] - }) - }); - - t.end(); -}); - -test('mug', function (t) { - var dir = __dirname + '/resolver'; - t.equal( - resolve.sync('./mug', { basedir : dir }), - dir + '/mug.js' - ); - - t.equal( - resolve.sync('./mug', { - basedir : dir, - extensions : [ '.coffee', '.js' ] - }), - dir + '/mug.coffee' - ); - - t.equal( - resolve.sync('./mug', { - basedir : dir, - extensions : [ '.js', '.coffee' ] - }), - dir + '/mug.js' - ); - - t.end(); -}); - -test('other path', function (t) { - var resolverDir = __dirname + '/resolver'; - var dir = resolverDir + '/bar'; - var otherDir = resolverDir + '/other_path'; - - var path = require('path'); - - t.equal( - resolve.sync('root', { - basedir : dir, - paths: [otherDir] }), - resolverDir + '/other_path/root.js' - ); - - t.equal( - resolve.sync('lib/other-lib', { - basedir : dir, - paths: [otherDir] }), - resolverDir + '/other_path/lib/other-lib.js' - ); - - t.throws(function () { - resolve.sync('root', { basedir : dir, }); - }); - - t.throws(function () { - resolve.sync('zzz', { - basedir : dir, - paths: [otherDir] }); - }); - - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js deleted file mode 100644 index bd816eaba4..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 1; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/baz/doom.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/baz/doom.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/baz/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/baz/package.json deleted file mode 100644 index 6b81dcddfc..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/baz/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main" : "quux.js" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/baz/quux.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/baz/quux.js deleted file mode 100644 index bd816eaba4..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/baz/quux.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 1; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js deleted file mode 100644 index 49960555ab..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('tiv') * 100; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js deleted file mode 100644 index 690aad34a4..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 3; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/cup.coffee b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/cup.coffee deleted file mode 100644 index 8b13789179..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/cup.coffee +++ /dev/null @@ -1 +0,0 @@ - diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/foo.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/foo.js deleted file mode 100644 index bd816eaba4..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/foo.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 1; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/mug.coffee b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/mug.coffee deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/mug.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/mug.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/other_path/lib/other-lib.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/other_path/lib/other-lib.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/other_path/root.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/other_path/root.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/README.markdown b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/README.markdown deleted file mode 100644 index 6f1ff9bcc0..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/README.markdown +++ /dev/null @@ -1,103 +0,0 @@ -vm-browserify -============= - -Emulate node's vm module for the browser. - -example -======= - -Just write some client-side javascript: - -``` js -var vm = require('vm'); - -$(function () { - var res = vm.runInNewContext('a + 5', { a : 100 }); - $('#res').text(res); -}); -``` - -compile it with [browserify](http://github.com/substack/node-browserify): - -``` -browserify entry.js -o bundle.js -``` - -then whip up some html: - -``` html - - - - - - - result = - - -``` - -and when you load the page you should see: - -``` -result = 105 -``` - -methods -======= - -vm.runInNewContext(code, context={}) ------------------------------------- - -Evaluate some `code` in a new iframe with a `context`. - -Contexts are like wrapping your code in a `with()` except slightly less terrible -because the code is sandboxed into a new iframe. - -browser compatability -===================== - -All modern browsers are supported. - -If you have a [browserling](http://browserling.com) account, -from the testling/ directory just do: - -``` -$ ./test.sh substack@gmail.com -Enter host password for user 'substack@gmail.com': -chrome/17.0: - vmRunInNewContext ................................. 5/5 - -iexplore/9.0: - vmRunInNewContext ................................. 5/5 - -firefox/10.0: - vmRunInNewContext ................................. 5/5 - -safari/5.1: - vmRunInNewContext ................................. 5/5 - -opera/11.6: - vmRunInNewContext ................................. 5/5 - -total ............................................... 25/25 -``` - -In IE8 and IE7, running `vm.runInNewContext()` more than once can cause the -browsers to hang for some reason. Otherwise they work too. - -install -======= - -This module is depended upon by browserify, so you should just be able to -`require('vm')` and it will just work. However if you want to use this module -directly you can install it with [npm](http://npmjs.org): - -``` -npm install vm-browserify -``` - -license -======= - -MIT/X11 diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/example/run/bundle.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/example/run/bundle.js deleted file mode 100644 index 5dbc43f41e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/example/run/bundle.js +++ /dev/null @@ -1,473 +0,0 @@ -var require = function (file, cwd) { - var resolved = require.resolve(file, cwd || '/'); - var mod = require.modules[resolved]; - if (!mod) throw new Error( - 'Failed to resolve module ' + file + ', tried ' + resolved - ); - var res = mod._cached ? mod._cached : mod(); - return res; -} - -require.paths = []; -require.modules = {}; -require.extensions = [".js",".coffee"]; - -require._core = { - 'assert': true, - 'events': true, - 'fs': true, - 'path': true, - 'vm': true -}; - -require.resolve = (function () { - return function (x, cwd) { - if (!cwd) cwd = '/'; - - if (require._core[x]) return x; - var path = require.modules.path(); - var y = cwd || '.'; - - if (x.match(/^(?:\.\.?\/|\/)/)) { - var m = loadAsFileSync(path.resolve(y, x)) - || loadAsDirectorySync(path.resolve(y, x)); - if (m) return m; - } - - var n = loadNodeModulesSync(x, y); - if (n) return n; - - throw new Error("Cannot find module '" + x + "'"); - - function loadAsFileSync (x) { - if (require.modules[x]) { - return x; - } - - for (var i = 0; i < require.extensions.length; i++) { - var ext = require.extensions[i]; - if (require.modules[x + ext]) return x + ext; - } - } - - function loadAsDirectorySync (x) { - x = x.replace(/\/+$/, ''); - var pkgfile = x + '/package.json'; - if (require.modules[pkgfile]) { - var pkg = require.modules[pkgfile](); - var b = pkg.browserify; - if (typeof b === 'object' && b.main) { - var m = loadAsFileSync(path.resolve(x, b.main)); - if (m) return m; - } - else if (typeof b === 'string') { - var m = loadAsFileSync(path.resolve(x, b)); - if (m) return m; - } - else if (pkg.main) { - var m = loadAsFileSync(path.resolve(x, pkg.main)); - if (m) return m; - } - } - - return loadAsFileSync(x + '/index'); - } - - function loadNodeModulesSync (x, start) { - var dirs = nodeModulesPathsSync(start); - for (var i = 0; i < dirs.length; i++) { - var dir = dirs[i]; - var m = loadAsFileSync(dir + '/' + x); - if (m) return m; - var n = loadAsDirectorySync(dir + '/' + x); - if (n) return n; - } - - var m = loadAsFileSync(x); - if (m) return m; - } - - function nodeModulesPathsSync (start) { - var parts; - if (start === '/') parts = [ '' ]; - else parts = path.normalize(start).split('/'); - - var dirs = []; - for (var i = parts.length - 1; i >= 0; i--) { - if (parts[i] === 'node_modules') continue; - var dir = parts.slice(0, i + 1).join('/') + '/node_modules'; - dirs.push(dir); - } - - return dirs; - } - }; -})(); - -require.alias = function (from, to) { - var path = require.modules.path(); - var res = null; - try { - res = require.resolve(from + '/package.json', '/'); - } - catch (err) { - res = require.resolve(from, '/'); - } - var basedir = path.dirname(res); - - var keys = (Object.keys || function (obj) { - var res = []; - for (var key in obj) res.push(key) - return res; - })(require.modules); - - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (key.slice(0, basedir.length + 1) === basedir + '/') { - var f = key.slice(basedir.length); - require.modules[to + f] = require.modules[basedir + f]; - } - else if (key === basedir) { - require.modules[to] = require.modules[basedir]; - } - } -}; - -require.define = function (filename, fn) { - var dirname = require._core[filename] - ? '' - : require.modules.path().dirname(filename) - ; - - var require_ = function (file) { - return require(file, dirname) - }; - require_.resolve = function (name) { - return require.resolve(name, dirname); - }; - require_.modules = require.modules; - require_.define = require.define; - var module_ = { exports : {} }; - - require.modules[filename] = function () { - require.modules[filename]._cached = module_.exports; - fn.call( - module_.exports, - require_, - module_, - module_.exports, - dirname, - filename - ); - require.modules[filename]._cached = module_.exports; - return module_.exports; - }; -}; - -if (typeof process === 'undefined') process = {}; - -if (!process.nextTick) process.nextTick = (function () { - var queue = []; - var canPost = typeof window !== 'undefined' - && window.postMessage && window.addEventListener - ; - - if (canPost) { - window.addEventListener('message', function (ev) { - if (ev.source === window && ev.data === 'browserify-tick') { - ev.stopPropagation(); - if (queue.length > 0) { - var fn = queue.shift(); - fn(); - } - } - }, true); - } - - return function (fn) { - if (canPost) { - queue.push(fn); - window.postMessage('browserify-tick', '*'); - } - else setTimeout(fn, 0); - }; -})(); - -if (!process.title) process.title = 'browser'; - -if (!process.binding) process.binding = function (name) { - if (name === 'evals') return require('vm') - else throw new Error('No such module') -}; - -if (!process.cwd) process.cwd = function () { return '.' }; - -require.define("path", function (require, module, exports, __dirname, __filename) { -function filter (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - if (fn(xs[i], i, xs)) res.push(xs[i]); - } - return res; -} - -// resolves . and .. elements in a path array with directory names there -// must be no slashes, empty elements, or device names (c:\) in the array -// (so also no leading and trailing slashes - it does not distinguish -// relative and absolute paths) -function normalizeArray(parts, allowAboveRoot) { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length; 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; -} - -// Regex to split a filename into [*, dir, basename, ext] -// posix version -var splitPathRe = /^(.+\/(?!$)|\/)?((?:.+?)?(\.[^.]*)?)$/; - -// path.resolve([from ...], to) -// posix version -exports.resolve = function() { -var resolvedPath = '', - resolvedAbsolute = false; - -for (var i = arguments.length; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) - ? arguments[i] - : process.cwd(); - - // Skip empty and invalid entries - if (typeof path !== 'string' || !path) { - continue; - } - - 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) - -// Normalize the path -resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { - return !!p; - }), !resolvedAbsolute).join('/'); - - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; -}; - -// path.normalize(path) -// posix version -exports.normalize = function(path) { -var isAbsolute = path.charAt(0) === '/', - trailingSlash = path.slice(-1) === '/'; - -// Normalize the path -path = normalizeArray(filter(path.split('/'), function(p) { - return !!p; - }), !isAbsolute).join('/'); - - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - - return (isAbsolute ? '/' : '') + path; -}; - - -// posix version -exports.join = function() { - var paths = Array.prototype.slice.call(arguments, 0); - return exports.normalize(filter(paths, function(p, index) { - return p && typeof p === 'string'; - }).join('/')); -}; - - -exports.dirname = function(path) { - var dir = splitPathRe.exec(path)[1] || ''; - var isWindows = false; - if (!dir) { - // No dirname - return '.'; - } else if (dir.length === 1 || - (isWindows && dir.length <= 3 && dir.charAt(1) === ':')) { - // It is just a slash or a drive letter with a slash - return dir; - } else { - // It is a full dirname, strip trailing slash - return dir.substring(0, dir.length - 1); - } -}; - - -exports.basename = function(path, ext) { - var f = splitPathRe.exec(path)[2] || ''; - // TODO: make this comparison case-insensitive on windows? - if (ext && f.substr(-1 * ext.length) === ext) { - f = f.substr(0, f.length - ext.length); - } - return f; -}; - - -exports.extname = function(path) { - return splitPathRe.exec(path)[3] || ''; -}; - -}); - -require.define("vm", function (require, module, exports, __dirname, __filename) { -var Object_keys = function (obj) { - if (Object.keys) return Object.keys(obj) - else { - var res = []; - for (var key in obj) res.push(key) - return res; - } -}; - -var forEach = function (xs, fn) { - if (xs.forEach) return xs.forEach(fn) - else for (var i = 0; i < xs.length; i++) { - fn(xs[i], i, xs); - } -}; - -var Script = exports.Script = function NodeScript (code) { - if (!(this instanceof Script)) return new Script(code); - this.code = code; -}; - -var iframe = document.createElement('iframe'); -if (!iframe.style) iframe.style = {}; -iframe.style.display = 'none'; - -var iframeCapable = true; // until proven otherwise -if (navigator.appName === 'Microsoft Internet Explorer') { - var m = navigator.appVersion.match(/\bMSIE (\d+\.\d+);/); - if (m && parseFloat(m[1]) <= 9.0) { - iframeCapable = false; - } -} - -Script.prototype.runInNewContext = function (context) { - if (!context) context = {}; - - if (!iframeCapable) { - var keys = Object_keys(context); - var args = []; - for (var i = 0; i < keys.length; i++) { - args.push(context[keys[i]]); - } - - var fn = new Function(keys, 'return ' + this.code); - return fn.apply(null, args); - } - - document.body.appendChild(iframe); - - var win = iframe.contentWindow - || (window.frames && window.frames[window.frames.length - 1]) - || window[window.length - 1] - ; - - forEach(Object_keys(context), function (key) { - win[key] = context[key]; - iframe[key] = context[key]; - }); - - if (win.eval) { - // chrome and ff can just .eval() - var res = win.eval(this.code); - } - else { - // this works in IE9 but not anything newer - iframe.setAttribute('src', - 'javascript:__browserifyVmResult=(' + this.code + ')' - ); - if ('__browserifyVmResult' in win) { - var res = win.__browserifyVmResult; - } - else { - iframeCapable = false; - res = this.runInThisContext(context); - } - } - - forEach(Object_keys(win), function (key) { - context[key] = win[key]; - }); - - document.body.removeChild(iframe); - - return res; -}; - -Script.prototype.runInThisContext = function () { - return eval(this.code); // maybe... -}; - -Script.prototype.runInContext = function (context) { - // seems to be just runInNewContext on magical context objects which are - // otherwise indistinguishable from objects except plain old objects - // for the parameter segfaults node - return this.runInNewContext(context); -}; - -forEach(Object_keys(Script.prototype), function (name) { - exports[name] = Script[name] = function (code) { - var s = Script(code); - return s[name].apply(s, [].slice.call(arguments, 1)); - }; -}); - -exports.createScript = function (code) { - return exports.Script(code); -}; - -exports.createContext = Script.createContext = function (context) { - // not really sure what this one does - // seems to just make a shallow copy - var copy = {}; - forEach(Object_keys(context), function (key) { - copy[key] = context[key]; - }); - return copy; -}; - -}); - -require.define("/entry.js", function (require, module, exports, __dirname, __filename) { - var vm = require('vm'); - -$(function () { - var res = vm.runInNewContext('a + 5', { a : 100 }); - $('#res').text(res); -}); - -}); -require("/entry.js"); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/example/run/entry.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/example/run/entry.js deleted file mode 100644 index c7d38918c6..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/example/run/entry.js +++ /dev/null @@ -1,6 +0,0 @@ -var vm = require('vm'); - -$(function () { - var res = vm.runInNewContext('a + 5', { a : 100 }); - $('#res').text(res); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/example/run/index.html b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/example/run/index.html deleted file mode 100644 index 1ea0942350..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/example/run/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - result = - - diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/example/run/server.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/example/run/server.js deleted file mode 100644 index 339d3eea09..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/example/run/server.js +++ /dev/null @@ -1,6 +0,0 @@ -var ecstatic = require('ecstatic')(__dirname); -var http = require('http'); -http.createServer(ecstatic).listen(8000); - -console.log('listening on :8000'); -console.log('# remember to run browserify entry.js -o bundle.js'); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/index.js deleted file mode 100644 index 816c828af3..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/index.js +++ /dev/null @@ -1,85 +0,0 @@ -var Object_keys = function (obj) { - if (Object.keys) return Object.keys(obj) - else { - var res = []; - for (var key in obj) res.push(key) - return res; - } -}; - -var forEach = function (xs, fn) { - if (xs.forEach) return xs.forEach(fn) - else for (var i = 0; i < xs.length; i++) { - fn(xs[i], i, xs); - } -}; - -var Script = exports.Script = function NodeScript (code) { - if (!(this instanceof Script)) return new Script(code); - this.code = code; -}; - -Script.prototype.runInNewContext = function (context) { - if (!context) context = {}; - - var iframe = document.createElement('iframe'); - if (!iframe.style) iframe.style = {}; - iframe.style.display = 'none'; - - document.body.appendChild(iframe); - - var win = iframe.contentWindow; - - forEach(Object_keys(context), function (key) { - win[key] = context[key]; - }); - - if (!win.eval && win.execScript) { - // win.eval() magically appears when this is called in IE: - win.execScript('null'); - } - - var res = win.eval(this.code); - - forEach(Object_keys(win), function (key) { - context[key] = win[key]; - }); - - document.body.removeChild(iframe); - - return res; -}; - -Script.prototype.runInThisContext = function () { - return eval(this.code); // maybe... -}; - -Script.prototype.runInContext = function (context) { - // seems to be just runInNewContext on magical context objects which are - // otherwise indistinguishable from objects except plain old objects - // for the parameter segfaults node - return this.runInNewContext(context); -}; - -forEach(Object_keys(Script.prototype), function (name) { - exports[name] = Script[name] = function (code) { - var s = Script(code); - return s[name].apply(s, [].slice.call(arguments, 1)); - }; -}); - -exports.createScript = function (code) { - return exports.Script(code); -}; - -exports.createContext = Script.createContext = function (context) { - // not really sure what this one does - // seems to just make a shallow copy - var copy = {}; - if(typeof context === 'object') { - forEach(Object_keys(context), function (key) { - copy[key] = context[key]; - }); - } - return copy; -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/package.json deleted file mode 100644 index 25418732eb..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "vm-browserify", - "version": "0.0.1", - "description": "vm module for the browser", - "main": "index.js", - "directories": { - "example": "example", - "test": "test" - }, - "repository": { - "type": "git", - "url": "http://github.com/substack/vm-browserify.git" - }, - "keywords": [ - "vm", - "browser", - "eval" - ], - "devDependencies": { - "tap": "~0.2.1", - "browserify": "1.9.x" - }, - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "scripts": { - "test": "tap test/*.js" - }, - "license": "MIT/X11", - "engine": { - "node": ">=0.4.0" - }, - "readme": "vm-browserify\n=============\n\nEmulate node's vm module for the browser.\n\nexample\n=======\n\nJust write some client-side javascript:\n\n``` js\nvar vm = require('vm');\n\n$(function () {\n var res = vm.runInNewContext('a + 5', { a : 100 });\n $('#res').text(res);\n});\n```\n\ncompile it with [browserify](http://github.com/substack/node-browserify):\n\n```\nbrowserify entry.js -o bundle.js\n```\n\nthen whip up some html:\n\n``` html\n\n \n \n \n \n \n result = \n \n\n```\n\nand when you load the page you should see:\n\n```\nresult = 105\n```\n\nmethods\n=======\n\nvm.runInNewContext(code, context={})\n------------------------------------\n\nEvaluate some `code` in a new iframe with a `context`.\n\nContexts are like wrapping your code in a `with()` except slightly less terrible\nbecause the code is sandboxed into a new iframe.\n\nbrowser compatability\n=====================\n\nAll modern browsers are supported.\n\nIf you have a [browserling](http://browserling.com) account,\nfrom the testling/ directory just do:\n\n```\n$ ./test.sh substack@gmail.com\nEnter host password for user 'substack@gmail.com':\nchrome/17.0:\n vmRunInNewContext ................................. 5/5\n\niexplore/9.0:\n vmRunInNewContext ................................. 5/5\n\nfirefox/10.0:\n vmRunInNewContext ................................. 5/5\n\nsafari/5.1:\n vmRunInNewContext ................................. 5/5\n\nopera/11.6:\n vmRunInNewContext ................................. 5/5\n\ntotal ............................................... 25/25\n```\n\nIn IE8 and IE7, running `vm.runInNewContext()` more than once can cause the\nbrowsers to hang for some reason. Otherwise they work too.\n\ninstall\n=======\n\nThis module is depended upon by browserify, so you should just be able to\n`require('vm')` and it will just work. However if you want to use this module\ndirectly you can install it with [npm](http://npmjs.org):\n\n```\nnpm install vm-browserify\n```\n\nlicense\n=======\n\nMIT/X11\n", - "_id": "vm-browserify@0.0.1", - "dist": { - "shasum": "df973b3f726dc33bf2c561144203849dd01ac21a" - }, - "_from": "vm-browserify@~0.0.0" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/testling/run.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/testling/run.js deleted file mode 100644 index f8cdf3eae7..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/testling/run.js +++ /dev/null @@ -1,22 +0,0 @@ -var test = require('testling'); -var vm = require('./'); - -test('vmRunInNewContext', function (t) { - t.plan(5); - - t.equal(vm.runInNewContext('a + 5', { a : 100 }), 105); - - (function () { - var vars = { x : 10 }; - t.equal(vm.runInNewContext('x++', vars), 10); - t.equal(vars.x, 11); - })(); - - (function () { - var vars = { x : 10 }; - t.equal(vm.runInNewContext('var y = 3; y + x++', vars), 13); - t.equal(vars.x, 11); - })(); - - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/testling/test.sh b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/testling/test.sh deleted file mode 100755 index 83e992f5c1..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/testling/test.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -if test -n "$1"; then - user="$1" -else - echo -n 'testling account: ' - read user -fi - -curl -sSNT <(tar -cf- ../index.js run.js 2>/dev/null) \ - 'http://testling.com/?main=run.js&browsers=chrome/17.0,iexplore/9.0,firefox/10.0,safari/5.1,opera/11.6' \ - -u "$user" diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/package.json deleted file mode 100644 index b633e601de..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "browserify", - "version": "1.13.2", - "description": "browser-side require() for js directories and npm modules", - "main": "index.js", - "bin": { - "browserify": "bin/cmd.js" - }, - "directories": { - "example": "example", - "test": "test" - }, - "repository": { - "type": "git", - "url": "http://github.com/substack/node-browserify.git" - }, - "keywords": [ - "browser", - "require", - "middleware", - "bundle", - "npm", - "coffee", - "javascript" - ], - "dependencies": { - "detective": "~0.1.1", - "deputy": "~0.0.0", - "resolve": "~0.2.0", - "nub": "~0.0.0", - "commondir": "~0.0.1", - "coffee-script": "1.x.x", - "optimist": "~0.3.4", - "http-browserify": "~0.1.1", - "vm-browserify": "~0.0.0", - "crypto-browserify": "~0" - }, - "devDependencies": { - "tap": "~0.2.5", - "connect": "1.8.5", - "hashish": ">=0.0.2 <0.1", - "traverse": ">=0.3.8 <0.4", - "backbone": "~0.9.2", - "dnode": "~0.9.11", - "jade": "0.20.0", - "seq": "0.3.3", - "jquery-browserify": "*", - "lazy": "1.0.x", - "ecstatic": "~0.1.4" - }, - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "scripts": { - "test": "node node_modules/tap/bin/tap.js test/*.js" - }, - "license": "MIT/X11", - "engine": { - "node": ">=0.6.0" - }, - "readme": "browserify\n==========\n\nMake node-style require() work in the browser with a server-side build step,\nas if by magic!\n\n[![build status](https://secure.travis-ci.org/substack/node-browserify.png)](http://travis-ci.org/substack/node-browserify)\n\n![browserify!](http://substack.net/images/browserify/browserify.png)\n\nexample\n=======\n\nJust write an `entry.js` to start with some `require()`s in it:\n\n````javascript\n// use relative requires\nvar foo = require('./foo');\nvar bar = require('../lib/bar');\n\n// or use modules installed by npm in node_modules/\nvar domready = require('domready');\n\ndomready(function () {\n var elem = document.getElementById('result');\n elem.textContent = foo(100) + bar('baz');\n});\n````\n\nNow just use the `browserify` command to build a bundle starting at `entry.js`:\n\n```\n$ browserify entry.js -o bundle.js\n```\n\nAll of the modules that `entry.js` needs are included in the final bundle from a\nrecursive walk using [detective](https://github.com/substack/node-detective).\n\nTo use the bundle, just toss a `` into your\nhtml!\n\nusage\n=====\n\n````\nUsage: browserify [entry files] {OPTIONS}\n\nOptions:\n --outfile, -o Write the browserify bundle to this file.\n If unspecified, browserify prints to stdout. \n --require, -r A module name or file to bundle.require()\n Optionally use a colon separator to set the target. \n --entry, -e An entry point of your app \n --exports Export these core objects, comma-separated list\n with any of: require, process. If unspecified, the\n export behavior will be inferred.\n \n --ignore, -i Ignore a file \n --alias, -a Register an alias with a colon separator: \"to:from\"\n Example: --alias 'jquery:jquery-browserify' \n --cache, -c Turn on caching at $HOME/.config/browserling/cache.json or use\n a file for caching.\n [default: true]\n --debug, -d Switch on debugging mode with //@ sourceURL=...s. [boolean]\n --plugin, -p Use a plugin.\n Example: --plugin aliasify \n --prelude Include the code that defines require() in this bundle.\n [boolean] [default: true]\n --watch, -w Watch for changes. The script will stay open and write updates\n to the output every time any of the bundled files change.\n This option only works in tandem with -o. \n --verbose, -v Write out how many bytes were written in -o mode. This is\n especially useful with --watch. \n --help, -h Show this message \n\n````\n\ncompatability\n=============\n\nMany [npm](http://npmjs.org) modules that don't do IO will just work after being\nbrowserified. Others take more work.\n\n[coffee script](http://coffeescript.org/) should pretty much just work.\nJust do `browserify entry.coffee` or `require('./foo.coffee')`.\n\nMany node built-in modules have been wrapped to work in the browser.\nAll you need to do is `require()` them like in node.\n\n* events\n* path\n* [vm](https://github.com/substack/vm-browserify)\n* [http](https://github.com/substack/http-browserify)\n* [crypto](https://github.com/dominictarr/crypto-browserify)\n* assert\n* url\n* buffer\n* buffer_ieee754\n* util\n* querystring\n* stream\n\nprocess\n-------\n\nBrowserify makes available a faux `process` object to modules with these\nattributes:\n\n* nextTick(fn) - uses [the postMessage trick](http://dbaron.org/log/20100309-faster-timeouts)\n for a faster `setTimeout(fn, 0)` if it can\n* title - set to 'browser' for browser code, 'node' in regular node code\n* browser - `true`, good for testing if you're in a browser or in node\n\nBy default the process object is only available inside of files wrapped by\nbrowserify. To expose it, use `--exports=process`\n\n__dirname\n---------\n\nThe faux directory name, scrubbed of true directory information so as not to\nexpose your filesystem organization.\n\n__filename\n----------\n\nThe faux file path, scrubbed of true path information so as not to expose your\nfilesystem organization.\n\npackage.json\n============\n\nIn order to resolve main files for projects, the package.json \"main\" field is\nread.\n\nIf a package.json has a \"browserify\" field, you can override the standard \"main\"\nbehavior with something special just for browsers.\n\nSee [dnode's\npackage.json](https://github.com/substack/dnode/blob/9e24b97cf2ce931fbf6d7beb3731086b46bca887/package.json#L40)\nfor an example of using the \"browserify\" field.\n\nmore\n====\n\n* [browserify recipes](https://github.com/substack/node-browserify/blob/master/doc/recipes.markdown#recipes)\n* [browserify api reference](https://github.com/substack/node-browserify/blob/master/doc/methods.markdown#methods)\n* [browserify cdn](http://browserify.nodejitsu.com/)\n\ninstall\n=======\n\nWith [npm](http://npmjs.org) do:\n\n```\nnpm install -g browserify\n```\n\ntest\n====\n\nTo run the node tests with tap, do:\n\n```\nnpm test\n```\n\nTo run the [testling](http://testling.com) tests,\ncreate a [browserling](http://browserling.com) account then:\n\n```\ncd testling\n./test.sh\n```\n", - "_id": "browserify@1.13.2", - "dist": { - "shasum": "6de8e981babf53f3446bbc53a14c2740584da9e6" - }, - "_from": "browserify" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/alias.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/alias.js deleted file mode 100644 index ed6d45d9fc..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/alias.js +++ /dev/null @@ -1,55 +0,0 @@ -var connect = require('connect'); -var http = require('http'); -var vm = require('vm'); -var browserify = require('../'); - -var test = require('tap').test; - -test('alias', function (t) { - t.plan(5); - var port = 10000 + Math.floor(Math.random() * (Math.pow(2,16) - 10000)); - var server = connect.createServer(); - - server.use(browserify({ - mount : '/bundle.js', - require : { moo : 'seq' } - })); - - server.listen(port, makeRequest); - - function makeRequest () { - - var req = { host : 'localhost', port : port, path : '/bundle.js' }; - http.get(req, function (res) { - t.equal(res.statusCode, 200); - server.close(); - - var context = { - setTimeout : setTimeout, - console : console - }; - - var src = ''; - res.on('data', function (buf) { - src += buf.toString(); - }); - - res.on('end', function () { - vm.runInNewContext(src, context); - t.ok(context.require('moo')); - t.ok(context.require('seq')); - t.equal(context.require('seq'), context.require('moo')); - - context.require('moo')([1,2,3]) - .parMap(function (x) { - this(null, x * 100) - }) - .seq(function () { - t.deepEqual(this.stack, [100,200,300]); - t.end(); - }) - ; - }); - }); - } -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/backbone.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/backbone.js deleted file mode 100644 index fcedca2e68..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/backbone.js +++ /dev/null @@ -1,21 +0,0 @@ -var browserify = require('../'); -var vm = require('vm'); -var backbone = require('backbone'); -var test = require('tap').test; - -test('backbone', function (t) { - t.plan(3); - var src = browserify.bundle({ - require : 'backbone' - }); - t.ok(typeof src === 'string'); - t.ok(src.length > 0); - - var c = { console : console }; - vm.runInNewContext(src, c); - t.deepEqual( - Object.keys(backbone).sort(), - Object.keys(c.require('backbone')).sort() - ); - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/bin.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/bin.js deleted file mode 100644 index 23e8c0b029..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/bin.js +++ /dev/null @@ -1,39 +0,0 @@ -var test = require('tap').test; -var spawn = require('child_process').spawn; -var path = require('path'); -var vm = require('vm'); - -test('bin', function (t) { - t.plan(3); - - var cwd = process.cwd(); - process.chdir(__dirname); - - var ps = spawn(process.execPath, [ - path.resolve(__dirname, '../bin/cmd.js'), - 'entry/main.js', - '--exports=require' - ]); - var src = ''; - ps.stdout.on('data', function (buf) { - src += buf.toString(); - }); - - ps.on('exit', function (code) { - t.equal(code, 0); - - var allDone = false; - var c = { - done : function () { allDone = true } - }; - - vm.runInNewContext(src, c); - t.deepEqual( - Object.keys(c.require.modules).sort(), - [ 'path', '__browserify_process', '/one.js', '/two.js', '/main.js' ].sort() - ); - t.ok(allDone); - - t.end(); - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/bundle.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/bundle.js deleted file mode 100644 index f4e077fd40..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/bundle.js +++ /dev/null @@ -1,32 +0,0 @@ -var browserify = require('../'); -var vm = require('vm'); -var test = require('tap').test; - -test('bundle', function (t) { - var b = browserify(); - b.require('seq'); - var src = b.bundle(); - - t.plan(3); - - t.ok(typeof src === 'string'); - t.ok(src.length > 0); - - var c = { - setTimeout : setTimeout, - console : console - }; - vm.runInNewContext(src, c); - - c.require('seq')([1,2,3]) - .parMap_(function (next, x) { - setTimeout(function () { - next.ok(x * 100) - }, 10) - }) - .seq(function (x,y,z) { - t.deepEqual([x,y,z], [100,200,300]); - t.end(); - }) - ; -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/cache.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/cache.js deleted file mode 100644 index 70bf9b1189..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/cache.js +++ /dev/null @@ -1,28 +0,0 @@ -var vm = require('vm'); -var fs = require('fs'); -var browserify = require('../'); -var test = require('tap').test; -var crypto = require('crypto'); - -test('cache', function (t) { - t.plan(2); - - var file = '/tmp/' + Math.floor(Math.random() * (1<<30)).toString(16) + '.json'; - browserify({ cache : file }).require('seq').bundle(); - setTimeout(function () { - fs.readFile(file, function (err, body) { - if (err) t.fail(err); - var cache = JSON.parse(body); - var tfile = require.resolve('seq'); - fs.readFile(tfile, function (err, body) { - var hash = new crypto.Hash('md5').update(body).digest('hex'); - t.ok(cache[hash]); - t.deepEqual( - cache[hash].strings.sort(), - [ 'events', 'hashish', 'chainsaw' ].sort() - ); - t.end(); - }); - }); - }, 200); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee.js deleted file mode 100644 index 435f392ee2..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee.js +++ /dev/null @@ -1,39 +0,0 @@ -var vm = require('vm'); -var fs = require('fs'); -var browserify = require('../'); -var test = require('tap').test; - -test('coffee', function (t) { - t.plan(8); - - var src = browserify.bundle({ require : __dirname + '/coffee/index.coffee' }); - var c = {}; - vm.runInNewContext(src, c); - - t.equal(c.require('./foo.coffee')(5), 50); - t.equal(c.require('./foo')(5), 50); - - t.equal(c.require('./bar.js'), 500); - t.equal(c.require('./bar'), 500); - - t.equal(c.require('./baz.coffee'), 1000); - t.equal(c.require('./baz'), 1000); - - t.equal(c.require('./'), 10 * 10 * 500 + 1000); - t.equal(c.require('./index.coffee'), 10 * 10 * 500 + 1000); - t.end(); -}); - -test('coffeeEntry', function (t) { - var b = browserify({ entry : __dirname + '/coffee/entry.coffee' }); - var src = b.bundle(); - - var c = { - setTimeout : setTimeout, - done : function (fn) { - t.equal(fn(10), 100); - t.end(); - } - }; - vm.runInNewContext(src, c); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/bar.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/bar.js deleted file mode 100644 index 74ca504b7c..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/bar.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./foo.coffee')(50); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/baz.coffee b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/baz.coffee deleted file mode 100644 index ae629b69bd..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/baz.coffee +++ /dev/null @@ -1 +0,0 @@ -module.exports = 1000 diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/entry.coffee b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/entry.coffee deleted file mode 100644 index fdaf8add9c..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/entry.coffee +++ /dev/null @@ -1 +0,0 @@ -nested = require './nested/nested.coffee' \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/foo.coffee b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/foo.coffee deleted file mode 100644 index b756c3aad5..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/foo.coffee +++ /dev/null @@ -1 +0,0 @@ -module.exports = (x) -> x * 10 diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/index.coffee b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/index.coffee deleted file mode 100644 index b54f47a5dd..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/index.coffee +++ /dev/null @@ -1,5 +0,0 @@ -bar = require './bar' -foo = require './foo.coffee' -baz = require './baz' - -module.exports = foo(foo bar) + baz diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/nested/nested.coffee b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/nested/nested.coffee deleted file mode 100644 index 6e564d4dd8..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/nested/nested.coffee +++ /dev/null @@ -1,2 +0,0 @@ -foo = require '../foo.coffee' -done(foo) diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/dnode.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/dnode.js deleted file mode 100644 index 26862cf4e1..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/dnode.js +++ /dev/null @@ -1,27 +0,0 @@ -var vm = require('vm'); -var browserify = require('../'); -var test = require('tap').test; - -test('dnode', function (t) { - t.plan(2); - - var src = browserify.bundle({ require : 'dnode' }); - var c = { - console : console, - navigator : { - userAgent : 'foo', - platform : 'bar', - }, - window : { - addEventListener : function () {}, - }, - document : {}, - }; - vm.runInNewContext(src, c); - var dnode = c.require('dnode'); - - t.ok(dnode, 'dnode object exists'); - t.ok(dnode.connect, 'dnode.connect exists'); - - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/dollar.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/dollar.js deleted file mode 100644 index 6992fa6650..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/dollar.js +++ /dev/null @@ -1,19 +0,0 @@ -var browserify = require('../'); -var vm = require('vm'); -var test = require('tap').test; - -test('dollar', function (t) { - t.plan(3); - var src = browserify({ - require : __dirname + '/dollar/dollar/index.js' - }).bundle(); - - t.ok(typeof src === 'string'); - t.ok(src.length > 0); - - var c = {}; - vm.runInNewContext(src, c); - var res = vm.runInNewContext('require("./")(100)', c); - t.equal(res, 10000); - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/dollar/dollar/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/dollar/dollar/index.js deleted file mode 100644 index a6012aa6bd..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/dollar/dollar/index.js +++ /dev/null @@ -1,7 +0,0 @@ -// foo $ bar $ baz - -var $ = function (x) { - return x * 100; -}; - -module.exports = $; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/entry.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/entry.js deleted file mode 100644 index c20e227670..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/entry.js +++ /dev/null @@ -1,36 +0,0 @@ -var browserify = require('../'); -var vm = require('vm'); -var test = require('tap').test; - -var setTimeout_ = function (cb, t) { - if (!t) { - process.nextTick(cb); - } - else { - setTimeout(cb, t); - } -}; - -test('entry', function (t) { - t.plan(2); - - var src = browserify({ exports : [ 'require' ] }) - .addEntry(__dirname + '/entry/main.js') - .bundle() - ; - - var c = { - setTimeout : process.nextTick, - done : function (one, two) { - t.equal(one, 1); - t.equal(two, 2); - t.end(); - } - }; - vm.runInNewContext(src, c); - - t.deepEqual( - Object.keys(c.require.modules).sort(), - [ 'path', '__browserify_process', '/one.js', '/two.js', '/main.js' ].sort() - ); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/entry/main.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/entry/main.js deleted file mode 100644 index 89bb8a0366..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/entry/main.js +++ /dev/null @@ -1 +0,0 @@ -done(require('./one'), require('./two')); \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/entry/one.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/entry/one.js deleted file mode 100644 index bd816eaba4..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/entry/one.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 1; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/entry/two.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/entry/two.js deleted file mode 100644 index 4bbffde104..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/entry/two.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 2; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/error_code.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/error_code.js deleted file mode 100644 index 8b97862b07..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/error_code.js +++ /dev/null @@ -1,24 +0,0 @@ -var test = require('tap').test; -var spawn = require('child_process').spawn; -var path = require('path'); - -if (false) require('__32jlkbeep'); - -test('error code', function (t) { - t.plan(2); - - var cwd = process.cwd(); - process.chdir(__dirname); - - var ps = spawn(process.execPath, [ - path.resolve(__dirname, '../bin/cmd.js'), - path.resolve(__dirname, 'error_code/src.js') - ]); - var err = ''; - ps.stderr.on('data', function (buf) { err += buf }); - - ps.on('exit', function (code) { - t.notEqual(code, 0); - t.ok(/^SyntaxError:/m.test(err)); - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/error_code/src.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/error_code/src.js deleted file mode 100644 index e85c07ccab..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/error_code/src.js +++ /dev/null @@ -1,2 +0,0 @@ -var x = { -var y = 6; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/export.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/export.js deleted file mode 100644 index 4b347e8898..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/export.js +++ /dev/null @@ -1,52 +0,0 @@ -var browserify = require('../'); -var vm = require('vm'); -var test = require('tap').test; - -test('only export require', function (t) { - t.plan(1); - var src = browserify().bundle(); - var c = {}; - vm.runInNewContext(src, c); - t.same(Object.keys(c), [ 'require' ]); -}); - -test('no exports when entries are defined', function (t) { - t.plan(1); - var src = browserify(__dirname + '/export/entry.js').bundle(); - var c = {}; - vm.runInNewContext(src, c); - t.same(c, {}); -}); - -test('override require export', function (t) { - t.plan(1); - var src = browserify({ exports : [ 'require' ] }) - .addEntry(__dirname + '/export/entry.js') - .bundle() - ; - var c = {}; - vm.runInNewContext(src, c); - t.same(Object.keys(c), [ 'require' ]); -}); - -test('override process export', function (t) { - t.plan(1); - var src = browserify({ exports : [ 'process' ] }) - .addEntry(__dirname + '/export/entry.js') - .bundle() - ; - var c = {}; - vm.runInNewContext(src, c); - t.same(Object.keys(c), [ 'process' ]); -}); - -test('override require and process export', function (t) { - t.plan(1); - var src = browserify({ exports : [ 'require', 'process' ] }) - .addEntry(__dirname + '/export/entry.js') - .bundle() - ; - var c = {}; - vm.runInNewContext(src, c); - t.same(Object.keys(c).sort(), [ 'require', 'process' ].sort()); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/export/entry.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/export/entry.js deleted file mode 100644 index 6f037f8a9c..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/export/entry.js +++ /dev/null @@ -1 +0,0 @@ -// nop diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field.js deleted file mode 100644 index a51b274d45..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field.js +++ /dev/null @@ -1,64 +0,0 @@ -var assert = require('assert'); -var browserify = require('../'); -var vm = require('vm'); -var test = require('tap').test; - -test('fieldString', function (t) { - t.plan(1); - - var dir = __dirname + '/field/'; - var src = browserify({ require : dir + '/string.js' }).bundle(); - - var c = {}; - vm.runInNewContext(src, c); - t.equal( - c.require('./string.js'), - 'browser' - ); - t.end(); -}); - -test('fieldObject', function (t) { - t.plan(1); - - var dir = __dirname + '/field/'; - var src = browserify({ require : dir + '/object.js' }).bundle(); - - var c = {}; - vm.runInNewContext(src, c); - t.equal( - c.require('./object.js'), - 'browser' - ); - t.end(); -}); - -test('missObject', function (t) { - t.plan(1); - - var dir = __dirname + '/field/'; - var src = browserify({ require : dir + '/miss.js' }).bundle(); - - var c = {}; - vm.runInNewContext(src, c); - t.equal( - c.require('./miss.js'), - '!browser' - ); - t.end(); -}); - -test('fieldSub', function (t) { - t.plan(1); - - var dir = __dirname + '/field/'; - var src = browserify({ require : dir + '/sub.js' }).bundle(); - - var c = {}; - vm.runInNewContext(src, c); - t.equal( - c.require('./sub.js'), - 'browser' - ); - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/miss.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/miss.js deleted file mode 100644 index 3619990487..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/miss.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('z-miss') diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-miss/browser.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-miss/browser.js deleted file mode 100644 index 8427655796..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-miss/browser.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'browser'; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-miss/main.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-miss/main.js deleted file mode 100644 index 219e0f97d2..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-miss/main.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = '!browser'; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-miss/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-miss/package.json deleted file mode 100644 index c1b67aedd5..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-miss/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "main" : "main.js", - "browserify" : {} -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-object/browser.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-object/browser.js deleted file mode 100644 index 8427655796..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-object/browser.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'browser'; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-object/main.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-object/main.js deleted file mode 100644 index 219e0f97d2..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-object/main.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = '!browser'; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-object/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-object/package.json deleted file mode 100644 index 4c0f10bad1..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-object/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "main" : "main.js", - "browserify" : { - "main" : "browser.js" - } -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-string/browser.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-string/browser.js deleted file mode 100644 index 8427655796..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-string/browser.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'browser'; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-string/main.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-string/main.js deleted file mode 100644 index 219e0f97d2..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-string/main.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = '!browser'; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-string/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-string/package.json deleted file mode 100644 index 8647c0fb05..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-string/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "main" : "main.js", - "browserify" : "browser.js" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-sub/browser/a.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-sub/browser/a.js deleted file mode 100644 index 0952f7666a..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-sub/browser/a.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./b'); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-sub/browser/b.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-sub/browser/b.js deleted file mode 100644 index 8427655796..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-sub/browser/b.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'browser'; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-sub/main.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-sub/main.js deleted file mode 100644 index 219e0f97d2..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-sub/main.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = '!browser'; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-sub/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-sub/package.json deleted file mode 100644 index 4f4ed62918..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-sub/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "main" : "main.js", - "browserify" : "browser/a.js" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/object.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/object.js deleted file mode 100644 index c373dc9e42..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/object.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('z-object') diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/string.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/string.js deleted file mode 100644 index ee4c65d36f..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/string.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('z-string') diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/sub.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/sub.js deleted file mode 100644 index 8c662a97f0..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/sub.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('z-sub') diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/jade.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/jade.js deleted file mode 100644 index 1419367ef2..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/jade.js +++ /dev/null @@ -1,35 +0,0 @@ -var browserify = require('../'); -var vm = require('vm'); -var jade = require('jade'); -var test = require('tap').test; - -test('jade', function (t) { - t.plan(5); - var b = browserify({ - require : 'jade', - ignore : [ - 'coffee-script', 'less', 'sass', 'stylus', 'markdown', 'discount', - 'markdown-js' - ] - }); - var src = b.bundle(); - - t.ok(typeof src === 'string'); - t.ok(src.length > 0); - - var c = { console : console }; - vm.runInNewContext(src, c); - var j = c.require('jade'); - t.deepEqual( - Object.keys(jade), - Object.keys(j) - ); - - jade.render('div #{x}\n span moo', { x : 42 }, function (err, r0) { - t.equal(r0, '
42moo
'); - jade.render('div #{x}\n span moo', { x : 42 }, function (err, r1) { - t.equal(r0, r1); - t.end(); - }); - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/maxlisteners.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/maxlisteners.js deleted file mode 100644 index cee5dc82e0..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/maxlisteners.js +++ /dev/null @@ -1,8 +0,0 @@ -var EventEmitter = require('../builtins/events').EventEmitter; -var test = require('tap').test; - -test('setMaxListener', function (t) { - var ee = new EventEmitter; - ee.setMaxListeners(5); - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/middleware.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/middleware.js deleted file mode 100644 index 3aa401afb0..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/middleware.js +++ /dev/null @@ -1,31 +0,0 @@ -var fs = require('fs'); -var vm = require('vm'); -var browserify = require('../'); -var test = require('tap').test; - -test('middleware', function (t) { - t.plan(1); - var bundle = browserify().use(function (b) { - b.files.middleware = { - target : '/node_modules/middleware/index.js', - body : 'module.exports = 555' - }; - }); - - bundle.require('middleware'); - - var src = bundle.bundle(); - var c = { console : console }; - vm.runInNewContext(src, c); - - t.equal(c.require('middleware'), 555); - t.end(); -}); - -test('fn', function (t) { - t.plan(2); - var b = browserify().append('doom'); - t.equal(typeof b, 'function'); - t.equal(typeof b.bundle, 'function'); - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_entry.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_entry.js deleted file mode 100644 index 5053261f87..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_entry.js +++ /dev/null @@ -1,20 +0,0 @@ -var browserify = require('../'); -var vm = require('vm'); -var test = require('tap').test; - -test('multi entry', function (t) { - t.plan(3); - - var src = browserify(__dirname + '/multi_entry/a.js', { - entry : [ - __dirname + '/multi_entry/b.js', - __dirname + '/multi_entry/c.js' - ] - }).bundle(); - - var c = { - times : 0, - t : t - }; - vm.runInNewContext(src, c); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_entry/a.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_entry/a.js deleted file mode 100644 index d4e250ee92..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_entry/a.js +++ /dev/null @@ -1,2 +0,0 @@ -times ++; -t.equal(times, 1); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_entry/b.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_entry/b.js deleted file mode 100644 index bed7bbbaff..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_entry/b.js +++ /dev/null @@ -1,2 +0,0 @@ -times ++; -t.equal(times, 2); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_entry/c.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_entry/c.js deleted file mode 100644 index 2d0db3cc54..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_entry/c.js +++ /dev/null @@ -1,3 +0,0 @@ -times ++; -t.equal(times, 3); -t.end(); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_ignore.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_ignore.js deleted file mode 100755 index c78d106ae0..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_ignore.js +++ /dev/null @@ -1,23 +0,0 @@ -var browserify = require('../'); -var test = require('tap').test; - -test('multi ignore', function (t) { - - var bundle = browserify(__dirname + '/multi_entry/a.js', { - ignore : [ - __dirname + '/multi_entry/b.js' - ] - }); - t.ok(bundle.ignoring[__dirname + '/multi_entry/b.js']); - - bundle.ignore(__dirname + '/multi_entry/c.js'); - t.ok(bundle.ignoring[__dirname + '/multi_entry/b.js']); - t.ok(bundle.ignoring[__dirname + '/multi_entry/c.js']); - - bundle.ignore(__dirname + '/multi_entry/d.js'); - t.ok(bundle.ignoring[__dirname + '/multi_entry/b.js']); - t.ok(bundle.ignoring[__dirname + '/multi_entry/c.js']); - t.ok(bundle.ignoring[__dirname + '/multi_entry/d.js']); - - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/node_modules/beep/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/node_modules/beep/index.js deleted file mode 100644 index 2d3c19425e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/node_modules/beep/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'boop' diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/retarget.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/retarget.js deleted file mode 100644 index 6e57bf518b..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/retarget.js +++ /dev/null @@ -1,27 +0,0 @@ -var test = require('tap').test; -var spawn = require('child_process').spawn; -var path = require('path'); -var vm = require('vm'); - -test('retarget with -r', function (t) { - t.plan(2); - - var cwd = process.cwd(); - process.chdir(__dirname); - - var ps = spawn(process.execPath, [ - path.resolve(__dirname, '../bin/cmd.js'), - '-r', 'beep', - '--exports=require' - ]); - var src = ''; - ps.stdout.on('data', function (buf) { src += buf }); - - ps.on('exit', function (code) { - t.equal(code, 0); - - var c = {}; - vm.runInNewContext(src, c); - t.equal(c.require('beep'), 'boop'); - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/seq.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/seq.js deleted file mode 100644 index 523b9dddc9..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/seq.js +++ /dev/null @@ -1,47 +0,0 @@ -var connect = require('connect'); -var http = require('http'); -var vm = require('vm'); -var browserify = require('../'); -var test = require('tap').test; - -test('seq', function (t) { - t.plan(2); - - var port = 10000 + Math.floor(Math.random() * (Math.pow(2,16) - 10000)); - var server = connect.createServer(); - - server.use(browserify({ - mount : '/bundle.js', - require : [ 'seq' ], - })); - - server.listen(port, makeRequest); - - function makeRequest () { - var req = { host : 'localhost', port : port, path : '/bundle.js' }; - http.get(req, function (res) { - t.equal(res.statusCode, 200); - server.close(); - - var context = { setTimeout : setTimeout }; - - var src = ''; - res.on('data', function (buf) { - src += buf.toString(); - }); - - res.on('end', function () { - vm.runInNewContext(src, context); - context.require('seq')([1,2,3]) - .parMap(function (x) { - this(null, x * 100) - }) - .seq(function () { - t.deepEqual(this.stack, [100,200,300]); - t.end(); - }) - ; - }); - }); - } -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/subdep.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/subdep.js deleted file mode 100644 index 8c7470809a..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/subdep.js +++ /dev/null @@ -1,26 +0,0 @@ -var browserify = require('../'); -var vm = require('vm'); -var test = require('tap').test; - -test('subdep', function (t) { - t.plan(1); - - var src = browserify.bundle({ require : __dirname + '/subdep/index.js' }); - var c = {}; - vm.runInNewContext(src, c); - t.deepEqual( - Object.keys(c.require.modules).sort(), - [ - '/package.json', - '/index.js', - '/node_modules/qq/package.json', - '/node_modules/qq/b.js', - '/node_modules/qq/node_modules/a/package.json', - '/node_modules/qq/node_modules/a/index.js', - '/node_modules/qq/node_modules/z/index.js', - 'path', - '__browserify_process' - ].sort() - ); - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/subdep/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/subdep/index.js deleted file mode 100644 index f05301b7fc..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/subdep/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('qq'); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/subdep/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/subdep/package.json deleted file mode 100644 index 518d22aa96..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/subdep/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "dependencies" : { - "qq" : "*" - }, - "main" : "index.js" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/util.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/util.js deleted file mode 100644 index 02ce8f4fa0..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/util.js +++ /dev/null @@ -1,48 +0,0 @@ -var browserify = require('../'); -var test = require('tap').test; -var util = require('util'); -var vm = require('vm'); - -test('util.inspect', function (t) { - t.plan(1); - var src = browserify().require('util').bundle(); - var c = {}; - vm.runInNewContext(src, c); - t.equal( - c.require('util').inspect([1,2,3]), - util.inspect([1,2,3]) - ); - t.end(); -}); - -test('util.inherits', function (t) { - t.plan(2); - var src = browserify().require('util').require('events').bundle(); - var c = {}; - vm.runInNewContext(src, c); - var EE = c.require('events').EventEmitter; - - function Beep () {} - c.require('util').inherits(Beep, EE); - var beep = new Beep; - - t.ok(beep instanceof Beep); - t.ok(beep instanceof EE); - t.end(); -}); - -test('util.inherits without Object.create', function (t) { - t.plan(2); - var src = browserify().require('util').require('events').bundle(); - var c = { Object : {} }; - vm.runInNewContext(src, c); - var EE = c.require('events').EventEmitter; - - function Beep () {} - c.require('util').inherits(Beep, EE); - var beep = new Beep; - - t.ok(beep instanceof Beep); - t.ok(beep instanceof EE); - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/watch.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/watch.js deleted file mode 100644 index d320444965..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/watch.js +++ /dev/null @@ -1,91 +0,0 @@ -var connect = require('connect'); -var http = require('http'); -var vm = require('vm'); -var fs = require('fs'); -var path = require('path'); -var test = require('tap').test; - -test('watch', function (t) { - t.plan(8); - - var port = 10000 + Math.floor(Math.random() * (Math.pow(2,16) - 10000)); - var server = connect.createServer(); - - var filters = 0; - - var bundle = require('../')({ - require : path.resolve(__dirname, 'watch/a.js'), - mount : '/bundle.js', - filter : function (src) { - filters ++; - if (filters === 2) t.ok(true, 'has 2'); - return src; - }, - watch : { interval : 100 }, - }); - server.use(bundle); - - server.use(connect.static(path.resolve(__dirname, 'watch'))); - - server.listen(port, function () { - setTimeout(compareSources, 1000); - }); - - function getBundle (cb) { - var req = { host : 'localhost', port : port, path : '/bundle.js' }; - setTimeout(function () { - http.get(req, function (res) { - t.equal(res.statusCode, 200); - - var src = ''; - res.on('data', function (buf) { - src += buf.toString(); - }); - - res.on('end', function () { - cb(src) - }); - }); - }, 50); - } - - function compareSources () { - getBundle(function (s1) { - var m0 = bundle.modified; - t.ok(m0); - - var c1 = {}; - vm.runInNewContext(s1, c1); - var a1 = c1.require('./a'); - - var a2 = Math.floor(Math.random() * 10000); - var s2_ = bundle.bundle(); - - getBundle(function (s2) { - t.notEqual(s1, s2, 'sources are equal'); - - var c2 = {}; - vm.runInNewContext(s2, c2); - var a2_ = c2.require('./a'); - - var m1 = bundle.modified; - t.ok(m1); - t.ok(m1 > m0); - - fs.writeFileSync( - path.resolve(__dirname, 'watch/a.js'), - 'module.exports = ' + a1 - ); - - server.close(); - t.deepEqual(a2, a2_); - t.end(); - }); - - fs.writeFileSync( - path.resolve(__dirname, 'watch/a.js'), - 'module.exports = ' + a2 - ); - }); - } -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/watch/a.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/watch/a.js deleted file mode 100644 index 767ad3e4d3..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/watch/a.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 1966 \ No newline at end of file diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap.js deleted file mode 100644 index e0e4767efa..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap.js +++ /dev/null @@ -1,43 +0,0 @@ -var path = require('path'); -var browserify = require('../'); -var test = require('tap').test; - -function filter (x) { - var s = path.resolve(__dirname, 'wrap/'); - return x.slice(0, s.length) === s; -} - -test('wrap', function (t) { - t.plan(1); - var files = browserify({ require : __dirname + '/wrap/a.js' }).files; - - t.deepEqual(Object.keys(files).filter(filter).sort(), [ - path.resolve(__dirname, 'wrap/a.js'), - path.resolve(__dirname, 'wrap/node_modules/b/main.js'), - path.resolve(__dirname, 'wrap/node_modules/b/package.json'), - path.resolve(__dirname, 'wrap/c.js'), - path.resolve(__dirname, 'wrap/x.js'), - ].sort()); - t.end(); -}); - -test('wrapArray', function (t) { - t.plan(1); - var files = browserify({ - require : [ - __dirname + '/wrap/a.js', - __dirname + '/wrap/skipme.js', - ] - }).files; - - t.deepEqual(Object.keys(files).filter(filter).sort(), [ - path.resolve(__dirname, 'wrap/a.js'), - path.resolve(__dirname, 'wrap/node_modules/b/main.js'), - path.resolve(__dirname, 'wrap/node_modules/b/package.json'), - path.resolve(__dirname, 'wrap/c.js'), - path.resolve(__dirname, 'wrap/x.js'), - path.resolve(__dirname, 'wrap/skipme.js'), - path.resolve(__dirname, 'wrap/node_modules/skipmetoo/index.js'), - ].sort()); - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/a.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/a.js deleted file mode 100644 index ecbc2b418e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/a.js +++ /dev/null @@ -1,2 +0,0 @@ -var b = require('b'); -var c = require('./c'); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/c.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/c.js deleted file mode 100644 index 4e973e6374..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/c.js +++ /dev/null @@ -1 +0,0 @@ -require('vm'); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/node_modules/b/main.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/node_modules/b/main.js deleted file mode 100644 index 61cc489960..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/node_modules/b/main.js +++ /dev/null @@ -1 +0,0 @@ -require('../../x.js'); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/node_modules/b/package.json b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/node_modules/b/package.json deleted file mode 100644 index 27307c989b..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/node_modules/b/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main" : "main.js" -} diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/node_modules/skipmetoo/index.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/node_modules/skipmetoo/index.js deleted file mode 100644 index f7cc7e6176..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/node_modules/skipmetoo/index.js +++ /dev/null @@ -1 +0,0 @@ -require('../../skipme'); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/skipme.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/skipme.js deleted file mode 100644 index fef29fa8bc..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/skipme.js +++ /dev/null @@ -1 +0,0 @@ -require('skipmetoo'); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/x.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/x.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/testling/README.markdown b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/testling/README.markdown deleted file mode 100644 index 7f52fd3577..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/testling/README.markdown +++ /dev/null @@ -1,29 +0,0 @@ -browserify testling tests -========================= - -Make a [browserling](http://browserling.com) account to run this test through -[testling](http://testling.com). - -``` -$ ./test.sh -testling user: substack@gmail.com -Enter host password for user 'substack@gmail.com': -Bundling... done - -iexplore/7.0 0/0 0 % ok - Log: 15 -iexplore/8.0 0/0 0 % ok - Log: 16 -iexplore/9.0 0/0 0 % ok - Log: 1 -chrome/15.0 0/0 0 % ok - Log: 0 -firefox/7.0 0/0 0 % ok - Log: 1 -opera/11.5 0/0 0 % ok - Log: 0 -safari/5.1 0/0 0 % ok - Log: 3 - -total 0/0 0 % ok -``` diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/testling/test.sh b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/testling/test.sh deleted file mode 100755 index 9992bfdfff..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/testling/test.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -echo -n 'testling user: ' -read user - -stty -echo -echo -n 'password: ' -read pass -stty echo - -function tick () { - cat <(echo 'process={};') ../wrappers/process.js tick.js \ - | curl -sSNT- -u "$user:$pass" testling.com -} - -function util () { - tar -cf- util.js ../builtins/util.js | - curl -sSNT- -u "$user:$pass" \ - 'http://testling.com/?main=util.js&noinstrument=builtins/util.js' -} - -if test -z "$1"; then - tick - util -elif test "$1" == 'tick'; then - tick -elif test "$1" == 'util'; then - util -fi diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/testling/tick.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/testling/tick.js deleted file mode 100644 index 30f304d2bd..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/testling/tick.js +++ /dev/null @@ -1,9 +0,0 @@ -var test = require('testling'); - -test('nextTick', function (t) { - var t0 = new Date; - process.nextTick(function () { - t.log(new Date - t0); - t.end(); - }); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/testling/util.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/testling/util.js deleted file mode 100644 index 8280cafa1a..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/testling/util.js +++ /dev/null @@ -1,24 +0,0 @@ -var test = require('testling'); -var util = require('./builtins/util'); -var EventEmitter = require('events').EventEmitter; - -test('util.inspect', function (t) { - t.plan(1); - t.equal(util.inspect([1,2,3]), '[ 1, 2, 3 ]'); - t.end(); -}); - -test('util.inherits', function (t) { - t.plan(2); - - function Beep () {} - util.inherits(Beep, EventEmitter); - var beep = new Beep; - - t.ok(beep instanceof Beep, 'is a Beep'); - t.ok( - (beep instanceof EventEmitter) || typeof beep.emit === 'function', - 'is an EventEmitter' - ); - t.end(); -}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/alias.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/alias.js deleted file mode 100644 index cb66919317..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/alias.js +++ /dev/null @@ -1 +0,0 @@ -require.alias($from, $to); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/body.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/body.js deleted file mode 100644 index b1c3cf4a82..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/body.js +++ /dev/null @@ -1 +0,0 @@ -require.define($__filename,function(require,module,exports,__dirname,__filename,process){$body}); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/body_debug.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/body_debug.js deleted file mode 100644 index 8610eb337f..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/body_debug.js +++ /dev/null @@ -1 +0,0 @@ -require.define($__filename,Function(['require','module','exports','__dirname','__filename','process'],$body)); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/entry.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/entry.js deleted file mode 100644 index 66d83b8a21..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/entry.js +++ /dev/null @@ -1,2 +0,0 @@ -require.define($__filename,function(require,module,exports,__dirname,__filename,process){$body}); -require($__filename); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/entry_debug.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/entry_debug.js deleted file mode 100644 index fdab8ff03e..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/entry_debug.js +++ /dev/null @@ -1,2 +0,0 @@ -require.define($__filename,Function(['require','module','exports','__dirname','__filename','process'],$body)); -require($__filename); diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/package.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/package.js deleted file mode 100644 index 275936c9e7..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/package.js +++ /dev/null @@ -1,3 +0,0 @@ -require.modules[$__filename] = function () { - return $body; -}; diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/prelude.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/prelude.js deleted file mode 100644 index 7cb6291a42..0000000000 --- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/prelude.js +++ /dev/null @@ -1,176 +0,0 @@ -var require = function (file, cwd) { - var resolved = require.resolve(file, cwd || '/'); - var mod = require.modules[resolved]; - if (!mod) throw new Error( - 'Failed to resolve module ' + file + ', tried ' + resolved - ); - var res = mod._cached ? mod._cached : mod(); - return res; -} - -require.paths = []; -require.modules = {}; -require.extensions = $extensions; - -require._core = { - 'assert': true, - 'events': true, - 'fs': true, - 'path': true, - 'vm': true -}; - -require.resolve = (function () { - return function (x, cwd) { - if (!cwd) cwd = '/'; - - if (require._core[x]) return x; - var path = require.modules.path(); - cwd = path.resolve('/', cwd); - var y = cwd || '/'; - - if (x.match(/^(?:\.\.?\/|\/)/)) { - var m = loadAsFileSync(path.resolve(y, x)) - || loadAsDirectorySync(path.resolve(y, x)); - if (m) return m; - } - - var n = loadNodeModulesSync(x, y); - if (n) return n; - - throw new Error("Cannot find module '" + x + "'"); - - function loadAsFileSync (x) { - x = path.normalize(x); - if (require.modules[x]) { - return x; - } - - for (var i = 0; i < require.extensions.length; i++) { - var ext = require.extensions[i]; - if (require.modules[x + ext]) return x + ext; - } - } - - function loadAsDirectorySync (x) { - x = x.replace(/\/+$/, ''); - var pkgfile = path.normalize(x + '/package.json'); - if (require.modules[pkgfile]) { - var pkg = require.modules[pkgfile](); - var b = pkg.browserify; - if (typeof b === 'object' && b.main) { - var m = loadAsFileSync(path.resolve(x, b.main)); - if (m) return m; - } - else if (typeof b === 'string') { - var m = loadAsFileSync(path.resolve(x, b)); - if (m) return m; - } - else if (pkg.main) { - var m = loadAsFileSync(path.resolve(x, pkg.main)); - if (m) return m; - } - } - - return loadAsFileSync(x + '/index'); - } - - function loadNodeModulesSync (x, start) { - var dirs = nodeModulesPathsSync(start); - for (var i = 0; i < dirs.length; i++) { - var dir = dirs[i]; - var m = loadAsFileSync(dir + '/' + x); - if (m) return m; - var n = loadAsDirectorySync(dir + '/' + x); - if (n) return n; - } - - var m = loadAsFileSync(x); - if (m) return m; - } - - function nodeModulesPathsSync (start) { - var parts; - if (start === '/') parts = [ '' ]; - else parts = path.normalize(start).split('/'); - - var dirs = []; - for (var i = parts.length - 1; i >= 0; i--) { - if (parts[i] === 'node_modules') continue; - var dir = parts.slice(0, i + 1).join('/') + '/node_modules'; - dirs.push(dir); - } - - return dirs; - } - }; -})(); - -require.alias = function (from, to) { - var path = require.modules.path(); - var res = null; - try { - res = require.resolve(from + '/package.json', '/'); - } - catch (err) { - res = require.resolve(from, '/'); - } - var basedir = path.dirname(res); - - var keys = (Object.keys || function (obj) { - var res = []; - for (var key in obj) res.push(key) - return res; - })(require.modules); - - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (key.slice(0, basedir.length + 1) === basedir + '/') { - var f = key.slice(basedir.length); - require.modules[to + f] = require.modules[basedir + f]; - } - else if (key === basedir) { - require.modules[to] = require.modules[basedir]; - } - } -}; - -(function () { - var process = {}; - - require.define = function (filename, fn) { - if (require.modules.__browserify_process) { - process = require.modules.__browserify_process(); - } - - var dirname = require._core[filename] - ? '' - : require.modules.path().dirname(filename) - ; - - var require_ = function (file) { - return require(file, dirname) - }; - require_.resolve = function (name) { - return require.resolve(name, dirname); - }; - require_.modules = require.modules; - require_.define = require.define; - var module_ = { exports : {} }; - - require.modules[filename] = function () { - require.modules[filename]._cached = module_.exports; - fn.call( - module_.exports, - require_, - module_, - module_.exports, - dirname, - filename, - process - ); - require.modules[filename]._cached = module_.exports; - return module_.exports; - }; - }; -})(); diff --git a/deps/npm/test/packages/npm-test-shrinkwrap/node_modules/npm-test-single-file/index.js b/deps/npm/test/packages/npm-test-shrinkwrap/node_modules/npm-test-single-file/index.js deleted file mode 100644 index 9ef57a59fc..0000000000 --- a/deps/npm/test/packages/npm-test-shrinkwrap/node_modules/npm-test-single-file/index.js +++ /dev/null @@ -1,10 +0,0 @@ -/**package - * { "name": "npm-test-single-file" - * , "main": "index.js" - * , "version": "1.2.3" - * , "description":"No package.json in sight!" - * , "dependencies": { "minimatch": "*" } - * } - **/ - -module.exports = "I'm just a lonely index, naked as the day I was born." diff --git a/deps/npm/test/packages/npm-test-shrinkwrap/node_modules/npm-test-single-file/package.json b/deps/npm/test/packages/npm-test-shrinkwrap/node_modules/npm-test-single-file/package.json deleted file mode 100644 index e1fd93f9e1..0000000000 --- a/deps/npm/test/packages/npm-test-shrinkwrap/node_modules/npm-test-single-file/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "npm-test-single-file", - "main": "index.js", - "version": "1.2.3", - "description": "No package.json in sight!", - "dependencies": { - "minimatch": "*" - }, - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "_id": "npm-test-single-file@1.2.3", - "devDependencies": {}, - "optionalDependencies": {}, - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "1.1.4", - "_nodeVersion": "v0.7.6-pre", - "_defaultsLoaded": true, - "dist": { - "shasum": "5b9c9b369eeedd42c43f057504e54aef1f37948f" - }, - "_from": "npm-test-single-file@https://raw.github.com/gist/1837112/index.js" -} diff --git a/deps/openssl/asm/Makefile b/deps/openssl/asm/Makefile new file mode 100644 index 0000000000..383d5f64c0 --- /dev/null +++ b/deps/openssl/asm/Makefile @@ -0,0 +1,182 @@ +PERL ?= perl +PERL += -I../openssl/crypto/perlasm -I../openssl/crypto/bn/asm + +OUTPUTS = \ + x86-elf-gas/aes/aes-586.s \ + x86-elf-gas/bf/bf-686.s \ + x86-elf-gas/bn/x86-mont.s \ + x86-elf-gas/bn/x86.s \ + x86-elf-gas/camellia/cmll-x86.s \ + x86-elf-gas/cast/cast-586.s \ + x86-elf-gas/des/crypt586.s \ + x86-elf-gas/des/des-586.s \ + x86-elf-gas/md5/md5-586.s \ + x86-elf-gas/rc4/rc4-586.s \ + x86-elf-gas/rc5/rc5-586.s \ + x86-elf-gas/ripemd/rmd-586.s \ + x86-elf-gas/sha/sha1-586.s \ + x86-elf-gas/sha/sha256-586.s \ + x86-elf-gas/sha/sha512-586.s \ + x86-elf-gas/whrlpool/wp-mmx.s \ + x86-elf-gas/x86cpuid.s \ + x64-elf-gas/aes/aes-x86_64.s \ + x64-elf-gas/bn/x86_64-mont.s \ + x64-elf-gas/camellia/cmll-x86_64.s \ + x64-elf-gas/md5/md5-x86_64.s \ + x64-elf-gas/rc4/rc4-x86_64.s \ + x64-elf-gas/sha/sha1-x86_64.s \ + x64-elf-gas/sha/sha512-x86_64.s \ + x64-elf-gas/whrlpool/wp-x86_64.s \ + x64-elf-gas/x86_64cpuid.s \ + x86-macosx-gas/aes/aes-586.s \ + x86-macosx-gas/bf/bf-686.s \ + x86-macosx-gas/bn/x86-mont.s \ + x86-macosx-gas/bn/x86.s \ + x86-macosx-gas/camellia/cmll-x86.s \ + x86-macosx-gas/cast/cast-586.s \ + x86-macosx-gas/des/crypt586.s \ + x86-macosx-gas/des/des-586.s \ + x86-macosx-gas/md5/md5-586.s \ + x86-macosx-gas/rc4/rc4-586.s \ + x86-macosx-gas/rc5/rc5-586.s \ + x86-macosx-gas/ripemd/rmd-586.s \ + x86-macosx-gas/sha/sha1-586.s \ + x86-macosx-gas/sha/sha256-586.s \ + x86-macosx-gas/sha/sha512-586.s \ + x86-macosx-gas/whrlpool/wp-mmx.s \ + x86-macosx-gas/x86cpuid.s \ + x64-macosx-gas/aes/aes-x86_64.s \ + x64-macosx-gas/bn/x86_64-mont.s \ + x64-macosx-gas/camellia/cmll-x86_64.s \ + x64-macosx-gas/md5/md5-x86_64.s \ + x64-macosx-gas/rc4/rc4-x86_64.s \ + x64-macosx-gas/sha/sha1-x86_64.s \ + x64-macosx-gas/sha/sha512-x86_64.s \ + x64-macosx-gas/whrlpool/wp-x86_64.s \ + x64-macosx-gas/x86_64cpuid.s \ + x86-win32-masm/aes/aes-586.asm \ + x86-win32-masm/bf/bf-686.asm \ + x86-win32-masm/bn/x86-mont.asm \ + x86-win32-masm/bn/x86.asm \ + x86-win32-masm/camellia/cmll-x86.asm \ + x86-win32-masm/cast/cast-586.asm \ + x86-win32-masm/des/crypt586.asm \ + x86-win32-masm/des/des-586.asm \ + x86-win32-masm/md5/md5-586.asm \ + x86-win32-masm/rc4/rc4-586.asm \ + x86-win32-masm/rc5/rc5-586.asm \ + x86-win32-masm/ripemd/rmd-586.asm \ + x86-win32-masm/sha/sha1-586.asm \ + x86-win32-masm/sha/sha256-586.asm \ + x86-win32-masm/sha/sha512-586.asm \ + x86-win32-masm/whrlpool/wp-mmx.asm \ + x86-win32-masm/x86cpuid.asm \ + x64-win32-masm/aes/aes-x86_64.asm \ + x64-win32-masm/bn/x86_64-mont.asm \ + x64-win32-masm/camellia/cmll-x86_64.asm \ + x64-win32-masm/md5/md5-x86_64.asm \ + x64-win32-masm/rc4/rc4-x86_64.asm \ + x64-win32-masm/sha/sha1-x86_64.asm \ + x64-win32-masm/sha/sha512-x86_64.asm \ + x64-win32-masm/whrlpool/wp-x86_64.asm \ + x64-win32-masm/x86_64cpuid.asm \ + +x64-elf-gas/%.s x86-elf-gas/%.s: + $(PERL) $< elf > $@ + +x64-macosx-gas/%.s x86-macosx-gas/%.s: + $(PERL) $< macosx > $@ + +x64-win32-masm/%.asm: + $(PERL) $< masm > $@ + +x86-win32-masm/%.asm: + $(PERL) $< win32 > $@ + +.PHONY: all +all: $(OUTPUTS) + # strip trailing whitespace and final blank newline + sed -sri -e 's/\s+$$/\n/' -e '$$ { /^$$/d }' $^ + +clean: + find . -iname '*.asm' -exec rm "{}" \; + find . -iname '*.s' -exec rm "{}" \; + +x64-elf-gas/aes/aes-x86_64.s: ../openssl/crypto/aes/asm/aes-x86_64.pl +x64-elf-gas/bn/x86_64-mont.s: ../openssl/crypto/bn/asm/x86_64-mont.pl +x64-elf-gas/camellia/cmll-x86_64.s: ../openssl/crypto/camellia/asm/cmll-x86_64.pl +x64-elf-gas/md5/md5-x86_64.s: ../openssl/crypto/md5/asm/md5-x86_64.pl +x64-elf-gas/rc4/rc4-x86_64.s: ../openssl/crypto/rc4/asm/rc4-x86_64.pl +x64-elf-gas/sha/sha1-x86_64.s: ../openssl/crypto/sha/asm/sha1-x86_64.pl +x64-elf-gas/sha/sha512-x86_64.s: ../openssl/crypto/sha/asm/sha512-x86_64.pl +x64-elf-gas/whrlpool/wp-x86_64.s: ../openssl/crypto/whrlpool/asm/wp-x86_64.pl +x64-elf-gas/x86_64cpuid.s: ../openssl/crypto/x86_64cpuid.pl +x64-macosx-gas/aes/aes-x86_64.s: ../openssl/crypto/aes/asm/aes-x86_64.pl +x64-macosx-gas/bn/x86_64-mont.s: ../openssl/crypto/bn/asm/x86_64-mont.pl +x64-macosx-gas/camellia/cmll-x86_64.s: ../openssl/crypto/camellia/asm/cmll-x86_64.pl +x64-macosx-gas/md5/md5-x86_64.s: ../openssl/crypto/md5/asm/md5-x86_64.pl +x64-macosx-gas/rc4/rc4-x86_64.s: ../openssl/crypto/rc4/asm/rc4-x86_64.pl +x64-macosx-gas/sha/sha1-x86_64.s: ../openssl/crypto/sha/asm/sha1-x86_64.pl +x64-macosx-gas/sha/sha512-x86_64.s: ../openssl/crypto/sha/asm/sha512-x86_64.pl +x64-macosx-gas/whrlpool/wp-x86_64.s: ../openssl/crypto/whrlpool/asm/wp-x86_64.pl +x64-macosx-gas/x86_64cpuid.s: ../openssl/crypto/x86_64cpuid.pl +x64-win32-masm/aes/aes-x86_64.asm: ../openssl/crypto/aes/asm/aes-x86_64.pl +x64-win32-masm/bn/x86_64-mont.asm: ../openssl/crypto/bn/asm/x86_64-mont.pl +x64-win32-masm/camellia/cmll-x86_64.asm: ../openssl/crypto/camellia/asm/cmll-x86_64.pl +x64-win32-masm/md5/md5-x86_64.asm: ../openssl/crypto/md5/asm/md5-x86_64.pl +x64-win32-masm/rc4/rc4-x86_64.asm: ../openssl/crypto/rc4/asm/rc4-x86_64.pl +x64-win32-masm/sha/sha1-x86_64.asm: ../openssl/crypto/sha/asm/sha1-x86_64.pl +x64-win32-masm/sha/sha512-x86_64.asm: ../openssl/crypto/sha/asm/sha512-x86_64.pl +x64-win32-masm/whrlpool/wp-x86_64.asm: ../openssl/crypto/whrlpool/asm/wp-x86_64.pl +x64-win32-masm/x86_64cpuid.asm: ../openssl/crypto/x86_64cpuid.pl +x86-elf-gas/aes/aes-586.s: ../openssl/crypto/aes/asm/aes-586.pl +x86-elf-gas/bf/bf-686.s: ../openssl/crypto/bf/asm/bf-686.pl +x86-elf-gas/bn/x86-mont.s: ../openssl/crypto/bn/asm/x86-mont.pl +x86-elf-gas/bn/x86.s: ../openssl/crypto/bn/asm/x86.pl +x86-elf-gas/camellia/cmll-x86.s: ../openssl/crypto/camellia/asm/cmll-x86.pl +x86-elf-gas/cast/cast-586.s: ../openssl/crypto/cast/asm/cast-586.pl +x86-elf-gas/des/crypt586.s: ../openssl/crypto/des/asm/crypt586.pl +x86-elf-gas/des/des-586.s: ../openssl/crypto/des/asm/des-586.pl +x86-elf-gas/md5/md5-586.s: ../openssl/crypto/md5/asm/md5-586.pl +x86-elf-gas/rc4/rc4-586.s: ../openssl/crypto/rc4/asm/rc4-586.pl +x86-elf-gas/rc5/rc5-586.s: ../openssl/crypto/rc5/asm/rc5-586.pl +x86-elf-gas/ripemd/rmd-586.s: ../openssl/crypto/ripemd/asm/rmd-586.pl +x86-elf-gas/sha/sha1-586.s: ../openssl/crypto/sha/asm/sha1-586.pl +x86-elf-gas/sha/sha256-586.s: ../openssl/crypto/sha/asm/sha256-586.pl +x86-elf-gas/sha/sha512-586.s: ../openssl/crypto/sha/asm/sha512-586.pl +x86-elf-gas/whrlpool/wp-mmx.s: ../openssl/crypto/whrlpool/asm/wp-mmx.pl +x86-elf-gas/x86cpuid.s: ../openssl/crypto/x86cpuid.pl +x86-macosx-gas/aes/aes-586.s: ../openssl/crypto/aes/asm/aes-586.pl +x86-macosx-gas/bf/bf-686.s: ../openssl/crypto/bf/asm/bf-686.pl +x86-macosx-gas/bn/x86-mont.s: ../openssl/crypto/bn/asm/x86-mont.pl +x86-macosx-gas/bn/x86.s: ../openssl/crypto/bn/asm/x86.pl +x86-macosx-gas/camellia/cmll-x86.s: ../openssl/crypto/camellia/asm/cmll-x86.pl +x86-macosx-gas/cast/cast-586.s: ../openssl/crypto/cast/asm/cast-586.pl +x86-macosx-gas/des/crypt586.s: ../openssl/crypto/des/asm/crypt586.pl +x86-macosx-gas/des/des-586.s: ../openssl/crypto/des/asm/des-586.pl +x86-macosx-gas/md5/md5-586.s: ../openssl/crypto/md5/asm/md5-586.pl +x86-macosx-gas/rc4/rc4-586.s: ../openssl/crypto/rc4/asm/rc4-586.pl +x86-macosx-gas/rc5/rc5-586.s: ../openssl/crypto/rc5/asm/rc5-586.pl +x86-macosx-gas/ripemd/rmd-586.s: ../openssl/crypto/ripemd/asm/rmd-586.pl +x86-macosx-gas/sha/sha1-586.s: ../openssl/crypto/sha/asm/sha1-586.pl +x86-macosx-gas/sha/sha256-586.s: ../openssl/crypto/sha/asm/sha256-586.pl +x86-macosx-gas/sha/sha512-586.s: ../openssl/crypto/sha/asm/sha512-586.pl +x86-macosx-gas/whrlpool/wp-mmx.s: ../openssl/crypto/whrlpool/asm/wp-mmx.pl +x86-macosx-gas/x86cpuid.s: ../openssl/crypto/x86cpuid.pl +x86-win32-masm/aes/aes-586.asm: ../openssl/crypto/aes/asm/aes-586.pl +x86-win32-masm/bf/bf-686.asm: ../openssl/crypto/bf/asm/bf-686.pl +x86-win32-masm/bn/x86.asm: ../openssl/crypto/bn/asm/x86.pl +x86-win32-masm/bn/x86-mont.asm: ../openssl/crypto/bn/asm/x86-mont.pl +x86-win32-masm/camellia/cmll-x86.asm: ../openssl/crypto/camellia/asm/cmll-x86.pl +x86-win32-masm/cast/cast-586.asm: ../openssl/crypto/cast/asm/cast-586.pl +x86-win32-masm/des/crypt586.asm: ../openssl/crypto/des/asm/crypt586.pl +x86-win32-masm/des/des-586.asm: ../openssl/crypto/des/asm/des-586.pl +x86-win32-masm/md5/md5-586.asm: ../openssl/crypto/md5/asm/md5-586.pl +x86-win32-masm/rc4/rc4-586.asm: ../openssl/crypto/rc4/asm/rc4-586.pl +x86-win32-masm/rc5/rc5-586.asm: ../openssl/crypto/rc5/asm/rc5-586.pl +x86-win32-masm/ripemd/rmd-586.asm: ../openssl/crypto/ripemd/asm/rmd-586.pl +x86-win32-masm/sha/sha1-586.asm: ../openssl/crypto/sha/asm/sha1-586.pl +x86-win32-masm/sha/sha256-586.asm: ../openssl/crypto/sha/asm/sha256-586.pl +x86-win32-masm/sha/sha512-586.asm: ../openssl/crypto/sha/asm/sha512-586.pl +x86-win32-masm/whrlpool/wp-mmx.asm: ../openssl/crypto/whrlpool/asm/wp-mmx.pl +x86-win32-masm/x86cpuid.asm: ../openssl/crypto/x86cpuid.pl diff --git a/deps/openssl/asm/x64-elf-gas/aes/aes-x86_64.s b/deps/openssl/asm/x64-elf-gas/aes/aes-x86_64.s new file mode 100644 index 0000000000..d7feffbfa5 --- /dev/null +++ b/deps/openssl/asm/x64-elf-gas/aes/aes-x86_64.s @@ -0,0 +1,2545 @@ +.text + +.type _x86_64_AES_encrypt,@function +.align 16 +_x86_64_AES_encrypt: + xorl 0(%r15),%eax + xorl 4(%r15),%ebx + xorl 8(%r15),%ecx + xorl 12(%r15),%edx + + movl 240(%r15),%r13d + subl $1,%r13d + jmp .Lenc_loop +.align 16 +.Lenc_loop: + + movzbl %al,%esi + movzbl %bl,%edi + movzbl %cl,%ebp + movl 0(%r14,%rsi,8),%r10d + movl 0(%r14,%rdi,8),%r11d + movl 0(%r14,%rbp,8),%r12d + + movzbl %bh,%esi + movzbl %ch,%edi + movzbl %dl,%ebp + xorl 3(%r14,%rsi,8),%r10d + xorl 3(%r14,%rdi,8),%r11d + movl 0(%r14,%rbp,8),%r8d + + movzbl %dh,%esi + shrl $16,%ecx + movzbl %ah,%ebp + xorl 3(%r14,%rsi,8),%r12d + shrl $16,%edx + xorl 3(%r14,%rbp,8),%r8d + + shrl $16,%ebx + leaq 16(%r15),%r15 + shrl $16,%eax + + movzbl %cl,%esi + movzbl %dl,%edi + movzbl %al,%ebp + xorl 2(%r14,%rsi,8),%r10d + xorl 2(%r14,%rdi,8),%r11d + xorl 2(%r14,%rbp,8),%r12d + + movzbl %dh,%esi + movzbl %ah,%edi + movzbl %bl,%ebp + xorl 1(%r14,%rsi,8),%r10d + xorl 1(%r14,%rdi,8),%r11d + xorl 2(%r14,%rbp,8),%r8d + + movl 12(%r15),%edx + movzbl %bh,%edi + movzbl %ch,%ebp + movl 0(%r15),%eax + xorl 1(%r14,%rdi,8),%r12d + xorl 1(%r14,%rbp,8),%r8d + + movl 4(%r15),%ebx + movl 8(%r15),%ecx + xorl %r10d,%eax + xorl %r11d,%ebx + xorl %r12d,%ecx + xorl %r8d,%edx + subl $1,%r13d + jnz .Lenc_loop + movzbl %al,%esi + movzbl %bl,%edi + movzbl %cl,%ebp + movzbl 2(%r14,%rsi,8),%r10d + movzbl 2(%r14,%rdi,8),%r11d + movzbl 2(%r14,%rbp,8),%r12d + + movzbl %dl,%esi + movzbl %bh,%edi + movzbl %ch,%ebp + movzbl 2(%r14,%rsi,8),%r8d + movl 0(%r14,%rdi,8),%edi + movl 0(%r14,%rbp,8),%ebp + + andl $65280,%edi + andl $65280,%ebp + + xorl %edi,%r10d + xorl %ebp,%r11d + shrl $16,%ecx + + movzbl %dh,%esi + movzbl %ah,%edi + shrl $16,%edx + movl 0(%r14,%rsi,8),%esi + movl 0(%r14,%rdi,8),%edi + + andl $65280,%esi + andl $65280,%edi + shrl $16,%ebx + xorl %esi,%r12d + xorl %edi,%r8d + shrl $16,%eax + + movzbl %cl,%esi + movzbl %dl,%edi + movzbl %al,%ebp + movl 0(%r14,%rsi,8),%esi + movl 0(%r14,%rdi,8),%edi + movl 0(%r14,%rbp,8),%ebp + + andl $16711680,%esi + andl $16711680,%edi + andl $16711680,%ebp + + xorl %esi,%r10d + xorl %edi,%r11d + xorl %ebp,%r12d + + movzbl %bl,%esi + movzbl %dh,%edi + movzbl %ah,%ebp + movl 0(%r14,%rsi,8),%esi + movl 2(%r14,%rdi,8),%edi + movl 2(%r14,%rbp,8),%ebp + + andl $16711680,%esi + andl $4278190080,%edi + andl $4278190080,%ebp + + xorl %esi,%r8d + xorl %edi,%r10d + xorl %ebp,%r11d + + movzbl %bh,%esi + movzbl %ch,%edi + movl 16+12(%r15),%edx + movl 2(%r14,%rsi,8),%esi + movl 2(%r14,%rdi,8),%edi + movl 16+0(%r15),%eax + + andl $4278190080,%esi + andl $4278190080,%edi + + xorl %esi,%r12d + xorl %edi,%r8d + + movl 16+4(%r15),%ebx + movl 16+8(%r15),%ecx + xorl %r10d,%eax + xorl %r11d,%ebx + xorl %r12d,%ecx + xorl %r8d,%edx +.byte 0xf3,0xc3 + +.size _x86_64_AES_encrypt,.-_x86_64_AES_encrypt +.type _x86_64_AES_encrypt_compact,@function +.align 16 +_x86_64_AES_encrypt_compact: + leaq 128(%r14),%r8 + movl 0-128(%r8),%edi + movl 32-128(%r8),%ebp + movl 64-128(%r8),%r10d + movl 96-128(%r8),%r11d + movl 128-128(%r8),%edi + movl 160-128(%r8),%ebp + movl 192-128(%r8),%r10d + movl 224-128(%r8),%r11d + jmp .Lenc_loop_compact +.align 16 +.Lenc_loop_compact: + xorl 0(%r15),%eax + xorl 4(%r15),%ebx + xorl 8(%r15),%ecx + xorl 12(%r15),%edx + leaq 16(%r15),%r15 + movzbl %al,%r10d + movzbl %bl,%r11d + movzbl %cl,%r12d + movzbl (%r14,%r10,1),%r10d + movzbl (%r14,%r11,1),%r11d + movzbl (%r14,%r12,1),%r12d + + movzbl %dl,%r8d + movzbl %bh,%esi + movzbl %ch,%edi + movzbl (%r14,%r8,1),%r8d + movzbl (%r14,%rsi,1),%r9d + movzbl (%r14,%rdi,1),%r13d + + movzbl %dh,%ebp + movzbl %ah,%esi + shrl $16,%ecx + movzbl (%r14,%rbp,1),%ebp + movzbl (%r14,%rsi,1),%esi + shrl $16,%edx + + movzbl %cl,%edi + shll $8,%r9d + shll $8,%r13d + movzbl (%r14,%rdi,1),%edi + xorl %r9d,%r10d + xorl %r13d,%r11d + + movzbl %dl,%r9d + shrl $16,%eax + shrl $16,%ebx + movzbl %al,%r13d + shll $8,%ebp + shll $8,%esi + movzbl (%r14,%r9,1),%r9d + movzbl (%r14,%r13,1),%r13d + xorl %ebp,%r12d + xorl %esi,%r8d + + movzbl %bl,%ebp + movzbl %dh,%esi + shll $16,%edi + movzbl (%r14,%rbp,1),%ebp + movzbl (%r14,%rsi,1),%esi + xorl %edi,%r10d + + movzbl %ah,%edi + shrl $8,%ecx + shrl $8,%ebx + movzbl (%r14,%rdi,1),%edi + movzbl (%r14,%rcx,1),%edx + movzbl (%r14,%rbx,1),%ecx + shll $16,%r9d + shll $16,%r13d + shll $16,%ebp + xorl %r9d,%r11d + xorl %r13d,%r12d + xorl %ebp,%r8d + + shll $24,%esi + shll $24,%edi + shll $24,%edx + xorl %esi,%r10d + shll $24,%ecx + xorl %edi,%r11d + movl %r10d,%eax + movl %r11d,%ebx + xorl %r12d,%ecx + xorl %r8d,%edx + cmpq 16(%rsp),%r15 + je .Lenc_compact_done + movl %eax,%esi + movl %ebx,%edi + andl $2155905152,%esi + andl $2155905152,%edi + movl %esi,%r10d + movl %edi,%r11d + shrl $7,%r10d + leal (%rax,%rax,1),%r8d + shrl $7,%r11d + leal (%rbx,%rbx,1),%r9d + subl %r10d,%esi + subl %r11d,%edi + andl $4278124286,%r8d + andl $4278124286,%r9d + andl $454761243,%esi + andl $454761243,%edi + movl %eax,%r10d + movl %ebx,%r11d + xorl %esi,%r8d + xorl %edi,%r9d + + xorl %r8d,%eax + xorl %r9d,%ebx + movl %ecx,%esi + movl %edx,%edi + roll $24,%eax + roll $24,%ebx + andl $2155905152,%esi + andl $2155905152,%edi + xorl %r8d,%eax + xorl %r9d,%ebx + movl %esi,%r12d + movl %edi,%ebp + rorl $16,%r10d + rorl $16,%r11d + shrl $7,%r12d + leal (%rcx,%rcx,1),%r8d + xorl %r10d,%eax + xorl %r11d,%ebx + shrl $7,%ebp + leal (%rdx,%rdx,1),%r9d + rorl $8,%r10d + rorl $8,%r11d + subl %r12d,%esi + subl %ebp,%edi + xorl %r10d,%eax + xorl %r11d,%ebx + + andl $4278124286,%r8d + andl $4278124286,%r9d + andl $454761243,%esi + andl $454761243,%edi + movl %ecx,%r12d + movl %edx,%ebp + xorl %esi,%r8d + xorl %edi,%r9d + + xorl %r8d,%ecx + xorl %r9d,%edx + roll $24,%ecx + roll $24,%edx + xorl %r8d,%ecx + xorl %r9d,%edx + movl 0(%r14),%esi + rorl $16,%r12d + rorl $16,%ebp + movl 64(%r14),%edi + xorl %r12d,%ecx + xorl %ebp,%edx + movl 128(%r14),%r8d + rorl $8,%r12d + rorl $8,%ebp + movl 192(%r14),%r9d + xorl %r12d,%ecx + xorl %ebp,%edx + jmp .Lenc_loop_compact +.align 16 +.Lenc_compact_done: + xorl 0(%r15),%eax + xorl 4(%r15),%ebx + xorl 8(%r15),%ecx + xorl 12(%r15),%edx +.byte 0xf3,0xc3 + +.size _x86_64_AES_encrypt_compact,.-_x86_64_AES_encrypt_compact +.globl AES_encrypt +.type AES_encrypt,@function +.align 16 +AES_encrypt: + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + + + movq %rsp,%r10 + leaq -63(%rdx),%rcx + andq $-64,%rsp + subq %rsp,%rcx + negq %rcx + andq $960,%rcx + subq %rcx,%rsp + subq $32,%rsp + + movq %rsi,16(%rsp) + movq %r10,24(%rsp) +.Lenc_prologue: + + movq %rdx,%r15 + movl 240(%r15),%r13d + + movl 0(%rdi),%eax + movl 4(%rdi),%ebx + movl 8(%rdi),%ecx + movl 12(%rdi),%edx + + shll $4,%r13d + leaq (%r15,%r13,1),%rbp + movq %r15,(%rsp) + movq %rbp,8(%rsp) + + + leaq .LAES_Te+2048(%rip),%r14 + leaq 768(%rsp),%rbp + subq %r14,%rbp + andq $768,%rbp + leaq (%r14,%rbp,1),%r14 + + call _x86_64_AES_encrypt_compact + + movq 16(%rsp),%r9 + movq 24(%rsp),%rsi + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + + movq (%rsi),%r15 + movq 8(%rsi),%r14 + movq 16(%rsi),%r13 + movq 24(%rsi),%r12 + movq 32(%rsi),%rbp + movq 40(%rsi),%rbx + leaq 48(%rsi),%rsp +.Lenc_epilogue: + .byte 0xf3,0xc3 +.size AES_encrypt,.-AES_encrypt +.type _x86_64_AES_decrypt,@function +.align 16 +_x86_64_AES_decrypt: + xorl 0(%r15),%eax + xorl 4(%r15),%ebx + xorl 8(%r15),%ecx + xorl 12(%r15),%edx + + movl 240(%r15),%r13d + subl $1,%r13d + jmp .Ldec_loop +.align 16 +.Ldec_loop: + + movzbl %al,%esi + movzbl %bl,%edi + movzbl %cl,%ebp + movl 0(%r14,%rsi,8),%r10d + movl 0(%r14,%rdi,8),%r11d + movl 0(%r14,%rbp,8),%r12d + + movzbl %dh,%esi + movzbl %ah,%edi + movzbl %dl,%ebp + xorl 3(%r14,%rsi,8),%r10d + xorl 3(%r14,%rdi,8),%r11d + movl 0(%r14,%rbp,8),%r8d + + movzbl %bh,%esi + shrl $16,%eax + movzbl %ch,%ebp + xorl 3(%r14,%rsi,8),%r12d + shrl $16,%edx + xorl 3(%r14,%rbp,8),%r8d + + shrl $16,%ebx + leaq 16(%r15),%r15 + shrl $16,%ecx + + movzbl %cl,%esi + movzbl %dl,%edi + movzbl %al,%ebp + xorl 2(%r14,%rsi,8),%r10d + xorl 2(%r14,%rdi,8),%r11d + xorl 2(%r14,%rbp,8),%r12d + + movzbl %bh,%esi + movzbl %ch,%edi + movzbl %bl,%ebp + xorl 1(%r14,%rsi,8),%r10d + xorl 1(%r14,%rdi,8),%r11d + xorl 2(%r14,%rbp,8),%r8d + + movzbl %dh,%esi + movl 12(%r15),%edx + movzbl %ah,%ebp + xorl 1(%r14,%rsi,8),%r12d + movl 0(%r15),%eax + xorl 1(%r14,%rbp,8),%r8d + + xorl %r10d,%eax + movl 4(%r15),%ebx + movl 8(%r15),%ecx + xorl %r12d,%ecx + xorl %r11d,%ebx + xorl %r8d,%edx + subl $1,%r13d + jnz .Ldec_loop + leaq 2048(%r14),%r14 + movzbl %al,%esi + movzbl %bl,%edi + movzbl %cl,%ebp + movzbl (%r14,%rsi,1),%r10d + movzbl (%r14,%rdi,1),%r11d + movzbl (%r14,%rbp,1),%r12d + + movzbl %dl,%esi + movzbl %dh,%edi + movzbl %ah,%ebp + movzbl (%r14,%rsi,1),%r8d + movzbl (%r14,%rdi,1),%edi + movzbl (%r14,%rbp,1),%ebp + + shll $8,%edi + shll $8,%ebp + + xorl %edi,%r10d + xorl %ebp,%r11d + shrl $16,%edx + + movzbl %bh,%esi + movzbl %ch,%edi + shrl $16,%eax + movzbl (%r14,%rsi,1),%esi + movzbl (%r14,%rdi,1),%edi + + shll $8,%esi + shll $8,%edi + shrl $16,%ebx + xorl %esi,%r12d + xorl %edi,%r8d + shrl $16,%ecx + + movzbl %cl,%esi + movzbl %dl,%edi + movzbl %al,%ebp + movzbl (%r14,%rsi,1),%esi + movzbl (%r14,%rdi,1),%edi + movzbl (%r14,%rbp,1),%ebp + + shll $16,%esi + shll $16,%edi + shll $16,%ebp + + xorl %esi,%r10d + xorl %edi,%r11d + xorl %ebp,%r12d + + movzbl %bl,%esi + movzbl %bh,%edi + movzbl %ch,%ebp + movzbl (%r14,%rsi,1),%esi + movzbl (%r14,%rdi,1),%edi + movzbl (%r14,%rbp,1),%ebp + + shll $16,%esi + shll $24,%edi + shll $24,%ebp + + xorl %esi,%r8d + xorl %edi,%r10d + xorl %ebp,%r11d + + movzbl %dh,%esi + movzbl %ah,%edi + movl 16+12(%r15),%edx + movzbl (%r14,%rsi,1),%esi + movzbl (%r14,%rdi,1),%edi + movl 16+0(%r15),%eax + + shll $24,%esi + shll $24,%edi + + xorl %esi,%r12d + xorl %edi,%r8d + + movl 16+4(%r15),%ebx + movl 16+8(%r15),%ecx + leaq -2048(%r14),%r14 + xorl %r10d,%eax + xorl %r11d,%ebx + xorl %r12d,%ecx + xorl %r8d,%edx +.byte 0xf3,0xc3 + +.size _x86_64_AES_decrypt,.-_x86_64_AES_decrypt +.type _x86_64_AES_decrypt_compact,@function +.align 16 +_x86_64_AES_decrypt_compact: + leaq 128(%r14),%r8 + movl 0-128(%r8),%edi + movl 32-128(%r8),%ebp + movl 64-128(%r8),%r10d + movl 96-128(%r8),%r11d + movl 128-128(%r8),%edi + movl 160-128(%r8),%ebp + movl 192-128(%r8),%r10d + movl 224-128(%r8),%r11d + jmp .Ldec_loop_compact + +.align 16 +.Ldec_loop_compact: + xorl 0(%r15),%eax + xorl 4(%r15),%ebx + xorl 8(%r15),%ecx + xorl 12(%r15),%edx + leaq 16(%r15),%r15 + movzbl %al,%r10d + movzbl %bl,%r11d + movzbl %cl,%r12d + movzbl (%r14,%r10,1),%r10d + movzbl (%r14,%r11,1),%r11d + movzbl (%r14,%r12,1),%r12d + + movzbl %dl,%r8d + movzbl %dh,%esi + movzbl %ah,%edi + movzbl (%r14,%r8,1),%r8d + movzbl (%r14,%rsi,1),%r9d + movzbl (%r14,%rdi,1),%r13d + + movzbl %bh,%ebp + movzbl %ch,%esi + shrl $16,%ecx + movzbl (%r14,%rbp,1),%ebp + movzbl (%r14,%rsi,1),%esi + shrl $16,%edx + + movzbl %cl,%edi + shll $8,%r9d + shll $8,%r13d + movzbl (%r14,%rdi,1),%edi + xorl %r9d,%r10d + xorl %r13d,%r11d + + movzbl %dl,%r9d + shrl $16,%eax + shrl $16,%ebx + movzbl %al,%r13d + shll $8,%ebp + shll $8,%esi + movzbl (%r14,%r9,1),%r9d + movzbl (%r14,%r13,1),%r13d + xorl %ebp,%r12d + xorl %esi,%r8d + + movzbl %bl,%ebp + movzbl %bh,%esi + shll $16,%edi + movzbl (%r14,%rbp,1),%ebp + movzbl (%r14,%rsi,1),%esi + xorl %edi,%r10d + + movzbl %ch,%edi + shll $16,%r9d + shll $16,%r13d + movzbl (%r14,%rdi,1),%ebx + xorl %r9d,%r11d + xorl %r13d,%r12d + + movzbl %dh,%edi + shrl $8,%eax + shll $16,%ebp + movzbl (%r14,%rdi,1),%ecx + movzbl (%r14,%rax,1),%edx + xorl %ebp,%r8d + + shll $24,%esi + shll $24,%ebx + shll $24,%ecx + xorl %esi,%r10d + shll $24,%edx + xorl %r11d,%ebx + movl %r10d,%eax + xorl %r12d,%ecx + xorl %r8d,%edx + cmpq 16(%rsp),%r15 + je .Ldec_compact_done + + movq 256+0(%r14),%rsi + shlq $32,%rbx + shlq $32,%rdx + movq 256+8(%r14),%rdi + orq %rbx,%rax + orq %rdx,%rcx + movq 256+16(%r14),%rbp + movq %rax,%rbx + movq %rcx,%rdx + andq %rsi,%rbx + andq %rsi,%rdx + movq %rbx,%r9 + movq %rdx,%r12 + shrq $7,%r9 + leaq (%rax,%rax,1),%r8 + shrq $7,%r12 + leaq (%rcx,%rcx,1),%r11 + subq %r9,%rbx + subq %r12,%rdx + andq %rdi,%r8 + andq %rdi,%r11 + andq %rbp,%rbx + andq %rbp,%rdx + xorq %r8,%rbx + xorq %r11,%rdx + movq %rbx,%r8 + movq %rdx,%r11 + + andq %rsi,%rbx + andq %rsi,%rdx + movq %rbx,%r10 + movq %rdx,%r13 + shrq $7,%r10 + leaq (%r8,%r8,1),%r9 + shrq $7,%r13 + leaq (%r11,%r11,1),%r12 + subq %r10,%rbx + subq %r13,%rdx + andq %rdi,%r9 + andq %rdi,%r12 + andq %rbp,%rbx + andq %rbp,%rdx + xorq %r9,%rbx + xorq %r12,%rdx + movq %rbx,%r9 + movq %rdx,%r12 + + andq %rsi,%rbx + andq %rsi,%rdx + movq %rbx,%r10 + movq %rdx,%r13 + shrq $7,%r10 + xorq %rax,%r8 + shrq $7,%r13 + xorq %rcx,%r11 + subq %r10,%rbx + subq %r13,%rdx + leaq (%r9,%r9,1),%r10 + leaq (%r12,%r12,1),%r13 + xorq %rax,%r9 + xorq %rcx,%r12 + andq %rdi,%r10 + andq %rdi,%r13 + andq %rbp,%rbx + andq %rbp,%rdx + xorq %rbx,%r10 + xorq %rdx,%r13 + + xorq %r10,%rax + xorq %r13,%rcx + xorq %r10,%r8 + xorq %r13,%r11 + movq %rax,%rbx + movq %rcx,%rdx + xorq %r10,%r9 + xorq %r13,%r12 + shrq $32,%rbx + shrq $32,%rdx + xorq %r8,%r10 + xorq %r11,%r13 + roll $8,%eax + roll $8,%ecx + xorq %r9,%r10 + xorq %r12,%r13 + + roll $8,%ebx + roll $8,%edx + xorl %r10d,%eax + xorl %r13d,%ecx + shrq $32,%r10 + shrq $32,%r13 + xorl %r10d,%ebx + xorl %r13d,%edx + + movq %r8,%r10 + movq %r11,%r13 + shrq $32,%r10 + shrq $32,%r13 + roll $24,%r8d + roll $24,%r11d + roll $24,%r10d + roll $24,%r13d + xorl %r8d,%eax + xorl %r11d,%ecx + movq %r9,%r8 + movq %r12,%r11 + xorl %r10d,%ebx + xorl %r13d,%edx + + movq 0(%r14),%rsi + shrq $32,%r8 + shrq $32,%r11 + movq 64(%r14),%rdi + roll $16,%r9d + roll $16,%r12d + movq 128(%r14),%rbp + roll $16,%r8d + roll $16,%r11d + movq 192(%r14),%r10 + xorl %r9d,%eax + xorl %r12d,%ecx + movq 256(%r14),%r13 + xorl %r8d,%ebx + xorl %r11d,%edx + jmp .Ldec_loop_compact +.align 16 +.Ldec_compact_done: + xorl 0(%r15),%eax + xorl 4(%r15),%ebx + xorl 8(%r15),%ecx + xorl 12(%r15),%edx +.byte 0xf3,0xc3 + +.size _x86_64_AES_decrypt_compact,.-_x86_64_AES_decrypt_compact +.globl AES_decrypt +.type AES_decrypt,@function +.align 16 +AES_decrypt: + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + + + movq %rsp,%r10 + leaq -63(%rdx),%rcx + andq $-64,%rsp + subq %rsp,%rcx + negq %rcx + andq $960,%rcx + subq %rcx,%rsp + subq $32,%rsp + + movq %rsi,16(%rsp) + movq %r10,24(%rsp) +.Ldec_prologue: + + movq %rdx,%r15 + movl 240(%r15),%r13d + + movl 0(%rdi),%eax + movl 4(%rdi),%ebx + movl 8(%rdi),%ecx + movl 12(%rdi),%edx + + shll $4,%r13d + leaq (%r15,%r13,1),%rbp + movq %r15,(%rsp) + movq %rbp,8(%rsp) + + + leaq .LAES_Td+2048(%rip),%r14 + leaq 768(%rsp),%rbp + subq %r14,%rbp + andq $768,%rbp + leaq (%r14,%rbp,1),%r14 + shrq $3,%rbp + addq %rbp,%r14 + + call _x86_64_AES_decrypt_compact + + movq 16(%rsp),%r9 + movq 24(%rsp),%rsi + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + + movq (%rsi),%r15 + movq 8(%rsi),%r14 + movq 16(%rsi),%r13 + movq 24(%rsi),%r12 + movq 32(%rsi),%rbp + movq 40(%rsi),%rbx + leaq 48(%rsi),%rsp +.Ldec_epilogue: + .byte 0xf3,0xc3 +.size AES_decrypt,.-AES_decrypt +.globl AES_set_encrypt_key +.type AES_set_encrypt_key,@function +.align 16 +AES_set_encrypt_key: + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + subq $8,%rsp +.Lenc_key_prologue: + + call _x86_64_AES_set_encrypt_key + + movq 8(%rsp),%r15 + movq 16(%rsp),%r14 + movq 24(%rsp),%r13 + movq 32(%rsp),%r12 + movq 40(%rsp),%rbp + movq 48(%rsp),%rbx + addq $56,%rsp +.Lenc_key_epilogue: + .byte 0xf3,0xc3 +.size AES_set_encrypt_key,.-AES_set_encrypt_key + +.type _x86_64_AES_set_encrypt_key,@function +.align 16 +_x86_64_AES_set_encrypt_key: + movl %esi,%ecx + movq %rdi,%rsi + movq %rdx,%rdi + + testq $-1,%rsi + jz .Lbadpointer + testq $-1,%rdi + jz .Lbadpointer + + leaq .LAES_Te(%rip),%rbp + leaq 2048+128(%rbp),%rbp + + + movl 0-128(%rbp),%eax + movl 32-128(%rbp),%ebx + movl 64-128(%rbp),%r8d + movl 96-128(%rbp),%edx + movl 128-128(%rbp),%eax + movl 160-128(%rbp),%ebx + movl 192-128(%rbp),%r8d + movl 224-128(%rbp),%edx + + cmpl $128,%ecx + je .L10rounds + cmpl $192,%ecx + je .L12rounds + cmpl $256,%ecx + je .L14rounds + movq $-2,%rax + jmp .Lexit + +.L10rounds: + movq 0(%rsi),%rax + movq 8(%rsi),%rdx + movq %rax,0(%rdi) + movq %rdx,8(%rdi) + + shrq $32,%rdx + xorl %ecx,%ecx + jmp .L10shortcut +.align 4 +.L10loop: + movl 0(%rdi),%eax + movl 12(%rdi),%edx +.L10shortcut: + movzbl %dl,%esi + movzbl -128(%rbp,%rsi,1),%ebx + movzbl %dh,%esi + shll $24,%ebx + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + shrl $16,%edx + movzbl %dl,%esi + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + movzbl %dh,%esi + shll $8,%ebx + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + shll $16,%ebx + xorl %ebx,%eax + + xorl 1024-128(%rbp,%rcx,4),%eax + movl %eax,16(%rdi) + xorl 4(%rdi),%eax + movl %eax,20(%rdi) + xorl 8(%rdi),%eax + movl %eax,24(%rdi) + xorl 12(%rdi),%eax + movl %eax,28(%rdi) + addl $1,%ecx + leaq 16(%rdi),%rdi + cmpl $10,%ecx + jl .L10loop + + movl $10,80(%rdi) + xorq %rax,%rax + jmp .Lexit + +.L12rounds: + movq 0(%rsi),%rax + movq 8(%rsi),%rbx + movq 16(%rsi),%rdx + movq %rax,0(%rdi) + movq %rbx,8(%rdi) + movq %rdx,16(%rdi) + + shrq $32,%rdx + xorl %ecx,%ecx + jmp .L12shortcut +.align 4 +.L12loop: + movl 0(%rdi),%eax + movl 20(%rdi),%edx +.L12shortcut: + movzbl %dl,%esi + movzbl -128(%rbp,%rsi,1),%ebx + movzbl %dh,%esi + shll $24,%ebx + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + shrl $16,%edx + movzbl %dl,%esi + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + movzbl %dh,%esi + shll $8,%ebx + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + shll $16,%ebx + xorl %ebx,%eax + + xorl 1024-128(%rbp,%rcx,4),%eax + movl %eax,24(%rdi) + xorl 4(%rdi),%eax + movl %eax,28(%rdi) + xorl 8(%rdi),%eax + movl %eax,32(%rdi) + xorl 12(%rdi),%eax + movl %eax,36(%rdi) + + cmpl $7,%ecx + je .L12break + addl $1,%ecx + + xorl 16(%rdi),%eax + movl %eax,40(%rdi) + xorl 20(%rdi),%eax + movl %eax,44(%rdi) + + leaq 24(%rdi),%rdi + jmp .L12loop +.L12break: + movl $12,72(%rdi) + xorq %rax,%rax + jmp .Lexit + +.L14rounds: + movq 0(%rsi),%rax + movq 8(%rsi),%rbx + movq 16(%rsi),%rcx + movq 24(%rsi),%rdx + movq %rax,0(%rdi) + movq %rbx,8(%rdi) + movq %rcx,16(%rdi) + movq %rdx,24(%rdi) + + shrq $32,%rdx + xorl %ecx,%ecx + jmp .L14shortcut +.align 4 +.L14loop: + movl 0(%rdi),%eax + movl 28(%rdi),%edx +.L14shortcut: + movzbl %dl,%esi + movzbl -128(%rbp,%rsi,1),%ebx + movzbl %dh,%esi + shll $24,%ebx + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + shrl $16,%edx + movzbl %dl,%esi + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + movzbl %dh,%esi + shll $8,%ebx + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + shll $16,%ebx + xorl %ebx,%eax + + xorl 1024-128(%rbp,%rcx,4),%eax + movl %eax,32(%rdi) + xorl 4(%rdi),%eax + movl %eax,36(%rdi) + xorl 8(%rdi),%eax + movl %eax,40(%rdi) + xorl 12(%rdi),%eax + movl %eax,44(%rdi) + + cmpl $6,%ecx + je .L14break + addl $1,%ecx + + movl %eax,%edx + movl 16(%rdi),%eax + movzbl %dl,%esi + movzbl -128(%rbp,%rsi,1),%ebx + movzbl %dh,%esi + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + shrl $16,%edx + shll $8,%ebx + movzbl %dl,%esi + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + movzbl %dh,%esi + shll $16,%ebx + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + shll $24,%ebx + xorl %ebx,%eax + + movl %eax,48(%rdi) + xorl 20(%rdi),%eax + movl %eax,52(%rdi) + xorl 24(%rdi),%eax + movl %eax,56(%rdi) + xorl 28(%rdi),%eax + movl %eax,60(%rdi) + + leaq 32(%rdi),%rdi + jmp .L14loop +.L14break: + movl $14,48(%rdi) + xorq %rax,%rax + jmp .Lexit + +.Lbadpointer: + movq $-1,%rax +.Lexit: +.byte 0xf3,0xc3 + +.size _x86_64_AES_set_encrypt_key,.-_x86_64_AES_set_encrypt_key +.globl AES_set_decrypt_key +.type AES_set_decrypt_key,@function +.align 16 +AES_set_decrypt_key: + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + pushq %rdx +.Ldec_key_prologue: + + call _x86_64_AES_set_encrypt_key + movq (%rsp),%r8 + cmpl $0,%eax + jne .Labort + + movl 240(%r8),%r14d + xorq %rdi,%rdi + leaq (%rdi,%r14,4),%rcx + movq %r8,%rsi + leaq (%r8,%rcx,4),%rdi +.align 4 +.Linvert: + movq 0(%rsi),%rax + movq 8(%rsi),%rbx + movq 0(%rdi),%rcx + movq 8(%rdi),%rdx + movq %rax,0(%rdi) + movq %rbx,8(%rdi) + movq %rcx,0(%rsi) + movq %rdx,8(%rsi) + leaq 16(%rsi),%rsi + leaq -16(%rdi),%rdi + cmpq %rsi,%rdi + jne .Linvert + + leaq .LAES_Te+2048+1024(%rip),%rax + + movq 40(%rax),%rsi + movq 48(%rax),%rdi + movq 56(%rax),%rbp + + movq %r8,%r15 + subl $1,%r14d +.align 4 +.Lpermute: + leaq 16(%r15),%r15 + movq 0(%r15),%rax + movq 8(%r15),%rcx + movq %rax,%rbx + movq %rcx,%rdx + andq %rsi,%rbx + andq %rsi,%rdx + movq %rbx,%r9 + movq %rdx,%r12 + shrq $7,%r9 + leaq (%rax,%rax,1),%r8 + shrq $7,%r12 + leaq (%rcx,%rcx,1),%r11 + subq %r9,%rbx + subq %r12,%rdx + andq %rdi,%r8 + andq %rdi,%r11 + andq %rbp,%rbx + andq %rbp,%rdx + xorq %r8,%rbx + xorq %r11,%rdx + movq %rbx,%r8 + movq %rdx,%r11 + + andq %rsi,%rbx + andq %rsi,%rdx + movq %rbx,%r10 + movq %rdx,%r13 + shrq $7,%r10 + leaq (%r8,%r8,1),%r9 + shrq $7,%r13 + leaq (%r11,%r11,1),%r12 + subq %r10,%rbx + subq %r13,%rdx + andq %rdi,%r9 + andq %rdi,%r12 + andq %rbp,%rbx + andq %rbp,%rdx + xorq %r9,%rbx + xorq %r12,%rdx + movq %rbx,%r9 + movq %rdx,%r12 + + andq %rsi,%rbx + andq %rsi,%rdx + movq %rbx,%r10 + movq %rdx,%r13 + shrq $7,%r10 + xorq %rax,%r8 + shrq $7,%r13 + xorq %rcx,%r11 + subq %r10,%rbx + subq %r13,%rdx + leaq (%r9,%r9,1),%r10 + leaq (%r12,%r12,1),%r13 + xorq %rax,%r9 + xorq %rcx,%r12 + andq %rdi,%r10 + andq %rdi,%r13 + andq %rbp,%rbx + andq %rbp,%rdx + xorq %rbx,%r10 + xorq %rdx,%r13 + + xorq %r10,%rax + xorq %r13,%rcx + xorq %r10,%r8 + xorq %r13,%r11 + movq %rax,%rbx + movq %rcx,%rdx + xorq %r10,%r9 + xorq %r13,%r12 + shrq $32,%rbx + shrq $32,%rdx + xorq %r8,%r10 + xorq %r11,%r13 + roll $8,%eax + roll $8,%ecx + xorq %r9,%r10 + xorq %r12,%r13 + + roll $8,%ebx + roll $8,%edx + xorl %r10d,%eax + xorl %r13d,%ecx + shrq $32,%r10 + shrq $32,%r13 + xorl %r10d,%ebx + xorl %r13d,%edx + + movq %r8,%r10 + movq %r11,%r13 + shrq $32,%r10 + shrq $32,%r13 + roll $24,%r8d + roll $24,%r11d + roll $24,%r10d + roll $24,%r13d + xorl %r8d,%eax + xorl %r11d,%ecx + movq %r9,%r8 + movq %r12,%r11 + xorl %r10d,%ebx + xorl %r13d,%edx + + + shrq $32,%r8 + shrq $32,%r11 + + roll $16,%r9d + roll $16,%r12d + + roll $16,%r8d + roll $16,%r11d + + xorl %r9d,%eax + xorl %r12d,%ecx + + xorl %r8d,%ebx + xorl %r11d,%edx + movl %eax,0(%r15) + movl %ebx,4(%r15) + movl %ecx,8(%r15) + movl %edx,12(%r15) + subl $1,%r14d + jnz .Lpermute + + xorq %rax,%rax +.Labort: + movq 8(%rsp),%r15 + movq 16(%rsp),%r14 + movq 24(%rsp),%r13 + movq 32(%rsp),%r12 + movq 40(%rsp),%rbp + movq 48(%rsp),%rbx + addq $56,%rsp +.Ldec_key_epilogue: + .byte 0xf3,0xc3 +.size AES_set_decrypt_key,.-AES_set_decrypt_key +.globl AES_cbc_encrypt +.type AES_cbc_encrypt,@function +.align 16 + +AES_cbc_encrypt: + cmpq $0,%rdx + je .Lcbc_epilogue + pushfq + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 +.Lcbc_prologue: + + cld + movl %r9d,%r9d + + leaq .LAES_Te(%rip),%r14 + cmpq $0,%r9 + jne .Lcbc_picked_te + leaq .LAES_Td(%rip),%r14 +.Lcbc_picked_te: + + movl OPENSSL_ia32cap_P(%rip),%r10d + cmpq $512,%rdx + jb .Lcbc_slow_prologue + testq $15,%rdx + jnz .Lcbc_slow_prologue + + + + + leaq -88-248(%rsp),%r15 + andq $-64,%r15 + + + movq %r14,%r10 + leaq 2304(%r14),%r11 + movq %r15,%r12 + andq $4095,%r10 + andq $4095,%r11 + andq $4095,%r12 + + cmpq %r11,%r12 + jb .Lcbc_te_break_out + subq %r11,%r12 + subq %r12,%r15 + jmp .Lcbc_te_ok +.Lcbc_te_break_out: + subq %r10,%r12 + andq $4095,%r12 + addq $320,%r12 + subq %r12,%r15 +.align 4 +.Lcbc_te_ok: + + xchgq %rsp,%r15 + + movq %r15,16(%rsp) +.Lcbc_fast_body: + movq %rdi,24(%rsp) + movq %rsi,32(%rsp) + movq %rdx,40(%rsp) + movq %rcx,48(%rsp) + movq %r8,56(%rsp) + movl $0,80+240(%rsp) + movq %r8,%rbp + movq %r9,%rbx + movq %rsi,%r9 + movq %rdi,%r8 + movq %rcx,%r15 + + movl 240(%r15),%eax + + movq %r15,%r10 + subq %r14,%r10 + andq $4095,%r10 + cmpq $2304,%r10 + jb .Lcbc_do_ecopy + cmpq $4096-248,%r10 + jb .Lcbc_skip_ecopy +.align 4 +.Lcbc_do_ecopy: + movq %r15,%rsi + leaq 80(%rsp),%rdi + leaq 80(%rsp),%r15 + movl $30,%ecx +.long 0x90A548F3 + + movl %eax,(%rdi) +.Lcbc_skip_ecopy: + movq %r15,0(%rsp) + + movl $18,%ecx +.align 4 +.Lcbc_prefetch_te: + movq 0(%r14),%r10 + movq 32(%r14),%r11 + movq 64(%r14),%r12 + movq 96(%r14),%r13 + leaq 128(%r14),%r14 + subl $1,%ecx + jnz .Lcbc_prefetch_te + leaq -2304(%r14),%r14 + + cmpq $0,%rbx + je .LFAST_DECRYPT + + + movl 0(%rbp),%eax + movl 4(%rbp),%ebx + movl 8(%rbp),%ecx + movl 12(%rbp),%edx + +.align 4 +.Lcbc_fast_enc_loop: + xorl 0(%r8),%eax + xorl 4(%r8),%ebx + xorl 8(%r8),%ecx + xorl 12(%r8),%edx + movq 0(%rsp),%r15 + movq %r8,24(%rsp) + + call _x86_64_AES_encrypt + + movq 24(%rsp),%r8 + movq 40(%rsp),%r10 + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + + leaq 16(%r8),%r8 + leaq 16(%r9),%r9 + subq $16,%r10 + testq $-16,%r10 + movq %r10,40(%rsp) + jnz .Lcbc_fast_enc_loop + movq 56(%rsp),%rbp + movl %eax,0(%rbp) + movl %ebx,4(%rbp) + movl %ecx,8(%rbp) + movl %edx,12(%rbp) + + jmp .Lcbc_fast_cleanup + + +.align 16 +.LFAST_DECRYPT: + cmpq %r8,%r9 + je .Lcbc_fast_dec_in_place + + movq %rbp,64(%rsp) +.align 4 +.Lcbc_fast_dec_loop: + movl 0(%r8),%eax + movl 4(%r8),%ebx + movl 8(%r8),%ecx + movl 12(%r8),%edx + movq 0(%rsp),%r15 + movq %r8,24(%rsp) + + call _x86_64_AES_decrypt + + movq 64(%rsp),%rbp + movq 24(%rsp),%r8 + movq 40(%rsp),%r10 + xorl 0(%rbp),%eax + xorl 4(%rbp),%ebx + xorl 8(%rbp),%ecx + xorl 12(%rbp),%edx + movq %r8,%rbp + + subq $16,%r10 + movq %r10,40(%rsp) + movq %rbp,64(%rsp) + + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + + leaq 16(%r8),%r8 + leaq 16(%r9),%r9 + jnz .Lcbc_fast_dec_loop + movq 56(%rsp),%r12 + movq 0(%rbp),%r10 + movq 8(%rbp),%r11 + movq %r10,0(%r12) + movq %r11,8(%r12) + jmp .Lcbc_fast_cleanup + +.align 16 +.Lcbc_fast_dec_in_place: + movq 0(%rbp),%r10 + movq 8(%rbp),%r11 + movq %r10,0+64(%rsp) + movq %r11,8+64(%rsp) +.align 4 +.Lcbc_fast_dec_in_place_loop: + movl 0(%r8),%eax + movl 4(%r8),%ebx + movl 8(%r8),%ecx + movl 12(%r8),%edx + movq 0(%rsp),%r15 + movq %r8,24(%rsp) + + call _x86_64_AES_decrypt + + movq 24(%rsp),%r8 + movq 40(%rsp),%r10 + xorl 0+64(%rsp),%eax + xorl 4+64(%rsp),%ebx + xorl 8+64(%rsp),%ecx + xorl 12+64(%rsp),%edx + + movq 0(%r8),%r11 + movq 8(%r8),%r12 + subq $16,%r10 + jz .Lcbc_fast_dec_in_place_done + + movq %r11,0+64(%rsp) + movq %r12,8+64(%rsp) + + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + + leaq 16(%r8),%r8 + leaq 16(%r9),%r9 + movq %r10,40(%rsp) + jmp .Lcbc_fast_dec_in_place_loop +.Lcbc_fast_dec_in_place_done: + movq 56(%rsp),%rdi + movq %r11,0(%rdi) + movq %r12,8(%rdi) + + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + +.align 4 +.Lcbc_fast_cleanup: + cmpl $0,80+240(%rsp) + leaq 80(%rsp),%rdi + je .Lcbc_exit + movl $30,%ecx + xorq %rax,%rax +.long 0x90AB48F3 + + + jmp .Lcbc_exit + + +.align 16 +.Lcbc_slow_prologue: + + leaq -88(%rsp),%rbp + andq $-64,%rbp + + leaq -88-63(%rcx),%r10 + subq %rbp,%r10 + negq %r10 + andq $960,%r10 + subq %r10,%rbp + + xchgq %rsp,%rbp + + movq %rbp,16(%rsp) +.Lcbc_slow_body: + + + + + movq %r8,56(%rsp) + movq %r8,%rbp + movq %r9,%rbx + movq %rsi,%r9 + movq %rdi,%r8 + movq %rcx,%r15 + movq %rdx,%r10 + + movl 240(%r15),%eax + movq %r15,0(%rsp) + shll $4,%eax + leaq (%r15,%rax,1),%rax + movq %rax,8(%rsp) + + + leaq 2048(%r14),%r14 + leaq 768-8(%rsp),%rax + subq %r14,%rax + andq $768,%rax + leaq (%r14,%rax,1),%r14 + + cmpq $0,%rbx + je .LSLOW_DECRYPT + + + testq $-16,%r10 + movl 0(%rbp),%eax + movl 4(%rbp),%ebx + movl 8(%rbp),%ecx + movl 12(%rbp),%edx + jz .Lcbc_slow_enc_tail + + +.align 4 +.Lcbc_slow_enc_loop: + xorl 0(%r8),%eax + xorl 4(%r8),%ebx + xorl 8(%r8),%ecx + xorl 12(%r8),%edx + movq 0(%rsp),%r15 + movq %r8,24(%rsp) + movq %r9,32(%rsp) + movq %r10,40(%rsp) + + call _x86_64_AES_encrypt_compact + + movq 24(%rsp),%r8 + movq 32(%rsp),%r9 + movq 40(%rsp),%r10 + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + + leaq 16(%r8),%r8 + leaq 16(%r9),%r9 + subq $16,%r10 + testq $-16,%r10 + jnz .Lcbc_slow_enc_loop + testq $15,%r10 + jnz .Lcbc_slow_enc_tail + movq 56(%rsp),%rbp + movl %eax,0(%rbp) + movl %ebx,4(%rbp) + movl %ecx,8(%rbp) + movl %edx,12(%rbp) + + jmp .Lcbc_exit + +.align 4 +.Lcbc_slow_enc_tail: + movq %rax,%r11 + movq %rcx,%r12 + movq %r10,%rcx + movq %r8,%rsi + movq %r9,%rdi +.long 0x9066A4F3 + + movq $16,%rcx + subq %r10,%rcx + xorq %rax,%rax +.long 0x9066AAF3 + + movq %r9,%r8 + movq $16,%r10 + movq %r11,%rax + movq %r12,%rcx + jmp .Lcbc_slow_enc_loop + + +.align 16 +.LSLOW_DECRYPT: + shrq $3,%rax + addq %rax,%r14 + + movq 0(%rbp),%r11 + movq 8(%rbp),%r12 + movq %r11,0+64(%rsp) + movq %r12,8+64(%rsp) + +.align 4 +.Lcbc_slow_dec_loop: + movl 0(%r8),%eax + movl 4(%r8),%ebx + movl 8(%r8),%ecx + movl 12(%r8),%edx + movq 0(%rsp),%r15 + movq %r8,24(%rsp) + movq %r9,32(%rsp) + movq %r10,40(%rsp) + + call _x86_64_AES_decrypt_compact + + movq 24(%rsp),%r8 + movq 32(%rsp),%r9 + movq 40(%rsp),%r10 + xorl 0+64(%rsp),%eax + xorl 4+64(%rsp),%ebx + xorl 8+64(%rsp),%ecx + xorl 12+64(%rsp),%edx + + movq 0(%r8),%r11 + movq 8(%r8),%r12 + subq $16,%r10 + jc .Lcbc_slow_dec_partial + jz .Lcbc_slow_dec_done + + movq %r11,0+64(%rsp) + movq %r12,8+64(%rsp) + + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + + leaq 16(%r8),%r8 + leaq 16(%r9),%r9 + jmp .Lcbc_slow_dec_loop +.Lcbc_slow_dec_done: + movq 56(%rsp),%rdi + movq %r11,0(%rdi) + movq %r12,8(%rdi) + + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + + jmp .Lcbc_exit + +.align 4 +.Lcbc_slow_dec_partial: + movq 56(%rsp),%rdi + movq %r11,0(%rdi) + movq %r12,8(%rdi) + + movl %eax,0+64(%rsp) + movl %ebx,4+64(%rsp) + movl %ecx,8+64(%rsp) + movl %edx,12+64(%rsp) + + movq %r9,%rdi + leaq 64(%rsp),%rsi + leaq 16(%r10),%rcx +.long 0x9066A4F3 + + jmp .Lcbc_exit + +.align 16 +.Lcbc_exit: + movq 16(%rsp),%rsi + movq (%rsi),%r15 + movq 8(%rsi),%r14 + movq 16(%rsi),%r13 + movq 24(%rsi),%r12 + movq 32(%rsi),%rbp + movq 40(%rsi),%rbx + leaq 48(%rsi),%rsp +.Lcbc_popfq: + popfq +.Lcbc_epilogue: + .byte 0xf3,0xc3 +.size AES_cbc_encrypt,.-AES_cbc_encrypt +.align 64 +.LAES_Te: +.long 0xa56363c6,0xa56363c6 +.long 0x847c7cf8,0x847c7cf8 +.long 0x997777ee,0x997777ee +.long 0x8d7b7bf6,0x8d7b7bf6 +.long 0x0df2f2ff,0x0df2f2ff +.long 0xbd6b6bd6,0xbd6b6bd6 +.long 0xb16f6fde,0xb16f6fde +.long 0x54c5c591,0x54c5c591 +.long 0x50303060,0x50303060 +.long 0x03010102,0x03010102 +.long 0xa96767ce,0xa96767ce +.long 0x7d2b2b56,0x7d2b2b56 +.long 0x19fefee7,0x19fefee7 +.long 0x62d7d7b5,0x62d7d7b5 +.long 0xe6abab4d,0xe6abab4d +.long 0x9a7676ec,0x9a7676ec +.long 0x45caca8f,0x45caca8f +.long 0x9d82821f,0x9d82821f +.long 0x40c9c989,0x40c9c989 +.long 0x877d7dfa,0x877d7dfa +.long 0x15fafaef,0x15fafaef +.long 0xeb5959b2,0xeb5959b2 +.long 0xc947478e,0xc947478e +.long 0x0bf0f0fb,0x0bf0f0fb +.long 0xecadad41,0xecadad41 +.long 0x67d4d4b3,0x67d4d4b3 +.long 0xfda2a25f,0xfda2a25f +.long 0xeaafaf45,0xeaafaf45 +.long 0xbf9c9c23,0xbf9c9c23 +.long 0xf7a4a453,0xf7a4a453 +.long 0x967272e4,0x967272e4 +.long 0x5bc0c09b,0x5bc0c09b +.long 0xc2b7b775,0xc2b7b775 +.long 0x1cfdfde1,0x1cfdfde1 +.long 0xae93933d,0xae93933d +.long 0x6a26264c,0x6a26264c +.long 0x5a36366c,0x5a36366c +.long 0x413f3f7e,0x413f3f7e +.long 0x02f7f7f5,0x02f7f7f5 +.long 0x4fcccc83,0x4fcccc83 +.long 0x5c343468,0x5c343468 +.long 0xf4a5a551,0xf4a5a551 +.long 0x34e5e5d1,0x34e5e5d1 +.long 0x08f1f1f9,0x08f1f1f9 +.long 0x937171e2,0x937171e2 +.long 0x73d8d8ab,0x73d8d8ab +.long 0x53313162,0x53313162 +.long 0x3f15152a,0x3f15152a +.long 0x0c040408,0x0c040408 +.long 0x52c7c795,0x52c7c795 +.long 0x65232346,0x65232346 +.long 0x5ec3c39d,0x5ec3c39d +.long 0x28181830,0x28181830 +.long 0xa1969637,0xa1969637 +.long 0x0f05050a,0x0f05050a +.long 0xb59a9a2f,0xb59a9a2f +.long 0x0907070e,0x0907070e +.long 0x36121224,0x36121224 +.long 0x9b80801b,0x9b80801b +.long 0x3de2e2df,0x3de2e2df +.long 0x26ebebcd,0x26ebebcd +.long 0x6927274e,0x6927274e +.long 0xcdb2b27f,0xcdb2b27f +.long 0x9f7575ea,0x9f7575ea +.long 0x1b090912,0x1b090912 +.long 0x9e83831d,0x9e83831d +.long 0x742c2c58,0x742c2c58 +.long 0x2e1a1a34,0x2e1a1a34 +.long 0x2d1b1b36,0x2d1b1b36 +.long 0xb26e6edc,0xb26e6edc +.long 0xee5a5ab4,0xee5a5ab4 +.long 0xfba0a05b,0xfba0a05b +.long 0xf65252a4,0xf65252a4 +.long 0x4d3b3b76,0x4d3b3b76 +.long 0x61d6d6b7,0x61d6d6b7 +.long 0xceb3b37d,0xceb3b37d +.long 0x7b292952,0x7b292952 +.long 0x3ee3e3dd,0x3ee3e3dd +.long 0x712f2f5e,0x712f2f5e +.long 0x97848413,0x97848413 +.long 0xf55353a6,0xf55353a6 +.long 0x68d1d1b9,0x68d1d1b9 +.long 0x00000000,0x00000000 +.long 0x2cededc1,0x2cededc1 +.long 0x60202040,0x60202040 +.long 0x1ffcfce3,0x1ffcfce3 +.long 0xc8b1b179,0xc8b1b179 +.long 0xed5b5bb6,0xed5b5bb6 +.long 0xbe6a6ad4,0xbe6a6ad4 +.long 0x46cbcb8d,0x46cbcb8d +.long 0xd9bebe67,0xd9bebe67 +.long 0x4b393972,0x4b393972 +.long 0xde4a4a94,0xde4a4a94 +.long 0xd44c4c98,0xd44c4c98 +.long 0xe85858b0,0xe85858b0 +.long 0x4acfcf85,0x4acfcf85 +.long 0x6bd0d0bb,0x6bd0d0bb +.long 0x2aefefc5,0x2aefefc5 +.long 0xe5aaaa4f,0xe5aaaa4f +.long 0x16fbfbed,0x16fbfbed +.long 0xc5434386,0xc5434386 +.long 0xd74d4d9a,0xd74d4d9a +.long 0x55333366,0x55333366 +.long 0x94858511,0x94858511 +.long 0xcf45458a,0xcf45458a +.long 0x10f9f9e9,0x10f9f9e9 +.long 0x06020204,0x06020204 +.long 0x817f7ffe,0x817f7ffe +.long 0xf05050a0,0xf05050a0 +.long 0x443c3c78,0x443c3c78 +.long 0xba9f9f25,0xba9f9f25 +.long 0xe3a8a84b,0xe3a8a84b +.long 0xf35151a2,0xf35151a2 +.long 0xfea3a35d,0xfea3a35d +.long 0xc0404080,0xc0404080 +.long 0x8a8f8f05,0x8a8f8f05 +.long 0xad92923f,0xad92923f +.long 0xbc9d9d21,0xbc9d9d21 +.long 0x48383870,0x48383870 +.long 0x04f5f5f1,0x04f5f5f1 +.long 0xdfbcbc63,0xdfbcbc63 +.long 0xc1b6b677,0xc1b6b677 +.long 0x75dadaaf,0x75dadaaf +.long 0x63212142,0x63212142 +.long 0x30101020,0x30101020 +.long 0x1affffe5,0x1affffe5 +.long 0x0ef3f3fd,0x0ef3f3fd +.long 0x6dd2d2bf,0x6dd2d2bf +.long 0x4ccdcd81,0x4ccdcd81 +.long 0x140c0c18,0x140c0c18 +.long 0x35131326,0x35131326 +.long 0x2fececc3,0x2fececc3 +.long 0xe15f5fbe,0xe15f5fbe +.long 0xa2979735,0xa2979735 +.long 0xcc444488,0xcc444488 +.long 0x3917172e,0x3917172e +.long 0x57c4c493,0x57c4c493 +.long 0xf2a7a755,0xf2a7a755 +.long 0x827e7efc,0x827e7efc +.long 0x473d3d7a,0x473d3d7a +.long 0xac6464c8,0xac6464c8 +.long 0xe75d5dba,0xe75d5dba +.long 0x2b191932,0x2b191932 +.long 0x957373e6,0x957373e6 +.long 0xa06060c0,0xa06060c0 +.long 0x98818119,0x98818119 +.long 0xd14f4f9e,0xd14f4f9e +.long 0x7fdcdca3,0x7fdcdca3 +.long 0x66222244,0x66222244 +.long 0x7e2a2a54,0x7e2a2a54 +.long 0xab90903b,0xab90903b +.long 0x8388880b,0x8388880b +.long 0xca46468c,0xca46468c +.long 0x29eeeec7,0x29eeeec7 +.long 0xd3b8b86b,0xd3b8b86b +.long 0x3c141428,0x3c141428 +.long 0x79dedea7,0x79dedea7 +.long 0xe25e5ebc,0xe25e5ebc +.long 0x1d0b0b16,0x1d0b0b16 +.long 0x76dbdbad,0x76dbdbad +.long 0x3be0e0db,0x3be0e0db +.long 0x56323264,0x56323264 +.long 0x4e3a3a74,0x4e3a3a74 +.long 0x1e0a0a14,0x1e0a0a14 +.long 0xdb494992,0xdb494992 +.long 0x0a06060c,0x0a06060c +.long 0x6c242448,0x6c242448 +.long 0xe45c5cb8,0xe45c5cb8 +.long 0x5dc2c29f,0x5dc2c29f +.long 0x6ed3d3bd,0x6ed3d3bd +.long 0xefacac43,0xefacac43 +.long 0xa66262c4,0xa66262c4 +.long 0xa8919139,0xa8919139 +.long 0xa4959531,0xa4959531 +.long 0x37e4e4d3,0x37e4e4d3 +.long 0x8b7979f2,0x8b7979f2 +.long 0x32e7e7d5,0x32e7e7d5 +.long 0x43c8c88b,0x43c8c88b +.long 0x5937376e,0x5937376e +.long 0xb76d6dda,0xb76d6dda +.long 0x8c8d8d01,0x8c8d8d01 +.long 0x64d5d5b1,0x64d5d5b1 +.long 0xd24e4e9c,0xd24e4e9c +.long 0xe0a9a949,0xe0a9a949 +.long 0xb46c6cd8,0xb46c6cd8 +.long 0xfa5656ac,0xfa5656ac +.long 0x07f4f4f3,0x07f4f4f3 +.long 0x25eaeacf,0x25eaeacf +.long 0xaf6565ca,0xaf6565ca +.long 0x8e7a7af4,0x8e7a7af4 +.long 0xe9aeae47,0xe9aeae47 +.long 0x18080810,0x18080810 +.long 0xd5baba6f,0xd5baba6f +.long 0x887878f0,0x887878f0 +.long 0x6f25254a,0x6f25254a +.long 0x722e2e5c,0x722e2e5c +.long 0x241c1c38,0x241c1c38 +.long 0xf1a6a657,0xf1a6a657 +.long 0xc7b4b473,0xc7b4b473 +.long 0x51c6c697,0x51c6c697 +.long 0x23e8e8cb,0x23e8e8cb +.long 0x7cdddda1,0x7cdddda1 +.long 0x9c7474e8,0x9c7474e8 +.long 0x211f1f3e,0x211f1f3e +.long 0xdd4b4b96,0xdd4b4b96 +.long 0xdcbdbd61,0xdcbdbd61 +.long 0x868b8b0d,0x868b8b0d +.long 0x858a8a0f,0x858a8a0f +.long 0x907070e0,0x907070e0 +.long 0x423e3e7c,0x423e3e7c +.long 0xc4b5b571,0xc4b5b571 +.long 0xaa6666cc,0xaa6666cc +.long 0xd8484890,0xd8484890 +.long 0x05030306,0x05030306 +.long 0x01f6f6f7,0x01f6f6f7 +.long 0x120e0e1c,0x120e0e1c +.long 0xa36161c2,0xa36161c2 +.long 0x5f35356a,0x5f35356a +.long 0xf95757ae,0xf95757ae +.long 0xd0b9b969,0xd0b9b969 +.long 0x91868617,0x91868617 +.long 0x58c1c199,0x58c1c199 +.long 0x271d1d3a,0x271d1d3a +.long 0xb99e9e27,0xb99e9e27 +.long 0x38e1e1d9,0x38e1e1d9 +.long 0x13f8f8eb,0x13f8f8eb +.long 0xb398982b,0xb398982b +.long 0x33111122,0x33111122 +.long 0xbb6969d2,0xbb6969d2 +.long 0x70d9d9a9,0x70d9d9a9 +.long 0x898e8e07,0x898e8e07 +.long 0xa7949433,0xa7949433 +.long 0xb69b9b2d,0xb69b9b2d +.long 0x221e1e3c,0x221e1e3c +.long 0x92878715,0x92878715 +.long 0x20e9e9c9,0x20e9e9c9 +.long 0x49cece87,0x49cece87 +.long 0xff5555aa,0xff5555aa +.long 0x78282850,0x78282850 +.long 0x7adfdfa5,0x7adfdfa5 +.long 0x8f8c8c03,0x8f8c8c03 +.long 0xf8a1a159,0xf8a1a159 +.long 0x80898909,0x80898909 +.long 0x170d0d1a,0x170d0d1a +.long 0xdabfbf65,0xdabfbf65 +.long 0x31e6e6d7,0x31e6e6d7 +.long 0xc6424284,0xc6424284 +.long 0xb86868d0,0xb86868d0 +.long 0xc3414182,0xc3414182 +.long 0xb0999929,0xb0999929 +.long 0x772d2d5a,0x772d2d5a +.long 0x110f0f1e,0x110f0f1e +.long 0xcbb0b07b,0xcbb0b07b +.long 0xfc5454a8,0xfc5454a8 +.long 0xd6bbbb6d,0xd6bbbb6d +.long 0x3a16162c,0x3a16162c +.byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 +.byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 +.byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 +.byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 +.byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc +.byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 +.byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a +.byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 +.byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 +.byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 +.byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b +.byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf +.byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 +.byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 +.byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 +.byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 +.byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 +.byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 +.byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 +.byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb +.byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c +.byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 +.byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 +.byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 +.byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 +.byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a +.byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e +.byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e +.byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 +.byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf +.byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 +.byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 +.byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 +.byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 +.byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 +.byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 +.byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc +.byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 +.byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a +.byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 +.byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 +.byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 +.byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b +.byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf +.byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 +.byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 +.byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 +.byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 +.byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 +.byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 +.byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 +.byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb +.byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c +.byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 +.byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 +.byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 +.byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 +.byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a +.byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e +.byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e +.byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 +.byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf +.byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 +.byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 +.byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 +.byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 +.byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 +.byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 +.byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc +.byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 +.byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a +.byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 +.byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 +.byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 +.byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b +.byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf +.byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 +.byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 +.byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 +.byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 +.byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 +.byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 +.byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 +.byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb +.byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c +.byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 +.byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 +.byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 +.byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 +.byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a +.byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e +.byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e +.byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 +.byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf +.byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 +.byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 +.byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 +.byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 +.byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 +.byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 +.byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc +.byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 +.byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a +.byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 +.byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 +.byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 +.byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b +.byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf +.byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 +.byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 +.byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 +.byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 +.byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 +.byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 +.byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 +.byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb +.byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c +.byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 +.byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 +.byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 +.byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 +.byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a +.byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e +.byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e +.byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 +.byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf +.byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 +.byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 +.long 0x00000001, 0x00000002, 0x00000004, 0x00000008 +.long 0x00000010, 0x00000020, 0x00000040, 0x00000080 +.long 0x0000001b, 0x00000036, 0x80808080, 0x80808080 +.long 0xfefefefe, 0xfefefefe, 0x1b1b1b1b, 0x1b1b1b1b +.align 64 +.LAES_Td: +.long 0x50a7f451,0x50a7f451 +.long 0x5365417e,0x5365417e +.long 0xc3a4171a,0xc3a4171a +.long 0x965e273a,0x965e273a +.long 0xcb6bab3b,0xcb6bab3b +.long 0xf1459d1f,0xf1459d1f +.long 0xab58faac,0xab58faac +.long 0x9303e34b,0x9303e34b +.long 0x55fa3020,0x55fa3020 +.long 0xf66d76ad,0xf66d76ad +.long 0x9176cc88,0x9176cc88 +.long 0x254c02f5,0x254c02f5 +.long 0xfcd7e54f,0xfcd7e54f +.long 0xd7cb2ac5,0xd7cb2ac5 +.long 0x80443526,0x80443526 +.long 0x8fa362b5,0x8fa362b5 +.long 0x495ab1de,0x495ab1de +.long 0x671bba25,0x671bba25 +.long 0x980eea45,0x980eea45 +.long 0xe1c0fe5d,0xe1c0fe5d +.long 0x02752fc3,0x02752fc3 +.long 0x12f04c81,0x12f04c81 +.long 0xa397468d,0xa397468d +.long 0xc6f9d36b,0xc6f9d36b +.long 0xe75f8f03,0xe75f8f03 +.long 0x959c9215,0x959c9215 +.long 0xeb7a6dbf,0xeb7a6dbf +.long 0xda595295,0xda595295 +.long 0x2d83bed4,0x2d83bed4 +.long 0xd3217458,0xd3217458 +.long 0x2969e049,0x2969e049 +.long 0x44c8c98e,0x44c8c98e +.long 0x6a89c275,0x6a89c275 +.long 0x78798ef4,0x78798ef4 +.long 0x6b3e5899,0x6b3e5899 +.long 0xdd71b927,0xdd71b927 +.long 0xb64fe1be,0xb64fe1be +.long 0x17ad88f0,0x17ad88f0 +.long 0x66ac20c9,0x66ac20c9 +.long 0xb43ace7d,0xb43ace7d +.long 0x184adf63,0x184adf63 +.long 0x82311ae5,0x82311ae5 +.long 0x60335197,0x60335197 +.long 0x457f5362,0x457f5362 +.long 0xe07764b1,0xe07764b1 +.long 0x84ae6bbb,0x84ae6bbb +.long 0x1ca081fe,0x1ca081fe +.long 0x942b08f9,0x942b08f9 +.long 0x58684870,0x58684870 +.long 0x19fd458f,0x19fd458f +.long 0x876cde94,0x876cde94 +.long 0xb7f87b52,0xb7f87b52 +.long 0x23d373ab,0x23d373ab +.long 0xe2024b72,0xe2024b72 +.long 0x578f1fe3,0x578f1fe3 +.long 0x2aab5566,0x2aab5566 +.long 0x0728ebb2,0x0728ebb2 +.long 0x03c2b52f,0x03c2b52f +.long 0x9a7bc586,0x9a7bc586 +.long 0xa50837d3,0xa50837d3 +.long 0xf2872830,0xf2872830 +.long 0xb2a5bf23,0xb2a5bf23 +.long 0xba6a0302,0xba6a0302 +.long 0x5c8216ed,0x5c8216ed +.long 0x2b1ccf8a,0x2b1ccf8a +.long 0x92b479a7,0x92b479a7 +.long 0xf0f207f3,0xf0f207f3 +.long 0xa1e2694e,0xa1e2694e +.long 0xcdf4da65,0xcdf4da65 +.long 0xd5be0506,0xd5be0506 +.long 0x1f6234d1,0x1f6234d1 +.long 0x8afea6c4,0x8afea6c4 +.long 0x9d532e34,0x9d532e34 +.long 0xa055f3a2,0xa055f3a2 +.long 0x32e18a05,0x32e18a05 +.long 0x75ebf6a4,0x75ebf6a4 +.long 0x39ec830b,0x39ec830b +.long 0xaaef6040,0xaaef6040 +.long 0x069f715e,0x069f715e +.long 0x51106ebd,0x51106ebd +.long 0xf98a213e,0xf98a213e +.long 0x3d06dd96,0x3d06dd96 +.long 0xae053edd,0xae053edd +.long 0x46bde64d,0x46bde64d +.long 0xb58d5491,0xb58d5491 +.long 0x055dc471,0x055dc471 +.long 0x6fd40604,0x6fd40604 +.long 0xff155060,0xff155060 +.long 0x24fb9819,0x24fb9819 +.long 0x97e9bdd6,0x97e9bdd6 +.long 0xcc434089,0xcc434089 +.long 0x779ed967,0x779ed967 +.long 0xbd42e8b0,0xbd42e8b0 +.long 0x888b8907,0x888b8907 +.long 0x385b19e7,0x385b19e7 +.long 0xdbeec879,0xdbeec879 +.long 0x470a7ca1,0x470a7ca1 +.long 0xe90f427c,0xe90f427c +.long 0xc91e84f8,0xc91e84f8 +.long 0x00000000,0x00000000 +.long 0x83868009,0x83868009 +.long 0x48ed2b32,0x48ed2b32 +.long 0xac70111e,0xac70111e +.long 0x4e725a6c,0x4e725a6c +.long 0xfbff0efd,0xfbff0efd +.long 0x5638850f,0x5638850f +.long 0x1ed5ae3d,0x1ed5ae3d +.long 0x27392d36,0x27392d36 +.long 0x64d90f0a,0x64d90f0a +.long 0x21a65c68,0x21a65c68 +.long 0xd1545b9b,0xd1545b9b +.long 0x3a2e3624,0x3a2e3624 +.long 0xb1670a0c,0xb1670a0c +.long 0x0fe75793,0x0fe75793 +.long 0xd296eeb4,0xd296eeb4 +.long 0x9e919b1b,0x9e919b1b +.long 0x4fc5c080,0x4fc5c080 +.long 0xa220dc61,0xa220dc61 +.long 0x694b775a,0x694b775a +.long 0x161a121c,0x161a121c +.long 0x0aba93e2,0x0aba93e2 +.long 0xe52aa0c0,0xe52aa0c0 +.long 0x43e0223c,0x43e0223c +.long 0x1d171b12,0x1d171b12 +.long 0x0b0d090e,0x0b0d090e +.long 0xadc78bf2,0xadc78bf2 +.long 0xb9a8b62d,0xb9a8b62d +.long 0xc8a91e14,0xc8a91e14 +.long 0x8519f157,0x8519f157 +.long 0x4c0775af,0x4c0775af +.long 0xbbdd99ee,0xbbdd99ee +.long 0xfd607fa3,0xfd607fa3 +.long 0x9f2601f7,0x9f2601f7 +.long 0xbcf5725c,0xbcf5725c +.long 0xc53b6644,0xc53b6644 +.long 0x347efb5b,0x347efb5b +.long 0x7629438b,0x7629438b +.long 0xdcc623cb,0xdcc623cb +.long 0x68fcedb6,0x68fcedb6 +.long 0x63f1e4b8,0x63f1e4b8 +.long 0xcadc31d7,0xcadc31d7 +.long 0x10856342,0x10856342 +.long 0x40229713,0x40229713 +.long 0x2011c684,0x2011c684 +.long 0x7d244a85,0x7d244a85 +.long 0xf83dbbd2,0xf83dbbd2 +.long 0x1132f9ae,0x1132f9ae +.long 0x6da129c7,0x6da129c7 +.long 0x4b2f9e1d,0x4b2f9e1d +.long 0xf330b2dc,0xf330b2dc +.long 0xec52860d,0xec52860d +.long 0xd0e3c177,0xd0e3c177 +.long 0x6c16b32b,0x6c16b32b +.long 0x99b970a9,0x99b970a9 +.long 0xfa489411,0xfa489411 +.long 0x2264e947,0x2264e947 +.long 0xc48cfca8,0xc48cfca8 +.long 0x1a3ff0a0,0x1a3ff0a0 +.long 0xd82c7d56,0xd82c7d56 +.long 0xef903322,0xef903322 +.long 0xc74e4987,0xc74e4987 +.long 0xc1d138d9,0xc1d138d9 +.long 0xfea2ca8c,0xfea2ca8c +.long 0x360bd498,0x360bd498 +.long 0xcf81f5a6,0xcf81f5a6 +.long 0x28de7aa5,0x28de7aa5 +.long 0x268eb7da,0x268eb7da +.long 0xa4bfad3f,0xa4bfad3f +.long 0xe49d3a2c,0xe49d3a2c +.long 0x0d927850,0x0d927850 +.long 0x9bcc5f6a,0x9bcc5f6a +.long 0x62467e54,0x62467e54 +.long 0xc2138df6,0xc2138df6 +.long 0xe8b8d890,0xe8b8d890 +.long 0x5ef7392e,0x5ef7392e +.long 0xf5afc382,0xf5afc382 +.long 0xbe805d9f,0xbe805d9f +.long 0x7c93d069,0x7c93d069 +.long 0xa92dd56f,0xa92dd56f +.long 0xb31225cf,0xb31225cf +.long 0x3b99acc8,0x3b99acc8 +.long 0xa77d1810,0xa77d1810 +.long 0x6e639ce8,0x6e639ce8 +.long 0x7bbb3bdb,0x7bbb3bdb +.long 0x097826cd,0x097826cd +.long 0xf418596e,0xf418596e +.long 0x01b79aec,0x01b79aec +.long 0xa89a4f83,0xa89a4f83 +.long 0x656e95e6,0x656e95e6 +.long 0x7ee6ffaa,0x7ee6ffaa +.long 0x08cfbc21,0x08cfbc21 +.long 0xe6e815ef,0xe6e815ef +.long 0xd99be7ba,0xd99be7ba +.long 0xce366f4a,0xce366f4a +.long 0xd4099fea,0xd4099fea +.long 0xd67cb029,0xd67cb029 +.long 0xafb2a431,0xafb2a431 +.long 0x31233f2a,0x31233f2a +.long 0x3094a5c6,0x3094a5c6 +.long 0xc066a235,0xc066a235 +.long 0x37bc4e74,0x37bc4e74 +.long 0xa6ca82fc,0xa6ca82fc +.long 0xb0d090e0,0xb0d090e0 +.long 0x15d8a733,0x15d8a733 +.long 0x4a9804f1,0x4a9804f1 +.long 0xf7daec41,0xf7daec41 +.long 0x0e50cd7f,0x0e50cd7f +.long 0x2ff69117,0x2ff69117 +.long 0x8dd64d76,0x8dd64d76 +.long 0x4db0ef43,0x4db0ef43 +.long 0x544daacc,0x544daacc +.long 0xdf0496e4,0xdf0496e4 +.long 0xe3b5d19e,0xe3b5d19e +.long 0x1b886a4c,0x1b886a4c +.long 0xb81f2cc1,0xb81f2cc1 +.long 0x7f516546,0x7f516546 +.long 0x04ea5e9d,0x04ea5e9d +.long 0x5d358c01,0x5d358c01 +.long 0x737487fa,0x737487fa +.long 0x2e410bfb,0x2e410bfb +.long 0x5a1d67b3,0x5a1d67b3 +.long 0x52d2db92,0x52d2db92 +.long 0x335610e9,0x335610e9 +.long 0x1347d66d,0x1347d66d +.long 0x8c61d79a,0x8c61d79a +.long 0x7a0ca137,0x7a0ca137 +.long 0x8e14f859,0x8e14f859 +.long 0x893c13eb,0x893c13eb +.long 0xee27a9ce,0xee27a9ce +.long 0x35c961b7,0x35c961b7 +.long 0xede51ce1,0xede51ce1 +.long 0x3cb1477a,0x3cb1477a +.long 0x59dfd29c,0x59dfd29c +.long 0x3f73f255,0x3f73f255 +.long 0x79ce1418,0x79ce1418 +.long 0xbf37c773,0xbf37c773 +.long 0xeacdf753,0xeacdf753 +.long 0x5baafd5f,0x5baafd5f +.long 0x146f3ddf,0x146f3ddf +.long 0x86db4478,0x86db4478 +.long 0x81f3afca,0x81f3afca +.long 0x3ec468b9,0x3ec468b9 +.long 0x2c342438,0x2c342438 +.long 0x5f40a3c2,0x5f40a3c2 +.long 0x72c31d16,0x72c31d16 +.long 0x0c25e2bc,0x0c25e2bc +.long 0x8b493c28,0x8b493c28 +.long 0x41950dff,0x41950dff +.long 0x7101a839,0x7101a839 +.long 0xdeb30c08,0xdeb30c08 +.long 0x9ce4b4d8,0x9ce4b4d8 +.long 0x90c15664,0x90c15664 +.long 0x6184cb7b,0x6184cb7b +.long 0x70b632d5,0x70b632d5 +.long 0x745c6c48,0x745c6c48 +.long 0x4257b8d0,0x4257b8d0 +.byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 +.byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb +.byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 +.byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb +.byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d +.byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e +.byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 +.byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 +.byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 +.byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 +.byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda +.byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 +.byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a +.byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 +.byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 +.byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b +.byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea +.byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 +.byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 +.byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e +.byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 +.byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b +.byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 +.byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 +.byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 +.byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f +.byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d +.byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef +.byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 +.byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 +.byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 +.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d +.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe +.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 +.byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 +.byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb +.byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 +.byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb +.byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d +.byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e +.byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 +.byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 +.byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 +.byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 +.byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda +.byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 +.byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a +.byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 +.byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 +.byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b +.byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea +.byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 +.byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 +.byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e +.byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 +.byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b +.byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 +.byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 +.byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 +.byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f +.byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d +.byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef +.byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 +.byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 +.byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 +.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d +.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe +.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 +.byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 +.byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb +.byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 +.byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb +.byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d +.byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e +.byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 +.byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 +.byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 +.byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 +.byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda +.byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 +.byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a +.byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 +.byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 +.byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b +.byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea +.byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 +.byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 +.byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e +.byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 +.byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b +.byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 +.byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 +.byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 +.byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f +.byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d +.byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef +.byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 +.byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 +.byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 +.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d +.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe +.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 +.byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 +.byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb +.byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 +.byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb +.byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d +.byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e +.byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 +.byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 +.byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 +.byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 +.byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda +.byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 +.byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a +.byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 +.byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 +.byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b +.byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea +.byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 +.byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 +.byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e +.byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 +.byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b +.byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 +.byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 +.byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 +.byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f +.byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d +.byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef +.byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 +.byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 +.byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 +.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d +.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe +.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 +.byte 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 64 diff --git a/deps/openssl/asm/x64-elf-gas/bn/x86_64-mont.s b/deps/openssl/asm/x64-elf-gas/bn/x86_64-mont.s new file mode 100644 index 0000000000..2dbcffc59d --- /dev/null +++ b/deps/openssl/asm/x64-elf-gas/bn/x86_64-mont.s @@ -0,0 +1,172 @@ +.text + + +.globl bn_mul_mont +.type bn_mul_mont,@function +.align 16 +bn_mul_mont: + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + + movl %r9d,%r9d + leaq 2(%r9),%r10 + movq %rsp,%r11 + negq %r10 + leaq (%rsp,%r10,8),%rsp + andq $-1024,%rsp + + movq %r11,8(%rsp,%r9,8) +.Lprologue: + movq %rdx,%r12 + + movq (%r8),%r8 + + xorq %r14,%r14 + xorq %r15,%r15 + + movq (%r12),%rbx + movq (%rsi),%rax + mulq %rbx + movq %rax,%r10 + movq %rdx,%r11 + + imulq %r8,%rax + movq %rax,%rbp + + mulq (%rcx) + addq %r10,%rax + adcq $0,%rdx + movq %rdx,%r13 + + leaq 1(%r15),%r15 +.L1st: + movq (%rsi,%r15,8),%rax + mulq %rbx + addq %r11,%rax + adcq $0,%rdx + movq %rax,%r10 + movq (%rcx,%r15,8),%rax + movq %rdx,%r11 + + mulq %rbp + addq %r13,%rax + leaq 1(%r15),%r15 + adcq $0,%rdx + addq %r10,%rax + adcq $0,%rdx + movq %rax,-16(%rsp,%r15,8) + cmpq %r9,%r15 + movq %rdx,%r13 + jl .L1st + + xorq %rdx,%rdx + addq %r11,%r13 + adcq $0,%rdx + movq %r13,-8(%rsp,%r9,8) + movq %rdx,(%rsp,%r9,8) + + leaq 1(%r14),%r14 +.align 4 +.Louter: + xorq %r15,%r15 + + movq (%r12,%r14,8),%rbx + movq (%rsi),%rax + mulq %rbx + addq (%rsp),%rax + adcq $0,%rdx + movq %rax,%r10 + movq %rdx,%r11 + + imulq %r8,%rax + movq %rax,%rbp + + mulq (%rcx,%r15,8) + addq %r10,%rax + movq 8(%rsp),%r10 + adcq $0,%rdx + movq %rdx,%r13 + + leaq 1(%r15),%r15 +.align 4 +.Linner: + movq (%rsi,%r15,8),%rax + mulq %rbx + addq %r11,%rax + adcq $0,%rdx + addq %rax,%r10 + movq (%rcx,%r15,8),%rax + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %r13,%rax + leaq 1(%r15),%r15 + adcq $0,%rdx + addq %r10,%rax + adcq $0,%rdx + movq (%rsp,%r15,8),%r10 + cmpq %r9,%r15 + movq %rax,-16(%rsp,%r15,8) + movq %rdx,%r13 + jl .Linner + + xorq %rdx,%rdx + addq %r11,%r13 + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-8(%rsp,%r9,8) + movq %rdx,(%rsp,%r9,8) + + leaq 1(%r14),%r14 + cmpq %r9,%r14 + jl .Louter + + leaq (%rsp),%rsi + leaq -1(%r9),%r15 + + movq (%rsi),%rax + xorq %r14,%r14 + jmp .Lsub +.align 16 +.Lsub: sbbq (%rcx,%r14,8),%rax + movq %rax,(%rdi,%r14,8) + decq %r15 + movq 8(%rsi,%r14,8),%rax + leaq 1(%r14),%r14 + jge .Lsub + + sbbq $0,%rax + andq %rax,%rsi + notq %rax + movq %rdi,%rcx + andq %rax,%rcx + leaq -1(%r9),%r15 + orq %rcx,%rsi +.align 16 +.Lcopy: + movq (%rsi,%r15,8),%rax + movq %rax,(%rdi,%r15,8) + movq %r14,(%rsp,%r15,8) + decq %r15 + jge .Lcopy + + movq 8(%rsp,%r9,8),%rsi + movq $1,%rax + movq (%rsi),%r15 + movq 8(%rsi),%r14 + movq 16(%rsi),%r13 + movq 24(%rsi),%r12 + movq 32(%rsi),%rbp + movq 40(%rsi),%rbx + leaq 48(%rsi),%rsp +.Lepilogue: + .byte 0xf3,0xc3 +.size bn_mul_mont,.-bn_mul_mont +.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 16 diff --git a/deps/openssl/asm/x64-elf-gas/camellia/cmll-x86_64.s b/deps/openssl/asm/x64-elf-gas/camellia/cmll-x86_64.s new file mode 100644 index 0000000000..3a5f4c4230 --- /dev/null +++ b/deps/openssl/asm/x64-elf-gas/camellia/cmll-x86_64.s @@ -0,0 +1,1844 @@ +.text + + + +.globl Camellia_EncryptBlock +.type Camellia_EncryptBlock,@function +.align 16 +Camellia_EncryptBlock: + movl $128,%eax + subl %edi,%eax + movl $3,%edi + adcl $0,%edi + jmp .Lenc_rounds +.size Camellia_EncryptBlock,.-Camellia_EncryptBlock + +.globl Camellia_EncryptBlock_Rounds +.type Camellia_EncryptBlock_Rounds,@function +.align 16 +.Lenc_rounds: +Camellia_EncryptBlock_Rounds: + pushq %rbx + pushq %rbp + pushq %r13 + pushq %r14 + pushq %r15 +.Lenc_prologue: + + + movq %rcx,%r13 + movq %rdx,%r14 + + shll $6,%edi + leaq .LCamellia_SBOX(%rip),%rbp + leaq (%r14,%rdi,1),%r15 + + movl 0(%rsi),%r8d + movl 4(%rsi),%r9d + movl 8(%rsi),%r10d + bswapl %r8d + movl 12(%rsi),%r11d + bswapl %r9d + bswapl %r10d + bswapl %r11d + + call _x86_64_Camellia_encrypt + + bswapl %r8d + bswapl %r9d + bswapl %r10d + movl %r8d,0(%r13) + bswapl %r11d + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + + movq 0(%rsp),%r15 + movq 8(%rsp),%r14 + movq 16(%rsp),%r13 + movq 24(%rsp),%rbp + movq 32(%rsp),%rbx + leaq 40(%rsp),%rsp +.Lenc_epilogue: + .byte 0xf3,0xc3 +.size Camellia_EncryptBlock_Rounds,.-Camellia_EncryptBlock_Rounds + +.type _x86_64_Camellia_encrypt,@function +.align 16 +_x86_64_Camellia_encrypt: + xorl 0(%r14),%r9d + xorl 4(%r14),%r8d + xorl 8(%r14),%r11d + xorl 12(%r14),%r10d +.align 16 +.Leloop: + movl 16(%r14),%ebx + movl 20(%r14),%eax + + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 24(%r14),%ebx + movl 28(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 32(%r14),%ebx + movl 36(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 40(%r14),%ebx + movl 44(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 48(%r14),%ebx + movl 52(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 56(%r14),%ebx + movl 60(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 64(%r14),%ebx + movl 68(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + leaq 64(%r14),%r14 + cmpq %r15,%r14 + movl 8(%r14),%edx + movl 12(%r14),%ecx + je .Ledone + + andl %r8d,%eax + orl %r11d,%edx + roll $1,%eax + xorl %edx,%r10d + xorl %eax,%r9d + andl %r10d,%ecx + orl %r9d,%ebx + roll $1,%ecx + xorl %ebx,%r8d + xorl %ecx,%r11d + jmp .Leloop + +.align 16 +.Ledone: + xorl %r10d,%eax + xorl %r11d,%ebx + xorl %r8d,%ecx + xorl %r9d,%edx + + movl %eax,%r8d + movl %ebx,%r9d + movl %ecx,%r10d + movl %edx,%r11d + +.byte 0xf3,0xc3 + +.size _x86_64_Camellia_encrypt,.-_x86_64_Camellia_encrypt + + +.globl Camellia_DecryptBlock +.type Camellia_DecryptBlock,@function +.align 16 +Camellia_DecryptBlock: + movl $128,%eax + subl %edi,%eax + movl $3,%edi + adcl $0,%edi + jmp .Ldec_rounds +.size Camellia_DecryptBlock,.-Camellia_DecryptBlock + +.globl Camellia_DecryptBlock_Rounds +.type Camellia_DecryptBlock_Rounds,@function +.align 16 +.Ldec_rounds: +Camellia_DecryptBlock_Rounds: + pushq %rbx + pushq %rbp + pushq %r13 + pushq %r14 + pushq %r15 +.Ldec_prologue: + + + movq %rcx,%r13 + movq %rdx,%r15 + + shll $6,%edi + leaq .LCamellia_SBOX(%rip),%rbp + leaq (%r15,%rdi,1),%r14 + + movl 0(%rsi),%r8d + movl 4(%rsi),%r9d + movl 8(%rsi),%r10d + bswapl %r8d + movl 12(%rsi),%r11d + bswapl %r9d + bswapl %r10d + bswapl %r11d + + call _x86_64_Camellia_decrypt + + bswapl %r8d + bswapl %r9d + bswapl %r10d + movl %r8d,0(%r13) + bswapl %r11d + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + + movq 0(%rsp),%r15 + movq 8(%rsp),%r14 + movq 16(%rsp),%r13 + movq 24(%rsp),%rbp + movq 32(%rsp),%rbx + leaq 40(%rsp),%rsp +.Ldec_epilogue: + .byte 0xf3,0xc3 +.size Camellia_DecryptBlock_Rounds,.-Camellia_DecryptBlock_Rounds + +.type _x86_64_Camellia_decrypt,@function +.align 16 +_x86_64_Camellia_decrypt: + xorl 0(%r14),%r9d + xorl 4(%r14),%r8d + xorl 8(%r14),%r11d + xorl 12(%r14),%r10d +.align 16 +.Ldloop: + movl -8(%r14),%ebx + movl -4(%r14),%eax + + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -16(%r14),%ebx + movl -12(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -24(%r14),%ebx + movl -20(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -32(%r14),%ebx + movl -28(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -40(%r14),%ebx + movl -36(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -48(%r14),%ebx + movl -44(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -56(%r14),%ebx + movl -52(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + leaq -64(%r14),%r14 + cmpq %r15,%r14 + movl 0(%r14),%edx + movl 4(%r14),%ecx + je .Lddone + + andl %r8d,%eax + orl %r11d,%edx + roll $1,%eax + xorl %edx,%r10d + xorl %eax,%r9d + andl %r10d,%ecx + orl %r9d,%ebx + roll $1,%ecx + xorl %ebx,%r8d + xorl %ecx,%r11d + + jmp .Ldloop + +.align 16 +.Lddone: + xorl %r10d,%ecx + xorl %r11d,%edx + xorl %r8d,%eax + xorl %r9d,%ebx + + movl %ecx,%r8d + movl %edx,%r9d + movl %eax,%r10d + movl %ebx,%r11d + +.byte 0xf3,0xc3 + +.size _x86_64_Camellia_decrypt,.-_x86_64_Camellia_decrypt +.globl Camellia_Ekeygen +.type Camellia_Ekeygen,@function +.align 16 +Camellia_Ekeygen: + pushq %rbx + pushq %rbp + pushq %r13 + pushq %r14 + pushq %r15 +.Lkey_prologue: + + movq %rdi,%r15 + movq %rdx,%r13 + + movl 0(%rsi),%r8d + movl 4(%rsi),%r9d + movl 8(%rsi),%r10d + movl 12(%rsi),%r11d + + bswapl %r8d + bswapl %r9d + bswapl %r10d + bswapl %r11d + movl %r9d,0(%r13) + movl %r8d,4(%r13) + movl %r11d,8(%r13) + movl %r10d,12(%r13) + cmpq $128,%r15 + je .L1st128 + + movl 16(%rsi),%r8d + movl 20(%rsi),%r9d + cmpq $192,%r15 + je .L1st192 + movl 24(%rsi),%r10d + movl 28(%rsi),%r11d + jmp .L1st256 +.L1st192: + movl %r8d,%r10d + movl %r9d,%r11d + notl %r10d + notl %r11d +.L1st256: + bswapl %r8d + bswapl %r9d + bswapl %r10d + bswapl %r11d + movl %r9d,32(%r13) + movl %r8d,36(%r13) + movl %r11d,40(%r13) + movl %r10d,44(%r13) + xorl 0(%r13),%r9d + xorl 4(%r13),%r8d + xorl 8(%r13),%r11d + xorl 12(%r13),%r10d + +.L1st128: + leaq .LCamellia_SIGMA(%rip),%r14 + leaq .LCamellia_SBOX(%rip),%rbp + + movl 0(%r14),%ebx + movl 4(%r14),%eax + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 8(%r14),%ebx + movl 12(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 16(%r14),%ebx + movl 20(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl 0(%r13),%r9d + xorl 4(%r13),%r8d + xorl 8(%r13),%r11d + xorl 12(%r13),%r10d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 24(%r14),%ebx + movl 28(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 32(%r14),%ebx + movl 36(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + cmpq $128,%r15 + jne .L2nd256 + + leaq 128(%r13),%r13 + shlq $32,%r8 + shlq $32,%r10 + orq %r9,%r8 + orq %r11,%r10 + movq -128(%r13),%rax + movq -120(%r13),%rbx + movq %r8,-112(%r13) + movq %r10,-104(%r13) + movq %rax,%r11 + shlq $15,%rax + movq %rbx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rax + shlq $15,%rbx + orq %r11,%rbx + movq %rax,-96(%r13) + movq %rbx,-88(%r13) + movq %r8,%r11 + shlq $15,%r8 + movq %r10,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r8 + shlq $15,%r10 + orq %r11,%r10 + movq %r8,-80(%r13) + movq %r10,-72(%r13) + movq %r8,%r11 + shlq $15,%r8 + movq %r10,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r8 + shlq $15,%r10 + orq %r11,%r10 + movq %r8,-64(%r13) + movq %r10,-56(%r13) + movq %rax,%r11 + shlq $30,%rax + movq %rbx,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%rax + shlq $30,%rbx + orq %r11,%rbx + movq %rax,-48(%r13) + movq %rbx,-40(%r13) + movq %r8,%r11 + shlq $15,%r8 + movq %r10,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r8 + shlq $15,%r10 + orq %r11,%r10 + movq %r8,-32(%r13) + movq %rax,%r11 + shlq $15,%rax + movq %rbx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rax + shlq $15,%rbx + orq %r11,%rbx + movq %rbx,-24(%r13) + movq %r8,%r11 + shlq $15,%r8 + movq %r10,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r8 + shlq $15,%r10 + orq %r11,%r10 + movq %r8,-16(%r13) + movq %r10,-8(%r13) + movq %rax,%r11 + shlq $17,%rax + movq %rbx,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%rax + shlq $17,%rbx + orq %r11,%rbx + movq %rax,0(%r13) + movq %rbx,8(%r13) + movq %rax,%r11 + shlq $17,%rax + movq %rbx,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%rax + shlq $17,%rbx + orq %r11,%rbx + movq %rax,16(%r13) + movq %rbx,24(%r13) + movq %r8,%r11 + shlq $34,%r8 + movq %r10,%r9 + shrq $30,%r9 + shrq $30,%r11 + orq %r9,%r8 + shlq $34,%r10 + orq %r11,%r10 + movq %r8,32(%r13) + movq %r10,40(%r13) + movq %rax,%r11 + shlq $17,%rax + movq %rbx,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%rax + shlq $17,%rbx + orq %r11,%rbx + movq %rax,48(%r13) + movq %rbx,56(%r13) + movq %r8,%r11 + shlq $17,%r8 + movq %r10,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%r8 + shlq $17,%r10 + orq %r11,%r10 + movq %r8,64(%r13) + movq %r10,72(%r13) + movl $3,%eax + jmp .Ldone +.align 16 +.L2nd256: + movl %r9d,48(%r13) + movl %r8d,52(%r13) + movl %r11d,56(%r13) + movl %r10d,60(%r13) + xorl 32(%r13),%r9d + xorl 36(%r13),%r8d + xorl 40(%r13),%r11d + xorl 44(%r13),%r10d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 40(%r14),%ebx + movl 44(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 48(%r14),%ebx + movl 52(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + movq 0(%r13),%rax + movq 8(%r13),%rbx + movq 32(%r13),%rcx + movq 40(%r13),%rdx + movq 48(%r13),%r14 + movq 56(%r13),%r15 + leaq 128(%r13),%r13 + shlq $32,%r8 + shlq $32,%r10 + orq %r9,%r8 + orq %r11,%r10 + movq %r8,-112(%r13) + movq %r10,-104(%r13) + movq %rcx,%r11 + shlq $15,%rcx + movq %rdx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rcx + shlq $15,%rdx + orq %r11,%rdx + movq %rcx,-96(%r13) + movq %rdx,-88(%r13) + movq %r14,%r11 + shlq $15,%r14 + movq %r15,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r14 + shlq $15,%r15 + orq %r11,%r15 + movq %r14,-80(%r13) + movq %r15,-72(%r13) + movq %rcx,%r11 + shlq $15,%rcx + movq %rdx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rcx + shlq $15,%rdx + orq %r11,%rdx + movq %rcx,-64(%r13) + movq %rdx,-56(%r13) + movq %r8,%r11 + shlq $30,%r8 + movq %r10,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%r8 + shlq $30,%r10 + orq %r11,%r10 + movq %r8,-48(%r13) + movq %r10,-40(%r13) + movq %rax,%r11 + shlq $45,%rax + movq %rbx,%r9 + shrq $19,%r9 + shrq $19,%r11 + orq %r9,%rax + shlq $45,%rbx + orq %r11,%rbx + movq %rax,-32(%r13) + movq %rbx,-24(%r13) + movq %r14,%r11 + shlq $30,%r14 + movq %r15,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%r14 + shlq $30,%r15 + orq %r11,%r15 + movq %r14,-16(%r13) + movq %r15,-8(%r13) + movq %rax,%r11 + shlq $15,%rax + movq %rbx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rax + shlq $15,%rbx + orq %r11,%rbx + movq %rax,0(%r13) + movq %rbx,8(%r13) + movq %rcx,%r11 + shlq $30,%rcx + movq %rdx,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%rcx + shlq $30,%rdx + orq %r11,%rdx + movq %rcx,16(%r13) + movq %rdx,24(%r13) + movq %r8,%r11 + shlq $30,%r8 + movq %r10,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%r8 + shlq $30,%r10 + orq %r11,%r10 + movq %r8,32(%r13) + movq %r10,40(%r13) + movq %rax,%r11 + shlq $17,%rax + movq %rbx,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%rax + shlq $17,%rbx + orq %r11,%rbx + movq %rax,48(%r13) + movq %rbx,56(%r13) + movq %r14,%r11 + shlq $32,%r14 + movq %r15,%r9 + shrq $32,%r9 + shrq $32,%r11 + orq %r9,%r14 + shlq $32,%r15 + orq %r11,%r15 + movq %r14,64(%r13) + movq %r15,72(%r13) + movq %rcx,%r11 + shlq $34,%rcx + movq %rdx,%r9 + shrq $30,%r9 + shrq $30,%r11 + orq %r9,%rcx + shlq $34,%rdx + orq %r11,%rdx + movq %rcx,80(%r13) + movq %rdx,88(%r13) + movq %r14,%r11 + shlq $17,%r14 + movq %r15,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%r14 + shlq $17,%r15 + orq %r11,%r15 + movq %r14,96(%r13) + movq %r15,104(%r13) + movq %rax,%r11 + shlq $34,%rax + movq %rbx,%r9 + shrq $30,%r9 + shrq $30,%r11 + orq %r9,%rax + shlq $34,%rbx + orq %r11,%rbx + movq %rax,112(%r13) + movq %rbx,120(%r13) + movq %r8,%r11 + shlq $51,%r8 + movq %r10,%r9 + shrq $13,%r9 + shrq $13,%r11 + orq %r9,%r8 + shlq $51,%r10 + orq %r11,%r10 + movq %r8,128(%r13) + movq %r10,136(%r13) + movl $4,%eax +.Ldone: + movq 0(%rsp),%r15 + movq 8(%rsp),%r14 + movq 16(%rsp),%r13 + movq 24(%rsp),%rbp + movq 32(%rsp),%rbx + leaq 40(%rsp),%rsp +.Lkey_epilogue: + .byte 0xf3,0xc3 +.size Camellia_Ekeygen,.-Camellia_Ekeygen +.align 64 +.LCamellia_SIGMA: +.long 0x3bcc908b, 0xa09e667f, 0x4caa73b2, 0xb67ae858 +.long 0xe94f82be, 0xc6ef372f, 0xf1d36f1c, 0x54ff53a5 +.long 0xde682d1d, 0x10e527fa, 0xb3e6c1fd, 0xb05688c2 +.long 0, 0, 0, 0 +.LCamellia_SBOX: +.long 0x70707000,0x70700070 +.long 0x82828200,0x2c2c002c +.long 0x2c2c2c00,0xb3b300b3 +.long 0xececec00,0xc0c000c0 +.long 0xb3b3b300,0xe4e400e4 +.long 0x27272700,0x57570057 +.long 0xc0c0c000,0xeaea00ea +.long 0xe5e5e500,0xaeae00ae +.long 0xe4e4e400,0x23230023 +.long 0x85858500,0x6b6b006b +.long 0x57575700,0x45450045 +.long 0x35353500,0xa5a500a5 +.long 0xeaeaea00,0xeded00ed +.long 0x0c0c0c00,0x4f4f004f +.long 0xaeaeae00,0x1d1d001d +.long 0x41414100,0x92920092 +.long 0x23232300,0x86860086 +.long 0xefefef00,0xafaf00af +.long 0x6b6b6b00,0x7c7c007c +.long 0x93939300,0x1f1f001f +.long 0x45454500,0x3e3e003e +.long 0x19191900,0xdcdc00dc +.long 0xa5a5a500,0x5e5e005e +.long 0x21212100,0x0b0b000b +.long 0xededed00,0xa6a600a6 +.long 0x0e0e0e00,0x39390039 +.long 0x4f4f4f00,0xd5d500d5 +.long 0x4e4e4e00,0x5d5d005d +.long 0x1d1d1d00,0xd9d900d9 +.long 0x65656500,0x5a5a005a +.long 0x92929200,0x51510051 +.long 0xbdbdbd00,0x6c6c006c +.long 0x86868600,0x8b8b008b +.long 0xb8b8b800,0x9a9a009a +.long 0xafafaf00,0xfbfb00fb +.long 0x8f8f8f00,0xb0b000b0 +.long 0x7c7c7c00,0x74740074 +.long 0xebebeb00,0x2b2b002b +.long 0x1f1f1f00,0xf0f000f0 +.long 0xcecece00,0x84840084 +.long 0x3e3e3e00,0xdfdf00df +.long 0x30303000,0xcbcb00cb +.long 0xdcdcdc00,0x34340034 +.long 0x5f5f5f00,0x76760076 +.long 0x5e5e5e00,0x6d6d006d +.long 0xc5c5c500,0xa9a900a9 +.long 0x0b0b0b00,0xd1d100d1 +.long 0x1a1a1a00,0x04040004 +.long 0xa6a6a600,0x14140014 +.long 0xe1e1e100,0x3a3a003a +.long 0x39393900,0xdede00de +.long 0xcacaca00,0x11110011 +.long 0xd5d5d500,0x32320032 +.long 0x47474700,0x9c9c009c +.long 0x5d5d5d00,0x53530053 +.long 0x3d3d3d00,0xf2f200f2 +.long 0xd9d9d900,0xfefe00fe +.long 0x01010100,0xcfcf00cf +.long 0x5a5a5a00,0xc3c300c3 +.long 0xd6d6d600,0x7a7a007a +.long 0x51515100,0x24240024 +.long 0x56565600,0xe8e800e8 +.long 0x6c6c6c00,0x60600060 +.long 0x4d4d4d00,0x69690069 +.long 0x8b8b8b00,0xaaaa00aa +.long 0x0d0d0d00,0xa0a000a0 +.long 0x9a9a9a00,0xa1a100a1 +.long 0x66666600,0x62620062 +.long 0xfbfbfb00,0x54540054 +.long 0xcccccc00,0x1e1e001e +.long 0xb0b0b000,0xe0e000e0 +.long 0x2d2d2d00,0x64640064 +.long 0x74747400,0x10100010 +.long 0x12121200,0x00000000 +.long 0x2b2b2b00,0xa3a300a3 +.long 0x20202000,0x75750075 +.long 0xf0f0f000,0x8a8a008a +.long 0xb1b1b100,0xe6e600e6 +.long 0x84848400,0x09090009 +.long 0x99999900,0xdddd00dd +.long 0xdfdfdf00,0x87870087 +.long 0x4c4c4c00,0x83830083 +.long 0xcbcbcb00,0xcdcd00cd +.long 0xc2c2c200,0x90900090 +.long 0x34343400,0x73730073 +.long 0x7e7e7e00,0xf6f600f6 +.long 0x76767600,0x9d9d009d +.long 0x05050500,0xbfbf00bf +.long 0x6d6d6d00,0x52520052 +.long 0xb7b7b700,0xd8d800d8 +.long 0xa9a9a900,0xc8c800c8 +.long 0x31313100,0xc6c600c6 +.long 0xd1d1d100,0x81810081 +.long 0x17171700,0x6f6f006f +.long 0x04040400,0x13130013 +.long 0xd7d7d700,0x63630063 +.long 0x14141400,0xe9e900e9 +.long 0x58585800,0xa7a700a7 +.long 0x3a3a3a00,0x9f9f009f +.long 0x61616100,0xbcbc00bc +.long 0xdedede00,0x29290029 +.long 0x1b1b1b00,0xf9f900f9 +.long 0x11111100,0x2f2f002f +.long 0x1c1c1c00,0xb4b400b4 +.long 0x32323200,0x78780078 +.long 0x0f0f0f00,0x06060006 +.long 0x9c9c9c00,0xe7e700e7 +.long 0x16161600,0x71710071 +.long 0x53535300,0xd4d400d4 +.long 0x18181800,0xabab00ab +.long 0xf2f2f200,0x88880088 +.long 0x22222200,0x8d8d008d +.long 0xfefefe00,0x72720072 +.long 0x44444400,0xb9b900b9 +.long 0xcfcfcf00,0xf8f800f8 +.long 0xb2b2b200,0xacac00ac +.long 0xc3c3c300,0x36360036 +.long 0xb5b5b500,0x2a2a002a +.long 0x7a7a7a00,0x3c3c003c +.long 0x91919100,0xf1f100f1 +.long 0x24242400,0x40400040 +.long 0x08080800,0xd3d300d3 +.long 0xe8e8e800,0xbbbb00bb +.long 0xa8a8a800,0x43430043 +.long 0x60606000,0x15150015 +.long 0xfcfcfc00,0xadad00ad +.long 0x69696900,0x77770077 +.long 0x50505000,0x80800080 +.long 0xaaaaaa00,0x82820082 +.long 0xd0d0d000,0xecec00ec +.long 0xa0a0a000,0x27270027 +.long 0x7d7d7d00,0xe5e500e5 +.long 0xa1a1a100,0x85850085 +.long 0x89898900,0x35350035 +.long 0x62626200,0x0c0c000c +.long 0x97979700,0x41410041 +.long 0x54545400,0xefef00ef +.long 0x5b5b5b00,0x93930093 +.long 0x1e1e1e00,0x19190019 +.long 0x95959500,0x21210021 +.long 0xe0e0e000,0x0e0e000e +.long 0xffffff00,0x4e4e004e +.long 0x64646400,0x65650065 +.long 0xd2d2d200,0xbdbd00bd +.long 0x10101000,0xb8b800b8 +.long 0xc4c4c400,0x8f8f008f +.long 0x00000000,0xebeb00eb +.long 0x48484800,0xcece00ce +.long 0xa3a3a300,0x30300030 +.long 0xf7f7f700,0x5f5f005f +.long 0x75757500,0xc5c500c5 +.long 0xdbdbdb00,0x1a1a001a +.long 0x8a8a8a00,0xe1e100e1 +.long 0x03030300,0xcaca00ca +.long 0xe6e6e600,0x47470047 +.long 0xdadada00,0x3d3d003d +.long 0x09090900,0x01010001 +.long 0x3f3f3f00,0xd6d600d6 +.long 0xdddddd00,0x56560056 +.long 0x94949400,0x4d4d004d +.long 0x87878700,0x0d0d000d +.long 0x5c5c5c00,0x66660066 +.long 0x83838300,0xcccc00cc +.long 0x02020200,0x2d2d002d +.long 0xcdcdcd00,0x12120012 +.long 0x4a4a4a00,0x20200020 +.long 0x90909000,0xb1b100b1 +.long 0x33333300,0x99990099 +.long 0x73737300,0x4c4c004c +.long 0x67676700,0xc2c200c2 +.long 0xf6f6f600,0x7e7e007e +.long 0xf3f3f300,0x05050005 +.long 0x9d9d9d00,0xb7b700b7 +.long 0x7f7f7f00,0x31310031 +.long 0xbfbfbf00,0x17170017 +.long 0xe2e2e200,0xd7d700d7 +.long 0x52525200,0x58580058 +.long 0x9b9b9b00,0x61610061 +.long 0xd8d8d800,0x1b1b001b +.long 0x26262600,0x1c1c001c +.long 0xc8c8c800,0x0f0f000f +.long 0x37373700,0x16160016 +.long 0xc6c6c600,0x18180018 +.long 0x3b3b3b00,0x22220022 +.long 0x81818100,0x44440044 +.long 0x96969600,0xb2b200b2 +.long 0x6f6f6f00,0xb5b500b5 +.long 0x4b4b4b00,0x91910091 +.long 0x13131300,0x08080008 +.long 0xbebebe00,0xa8a800a8 +.long 0x63636300,0xfcfc00fc +.long 0x2e2e2e00,0x50500050 +.long 0xe9e9e900,0xd0d000d0 +.long 0x79797900,0x7d7d007d +.long 0xa7a7a700,0x89890089 +.long 0x8c8c8c00,0x97970097 +.long 0x9f9f9f00,0x5b5b005b +.long 0x6e6e6e00,0x95950095 +.long 0xbcbcbc00,0xffff00ff +.long 0x8e8e8e00,0xd2d200d2 +.long 0x29292900,0xc4c400c4 +.long 0xf5f5f500,0x48480048 +.long 0xf9f9f900,0xf7f700f7 +.long 0xb6b6b600,0xdbdb00db +.long 0x2f2f2f00,0x03030003 +.long 0xfdfdfd00,0xdada00da +.long 0xb4b4b400,0x3f3f003f +.long 0x59595900,0x94940094 +.long 0x78787800,0x5c5c005c +.long 0x98989800,0x02020002 +.long 0x06060600,0x4a4a004a +.long 0x6a6a6a00,0x33330033 +.long 0xe7e7e700,0x67670067 +.long 0x46464600,0xf3f300f3 +.long 0x71717100,0x7f7f007f +.long 0xbababa00,0xe2e200e2 +.long 0xd4d4d400,0x9b9b009b +.long 0x25252500,0x26260026 +.long 0xababab00,0x37370037 +.long 0x42424200,0x3b3b003b +.long 0x88888800,0x96960096 +.long 0xa2a2a200,0x4b4b004b +.long 0x8d8d8d00,0xbebe00be +.long 0xfafafa00,0x2e2e002e +.long 0x72727200,0x79790079 +.long 0x07070700,0x8c8c008c +.long 0xb9b9b900,0x6e6e006e +.long 0x55555500,0x8e8e008e +.long 0xf8f8f800,0xf5f500f5 +.long 0xeeeeee00,0xb6b600b6 +.long 0xacacac00,0xfdfd00fd +.long 0x0a0a0a00,0x59590059 +.long 0x36363600,0x98980098 +.long 0x49494900,0x6a6a006a +.long 0x2a2a2a00,0x46460046 +.long 0x68686800,0xbaba00ba +.long 0x3c3c3c00,0x25250025 +.long 0x38383800,0x42420042 +.long 0xf1f1f100,0xa2a200a2 +.long 0xa4a4a400,0xfafa00fa +.long 0x40404000,0x07070007 +.long 0x28282800,0x55550055 +.long 0xd3d3d300,0xeeee00ee +.long 0x7b7b7b00,0x0a0a000a +.long 0xbbbbbb00,0x49490049 +.long 0xc9c9c900,0x68680068 +.long 0x43434300,0x38380038 +.long 0xc1c1c100,0xa4a400a4 +.long 0x15151500,0x28280028 +.long 0xe3e3e300,0x7b7b007b +.long 0xadadad00,0xc9c900c9 +.long 0xf4f4f400,0xc1c100c1 +.long 0x77777700,0xe3e300e3 +.long 0xc7c7c700,0xf4f400f4 +.long 0x80808000,0xc7c700c7 +.long 0x9e9e9e00,0x9e9e009e +.long 0x00e0e0e0,0x38003838 +.long 0x00050505,0x41004141 +.long 0x00585858,0x16001616 +.long 0x00d9d9d9,0x76007676 +.long 0x00676767,0xd900d9d9 +.long 0x004e4e4e,0x93009393 +.long 0x00818181,0x60006060 +.long 0x00cbcbcb,0xf200f2f2 +.long 0x00c9c9c9,0x72007272 +.long 0x000b0b0b,0xc200c2c2 +.long 0x00aeaeae,0xab00abab +.long 0x006a6a6a,0x9a009a9a +.long 0x00d5d5d5,0x75007575 +.long 0x00181818,0x06000606 +.long 0x005d5d5d,0x57005757 +.long 0x00828282,0xa000a0a0 +.long 0x00464646,0x91009191 +.long 0x00dfdfdf,0xf700f7f7 +.long 0x00d6d6d6,0xb500b5b5 +.long 0x00272727,0xc900c9c9 +.long 0x008a8a8a,0xa200a2a2 +.long 0x00323232,0x8c008c8c +.long 0x004b4b4b,0xd200d2d2 +.long 0x00424242,0x90009090 +.long 0x00dbdbdb,0xf600f6f6 +.long 0x001c1c1c,0x07000707 +.long 0x009e9e9e,0xa700a7a7 +.long 0x009c9c9c,0x27002727 +.long 0x003a3a3a,0x8e008e8e +.long 0x00cacaca,0xb200b2b2 +.long 0x00252525,0x49004949 +.long 0x007b7b7b,0xde00dede +.long 0x000d0d0d,0x43004343 +.long 0x00717171,0x5c005c5c +.long 0x005f5f5f,0xd700d7d7 +.long 0x001f1f1f,0xc700c7c7 +.long 0x00f8f8f8,0x3e003e3e +.long 0x00d7d7d7,0xf500f5f5 +.long 0x003e3e3e,0x8f008f8f +.long 0x009d9d9d,0x67006767 +.long 0x007c7c7c,0x1f001f1f +.long 0x00606060,0x18001818 +.long 0x00b9b9b9,0x6e006e6e +.long 0x00bebebe,0xaf00afaf +.long 0x00bcbcbc,0x2f002f2f +.long 0x008b8b8b,0xe200e2e2 +.long 0x00161616,0x85008585 +.long 0x00343434,0x0d000d0d +.long 0x004d4d4d,0x53005353 +.long 0x00c3c3c3,0xf000f0f0 +.long 0x00727272,0x9c009c9c +.long 0x00959595,0x65006565 +.long 0x00ababab,0xea00eaea +.long 0x008e8e8e,0xa300a3a3 +.long 0x00bababa,0xae00aeae +.long 0x007a7a7a,0x9e009e9e +.long 0x00b3b3b3,0xec00ecec +.long 0x00020202,0x80008080 +.long 0x00b4b4b4,0x2d002d2d +.long 0x00adadad,0x6b006b6b +.long 0x00a2a2a2,0xa800a8a8 +.long 0x00acacac,0x2b002b2b +.long 0x00d8d8d8,0x36003636 +.long 0x009a9a9a,0xa600a6a6 +.long 0x00171717,0xc500c5c5 +.long 0x001a1a1a,0x86008686 +.long 0x00353535,0x4d004d4d +.long 0x00cccccc,0x33003333 +.long 0x00f7f7f7,0xfd00fdfd +.long 0x00999999,0x66006666 +.long 0x00616161,0x58005858 +.long 0x005a5a5a,0x96009696 +.long 0x00e8e8e8,0x3a003a3a +.long 0x00242424,0x09000909 +.long 0x00565656,0x95009595 +.long 0x00404040,0x10001010 +.long 0x00e1e1e1,0x78007878 +.long 0x00636363,0xd800d8d8 +.long 0x00090909,0x42004242 +.long 0x00333333,0xcc00cccc +.long 0x00bfbfbf,0xef00efef +.long 0x00989898,0x26002626 +.long 0x00979797,0xe500e5e5 +.long 0x00858585,0x61006161 +.long 0x00686868,0x1a001a1a +.long 0x00fcfcfc,0x3f003f3f +.long 0x00ececec,0x3b003b3b +.long 0x000a0a0a,0x82008282 +.long 0x00dadada,0xb600b6b6 +.long 0x006f6f6f,0xdb00dbdb +.long 0x00535353,0xd400d4d4 +.long 0x00626262,0x98009898 +.long 0x00a3a3a3,0xe800e8e8 +.long 0x002e2e2e,0x8b008b8b +.long 0x00080808,0x02000202 +.long 0x00afafaf,0xeb00ebeb +.long 0x00282828,0x0a000a0a +.long 0x00b0b0b0,0x2c002c2c +.long 0x00747474,0x1d001d1d +.long 0x00c2c2c2,0xb000b0b0 +.long 0x00bdbdbd,0x6f006f6f +.long 0x00363636,0x8d008d8d +.long 0x00222222,0x88008888 +.long 0x00383838,0x0e000e0e +.long 0x00646464,0x19001919 +.long 0x001e1e1e,0x87008787 +.long 0x00393939,0x4e004e4e +.long 0x002c2c2c,0x0b000b0b +.long 0x00a6a6a6,0xa900a9a9 +.long 0x00303030,0x0c000c0c +.long 0x00e5e5e5,0x79007979 +.long 0x00444444,0x11001111 +.long 0x00fdfdfd,0x7f007f7f +.long 0x00888888,0x22002222 +.long 0x009f9f9f,0xe700e7e7 +.long 0x00656565,0x59005959 +.long 0x00878787,0xe100e1e1 +.long 0x006b6b6b,0xda00dada +.long 0x00f4f4f4,0x3d003d3d +.long 0x00232323,0xc800c8c8 +.long 0x00484848,0x12001212 +.long 0x00101010,0x04000404 +.long 0x00d1d1d1,0x74007474 +.long 0x00515151,0x54005454 +.long 0x00c0c0c0,0x30003030 +.long 0x00f9f9f9,0x7e007e7e +.long 0x00d2d2d2,0xb400b4b4 +.long 0x00a0a0a0,0x28002828 +.long 0x00555555,0x55005555 +.long 0x00a1a1a1,0x68006868 +.long 0x00414141,0x50005050 +.long 0x00fafafa,0xbe00bebe +.long 0x00434343,0xd000d0d0 +.long 0x00131313,0xc400c4c4 +.long 0x00c4c4c4,0x31003131 +.long 0x002f2f2f,0xcb00cbcb +.long 0x00a8a8a8,0x2a002a2a +.long 0x00b6b6b6,0xad00adad +.long 0x003c3c3c,0x0f000f0f +.long 0x002b2b2b,0xca00caca +.long 0x00c1c1c1,0x70007070 +.long 0x00ffffff,0xff00ffff +.long 0x00c8c8c8,0x32003232 +.long 0x00a5a5a5,0x69006969 +.long 0x00202020,0x08000808 +.long 0x00898989,0x62006262 +.long 0x00000000,0x00000000 +.long 0x00909090,0x24002424 +.long 0x00474747,0xd100d1d1 +.long 0x00efefef,0xfb00fbfb +.long 0x00eaeaea,0xba00baba +.long 0x00b7b7b7,0xed00eded +.long 0x00151515,0x45004545 +.long 0x00060606,0x81008181 +.long 0x00cdcdcd,0x73007373 +.long 0x00b5b5b5,0x6d006d6d +.long 0x00121212,0x84008484 +.long 0x007e7e7e,0x9f009f9f +.long 0x00bbbbbb,0xee00eeee +.long 0x00292929,0x4a004a4a +.long 0x000f0f0f,0xc300c3c3 +.long 0x00b8b8b8,0x2e002e2e +.long 0x00070707,0xc100c1c1 +.long 0x00040404,0x01000101 +.long 0x009b9b9b,0xe600e6e6 +.long 0x00949494,0x25002525 +.long 0x00212121,0x48004848 +.long 0x00666666,0x99009999 +.long 0x00e6e6e6,0xb900b9b9 +.long 0x00cecece,0xb300b3b3 +.long 0x00ededed,0x7b007b7b +.long 0x00e7e7e7,0xf900f9f9 +.long 0x003b3b3b,0xce00cece +.long 0x00fefefe,0xbf00bfbf +.long 0x007f7f7f,0xdf00dfdf +.long 0x00c5c5c5,0x71007171 +.long 0x00a4a4a4,0x29002929 +.long 0x00373737,0xcd00cdcd +.long 0x00b1b1b1,0x6c006c6c +.long 0x004c4c4c,0x13001313 +.long 0x00919191,0x64006464 +.long 0x006e6e6e,0x9b009b9b +.long 0x008d8d8d,0x63006363 +.long 0x00767676,0x9d009d9d +.long 0x00030303,0xc000c0c0 +.long 0x002d2d2d,0x4b004b4b +.long 0x00dedede,0xb700b7b7 +.long 0x00969696,0xa500a5a5 +.long 0x00262626,0x89008989 +.long 0x007d7d7d,0x5f005f5f +.long 0x00c6c6c6,0xb100b1b1 +.long 0x005c5c5c,0x17001717 +.long 0x00d3d3d3,0xf400f4f4 +.long 0x00f2f2f2,0xbc00bcbc +.long 0x004f4f4f,0xd300d3d3 +.long 0x00191919,0x46004646 +.long 0x003f3f3f,0xcf00cfcf +.long 0x00dcdcdc,0x37003737 +.long 0x00797979,0x5e005e5e +.long 0x001d1d1d,0x47004747 +.long 0x00525252,0x94009494 +.long 0x00ebebeb,0xfa00fafa +.long 0x00f3f3f3,0xfc00fcfc +.long 0x006d6d6d,0x5b005b5b +.long 0x005e5e5e,0x97009797 +.long 0x00fbfbfb,0xfe00fefe +.long 0x00696969,0x5a005a5a +.long 0x00b2b2b2,0xac00acac +.long 0x00f0f0f0,0x3c003c3c +.long 0x00313131,0x4c004c4c +.long 0x000c0c0c,0x03000303 +.long 0x00d4d4d4,0x35003535 +.long 0x00cfcfcf,0xf300f3f3 +.long 0x008c8c8c,0x23002323 +.long 0x00e2e2e2,0xb800b8b8 +.long 0x00757575,0x5d005d5d +.long 0x00a9a9a9,0x6a006a6a +.long 0x004a4a4a,0x92009292 +.long 0x00575757,0xd500d5d5 +.long 0x00848484,0x21002121 +.long 0x00111111,0x44004444 +.long 0x00454545,0x51005151 +.long 0x001b1b1b,0xc600c6c6 +.long 0x00f5f5f5,0x7d007d7d +.long 0x00e4e4e4,0x39003939 +.long 0x000e0e0e,0x83008383 +.long 0x00737373,0xdc00dcdc +.long 0x00aaaaaa,0xaa00aaaa +.long 0x00f1f1f1,0x7c007c7c +.long 0x00dddddd,0x77007777 +.long 0x00595959,0x56005656 +.long 0x00141414,0x05000505 +.long 0x006c6c6c,0x1b001b1b +.long 0x00929292,0xa400a4a4 +.long 0x00545454,0x15001515 +.long 0x00d0d0d0,0x34003434 +.long 0x00787878,0x1e001e1e +.long 0x00707070,0x1c001c1c +.long 0x00e3e3e3,0xf800f8f8 +.long 0x00494949,0x52005252 +.long 0x00808080,0x20002020 +.long 0x00505050,0x14001414 +.long 0x00a7a7a7,0xe900e9e9 +.long 0x00f6f6f6,0xbd00bdbd +.long 0x00777777,0xdd00dddd +.long 0x00939393,0xe400e4e4 +.long 0x00868686,0xa100a1a1 +.long 0x00838383,0xe000e0e0 +.long 0x002a2a2a,0x8a008a8a +.long 0x00c7c7c7,0xf100f1f1 +.long 0x005b5b5b,0xd600d6d6 +.long 0x00e9e9e9,0x7a007a7a +.long 0x00eeeeee,0xbb00bbbb +.long 0x008f8f8f,0xe300e3e3 +.long 0x00010101,0x40004040 +.long 0x003d3d3d,0x4f004f4f +.globl Camellia_cbc_encrypt +.type Camellia_cbc_encrypt,@function +.align 16 +Camellia_cbc_encrypt: + cmpq $0,%rdx + je .Lcbc_abort + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 +.Lcbc_prologue: + + movq %rsp,%rbp + subq $64,%rsp + andq $-64,%rsp + + + + leaq -64-63(%rcx),%r10 + subq %rsp,%r10 + negq %r10 + andq $960,%r10 + subq %r10,%rsp + + + movq %rdi,%r12 + movq %rsi,%r13 + movq %r8,%rbx + movq %rcx,%r14 + movl 272(%rcx),%r15d + + movq %r8,40(%rsp) + movq %rbp,48(%rsp) + +.Lcbc_body: + leaq .LCamellia_SBOX(%rip),%rbp + + movl $32,%ecx +.align 4 +.Lcbc_prefetch_sbox: + movq 0(%rbp),%rax + movq 32(%rbp),%rsi + movq 64(%rbp),%rdi + movq 96(%rbp),%r11 + leaq 128(%rbp),%rbp + loop .Lcbc_prefetch_sbox + subq $4096,%rbp + shlq $6,%r15 + movq %rdx,%rcx + leaq (%r14,%r15,1),%r15 + + cmpl $0,%r9d + je .LCBC_DECRYPT + + andq $-16,%rdx + andq $15,%rcx + leaq (%r12,%rdx,1),%rdx + movq %r14,0(%rsp) + movq %rdx,8(%rsp) + movq %rcx,16(%rsp) + + cmpq %r12,%rdx + movl 0(%rbx),%r8d + movl 4(%rbx),%r9d + movl 8(%rbx),%r10d + movl 12(%rbx),%r11d + je .Lcbc_enc_tail + jmp .Lcbc_eloop + +.align 16 +.Lcbc_eloop: + xorl 0(%r12),%r8d + xorl 4(%r12),%r9d + xorl 8(%r12),%r10d + bswapl %r8d + xorl 12(%r12),%r11d + bswapl %r9d + bswapl %r10d + bswapl %r11d + + call _x86_64_Camellia_encrypt + + movq 0(%rsp),%r14 + bswapl %r8d + movq 8(%rsp),%rdx + bswapl %r9d + movq 16(%rsp),%rcx + bswapl %r10d + movl %r8d,0(%r13) + bswapl %r11d + movl %r9d,4(%r13) + movl %r10d,8(%r13) + leaq 16(%r12),%r12 + movl %r11d,12(%r13) + cmpq %rdx,%r12 + leaq 16(%r13),%r13 + jne .Lcbc_eloop + + cmpq $0,%rcx + jne .Lcbc_enc_tail + + movq 40(%rsp),%r13 + movl %r8d,0(%r13) + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + jmp .Lcbc_done + +.align 16 +.Lcbc_enc_tail: + xorq %rax,%rax + movq %rax,0+24(%rsp) + movq %rax,8+24(%rsp) + movq %rax,16(%rsp) + +.Lcbc_enc_pushf: + pushfq + cld + movq %r12,%rsi + leaq 8+24(%rsp),%rdi +.long 0x9066A4F3 + + popfq +.Lcbc_enc_popf: + + leaq 24(%rsp),%r12 + leaq 16+24(%rsp),%rax + movq %rax,8(%rsp) + jmp .Lcbc_eloop + + +.align 16 +.LCBC_DECRYPT: + xchgq %r14,%r15 + addq $15,%rdx + andq $15,%rcx + andq $-16,%rdx + movq %r14,0(%rsp) + leaq (%r12,%rdx,1),%rdx + movq %rdx,8(%rsp) + movq %rcx,16(%rsp) + + movq (%rbx),%rax + movq 8(%rbx),%rbx + jmp .Lcbc_dloop +.align 16 +.Lcbc_dloop: + movl 0(%r12),%r8d + movl 4(%r12),%r9d + movl 8(%r12),%r10d + bswapl %r8d + movl 12(%r12),%r11d + bswapl %r9d + movq %rax,0+24(%rsp) + bswapl %r10d + movq %rbx,8+24(%rsp) + bswapl %r11d + + call _x86_64_Camellia_decrypt + + movq 0(%rsp),%r14 + movq 8(%rsp),%rdx + movq 16(%rsp),%rcx + + bswapl %r8d + movq (%r12),%rax + bswapl %r9d + movq 8(%r12),%rbx + bswapl %r10d + xorl 0+24(%rsp),%r8d + bswapl %r11d + xorl 4+24(%rsp),%r9d + xorl 8+24(%rsp),%r10d + leaq 16(%r12),%r12 + xorl 12+24(%rsp),%r11d + cmpq %rdx,%r12 + je .Lcbc_ddone + + movl %r8d,0(%r13) + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + + leaq 16(%r13),%r13 + jmp .Lcbc_dloop + +.align 16 +.Lcbc_ddone: + movq 40(%rsp),%rdx + cmpq $0,%rcx + jne .Lcbc_dec_tail + + movl %r8d,0(%r13) + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + + movq %rax,(%rdx) + movq %rbx,8(%rdx) + jmp .Lcbc_done +.align 16 +.Lcbc_dec_tail: + movl %r8d,0+24(%rsp) + movl %r9d,4+24(%rsp) + movl %r10d,8+24(%rsp) + movl %r11d,12+24(%rsp) + +.Lcbc_dec_pushf: + pushfq + cld + leaq 8+24(%rsp),%rsi + leaq (%r13),%rdi +.long 0x9066A4F3 + + popfq +.Lcbc_dec_popf: + + movq %rax,(%rdx) + movq %rbx,8(%rdx) + jmp .Lcbc_done + +.align 16 +.Lcbc_done: + movq 48(%rsp),%rcx + movq 0(%rcx),%r15 + movq 8(%rcx),%r14 + movq 16(%rcx),%r13 + movq 24(%rcx),%r12 + movq 32(%rcx),%rbp + movq 40(%rcx),%rbx + leaq 48(%rcx),%rsp +.Lcbc_abort: + .byte 0xf3,0xc3 +.size Camellia_cbc_encrypt,.-Camellia_cbc_encrypt + +.byte 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54,95,54,52,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/deps/openssl/asm/x64-elf-gas/md5/md5-x86_64.s b/deps/openssl/asm/x64-elf-gas/md5/md5-x86_64.s new file mode 100644 index 0000000000..81b0c7a117 --- /dev/null +++ b/deps/openssl/asm/x64-elf-gas/md5/md5-x86_64.s @@ -0,0 +1,671 @@ +.text + +.align 16 + +.globl md5_block_asm_data_order +.type md5_block_asm_data_order,@function +md5_block_asm_data_order: + pushq %rbp + pushq %rbx + pushq %r12 + pushq %r14 + pushq %r15 +.Lprologue: + + + + + movq %rdi,%rbp + shlq $6,%rdx + leaq (%rsi,%rdx,1),%rdi + movl 0(%rbp),%eax + movl 4(%rbp),%ebx + movl 8(%rbp),%ecx + movl 12(%rbp),%edx + + + + + + + + cmpq %rdi,%rsi + je .Lend + + + +.Lloop: + movl %eax,%r8d + movl %ebx,%r9d + movl %ecx,%r14d + movl %edx,%r15d + movl 0(%rsi),%r10d + movl %edx,%r11d + xorl %ecx,%r11d + leal -680876936(%rax,%r10,1),%eax + andl %ebx,%r11d + xorl %edx,%r11d + movl 4(%rsi),%r10d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -389564586(%rdx,%r10,1),%edx + andl %eax,%r11d + xorl %ecx,%r11d + movl 8(%rsi),%r10d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal 606105819(%rcx,%r10,1),%ecx + andl %edx,%r11d + xorl %ebx,%r11d + movl 12(%rsi),%r10d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -1044525330(%rbx,%r10,1),%ebx + andl %ecx,%r11d + xorl %eax,%r11d + movl 16(%rsi),%r10d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal -176418897(%rax,%r10,1),%eax + andl %ebx,%r11d + xorl %edx,%r11d + movl 20(%rsi),%r10d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal 1200080426(%rdx,%r10,1),%edx + andl %eax,%r11d + xorl %ecx,%r11d + movl 24(%rsi),%r10d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -1473231341(%rcx,%r10,1),%ecx + andl %edx,%r11d + xorl %ebx,%r11d + movl 28(%rsi),%r10d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -45705983(%rbx,%r10,1),%ebx + andl %ecx,%r11d + xorl %eax,%r11d + movl 32(%rsi),%r10d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal 1770035416(%rax,%r10,1),%eax + andl %ebx,%r11d + xorl %edx,%r11d + movl 36(%rsi),%r10d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -1958414417(%rdx,%r10,1),%edx + andl %eax,%r11d + xorl %ecx,%r11d + movl 40(%rsi),%r10d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -42063(%rcx,%r10,1),%ecx + andl %edx,%r11d + xorl %ebx,%r11d + movl 44(%rsi),%r10d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -1990404162(%rbx,%r10,1),%ebx + andl %ecx,%r11d + xorl %eax,%r11d + movl 48(%rsi),%r10d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal 1804603682(%rax,%r10,1),%eax + andl %ebx,%r11d + xorl %edx,%r11d + movl 52(%rsi),%r10d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -40341101(%rdx,%r10,1),%edx + andl %eax,%r11d + xorl %ecx,%r11d + movl 56(%rsi),%r10d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -1502002290(%rcx,%r10,1),%ecx + andl %edx,%r11d + xorl %ebx,%r11d + movl 60(%rsi),%r10d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal 1236535329(%rbx,%r10,1),%ebx + andl %ecx,%r11d + xorl %eax,%r11d + movl 0(%rsi),%r10d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + movl 4(%rsi),%r10d + movl %edx,%r11d + movl %edx,%r12d + notl %r11d + leal -165796510(%rax,%r10,1),%eax + andl %ebx,%r12d + andl %ecx,%r11d + movl 24(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + leal -1069501632(%rdx,%r10,1),%edx + andl %eax,%r12d + andl %ebx,%r11d + movl 44(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + leal 643717713(%rcx,%r10,1),%ecx + andl %edx,%r12d + andl %eax,%r11d + movl 0(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + leal -373897302(%rbx,%r10,1),%ebx + andl %ecx,%r12d + andl %edx,%r11d + movl 20(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + leal -701558691(%rax,%r10,1),%eax + andl %ebx,%r12d + andl %ecx,%r11d + movl 40(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + leal 38016083(%rdx,%r10,1),%edx + andl %eax,%r12d + andl %ebx,%r11d + movl 60(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + leal -660478335(%rcx,%r10,1),%ecx + andl %edx,%r12d + andl %eax,%r11d + movl 16(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + leal -405537848(%rbx,%r10,1),%ebx + andl %ecx,%r12d + andl %edx,%r11d + movl 36(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + leal 568446438(%rax,%r10,1),%eax + andl %ebx,%r12d + andl %ecx,%r11d + movl 56(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + leal -1019803690(%rdx,%r10,1),%edx + andl %eax,%r12d + andl %ebx,%r11d + movl 12(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + leal -187363961(%rcx,%r10,1),%ecx + andl %edx,%r12d + andl %eax,%r11d + movl 32(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + leal 1163531501(%rbx,%r10,1),%ebx + andl %ecx,%r12d + andl %edx,%r11d + movl 52(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + leal -1444681467(%rax,%r10,1),%eax + andl %ebx,%r12d + andl %ecx,%r11d + movl 8(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + leal -51403784(%rdx,%r10,1),%edx + andl %eax,%r12d + andl %ebx,%r11d + movl 28(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + leal 1735328473(%rcx,%r10,1),%ecx + andl %edx,%r12d + andl %eax,%r11d + movl 48(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + leal -1926607734(%rbx,%r10,1),%ebx + andl %ecx,%r12d + andl %edx,%r11d + movl 0(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + movl 20(%rsi),%r10d + movl %ecx,%r11d + leal -378558(%rax,%r10,1),%eax + movl 32(%rsi),%r10d + xorl %edx,%r11d + xorl %ebx,%r11d + addl %r11d,%eax + roll $4,%eax + movl %ebx,%r11d + addl %ebx,%eax + leal -2022574463(%rdx,%r10,1),%edx + movl 44(%rsi),%r10d + xorl %ecx,%r11d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal 1839030562(%rcx,%r10,1),%ecx + movl 56(%rsi),%r10d + xorl %ebx,%r11d + xorl %edx,%r11d + addl %r11d,%ecx + roll $16,%ecx + movl %edx,%r11d + addl %edx,%ecx + leal -35309556(%rbx,%r10,1),%ebx + movl 4(%rsi),%r10d + xorl %eax,%r11d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal -1530992060(%rax,%r10,1),%eax + movl 16(%rsi),%r10d + xorl %edx,%r11d + xorl %ebx,%r11d + addl %r11d,%eax + roll $4,%eax + movl %ebx,%r11d + addl %ebx,%eax + leal 1272893353(%rdx,%r10,1),%edx + movl 28(%rsi),%r10d + xorl %ecx,%r11d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal -155497632(%rcx,%r10,1),%ecx + movl 40(%rsi),%r10d + xorl %ebx,%r11d + xorl %edx,%r11d + addl %r11d,%ecx + roll $16,%ecx + movl %edx,%r11d + addl %edx,%ecx + leal -1094730640(%rbx,%r10,1),%ebx + movl 52(%rsi),%r10d + xorl %eax,%r11d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal 681279174(%rax,%r10,1),%eax + movl 0(%rsi),%r10d + xorl %edx,%r11d + xorl %ebx,%r11d + addl %r11d,%eax + roll $4,%eax + movl %ebx,%r11d + addl %ebx,%eax + leal -358537222(%rdx,%r10,1),%edx + movl 12(%rsi),%r10d + xorl %ecx,%r11d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal -722521979(%rcx,%r10,1),%ecx + movl 24(%rsi),%r10d + xorl %ebx,%r11d + xorl %edx,%r11d + addl %r11d,%ecx + roll $16,%ecx + movl %edx,%r11d + addl %edx,%ecx + leal 76029189(%rbx,%r10,1),%ebx + movl 36(%rsi),%r10d + xorl %eax,%r11d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal -640364487(%rax,%r10,1),%eax + movl 48(%rsi),%r10d + xorl %edx,%r11d + xorl %ebx,%r11d + addl %r11d,%eax + roll $4,%eax + movl %ebx,%r11d + addl %ebx,%eax + leal -421815835(%rdx,%r10,1),%edx + movl 60(%rsi),%r10d + xorl %ecx,%r11d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal 530742520(%rcx,%r10,1),%ecx + movl 8(%rsi),%r10d + xorl %ebx,%r11d + xorl %edx,%r11d + addl %r11d,%ecx + roll $16,%ecx + movl %edx,%r11d + addl %edx,%ecx + leal -995338651(%rbx,%r10,1),%ebx + movl 0(%rsi),%r10d + xorl %eax,%r11d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + movl 0(%rsi),%r10d + movl $4294967295,%r11d + xorl %edx,%r11d + leal -198630844(%rax,%r10,1),%eax + orl %ebx,%r11d + xorl %ecx,%r11d + addl %r11d,%eax + movl 28(%rsi),%r10d + movl $4294967295,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal 1126891415(%rdx,%r10,1),%edx + orl %eax,%r11d + xorl %ebx,%r11d + addl %r11d,%edx + movl 56(%rsi),%r10d + movl $4294967295,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1416354905(%rcx,%r10,1),%ecx + orl %edx,%r11d + xorl %eax,%r11d + addl %r11d,%ecx + movl 20(%rsi),%r10d + movl $4294967295,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -57434055(%rbx,%r10,1),%ebx + orl %ecx,%r11d + xorl %edx,%r11d + addl %r11d,%ebx + movl 48(%rsi),%r10d + movl $4294967295,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal 1700485571(%rax,%r10,1),%eax + orl %ebx,%r11d + xorl %ecx,%r11d + addl %r11d,%eax + movl 12(%rsi),%r10d + movl $4294967295,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -1894986606(%rdx,%r10,1),%edx + orl %eax,%r11d + xorl %ebx,%r11d + addl %r11d,%edx + movl 40(%rsi),%r10d + movl $4294967295,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1051523(%rcx,%r10,1),%ecx + orl %edx,%r11d + xorl %eax,%r11d + addl %r11d,%ecx + movl 4(%rsi),%r10d + movl $4294967295,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -2054922799(%rbx,%r10,1),%ebx + orl %ecx,%r11d + xorl %edx,%r11d + addl %r11d,%ebx + movl 32(%rsi),%r10d + movl $4294967295,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal 1873313359(%rax,%r10,1),%eax + orl %ebx,%r11d + xorl %ecx,%r11d + addl %r11d,%eax + movl 60(%rsi),%r10d + movl $4294967295,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -30611744(%rdx,%r10,1),%edx + orl %eax,%r11d + xorl %ebx,%r11d + addl %r11d,%edx + movl 24(%rsi),%r10d + movl $4294967295,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1560198380(%rcx,%r10,1),%ecx + orl %edx,%r11d + xorl %eax,%r11d + addl %r11d,%ecx + movl 52(%rsi),%r10d + movl $4294967295,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal 1309151649(%rbx,%r10,1),%ebx + orl %ecx,%r11d + xorl %edx,%r11d + addl %r11d,%ebx + movl 16(%rsi),%r10d + movl $4294967295,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal -145523070(%rax,%r10,1),%eax + orl %ebx,%r11d + xorl %ecx,%r11d + addl %r11d,%eax + movl 44(%rsi),%r10d + movl $4294967295,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -1120210379(%rdx,%r10,1),%edx + orl %eax,%r11d + xorl %ebx,%r11d + addl %r11d,%edx + movl 8(%rsi),%r10d + movl $4294967295,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal 718787259(%rcx,%r10,1),%ecx + orl %edx,%r11d + xorl %eax,%r11d + addl %r11d,%ecx + movl 36(%rsi),%r10d + movl $4294967295,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -343485551(%rbx,%r10,1),%ebx + orl %ecx,%r11d + xorl %edx,%r11d + addl %r11d,%ebx + movl 0(%rsi),%r10d + movl $4294967295,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + + addl %r8d,%eax + addl %r9d,%ebx + addl %r14d,%ecx + addl %r15d,%edx + + + addq $64,%rsi + cmpq %rdi,%rsi + jb .Lloop + + + +.Lend: + movl %eax,0(%rbp) + movl %ebx,4(%rbp) + movl %ecx,8(%rbp) + movl %edx,12(%rbp) + + movq (%rsp),%r15 + movq 8(%rsp),%r14 + movq 16(%rsp),%r12 + movq 24(%rsp),%rbx + movq 32(%rsp),%rbp + addq $40,%rsp +.Lepilogue: + .byte 0xf3,0xc3 +.size md5_block_asm_data_order,.-md5_block_asm_data_order diff --git a/deps/openssl/asm/x64-elf-gas/rc4/rc4-x86_64.s b/deps/openssl/asm/x64-elf-gas/rc4/rc4-x86_64.s new file mode 100644 index 0000000000..1bafefeb02 --- /dev/null +++ b/deps/openssl/asm/x64-elf-gas/rc4/rc4-x86_64.s @@ -0,0 +1,430 @@ +.text + + +.globl RC4 +.type RC4,@function +.align 16 +RC4: orq %rsi,%rsi + jne .Lentry + .byte 0xf3,0xc3 +.Lentry: + pushq %rbx + pushq %r12 + pushq %r13 +.Lprologue: + + addq $8,%rdi + movl -8(%rdi),%r8d + movl -4(%rdi),%r12d + cmpl $-1,256(%rdi) + je .LRC4_CHAR + incb %r8b + movl (%rdi,%r8,4),%r9d + testq $-8,%rsi + jz .Lloop1 + jmp .Lloop8 +.align 16 +.Lloop8: + addb %r9b,%r12b + movq %r8,%r10 + movl (%rdi,%r12,4),%r13d + rorq $8,%rax + incb %r10b + movl (%rdi,%r10,4),%r11d + cmpq %r10,%r12 + movl %r9d,(%rdi,%r12,4) + cmoveq %r9,%r11 + movl %r13d,(%rdi,%r8,4) + addb %r9b,%r13b + movb (%rdi,%r13,4),%al + addb %r11b,%r12b + movq %r10,%r8 + movl (%rdi,%r12,4),%r13d + rorq $8,%rax + incb %r8b + movl (%rdi,%r8,4),%r9d + cmpq %r8,%r12 + movl %r11d,(%rdi,%r12,4) + cmoveq %r11,%r9 + movl %r13d,(%rdi,%r10,4) + addb %r11b,%r13b + movb (%rdi,%r13,4),%al + addb %r9b,%r12b + movq %r8,%r10 + movl (%rdi,%r12,4),%r13d + rorq $8,%rax + incb %r10b + movl (%rdi,%r10,4),%r11d + cmpq %r10,%r12 + movl %r9d,(%rdi,%r12,4) + cmoveq %r9,%r11 + movl %r13d,(%rdi,%r8,4) + addb %r9b,%r13b + movb (%rdi,%r13,4),%al + addb %r11b,%r12b + movq %r10,%r8 + movl (%rdi,%r12,4),%r13d + rorq $8,%rax + incb %r8b + movl (%rdi,%r8,4),%r9d + cmpq %r8,%r12 + movl %r11d,(%rdi,%r12,4) + cmoveq %r11,%r9 + movl %r13d,(%rdi,%r10,4) + addb %r11b,%r13b + movb (%rdi,%r13,4),%al + addb %r9b,%r12b + movq %r8,%r10 + movl (%rdi,%r12,4),%r13d + rorq $8,%rax + incb %r10b + movl (%rdi,%r10,4),%r11d + cmpq %r10,%r12 + movl %r9d,(%rdi,%r12,4) + cmoveq %r9,%r11 + movl %r13d,(%rdi,%r8,4) + addb %r9b,%r13b + movb (%rdi,%r13,4),%al + addb %r11b,%r12b + movq %r10,%r8 + movl (%rdi,%r12,4),%r13d + rorq $8,%rax + incb %r8b + movl (%rdi,%r8,4),%r9d + cmpq %r8,%r12 + movl %r11d,(%rdi,%r12,4) + cmoveq %r11,%r9 + movl %r13d,(%rdi,%r10,4) + addb %r11b,%r13b + movb (%rdi,%r13,4),%al + addb %r9b,%r12b + movq %r8,%r10 + movl (%rdi,%r12,4),%r13d + rorq $8,%rax + incb %r10b + movl (%rdi,%r10,4),%r11d + cmpq %r10,%r12 + movl %r9d,(%rdi,%r12,4) + cmoveq %r9,%r11 + movl %r13d,(%rdi,%r8,4) + addb %r9b,%r13b + movb (%rdi,%r13,4),%al + addb %r11b,%r12b + movq %r10,%r8 + movl (%rdi,%r12,4),%r13d + rorq $8,%rax + incb %r8b + movl (%rdi,%r8,4),%r9d + cmpq %r8,%r12 + movl %r11d,(%rdi,%r12,4) + cmoveq %r11,%r9 + movl %r13d,(%rdi,%r10,4) + addb %r11b,%r13b + movb (%rdi,%r13,4),%al + rorq $8,%rax + subq $8,%rsi + + xorq (%rdx),%rax + addq $8,%rdx + movq %rax,(%rcx) + addq $8,%rcx + + testq $-8,%rsi + jnz .Lloop8 + cmpq $0,%rsi + jne .Lloop1 + jmp .Lexit + +.align 16 +.Lloop1: + addb %r9b,%r12b + movl (%rdi,%r12,4),%r13d + movl %r9d,(%rdi,%r12,4) + movl %r13d,(%rdi,%r8,4) + addb %r13b,%r9b + incb %r8b + movl (%rdi,%r9,4),%r13d + movl (%rdi,%r8,4),%r9d + xorb (%rdx),%r13b + incq %rdx + movb %r13b,(%rcx) + incq %rcx + decq %rsi + jnz .Lloop1 + jmp .Lexit + +.align 16 +.LRC4_CHAR: + addb $1,%r8b + movzbl (%rdi,%r8,1),%r9d + testq $-8,%rsi + jz .Lcloop1 + cmpl $0,260(%rdi) + jnz .Lcloop1 + jmp .Lcloop8 +.align 16 +.Lcloop8: + movl (%rdx),%eax + movl 4(%rdx),%ebx + addb %r9b,%r12b + leaq 1(%r8),%r10 + movzbl (%rdi,%r12,1),%r13d + movzbl %r10b,%r10d + movzbl (%rdi,%r10,1),%r11d + movb %r9b,(%rdi,%r12,1) + cmpq %r10,%r12 + movb %r13b,(%rdi,%r8,1) + jne .Lcmov0 + + movq %r9,%r11 +.Lcmov0: + addb %r9b,%r13b + xorb (%rdi,%r13,1),%al + rorl $8,%eax + addb %r11b,%r12b + leaq 1(%r10),%r8 + movzbl (%rdi,%r12,1),%r13d + movzbl %r8b,%r8d + movzbl (%rdi,%r8,1),%r9d + movb %r11b,(%rdi,%r12,1) + cmpq %r8,%r12 + movb %r13b,(%rdi,%r10,1) + jne .Lcmov1 + + movq %r11,%r9 +.Lcmov1: + addb %r11b,%r13b + xorb (%rdi,%r13,1),%al + rorl $8,%eax + addb %r9b,%r12b + leaq 1(%r8),%r10 + movzbl (%rdi,%r12,1),%r13d + movzbl %r10b,%r10d + movzbl (%rdi,%r10,1),%r11d + movb %r9b,(%rdi,%r12,1) + cmpq %r10,%r12 + movb %r13b,(%rdi,%r8,1) + jne .Lcmov2 + + movq %r9,%r11 +.Lcmov2: + addb %r9b,%r13b + xorb (%rdi,%r13,1),%al + rorl $8,%eax + addb %r11b,%r12b + leaq 1(%r10),%r8 + movzbl (%rdi,%r12,1),%r13d + movzbl %r8b,%r8d + movzbl (%rdi,%r8,1),%r9d + movb %r11b,(%rdi,%r12,1) + cmpq %r8,%r12 + movb %r13b,(%rdi,%r10,1) + jne .Lcmov3 + + movq %r11,%r9 +.Lcmov3: + addb %r11b,%r13b + xorb (%rdi,%r13,1),%al + rorl $8,%eax + addb %r9b,%r12b + leaq 1(%r8),%r10 + movzbl (%rdi,%r12,1),%r13d + movzbl %r10b,%r10d + movzbl (%rdi,%r10,1),%r11d + movb %r9b,(%rdi,%r12,1) + cmpq %r10,%r12 + movb %r13b,(%rdi,%r8,1) + jne .Lcmov4 + + movq %r9,%r11 +.Lcmov4: + addb %r9b,%r13b + xorb (%rdi,%r13,1),%bl + rorl $8,%ebx + addb %r11b,%r12b + leaq 1(%r10),%r8 + movzbl (%rdi,%r12,1),%r13d + movzbl %r8b,%r8d + movzbl (%rdi,%r8,1),%r9d + movb %r11b,(%rdi,%r12,1) + cmpq %r8,%r12 + movb %r13b,(%rdi,%r10,1) + jne .Lcmov5 + + movq %r11,%r9 +.Lcmov5: + addb %r11b,%r13b + xorb (%rdi,%r13,1),%bl + rorl $8,%ebx + addb %r9b,%r12b + leaq 1(%r8),%r10 + movzbl (%rdi,%r12,1),%r13d + movzbl %r10b,%r10d + movzbl (%rdi,%r10,1),%r11d + movb %r9b,(%rdi,%r12,1) + cmpq %r10,%r12 + movb %r13b,(%rdi,%r8,1) + jne .Lcmov6 + + movq %r9,%r11 +.Lcmov6: + addb %r9b,%r13b + xorb (%rdi,%r13,1),%bl + rorl $8,%ebx + addb %r11b,%r12b + leaq 1(%r10),%r8 + movzbl (%rdi,%r12,1),%r13d + movzbl %r8b,%r8d + movzbl (%rdi,%r8,1),%r9d + movb %r11b,(%rdi,%r12,1) + cmpq %r8,%r12 + movb %r13b,(%rdi,%r10,1) + jne .Lcmov7 + + movq %r11,%r9 +.Lcmov7: + addb %r11b,%r13b + xorb (%rdi,%r13,1),%bl + rorl $8,%ebx + leaq -8(%rsi),%rsi + movl %eax,(%rcx) + leaq 8(%rdx),%rdx + movl %ebx,4(%rcx) + leaq 8(%rcx),%rcx + + testq $-8,%rsi + jnz .Lcloop8 + cmpq $0,%rsi + jne .Lcloop1 + jmp .Lexit +.align 16 +.Lcloop1: + addb %r9b,%r12b + movzbl (%rdi,%r12,1),%r13d + movb %r9b,(%rdi,%r12,1) + movb %r13b,(%rdi,%r8,1) + addb %r9b,%r13b + addb $1,%r8b + movzbl %r13b,%r13d + movzbl %r8b,%r8d + movzbl (%rdi,%r13,1),%r13d + movzbl (%rdi,%r8,1),%r9d + xorb (%rdx),%r13b + leaq 1(%rdx),%rdx + movb %r13b,(%rcx) + leaq 1(%rcx),%rcx + subq $1,%rsi + jnz .Lcloop1 + jmp .Lexit + +.align 16 +.Lexit: + subb $1,%r8b + movl %r8d,-8(%rdi) + movl %r12d,-4(%rdi) + + movq (%rsp),%r13 + movq 8(%rsp),%r12 + movq 16(%rsp),%rbx + addq $24,%rsp +.Lepilogue: + .byte 0xf3,0xc3 +.size RC4,.-RC4 + +.globl RC4_set_key +.type RC4_set_key,@function +.align 16 +RC4_set_key: + leaq 8(%rdi),%rdi + leaq (%rdx,%rsi,1),%rdx + negq %rsi + movq %rsi,%rcx + xorl %eax,%eax + xorq %r9,%r9 + xorq %r10,%r10 + xorq %r11,%r11 + + movl OPENSSL_ia32cap_P(%rip),%r8d + btl $20,%r8d + jnc .Lw1stloop + btl $30,%r8d + setc %r9b + movl %r9d,260(%rdi) + jmp .Lc1stloop + +.align 16 +.Lw1stloop: + movl %eax,(%rdi,%rax,4) + addb $1,%al + jnc .Lw1stloop + + xorq %r9,%r9 + xorq %r8,%r8 +.align 16 +.Lw2ndloop: + movl (%rdi,%r9,4),%r10d + addb (%rdx,%rsi,1),%r8b + addb %r10b,%r8b + addq $1,%rsi + movl (%rdi,%r8,4),%r11d + cmovzq %rcx,%rsi + movl %r10d,(%rdi,%r8,4) + movl %r11d,(%rdi,%r9,4) + addb $1,%r9b + jnc .Lw2ndloop + jmp .Lexit_key + +.align 16 +.Lc1stloop: + movb %al,(%rdi,%rax,1) + addb $1,%al + jnc .Lc1stloop + + xorq %r9,%r9 + xorq %r8,%r8 +.align 16 +.Lc2ndloop: + movb (%rdi,%r9,1),%r10b + addb (%rdx,%rsi,1),%r8b + addb %r10b,%r8b + addq $1,%rsi + movb (%rdi,%r8,1),%r11b + jnz .Lcnowrap + movq %rcx,%rsi +.Lcnowrap: + movb %r10b,(%rdi,%r8,1) + movb %r11b,(%rdi,%r9,1) + addb $1,%r9b + jnc .Lc2ndloop + movl $-1,256(%rdi) + +.align 16 +.Lexit_key: + xorl %eax,%eax + movl %eax,-8(%rdi) + movl %eax,-4(%rdi) + .byte 0xf3,0xc3 +.size RC4_set_key,.-RC4_set_key + +.globl RC4_options +.type RC4_options,@function +.align 16 +RC4_options: + leaq .Lopts(%rip),%rax + movl OPENSSL_ia32cap_P(%rip),%edx + btl $20,%edx + jnc .Ldone + addq $12,%rax + btl $30,%edx + jnc .Ldone + addq $13,%rax +.Ldone: + .byte 0xf3,0xc3 +.align 64 +.Lopts: +.byte 114,99,52,40,56,120,44,105,110,116,41,0 +.byte 114,99,52,40,56,120,44,99,104,97,114,41,0 +.byte 114,99,52,40,49,120,44,99,104,97,114,41,0 +.byte 82,67,52,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 64 +.size RC4_options,.-RC4_options diff --git a/deps/openssl/asm/x64-elf-gas/sha/sha1-x86_64.s b/deps/openssl/asm/x64-elf-gas/sha/sha1-x86_64.s new file mode 100644 index 0000000000..208c2cdd26 --- /dev/null +++ b/deps/openssl/asm/x64-elf-gas/sha/sha1-x86_64.s @@ -0,0 +1,1283 @@ +.text + +.globl sha1_block_data_order +.type sha1_block_data_order,@function +.align 16 +sha1_block_data_order: + pushq %rbx + pushq %rbp + pushq %r12 + movq %rsp,%r11 + movq %rdi,%r8 + subq $72,%rsp + movq %rsi,%r9 + andq $-64,%rsp + movq %rdx,%r10 + movq %r11,64(%rsp) +.Lprologue: + + movl 0(%r8),%edx + movl 4(%r8),%esi + movl 8(%r8),%edi + movl 12(%r8),%ebp + movl 16(%r8),%r11d +.align 4 +.Lloop: + movl 0(%r9),%eax + bswapl %eax + movl %eax,0(%rsp) + leal 1518500249(%rax,%r11,1),%r12d + movl %edi,%ebx + movl 4(%r9),%eax + movl %edx,%r11d + xorl %ebp,%ebx + bswapl %eax + roll $5,%r11d + andl %esi,%ebx + movl %eax,4(%rsp) + addl %r11d,%r12d + xorl %ebp,%ebx + roll $30,%esi + addl %ebx,%r12d + leal 1518500249(%rax,%rbp,1),%r11d + movl %esi,%ebx + movl 8(%r9),%eax + movl %r12d,%ebp + xorl %edi,%ebx + bswapl %eax + roll $5,%ebp + andl %edx,%ebx + movl %eax,8(%rsp) + addl %ebp,%r11d + xorl %edi,%ebx + roll $30,%edx + addl %ebx,%r11d + leal 1518500249(%rax,%rdi,1),%ebp + movl %edx,%ebx + movl 12(%r9),%eax + movl %r11d,%edi + xorl %esi,%ebx + bswapl %eax + roll $5,%edi + andl %r12d,%ebx + movl %eax,12(%rsp) + addl %edi,%ebp + xorl %esi,%ebx + roll $30,%r12d + addl %ebx,%ebp + leal 1518500249(%rax,%rsi,1),%edi + movl %r12d,%ebx + movl 16(%r9),%eax + movl %ebp,%esi + xorl %edx,%ebx + bswapl %eax + roll $5,%esi + andl %r11d,%ebx + movl %eax,16(%rsp) + addl %esi,%edi + xorl %edx,%ebx + roll $30,%r11d + addl %ebx,%edi + leal 1518500249(%rax,%rdx,1),%esi + movl %r11d,%ebx + movl 20(%r9),%eax + movl %edi,%edx + xorl %r12d,%ebx + bswapl %eax + roll $5,%edx + andl %ebp,%ebx + movl %eax,20(%rsp) + addl %edx,%esi + xorl %r12d,%ebx + roll $30,%ebp + addl %ebx,%esi + leal 1518500249(%rax,%r12,1),%edx + movl %ebp,%ebx + movl 24(%r9),%eax + movl %esi,%r12d + xorl %r11d,%ebx + bswapl %eax + roll $5,%r12d + andl %edi,%ebx + movl %eax,24(%rsp) + addl %r12d,%edx + xorl %r11d,%ebx + roll $30,%edi + addl %ebx,%edx + leal 1518500249(%rax,%r11,1),%r12d + movl %edi,%ebx + movl 28(%r9),%eax + movl %edx,%r11d + xorl %ebp,%ebx + bswapl %eax + roll $5,%r11d + andl %esi,%ebx + movl %eax,28(%rsp) + addl %r11d,%r12d + xorl %ebp,%ebx + roll $30,%esi + addl %ebx,%r12d + leal 1518500249(%rax,%rbp,1),%r11d + movl %esi,%ebx + movl 32(%r9),%eax + movl %r12d,%ebp + xorl %edi,%ebx + bswapl %eax + roll $5,%ebp + andl %edx,%ebx + movl %eax,32(%rsp) + addl %ebp,%r11d + xorl %edi,%ebx + roll $30,%edx + addl %ebx,%r11d + leal 1518500249(%rax,%rdi,1),%ebp + movl %edx,%ebx + movl 36(%r9),%eax + movl %r11d,%edi + xorl %esi,%ebx + bswapl %eax + roll $5,%edi + andl %r12d,%ebx + movl %eax,36(%rsp) + addl %edi,%ebp + xorl %esi,%ebx + roll $30,%r12d + addl %ebx,%ebp + leal 1518500249(%rax,%rsi,1),%edi + movl %r12d,%ebx + movl 40(%r9),%eax + movl %ebp,%esi + xorl %edx,%ebx + bswapl %eax + roll $5,%esi + andl %r11d,%ebx + movl %eax,40(%rsp) + addl %esi,%edi + xorl %edx,%ebx + roll $30,%r11d + addl %ebx,%edi + leal 1518500249(%rax,%rdx,1),%esi + movl %r11d,%ebx + movl 44(%r9),%eax + movl %edi,%edx + xorl %r12d,%ebx + bswapl %eax + roll $5,%edx + andl %ebp,%ebx + movl %eax,44(%rsp) + addl %edx,%esi + xorl %r12d,%ebx + roll $30,%ebp + addl %ebx,%esi + leal 1518500249(%rax,%r12,1),%edx + movl %ebp,%ebx + movl 48(%r9),%eax + movl %esi,%r12d + xorl %r11d,%ebx + bswapl %eax + roll $5,%r12d + andl %edi,%ebx + movl %eax,48(%rsp) + addl %r12d,%edx + xorl %r11d,%ebx + roll $30,%edi + addl %ebx,%edx + leal 1518500249(%rax,%r11,1),%r12d + movl %edi,%ebx + movl 52(%r9),%eax + movl %edx,%r11d + xorl %ebp,%ebx + bswapl %eax + roll $5,%r11d + andl %esi,%ebx + movl %eax,52(%rsp) + addl %r11d,%r12d + xorl %ebp,%ebx + roll $30,%esi + addl %ebx,%r12d + leal 1518500249(%rax,%rbp,1),%r11d + movl %esi,%ebx + movl 56(%r9),%eax + movl %r12d,%ebp + xorl %edi,%ebx + bswapl %eax + roll $5,%ebp + andl %edx,%ebx + movl %eax,56(%rsp) + addl %ebp,%r11d + xorl %edi,%ebx + roll $30,%edx + addl %ebx,%r11d + leal 1518500249(%rax,%rdi,1),%ebp + movl %edx,%ebx + movl 60(%r9),%eax + movl %r11d,%edi + xorl %esi,%ebx + bswapl %eax + roll $5,%edi + andl %r12d,%ebx + movl %eax,60(%rsp) + addl %edi,%ebp + xorl %esi,%ebx + roll $30,%r12d + addl %ebx,%ebp + leal 1518500249(%rax,%rsi,1),%edi + movl 0(%rsp),%eax + movl %r12d,%ebx + movl %ebp,%esi + xorl 8(%rsp),%eax + xorl %edx,%ebx + roll $5,%esi + xorl 32(%rsp),%eax + andl %r11d,%ebx + addl %esi,%edi + xorl 52(%rsp),%eax + xorl %edx,%ebx + roll $30,%r11d + addl %ebx,%edi + roll $1,%eax + movl %eax,0(%rsp) + leal 1518500249(%rax,%rdx,1),%esi + movl 4(%rsp),%eax + movl %r11d,%ebx + movl %edi,%edx + xorl 12(%rsp),%eax + xorl %r12d,%ebx + roll $5,%edx + xorl 36(%rsp),%eax + andl %ebp,%ebx + addl %edx,%esi + xorl 56(%rsp),%eax + xorl %r12d,%ebx + roll $30,%ebp + addl %ebx,%esi + roll $1,%eax + movl %eax,4(%rsp) + leal 1518500249(%rax,%r12,1),%edx + movl 8(%rsp),%eax + movl %ebp,%ebx + movl %esi,%r12d + xorl 16(%rsp),%eax + xorl %r11d,%ebx + roll $5,%r12d + xorl 40(%rsp),%eax + andl %edi,%ebx + addl %r12d,%edx + xorl 60(%rsp),%eax + xorl %r11d,%ebx + roll $30,%edi + addl %ebx,%edx + roll $1,%eax + movl %eax,8(%rsp) + leal 1518500249(%rax,%r11,1),%r12d + movl 12(%rsp),%eax + movl %edi,%ebx + movl %edx,%r11d + xorl 20(%rsp),%eax + xorl %ebp,%ebx + roll $5,%r11d + xorl 44(%rsp),%eax + andl %esi,%ebx + addl %r11d,%r12d + xorl 0(%rsp),%eax + xorl %ebp,%ebx + roll $30,%esi + addl %ebx,%r12d + roll $1,%eax + movl %eax,12(%rsp) + leal 1518500249(%rax,%rbp,1),%r11d + movl 16(%rsp),%eax + movl %esi,%ebx + movl %r12d,%ebp + xorl 24(%rsp),%eax + xorl %edi,%ebx + roll $5,%ebp + xorl 48(%rsp),%eax + andl %edx,%ebx + addl %ebp,%r11d + xorl 4(%rsp),%eax + xorl %edi,%ebx + roll $30,%edx + addl %ebx,%r11d + roll $1,%eax + movl %eax,16(%rsp) + leal 1859775393(%rax,%rdi,1),%ebp + movl 20(%rsp),%eax + movl %edx,%ebx + movl %r11d,%edi + xorl 28(%rsp),%eax + xorl %r12d,%ebx + roll $5,%edi + xorl 52(%rsp),%eax + xorl %esi,%ebx + addl %edi,%ebp + xorl 8(%rsp),%eax + roll $30,%r12d + addl %ebx,%ebp + roll $1,%eax + movl %eax,20(%rsp) + leal 1859775393(%rax,%rsi,1),%edi + movl 24(%rsp),%eax + movl %r12d,%ebx + movl %ebp,%esi + xorl 32(%rsp),%eax + xorl %r11d,%ebx + roll $5,%esi + xorl 56(%rsp),%eax + xorl %edx,%ebx + addl %esi,%edi + xorl 12(%rsp),%eax + roll $30,%r11d + addl %ebx,%edi + roll $1,%eax + movl %eax,24(%rsp) + leal 1859775393(%rax,%rdx,1),%esi + movl 28(%rsp),%eax + movl %r11d,%ebx + movl %edi,%edx + xorl 36(%rsp),%eax + xorl %ebp,%ebx + roll $5,%edx + xorl 60(%rsp),%eax + xorl %r12d,%ebx + addl %edx,%esi + xorl 16(%rsp),%eax + roll $30,%ebp + addl %ebx,%esi + roll $1,%eax + movl %eax,28(%rsp) + leal 1859775393(%rax,%r12,1),%edx + movl 32(%rsp),%eax + movl %ebp,%ebx + movl %esi,%r12d + xorl 40(%rsp),%eax + xorl %edi,%ebx + roll $5,%r12d + xorl 0(%rsp),%eax + xorl %r11d,%ebx + addl %r12d,%edx + xorl 20(%rsp),%eax + roll $30,%edi + addl %ebx,%edx + roll $1,%eax + movl %eax,32(%rsp) + leal 1859775393(%rax,%r11,1),%r12d + movl 36(%rsp),%eax + movl %edi,%ebx + movl %edx,%r11d + xorl 44(%rsp),%eax + xorl %esi,%ebx + roll $5,%r11d + xorl 4(%rsp),%eax + xorl %ebp,%ebx + addl %r11d,%r12d + xorl 24(%rsp),%eax + roll $30,%esi + addl %ebx,%r12d + roll $1,%eax + movl %eax,36(%rsp) + leal 1859775393(%rax,%rbp,1),%r11d + movl 40(%rsp),%eax + movl %esi,%ebx + movl %r12d,%ebp + xorl 48(%rsp),%eax + xorl %edx,%ebx + roll $5,%ebp + xorl 8(%rsp),%eax + xorl %edi,%ebx + addl %ebp,%r11d + xorl 28(%rsp),%eax + roll $30,%edx + addl %ebx,%r11d + roll $1,%eax + movl %eax,40(%rsp) + leal 1859775393(%rax,%rdi,1),%ebp + movl 44(%rsp),%eax + movl %edx,%ebx + movl %r11d,%edi + xorl 52(%rsp),%eax + xorl %r12d,%ebx + roll $5,%edi + xorl 12(%rsp),%eax + xorl %esi,%ebx + addl %edi,%ebp + xorl 32(%rsp),%eax + roll $30,%r12d + addl %ebx,%ebp + roll $1,%eax + movl %eax,44(%rsp) + leal 1859775393(%rax,%rsi,1),%edi + movl 48(%rsp),%eax + movl %r12d,%ebx + movl %ebp,%esi + xorl 56(%rsp),%eax + xorl %r11d,%ebx + roll $5,%esi + xorl 16(%rsp),%eax + xorl %edx,%ebx + addl %esi,%edi + xorl 36(%rsp),%eax + roll $30,%r11d + addl %ebx,%edi + roll $1,%eax + movl %eax,48(%rsp) + leal 1859775393(%rax,%rdx,1),%esi + movl 52(%rsp),%eax + movl %r11d,%ebx + movl %edi,%edx + xorl 60(%rsp),%eax + xorl %ebp,%ebx + roll $5,%edx + xorl 20(%rsp),%eax + xorl %r12d,%ebx + addl %edx,%esi + xorl 40(%rsp),%eax + roll $30,%ebp + addl %ebx,%esi + roll $1,%eax + movl %eax,52(%rsp) + leal 1859775393(%rax,%r12,1),%edx + movl 56(%rsp),%eax + movl %ebp,%ebx + movl %esi,%r12d + xorl 0(%rsp),%eax + xorl %edi,%ebx + roll $5,%r12d + xorl 24(%rsp),%eax + xorl %r11d,%ebx + addl %r12d,%edx + xorl 44(%rsp),%eax + roll $30,%edi + addl %ebx,%edx + roll $1,%eax + movl %eax,56(%rsp) + leal 1859775393(%rax,%r11,1),%r12d + movl 60(%rsp),%eax + movl %edi,%ebx + movl %edx,%r11d + xorl 4(%rsp),%eax + xorl %esi,%ebx + roll $5,%r11d + xorl 28(%rsp),%eax + xorl %ebp,%ebx + addl %r11d,%r12d + xorl 48(%rsp),%eax + roll $30,%esi + addl %ebx,%r12d + roll $1,%eax + movl %eax,60(%rsp) + leal 1859775393(%rax,%rbp,1),%r11d + movl 0(%rsp),%eax + movl %esi,%ebx + movl %r12d,%ebp + xorl 8(%rsp),%eax + xorl %edx,%ebx + roll $5,%ebp + xorl 32(%rsp),%eax + xorl %edi,%ebx + addl %ebp,%r11d + xorl 52(%rsp),%eax + roll $30,%edx + addl %ebx,%r11d + roll $1,%eax + movl %eax,0(%rsp) + leal 1859775393(%rax,%rdi,1),%ebp + movl 4(%rsp),%eax + movl %edx,%ebx + movl %r11d,%edi + xorl 12(%rsp),%eax + xorl %r12d,%ebx + roll $5,%edi + xorl 36(%rsp),%eax + xorl %esi,%ebx + addl %edi,%ebp + xorl 56(%rsp),%eax + roll $30,%r12d + addl %ebx,%ebp + roll $1,%eax + movl %eax,4(%rsp) + leal 1859775393(%rax,%rsi,1),%edi + movl 8(%rsp),%eax + movl %r12d,%ebx + movl %ebp,%esi + xorl 16(%rsp),%eax + xorl %r11d,%ebx + roll $5,%esi + xorl 40(%rsp),%eax + xorl %edx,%ebx + addl %esi,%edi + xorl 60(%rsp),%eax + roll $30,%r11d + addl %ebx,%edi + roll $1,%eax + movl %eax,8(%rsp) + leal 1859775393(%rax,%rdx,1),%esi + movl 12(%rsp),%eax + movl %r11d,%ebx + movl %edi,%edx + xorl 20(%rsp),%eax + xorl %ebp,%ebx + roll $5,%edx + xorl 44(%rsp),%eax + xorl %r12d,%ebx + addl %edx,%esi + xorl 0(%rsp),%eax + roll $30,%ebp + addl %ebx,%esi + roll $1,%eax + movl %eax,12(%rsp) + leal 1859775393(%rax,%r12,1),%edx + movl 16(%rsp),%eax + movl %ebp,%ebx + movl %esi,%r12d + xorl 24(%rsp),%eax + xorl %edi,%ebx + roll $5,%r12d + xorl 48(%rsp),%eax + xorl %r11d,%ebx + addl %r12d,%edx + xorl 4(%rsp),%eax + roll $30,%edi + addl %ebx,%edx + roll $1,%eax + movl %eax,16(%rsp) + leal 1859775393(%rax,%r11,1),%r12d + movl 20(%rsp),%eax + movl %edi,%ebx + movl %edx,%r11d + xorl 28(%rsp),%eax + xorl %esi,%ebx + roll $5,%r11d + xorl 52(%rsp),%eax + xorl %ebp,%ebx + addl %r11d,%r12d + xorl 8(%rsp),%eax + roll $30,%esi + addl %ebx,%r12d + roll $1,%eax + movl %eax,20(%rsp) + leal 1859775393(%rax,%rbp,1),%r11d + movl 24(%rsp),%eax + movl %esi,%ebx + movl %r12d,%ebp + xorl 32(%rsp),%eax + xorl %edx,%ebx + roll $5,%ebp + xorl 56(%rsp),%eax + xorl %edi,%ebx + addl %ebp,%r11d + xorl 12(%rsp),%eax + roll $30,%edx + addl %ebx,%r11d + roll $1,%eax + movl %eax,24(%rsp) + leal 1859775393(%rax,%rdi,1),%ebp + movl 28(%rsp),%eax + movl %edx,%ebx + movl %r11d,%edi + xorl 36(%rsp),%eax + xorl %r12d,%ebx + roll $5,%edi + xorl 60(%rsp),%eax + xorl %esi,%ebx + addl %edi,%ebp + xorl 16(%rsp),%eax + roll $30,%r12d + addl %ebx,%ebp + roll $1,%eax + movl %eax,28(%rsp) + leal 1859775393(%rax,%rsi,1),%edi + movl 32(%rsp),%eax + movl %r12d,%ebx + movl %ebp,%esi + xorl 40(%rsp),%eax + xorl %r11d,%ebx + roll $5,%esi + xorl 0(%rsp),%eax + xorl %edx,%ebx + addl %esi,%edi + xorl 20(%rsp),%eax + roll $30,%r11d + addl %ebx,%edi + roll $1,%eax + movl %eax,32(%rsp) + leal -1894007588(%rax,%rdx,1),%esi + movl 36(%rsp),%eax + movl %ebp,%ebx + movl %ebp,%ecx + xorl 44(%rsp),%eax + movl %edi,%edx + andl %r11d,%ebx + xorl 4(%rsp),%eax + orl %r11d,%ecx + roll $5,%edx + xorl 24(%rsp),%eax + andl %r12d,%ecx + addl %edx,%esi + roll $1,%eax + orl %ecx,%ebx + roll $30,%ebp + movl %eax,36(%rsp) + addl %ebx,%esi + leal -1894007588(%rax,%r12,1),%edx + movl 40(%rsp),%eax + movl %edi,%ebx + movl %edi,%ecx + xorl 48(%rsp),%eax + movl %esi,%r12d + andl %ebp,%ebx + xorl 8(%rsp),%eax + orl %ebp,%ecx + roll $5,%r12d + xorl 28(%rsp),%eax + andl %r11d,%ecx + addl %r12d,%edx + roll $1,%eax + orl %ecx,%ebx + roll $30,%edi + movl %eax,40(%rsp) + addl %ebx,%edx + leal -1894007588(%rax,%r11,1),%r12d + movl 44(%rsp),%eax + movl %esi,%ebx + movl %esi,%ecx + xorl 52(%rsp),%eax + movl %edx,%r11d + andl %edi,%ebx + xorl 12(%rsp),%eax + orl %edi,%ecx + roll $5,%r11d + xorl 32(%rsp),%eax + andl %ebp,%ecx + addl %r11d,%r12d + roll $1,%eax + orl %ecx,%ebx + roll $30,%esi + movl %eax,44(%rsp) + addl %ebx,%r12d + leal -1894007588(%rax,%rbp,1),%r11d + movl 48(%rsp),%eax + movl %edx,%ebx + movl %edx,%ecx + xorl 56(%rsp),%eax + movl %r12d,%ebp + andl %esi,%ebx + xorl 16(%rsp),%eax + orl %esi,%ecx + roll $5,%ebp + xorl 36(%rsp),%eax + andl %edi,%ecx + addl %ebp,%r11d + roll $1,%eax + orl %ecx,%ebx + roll $30,%edx + movl %eax,48(%rsp) + addl %ebx,%r11d + leal -1894007588(%rax,%rdi,1),%ebp + movl 52(%rsp),%eax + movl %r12d,%ebx + movl %r12d,%ecx + xorl 60(%rsp),%eax + movl %r11d,%edi + andl %edx,%ebx + xorl 20(%rsp),%eax + orl %edx,%ecx + roll $5,%edi + xorl 40(%rsp),%eax + andl %esi,%ecx + addl %edi,%ebp + roll $1,%eax + orl %ecx,%ebx + roll $30,%r12d + movl %eax,52(%rsp) + addl %ebx,%ebp + leal -1894007588(%rax,%rsi,1),%edi + movl 56(%rsp),%eax + movl %r11d,%ebx + movl %r11d,%ecx + xorl 0(%rsp),%eax + movl %ebp,%esi + andl %r12d,%ebx + xorl 24(%rsp),%eax + orl %r12d,%ecx + roll $5,%esi + xorl 44(%rsp),%eax + andl %edx,%ecx + addl %esi,%edi + roll $1,%eax + orl %ecx,%ebx + roll $30,%r11d + movl %eax,56(%rsp) + addl %ebx,%edi + leal -1894007588(%rax,%rdx,1),%esi + movl 60(%rsp),%eax + movl %ebp,%ebx + movl %ebp,%ecx + xorl 4(%rsp),%eax + movl %edi,%edx + andl %r11d,%ebx + xorl 28(%rsp),%eax + orl %r11d,%ecx + roll $5,%edx + xorl 48(%rsp),%eax + andl %r12d,%ecx + addl %edx,%esi + roll $1,%eax + orl %ecx,%ebx + roll $30,%ebp + movl %eax,60(%rsp) + addl %ebx,%esi + leal -1894007588(%rax,%r12,1),%edx + movl 0(%rsp),%eax + movl %edi,%ebx + movl %edi,%ecx + xorl 8(%rsp),%eax + movl %esi,%r12d + andl %ebp,%ebx + xorl 32(%rsp),%eax + orl %ebp,%ecx + roll $5,%r12d + xorl 52(%rsp),%eax + andl %r11d,%ecx + addl %r12d,%edx + roll $1,%eax + orl %ecx,%ebx + roll $30,%edi + movl %eax,0(%rsp) + addl %ebx,%edx + leal -1894007588(%rax,%r11,1),%r12d + movl 4(%rsp),%eax + movl %esi,%ebx + movl %esi,%ecx + xorl 12(%rsp),%eax + movl %edx,%r11d + andl %edi,%ebx + xorl 36(%rsp),%eax + orl %edi,%ecx + roll $5,%r11d + xorl 56(%rsp),%eax + andl %ebp,%ecx + addl %r11d,%r12d + roll $1,%eax + orl %ecx,%ebx + roll $30,%esi + movl %eax,4(%rsp) + addl %ebx,%r12d + leal -1894007588(%rax,%rbp,1),%r11d + movl 8(%rsp),%eax + movl %edx,%ebx + movl %edx,%ecx + xorl 16(%rsp),%eax + movl %r12d,%ebp + andl %esi,%ebx + xorl 40(%rsp),%eax + orl %esi,%ecx + roll $5,%ebp + xorl 60(%rsp),%eax + andl %edi,%ecx + addl %ebp,%r11d + roll $1,%eax + orl %ecx,%ebx + roll $30,%edx + movl %eax,8(%rsp) + addl %ebx,%r11d + leal -1894007588(%rax,%rdi,1),%ebp + movl 12(%rsp),%eax + movl %r12d,%ebx + movl %r12d,%ecx + xorl 20(%rsp),%eax + movl %r11d,%edi + andl %edx,%ebx + xorl 44(%rsp),%eax + orl %edx,%ecx + roll $5,%edi + xorl 0(%rsp),%eax + andl %esi,%ecx + addl %edi,%ebp + roll $1,%eax + orl %ecx,%ebx + roll $30,%r12d + movl %eax,12(%rsp) + addl %ebx,%ebp + leal -1894007588(%rax,%rsi,1),%edi + movl 16(%rsp),%eax + movl %r11d,%ebx + movl %r11d,%ecx + xorl 24(%rsp),%eax + movl %ebp,%esi + andl %r12d,%ebx + xorl 48(%rsp),%eax + orl %r12d,%ecx + roll $5,%esi + xorl 4(%rsp),%eax + andl %edx,%ecx + addl %esi,%edi + roll $1,%eax + orl %ecx,%ebx + roll $30,%r11d + movl %eax,16(%rsp) + addl %ebx,%edi + leal -1894007588(%rax,%rdx,1),%esi + movl 20(%rsp),%eax + movl %ebp,%ebx + movl %ebp,%ecx + xorl 28(%rsp),%eax + movl %edi,%edx + andl %r11d,%ebx + xorl 52(%rsp),%eax + orl %r11d,%ecx + roll $5,%edx + xorl 8(%rsp),%eax + andl %r12d,%ecx + addl %edx,%esi + roll $1,%eax + orl %ecx,%ebx + roll $30,%ebp + movl %eax,20(%rsp) + addl %ebx,%esi + leal -1894007588(%rax,%r12,1),%edx + movl 24(%rsp),%eax + movl %edi,%ebx + movl %edi,%ecx + xorl 32(%rsp),%eax + movl %esi,%r12d + andl %ebp,%ebx + xorl 56(%rsp),%eax + orl %ebp,%ecx + roll $5,%r12d + xorl 12(%rsp),%eax + andl %r11d,%ecx + addl %r12d,%edx + roll $1,%eax + orl %ecx,%ebx + roll $30,%edi + movl %eax,24(%rsp) + addl %ebx,%edx + leal -1894007588(%rax,%r11,1),%r12d + movl 28(%rsp),%eax + movl %esi,%ebx + movl %esi,%ecx + xorl 36(%rsp),%eax + movl %edx,%r11d + andl %edi,%ebx + xorl 60(%rsp),%eax + orl %edi,%ecx + roll $5,%r11d + xorl 16(%rsp),%eax + andl %ebp,%ecx + addl %r11d,%r12d + roll $1,%eax + orl %ecx,%ebx + roll $30,%esi + movl %eax,28(%rsp) + addl %ebx,%r12d + leal -1894007588(%rax,%rbp,1),%r11d + movl 32(%rsp),%eax + movl %edx,%ebx + movl %edx,%ecx + xorl 40(%rsp),%eax + movl %r12d,%ebp + andl %esi,%ebx + xorl 0(%rsp),%eax + orl %esi,%ecx + roll $5,%ebp + xorl 20(%rsp),%eax + andl %edi,%ecx + addl %ebp,%r11d + roll $1,%eax + orl %ecx,%ebx + roll $30,%edx + movl %eax,32(%rsp) + addl %ebx,%r11d + leal -1894007588(%rax,%rdi,1),%ebp + movl 36(%rsp),%eax + movl %r12d,%ebx + movl %r12d,%ecx + xorl 44(%rsp),%eax + movl %r11d,%edi + andl %edx,%ebx + xorl 4(%rsp),%eax + orl %edx,%ecx + roll $5,%edi + xorl 24(%rsp),%eax + andl %esi,%ecx + addl %edi,%ebp + roll $1,%eax + orl %ecx,%ebx + roll $30,%r12d + movl %eax,36(%rsp) + addl %ebx,%ebp + leal -1894007588(%rax,%rsi,1),%edi + movl 40(%rsp),%eax + movl %r11d,%ebx + movl %r11d,%ecx + xorl 48(%rsp),%eax + movl %ebp,%esi + andl %r12d,%ebx + xorl 8(%rsp),%eax + orl %r12d,%ecx + roll $5,%esi + xorl 28(%rsp),%eax + andl %edx,%ecx + addl %esi,%edi + roll $1,%eax + orl %ecx,%ebx + roll $30,%r11d + movl %eax,40(%rsp) + addl %ebx,%edi + leal -1894007588(%rax,%rdx,1),%esi + movl 44(%rsp),%eax + movl %ebp,%ebx + movl %ebp,%ecx + xorl 52(%rsp),%eax + movl %edi,%edx + andl %r11d,%ebx + xorl 12(%rsp),%eax + orl %r11d,%ecx + roll $5,%edx + xorl 32(%rsp),%eax + andl %r12d,%ecx + addl %edx,%esi + roll $1,%eax + orl %ecx,%ebx + roll $30,%ebp + movl %eax,44(%rsp) + addl %ebx,%esi + leal -1894007588(%rax,%r12,1),%edx + movl 48(%rsp),%eax + movl %edi,%ebx + movl %edi,%ecx + xorl 56(%rsp),%eax + movl %esi,%r12d + andl %ebp,%ebx + xorl 16(%rsp),%eax + orl %ebp,%ecx + roll $5,%r12d + xorl 36(%rsp),%eax + andl %r11d,%ecx + addl %r12d,%edx + roll $1,%eax + orl %ecx,%ebx + roll $30,%edi + movl %eax,48(%rsp) + addl %ebx,%edx + leal -899497514(%rax,%r11,1),%r12d + movl 52(%rsp),%eax + movl %edi,%ebx + movl %edx,%r11d + xorl 60(%rsp),%eax + xorl %esi,%ebx + roll $5,%r11d + xorl 20(%rsp),%eax + xorl %ebp,%ebx + addl %r11d,%r12d + xorl 40(%rsp),%eax + roll $30,%esi + addl %ebx,%r12d + roll $1,%eax + movl %eax,52(%rsp) + leal -899497514(%rax,%rbp,1),%r11d + movl 56(%rsp),%eax + movl %esi,%ebx + movl %r12d,%ebp + xorl 0(%rsp),%eax + xorl %edx,%ebx + roll $5,%ebp + xorl 24(%rsp),%eax + xorl %edi,%ebx + addl %ebp,%r11d + xorl 44(%rsp),%eax + roll $30,%edx + addl %ebx,%r11d + roll $1,%eax + movl %eax,56(%rsp) + leal -899497514(%rax,%rdi,1),%ebp + movl 60(%rsp),%eax + movl %edx,%ebx + movl %r11d,%edi + xorl 4(%rsp),%eax + xorl %r12d,%ebx + roll $5,%edi + xorl 28(%rsp),%eax + xorl %esi,%ebx + addl %edi,%ebp + xorl 48(%rsp),%eax + roll $30,%r12d + addl %ebx,%ebp + roll $1,%eax + movl %eax,60(%rsp) + leal -899497514(%rax,%rsi,1),%edi + movl 0(%rsp),%eax + movl %r12d,%ebx + movl %ebp,%esi + xorl 8(%rsp),%eax + xorl %r11d,%ebx + roll $5,%esi + xorl 32(%rsp),%eax + xorl %edx,%ebx + addl %esi,%edi + xorl 52(%rsp),%eax + roll $30,%r11d + addl %ebx,%edi + roll $1,%eax + movl %eax,0(%rsp) + leal -899497514(%rax,%rdx,1),%esi + movl 4(%rsp),%eax + movl %r11d,%ebx + movl %edi,%edx + xorl 12(%rsp),%eax + xorl %ebp,%ebx + roll $5,%edx + xorl 36(%rsp),%eax + xorl %r12d,%ebx + addl %edx,%esi + xorl 56(%rsp),%eax + roll $30,%ebp + addl %ebx,%esi + roll $1,%eax + movl %eax,4(%rsp) + leal -899497514(%rax,%r12,1),%edx + movl 8(%rsp),%eax + movl %ebp,%ebx + movl %esi,%r12d + xorl 16(%rsp),%eax + xorl %edi,%ebx + roll $5,%r12d + xorl 40(%rsp),%eax + xorl %r11d,%ebx + addl %r12d,%edx + xorl 60(%rsp),%eax + roll $30,%edi + addl %ebx,%edx + roll $1,%eax + movl %eax,8(%rsp) + leal -899497514(%rax,%r11,1),%r12d + movl 12(%rsp),%eax + movl %edi,%ebx + movl %edx,%r11d + xorl 20(%rsp),%eax + xorl %esi,%ebx + roll $5,%r11d + xorl 44(%rsp),%eax + xorl %ebp,%ebx + addl %r11d,%r12d + xorl 0(%rsp),%eax + roll $30,%esi + addl %ebx,%r12d + roll $1,%eax + movl %eax,12(%rsp) + leal -899497514(%rax,%rbp,1),%r11d + movl 16(%rsp),%eax + movl %esi,%ebx + movl %r12d,%ebp + xorl 24(%rsp),%eax + xorl %edx,%ebx + roll $5,%ebp + xorl 48(%rsp),%eax + xorl %edi,%ebx + addl %ebp,%r11d + xorl 4(%rsp),%eax + roll $30,%edx + addl %ebx,%r11d + roll $1,%eax + movl %eax,16(%rsp) + leal -899497514(%rax,%rdi,1),%ebp + movl 20(%rsp),%eax + movl %edx,%ebx + movl %r11d,%edi + xorl 28(%rsp),%eax + xorl %r12d,%ebx + roll $5,%edi + xorl 52(%rsp),%eax + xorl %esi,%ebx + addl %edi,%ebp + xorl 8(%rsp),%eax + roll $30,%r12d + addl %ebx,%ebp + roll $1,%eax + movl %eax,20(%rsp) + leal -899497514(%rax,%rsi,1),%edi + movl 24(%rsp),%eax + movl %r12d,%ebx + movl %ebp,%esi + xorl 32(%rsp),%eax + xorl %r11d,%ebx + roll $5,%esi + xorl 56(%rsp),%eax + xorl %edx,%ebx + addl %esi,%edi + xorl 12(%rsp),%eax + roll $30,%r11d + addl %ebx,%edi + roll $1,%eax + movl %eax,24(%rsp) + leal -899497514(%rax,%rdx,1),%esi + movl 28(%rsp),%eax + movl %r11d,%ebx + movl %edi,%edx + xorl 36(%rsp),%eax + xorl %ebp,%ebx + roll $5,%edx + xorl 60(%rsp),%eax + xorl %r12d,%ebx + addl %edx,%esi + xorl 16(%rsp),%eax + roll $30,%ebp + addl %ebx,%esi + roll $1,%eax + movl %eax,28(%rsp) + leal -899497514(%rax,%r12,1),%edx + movl 32(%rsp),%eax + movl %ebp,%ebx + movl %esi,%r12d + xorl 40(%rsp),%eax + xorl %edi,%ebx + roll $5,%r12d + xorl 0(%rsp),%eax + xorl %r11d,%ebx + addl %r12d,%edx + xorl 20(%rsp),%eax + roll $30,%edi + addl %ebx,%edx + roll $1,%eax + movl %eax,32(%rsp) + leal -899497514(%rax,%r11,1),%r12d + movl 36(%rsp),%eax + movl %edi,%ebx + movl %edx,%r11d + xorl 44(%rsp),%eax + xorl %esi,%ebx + roll $5,%r11d + xorl 4(%rsp),%eax + xorl %ebp,%ebx + addl %r11d,%r12d + xorl 24(%rsp),%eax + roll $30,%esi + addl %ebx,%r12d + roll $1,%eax + movl %eax,36(%rsp) + leal -899497514(%rax,%rbp,1),%r11d + movl 40(%rsp),%eax + movl %esi,%ebx + movl %r12d,%ebp + xorl 48(%rsp),%eax + xorl %edx,%ebx + roll $5,%ebp + xorl 8(%rsp),%eax + xorl %edi,%ebx + addl %ebp,%r11d + xorl 28(%rsp),%eax + roll $30,%edx + addl %ebx,%r11d + roll $1,%eax + movl %eax,40(%rsp) + leal -899497514(%rax,%rdi,1),%ebp + movl 44(%rsp),%eax + movl %edx,%ebx + movl %r11d,%edi + xorl 52(%rsp),%eax + xorl %r12d,%ebx + roll $5,%edi + xorl 12(%rsp),%eax + xorl %esi,%ebx + addl %edi,%ebp + xorl 32(%rsp),%eax + roll $30,%r12d + addl %ebx,%ebp + roll $1,%eax + movl %eax,44(%rsp) + leal -899497514(%rax,%rsi,1),%edi + movl 48(%rsp),%eax + movl %r12d,%ebx + movl %ebp,%esi + xorl 56(%rsp),%eax + xorl %r11d,%ebx + roll $5,%esi + xorl 16(%rsp),%eax + xorl %edx,%ebx + addl %esi,%edi + xorl 36(%rsp),%eax + roll $30,%r11d + addl %ebx,%edi + roll $1,%eax + movl %eax,48(%rsp) + leal -899497514(%rax,%rdx,1),%esi + movl 52(%rsp),%eax + movl %r11d,%ebx + movl %edi,%edx + xorl 60(%rsp),%eax + xorl %ebp,%ebx + roll $5,%edx + xorl 20(%rsp),%eax + xorl %r12d,%ebx + addl %edx,%esi + xorl 40(%rsp),%eax + roll $30,%ebp + addl %ebx,%esi + roll $1,%eax + leal -899497514(%rax,%r12,1),%edx + movl 56(%rsp),%eax + movl %ebp,%ebx + movl %esi,%r12d + xorl 0(%rsp),%eax + xorl %edi,%ebx + roll $5,%r12d + xorl 24(%rsp),%eax + xorl %r11d,%ebx + addl %r12d,%edx + xorl 44(%rsp),%eax + roll $30,%edi + addl %ebx,%edx + roll $1,%eax + leal -899497514(%rax,%r11,1),%r12d + movl 60(%rsp),%eax + movl %edi,%ebx + movl %edx,%r11d + xorl 4(%rsp),%eax + xorl %esi,%ebx + roll $5,%r11d + xorl 28(%rsp),%eax + xorl %ebp,%ebx + addl %r11d,%r12d + xorl 48(%rsp),%eax + roll $30,%esi + addl %ebx,%r12d + roll $1,%eax + leal -899497514(%rax,%rbp,1),%r11d + movl %esi,%ebx + movl %r12d,%ebp + xorl %edx,%ebx + roll $5,%ebp + xorl %edi,%ebx + addl %ebp,%r11d + roll $30,%edx + addl %ebx,%r11d + addl 0(%r8),%r11d + addl 4(%r8),%r12d + addl 8(%r8),%edx + addl 12(%r8),%esi + addl 16(%r8),%edi + movl %r11d,0(%r8) + movl %r12d,4(%r8) + movl %edx,8(%r8) + movl %esi,12(%r8) + movl %edi,16(%r8) + + xchgl %r11d,%edx + xchgl %r12d,%esi + xchgl %r11d,%edi + xchgl %r12d,%ebp + + leaq 64(%r9),%r9 + subq $1,%r10 + jnz .Lloop + movq 64(%rsp),%rsi + movq (%rsi),%r12 + movq 8(%rsi),%rbp + movq 16(%rsi),%rbx + leaq 24(%rsi),%rsp +.Lepilogue: + .byte 0xf3,0xc3 +.size sha1_block_data_order,.-sha1_block_data_order +.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 16 diff --git a/deps/openssl/asm/x64-elf-gas/sha/sha512-x86_64.s b/deps/openssl/asm/x64-elf-gas/sha/sha512-x86_64.s new file mode 100644 index 0000000000..ddf7b907a9 --- /dev/null +++ b/deps/openssl/asm/x64-elf-gas/sha/sha512-x86_64.s @@ -0,0 +1,1971 @@ +.text + + +.globl sha256_block_data_order +.type sha256_block_data_order,@function +.align 16 +sha256_block_data_order: + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + movq %rsp,%r11 + shlq $4,%rdx + subq $64+32,%rsp + leaq (%rsi,%rdx,4),%rdx + andq $-64,%rsp + movq %rdi,64+0(%rsp) + movq %rsi,64+8(%rsp) + movq %rdx,64+16(%rsp) + movq %r11,64+24(%rsp) +.Lprologue: + + leaq K256(%rip),%rbp + + movl 0(%rdi),%eax + movl 4(%rdi),%ebx + movl 8(%rdi),%ecx + movl 12(%rdi),%edx + movl 16(%rdi),%r8d + movl 20(%rdi),%r9d + movl 24(%rdi),%r10d + movl 28(%rdi),%r11d + jmp .Lloop + +.align 16 +.Lloop: + xorq %rdi,%rdi + movl 0(%rsi),%r12d + bswapl %r12d + movl %r8d,%r13d + movl %r8d,%r14d + movl %r9d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r10d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r8d,%r15d + movl %r12d,0(%rsp) + + xorl %r14d,%r13d + xorl %r10d,%r15d + addl %r11d,%r12d + + movl %eax,%r11d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %eax,%r13d + movl %eax,%r14d + + rorl $2,%r11d + rorl $13,%r13d + movl %eax,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r11d + rorl $9,%r13d + orl %ecx,%r14d + + xorl %r13d,%r11d + andl %ecx,%r15d + addl %r12d,%edx + + andl %ebx,%r14d + addl %r12d,%r11d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r11d + movl 4(%rsi),%r12d + bswapl %r12d + movl %edx,%r13d + movl %edx,%r14d + movl %r8d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r9d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %edx,%r15d + movl %r12d,4(%rsp) + + xorl %r14d,%r13d + xorl %r9d,%r15d + addl %r10d,%r12d + + movl %r11d,%r10d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r11d,%r13d + movl %r11d,%r14d + + rorl $2,%r10d + rorl $13,%r13d + movl %r11d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r10d + rorl $9,%r13d + orl %ebx,%r14d + + xorl %r13d,%r10d + andl %ebx,%r15d + addl %r12d,%ecx + + andl %eax,%r14d + addl %r12d,%r10d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r10d + movl 8(%rsi),%r12d + bswapl %r12d + movl %ecx,%r13d + movl %ecx,%r14d + movl %edx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r8d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %ecx,%r15d + movl %r12d,8(%rsp) + + xorl %r14d,%r13d + xorl %r8d,%r15d + addl %r9d,%r12d + + movl %r10d,%r9d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r10d,%r13d + movl %r10d,%r14d + + rorl $2,%r9d + rorl $13,%r13d + movl %r10d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r9d + rorl $9,%r13d + orl %eax,%r14d + + xorl %r13d,%r9d + andl %eax,%r15d + addl %r12d,%ebx + + andl %r11d,%r14d + addl %r12d,%r9d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r9d + movl 12(%rsi),%r12d + bswapl %r12d + movl %ebx,%r13d + movl %ebx,%r14d + movl %ecx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %edx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %ebx,%r15d + movl %r12d,12(%rsp) + + xorl %r14d,%r13d + xorl %edx,%r15d + addl %r8d,%r12d + + movl %r9d,%r8d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r9d,%r13d + movl %r9d,%r14d + + rorl $2,%r8d + rorl $13,%r13d + movl %r9d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r8d + rorl $9,%r13d + orl %r11d,%r14d + + xorl %r13d,%r8d + andl %r11d,%r15d + addl %r12d,%eax + + andl %r10d,%r14d + addl %r12d,%r8d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r8d + movl 16(%rsi),%r12d + bswapl %r12d + movl %eax,%r13d + movl %eax,%r14d + movl %ebx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %ecx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %eax,%r15d + movl %r12d,16(%rsp) + + xorl %r14d,%r13d + xorl %ecx,%r15d + addl %edx,%r12d + + movl %r8d,%edx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r8d,%r13d + movl %r8d,%r14d + + rorl $2,%edx + rorl $13,%r13d + movl %r8d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%edx + rorl $9,%r13d + orl %r10d,%r14d + + xorl %r13d,%edx + andl %r10d,%r15d + addl %r12d,%r11d + + andl %r9d,%r14d + addl %r12d,%edx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%edx + movl 20(%rsi),%r12d + bswapl %r12d + movl %r11d,%r13d + movl %r11d,%r14d + movl %eax,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %ebx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r11d,%r15d + movl %r12d,20(%rsp) + + xorl %r14d,%r13d + xorl %ebx,%r15d + addl %ecx,%r12d + + movl %edx,%ecx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %edx,%r13d + movl %edx,%r14d + + rorl $2,%ecx + rorl $13,%r13d + movl %edx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%ecx + rorl $9,%r13d + orl %r9d,%r14d + + xorl %r13d,%ecx + andl %r9d,%r15d + addl %r12d,%r10d + + andl %r8d,%r14d + addl %r12d,%ecx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%ecx + movl 24(%rsi),%r12d + bswapl %r12d + movl %r10d,%r13d + movl %r10d,%r14d + movl %r11d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %eax,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r10d,%r15d + movl %r12d,24(%rsp) + + xorl %r14d,%r13d + xorl %eax,%r15d + addl %ebx,%r12d + + movl %ecx,%ebx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %ecx,%r13d + movl %ecx,%r14d + + rorl $2,%ebx + rorl $13,%r13d + movl %ecx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%ebx + rorl $9,%r13d + orl %r8d,%r14d + + xorl %r13d,%ebx + andl %r8d,%r15d + addl %r12d,%r9d + + andl %edx,%r14d + addl %r12d,%ebx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%ebx + movl 28(%rsi),%r12d + bswapl %r12d + movl %r9d,%r13d + movl %r9d,%r14d + movl %r10d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r11d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r9d,%r15d + movl %r12d,28(%rsp) + + xorl %r14d,%r13d + xorl %r11d,%r15d + addl %eax,%r12d + + movl %ebx,%eax + addl %r13d,%r12d + + addl %r15d,%r12d + movl %ebx,%r13d + movl %ebx,%r14d + + rorl $2,%eax + rorl $13,%r13d + movl %ebx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%eax + rorl $9,%r13d + orl %edx,%r14d + + xorl %r13d,%eax + andl %edx,%r15d + addl %r12d,%r8d + + andl %ecx,%r14d + addl %r12d,%eax + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%eax + movl 32(%rsi),%r12d + bswapl %r12d + movl %r8d,%r13d + movl %r8d,%r14d + movl %r9d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r10d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r8d,%r15d + movl %r12d,32(%rsp) + + xorl %r14d,%r13d + xorl %r10d,%r15d + addl %r11d,%r12d + + movl %eax,%r11d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %eax,%r13d + movl %eax,%r14d + + rorl $2,%r11d + rorl $13,%r13d + movl %eax,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r11d + rorl $9,%r13d + orl %ecx,%r14d + + xorl %r13d,%r11d + andl %ecx,%r15d + addl %r12d,%edx + + andl %ebx,%r14d + addl %r12d,%r11d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r11d + movl 36(%rsi),%r12d + bswapl %r12d + movl %edx,%r13d + movl %edx,%r14d + movl %r8d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r9d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %edx,%r15d + movl %r12d,36(%rsp) + + xorl %r14d,%r13d + xorl %r9d,%r15d + addl %r10d,%r12d + + movl %r11d,%r10d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r11d,%r13d + movl %r11d,%r14d + + rorl $2,%r10d + rorl $13,%r13d + movl %r11d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r10d + rorl $9,%r13d + orl %ebx,%r14d + + xorl %r13d,%r10d + andl %ebx,%r15d + addl %r12d,%ecx + + andl %eax,%r14d + addl %r12d,%r10d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r10d + movl 40(%rsi),%r12d + bswapl %r12d + movl %ecx,%r13d + movl %ecx,%r14d + movl %edx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r8d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %ecx,%r15d + movl %r12d,40(%rsp) + + xorl %r14d,%r13d + xorl %r8d,%r15d + addl %r9d,%r12d + + movl %r10d,%r9d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r10d,%r13d + movl %r10d,%r14d + + rorl $2,%r9d + rorl $13,%r13d + movl %r10d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r9d + rorl $9,%r13d + orl %eax,%r14d + + xorl %r13d,%r9d + andl %eax,%r15d + addl %r12d,%ebx + + andl %r11d,%r14d + addl %r12d,%r9d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r9d + movl 44(%rsi),%r12d + bswapl %r12d + movl %ebx,%r13d + movl %ebx,%r14d + movl %ecx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %edx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %ebx,%r15d + movl %r12d,44(%rsp) + + xorl %r14d,%r13d + xorl %edx,%r15d + addl %r8d,%r12d + + movl %r9d,%r8d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r9d,%r13d + movl %r9d,%r14d + + rorl $2,%r8d + rorl $13,%r13d + movl %r9d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r8d + rorl $9,%r13d + orl %r11d,%r14d + + xorl %r13d,%r8d + andl %r11d,%r15d + addl %r12d,%eax + + andl %r10d,%r14d + addl %r12d,%r8d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r8d + movl 48(%rsi),%r12d + bswapl %r12d + movl %eax,%r13d + movl %eax,%r14d + movl %ebx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %ecx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %eax,%r15d + movl %r12d,48(%rsp) + + xorl %r14d,%r13d + xorl %ecx,%r15d + addl %edx,%r12d + + movl %r8d,%edx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r8d,%r13d + movl %r8d,%r14d + + rorl $2,%edx + rorl $13,%r13d + movl %r8d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%edx + rorl $9,%r13d + orl %r10d,%r14d + + xorl %r13d,%edx + andl %r10d,%r15d + addl %r12d,%r11d + + andl %r9d,%r14d + addl %r12d,%edx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%edx + movl 52(%rsi),%r12d + bswapl %r12d + movl %r11d,%r13d + movl %r11d,%r14d + movl %eax,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %ebx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r11d,%r15d + movl %r12d,52(%rsp) + + xorl %r14d,%r13d + xorl %ebx,%r15d + addl %ecx,%r12d + + movl %edx,%ecx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %edx,%r13d + movl %edx,%r14d + + rorl $2,%ecx + rorl $13,%r13d + movl %edx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%ecx + rorl $9,%r13d + orl %r9d,%r14d + + xorl %r13d,%ecx + andl %r9d,%r15d + addl %r12d,%r10d + + andl %r8d,%r14d + addl %r12d,%ecx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%ecx + movl 56(%rsi),%r12d + bswapl %r12d + movl %r10d,%r13d + movl %r10d,%r14d + movl %r11d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %eax,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r10d,%r15d + movl %r12d,56(%rsp) + + xorl %r14d,%r13d + xorl %eax,%r15d + addl %ebx,%r12d + + movl %ecx,%ebx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %ecx,%r13d + movl %ecx,%r14d + + rorl $2,%ebx + rorl $13,%r13d + movl %ecx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%ebx + rorl $9,%r13d + orl %r8d,%r14d + + xorl %r13d,%ebx + andl %r8d,%r15d + addl %r12d,%r9d + + andl %edx,%r14d + addl %r12d,%ebx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%ebx + movl 60(%rsi),%r12d + bswapl %r12d + movl %r9d,%r13d + movl %r9d,%r14d + movl %r10d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r11d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r9d,%r15d + movl %r12d,60(%rsp) + + xorl %r14d,%r13d + xorl %r11d,%r15d + addl %eax,%r12d + + movl %ebx,%eax + addl %r13d,%r12d + + addl %r15d,%r12d + movl %ebx,%r13d + movl %ebx,%r14d + + rorl $2,%eax + rorl $13,%r13d + movl %ebx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%eax + rorl $9,%r13d + orl %edx,%r14d + + xorl %r13d,%eax + andl %edx,%r15d + addl %r12d,%r8d + + andl %ecx,%r14d + addl %r12d,%eax + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%eax + jmp .Lrounds_16_xx +.align 16 +.Lrounds_16_xx: + movl 4(%rsp),%r13d + movl 56(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 36(%rsp),%r12d + + addl 0(%rsp),%r12d + movl %r8d,%r13d + movl %r8d,%r14d + movl %r9d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r10d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r8d,%r15d + movl %r12d,0(%rsp) + + xorl %r14d,%r13d + xorl %r10d,%r15d + addl %r11d,%r12d + + movl %eax,%r11d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %eax,%r13d + movl %eax,%r14d + + rorl $2,%r11d + rorl $13,%r13d + movl %eax,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r11d + rorl $9,%r13d + orl %ecx,%r14d + + xorl %r13d,%r11d + andl %ecx,%r15d + addl %r12d,%edx + + andl %ebx,%r14d + addl %r12d,%r11d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r11d + movl 8(%rsp),%r13d + movl 60(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 40(%rsp),%r12d + + addl 4(%rsp),%r12d + movl %edx,%r13d + movl %edx,%r14d + movl %r8d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r9d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %edx,%r15d + movl %r12d,4(%rsp) + + xorl %r14d,%r13d + xorl %r9d,%r15d + addl %r10d,%r12d + + movl %r11d,%r10d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r11d,%r13d + movl %r11d,%r14d + + rorl $2,%r10d + rorl $13,%r13d + movl %r11d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r10d + rorl $9,%r13d + orl %ebx,%r14d + + xorl %r13d,%r10d + andl %ebx,%r15d + addl %r12d,%ecx + + andl %eax,%r14d + addl %r12d,%r10d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r10d + movl 12(%rsp),%r13d + movl 0(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 44(%rsp),%r12d + + addl 8(%rsp),%r12d + movl %ecx,%r13d + movl %ecx,%r14d + movl %edx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r8d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %ecx,%r15d + movl %r12d,8(%rsp) + + xorl %r14d,%r13d + xorl %r8d,%r15d + addl %r9d,%r12d + + movl %r10d,%r9d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r10d,%r13d + movl %r10d,%r14d + + rorl $2,%r9d + rorl $13,%r13d + movl %r10d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r9d + rorl $9,%r13d + orl %eax,%r14d + + xorl %r13d,%r9d + andl %eax,%r15d + addl %r12d,%ebx + + andl %r11d,%r14d + addl %r12d,%r9d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r9d + movl 16(%rsp),%r13d + movl 4(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 48(%rsp),%r12d + + addl 12(%rsp),%r12d + movl %ebx,%r13d + movl %ebx,%r14d + movl %ecx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %edx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %ebx,%r15d + movl %r12d,12(%rsp) + + xorl %r14d,%r13d + xorl %edx,%r15d + addl %r8d,%r12d + + movl %r9d,%r8d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r9d,%r13d + movl %r9d,%r14d + + rorl $2,%r8d + rorl $13,%r13d + movl %r9d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r8d + rorl $9,%r13d + orl %r11d,%r14d + + xorl %r13d,%r8d + andl %r11d,%r15d + addl %r12d,%eax + + andl %r10d,%r14d + addl %r12d,%r8d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r8d + movl 20(%rsp),%r13d + movl 8(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 52(%rsp),%r12d + + addl 16(%rsp),%r12d + movl %eax,%r13d + movl %eax,%r14d + movl %ebx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %ecx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %eax,%r15d + movl %r12d,16(%rsp) + + xorl %r14d,%r13d + xorl %ecx,%r15d + addl %edx,%r12d + + movl %r8d,%edx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r8d,%r13d + movl %r8d,%r14d + + rorl $2,%edx + rorl $13,%r13d + movl %r8d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%edx + rorl $9,%r13d + orl %r10d,%r14d + + xorl %r13d,%edx + andl %r10d,%r15d + addl %r12d,%r11d + + andl %r9d,%r14d + addl %r12d,%edx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%edx + movl 24(%rsp),%r13d + movl 12(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 56(%rsp),%r12d + + addl 20(%rsp),%r12d + movl %r11d,%r13d + movl %r11d,%r14d + movl %eax,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %ebx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r11d,%r15d + movl %r12d,20(%rsp) + + xorl %r14d,%r13d + xorl %ebx,%r15d + addl %ecx,%r12d + + movl %edx,%ecx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %edx,%r13d + movl %edx,%r14d + + rorl $2,%ecx + rorl $13,%r13d + movl %edx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%ecx + rorl $9,%r13d + orl %r9d,%r14d + + xorl %r13d,%ecx + andl %r9d,%r15d + addl %r12d,%r10d + + andl %r8d,%r14d + addl %r12d,%ecx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%ecx + movl 28(%rsp),%r13d + movl 16(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 60(%rsp),%r12d + + addl 24(%rsp),%r12d + movl %r10d,%r13d + movl %r10d,%r14d + movl %r11d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %eax,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r10d,%r15d + movl %r12d,24(%rsp) + + xorl %r14d,%r13d + xorl %eax,%r15d + addl %ebx,%r12d + + movl %ecx,%ebx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %ecx,%r13d + movl %ecx,%r14d + + rorl $2,%ebx + rorl $13,%r13d + movl %ecx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%ebx + rorl $9,%r13d + orl %r8d,%r14d + + xorl %r13d,%ebx + andl %r8d,%r15d + addl %r12d,%r9d + + andl %edx,%r14d + addl %r12d,%ebx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%ebx + movl 32(%rsp),%r13d + movl 20(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 0(%rsp),%r12d + + addl 28(%rsp),%r12d + movl %r9d,%r13d + movl %r9d,%r14d + movl %r10d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r11d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r9d,%r15d + movl %r12d,28(%rsp) + + xorl %r14d,%r13d + xorl %r11d,%r15d + addl %eax,%r12d + + movl %ebx,%eax + addl %r13d,%r12d + + addl %r15d,%r12d + movl %ebx,%r13d + movl %ebx,%r14d + + rorl $2,%eax + rorl $13,%r13d + movl %ebx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%eax + rorl $9,%r13d + orl %edx,%r14d + + xorl %r13d,%eax + andl %edx,%r15d + addl %r12d,%r8d + + andl %ecx,%r14d + addl %r12d,%eax + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%eax + movl 36(%rsp),%r13d + movl 24(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 4(%rsp),%r12d + + addl 32(%rsp),%r12d + movl %r8d,%r13d + movl %r8d,%r14d + movl %r9d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r10d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r8d,%r15d + movl %r12d,32(%rsp) + + xorl %r14d,%r13d + xorl %r10d,%r15d + addl %r11d,%r12d + + movl %eax,%r11d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %eax,%r13d + movl %eax,%r14d + + rorl $2,%r11d + rorl $13,%r13d + movl %eax,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r11d + rorl $9,%r13d + orl %ecx,%r14d + + xorl %r13d,%r11d + andl %ecx,%r15d + addl %r12d,%edx + + andl %ebx,%r14d + addl %r12d,%r11d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r11d + movl 40(%rsp),%r13d + movl 28(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 8(%rsp),%r12d + + addl 36(%rsp),%r12d + movl %edx,%r13d + movl %edx,%r14d + movl %r8d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r9d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %edx,%r15d + movl %r12d,36(%rsp) + + xorl %r14d,%r13d + xorl %r9d,%r15d + addl %r10d,%r12d + + movl %r11d,%r10d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r11d,%r13d + movl %r11d,%r14d + + rorl $2,%r10d + rorl $13,%r13d + movl %r11d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r10d + rorl $9,%r13d + orl %ebx,%r14d + + xorl %r13d,%r10d + andl %ebx,%r15d + addl %r12d,%ecx + + andl %eax,%r14d + addl %r12d,%r10d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r10d + movl 44(%rsp),%r13d + movl 32(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 12(%rsp),%r12d + + addl 40(%rsp),%r12d + movl %ecx,%r13d + movl %ecx,%r14d + movl %edx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r8d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %ecx,%r15d + movl %r12d,40(%rsp) + + xorl %r14d,%r13d + xorl %r8d,%r15d + addl %r9d,%r12d + + movl %r10d,%r9d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r10d,%r13d + movl %r10d,%r14d + + rorl $2,%r9d + rorl $13,%r13d + movl %r10d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r9d + rorl $9,%r13d + orl %eax,%r14d + + xorl %r13d,%r9d + andl %eax,%r15d + addl %r12d,%ebx + + andl %r11d,%r14d + addl %r12d,%r9d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r9d + movl 48(%rsp),%r13d + movl 36(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 16(%rsp),%r12d + + addl 44(%rsp),%r12d + movl %ebx,%r13d + movl %ebx,%r14d + movl %ecx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %edx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %ebx,%r15d + movl %r12d,44(%rsp) + + xorl %r14d,%r13d + xorl %edx,%r15d + addl %r8d,%r12d + + movl %r9d,%r8d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r9d,%r13d + movl %r9d,%r14d + + rorl $2,%r8d + rorl $13,%r13d + movl %r9d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r8d + rorl $9,%r13d + orl %r11d,%r14d + + xorl %r13d,%r8d + andl %r11d,%r15d + addl %r12d,%eax + + andl %r10d,%r14d + addl %r12d,%r8d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r8d + movl 52(%rsp),%r13d + movl 40(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 20(%rsp),%r12d + + addl 48(%rsp),%r12d + movl %eax,%r13d + movl %eax,%r14d + movl %ebx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %ecx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %eax,%r15d + movl %r12d,48(%rsp) + + xorl %r14d,%r13d + xorl %ecx,%r15d + addl %edx,%r12d + + movl %r8d,%edx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r8d,%r13d + movl %r8d,%r14d + + rorl $2,%edx + rorl $13,%r13d + movl %r8d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%edx + rorl $9,%r13d + orl %r10d,%r14d + + xorl %r13d,%edx + andl %r10d,%r15d + addl %r12d,%r11d + + andl %r9d,%r14d + addl %r12d,%edx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%edx + movl 56(%rsp),%r13d + movl 44(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 24(%rsp),%r12d + + addl 52(%rsp),%r12d + movl %r11d,%r13d + movl %r11d,%r14d + movl %eax,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %ebx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r11d,%r15d + movl %r12d,52(%rsp) + + xorl %r14d,%r13d + xorl %ebx,%r15d + addl %ecx,%r12d + + movl %edx,%ecx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %edx,%r13d + movl %edx,%r14d + + rorl $2,%ecx + rorl $13,%r13d + movl %edx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%ecx + rorl $9,%r13d + orl %r9d,%r14d + + xorl %r13d,%ecx + andl %r9d,%r15d + addl %r12d,%r10d + + andl %r8d,%r14d + addl %r12d,%ecx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%ecx + movl 60(%rsp),%r13d + movl 48(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 28(%rsp),%r12d + + addl 56(%rsp),%r12d + movl %r10d,%r13d + movl %r10d,%r14d + movl %r11d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %eax,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r10d,%r15d + movl %r12d,56(%rsp) + + xorl %r14d,%r13d + xorl %eax,%r15d + addl %ebx,%r12d + + movl %ecx,%ebx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %ecx,%r13d + movl %ecx,%r14d + + rorl $2,%ebx + rorl $13,%r13d + movl %ecx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%ebx + rorl $9,%r13d + orl %r8d,%r14d + + xorl %r13d,%ebx + andl %r8d,%r15d + addl %r12d,%r9d + + andl %edx,%r14d + addl %r12d,%ebx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%ebx + movl 0(%rsp),%r13d + movl 52(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 32(%rsp),%r12d + + addl 60(%rsp),%r12d + movl %r9d,%r13d + movl %r9d,%r14d + movl %r10d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r11d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r9d,%r15d + movl %r12d,60(%rsp) + + xorl %r14d,%r13d + xorl %r11d,%r15d + addl %eax,%r12d + + movl %ebx,%eax + addl %r13d,%r12d + + addl %r15d,%r12d + movl %ebx,%r13d + movl %ebx,%r14d + + rorl $2,%eax + rorl $13,%r13d + movl %ebx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%eax + rorl $9,%r13d + orl %edx,%r14d + + xorl %r13d,%eax + andl %edx,%r15d + addl %r12d,%r8d + + andl %ecx,%r14d + addl %r12d,%eax + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%eax + cmpq $64,%rdi + jb .Lrounds_16_xx + + movq 64+0(%rsp),%rdi + leaq 64(%rsi),%rsi + + addl 0(%rdi),%eax + addl 4(%rdi),%ebx + addl 8(%rdi),%ecx + addl 12(%rdi),%edx + addl 16(%rdi),%r8d + addl 20(%rdi),%r9d + addl 24(%rdi),%r10d + addl 28(%rdi),%r11d + + cmpq 64+16(%rsp),%rsi + + movl %eax,0(%rdi) + movl %ebx,4(%rdi) + movl %ecx,8(%rdi) + movl %edx,12(%rdi) + movl %r8d,16(%rdi) + movl %r9d,20(%rdi) + movl %r10d,24(%rdi) + movl %r11d,28(%rdi) + jb .Lloop + + movq 64+24(%rsp),%rsi + movq (%rsi),%r15 + movq 8(%rsi),%r14 + movq 16(%rsi),%r13 + movq 24(%rsi),%r12 + movq 32(%rsi),%rbp + movq 40(%rsi),%rbx + leaq 48(%rsi),%rsp +.Lepilogue: + .byte 0xf3,0xc3 +.size sha256_block_data_order,.-sha256_block_data_order +.align 64 +.type K256,@object +K256: +.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 +.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 +.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 +.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 +.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc +.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da +.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 +.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 +.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 +.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 +.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 +.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 +.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 +.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 +.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 +.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 diff --git a/deps/openssl/asm/x64-elf-gas/whrlpool/wp-x86_64.s b/deps/openssl/asm/x64-elf-gas/whrlpool/wp-x86_64.s new file mode 100644 index 0000000000..6c2656c9a1 --- /dev/null +++ b/deps/openssl/asm/x64-elf-gas/whrlpool/wp-x86_64.s @@ -0,0 +1,859 @@ +.text + + +.globl whirlpool_block +.type whirlpool_block,@function +.align 16 +whirlpool_block: + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + + movq %rsp,%r11 + subq $128+40,%rsp + andq $-64,%rsp + + leaq 128(%rsp),%r10 + movq %rdi,0(%r10) + movq %rsi,8(%r10) + movq %rdx,16(%r10) + movq %r11,32(%r10) +.Lprologue: + + movq %r10,%rbx + leaq .Ltable(%rip),%rbp + + xorq %rcx,%rcx + xorq %rdx,%rdx + movq 0(%rdi),%r8 + movq 8(%rdi),%r9 + movq 16(%rdi),%r10 + movq 24(%rdi),%r11 + movq 32(%rdi),%r12 + movq 40(%rdi),%r13 + movq 48(%rdi),%r14 + movq 56(%rdi),%r15 +.Louterloop: + movq %r8,0(%rsp) + movq %r9,8(%rsp) + movq %r10,16(%rsp) + movq %r11,24(%rsp) + movq %r12,32(%rsp) + movq %r13,40(%rsp) + movq %r14,48(%rsp) + movq %r15,56(%rsp) + xorq 0(%rsi),%r8 + xorq 8(%rsi),%r9 + xorq 16(%rsi),%r10 + xorq 24(%rsi),%r11 + xorq 32(%rsi),%r12 + xorq 40(%rsi),%r13 + xorq 48(%rsi),%r14 + xorq 56(%rsi),%r15 + movq %r8,64+0(%rsp) + movq %r9,64+8(%rsp) + movq %r10,64+16(%rsp) + movq %r11,64+24(%rsp) + movq %r12,64+32(%rsp) + movq %r13,64+40(%rsp) + movq %r14,64+48(%rsp) + movq %r15,64+56(%rsp) + xorq %rsi,%rsi + movq %rsi,24(%rbx) +.align 16 +.Lround: + movq 4096(%rbp,%rsi,8),%r8 + movl 0(%rsp),%eax + movl 4(%rsp),%ebx + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r8 + movq 7(%rbp,%rdi,8),%r9 + movb %al,%cl + movb %ah,%dl + movl 0+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + movq 6(%rbp,%rsi,8),%r10 + movq 5(%rbp,%rdi,8),%r11 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + movq 4(%rbp,%rsi,8),%r12 + movq 3(%rbp,%rdi,8),%r13 + movb %bl,%cl + movb %bh,%dl + movl 0+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + movq 2(%rbp,%rsi,8),%r14 + movq 1(%rbp,%rdi,8),%r15 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r9 + xorq 7(%rbp,%rdi,8),%r10 + movb %al,%cl + movb %ah,%dl + movl 8+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r11 + xorq 5(%rbp,%rdi,8),%r12 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r13 + xorq 3(%rbp,%rdi,8),%r14 + movb %bl,%cl + movb %bh,%dl + movl 8+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r15 + xorq 1(%rbp,%rdi,8),%r8 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r10 + xorq 7(%rbp,%rdi,8),%r11 + movb %al,%cl + movb %ah,%dl + movl 16+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r12 + xorq 5(%rbp,%rdi,8),%r13 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r14 + xorq 3(%rbp,%rdi,8),%r15 + movb %bl,%cl + movb %bh,%dl + movl 16+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r8 + xorq 1(%rbp,%rdi,8),%r9 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r11 + xorq 7(%rbp,%rdi,8),%r12 + movb %al,%cl + movb %ah,%dl + movl 24+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r13 + xorq 5(%rbp,%rdi,8),%r14 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r15 + xorq 3(%rbp,%rdi,8),%r8 + movb %bl,%cl + movb %bh,%dl + movl 24+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r9 + xorq 1(%rbp,%rdi,8),%r10 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r12 + xorq 7(%rbp,%rdi,8),%r13 + movb %al,%cl + movb %ah,%dl + movl 32+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r14 + xorq 5(%rbp,%rdi,8),%r15 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r8 + xorq 3(%rbp,%rdi,8),%r9 + movb %bl,%cl + movb %bh,%dl + movl 32+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r10 + xorq 1(%rbp,%rdi,8),%r11 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r13 + xorq 7(%rbp,%rdi,8),%r14 + movb %al,%cl + movb %ah,%dl + movl 40+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r15 + xorq 5(%rbp,%rdi,8),%r8 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r9 + xorq 3(%rbp,%rdi,8),%r10 + movb %bl,%cl + movb %bh,%dl + movl 40+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r11 + xorq 1(%rbp,%rdi,8),%r12 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r14 + xorq 7(%rbp,%rdi,8),%r15 + movb %al,%cl + movb %ah,%dl + movl 48+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r8 + xorq 5(%rbp,%rdi,8),%r9 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r10 + xorq 3(%rbp,%rdi,8),%r11 + movb %bl,%cl + movb %bh,%dl + movl 48+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r12 + xorq 1(%rbp,%rdi,8),%r13 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r15 + xorq 7(%rbp,%rdi,8),%r8 + movb %al,%cl + movb %ah,%dl + movl 56+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r9 + xorq 5(%rbp,%rdi,8),%r10 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r11 + xorq 3(%rbp,%rdi,8),%r12 + movb %bl,%cl + movb %bh,%dl + movl 56+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r13 + xorq 1(%rbp,%rdi,8),%r14 + movq %r8,0(%rsp) + movq %r9,8(%rsp) + movq %r10,16(%rsp) + movq %r11,24(%rsp) + movq %r12,32(%rsp) + movq %r13,40(%rsp) + movq %r14,48(%rsp) + movq %r15,56(%rsp) + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r8 + xorq 7(%rbp,%rdi,8),%r9 + movb %al,%cl + movb %ah,%dl + movl 64+0+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r10 + xorq 5(%rbp,%rdi,8),%r11 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r12 + xorq 3(%rbp,%rdi,8),%r13 + movb %bl,%cl + movb %bh,%dl + movl 64+0+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r14 + xorq 1(%rbp,%rdi,8),%r15 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r9 + xorq 7(%rbp,%rdi,8),%r10 + movb %al,%cl + movb %ah,%dl + movl 64+8+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r11 + xorq 5(%rbp,%rdi,8),%r12 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r13 + xorq 3(%rbp,%rdi,8),%r14 + movb %bl,%cl + movb %bh,%dl + movl 64+8+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r15 + xorq 1(%rbp,%rdi,8),%r8 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r10 + xorq 7(%rbp,%rdi,8),%r11 + movb %al,%cl + movb %ah,%dl + movl 64+16+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r12 + xorq 5(%rbp,%rdi,8),%r13 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r14 + xorq 3(%rbp,%rdi,8),%r15 + movb %bl,%cl + movb %bh,%dl + movl 64+16+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r8 + xorq 1(%rbp,%rdi,8),%r9 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r11 + xorq 7(%rbp,%rdi,8),%r12 + movb %al,%cl + movb %ah,%dl + movl 64+24+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r13 + xorq 5(%rbp,%rdi,8),%r14 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r15 + xorq 3(%rbp,%rdi,8),%r8 + movb %bl,%cl + movb %bh,%dl + movl 64+24+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r9 + xorq 1(%rbp,%rdi,8),%r10 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r12 + xorq 7(%rbp,%rdi,8),%r13 + movb %al,%cl + movb %ah,%dl + movl 64+32+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r14 + xorq 5(%rbp,%rdi,8),%r15 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r8 + xorq 3(%rbp,%rdi,8),%r9 + movb %bl,%cl + movb %bh,%dl + movl 64+32+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r10 + xorq 1(%rbp,%rdi,8),%r11 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r13 + xorq 7(%rbp,%rdi,8),%r14 + movb %al,%cl + movb %ah,%dl + movl 64+40+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r15 + xorq 5(%rbp,%rdi,8),%r8 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r9 + xorq 3(%rbp,%rdi,8),%r10 + movb %bl,%cl + movb %bh,%dl + movl 64+40+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r11 + xorq 1(%rbp,%rdi,8),%r12 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r14 + xorq 7(%rbp,%rdi,8),%r15 + movb %al,%cl + movb %ah,%dl + movl 64+48+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r8 + xorq 5(%rbp,%rdi,8),%r9 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r10 + xorq 3(%rbp,%rdi,8),%r11 + movb %bl,%cl + movb %bh,%dl + movl 64+48+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r12 + xorq 1(%rbp,%rdi,8),%r13 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r15 + xorq 7(%rbp,%rdi,8),%r8 + movb %al,%cl + movb %ah,%dl + + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r9 + xorq 5(%rbp,%rdi,8),%r10 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r11 + xorq 3(%rbp,%rdi,8),%r12 + movb %bl,%cl + movb %bh,%dl + + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r13 + xorq 1(%rbp,%rdi,8),%r14 + leaq 128(%rsp),%rbx + movq 24(%rbx),%rsi + addq $1,%rsi + cmpq $10,%rsi + je .Lroundsdone + + movq %rsi,24(%rbx) + movq %r8,64+0(%rsp) + movq %r9,64+8(%rsp) + movq %r10,64+16(%rsp) + movq %r11,64+24(%rsp) + movq %r12,64+32(%rsp) + movq %r13,64+40(%rsp) + movq %r14,64+48(%rsp) + movq %r15,64+56(%rsp) + jmp .Lround +.align 16 +.Lroundsdone: + movq 0(%rbx),%rdi + movq 8(%rbx),%rsi + movq 16(%rbx),%rax + xorq 0(%rsi),%r8 + xorq 8(%rsi),%r9 + xorq 16(%rsi),%r10 + xorq 24(%rsi),%r11 + xorq 32(%rsi),%r12 + xorq 40(%rsi),%r13 + xorq 48(%rsi),%r14 + xorq 56(%rsi),%r15 + xorq 0(%rdi),%r8 + xorq 8(%rdi),%r9 + xorq 16(%rdi),%r10 + xorq 24(%rdi),%r11 + xorq 32(%rdi),%r12 + xorq 40(%rdi),%r13 + xorq 48(%rdi),%r14 + xorq 56(%rdi),%r15 + movq %r8,0(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + leaq 64(%rsi),%rsi + subq $1,%rax + jz .Lalldone + movq %rsi,8(%rbx) + movq %rax,16(%rbx) + jmp .Louterloop +.Lalldone: + movq 32(%rbx),%rsi + movq (%rsi),%r15 + movq 8(%rsi),%r14 + movq 16(%rsi),%r13 + movq 24(%rsi),%r12 + movq 32(%rsi),%rbp + movq 40(%rsi),%rbx + leaq 48(%rsi),%rsp +.Lepilogue: + .byte 0xf3,0xc3 +.size whirlpool_block,.-whirlpool_block + +.align 64 +.type .Ltable,@object +.Ltable: +.byte 24,24,96,24,192,120,48,216,24,24,96,24,192,120,48,216 +.byte 35,35,140,35,5,175,70,38,35,35,140,35,5,175,70,38 +.byte 198,198,63,198,126,249,145,184,198,198,63,198,126,249,145,184 +.byte 232,232,135,232,19,111,205,251,232,232,135,232,19,111,205,251 +.byte 135,135,38,135,76,161,19,203,135,135,38,135,76,161,19,203 +.byte 184,184,218,184,169,98,109,17,184,184,218,184,169,98,109,17 +.byte 1,1,4,1,8,5,2,9,1,1,4,1,8,5,2,9 +.byte 79,79,33,79,66,110,158,13,79,79,33,79,66,110,158,13 +.byte 54,54,216,54,173,238,108,155,54,54,216,54,173,238,108,155 +.byte 166,166,162,166,89,4,81,255,166,166,162,166,89,4,81,255 +.byte 210,210,111,210,222,189,185,12,210,210,111,210,222,189,185,12 +.byte 245,245,243,245,251,6,247,14,245,245,243,245,251,6,247,14 +.byte 121,121,249,121,239,128,242,150,121,121,249,121,239,128,242,150 +.byte 111,111,161,111,95,206,222,48,111,111,161,111,95,206,222,48 +.byte 145,145,126,145,252,239,63,109,145,145,126,145,252,239,63,109 +.byte 82,82,85,82,170,7,164,248,82,82,85,82,170,7,164,248 +.byte 96,96,157,96,39,253,192,71,96,96,157,96,39,253,192,71 +.byte 188,188,202,188,137,118,101,53,188,188,202,188,137,118,101,53 +.byte 155,155,86,155,172,205,43,55,155,155,86,155,172,205,43,55 +.byte 142,142,2,142,4,140,1,138,142,142,2,142,4,140,1,138 +.byte 163,163,182,163,113,21,91,210,163,163,182,163,113,21,91,210 +.byte 12,12,48,12,96,60,24,108,12,12,48,12,96,60,24,108 +.byte 123,123,241,123,255,138,246,132,123,123,241,123,255,138,246,132 +.byte 53,53,212,53,181,225,106,128,53,53,212,53,181,225,106,128 +.byte 29,29,116,29,232,105,58,245,29,29,116,29,232,105,58,245 +.byte 224,224,167,224,83,71,221,179,224,224,167,224,83,71,221,179 +.byte 215,215,123,215,246,172,179,33,215,215,123,215,246,172,179,33 +.byte 194,194,47,194,94,237,153,156,194,194,47,194,94,237,153,156 +.byte 46,46,184,46,109,150,92,67,46,46,184,46,109,150,92,67 +.byte 75,75,49,75,98,122,150,41,75,75,49,75,98,122,150,41 +.byte 254,254,223,254,163,33,225,93,254,254,223,254,163,33,225,93 +.byte 87,87,65,87,130,22,174,213,87,87,65,87,130,22,174,213 +.byte 21,21,84,21,168,65,42,189,21,21,84,21,168,65,42,189 +.byte 119,119,193,119,159,182,238,232,119,119,193,119,159,182,238,232 +.byte 55,55,220,55,165,235,110,146,55,55,220,55,165,235,110,146 +.byte 229,229,179,229,123,86,215,158,229,229,179,229,123,86,215,158 +.byte 159,159,70,159,140,217,35,19,159,159,70,159,140,217,35,19 +.byte 240,240,231,240,211,23,253,35,240,240,231,240,211,23,253,35 +.byte 74,74,53,74,106,127,148,32,74,74,53,74,106,127,148,32 +.byte 218,218,79,218,158,149,169,68,218,218,79,218,158,149,169,68 +.byte 88,88,125,88,250,37,176,162,88,88,125,88,250,37,176,162 +.byte 201,201,3,201,6,202,143,207,201,201,3,201,6,202,143,207 +.byte 41,41,164,41,85,141,82,124,41,41,164,41,85,141,82,124 +.byte 10,10,40,10,80,34,20,90,10,10,40,10,80,34,20,90 +.byte 177,177,254,177,225,79,127,80,177,177,254,177,225,79,127,80 +.byte 160,160,186,160,105,26,93,201,160,160,186,160,105,26,93,201 +.byte 107,107,177,107,127,218,214,20,107,107,177,107,127,218,214,20 +.byte 133,133,46,133,92,171,23,217,133,133,46,133,92,171,23,217 +.byte 189,189,206,189,129,115,103,60,189,189,206,189,129,115,103,60 +.byte 93,93,105,93,210,52,186,143,93,93,105,93,210,52,186,143 +.byte 16,16,64,16,128,80,32,144,16,16,64,16,128,80,32,144 +.byte 244,244,247,244,243,3,245,7,244,244,247,244,243,3,245,7 +.byte 203,203,11,203,22,192,139,221,203,203,11,203,22,192,139,221 +.byte 62,62,248,62,237,198,124,211,62,62,248,62,237,198,124,211 +.byte 5,5,20,5,40,17,10,45,5,5,20,5,40,17,10,45 +.byte 103,103,129,103,31,230,206,120,103,103,129,103,31,230,206,120 +.byte 228,228,183,228,115,83,213,151,228,228,183,228,115,83,213,151 +.byte 39,39,156,39,37,187,78,2,39,39,156,39,37,187,78,2 +.byte 65,65,25,65,50,88,130,115,65,65,25,65,50,88,130,115 +.byte 139,139,22,139,44,157,11,167,139,139,22,139,44,157,11,167 +.byte 167,167,166,167,81,1,83,246,167,167,166,167,81,1,83,246 +.byte 125,125,233,125,207,148,250,178,125,125,233,125,207,148,250,178 +.byte 149,149,110,149,220,251,55,73,149,149,110,149,220,251,55,73 +.byte 216,216,71,216,142,159,173,86,216,216,71,216,142,159,173,86 +.byte 251,251,203,251,139,48,235,112,251,251,203,251,139,48,235,112 +.byte 238,238,159,238,35,113,193,205,238,238,159,238,35,113,193,205 +.byte 124,124,237,124,199,145,248,187,124,124,237,124,199,145,248,187 +.byte 102,102,133,102,23,227,204,113,102,102,133,102,23,227,204,113 +.byte 221,221,83,221,166,142,167,123,221,221,83,221,166,142,167,123 +.byte 23,23,92,23,184,75,46,175,23,23,92,23,184,75,46,175 +.byte 71,71,1,71,2,70,142,69,71,71,1,71,2,70,142,69 +.byte 158,158,66,158,132,220,33,26,158,158,66,158,132,220,33,26 +.byte 202,202,15,202,30,197,137,212,202,202,15,202,30,197,137,212 +.byte 45,45,180,45,117,153,90,88,45,45,180,45,117,153,90,88 +.byte 191,191,198,191,145,121,99,46,191,191,198,191,145,121,99,46 +.byte 7,7,28,7,56,27,14,63,7,7,28,7,56,27,14,63 +.byte 173,173,142,173,1,35,71,172,173,173,142,173,1,35,71,172 +.byte 90,90,117,90,234,47,180,176,90,90,117,90,234,47,180,176 +.byte 131,131,54,131,108,181,27,239,131,131,54,131,108,181,27,239 +.byte 51,51,204,51,133,255,102,182,51,51,204,51,133,255,102,182 +.byte 99,99,145,99,63,242,198,92,99,99,145,99,63,242,198,92 +.byte 2,2,8,2,16,10,4,18,2,2,8,2,16,10,4,18 +.byte 170,170,146,170,57,56,73,147,170,170,146,170,57,56,73,147 +.byte 113,113,217,113,175,168,226,222,113,113,217,113,175,168,226,222 +.byte 200,200,7,200,14,207,141,198,200,200,7,200,14,207,141,198 +.byte 25,25,100,25,200,125,50,209,25,25,100,25,200,125,50,209 +.byte 73,73,57,73,114,112,146,59,73,73,57,73,114,112,146,59 +.byte 217,217,67,217,134,154,175,95,217,217,67,217,134,154,175,95 +.byte 242,242,239,242,195,29,249,49,242,242,239,242,195,29,249,49 +.byte 227,227,171,227,75,72,219,168,227,227,171,227,75,72,219,168 +.byte 91,91,113,91,226,42,182,185,91,91,113,91,226,42,182,185 +.byte 136,136,26,136,52,146,13,188,136,136,26,136,52,146,13,188 +.byte 154,154,82,154,164,200,41,62,154,154,82,154,164,200,41,62 +.byte 38,38,152,38,45,190,76,11,38,38,152,38,45,190,76,11 +.byte 50,50,200,50,141,250,100,191,50,50,200,50,141,250,100,191 +.byte 176,176,250,176,233,74,125,89,176,176,250,176,233,74,125,89 +.byte 233,233,131,233,27,106,207,242,233,233,131,233,27,106,207,242 +.byte 15,15,60,15,120,51,30,119,15,15,60,15,120,51,30,119 +.byte 213,213,115,213,230,166,183,51,213,213,115,213,230,166,183,51 +.byte 128,128,58,128,116,186,29,244,128,128,58,128,116,186,29,244 +.byte 190,190,194,190,153,124,97,39,190,190,194,190,153,124,97,39 +.byte 205,205,19,205,38,222,135,235,205,205,19,205,38,222,135,235 +.byte 52,52,208,52,189,228,104,137,52,52,208,52,189,228,104,137 +.byte 72,72,61,72,122,117,144,50,72,72,61,72,122,117,144,50 +.byte 255,255,219,255,171,36,227,84,255,255,219,255,171,36,227,84 +.byte 122,122,245,122,247,143,244,141,122,122,245,122,247,143,244,141 +.byte 144,144,122,144,244,234,61,100,144,144,122,144,244,234,61,100 +.byte 95,95,97,95,194,62,190,157,95,95,97,95,194,62,190,157 +.byte 32,32,128,32,29,160,64,61,32,32,128,32,29,160,64,61 +.byte 104,104,189,104,103,213,208,15,104,104,189,104,103,213,208,15 +.byte 26,26,104,26,208,114,52,202,26,26,104,26,208,114,52,202 +.byte 174,174,130,174,25,44,65,183,174,174,130,174,25,44,65,183 +.byte 180,180,234,180,201,94,117,125,180,180,234,180,201,94,117,125 +.byte 84,84,77,84,154,25,168,206,84,84,77,84,154,25,168,206 +.byte 147,147,118,147,236,229,59,127,147,147,118,147,236,229,59,127 +.byte 34,34,136,34,13,170,68,47,34,34,136,34,13,170,68,47 +.byte 100,100,141,100,7,233,200,99,100,100,141,100,7,233,200,99 +.byte 241,241,227,241,219,18,255,42,241,241,227,241,219,18,255,42 +.byte 115,115,209,115,191,162,230,204,115,115,209,115,191,162,230,204 +.byte 18,18,72,18,144,90,36,130,18,18,72,18,144,90,36,130 +.byte 64,64,29,64,58,93,128,122,64,64,29,64,58,93,128,122 +.byte 8,8,32,8,64,40,16,72,8,8,32,8,64,40,16,72 +.byte 195,195,43,195,86,232,155,149,195,195,43,195,86,232,155,149 +.byte 236,236,151,236,51,123,197,223,236,236,151,236,51,123,197,223 +.byte 219,219,75,219,150,144,171,77,219,219,75,219,150,144,171,77 +.byte 161,161,190,161,97,31,95,192,161,161,190,161,97,31,95,192 +.byte 141,141,14,141,28,131,7,145,141,141,14,141,28,131,7,145 +.byte 61,61,244,61,245,201,122,200,61,61,244,61,245,201,122,200 +.byte 151,151,102,151,204,241,51,91,151,151,102,151,204,241,51,91 +.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +.byte 207,207,27,207,54,212,131,249,207,207,27,207,54,212,131,249 +.byte 43,43,172,43,69,135,86,110,43,43,172,43,69,135,86,110 +.byte 118,118,197,118,151,179,236,225,118,118,197,118,151,179,236,225 +.byte 130,130,50,130,100,176,25,230,130,130,50,130,100,176,25,230 +.byte 214,214,127,214,254,169,177,40,214,214,127,214,254,169,177,40 +.byte 27,27,108,27,216,119,54,195,27,27,108,27,216,119,54,195 +.byte 181,181,238,181,193,91,119,116,181,181,238,181,193,91,119,116 +.byte 175,175,134,175,17,41,67,190,175,175,134,175,17,41,67,190 +.byte 106,106,181,106,119,223,212,29,106,106,181,106,119,223,212,29 +.byte 80,80,93,80,186,13,160,234,80,80,93,80,186,13,160,234 +.byte 69,69,9,69,18,76,138,87,69,69,9,69,18,76,138,87 +.byte 243,243,235,243,203,24,251,56,243,243,235,243,203,24,251,56 +.byte 48,48,192,48,157,240,96,173,48,48,192,48,157,240,96,173 +.byte 239,239,155,239,43,116,195,196,239,239,155,239,43,116,195,196 +.byte 63,63,252,63,229,195,126,218,63,63,252,63,229,195,126,218 +.byte 85,85,73,85,146,28,170,199,85,85,73,85,146,28,170,199 +.byte 162,162,178,162,121,16,89,219,162,162,178,162,121,16,89,219 +.byte 234,234,143,234,3,101,201,233,234,234,143,234,3,101,201,233 +.byte 101,101,137,101,15,236,202,106,101,101,137,101,15,236,202,106 +.byte 186,186,210,186,185,104,105,3,186,186,210,186,185,104,105,3 +.byte 47,47,188,47,101,147,94,74,47,47,188,47,101,147,94,74 +.byte 192,192,39,192,78,231,157,142,192,192,39,192,78,231,157,142 +.byte 222,222,95,222,190,129,161,96,222,222,95,222,190,129,161,96 +.byte 28,28,112,28,224,108,56,252,28,28,112,28,224,108,56,252 +.byte 253,253,211,253,187,46,231,70,253,253,211,253,187,46,231,70 +.byte 77,77,41,77,82,100,154,31,77,77,41,77,82,100,154,31 +.byte 146,146,114,146,228,224,57,118,146,146,114,146,228,224,57,118 +.byte 117,117,201,117,143,188,234,250,117,117,201,117,143,188,234,250 +.byte 6,6,24,6,48,30,12,54,6,6,24,6,48,30,12,54 +.byte 138,138,18,138,36,152,9,174,138,138,18,138,36,152,9,174 +.byte 178,178,242,178,249,64,121,75,178,178,242,178,249,64,121,75 +.byte 230,230,191,230,99,89,209,133,230,230,191,230,99,89,209,133 +.byte 14,14,56,14,112,54,28,126,14,14,56,14,112,54,28,126 +.byte 31,31,124,31,248,99,62,231,31,31,124,31,248,99,62,231 +.byte 98,98,149,98,55,247,196,85,98,98,149,98,55,247,196,85 +.byte 212,212,119,212,238,163,181,58,212,212,119,212,238,163,181,58 +.byte 168,168,154,168,41,50,77,129,168,168,154,168,41,50,77,129 +.byte 150,150,98,150,196,244,49,82,150,150,98,150,196,244,49,82 +.byte 249,249,195,249,155,58,239,98,249,249,195,249,155,58,239,98 +.byte 197,197,51,197,102,246,151,163,197,197,51,197,102,246,151,163 +.byte 37,37,148,37,53,177,74,16,37,37,148,37,53,177,74,16 +.byte 89,89,121,89,242,32,178,171,89,89,121,89,242,32,178,171 +.byte 132,132,42,132,84,174,21,208,132,132,42,132,84,174,21,208 +.byte 114,114,213,114,183,167,228,197,114,114,213,114,183,167,228,197 +.byte 57,57,228,57,213,221,114,236,57,57,228,57,213,221,114,236 +.byte 76,76,45,76,90,97,152,22,76,76,45,76,90,97,152,22 +.byte 94,94,101,94,202,59,188,148,94,94,101,94,202,59,188,148 +.byte 120,120,253,120,231,133,240,159,120,120,253,120,231,133,240,159 +.byte 56,56,224,56,221,216,112,229,56,56,224,56,221,216,112,229 +.byte 140,140,10,140,20,134,5,152,140,140,10,140,20,134,5,152 +.byte 209,209,99,209,198,178,191,23,209,209,99,209,198,178,191,23 +.byte 165,165,174,165,65,11,87,228,165,165,174,165,65,11,87,228 +.byte 226,226,175,226,67,77,217,161,226,226,175,226,67,77,217,161 +.byte 97,97,153,97,47,248,194,78,97,97,153,97,47,248,194,78 +.byte 179,179,246,179,241,69,123,66,179,179,246,179,241,69,123,66 +.byte 33,33,132,33,21,165,66,52,33,33,132,33,21,165,66,52 +.byte 156,156,74,156,148,214,37,8,156,156,74,156,148,214,37,8 +.byte 30,30,120,30,240,102,60,238,30,30,120,30,240,102,60,238 +.byte 67,67,17,67,34,82,134,97,67,67,17,67,34,82,134,97 +.byte 199,199,59,199,118,252,147,177,199,199,59,199,118,252,147,177 +.byte 252,252,215,252,179,43,229,79,252,252,215,252,179,43,229,79 +.byte 4,4,16,4,32,20,8,36,4,4,16,4,32,20,8,36 +.byte 81,81,89,81,178,8,162,227,81,81,89,81,178,8,162,227 +.byte 153,153,94,153,188,199,47,37,153,153,94,153,188,199,47,37 +.byte 109,109,169,109,79,196,218,34,109,109,169,109,79,196,218,34 +.byte 13,13,52,13,104,57,26,101,13,13,52,13,104,57,26,101 +.byte 250,250,207,250,131,53,233,121,250,250,207,250,131,53,233,121 +.byte 223,223,91,223,182,132,163,105,223,223,91,223,182,132,163,105 +.byte 126,126,229,126,215,155,252,169,126,126,229,126,215,155,252,169 +.byte 36,36,144,36,61,180,72,25,36,36,144,36,61,180,72,25 +.byte 59,59,236,59,197,215,118,254,59,59,236,59,197,215,118,254 +.byte 171,171,150,171,49,61,75,154,171,171,150,171,49,61,75,154 +.byte 206,206,31,206,62,209,129,240,206,206,31,206,62,209,129,240 +.byte 17,17,68,17,136,85,34,153,17,17,68,17,136,85,34,153 +.byte 143,143,6,143,12,137,3,131,143,143,6,143,12,137,3,131 +.byte 78,78,37,78,74,107,156,4,78,78,37,78,74,107,156,4 +.byte 183,183,230,183,209,81,115,102,183,183,230,183,209,81,115,102 +.byte 235,235,139,235,11,96,203,224,235,235,139,235,11,96,203,224 +.byte 60,60,240,60,253,204,120,193,60,60,240,60,253,204,120,193 +.byte 129,129,62,129,124,191,31,253,129,129,62,129,124,191,31,253 +.byte 148,148,106,148,212,254,53,64,148,148,106,148,212,254,53,64 +.byte 247,247,251,247,235,12,243,28,247,247,251,247,235,12,243,28 +.byte 185,185,222,185,161,103,111,24,185,185,222,185,161,103,111,24 +.byte 19,19,76,19,152,95,38,139,19,19,76,19,152,95,38,139 +.byte 44,44,176,44,125,156,88,81,44,44,176,44,125,156,88,81 +.byte 211,211,107,211,214,184,187,5,211,211,107,211,214,184,187,5 +.byte 231,231,187,231,107,92,211,140,231,231,187,231,107,92,211,140 +.byte 110,110,165,110,87,203,220,57,110,110,165,110,87,203,220,57 +.byte 196,196,55,196,110,243,149,170,196,196,55,196,110,243,149,170 +.byte 3,3,12,3,24,15,6,27,3,3,12,3,24,15,6,27 +.byte 86,86,69,86,138,19,172,220,86,86,69,86,138,19,172,220 +.byte 68,68,13,68,26,73,136,94,68,68,13,68,26,73,136,94 +.byte 127,127,225,127,223,158,254,160,127,127,225,127,223,158,254,160 +.byte 169,169,158,169,33,55,79,136,169,169,158,169,33,55,79,136 +.byte 42,42,168,42,77,130,84,103,42,42,168,42,77,130,84,103 +.byte 187,187,214,187,177,109,107,10,187,187,214,187,177,109,107,10 +.byte 193,193,35,193,70,226,159,135,193,193,35,193,70,226,159,135 +.byte 83,83,81,83,162,2,166,241,83,83,81,83,162,2,166,241 +.byte 220,220,87,220,174,139,165,114,220,220,87,220,174,139,165,114 +.byte 11,11,44,11,88,39,22,83,11,11,44,11,88,39,22,83 +.byte 157,157,78,157,156,211,39,1,157,157,78,157,156,211,39,1 +.byte 108,108,173,108,71,193,216,43,108,108,173,108,71,193,216,43 +.byte 49,49,196,49,149,245,98,164,49,49,196,49,149,245,98,164 +.byte 116,116,205,116,135,185,232,243,116,116,205,116,135,185,232,243 +.byte 246,246,255,246,227,9,241,21,246,246,255,246,227,9,241,21 +.byte 70,70,5,70,10,67,140,76,70,70,5,70,10,67,140,76 +.byte 172,172,138,172,9,38,69,165,172,172,138,172,9,38,69,165 +.byte 137,137,30,137,60,151,15,181,137,137,30,137,60,151,15,181 +.byte 20,20,80,20,160,68,40,180,20,20,80,20,160,68,40,180 +.byte 225,225,163,225,91,66,223,186,225,225,163,225,91,66,223,186 +.byte 22,22,88,22,176,78,44,166,22,22,88,22,176,78,44,166 +.byte 58,58,232,58,205,210,116,247,58,58,232,58,205,210,116,247 +.byte 105,105,185,105,111,208,210,6,105,105,185,105,111,208,210,6 +.byte 9,9,36,9,72,45,18,65,9,9,36,9,72,45,18,65 +.byte 112,112,221,112,167,173,224,215,112,112,221,112,167,173,224,215 +.byte 182,182,226,182,217,84,113,111,182,182,226,182,217,84,113,111 +.byte 208,208,103,208,206,183,189,30,208,208,103,208,206,183,189,30 +.byte 237,237,147,237,59,126,199,214,237,237,147,237,59,126,199,214 +.byte 204,204,23,204,46,219,133,226,204,204,23,204,46,219,133,226 +.byte 66,66,21,66,42,87,132,104,66,66,21,66,42,87,132,104 +.byte 152,152,90,152,180,194,45,44,152,152,90,152,180,194,45,44 +.byte 164,164,170,164,73,14,85,237,164,164,170,164,73,14,85,237 +.byte 40,40,160,40,93,136,80,117,40,40,160,40,93,136,80,117 +.byte 92,92,109,92,218,49,184,134,92,92,109,92,218,49,184,134 +.byte 248,248,199,248,147,63,237,107,248,248,199,248,147,63,237,107 +.byte 134,134,34,134,68,164,17,194,134,134,34,134,68,164,17,194 +.byte 24,35,198,232,135,184,1,79 +.byte 54,166,210,245,121,111,145,82 +.byte 96,188,155,142,163,12,123,53 +.byte 29,224,215,194,46,75,254,87 +.byte 21,119,55,229,159,240,74,218 +.byte 88,201,41,10,177,160,107,133 +.byte 189,93,16,244,203,62,5,103 +.byte 228,39,65,139,167,125,149,216 +.byte 251,238,124,102,221,23,71,158 +.byte 202,45,191,7,173,90,131,51 diff --git a/deps/openssl/asm/x64-elf-gas/x86_64cpuid.s b/deps/openssl/asm/x64-elf-gas/x86_64cpuid.s new file mode 100644 index 0000000000..0a565a989b --- /dev/null +++ b/deps/openssl/asm/x64-elf-gas/x86_64cpuid.s @@ -0,0 +1,194 @@ + +.section .init + call OPENSSL_cpuid_setup + +.text + + +.globl OPENSSL_atomic_add +.type OPENSSL_atomic_add,@function +.align 16 +OPENSSL_atomic_add: + movl (%rdi),%eax +.Lspin: leaq (%rsi,%rax,1),%r8 +.byte 0xf0 + + cmpxchgl %r8d,(%rdi) + jne .Lspin + movl %r8d,%eax +.byte 0x48,0x98 + + .byte 0xf3,0xc3 +.size OPENSSL_atomic_add,.-OPENSSL_atomic_add + +.globl OPENSSL_rdtsc +.type OPENSSL_rdtsc,@function +.align 16 +OPENSSL_rdtsc: + rdtsc + shlq $32,%rdx + orq %rdx,%rax + .byte 0xf3,0xc3 +.size OPENSSL_rdtsc,.-OPENSSL_rdtsc + +.globl OPENSSL_ia32_cpuid +.type OPENSSL_ia32_cpuid,@function +.align 16 +OPENSSL_ia32_cpuid: + movq %rbx,%r8 + + xorl %eax,%eax + cpuid + movl %eax,%r11d + + xorl %eax,%eax + cmpl $1970169159,%ebx + setne %al + movl %eax,%r9d + cmpl $1231384169,%edx + setne %al + orl %eax,%r9d + cmpl $1818588270,%ecx + setne %al + orl %eax,%r9d + jz .Lintel + + cmpl $1752462657,%ebx + setne %al + movl %eax,%r10d + cmpl $1769238117,%edx + setne %al + orl %eax,%r10d + cmpl $1145913699,%ecx + setne %al + orl %eax,%r10d + jnz .Lintel + + + movl $2147483648,%eax + cpuid + cmpl $2147483656,%eax + jb .Lintel + + movl $2147483656,%eax + cpuid + movzbq %cl,%r10 + incq %r10 + + movl $1,%eax + cpuid + btl $28,%edx + jnc .Ldone + shrl $16,%ebx + cmpb %r10b,%bl + ja .Ldone + andl $4026531839,%edx + jmp .Ldone + +.Lintel: + cmpl $4,%r11d + movl $-1,%r10d + jb .Lnocacheinfo + + movl $4,%eax + movl $0,%ecx + cpuid + movl %eax,%r10d + shrl $14,%r10d + andl $4095,%r10d + +.Lnocacheinfo: + movl $1,%eax + cpuid + cmpl $0,%r9d + jne .Lnotintel + orl $1048576,%edx + andb $15,%ah + cmpb $15,%ah + je .Lnotintel + orl $1073741824,%edx +.Lnotintel: + btl $28,%edx + jnc .Ldone + andl $4026531839,%edx + cmpl $0,%r10d + je .Ldone + + orl $268435456,%edx + shrl $16,%ebx + cmpb $1,%bl + ja .Ldone + andl $4026531839,%edx +.Ldone: + shlq $32,%rcx + movl %edx,%eax + movq %r8,%rbx + orq %rcx,%rax + .byte 0xf3,0xc3 +.size OPENSSL_ia32_cpuid,.-OPENSSL_ia32_cpuid + +.globl OPENSSL_cleanse +.type OPENSSL_cleanse,@function +.align 16 +OPENSSL_cleanse: + xorq %rax,%rax + cmpq $15,%rsi + jae .Lot + cmpq $0,%rsi + je .Lret +.Little: + movb %al,(%rdi) + subq $1,%rsi + leaq 1(%rdi),%rdi + jnz .Little +.Lret: + .byte 0xf3,0xc3 +.align 16 +.Lot: + testq $7,%rdi + jz .Laligned + movb %al,(%rdi) + leaq -1(%rsi),%rsi + leaq 1(%rdi),%rdi + jmp .Lot +.Laligned: + movq %rax,(%rdi) + leaq -8(%rsi),%rsi + testq $-8,%rsi + leaq 8(%rdi),%rdi + jnz .Laligned + cmpq $0,%rsi + jne .Little + .byte 0xf3,0xc3 +.size OPENSSL_cleanse,.-OPENSSL_cleanse +.globl OPENSSL_wipe_cpu +.type OPENSSL_wipe_cpu,@function +.align 16 +OPENSSL_wipe_cpu: + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + pxor %xmm8,%xmm8 + pxor %xmm9,%xmm9 + pxor %xmm10,%xmm10 + pxor %xmm11,%xmm11 + pxor %xmm12,%xmm12 + pxor %xmm13,%xmm13 + pxor %xmm14,%xmm14 + pxor %xmm15,%xmm15 + xorq %rcx,%rcx + xorq %rdx,%rdx + xorq %rsi,%rsi + xorq %rdi,%rdi + xorq %r8,%r8 + xorq %r9,%r9 + xorq %r10,%r10 + xorq %r11,%r11 + leaq 8(%rsp),%rax + .byte 0xf3,0xc3 +.size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu diff --git a/deps/openssl/asm/x64-macosx-gas/aes/aes-x86_64.s b/deps/openssl/asm/x64-macosx-gas/aes/aes-x86_64.s new file mode 100644 index 0000000000..d42e1ea79a --- /dev/null +++ b/deps/openssl/asm/x64-macosx-gas/aes/aes-x86_64.s @@ -0,0 +1,2545 @@ +.text + + +.p2align 4 +_x86_64_AES_encrypt: + xorl 0(%r15),%eax + xorl 4(%r15),%ebx + xorl 8(%r15),%ecx + xorl 12(%r15),%edx + + movl 240(%r15),%r13d + subl $1,%r13d + jmp L$enc_loop +.p2align 4 +L$enc_loop: + + movzbl %al,%esi + movzbl %bl,%edi + movzbl %cl,%ebp + movl 0(%r14,%rsi,8),%r10d + movl 0(%r14,%rdi,8),%r11d + movl 0(%r14,%rbp,8),%r12d + + movzbl %bh,%esi + movzbl %ch,%edi + movzbl %dl,%ebp + xorl 3(%r14,%rsi,8),%r10d + xorl 3(%r14,%rdi,8),%r11d + movl 0(%r14,%rbp,8),%r8d + + movzbl %dh,%esi + shrl $16,%ecx + movzbl %ah,%ebp + xorl 3(%r14,%rsi,8),%r12d + shrl $16,%edx + xorl 3(%r14,%rbp,8),%r8d + + shrl $16,%ebx + leaq 16(%r15),%r15 + shrl $16,%eax + + movzbl %cl,%esi + movzbl %dl,%edi + movzbl %al,%ebp + xorl 2(%r14,%rsi,8),%r10d + xorl 2(%r14,%rdi,8),%r11d + xorl 2(%r14,%rbp,8),%r12d + + movzbl %dh,%esi + movzbl %ah,%edi + movzbl %bl,%ebp + xorl 1(%r14,%rsi,8),%r10d + xorl 1(%r14,%rdi,8),%r11d + xorl 2(%r14,%rbp,8),%r8d + + movl 12(%r15),%edx + movzbl %bh,%edi + movzbl %ch,%ebp + movl 0(%r15),%eax + xorl 1(%r14,%rdi,8),%r12d + xorl 1(%r14,%rbp,8),%r8d + + movl 4(%r15),%ebx + movl 8(%r15),%ecx + xorl %r10d,%eax + xorl %r11d,%ebx + xorl %r12d,%ecx + xorl %r8d,%edx + subl $1,%r13d + jnz L$enc_loop + movzbl %al,%esi + movzbl %bl,%edi + movzbl %cl,%ebp + movzbl 2(%r14,%rsi,8),%r10d + movzbl 2(%r14,%rdi,8),%r11d + movzbl 2(%r14,%rbp,8),%r12d + + movzbl %dl,%esi + movzbl %bh,%edi + movzbl %ch,%ebp + movzbl 2(%r14,%rsi,8),%r8d + movl 0(%r14,%rdi,8),%edi + movl 0(%r14,%rbp,8),%ebp + + andl $65280,%edi + andl $65280,%ebp + + xorl %edi,%r10d + xorl %ebp,%r11d + shrl $16,%ecx + + movzbl %dh,%esi + movzbl %ah,%edi + shrl $16,%edx + movl 0(%r14,%rsi,8),%esi + movl 0(%r14,%rdi,8),%edi + + andl $65280,%esi + andl $65280,%edi + shrl $16,%ebx + xorl %esi,%r12d + xorl %edi,%r8d + shrl $16,%eax + + movzbl %cl,%esi + movzbl %dl,%edi + movzbl %al,%ebp + movl 0(%r14,%rsi,8),%esi + movl 0(%r14,%rdi,8),%edi + movl 0(%r14,%rbp,8),%ebp + + andl $16711680,%esi + andl $16711680,%edi + andl $16711680,%ebp + + xorl %esi,%r10d + xorl %edi,%r11d + xorl %ebp,%r12d + + movzbl %bl,%esi + movzbl %dh,%edi + movzbl %ah,%ebp + movl 0(%r14,%rsi,8),%esi + movl 2(%r14,%rdi,8),%edi + movl 2(%r14,%rbp,8),%ebp + + andl $16711680,%esi + andl $4278190080,%edi + andl $4278190080,%ebp + + xorl %esi,%r8d + xorl %edi,%r10d + xorl %ebp,%r11d + + movzbl %bh,%esi + movzbl %ch,%edi + movl 16+12(%r15),%edx + movl 2(%r14,%rsi,8),%esi + movl 2(%r14,%rdi,8),%edi + movl 16+0(%r15),%eax + + andl $4278190080,%esi + andl $4278190080,%edi + + xorl %esi,%r12d + xorl %edi,%r8d + + movl 16+4(%r15),%ebx + movl 16+8(%r15),%ecx + xorl %r10d,%eax + xorl %r11d,%ebx + xorl %r12d,%ecx + xorl %r8d,%edx +.byte 0xf3,0xc3 + + + +.p2align 4 +_x86_64_AES_encrypt_compact: + leaq 128(%r14),%r8 + movl 0-128(%r8),%edi + movl 32-128(%r8),%ebp + movl 64-128(%r8),%r10d + movl 96-128(%r8),%r11d + movl 128-128(%r8),%edi + movl 160-128(%r8),%ebp + movl 192-128(%r8),%r10d + movl 224-128(%r8),%r11d + jmp L$enc_loop_compact +.p2align 4 +L$enc_loop_compact: + xorl 0(%r15),%eax + xorl 4(%r15),%ebx + xorl 8(%r15),%ecx + xorl 12(%r15),%edx + leaq 16(%r15),%r15 + movzbl %al,%r10d + movzbl %bl,%r11d + movzbl %cl,%r12d + movzbl (%r14,%r10,1),%r10d + movzbl (%r14,%r11,1),%r11d + movzbl (%r14,%r12,1),%r12d + + movzbl %dl,%r8d + movzbl %bh,%esi + movzbl %ch,%edi + movzbl (%r14,%r8,1),%r8d + movzbl (%r14,%rsi,1),%r9d + movzbl (%r14,%rdi,1),%r13d + + movzbl %dh,%ebp + movzbl %ah,%esi + shrl $16,%ecx + movzbl (%r14,%rbp,1),%ebp + movzbl (%r14,%rsi,1),%esi + shrl $16,%edx + + movzbl %cl,%edi + shll $8,%r9d + shll $8,%r13d + movzbl (%r14,%rdi,1),%edi + xorl %r9d,%r10d + xorl %r13d,%r11d + + movzbl %dl,%r9d + shrl $16,%eax + shrl $16,%ebx + movzbl %al,%r13d + shll $8,%ebp + shll $8,%esi + movzbl (%r14,%r9,1),%r9d + movzbl (%r14,%r13,1),%r13d + xorl %ebp,%r12d + xorl %esi,%r8d + + movzbl %bl,%ebp + movzbl %dh,%esi + shll $16,%edi + movzbl (%r14,%rbp,1),%ebp + movzbl (%r14,%rsi,1),%esi + xorl %edi,%r10d + + movzbl %ah,%edi + shrl $8,%ecx + shrl $8,%ebx + movzbl (%r14,%rdi,1),%edi + movzbl (%r14,%rcx,1),%edx + movzbl (%r14,%rbx,1),%ecx + shll $16,%r9d + shll $16,%r13d + shll $16,%ebp + xorl %r9d,%r11d + xorl %r13d,%r12d + xorl %ebp,%r8d + + shll $24,%esi + shll $24,%edi + shll $24,%edx + xorl %esi,%r10d + shll $24,%ecx + xorl %edi,%r11d + movl %r10d,%eax + movl %r11d,%ebx + xorl %r12d,%ecx + xorl %r8d,%edx + cmpq 16(%rsp),%r15 + je L$enc_compact_done + movl %eax,%esi + movl %ebx,%edi + andl $2155905152,%esi + andl $2155905152,%edi + movl %esi,%r10d + movl %edi,%r11d + shrl $7,%r10d + leal (%rax,%rax,1),%r8d + shrl $7,%r11d + leal (%rbx,%rbx,1),%r9d + subl %r10d,%esi + subl %r11d,%edi + andl $4278124286,%r8d + andl $4278124286,%r9d + andl $454761243,%esi + andl $454761243,%edi + movl %eax,%r10d + movl %ebx,%r11d + xorl %esi,%r8d + xorl %edi,%r9d + + xorl %r8d,%eax + xorl %r9d,%ebx + movl %ecx,%esi + movl %edx,%edi + roll $24,%eax + roll $24,%ebx + andl $2155905152,%esi + andl $2155905152,%edi + xorl %r8d,%eax + xorl %r9d,%ebx + movl %esi,%r12d + movl %edi,%ebp + rorl $16,%r10d + rorl $16,%r11d + shrl $7,%r12d + leal (%rcx,%rcx,1),%r8d + xorl %r10d,%eax + xorl %r11d,%ebx + shrl $7,%ebp + leal (%rdx,%rdx,1),%r9d + rorl $8,%r10d + rorl $8,%r11d + subl %r12d,%esi + subl %ebp,%edi + xorl %r10d,%eax + xorl %r11d,%ebx + + andl $4278124286,%r8d + andl $4278124286,%r9d + andl $454761243,%esi + andl $454761243,%edi + movl %ecx,%r12d + movl %edx,%ebp + xorl %esi,%r8d + xorl %edi,%r9d + + xorl %r8d,%ecx + xorl %r9d,%edx + roll $24,%ecx + roll $24,%edx + xorl %r8d,%ecx + xorl %r9d,%edx + movl 0(%r14),%esi + rorl $16,%r12d + rorl $16,%ebp + movl 64(%r14),%edi + xorl %r12d,%ecx + xorl %ebp,%edx + movl 128(%r14),%r8d + rorl $8,%r12d + rorl $8,%ebp + movl 192(%r14),%r9d + xorl %r12d,%ecx + xorl %ebp,%edx + jmp L$enc_loop_compact +.p2align 4 +L$enc_compact_done: + xorl 0(%r15),%eax + xorl 4(%r15),%ebx + xorl 8(%r15),%ecx + xorl 12(%r15),%edx +.byte 0xf3,0xc3 + + +.globl _AES_encrypt + +.p2align 4 +_AES_encrypt: + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + + + movq %rsp,%r10 + leaq -63(%rdx),%rcx + andq $-64,%rsp + subq %rsp,%rcx + negq %rcx + andq $960,%rcx + subq %rcx,%rsp + subq $32,%rsp + + movq %rsi,16(%rsp) + movq %r10,24(%rsp) +L$enc_prologue: + + movq %rdx,%r15 + movl 240(%r15),%r13d + + movl 0(%rdi),%eax + movl 4(%rdi),%ebx + movl 8(%rdi),%ecx + movl 12(%rdi),%edx + + shll $4,%r13d + leaq (%r15,%r13,1),%rbp + movq %r15,(%rsp) + movq %rbp,8(%rsp) + + + leaq L$AES_Te+2048(%rip),%r14 + leaq 768(%rsp),%rbp + subq %r14,%rbp + andq $768,%rbp + leaq (%r14,%rbp,1),%r14 + + call _x86_64_AES_encrypt_compact + + movq 16(%rsp),%r9 + movq 24(%rsp),%rsi + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + + movq (%rsi),%r15 + movq 8(%rsi),%r14 + movq 16(%rsi),%r13 + movq 24(%rsi),%r12 + movq 32(%rsi),%rbp + movq 40(%rsi),%rbx + leaq 48(%rsi),%rsp +L$enc_epilogue: + .byte 0xf3,0xc3 + + +.p2align 4 +_x86_64_AES_decrypt: + xorl 0(%r15),%eax + xorl 4(%r15),%ebx + xorl 8(%r15),%ecx + xorl 12(%r15),%edx + + movl 240(%r15),%r13d + subl $1,%r13d + jmp L$dec_loop +.p2align 4 +L$dec_loop: + + movzbl %al,%esi + movzbl %bl,%edi + movzbl %cl,%ebp + movl 0(%r14,%rsi,8),%r10d + movl 0(%r14,%rdi,8),%r11d + movl 0(%r14,%rbp,8),%r12d + + movzbl %dh,%esi + movzbl %ah,%edi + movzbl %dl,%ebp + xorl 3(%r14,%rsi,8),%r10d + xorl 3(%r14,%rdi,8),%r11d + movl 0(%r14,%rbp,8),%r8d + + movzbl %bh,%esi + shrl $16,%eax + movzbl %ch,%ebp + xorl 3(%r14,%rsi,8),%r12d + shrl $16,%edx + xorl 3(%r14,%rbp,8),%r8d + + shrl $16,%ebx + leaq 16(%r15),%r15 + shrl $16,%ecx + + movzbl %cl,%esi + movzbl %dl,%edi + movzbl %al,%ebp + xorl 2(%r14,%rsi,8),%r10d + xorl 2(%r14,%rdi,8),%r11d + xorl 2(%r14,%rbp,8),%r12d + + movzbl %bh,%esi + movzbl %ch,%edi + movzbl %bl,%ebp + xorl 1(%r14,%rsi,8),%r10d + xorl 1(%r14,%rdi,8),%r11d + xorl 2(%r14,%rbp,8),%r8d + + movzbl %dh,%esi + movl 12(%r15),%edx + movzbl %ah,%ebp + xorl 1(%r14,%rsi,8),%r12d + movl 0(%r15),%eax + xorl 1(%r14,%rbp,8),%r8d + + xorl %r10d,%eax + movl 4(%r15),%ebx + movl 8(%r15),%ecx + xorl %r12d,%ecx + xorl %r11d,%ebx + xorl %r8d,%edx + subl $1,%r13d + jnz L$dec_loop + leaq 2048(%r14),%r14 + movzbl %al,%esi + movzbl %bl,%edi + movzbl %cl,%ebp + movzbl (%r14,%rsi,1),%r10d + movzbl (%r14,%rdi,1),%r11d + movzbl (%r14,%rbp,1),%r12d + + movzbl %dl,%esi + movzbl %dh,%edi + movzbl %ah,%ebp + movzbl (%r14,%rsi,1),%r8d + movzbl (%r14,%rdi,1),%edi + movzbl (%r14,%rbp,1),%ebp + + shll $8,%edi + shll $8,%ebp + + xorl %edi,%r10d + xorl %ebp,%r11d + shrl $16,%edx + + movzbl %bh,%esi + movzbl %ch,%edi + shrl $16,%eax + movzbl (%r14,%rsi,1),%esi + movzbl (%r14,%rdi,1),%edi + + shll $8,%esi + shll $8,%edi + shrl $16,%ebx + xorl %esi,%r12d + xorl %edi,%r8d + shrl $16,%ecx + + movzbl %cl,%esi + movzbl %dl,%edi + movzbl %al,%ebp + movzbl (%r14,%rsi,1),%esi + movzbl (%r14,%rdi,1),%edi + movzbl (%r14,%rbp,1),%ebp + + shll $16,%esi + shll $16,%edi + shll $16,%ebp + + xorl %esi,%r10d + xorl %edi,%r11d + xorl %ebp,%r12d + + movzbl %bl,%esi + movzbl %bh,%edi + movzbl %ch,%ebp + movzbl (%r14,%rsi,1),%esi + movzbl (%r14,%rdi,1),%edi + movzbl (%r14,%rbp,1),%ebp + + shll $16,%esi + shll $24,%edi + shll $24,%ebp + + xorl %esi,%r8d + xorl %edi,%r10d + xorl %ebp,%r11d + + movzbl %dh,%esi + movzbl %ah,%edi + movl 16+12(%r15),%edx + movzbl (%r14,%rsi,1),%esi + movzbl (%r14,%rdi,1),%edi + movl 16+0(%r15),%eax + + shll $24,%esi + shll $24,%edi + + xorl %esi,%r12d + xorl %edi,%r8d + + movl 16+4(%r15),%ebx + movl 16+8(%r15),%ecx + leaq -2048(%r14),%r14 + xorl %r10d,%eax + xorl %r11d,%ebx + xorl %r12d,%ecx + xorl %r8d,%edx +.byte 0xf3,0xc3 + + + +.p2align 4 +_x86_64_AES_decrypt_compact: + leaq 128(%r14),%r8 + movl 0-128(%r8),%edi + movl 32-128(%r8),%ebp + movl 64-128(%r8),%r10d + movl 96-128(%r8),%r11d + movl 128-128(%r8),%edi + movl 160-128(%r8),%ebp + movl 192-128(%r8),%r10d + movl 224-128(%r8),%r11d + jmp L$dec_loop_compact + +.p2align 4 +L$dec_loop_compact: + xorl 0(%r15),%eax + xorl 4(%r15),%ebx + xorl 8(%r15),%ecx + xorl 12(%r15),%edx + leaq 16(%r15),%r15 + movzbl %al,%r10d + movzbl %bl,%r11d + movzbl %cl,%r12d + movzbl (%r14,%r10,1),%r10d + movzbl (%r14,%r11,1),%r11d + movzbl (%r14,%r12,1),%r12d + + movzbl %dl,%r8d + movzbl %dh,%esi + movzbl %ah,%edi + movzbl (%r14,%r8,1),%r8d + movzbl (%r14,%rsi,1),%r9d + movzbl (%r14,%rdi,1),%r13d + + movzbl %bh,%ebp + movzbl %ch,%esi + shrl $16,%ecx + movzbl (%r14,%rbp,1),%ebp + movzbl (%r14,%rsi,1),%esi + shrl $16,%edx + + movzbl %cl,%edi + shll $8,%r9d + shll $8,%r13d + movzbl (%r14,%rdi,1),%edi + xorl %r9d,%r10d + xorl %r13d,%r11d + + movzbl %dl,%r9d + shrl $16,%eax + shrl $16,%ebx + movzbl %al,%r13d + shll $8,%ebp + shll $8,%esi + movzbl (%r14,%r9,1),%r9d + movzbl (%r14,%r13,1),%r13d + xorl %ebp,%r12d + xorl %esi,%r8d + + movzbl %bl,%ebp + movzbl %bh,%esi + shll $16,%edi + movzbl (%r14,%rbp,1),%ebp + movzbl (%r14,%rsi,1),%esi + xorl %edi,%r10d + + movzbl %ch,%edi + shll $16,%r9d + shll $16,%r13d + movzbl (%r14,%rdi,1),%ebx + xorl %r9d,%r11d + xorl %r13d,%r12d + + movzbl %dh,%edi + shrl $8,%eax + shll $16,%ebp + movzbl (%r14,%rdi,1),%ecx + movzbl (%r14,%rax,1),%edx + xorl %ebp,%r8d + + shll $24,%esi + shll $24,%ebx + shll $24,%ecx + xorl %esi,%r10d + shll $24,%edx + xorl %r11d,%ebx + movl %r10d,%eax + xorl %r12d,%ecx + xorl %r8d,%edx + cmpq 16(%rsp),%r15 + je L$dec_compact_done + + movq 256+0(%r14),%rsi + shlq $32,%rbx + shlq $32,%rdx + movq 256+8(%r14),%rdi + orq %rbx,%rax + orq %rdx,%rcx + movq 256+16(%r14),%rbp + movq %rax,%rbx + movq %rcx,%rdx + andq %rsi,%rbx + andq %rsi,%rdx + movq %rbx,%r9 + movq %rdx,%r12 + shrq $7,%r9 + leaq (%rax,%rax,1),%r8 + shrq $7,%r12 + leaq (%rcx,%rcx,1),%r11 + subq %r9,%rbx + subq %r12,%rdx + andq %rdi,%r8 + andq %rdi,%r11 + andq %rbp,%rbx + andq %rbp,%rdx + xorq %r8,%rbx + xorq %r11,%rdx + movq %rbx,%r8 + movq %rdx,%r11 + + andq %rsi,%rbx + andq %rsi,%rdx + movq %rbx,%r10 + movq %rdx,%r13 + shrq $7,%r10 + leaq (%r8,%r8,1),%r9 + shrq $7,%r13 + leaq (%r11,%r11,1),%r12 + subq %r10,%rbx + subq %r13,%rdx + andq %rdi,%r9 + andq %rdi,%r12 + andq %rbp,%rbx + andq %rbp,%rdx + xorq %r9,%rbx + xorq %r12,%rdx + movq %rbx,%r9 + movq %rdx,%r12 + + andq %rsi,%rbx + andq %rsi,%rdx + movq %rbx,%r10 + movq %rdx,%r13 + shrq $7,%r10 + xorq %rax,%r8 + shrq $7,%r13 + xorq %rcx,%r11 + subq %r10,%rbx + subq %r13,%rdx + leaq (%r9,%r9,1),%r10 + leaq (%r12,%r12,1),%r13 + xorq %rax,%r9 + xorq %rcx,%r12 + andq %rdi,%r10 + andq %rdi,%r13 + andq %rbp,%rbx + andq %rbp,%rdx + xorq %rbx,%r10 + xorq %rdx,%r13 + + xorq %r10,%rax + xorq %r13,%rcx + xorq %r10,%r8 + xorq %r13,%r11 + movq %rax,%rbx + movq %rcx,%rdx + xorq %r10,%r9 + xorq %r13,%r12 + shrq $32,%rbx + shrq $32,%rdx + xorq %r8,%r10 + xorq %r11,%r13 + roll $8,%eax + roll $8,%ecx + xorq %r9,%r10 + xorq %r12,%r13 + + roll $8,%ebx + roll $8,%edx + xorl %r10d,%eax + xorl %r13d,%ecx + shrq $32,%r10 + shrq $32,%r13 + xorl %r10d,%ebx + xorl %r13d,%edx + + movq %r8,%r10 + movq %r11,%r13 + shrq $32,%r10 + shrq $32,%r13 + roll $24,%r8d + roll $24,%r11d + roll $24,%r10d + roll $24,%r13d + xorl %r8d,%eax + xorl %r11d,%ecx + movq %r9,%r8 + movq %r12,%r11 + xorl %r10d,%ebx + xorl %r13d,%edx + + movq 0(%r14),%rsi + shrq $32,%r8 + shrq $32,%r11 + movq 64(%r14),%rdi + roll $16,%r9d + roll $16,%r12d + movq 128(%r14),%rbp + roll $16,%r8d + roll $16,%r11d + movq 192(%r14),%r10 + xorl %r9d,%eax + xorl %r12d,%ecx + movq 256(%r14),%r13 + xorl %r8d,%ebx + xorl %r11d,%edx + jmp L$dec_loop_compact +.p2align 4 +L$dec_compact_done: + xorl 0(%r15),%eax + xorl 4(%r15),%ebx + xorl 8(%r15),%ecx + xorl 12(%r15),%edx +.byte 0xf3,0xc3 + + +.globl _AES_decrypt + +.p2align 4 +_AES_decrypt: + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + + + movq %rsp,%r10 + leaq -63(%rdx),%rcx + andq $-64,%rsp + subq %rsp,%rcx + negq %rcx + andq $960,%rcx + subq %rcx,%rsp + subq $32,%rsp + + movq %rsi,16(%rsp) + movq %r10,24(%rsp) +L$dec_prologue: + + movq %rdx,%r15 + movl 240(%r15),%r13d + + movl 0(%rdi),%eax + movl 4(%rdi),%ebx + movl 8(%rdi),%ecx + movl 12(%rdi),%edx + + shll $4,%r13d + leaq (%r15,%r13,1),%rbp + movq %r15,(%rsp) + movq %rbp,8(%rsp) + + + leaq L$AES_Td+2048(%rip),%r14 + leaq 768(%rsp),%rbp + subq %r14,%rbp + andq $768,%rbp + leaq (%r14,%rbp,1),%r14 + shrq $3,%rbp + addq %rbp,%r14 + + call _x86_64_AES_decrypt_compact + + movq 16(%rsp),%r9 + movq 24(%rsp),%rsi + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + + movq (%rsi),%r15 + movq 8(%rsi),%r14 + movq 16(%rsi),%r13 + movq 24(%rsi),%r12 + movq 32(%rsi),%rbp + movq 40(%rsi),%rbx + leaq 48(%rsi),%rsp +L$dec_epilogue: + .byte 0xf3,0xc3 + +.globl _AES_set_encrypt_key + +.p2align 4 +_AES_set_encrypt_key: + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + subq $8,%rsp +L$enc_key_prologue: + + call _x86_64_AES_set_encrypt_key + + movq 8(%rsp),%r15 + movq 16(%rsp),%r14 + movq 24(%rsp),%r13 + movq 32(%rsp),%r12 + movq 40(%rsp),%rbp + movq 48(%rsp),%rbx + addq $56,%rsp +L$enc_key_epilogue: + .byte 0xf3,0xc3 + + + +.p2align 4 +_x86_64_AES_set_encrypt_key: + movl %esi,%ecx + movq %rdi,%rsi + movq %rdx,%rdi + + testq $-1,%rsi + jz L$badpointer + testq $-1,%rdi + jz L$badpointer + + leaq L$AES_Te(%rip),%rbp + leaq 2048+128(%rbp),%rbp + + + movl 0-128(%rbp),%eax + movl 32-128(%rbp),%ebx + movl 64-128(%rbp),%r8d + movl 96-128(%rbp),%edx + movl 128-128(%rbp),%eax + movl 160-128(%rbp),%ebx + movl 192-128(%rbp),%r8d + movl 224-128(%rbp),%edx + + cmpl $128,%ecx + je L$10rounds + cmpl $192,%ecx + je L$12rounds + cmpl $256,%ecx + je L$14rounds + movq $-2,%rax + jmp L$exit + +L$10rounds: + movq 0(%rsi),%rax + movq 8(%rsi),%rdx + movq %rax,0(%rdi) + movq %rdx,8(%rdi) + + shrq $32,%rdx + xorl %ecx,%ecx + jmp L$10shortcut +.p2align 2 +L$10loop: + movl 0(%rdi),%eax + movl 12(%rdi),%edx +L$10shortcut: + movzbl %dl,%esi + movzbl -128(%rbp,%rsi,1),%ebx + movzbl %dh,%esi + shll $24,%ebx + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + shrl $16,%edx + movzbl %dl,%esi + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + movzbl %dh,%esi + shll $8,%ebx + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + shll $16,%ebx + xorl %ebx,%eax + + xorl 1024-128(%rbp,%rcx,4),%eax + movl %eax,16(%rdi) + xorl 4(%rdi),%eax + movl %eax,20(%rdi) + xorl 8(%rdi),%eax + movl %eax,24(%rdi) + xorl 12(%rdi),%eax + movl %eax,28(%rdi) + addl $1,%ecx + leaq 16(%rdi),%rdi + cmpl $10,%ecx + jl L$10loop + + movl $10,80(%rdi) + xorq %rax,%rax + jmp L$exit + +L$12rounds: + movq 0(%rsi),%rax + movq 8(%rsi),%rbx + movq 16(%rsi),%rdx + movq %rax,0(%rdi) + movq %rbx,8(%rdi) + movq %rdx,16(%rdi) + + shrq $32,%rdx + xorl %ecx,%ecx + jmp L$12shortcut +.p2align 2 +L$12loop: + movl 0(%rdi),%eax + movl 20(%rdi),%edx +L$12shortcut: + movzbl %dl,%esi + movzbl -128(%rbp,%rsi,1),%ebx + movzbl %dh,%esi + shll $24,%ebx + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + shrl $16,%edx + movzbl %dl,%esi + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + movzbl %dh,%esi + shll $8,%ebx + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + shll $16,%ebx + xorl %ebx,%eax + + xorl 1024-128(%rbp,%rcx,4),%eax + movl %eax,24(%rdi) + xorl 4(%rdi),%eax + movl %eax,28(%rdi) + xorl 8(%rdi),%eax + movl %eax,32(%rdi) + xorl 12(%rdi),%eax + movl %eax,36(%rdi) + + cmpl $7,%ecx + je L$12break + addl $1,%ecx + + xorl 16(%rdi),%eax + movl %eax,40(%rdi) + xorl 20(%rdi),%eax + movl %eax,44(%rdi) + + leaq 24(%rdi),%rdi + jmp L$12loop +L$12break: + movl $12,72(%rdi) + xorq %rax,%rax + jmp L$exit + +L$14rounds: + movq 0(%rsi),%rax + movq 8(%rsi),%rbx + movq 16(%rsi),%rcx + movq 24(%rsi),%rdx + movq %rax,0(%rdi) + movq %rbx,8(%rdi) + movq %rcx,16(%rdi) + movq %rdx,24(%rdi) + + shrq $32,%rdx + xorl %ecx,%ecx + jmp L$14shortcut +.p2align 2 +L$14loop: + movl 0(%rdi),%eax + movl 28(%rdi),%edx +L$14shortcut: + movzbl %dl,%esi + movzbl -128(%rbp,%rsi,1),%ebx + movzbl %dh,%esi + shll $24,%ebx + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + shrl $16,%edx + movzbl %dl,%esi + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + movzbl %dh,%esi + shll $8,%ebx + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + shll $16,%ebx + xorl %ebx,%eax + + xorl 1024-128(%rbp,%rcx,4),%eax + movl %eax,32(%rdi) + xorl 4(%rdi),%eax + movl %eax,36(%rdi) + xorl 8(%rdi),%eax + movl %eax,40(%rdi) + xorl 12(%rdi),%eax + movl %eax,44(%rdi) + + cmpl $6,%ecx + je L$14break + addl $1,%ecx + + movl %eax,%edx + movl 16(%rdi),%eax + movzbl %dl,%esi + movzbl -128(%rbp,%rsi,1),%ebx + movzbl %dh,%esi + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + shrl $16,%edx + shll $8,%ebx + movzbl %dl,%esi + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + movzbl %dh,%esi + shll $16,%ebx + xorl %ebx,%eax + + movzbl -128(%rbp,%rsi,1),%ebx + shll $24,%ebx + xorl %ebx,%eax + + movl %eax,48(%rdi) + xorl 20(%rdi),%eax + movl %eax,52(%rdi) + xorl 24(%rdi),%eax + movl %eax,56(%rdi) + xorl 28(%rdi),%eax + movl %eax,60(%rdi) + + leaq 32(%rdi),%rdi + jmp L$14loop +L$14break: + movl $14,48(%rdi) + xorq %rax,%rax + jmp L$exit + +L$badpointer: + movq $-1,%rax +L$exit: +.byte 0xf3,0xc3 + + +.globl _AES_set_decrypt_key + +.p2align 4 +_AES_set_decrypt_key: + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + pushq %rdx +L$dec_key_prologue: + + call _x86_64_AES_set_encrypt_key + movq (%rsp),%r8 + cmpl $0,%eax + jne L$abort + + movl 240(%r8),%r14d + xorq %rdi,%rdi + leaq (%rdi,%r14,4),%rcx + movq %r8,%rsi + leaq (%r8,%rcx,4),%rdi +.p2align 2 +L$invert: + movq 0(%rsi),%rax + movq 8(%rsi),%rbx + movq 0(%rdi),%rcx + movq 8(%rdi),%rdx + movq %rax,0(%rdi) + movq %rbx,8(%rdi) + movq %rcx,0(%rsi) + movq %rdx,8(%rsi) + leaq 16(%rsi),%rsi + leaq -16(%rdi),%rdi + cmpq %rsi,%rdi + jne L$invert + + leaq L$AES_Te+2048+1024(%rip),%rax + + movq 40(%rax),%rsi + movq 48(%rax),%rdi + movq 56(%rax),%rbp + + movq %r8,%r15 + subl $1,%r14d +.p2align 2 +L$permute: + leaq 16(%r15),%r15 + movq 0(%r15),%rax + movq 8(%r15),%rcx + movq %rax,%rbx + movq %rcx,%rdx + andq %rsi,%rbx + andq %rsi,%rdx + movq %rbx,%r9 + movq %rdx,%r12 + shrq $7,%r9 + leaq (%rax,%rax,1),%r8 + shrq $7,%r12 + leaq (%rcx,%rcx,1),%r11 + subq %r9,%rbx + subq %r12,%rdx + andq %rdi,%r8 + andq %rdi,%r11 + andq %rbp,%rbx + andq %rbp,%rdx + xorq %r8,%rbx + xorq %r11,%rdx + movq %rbx,%r8 + movq %rdx,%r11 + + andq %rsi,%rbx + andq %rsi,%rdx + movq %rbx,%r10 + movq %rdx,%r13 + shrq $7,%r10 + leaq (%r8,%r8,1),%r9 + shrq $7,%r13 + leaq (%r11,%r11,1),%r12 + subq %r10,%rbx + subq %r13,%rdx + andq %rdi,%r9 + andq %rdi,%r12 + andq %rbp,%rbx + andq %rbp,%rdx + xorq %r9,%rbx + xorq %r12,%rdx + movq %rbx,%r9 + movq %rdx,%r12 + + andq %rsi,%rbx + andq %rsi,%rdx + movq %rbx,%r10 + movq %rdx,%r13 + shrq $7,%r10 + xorq %rax,%r8 + shrq $7,%r13 + xorq %rcx,%r11 + subq %r10,%rbx + subq %r13,%rdx + leaq (%r9,%r9,1),%r10 + leaq (%r12,%r12,1),%r13 + xorq %rax,%r9 + xorq %rcx,%r12 + andq %rdi,%r10 + andq %rdi,%r13 + andq %rbp,%rbx + andq %rbp,%rdx + xorq %rbx,%r10 + xorq %rdx,%r13 + + xorq %r10,%rax + xorq %r13,%rcx + xorq %r10,%r8 + xorq %r13,%r11 + movq %rax,%rbx + movq %rcx,%rdx + xorq %r10,%r9 + xorq %r13,%r12 + shrq $32,%rbx + shrq $32,%rdx + xorq %r8,%r10 + xorq %r11,%r13 + roll $8,%eax + roll $8,%ecx + xorq %r9,%r10 + xorq %r12,%r13 + + roll $8,%ebx + roll $8,%edx + xorl %r10d,%eax + xorl %r13d,%ecx + shrq $32,%r10 + shrq $32,%r13 + xorl %r10d,%ebx + xorl %r13d,%edx + + movq %r8,%r10 + movq %r11,%r13 + shrq $32,%r10 + shrq $32,%r13 + roll $24,%r8d + roll $24,%r11d + roll $24,%r10d + roll $24,%r13d + xorl %r8d,%eax + xorl %r11d,%ecx + movq %r9,%r8 + movq %r12,%r11 + xorl %r10d,%ebx + xorl %r13d,%edx + + + shrq $32,%r8 + shrq $32,%r11 + + roll $16,%r9d + roll $16,%r12d + + roll $16,%r8d + roll $16,%r11d + + xorl %r9d,%eax + xorl %r12d,%ecx + + xorl %r8d,%ebx + xorl %r11d,%edx + movl %eax,0(%r15) + movl %ebx,4(%r15) + movl %ecx,8(%r15) + movl %edx,12(%r15) + subl $1,%r14d + jnz L$permute + + xorq %rax,%rax +L$abort: + movq 8(%rsp),%r15 + movq 16(%rsp),%r14 + movq 24(%rsp),%r13 + movq 32(%rsp),%r12 + movq 40(%rsp),%rbp + movq 48(%rsp),%rbx + addq $56,%rsp +L$dec_key_epilogue: + .byte 0xf3,0xc3 + +.globl _AES_cbc_encrypt + +.p2align 4 + +_AES_cbc_encrypt: + cmpq $0,%rdx + je L$cbc_epilogue + pushfq + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 +L$cbc_prologue: + + cld + movl %r9d,%r9d + + leaq L$AES_Te(%rip),%r14 + cmpq $0,%r9 + jne L$cbc_picked_te + leaq L$AES_Td(%rip),%r14 +L$cbc_picked_te: + + movl _OPENSSL_ia32cap_P(%rip),%r10d + cmpq $512,%rdx + jb L$cbc_slow_prologue + testq $15,%rdx + jnz L$cbc_slow_prologue + + + + + leaq -88-248(%rsp),%r15 + andq $-64,%r15 + + + movq %r14,%r10 + leaq 2304(%r14),%r11 + movq %r15,%r12 + andq $4095,%r10 + andq $4095,%r11 + andq $4095,%r12 + + cmpq %r11,%r12 + jb L$cbc_te_break_out + subq %r11,%r12 + subq %r12,%r15 + jmp L$cbc_te_ok +L$cbc_te_break_out: + subq %r10,%r12 + andq $4095,%r12 + addq $320,%r12 + subq %r12,%r15 +.p2align 2 +L$cbc_te_ok: + + xchgq %rsp,%r15 + + movq %r15,16(%rsp) +L$cbc_fast_body: + movq %rdi,24(%rsp) + movq %rsi,32(%rsp) + movq %rdx,40(%rsp) + movq %rcx,48(%rsp) + movq %r8,56(%rsp) + movl $0,80+240(%rsp) + movq %r8,%rbp + movq %r9,%rbx + movq %rsi,%r9 + movq %rdi,%r8 + movq %rcx,%r15 + + movl 240(%r15),%eax + + movq %r15,%r10 + subq %r14,%r10 + andq $4095,%r10 + cmpq $2304,%r10 + jb L$cbc_do_ecopy + cmpq $4096-248,%r10 + jb L$cbc_skip_ecopy +.p2align 2 +L$cbc_do_ecopy: + movq %r15,%rsi + leaq 80(%rsp),%rdi + leaq 80(%rsp),%r15 + movl $30,%ecx +.long 0x90A548F3 + + movl %eax,(%rdi) +L$cbc_skip_ecopy: + movq %r15,0(%rsp) + + movl $18,%ecx +.p2align 2 +L$cbc_prefetch_te: + movq 0(%r14),%r10 + movq 32(%r14),%r11 + movq 64(%r14),%r12 + movq 96(%r14),%r13 + leaq 128(%r14),%r14 + subl $1,%ecx + jnz L$cbc_prefetch_te + leaq -2304(%r14),%r14 + + cmpq $0,%rbx + je L$FAST_DECRYPT + + + movl 0(%rbp),%eax + movl 4(%rbp),%ebx + movl 8(%rbp),%ecx + movl 12(%rbp),%edx + +.p2align 2 +L$cbc_fast_enc_loop: + xorl 0(%r8),%eax + xorl 4(%r8),%ebx + xorl 8(%r8),%ecx + xorl 12(%r8),%edx + movq 0(%rsp),%r15 + movq %r8,24(%rsp) + + call _x86_64_AES_encrypt + + movq 24(%rsp),%r8 + movq 40(%rsp),%r10 + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + + leaq 16(%r8),%r8 + leaq 16(%r9),%r9 + subq $16,%r10 + testq $-16,%r10 + movq %r10,40(%rsp) + jnz L$cbc_fast_enc_loop + movq 56(%rsp),%rbp + movl %eax,0(%rbp) + movl %ebx,4(%rbp) + movl %ecx,8(%rbp) + movl %edx,12(%rbp) + + jmp L$cbc_fast_cleanup + + +.p2align 4 +L$FAST_DECRYPT: + cmpq %r8,%r9 + je L$cbc_fast_dec_in_place + + movq %rbp,64(%rsp) +.p2align 2 +L$cbc_fast_dec_loop: + movl 0(%r8),%eax + movl 4(%r8),%ebx + movl 8(%r8),%ecx + movl 12(%r8),%edx + movq 0(%rsp),%r15 + movq %r8,24(%rsp) + + call _x86_64_AES_decrypt + + movq 64(%rsp),%rbp + movq 24(%rsp),%r8 + movq 40(%rsp),%r10 + xorl 0(%rbp),%eax + xorl 4(%rbp),%ebx + xorl 8(%rbp),%ecx + xorl 12(%rbp),%edx + movq %r8,%rbp + + subq $16,%r10 + movq %r10,40(%rsp) + movq %rbp,64(%rsp) + + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + + leaq 16(%r8),%r8 + leaq 16(%r9),%r9 + jnz L$cbc_fast_dec_loop + movq 56(%rsp),%r12 + movq 0(%rbp),%r10 + movq 8(%rbp),%r11 + movq %r10,0(%r12) + movq %r11,8(%r12) + jmp L$cbc_fast_cleanup + +.p2align 4 +L$cbc_fast_dec_in_place: + movq 0(%rbp),%r10 + movq 8(%rbp),%r11 + movq %r10,0+64(%rsp) + movq %r11,8+64(%rsp) +.p2align 2 +L$cbc_fast_dec_in_place_loop: + movl 0(%r8),%eax + movl 4(%r8),%ebx + movl 8(%r8),%ecx + movl 12(%r8),%edx + movq 0(%rsp),%r15 + movq %r8,24(%rsp) + + call _x86_64_AES_decrypt + + movq 24(%rsp),%r8 + movq 40(%rsp),%r10 + xorl 0+64(%rsp),%eax + xorl 4+64(%rsp),%ebx + xorl 8+64(%rsp),%ecx + xorl 12+64(%rsp),%edx + + movq 0(%r8),%r11 + movq 8(%r8),%r12 + subq $16,%r10 + jz L$cbc_fast_dec_in_place_done + + movq %r11,0+64(%rsp) + movq %r12,8+64(%rsp) + + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + + leaq 16(%r8),%r8 + leaq 16(%r9),%r9 + movq %r10,40(%rsp) + jmp L$cbc_fast_dec_in_place_loop +L$cbc_fast_dec_in_place_done: + movq 56(%rsp),%rdi + movq %r11,0(%rdi) + movq %r12,8(%rdi) + + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + +.p2align 2 +L$cbc_fast_cleanup: + cmpl $0,80+240(%rsp) + leaq 80(%rsp),%rdi + je L$cbc_exit + movl $30,%ecx + xorq %rax,%rax +.long 0x90AB48F3 + + + jmp L$cbc_exit + + +.p2align 4 +L$cbc_slow_prologue: + + leaq -88(%rsp),%rbp + andq $-64,%rbp + + leaq -88-63(%rcx),%r10 + subq %rbp,%r10 + negq %r10 + andq $960,%r10 + subq %r10,%rbp + + xchgq %rsp,%rbp + + movq %rbp,16(%rsp) +L$cbc_slow_body: + + + + + movq %r8,56(%rsp) + movq %r8,%rbp + movq %r9,%rbx + movq %rsi,%r9 + movq %rdi,%r8 + movq %rcx,%r15 + movq %rdx,%r10 + + movl 240(%r15),%eax + movq %r15,0(%rsp) + shll $4,%eax + leaq (%r15,%rax,1),%rax + movq %rax,8(%rsp) + + + leaq 2048(%r14),%r14 + leaq 768-8(%rsp),%rax + subq %r14,%rax + andq $768,%rax + leaq (%r14,%rax,1),%r14 + + cmpq $0,%rbx + je L$SLOW_DECRYPT + + + testq $-16,%r10 + movl 0(%rbp),%eax + movl 4(%rbp),%ebx + movl 8(%rbp),%ecx + movl 12(%rbp),%edx + jz L$cbc_slow_enc_tail + + +.p2align 2 +L$cbc_slow_enc_loop: + xorl 0(%r8),%eax + xorl 4(%r8),%ebx + xorl 8(%r8),%ecx + xorl 12(%r8),%edx + movq 0(%rsp),%r15 + movq %r8,24(%rsp) + movq %r9,32(%rsp) + movq %r10,40(%rsp) + + call _x86_64_AES_encrypt_compact + + movq 24(%rsp),%r8 + movq 32(%rsp),%r9 + movq 40(%rsp),%r10 + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + + leaq 16(%r8),%r8 + leaq 16(%r9),%r9 + subq $16,%r10 + testq $-16,%r10 + jnz L$cbc_slow_enc_loop + testq $15,%r10 + jnz L$cbc_slow_enc_tail + movq 56(%rsp),%rbp + movl %eax,0(%rbp) + movl %ebx,4(%rbp) + movl %ecx,8(%rbp) + movl %edx,12(%rbp) + + jmp L$cbc_exit + +.p2align 2 +L$cbc_slow_enc_tail: + movq %rax,%r11 + movq %rcx,%r12 + movq %r10,%rcx + movq %r8,%rsi + movq %r9,%rdi +.long 0x9066A4F3 + + movq $16,%rcx + subq %r10,%rcx + xorq %rax,%rax +.long 0x9066AAF3 + + movq %r9,%r8 + movq $16,%r10 + movq %r11,%rax + movq %r12,%rcx + jmp L$cbc_slow_enc_loop + + +.p2align 4 +L$SLOW_DECRYPT: + shrq $3,%rax + addq %rax,%r14 + + movq 0(%rbp),%r11 + movq 8(%rbp),%r12 + movq %r11,0+64(%rsp) + movq %r12,8+64(%rsp) + +.p2align 2 +L$cbc_slow_dec_loop: + movl 0(%r8),%eax + movl 4(%r8),%ebx + movl 8(%r8),%ecx + movl 12(%r8),%edx + movq 0(%rsp),%r15 + movq %r8,24(%rsp) + movq %r9,32(%rsp) + movq %r10,40(%rsp) + + call _x86_64_AES_decrypt_compact + + movq 24(%rsp),%r8 + movq 32(%rsp),%r9 + movq 40(%rsp),%r10 + xorl 0+64(%rsp),%eax + xorl 4+64(%rsp),%ebx + xorl 8+64(%rsp),%ecx + xorl 12+64(%rsp),%edx + + movq 0(%r8),%r11 + movq 8(%r8),%r12 + subq $16,%r10 + jc L$cbc_slow_dec_partial + jz L$cbc_slow_dec_done + + movq %r11,0+64(%rsp) + movq %r12,8+64(%rsp) + + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + + leaq 16(%r8),%r8 + leaq 16(%r9),%r9 + jmp L$cbc_slow_dec_loop +L$cbc_slow_dec_done: + movq 56(%rsp),%rdi + movq %r11,0(%rdi) + movq %r12,8(%rdi) + + movl %eax,0(%r9) + movl %ebx,4(%r9) + movl %ecx,8(%r9) + movl %edx,12(%r9) + + jmp L$cbc_exit + +.p2align 2 +L$cbc_slow_dec_partial: + movq 56(%rsp),%rdi + movq %r11,0(%rdi) + movq %r12,8(%rdi) + + movl %eax,0+64(%rsp) + movl %ebx,4+64(%rsp) + movl %ecx,8+64(%rsp) + movl %edx,12+64(%rsp) + + movq %r9,%rdi + leaq 64(%rsp),%rsi + leaq 16(%r10),%rcx +.long 0x9066A4F3 + + jmp L$cbc_exit + +.p2align 4 +L$cbc_exit: + movq 16(%rsp),%rsi + movq (%rsi),%r15 + movq 8(%rsi),%r14 + movq 16(%rsi),%r13 + movq 24(%rsi),%r12 + movq 32(%rsi),%rbp + movq 40(%rsi),%rbx + leaq 48(%rsi),%rsp +L$cbc_popfq: + popfq +L$cbc_epilogue: + .byte 0xf3,0xc3 + +.p2align 6 +L$AES_Te: +.long 0xa56363c6,0xa56363c6 +.long 0x847c7cf8,0x847c7cf8 +.long 0x997777ee,0x997777ee +.long 0x8d7b7bf6,0x8d7b7bf6 +.long 0x0df2f2ff,0x0df2f2ff +.long 0xbd6b6bd6,0xbd6b6bd6 +.long 0xb16f6fde,0xb16f6fde +.long 0x54c5c591,0x54c5c591 +.long 0x50303060,0x50303060 +.long 0x03010102,0x03010102 +.long 0xa96767ce,0xa96767ce +.long 0x7d2b2b56,0x7d2b2b56 +.long 0x19fefee7,0x19fefee7 +.long 0x62d7d7b5,0x62d7d7b5 +.long 0xe6abab4d,0xe6abab4d +.long 0x9a7676ec,0x9a7676ec +.long 0x45caca8f,0x45caca8f +.long 0x9d82821f,0x9d82821f +.long 0x40c9c989,0x40c9c989 +.long 0x877d7dfa,0x877d7dfa +.long 0x15fafaef,0x15fafaef +.long 0xeb5959b2,0xeb5959b2 +.long 0xc947478e,0xc947478e +.long 0x0bf0f0fb,0x0bf0f0fb +.long 0xecadad41,0xecadad41 +.long 0x67d4d4b3,0x67d4d4b3 +.long 0xfda2a25f,0xfda2a25f +.long 0xeaafaf45,0xeaafaf45 +.long 0xbf9c9c23,0xbf9c9c23 +.long 0xf7a4a453,0xf7a4a453 +.long 0x967272e4,0x967272e4 +.long 0x5bc0c09b,0x5bc0c09b +.long 0xc2b7b775,0xc2b7b775 +.long 0x1cfdfde1,0x1cfdfde1 +.long 0xae93933d,0xae93933d +.long 0x6a26264c,0x6a26264c +.long 0x5a36366c,0x5a36366c +.long 0x413f3f7e,0x413f3f7e +.long 0x02f7f7f5,0x02f7f7f5 +.long 0x4fcccc83,0x4fcccc83 +.long 0x5c343468,0x5c343468 +.long 0xf4a5a551,0xf4a5a551 +.long 0x34e5e5d1,0x34e5e5d1 +.long 0x08f1f1f9,0x08f1f1f9 +.long 0x937171e2,0x937171e2 +.long 0x73d8d8ab,0x73d8d8ab +.long 0x53313162,0x53313162 +.long 0x3f15152a,0x3f15152a +.long 0x0c040408,0x0c040408 +.long 0x52c7c795,0x52c7c795 +.long 0x65232346,0x65232346 +.long 0x5ec3c39d,0x5ec3c39d +.long 0x28181830,0x28181830 +.long 0xa1969637,0xa1969637 +.long 0x0f05050a,0x0f05050a +.long 0xb59a9a2f,0xb59a9a2f +.long 0x0907070e,0x0907070e +.long 0x36121224,0x36121224 +.long 0x9b80801b,0x9b80801b +.long 0x3de2e2df,0x3de2e2df +.long 0x26ebebcd,0x26ebebcd +.long 0x6927274e,0x6927274e +.long 0xcdb2b27f,0xcdb2b27f +.long 0x9f7575ea,0x9f7575ea +.long 0x1b090912,0x1b090912 +.long 0x9e83831d,0x9e83831d +.long 0x742c2c58,0x742c2c58 +.long 0x2e1a1a34,0x2e1a1a34 +.long 0x2d1b1b36,0x2d1b1b36 +.long 0xb26e6edc,0xb26e6edc +.long 0xee5a5ab4,0xee5a5ab4 +.long 0xfba0a05b,0xfba0a05b +.long 0xf65252a4,0xf65252a4 +.long 0x4d3b3b76,0x4d3b3b76 +.long 0x61d6d6b7,0x61d6d6b7 +.long 0xceb3b37d,0xceb3b37d +.long 0x7b292952,0x7b292952 +.long 0x3ee3e3dd,0x3ee3e3dd +.long 0x712f2f5e,0x712f2f5e +.long 0x97848413,0x97848413 +.long 0xf55353a6,0xf55353a6 +.long 0x68d1d1b9,0x68d1d1b9 +.long 0x00000000,0x00000000 +.long 0x2cededc1,0x2cededc1 +.long 0x60202040,0x60202040 +.long 0x1ffcfce3,0x1ffcfce3 +.long 0xc8b1b179,0xc8b1b179 +.long 0xed5b5bb6,0xed5b5bb6 +.long 0xbe6a6ad4,0xbe6a6ad4 +.long 0x46cbcb8d,0x46cbcb8d +.long 0xd9bebe67,0xd9bebe67 +.long 0x4b393972,0x4b393972 +.long 0xde4a4a94,0xde4a4a94 +.long 0xd44c4c98,0xd44c4c98 +.long 0xe85858b0,0xe85858b0 +.long 0x4acfcf85,0x4acfcf85 +.long 0x6bd0d0bb,0x6bd0d0bb +.long 0x2aefefc5,0x2aefefc5 +.long 0xe5aaaa4f,0xe5aaaa4f +.long 0x16fbfbed,0x16fbfbed +.long 0xc5434386,0xc5434386 +.long 0xd74d4d9a,0xd74d4d9a +.long 0x55333366,0x55333366 +.long 0x94858511,0x94858511 +.long 0xcf45458a,0xcf45458a +.long 0x10f9f9e9,0x10f9f9e9 +.long 0x06020204,0x06020204 +.long 0x817f7ffe,0x817f7ffe +.long 0xf05050a0,0xf05050a0 +.long 0x443c3c78,0x443c3c78 +.long 0xba9f9f25,0xba9f9f25 +.long 0xe3a8a84b,0xe3a8a84b +.long 0xf35151a2,0xf35151a2 +.long 0xfea3a35d,0xfea3a35d +.long 0xc0404080,0xc0404080 +.long 0x8a8f8f05,0x8a8f8f05 +.long 0xad92923f,0xad92923f +.long 0xbc9d9d21,0xbc9d9d21 +.long 0x48383870,0x48383870 +.long 0x04f5f5f1,0x04f5f5f1 +.long 0xdfbcbc63,0xdfbcbc63 +.long 0xc1b6b677,0xc1b6b677 +.long 0x75dadaaf,0x75dadaaf +.long 0x63212142,0x63212142 +.long 0x30101020,0x30101020 +.long 0x1affffe5,0x1affffe5 +.long 0x0ef3f3fd,0x0ef3f3fd +.long 0x6dd2d2bf,0x6dd2d2bf +.long 0x4ccdcd81,0x4ccdcd81 +.long 0x140c0c18,0x140c0c18 +.long 0x35131326,0x35131326 +.long 0x2fececc3,0x2fececc3 +.long 0xe15f5fbe,0xe15f5fbe +.long 0xa2979735,0xa2979735 +.long 0xcc444488,0xcc444488 +.long 0x3917172e,0x3917172e +.long 0x57c4c493,0x57c4c493 +.long 0xf2a7a755,0xf2a7a755 +.long 0x827e7efc,0x827e7efc +.long 0x473d3d7a,0x473d3d7a +.long 0xac6464c8,0xac6464c8 +.long 0xe75d5dba,0xe75d5dba +.long 0x2b191932,0x2b191932 +.long 0x957373e6,0x957373e6 +.long 0xa06060c0,0xa06060c0 +.long 0x98818119,0x98818119 +.long 0xd14f4f9e,0xd14f4f9e +.long 0x7fdcdca3,0x7fdcdca3 +.long 0x66222244,0x66222244 +.long 0x7e2a2a54,0x7e2a2a54 +.long 0xab90903b,0xab90903b +.long 0x8388880b,0x8388880b +.long 0xca46468c,0xca46468c +.long 0x29eeeec7,0x29eeeec7 +.long 0xd3b8b86b,0xd3b8b86b +.long 0x3c141428,0x3c141428 +.long 0x79dedea7,0x79dedea7 +.long 0xe25e5ebc,0xe25e5ebc +.long 0x1d0b0b16,0x1d0b0b16 +.long 0x76dbdbad,0x76dbdbad +.long 0x3be0e0db,0x3be0e0db +.long 0x56323264,0x56323264 +.long 0x4e3a3a74,0x4e3a3a74 +.long 0x1e0a0a14,0x1e0a0a14 +.long 0xdb494992,0xdb494992 +.long 0x0a06060c,0x0a06060c +.long 0x6c242448,0x6c242448 +.long 0xe45c5cb8,0xe45c5cb8 +.long 0x5dc2c29f,0x5dc2c29f +.long 0x6ed3d3bd,0x6ed3d3bd +.long 0xefacac43,0xefacac43 +.long 0xa66262c4,0xa66262c4 +.long 0xa8919139,0xa8919139 +.long 0xa4959531,0xa4959531 +.long 0x37e4e4d3,0x37e4e4d3 +.long 0x8b7979f2,0x8b7979f2 +.long 0x32e7e7d5,0x32e7e7d5 +.long 0x43c8c88b,0x43c8c88b +.long 0x5937376e,0x5937376e +.long 0xb76d6dda,0xb76d6dda +.long 0x8c8d8d01,0x8c8d8d01 +.long 0x64d5d5b1,0x64d5d5b1 +.long 0xd24e4e9c,0xd24e4e9c +.long 0xe0a9a949,0xe0a9a949 +.long 0xb46c6cd8,0xb46c6cd8 +.long 0xfa5656ac,0xfa5656ac +.long 0x07f4f4f3,0x07f4f4f3 +.long 0x25eaeacf,0x25eaeacf +.long 0xaf6565ca,0xaf6565ca +.long 0x8e7a7af4,0x8e7a7af4 +.long 0xe9aeae47,0xe9aeae47 +.long 0x18080810,0x18080810 +.long 0xd5baba6f,0xd5baba6f +.long 0x887878f0,0x887878f0 +.long 0x6f25254a,0x6f25254a +.long 0x722e2e5c,0x722e2e5c +.long 0x241c1c38,0x241c1c38 +.long 0xf1a6a657,0xf1a6a657 +.long 0xc7b4b473,0xc7b4b473 +.long 0x51c6c697,0x51c6c697 +.long 0x23e8e8cb,0x23e8e8cb +.long 0x7cdddda1,0x7cdddda1 +.long 0x9c7474e8,0x9c7474e8 +.long 0x211f1f3e,0x211f1f3e +.long 0xdd4b4b96,0xdd4b4b96 +.long 0xdcbdbd61,0xdcbdbd61 +.long 0x868b8b0d,0x868b8b0d +.long 0x858a8a0f,0x858a8a0f +.long 0x907070e0,0x907070e0 +.long 0x423e3e7c,0x423e3e7c +.long 0xc4b5b571,0xc4b5b571 +.long 0xaa6666cc,0xaa6666cc +.long 0xd8484890,0xd8484890 +.long 0x05030306,0x05030306 +.long 0x01f6f6f7,0x01f6f6f7 +.long 0x120e0e1c,0x120e0e1c +.long 0xa36161c2,0xa36161c2 +.long 0x5f35356a,0x5f35356a +.long 0xf95757ae,0xf95757ae +.long 0xd0b9b969,0xd0b9b969 +.long 0x91868617,0x91868617 +.long 0x58c1c199,0x58c1c199 +.long 0x271d1d3a,0x271d1d3a +.long 0xb99e9e27,0xb99e9e27 +.long 0x38e1e1d9,0x38e1e1d9 +.long 0x13f8f8eb,0x13f8f8eb +.long 0xb398982b,0xb398982b +.long 0x33111122,0x33111122 +.long 0xbb6969d2,0xbb6969d2 +.long 0x70d9d9a9,0x70d9d9a9 +.long 0x898e8e07,0x898e8e07 +.long 0xa7949433,0xa7949433 +.long 0xb69b9b2d,0xb69b9b2d +.long 0x221e1e3c,0x221e1e3c +.long 0x92878715,0x92878715 +.long 0x20e9e9c9,0x20e9e9c9 +.long 0x49cece87,0x49cece87 +.long 0xff5555aa,0xff5555aa +.long 0x78282850,0x78282850 +.long 0x7adfdfa5,0x7adfdfa5 +.long 0x8f8c8c03,0x8f8c8c03 +.long 0xf8a1a159,0xf8a1a159 +.long 0x80898909,0x80898909 +.long 0x170d0d1a,0x170d0d1a +.long 0xdabfbf65,0xdabfbf65 +.long 0x31e6e6d7,0x31e6e6d7 +.long 0xc6424284,0xc6424284 +.long 0xb86868d0,0xb86868d0 +.long 0xc3414182,0xc3414182 +.long 0xb0999929,0xb0999929 +.long 0x772d2d5a,0x772d2d5a +.long 0x110f0f1e,0x110f0f1e +.long 0xcbb0b07b,0xcbb0b07b +.long 0xfc5454a8,0xfc5454a8 +.long 0xd6bbbb6d,0xd6bbbb6d +.long 0x3a16162c,0x3a16162c +.byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 +.byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 +.byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 +.byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 +.byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc +.byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 +.byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a +.byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 +.byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 +.byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 +.byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b +.byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf +.byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 +.byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 +.byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 +.byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 +.byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 +.byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 +.byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 +.byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb +.byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c +.byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 +.byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 +.byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 +.byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 +.byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a +.byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e +.byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e +.byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 +.byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf +.byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 +.byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 +.byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 +.byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 +.byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 +.byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 +.byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc +.byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 +.byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a +.byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 +.byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 +.byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 +.byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b +.byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf +.byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 +.byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 +.byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 +.byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 +.byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 +.byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 +.byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 +.byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb +.byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c +.byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 +.byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 +.byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 +.byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 +.byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a +.byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e +.byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e +.byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 +.byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf +.byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 +.byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 +.byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 +.byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 +.byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 +.byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 +.byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc +.byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 +.byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a +.byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 +.byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 +.byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 +.byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b +.byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf +.byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 +.byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 +.byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 +.byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 +.byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 +.byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 +.byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 +.byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb +.byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c +.byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 +.byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 +.byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 +.byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 +.byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a +.byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e +.byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e +.byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 +.byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf +.byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 +.byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 +.byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 +.byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 +.byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 +.byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 +.byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc +.byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 +.byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a +.byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 +.byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 +.byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 +.byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b +.byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf +.byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 +.byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 +.byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 +.byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 +.byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 +.byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 +.byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 +.byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb +.byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c +.byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 +.byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 +.byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 +.byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 +.byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a +.byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e +.byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e +.byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 +.byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf +.byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 +.byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 +.long 0x00000001, 0x00000002, 0x00000004, 0x00000008 +.long 0x00000010, 0x00000020, 0x00000040, 0x00000080 +.long 0x0000001b, 0x00000036, 0x80808080, 0x80808080 +.long 0xfefefefe, 0xfefefefe, 0x1b1b1b1b, 0x1b1b1b1b +.p2align 6 +L$AES_Td: +.long 0x50a7f451,0x50a7f451 +.long 0x5365417e,0x5365417e +.long 0xc3a4171a,0xc3a4171a +.long 0x965e273a,0x965e273a +.long 0xcb6bab3b,0xcb6bab3b +.long 0xf1459d1f,0xf1459d1f +.long 0xab58faac,0xab58faac +.long 0x9303e34b,0x9303e34b +.long 0x55fa3020,0x55fa3020 +.long 0xf66d76ad,0xf66d76ad +.long 0x9176cc88,0x9176cc88 +.long 0x254c02f5,0x254c02f5 +.long 0xfcd7e54f,0xfcd7e54f +.long 0xd7cb2ac5,0xd7cb2ac5 +.long 0x80443526,0x80443526 +.long 0x8fa362b5,0x8fa362b5 +.long 0x495ab1de,0x495ab1de +.long 0x671bba25,0x671bba25 +.long 0x980eea45,0x980eea45 +.long 0xe1c0fe5d,0xe1c0fe5d +.long 0x02752fc3,0x02752fc3 +.long 0x12f04c81,0x12f04c81 +.long 0xa397468d,0xa397468d +.long 0xc6f9d36b,0xc6f9d36b +.long 0xe75f8f03,0xe75f8f03 +.long 0x959c9215,0x959c9215 +.long 0xeb7a6dbf,0xeb7a6dbf +.long 0xda595295,0xda595295 +.long 0x2d83bed4,0x2d83bed4 +.long 0xd3217458,0xd3217458 +.long 0x2969e049,0x2969e049 +.long 0x44c8c98e,0x44c8c98e +.long 0x6a89c275,0x6a89c275 +.long 0x78798ef4,0x78798ef4 +.long 0x6b3e5899,0x6b3e5899 +.long 0xdd71b927,0xdd71b927 +.long 0xb64fe1be,0xb64fe1be +.long 0x17ad88f0,0x17ad88f0 +.long 0x66ac20c9,0x66ac20c9 +.long 0xb43ace7d,0xb43ace7d +.long 0x184adf63,0x184adf63 +.long 0x82311ae5,0x82311ae5 +.long 0x60335197,0x60335197 +.long 0x457f5362,0x457f5362 +.long 0xe07764b1,0xe07764b1 +.long 0x84ae6bbb,0x84ae6bbb +.long 0x1ca081fe,0x1ca081fe +.long 0x942b08f9,0x942b08f9 +.long 0x58684870,0x58684870 +.long 0x19fd458f,0x19fd458f +.long 0x876cde94,0x876cde94 +.long 0xb7f87b52,0xb7f87b52 +.long 0x23d373ab,0x23d373ab +.long 0xe2024b72,0xe2024b72 +.long 0x578f1fe3,0x578f1fe3 +.long 0x2aab5566,0x2aab5566 +.long 0x0728ebb2,0x0728ebb2 +.long 0x03c2b52f,0x03c2b52f +.long 0x9a7bc586,0x9a7bc586 +.long 0xa50837d3,0xa50837d3 +.long 0xf2872830,0xf2872830 +.long 0xb2a5bf23,0xb2a5bf23 +.long 0xba6a0302,0xba6a0302 +.long 0x5c8216ed,0x5c8216ed +.long 0x2b1ccf8a,0x2b1ccf8a +.long 0x92b479a7,0x92b479a7 +.long 0xf0f207f3,0xf0f207f3 +.long 0xa1e2694e,0xa1e2694e +.long 0xcdf4da65,0xcdf4da65 +.long 0xd5be0506,0xd5be0506 +.long 0x1f6234d1,0x1f6234d1 +.long 0x8afea6c4,0x8afea6c4 +.long 0x9d532e34,0x9d532e34 +.long 0xa055f3a2,0xa055f3a2 +.long 0x32e18a05,0x32e18a05 +.long 0x75ebf6a4,0x75ebf6a4 +.long 0x39ec830b,0x39ec830b +.long 0xaaef6040,0xaaef6040 +.long 0x069f715e,0x069f715e +.long 0x51106ebd,0x51106ebd +.long 0xf98a213e,0xf98a213e +.long 0x3d06dd96,0x3d06dd96 +.long 0xae053edd,0xae053edd +.long 0x46bde64d,0x46bde64d +.long 0xb58d5491,0xb58d5491 +.long 0x055dc471,0x055dc471 +.long 0x6fd40604,0x6fd40604 +.long 0xff155060,0xff155060 +.long 0x24fb9819,0x24fb9819 +.long 0x97e9bdd6,0x97e9bdd6 +.long 0xcc434089,0xcc434089 +.long 0x779ed967,0x779ed967 +.long 0xbd42e8b0,0xbd42e8b0 +.long 0x888b8907,0x888b8907 +.long 0x385b19e7,0x385b19e7 +.long 0xdbeec879,0xdbeec879 +.long 0x470a7ca1,0x470a7ca1 +.long 0xe90f427c,0xe90f427c +.long 0xc91e84f8,0xc91e84f8 +.long 0x00000000,0x00000000 +.long 0x83868009,0x83868009 +.long 0x48ed2b32,0x48ed2b32 +.long 0xac70111e,0xac70111e +.long 0x4e725a6c,0x4e725a6c +.long 0xfbff0efd,0xfbff0efd +.long 0x5638850f,0x5638850f +.long 0x1ed5ae3d,0x1ed5ae3d +.long 0x27392d36,0x27392d36 +.long 0x64d90f0a,0x64d90f0a +.long 0x21a65c68,0x21a65c68 +.long 0xd1545b9b,0xd1545b9b +.long 0x3a2e3624,0x3a2e3624 +.long 0xb1670a0c,0xb1670a0c +.long 0x0fe75793,0x0fe75793 +.long 0xd296eeb4,0xd296eeb4 +.long 0x9e919b1b,0x9e919b1b +.long 0x4fc5c080,0x4fc5c080 +.long 0xa220dc61,0xa220dc61 +.long 0x694b775a,0x694b775a +.long 0x161a121c,0x161a121c +.long 0x0aba93e2,0x0aba93e2 +.long 0xe52aa0c0,0xe52aa0c0 +.long 0x43e0223c,0x43e0223c +.long 0x1d171b12,0x1d171b12 +.long 0x0b0d090e,0x0b0d090e +.long 0xadc78bf2,0xadc78bf2 +.long 0xb9a8b62d,0xb9a8b62d +.long 0xc8a91e14,0xc8a91e14 +.long 0x8519f157,0x8519f157 +.long 0x4c0775af,0x4c0775af +.long 0xbbdd99ee,0xbbdd99ee +.long 0xfd607fa3,0xfd607fa3 +.long 0x9f2601f7,0x9f2601f7 +.long 0xbcf5725c,0xbcf5725c +.long 0xc53b6644,0xc53b6644 +.long 0x347efb5b,0x347efb5b +.long 0x7629438b,0x7629438b +.long 0xdcc623cb,0xdcc623cb +.long 0x68fcedb6,0x68fcedb6 +.long 0x63f1e4b8,0x63f1e4b8 +.long 0xcadc31d7,0xcadc31d7 +.long 0x10856342,0x10856342 +.long 0x40229713,0x40229713 +.long 0x2011c684,0x2011c684 +.long 0x7d244a85,0x7d244a85 +.long 0xf83dbbd2,0xf83dbbd2 +.long 0x1132f9ae,0x1132f9ae +.long 0x6da129c7,0x6da129c7 +.long 0x4b2f9e1d,0x4b2f9e1d +.long 0xf330b2dc,0xf330b2dc +.long 0xec52860d,0xec52860d +.long 0xd0e3c177,0xd0e3c177 +.long 0x6c16b32b,0x6c16b32b +.long 0x99b970a9,0x99b970a9 +.long 0xfa489411,0xfa489411 +.long 0x2264e947,0x2264e947 +.long 0xc48cfca8,0xc48cfca8 +.long 0x1a3ff0a0,0x1a3ff0a0 +.long 0xd82c7d56,0xd82c7d56 +.long 0xef903322,0xef903322 +.long 0xc74e4987,0xc74e4987 +.long 0xc1d138d9,0xc1d138d9 +.long 0xfea2ca8c,0xfea2ca8c +.long 0x360bd498,0x360bd498 +.long 0xcf81f5a6,0xcf81f5a6 +.long 0x28de7aa5,0x28de7aa5 +.long 0x268eb7da,0x268eb7da +.long 0xa4bfad3f,0xa4bfad3f +.long 0xe49d3a2c,0xe49d3a2c +.long 0x0d927850,0x0d927850 +.long 0x9bcc5f6a,0x9bcc5f6a +.long 0x62467e54,0x62467e54 +.long 0xc2138df6,0xc2138df6 +.long 0xe8b8d890,0xe8b8d890 +.long 0x5ef7392e,0x5ef7392e +.long 0xf5afc382,0xf5afc382 +.long 0xbe805d9f,0xbe805d9f +.long 0x7c93d069,0x7c93d069 +.long 0xa92dd56f,0xa92dd56f +.long 0xb31225cf,0xb31225cf +.long 0x3b99acc8,0x3b99acc8 +.long 0xa77d1810,0xa77d1810 +.long 0x6e639ce8,0x6e639ce8 +.long 0x7bbb3bdb,0x7bbb3bdb +.long 0x097826cd,0x097826cd +.long 0xf418596e,0xf418596e +.long 0x01b79aec,0x01b79aec +.long 0xa89a4f83,0xa89a4f83 +.long 0x656e95e6,0x656e95e6 +.long 0x7ee6ffaa,0x7ee6ffaa +.long 0x08cfbc21,0x08cfbc21 +.long 0xe6e815ef,0xe6e815ef +.long 0xd99be7ba,0xd99be7ba +.long 0xce366f4a,0xce366f4a +.long 0xd4099fea,0xd4099fea +.long 0xd67cb029,0xd67cb029 +.long 0xafb2a431,0xafb2a431 +.long 0x31233f2a,0x31233f2a +.long 0x3094a5c6,0x3094a5c6 +.long 0xc066a235,0xc066a235 +.long 0x37bc4e74,0x37bc4e74 +.long 0xa6ca82fc,0xa6ca82fc +.long 0xb0d090e0,0xb0d090e0 +.long 0x15d8a733,0x15d8a733 +.long 0x4a9804f1,0x4a9804f1 +.long 0xf7daec41,0xf7daec41 +.long 0x0e50cd7f,0x0e50cd7f +.long 0x2ff69117,0x2ff69117 +.long 0x8dd64d76,0x8dd64d76 +.long 0x4db0ef43,0x4db0ef43 +.long 0x544daacc,0x544daacc +.long 0xdf0496e4,0xdf0496e4 +.long 0xe3b5d19e,0xe3b5d19e +.long 0x1b886a4c,0x1b886a4c +.long 0xb81f2cc1,0xb81f2cc1 +.long 0x7f516546,0x7f516546 +.long 0x04ea5e9d,0x04ea5e9d +.long 0x5d358c01,0x5d358c01 +.long 0x737487fa,0x737487fa +.long 0x2e410bfb,0x2e410bfb +.long 0x5a1d67b3,0x5a1d67b3 +.long 0x52d2db92,0x52d2db92 +.long 0x335610e9,0x335610e9 +.long 0x1347d66d,0x1347d66d +.long 0x8c61d79a,0x8c61d79a +.long 0x7a0ca137,0x7a0ca137 +.long 0x8e14f859,0x8e14f859 +.long 0x893c13eb,0x893c13eb +.long 0xee27a9ce,0xee27a9ce +.long 0x35c961b7,0x35c961b7 +.long 0xede51ce1,0xede51ce1 +.long 0x3cb1477a,0x3cb1477a +.long 0x59dfd29c,0x59dfd29c +.long 0x3f73f255,0x3f73f255 +.long 0x79ce1418,0x79ce1418 +.long 0xbf37c773,0xbf37c773 +.long 0xeacdf753,0xeacdf753 +.long 0x5baafd5f,0x5baafd5f +.long 0x146f3ddf,0x146f3ddf +.long 0x86db4478,0x86db4478 +.long 0x81f3afca,0x81f3afca +.long 0x3ec468b9,0x3ec468b9 +.long 0x2c342438,0x2c342438 +.long 0x5f40a3c2,0x5f40a3c2 +.long 0x72c31d16,0x72c31d16 +.long 0x0c25e2bc,0x0c25e2bc +.long 0x8b493c28,0x8b493c28 +.long 0x41950dff,0x41950dff +.long 0x7101a839,0x7101a839 +.long 0xdeb30c08,0xdeb30c08 +.long 0x9ce4b4d8,0x9ce4b4d8 +.long 0x90c15664,0x90c15664 +.long 0x6184cb7b,0x6184cb7b +.long 0x70b632d5,0x70b632d5 +.long 0x745c6c48,0x745c6c48 +.long 0x4257b8d0,0x4257b8d0 +.byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 +.byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb +.byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 +.byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb +.byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d +.byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e +.byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 +.byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 +.byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 +.byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 +.byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda +.byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 +.byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a +.byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 +.byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 +.byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b +.byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea +.byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 +.byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 +.byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e +.byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 +.byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b +.byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 +.byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 +.byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 +.byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f +.byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d +.byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef +.byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 +.byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 +.byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 +.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d +.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe +.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 +.byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 +.byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb +.byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 +.byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb +.byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d +.byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e +.byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 +.byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 +.byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 +.byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 +.byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda +.byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 +.byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a +.byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 +.byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 +.byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b +.byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea +.byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 +.byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 +.byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e +.byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 +.byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b +.byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 +.byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 +.byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 +.byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f +.byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d +.byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef +.byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 +.byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 +.byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 +.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d +.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe +.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 +.byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 +.byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb +.byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 +.byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb +.byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d +.byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e +.byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 +.byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 +.byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 +.byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 +.byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda +.byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 +.byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a +.byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 +.byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 +.byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b +.byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea +.byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 +.byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 +.byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e +.byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 +.byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b +.byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 +.byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 +.byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 +.byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f +.byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d +.byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef +.byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 +.byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 +.byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 +.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d +.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe +.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 +.byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 +.byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb +.byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 +.byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb +.byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d +.byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e +.byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 +.byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 +.byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 +.byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 +.byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda +.byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 +.byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a +.byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 +.byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 +.byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b +.byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea +.byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 +.byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 +.byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e +.byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 +.byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b +.byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 +.byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 +.byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 +.byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f +.byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d +.byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef +.byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 +.byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 +.byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 +.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d +.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe +.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 +.byte 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.p2align 6 diff --git a/deps/openssl/asm/x64-macosx-gas/bn/x86_64-mont.s b/deps/openssl/asm/x64-macosx-gas/bn/x86_64-mont.s new file mode 100644 index 0000000000..23292a0716 --- /dev/null +++ b/deps/openssl/asm/x64-macosx-gas/bn/x86_64-mont.s @@ -0,0 +1,172 @@ +.text + + +.globl _bn_mul_mont + +.p2align 4 +_bn_mul_mont: + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + + movl %r9d,%r9d + leaq 2(%r9),%r10 + movq %rsp,%r11 + negq %r10 + leaq (%rsp,%r10,8),%rsp + andq $-1024,%rsp + + movq %r11,8(%rsp,%r9,8) +L$prologue: + movq %rdx,%r12 + + movq (%r8),%r8 + + xorq %r14,%r14 + xorq %r15,%r15 + + movq (%r12),%rbx + movq (%rsi),%rax + mulq %rbx + movq %rax,%r10 + movq %rdx,%r11 + + imulq %r8,%rax + movq %rax,%rbp + + mulq (%rcx) + addq %r10,%rax + adcq $0,%rdx + movq %rdx,%r13 + + leaq 1(%r15),%r15 +L$1st: + movq (%rsi,%r15,8),%rax + mulq %rbx + addq %r11,%rax + adcq $0,%rdx + movq %rax,%r10 + movq (%rcx,%r15,8),%rax + movq %rdx,%r11 + + mulq %rbp + addq %r13,%rax + leaq 1(%r15),%r15 + adcq $0,%rdx + addq %r10,%rax + adcq $0,%rdx + movq %rax,-16(%rsp,%r15,8) + cmpq %r9,%r15 + movq %rdx,%r13 + jl L$1st + + xorq %rdx,%rdx + addq %r11,%r13 + adcq $0,%rdx + movq %r13,-8(%rsp,%r9,8) + movq %rdx,(%rsp,%r9,8) + + leaq 1(%r14),%r14 +.p2align 2 +L$outer: + xorq %r15,%r15 + + movq (%r12,%r14,8),%rbx + movq (%rsi),%rax + mulq %rbx + addq (%rsp),%rax + adcq $0,%rdx + movq %rax,%r10 + movq %rdx,%r11 + + imulq %r8,%rax + movq %rax,%rbp + + mulq (%rcx,%r15,8) + addq %r10,%rax + movq 8(%rsp),%r10 + adcq $0,%rdx + movq %rdx,%r13 + + leaq 1(%r15),%r15 +.p2align 2 +L$inner: + movq (%rsi,%r15,8),%rax + mulq %rbx + addq %r11,%rax + adcq $0,%rdx + addq %rax,%r10 + movq (%rcx,%r15,8),%rax + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %r13,%rax + leaq 1(%r15),%r15 + adcq $0,%rdx + addq %r10,%rax + adcq $0,%rdx + movq (%rsp,%r15,8),%r10 + cmpq %r9,%r15 + movq %rax,-16(%rsp,%r15,8) + movq %rdx,%r13 + jl L$inner + + xorq %rdx,%rdx + addq %r11,%r13 + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-8(%rsp,%r9,8) + movq %rdx,(%rsp,%r9,8) + + leaq 1(%r14),%r14 + cmpq %r9,%r14 + jl L$outer + + leaq (%rsp),%rsi + leaq -1(%r9),%r15 + + movq (%rsi),%rax + xorq %r14,%r14 + jmp L$sub +.p2align 4 +L$sub: sbbq (%rcx,%r14,8),%rax + movq %rax,(%rdi,%r14,8) + decq %r15 + movq 8(%rsi,%r14,8),%rax + leaq 1(%r14),%r14 + jge L$sub + + sbbq $0,%rax + andq %rax,%rsi + notq %rax + movq %rdi,%rcx + andq %rax,%rcx + leaq -1(%r9),%r15 + orq %rcx,%rsi +.p2align 4 +L$copy: + movq (%rsi,%r15,8),%rax + movq %rax,(%rdi,%r15,8) + movq %r14,(%rsp,%r15,8) + decq %r15 + jge L$copy + + movq 8(%rsp,%r9,8),%rsi + movq $1,%rax + movq (%rsi),%r15 + movq 8(%rsi),%r14 + movq 16(%rsi),%r13 + movq 24(%rsi),%r12 + movq 32(%rsi),%rbp + movq 40(%rsi),%rbx + leaq 48(%rsi),%rsp +L$epilogue: + .byte 0xf3,0xc3 + +.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.p2align 4 diff --git a/deps/openssl/asm/x64-macosx-gas/camellia/cmll-x86_64.s b/deps/openssl/asm/x64-macosx-gas/camellia/cmll-x86_64.s new file mode 100644 index 0000000000..dfc8d592e8 --- /dev/null +++ b/deps/openssl/asm/x64-macosx-gas/camellia/cmll-x86_64.s @@ -0,0 +1,1844 @@ +.text + + + +.globl _Camellia_EncryptBlock + +.p2align 4 +_Camellia_EncryptBlock: + movl $128,%eax + subl %edi,%eax + movl $3,%edi + adcl $0,%edi + jmp L$enc_rounds + + +.globl _Camellia_EncryptBlock_Rounds + +.p2align 4 +L$enc_rounds: +_Camellia_EncryptBlock_Rounds: + pushq %rbx + pushq %rbp + pushq %r13 + pushq %r14 + pushq %r15 +L$enc_prologue: + + + movq %rcx,%r13 + movq %rdx,%r14 + + shll $6,%edi + leaq L$Camellia_SBOX(%rip),%rbp + leaq (%r14,%rdi,1),%r15 + + movl 0(%rsi),%r8d + movl 4(%rsi),%r9d + movl 8(%rsi),%r10d + bswapl %r8d + movl 12(%rsi),%r11d + bswapl %r9d + bswapl %r10d + bswapl %r11d + + call _x86_64_Camellia_encrypt + + bswapl %r8d + bswapl %r9d + bswapl %r10d + movl %r8d,0(%r13) + bswapl %r11d + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + + movq 0(%rsp),%r15 + movq 8(%rsp),%r14 + movq 16(%rsp),%r13 + movq 24(%rsp),%rbp + movq 32(%rsp),%rbx + leaq 40(%rsp),%rsp +L$enc_epilogue: + .byte 0xf3,0xc3 + + + +.p2align 4 +_x86_64_Camellia_encrypt: + xorl 0(%r14),%r9d + xorl 4(%r14),%r8d + xorl 8(%r14),%r11d + xorl 12(%r14),%r10d +.p2align 4 +L$eloop: + movl 16(%r14),%ebx + movl 20(%r14),%eax + + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 24(%r14),%ebx + movl 28(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 32(%r14),%ebx + movl 36(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 40(%r14),%ebx + movl 44(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 48(%r14),%ebx + movl 52(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 56(%r14),%ebx + movl 60(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 64(%r14),%ebx + movl 68(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + leaq 64(%r14),%r14 + cmpq %r15,%r14 + movl 8(%r14),%edx + movl 12(%r14),%ecx + je L$edone + + andl %r8d,%eax + orl %r11d,%edx + roll $1,%eax + xorl %edx,%r10d + xorl %eax,%r9d + andl %r10d,%ecx + orl %r9d,%ebx + roll $1,%ecx + xorl %ebx,%r8d + xorl %ecx,%r11d + jmp L$eloop + +.p2align 4 +L$edone: + xorl %r10d,%eax + xorl %r11d,%ebx + xorl %r8d,%ecx + xorl %r9d,%edx + + movl %eax,%r8d + movl %ebx,%r9d + movl %ecx,%r10d + movl %edx,%r11d + +.byte 0xf3,0xc3 + + + + +.globl _Camellia_DecryptBlock + +.p2align 4 +_Camellia_DecryptBlock: + movl $128,%eax + subl %edi,%eax + movl $3,%edi + adcl $0,%edi + jmp L$dec_rounds + + +.globl _Camellia_DecryptBlock_Rounds + +.p2align 4 +L$dec_rounds: +_Camellia_DecryptBlock_Rounds: + pushq %rbx + pushq %rbp + pushq %r13 + pushq %r14 + pushq %r15 +L$dec_prologue: + + + movq %rcx,%r13 + movq %rdx,%r15 + + shll $6,%edi + leaq L$Camellia_SBOX(%rip),%rbp + leaq (%r15,%rdi,1),%r14 + + movl 0(%rsi),%r8d + movl 4(%rsi),%r9d + movl 8(%rsi),%r10d + bswapl %r8d + movl 12(%rsi),%r11d + bswapl %r9d + bswapl %r10d + bswapl %r11d + + call _x86_64_Camellia_decrypt + + bswapl %r8d + bswapl %r9d + bswapl %r10d + movl %r8d,0(%r13) + bswapl %r11d + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + + movq 0(%rsp),%r15 + movq 8(%rsp),%r14 + movq 16(%rsp),%r13 + movq 24(%rsp),%rbp + movq 32(%rsp),%rbx + leaq 40(%rsp),%rsp +L$dec_epilogue: + .byte 0xf3,0xc3 + + + +.p2align 4 +_x86_64_Camellia_decrypt: + xorl 0(%r14),%r9d + xorl 4(%r14),%r8d + xorl 8(%r14),%r11d + xorl 12(%r14),%r10d +.p2align 4 +L$dloop: + movl -8(%r14),%ebx + movl -4(%r14),%eax + + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -16(%r14),%ebx + movl -12(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -24(%r14),%ebx + movl -20(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -32(%r14),%ebx + movl -28(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -40(%r14),%ebx + movl -36(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -48(%r14),%ebx + movl -44(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -56(%r14),%ebx + movl -52(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + leaq -64(%r14),%r14 + cmpq %r15,%r14 + movl 0(%r14),%edx + movl 4(%r14),%ecx + je L$ddone + + andl %r8d,%eax + orl %r11d,%edx + roll $1,%eax + xorl %edx,%r10d + xorl %eax,%r9d + andl %r10d,%ecx + orl %r9d,%ebx + roll $1,%ecx + xorl %ebx,%r8d + xorl %ecx,%r11d + + jmp L$dloop + +.p2align 4 +L$ddone: + xorl %r10d,%ecx + xorl %r11d,%edx + xorl %r8d,%eax + xorl %r9d,%ebx + + movl %ecx,%r8d + movl %edx,%r9d + movl %eax,%r10d + movl %ebx,%r11d + +.byte 0xf3,0xc3 + + +.globl _Camellia_Ekeygen + +.p2align 4 +_Camellia_Ekeygen: + pushq %rbx + pushq %rbp + pushq %r13 + pushq %r14 + pushq %r15 +L$key_prologue: + + movq %rdi,%r15 + movq %rdx,%r13 + + movl 0(%rsi),%r8d + movl 4(%rsi),%r9d + movl 8(%rsi),%r10d + movl 12(%rsi),%r11d + + bswapl %r8d + bswapl %r9d + bswapl %r10d + bswapl %r11d + movl %r9d,0(%r13) + movl %r8d,4(%r13) + movl %r11d,8(%r13) + movl %r10d,12(%r13) + cmpq $128,%r15 + je L$1st128 + + movl 16(%rsi),%r8d + movl 20(%rsi),%r9d + cmpq $192,%r15 + je L$1st192 + movl 24(%rsi),%r10d + movl 28(%rsi),%r11d + jmp L$1st256 +L$1st192: + movl %r8d,%r10d + movl %r9d,%r11d + notl %r10d + notl %r11d +L$1st256: + bswapl %r8d + bswapl %r9d + bswapl %r10d + bswapl %r11d + movl %r9d,32(%r13) + movl %r8d,36(%r13) + movl %r11d,40(%r13) + movl %r10d,44(%r13) + xorl 0(%r13),%r9d + xorl 4(%r13),%r8d + xorl 8(%r13),%r11d + xorl 12(%r13),%r10d + +L$1st128: + leaq L$Camellia_SIGMA(%rip),%r14 + leaq L$Camellia_SBOX(%rip),%rbp + + movl 0(%r14),%ebx + movl 4(%r14),%eax + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 8(%r14),%ebx + movl 12(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 16(%r14),%ebx + movl 20(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl 0(%r13),%r9d + xorl 4(%r13),%r8d + xorl 8(%r13),%r11d + xorl 12(%r13),%r10d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 24(%r14),%ebx + movl 28(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 32(%r14),%ebx + movl 36(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + cmpq $128,%r15 + jne L$2nd256 + + leaq 128(%r13),%r13 + shlq $32,%r8 + shlq $32,%r10 + orq %r9,%r8 + orq %r11,%r10 + movq -128(%r13),%rax + movq -120(%r13),%rbx + movq %r8,-112(%r13) + movq %r10,-104(%r13) + movq %rax,%r11 + shlq $15,%rax + movq %rbx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rax + shlq $15,%rbx + orq %r11,%rbx + movq %rax,-96(%r13) + movq %rbx,-88(%r13) + movq %r8,%r11 + shlq $15,%r8 + movq %r10,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r8 + shlq $15,%r10 + orq %r11,%r10 + movq %r8,-80(%r13) + movq %r10,-72(%r13) + movq %r8,%r11 + shlq $15,%r8 + movq %r10,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r8 + shlq $15,%r10 + orq %r11,%r10 + movq %r8,-64(%r13) + movq %r10,-56(%r13) + movq %rax,%r11 + shlq $30,%rax + movq %rbx,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%rax + shlq $30,%rbx + orq %r11,%rbx + movq %rax,-48(%r13) + movq %rbx,-40(%r13) + movq %r8,%r11 + shlq $15,%r8 + movq %r10,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r8 + shlq $15,%r10 + orq %r11,%r10 + movq %r8,-32(%r13) + movq %rax,%r11 + shlq $15,%rax + movq %rbx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rax + shlq $15,%rbx + orq %r11,%rbx + movq %rbx,-24(%r13) + movq %r8,%r11 + shlq $15,%r8 + movq %r10,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r8 + shlq $15,%r10 + orq %r11,%r10 + movq %r8,-16(%r13) + movq %r10,-8(%r13) + movq %rax,%r11 + shlq $17,%rax + movq %rbx,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%rax + shlq $17,%rbx + orq %r11,%rbx + movq %rax,0(%r13) + movq %rbx,8(%r13) + movq %rax,%r11 + shlq $17,%rax + movq %rbx,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%rax + shlq $17,%rbx + orq %r11,%rbx + movq %rax,16(%r13) + movq %rbx,24(%r13) + movq %r8,%r11 + shlq $34,%r8 + movq %r10,%r9 + shrq $30,%r9 + shrq $30,%r11 + orq %r9,%r8 + shlq $34,%r10 + orq %r11,%r10 + movq %r8,32(%r13) + movq %r10,40(%r13) + movq %rax,%r11 + shlq $17,%rax + movq %rbx,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%rax + shlq $17,%rbx + orq %r11,%rbx + movq %rax,48(%r13) + movq %rbx,56(%r13) + movq %r8,%r11 + shlq $17,%r8 + movq %r10,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%r8 + shlq $17,%r10 + orq %r11,%r10 + movq %r8,64(%r13) + movq %r10,72(%r13) + movl $3,%eax + jmp L$done +.p2align 4 +L$2nd256: + movl %r9d,48(%r13) + movl %r8d,52(%r13) + movl %r11d,56(%r13) + movl %r10d,60(%r13) + xorl 32(%r13),%r9d + xorl 36(%r13),%r8d + xorl 40(%r13),%r11d + xorl 44(%r13),%r10d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 40(%r14),%ebx + movl 44(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 48(%r14),%ebx + movl 52(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + movq 0(%r13),%rax + movq 8(%r13),%rbx + movq 32(%r13),%rcx + movq 40(%r13),%rdx + movq 48(%r13),%r14 + movq 56(%r13),%r15 + leaq 128(%r13),%r13 + shlq $32,%r8 + shlq $32,%r10 + orq %r9,%r8 + orq %r11,%r10 + movq %r8,-112(%r13) + movq %r10,-104(%r13) + movq %rcx,%r11 + shlq $15,%rcx + movq %rdx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rcx + shlq $15,%rdx + orq %r11,%rdx + movq %rcx,-96(%r13) + movq %rdx,-88(%r13) + movq %r14,%r11 + shlq $15,%r14 + movq %r15,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r14 + shlq $15,%r15 + orq %r11,%r15 + movq %r14,-80(%r13) + movq %r15,-72(%r13) + movq %rcx,%r11 + shlq $15,%rcx + movq %rdx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rcx + shlq $15,%rdx + orq %r11,%rdx + movq %rcx,-64(%r13) + movq %rdx,-56(%r13) + movq %r8,%r11 + shlq $30,%r8 + movq %r10,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%r8 + shlq $30,%r10 + orq %r11,%r10 + movq %r8,-48(%r13) + movq %r10,-40(%r13) + movq %rax,%r11 + shlq $45,%rax + movq %rbx,%r9 + shrq $19,%r9 + shrq $19,%r11 + orq %r9,%rax + shlq $45,%rbx + orq %r11,%rbx + movq %rax,-32(%r13) + movq %rbx,-24(%r13) + movq %r14,%r11 + shlq $30,%r14 + movq %r15,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%r14 + shlq $30,%r15 + orq %r11,%r15 + movq %r14,-16(%r13) + movq %r15,-8(%r13) + movq %rax,%r11 + shlq $15,%rax + movq %rbx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rax + shlq $15,%rbx + orq %r11,%rbx + movq %rax,0(%r13) + movq %rbx,8(%r13) + movq %rcx,%r11 + shlq $30,%rcx + movq %rdx,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%rcx + shlq $30,%rdx + orq %r11,%rdx + movq %rcx,16(%r13) + movq %rdx,24(%r13) + movq %r8,%r11 + shlq $30,%r8 + movq %r10,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%r8 + shlq $30,%r10 + orq %r11,%r10 + movq %r8,32(%r13) + movq %r10,40(%r13) + movq %rax,%r11 + shlq $17,%rax + movq %rbx,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%rax + shlq $17,%rbx + orq %r11,%rbx + movq %rax,48(%r13) + movq %rbx,56(%r13) + movq %r14,%r11 + shlq $32,%r14 + movq %r15,%r9 + shrq $32,%r9 + shrq $32,%r11 + orq %r9,%r14 + shlq $32,%r15 + orq %r11,%r15 + movq %r14,64(%r13) + movq %r15,72(%r13) + movq %rcx,%r11 + shlq $34,%rcx + movq %rdx,%r9 + shrq $30,%r9 + shrq $30,%r11 + orq %r9,%rcx + shlq $34,%rdx + orq %r11,%rdx + movq %rcx,80(%r13) + movq %rdx,88(%r13) + movq %r14,%r11 + shlq $17,%r14 + movq %r15,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%r14 + shlq $17,%r15 + orq %r11,%r15 + movq %r14,96(%r13) + movq %r15,104(%r13) + movq %rax,%r11 + shlq $34,%rax + movq %rbx,%r9 + shrq $30,%r9 + shrq $30,%r11 + orq %r9,%rax + shlq $34,%rbx + orq %r11,%rbx + movq %rax,112(%r13) + movq %rbx,120(%r13) + movq %r8,%r11 + shlq $51,%r8 + movq %r10,%r9 + shrq $13,%r9 + shrq $13,%r11 + orq %r9,%r8 + shlq $51,%r10 + orq %r11,%r10 + movq %r8,128(%r13) + movq %r10,136(%r13) + movl $4,%eax +L$done: + movq 0(%rsp),%r15 + movq 8(%rsp),%r14 + movq 16(%rsp),%r13 + movq 24(%rsp),%rbp + movq 32(%rsp),%rbx + leaq 40(%rsp),%rsp +L$key_epilogue: + .byte 0xf3,0xc3 + +.p2align 6 +L$Camellia_SIGMA: +.long 0x3bcc908b, 0xa09e667f, 0x4caa73b2, 0xb67ae858 +.long 0xe94f82be, 0xc6ef372f, 0xf1d36f1c, 0x54ff53a5 +.long 0xde682d1d, 0x10e527fa, 0xb3e6c1fd, 0xb05688c2 +.long 0, 0, 0, 0 +L$Camellia_SBOX: +.long 0x70707000,0x70700070 +.long 0x82828200,0x2c2c002c +.long 0x2c2c2c00,0xb3b300b3 +.long 0xececec00,0xc0c000c0 +.long 0xb3b3b300,0xe4e400e4 +.long 0x27272700,0x57570057 +.long 0xc0c0c000,0xeaea00ea +.long 0xe5e5e500,0xaeae00ae +.long 0xe4e4e400,0x23230023 +.long 0x85858500,0x6b6b006b +.long 0x57575700,0x45450045 +.long 0x35353500,0xa5a500a5 +.long 0xeaeaea00,0xeded00ed +.long 0x0c0c0c00,0x4f4f004f +.long 0xaeaeae00,0x1d1d001d +.long 0x41414100,0x92920092 +.long 0x23232300,0x86860086 +.long 0xefefef00,0xafaf00af +.long 0x6b6b6b00,0x7c7c007c +.long 0x93939300,0x1f1f001f +.long 0x45454500,0x3e3e003e +.long 0x19191900,0xdcdc00dc +.long 0xa5a5a500,0x5e5e005e +.long 0x21212100,0x0b0b000b +.long 0xededed00,0xa6a600a6 +.long 0x0e0e0e00,0x39390039 +.long 0x4f4f4f00,0xd5d500d5 +.long 0x4e4e4e00,0x5d5d005d +.long 0x1d1d1d00,0xd9d900d9 +.long 0x65656500,0x5a5a005a +.long 0x92929200,0x51510051 +.long 0xbdbdbd00,0x6c6c006c +.long 0x86868600,0x8b8b008b +.long 0xb8b8b800,0x9a9a009a +.long 0xafafaf00,0xfbfb00fb +.long 0x8f8f8f00,0xb0b000b0 +.long 0x7c7c7c00,0x74740074 +.long 0xebebeb00,0x2b2b002b +.long 0x1f1f1f00,0xf0f000f0 +.long 0xcecece00,0x84840084 +.long 0x3e3e3e00,0xdfdf00df +.long 0x30303000,0xcbcb00cb +.long 0xdcdcdc00,0x34340034 +.long 0x5f5f5f00,0x76760076 +.long 0x5e5e5e00,0x6d6d006d +.long 0xc5c5c500,0xa9a900a9 +.long 0x0b0b0b00,0xd1d100d1 +.long 0x1a1a1a00,0x04040004 +.long 0xa6a6a600,0x14140014 +.long 0xe1e1e100,0x3a3a003a +.long 0x39393900,0xdede00de +.long 0xcacaca00,0x11110011 +.long 0xd5d5d500,0x32320032 +.long 0x47474700,0x9c9c009c +.long 0x5d5d5d00,0x53530053 +.long 0x3d3d3d00,0xf2f200f2 +.long 0xd9d9d900,0xfefe00fe +.long 0x01010100,0xcfcf00cf +.long 0x5a5a5a00,0xc3c300c3 +.long 0xd6d6d600,0x7a7a007a +.long 0x51515100,0x24240024 +.long 0x56565600,0xe8e800e8 +.long 0x6c6c6c00,0x60600060 +.long 0x4d4d4d00,0x69690069 +.long 0x8b8b8b00,0xaaaa00aa +.long 0x0d0d0d00,0xa0a000a0 +.long 0x9a9a9a00,0xa1a100a1 +.long 0x66666600,0x62620062 +.long 0xfbfbfb00,0x54540054 +.long 0xcccccc00,0x1e1e001e +.long 0xb0b0b000,0xe0e000e0 +.long 0x2d2d2d00,0x64640064 +.long 0x74747400,0x10100010 +.long 0x12121200,0x00000000 +.long 0x2b2b2b00,0xa3a300a3 +.long 0x20202000,0x75750075 +.long 0xf0f0f000,0x8a8a008a +.long 0xb1b1b100,0xe6e600e6 +.long 0x84848400,0x09090009 +.long 0x99999900,0xdddd00dd +.long 0xdfdfdf00,0x87870087 +.long 0x4c4c4c00,0x83830083 +.long 0xcbcbcb00,0xcdcd00cd +.long 0xc2c2c200,0x90900090 +.long 0x34343400,0x73730073 +.long 0x7e7e7e00,0xf6f600f6 +.long 0x76767600,0x9d9d009d +.long 0x05050500,0xbfbf00bf +.long 0x6d6d6d00,0x52520052 +.long 0xb7b7b700,0xd8d800d8 +.long 0xa9a9a900,0xc8c800c8 +.long 0x31313100,0xc6c600c6 +.long 0xd1d1d100,0x81810081 +.long 0x17171700,0x6f6f006f +.long 0x04040400,0x13130013 +.long 0xd7d7d700,0x63630063 +.long 0x14141400,0xe9e900e9 +.long 0x58585800,0xa7a700a7 +.long 0x3a3a3a00,0x9f9f009f +.long 0x61616100,0xbcbc00bc +.long 0xdedede00,0x29290029 +.long 0x1b1b1b00,0xf9f900f9 +.long 0x11111100,0x2f2f002f +.long 0x1c1c1c00,0xb4b400b4 +.long 0x32323200,0x78780078 +.long 0x0f0f0f00,0x06060006 +.long 0x9c9c9c00,0xe7e700e7 +.long 0x16161600,0x71710071 +.long 0x53535300,0xd4d400d4 +.long 0x18181800,0xabab00ab +.long 0xf2f2f200,0x88880088 +.long 0x22222200,0x8d8d008d +.long 0xfefefe00,0x72720072 +.long 0x44444400,0xb9b900b9 +.long 0xcfcfcf00,0xf8f800f8 +.long 0xb2b2b200,0xacac00ac +.long 0xc3c3c300,0x36360036 +.long 0xb5b5b500,0x2a2a002a +.long 0x7a7a7a00,0x3c3c003c +.long 0x91919100,0xf1f100f1 +.long 0x24242400,0x40400040 +.long 0x08080800,0xd3d300d3 +.long 0xe8e8e800,0xbbbb00bb +.long 0xa8a8a800,0x43430043 +.long 0x60606000,0x15150015 +.long 0xfcfcfc00,0xadad00ad +.long 0x69696900,0x77770077 +.long 0x50505000,0x80800080 +.long 0xaaaaaa00,0x82820082 +.long 0xd0d0d000,0xecec00ec +.long 0xa0a0a000,0x27270027 +.long 0x7d7d7d00,0xe5e500e5 +.long 0xa1a1a100,0x85850085 +.long 0x89898900,0x35350035 +.long 0x62626200,0x0c0c000c +.long 0x97979700,0x41410041 +.long 0x54545400,0xefef00ef +.long 0x5b5b5b00,0x93930093 +.long 0x1e1e1e00,0x19190019 +.long 0x95959500,0x21210021 +.long 0xe0e0e000,0x0e0e000e +.long 0xffffff00,0x4e4e004e +.long 0x64646400,0x65650065 +.long 0xd2d2d200,0xbdbd00bd +.long 0x10101000,0xb8b800b8 +.long 0xc4c4c400,0x8f8f008f +.long 0x00000000,0xebeb00eb +.long 0x48484800,0xcece00ce +.long 0xa3a3a300,0x30300030 +.long 0xf7f7f700,0x5f5f005f +.long 0x75757500,0xc5c500c5 +.long 0xdbdbdb00,0x1a1a001a +.long 0x8a8a8a00,0xe1e100e1 +.long 0x03030300,0xcaca00ca +.long 0xe6e6e600,0x47470047 +.long 0xdadada00,0x3d3d003d +.long 0x09090900,0x01010001 +.long 0x3f3f3f00,0xd6d600d6 +.long 0xdddddd00,0x56560056 +.long 0x94949400,0x4d4d004d +.long 0x87878700,0x0d0d000d +.long 0x5c5c5c00,0x66660066 +.long 0x83838300,0xcccc00cc +.long 0x02020200,0x2d2d002d +.long 0xcdcdcd00,0x12120012 +.long 0x4a4a4a00,0x20200020 +.long 0x90909000,0xb1b100b1 +.long 0x33333300,0x99990099 +.long 0x73737300,0x4c4c004c +.long 0x67676700,0xc2c200c2 +.long 0xf6f6f600,0x7e7e007e +.long 0xf3f3f300,0x05050005 +.long 0x9d9d9d00,0xb7b700b7 +.long 0x7f7f7f00,0x31310031 +.long 0xbfbfbf00,0x17170017 +.long 0xe2e2e200,0xd7d700d7 +.long 0x52525200,0x58580058 +.long 0x9b9b9b00,0x61610061 +.long 0xd8d8d800,0x1b1b001b +.long 0x26262600,0x1c1c001c +.long 0xc8c8c800,0x0f0f000f +.long 0x37373700,0x16160016 +.long 0xc6c6c600,0x18180018 +.long 0x3b3b3b00,0x22220022 +.long 0x81818100,0x44440044 +.long 0x96969600,0xb2b200b2 +.long 0x6f6f6f00,0xb5b500b5 +.long 0x4b4b4b00,0x91910091 +.long 0x13131300,0x08080008 +.long 0xbebebe00,0xa8a800a8 +.long 0x63636300,0xfcfc00fc +.long 0x2e2e2e00,0x50500050 +.long 0xe9e9e900,0xd0d000d0 +.long 0x79797900,0x7d7d007d +.long 0xa7a7a700,0x89890089 +.long 0x8c8c8c00,0x97970097 +.long 0x9f9f9f00,0x5b5b005b +.long 0x6e6e6e00,0x95950095 +.long 0xbcbcbc00,0xffff00ff +.long 0x8e8e8e00,0xd2d200d2 +.long 0x29292900,0xc4c400c4 +.long 0xf5f5f500,0x48480048 +.long 0xf9f9f900,0xf7f700f7 +.long 0xb6b6b600,0xdbdb00db +.long 0x2f2f2f00,0x03030003 +.long 0xfdfdfd00,0xdada00da +.long 0xb4b4b400,0x3f3f003f +.long 0x59595900,0x94940094 +.long 0x78787800,0x5c5c005c +.long 0x98989800,0x02020002 +.long 0x06060600,0x4a4a004a +.long 0x6a6a6a00,0x33330033 +.long 0xe7e7e700,0x67670067 +.long 0x46464600,0xf3f300f3 +.long 0x71717100,0x7f7f007f +.long 0xbababa00,0xe2e200e2 +.long 0xd4d4d400,0x9b9b009b +.long 0x25252500,0x26260026 +.long 0xababab00,0x37370037 +.long 0x42424200,0x3b3b003b +.long 0x88888800,0x96960096 +.long 0xa2a2a200,0x4b4b004b +.long 0x8d8d8d00,0xbebe00be +.long 0xfafafa00,0x2e2e002e +.long 0x72727200,0x79790079 +.long 0x07070700,0x8c8c008c +.long 0xb9b9b900,0x6e6e006e +.long 0x55555500,0x8e8e008e +.long 0xf8f8f800,0xf5f500f5 +.long 0xeeeeee00,0xb6b600b6 +.long 0xacacac00,0xfdfd00fd +.long 0x0a0a0a00,0x59590059 +.long 0x36363600,0x98980098 +.long 0x49494900,0x6a6a006a +.long 0x2a2a2a00,0x46460046 +.long 0x68686800,0xbaba00ba +.long 0x3c3c3c00,0x25250025 +.long 0x38383800,0x42420042 +.long 0xf1f1f100,0xa2a200a2 +.long 0xa4a4a400,0xfafa00fa +.long 0x40404000,0x07070007 +.long 0x28282800,0x55550055 +.long 0xd3d3d300,0xeeee00ee +.long 0x7b7b7b00,0x0a0a000a +.long 0xbbbbbb00,0x49490049 +.long 0xc9c9c900,0x68680068 +.long 0x43434300,0x38380038 +.long 0xc1c1c100,0xa4a400a4 +.long 0x15151500,0x28280028 +.long 0xe3e3e300,0x7b7b007b +.long 0xadadad00,0xc9c900c9 +.long 0xf4f4f400,0xc1c100c1 +.long 0x77777700,0xe3e300e3 +.long 0xc7c7c700,0xf4f400f4 +.long 0x80808000,0xc7c700c7 +.long 0x9e9e9e00,0x9e9e009e +.long 0x00e0e0e0,0x38003838 +.long 0x00050505,0x41004141 +.long 0x00585858,0x16001616 +.long 0x00d9d9d9,0x76007676 +.long 0x00676767,0xd900d9d9 +.long 0x004e4e4e,0x93009393 +.long 0x00818181,0x60006060 +.long 0x00cbcbcb,0xf200f2f2 +.long 0x00c9c9c9,0x72007272 +.long 0x000b0b0b,0xc200c2c2 +.long 0x00aeaeae,0xab00abab +.long 0x006a6a6a,0x9a009a9a +.long 0x00d5d5d5,0x75007575 +.long 0x00181818,0x06000606 +.long 0x005d5d5d,0x57005757 +.long 0x00828282,0xa000a0a0 +.long 0x00464646,0x91009191 +.long 0x00dfdfdf,0xf700f7f7 +.long 0x00d6d6d6,0xb500b5b5 +.long 0x00272727,0xc900c9c9 +.long 0x008a8a8a,0xa200a2a2 +.long 0x00323232,0x8c008c8c +.long 0x004b4b4b,0xd200d2d2 +.long 0x00424242,0x90009090 +.long 0x00dbdbdb,0xf600f6f6 +.long 0x001c1c1c,0x07000707 +.long 0x009e9e9e,0xa700a7a7 +.long 0x009c9c9c,0x27002727 +.long 0x003a3a3a,0x8e008e8e +.long 0x00cacaca,0xb200b2b2 +.long 0x00252525,0x49004949 +.long 0x007b7b7b,0xde00dede +.long 0x000d0d0d,0x43004343 +.long 0x00717171,0x5c005c5c +.long 0x005f5f5f,0xd700d7d7 +.long 0x001f1f1f,0xc700c7c7 +.long 0x00f8f8f8,0x3e003e3e +.long 0x00d7d7d7,0xf500f5f5 +.long 0x003e3e3e,0x8f008f8f +.long 0x009d9d9d,0x67006767 +.long 0x007c7c7c,0x1f001f1f +.long 0x00606060,0x18001818 +.long 0x00b9b9b9,0x6e006e6e +.long 0x00bebebe,0xaf00afaf +.long 0x00bcbcbc,0x2f002f2f +.long 0x008b8b8b,0xe200e2e2 +.long 0x00161616,0x85008585 +.long 0x00343434,0x0d000d0d +.long 0x004d4d4d,0x53005353 +.long 0x00c3c3c3,0xf000f0f0 +.long 0x00727272,0x9c009c9c +.long 0x00959595,0x65006565 +.long 0x00ababab,0xea00eaea +.long 0x008e8e8e,0xa300a3a3 +.long 0x00bababa,0xae00aeae +.long 0x007a7a7a,0x9e009e9e +.long 0x00b3b3b3,0xec00ecec +.long 0x00020202,0x80008080 +.long 0x00b4b4b4,0x2d002d2d +.long 0x00adadad,0x6b006b6b +.long 0x00a2a2a2,0xa800a8a8 +.long 0x00acacac,0x2b002b2b +.long 0x00d8d8d8,0x36003636 +.long 0x009a9a9a,0xa600a6a6 +.long 0x00171717,0xc500c5c5 +.long 0x001a1a1a,0x86008686 +.long 0x00353535,0x4d004d4d +.long 0x00cccccc,0x33003333 +.long 0x00f7f7f7,0xfd00fdfd +.long 0x00999999,0x66006666 +.long 0x00616161,0x58005858 +.long 0x005a5a5a,0x96009696 +.long 0x00e8e8e8,0x3a003a3a +.long 0x00242424,0x09000909 +.long 0x00565656,0x95009595 +.long 0x00404040,0x10001010 +.long 0x00e1e1e1,0x78007878 +.long 0x00636363,0xd800d8d8 +.long 0x00090909,0x42004242 +.long 0x00333333,0xcc00cccc +.long 0x00bfbfbf,0xef00efef +.long 0x00989898,0x26002626 +.long 0x00979797,0xe500e5e5 +.long 0x00858585,0x61006161 +.long 0x00686868,0x1a001a1a +.long 0x00fcfcfc,0x3f003f3f +.long 0x00ececec,0x3b003b3b +.long 0x000a0a0a,0x82008282 +.long 0x00dadada,0xb600b6b6 +.long 0x006f6f6f,0xdb00dbdb +.long 0x00535353,0xd400d4d4 +.long 0x00626262,0x98009898 +.long 0x00a3a3a3,0xe800e8e8 +.long 0x002e2e2e,0x8b008b8b +.long 0x00080808,0x02000202 +.long 0x00afafaf,0xeb00ebeb +.long 0x00282828,0x0a000a0a +.long 0x00b0b0b0,0x2c002c2c +.long 0x00747474,0x1d001d1d +.long 0x00c2c2c2,0xb000b0b0 +.long 0x00bdbdbd,0x6f006f6f +.long 0x00363636,0x8d008d8d +.long 0x00222222,0x88008888 +.long 0x00383838,0x0e000e0e +.long 0x00646464,0x19001919 +.long 0x001e1e1e,0x87008787 +.long 0x00393939,0x4e004e4e +.long 0x002c2c2c,0x0b000b0b +.long 0x00a6a6a6,0xa900a9a9 +.long 0x00303030,0x0c000c0c +.long 0x00e5e5e5,0x79007979 +.long 0x00444444,0x11001111 +.long 0x00fdfdfd,0x7f007f7f +.long 0x00888888,0x22002222 +.long 0x009f9f9f,0xe700e7e7 +.long 0x00656565,0x59005959 +.long 0x00878787,0xe100e1e1 +.long 0x006b6b6b,0xda00dada +.long 0x00f4f4f4,0x3d003d3d +.long 0x00232323,0xc800c8c8 +.long 0x00484848,0x12001212 +.long 0x00101010,0x04000404 +.long 0x00d1d1d1,0x74007474 +.long 0x00515151,0x54005454 +.long 0x00c0c0c0,0x30003030 +.long 0x00f9f9f9,0x7e007e7e +.long 0x00d2d2d2,0xb400b4b4 +.long 0x00a0a0a0,0x28002828 +.long 0x00555555,0x55005555 +.long 0x00a1a1a1,0x68006868 +.long 0x00414141,0x50005050 +.long 0x00fafafa,0xbe00bebe +.long 0x00434343,0xd000d0d0 +.long 0x00131313,0xc400c4c4 +.long 0x00c4c4c4,0x31003131 +.long 0x002f2f2f,0xcb00cbcb +.long 0x00a8a8a8,0x2a002a2a +.long 0x00b6b6b6,0xad00adad +.long 0x003c3c3c,0x0f000f0f +.long 0x002b2b2b,0xca00caca +.long 0x00c1c1c1,0x70007070 +.long 0x00ffffff,0xff00ffff +.long 0x00c8c8c8,0x32003232 +.long 0x00a5a5a5,0x69006969 +.long 0x00202020,0x08000808 +.long 0x00898989,0x62006262 +.long 0x00000000,0x00000000 +.long 0x00909090,0x24002424 +.long 0x00474747,0xd100d1d1 +.long 0x00efefef,0xfb00fbfb +.long 0x00eaeaea,0xba00baba +.long 0x00b7b7b7,0xed00eded +.long 0x00151515,0x45004545 +.long 0x00060606,0x81008181 +.long 0x00cdcdcd,0x73007373 +.long 0x00b5b5b5,0x6d006d6d +.long 0x00121212,0x84008484 +.long 0x007e7e7e,0x9f009f9f +.long 0x00bbbbbb,0xee00eeee +.long 0x00292929,0x4a004a4a +.long 0x000f0f0f,0xc300c3c3 +.long 0x00b8b8b8,0x2e002e2e +.long 0x00070707,0xc100c1c1 +.long 0x00040404,0x01000101 +.long 0x009b9b9b,0xe600e6e6 +.long 0x00949494,0x25002525 +.long 0x00212121,0x48004848 +.long 0x00666666,0x99009999 +.long 0x00e6e6e6,0xb900b9b9 +.long 0x00cecece,0xb300b3b3 +.long 0x00ededed,0x7b007b7b +.long 0x00e7e7e7,0xf900f9f9 +.long 0x003b3b3b,0xce00cece +.long 0x00fefefe,0xbf00bfbf +.long 0x007f7f7f,0xdf00dfdf +.long 0x00c5c5c5,0x71007171 +.long 0x00a4a4a4,0x29002929 +.long 0x00373737,0xcd00cdcd +.long 0x00b1b1b1,0x6c006c6c +.long 0x004c4c4c,0x13001313 +.long 0x00919191,0x64006464 +.long 0x006e6e6e,0x9b009b9b +.long 0x008d8d8d,0x63006363 +.long 0x00767676,0x9d009d9d +.long 0x00030303,0xc000c0c0 +.long 0x002d2d2d,0x4b004b4b +.long 0x00dedede,0xb700b7b7 +.long 0x00969696,0xa500a5a5 +.long 0x00262626,0x89008989 +.long 0x007d7d7d,0x5f005f5f +.long 0x00c6c6c6,0xb100b1b1 +.long 0x005c5c5c,0x17001717 +.long 0x00d3d3d3,0xf400f4f4 +.long 0x00f2f2f2,0xbc00bcbc +.long 0x004f4f4f,0xd300d3d3 +.long 0x00191919,0x46004646 +.long 0x003f3f3f,0xcf00cfcf +.long 0x00dcdcdc,0x37003737 +.long 0x00797979,0x5e005e5e +.long 0x001d1d1d,0x47004747 +.long 0x00525252,0x94009494 +.long 0x00ebebeb,0xfa00fafa +.long 0x00f3f3f3,0xfc00fcfc +.long 0x006d6d6d,0x5b005b5b +.long 0x005e5e5e,0x97009797 +.long 0x00fbfbfb,0xfe00fefe +.long 0x00696969,0x5a005a5a +.long 0x00b2b2b2,0xac00acac +.long 0x00f0f0f0,0x3c003c3c +.long 0x00313131,0x4c004c4c +.long 0x000c0c0c,0x03000303 +.long 0x00d4d4d4,0x35003535 +.long 0x00cfcfcf,0xf300f3f3 +.long 0x008c8c8c,0x23002323 +.long 0x00e2e2e2,0xb800b8b8 +.long 0x00757575,0x5d005d5d +.long 0x00a9a9a9,0x6a006a6a +.long 0x004a4a4a,0x92009292 +.long 0x00575757,0xd500d5d5 +.long 0x00848484,0x21002121 +.long 0x00111111,0x44004444 +.long 0x00454545,0x51005151 +.long 0x001b1b1b,0xc600c6c6 +.long 0x00f5f5f5,0x7d007d7d +.long 0x00e4e4e4,0x39003939 +.long 0x000e0e0e,0x83008383 +.long 0x00737373,0xdc00dcdc +.long 0x00aaaaaa,0xaa00aaaa +.long 0x00f1f1f1,0x7c007c7c +.long 0x00dddddd,0x77007777 +.long 0x00595959,0x56005656 +.long 0x00141414,0x05000505 +.long 0x006c6c6c,0x1b001b1b +.long 0x00929292,0xa400a4a4 +.long 0x00545454,0x15001515 +.long 0x00d0d0d0,0x34003434 +.long 0x00787878,0x1e001e1e +.long 0x00707070,0x1c001c1c +.long 0x00e3e3e3,0xf800f8f8 +.long 0x00494949,0x52005252 +.long 0x00808080,0x20002020 +.long 0x00505050,0x14001414 +.long 0x00a7a7a7,0xe900e9e9 +.long 0x00f6f6f6,0xbd00bdbd +.long 0x00777777,0xdd00dddd +.long 0x00939393,0xe400e4e4 +.long 0x00868686,0xa100a1a1 +.long 0x00838383,0xe000e0e0 +.long 0x002a2a2a,0x8a008a8a +.long 0x00c7c7c7,0xf100f1f1 +.long 0x005b5b5b,0xd600d6d6 +.long 0x00e9e9e9,0x7a007a7a +.long 0x00eeeeee,0xbb00bbbb +.long 0x008f8f8f,0xe300e3e3 +.long 0x00010101,0x40004040 +.long 0x003d3d3d,0x4f004f4f +.globl _Camellia_cbc_encrypt + +.p2align 4 +_Camellia_cbc_encrypt: + cmpq $0,%rdx + je L$cbc_abort + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 +L$cbc_prologue: + + movq %rsp,%rbp + subq $64,%rsp + andq $-64,%rsp + + + + leaq -64-63(%rcx),%r10 + subq %rsp,%r10 + negq %r10 + andq $960,%r10 + subq %r10,%rsp + + + movq %rdi,%r12 + movq %rsi,%r13 + movq %r8,%rbx + movq %rcx,%r14 + movl 272(%rcx),%r15d + + movq %r8,40(%rsp) + movq %rbp,48(%rsp) + +L$cbc_body: + leaq L$Camellia_SBOX(%rip),%rbp + + movl $32,%ecx +.p2align 2 +L$cbc_prefetch_sbox: + movq 0(%rbp),%rax + movq 32(%rbp),%rsi + movq 64(%rbp),%rdi + movq 96(%rbp),%r11 + leaq 128(%rbp),%rbp + loop L$cbc_prefetch_sbox + subq $4096,%rbp + shlq $6,%r15 + movq %rdx,%rcx + leaq (%r14,%r15,1),%r15 + + cmpl $0,%r9d + je L$CBC_DECRYPT + + andq $-16,%rdx + andq $15,%rcx + leaq (%r12,%rdx,1),%rdx + movq %r14,0(%rsp) + movq %rdx,8(%rsp) + movq %rcx,16(%rsp) + + cmpq %r12,%rdx + movl 0(%rbx),%r8d + movl 4(%rbx),%r9d + movl 8(%rbx),%r10d + movl 12(%rbx),%r11d + je L$cbc_enc_tail + jmp L$cbc_eloop + +.p2align 4 +L$cbc_eloop: + xorl 0(%r12),%r8d + xorl 4(%r12),%r9d + xorl 8(%r12),%r10d + bswapl %r8d + xorl 12(%r12),%r11d + bswapl %r9d + bswapl %r10d + bswapl %r11d + + call _x86_64_Camellia_encrypt + + movq 0(%rsp),%r14 + bswapl %r8d + movq 8(%rsp),%rdx + bswapl %r9d + movq 16(%rsp),%rcx + bswapl %r10d + movl %r8d,0(%r13) + bswapl %r11d + movl %r9d,4(%r13) + movl %r10d,8(%r13) + leaq 16(%r12),%r12 + movl %r11d,12(%r13) + cmpq %rdx,%r12 + leaq 16(%r13),%r13 + jne L$cbc_eloop + + cmpq $0,%rcx + jne L$cbc_enc_tail + + movq 40(%rsp),%r13 + movl %r8d,0(%r13) + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + jmp L$cbc_done + +.p2align 4 +L$cbc_enc_tail: + xorq %rax,%rax + movq %rax,0+24(%rsp) + movq %rax,8+24(%rsp) + movq %rax,16(%rsp) + +L$cbc_enc_pushf: + pushfq + cld + movq %r12,%rsi + leaq 8+24(%rsp),%rdi +.long 0x9066A4F3 + + popfq +L$cbc_enc_popf: + + leaq 24(%rsp),%r12 + leaq 16+24(%rsp),%rax + movq %rax,8(%rsp) + jmp L$cbc_eloop + + +.p2align 4 +L$CBC_DECRYPT: + xchgq %r14,%r15 + addq $15,%rdx + andq $15,%rcx + andq $-16,%rdx + movq %r14,0(%rsp) + leaq (%r12,%rdx,1),%rdx + movq %rdx,8(%rsp) + movq %rcx,16(%rsp) + + movq (%rbx),%rax + movq 8(%rbx),%rbx + jmp L$cbc_dloop +.p2align 4 +L$cbc_dloop: + movl 0(%r12),%r8d + movl 4(%r12),%r9d + movl 8(%r12),%r10d + bswapl %r8d + movl 12(%r12),%r11d + bswapl %r9d + movq %rax,0+24(%rsp) + bswapl %r10d + movq %rbx,8+24(%rsp) + bswapl %r11d + + call _x86_64_Camellia_decrypt + + movq 0(%rsp),%r14 + movq 8(%rsp),%rdx + movq 16(%rsp),%rcx + + bswapl %r8d + movq (%r12),%rax + bswapl %r9d + movq 8(%r12),%rbx + bswapl %r10d + xorl 0+24(%rsp),%r8d + bswapl %r11d + xorl 4+24(%rsp),%r9d + xorl 8+24(%rsp),%r10d + leaq 16(%r12),%r12 + xorl 12+24(%rsp),%r11d + cmpq %rdx,%r12 + je L$cbc_ddone + + movl %r8d,0(%r13) + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + + leaq 16(%r13),%r13 + jmp L$cbc_dloop + +.p2align 4 +L$cbc_ddone: + movq 40(%rsp),%rdx + cmpq $0,%rcx + jne L$cbc_dec_tail + + movl %r8d,0(%r13) + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + + movq %rax,(%rdx) + movq %rbx,8(%rdx) + jmp L$cbc_done +.p2align 4 +L$cbc_dec_tail: + movl %r8d,0+24(%rsp) + movl %r9d,4+24(%rsp) + movl %r10d,8+24(%rsp) + movl %r11d,12+24(%rsp) + +L$cbc_dec_pushf: + pushfq + cld + leaq 8+24(%rsp),%rsi + leaq (%r13),%rdi +.long 0x9066A4F3 + + popfq +L$cbc_dec_popf: + + movq %rax,(%rdx) + movq %rbx,8(%rdx) + jmp L$cbc_done + +.p2align 4 +L$cbc_done: + movq 48(%rsp),%rcx + movq 0(%rcx),%r15 + movq 8(%rcx),%r14 + movq 16(%rcx),%r13 + movq 24(%rcx),%r12 + movq 32(%rcx),%rbp + movq 40(%rcx),%rbx + leaq 48(%rcx),%rsp +L$cbc_abort: + .byte 0xf3,0xc3 + + +.byte 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54,95,54,52,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/deps/openssl/asm/x64-macosx-gas/md5/md5-x86_64.s b/deps/openssl/asm/x64-macosx-gas/md5/md5-x86_64.s new file mode 100644 index 0000000000..96f6ea16ce --- /dev/null +++ b/deps/openssl/asm/x64-macosx-gas/md5/md5-x86_64.s @@ -0,0 +1,671 @@ +.text + +.p2align 4 + +.globl _md5_block_asm_data_order + +_md5_block_asm_data_order: + pushq %rbp + pushq %rbx + pushq %r12 + pushq %r14 + pushq %r15 +L$prologue: + + + + + movq %rdi,%rbp + shlq $6,%rdx + leaq (%rsi,%rdx,1),%rdi + movl 0(%rbp),%eax + movl 4(%rbp),%ebx + movl 8(%rbp),%ecx + movl 12(%rbp),%edx + + + + + + + + cmpq %rdi,%rsi + je L$end + + + +L$loop: + movl %eax,%r8d + movl %ebx,%r9d + movl %ecx,%r14d + movl %edx,%r15d + movl 0(%rsi),%r10d + movl %edx,%r11d + xorl %ecx,%r11d + leal -680876936(%rax,%r10,1),%eax + andl %ebx,%r11d + xorl %edx,%r11d + movl 4(%rsi),%r10d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -389564586(%rdx,%r10,1),%edx + andl %eax,%r11d + xorl %ecx,%r11d + movl 8(%rsi),%r10d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal 606105819(%rcx,%r10,1),%ecx + andl %edx,%r11d + xorl %ebx,%r11d + movl 12(%rsi),%r10d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -1044525330(%rbx,%r10,1),%ebx + andl %ecx,%r11d + xorl %eax,%r11d + movl 16(%rsi),%r10d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal -176418897(%rax,%r10,1),%eax + andl %ebx,%r11d + xorl %edx,%r11d + movl 20(%rsi),%r10d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal 1200080426(%rdx,%r10,1),%edx + andl %eax,%r11d + xorl %ecx,%r11d + movl 24(%rsi),%r10d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -1473231341(%rcx,%r10,1),%ecx + andl %edx,%r11d + xorl %ebx,%r11d + movl 28(%rsi),%r10d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -45705983(%rbx,%r10,1),%ebx + andl %ecx,%r11d + xorl %eax,%r11d + movl 32(%rsi),%r10d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal 1770035416(%rax,%r10,1),%eax + andl %ebx,%r11d + xorl %edx,%r11d + movl 36(%rsi),%r10d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -1958414417(%rdx,%r10,1),%edx + andl %eax,%r11d + xorl %ecx,%r11d + movl 40(%rsi),%r10d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -42063(%rcx,%r10,1),%ecx + andl %edx,%r11d + xorl %ebx,%r11d + movl 44(%rsi),%r10d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -1990404162(%rbx,%r10,1),%ebx + andl %ecx,%r11d + xorl %eax,%r11d + movl 48(%rsi),%r10d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal 1804603682(%rax,%r10,1),%eax + andl %ebx,%r11d + xorl %edx,%r11d + movl 52(%rsi),%r10d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -40341101(%rdx,%r10,1),%edx + andl %eax,%r11d + xorl %ecx,%r11d + movl 56(%rsi),%r10d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -1502002290(%rcx,%r10,1),%ecx + andl %edx,%r11d + xorl %ebx,%r11d + movl 60(%rsi),%r10d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal 1236535329(%rbx,%r10,1),%ebx + andl %ecx,%r11d + xorl %eax,%r11d + movl 0(%rsi),%r10d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + movl 4(%rsi),%r10d + movl %edx,%r11d + movl %edx,%r12d + notl %r11d + leal -165796510(%rax,%r10,1),%eax + andl %ebx,%r12d + andl %ecx,%r11d + movl 24(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + leal -1069501632(%rdx,%r10,1),%edx + andl %eax,%r12d + andl %ebx,%r11d + movl 44(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + leal 643717713(%rcx,%r10,1),%ecx + andl %edx,%r12d + andl %eax,%r11d + movl 0(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + leal -373897302(%rbx,%r10,1),%ebx + andl %ecx,%r12d + andl %edx,%r11d + movl 20(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + leal -701558691(%rax,%r10,1),%eax + andl %ebx,%r12d + andl %ecx,%r11d + movl 40(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + leal 38016083(%rdx,%r10,1),%edx + andl %eax,%r12d + andl %ebx,%r11d + movl 60(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + leal -660478335(%rcx,%r10,1),%ecx + andl %edx,%r12d + andl %eax,%r11d + movl 16(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + leal -405537848(%rbx,%r10,1),%ebx + andl %ecx,%r12d + andl %edx,%r11d + movl 36(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + leal 568446438(%rax,%r10,1),%eax + andl %ebx,%r12d + andl %ecx,%r11d + movl 56(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + leal -1019803690(%rdx,%r10,1),%edx + andl %eax,%r12d + andl %ebx,%r11d + movl 12(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + leal -187363961(%rcx,%r10,1),%ecx + andl %edx,%r12d + andl %eax,%r11d + movl 32(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + leal 1163531501(%rbx,%r10,1),%ebx + andl %ecx,%r12d + andl %edx,%r11d + movl 52(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + leal -1444681467(%rax,%r10,1),%eax + andl %ebx,%r12d + andl %ecx,%r11d + movl 8(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + leal -51403784(%rdx,%r10,1),%edx + andl %eax,%r12d + andl %ebx,%r11d + movl 28(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + leal 1735328473(%rcx,%r10,1),%ecx + andl %edx,%r12d + andl %eax,%r11d + movl 48(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + leal -1926607734(%rbx,%r10,1),%ebx + andl %ecx,%r12d + andl %edx,%r11d + movl 0(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + movl 20(%rsi),%r10d + movl %ecx,%r11d + leal -378558(%rax,%r10,1),%eax + movl 32(%rsi),%r10d + xorl %edx,%r11d + xorl %ebx,%r11d + addl %r11d,%eax + roll $4,%eax + movl %ebx,%r11d + addl %ebx,%eax + leal -2022574463(%rdx,%r10,1),%edx + movl 44(%rsi),%r10d + xorl %ecx,%r11d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal 1839030562(%rcx,%r10,1),%ecx + movl 56(%rsi),%r10d + xorl %ebx,%r11d + xorl %edx,%r11d + addl %r11d,%ecx + roll $16,%ecx + movl %edx,%r11d + addl %edx,%ecx + leal -35309556(%rbx,%r10,1),%ebx + movl 4(%rsi),%r10d + xorl %eax,%r11d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal -1530992060(%rax,%r10,1),%eax + movl 16(%rsi),%r10d + xorl %edx,%r11d + xorl %ebx,%r11d + addl %r11d,%eax + roll $4,%eax + movl %ebx,%r11d + addl %ebx,%eax + leal 1272893353(%rdx,%r10,1),%edx + movl 28(%rsi),%r10d + xorl %ecx,%r11d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal -155497632(%rcx,%r10,1),%ecx + movl 40(%rsi),%r10d + xorl %ebx,%r11d + xorl %edx,%r11d + addl %r11d,%ecx + roll $16,%ecx + movl %edx,%r11d + addl %edx,%ecx + leal -1094730640(%rbx,%r10,1),%ebx + movl 52(%rsi),%r10d + xorl %eax,%r11d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal 681279174(%rax,%r10,1),%eax + movl 0(%rsi),%r10d + xorl %edx,%r11d + xorl %ebx,%r11d + addl %r11d,%eax + roll $4,%eax + movl %ebx,%r11d + addl %ebx,%eax + leal -358537222(%rdx,%r10,1),%edx + movl 12(%rsi),%r10d + xorl %ecx,%r11d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal -722521979(%rcx,%r10,1),%ecx + movl 24(%rsi),%r10d + xorl %ebx,%r11d + xorl %edx,%r11d + addl %r11d,%ecx + roll $16,%ecx + movl %edx,%r11d + addl %edx,%ecx + leal 76029189(%rbx,%r10,1),%ebx + movl 36(%rsi),%r10d + xorl %eax,%r11d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal -640364487(%rax,%r10,1),%eax + movl 48(%rsi),%r10d + xorl %edx,%r11d + xorl %ebx,%r11d + addl %r11d,%eax + roll $4,%eax + movl %ebx,%r11d + addl %ebx,%eax + leal -421815835(%rdx,%r10,1),%edx + movl 60(%rsi),%r10d + xorl %ecx,%r11d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal 530742520(%rcx,%r10,1),%ecx + movl 8(%rsi),%r10d + xorl %ebx,%r11d + xorl %edx,%r11d + addl %r11d,%ecx + roll $16,%ecx + movl %edx,%r11d + addl %edx,%ecx + leal -995338651(%rbx,%r10,1),%ebx + movl 0(%rsi),%r10d + xorl %eax,%r11d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + movl 0(%rsi),%r10d + movl $4294967295,%r11d + xorl %edx,%r11d + leal -198630844(%rax,%r10,1),%eax + orl %ebx,%r11d + xorl %ecx,%r11d + addl %r11d,%eax + movl 28(%rsi),%r10d + movl $4294967295,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal 1126891415(%rdx,%r10,1),%edx + orl %eax,%r11d + xorl %ebx,%r11d + addl %r11d,%edx + movl 56(%rsi),%r10d + movl $4294967295,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1416354905(%rcx,%r10,1),%ecx + orl %edx,%r11d + xorl %eax,%r11d + addl %r11d,%ecx + movl 20(%rsi),%r10d + movl $4294967295,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -57434055(%rbx,%r10,1),%ebx + orl %ecx,%r11d + xorl %edx,%r11d + addl %r11d,%ebx + movl 48(%rsi),%r10d + movl $4294967295,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal 1700485571(%rax,%r10,1),%eax + orl %ebx,%r11d + xorl %ecx,%r11d + addl %r11d,%eax + movl 12(%rsi),%r10d + movl $4294967295,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -1894986606(%rdx,%r10,1),%edx + orl %eax,%r11d + xorl %ebx,%r11d + addl %r11d,%edx + movl 40(%rsi),%r10d + movl $4294967295,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1051523(%rcx,%r10,1),%ecx + orl %edx,%r11d + xorl %eax,%r11d + addl %r11d,%ecx + movl 4(%rsi),%r10d + movl $4294967295,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -2054922799(%rbx,%r10,1),%ebx + orl %ecx,%r11d + xorl %edx,%r11d + addl %r11d,%ebx + movl 32(%rsi),%r10d + movl $4294967295,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal 1873313359(%rax,%r10,1),%eax + orl %ebx,%r11d + xorl %ecx,%r11d + addl %r11d,%eax + movl 60(%rsi),%r10d + movl $4294967295,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -30611744(%rdx,%r10,1),%edx + orl %eax,%r11d + xorl %ebx,%r11d + addl %r11d,%edx + movl 24(%rsi),%r10d + movl $4294967295,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1560198380(%rcx,%r10,1),%ecx + orl %edx,%r11d + xorl %eax,%r11d + addl %r11d,%ecx + movl 52(%rsi),%r10d + movl $4294967295,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal 1309151649(%rbx,%r10,1),%ebx + orl %ecx,%r11d + xorl %edx,%r11d + addl %r11d,%ebx + movl 16(%rsi),%r10d + movl $4294967295,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal -145523070(%rax,%r10,1),%eax + orl %ebx,%r11d + xorl %ecx,%r11d + addl %r11d,%eax + movl 44(%rsi),%r10d + movl $4294967295,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -1120210379(%rdx,%r10,1),%edx + orl %eax,%r11d + xorl %ebx,%r11d + addl %r11d,%edx + movl 8(%rsi),%r10d + movl $4294967295,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal 718787259(%rcx,%r10,1),%ecx + orl %edx,%r11d + xorl %eax,%r11d + addl %r11d,%ecx + movl 36(%rsi),%r10d + movl $4294967295,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -343485551(%rbx,%r10,1),%ebx + orl %ecx,%r11d + xorl %edx,%r11d + addl %r11d,%ebx + movl 0(%rsi),%r10d + movl $4294967295,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + + addl %r8d,%eax + addl %r9d,%ebx + addl %r14d,%ecx + addl %r15d,%edx + + + addq $64,%rsi + cmpq %rdi,%rsi + jb L$loop + + + +L$end: + movl %eax,0(%rbp) + movl %ebx,4(%rbp) + movl %ecx,8(%rbp) + movl %edx,12(%rbp) + + movq (%rsp),%r15 + movq 8(%rsp),%r14 + movq 16(%rsp),%r12 + movq 24(%rsp),%rbx + movq 32(%rsp),%rbp + addq $40,%rsp +L$epilogue: + .byte 0xf3,0xc3 + diff --git a/deps/openssl/asm/x64-macosx-gas/rc4/rc4-x86_64.s b/deps/openssl/asm/x64-macosx-gas/rc4/rc4-x86_64.s new file mode 100644 index 0000000000..41183cebec --- /dev/null +++ b/deps/openssl/asm/x64-macosx-gas/rc4/rc4-x86_64.s @@ -0,0 +1,430 @@ +.text + + +.globl _RC4 + +.p2align 4 +_RC4: orq %rsi,%rsi + jne L$entry + .byte 0xf3,0xc3 +L$entry: + pushq %rbx + pushq %r12 + pushq %r13 +L$prologue: + + addq $8,%rdi + movl -8(%rdi),%r8d + movl -4(%rdi),%r12d + cmpl $-1,256(%rdi) + je L$RC4_CHAR + incb %r8b + movl (%rdi,%r8,4),%r9d + testq $-8,%rsi + jz L$loop1 + jmp L$loop8 +.p2align 4 +L$loop8: + addb %r9b,%r12b + movq %r8,%r10 + movl (%rdi,%r12,4),%r13d + rorq $8,%rax + incb %r10b + movl (%rdi,%r10,4),%r11d + cmpq %r10,%r12 + movl %r9d,(%rdi,%r12,4) + cmoveq %r9,%r11 + movl %r13d,(%rdi,%r8,4) + addb %r9b,%r13b + movb (%rdi,%r13,4),%al + addb %r11b,%r12b + movq %r10,%r8 + movl (%rdi,%r12,4),%r13d + rorq $8,%rax + incb %r8b + movl (%rdi,%r8,4),%r9d + cmpq %r8,%r12 + movl %r11d,(%rdi,%r12,4) + cmoveq %r11,%r9 + movl %r13d,(%rdi,%r10,4) + addb %r11b,%r13b + movb (%rdi,%r13,4),%al + addb %r9b,%r12b + movq %r8,%r10 + movl (%rdi,%r12,4),%r13d + rorq $8,%rax + incb %r10b + movl (%rdi,%r10,4),%r11d + cmpq %r10,%r12 + movl %r9d,(%rdi,%r12,4) + cmoveq %r9,%r11 + movl %r13d,(%rdi,%r8,4) + addb %r9b,%r13b + movb (%rdi,%r13,4),%al + addb %r11b,%r12b + movq %r10,%r8 + movl (%rdi,%r12,4),%r13d + rorq $8,%rax + incb %r8b + movl (%rdi,%r8,4),%r9d + cmpq %r8,%r12 + movl %r11d,(%rdi,%r12,4) + cmoveq %r11,%r9 + movl %r13d,(%rdi,%r10,4) + addb %r11b,%r13b + movb (%rdi,%r13,4),%al + addb %r9b,%r12b + movq %r8,%r10 + movl (%rdi,%r12,4),%r13d + rorq $8,%rax + incb %r10b + movl (%rdi,%r10,4),%r11d + cmpq %r10,%r12 + movl %r9d,(%rdi,%r12,4) + cmoveq %r9,%r11 + movl %r13d,(%rdi,%r8,4) + addb %r9b,%r13b + movb (%rdi,%r13,4),%al + addb %r11b,%r12b + movq %r10,%r8 + movl (%rdi,%r12,4),%r13d + rorq $8,%rax + incb %r8b + movl (%rdi,%r8,4),%r9d + cmpq %r8,%r12 + movl %r11d,(%rdi,%r12,4) + cmoveq %r11,%r9 + movl %r13d,(%rdi,%r10,4) + addb %r11b,%r13b + movb (%rdi,%r13,4),%al + addb %r9b,%r12b + movq %r8,%r10 + movl (%rdi,%r12,4),%r13d + rorq $8,%rax + incb %r10b + movl (%rdi,%r10,4),%r11d + cmpq %r10,%r12 + movl %r9d,(%rdi,%r12,4) + cmoveq %r9,%r11 + movl %r13d,(%rdi,%r8,4) + addb %r9b,%r13b + movb (%rdi,%r13,4),%al + addb %r11b,%r12b + movq %r10,%r8 + movl (%rdi,%r12,4),%r13d + rorq $8,%rax + incb %r8b + movl (%rdi,%r8,4),%r9d + cmpq %r8,%r12 + movl %r11d,(%rdi,%r12,4) + cmoveq %r11,%r9 + movl %r13d,(%rdi,%r10,4) + addb %r11b,%r13b + movb (%rdi,%r13,4),%al + rorq $8,%rax + subq $8,%rsi + + xorq (%rdx),%rax + addq $8,%rdx + movq %rax,(%rcx) + addq $8,%rcx + + testq $-8,%rsi + jnz L$loop8 + cmpq $0,%rsi + jne L$loop1 + jmp L$exit + +.p2align 4 +L$loop1: + addb %r9b,%r12b + movl (%rdi,%r12,4),%r13d + movl %r9d,(%rdi,%r12,4) + movl %r13d,(%rdi,%r8,4) + addb %r13b,%r9b + incb %r8b + movl (%rdi,%r9,4),%r13d + movl (%rdi,%r8,4),%r9d + xorb (%rdx),%r13b + incq %rdx + movb %r13b,(%rcx) + incq %rcx + decq %rsi + jnz L$loop1 + jmp L$exit + +.p2align 4 +L$RC4_CHAR: + addb $1,%r8b + movzbl (%rdi,%r8,1),%r9d + testq $-8,%rsi + jz L$cloop1 + cmpl $0,260(%rdi) + jnz L$cloop1 + jmp L$cloop8 +.p2align 4 +L$cloop8: + movl (%rdx),%eax + movl 4(%rdx),%ebx + addb %r9b,%r12b + leaq 1(%r8),%r10 + movzbl (%rdi,%r12,1),%r13d + movzbl %r10b,%r10d + movzbl (%rdi,%r10,1),%r11d + movb %r9b,(%rdi,%r12,1) + cmpq %r10,%r12 + movb %r13b,(%rdi,%r8,1) + jne L$cmov0 + + movq %r9,%r11 +L$cmov0: + addb %r9b,%r13b + xorb (%rdi,%r13,1),%al + rorl $8,%eax + addb %r11b,%r12b + leaq 1(%r10),%r8 + movzbl (%rdi,%r12,1),%r13d + movzbl %r8b,%r8d + movzbl (%rdi,%r8,1),%r9d + movb %r11b,(%rdi,%r12,1) + cmpq %r8,%r12 + movb %r13b,(%rdi,%r10,1) + jne L$cmov1 + + movq %r11,%r9 +L$cmov1: + addb %r11b,%r13b + xorb (%rdi,%r13,1),%al + rorl $8,%eax + addb %r9b,%r12b + leaq 1(%r8),%r10 + movzbl (%rdi,%r12,1),%r13d + movzbl %r10b,%r10d + movzbl (%rdi,%r10,1),%r11d + movb %r9b,(%rdi,%r12,1) + cmpq %r10,%r12 + movb %r13b,(%rdi,%r8,1) + jne L$cmov2 + + movq %r9,%r11 +L$cmov2: + addb %r9b,%r13b + xorb (%rdi,%r13,1),%al + rorl $8,%eax + addb %r11b,%r12b + leaq 1(%r10),%r8 + movzbl (%rdi,%r12,1),%r13d + movzbl %r8b,%r8d + movzbl (%rdi,%r8,1),%r9d + movb %r11b,(%rdi,%r12,1) + cmpq %r8,%r12 + movb %r13b,(%rdi,%r10,1) + jne L$cmov3 + + movq %r11,%r9 +L$cmov3: + addb %r11b,%r13b + xorb (%rdi,%r13,1),%al + rorl $8,%eax + addb %r9b,%r12b + leaq 1(%r8),%r10 + movzbl (%rdi,%r12,1),%r13d + movzbl %r10b,%r10d + movzbl (%rdi,%r10,1),%r11d + movb %r9b,(%rdi,%r12,1) + cmpq %r10,%r12 + movb %r13b,(%rdi,%r8,1) + jne L$cmov4 + + movq %r9,%r11 +L$cmov4: + addb %r9b,%r13b + xorb (%rdi,%r13,1),%bl + rorl $8,%ebx + addb %r11b,%r12b + leaq 1(%r10),%r8 + movzbl (%rdi,%r12,1),%r13d + movzbl %r8b,%r8d + movzbl (%rdi,%r8,1),%r9d + movb %r11b,(%rdi,%r12,1) + cmpq %r8,%r12 + movb %r13b,(%rdi,%r10,1) + jne L$cmov5 + + movq %r11,%r9 +L$cmov5: + addb %r11b,%r13b + xorb (%rdi,%r13,1),%bl + rorl $8,%ebx + addb %r9b,%r12b + leaq 1(%r8),%r10 + movzbl (%rdi,%r12,1),%r13d + movzbl %r10b,%r10d + movzbl (%rdi,%r10,1),%r11d + movb %r9b,(%rdi,%r12,1) + cmpq %r10,%r12 + movb %r13b,(%rdi,%r8,1) + jne L$cmov6 + + movq %r9,%r11 +L$cmov6: + addb %r9b,%r13b + xorb (%rdi,%r13,1),%bl + rorl $8,%ebx + addb %r11b,%r12b + leaq 1(%r10),%r8 + movzbl (%rdi,%r12,1),%r13d + movzbl %r8b,%r8d + movzbl (%rdi,%r8,1),%r9d + movb %r11b,(%rdi,%r12,1) + cmpq %r8,%r12 + movb %r13b,(%rdi,%r10,1) + jne L$cmov7 + + movq %r11,%r9 +L$cmov7: + addb %r11b,%r13b + xorb (%rdi,%r13,1),%bl + rorl $8,%ebx + leaq -8(%rsi),%rsi + movl %eax,(%rcx) + leaq 8(%rdx),%rdx + movl %ebx,4(%rcx) + leaq 8(%rcx),%rcx + + testq $-8,%rsi + jnz L$cloop8 + cmpq $0,%rsi + jne L$cloop1 + jmp L$exit +.p2align 4 +L$cloop1: + addb %r9b,%r12b + movzbl (%rdi,%r12,1),%r13d + movb %r9b,(%rdi,%r12,1) + movb %r13b,(%rdi,%r8,1) + addb %r9b,%r13b + addb $1,%r8b + movzbl %r13b,%r13d + movzbl %r8b,%r8d + movzbl (%rdi,%r13,1),%r13d + movzbl (%rdi,%r8,1),%r9d + xorb (%rdx),%r13b + leaq 1(%rdx),%rdx + movb %r13b,(%rcx) + leaq 1(%rcx),%rcx + subq $1,%rsi + jnz L$cloop1 + jmp L$exit + +.p2align 4 +L$exit: + subb $1,%r8b + movl %r8d,-8(%rdi) + movl %r12d,-4(%rdi) + + movq (%rsp),%r13 + movq 8(%rsp),%r12 + movq 16(%rsp),%rbx + addq $24,%rsp +L$epilogue: + .byte 0xf3,0xc3 + + +.globl _RC4_set_key + +.p2align 4 +_RC4_set_key: + leaq 8(%rdi),%rdi + leaq (%rdx,%rsi,1),%rdx + negq %rsi + movq %rsi,%rcx + xorl %eax,%eax + xorq %r9,%r9 + xorq %r10,%r10 + xorq %r11,%r11 + + movl _OPENSSL_ia32cap_P(%rip),%r8d + btl $20,%r8d + jnc L$w1stloop + btl $30,%r8d + setc %r9b + movl %r9d,260(%rdi) + jmp L$c1stloop + +.p2align 4 +L$w1stloop: + movl %eax,(%rdi,%rax,4) + addb $1,%al + jnc L$w1stloop + + xorq %r9,%r9 + xorq %r8,%r8 +.p2align 4 +L$w2ndloop: + movl (%rdi,%r9,4),%r10d + addb (%rdx,%rsi,1),%r8b + addb %r10b,%r8b + addq $1,%rsi + movl (%rdi,%r8,4),%r11d + cmovzq %rcx,%rsi + movl %r10d,(%rdi,%r8,4) + movl %r11d,(%rdi,%r9,4) + addb $1,%r9b + jnc L$w2ndloop + jmp L$exit_key + +.p2align 4 +L$c1stloop: + movb %al,(%rdi,%rax,1) + addb $1,%al + jnc L$c1stloop + + xorq %r9,%r9 + xorq %r8,%r8 +.p2align 4 +L$c2ndloop: + movb (%rdi,%r9,1),%r10b + addb (%rdx,%rsi,1),%r8b + addb %r10b,%r8b + addq $1,%rsi + movb (%rdi,%r8,1),%r11b + jnz L$cnowrap + movq %rcx,%rsi +L$cnowrap: + movb %r10b,(%rdi,%r8,1) + movb %r11b,(%rdi,%r9,1) + addb $1,%r9b + jnc L$c2ndloop + movl $-1,256(%rdi) + +.p2align 4 +L$exit_key: + xorl %eax,%eax + movl %eax,-8(%rdi) + movl %eax,-4(%rdi) + .byte 0xf3,0xc3 + + +.globl _RC4_options + +.p2align 4 +_RC4_options: + leaq L$opts(%rip),%rax + movl _OPENSSL_ia32cap_P(%rip),%edx + btl $20,%edx + jnc L$done + addq $12,%rax + btl $30,%edx + jnc L$done + addq $13,%rax +L$done: + .byte 0xf3,0xc3 +.p2align 6 +L$opts: +.byte 114,99,52,40,56,120,44,105,110,116,41,0 +.byte 114,99,52,40,56,120,44,99,104,97,114,41,0 +.byte 114,99,52,40,49,120,44,99,104,97,114,41,0 +.byte 82,67,52,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.p2align 6 + diff --git a/deps/openssl/asm/x64-macosx-gas/sha/sha1-x86_64.s b/deps/openssl/asm/x64-macosx-gas/sha/sha1-x86_64.s new file mode 100644 index 0000000000..f9dc2568e5 --- /dev/null +++ b/deps/openssl/asm/x64-macosx-gas/sha/sha1-x86_64.s @@ -0,0 +1,1283 @@ +.text + +.globl _sha1_block_data_order + +.p2align 4 +_sha1_block_data_order: + pushq %rbx + pushq %rbp + pushq %r12 + movq %rsp,%r11 + movq %rdi,%r8 + subq $72,%rsp + movq %rsi,%r9 + andq $-64,%rsp + movq %rdx,%r10 + movq %r11,64(%rsp) +L$prologue: + + movl 0(%r8),%edx + movl 4(%r8),%esi + movl 8(%r8),%edi + movl 12(%r8),%ebp + movl 16(%r8),%r11d +.p2align 2 +L$loop: + movl 0(%r9),%eax + bswapl %eax + movl %eax,0(%rsp) + leal 1518500249(%rax,%r11,1),%r12d + movl %edi,%ebx + movl 4(%r9),%eax + movl %edx,%r11d + xorl %ebp,%ebx + bswapl %eax + roll $5,%r11d + andl %esi,%ebx + movl %eax,4(%rsp) + addl %r11d,%r12d + xorl %ebp,%ebx + roll $30,%esi + addl %ebx,%r12d + leal 1518500249(%rax,%rbp,1),%r11d + movl %esi,%ebx + movl 8(%r9),%eax + movl %r12d,%ebp + xorl %edi,%ebx + bswapl %eax + roll $5,%ebp + andl %edx,%ebx + movl %eax,8(%rsp) + addl %ebp,%r11d + xorl %edi,%ebx + roll $30,%edx + addl %ebx,%r11d + leal 1518500249(%rax,%rdi,1),%ebp + movl %edx,%ebx + movl 12(%r9),%eax + movl %r11d,%edi + xorl %esi,%ebx + bswapl %eax + roll $5,%edi + andl %r12d,%ebx + movl %eax,12(%rsp) + addl %edi,%ebp + xorl %esi,%ebx + roll $30,%r12d + addl %ebx,%ebp + leal 1518500249(%rax,%rsi,1),%edi + movl %r12d,%ebx + movl 16(%r9),%eax + movl %ebp,%esi + xorl %edx,%ebx + bswapl %eax + roll $5,%esi + andl %r11d,%ebx + movl %eax,16(%rsp) + addl %esi,%edi + xorl %edx,%ebx + roll $30,%r11d + addl %ebx,%edi + leal 1518500249(%rax,%rdx,1),%esi + movl %r11d,%ebx + movl 20(%r9),%eax + movl %edi,%edx + xorl %r12d,%ebx + bswapl %eax + roll $5,%edx + andl %ebp,%ebx + movl %eax,20(%rsp) + addl %edx,%esi + xorl %r12d,%ebx + roll $30,%ebp + addl %ebx,%esi + leal 1518500249(%rax,%r12,1),%edx + movl %ebp,%ebx + movl 24(%r9),%eax + movl %esi,%r12d + xorl %r11d,%ebx + bswapl %eax + roll $5,%r12d + andl %edi,%ebx + movl %eax,24(%rsp) + addl %r12d,%edx + xorl %r11d,%ebx + roll $30,%edi + addl %ebx,%edx + leal 1518500249(%rax,%r11,1),%r12d + movl %edi,%ebx + movl 28(%r9),%eax + movl %edx,%r11d + xorl %ebp,%ebx + bswapl %eax + roll $5,%r11d + andl %esi,%ebx + movl %eax,28(%rsp) + addl %r11d,%r12d + xorl %ebp,%ebx + roll $30,%esi + addl %ebx,%r12d + leal 1518500249(%rax,%rbp,1),%r11d + movl %esi,%ebx + movl 32(%r9),%eax + movl %r12d,%ebp + xorl %edi,%ebx + bswapl %eax + roll $5,%ebp + andl %edx,%ebx + movl %eax,32(%rsp) + addl %ebp,%r11d + xorl %edi,%ebx + roll $30,%edx + addl %ebx,%r11d + leal 1518500249(%rax,%rdi,1),%ebp + movl %edx,%ebx + movl 36(%r9),%eax + movl %r11d,%edi + xorl %esi,%ebx + bswapl %eax + roll $5,%edi + andl %r12d,%ebx + movl %eax,36(%rsp) + addl %edi,%ebp + xorl %esi,%ebx + roll $30,%r12d + addl %ebx,%ebp + leal 1518500249(%rax,%rsi,1),%edi + movl %r12d,%ebx + movl 40(%r9),%eax + movl %ebp,%esi + xorl %edx,%ebx + bswapl %eax + roll $5,%esi + andl %r11d,%ebx + movl %eax,40(%rsp) + addl %esi,%edi + xorl %edx,%ebx + roll $30,%r11d + addl %ebx,%edi + leal 1518500249(%rax,%rdx,1),%esi + movl %r11d,%ebx + movl 44(%r9),%eax + movl %edi,%edx + xorl %r12d,%ebx + bswapl %eax + roll $5,%edx + andl %ebp,%ebx + movl %eax,44(%rsp) + addl %edx,%esi + xorl %r12d,%ebx + roll $30,%ebp + addl %ebx,%esi + leal 1518500249(%rax,%r12,1),%edx + movl %ebp,%ebx + movl 48(%r9),%eax + movl %esi,%r12d + xorl %r11d,%ebx + bswapl %eax + roll $5,%r12d + andl %edi,%ebx + movl %eax,48(%rsp) + addl %r12d,%edx + xorl %r11d,%ebx + roll $30,%edi + addl %ebx,%edx + leal 1518500249(%rax,%r11,1),%r12d + movl %edi,%ebx + movl 52(%r9),%eax + movl %edx,%r11d + xorl %ebp,%ebx + bswapl %eax + roll $5,%r11d + andl %esi,%ebx + movl %eax,52(%rsp) + addl %r11d,%r12d + xorl %ebp,%ebx + roll $30,%esi + addl %ebx,%r12d + leal 1518500249(%rax,%rbp,1),%r11d + movl %esi,%ebx + movl 56(%r9),%eax + movl %r12d,%ebp + xorl %edi,%ebx + bswapl %eax + roll $5,%ebp + andl %edx,%ebx + movl %eax,56(%rsp) + addl %ebp,%r11d + xorl %edi,%ebx + roll $30,%edx + addl %ebx,%r11d + leal 1518500249(%rax,%rdi,1),%ebp + movl %edx,%ebx + movl 60(%r9),%eax + movl %r11d,%edi + xorl %esi,%ebx + bswapl %eax + roll $5,%edi + andl %r12d,%ebx + movl %eax,60(%rsp) + addl %edi,%ebp + xorl %esi,%ebx + roll $30,%r12d + addl %ebx,%ebp + leal 1518500249(%rax,%rsi,1),%edi + movl 0(%rsp),%eax + movl %r12d,%ebx + movl %ebp,%esi + xorl 8(%rsp),%eax + xorl %edx,%ebx + roll $5,%esi + xorl 32(%rsp),%eax + andl %r11d,%ebx + addl %esi,%edi + xorl 52(%rsp),%eax + xorl %edx,%ebx + roll $30,%r11d + addl %ebx,%edi + roll $1,%eax + movl %eax,0(%rsp) + leal 1518500249(%rax,%rdx,1),%esi + movl 4(%rsp),%eax + movl %r11d,%ebx + movl %edi,%edx + xorl 12(%rsp),%eax + xorl %r12d,%ebx + roll $5,%edx + xorl 36(%rsp),%eax + andl %ebp,%ebx + addl %edx,%esi + xorl 56(%rsp),%eax + xorl %r12d,%ebx + roll $30,%ebp + addl %ebx,%esi + roll $1,%eax + movl %eax,4(%rsp) + leal 1518500249(%rax,%r12,1),%edx + movl 8(%rsp),%eax + movl %ebp,%ebx + movl %esi,%r12d + xorl 16(%rsp),%eax + xorl %r11d,%ebx + roll $5,%r12d + xorl 40(%rsp),%eax + andl %edi,%ebx + addl %r12d,%edx + xorl 60(%rsp),%eax + xorl %r11d,%ebx + roll $30,%edi + addl %ebx,%edx + roll $1,%eax + movl %eax,8(%rsp) + leal 1518500249(%rax,%r11,1),%r12d + movl 12(%rsp),%eax + movl %edi,%ebx + movl %edx,%r11d + xorl 20(%rsp),%eax + xorl %ebp,%ebx + roll $5,%r11d + xorl 44(%rsp),%eax + andl %esi,%ebx + addl %r11d,%r12d + xorl 0(%rsp),%eax + xorl %ebp,%ebx + roll $30,%esi + addl %ebx,%r12d + roll $1,%eax + movl %eax,12(%rsp) + leal 1518500249(%rax,%rbp,1),%r11d + movl 16(%rsp),%eax + movl %esi,%ebx + movl %r12d,%ebp + xorl 24(%rsp),%eax + xorl %edi,%ebx + roll $5,%ebp + xorl 48(%rsp),%eax + andl %edx,%ebx + addl %ebp,%r11d + xorl 4(%rsp),%eax + xorl %edi,%ebx + roll $30,%edx + addl %ebx,%r11d + roll $1,%eax + movl %eax,16(%rsp) + leal 1859775393(%rax,%rdi,1),%ebp + movl 20(%rsp),%eax + movl %edx,%ebx + movl %r11d,%edi + xorl 28(%rsp),%eax + xorl %r12d,%ebx + roll $5,%edi + xorl 52(%rsp),%eax + xorl %esi,%ebx + addl %edi,%ebp + xorl 8(%rsp),%eax + roll $30,%r12d + addl %ebx,%ebp + roll $1,%eax + movl %eax,20(%rsp) + leal 1859775393(%rax,%rsi,1),%edi + movl 24(%rsp),%eax + movl %r12d,%ebx + movl %ebp,%esi + xorl 32(%rsp),%eax + xorl %r11d,%ebx + roll $5,%esi + xorl 56(%rsp),%eax + xorl %edx,%ebx + addl %esi,%edi + xorl 12(%rsp),%eax + roll $30,%r11d + addl %ebx,%edi + roll $1,%eax + movl %eax,24(%rsp) + leal 1859775393(%rax,%rdx,1),%esi + movl 28(%rsp),%eax + movl %r11d,%ebx + movl %edi,%edx + xorl 36(%rsp),%eax + xorl %ebp,%ebx + roll $5,%edx + xorl 60(%rsp),%eax + xorl %r12d,%ebx + addl %edx,%esi + xorl 16(%rsp),%eax + roll $30,%ebp + addl %ebx,%esi + roll $1,%eax + movl %eax,28(%rsp) + leal 1859775393(%rax,%r12,1),%edx + movl 32(%rsp),%eax + movl %ebp,%ebx + movl %esi,%r12d + xorl 40(%rsp),%eax + xorl %edi,%ebx + roll $5,%r12d + xorl 0(%rsp),%eax + xorl %r11d,%ebx + addl %r12d,%edx + xorl 20(%rsp),%eax + roll $30,%edi + addl %ebx,%edx + roll $1,%eax + movl %eax,32(%rsp) + leal 1859775393(%rax,%r11,1),%r12d + movl 36(%rsp),%eax + movl %edi,%ebx + movl %edx,%r11d + xorl 44(%rsp),%eax + xorl %esi,%ebx + roll $5,%r11d + xorl 4(%rsp),%eax + xorl %ebp,%ebx + addl %r11d,%r12d + xorl 24(%rsp),%eax + roll $30,%esi + addl %ebx,%r12d + roll $1,%eax + movl %eax,36(%rsp) + leal 1859775393(%rax,%rbp,1),%r11d + movl 40(%rsp),%eax + movl %esi,%ebx + movl %r12d,%ebp + xorl 48(%rsp),%eax + xorl %edx,%ebx + roll $5,%ebp + xorl 8(%rsp),%eax + xorl %edi,%ebx + addl %ebp,%r11d + xorl 28(%rsp),%eax + roll $30,%edx + addl %ebx,%r11d + roll $1,%eax + movl %eax,40(%rsp) + leal 1859775393(%rax,%rdi,1),%ebp + movl 44(%rsp),%eax + movl %edx,%ebx + movl %r11d,%edi + xorl 52(%rsp),%eax + xorl %r12d,%ebx + roll $5,%edi + xorl 12(%rsp),%eax + xorl %esi,%ebx + addl %edi,%ebp + xorl 32(%rsp),%eax + roll $30,%r12d + addl %ebx,%ebp + roll $1,%eax + movl %eax,44(%rsp) + leal 1859775393(%rax,%rsi,1),%edi + movl 48(%rsp),%eax + movl %r12d,%ebx + movl %ebp,%esi + xorl 56(%rsp),%eax + xorl %r11d,%ebx + roll $5,%esi + xorl 16(%rsp),%eax + xorl %edx,%ebx + addl %esi,%edi + xorl 36(%rsp),%eax + roll $30,%r11d + addl %ebx,%edi + roll $1,%eax + movl %eax,48(%rsp) + leal 1859775393(%rax,%rdx,1),%esi + movl 52(%rsp),%eax + movl %r11d,%ebx + movl %edi,%edx + xorl 60(%rsp),%eax + xorl %ebp,%ebx + roll $5,%edx + xorl 20(%rsp),%eax + xorl %r12d,%ebx + addl %edx,%esi + xorl 40(%rsp),%eax + roll $30,%ebp + addl %ebx,%esi + roll $1,%eax + movl %eax,52(%rsp) + leal 1859775393(%rax,%r12,1),%edx + movl 56(%rsp),%eax + movl %ebp,%ebx + movl %esi,%r12d + xorl 0(%rsp),%eax + xorl %edi,%ebx + roll $5,%r12d + xorl 24(%rsp),%eax + xorl %r11d,%ebx + addl %r12d,%edx + xorl 44(%rsp),%eax + roll $30,%edi + addl %ebx,%edx + roll $1,%eax + movl %eax,56(%rsp) + leal 1859775393(%rax,%r11,1),%r12d + movl 60(%rsp),%eax + movl %edi,%ebx + movl %edx,%r11d + xorl 4(%rsp),%eax + xorl %esi,%ebx + roll $5,%r11d + xorl 28(%rsp),%eax + xorl %ebp,%ebx + addl %r11d,%r12d + xorl 48(%rsp),%eax + roll $30,%esi + addl %ebx,%r12d + roll $1,%eax + movl %eax,60(%rsp) + leal 1859775393(%rax,%rbp,1),%r11d + movl 0(%rsp),%eax + movl %esi,%ebx + movl %r12d,%ebp + xorl 8(%rsp),%eax + xorl %edx,%ebx + roll $5,%ebp + xorl 32(%rsp),%eax + xorl %edi,%ebx + addl %ebp,%r11d + xorl 52(%rsp),%eax + roll $30,%edx + addl %ebx,%r11d + roll $1,%eax + movl %eax,0(%rsp) + leal 1859775393(%rax,%rdi,1),%ebp + movl 4(%rsp),%eax + movl %edx,%ebx + movl %r11d,%edi + xorl 12(%rsp),%eax + xorl %r12d,%ebx + roll $5,%edi + xorl 36(%rsp),%eax + xorl %esi,%ebx + addl %edi,%ebp + xorl 56(%rsp),%eax + roll $30,%r12d + addl %ebx,%ebp + roll $1,%eax + movl %eax,4(%rsp) + leal 1859775393(%rax,%rsi,1),%edi + movl 8(%rsp),%eax + movl %r12d,%ebx + movl %ebp,%esi + xorl 16(%rsp),%eax + xorl %r11d,%ebx + roll $5,%esi + xorl 40(%rsp),%eax + xorl %edx,%ebx + addl %esi,%edi + xorl 60(%rsp),%eax + roll $30,%r11d + addl %ebx,%edi + roll $1,%eax + movl %eax,8(%rsp) + leal 1859775393(%rax,%rdx,1),%esi + movl 12(%rsp),%eax + movl %r11d,%ebx + movl %edi,%edx + xorl 20(%rsp),%eax + xorl %ebp,%ebx + roll $5,%edx + xorl 44(%rsp),%eax + xorl %r12d,%ebx + addl %edx,%esi + xorl 0(%rsp),%eax + roll $30,%ebp + addl %ebx,%esi + roll $1,%eax + movl %eax,12(%rsp) + leal 1859775393(%rax,%r12,1),%edx + movl 16(%rsp),%eax + movl %ebp,%ebx + movl %esi,%r12d + xorl 24(%rsp),%eax + xorl %edi,%ebx + roll $5,%r12d + xorl 48(%rsp),%eax + xorl %r11d,%ebx + addl %r12d,%edx + xorl 4(%rsp),%eax + roll $30,%edi + addl %ebx,%edx + roll $1,%eax + movl %eax,16(%rsp) + leal 1859775393(%rax,%r11,1),%r12d + movl 20(%rsp),%eax + movl %edi,%ebx + movl %edx,%r11d + xorl 28(%rsp),%eax + xorl %esi,%ebx + roll $5,%r11d + xorl 52(%rsp),%eax + xorl %ebp,%ebx + addl %r11d,%r12d + xorl 8(%rsp),%eax + roll $30,%esi + addl %ebx,%r12d + roll $1,%eax + movl %eax,20(%rsp) + leal 1859775393(%rax,%rbp,1),%r11d + movl 24(%rsp),%eax + movl %esi,%ebx + movl %r12d,%ebp + xorl 32(%rsp),%eax + xorl %edx,%ebx + roll $5,%ebp + xorl 56(%rsp),%eax + xorl %edi,%ebx + addl %ebp,%r11d + xorl 12(%rsp),%eax + roll $30,%edx + addl %ebx,%r11d + roll $1,%eax + movl %eax,24(%rsp) + leal 1859775393(%rax,%rdi,1),%ebp + movl 28(%rsp),%eax + movl %edx,%ebx + movl %r11d,%edi + xorl 36(%rsp),%eax + xorl %r12d,%ebx + roll $5,%edi + xorl 60(%rsp),%eax + xorl %esi,%ebx + addl %edi,%ebp + xorl 16(%rsp),%eax + roll $30,%r12d + addl %ebx,%ebp + roll $1,%eax + movl %eax,28(%rsp) + leal 1859775393(%rax,%rsi,1),%edi + movl 32(%rsp),%eax + movl %r12d,%ebx + movl %ebp,%esi + xorl 40(%rsp),%eax + xorl %r11d,%ebx + roll $5,%esi + xorl 0(%rsp),%eax + xorl %edx,%ebx + addl %esi,%edi + xorl 20(%rsp),%eax + roll $30,%r11d + addl %ebx,%edi + roll $1,%eax + movl %eax,32(%rsp) + leal -1894007588(%rax,%rdx,1),%esi + movl 36(%rsp),%eax + movl %ebp,%ebx + movl %ebp,%ecx + xorl 44(%rsp),%eax + movl %edi,%edx + andl %r11d,%ebx + xorl 4(%rsp),%eax + orl %r11d,%ecx + roll $5,%edx + xorl 24(%rsp),%eax + andl %r12d,%ecx + addl %edx,%esi + roll $1,%eax + orl %ecx,%ebx + roll $30,%ebp + movl %eax,36(%rsp) + addl %ebx,%esi + leal -1894007588(%rax,%r12,1),%edx + movl 40(%rsp),%eax + movl %edi,%ebx + movl %edi,%ecx + xorl 48(%rsp),%eax + movl %esi,%r12d + andl %ebp,%ebx + xorl 8(%rsp),%eax + orl %ebp,%ecx + roll $5,%r12d + xorl 28(%rsp),%eax + andl %r11d,%ecx + addl %r12d,%edx + roll $1,%eax + orl %ecx,%ebx + roll $30,%edi + movl %eax,40(%rsp) + addl %ebx,%edx + leal -1894007588(%rax,%r11,1),%r12d + movl 44(%rsp),%eax + movl %esi,%ebx + movl %esi,%ecx + xorl 52(%rsp),%eax + movl %edx,%r11d + andl %edi,%ebx + xorl 12(%rsp),%eax + orl %edi,%ecx + roll $5,%r11d + xorl 32(%rsp),%eax + andl %ebp,%ecx + addl %r11d,%r12d + roll $1,%eax + orl %ecx,%ebx + roll $30,%esi + movl %eax,44(%rsp) + addl %ebx,%r12d + leal -1894007588(%rax,%rbp,1),%r11d + movl 48(%rsp),%eax + movl %edx,%ebx + movl %edx,%ecx + xorl 56(%rsp),%eax + movl %r12d,%ebp + andl %esi,%ebx + xorl 16(%rsp),%eax + orl %esi,%ecx + roll $5,%ebp + xorl 36(%rsp),%eax + andl %edi,%ecx + addl %ebp,%r11d + roll $1,%eax + orl %ecx,%ebx + roll $30,%edx + movl %eax,48(%rsp) + addl %ebx,%r11d + leal -1894007588(%rax,%rdi,1),%ebp + movl 52(%rsp),%eax + movl %r12d,%ebx + movl %r12d,%ecx + xorl 60(%rsp),%eax + movl %r11d,%edi + andl %edx,%ebx + xorl 20(%rsp),%eax + orl %edx,%ecx + roll $5,%edi + xorl 40(%rsp),%eax + andl %esi,%ecx + addl %edi,%ebp + roll $1,%eax + orl %ecx,%ebx + roll $30,%r12d + movl %eax,52(%rsp) + addl %ebx,%ebp + leal -1894007588(%rax,%rsi,1),%edi + movl 56(%rsp),%eax + movl %r11d,%ebx + movl %r11d,%ecx + xorl 0(%rsp),%eax + movl %ebp,%esi + andl %r12d,%ebx + xorl 24(%rsp),%eax + orl %r12d,%ecx + roll $5,%esi + xorl 44(%rsp),%eax + andl %edx,%ecx + addl %esi,%edi + roll $1,%eax + orl %ecx,%ebx + roll $30,%r11d + movl %eax,56(%rsp) + addl %ebx,%edi + leal -1894007588(%rax,%rdx,1),%esi + movl 60(%rsp),%eax + movl %ebp,%ebx + movl %ebp,%ecx + xorl 4(%rsp),%eax + movl %edi,%edx + andl %r11d,%ebx + xorl 28(%rsp),%eax + orl %r11d,%ecx + roll $5,%edx + xorl 48(%rsp),%eax + andl %r12d,%ecx + addl %edx,%esi + roll $1,%eax + orl %ecx,%ebx + roll $30,%ebp + movl %eax,60(%rsp) + addl %ebx,%esi + leal -1894007588(%rax,%r12,1),%edx + movl 0(%rsp),%eax + movl %edi,%ebx + movl %edi,%ecx + xorl 8(%rsp),%eax + movl %esi,%r12d + andl %ebp,%ebx + xorl 32(%rsp),%eax + orl %ebp,%ecx + roll $5,%r12d + xorl 52(%rsp),%eax + andl %r11d,%ecx + addl %r12d,%edx + roll $1,%eax + orl %ecx,%ebx + roll $30,%edi + movl %eax,0(%rsp) + addl %ebx,%edx + leal -1894007588(%rax,%r11,1),%r12d + movl 4(%rsp),%eax + movl %esi,%ebx + movl %esi,%ecx + xorl 12(%rsp),%eax + movl %edx,%r11d + andl %edi,%ebx + xorl 36(%rsp),%eax + orl %edi,%ecx + roll $5,%r11d + xorl 56(%rsp),%eax + andl %ebp,%ecx + addl %r11d,%r12d + roll $1,%eax + orl %ecx,%ebx + roll $30,%esi + movl %eax,4(%rsp) + addl %ebx,%r12d + leal -1894007588(%rax,%rbp,1),%r11d + movl 8(%rsp),%eax + movl %edx,%ebx + movl %edx,%ecx + xorl 16(%rsp),%eax + movl %r12d,%ebp + andl %esi,%ebx + xorl 40(%rsp),%eax + orl %esi,%ecx + roll $5,%ebp + xorl 60(%rsp),%eax + andl %edi,%ecx + addl %ebp,%r11d + roll $1,%eax + orl %ecx,%ebx + roll $30,%edx + movl %eax,8(%rsp) + addl %ebx,%r11d + leal -1894007588(%rax,%rdi,1),%ebp + movl 12(%rsp),%eax + movl %r12d,%ebx + movl %r12d,%ecx + xorl 20(%rsp),%eax + movl %r11d,%edi + andl %edx,%ebx + xorl 44(%rsp),%eax + orl %edx,%ecx + roll $5,%edi + xorl 0(%rsp),%eax + andl %esi,%ecx + addl %edi,%ebp + roll $1,%eax + orl %ecx,%ebx + roll $30,%r12d + movl %eax,12(%rsp) + addl %ebx,%ebp + leal -1894007588(%rax,%rsi,1),%edi + movl 16(%rsp),%eax + movl %r11d,%ebx + movl %r11d,%ecx + xorl 24(%rsp),%eax + movl %ebp,%esi + andl %r12d,%ebx + xorl 48(%rsp),%eax + orl %r12d,%ecx + roll $5,%esi + xorl 4(%rsp),%eax + andl %edx,%ecx + addl %esi,%edi + roll $1,%eax + orl %ecx,%ebx + roll $30,%r11d + movl %eax,16(%rsp) + addl %ebx,%edi + leal -1894007588(%rax,%rdx,1),%esi + movl 20(%rsp),%eax + movl %ebp,%ebx + movl %ebp,%ecx + xorl 28(%rsp),%eax + movl %edi,%edx + andl %r11d,%ebx + xorl 52(%rsp),%eax + orl %r11d,%ecx + roll $5,%edx + xorl 8(%rsp),%eax + andl %r12d,%ecx + addl %edx,%esi + roll $1,%eax + orl %ecx,%ebx + roll $30,%ebp + movl %eax,20(%rsp) + addl %ebx,%esi + leal -1894007588(%rax,%r12,1),%edx + movl 24(%rsp),%eax + movl %edi,%ebx + movl %edi,%ecx + xorl 32(%rsp),%eax + movl %esi,%r12d + andl %ebp,%ebx + xorl 56(%rsp),%eax + orl %ebp,%ecx + roll $5,%r12d + xorl 12(%rsp),%eax + andl %r11d,%ecx + addl %r12d,%edx + roll $1,%eax + orl %ecx,%ebx + roll $30,%edi + movl %eax,24(%rsp) + addl %ebx,%edx + leal -1894007588(%rax,%r11,1),%r12d + movl 28(%rsp),%eax + movl %esi,%ebx + movl %esi,%ecx + xorl 36(%rsp),%eax + movl %edx,%r11d + andl %edi,%ebx + xorl 60(%rsp),%eax + orl %edi,%ecx + roll $5,%r11d + xorl 16(%rsp),%eax + andl %ebp,%ecx + addl %r11d,%r12d + roll $1,%eax + orl %ecx,%ebx + roll $30,%esi + movl %eax,28(%rsp) + addl %ebx,%r12d + leal -1894007588(%rax,%rbp,1),%r11d + movl 32(%rsp),%eax + movl %edx,%ebx + movl %edx,%ecx + xorl 40(%rsp),%eax + movl %r12d,%ebp + andl %esi,%ebx + xorl 0(%rsp),%eax + orl %esi,%ecx + roll $5,%ebp + xorl 20(%rsp),%eax + andl %edi,%ecx + addl %ebp,%r11d + roll $1,%eax + orl %ecx,%ebx + roll $30,%edx + movl %eax,32(%rsp) + addl %ebx,%r11d + leal -1894007588(%rax,%rdi,1),%ebp + movl 36(%rsp),%eax + movl %r12d,%ebx + movl %r12d,%ecx + xorl 44(%rsp),%eax + movl %r11d,%edi + andl %edx,%ebx + xorl 4(%rsp),%eax + orl %edx,%ecx + roll $5,%edi + xorl 24(%rsp),%eax + andl %esi,%ecx + addl %edi,%ebp + roll $1,%eax + orl %ecx,%ebx + roll $30,%r12d + movl %eax,36(%rsp) + addl %ebx,%ebp + leal -1894007588(%rax,%rsi,1),%edi + movl 40(%rsp),%eax + movl %r11d,%ebx + movl %r11d,%ecx + xorl 48(%rsp),%eax + movl %ebp,%esi + andl %r12d,%ebx + xorl 8(%rsp),%eax + orl %r12d,%ecx + roll $5,%esi + xorl 28(%rsp),%eax + andl %edx,%ecx + addl %esi,%edi + roll $1,%eax + orl %ecx,%ebx + roll $30,%r11d + movl %eax,40(%rsp) + addl %ebx,%edi + leal -1894007588(%rax,%rdx,1),%esi + movl 44(%rsp),%eax + movl %ebp,%ebx + movl %ebp,%ecx + xorl 52(%rsp),%eax + movl %edi,%edx + andl %r11d,%ebx + xorl 12(%rsp),%eax + orl %r11d,%ecx + roll $5,%edx + xorl 32(%rsp),%eax + andl %r12d,%ecx + addl %edx,%esi + roll $1,%eax + orl %ecx,%ebx + roll $30,%ebp + movl %eax,44(%rsp) + addl %ebx,%esi + leal -1894007588(%rax,%r12,1),%edx + movl 48(%rsp),%eax + movl %edi,%ebx + movl %edi,%ecx + xorl 56(%rsp),%eax + movl %esi,%r12d + andl %ebp,%ebx + xorl 16(%rsp),%eax + orl %ebp,%ecx + roll $5,%r12d + xorl 36(%rsp),%eax + andl %r11d,%ecx + addl %r12d,%edx + roll $1,%eax + orl %ecx,%ebx + roll $30,%edi + movl %eax,48(%rsp) + addl %ebx,%edx + leal -899497514(%rax,%r11,1),%r12d + movl 52(%rsp),%eax + movl %edi,%ebx + movl %edx,%r11d + xorl 60(%rsp),%eax + xorl %esi,%ebx + roll $5,%r11d + xorl 20(%rsp),%eax + xorl %ebp,%ebx + addl %r11d,%r12d + xorl 40(%rsp),%eax + roll $30,%esi + addl %ebx,%r12d + roll $1,%eax + movl %eax,52(%rsp) + leal -899497514(%rax,%rbp,1),%r11d + movl 56(%rsp),%eax + movl %esi,%ebx + movl %r12d,%ebp + xorl 0(%rsp),%eax + xorl %edx,%ebx + roll $5,%ebp + xorl 24(%rsp),%eax + xorl %edi,%ebx + addl %ebp,%r11d + xorl 44(%rsp),%eax + roll $30,%edx + addl %ebx,%r11d + roll $1,%eax + movl %eax,56(%rsp) + leal -899497514(%rax,%rdi,1),%ebp + movl 60(%rsp),%eax + movl %edx,%ebx + movl %r11d,%edi + xorl 4(%rsp),%eax + xorl %r12d,%ebx + roll $5,%edi + xorl 28(%rsp),%eax + xorl %esi,%ebx + addl %edi,%ebp + xorl 48(%rsp),%eax + roll $30,%r12d + addl %ebx,%ebp + roll $1,%eax + movl %eax,60(%rsp) + leal -899497514(%rax,%rsi,1),%edi + movl 0(%rsp),%eax + movl %r12d,%ebx + movl %ebp,%esi + xorl 8(%rsp),%eax + xorl %r11d,%ebx + roll $5,%esi + xorl 32(%rsp),%eax + xorl %edx,%ebx + addl %esi,%edi + xorl 52(%rsp),%eax + roll $30,%r11d + addl %ebx,%edi + roll $1,%eax + movl %eax,0(%rsp) + leal -899497514(%rax,%rdx,1),%esi + movl 4(%rsp),%eax + movl %r11d,%ebx + movl %edi,%edx + xorl 12(%rsp),%eax + xorl %ebp,%ebx + roll $5,%edx + xorl 36(%rsp),%eax + xorl %r12d,%ebx + addl %edx,%esi + xorl 56(%rsp),%eax + roll $30,%ebp + addl %ebx,%esi + roll $1,%eax + movl %eax,4(%rsp) + leal -899497514(%rax,%r12,1),%edx + movl 8(%rsp),%eax + movl %ebp,%ebx + movl %esi,%r12d + xorl 16(%rsp),%eax + xorl %edi,%ebx + roll $5,%r12d + xorl 40(%rsp),%eax + xorl %r11d,%ebx + addl %r12d,%edx + xorl 60(%rsp),%eax + roll $30,%edi + addl %ebx,%edx + roll $1,%eax + movl %eax,8(%rsp) + leal -899497514(%rax,%r11,1),%r12d + movl 12(%rsp),%eax + movl %edi,%ebx + movl %edx,%r11d + xorl 20(%rsp),%eax + xorl %esi,%ebx + roll $5,%r11d + xorl 44(%rsp),%eax + xorl %ebp,%ebx + addl %r11d,%r12d + xorl 0(%rsp),%eax + roll $30,%esi + addl %ebx,%r12d + roll $1,%eax + movl %eax,12(%rsp) + leal -899497514(%rax,%rbp,1),%r11d + movl 16(%rsp),%eax + movl %esi,%ebx + movl %r12d,%ebp + xorl 24(%rsp),%eax + xorl %edx,%ebx + roll $5,%ebp + xorl 48(%rsp),%eax + xorl %edi,%ebx + addl %ebp,%r11d + xorl 4(%rsp),%eax + roll $30,%edx + addl %ebx,%r11d + roll $1,%eax + movl %eax,16(%rsp) + leal -899497514(%rax,%rdi,1),%ebp + movl 20(%rsp),%eax + movl %edx,%ebx + movl %r11d,%edi + xorl 28(%rsp),%eax + xorl %r12d,%ebx + roll $5,%edi + xorl 52(%rsp),%eax + xorl %esi,%ebx + addl %edi,%ebp + xorl 8(%rsp),%eax + roll $30,%r12d + addl %ebx,%ebp + roll $1,%eax + movl %eax,20(%rsp) + leal -899497514(%rax,%rsi,1),%edi + movl 24(%rsp),%eax + movl %r12d,%ebx + movl %ebp,%esi + xorl 32(%rsp),%eax + xorl %r11d,%ebx + roll $5,%esi + xorl 56(%rsp),%eax + xorl %edx,%ebx + addl %esi,%edi + xorl 12(%rsp),%eax + roll $30,%r11d + addl %ebx,%edi + roll $1,%eax + movl %eax,24(%rsp) + leal -899497514(%rax,%rdx,1),%esi + movl 28(%rsp),%eax + movl %r11d,%ebx + movl %edi,%edx + xorl 36(%rsp),%eax + xorl %ebp,%ebx + roll $5,%edx + xorl 60(%rsp),%eax + xorl %r12d,%ebx + addl %edx,%esi + xorl 16(%rsp),%eax + roll $30,%ebp + addl %ebx,%esi + roll $1,%eax + movl %eax,28(%rsp) + leal -899497514(%rax,%r12,1),%edx + movl 32(%rsp),%eax + movl %ebp,%ebx + movl %esi,%r12d + xorl 40(%rsp),%eax + xorl %edi,%ebx + roll $5,%r12d + xorl 0(%rsp),%eax + xorl %r11d,%ebx + addl %r12d,%edx + xorl 20(%rsp),%eax + roll $30,%edi + addl %ebx,%edx + roll $1,%eax + movl %eax,32(%rsp) + leal -899497514(%rax,%r11,1),%r12d + movl 36(%rsp),%eax + movl %edi,%ebx + movl %edx,%r11d + xorl 44(%rsp),%eax + xorl %esi,%ebx + roll $5,%r11d + xorl 4(%rsp),%eax + xorl %ebp,%ebx + addl %r11d,%r12d + xorl 24(%rsp),%eax + roll $30,%esi + addl %ebx,%r12d + roll $1,%eax + movl %eax,36(%rsp) + leal -899497514(%rax,%rbp,1),%r11d + movl 40(%rsp),%eax + movl %esi,%ebx + movl %r12d,%ebp + xorl 48(%rsp),%eax + xorl %edx,%ebx + roll $5,%ebp + xorl 8(%rsp),%eax + xorl %edi,%ebx + addl %ebp,%r11d + xorl 28(%rsp),%eax + roll $30,%edx + addl %ebx,%r11d + roll $1,%eax + movl %eax,40(%rsp) + leal -899497514(%rax,%rdi,1),%ebp + movl 44(%rsp),%eax + movl %edx,%ebx + movl %r11d,%edi + xorl 52(%rsp),%eax + xorl %r12d,%ebx + roll $5,%edi + xorl 12(%rsp),%eax + xorl %esi,%ebx + addl %edi,%ebp + xorl 32(%rsp),%eax + roll $30,%r12d + addl %ebx,%ebp + roll $1,%eax + movl %eax,44(%rsp) + leal -899497514(%rax,%rsi,1),%edi + movl 48(%rsp),%eax + movl %r12d,%ebx + movl %ebp,%esi + xorl 56(%rsp),%eax + xorl %r11d,%ebx + roll $5,%esi + xorl 16(%rsp),%eax + xorl %edx,%ebx + addl %esi,%edi + xorl 36(%rsp),%eax + roll $30,%r11d + addl %ebx,%edi + roll $1,%eax + movl %eax,48(%rsp) + leal -899497514(%rax,%rdx,1),%esi + movl 52(%rsp),%eax + movl %r11d,%ebx + movl %edi,%edx + xorl 60(%rsp),%eax + xorl %ebp,%ebx + roll $5,%edx + xorl 20(%rsp),%eax + xorl %r12d,%ebx + addl %edx,%esi + xorl 40(%rsp),%eax + roll $30,%ebp + addl %ebx,%esi + roll $1,%eax + leal -899497514(%rax,%r12,1),%edx + movl 56(%rsp),%eax + movl %ebp,%ebx + movl %esi,%r12d + xorl 0(%rsp),%eax + xorl %edi,%ebx + roll $5,%r12d + xorl 24(%rsp),%eax + xorl %r11d,%ebx + addl %r12d,%edx + xorl 44(%rsp),%eax + roll $30,%edi + addl %ebx,%edx + roll $1,%eax + leal -899497514(%rax,%r11,1),%r12d + movl 60(%rsp),%eax + movl %edi,%ebx + movl %edx,%r11d + xorl 4(%rsp),%eax + xorl %esi,%ebx + roll $5,%r11d + xorl 28(%rsp),%eax + xorl %ebp,%ebx + addl %r11d,%r12d + xorl 48(%rsp),%eax + roll $30,%esi + addl %ebx,%r12d + roll $1,%eax + leal -899497514(%rax,%rbp,1),%r11d + movl %esi,%ebx + movl %r12d,%ebp + xorl %edx,%ebx + roll $5,%ebp + xorl %edi,%ebx + addl %ebp,%r11d + roll $30,%edx + addl %ebx,%r11d + addl 0(%r8),%r11d + addl 4(%r8),%r12d + addl 8(%r8),%edx + addl 12(%r8),%esi + addl 16(%r8),%edi + movl %r11d,0(%r8) + movl %r12d,4(%r8) + movl %edx,8(%r8) + movl %esi,12(%r8) + movl %edi,16(%r8) + + xchgl %r11d,%edx + xchgl %r12d,%esi + xchgl %r11d,%edi + xchgl %r12d,%ebp + + leaq 64(%r9),%r9 + subq $1,%r10 + jnz L$loop + movq 64(%rsp),%rsi + movq (%rsi),%r12 + movq 8(%rsi),%rbp + movq 16(%rsi),%rbx + leaq 24(%rsi),%rsp +L$epilogue: + .byte 0xf3,0xc3 + +.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.p2align 4 diff --git a/deps/openssl/asm/x64-macosx-gas/sha/sha512-x86_64.s b/deps/openssl/asm/x64-macosx-gas/sha/sha512-x86_64.s new file mode 100644 index 0000000000..73c4990304 --- /dev/null +++ b/deps/openssl/asm/x64-macosx-gas/sha/sha512-x86_64.s @@ -0,0 +1,1971 @@ +.text + + +.globl _sha256_block_data_order + +.p2align 4 +_sha256_block_data_order: + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + movq %rsp,%r11 + shlq $4,%rdx + subq $64+32,%rsp + leaq (%rsi,%rdx,4),%rdx + andq $-64,%rsp + movq %rdi,64+0(%rsp) + movq %rsi,64+8(%rsp) + movq %rdx,64+16(%rsp) + movq %r11,64+24(%rsp) +L$prologue: + + leaq K256(%rip),%rbp + + movl 0(%rdi),%eax + movl 4(%rdi),%ebx + movl 8(%rdi),%ecx + movl 12(%rdi),%edx + movl 16(%rdi),%r8d + movl 20(%rdi),%r9d + movl 24(%rdi),%r10d + movl 28(%rdi),%r11d + jmp L$loop + +.p2align 4 +L$loop: + xorq %rdi,%rdi + movl 0(%rsi),%r12d + bswapl %r12d + movl %r8d,%r13d + movl %r8d,%r14d + movl %r9d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r10d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r8d,%r15d + movl %r12d,0(%rsp) + + xorl %r14d,%r13d + xorl %r10d,%r15d + addl %r11d,%r12d + + movl %eax,%r11d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %eax,%r13d + movl %eax,%r14d + + rorl $2,%r11d + rorl $13,%r13d + movl %eax,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r11d + rorl $9,%r13d + orl %ecx,%r14d + + xorl %r13d,%r11d + andl %ecx,%r15d + addl %r12d,%edx + + andl %ebx,%r14d + addl %r12d,%r11d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r11d + movl 4(%rsi),%r12d + bswapl %r12d + movl %edx,%r13d + movl %edx,%r14d + movl %r8d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r9d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %edx,%r15d + movl %r12d,4(%rsp) + + xorl %r14d,%r13d + xorl %r9d,%r15d + addl %r10d,%r12d + + movl %r11d,%r10d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r11d,%r13d + movl %r11d,%r14d + + rorl $2,%r10d + rorl $13,%r13d + movl %r11d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r10d + rorl $9,%r13d + orl %ebx,%r14d + + xorl %r13d,%r10d + andl %ebx,%r15d + addl %r12d,%ecx + + andl %eax,%r14d + addl %r12d,%r10d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r10d + movl 8(%rsi),%r12d + bswapl %r12d + movl %ecx,%r13d + movl %ecx,%r14d + movl %edx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r8d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %ecx,%r15d + movl %r12d,8(%rsp) + + xorl %r14d,%r13d + xorl %r8d,%r15d + addl %r9d,%r12d + + movl %r10d,%r9d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r10d,%r13d + movl %r10d,%r14d + + rorl $2,%r9d + rorl $13,%r13d + movl %r10d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r9d + rorl $9,%r13d + orl %eax,%r14d + + xorl %r13d,%r9d + andl %eax,%r15d + addl %r12d,%ebx + + andl %r11d,%r14d + addl %r12d,%r9d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r9d + movl 12(%rsi),%r12d + bswapl %r12d + movl %ebx,%r13d + movl %ebx,%r14d + movl %ecx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %edx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %ebx,%r15d + movl %r12d,12(%rsp) + + xorl %r14d,%r13d + xorl %edx,%r15d + addl %r8d,%r12d + + movl %r9d,%r8d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r9d,%r13d + movl %r9d,%r14d + + rorl $2,%r8d + rorl $13,%r13d + movl %r9d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r8d + rorl $9,%r13d + orl %r11d,%r14d + + xorl %r13d,%r8d + andl %r11d,%r15d + addl %r12d,%eax + + andl %r10d,%r14d + addl %r12d,%r8d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r8d + movl 16(%rsi),%r12d + bswapl %r12d + movl %eax,%r13d + movl %eax,%r14d + movl %ebx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %ecx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %eax,%r15d + movl %r12d,16(%rsp) + + xorl %r14d,%r13d + xorl %ecx,%r15d + addl %edx,%r12d + + movl %r8d,%edx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r8d,%r13d + movl %r8d,%r14d + + rorl $2,%edx + rorl $13,%r13d + movl %r8d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%edx + rorl $9,%r13d + orl %r10d,%r14d + + xorl %r13d,%edx + andl %r10d,%r15d + addl %r12d,%r11d + + andl %r9d,%r14d + addl %r12d,%edx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%edx + movl 20(%rsi),%r12d + bswapl %r12d + movl %r11d,%r13d + movl %r11d,%r14d + movl %eax,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %ebx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r11d,%r15d + movl %r12d,20(%rsp) + + xorl %r14d,%r13d + xorl %ebx,%r15d + addl %ecx,%r12d + + movl %edx,%ecx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %edx,%r13d + movl %edx,%r14d + + rorl $2,%ecx + rorl $13,%r13d + movl %edx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%ecx + rorl $9,%r13d + orl %r9d,%r14d + + xorl %r13d,%ecx + andl %r9d,%r15d + addl %r12d,%r10d + + andl %r8d,%r14d + addl %r12d,%ecx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%ecx + movl 24(%rsi),%r12d + bswapl %r12d + movl %r10d,%r13d + movl %r10d,%r14d + movl %r11d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %eax,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r10d,%r15d + movl %r12d,24(%rsp) + + xorl %r14d,%r13d + xorl %eax,%r15d + addl %ebx,%r12d + + movl %ecx,%ebx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %ecx,%r13d + movl %ecx,%r14d + + rorl $2,%ebx + rorl $13,%r13d + movl %ecx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%ebx + rorl $9,%r13d + orl %r8d,%r14d + + xorl %r13d,%ebx + andl %r8d,%r15d + addl %r12d,%r9d + + andl %edx,%r14d + addl %r12d,%ebx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%ebx + movl 28(%rsi),%r12d + bswapl %r12d + movl %r9d,%r13d + movl %r9d,%r14d + movl %r10d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r11d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r9d,%r15d + movl %r12d,28(%rsp) + + xorl %r14d,%r13d + xorl %r11d,%r15d + addl %eax,%r12d + + movl %ebx,%eax + addl %r13d,%r12d + + addl %r15d,%r12d + movl %ebx,%r13d + movl %ebx,%r14d + + rorl $2,%eax + rorl $13,%r13d + movl %ebx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%eax + rorl $9,%r13d + orl %edx,%r14d + + xorl %r13d,%eax + andl %edx,%r15d + addl %r12d,%r8d + + andl %ecx,%r14d + addl %r12d,%eax + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%eax + movl 32(%rsi),%r12d + bswapl %r12d + movl %r8d,%r13d + movl %r8d,%r14d + movl %r9d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r10d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r8d,%r15d + movl %r12d,32(%rsp) + + xorl %r14d,%r13d + xorl %r10d,%r15d + addl %r11d,%r12d + + movl %eax,%r11d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %eax,%r13d + movl %eax,%r14d + + rorl $2,%r11d + rorl $13,%r13d + movl %eax,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r11d + rorl $9,%r13d + orl %ecx,%r14d + + xorl %r13d,%r11d + andl %ecx,%r15d + addl %r12d,%edx + + andl %ebx,%r14d + addl %r12d,%r11d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r11d + movl 36(%rsi),%r12d + bswapl %r12d + movl %edx,%r13d + movl %edx,%r14d + movl %r8d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r9d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %edx,%r15d + movl %r12d,36(%rsp) + + xorl %r14d,%r13d + xorl %r9d,%r15d + addl %r10d,%r12d + + movl %r11d,%r10d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r11d,%r13d + movl %r11d,%r14d + + rorl $2,%r10d + rorl $13,%r13d + movl %r11d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r10d + rorl $9,%r13d + orl %ebx,%r14d + + xorl %r13d,%r10d + andl %ebx,%r15d + addl %r12d,%ecx + + andl %eax,%r14d + addl %r12d,%r10d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r10d + movl 40(%rsi),%r12d + bswapl %r12d + movl %ecx,%r13d + movl %ecx,%r14d + movl %edx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r8d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %ecx,%r15d + movl %r12d,40(%rsp) + + xorl %r14d,%r13d + xorl %r8d,%r15d + addl %r9d,%r12d + + movl %r10d,%r9d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r10d,%r13d + movl %r10d,%r14d + + rorl $2,%r9d + rorl $13,%r13d + movl %r10d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r9d + rorl $9,%r13d + orl %eax,%r14d + + xorl %r13d,%r9d + andl %eax,%r15d + addl %r12d,%ebx + + andl %r11d,%r14d + addl %r12d,%r9d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r9d + movl 44(%rsi),%r12d + bswapl %r12d + movl %ebx,%r13d + movl %ebx,%r14d + movl %ecx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %edx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %ebx,%r15d + movl %r12d,44(%rsp) + + xorl %r14d,%r13d + xorl %edx,%r15d + addl %r8d,%r12d + + movl %r9d,%r8d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r9d,%r13d + movl %r9d,%r14d + + rorl $2,%r8d + rorl $13,%r13d + movl %r9d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r8d + rorl $9,%r13d + orl %r11d,%r14d + + xorl %r13d,%r8d + andl %r11d,%r15d + addl %r12d,%eax + + andl %r10d,%r14d + addl %r12d,%r8d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r8d + movl 48(%rsi),%r12d + bswapl %r12d + movl %eax,%r13d + movl %eax,%r14d + movl %ebx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %ecx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %eax,%r15d + movl %r12d,48(%rsp) + + xorl %r14d,%r13d + xorl %ecx,%r15d + addl %edx,%r12d + + movl %r8d,%edx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r8d,%r13d + movl %r8d,%r14d + + rorl $2,%edx + rorl $13,%r13d + movl %r8d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%edx + rorl $9,%r13d + orl %r10d,%r14d + + xorl %r13d,%edx + andl %r10d,%r15d + addl %r12d,%r11d + + andl %r9d,%r14d + addl %r12d,%edx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%edx + movl 52(%rsi),%r12d + bswapl %r12d + movl %r11d,%r13d + movl %r11d,%r14d + movl %eax,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %ebx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r11d,%r15d + movl %r12d,52(%rsp) + + xorl %r14d,%r13d + xorl %ebx,%r15d + addl %ecx,%r12d + + movl %edx,%ecx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %edx,%r13d + movl %edx,%r14d + + rorl $2,%ecx + rorl $13,%r13d + movl %edx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%ecx + rorl $9,%r13d + orl %r9d,%r14d + + xorl %r13d,%ecx + andl %r9d,%r15d + addl %r12d,%r10d + + andl %r8d,%r14d + addl %r12d,%ecx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%ecx + movl 56(%rsi),%r12d + bswapl %r12d + movl %r10d,%r13d + movl %r10d,%r14d + movl %r11d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %eax,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r10d,%r15d + movl %r12d,56(%rsp) + + xorl %r14d,%r13d + xorl %eax,%r15d + addl %ebx,%r12d + + movl %ecx,%ebx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %ecx,%r13d + movl %ecx,%r14d + + rorl $2,%ebx + rorl $13,%r13d + movl %ecx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%ebx + rorl $9,%r13d + orl %r8d,%r14d + + xorl %r13d,%ebx + andl %r8d,%r15d + addl %r12d,%r9d + + andl %edx,%r14d + addl %r12d,%ebx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%ebx + movl 60(%rsi),%r12d + bswapl %r12d + movl %r9d,%r13d + movl %r9d,%r14d + movl %r10d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r11d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r9d,%r15d + movl %r12d,60(%rsp) + + xorl %r14d,%r13d + xorl %r11d,%r15d + addl %eax,%r12d + + movl %ebx,%eax + addl %r13d,%r12d + + addl %r15d,%r12d + movl %ebx,%r13d + movl %ebx,%r14d + + rorl $2,%eax + rorl $13,%r13d + movl %ebx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%eax + rorl $9,%r13d + orl %edx,%r14d + + xorl %r13d,%eax + andl %edx,%r15d + addl %r12d,%r8d + + andl %ecx,%r14d + addl %r12d,%eax + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%eax + jmp L$rounds_16_xx +.p2align 4 +L$rounds_16_xx: + movl 4(%rsp),%r13d + movl 56(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 36(%rsp),%r12d + + addl 0(%rsp),%r12d + movl %r8d,%r13d + movl %r8d,%r14d + movl %r9d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r10d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r8d,%r15d + movl %r12d,0(%rsp) + + xorl %r14d,%r13d + xorl %r10d,%r15d + addl %r11d,%r12d + + movl %eax,%r11d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %eax,%r13d + movl %eax,%r14d + + rorl $2,%r11d + rorl $13,%r13d + movl %eax,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r11d + rorl $9,%r13d + orl %ecx,%r14d + + xorl %r13d,%r11d + andl %ecx,%r15d + addl %r12d,%edx + + andl %ebx,%r14d + addl %r12d,%r11d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r11d + movl 8(%rsp),%r13d + movl 60(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 40(%rsp),%r12d + + addl 4(%rsp),%r12d + movl %edx,%r13d + movl %edx,%r14d + movl %r8d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r9d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %edx,%r15d + movl %r12d,4(%rsp) + + xorl %r14d,%r13d + xorl %r9d,%r15d + addl %r10d,%r12d + + movl %r11d,%r10d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r11d,%r13d + movl %r11d,%r14d + + rorl $2,%r10d + rorl $13,%r13d + movl %r11d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r10d + rorl $9,%r13d + orl %ebx,%r14d + + xorl %r13d,%r10d + andl %ebx,%r15d + addl %r12d,%ecx + + andl %eax,%r14d + addl %r12d,%r10d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r10d + movl 12(%rsp),%r13d + movl 0(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 44(%rsp),%r12d + + addl 8(%rsp),%r12d + movl %ecx,%r13d + movl %ecx,%r14d + movl %edx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r8d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %ecx,%r15d + movl %r12d,8(%rsp) + + xorl %r14d,%r13d + xorl %r8d,%r15d + addl %r9d,%r12d + + movl %r10d,%r9d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r10d,%r13d + movl %r10d,%r14d + + rorl $2,%r9d + rorl $13,%r13d + movl %r10d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r9d + rorl $9,%r13d + orl %eax,%r14d + + xorl %r13d,%r9d + andl %eax,%r15d + addl %r12d,%ebx + + andl %r11d,%r14d + addl %r12d,%r9d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r9d + movl 16(%rsp),%r13d + movl 4(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 48(%rsp),%r12d + + addl 12(%rsp),%r12d + movl %ebx,%r13d + movl %ebx,%r14d + movl %ecx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %edx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %ebx,%r15d + movl %r12d,12(%rsp) + + xorl %r14d,%r13d + xorl %edx,%r15d + addl %r8d,%r12d + + movl %r9d,%r8d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r9d,%r13d + movl %r9d,%r14d + + rorl $2,%r8d + rorl $13,%r13d + movl %r9d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r8d + rorl $9,%r13d + orl %r11d,%r14d + + xorl %r13d,%r8d + andl %r11d,%r15d + addl %r12d,%eax + + andl %r10d,%r14d + addl %r12d,%r8d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r8d + movl 20(%rsp),%r13d + movl 8(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 52(%rsp),%r12d + + addl 16(%rsp),%r12d + movl %eax,%r13d + movl %eax,%r14d + movl %ebx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %ecx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %eax,%r15d + movl %r12d,16(%rsp) + + xorl %r14d,%r13d + xorl %ecx,%r15d + addl %edx,%r12d + + movl %r8d,%edx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r8d,%r13d + movl %r8d,%r14d + + rorl $2,%edx + rorl $13,%r13d + movl %r8d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%edx + rorl $9,%r13d + orl %r10d,%r14d + + xorl %r13d,%edx + andl %r10d,%r15d + addl %r12d,%r11d + + andl %r9d,%r14d + addl %r12d,%edx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%edx + movl 24(%rsp),%r13d + movl 12(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 56(%rsp),%r12d + + addl 20(%rsp),%r12d + movl %r11d,%r13d + movl %r11d,%r14d + movl %eax,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %ebx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r11d,%r15d + movl %r12d,20(%rsp) + + xorl %r14d,%r13d + xorl %ebx,%r15d + addl %ecx,%r12d + + movl %edx,%ecx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %edx,%r13d + movl %edx,%r14d + + rorl $2,%ecx + rorl $13,%r13d + movl %edx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%ecx + rorl $9,%r13d + orl %r9d,%r14d + + xorl %r13d,%ecx + andl %r9d,%r15d + addl %r12d,%r10d + + andl %r8d,%r14d + addl %r12d,%ecx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%ecx + movl 28(%rsp),%r13d + movl 16(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 60(%rsp),%r12d + + addl 24(%rsp),%r12d + movl %r10d,%r13d + movl %r10d,%r14d + movl %r11d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %eax,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r10d,%r15d + movl %r12d,24(%rsp) + + xorl %r14d,%r13d + xorl %eax,%r15d + addl %ebx,%r12d + + movl %ecx,%ebx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %ecx,%r13d + movl %ecx,%r14d + + rorl $2,%ebx + rorl $13,%r13d + movl %ecx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%ebx + rorl $9,%r13d + orl %r8d,%r14d + + xorl %r13d,%ebx + andl %r8d,%r15d + addl %r12d,%r9d + + andl %edx,%r14d + addl %r12d,%ebx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%ebx + movl 32(%rsp),%r13d + movl 20(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 0(%rsp),%r12d + + addl 28(%rsp),%r12d + movl %r9d,%r13d + movl %r9d,%r14d + movl %r10d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r11d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r9d,%r15d + movl %r12d,28(%rsp) + + xorl %r14d,%r13d + xorl %r11d,%r15d + addl %eax,%r12d + + movl %ebx,%eax + addl %r13d,%r12d + + addl %r15d,%r12d + movl %ebx,%r13d + movl %ebx,%r14d + + rorl $2,%eax + rorl $13,%r13d + movl %ebx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%eax + rorl $9,%r13d + orl %edx,%r14d + + xorl %r13d,%eax + andl %edx,%r15d + addl %r12d,%r8d + + andl %ecx,%r14d + addl %r12d,%eax + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%eax + movl 36(%rsp),%r13d + movl 24(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 4(%rsp),%r12d + + addl 32(%rsp),%r12d + movl %r8d,%r13d + movl %r8d,%r14d + movl %r9d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r10d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r8d,%r15d + movl %r12d,32(%rsp) + + xorl %r14d,%r13d + xorl %r10d,%r15d + addl %r11d,%r12d + + movl %eax,%r11d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %eax,%r13d + movl %eax,%r14d + + rorl $2,%r11d + rorl $13,%r13d + movl %eax,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r11d + rorl $9,%r13d + orl %ecx,%r14d + + xorl %r13d,%r11d + andl %ecx,%r15d + addl %r12d,%edx + + andl %ebx,%r14d + addl %r12d,%r11d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r11d + movl 40(%rsp),%r13d + movl 28(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 8(%rsp),%r12d + + addl 36(%rsp),%r12d + movl %edx,%r13d + movl %edx,%r14d + movl %r8d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r9d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %edx,%r15d + movl %r12d,36(%rsp) + + xorl %r14d,%r13d + xorl %r9d,%r15d + addl %r10d,%r12d + + movl %r11d,%r10d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r11d,%r13d + movl %r11d,%r14d + + rorl $2,%r10d + rorl $13,%r13d + movl %r11d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r10d + rorl $9,%r13d + orl %ebx,%r14d + + xorl %r13d,%r10d + andl %ebx,%r15d + addl %r12d,%ecx + + andl %eax,%r14d + addl %r12d,%r10d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r10d + movl 44(%rsp),%r13d + movl 32(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 12(%rsp),%r12d + + addl 40(%rsp),%r12d + movl %ecx,%r13d + movl %ecx,%r14d + movl %edx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r8d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %ecx,%r15d + movl %r12d,40(%rsp) + + xorl %r14d,%r13d + xorl %r8d,%r15d + addl %r9d,%r12d + + movl %r10d,%r9d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r10d,%r13d + movl %r10d,%r14d + + rorl $2,%r9d + rorl $13,%r13d + movl %r10d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r9d + rorl $9,%r13d + orl %eax,%r14d + + xorl %r13d,%r9d + andl %eax,%r15d + addl %r12d,%ebx + + andl %r11d,%r14d + addl %r12d,%r9d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r9d + movl 48(%rsp),%r13d + movl 36(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 16(%rsp),%r12d + + addl 44(%rsp),%r12d + movl %ebx,%r13d + movl %ebx,%r14d + movl %ecx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %edx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %ebx,%r15d + movl %r12d,44(%rsp) + + xorl %r14d,%r13d + xorl %edx,%r15d + addl %r8d,%r12d + + movl %r9d,%r8d + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r9d,%r13d + movl %r9d,%r14d + + rorl $2,%r8d + rorl $13,%r13d + movl %r9d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%r8d + rorl $9,%r13d + orl %r11d,%r14d + + xorl %r13d,%r8d + andl %r11d,%r15d + addl %r12d,%eax + + andl %r10d,%r14d + addl %r12d,%r8d + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%r8d + movl 52(%rsp),%r13d + movl 40(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 20(%rsp),%r12d + + addl 48(%rsp),%r12d + movl %eax,%r13d + movl %eax,%r14d + movl %ebx,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %ecx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %eax,%r15d + movl %r12d,48(%rsp) + + xorl %r14d,%r13d + xorl %ecx,%r15d + addl %edx,%r12d + + movl %r8d,%edx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %r8d,%r13d + movl %r8d,%r14d + + rorl $2,%edx + rorl $13,%r13d + movl %r8d,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%edx + rorl $9,%r13d + orl %r10d,%r14d + + xorl %r13d,%edx + andl %r10d,%r15d + addl %r12d,%r11d + + andl %r9d,%r14d + addl %r12d,%edx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%edx + movl 56(%rsp),%r13d + movl 44(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 24(%rsp),%r12d + + addl 52(%rsp),%r12d + movl %r11d,%r13d + movl %r11d,%r14d + movl %eax,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %ebx,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r11d,%r15d + movl %r12d,52(%rsp) + + xorl %r14d,%r13d + xorl %ebx,%r15d + addl %ecx,%r12d + + movl %edx,%ecx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %edx,%r13d + movl %edx,%r14d + + rorl $2,%ecx + rorl $13,%r13d + movl %edx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%ecx + rorl $9,%r13d + orl %r9d,%r14d + + xorl %r13d,%ecx + andl %r9d,%r15d + addl %r12d,%r10d + + andl %r8d,%r14d + addl %r12d,%ecx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%ecx + movl 60(%rsp),%r13d + movl 48(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 28(%rsp),%r12d + + addl 56(%rsp),%r12d + movl %r10d,%r13d + movl %r10d,%r14d + movl %r11d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %eax,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r10d,%r15d + movl %r12d,56(%rsp) + + xorl %r14d,%r13d + xorl %eax,%r15d + addl %ebx,%r12d + + movl %ecx,%ebx + addl %r13d,%r12d + + addl %r15d,%r12d + movl %ecx,%r13d + movl %ecx,%r14d + + rorl $2,%ebx + rorl $13,%r13d + movl %ecx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%ebx + rorl $9,%r13d + orl %r8d,%r14d + + xorl %r13d,%ebx + andl %r8d,%r15d + addl %r12d,%r9d + + andl %edx,%r14d + addl %r12d,%ebx + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%ebx + movl 0(%rsp),%r13d + movl 52(%rsp),%r12d + + movl %r13d,%r15d + + shrl $3,%r13d + rorl $7,%r15d + + xorl %r15d,%r13d + rorl $11,%r15d + + xorl %r15d,%r13d + movl %r12d,%r14d + + shrl $10,%r12d + rorl $17,%r14d + + xorl %r14d,%r12d + rorl $2,%r14d + + xorl %r14d,%r12d + + addl %r13d,%r12d + + addl 32(%rsp),%r12d + + addl 60(%rsp),%r12d + movl %r9d,%r13d + movl %r9d,%r14d + movl %r10d,%r15d + + rorl $6,%r13d + rorl $11,%r14d + xorl %r11d,%r15d + + xorl %r14d,%r13d + rorl $14,%r14d + andl %r9d,%r15d + movl %r12d,60(%rsp) + + xorl %r14d,%r13d + xorl %r11d,%r15d + addl %eax,%r12d + + movl %ebx,%eax + addl %r13d,%r12d + + addl %r15d,%r12d + movl %ebx,%r13d + movl %ebx,%r14d + + rorl $2,%eax + rorl $13,%r13d + movl %ebx,%r15d + addl (%rbp,%rdi,4),%r12d + + xorl %r13d,%eax + rorl $9,%r13d + orl %edx,%r14d + + xorl %r13d,%eax + andl %edx,%r15d + addl %r12d,%r8d + + andl %ecx,%r14d + addl %r12d,%eax + + orl %r15d,%r14d + leaq 1(%rdi),%rdi + + addl %r14d,%eax + cmpq $64,%rdi + jb L$rounds_16_xx + + movq 64+0(%rsp),%rdi + leaq 64(%rsi),%rsi + + addl 0(%rdi),%eax + addl 4(%rdi),%ebx + addl 8(%rdi),%ecx + addl 12(%rdi),%edx + addl 16(%rdi),%r8d + addl 20(%rdi),%r9d + addl 24(%rdi),%r10d + addl 28(%rdi),%r11d + + cmpq 64+16(%rsp),%rsi + + movl %eax,0(%rdi) + movl %ebx,4(%rdi) + movl %ecx,8(%rdi) + movl %edx,12(%rdi) + movl %r8d,16(%rdi) + movl %r9d,20(%rdi) + movl %r10d,24(%rdi) + movl %r11d,28(%rdi) + jb L$loop + + movq 64+24(%rsp),%rsi + movq (%rsi),%r15 + movq 8(%rsi),%r14 + movq 16(%rsi),%r13 + movq 24(%rsi),%r12 + movq 32(%rsi),%rbp + movq 40(%rsi),%rbx + leaq 48(%rsi),%rsp +L$epilogue: + .byte 0xf3,0xc3 + +.p2align 6 + +K256: +.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 +.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 +.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 +.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 +.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc +.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da +.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 +.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 +.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 +.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 +.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 +.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 +.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 +.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 +.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 +.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 diff --git a/deps/openssl/asm/x64-macosx-gas/whrlpool/wp-x86_64.s b/deps/openssl/asm/x64-macosx-gas/whrlpool/wp-x86_64.s new file mode 100644 index 0000000000..5e87e554ed --- /dev/null +++ b/deps/openssl/asm/x64-macosx-gas/whrlpool/wp-x86_64.s @@ -0,0 +1,859 @@ +.text + + +.globl _whirlpool_block + +.p2align 4 +_whirlpool_block: + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + + movq %rsp,%r11 + subq $128+40,%rsp + andq $-64,%rsp + + leaq 128(%rsp),%r10 + movq %rdi,0(%r10) + movq %rsi,8(%r10) + movq %rdx,16(%r10) + movq %r11,32(%r10) +L$prologue: + + movq %r10,%rbx + leaq L$table(%rip),%rbp + + xorq %rcx,%rcx + xorq %rdx,%rdx + movq 0(%rdi),%r8 + movq 8(%rdi),%r9 + movq 16(%rdi),%r10 + movq 24(%rdi),%r11 + movq 32(%rdi),%r12 + movq 40(%rdi),%r13 + movq 48(%rdi),%r14 + movq 56(%rdi),%r15 +L$outerloop: + movq %r8,0(%rsp) + movq %r9,8(%rsp) + movq %r10,16(%rsp) + movq %r11,24(%rsp) + movq %r12,32(%rsp) + movq %r13,40(%rsp) + movq %r14,48(%rsp) + movq %r15,56(%rsp) + xorq 0(%rsi),%r8 + xorq 8(%rsi),%r9 + xorq 16(%rsi),%r10 + xorq 24(%rsi),%r11 + xorq 32(%rsi),%r12 + xorq 40(%rsi),%r13 + xorq 48(%rsi),%r14 + xorq 56(%rsi),%r15 + movq %r8,64+0(%rsp) + movq %r9,64+8(%rsp) + movq %r10,64+16(%rsp) + movq %r11,64+24(%rsp) + movq %r12,64+32(%rsp) + movq %r13,64+40(%rsp) + movq %r14,64+48(%rsp) + movq %r15,64+56(%rsp) + xorq %rsi,%rsi + movq %rsi,24(%rbx) +.p2align 4 +L$round: + movq 4096(%rbp,%rsi,8),%r8 + movl 0(%rsp),%eax + movl 4(%rsp),%ebx + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r8 + movq 7(%rbp,%rdi,8),%r9 + movb %al,%cl + movb %ah,%dl + movl 0+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + movq 6(%rbp,%rsi,8),%r10 + movq 5(%rbp,%rdi,8),%r11 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + movq 4(%rbp,%rsi,8),%r12 + movq 3(%rbp,%rdi,8),%r13 + movb %bl,%cl + movb %bh,%dl + movl 0+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + movq 2(%rbp,%rsi,8),%r14 + movq 1(%rbp,%rdi,8),%r15 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r9 + xorq 7(%rbp,%rdi,8),%r10 + movb %al,%cl + movb %ah,%dl + movl 8+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r11 + xorq 5(%rbp,%rdi,8),%r12 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r13 + xorq 3(%rbp,%rdi,8),%r14 + movb %bl,%cl + movb %bh,%dl + movl 8+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r15 + xorq 1(%rbp,%rdi,8),%r8 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r10 + xorq 7(%rbp,%rdi,8),%r11 + movb %al,%cl + movb %ah,%dl + movl 16+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r12 + xorq 5(%rbp,%rdi,8),%r13 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r14 + xorq 3(%rbp,%rdi,8),%r15 + movb %bl,%cl + movb %bh,%dl + movl 16+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r8 + xorq 1(%rbp,%rdi,8),%r9 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r11 + xorq 7(%rbp,%rdi,8),%r12 + movb %al,%cl + movb %ah,%dl + movl 24+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r13 + xorq 5(%rbp,%rdi,8),%r14 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r15 + xorq 3(%rbp,%rdi,8),%r8 + movb %bl,%cl + movb %bh,%dl + movl 24+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r9 + xorq 1(%rbp,%rdi,8),%r10 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r12 + xorq 7(%rbp,%rdi,8),%r13 + movb %al,%cl + movb %ah,%dl + movl 32+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r14 + xorq 5(%rbp,%rdi,8),%r15 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r8 + xorq 3(%rbp,%rdi,8),%r9 + movb %bl,%cl + movb %bh,%dl + movl 32+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r10 + xorq 1(%rbp,%rdi,8),%r11 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r13 + xorq 7(%rbp,%rdi,8),%r14 + movb %al,%cl + movb %ah,%dl + movl 40+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r15 + xorq 5(%rbp,%rdi,8),%r8 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r9 + xorq 3(%rbp,%rdi,8),%r10 + movb %bl,%cl + movb %bh,%dl + movl 40+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r11 + xorq 1(%rbp,%rdi,8),%r12 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r14 + xorq 7(%rbp,%rdi,8),%r15 + movb %al,%cl + movb %ah,%dl + movl 48+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r8 + xorq 5(%rbp,%rdi,8),%r9 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r10 + xorq 3(%rbp,%rdi,8),%r11 + movb %bl,%cl + movb %bh,%dl + movl 48+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r12 + xorq 1(%rbp,%rdi,8),%r13 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r15 + xorq 7(%rbp,%rdi,8),%r8 + movb %al,%cl + movb %ah,%dl + movl 56+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r9 + xorq 5(%rbp,%rdi,8),%r10 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r11 + xorq 3(%rbp,%rdi,8),%r12 + movb %bl,%cl + movb %bh,%dl + movl 56+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r13 + xorq 1(%rbp,%rdi,8),%r14 + movq %r8,0(%rsp) + movq %r9,8(%rsp) + movq %r10,16(%rsp) + movq %r11,24(%rsp) + movq %r12,32(%rsp) + movq %r13,40(%rsp) + movq %r14,48(%rsp) + movq %r15,56(%rsp) + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r8 + xorq 7(%rbp,%rdi,8),%r9 + movb %al,%cl + movb %ah,%dl + movl 64+0+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r10 + xorq 5(%rbp,%rdi,8),%r11 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r12 + xorq 3(%rbp,%rdi,8),%r13 + movb %bl,%cl + movb %bh,%dl + movl 64+0+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r14 + xorq 1(%rbp,%rdi,8),%r15 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r9 + xorq 7(%rbp,%rdi,8),%r10 + movb %al,%cl + movb %ah,%dl + movl 64+8+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r11 + xorq 5(%rbp,%rdi,8),%r12 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r13 + xorq 3(%rbp,%rdi,8),%r14 + movb %bl,%cl + movb %bh,%dl + movl 64+8+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r15 + xorq 1(%rbp,%rdi,8),%r8 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r10 + xorq 7(%rbp,%rdi,8),%r11 + movb %al,%cl + movb %ah,%dl + movl 64+16+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r12 + xorq 5(%rbp,%rdi,8),%r13 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r14 + xorq 3(%rbp,%rdi,8),%r15 + movb %bl,%cl + movb %bh,%dl + movl 64+16+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r8 + xorq 1(%rbp,%rdi,8),%r9 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r11 + xorq 7(%rbp,%rdi,8),%r12 + movb %al,%cl + movb %ah,%dl + movl 64+24+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r13 + xorq 5(%rbp,%rdi,8),%r14 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r15 + xorq 3(%rbp,%rdi,8),%r8 + movb %bl,%cl + movb %bh,%dl + movl 64+24+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r9 + xorq 1(%rbp,%rdi,8),%r10 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r12 + xorq 7(%rbp,%rdi,8),%r13 + movb %al,%cl + movb %ah,%dl + movl 64+32+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r14 + xorq 5(%rbp,%rdi,8),%r15 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r8 + xorq 3(%rbp,%rdi,8),%r9 + movb %bl,%cl + movb %bh,%dl + movl 64+32+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r10 + xorq 1(%rbp,%rdi,8),%r11 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r13 + xorq 7(%rbp,%rdi,8),%r14 + movb %al,%cl + movb %ah,%dl + movl 64+40+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r15 + xorq 5(%rbp,%rdi,8),%r8 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r9 + xorq 3(%rbp,%rdi,8),%r10 + movb %bl,%cl + movb %bh,%dl + movl 64+40+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r11 + xorq 1(%rbp,%rdi,8),%r12 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r14 + xorq 7(%rbp,%rdi,8),%r15 + movb %al,%cl + movb %ah,%dl + movl 64+48+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r8 + xorq 5(%rbp,%rdi,8),%r9 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r10 + xorq 3(%rbp,%rdi,8),%r11 + movb %bl,%cl + movb %bh,%dl + movl 64+48+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r12 + xorq 1(%rbp,%rdi,8),%r13 + movb %al,%cl + movb %ah,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%eax + xorq 0(%rbp,%rsi,8),%r15 + xorq 7(%rbp,%rdi,8),%r8 + movb %al,%cl + movb %ah,%dl + + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 6(%rbp,%rsi,8),%r9 + xorq 5(%rbp,%rdi,8),%r10 + movb %bl,%cl + movb %bh,%dl + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + shrl $16,%ebx + xorq 4(%rbp,%rsi,8),%r11 + xorq 3(%rbp,%rdi,8),%r12 + movb %bl,%cl + movb %bh,%dl + + leaq (%rcx,%rcx,1),%rsi + leaq (%rdx,%rdx,1),%rdi + xorq 2(%rbp,%rsi,8),%r13 + xorq 1(%rbp,%rdi,8),%r14 + leaq 128(%rsp),%rbx + movq 24(%rbx),%rsi + addq $1,%rsi + cmpq $10,%rsi + je L$roundsdone + + movq %rsi,24(%rbx) + movq %r8,64+0(%rsp) + movq %r9,64+8(%rsp) + movq %r10,64+16(%rsp) + movq %r11,64+24(%rsp) + movq %r12,64+32(%rsp) + movq %r13,64+40(%rsp) + movq %r14,64+48(%rsp) + movq %r15,64+56(%rsp) + jmp L$round +.p2align 4 +L$roundsdone: + movq 0(%rbx),%rdi + movq 8(%rbx),%rsi + movq 16(%rbx),%rax + xorq 0(%rsi),%r8 + xorq 8(%rsi),%r9 + xorq 16(%rsi),%r10 + xorq 24(%rsi),%r11 + xorq 32(%rsi),%r12 + xorq 40(%rsi),%r13 + xorq 48(%rsi),%r14 + xorq 56(%rsi),%r15 + xorq 0(%rdi),%r8 + xorq 8(%rdi),%r9 + xorq 16(%rdi),%r10 + xorq 24(%rdi),%r11 + xorq 32(%rdi),%r12 + xorq 40(%rdi),%r13 + xorq 48(%rdi),%r14 + xorq 56(%rdi),%r15 + movq %r8,0(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + leaq 64(%rsi),%rsi + subq $1,%rax + jz L$alldone + movq %rsi,8(%rbx) + movq %rax,16(%rbx) + jmp L$outerloop +L$alldone: + movq 32(%rbx),%rsi + movq (%rsi),%r15 + movq 8(%rsi),%r14 + movq 16(%rsi),%r13 + movq 24(%rsi),%r12 + movq 32(%rsi),%rbp + movq 40(%rsi),%rbx + leaq 48(%rsi),%rsp +L$epilogue: + .byte 0xf3,0xc3 + + +.p2align 6 + +L$table: +.byte 24,24,96,24,192,120,48,216,24,24,96,24,192,120,48,216 +.byte 35,35,140,35,5,175,70,38,35,35,140,35,5,175,70,38 +.byte 198,198,63,198,126,249,145,184,198,198,63,198,126,249,145,184 +.byte 232,232,135,232,19,111,205,251,232,232,135,232,19,111,205,251 +.byte 135,135,38,135,76,161,19,203,135,135,38,135,76,161,19,203 +.byte 184,184,218,184,169,98,109,17,184,184,218,184,169,98,109,17 +.byte 1,1,4,1,8,5,2,9,1,1,4,1,8,5,2,9 +.byte 79,79,33,79,66,110,158,13,79,79,33,79,66,110,158,13 +.byte 54,54,216,54,173,238,108,155,54,54,216,54,173,238,108,155 +.byte 166,166,162,166,89,4,81,255,166,166,162,166,89,4,81,255 +.byte 210,210,111,210,222,189,185,12,210,210,111,210,222,189,185,12 +.byte 245,245,243,245,251,6,247,14,245,245,243,245,251,6,247,14 +.byte 121,121,249,121,239,128,242,150,121,121,249,121,239,128,242,150 +.byte 111,111,161,111,95,206,222,48,111,111,161,111,95,206,222,48 +.byte 145,145,126,145,252,239,63,109,145,145,126,145,252,239,63,109 +.byte 82,82,85,82,170,7,164,248,82,82,85,82,170,7,164,248 +.byte 96,96,157,96,39,253,192,71,96,96,157,96,39,253,192,71 +.byte 188,188,202,188,137,118,101,53,188,188,202,188,137,118,101,53 +.byte 155,155,86,155,172,205,43,55,155,155,86,155,172,205,43,55 +.byte 142,142,2,142,4,140,1,138,142,142,2,142,4,140,1,138 +.byte 163,163,182,163,113,21,91,210,163,163,182,163,113,21,91,210 +.byte 12,12,48,12,96,60,24,108,12,12,48,12,96,60,24,108 +.byte 123,123,241,123,255,138,246,132,123,123,241,123,255,138,246,132 +.byte 53,53,212,53,181,225,106,128,53,53,212,53,181,225,106,128 +.byte 29,29,116,29,232,105,58,245,29,29,116,29,232,105,58,245 +.byte 224,224,167,224,83,71,221,179,224,224,167,224,83,71,221,179 +.byte 215,215,123,215,246,172,179,33,215,215,123,215,246,172,179,33 +.byte 194,194,47,194,94,237,153,156,194,194,47,194,94,237,153,156 +.byte 46,46,184,46,109,150,92,67,46,46,184,46,109,150,92,67 +.byte 75,75,49,75,98,122,150,41,75,75,49,75,98,122,150,41 +.byte 254,254,223,254,163,33,225,93,254,254,223,254,163,33,225,93 +.byte 87,87,65,87,130,22,174,213,87,87,65,87,130,22,174,213 +.byte 21,21,84,21,168,65,42,189,21,21,84,21,168,65,42,189 +.byte 119,119,193,119,159,182,238,232,119,119,193,119,159,182,238,232 +.byte 55,55,220,55,165,235,110,146,55,55,220,55,165,235,110,146 +.byte 229,229,179,229,123,86,215,158,229,229,179,229,123,86,215,158 +.byte 159,159,70,159,140,217,35,19,159,159,70,159,140,217,35,19 +.byte 240,240,231,240,211,23,253,35,240,240,231,240,211,23,253,35 +.byte 74,74,53,74,106,127,148,32,74,74,53,74,106,127,148,32 +.byte 218,218,79,218,158,149,169,68,218,218,79,218,158,149,169,68 +.byte 88,88,125,88,250,37,176,162,88,88,125,88,250,37,176,162 +.byte 201,201,3,201,6,202,143,207,201,201,3,201,6,202,143,207 +.byte 41,41,164,41,85,141,82,124,41,41,164,41,85,141,82,124 +.byte 10,10,40,10,80,34,20,90,10,10,40,10,80,34,20,90 +.byte 177,177,254,177,225,79,127,80,177,177,254,177,225,79,127,80 +.byte 160,160,186,160,105,26,93,201,160,160,186,160,105,26,93,201 +.byte 107,107,177,107,127,218,214,20,107,107,177,107,127,218,214,20 +.byte 133,133,46,133,92,171,23,217,133,133,46,133,92,171,23,217 +.byte 189,189,206,189,129,115,103,60,189,189,206,189,129,115,103,60 +.byte 93,93,105,93,210,52,186,143,93,93,105,93,210,52,186,143 +.byte 16,16,64,16,128,80,32,144,16,16,64,16,128,80,32,144 +.byte 244,244,247,244,243,3,245,7,244,244,247,244,243,3,245,7 +.byte 203,203,11,203,22,192,139,221,203,203,11,203,22,192,139,221 +.byte 62,62,248,62,237,198,124,211,62,62,248,62,237,198,124,211 +.byte 5,5,20,5,40,17,10,45,5,5,20,5,40,17,10,45 +.byte 103,103,129,103,31,230,206,120,103,103,129,103,31,230,206,120 +.byte 228,228,183,228,115,83,213,151,228,228,183,228,115,83,213,151 +.byte 39,39,156,39,37,187,78,2,39,39,156,39,37,187,78,2 +.byte 65,65,25,65,50,88,130,115,65,65,25,65,50,88,130,115 +.byte 139,139,22,139,44,157,11,167,139,139,22,139,44,157,11,167 +.byte 167,167,166,167,81,1,83,246,167,167,166,167,81,1,83,246 +.byte 125,125,233,125,207,148,250,178,125,125,233,125,207,148,250,178 +.byte 149,149,110,149,220,251,55,73,149,149,110,149,220,251,55,73 +.byte 216,216,71,216,142,159,173,86,216,216,71,216,142,159,173,86 +.byte 251,251,203,251,139,48,235,112,251,251,203,251,139,48,235,112 +.byte 238,238,159,238,35,113,193,205,238,238,159,238,35,113,193,205 +.byte 124,124,237,124,199,145,248,187,124,124,237,124,199,145,248,187 +.byte 102,102,133,102,23,227,204,113,102,102,133,102,23,227,204,113 +.byte 221,221,83,221,166,142,167,123,221,221,83,221,166,142,167,123 +.byte 23,23,92,23,184,75,46,175,23,23,92,23,184,75,46,175 +.byte 71,71,1,71,2,70,142,69,71,71,1,71,2,70,142,69 +.byte 158,158,66,158,132,220,33,26,158,158,66,158,132,220,33,26 +.byte 202,202,15,202,30,197,137,212,202,202,15,202,30,197,137,212 +.byte 45,45,180,45,117,153,90,88,45,45,180,45,117,153,90,88 +.byte 191,191,198,191,145,121,99,46,191,191,198,191,145,121,99,46 +.byte 7,7,28,7,56,27,14,63,7,7,28,7,56,27,14,63 +.byte 173,173,142,173,1,35,71,172,173,173,142,173,1,35,71,172 +.byte 90,90,117,90,234,47,180,176,90,90,117,90,234,47,180,176 +.byte 131,131,54,131,108,181,27,239,131,131,54,131,108,181,27,239 +.byte 51,51,204,51,133,255,102,182,51,51,204,51,133,255,102,182 +.byte 99,99,145,99,63,242,198,92,99,99,145,99,63,242,198,92 +.byte 2,2,8,2,16,10,4,18,2,2,8,2,16,10,4,18 +.byte 170,170,146,170,57,56,73,147,170,170,146,170,57,56,73,147 +.byte 113,113,217,113,175,168,226,222,113,113,217,113,175,168,226,222 +.byte 200,200,7,200,14,207,141,198,200,200,7,200,14,207,141,198 +.byte 25,25,100,25,200,125,50,209,25,25,100,25,200,125,50,209 +.byte 73,73,57,73,114,112,146,59,73,73,57,73,114,112,146,59 +.byte 217,217,67,217,134,154,175,95,217,217,67,217,134,154,175,95 +.byte 242,242,239,242,195,29,249,49,242,242,239,242,195,29,249,49 +.byte 227,227,171,227,75,72,219,168,227,227,171,227,75,72,219,168 +.byte 91,91,113,91,226,42,182,185,91,91,113,91,226,42,182,185 +.byte 136,136,26,136,52,146,13,188,136,136,26,136,52,146,13,188 +.byte 154,154,82,154,164,200,41,62,154,154,82,154,164,200,41,62 +.byte 38,38,152,38,45,190,76,11,38,38,152,38,45,190,76,11 +.byte 50,50,200,50,141,250,100,191,50,50,200,50,141,250,100,191 +.byte 176,176,250,176,233,74,125,89,176,176,250,176,233,74,125,89 +.byte 233,233,131,233,27,106,207,242,233,233,131,233,27,106,207,242 +.byte 15,15,60,15,120,51,30,119,15,15,60,15,120,51,30,119 +.byte 213,213,115,213,230,166,183,51,213,213,115,213,230,166,183,51 +.byte 128,128,58,128,116,186,29,244,128,128,58,128,116,186,29,244 +.byte 190,190,194,190,153,124,97,39,190,190,194,190,153,124,97,39 +.byte 205,205,19,205,38,222,135,235,205,205,19,205,38,222,135,235 +.byte 52,52,208,52,189,228,104,137,52,52,208,52,189,228,104,137 +.byte 72,72,61,72,122,117,144,50,72,72,61,72,122,117,144,50 +.byte 255,255,219,255,171,36,227,84,255,255,219,255,171,36,227,84 +.byte 122,122,245,122,247,143,244,141,122,122,245,122,247,143,244,141 +.byte 144,144,122,144,244,234,61,100,144,144,122,144,244,234,61,100 +.byte 95,95,97,95,194,62,190,157,95,95,97,95,194,62,190,157 +.byte 32,32,128,32,29,160,64,61,32,32,128,32,29,160,64,61 +.byte 104,104,189,104,103,213,208,15,104,104,189,104,103,213,208,15 +.byte 26,26,104,26,208,114,52,202,26,26,104,26,208,114,52,202 +.byte 174,174,130,174,25,44,65,183,174,174,130,174,25,44,65,183 +.byte 180,180,234,180,201,94,117,125,180,180,234,180,201,94,117,125 +.byte 84,84,77,84,154,25,168,206,84,84,77,84,154,25,168,206 +.byte 147,147,118,147,236,229,59,127,147,147,118,147,236,229,59,127 +.byte 34,34,136,34,13,170,68,47,34,34,136,34,13,170,68,47 +.byte 100,100,141,100,7,233,200,99,100,100,141,100,7,233,200,99 +.byte 241,241,227,241,219,18,255,42,241,241,227,241,219,18,255,42 +.byte 115,115,209,115,191,162,230,204,115,115,209,115,191,162,230,204 +.byte 18,18,72,18,144,90,36,130,18,18,72,18,144,90,36,130 +.byte 64,64,29,64,58,93,128,122,64,64,29,64,58,93,128,122 +.byte 8,8,32,8,64,40,16,72,8,8,32,8,64,40,16,72 +.byte 195,195,43,195,86,232,155,149,195,195,43,195,86,232,155,149 +.byte 236,236,151,236,51,123,197,223,236,236,151,236,51,123,197,223 +.byte 219,219,75,219,150,144,171,77,219,219,75,219,150,144,171,77 +.byte 161,161,190,161,97,31,95,192,161,161,190,161,97,31,95,192 +.byte 141,141,14,141,28,131,7,145,141,141,14,141,28,131,7,145 +.byte 61,61,244,61,245,201,122,200,61,61,244,61,245,201,122,200 +.byte 151,151,102,151,204,241,51,91,151,151,102,151,204,241,51,91 +.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +.byte 207,207,27,207,54,212,131,249,207,207,27,207,54,212,131,249 +.byte 43,43,172,43,69,135,86,110,43,43,172,43,69,135,86,110 +.byte 118,118,197,118,151,179,236,225,118,118,197,118,151,179,236,225 +.byte 130,130,50,130,100,176,25,230,130,130,50,130,100,176,25,230 +.byte 214,214,127,214,254,169,177,40,214,214,127,214,254,169,177,40 +.byte 27,27,108,27,216,119,54,195,27,27,108,27,216,119,54,195 +.byte 181,181,238,181,193,91,119,116,181,181,238,181,193,91,119,116 +.byte 175,175,134,175,17,41,67,190,175,175,134,175,17,41,67,190 +.byte 106,106,181,106,119,223,212,29,106,106,181,106,119,223,212,29 +.byte 80,80,93,80,186,13,160,234,80,80,93,80,186,13,160,234 +.byte 69,69,9,69,18,76,138,87,69,69,9,69,18,76,138,87 +.byte 243,243,235,243,203,24,251,56,243,243,235,243,203,24,251,56 +.byte 48,48,192,48,157,240,96,173,48,48,192,48,157,240,96,173 +.byte 239,239,155,239,43,116,195,196,239,239,155,239,43,116,195,196 +.byte 63,63,252,63,229,195,126,218,63,63,252,63,229,195,126,218 +.byte 85,85,73,85,146,28,170,199,85,85,73,85,146,28,170,199 +.byte 162,162,178,162,121,16,89,219,162,162,178,162,121,16,89,219 +.byte 234,234,143,234,3,101,201,233,234,234,143,234,3,101,201,233 +.byte 101,101,137,101,15,236,202,106,101,101,137,101,15,236,202,106 +.byte 186,186,210,186,185,104,105,3,186,186,210,186,185,104,105,3 +.byte 47,47,188,47,101,147,94,74,47,47,188,47,101,147,94,74 +.byte 192,192,39,192,78,231,157,142,192,192,39,192,78,231,157,142 +.byte 222,222,95,222,190,129,161,96,222,222,95,222,190,129,161,96 +.byte 28,28,112,28,224,108,56,252,28,28,112,28,224,108,56,252 +.byte 253,253,211,253,187,46,231,70,253,253,211,253,187,46,231,70 +.byte 77,77,41,77,82,100,154,31,77,77,41,77,82,100,154,31 +.byte 146,146,114,146,228,224,57,118,146,146,114,146,228,224,57,118 +.byte 117,117,201,117,143,188,234,250,117,117,201,117,143,188,234,250 +.byte 6,6,24,6,48,30,12,54,6,6,24,6,48,30,12,54 +.byte 138,138,18,138,36,152,9,174,138,138,18,138,36,152,9,174 +.byte 178,178,242,178,249,64,121,75,178,178,242,178,249,64,121,75 +.byte 230,230,191,230,99,89,209,133,230,230,191,230,99,89,209,133 +.byte 14,14,56,14,112,54,28,126,14,14,56,14,112,54,28,126 +.byte 31,31,124,31,248,99,62,231,31,31,124,31,248,99,62,231 +.byte 98,98,149,98,55,247,196,85,98,98,149,98,55,247,196,85 +.byte 212,212,119,212,238,163,181,58,212,212,119,212,238,163,181,58 +.byte 168,168,154,168,41,50,77,129,168,168,154,168,41,50,77,129 +.byte 150,150,98,150,196,244,49,82,150,150,98,150,196,244,49,82 +.byte 249,249,195,249,155,58,239,98,249,249,195,249,155,58,239,98 +.byte 197,197,51,197,102,246,151,163,197,197,51,197,102,246,151,163 +.byte 37,37,148,37,53,177,74,16,37,37,148,37,53,177,74,16 +.byte 89,89,121,89,242,32,178,171,89,89,121,89,242,32,178,171 +.byte 132,132,42,132,84,174,21,208,132,132,42,132,84,174,21,208 +.byte 114,114,213,114,183,167,228,197,114,114,213,114,183,167,228,197 +.byte 57,57,228,57,213,221,114,236,57,57,228,57,213,221,114,236 +.byte 76,76,45,76,90,97,152,22,76,76,45,76,90,97,152,22 +.byte 94,94,101,94,202,59,188,148,94,94,101,94,202,59,188,148 +.byte 120,120,253,120,231,133,240,159,120,120,253,120,231,133,240,159 +.byte 56,56,224,56,221,216,112,229,56,56,224,56,221,216,112,229 +.byte 140,140,10,140,20,134,5,152,140,140,10,140,20,134,5,152 +.byte 209,209,99,209,198,178,191,23,209,209,99,209,198,178,191,23 +.byte 165,165,174,165,65,11,87,228,165,165,174,165,65,11,87,228 +.byte 226,226,175,226,67,77,217,161,226,226,175,226,67,77,217,161 +.byte 97,97,153,97,47,248,194,78,97,97,153,97,47,248,194,78 +.byte 179,179,246,179,241,69,123,66,179,179,246,179,241,69,123,66 +.byte 33,33,132,33,21,165,66,52,33,33,132,33,21,165,66,52 +.byte 156,156,74,156,148,214,37,8,156,156,74,156,148,214,37,8 +.byte 30,30,120,30,240,102,60,238,30,30,120,30,240,102,60,238 +.byte 67,67,17,67,34,82,134,97,67,67,17,67,34,82,134,97 +.byte 199,199,59,199,118,252,147,177,199,199,59,199,118,252,147,177 +.byte 252,252,215,252,179,43,229,79,252,252,215,252,179,43,229,79 +.byte 4,4,16,4,32,20,8,36,4,4,16,4,32,20,8,36 +.byte 81,81,89,81,178,8,162,227,81,81,89,81,178,8,162,227 +.byte 153,153,94,153,188,199,47,37,153,153,94,153,188,199,47,37 +.byte 109,109,169,109,79,196,218,34,109,109,169,109,79,196,218,34 +.byte 13,13,52,13,104,57,26,101,13,13,52,13,104,57,26,101 +.byte 250,250,207,250,131,53,233,121,250,250,207,250,131,53,233,121 +.byte 223,223,91,223,182,132,163,105,223,223,91,223,182,132,163,105 +.byte 126,126,229,126,215,155,252,169,126,126,229,126,215,155,252,169 +.byte 36,36,144,36,61,180,72,25,36,36,144,36,61,180,72,25 +.byte 59,59,236,59,197,215,118,254,59,59,236,59,197,215,118,254 +.byte 171,171,150,171,49,61,75,154,171,171,150,171,49,61,75,154 +.byte 206,206,31,206,62,209,129,240,206,206,31,206,62,209,129,240 +.byte 17,17,68,17,136,85,34,153,17,17,68,17,136,85,34,153 +.byte 143,143,6,143,12,137,3,131,143,143,6,143,12,137,3,131 +.byte 78,78,37,78,74,107,156,4,78,78,37,78,74,107,156,4 +.byte 183,183,230,183,209,81,115,102,183,183,230,183,209,81,115,102 +.byte 235,235,139,235,11,96,203,224,235,235,139,235,11,96,203,224 +.byte 60,60,240,60,253,204,120,193,60,60,240,60,253,204,120,193 +.byte 129,129,62,129,124,191,31,253,129,129,62,129,124,191,31,253 +.byte 148,148,106,148,212,254,53,64,148,148,106,148,212,254,53,64 +.byte 247,247,251,247,235,12,243,28,247,247,251,247,235,12,243,28 +.byte 185,185,222,185,161,103,111,24,185,185,222,185,161,103,111,24 +.byte 19,19,76,19,152,95,38,139,19,19,76,19,152,95,38,139 +.byte 44,44,176,44,125,156,88,81,44,44,176,44,125,156,88,81 +.byte 211,211,107,211,214,184,187,5,211,211,107,211,214,184,187,5 +.byte 231,231,187,231,107,92,211,140,231,231,187,231,107,92,211,140 +.byte 110,110,165,110,87,203,220,57,110,110,165,110,87,203,220,57 +.byte 196,196,55,196,110,243,149,170,196,196,55,196,110,243,149,170 +.byte 3,3,12,3,24,15,6,27,3,3,12,3,24,15,6,27 +.byte 86,86,69,86,138,19,172,220,86,86,69,86,138,19,172,220 +.byte 68,68,13,68,26,73,136,94,68,68,13,68,26,73,136,94 +.byte 127,127,225,127,223,158,254,160,127,127,225,127,223,158,254,160 +.byte 169,169,158,169,33,55,79,136,169,169,158,169,33,55,79,136 +.byte 42,42,168,42,77,130,84,103,42,42,168,42,77,130,84,103 +.byte 187,187,214,187,177,109,107,10,187,187,214,187,177,109,107,10 +.byte 193,193,35,193,70,226,159,135,193,193,35,193,70,226,159,135 +.byte 83,83,81,83,162,2,166,241,83,83,81,83,162,2,166,241 +.byte 220,220,87,220,174,139,165,114,220,220,87,220,174,139,165,114 +.byte 11,11,44,11,88,39,22,83,11,11,44,11,88,39,22,83 +.byte 157,157,78,157,156,211,39,1,157,157,78,157,156,211,39,1 +.byte 108,108,173,108,71,193,216,43,108,108,173,108,71,193,216,43 +.byte 49,49,196,49,149,245,98,164,49,49,196,49,149,245,98,164 +.byte 116,116,205,116,135,185,232,243,116,116,205,116,135,185,232,243 +.byte 246,246,255,246,227,9,241,21,246,246,255,246,227,9,241,21 +.byte 70,70,5,70,10,67,140,76,70,70,5,70,10,67,140,76 +.byte 172,172,138,172,9,38,69,165,172,172,138,172,9,38,69,165 +.byte 137,137,30,137,60,151,15,181,137,137,30,137,60,151,15,181 +.byte 20,20,80,20,160,68,40,180,20,20,80,20,160,68,40,180 +.byte 225,225,163,225,91,66,223,186,225,225,163,225,91,66,223,186 +.byte 22,22,88,22,176,78,44,166,22,22,88,22,176,78,44,166 +.byte 58,58,232,58,205,210,116,247,58,58,232,58,205,210,116,247 +.byte 105,105,185,105,111,208,210,6,105,105,185,105,111,208,210,6 +.byte 9,9,36,9,72,45,18,65,9,9,36,9,72,45,18,65 +.byte 112,112,221,112,167,173,224,215,112,112,221,112,167,173,224,215 +.byte 182,182,226,182,217,84,113,111,182,182,226,182,217,84,113,111 +.byte 208,208,103,208,206,183,189,30,208,208,103,208,206,183,189,30 +.byte 237,237,147,237,59,126,199,214,237,237,147,237,59,126,199,214 +.byte 204,204,23,204,46,219,133,226,204,204,23,204,46,219,133,226 +.byte 66,66,21,66,42,87,132,104,66,66,21,66,42,87,132,104 +.byte 152,152,90,152,180,194,45,44,152,152,90,152,180,194,45,44 +.byte 164,164,170,164,73,14,85,237,164,164,170,164,73,14,85,237 +.byte 40,40,160,40,93,136,80,117,40,40,160,40,93,136,80,117 +.byte 92,92,109,92,218,49,184,134,92,92,109,92,218,49,184,134 +.byte 248,248,199,248,147,63,237,107,248,248,199,248,147,63,237,107 +.byte 134,134,34,134,68,164,17,194,134,134,34,134,68,164,17,194 +.byte 24,35,198,232,135,184,1,79 +.byte 54,166,210,245,121,111,145,82 +.byte 96,188,155,142,163,12,123,53 +.byte 29,224,215,194,46,75,254,87 +.byte 21,119,55,229,159,240,74,218 +.byte 88,201,41,10,177,160,107,133 +.byte 189,93,16,244,203,62,5,103 +.byte 228,39,65,139,167,125,149,216 +.byte 251,238,124,102,221,23,71,158 +.byte 202,45,191,7,173,90,131,51 diff --git a/deps/openssl/asm/x64-macosx-gas/x86_64cpuid.s b/deps/openssl/asm/x64-macosx-gas/x86_64cpuid.s new file mode 100644 index 0000000000..a1670e38e8 --- /dev/null +++ b/deps/openssl/asm/x64-macosx-gas/x86_64cpuid.s @@ -0,0 +1,195 @@ + +.mod_init_func + .p2align 3 + .quad _OPENSSL_cpuid_setup + +.text + + +.globl _OPENSSL_atomic_add + +.p2align 4 +_OPENSSL_atomic_add: + movl (%rdi),%eax +L$spin: leaq (%rsi,%rax,1),%r8 +.byte 0xf0 + + cmpxchgl %r8d,(%rdi) + jne L$spin + movl %r8d,%eax +.byte 0x48,0x98 + + .byte 0xf3,0xc3 + + +.globl _OPENSSL_rdtsc + +.p2align 4 +_OPENSSL_rdtsc: + rdtsc + shlq $32,%rdx + orq %rdx,%rax + .byte 0xf3,0xc3 + + +.globl _OPENSSL_ia32_cpuid + +.p2align 4 +_OPENSSL_ia32_cpuid: + movq %rbx,%r8 + + xorl %eax,%eax + cpuid + movl %eax,%r11d + + xorl %eax,%eax + cmpl $1970169159,%ebx + setne %al + movl %eax,%r9d + cmpl $1231384169,%edx + setne %al + orl %eax,%r9d + cmpl $1818588270,%ecx + setne %al + orl %eax,%r9d + jz L$intel + + cmpl $1752462657,%ebx + setne %al + movl %eax,%r10d + cmpl $1769238117,%edx + setne %al + orl %eax,%r10d + cmpl $1145913699,%ecx + setne %al + orl %eax,%r10d + jnz L$intel + + + movl $2147483648,%eax + cpuid + cmpl $2147483656,%eax + jb L$intel + + movl $2147483656,%eax + cpuid + movzbq %cl,%r10 + incq %r10 + + movl $1,%eax + cpuid + btl $28,%edx + jnc L$done + shrl $16,%ebx + cmpb %r10b,%bl + ja L$done + andl $4026531839,%edx + jmp L$done + +L$intel: + cmpl $4,%r11d + movl $-1,%r10d + jb L$nocacheinfo + + movl $4,%eax + movl $0,%ecx + cpuid + movl %eax,%r10d + shrl $14,%r10d + andl $4095,%r10d + +L$nocacheinfo: + movl $1,%eax + cpuid + cmpl $0,%r9d + jne L$notintel + orl $1048576,%edx + andb $15,%ah + cmpb $15,%ah + je L$notintel + orl $1073741824,%edx +L$notintel: + btl $28,%edx + jnc L$done + andl $4026531839,%edx + cmpl $0,%r10d + je L$done + + orl $268435456,%edx + shrl $16,%ebx + cmpb $1,%bl + ja L$done + andl $4026531839,%edx +L$done: + shlq $32,%rcx + movl %edx,%eax + movq %r8,%rbx + orq %rcx,%rax + .byte 0xf3,0xc3 + + +.globl _OPENSSL_cleanse + +.p2align 4 +_OPENSSL_cleanse: + xorq %rax,%rax + cmpq $15,%rsi + jae L$ot + cmpq $0,%rsi + je L$ret +L$ittle: + movb %al,(%rdi) + subq $1,%rsi + leaq 1(%rdi),%rdi + jnz L$ittle +L$ret: + .byte 0xf3,0xc3 +.p2align 4 +L$ot: + testq $7,%rdi + jz L$aligned + movb %al,(%rdi) + leaq -1(%rsi),%rsi + leaq 1(%rdi),%rdi + jmp L$ot +L$aligned: + movq %rax,(%rdi) + leaq -8(%rsi),%rsi + testq $-8,%rsi + leaq 8(%rdi),%rdi + jnz L$aligned + cmpq $0,%rsi + jne L$ittle + .byte 0xf3,0xc3 + +.globl _OPENSSL_wipe_cpu + +.p2align 4 +_OPENSSL_wipe_cpu: + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + pxor %xmm8,%xmm8 + pxor %xmm9,%xmm9 + pxor %xmm10,%xmm10 + pxor %xmm11,%xmm11 + pxor %xmm12,%xmm12 + pxor %xmm13,%xmm13 + pxor %xmm14,%xmm14 + pxor %xmm15,%xmm15 + xorq %rcx,%rcx + xorq %rdx,%rdx + xorq %rsi,%rsi + xorq %rdi,%rdi + xorq %r8,%r8 + xorq %r9,%r9 + xorq %r10,%r10 + xorq %r11,%r11 + leaq 8(%rsp),%rax + .byte 0xf3,0xc3 + diff --git a/deps/openssl/asm/x64-win32-masm/aes/aes-x86_64.asm b/deps/openssl/asm/x64-win32-masm/aes/aes-x86_64.asm new file mode 100644 index 0000000000..2c590b94f4 --- /dev/null +++ b/deps/openssl/asm/x64-win32-masm/aes/aes-x86_64.asm @@ -0,0 +1,2885 @@ +OPTION DOTNAME +.text$ SEGMENT ALIGN(64) 'CODE' + +ALIGN 16 +_x86_64_AES_encrypt PROC PRIVATE + xor eax,DWORD PTR[r15] + xor ebx,DWORD PTR[4+r15] + xor ecx,DWORD PTR[8+r15] + xor edx,DWORD PTR[12+r15] + + mov r13d,DWORD PTR[240+r15] + sub r13d,1 + jmp $L$enc_loop +ALIGN 16 +$L$enc_loop:: + + movzx esi,al + movzx edi,bl + movzx ebp,cl + mov r10d,DWORD PTR[rsi*8+r14] + mov r11d,DWORD PTR[rdi*8+r14] + mov r12d,DWORD PTR[rbp*8+r14] + + movzx esi,bh + movzx edi,ch + movzx ebp,dl + xor r10d,DWORD PTR[3+rsi*8+r14] + xor r11d,DWORD PTR[3+rdi*8+r14] + mov r8d,DWORD PTR[rbp*8+r14] + + movzx esi,dh + shr ecx,16 + movzx ebp,ah + xor r12d,DWORD PTR[3+rsi*8+r14] + shr edx,16 + xor r8d,DWORD PTR[3+rbp*8+r14] + + shr ebx,16 + lea r15,QWORD PTR[16+r15] + shr eax,16 + + movzx esi,cl + movzx edi,dl + movzx ebp,al + xor r10d,DWORD PTR[2+rsi*8+r14] + xor r11d,DWORD PTR[2+rdi*8+r14] + xor r12d,DWORD PTR[2+rbp*8+r14] + + movzx esi,dh + movzx edi,ah + movzx ebp,bl + xor r10d,DWORD PTR[1+rsi*8+r14] + xor r11d,DWORD PTR[1+rdi*8+r14] + xor r8d,DWORD PTR[2+rbp*8+r14] + + mov edx,DWORD PTR[12+r15] + movzx edi,bh + movzx ebp,ch + mov eax,DWORD PTR[r15] + xor r12d,DWORD PTR[1+rdi*8+r14] + xor r8d,DWORD PTR[1+rbp*8+r14] + + mov ebx,DWORD PTR[4+r15] + mov ecx,DWORD PTR[8+r15] + xor eax,r10d + xor ebx,r11d + xor ecx,r12d + xor edx,r8d + sub r13d,1 + jnz $L$enc_loop + movzx esi,al + movzx edi,bl + movzx ebp,cl + movzx r10d,BYTE PTR[2+rsi*8+r14] + movzx r11d,BYTE PTR[2+rdi*8+r14] + movzx r12d,BYTE PTR[2+rbp*8+r14] + + movzx esi,dl + movzx edi,bh + movzx ebp,ch + movzx r8d,BYTE PTR[2+rsi*8+r14] + mov edi,DWORD PTR[rdi*8+r14] + mov ebp,DWORD PTR[rbp*8+r14] + + and edi,00000ff00h + and ebp,00000ff00h + + xor r10d,edi + xor r11d,ebp + shr ecx,16 + + movzx esi,dh + movzx edi,ah + shr edx,16 + mov esi,DWORD PTR[rsi*8+r14] + mov edi,DWORD PTR[rdi*8+r14] + + and esi,00000ff00h + and edi,00000ff00h + shr ebx,16 + xor r12d,esi + xor r8d,edi + shr eax,16 + + movzx esi,cl + movzx edi,dl + movzx ebp,al + mov esi,DWORD PTR[rsi*8+r14] + mov edi,DWORD PTR[rdi*8+r14] + mov ebp,DWORD PTR[rbp*8+r14] + + and esi,000ff0000h + and edi,000ff0000h + and ebp,000ff0000h + + xor r10d,esi + xor r11d,edi + xor r12d,ebp + + movzx esi,bl + movzx edi,dh + movzx ebp,ah + mov esi,DWORD PTR[rsi*8+r14] + mov edi,DWORD PTR[2+rdi*8+r14] + mov ebp,DWORD PTR[2+rbp*8+r14] + + and esi,000ff0000h + and edi,0ff000000h + and ebp,0ff000000h + + xor r8d,esi + xor r10d,edi + xor r11d,ebp + + movzx esi,bh + movzx edi,ch + mov edx,DWORD PTR[((16+12))+r15] + mov esi,DWORD PTR[2+rsi*8+r14] + mov edi,DWORD PTR[2+rdi*8+r14] + mov eax,DWORD PTR[((16+0))+r15] + + and esi,0ff000000h + and edi,0ff000000h + + xor r12d,esi + xor r8d,edi + + mov ebx,DWORD PTR[((16+4))+r15] + mov ecx,DWORD PTR[((16+8))+r15] + xor eax,r10d + xor ebx,r11d + xor ecx,r12d + xor edx,r8d +DB 0f3h,0c3h + +_x86_64_AES_encrypt ENDP + +ALIGN 16 +_x86_64_AES_encrypt_compact PROC PRIVATE + lea r8,QWORD PTR[128+r14] + mov edi,DWORD PTR[((0-128))+r8] + mov ebp,DWORD PTR[((32-128))+r8] + mov r10d,DWORD PTR[((64-128))+r8] + mov r11d,DWORD PTR[((96-128))+r8] + mov edi,DWORD PTR[((128-128))+r8] + mov ebp,DWORD PTR[((160-128))+r8] + mov r10d,DWORD PTR[((192-128))+r8] + mov r11d,DWORD PTR[((224-128))+r8] + jmp $L$enc_loop_compact +ALIGN 16 +$L$enc_loop_compact:: + xor eax,DWORD PTR[r15] + xor ebx,DWORD PTR[4+r15] + xor ecx,DWORD PTR[8+r15] + xor edx,DWORD PTR[12+r15] + lea r15,QWORD PTR[16+r15] + movzx r10d,al + movzx r11d,bl + movzx r12d,cl + movzx r10d,BYTE PTR[r10*1+r14] + movzx r11d,BYTE PTR[r11*1+r14] + movzx r12d,BYTE PTR[r12*1+r14] + + movzx r8d,dl + movzx esi,bh + movzx edi,ch + movzx r8d,BYTE PTR[r8*1+r14] + movzx r9d,BYTE PTR[rsi*1+r14] + movzx r13d,BYTE PTR[rdi*1+r14] + + movzx ebp,dh + movzx esi,ah + shr ecx,16 + movzx ebp,BYTE PTR[rbp*1+r14] + movzx esi,BYTE PTR[rsi*1+r14] + shr edx,16 + + movzx edi,cl + shl r9d,8 + shl r13d,8 + movzx edi,BYTE PTR[rdi*1+r14] + xor r10d,r9d + xor r11d,r13d + + movzx r9d,dl + shr eax,16 + shr ebx,16 + movzx r13d,al + shl ebp,8 + shl esi,8 + movzx r9d,BYTE PTR[r9*1+r14] + movzx r13d,BYTE PTR[r13*1+r14] + xor r12d,ebp + xor r8d,esi + + movzx ebp,bl + movzx esi,dh + shl edi,16 + movzx ebp,BYTE PTR[rbp*1+r14] + movzx esi,BYTE PTR[rsi*1+r14] + xor r10d,edi + + movzx edi,ah + shr ecx,8 + shr ebx,8 + movzx edi,BYTE PTR[rdi*1+r14] + movzx edx,BYTE PTR[rcx*1+r14] + movzx ecx,BYTE PTR[rbx*1+r14] + shl r9d,16 + shl r13d,16 + shl ebp,16 + xor r11d,r9d + xor r12d,r13d + xor r8d,ebp + + shl esi,24 + shl edi,24 + shl edx,24 + xor r10d,esi + shl ecx,24 + xor r11d,edi + mov eax,r10d + mov ebx,r11d + xor ecx,r12d + xor edx,r8d + cmp r15,QWORD PTR[16+rsp] + je $L$enc_compact_done + mov esi,eax + mov edi,ebx + and esi,080808080h + and edi,080808080h + mov r10d,esi + mov r11d,edi + shr r10d,7 + lea r8d,DWORD PTR[rax*1+rax] + shr r11d,7 + lea r9d,DWORD PTR[rbx*1+rbx] + sub esi,r10d + sub edi,r11d + and r8d,0fefefefeh + and r9d,0fefefefeh + and esi,01b1b1b1bh + and edi,01b1b1b1bh + mov r10d,eax + mov r11d,ebx + xor r8d,esi + xor r9d,edi + + xor eax,r8d + xor ebx,r9d + mov esi,ecx + mov edi,edx + rol eax,24 + rol ebx,24 + and esi,080808080h + and edi,080808080h + xor eax,r8d + xor ebx,r9d + mov r12d,esi + mov ebp,edi + ror r10d,16 + ror r11d,16 + shr r12d,7 + lea r8d,DWORD PTR[rcx*1+rcx] + xor eax,r10d + xor ebx,r11d + shr ebp,7 + lea r9d,DWORD PTR[rdx*1+rdx] + ror r10d,8 + ror r11d,8 + sub esi,r12d + sub edi,ebp + xor eax,r10d + xor ebx,r11d + + and r8d,0fefefefeh + and r9d,0fefefefeh + and esi,01b1b1b1bh + and edi,01b1b1b1bh + mov r12d,ecx + mov ebp,edx + xor r8d,esi + xor r9d,edi + + xor ecx,r8d + xor edx,r9d + rol ecx,24 + rol edx,24 + xor ecx,r8d + xor edx,r9d + mov esi,DWORD PTR[r14] + ror r12d,16 + ror ebp,16 + mov edi,DWORD PTR[64+r14] + xor ecx,r12d + xor edx,ebp + mov r8d,DWORD PTR[128+r14] + ror r12d,8 + ror ebp,8 + mov r9d,DWORD PTR[192+r14] + xor ecx,r12d + xor edx,ebp + jmp $L$enc_loop_compact +ALIGN 16 +$L$enc_compact_done:: + xor eax,DWORD PTR[r15] + xor ebx,DWORD PTR[4+r15] + xor ecx,DWORD PTR[8+r15] + xor edx,DWORD PTR[12+r15] +DB 0f3h,0c3h + +_x86_64_AES_encrypt_compact ENDP +PUBLIC AES_encrypt + +ALIGN 16 +AES_encrypt PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_AES_encrypt:: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + + + mov r10,rsp + lea rcx,QWORD PTR[((-63))+rdx] + and rsp,-64 + sub rcx,rsp + neg rcx + and rcx,03c0h + sub rsp,rcx + sub rsp,32 + + mov QWORD PTR[16+rsp],rsi + mov QWORD PTR[24+rsp],r10 +$L$enc_prologue:: + + mov r15,rdx + mov r13d,DWORD PTR[240+r15] + + mov eax,DWORD PTR[rdi] + mov ebx,DWORD PTR[4+rdi] + mov ecx,DWORD PTR[8+rdi] + mov edx,DWORD PTR[12+rdi] + + shl r13d,4 + lea rbp,QWORD PTR[r13*1+r15] + mov QWORD PTR[rsp],r15 + mov QWORD PTR[8+rsp],rbp + + + lea r14,QWORD PTR[(($L$AES_Te+2048))] + lea rbp,QWORD PTR[768+rsp] + sub rbp,r14 + and rbp,0300h + lea r14,QWORD PTR[rbp*1+r14] + + call _x86_64_AES_encrypt_compact + + mov r9,QWORD PTR[16+rsp] + mov rsi,QWORD PTR[24+rsp] + mov DWORD PTR[r9],eax + mov DWORD PTR[4+r9],ebx + mov DWORD PTR[8+r9],ecx + mov DWORD PTR[12+r9],edx + + mov r15,QWORD PTR[rsi] + mov r14,QWORD PTR[8+rsi] + mov r13,QWORD PTR[16+rsi] + mov r12,QWORD PTR[24+rsi] + mov rbp,QWORD PTR[32+rsi] + mov rbx,QWORD PTR[40+rsi] + lea rsp,QWORD PTR[48+rsi] +$L$enc_epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_AES_encrypt:: +AES_encrypt ENDP + +ALIGN 16 +_x86_64_AES_decrypt PROC PRIVATE + xor eax,DWORD PTR[r15] + xor ebx,DWORD PTR[4+r15] + xor ecx,DWORD PTR[8+r15] + xor edx,DWORD PTR[12+r15] + + mov r13d,DWORD PTR[240+r15] + sub r13d,1 + jmp $L$dec_loop +ALIGN 16 +$L$dec_loop:: + + movzx esi,al + movzx edi,bl + movzx ebp,cl + mov r10d,DWORD PTR[rsi*8+r14] + mov r11d,DWORD PTR[rdi*8+r14] + mov r12d,DWORD PTR[rbp*8+r14] + + movzx esi,dh + movzx edi,ah + movzx ebp,dl + xor r10d,DWORD PTR[3+rsi*8+r14] + xor r11d,DWORD PTR[3+rdi*8+r14] + mov r8d,DWORD PTR[rbp*8+r14] + + movzx esi,bh + shr eax,16 + movzx ebp,ch + xor r12d,DWORD PTR[3+rsi*8+r14] + shr edx,16 + xor r8d,DWORD PTR[3+rbp*8+r14] + + shr ebx,16 + lea r15,QWORD PTR[16+r15] + shr ecx,16 + + movzx esi,cl + movzx edi,dl + movzx ebp,al + xor r10d,DWORD PTR[2+rsi*8+r14] + xor r11d,DWORD PTR[2+rdi*8+r14] + xor r12d,DWORD PTR[2+rbp*8+r14] + + movzx esi,bh + movzx edi,ch + movzx ebp,bl + xor r10d,DWORD PTR[1+rsi*8+r14] + xor r11d,DWORD PTR[1+rdi*8+r14] + xor r8d,DWORD PTR[2+rbp*8+r14] + + movzx esi,dh + mov edx,DWORD PTR[12+r15] + movzx ebp,ah + xor r12d,DWORD PTR[1+rsi*8+r14] + mov eax,DWORD PTR[r15] + xor r8d,DWORD PTR[1+rbp*8+r14] + + xor eax,r10d + mov ebx,DWORD PTR[4+r15] + mov ecx,DWORD PTR[8+r15] + xor ecx,r12d + xor ebx,r11d + xor edx,r8d + sub r13d,1 + jnz $L$dec_loop + lea r14,QWORD PTR[2048+r14] + movzx esi,al + movzx edi,bl + movzx ebp,cl + movzx r10d,BYTE PTR[rsi*1+r14] + movzx r11d,BYTE PTR[rdi*1+r14] + movzx r12d,BYTE PTR[rbp*1+r14] + + movzx esi,dl + movzx edi,dh + movzx ebp,ah + movzx r8d,BYTE PTR[rsi*1+r14] + movzx edi,BYTE PTR[rdi*1+r14] + movzx ebp,BYTE PTR[rbp*1+r14] + + shl edi,8 + shl ebp,8 + + xor r10d,edi + xor r11d,ebp + shr edx,16 + + movzx esi,bh + movzx edi,ch + shr eax,16 + movzx esi,BYTE PTR[rsi*1+r14] + movzx edi,BYTE PTR[rdi*1+r14] + + shl esi,8 + shl edi,8 + shr ebx,16 + xor r12d,esi + xor r8d,edi + shr ecx,16 + + movzx esi,cl + movzx edi,dl + movzx ebp,al + movzx esi,BYTE PTR[rsi*1+r14] + movzx edi,BYTE PTR[rdi*1+r14] + movzx ebp,BYTE PTR[rbp*1+r14] + + shl esi,16 + shl edi,16 + shl ebp,16 + + xor r10d,esi + xor r11d,edi + xor r12d,ebp + + movzx esi,bl + movzx edi,bh + movzx ebp,ch + movzx esi,BYTE PTR[rsi*1+r14] + movzx edi,BYTE PTR[rdi*1+r14] + movzx ebp,BYTE PTR[rbp*1+r14] + + shl esi,16 + shl edi,24 + shl ebp,24 + + xor r8d,esi + xor r10d,edi + xor r11d,ebp + + movzx esi,dh + movzx edi,ah + mov edx,DWORD PTR[((16+12))+r15] + movzx esi,BYTE PTR[rsi*1+r14] + movzx edi,BYTE PTR[rdi*1+r14] + mov eax,DWORD PTR[((16+0))+r15] + + shl esi,24 + shl edi,24 + + xor r12d,esi + xor r8d,edi + + mov ebx,DWORD PTR[((16+4))+r15] + mov ecx,DWORD PTR[((16+8))+r15] + lea r14,QWORD PTR[((-2048))+r14] + xor eax,r10d + xor ebx,r11d + xor ecx,r12d + xor edx,r8d +DB 0f3h,0c3h + +_x86_64_AES_decrypt ENDP + +ALIGN 16 +_x86_64_AES_decrypt_compact PROC PRIVATE + lea r8,QWORD PTR[128+r14] + mov edi,DWORD PTR[((0-128))+r8] + mov ebp,DWORD PTR[((32-128))+r8] + mov r10d,DWORD PTR[((64-128))+r8] + mov r11d,DWORD PTR[((96-128))+r8] + mov edi,DWORD PTR[((128-128))+r8] + mov ebp,DWORD PTR[((160-128))+r8] + mov r10d,DWORD PTR[((192-128))+r8] + mov r11d,DWORD PTR[((224-128))+r8] + jmp $L$dec_loop_compact + +ALIGN 16 +$L$dec_loop_compact:: + xor eax,DWORD PTR[r15] + xor ebx,DWORD PTR[4+r15] + xor ecx,DWORD PTR[8+r15] + xor edx,DWORD PTR[12+r15] + lea r15,QWORD PTR[16+r15] + movzx r10d,al + movzx r11d,bl + movzx r12d,cl + movzx r10d,BYTE PTR[r10*1+r14] + movzx r11d,BYTE PTR[r11*1+r14] + movzx r12d,BYTE PTR[r12*1+r14] + + movzx r8d,dl + movzx esi,dh + movzx edi,ah + movzx r8d,BYTE PTR[r8*1+r14] + movzx r9d,BYTE PTR[rsi*1+r14] + movzx r13d,BYTE PTR[rdi*1+r14] + + movzx ebp,bh + movzx esi,ch + shr ecx,16 + movzx ebp,BYTE PTR[rbp*1+r14] + movzx esi,BYTE PTR[rsi*1+r14] + shr edx,16 + + movzx edi,cl + shl r9d,8 + shl r13d,8 + movzx edi,BYTE PTR[rdi*1+r14] + xor r10d,r9d + xor r11d,r13d + + movzx r9d,dl + shr eax,16 + shr ebx,16 + movzx r13d,al + shl ebp,8 + shl esi,8 + movzx r9d,BYTE PTR[r9*1+r14] + movzx r13d,BYTE PTR[r13*1+r14] + xor r12d,ebp + xor r8d,esi + + movzx ebp,bl + movzx esi,bh + shl edi,16 + movzx ebp,BYTE PTR[rbp*1+r14] + movzx esi,BYTE PTR[rsi*1+r14] + xor r10d,edi + + movzx edi,ch + shl r9d,16 + shl r13d,16 + movzx ebx,BYTE PTR[rdi*1+r14] + xor r11d,r9d + xor r12d,r13d + + movzx edi,dh + shr eax,8 + shl ebp,16 + movzx ecx,BYTE PTR[rdi*1+r14] + movzx edx,BYTE PTR[rax*1+r14] + xor r8d,ebp + + shl esi,24 + shl ebx,24 + shl ecx,24 + xor r10d,esi + shl edx,24 + xor ebx,r11d + mov eax,r10d + xor ecx,r12d + xor edx,r8d + cmp r15,QWORD PTR[16+rsp] + je $L$dec_compact_done + + mov rsi,QWORD PTR[((256+0))+r14] + shl rbx,32 + shl rdx,32 + mov rdi,QWORD PTR[((256+8))+r14] + or rax,rbx + or rcx,rdx + mov rbp,QWORD PTR[((256+16))+r14] + mov rbx,rax + mov rdx,rcx + and rbx,rsi + and rdx,rsi + mov r9,rbx + mov r12,rdx + shr r9,7 + lea r8,QWORD PTR[rax*1+rax] + shr r12,7 + lea r11,QWORD PTR[rcx*1+rcx] + sub rbx,r9 + sub rdx,r12 + and r8,rdi + and r11,rdi + and rbx,rbp + and rdx,rbp + xor rbx,r8 + xor rdx,r11 + mov r8,rbx + mov r11,rdx + + and rbx,rsi + and rdx,rsi + mov r10,rbx + mov r13,rdx + shr r10,7 + lea r9,QWORD PTR[r8*1+r8] + shr r13,7 + lea r12,QWORD PTR[r11*1+r11] + sub rbx,r10 + sub rdx,r13 + and r9,rdi + and r12,rdi + and rbx,rbp + and rdx,rbp + xor rbx,r9 + xor rdx,r12 + mov r9,rbx + mov r12,rdx + + and rbx,rsi + and rdx,rsi + mov r10,rbx + mov r13,rdx + shr r10,7 + xor r8,rax + shr r13,7 + xor r11,rcx + sub rbx,r10 + sub rdx,r13 + lea r10,QWORD PTR[r9*1+r9] + lea r13,QWORD PTR[r12*1+r12] + xor r9,rax + xor r12,rcx + and r10,rdi + and r13,rdi + and rbx,rbp + and rdx,rbp + xor r10,rbx + xor r13,rdx + + xor rax,r10 + xor rcx,r13 + xor r8,r10 + xor r11,r13 + mov rbx,rax + mov rdx,rcx + xor r9,r10 + xor r12,r13 + shr rbx,32 + shr rdx,32 + xor r10,r8 + xor r13,r11 + rol eax,8 + rol ecx,8 + xor r10,r9 + xor r13,r12 + + rol ebx,8 + rol edx,8 + xor eax,r10d + xor ecx,r13d + shr r10,32 + shr r13,32 + xor ebx,r10d + xor edx,r13d + + mov r10,r8 + mov r13,r11 + shr r10,32 + shr r13,32 + rol r8d,24 + rol r11d,24 + rol r10d,24 + rol r13d,24 + xor eax,r8d + xor ecx,r11d + mov r8,r9 + mov r11,r12 + xor ebx,r10d + xor edx,r13d + + mov rsi,QWORD PTR[r14] + shr r8,32 + shr r11,32 + mov rdi,QWORD PTR[64+r14] + rol r9d,16 + rol r12d,16 + mov rbp,QWORD PTR[128+r14] + rol r8d,16 + rol r11d,16 + mov r10,QWORD PTR[192+r14] + xor eax,r9d + xor ecx,r12d + mov r13,QWORD PTR[256+r14] + xor ebx,r8d + xor edx,r11d + jmp $L$dec_loop_compact +ALIGN 16 +$L$dec_compact_done:: + xor eax,DWORD PTR[r15] + xor ebx,DWORD PTR[4+r15] + xor ecx,DWORD PTR[8+r15] + xor edx,DWORD PTR[12+r15] +DB 0f3h,0c3h + +_x86_64_AES_decrypt_compact ENDP +PUBLIC AES_decrypt + +ALIGN 16 +AES_decrypt PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_AES_decrypt:: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + + + mov r10,rsp + lea rcx,QWORD PTR[((-63))+rdx] + and rsp,-64 + sub rcx,rsp + neg rcx + and rcx,03c0h + sub rsp,rcx + sub rsp,32 + + mov QWORD PTR[16+rsp],rsi + mov QWORD PTR[24+rsp],r10 +$L$dec_prologue:: + + mov r15,rdx + mov r13d,DWORD PTR[240+r15] + + mov eax,DWORD PTR[rdi] + mov ebx,DWORD PTR[4+rdi] + mov ecx,DWORD PTR[8+rdi] + mov edx,DWORD PTR[12+rdi] + + shl r13d,4 + lea rbp,QWORD PTR[r13*1+r15] + mov QWORD PTR[rsp],r15 + mov QWORD PTR[8+rsp],rbp + + + lea r14,QWORD PTR[(($L$AES_Td+2048))] + lea rbp,QWORD PTR[768+rsp] + sub rbp,r14 + and rbp,0300h + lea r14,QWORD PTR[rbp*1+r14] + shr rbp,3 + add r14,rbp + + call _x86_64_AES_decrypt_compact + + mov r9,QWORD PTR[16+rsp] + mov rsi,QWORD PTR[24+rsp] + mov DWORD PTR[r9],eax + mov DWORD PTR[4+r9],ebx + mov DWORD PTR[8+r9],ecx + mov DWORD PTR[12+r9],edx + + mov r15,QWORD PTR[rsi] + mov r14,QWORD PTR[8+rsi] + mov r13,QWORD PTR[16+rsi] + mov r12,QWORD PTR[24+rsi] + mov rbp,QWORD PTR[32+rsi] + mov rbx,QWORD PTR[40+rsi] + lea rsp,QWORD PTR[48+rsi] +$L$dec_epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_AES_decrypt:: +AES_decrypt ENDP +PUBLIC AES_set_encrypt_key + +ALIGN 16 +AES_set_encrypt_key PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_AES_set_encrypt_key:: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + sub rsp,8 +$L$enc_key_prologue:: + + call _x86_64_AES_set_encrypt_key + + mov r15,QWORD PTR[8+rsp] + mov r14,QWORD PTR[16+rsp] + mov r13,QWORD PTR[24+rsp] + mov r12,QWORD PTR[32+rsp] + mov rbp,QWORD PTR[40+rsp] + mov rbx,QWORD PTR[48+rsp] + add rsp,56 +$L$enc_key_epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_AES_set_encrypt_key:: +AES_set_encrypt_key ENDP + + +ALIGN 16 +_x86_64_AES_set_encrypt_key PROC PRIVATE + mov ecx,esi + mov rsi,rdi + mov rdi,rdx + + test rsi,-1 + jz $L$badpointer + test rdi,-1 + jz $L$badpointer + + lea rbp,QWORD PTR[$L$AES_Te] + lea rbp,QWORD PTR[((2048+128))+rbp] + + + mov eax,DWORD PTR[((0-128))+rbp] + mov ebx,DWORD PTR[((32-128))+rbp] + mov r8d,DWORD PTR[((64-128))+rbp] + mov edx,DWORD PTR[((96-128))+rbp] + mov eax,DWORD PTR[((128-128))+rbp] + mov ebx,DWORD PTR[((160-128))+rbp] + mov r8d,DWORD PTR[((192-128))+rbp] + mov edx,DWORD PTR[((224-128))+rbp] + + cmp ecx,128 + je $L$10rounds + cmp ecx,192 + je $L$12rounds + cmp ecx,256 + je $L$14rounds + mov rax,-2 + jmp $L$exit + +$L$10rounds:: + mov rax,QWORD PTR[rsi] + mov rdx,QWORD PTR[8+rsi] + mov QWORD PTR[rdi],rax + mov QWORD PTR[8+rdi],rdx + + shr rdx,32 + xor ecx,ecx + jmp $L$10shortcut +ALIGN 4 +$L$10loop:: + mov eax,DWORD PTR[rdi] + mov edx,DWORD PTR[12+rdi] +$L$10shortcut:: + movzx esi,dl + movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] + movzx esi,dh + shl ebx,24 + xor eax,ebx + + movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] + shr edx,16 + movzx esi,dl + xor eax,ebx + + movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] + movzx esi,dh + shl ebx,8 + xor eax,ebx + + movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] + shl ebx,16 + xor eax,ebx + + xor eax,DWORD PTR[((1024-128))+rcx*4+rbp] + mov DWORD PTR[16+rdi],eax + xor eax,DWORD PTR[4+rdi] + mov DWORD PTR[20+rdi],eax + xor eax,DWORD PTR[8+rdi] + mov DWORD PTR[24+rdi],eax + xor eax,DWORD PTR[12+rdi] + mov DWORD PTR[28+rdi],eax + add ecx,1 + lea rdi,QWORD PTR[16+rdi] + cmp ecx,10 + jl $L$10loop + + mov DWORD PTR[80+rdi],10 + xor rax,rax + jmp $L$exit + +$L$12rounds:: + mov rax,QWORD PTR[rsi] + mov rbx,QWORD PTR[8+rsi] + mov rdx,QWORD PTR[16+rsi] + mov QWORD PTR[rdi],rax + mov QWORD PTR[8+rdi],rbx + mov QWORD PTR[16+rdi],rdx + + shr rdx,32 + xor ecx,ecx + jmp $L$12shortcut +ALIGN 4 +$L$12loop:: + mov eax,DWORD PTR[rdi] + mov edx,DWORD PTR[20+rdi] +$L$12shortcut:: + movzx esi,dl + movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] + movzx esi,dh + shl ebx,24 + xor eax,ebx + + movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] + shr edx,16 + movzx esi,dl + xor eax,ebx + + movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] + movzx esi,dh + shl ebx,8 + xor eax,ebx + + movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] + shl ebx,16 + xor eax,ebx + + xor eax,DWORD PTR[((1024-128))+rcx*4+rbp] + mov DWORD PTR[24+rdi],eax + xor eax,DWORD PTR[4+rdi] + mov DWORD PTR[28+rdi],eax + xor eax,DWORD PTR[8+rdi] + mov DWORD PTR[32+rdi],eax + xor eax,DWORD PTR[12+rdi] + mov DWORD PTR[36+rdi],eax + + cmp ecx,7 + je $L$12break + add ecx,1 + + xor eax,DWORD PTR[16+rdi] + mov DWORD PTR[40+rdi],eax + xor eax,DWORD PTR[20+rdi] + mov DWORD PTR[44+rdi],eax + + lea rdi,QWORD PTR[24+rdi] + jmp $L$12loop +$L$12break:: + mov DWORD PTR[72+rdi],12 + xor rax,rax + jmp $L$exit + +$L$14rounds:: + mov rax,QWORD PTR[rsi] + mov rbx,QWORD PTR[8+rsi] + mov rcx,QWORD PTR[16+rsi] + mov rdx,QWORD PTR[24+rsi] + mov QWORD PTR[rdi],rax + mov QWORD PTR[8+rdi],rbx + mov QWORD PTR[16+rdi],rcx + mov QWORD PTR[24+rdi],rdx + + shr rdx,32 + xor ecx,ecx + jmp $L$14shortcut +ALIGN 4 +$L$14loop:: + mov eax,DWORD PTR[rdi] + mov edx,DWORD PTR[28+rdi] +$L$14shortcut:: + movzx esi,dl + movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] + movzx esi,dh + shl ebx,24 + xor eax,ebx + + movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] + shr edx,16 + movzx esi,dl + xor eax,ebx + + movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] + movzx esi,dh + shl ebx,8 + xor eax,ebx + + movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] + shl ebx,16 + xor eax,ebx + + xor eax,DWORD PTR[((1024-128))+rcx*4+rbp] + mov DWORD PTR[32+rdi],eax + xor eax,DWORD PTR[4+rdi] + mov DWORD PTR[36+rdi],eax + xor eax,DWORD PTR[8+rdi] + mov DWORD PTR[40+rdi],eax + xor eax,DWORD PTR[12+rdi] + mov DWORD PTR[44+rdi],eax + + cmp ecx,6 + je $L$14break + add ecx,1 + + mov edx,eax + mov eax,DWORD PTR[16+rdi] + movzx esi,dl + movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] + movzx esi,dh + xor eax,ebx + + movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] + shr edx,16 + shl ebx,8 + movzx esi,dl + xor eax,ebx + + movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] + movzx esi,dh + shl ebx,16 + xor eax,ebx + + movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] + shl ebx,24 + xor eax,ebx + + mov DWORD PTR[48+rdi],eax + xor eax,DWORD PTR[20+rdi] + mov DWORD PTR[52+rdi],eax + xor eax,DWORD PTR[24+rdi] + mov DWORD PTR[56+rdi],eax + xor eax,DWORD PTR[28+rdi] + mov DWORD PTR[60+rdi],eax + + lea rdi,QWORD PTR[32+rdi] + jmp $L$14loop +$L$14break:: + mov DWORD PTR[48+rdi],14 + xor rax,rax + jmp $L$exit + +$L$badpointer:: + mov rax,-1 +$L$exit:: +DB 0f3h,0c3h + +_x86_64_AES_set_encrypt_key ENDP +PUBLIC AES_set_decrypt_key + +ALIGN 16 +AES_set_decrypt_key PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_AES_set_decrypt_key:: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + push rdx +$L$dec_key_prologue:: + + call _x86_64_AES_set_encrypt_key + mov r8,QWORD PTR[rsp] + cmp eax,0 + jne $L$abort + + mov r14d,DWORD PTR[240+r8] + xor rdi,rdi + lea rcx,QWORD PTR[r14*4+rdi] + mov rsi,r8 + lea rdi,QWORD PTR[rcx*4+r8] +ALIGN 4 +$L$invert:: + mov rax,QWORD PTR[rsi] + mov rbx,QWORD PTR[8+rsi] + mov rcx,QWORD PTR[rdi] + mov rdx,QWORD PTR[8+rdi] + mov QWORD PTR[rdi],rax + mov QWORD PTR[8+rdi],rbx + mov QWORD PTR[rsi],rcx + mov QWORD PTR[8+rsi],rdx + lea rsi,QWORD PTR[16+rsi] + lea rdi,QWORD PTR[((-16))+rdi] + cmp rdi,rsi + jne $L$invert + + lea rax,QWORD PTR[(($L$AES_Te+2048+1024))] + + mov rsi,QWORD PTR[40+rax] + mov rdi,QWORD PTR[48+rax] + mov rbp,QWORD PTR[56+rax] + + mov r15,r8 + sub r14d,1 +ALIGN 4 +$L$permute:: + lea r15,QWORD PTR[16+r15] + mov rax,QWORD PTR[r15] + mov rcx,QWORD PTR[8+r15] + mov rbx,rax + mov rdx,rcx + and rbx,rsi + and rdx,rsi + mov r9,rbx + mov r12,rdx + shr r9,7 + lea r8,QWORD PTR[rax*1+rax] + shr r12,7 + lea r11,QWORD PTR[rcx*1+rcx] + sub rbx,r9 + sub rdx,r12 + and r8,rdi + and r11,rdi + and rbx,rbp + and rdx,rbp + xor rbx,r8 + xor rdx,r11 + mov r8,rbx + mov r11,rdx + + and rbx,rsi + and rdx,rsi + mov r10,rbx + mov r13,rdx + shr r10,7 + lea r9,QWORD PTR[r8*1+r8] + shr r13,7 + lea r12,QWORD PTR[r11*1+r11] + sub rbx,r10 + sub rdx,r13 + and r9,rdi + and r12,rdi + and rbx,rbp + and rdx,rbp + xor rbx,r9 + xor rdx,r12 + mov r9,rbx + mov r12,rdx + + and rbx,rsi + and rdx,rsi + mov r10,rbx + mov r13,rdx + shr r10,7 + xor r8,rax + shr r13,7 + xor r11,rcx + sub rbx,r10 + sub rdx,r13 + lea r10,QWORD PTR[r9*1+r9] + lea r13,QWORD PTR[r12*1+r12] + xor r9,rax + xor r12,rcx + and r10,rdi + and r13,rdi + and rbx,rbp + and rdx,rbp + xor r10,rbx + xor r13,rdx + + xor rax,r10 + xor rcx,r13 + xor r8,r10 + xor r11,r13 + mov rbx,rax + mov rdx,rcx + xor r9,r10 + xor r12,r13 + shr rbx,32 + shr rdx,32 + xor r10,r8 + xor r13,r11 + rol eax,8 + rol ecx,8 + xor r10,r9 + xor r13,r12 + + rol ebx,8 + rol edx,8 + xor eax,r10d + xor ecx,r13d + shr r10,32 + shr r13,32 + xor ebx,r10d + xor edx,r13d + + mov r10,r8 + mov r13,r11 + shr r10,32 + shr r13,32 + rol r8d,24 + rol r11d,24 + rol r10d,24 + rol r13d,24 + xor eax,r8d + xor ecx,r11d + mov r8,r9 + mov r11,r12 + xor ebx,r10d + xor edx,r13d + + + shr r8,32 + shr r11,32 + + rol r9d,16 + rol r12d,16 + + rol r8d,16 + rol r11d,16 + + xor eax,r9d + xor ecx,r12d + + xor ebx,r8d + xor edx,r11d + mov DWORD PTR[r15],eax + mov DWORD PTR[4+r15],ebx + mov DWORD PTR[8+r15],ecx + mov DWORD PTR[12+r15],edx + sub r14d,1 + jnz $L$permute + + xor rax,rax +$L$abort:: + mov r15,QWORD PTR[8+rsp] + mov r14,QWORD PTR[16+rsp] + mov r13,QWORD PTR[24+rsp] + mov r12,QWORD PTR[32+rsp] + mov rbp,QWORD PTR[40+rsp] + mov rbx,QWORD PTR[48+rsp] + add rsp,56 +$L$dec_key_epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_AES_set_decrypt_key:: +AES_set_decrypt_key ENDP +PUBLIC AES_cbc_encrypt + +ALIGN 16 +EXTERN OPENSSL_ia32cap_P:NEAR +AES_cbc_encrypt PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_AES_cbc_encrypt:: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD PTR[40+rsp] + mov r9,QWORD PTR[48+rsp] + + + cmp rdx,0 + je $L$cbc_epilogue + pushfq + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 +$L$cbc_prologue:: + + cld + mov r9d,r9d + + lea r14,QWORD PTR[$L$AES_Te] + cmp r9,0 + jne $L$cbc_picked_te + lea r14,QWORD PTR[$L$AES_Td] +$L$cbc_picked_te:: + + mov r10d,DWORD PTR[OPENSSL_ia32cap_P] + cmp rdx,512 + jb $L$cbc_slow_prologue + test rdx,15 + jnz $L$cbc_slow_prologue + + + + + lea r15,QWORD PTR[((-88-248))+rsp] + and r15,-64 + + + mov r10,r14 + lea r11,QWORD PTR[2304+r14] + mov r12,r15 + and r10,0FFFh + and r11,0FFFh + and r12,0FFFh + + cmp r12,r11 + jb $L$cbc_te_break_out + sub r12,r11 + sub r15,r12 + jmp $L$cbc_te_ok +$L$cbc_te_break_out:: + sub r12,r10 + and r12,0FFFh + add r12,320 + sub r15,r12 +ALIGN 4 +$L$cbc_te_ok:: + + xchg r15,rsp + + mov QWORD PTR[16+rsp],r15 +$L$cbc_fast_body:: + mov QWORD PTR[24+rsp],rdi + mov QWORD PTR[32+rsp],rsi + mov QWORD PTR[40+rsp],rdx + mov QWORD PTR[48+rsp],rcx + mov QWORD PTR[56+rsp],r8 + mov DWORD PTR[((80+240))+rsp],0 + mov rbp,r8 + mov rbx,r9 + mov r9,rsi + mov r8,rdi + mov r15,rcx + + mov eax,DWORD PTR[240+r15] + + mov r10,r15 + sub r10,r14 + and r10,0fffh + cmp r10,2304 + jb $L$cbc_do_ecopy + cmp r10,4096-248 + jb $L$cbc_skip_ecopy +ALIGN 4 +$L$cbc_do_ecopy:: + mov rsi,r15 + lea rdi,QWORD PTR[80+rsp] + lea r15,QWORD PTR[80+rsp] + mov ecx,240/8 + DD 090A548F3h + + mov DWORD PTR[rdi],eax +$L$cbc_skip_ecopy:: + mov QWORD PTR[rsp],r15 + + mov ecx,18 +ALIGN 4 +$L$cbc_prefetch_te:: + mov r10,QWORD PTR[r14] + mov r11,QWORD PTR[32+r14] + mov r12,QWORD PTR[64+r14] + mov r13,QWORD PTR[96+r14] + lea r14,QWORD PTR[128+r14] + sub ecx,1 + jnz $L$cbc_prefetch_te + lea r14,QWORD PTR[((-2304))+r14] + + cmp rbx,0 + je $L$FAST_DECRYPT + + + mov eax,DWORD PTR[rbp] + mov ebx,DWORD PTR[4+rbp] + mov ecx,DWORD PTR[8+rbp] + mov edx,DWORD PTR[12+rbp] + +ALIGN 4 +$L$cbc_fast_enc_loop:: + xor eax,DWORD PTR[r8] + xor ebx,DWORD PTR[4+r8] + xor ecx,DWORD PTR[8+r8] + xor edx,DWORD PTR[12+r8] + mov r15,QWORD PTR[rsp] + mov QWORD PTR[24+rsp],r8 + + call _x86_64_AES_encrypt + + mov r8,QWORD PTR[24+rsp] + mov r10,QWORD PTR[40+rsp] + mov DWORD PTR[r9],eax + mov DWORD PTR[4+r9],ebx + mov DWORD PTR[8+r9],ecx + mov DWORD PTR[12+r9],edx + + lea r8,QWORD PTR[16+r8] + lea r9,QWORD PTR[16+r9] + sub r10,16 + test r10,-16 + mov QWORD PTR[40+rsp],r10 + jnz $L$cbc_fast_enc_loop + mov rbp,QWORD PTR[56+rsp] + mov DWORD PTR[rbp],eax + mov DWORD PTR[4+rbp],ebx + mov DWORD PTR[8+rbp],ecx + mov DWORD PTR[12+rbp],edx + + jmp $L$cbc_fast_cleanup + + +ALIGN 16 +$L$FAST_DECRYPT:: + cmp r9,r8 + je $L$cbc_fast_dec_in_place + + mov QWORD PTR[64+rsp],rbp +ALIGN 4 +$L$cbc_fast_dec_loop:: + mov eax,DWORD PTR[r8] + mov ebx,DWORD PTR[4+r8] + mov ecx,DWORD PTR[8+r8] + mov edx,DWORD PTR[12+r8] + mov r15,QWORD PTR[rsp] + mov QWORD PTR[24+rsp],r8 + + call _x86_64_AES_decrypt + + mov rbp,QWORD PTR[64+rsp] + mov r8,QWORD PTR[24+rsp] + mov r10,QWORD PTR[40+rsp] + xor eax,DWORD PTR[rbp] + xor ebx,DWORD PTR[4+rbp] + xor ecx,DWORD PTR[8+rbp] + xor edx,DWORD PTR[12+rbp] + mov rbp,r8 + + sub r10,16 + mov QWORD PTR[40+rsp],r10 + mov QWORD PTR[64+rsp],rbp + + mov DWORD PTR[r9],eax + mov DWORD PTR[4+r9],ebx + mov DWORD PTR[8+r9],ecx + mov DWORD PTR[12+r9],edx + + lea r8,QWORD PTR[16+r8] + lea r9,QWORD PTR[16+r9] + jnz $L$cbc_fast_dec_loop + mov r12,QWORD PTR[56+rsp] + mov r10,QWORD PTR[rbp] + mov r11,QWORD PTR[8+rbp] + mov QWORD PTR[r12],r10 + mov QWORD PTR[8+r12],r11 + jmp $L$cbc_fast_cleanup + +ALIGN 16 +$L$cbc_fast_dec_in_place:: + mov r10,QWORD PTR[rbp] + mov r11,QWORD PTR[8+rbp] + mov QWORD PTR[((0+64))+rsp],r10 + mov QWORD PTR[((8+64))+rsp],r11 +ALIGN 4 +$L$cbc_fast_dec_in_place_loop:: + mov eax,DWORD PTR[r8] + mov ebx,DWORD PTR[4+r8] + mov ecx,DWORD PTR[8+r8] + mov edx,DWORD PTR[12+r8] + mov r15,QWORD PTR[rsp] + mov QWORD PTR[24+rsp],r8 + + call _x86_64_AES_decrypt + + mov r8,QWORD PTR[24+rsp] + mov r10,QWORD PTR[40+rsp] + xor eax,DWORD PTR[((0+64))+rsp] + xor ebx,DWORD PTR[((4+64))+rsp] + xor ecx,DWORD PTR[((8+64))+rsp] + xor edx,DWORD PTR[((12+64))+rsp] + + mov r11,QWORD PTR[r8] + mov r12,QWORD PTR[8+r8] + sub r10,16 + jz $L$cbc_fast_dec_in_place_done + + mov QWORD PTR[((0+64))+rsp],r11 + mov QWORD PTR[((8+64))+rsp],r12 + + mov DWORD PTR[r9],eax + mov DWORD PTR[4+r9],ebx + mov DWORD PTR[8+r9],ecx + mov DWORD PTR[12+r9],edx + + lea r8,QWORD PTR[16+r8] + lea r9,QWORD PTR[16+r9] + mov QWORD PTR[40+rsp],r10 + jmp $L$cbc_fast_dec_in_place_loop +$L$cbc_fast_dec_in_place_done:: + mov rdi,QWORD PTR[56+rsp] + mov QWORD PTR[rdi],r11 + mov QWORD PTR[8+rdi],r12 + + mov DWORD PTR[r9],eax + mov DWORD PTR[4+r9],ebx + mov DWORD PTR[8+r9],ecx + mov DWORD PTR[12+r9],edx + +ALIGN 4 +$L$cbc_fast_cleanup:: + cmp DWORD PTR[((80+240))+rsp],0 + lea rdi,QWORD PTR[80+rsp] + je $L$cbc_exit + mov ecx,240/8 + xor rax,rax + DD 090AB48F3h + + + jmp $L$cbc_exit + + +ALIGN 16 +$L$cbc_slow_prologue:: + + lea rbp,QWORD PTR[((-88))+rsp] + and rbp,-64 + + lea r10,QWORD PTR[((-88-63))+rcx] + sub r10,rbp + neg r10 + and r10,03c0h + sub rbp,r10 + + xchg rbp,rsp + + mov QWORD PTR[16+rsp],rbp +$L$cbc_slow_body:: + + + + + mov QWORD PTR[56+rsp],r8 + mov rbp,r8 + mov rbx,r9 + mov r9,rsi + mov r8,rdi + mov r15,rcx + mov r10,rdx + + mov eax,DWORD PTR[240+r15] + mov QWORD PTR[rsp],r15 + shl eax,4 + lea rax,QWORD PTR[rax*1+r15] + mov QWORD PTR[8+rsp],rax + + + lea r14,QWORD PTR[2048+r14] + lea rax,QWORD PTR[((768-8))+rsp] + sub rax,r14 + and rax,0300h + lea r14,QWORD PTR[rax*1+r14] + + cmp rbx,0 + je $L$SLOW_DECRYPT + + + test r10,-16 + mov eax,DWORD PTR[rbp] + mov ebx,DWORD PTR[4+rbp] + mov ecx,DWORD PTR[8+rbp] + mov edx,DWORD PTR[12+rbp] + jz $L$cbc_slow_enc_tail + + +ALIGN 4 +$L$cbc_slow_enc_loop:: + xor eax,DWORD PTR[r8] + xor ebx,DWORD PTR[4+r8] + xor ecx,DWORD PTR[8+r8] + xor edx,DWORD PTR[12+r8] + mov r15,QWORD PTR[rsp] + mov QWORD PTR[24+rsp],r8 + mov QWORD PTR[32+rsp],r9 + mov QWORD PTR[40+rsp],r10 + + call _x86_64_AES_encrypt_compact + + mov r8,QWORD PTR[24+rsp] + mov r9,QWORD PTR[32+rsp] + mov r10,QWORD PTR[40+rsp] + mov DWORD PTR[r9],eax + mov DWORD PTR[4+r9],ebx + mov DWORD PTR[8+r9],ecx + mov DWORD PTR[12+r9],edx + + lea r8,QWORD PTR[16+r8] + lea r9,QWORD PTR[16+r9] + sub r10,16 + test r10,-16 + jnz $L$cbc_slow_enc_loop + test r10,15 + jnz $L$cbc_slow_enc_tail + mov rbp,QWORD PTR[56+rsp] + mov DWORD PTR[rbp],eax + mov DWORD PTR[4+rbp],ebx + mov DWORD PTR[8+rbp],ecx + mov DWORD PTR[12+rbp],edx + + jmp $L$cbc_exit + +ALIGN 4 +$L$cbc_slow_enc_tail:: + mov r11,rax + mov r12,rcx + mov rcx,r10 + mov rsi,r8 + mov rdi,r9 + DD 09066A4F3h + + mov rcx,16 + sub rcx,r10 + xor rax,rax + DD 09066AAF3h + + mov r8,r9 + mov r10,16 + mov rax,r11 + mov rcx,r12 + jmp $L$cbc_slow_enc_loop + + +ALIGN 16 +$L$SLOW_DECRYPT:: + shr rax,3 + add r14,rax + + mov r11,QWORD PTR[rbp] + mov r12,QWORD PTR[8+rbp] + mov QWORD PTR[((0+64))+rsp],r11 + mov QWORD PTR[((8+64))+rsp],r12 + +ALIGN 4 +$L$cbc_slow_dec_loop:: + mov eax,DWORD PTR[r8] + mov ebx,DWORD PTR[4+r8] + mov ecx,DWORD PTR[8+r8] + mov edx,DWORD PTR[12+r8] + mov r15,QWORD PTR[rsp] + mov QWORD PTR[24+rsp],r8 + mov QWORD PTR[32+rsp],r9 + mov QWORD PTR[40+rsp],r10 + + call _x86_64_AES_decrypt_compact + + mov r8,QWORD PTR[24+rsp] + mov r9,QWORD PTR[32+rsp] + mov r10,QWORD PTR[40+rsp] + xor eax,DWORD PTR[((0+64))+rsp] + xor ebx,DWORD PTR[((4+64))+rsp] + xor ecx,DWORD PTR[((8+64))+rsp] + xor edx,DWORD PTR[((12+64))+rsp] + + mov r11,QWORD PTR[r8] + mov r12,QWORD PTR[8+r8] + sub r10,16 + jc $L$cbc_slow_dec_partial + jz $L$cbc_slow_dec_done + + mov QWORD PTR[((0+64))+rsp],r11 + mov QWORD PTR[((8+64))+rsp],r12 + + mov DWORD PTR[r9],eax + mov DWORD PTR[4+r9],ebx + mov DWORD PTR[8+r9],ecx + mov DWORD PTR[12+r9],edx + + lea r8,QWORD PTR[16+r8] + lea r9,QWORD PTR[16+r9] + jmp $L$cbc_slow_dec_loop +$L$cbc_slow_dec_done:: + mov rdi,QWORD PTR[56+rsp] + mov QWORD PTR[rdi],r11 + mov QWORD PTR[8+rdi],r12 + + mov DWORD PTR[r9],eax + mov DWORD PTR[4+r9],ebx + mov DWORD PTR[8+r9],ecx + mov DWORD PTR[12+r9],edx + + jmp $L$cbc_exit + +ALIGN 4 +$L$cbc_slow_dec_partial:: + mov rdi,QWORD PTR[56+rsp] + mov QWORD PTR[rdi],r11 + mov QWORD PTR[8+rdi],r12 + + mov DWORD PTR[((0+64))+rsp],eax + mov DWORD PTR[((4+64))+rsp],ebx + mov DWORD PTR[((8+64))+rsp],ecx + mov DWORD PTR[((12+64))+rsp],edx + + mov rdi,r9 + lea rsi,QWORD PTR[64+rsp] + lea rcx,QWORD PTR[16+r10] + DD 09066A4F3h + + jmp $L$cbc_exit + +ALIGN 16 +$L$cbc_exit:: + mov rsi,QWORD PTR[16+rsp] + mov r15,QWORD PTR[rsi] + mov r14,QWORD PTR[8+rsi] + mov r13,QWORD PTR[16+rsi] + mov r12,QWORD PTR[24+rsi] + mov rbp,QWORD PTR[32+rsi] + mov rbx,QWORD PTR[40+rsi] + lea rsp,QWORD PTR[48+rsi] +$L$cbc_popfq:: + popfq +$L$cbc_epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_AES_cbc_encrypt:: +AES_cbc_encrypt ENDP +ALIGN 64 +$L$AES_Te:: + DD 0a56363c6h,0a56363c6h + DD 0847c7cf8h,0847c7cf8h + DD 0997777eeh,0997777eeh + DD 08d7b7bf6h,08d7b7bf6h + DD 00df2f2ffh,00df2f2ffh + DD 0bd6b6bd6h,0bd6b6bd6h + DD 0b16f6fdeh,0b16f6fdeh + DD 054c5c591h,054c5c591h + DD 050303060h,050303060h + DD 003010102h,003010102h + DD 0a96767ceh,0a96767ceh + DD 07d2b2b56h,07d2b2b56h + DD 019fefee7h,019fefee7h + DD 062d7d7b5h,062d7d7b5h + DD 0e6abab4dh,0e6abab4dh + DD 09a7676ech,09a7676ech + DD 045caca8fh,045caca8fh + DD 09d82821fh,09d82821fh + DD 040c9c989h,040c9c989h + DD 0877d7dfah,0877d7dfah + DD 015fafaefh,015fafaefh + DD 0eb5959b2h,0eb5959b2h + DD 0c947478eh,0c947478eh + DD 00bf0f0fbh,00bf0f0fbh + DD 0ecadad41h,0ecadad41h + DD 067d4d4b3h,067d4d4b3h + DD 0fda2a25fh,0fda2a25fh + DD 0eaafaf45h,0eaafaf45h + DD 0bf9c9c23h,0bf9c9c23h + DD 0f7a4a453h,0f7a4a453h + DD 0967272e4h,0967272e4h + DD 05bc0c09bh,05bc0c09bh + DD 0c2b7b775h,0c2b7b775h + DD 01cfdfde1h,01cfdfde1h + DD 0ae93933dh,0ae93933dh + DD 06a26264ch,06a26264ch + DD 05a36366ch,05a36366ch + DD 0413f3f7eh,0413f3f7eh + DD 002f7f7f5h,002f7f7f5h + DD 04fcccc83h,04fcccc83h + DD 05c343468h,05c343468h + DD 0f4a5a551h,0f4a5a551h + DD 034e5e5d1h,034e5e5d1h + DD 008f1f1f9h,008f1f1f9h + DD 0937171e2h,0937171e2h + DD 073d8d8abh,073d8d8abh + DD 053313162h,053313162h + DD 03f15152ah,03f15152ah + DD 00c040408h,00c040408h + DD 052c7c795h,052c7c795h + DD 065232346h,065232346h + DD 05ec3c39dh,05ec3c39dh + DD 028181830h,028181830h + DD 0a1969637h,0a1969637h + DD 00f05050ah,00f05050ah + DD 0b59a9a2fh,0b59a9a2fh + DD 00907070eh,00907070eh + DD 036121224h,036121224h + DD 09b80801bh,09b80801bh + DD 03de2e2dfh,03de2e2dfh + DD 026ebebcdh,026ebebcdh + DD 06927274eh,06927274eh + DD 0cdb2b27fh,0cdb2b27fh + DD 09f7575eah,09f7575eah + DD 01b090912h,01b090912h + DD 09e83831dh,09e83831dh + DD 0742c2c58h,0742c2c58h + DD 02e1a1a34h,02e1a1a34h + DD 02d1b1b36h,02d1b1b36h + DD 0b26e6edch,0b26e6edch + DD 0ee5a5ab4h,0ee5a5ab4h + DD 0fba0a05bh,0fba0a05bh + DD 0f65252a4h,0f65252a4h + DD 04d3b3b76h,04d3b3b76h + DD 061d6d6b7h,061d6d6b7h + DD 0ceb3b37dh,0ceb3b37dh + DD 07b292952h,07b292952h + DD 03ee3e3ddh,03ee3e3ddh + DD 0712f2f5eh,0712f2f5eh + DD 097848413h,097848413h + DD 0f55353a6h,0f55353a6h + DD 068d1d1b9h,068d1d1b9h + DD 000000000h,000000000h + DD 02cededc1h,02cededc1h + DD 060202040h,060202040h + DD 01ffcfce3h,01ffcfce3h + DD 0c8b1b179h,0c8b1b179h + DD 0ed5b5bb6h,0ed5b5bb6h + DD 0be6a6ad4h,0be6a6ad4h + DD 046cbcb8dh,046cbcb8dh + DD 0d9bebe67h,0d9bebe67h + DD 04b393972h,04b393972h + DD 0de4a4a94h,0de4a4a94h + DD 0d44c4c98h,0d44c4c98h + DD 0e85858b0h,0e85858b0h + DD 04acfcf85h,04acfcf85h + DD 06bd0d0bbh,06bd0d0bbh + DD 02aefefc5h,02aefefc5h + DD 0e5aaaa4fh,0e5aaaa4fh + DD 016fbfbedh,016fbfbedh + DD 0c5434386h,0c5434386h + DD 0d74d4d9ah,0d74d4d9ah + DD 055333366h,055333366h + DD 094858511h,094858511h + DD 0cf45458ah,0cf45458ah + DD 010f9f9e9h,010f9f9e9h + DD 006020204h,006020204h + DD 0817f7ffeh,0817f7ffeh + DD 0f05050a0h,0f05050a0h + DD 0443c3c78h,0443c3c78h + DD 0ba9f9f25h,0ba9f9f25h + DD 0e3a8a84bh,0e3a8a84bh + DD 0f35151a2h,0f35151a2h + DD 0fea3a35dh,0fea3a35dh + DD 0c0404080h,0c0404080h + DD 08a8f8f05h,08a8f8f05h + DD 0ad92923fh,0ad92923fh + DD 0bc9d9d21h,0bc9d9d21h + DD 048383870h,048383870h + DD 004f5f5f1h,004f5f5f1h + DD 0dfbcbc63h,0dfbcbc63h + DD 0c1b6b677h,0c1b6b677h + DD 075dadaafh,075dadaafh + DD 063212142h,063212142h + DD 030101020h,030101020h + DD 01affffe5h,01affffe5h + DD 00ef3f3fdh,00ef3f3fdh + DD 06dd2d2bfh,06dd2d2bfh + DD 04ccdcd81h,04ccdcd81h + DD 0140c0c18h,0140c0c18h + DD 035131326h,035131326h + DD 02fececc3h,02fececc3h + DD 0e15f5fbeh,0e15f5fbeh + DD 0a2979735h,0a2979735h + DD 0cc444488h,0cc444488h + DD 03917172eh,03917172eh + DD 057c4c493h,057c4c493h + DD 0f2a7a755h,0f2a7a755h + DD 0827e7efch,0827e7efch + DD 0473d3d7ah,0473d3d7ah + DD 0ac6464c8h,0ac6464c8h + DD 0e75d5dbah,0e75d5dbah + DD 02b191932h,02b191932h + DD 0957373e6h,0957373e6h + DD 0a06060c0h,0a06060c0h + DD 098818119h,098818119h + DD 0d14f4f9eh,0d14f4f9eh + DD 07fdcdca3h,07fdcdca3h + DD 066222244h,066222244h + DD 07e2a2a54h,07e2a2a54h + DD 0ab90903bh,0ab90903bh + DD 08388880bh,08388880bh + DD 0ca46468ch,0ca46468ch + DD 029eeeec7h,029eeeec7h + DD 0d3b8b86bh,0d3b8b86bh + DD 03c141428h,03c141428h + DD 079dedea7h,079dedea7h + DD 0e25e5ebch,0e25e5ebch + DD 01d0b0b16h,01d0b0b16h + DD 076dbdbadh,076dbdbadh + DD 03be0e0dbh,03be0e0dbh + DD 056323264h,056323264h + DD 04e3a3a74h,04e3a3a74h + DD 01e0a0a14h,01e0a0a14h + DD 0db494992h,0db494992h + DD 00a06060ch,00a06060ch + DD 06c242448h,06c242448h + DD 0e45c5cb8h,0e45c5cb8h + DD 05dc2c29fh,05dc2c29fh + DD 06ed3d3bdh,06ed3d3bdh + DD 0efacac43h,0efacac43h + DD 0a66262c4h,0a66262c4h + DD 0a8919139h,0a8919139h + DD 0a4959531h,0a4959531h + DD 037e4e4d3h,037e4e4d3h + DD 08b7979f2h,08b7979f2h + DD 032e7e7d5h,032e7e7d5h + DD 043c8c88bh,043c8c88bh + DD 05937376eh,05937376eh + DD 0b76d6ddah,0b76d6ddah + DD 08c8d8d01h,08c8d8d01h + DD 064d5d5b1h,064d5d5b1h + DD 0d24e4e9ch,0d24e4e9ch + DD 0e0a9a949h,0e0a9a949h + DD 0b46c6cd8h,0b46c6cd8h + DD 0fa5656ach,0fa5656ach + DD 007f4f4f3h,007f4f4f3h + DD 025eaeacfh,025eaeacfh + DD 0af6565cah,0af6565cah + DD 08e7a7af4h,08e7a7af4h + DD 0e9aeae47h,0e9aeae47h + DD 018080810h,018080810h + DD 0d5baba6fh,0d5baba6fh + DD 0887878f0h,0887878f0h + DD 06f25254ah,06f25254ah + DD 0722e2e5ch,0722e2e5ch + DD 0241c1c38h,0241c1c38h + DD 0f1a6a657h,0f1a6a657h + DD 0c7b4b473h,0c7b4b473h + DD 051c6c697h,051c6c697h + DD 023e8e8cbh,023e8e8cbh + DD 07cdddda1h,07cdddda1h + DD 09c7474e8h,09c7474e8h + DD 0211f1f3eh,0211f1f3eh + DD 0dd4b4b96h,0dd4b4b96h + DD 0dcbdbd61h,0dcbdbd61h + DD 0868b8b0dh,0868b8b0dh + DD 0858a8a0fh,0858a8a0fh + DD 0907070e0h,0907070e0h + DD 0423e3e7ch,0423e3e7ch + DD 0c4b5b571h,0c4b5b571h + DD 0aa6666cch,0aa6666cch + DD 0d8484890h,0d8484890h + DD 005030306h,005030306h + DD 001f6f6f7h,001f6f6f7h + DD 0120e0e1ch,0120e0e1ch + DD 0a36161c2h,0a36161c2h + DD 05f35356ah,05f35356ah + DD 0f95757aeh,0f95757aeh + DD 0d0b9b969h,0d0b9b969h + DD 091868617h,091868617h + DD 058c1c199h,058c1c199h + DD 0271d1d3ah,0271d1d3ah + DD 0b99e9e27h,0b99e9e27h + DD 038e1e1d9h,038e1e1d9h + DD 013f8f8ebh,013f8f8ebh + DD 0b398982bh,0b398982bh + DD 033111122h,033111122h + DD 0bb6969d2h,0bb6969d2h + DD 070d9d9a9h,070d9d9a9h + DD 0898e8e07h,0898e8e07h + DD 0a7949433h,0a7949433h + DD 0b69b9b2dh,0b69b9b2dh + DD 0221e1e3ch,0221e1e3ch + DD 092878715h,092878715h + DD 020e9e9c9h,020e9e9c9h + DD 049cece87h,049cece87h + DD 0ff5555aah,0ff5555aah + DD 078282850h,078282850h + DD 07adfdfa5h,07adfdfa5h + DD 08f8c8c03h,08f8c8c03h + DD 0f8a1a159h,0f8a1a159h + DD 080898909h,080898909h + DD 0170d0d1ah,0170d0d1ah + DD 0dabfbf65h,0dabfbf65h + DD 031e6e6d7h,031e6e6d7h + DD 0c6424284h,0c6424284h + DD 0b86868d0h,0b86868d0h + DD 0c3414182h,0c3414182h + DD 0b0999929h,0b0999929h + DD 0772d2d5ah,0772d2d5ah + DD 0110f0f1eh,0110f0f1eh + DD 0cbb0b07bh,0cbb0b07bh + DD 0fc5454a8h,0fc5454a8h + DD 0d6bbbb6dh,0d6bbbb6dh + DD 03a16162ch,03a16162ch +DB 063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h +DB 030h,001h,067h,02bh,0feh,0d7h,0abh,076h +DB 0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h +DB 0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h +DB 0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch +DB 034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h +DB 004h,0c7h,023h,0c3h,018h,096h,005h,09ah +DB 007h,012h,080h,0e2h,0ebh,027h,0b2h,075h +DB 009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h +DB 052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h +DB 053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh +DB 06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh +DB 0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h +DB 045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h +DB 051h,0a3h,040h,08fh,092h,09dh,038h,0f5h +DB 0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h +DB 0cdh,00ch,013h,0ech,05fh,097h,044h,017h +DB 0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h +DB 060h,081h,04fh,0dch,022h,02ah,090h,088h +DB 046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh +DB 0e0h,032h,03ah,00ah,049h,006h,024h,05ch +DB 0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h +DB 0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h +DB 06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h +DB 0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h +DB 0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah +DB 070h,03eh,0b5h,066h,048h,003h,0f6h,00eh +DB 061h,035h,057h,0b9h,086h,0c1h,01dh,09eh +DB 0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h +DB 09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh +DB 08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h +DB 041h,099h,02dh,00fh,0b0h,054h,0bbh,016h +DB 063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h +DB 030h,001h,067h,02bh,0feh,0d7h,0abh,076h +DB 0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h +DB 0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h +DB 0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch +DB 034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h +DB 004h,0c7h,023h,0c3h,018h,096h,005h,09ah +DB 007h,012h,080h,0e2h,0ebh,027h,0b2h,075h +DB 009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h +DB 052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h +DB 053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh +DB 06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh +DB 0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h +DB 045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h +DB 051h,0a3h,040h,08fh,092h,09dh,038h,0f5h +DB 0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h +DB 0cdh,00ch,013h,0ech,05fh,097h,044h,017h +DB 0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h +DB 060h,081h,04fh,0dch,022h,02ah,090h,088h +DB 046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh +DB 0e0h,032h,03ah,00ah,049h,006h,024h,05ch +DB 0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h +DB 0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h +DB 06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h +DB 0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h +DB 0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah +DB 070h,03eh,0b5h,066h,048h,003h,0f6h,00eh +DB 061h,035h,057h,0b9h,086h,0c1h,01dh,09eh +DB 0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h +DB 09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh +DB 08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h +DB 041h,099h,02dh,00fh,0b0h,054h,0bbh,016h +DB 063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h +DB 030h,001h,067h,02bh,0feh,0d7h,0abh,076h +DB 0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h +DB 0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h +DB 0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch +DB 034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h +DB 004h,0c7h,023h,0c3h,018h,096h,005h,09ah +DB 007h,012h,080h,0e2h,0ebh,027h,0b2h,075h +DB 009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h +DB 052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h +DB 053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh +DB 06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh +DB 0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h +DB 045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h +DB 051h,0a3h,040h,08fh,092h,09dh,038h,0f5h +DB 0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h +DB 0cdh,00ch,013h,0ech,05fh,097h,044h,017h +DB 0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h +DB 060h,081h,04fh,0dch,022h,02ah,090h,088h +DB 046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh +DB 0e0h,032h,03ah,00ah,049h,006h,024h,05ch +DB 0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h +DB 0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h +DB 06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h +DB 0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h +DB 0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah +DB 070h,03eh,0b5h,066h,048h,003h,0f6h,00eh +DB 061h,035h,057h,0b9h,086h,0c1h,01dh,09eh +DB 0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h +DB 09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh +DB 08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h +DB 041h,099h,02dh,00fh,0b0h,054h,0bbh,016h +DB 063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h +DB 030h,001h,067h,02bh,0feh,0d7h,0abh,076h +DB 0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h +DB 0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h +DB 0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch +DB 034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h +DB 004h,0c7h,023h,0c3h,018h,096h,005h,09ah +DB 007h,012h,080h,0e2h,0ebh,027h,0b2h,075h +DB 009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h +DB 052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h +DB 053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh +DB 06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh +DB 0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h +DB 045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h +DB 051h,0a3h,040h,08fh,092h,09dh,038h,0f5h +DB 0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h +DB 0cdh,00ch,013h,0ech,05fh,097h,044h,017h +DB 0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h +DB 060h,081h,04fh,0dch,022h,02ah,090h,088h +DB 046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh +DB 0e0h,032h,03ah,00ah,049h,006h,024h,05ch +DB 0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h +DB 0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h +DB 06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h +DB 0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h +DB 0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah +DB 070h,03eh,0b5h,066h,048h,003h,0f6h,00eh +DB 061h,035h,057h,0b9h,086h,0c1h,01dh,09eh +DB 0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h +DB 09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh +DB 08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h +DB 041h,099h,02dh,00fh,0b0h,054h,0bbh,016h + DD 000000001h,000000002h,000000004h,000000008h + DD 000000010h,000000020h,000000040h,000000080h + DD 00000001bh,000000036h,080808080h,080808080h + DD 0fefefefeh,0fefefefeh,01b1b1b1bh,01b1b1b1bh +ALIGN 64 +$L$AES_Td:: + DD 050a7f451h,050a7f451h + DD 05365417eh,05365417eh + DD 0c3a4171ah,0c3a4171ah + DD 0965e273ah,0965e273ah + DD 0cb6bab3bh,0cb6bab3bh + DD 0f1459d1fh,0f1459d1fh + DD 0ab58faach,0ab58faach + DD 09303e34bh,09303e34bh + DD 055fa3020h,055fa3020h + DD 0f66d76adh,0f66d76adh + DD 09176cc88h,09176cc88h + DD 0254c02f5h,0254c02f5h + DD 0fcd7e54fh,0fcd7e54fh + DD 0d7cb2ac5h,0d7cb2ac5h + DD 080443526h,080443526h + DD 08fa362b5h,08fa362b5h + DD 0495ab1deh,0495ab1deh + DD 0671bba25h,0671bba25h + DD 0980eea45h,0980eea45h + DD 0e1c0fe5dh,0e1c0fe5dh + DD 002752fc3h,002752fc3h + DD 012f04c81h,012f04c81h + DD 0a397468dh,0a397468dh + DD 0c6f9d36bh,0c6f9d36bh + DD 0e75f8f03h,0e75f8f03h + DD 0959c9215h,0959c9215h + DD 0eb7a6dbfh,0eb7a6dbfh + DD 0da595295h,0da595295h + DD 02d83bed4h,02d83bed4h + DD 0d3217458h,0d3217458h + DD 02969e049h,02969e049h + DD 044c8c98eh,044c8c98eh + DD 06a89c275h,06a89c275h + DD 078798ef4h,078798ef4h + DD 06b3e5899h,06b3e5899h + DD 0dd71b927h,0dd71b927h + DD 0b64fe1beh,0b64fe1beh + DD 017ad88f0h,017ad88f0h + DD 066ac20c9h,066ac20c9h + DD 0b43ace7dh,0b43ace7dh + DD 0184adf63h,0184adf63h + DD 082311ae5h,082311ae5h + DD 060335197h,060335197h + DD 0457f5362h,0457f5362h + DD 0e07764b1h,0e07764b1h + DD 084ae6bbbh,084ae6bbbh + DD 01ca081feh,01ca081feh + DD 0942b08f9h,0942b08f9h + DD 058684870h,058684870h + DD 019fd458fh,019fd458fh + DD 0876cde94h,0876cde94h + DD 0b7f87b52h,0b7f87b52h + DD 023d373abh,023d373abh + DD 0e2024b72h,0e2024b72h + DD 0578f1fe3h,0578f1fe3h + DD 02aab5566h,02aab5566h + DD 00728ebb2h,00728ebb2h + DD 003c2b52fh,003c2b52fh + DD 09a7bc586h,09a7bc586h + DD 0a50837d3h,0a50837d3h + DD 0f2872830h,0f2872830h + DD 0b2a5bf23h,0b2a5bf23h + DD 0ba6a0302h,0ba6a0302h + DD 05c8216edh,05c8216edh + DD 02b1ccf8ah,02b1ccf8ah + DD 092b479a7h,092b479a7h + DD 0f0f207f3h,0f0f207f3h + DD 0a1e2694eh,0a1e2694eh + DD 0cdf4da65h,0cdf4da65h + DD 0d5be0506h,0d5be0506h + DD 01f6234d1h,01f6234d1h + DD 08afea6c4h,08afea6c4h + DD 09d532e34h,09d532e34h + DD 0a055f3a2h,0a055f3a2h + DD 032e18a05h,032e18a05h + DD 075ebf6a4h,075ebf6a4h + DD 039ec830bh,039ec830bh + DD 0aaef6040h,0aaef6040h + DD 0069f715eh,0069f715eh + DD 051106ebdh,051106ebdh + DD 0f98a213eh,0f98a213eh + DD 03d06dd96h,03d06dd96h + DD 0ae053eddh,0ae053eddh + DD 046bde64dh,046bde64dh + DD 0b58d5491h,0b58d5491h + DD 0055dc471h,0055dc471h + DD 06fd40604h,06fd40604h + DD 0ff155060h,0ff155060h + DD 024fb9819h,024fb9819h + DD 097e9bdd6h,097e9bdd6h + DD 0cc434089h,0cc434089h + DD 0779ed967h,0779ed967h + DD 0bd42e8b0h,0bd42e8b0h + DD 0888b8907h,0888b8907h + DD 0385b19e7h,0385b19e7h + DD 0dbeec879h,0dbeec879h + DD 0470a7ca1h,0470a7ca1h + DD 0e90f427ch,0e90f427ch + DD 0c91e84f8h,0c91e84f8h + DD 000000000h,000000000h + DD 083868009h,083868009h + DD 048ed2b32h,048ed2b32h + DD 0ac70111eh,0ac70111eh + DD 04e725a6ch,04e725a6ch + DD 0fbff0efdh,0fbff0efdh + DD 05638850fh,05638850fh + DD 01ed5ae3dh,01ed5ae3dh + DD 027392d36h,027392d36h + DD 064d90f0ah,064d90f0ah + DD 021a65c68h,021a65c68h + DD 0d1545b9bh,0d1545b9bh + DD 03a2e3624h,03a2e3624h + DD 0b1670a0ch,0b1670a0ch + DD 00fe75793h,00fe75793h + DD 0d296eeb4h,0d296eeb4h + DD 09e919b1bh,09e919b1bh + DD 04fc5c080h,04fc5c080h + DD 0a220dc61h,0a220dc61h + DD 0694b775ah,0694b775ah + DD 0161a121ch,0161a121ch + DD 00aba93e2h,00aba93e2h + DD 0e52aa0c0h,0e52aa0c0h + DD 043e0223ch,043e0223ch + DD 01d171b12h,01d171b12h + DD 00b0d090eh,00b0d090eh + DD 0adc78bf2h,0adc78bf2h + DD 0b9a8b62dh,0b9a8b62dh + DD 0c8a91e14h,0c8a91e14h + DD 08519f157h,08519f157h + DD 04c0775afh,04c0775afh + DD 0bbdd99eeh,0bbdd99eeh + DD 0fd607fa3h,0fd607fa3h + DD 09f2601f7h,09f2601f7h + DD 0bcf5725ch,0bcf5725ch + DD 0c53b6644h,0c53b6644h + DD 0347efb5bh,0347efb5bh + DD 07629438bh,07629438bh + DD 0dcc623cbh,0dcc623cbh + DD 068fcedb6h,068fcedb6h + DD 063f1e4b8h,063f1e4b8h + DD 0cadc31d7h,0cadc31d7h + DD 010856342h,010856342h + DD 040229713h,040229713h + DD 02011c684h,02011c684h + DD 07d244a85h,07d244a85h + DD 0f83dbbd2h,0f83dbbd2h + DD 01132f9aeh,01132f9aeh + DD 06da129c7h,06da129c7h + DD 04b2f9e1dh,04b2f9e1dh + DD 0f330b2dch,0f330b2dch + DD 0ec52860dh,0ec52860dh + DD 0d0e3c177h,0d0e3c177h + DD 06c16b32bh,06c16b32bh + DD 099b970a9h,099b970a9h + DD 0fa489411h,0fa489411h + DD 02264e947h,02264e947h + DD 0c48cfca8h,0c48cfca8h + DD 01a3ff0a0h,01a3ff0a0h + DD 0d82c7d56h,0d82c7d56h + DD 0ef903322h,0ef903322h + DD 0c74e4987h,0c74e4987h + DD 0c1d138d9h,0c1d138d9h + DD 0fea2ca8ch,0fea2ca8ch + DD 0360bd498h,0360bd498h + DD 0cf81f5a6h,0cf81f5a6h + DD 028de7aa5h,028de7aa5h + DD 0268eb7dah,0268eb7dah + DD 0a4bfad3fh,0a4bfad3fh + DD 0e49d3a2ch,0e49d3a2ch + DD 00d927850h,00d927850h + DD 09bcc5f6ah,09bcc5f6ah + DD 062467e54h,062467e54h + DD 0c2138df6h,0c2138df6h + DD 0e8b8d890h,0e8b8d890h + DD 05ef7392eh,05ef7392eh + DD 0f5afc382h,0f5afc382h + DD 0be805d9fh,0be805d9fh + DD 07c93d069h,07c93d069h + DD 0a92dd56fh,0a92dd56fh + DD 0b31225cfh,0b31225cfh + DD 03b99acc8h,03b99acc8h + DD 0a77d1810h,0a77d1810h + DD 06e639ce8h,06e639ce8h + DD 07bbb3bdbh,07bbb3bdbh + DD 0097826cdh,0097826cdh + DD 0f418596eh,0f418596eh + DD 001b79aech,001b79aech + DD 0a89a4f83h,0a89a4f83h + DD 0656e95e6h,0656e95e6h + DD 07ee6ffaah,07ee6ffaah + DD 008cfbc21h,008cfbc21h + DD 0e6e815efh,0e6e815efh + DD 0d99be7bah,0d99be7bah + DD 0ce366f4ah,0ce366f4ah + DD 0d4099feah,0d4099feah + DD 0d67cb029h,0d67cb029h + DD 0afb2a431h,0afb2a431h + DD 031233f2ah,031233f2ah + DD 03094a5c6h,03094a5c6h + DD 0c066a235h,0c066a235h + DD 037bc4e74h,037bc4e74h + DD 0a6ca82fch,0a6ca82fch + DD 0b0d090e0h,0b0d090e0h + DD 015d8a733h,015d8a733h + DD 04a9804f1h,04a9804f1h + DD 0f7daec41h,0f7daec41h + DD 00e50cd7fh,00e50cd7fh + DD 02ff69117h,02ff69117h + DD 08dd64d76h,08dd64d76h + DD 04db0ef43h,04db0ef43h + DD 0544daacch,0544daacch + DD 0df0496e4h,0df0496e4h + DD 0e3b5d19eh,0e3b5d19eh + DD 01b886a4ch,01b886a4ch + DD 0b81f2cc1h,0b81f2cc1h + DD 07f516546h,07f516546h + DD 004ea5e9dh,004ea5e9dh + DD 05d358c01h,05d358c01h + DD 0737487fah,0737487fah + DD 02e410bfbh,02e410bfbh + DD 05a1d67b3h,05a1d67b3h + DD 052d2db92h,052d2db92h + DD 0335610e9h,0335610e9h + DD 01347d66dh,01347d66dh + DD 08c61d79ah,08c61d79ah + DD 07a0ca137h,07a0ca137h + DD 08e14f859h,08e14f859h + DD 0893c13ebh,0893c13ebh + DD 0ee27a9ceh,0ee27a9ceh + DD 035c961b7h,035c961b7h + DD 0ede51ce1h,0ede51ce1h + DD 03cb1477ah,03cb1477ah + DD 059dfd29ch,059dfd29ch + DD 03f73f255h,03f73f255h + DD 079ce1418h,079ce1418h + DD 0bf37c773h,0bf37c773h + DD 0eacdf753h,0eacdf753h + DD 05baafd5fh,05baafd5fh + DD 0146f3ddfh,0146f3ddfh + DD 086db4478h,086db4478h + DD 081f3afcah,081f3afcah + DD 03ec468b9h,03ec468b9h + DD 02c342438h,02c342438h + DD 05f40a3c2h,05f40a3c2h + DD 072c31d16h,072c31d16h + DD 00c25e2bch,00c25e2bch + DD 08b493c28h,08b493c28h + DD 041950dffh,041950dffh + DD 07101a839h,07101a839h + DD 0deb30c08h,0deb30c08h + DD 09ce4b4d8h,09ce4b4d8h + DD 090c15664h,090c15664h + DD 06184cb7bh,06184cb7bh + DD 070b632d5h,070b632d5h + DD 0745c6c48h,0745c6c48h + DD 04257b8d0h,04257b8d0h +DB 052h,009h,06ah,0d5h,030h,036h,0a5h,038h +DB 0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh +DB 07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h +DB 034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh +DB 054h,07bh,094h,032h,0a6h,0c2h,023h,03dh +DB 0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh +DB 008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h +DB 076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h +DB 072h,0f8h,0f6h,064h,086h,068h,098h,016h +DB 0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h +DB 06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah +DB 05eh,015h,046h,057h,0a7h,08dh,09dh,084h +DB 090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah +DB 0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h +DB 0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h +DB 0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh +DB 03ah,091h,011h,041h,04fh,067h,0dch,0eah +DB 097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h +DB 096h,0ach,074h,022h,0e7h,0adh,035h,085h +DB 0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh +DB 047h,0f1h,01ah,071h,01dh,029h,0c5h,089h +DB 06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh +DB 0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h +DB 09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h +DB 01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h +DB 0b1h,012h,010h,059h,027h,080h,0ech,05fh +DB 060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh +DB 02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh +DB 0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h +DB 0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h +DB 017h,02bh,004h,07eh,0bah,077h,0d6h,026h +DB 0e1h,069h,014h,063h,055h,021h,00ch,07dh + DD 080808080h,080808080h,0fefefefeh,0fefefefeh + DD 01b1b1b1bh,01b1b1b1bh,0,0 +DB 052h,009h,06ah,0d5h,030h,036h,0a5h,038h +DB 0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh +DB 07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h +DB 034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh +DB 054h,07bh,094h,032h,0a6h,0c2h,023h,03dh +DB 0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh +DB 008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h +DB 076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h +DB 072h,0f8h,0f6h,064h,086h,068h,098h,016h +DB 0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h +DB 06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah +DB 05eh,015h,046h,057h,0a7h,08dh,09dh,084h +DB 090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah +DB 0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h +DB 0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h +DB 0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh +DB 03ah,091h,011h,041h,04fh,067h,0dch,0eah +DB 097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h +DB 096h,0ach,074h,022h,0e7h,0adh,035h,085h +DB 0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh +DB 047h,0f1h,01ah,071h,01dh,029h,0c5h,089h +DB 06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh +DB 0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h +DB 09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h +DB 01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h +DB 0b1h,012h,010h,059h,027h,080h,0ech,05fh +DB 060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh +DB 02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh +DB 0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h +DB 0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h +DB 017h,02bh,004h,07eh,0bah,077h,0d6h,026h +DB 0e1h,069h,014h,063h,055h,021h,00ch,07dh + DD 080808080h,080808080h,0fefefefeh,0fefefefeh + DD 01b1b1b1bh,01b1b1b1bh,0,0 +DB 052h,009h,06ah,0d5h,030h,036h,0a5h,038h +DB 0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh +DB 07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h +DB 034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh +DB 054h,07bh,094h,032h,0a6h,0c2h,023h,03dh +DB 0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh +DB 008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h +DB 076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h +DB 072h,0f8h,0f6h,064h,086h,068h,098h,016h +DB 0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h +DB 06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah +DB 05eh,015h,046h,057h,0a7h,08dh,09dh,084h +DB 090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah +DB 0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h +DB 0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h +DB 0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh +DB 03ah,091h,011h,041h,04fh,067h,0dch,0eah +DB 097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h +DB 096h,0ach,074h,022h,0e7h,0adh,035h,085h +DB 0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh +DB 047h,0f1h,01ah,071h,01dh,029h,0c5h,089h +DB 06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh +DB 0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h +DB 09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h +DB 01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h +DB 0b1h,012h,010h,059h,027h,080h,0ech,05fh +DB 060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh +DB 02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh +DB 0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h +DB 0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h +DB 017h,02bh,004h,07eh,0bah,077h,0d6h,026h +DB 0e1h,069h,014h,063h,055h,021h,00ch,07dh + DD 080808080h,080808080h,0fefefefeh,0fefefefeh + DD 01b1b1b1bh,01b1b1b1bh,0,0 +DB 052h,009h,06ah,0d5h,030h,036h,0a5h,038h +DB 0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh +DB 07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h +DB 034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh +DB 054h,07bh,094h,032h,0a6h,0c2h,023h,03dh +DB 0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh +DB 008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h +DB 076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h +DB 072h,0f8h,0f6h,064h,086h,068h,098h,016h +DB 0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h +DB 06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah +DB 05eh,015h,046h,057h,0a7h,08dh,09dh,084h +DB 090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah +DB 0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h +DB 0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h +DB 0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh +DB 03ah,091h,011h,041h,04fh,067h,0dch,0eah +DB 097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h +DB 096h,0ach,074h,022h,0e7h,0adh,035h,085h +DB 0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh +DB 047h,0f1h,01ah,071h,01dh,029h,0c5h,089h +DB 06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh +DB 0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h +DB 09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h +DB 01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h +DB 0b1h,012h,010h,059h,027h,080h,0ech,05fh +DB 060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh +DB 02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh +DB 0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h +DB 0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h +DB 017h,02bh,004h,07eh,0bah,077h,0d6h,026h +DB 0e1h,069h,014h,063h,055h,021h,00ch,07dh + DD 080808080h,080808080h,0fefefefeh,0fefefefeh + DD 01b1b1b1bh,01b1b1b1bh,0,0 +DB 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32 +DB 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 +DB 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 +DB 62,0 +ALIGN 64 +EXTERN __imp_RtlVirtualUnwind:NEAR + +ALIGN 16 +block_se_handler PROC PRIVATE + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD PTR[120+r8] + mov rbx,QWORD PTR[248+r8] + + mov rsi,QWORD PTR[8+r9] + mov r11,QWORD PTR[56+r9] + + mov r10d,DWORD PTR[r11] + lea r10,QWORD PTR[r10*1+rsi] + cmp rbx,r10 + jb $L$in_block_prologue + + mov rax,QWORD PTR[152+r8] + + mov r10d,DWORD PTR[4+r11] + lea r10,QWORD PTR[r10*1+rsi] + cmp rbx,r10 + jae $L$in_block_prologue + + mov rax,QWORD PTR[24+rax] + lea rax,QWORD PTR[48+rax] + + mov rbx,QWORD PTR[((-8))+rax] + mov rbp,QWORD PTR[((-16))+rax] + mov r12,QWORD PTR[((-24))+rax] + mov r13,QWORD PTR[((-32))+rax] + mov r14,QWORD PTR[((-40))+rax] + mov r15,QWORD PTR[((-48))+rax] + mov QWORD PTR[144+r8],rbx + mov QWORD PTR[160+r8],rbp + mov QWORD PTR[216+r8],r12 + mov QWORD PTR[224+r8],r13 + mov QWORD PTR[232+r8],r14 + mov QWORD PTR[240+r8],r15 + +$L$in_block_prologue:: + mov rdi,QWORD PTR[8+rax] + mov rsi,QWORD PTR[16+rax] + mov QWORD PTR[152+r8],rax + mov QWORD PTR[168+r8],rsi + mov QWORD PTR[176+r8],rdi + + jmp $L$common_seh_exit +block_se_handler ENDP + + +ALIGN 16 +key_se_handler PROC PRIVATE + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD PTR[120+r8] + mov rbx,QWORD PTR[248+r8] + + mov rsi,QWORD PTR[8+r9] + mov r11,QWORD PTR[56+r9] + + mov r10d,DWORD PTR[r11] + lea r10,QWORD PTR[r10*1+rsi] + cmp rbx,r10 + jb $L$in_key_prologue + + mov rax,QWORD PTR[152+r8] + + mov r10d,DWORD PTR[4+r11] + lea r10,QWORD PTR[r10*1+rsi] + cmp rbx,r10 + jae $L$in_key_prologue + + lea rax,QWORD PTR[56+rax] + + mov rbx,QWORD PTR[((-8))+rax] + mov rbp,QWORD PTR[((-16))+rax] + mov r12,QWORD PTR[((-24))+rax] + mov r13,QWORD PTR[((-32))+rax] + mov r14,QWORD PTR[((-40))+rax] + mov r15,QWORD PTR[((-48))+rax] + mov QWORD PTR[144+r8],rbx + mov QWORD PTR[160+r8],rbp + mov QWORD PTR[216+r8],r12 + mov QWORD PTR[224+r8],r13 + mov QWORD PTR[232+r8],r14 + mov QWORD PTR[240+r8],r15 + +$L$in_key_prologue:: + mov rdi,QWORD PTR[8+rax] + mov rsi,QWORD PTR[16+rax] + mov QWORD PTR[152+r8],rax + mov QWORD PTR[168+r8],rsi + mov QWORD PTR[176+r8],rdi + + jmp $L$common_seh_exit +key_se_handler ENDP + + +ALIGN 16 +cbc_se_handler PROC PRIVATE + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD PTR[120+r8] + mov rbx,QWORD PTR[248+r8] + + lea r10,QWORD PTR[$L$cbc_prologue] + cmp rbx,r10 + jb $L$in_cbc_prologue + + lea r10,QWORD PTR[$L$cbc_fast_body] + cmp rbx,r10 + jb $L$in_cbc_frame_setup + + lea r10,QWORD PTR[$L$cbc_slow_prologue] + cmp rbx,r10 + jb $L$in_cbc_body + + lea r10,QWORD PTR[$L$cbc_slow_body] + cmp rbx,r10 + jb $L$in_cbc_frame_setup + +$L$in_cbc_body:: + mov rax,QWORD PTR[152+r8] + + lea r10,QWORD PTR[$L$cbc_epilogue] + cmp rbx,r10 + jae $L$in_cbc_prologue + + lea rax,QWORD PTR[8+rax] + + lea r10,QWORD PTR[$L$cbc_popfq] + cmp rbx,r10 + jae $L$in_cbc_prologue + + mov rax,QWORD PTR[8+rax] + lea rax,QWORD PTR[56+rax] + +$L$in_cbc_frame_setup:: + mov rbx,QWORD PTR[((-16))+rax] + mov rbp,QWORD PTR[((-24))+rax] + mov r12,QWORD PTR[((-32))+rax] + mov r13,QWORD PTR[((-40))+rax] + mov r14,QWORD PTR[((-48))+rax] + mov r15,QWORD PTR[((-56))+rax] + mov QWORD PTR[144+r8],rbx + mov QWORD PTR[160+r8],rbp + mov QWORD PTR[216+r8],r12 + mov QWORD PTR[224+r8],r13 + mov QWORD PTR[232+r8],r14 + mov QWORD PTR[240+r8],r15 + +$L$in_cbc_prologue:: + mov rdi,QWORD PTR[8+rax] + mov rsi,QWORD PTR[16+rax] + mov QWORD PTR[152+r8],rax + mov QWORD PTR[168+r8],rsi + mov QWORD PTR[176+r8],rdi + +$L$common_seh_exit:: + + mov rdi,QWORD PTR[40+r9] + mov rsi,r8 + mov ecx,154 + DD 0a548f3fch + + + mov rsi,r9 + xor rcx,rcx + mov rdx,QWORD PTR[8+rsi] + mov r8,QWORD PTR[rsi] + mov r9,QWORD PTR[16+rsi] + mov r10,QWORD PTR[40+rsi] + lea r11,QWORD PTR[56+rsi] + lea r12,QWORD PTR[24+rsi] + mov QWORD PTR[32+rsp],r10 + mov QWORD PTR[40+rsp],r11 + mov QWORD PTR[48+rsp],r12 + mov QWORD PTR[56+rsp],rcx + call QWORD PTR[__imp_RtlVirtualUnwind] + + mov eax,1 + add rsp,64 + popfq + pop r15 + pop r14 + pop r13 + pop r12 + pop rbp + pop rbx + pop rdi + pop rsi + DB 0F3h,0C3h ;repret +cbc_se_handler ENDP + +.text$ ENDS +.pdata SEGMENT READONLY ALIGN(4) +ALIGN 4 + DD imagerel $L$SEH_begin_AES_encrypt + DD imagerel $L$SEH_end_AES_encrypt + DD imagerel $L$SEH_info_AES_encrypt + + DD imagerel $L$SEH_begin_AES_decrypt + DD imagerel $L$SEH_end_AES_decrypt + DD imagerel $L$SEH_info_AES_decrypt + + DD imagerel $L$SEH_begin_AES_set_encrypt_key + DD imagerel $L$SEH_end_AES_set_encrypt_key + DD imagerel $L$SEH_info_AES_set_encrypt_key + + DD imagerel $L$SEH_begin_AES_set_decrypt_key + DD imagerel $L$SEH_end_AES_set_decrypt_key + DD imagerel $L$SEH_info_AES_set_decrypt_key + + DD imagerel $L$SEH_begin_AES_cbc_encrypt + DD imagerel $L$SEH_end_AES_cbc_encrypt + DD imagerel $L$SEH_info_AES_cbc_encrypt + +.pdata ENDS +.xdata SEGMENT READONLY ALIGN(8) +ALIGN 8 +$L$SEH_info_AES_encrypt:: +DB 9,0,0,0 + DD imagerel block_se_handler + DD imagerel $L$enc_prologue,imagerel $L$enc_epilogue + +$L$SEH_info_AES_decrypt:: +DB 9,0,0,0 + DD imagerel block_se_handler + DD imagerel $L$dec_prologue,imagerel $L$dec_epilogue + +$L$SEH_info_AES_set_encrypt_key:: +DB 9,0,0,0 + DD imagerel key_se_handler + DD imagerel $L$enc_key_prologue,imagerel $L$enc_key_epilogue + +$L$SEH_info_AES_set_decrypt_key:: +DB 9,0,0,0 + DD imagerel key_se_handler + DD imagerel $L$dec_key_prologue,imagerel $L$dec_key_epilogue + +$L$SEH_info_AES_cbc_encrypt:: +DB 9,0,0,0 + DD imagerel cbc_se_handler + +.xdata ENDS +END diff --git a/deps/openssl/asm/x64-win32-masm/bn/x86_64-mont.asm b/deps/openssl/asm/x64-win32-masm/bn/x86_64-mont.asm new file mode 100644 index 0000000000..9e54d88953 --- /dev/null +++ b/deps/openssl/asm/x64-win32-masm/bn/x86_64-mont.asm @@ -0,0 +1,293 @@ +OPTION DOTNAME +.text$ SEGMENT ALIGN(64) 'CODE' + +PUBLIC bn_mul_mont + +ALIGN 16 +bn_mul_mont PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_bn_mul_mont:: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD PTR[40+rsp] + mov r9,QWORD PTR[48+rsp] + + + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + + mov r9d,r9d + lea r10,QWORD PTR[2+r9] + mov r11,rsp + neg r10 + lea rsp,QWORD PTR[r10*8+rsp] + and rsp,-1024 + + mov QWORD PTR[8+r9*8+rsp],r11 +$L$prologue:: + mov r12,rdx + + mov r8,QWORD PTR[r8] + + xor r14,r14 + xor r15,r15 + + mov rbx,QWORD PTR[r12] + mov rax,QWORD PTR[rsi] + mul rbx + mov r10,rax + mov r11,rdx + + imul rax,r8 + mov rbp,rax + + mul QWORD PTR[rcx] + add rax,r10 + adc rdx,0 + mov r13,rdx + + lea r15,QWORD PTR[1+r15] +$L$1st:: + mov rax,QWORD PTR[r15*8+rsi] + mul rbx + add rax,r11 + adc rdx,0 + mov r10,rax + mov rax,QWORD PTR[r15*8+rcx] + mov r11,rdx + + mul rbp + add rax,r13 + lea r15,QWORD PTR[1+r15] + adc rdx,0 + add rax,r10 + adc rdx,0 + mov QWORD PTR[((-16))+r15*8+rsp],rax + cmp r15,r9 + mov r13,rdx + jl $L$1st + + xor rdx,rdx + add r13,r11 + adc rdx,0 + mov QWORD PTR[((-8))+r9*8+rsp],r13 + mov QWORD PTR[r9*8+rsp],rdx + + lea r14,QWORD PTR[1+r14] +ALIGN 4 +$L$outer:: + xor r15,r15 + + mov rbx,QWORD PTR[r14*8+r12] + mov rax,QWORD PTR[rsi] + mul rbx + add rax,QWORD PTR[rsp] + adc rdx,0 + mov r10,rax + mov r11,rdx + + imul rax,r8 + mov rbp,rax + + mul QWORD PTR[r15*8+rcx] + add rax,r10 + mov r10,QWORD PTR[8+rsp] + adc rdx,0 + mov r13,rdx + + lea r15,QWORD PTR[1+r15] +ALIGN 4 +$L$inner:: + mov rax,QWORD PTR[r15*8+rsi] + mul rbx + add rax,r11 + adc rdx,0 + add r10,rax + mov rax,QWORD PTR[r15*8+rcx] + adc rdx,0 + mov r11,rdx + + mul rbp + add rax,r13 + lea r15,QWORD PTR[1+r15] + adc rdx,0 + add rax,r10 + adc rdx,0 + mov r10,QWORD PTR[r15*8+rsp] + cmp r15,r9 + mov QWORD PTR[((-16))+r15*8+rsp],rax + mov r13,rdx + jl $L$inner + + xor rdx,rdx + add r13,r11 + adc rdx,0 + add r13,r10 + adc rdx,0 + mov QWORD PTR[((-8))+r9*8+rsp],r13 + mov QWORD PTR[r9*8+rsp],rdx + + lea r14,QWORD PTR[1+r14] + cmp r14,r9 + jl $L$outer + + lea rsi,QWORD PTR[rsp] + lea r15,QWORD PTR[((-1))+r9] + + mov rax,QWORD PTR[rsi] + xor r14,r14 + jmp $L$sub +ALIGN 16 +$L$sub:: sbb rax,QWORD PTR[r14*8+rcx] + mov QWORD PTR[r14*8+rdi],rax + dec r15 + mov rax,QWORD PTR[8+r14*8+rsi] + lea r14,QWORD PTR[1+r14] + jge $L$sub + + sbb rax,0 + and rsi,rax + not rax + mov rcx,rdi + and rcx,rax + lea r15,QWORD PTR[((-1))+r9] + or rsi,rcx +ALIGN 16 +$L$copy:: + mov rax,QWORD PTR[r15*8+rsi] + mov QWORD PTR[r15*8+rdi],rax + mov QWORD PTR[r15*8+rsp],r14 + dec r15 + jge $L$copy + + mov rsi,QWORD PTR[8+r9*8+rsp] + mov rax,1 + mov r15,QWORD PTR[rsi] + mov r14,QWORD PTR[8+rsi] + mov r13,QWORD PTR[16+rsi] + mov r12,QWORD PTR[24+rsi] + mov rbp,QWORD PTR[32+rsi] + mov rbx,QWORD PTR[40+rsi] + lea rsp,QWORD PTR[48+rsi] +$L$epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_bn_mul_mont:: +bn_mul_mont ENDP +DB 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105 +DB 112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56 +DB 54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83 +DB 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 +DB 115,108,46,111,114,103,62,0 +ALIGN 16 +EXTERN __imp_RtlVirtualUnwind:NEAR + +ALIGN 16 +se_handler PROC PRIVATE + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD PTR[120+r8] + mov rbx,QWORD PTR[248+r8] + + lea r10,QWORD PTR[$L$prologue] + cmp rbx,r10 + jb $L$in_prologue + + mov rax,QWORD PTR[152+r8] + + lea r10,QWORD PTR[$L$epilogue] + cmp rbx,r10 + jae $L$in_prologue + + mov r10,QWORD PTR[192+r8] + mov rax,QWORD PTR[8+r10*8+rax] + lea rax,QWORD PTR[48+rax] + + mov rbx,QWORD PTR[((-8))+rax] + mov rbp,QWORD PTR[((-16))+rax] + mov r12,QWORD PTR[((-24))+rax] + mov r13,QWORD PTR[((-32))+rax] + mov r14,QWORD PTR[((-40))+rax] + mov r15,QWORD PTR[((-48))+rax] + mov QWORD PTR[144+r8],rbx + mov QWORD PTR[160+r8],rbp + mov QWORD PTR[216+r8],r12 + mov QWORD PTR[224+r8],r13 + mov QWORD PTR[232+r8],r14 + mov QWORD PTR[240+r8],r15 + +$L$in_prologue:: + mov rdi,QWORD PTR[8+rax] + mov rsi,QWORD PTR[16+rax] + mov QWORD PTR[152+r8],rax + mov QWORD PTR[168+r8],rsi + mov QWORD PTR[176+r8],rdi + + mov rdi,QWORD PTR[40+r9] + mov rsi,r8 + mov ecx,154 + DD 0a548f3fch + + + mov rsi,r9 + xor rcx,rcx + mov rdx,QWORD PTR[8+rsi] + mov r8,QWORD PTR[rsi] + mov r9,QWORD PTR[16+rsi] + mov r10,QWORD PTR[40+rsi] + lea r11,QWORD PTR[56+rsi] + lea r12,QWORD PTR[24+rsi] + mov QWORD PTR[32+rsp],r10 + mov QWORD PTR[40+rsp],r11 + mov QWORD PTR[48+rsp],r12 + mov QWORD PTR[56+rsp],rcx + call QWORD PTR[__imp_RtlVirtualUnwind] + + mov eax,1 + add rsp,64 + popfq + pop r15 + pop r14 + pop r13 + pop r12 + pop rbp + pop rbx + pop rdi + pop rsi + DB 0F3h,0C3h ;repret +se_handler ENDP + +.text$ ENDS +.pdata SEGMENT READONLY ALIGN(4) +ALIGN 4 + DD imagerel $L$SEH_begin_bn_mul_mont + DD imagerel $L$SEH_end_bn_mul_mont + DD imagerel $L$SEH_info_bn_mul_mont + +.pdata ENDS +.xdata SEGMENT READONLY ALIGN(8) +ALIGN 8 +$L$SEH_info_bn_mul_mont:: +DB 9,0,0,0 + DD imagerel se_handler + +.xdata ENDS +END diff --git a/deps/openssl/asm/x64-win32-masm/camellia/cmll-x86_64.asm b/deps/openssl/asm/x64-win32-masm/camellia/cmll-x86_64.asm new file mode 100644 index 0000000000..a5913da92e --- /dev/null +++ b/deps/openssl/asm/x64-win32-masm/camellia/cmll-x86_64.asm @@ -0,0 +1,2108 @@ +OPTION DOTNAME +.text$ SEGMENT ALIGN(64) 'CODE' + + +PUBLIC Camellia_EncryptBlock + +ALIGN 16 +Camellia_EncryptBlock PROC PUBLIC + mov eax,128 + sub eax,ecx + mov ecx,3 + adc ecx,0 + jmp $L$enc_rounds +Camellia_EncryptBlock ENDP + +PUBLIC Camellia_EncryptBlock_Rounds + +ALIGN 16 +$L$enc_rounds:: +Camellia_EncryptBlock_Rounds PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_Camellia_EncryptBlock_Rounds:: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + + + push rbx + push rbp + push r13 + push r14 + push r15 +$L$enc_prologue:: + + + mov r13,rcx + mov r14,rdx + + shl edi,6 + lea rbp,QWORD PTR[$L$Camellia_SBOX] + lea r15,QWORD PTR[rdi*1+r14] + + mov r8d,DWORD PTR[rsi] + mov r9d,DWORD PTR[4+rsi] + mov r10d,DWORD PTR[8+rsi] + bswap r8d + mov r11d,DWORD PTR[12+rsi] + bswap r9d + bswap r10d + bswap r11d + + call _x86_64_Camellia_encrypt + + bswap r8d + bswap r9d + bswap r10d + mov DWORD PTR[r13],r8d + bswap r11d + mov DWORD PTR[4+r13],r9d + mov DWORD PTR[8+r13],r10d + mov DWORD PTR[12+r13],r11d + + mov r15,QWORD PTR[rsp] + mov r14,QWORD PTR[8+rsp] + mov r13,QWORD PTR[16+rsp] + mov rbp,QWORD PTR[24+rsp] + mov rbx,QWORD PTR[32+rsp] + lea rsp,QWORD PTR[40+rsp] +$L$enc_epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_Camellia_EncryptBlock_Rounds:: +Camellia_EncryptBlock_Rounds ENDP + + +ALIGN 16 +_x86_64_Camellia_encrypt PROC PRIVATE + xor r9d,DWORD PTR[r14] + xor r8d,DWORD PTR[4+r14] + xor r11d,DWORD PTR[8+r14] + xor r10d,DWORD PTR[12+r14] +ALIGN 16 +$L$eloop:: + mov ebx,DWORD PTR[16+r14] + mov eax,DWORD PTR[20+r14] + + xor eax,r8d + xor ebx,r9d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[24+r14] + mov eax,DWORD PTR[28+r14] + xor ecx,edx + ror edx,8 + xor r10d,ecx + xor r11d,ecx + xor r11d,edx + xor eax,r10d + xor ebx,r11d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[32+r14] + mov eax,DWORD PTR[36+r14] + xor ecx,edx + ror edx,8 + xor r8d,ecx + xor r9d,ecx + xor r9d,edx + xor eax,r8d + xor ebx,r9d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[40+r14] + mov eax,DWORD PTR[44+r14] + xor ecx,edx + ror edx,8 + xor r10d,ecx + xor r11d,ecx + xor r11d,edx + xor eax,r10d + xor ebx,r11d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[48+r14] + mov eax,DWORD PTR[52+r14] + xor ecx,edx + ror edx,8 + xor r8d,ecx + xor r9d,ecx + xor r9d,edx + xor eax,r8d + xor ebx,r9d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[56+r14] + mov eax,DWORD PTR[60+r14] + xor ecx,edx + ror edx,8 + xor r10d,ecx + xor r11d,ecx + xor r11d,edx + xor eax,r10d + xor ebx,r11d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[64+r14] + mov eax,DWORD PTR[68+r14] + xor ecx,edx + ror edx,8 + xor r8d,ecx + xor r9d,ecx + xor r9d,edx + lea r14,QWORD PTR[((16*4))+r14] + cmp r14,r15 + mov edx,DWORD PTR[8+r14] + mov ecx,DWORD PTR[12+r14] + je $L$edone + + and eax,r8d + or edx,r11d + rol eax,1 + xor r10d,edx + xor r9d,eax + and ecx,r10d + or ebx,r9d + rol ecx,1 + xor r8d,ebx + xor r11d,ecx + jmp $L$eloop + +ALIGN 16 +$L$edone:: + xor eax,r10d + xor ebx,r11d + xor ecx,r8d + xor edx,r9d + + mov r8d,eax + mov r9d,ebx + mov r10d,ecx + mov r11d,edx + +DB 0f3h,0c3h + +_x86_64_Camellia_encrypt ENDP + + +PUBLIC Camellia_DecryptBlock + +ALIGN 16 +Camellia_DecryptBlock PROC PUBLIC + mov eax,128 + sub eax,ecx + mov ecx,3 + adc ecx,0 + jmp $L$dec_rounds +Camellia_DecryptBlock ENDP + +PUBLIC Camellia_DecryptBlock_Rounds + +ALIGN 16 +$L$dec_rounds:: +Camellia_DecryptBlock_Rounds PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_Camellia_DecryptBlock_Rounds:: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + + + push rbx + push rbp + push r13 + push r14 + push r15 +$L$dec_prologue:: + + + mov r13,rcx + mov r15,rdx + + shl edi,6 + lea rbp,QWORD PTR[$L$Camellia_SBOX] + lea r14,QWORD PTR[rdi*1+r15] + + mov r8d,DWORD PTR[rsi] + mov r9d,DWORD PTR[4+rsi] + mov r10d,DWORD PTR[8+rsi] + bswap r8d + mov r11d,DWORD PTR[12+rsi] + bswap r9d + bswap r10d + bswap r11d + + call _x86_64_Camellia_decrypt + + bswap r8d + bswap r9d + bswap r10d + mov DWORD PTR[r13],r8d + bswap r11d + mov DWORD PTR[4+r13],r9d + mov DWORD PTR[8+r13],r10d + mov DWORD PTR[12+r13],r11d + + mov r15,QWORD PTR[rsp] + mov r14,QWORD PTR[8+rsp] + mov r13,QWORD PTR[16+rsp] + mov rbp,QWORD PTR[24+rsp] + mov rbx,QWORD PTR[32+rsp] + lea rsp,QWORD PTR[40+rsp] +$L$dec_epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_Camellia_DecryptBlock_Rounds:: +Camellia_DecryptBlock_Rounds ENDP + + +ALIGN 16 +_x86_64_Camellia_decrypt PROC PRIVATE + xor r9d,DWORD PTR[r14] + xor r8d,DWORD PTR[4+r14] + xor r11d,DWORD PTR[8+r14] + xor r10d,DWORD PTR[12+r14] +ALIGN 16 +$L$dloop:: + mov ebx,DWORD PTR[((-8))+r14] + mov eax,DWORD PTR[((-4))+r14] + + xor eax,r8d + xor ebx,r9d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[((-16))+r14] + mov eax,DWORD PTR[((-12))+r14] + xor ecx,edx + ror edx,8 + xor r10d,ecx + xor r11d,ecx + xor r11d,edx + xor eax,r10d + xor ebx,r11d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[((-24))+r14] + mov eax,DWORD PTR[((-20))+r14] + xor ecx,edx + ror edx,8 + xor r8d,ecx + xor r9d,ecx + xor r9d,edx + xor eax,r8d + xor ebx,r9d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[((-32))+r14] + mov eax,DWORD PTR[((-28))+r14] + xor ecx,edx + ror edx,8 + xor r10d,ecx + xor r11d,ecx + xor r11d,edx + xor eax,r10d + xor ebx,r11d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[((-40))+r14] + mov eax,DWORD PTR[((-36))+r14] + xor ecx,edx + ror edx,8 + xor r8d,ecx + xor r9d,ecx + xor r9d,edx + xor eax,r8d + xor ebx,r9d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[((-48))+r14] + mov eax,DWORD PTR[((-44))+r14] + xor ecx,edx + ror edx,8 + xor r10d,ecx + xor r11d,ecx + xor r11d,edx + xor eax,r10d + xor ebx,r11d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[((-56))+r14] + mov eax,DWORD PTR[((-52))+r14] + xor ecx,edx + ror edx,8 + xor r8d,ecx + xor r9d,ecx + xor r9d,edx + lea r14,QWORD PTR[((-16*4))+r14] + cmp r14,r15 + mov edx,DWORD PTR[r14] + mov ecx,DWORD PTR[4+r14] + je $L$ddone + + and eax,r8d + or edx,r11d + rol eax,1 + xor r10d,edx + xor r9d,eax + and ecx,r10d + or ebx,r9d + rol ecx,1 + xor r8d,ebx + xor r11d,ecx + + jmp $L$dloop + +ALIGN 16 +$L$ddone:: + xor ecx,r10d + xor edx,r11d + xor eax,r8d + xor ebx,r9d + + mov r8d,ecx + mov r9d,edx + mov r10d,eax + mov r11d,ebx + +DB 0f3h,0c3h + +_x86_64_Camellia_decrypt ENDP +PUBLIC Camellia_Ekeygen + +ALIGN 16 +Camellia_Ekeygen PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_Camellia_Ekeygen:: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + push rbx + push rbp + push r13 + push r14 + push r15 +$L$key_prologue:: + + mov r15,rdi + mov r13,rdx + + mov r8d,DWORD PTR[rsi] + mov r9d,DWORD PTR[4+rsi] + mov r10d,DWORD PTR[8+rsi] + mov r11d,DWORD PTR[12+rsi] + + bswap r8d + bswap r9d + bswap r10d + bswap r11d + mov DWORD PTR[r13],r9d + mov DWORD PTR[4+r13],r8d + mov DWORD PTR[8+r13],r11d + mov DWORD PTR[12+r13],r10d + cmp r15,128 + je $L$1st128 + + mov r8d,DWORD PTR[16+rsi] + mov r9d,DWORD PTR[20+rsi] + cmp r15,192 + je $L$1st192 + mov r10d,DWORD PTR[24+rsi] + mov r11d,DWORD PTR[28+rsi] + jmp $L$1st256 +$L$1st192:: + mov r10d,r8d + mov r11d,r9d + not r10d + not r11d +$L$1st256:: + bswap r8d + bswap r9d + bswap r10d + bswap r11d + mov DWORD PTR[32+r13],r9d + mov DWORD PTR[36+r13],r8d + mov DWORD PTR[40+r13],r11d + mov DWORD PTR[44+r13],r10d + xor r9d,DWORD PTR[r13] + xor r8d,DWORD PTR[4+r13] + xor r11d,DWORD PTR[8+r13] + xor r10d,DWORD PTR[12+r13] + +$L$1st128:: + lea r14,QWORD PTR[$L$Camellia_SIGMA] + lea rbp,QWORD PTR[$L$Camellia_SBOX] + + mov ebx,DWORD PTR[r14] + mov eax,DWORD PTR[4+r14] + xor eax,r8d + xor ebx,r9d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[8+r14] + mov eax,DWORD PTR[12+r14] + xor ecx,edx + ror edx,8 + xor r10d,ecx + xor r11d,ecx + xor r11d,edx + xor eax,r10d + xor ebx,r11d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[16+r14] + mov eax,DWORD PTR[20+r14] + xor ecx,edx + ror edx,8 + xor r8d,ecx + xor r9d,ecx + xor r9d,edx + xor r9d,DWORD PTR[r13] + xor r8d,DWORD PTR[4+r13] + xor r11d,DWORD PTR[8+r13] + xor r10d,DWORD PTR[12+r13] + xor eax,r8d + xor ebx,r9d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[24+r14] + mov eax,DWORD PTR[28+r14] + xor ecx,edx + ror edx,8 + xor r10d,ecx + xor r11d,ecx + xor r11d,edx + xor eax,r10d + xor ebx,r11d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[32+r14] + mov eax,DWORD PTR[36+r14] + xor ecx,edx + ror edx,8 + xor r8d,ecx + xor r9d,ecx + xor r9d,edx + cmp r15,128 + jne $L$2nd256 + + lea r13,QWORD PTR[128+r13] + shl r8,32 + shl r10,32 + or r8,r9 + or r10,r11 + mov rax,QWORD PTR[((-128))+r13] + mov rbx,QWORD PTR[((-120))+r13] + mov QWORD PTR[((-112))+r13],r8 + mov QWORD PTR[((-104))+r13],r10 + mov r11,rax + shl rax,15 + mov r9,rbx + shr r9,49 + shr r11,49 + or rax,r9 + shl rbx,15 + or rbx,r11 + mov QWORD PTR[((-96))+r13],rax + mov QWORD PTR[((-88))+r13],rbx + mov r11,r8 + shl r8,15 + mov r9,r10 + shr r9,49 + shr r11,49 + or r8,r9 + shl r10,15 + or r10,r11 + mov QWORD PTR[((-80))+r13],r8 + mov QWORD PTR[((-72))+r13],r10 + mov r11,r8 + shl r8,15 + mov r9,r10 + shr r9,49 + shr r11,49 + or r8,r9 + shl r10,15 + or r10,r11 + mov QWORD PTR[((-64))+r13],r8 + mov QWORD PTR[((-56))+r13],r10 + mov r11,rax + shl rax,30 + mov r9,rbx + shr r9,34 + shr r11,34 + or rax,r9 + shl rbx,30 + or rbx,r11 + mov QWORD PTR[((-48))+r13],rax + mov QWORD PTR[((-40))+r13],rbx + mov r11,r8 + shl r8,15 + mov r9,r10 + shr r9,49 + shr r11,49 + or r8,r9 + shl r10,15 + or r10,r11 + mov QWORD PTR[((-32))+r13],r8 + mov r11,rax + shl rax,15 + mov r9,rbx + shr r9,49 + shr r11,49 + or rax,r9 + shl rbx,15 + or rbx,r11 + mov QWORD PTR[((-24))+r13],rbx + mov r11,r8 + shl r8,15 + mov r9,r10 + shr r9,49 + shr r11,49 + or r8,r9 + shl r10,15 + or r10,r11 + mov QWORD PTR[((-16))+r13],r8 + mov QWORD PTR[((-8))+r13],r10 + mov r11,rax + shl rax,17 + mov r9,rbx + shr r9,47 + shr r11,47 + or rax,r9 + shl rbx,17 + or rbx,r11 + mov QWORD PTR[r13],rax + mov QWORD PTR[8+r13],rbx + mov r11,rax + shl rax,17 + mov r9,rbx + shr r9,47 + shr r11,47 + or rax,r9 + shl rbx,17 + or rbx,r11 + mov QWORD PTR[16+r13],rax + mov QWORD PTR[24+r13],rbx + mov r11,r8 + shl r8,34 + mov r9,r10 + shr r9,30 + shr r11,30 + or r8,r9 + shl r10,34 + or r10,r11 + mov QWORD PTR[32+r13],r8 + mov QWORD PTR[40+r13],r10 + mov r11,rax + shl rax,17 + mov r9,rbx + shr r9,47 + shr r11,47 + or rax,r9 + shl rbx,17 + or rbx,r11 + mov QWORD PTR[48+r13],rax + mov QWORD PTR[56+r13],rbx + mov r11,r8 + shl r8,17 + mov r9,r10 + shr r9,47 + shr r11,47 + or r8,r9 + shl r10,17 + or r10,r11 + mov QWORD PTR[64+r13],r8 + mov QWORD PTR[72+r13],r10 + mov eax,3 + jmp $L$done +ALIGN 16 +$L$2nd256:: + mov DWORD PTR[48+r13],r9d + mov DWORD PTR[52+r13],r8d + mov DWORD PTR[56+r13],r11d + mov DWORD PTR[60+r13],r10d + xor r9d,DWORD PTR[32+r13] + xor r8d,DWORD PTR[36+r13] + xor r11d,DWORD PTR[40+r13] + xor r10d,DWORD PTR[44+r13] + xor eax,r8d + xor ebx,r9d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[40+r14] + mov eax,DWORD PTR[44+r14] + xor ecx,edx + ror edx,8 + xor r10d,ecx + xor r11d,ecx + xor r11d,edx + xor eax,r10d + xor ebx,r11d + movzx esi,ah + movzx edi,bl + mov edx,DWORD PTR[2052+rsi*8+rbp] + mov ecx,DWORD PTR[rdi*8+rbp] + movzx esi,al + shr eax,16 + movzx edi,bh + xor edx,DWORD PTR[4+rsi*8+rbp] + shr ebx,16 + xor ecx,DWORD PTR[4+rdi*8+rbp] + movzx esi,ah + movzx edi,bl + xor edx,DWORD PTR[rsi*8+rbp] + xor ecx,DWORD PTR[2052+rdi*8+rbp] + movzx esi,al + movzx edi,bh + xor edx,DWORD PTR[2048+rsi*8+rbp] + xor ecx,DWORD PTR[2048+rdi*8+rbp] + mov ebx,DWORD PTR[48+r14] + mov eax,DWORD PTR[52+r14] + xor ecx,edx + ror edx,8 + xor r8d,ecx + xor r9d,ecx + xor r9d,edx + mov rax,QWORD PTR[r13] + mov rbx,QWORD PTR[8+r13] + mov rcx,QWORD PTR[32+r13] + mov rdx,QWORD PTR[40+r13] + mov r14,QWORD PTR[48+r13] + mov r15,QWORD PTR[56+r13] + lea r13,QWORD PTR[128+r13] + shl r8,32 + shl r10,32 + or r8,r9 + or r10,r11 + mov QWORD PTR[((-112))+r13],r8 + mov QWORD PTR[((-104))+r13],r10 + mov r11,rcx + shl rcx,15 + mov r9,rdx + shr r9,49 + shr r11,49 + or rcx,r9 + shl rdx,15 + or rdx,r11 + mov QWORD PTR[((-96))+r13],rcx + mov QWORD PTR[((-88))+r13],rdx + mov r11,r14 + shl r14,15 + mov r9,r15 + shr r9,49 + shr r11,49 + or r14,r9 + shl r15,15 + or r15,r11 + mov QWORD PTR[((-80))+r13],r14 + mov QWORD PTR[((-72))+r13],r15 + mov r11,rcx + shl rcx,15 + mov r9,rdx + shr r9,49 + shr r11,49 + or rcx,r9 + shl rdx,15 + or rdx,r11 + mov QWORD PTR[((-64))+r13],rcx + mov QWORD PTR[((-56))+r13],rdx + mov r11,r8 + shl r8,30 + mov r9,r10 + shr r9,34 + shr r11,34 + or r8,r9 + shl r10,30 + or r10,r11 + mov QWORD PTR[((-48))+r13],r8 + mov QWORD PTR[((-40))+r13],r10 + mov r11,rax + shl rax,45 + mov r9,rbx + shr r9,19 + shr r11,19 + or rax,r9 + shl rbx,45 + or rbx,r11 + mov QWORD PTR[((-32))+r13],rax + mov QWORD PTR[((-24))+r13],rbx + mov r11,r14 + shl r14,30 + mov r9,r15 + shr r9,34 + shr r11,34 + or r14,r9 + shl r15,30 + or r15,r11 + mov QWORD PTR[((-16))+r13],r14 + mov QWORD PTR[((-8))+r13],r15 + mov r11,rax + shl rax,15 + mov r9,rbx + shr r9,49 + shr r11,49 + or rax,r9 + shl rbx,15 + or rbx,r11 + mov QWORD PTR[r13],rax + mov QWORD PTR[8+r13],rbx + mov r11,rcx + shl rcx,30 + mov r9,rdx + shr r9,34 + shr r11,34 + or rcx,r9 + shl rdx,30 + or rdx,r11 + mov QWORD PTR[16+r13],rcx + mov QWORD PTR[24+r13],rdx + mov r11,r8 + shl r8,30 + mov r9,r10 + shr r9,34 + shr r11,34 + or r8,r9 + shl r10,30 + or r10,r11 + mov QWORD PTR[32+r13],r8 + mov QWORD PTR[40+r13],r10 + mov r11,rax + shl rax,17 + mov r9,rbx + shr r9,47 + shr r11,47 + or rax,r9 + shl rbx,17 + or rbx,r11 + mov QWORD PTR[48+r13],rax + mov QWORD PTR[56+r13],rbx + mov r11,r14 + shl r14,32 + mov r9,r15 + shr r9,32 + shr r11,32 + or r14,r9 + shl r15,32 + or r15,r11 + mov QWORD PTR[64+r13],r14 + mov QWORD PTR[72+r13],r15 + mov r11,rcx + shl rcx,34 + mov r9,rdx + shr r9,30 + shr r11,30 + or rcx,r9 + shl rdx,34 + or rdx,r11 + mov QWORD PTR[80+r13],rcx + mov QWORD PTR[88+r13],rdx + mov r11,r14 + shl r14,17 + mov r9,r15 + shr r9,47 + shr r11,47 + or r14,r9 + shl r15,17 + or r15,r11 + mov QWORD PTR[96+r13],r14 + mov QWORD PTR[104+r13],r15 + mov r11,rax + shl rax,34 + mov r9,rbx + shr r9,30 + shr r11,30 + or rax,r9 + shl rbx,34 + or rbx,r11 + mov QWORD PTR[112+r13],rax + mov QWORD PTR[120+r13],rbx + mov r11,r8 + shl r8,51 + mov r9,r10 + shr r9,13 + shr r11,13 + or r8,r9 + shl r10,51 + or r10,r11 + mov QWORD PTR[128+r13],r8 + mov QWORD PTR[136+r13],r10 + mov eax,4 +$L$done:: + mov r15,QWORD PTR[rsp] + mov r14,QWORD PTR[8+rsp] + mov r13,QWORD PTR[16+rsp] + mov rbp,QWORD PTR[24+rsp] + mov rbx,QWORD PTR[32+rsp] + lea rsp,QWORD PTR[40+rsp] +$L$key_epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_Camellia_Ekeygen:: +Camellia_Ekeygen ENDP +ALIGN 64 +$L$Camellia_SIGMA:: + DD 03bcc908bh,0a09e667fh,04caa73b2h,0b67ae858h + DD 0e94f82beh,0c6ef372fh,0f1d36f1ch,054ff53a5h + DD 0de682d1dh,010e527fah,0b3e6c1fdh,0b05688c2h + DD 0,0,0,0 +$L$Camellia_SBOX:: + DD 070707000h,070700070h + DD 082828200h,02c2c002ch + DD 02c2c2c00h,0b3b300b3h + DD 0ececec00h,0c0c000c0h + DD 0b3b3b300h,0e4e400e4h + DD 027272700h,057570057h + DD 0c0c0c000h,0eaea00eah + DD 0e5e5e500h,0aeae00aeh + DD 0e4e4e400h,023230023h + DD 085858500h,06b6b006bh + DD 057575700h,045450045h + DD 035353500h,0a5a500a5h + DD 0eaeaea00h,0eded00edh + DD 00c0c0c00h,04f4f004fh + DD 0aeaeae00h,01d1d001dh + DD 041414100h,092920092h + DD 023232300h,086860086h + DD 0efefef00h,0afaf00afh + DD 06b6b6b00h,07c7c007ch + DD 093939300h,01f1f001fh + DD 045454500h,03e3e003eh + DD 019191900h,0dcdc00dch + DD 0a5a5a500h,05e5e005eh + DD 021212100h,00b0b000bh + DD 0ededed00h,0a6a600a6h + DD 00e0e0e00h,039390039h + DD 04f4f4f00h,0d5d500d5h + DD 04e4e4e00h,05d5d005dh + DD 01d1d1d00h,0d9d900d9h + DD 065656500h,05a5a005ah + DD 092929200h,051510051h + DD 0bdbdbd00h,06c6c006ch + DD 086868600h,08b8b008bh + DD 0b8b8b800h,09a9a009ah + DD 0afafaf00h,0fbfb00fbh + DD 08f8f8f00h,0b0b000b0h + DD 07c7c7c00h,074740074h + DD 0ebebeb00h,02b2b002bh + DD 01f1f1f00h,0f0f000f0h + DD 0cecece00h,084840084h + DD 03e3e3e00h,0dfdf00dfh + DD 030303000h,0cbcb00cbh + DD 0dcdcdc00h,034340034h + DD 05f5f5f00h,076760076h + DD 05e5e5e00h,06d6d006dh + DD 0c5c5c500h,0a9a900a9h + DD 00b0b0b00h,0d1d100d1h + DD 01a1a1a00h,004040004h + DD 0a6a6a600h,014140014h + DD 0e1e1e100h,03a3a003ah + DD 039393900h,0dede00deh + DD 0cacaca00h,011110011h + DD 0d5d5d500h,032320032h + DD 047474700h,09c9c009ch + DD 05d5d5d00h,053530053h + DD 03d3d3d00h,0f2f200f2h + DD 0d9d9d900h,0fefe00feh + DD 001010100h,0cfcf00cfh + DD 05a5a5a00h,0c3c300c3h + DD 0d6d6d600h,07a7a007ah + DD 051515100h,024240024h + DD 056565600h,0e8e800e8h + DD 06c6c6c00h,060600060h + DD 04d4d4d00h,069690069h + DD 08b8b8b00h,0aaaa00aah + DD 00d0d0d00h,0a0a000a0h + DD 09a9a9a00h,0a1a100a1h + DD 066666600h,062620062h + DD 0fbfbfb00h,054540054h + DD 0cccccc00h,01e1e001eh + DD 0b0b0b000h,0e0e000e0h + DD 02d2d2d00h,064640064h + DD 074747400h,010100010h + DD 012121200h,000000000h + DD 02b2b2b00h,0a3a300a3h + DD 020202000h,075750075h + DD 0f0f0f000h,08a8a008ah + DD 0b1b1b100h,0e6e600e6h + DD 084848400h,009090009h + DD 099999900h,0dddd00ddh + DD 0dfdfdf00h,087870087h + DD 04c4c4c00h,083830083h + DD 0cbcbcb00h,0cdcd00cdh + DD 0c2c2c200h,090900090h + DD 034343400h,073730073h + DD 07e7e7e00h,0f6f600f6h + DD 076767600h,09d9d009dh + DD 005050500h,0bfbf00bfh + DD 06d6d6d00h,052520052h + DD 0b7b7b700h,0d8d800d8h + DD 0a9a9a900h,0c8c800c8h + DD 031313100h,0c6c600c6h + DD 0d1d1d100h,081810081h + DD 017171700h,06f6f006fh + DD 004040400h,013130013h + DD 0d7d7d700h,063630063h + DD 014141400h,0e9e900e9h + DD 058585800h,0a7a700a7h + DD 03a3a3a00h,09f9f009fh + DD 061616100h,0bcbc00bch + DD 0dedede00h,029290029h + DD 01b1b1b00h,0f9f900f9h + DD 011111100h,02f2f002fh + DD 01c1c1c00h,0b4b400b4h + DD 032323200h,078780078h + DD 00f0f0f00h,006060006h + DD 09c9c9c00h,0e7e700e7h + DD 016161600h,071710071h + DD 053535300h,0d4d400d4h + DD 018181800h,0abab00abh + DD 0f2f2f200h,088880088h + DD 022222200h,08d8d008dh + DD 0fefefe00h,072720072h + DD 044444400h,0b9b900b9h + DD 0cfcfcf00h,0f8f800f8h + DD 0b2b2b200h,0acac00ach + DD 0c3c3c300h,036360036h + DD 0b5b5b500h,02a2a002ah + DD 07a7a7a00h,03c3c003ch + DD 091919100h,0f1f100f1h + DD 024242400h,040400040h + DD 008080800h,0d3d300d3h + DD 0e8e8e800h,0bbbb00bbh + DD 0a8a8a800h,043430043h + DD 060606000h,015150015h + DD 0fcfcfc00h,0adad00adh + DD 069696900h,077770077h + DD 050505000h,080800080h + DD 0aaaaaa00h,082820082h + DD 0d0d0d000h,0ecec00ech + DD 0a0a0a000h,027270027h + DD 07d7d7d00h,0e5e500e5h + DD 0a1a1a100h,085850085h + DD 089898900h,035350035h + DD 062626200h,00c0c000ch + DD 097979700h,041410041h + DD 054545400h,0efef00efh + DD 05b5b5b00h,093930093h + DD 01e1e1e00h,019190019h + DD 095959500h,021210021h + DD 0e0e0e000h,00e0e000eh + DD 0ffffff00h,04e4e004eh + DD 064646400h,065650065h + DD 0d2d2d200h,0bdbd00bdh + DD 010101000h,0b8b800b8h + DD 0c4c4c400h,08f8f008fh + DD 000000000h,0ebeb00ebh + DD 048484800h,0cece00ceh + DD 0a3a3a300h,030300030h + DD 0f7f7f700h,05f5f005fh + DD 075757500h,0c5c500c5h + DD 0dbdbdb00h,01a1a001ah + DD 08a8a8a00h,0e1e100e1h + DD 003030300h,0caca00cah + DD 0e6e6e600h,047470047h + DD 0dadada00h,03d3d003dh + DD 009090900h,001010001h + DD 03f3f3f00h,0d6d600d6h + DD 0dddddd00h,056560056h + DD 094949400h,04d4d004dh + DD 087878700h,00d0d000dh + DD 05c5c5c00h,066660066h + DD 083838300h,0cccc00cch + DD 002020200h,02d2d002dh + DD 0cdcdcd00h,012120012h + DD 04a4a4a00h,020200020h + DD 090909000h,0b1b100b1h + DD 033333300h,099990099h + DD 073737300h,04c4c004ch + DD 067676700h,0c2c200c2h + DD 0f6f6f600h,07e7e007eh + DD 0f3f3f300h,005050005h + DD 09d9d9d00h,0b7b700b7h + DD 07f7f7f00h,031310031h + DD 0bfbfbf00h,017170017h + DD 0e2e2e200h,0d7d700d7h + DD 052525200h,058580058h + DD 09b9b9b00h,061610061h + DD 0d8d8d800h,01b1b001bh + DD 026262600h,01c1c001ch + DD 0c8c8c800h,00f0f000fh + DD 037373700h,016160016h + DD 0c6c6c600h,018180018h + DD 03b3b3b00h,022220022h + DD 081818100h,044440044h + DD 096969600h,0b2b200b2h + DD 06f6f6f00h,0b5b500b5h + DD 04b4b4b00h,091910091h + DD 013131300h,008080008h + DD 0bebebe00h,0a8a800a8h + DD 063636300h,0fcfc00fch + DD 02e2e2e00h,050500050h + DD 0e9e9e900h,0d0d000d0h + DD 079797900h,07d7d007dh + DD 0a7a7a700h,089890089h + DD 08c8c8c00h,097970097h + DD 09f9f9f00h,05b5b005bh + DD 06e6e6e00h,095950095h + DD 0bcbcbc00h,0ffff00ffh + DD 08e8e8e00h,0d2d200d2h + DD 029292900h,0c4c400c4h + DD 0f5f5f500h,048480048h + DD 0f9f9f900h,0f7f700f7h + DD 0b6b6b600h,0dbdb00dbh + DD 02f2f2f00h,003030003h + DD 0fdfdfd00h,0dada00dah + DD 0b4b4b400h,03f3f003fh + DD 059595900h,094940094h + DD 078787800h,05c5c005ch + DD 098989800h,002020002h + DD 006060600h,04a4a004ah + DD 06a6a6a00h,033330033h + DD 0e7e7e700h,067670067h + DD 046464600h,0f3f300f3h + DD 071717100h,07f7f007fh + DD 0bababa00h,0e2e200e2h + DD 0d4d4d400h,09b9b009bh + DD 025252500h,026260026h + DD 0ababab00h,037370037h + DD 042424200h,03b3b003bh + DD 088888800h,096960096h + DD 0a2a2a200h,04b4b004bh + DD 08d8d8d00h,0bebe00beh + DD 0fafafa00h,02e2e002eh + DD 072727200h,079790079h + DD 007070700h,08c8c008ch + DD 0b9b9b900h,06e6e006eh + DD 055555500h,08e8e008eh + DD 0f8f8f800h,0f5f500f5h + DD 0eeeeee00h,0b6b600b6h + DD 0acacac00h,0fdfd00fdh + DD 00a0a0a00h,059590059h + DD 036363600h,098980098h + DD 049494900h,06a6a006ah + DD 02a2a2a00h,046460046h + DD 068686800h,0baba00bah + DD 03c3c3c00h,025250025h + DD 038383800h,042420042h + DD 0f1f1f100h,0a2a200a2h + DD 0a4a4a400h,0fafa00fah + DD 040404000h,007070007h + DD 028282800h,055550055h + DD 0d3d3d300h,0eeee00eeh + DD 07b7b7b00h,00a0a000ah + DD 0bbbbbb00h,049490049h + DD 0c9c9c900h,068680068h + DD 043434300h,038380038h + DD 0c1c1c100h,0a4a400a4h + DD 015151500h,028280028h + DD 0e3e3e300h,07b7b007bh + DD 0adadad00h,0c9c900c9h + DD 0f4f4f400h,0c1c100c1h + DD 077777700h,0e3e300e3h + DD 0c7c7c700h,0f4f400f4h + DD 080808000h,0c7c700c7h + DD 09e9e9e00h,09e9e009eh + DD 000e0e0e0h,038003838h + DD 000050505h,041004141h + DD 000585858h,016001616h + DD 000d9d9d9h,076007676h + DD 000676767h,0d900d9d9h + DD 0004e4e4eh,093009393h + DD 000818181h,060006060h + DD 000cbcbcbh,0f200f2f2h + DD 000c9c9c9h,072007272h + DD 0000b0b0bh,0c200c2c2h + DD 000aeaeaeh,0ab00ababh + DD 0006a6a6ah,09a009a9ah + DD 000d5d5d5h,075007575h + DD 000181818h,006000606h + DD 0005d5d5dh,057005757h + DD 000828282h,0a000a0a0h + DD 000464646h,091009191h + DD 000dfdfdfh,0f700f7f7h + DD 000d6d6d6h,0b500b5b5h + DD 000272727h,0c900c9c9h + DD 0008a8a8ah,0a200a2a2h + DD 000323232h,08c008c8ch + DD 0004b4b4bh,0d200d2d2h + DD 000424242h,090009090h + DD 000dbdbdbh,0f600f6f6h + DD 0001c1c1ch,007000707h + DD 0009e9e9eh,0a700a7a7h + DD 0009c9c9ch,027002727h + DD 0003a3a3ah,08e008e8eh + DD 000cacacah,0b200b2b2h + DD 000252525h,049004949h + DD 0007b7b7bh,0de00dedeh + DD 0000d0d0dh,043004343h + DD 000717171h,05c005c5ch + DD 0005f5f5fh,0d700d7d7h + DD 0001f1f1fh,0c700c7c7h + DD 000f8f8f8h,03e003e3eh + DD 000d7d7d7h,0f500f5f5h + DD 0003e3e3eh,08f008f8fh + DD 0009d9d9dh,067006767h + DD 0007c7c7ch,01f001f1fh + DD 000606060h,018001818h + DD 000b9b9b9h,06e006e6eh + DD 000bebebeh,0af00afafh + DD 000bcbcbch,02f002f2fh + DD 0008b8b8bh,0e200e2e2h + DD 000161616h,085008585h + DD 000343434h,00d000d0dh + DD 0004d4d4dh,053005353h + DD 000c3c3c3h,0f000f0f0h + DD 000727272h,09c009c9ch + DD 000959595h,065006565h + DD 000abababh,0ea00eaeah + DD 0008e8e8eh,0a300a3a3h + DD 000bababah,0ae00aeaeh + DD 0007a7a7ah,09e009e9eh + DD 000b3b3b3h,0ec00ecech + DD 000020202h,080008080h + DD 000b4b4b4h,02d002d2dh + DD 000adadadh,06b006b6bh + DD 000a2a2a2h,0a800a8a8h + DD 000acacach,02b002b2bh + DD 000d8d8d8h,036003636h + DD 0009a9a9ah,0a600a6a6h + DD 000171717h,0c500c5c5h + DD 0001a1a1ah,086008686h + DD 000353535h,04d004d4dh + DD 000cccccch,033003333h + DD 000f7f7f7h,0fd00fdfdh + DD 000999999h,066006666h + DD 000616161h,058005858h + DD 0005a5a5ah,096009696h + DD 000e8e8e8h,03a003a3ah + DD 000242424h,009000909h + DD 000565656h,095009595h + DD 000404040h,010001010h + DD 000e1e1e1h,078007878h + DD 000636363h,0d800d8d8h + DD 000090909h,042004242h + DD 000333333h,0cc00cccch + DD 000bfbfbfh,0ef00efefh + DD 000989898h,026002626h + DD 000979797h,0e500e5e5h + DD 000858585h,061006161h + DD 000686868h,01a001a1ah + DD 000fcfcfch,03f003f3fh + DD 000ececech,03b003b3bh + DD 0000a0a0ah,082008282h + DD 000dadadah,0b600b6b6h + DD 0006f6f6fh,0db00dbdbh + DD 000535353h,0d400d4d4h + DD 000626262h,098009898h + DD 000a3a3a3h,0e800e8e8h + DD 0002e2e2eh,08b008b8bh + DD 000080808h,002000202h + DD 000afafafh,0eb00ebebh + DD 000282828h,00a000a0ah + DD 000b0b0b0h,02c002c2ch + DD 000747474h,01d001d1dh + DD 000c2c2c2h,0b000b0b0h + DD 000bdbdbdh,06f006f6fh + DD 000363636h,08d008d8dh + DD 000222222h,088008888h + DD 000383838h,00e000e0eh + DD 000646464h,019001919h + DD 0001e1e1eh,087008787h + DD 000393939h,04e004e4eh + DD 0002c2c2ch,00b000b0bh + DD 000a6a6a6h,0a900a9a9h + DD 000303030h,00c000c0ch + DD 000e5e5e5h,079007979h + DD 000444444h,011001111h + DD 000fdfdfdh,07f007f7fh + DD 000888888h,022002222h + DD 0009f9f9fh,0e700e7e7h + DD 000656565h,059005959h + DD 000878787h,0e100e1e1h + DD 0006b6b6bh,0da00dadah + DD 000f4f4f4h,03d003d3dh + DD 000232323h,0c800c8c8h + DD 000484848h,012001212h + DD 000101010h,004000404h + DD 000d1d1d1h,074007474h + DD 000515151h,054005454h + DD 000c0c0c0h,030003030h + DD 000f9f9f9h,07e007e7eh + DD 000d2d2d2h,0b400b4b4h + DD 000a0a0a0h,028002828h + DD 000555555h,055005555h + DD 000a1a1a1h,068006868h + DD 000414141h,050005050h + DD 000fafafah,0be00bebeh + DD 000434343h,0d000d0d0h + DD 000131313h,0c400c4c4h + DD 000c4c4c4h,031003131h + DD 0002f2f2fh,0cb00cbcbh + DD 000a8a8a8h,02a002a2ah + DD 000b6b6b6h,0ad00adadh + DD 0003c3c3ch,00f000f0fh + DD 0002b2b2bh,0ca00cacah + DD 000c1c1c1h,070007070h + DD 000ffffffh,0ff00ffffh + DD 000c8c8c8h,032003232h + DD 000a5a5a5h,069006969h + DD 000202020h,008000808h + DD 000898989h,062006262h + DD 000000000h,000000000h + DD 000909090h,024002424h + DD 000474747h,0d100d1d1h + DD 000efefefh,0fb00fbfbh + DD 000eaeaeah,0ba00babah + DD 000b7b7b7h,0ed00ededh + DD 000151515h,045004545h + DD 000060606h,081008181h + DD 000cdcdcdh,073007373h + DD 000b5b5b5h,06d006d6dh + DD 000121212h,084008484h + DD 0007e7e7eh,09f009f9fh + DD 000bbbbbbh,0ee00eeeeh + DD 000292929h,04a004a4ah + DD 0000f0f0fh,0c300c3c3h + DD 000b8b8b8h,02e002e2eh + DD 000070707h,0c100c1c1h + DD 000040404h,001000101h + DD 0009b9b9bh,0e600e6e6h + DD 000949494h,025002525h + DD 000212121h,048004848h + DD 000666666h,099009999h + DD 000e6e6e6h,0b900b9b9h + DD 000cececeh,0b300b3b3h + DD 000edededh,07b007b7bh + DD 000e7e7e7h,0f900f9f9h + DD 0003b3b3bh,0ce00ceceh + DD 000fefefeh,0bf00bfbfh + DD 0007f7f7fh,0df00dfdfh + DD 000c5c5c5h,071007171h + DD 000a4a4a4h,029002929h + DD 000373737h,0cd00cdcdh + DD 000b1b1b1h,06c006c6ch + DD 0004c4c4ch,013001313h + DD 000919191h,064006464h + DD 0006e6e6eh,09b009b9bh + DD 0008d8d8dh,063006363h + DD 000767676h,09d009d9dh + DD 000030303h,0c000c0c0h + DD 0002d2d2dh,04b004b4bh + DD 000dededeh,0b700b7b7h + DD 000969696h,0a500a5a5h + DD 000262626h,089008989h + DD 0007d7d7dh,05f005f5fh + DD 000c6c6c6h,0b100b1b1h + DD 0005c5c5ch,017001717h + DD 000d3d3d3h,0f400f4f4h + DD 000f2f2f2h,0bc00bcbch + DD 0004f4f4fh,0d300d3d3h + DD 000191919h,046004646h + DD 0003f3f3fh,0cf00cfcfh + DD 000dcdcdch,037003737h + DD 000797979h,05e005e5eh + DD 0001d1d1dh,047004747h + DD 000525252h,094009494h + DD 000ebebebh,0fa00fafah + DD 000f3f3f3h,0fc00fcfch + DD 0006d6d6dh,05b005b5bh + DD 0005e5e5eh,097009797h + DD 000fbfbfbh,0fe00fefeh + DD 000696969h,05a005a5ah + DD 000b2b2b2h,0ac00acach + DD 000f0f0f0h,03c003c3ch + DD 000313131h,04c004c4ch + DD 0000c0c0ch,003000303h + DD 000d4d4d4h,035003535h + DD 000cfcfcfh,0f300f3f3h + DD 0008c8c8ch,023002323h + DD 000e2e2e2h,0b800b8b8h + DD 000757575h,05d005d5dh + DD 000a9a9a9h,06a006a6ah + DD 0004a4a4ah,092009292h + DD 000575757h,0d500d5d5h + DD 000848484h,021002121h + DD 000111111h,044004444h + DD 000454545h,051005151h + DD 0001b1b1bh,0c600c6c6h + DD 000f5f5f5h,07d007d7dh + DD 000e4e4e4h,039003939h + DD 0000e0e0eh,083008383h + DD 000737373h,0dc00dcdch + DD 000aaaaaah,0aa00aaaah + DD 000f1f1f1h,07c007c7ch + DD 000ddddddh,077007777h + DD 000595959h,056005656h + DD 000141414h,005000505h + DD 0006c6c6ch,01b001b1bh + DD 000929292h,0a400a4a4h + DD 000545454h,015001515h + DD 000d0d0d0h,034003434h + DD 000787878h,01e001e1eh + DD 000707070h,01c001c1ch + DD 000e3e3e3h,0f800f8f8h + DD 000494949h,052005252h + DD 000808080h,020002020h + DD 000505050h,014001414h + DD 000a7a7a7h,0e900e9e9h + DD 000f6f6f6h,0bd00bdbdh + DD 000777777h,0dd00ddddh + DD 000939393h,0e400e4e4h + DD 000868686h,0a100a1a1h + DD 000838383h,0e000e0e0h + DD 0002a2a2ah,08a008a8ah + DD 000c7c7c7h,0f100f1f1h + DD 0005b5b5bh,0d600d6d6h + DD 000e9e9e9h,07a007a7ah + DD 000eeeeeeh,0bb00bbbbh + DD 0008f8f8fh,0e300e3e3h + DD 000010101h,040004040h + DD 0003d3d3dh,04f004f4fh +PUBLIC Camellia_cbc_encrypt + +ALIGN 16 +Camellia_cbc_encrypt PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_Camellia_cbc_encrypt:: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD PTR[40+rsp] + mov r9,QWORD PTR[48+rsp] + + + cmp rdx,0 + je $L$cbc_abort + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 +$L$cbc_prologue:: + + mov rbp,rsp + sub rsp,64 + and rsp,-64 + + + + lea r10,QWORD PTR[((-64-63))+rcx] + sub r10,rsp + neg r10 + and r10,03C0h + sub rsp,r10 + + + mov r12,rdi + mov r13,rsi + mov rbx,r8 + mov r14,rcx + mov r15d,DWORD PTR[272+rcx] + + mov QWORD PTR[40+rsp],r8 + mov QWORD PTR[48+rsp],rbp + +$L$cbc_body:: + lea rbp,QWORD PTR[$L$Camellia_SBOX] + + mov ecx,32 +ALIGN 4 +$L$cbc_prefetch_sbox:: + mov rax,QWORD PTR[rbp] + mov rsi,QWORD PTR[32+rbp] + mov rdi,QWORD PTR[64+rbp] + mov r11,QWORD PTR[96+rbp] + lea rbp,QWORD PTR[128+rbp] + loop $L$cbc_prefetch_sbox + sub rbp,4096 + shl r15,6 + mov rcx,rdx + lea r15,QWORD PTR[r15*1+r14] + + cmp r9d,0 + je $L$CBC_DECRYPT + + and rdx,-16 + and rcx,15 + lea rdx,QWORD PTR[rdx*1+r12] + mov QWORD PTR[rsp],r14 + mov QWORD PTR[8+rsp],rdx + mov QWORD PTR[16+rsp],rcx + + cmp rdx,r12 + mov r8d,DWORD PTR[rbx] + mov r9d,DWORD PTR[4+rbx] + mov r10d,DWORD PTR[8+rbx] + mov r11d,DWORD PTR[12+rbx] + je $L$cbc_enc_tail + jmp $L$cbc_eloop + +ALIGN 16 +$L$cbc_eloop:: + xor r8d,DWORD PTR[r12] + xor r9d,DWORD PTR[4+r12] + xor r10d,DWORD PTR[8+r12] + bswap r8d + xor r11d,DWORD PTR[12+r12] + bswap r9d + bswap r10d + bswap r11d + + call _x86_64_Camellia_encrypt + + mov r14,QWORD PTR[rsp] + bswap r8d + mov rdx,QWORD PTR[8+rsp] + bswap r9d + mov rcx,QWORD PTR[16+rsp] + bswap r10d + mov DWORD PTR[r13],r8d + bswap r11d + mov DWORD PTR[4+r13],r9d + mov DWORD PTR[8+r13],r10d + lea r12,QWORD PTR[16+r12] + mov DWORD PTR[12+r13],r11d + cmp r12,rdx + lea r13,QWORD PTR[16+r13] + jne $L$cbc_eloop + + cmp rcx,0 + jne $L$cbc_enc_tail + + mov r13,QWORD PTR[40+rsp] + mov DWORD PTR[r13],r8d + mov DWORD PTR[4+r13],r9d + mov DWORD PTR[8+r13],r10d + mov DWORD PTR[12+r13],r11d + jmp $L$cbc_done + +ALIGN 16 +$L$cbc_enc_tail:: + xor rax,rax + mov QWORD PTR[((0+24))+rsp],rax + mov QWORD PTR[((8+24))+rsp],rax + mov QWORD PTR[16+rsp],rax + +$L$cbc_enc_pushf:: + pushfq + cld + mov rsi,r12 + lea rdi,QWORD PTR[((8+24))+rsp] + DD 09066A4F3h + + popfq +$L$cbc_enc_popf:: + + lea r12,QWORD PTR[24+rsp] + lea rax,QWORD PTR[((16+24))+rsp] + mov QWORD PTR[8+rsp],rax + jmp $L$cbc_eloop + + +ALIGN 16 +$L$CBC_DECRYPT:: + xchg r15,r14 + add rdx,15 + and rcx,15 + and rdx,-16 + mov QWORD PTR[rsp],r14 + lea rdx,QWORD PTR[rdx*1+r12] + mov QWORD PTR[8+rsp],rdx + mov QWORD PTR[16+rsp],rcx + + mov rax,QWORD PTR[rbx] + mov rbx,QWORD PTR[8+rbx] + jmp $L$cbc_dloop +ALIGN 16 +$L$cbc_dloop:: + mov r8d,DWORD PTR[r12] + mov r9d,DWORD PTR[4+r12] + mov r10d,DWORD PTR[8+r12] + bswap r8d + mov r11d,DWORD PTR[12+r12] + bswap r9d + mov QWORD PTR[((0+24))+rsp],rax + bswap r10d + mov QWORD PTR[((8+24))+rsp],rbx + bswap r11d + + call _x86_64_Camellia_decrypt + + mov r14,QWORD PTR[rsp] + mov rdx,QWORD PTR[8+rsp] + mov rcx,QWORD PTR[16+rsp] + + bswap r8d + mov rax,QWORD PTR[r12] + bswap r9d + mov rbx,QWORD PTR[8+r12] + bswap r10d + xor r8d,DWORD PTR[((0+24))+rsp] + bswap r11d + xor r9d,DWORD PTR[((4+24))+rsp] + xor r10d,DWORD PTR[((8+24))+rsp] + lea r12,QWORD PTR[16+r12] + xor r11d,DWORD PTR[((12+24))+rsp] + cmp r12,rdx + je $L$cbc_ddone + + mov DWORD PTR[r13],r8d + mov DWORD PTR[4+r13],r9d + mov DWORD PTR[8+r13],r10d + mov DWORD PTR[12+r13],r11d + + lea r13,QWORD PTR[16+r13] + jmp $L$cbc_dloop + +ALIGN 16 +$L$cbc_ddone:: + mov rdx,QWORD PTR[40+rsp] + cmp rcx,0 + jne $L$cbc_dec_tail + + mov DWORD PTR[r13],r8d + mov DWORD PTR[4+r13],r9d + mov DWORD PTR[8+r13],r10d + mov DWORD PTR[12+r13],r11d + + mov QWORD PTR[rdx],rax + mov QWORD PTR[8+rdx],rbx + jmp $L$cbc_done +ALIGN 16 +$L$cbc_dec_tail:: + mov DWORD PTR[((0+24))+rsp],r8d + mov DWORD PTR[((4+24))+rsp],r9d + mov DWORD PTR[((8+24))+rsp],r10d + mov DWORD PTR[((12+24))+rsp],r11d + +$L$cbc_dec_pushf:: + pushfq + cld + lea rsi,QWORD PTR[((8+24))+rsp] + lea rdi,QWORD PTR[r13] + DD 09066A4F3h + + popfq +$L$cbc_dec_popf:: + + mov QWORD PTR[rdx],rax + mov QWORD PTR[8+rdx],rbx + jmp $L$cbc_done + +ALIGN 16 +$L$cbc_done:: + mov rcx,QWORD PTR[48+rsp] + mov r15,QWORD PTR[rcx] + mov r14,QWORD PTR[8+rcx] + mov r13,QWORD PTR[16+rcx] + mov r12,QWORD PTR[24+rcx] + mov rbp,QWORD PTR[32+rcx] + mov rbx,QWORD PTR[40+rcx] + lea rsp,QWORD PTR[48+rcx] +$L$cbc_abort:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_Camellia_cbc_encrypt:: +Camellia_cbc_encrypt ENDP + +DB 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54 +DB 95,54,52,32,98,121,32,60,97,112,112,114,111,64,111,112 +DB 101,110,115,115,108,46,111,114,103,62,0 +EXTERN __imp_RtlVirtualUnwind:NEAR + +ALIGN 16 +common_se_handler PROC PRIVATE + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + lea rsp,QWORD PTR[((-64))+rsp] + + mov rax,QWORD PTR[120+r8] + mov rbx,QWORD PTR[248+r8] + + mov rsi,QWORD PTR[8+r9] + mov r11,QWORD PTR[56+r9] + + mov r10d,DWORD PTR[r11] + lea r10,QWORD PTR[r10*1+rsi] + cmp rbx,r10 + jb $L$in_prologue + + mov rax,QWORD PTR[152+r8] + + mov r10d,DWORD PTR[4+r11] + lea r10,QWORD PTR[r10*1+rsi] + cmp rbx,r10 + jae $L$in_prologue + + lea rax,QWORD PTR[40+rax] + mov rbx,QWORD PTR[((-8))+rax] + mov rbp,QWORD PTR[((-16))+rax] + mov r13,QWORD PTR[((-24))+rax] + mov r14,QWORD PTR[((-32))+rax] + mov r15,QWORD PTR[((-40))+rax] + mov QWORD PTR[144+r8],rbx + mov QWORD PTR[160+r8],rbp + mov QWORD PTR[224+r8],r13 + mov QWORD PTR[232+r8],r14 + mov QWORD PTR[240+r8],r15 + +$L$in_prologue:: + mov rdi,QWORD PTR[8+rax] + mov rsi,QWORD PTR[16+rax] + mov QWORD PTR[152+r8],rax + mov QWORD PTR[168+r8],rsi + mov QWORD PTR[176+r8],rdi + + jmp $L$common_seh_exit +common_se_handler ENDP + + +ALIGN 16 +cbc_se_handler PROC PRIVATE + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + lea rsp,QWORD PTR[((-64))+rsp] + + mov rax,QWORD PTR[120+r8] + mov rbx,QWORD PTR[248+r8] + + lea r10,QWORD PTR[$L$cbc_prologue] + cmp rbx,r10 + jb $L$in_cbc_prologue + + lea r10,QWORD PTR[$L$cbc_body] + cmp rbx,r10 + jb $L$in_cbc_frame_setup + + mov rax,QWORD PTR[152+r8] + + lea r10,QWORD PTR[$L$cbc_abort] + cmp rbx,r10 + jae $L$in_cbc_prologue + + + lea r10,QWORD PTR[$L$cbc_enc_pushf] + cmp rbx,r10 + jbe $L$in_cbc_no_flag + lea rax,QWORD PTR[8+rax] + lea r10,QWORD PTR[$L$cbc_enc_popf] + cmp rbx,r10 + jb $L$in_cbc_no_flag + lea rax,QWORD PTR[((-8))+rax] + lea r10,QWORD PTR[$L$cbc_dec_pushf] + cmp rbx,r10 + jbe $L$in_cbc_no_flag + lea rax,QWORD PTR[8+rax] + lea r10,QWORD PTR[$L$cbc_dec_popf] + cmp rbx,r10 + jb $L$in_cbc_no_flag + lea rax,QWORD PTR[((-8))+rax] + +$L$in_cbc_no_flag:: + mov rax,QWORD PTR[48+rax] + lea rax,QWORD PTR[48+rax] + +$L$in_cbc_frame_setup:: + mov rbx,QWORD PTR[((-8))+rax] + mov rbp,QWORD PTR[((-16))+rax] + mov r12,QWORD PTR[((-24))+rax] + mov r13,QWORD PTR[((-32))+rax] + mov r14,QWORD PTR[((-40))+rax] + mov r15,QWORD PTR[((-48))+rax] + mov QWORD PTR[144+r8],rbx + mov QWORD PTR[160+r8],rbp + mov QWORD PTR[216+r8],r12 + mov QWORD PTR[224+r8],r13 + mov QWORD PTR[232+r8],r14 + mov QWORD PTR[240+r8],r15 + +$L$in_cbc_prologue:: + mov rdi,QWORD PTR[8+rax] + mov rsi,QWORD PTR[16+rax] + mov QWORD PTR[152+r8],rax + mov QWORD PTR[168+r8],rsi + mov QWORD PTR[176+r8],rdi + +ALIGN 4 +$L$common_seh_exit:: + + mov rdi,QWORD PTR[40+r9] + mov rsi,r8 + mov ecx,154 + DD 0a548f3fch + + + mov rsi,r9 + xor rcx,rcx + mov rdx,QWORD PTR[8+rsi] + mov r8,QWORD PTR[rsi] + mov r9,QWORD PTR[16+rsi] + mov r10,QWORD PTR[40+rsi] + lea r11,QWORD PTR[56+rsi] + lea r12,QWORD PTR[24+rsi] + mov QWORD PTR[32+rsp],r10 + mov QWORD PTR[40+rsp],r11 + mov QWORD PTR[48+rsp],r12 + mov QWORD PTR[56+rsp],rcx + call QWORD PTR[__imp_RtlVirtualUnwind] + + mov eax,1 + lea rsp,QWORD PTR[64+rsp] + popfq + pop r15 + pop r14 + pop r13 + pop r12 + pop rbp + pop rbx + pop rdi + pop rsi + DB 0F3h,0C3h ;repret +cbc_se_handler ENDP + +.text$ ENDS +.pdata SEGMENT READONLY ALIGN(4) +ALIGN 4 + DD imagerel $L$SEH_begin_Camellia_EncryptBlock_Rounds + DD imagerel $L$SEH_end_Camellia_EncryptBlock_Rounds + DD imagerel $L$SEH_info_Camellia_EncryptBlock_Rounds + + DD imagerel $L$SEH_begin_Camellia_DecryptBlock_Rounds + DD imagerel $L$SEH_end_Camellia_DecryptBlock_Rounds + DD imagerel $L$SEH_info_Camellia_DecryptBlock_Rounds + + DD imagerel $L$SEH_begin_Camellia_Ekeygen + DD imagerel $L$SEH_end_Camellia_Ekeygen + DD imagerel $L$SEH_info_Camellia_Ekeygen + + DD imagerel $L$SEH_begin_Camellia_cbc_encrypt + DD imagerel $L$SEH_end_Camellia_cbc_encrypt + DD imagerel $L$SEH_info_Camellia_cbc_encrypt + +.pdata ENDS +.xdata SEGMENT READONLY ALIGN(8) +ALIGN 8 +$L$SEH_info_Camellia_EncryptBlock_Rounds:: +DB 9,0,0,0 + DD imagerel common_se_handler + DD imagerel $L$enc_prologue,imagerel $L$enc_epilogue + +$L$SEH_info_Camellia_DecryptBlock_Rounds:: +DB 9,0,0,0 + DD imagerel common_se_handler + DD imagerel $L$dec_prologue,imagerel $L$dec_epilogue + +$L$SEH_info_Camellia_Ekeygen:: +DB 9,0,0,0 + DD imagerel common_se_handler + DD imagerel $L$key_prologue,imagerel $L$key_epilogue + +$L$SEH_info_Camellia_cbc_encrypt:: +DB 9,0,0,0 + DD imagerel cbc_se_handler + +.xdata ENDS +END diff --git a/deps/openssl/asm/x64-win32-masm/md5/md5-x86_64.asm b/deps/openssl/asm/x64-win32-masm/md5/md5-x86_64.asm new file mode 100644 index 0000000000..34305c687c --- /dev/null +++ b/deps/openssl/asm/x64-win32-masm/md5/md5-x86_64.asm @@ -0,0 +1,781 @@ +OPTION DOTNAME +.text$ SEGMENT ALIGN(64) 'CODE' +ALIGN 16 + +PUBLIC md5_block_asm_data_order + +md5_block_asm_data_order PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_md5_block_asm_data_order:: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + push rbp + push rbx + push r12 + push r14 + push r15 +$L$prologue:: + + + + + mov rbp,rdi + shl rdx,6 + lea rdi,QWORD PTR[rdx*1+rsi] + mov eax,DWORD PTR[((0*4))+rbp] + mov ebx,DWORD PTR[((1*4))+rbp] + mov ecx,DWORD PTR[((2*4))+rbp] + mov edx,DWORD PTR[((3*4))+rbp] + + + + + + + + cmp rsi,rdi + je $L$end + + + +$L$loop:: + mov r8d,eax + mov r9d,ebx + mov r14d,ecx + mov r15d,edx + mov r10d,DWORD PTR[((0*4))+rsi] + mov r11d,edx + xor r11d,ecx + lea eax,DWORD PTR[0d76aa478h+r10*1+rax] + and r11d,ebx + xor r11d,edx + mov r10d,DWORD PTR[((1*4))+rsi] + add eax,r11d + rol eax,7 + mov r11d,ecx + add eax,ebx + xor r11d,ebx + lea edx,DWORD PTR[0e8c7b756h+r10*1+rdx] + and r11d,eax + xor r11d,ecx + mov r10d,DWORD PTR[((2*4))+rsi] + add edx,r11d + rol edx,12 + mov r11d,ebx + add edx,eax + xor r11d,eax + lea ecx,DWORD PTR[0242070dbh+r10*1+rcx] + and r11d,edx + xor r11d,ebx + mov r10d,DWORD PTR[((3*4))+rsi] + add ecx,r11d + rol ecx,17 + mov r11d,eax + add ecx,edx + xor r11d,edx + lea ebx,DWORD PTR[0c1bdceeeh+r10*1+rbx] + and r11d,ecx + xor r11d,eax + mov r10d,DWORD PTR[((4*4))+rsi] + add ebx,r11d + rol ebx,22 + mov r11d,edx + add ebx,ecx + xor r11d,ecx + lea eax,DWORD PTR[0f57c0fafh+r10*1+rax] + and r11d,ebx + xor r11d,edx + mov r10d,DWORD PTR[((5*4))+rsi] + add eax,r11d + rol eax,7 + mov r11d,ecx + add eax,ebx + xor r11d,ebx + lea edx,DWORD PTR[04787c62ah+r10*1+rdx] + and r11d,eax + xor r11d,ecx + mov r10d,DWORD PTR[((6*4))+rsi] + add edx,r11d + rol edx,12 + mov r11d,ebx + add edx,eax + xor r11d,eax + lea ecx,DWORD PTR[0a8304613h+r10*1+rcx] + and r11d,edx + xor r11d,ebx + mov r10d,DWORD PTR[((7*4))+rsi] + add ecx,r11d + rol ecx,17 + mov r11d,eax + add ecx,edx + xor r11d,edx + lea ebx,DWORD PTR[0fd469501h+r10*1+rbx] + and r11d,ecx + xor r11d,eax + mov r10d,DWORD PTR[((8*4))+rsi] + add ebx,r11d + rol ebx,22 + mov r11d,edx + add ebx,ecx + xor r11d,ecx + lea eax,DWORD PTR[0698098d8h+r10*1+rax] + and r11d,ebx + xor r11d,edx + mov r10d,DWORD PTR[((9*4))+rsi] + add eax,r11d + rol eax,7 + mov r11d,ecx + add eax,ebx + xor r11d,ebx + lea edx,DWORD PTR[08b44f7afh+r10*1+rdx] + and r11d,eax + xor r11d,ecx + mov r10d,DWORD PTR[((10*4))+rsi] + add edx,r11d + rol edx,12 + mov r11d,ebx + add edx,eax + xor r11d,eax + lea ecx,DWORD PTR[0ffff5bb1h+r10*1+rcx] + and r11d,edx + xor r11d,ebx + mov r10d,DWORD PTR[((11*4))+rsi] + add ecx,r11d + rol ecx,17 + mov r11d,eax + add ecx,edx + xor r11d,edx + lea ebx,DWORD PTR[0895cd7beh+r10*1+rbx] + and r11d,ecx + xor r11d,eax + mov r10d,DWORD PTR[((12*4))+rsi] + add ebx,r11d + rol ebx,22 + mov r11d,edx + add ebx,ecx + xor r11d,ecx + lea eax,DWORD PTR[06b901122h+r10*1+rax] + and r11d,ebx + xor r11d,edx + mov r10d,DWORD PTR[((13*4))+rsi] + add eax,r11d + rol eax,7 + mov r11d,ecx + add eax,ebx + xor r11d,ebx + lea edx,DWORD PTR[0fd987193h+r10*1+rdx] + and r11d,eax + xor r11d,ecx + mov r10d,DWORD PTR[((14*4))+rsi] + add edx,r11d + rol edx,12 + mov r11d,ebx + add edx,eax + xor r11d,eax + lea ecx,DWORD PTR[0a679438eh+r10*1+rcx] + and r11d,edx + xor r11d,ebx + mov r10d,DWORD PTR[((15*4))+rsi] + add ecx,r11d + rol ecx,17 + mov r11d,eax + add ecx,edx + xor r11d,edx + lea ebx,DWORD PTR[049b40821h+r10*1+rbx] + and r11d,ecx + xor r11d,eax + mov r10d,DWORD PTR[((0*4))+rsi] + add ebx,r11d + rol ebx,22 + mov r11d,edx + add ebx,ecx + mov r10d,DWORD PTR[((1*4))+rsi] + mov r11d,edx + mov r12d,edx + not r11d + lea eax,DWORD PTR[0f61e2562h+r10*1+rax] + and r12d,ebx + and r11d,ecx + mov r10d,DWORD PTR[((6*4))+rsi] + or r12d,r11d + mov r11d,ecx + add eax,r12d + mov r12d,ecx + rol eax,5 + add eax,ebx + not r11d + lea edx,DWORD PTR[0c040b340h+r10*1+rdx] + and r12d,eax + and r11d,ebx + mov r10d,DWORD PTR[((11*4))+rsi] + or r12d,r11d + mov r11d,ebx + add edx,r12d + mov r12d,ebx + rol edx,9 + add edx,eax + not r11d + lea ecx,DWORD PTR[0265e5a51h+r10*1+rcx] + and r12d,edx + and r11d,eax + mov r10d,DWORD PTR[((0*4))+rsi] + or r12d,r11d + mov r11d,eax + add ecx,r12d + mov r12d,eax + rol ecx,14 + add ecx,edx + not r11d + lea ebx,DWORD PTR[0e9b6c7aah+r10*1+rbx] + and r12d,ecx + and r11d,edx + mov r10d,DWORD PTR[((5*4))+rsi] + or r12d,r11d + mov r11d,edx + add ebx,r12d + mov r12d,edx + rol ebx,20 + add ebx,ecx + not r11d + lea eax,DWORD PTR[0d62f105dh+r10*1+rax] + and r12d,ebx + and r11d,ecx + mov r10d,DWORD PTR[((10*4))+rsi] + or r12d,r11d + mov r11d,ecx + add eax,r12d + mov r12d,ecx + rol eax,5 + add eax,ebx + not r11d + lea edx,DWORD PTR[02441453h+r10*1+rdx] + and r12d,eax + and r11d,ebx + mov r10d,DWORD PTR[((15*4))+rsi] + or r12d,r11d + mov r11d,ebx + add edx,r12d + mov r12d,ebx + rol edx,9 + add edx,eax + not r11d + lea ecx,DWORD PTR[0d8a1e681h+r10*1+rcx] + and r12d,edx + and r11d,eax + mov r10d,DWORD PTR[((4*4))+rsi] + or r12d,r11d + mov r11d,eax + add ecx,r12d + mov r12d,eax + rol ecx,14 + add ecx,edx + not r11d + lea ebx,DWORD PTR[0e7d3fbc8h+r10*1+rbx] + and r12d,ecx + and r11d,edx + mov r10d,DWORD PTR[((9*4))+rsi] + or r12d,r11d + mov r11d,edx + add ebx,r12d + mov r12d,edx + rol ebx,20 + add ebx,ecx + not r11d + lea eax,DWORD PTR[021e1cde6h+r10*1+rax] + and r12d,ebx + and r11d,ecx + mov r10d,DWORD PTR[((14*4))+rsi] + or r12d,r11d + mov r11d,ecx + add eax,r12d + mov r12d,ecx + rol eax,5 + add eax,ebx + not r11d + lea edx,DWORD PTR[0c33707d6h+r10*1+rdx] + and r12d,eax + and r11d,ebx + mov r10d,DWORD PTR[((3*4))+rsi] + or r12d,r11d + mov r11d,ebx + add edx,r12d + mov r12d,ebx + rol edx,9 + add edx,eax + not r11d + lea ecx,DWORD PTR[0f4d50d87h+r10*1+rcx] + and r12d,edx + and r11d,eax + mov r10d,DWORD PTR[((8*4))+rsi] + or r12d,r11d + mov r11d,eax + add ecx,r12d + mov r12d,eax + rol ecx,14 + add ecx,edx + not r11d + lea ebx,DWORD PTR[0455a14edh+r10*1+rbx] + and r12d,ecx + and r11d,edx + mov r10d,DWORD PTR[((13*4))+rsi] + or r12d,r11d + mov r11d,edx + add ebx,r12d + mov r12d,edx + rol ebx,20 + add ebx,ecx + not r11d + lea eax,DWORD PTR[0a9e3e905h+r10*1+rax] + and r12d,ebx + and r11d,ecx + mov r10d,DWORD PTR[((2*4))+rsi] + or r12d,r11d + mov r11d,ecx + add eax,r12d + mov r12d,ecx + rol eax,5 + add eax,ebx + not r11d + lea edx,DWORD PTR[0fcefa3f8h+r10*1+rdx] + and r12d,eax + and r11d,ebx + mov r10d,DWORD PTR[((7*4))+rsi] + or r12d,r11d + mov r11d,ebx + add edx,r12d + mov r12d,ebx + rol edx,9 + add edx,eax + not r11d + lea ecx,DWORD PTR[0676f02d9h+r10*1+rcx] + and r12d,edx + and r11d,eax + mov r10d,DWORD PTR[((12*4))+rsi] + or r12d,r11d + mov r11d,eax + add ecx,r12d + mov r12d,eax + rol ecx,14 + add ecx,edx + not r11d + lea ebx,DWORD PTR[08d2a4c8ah+r10*1+rbx] + and r12d,ecx + and r11d,edx + mov r10d,DWORD PTR[((0*4))+rsi] + or r12d,r11d + mov r11d,edx + add ebx,r12d + mov r12d,edx + rol ebx,20 + add ebx,ecx + mov r10d,DWORD PTR[((5*4))+rsi] + mov r11d,ecx + lea eax,DWORD PTR[0fffa3942h+r10*1+rax] + mov r10d,DWORD PTR[((8*4))+rsi] + xor r11d,edx + xor r11d,ebx + add eax,r11d + rol eax,4 + mov r11d,ebx + add eax,ebx + lea edx,DWORD PTR[08771f681h+r10*1+rdx] + mov r10d,DWORD PTR[((11*4))+rsi] + xor r11d,ecx + xor r11d,eax + add edx,r11d + rol edx,11 + mov r11d,eax + add edx,eax + lea ecx,DWORD PTR[06d9d6122h+r10*1+rcx] + mov r10d,DWORD PTR[((14*4))+rsi] + xor r11d,ebx + xor r11d,edx + add ecx,r11d + rol ecx,16 + mov r11d,edx + add ecx,edx + lea ebx,DWORD PTR[0fde5380ch+r10*1+rbx] + mov r10d,DWORD PTR[((1*4))+rsi] + xor r11d,eax + xor r11d,ecx + add ebx,r11d + rol ebx,23 + mov r11d,ecx + add ebx,ecx + lea eax,DWORD PTR[0a4beea44h+r10*1+rax] + mov r10d,DWORD PTR[((4*4))+rsi] + xor r11d,edx + xor r11d,ebx + add eax,r11d + rol eax,4 + mov r11d,ebx + add eax,ebx + lea edx,DWORD PTR[04bdecfa9h+r10*1+rdx] + mov r10d,DWORD PTR[((7*4))+rsi] + xor r11d,ecx + xor r11d,eax + add edx,r11d + rol edx,11 + mov r11d,eax + add edx,eax + lea ecx,DWORD PTR[0f6bb4b60h+r10*1+rcx] + mov r10d,DWORD PTR[((10*4))+rsi] + xor r11d,ebx + xor r11d,edx + add ecx,r11d + rol ecx,16 + mov r11d,edx + add ecx,edx + lea ebx,DWORD PTR[0bebfbc70h+r10*1+rbx] + mov r10d,DWORD PTR[((13*4))+rsi] + xor r11d,eax + xor r11d,ecx + add ebx,r11d + rol ebx,23 + mov r11d,ecx + add ebx,ecx + lea eax,DWORD PTR[0289b7ec6h+r10*1+rax] + mov r10d,DWORD PTR[((0*4))+rsi] + xor r11d,edx + xor r11d,ebx + add eax,r11d + rol eax,4 + mov r11d,ebx + add eax,ebx + lea edx,DWORD PTR[0eaa127fah+r10*1+rdx] + mov r10d,DWORD PTR[((3*4))+rsi] + xor r11d,ecx + xor r11d,eax + add edx,r11d + rol edx,11 + mov r11d,eax + add edx,eax + lea ecx,DWORD PTR[0d4ef3085h+r10*1+rcx] + mov r10d,DWORD PTR[((6*4))+rsi] + xor r11d,ebx + xor r11d,edx + add ecx,r11d + rol ecx,16 + mov r11d,edx + add ecx,edx + lea ebx,DWORD PTR[04881d05h+r10*1+rbx] + mov r10d,DWORD PTR[((9*4))+rsi] + xor r11d,eax + xor r11d,ecx + add ebx,r11d + rol ebx,23 + mov r11d,ecx + add ebx,ecx + lea eax,DWORD PTR[0d9d4d039h+r10*1+rax] + mov r10d,DWORD PTR[((12*4))+rsi] + xor r11d,edx + xor r11d,ebx + add eax,r11d + rol eax,4 + mov r11d,ebx + add eax,ebx + lea edx,DWORD PTR[0e6db99e5h+r10*1+rdx] + mov r10d,DWORD PTR[((15*4))+rsi] + xor r11d,ecx + xor r11d,eax + add edx,r11d + rol edx,11 + mov r11d,eax + add edx,eax + lea ecx,DWORD PTR[01fa27cf8h+r10*1+rcx] + mov r10d,DWORD PTR[((2*4))+rsi] + xor r11d,ebx + xor r11d,edx + add ecx,r11d + rol ecx,16 + mov r11d,edx + add ecx,edx + lea ebx,DWORD PTR[0c4ac5665h+r10*1+rbx] + mov r10d,DWORD PTR[((0*4))+rsi] + xor r11d,eax + xor r11d,ecx + add ebx,r11d + rol ebx,23 + mov r11d,ecx + add ebx,ecx + mov r10d,DWORD PTR[((0*4))+rsi] + mov r11d,0ffffffffh + xor r11d,edx + lea eax,DWORD PTR[0f4292244h+r10*1+rax] + or r11d,ebx + xor r11d,ecx + add eax,r11d + mov r10d,DWORD PTR[((7*4))+rsi] + mov r11d,0ffffffffh + rol eax,6 + xor r11d,ecx + add eax,ebx + lea edx,DWORD PTR[0432aff97h+r10*1+rdx] + or r11d,eax + xor r11d,ebx + add edx,r11d + mov r10d,DWORD PTR[((14*4))+rsi] + mov r11d,0ffffffffh + rol edx,10 + xor r11d,ebx + add edx,eax + lea ecx,DWORD PTR[0ab9423a7h+r10*1+rcx] + or r11d,edx + xor r11d,eax + add ecx,r11d + mov r10d,DWORD PTR[((5*4))+rsi] + mov r11d,0ffffffffh + rol ecx,15 + xor r11d,eax + add ecx,edx + lea ebx,DWORD PTR[0fc93a039h+r10*1+rbx] + or r11d,ecx + xor r11d,edx + add ebx,r11d + mov r10d,DWORD PTR[((12*4))+rsi] + mov r11d,0ffffffffh + rol ebx,21 + xor r11d,edx + add ebx,ecx + lea eax,DWORD PTR[0655b59c3h+r10*1+rax] + or r11d,ebx + xor r11d,ecx + add eax,r11d + mov r10d,DWORD PTR[((3*4))+rsi] + mov r11d,0ffffffffh + rol eax,6 + xor r11d,ecx + add eax,ebx + lea edx,DWORD PTR[08f0ccc92h+r10*1+rdx] + or r11d,eax + xor r11d,ebx + add edx,r11d + mov r10d,DWORD PTR[((10*4))+rsi] + mov r11d,0ffffffffh + rol edx,10 + xor r11d,ebx + add edx,eax + lea ecx,DWORD PTR[0ffeff47dh+r10*1+rcx] + or r11d,edx + xor r11d,eax + add ecx,r11d + mov r10d,DWORD PTR[((1*4))+rsi] + mov r11d,0ffffffffh + rol ecx,15 + xor r11d,eax + add ecx,edx + lea ebx,DWORD PTR[085845dd1h+r10*1+rbx] + or r11d,ecx + xor r11d,edx + add ebx,r11d + mov r10d,DWORD PTR[((8*4))+rsi] + mov r11d,0ffffffffh + rol ebx,21 + xor r11d,edx + add ebx,ecx + lea eax,DWORD PTR[06fa87e4fh+r10*1+rax] + or r11d,ebx + xor r11d,ecx + add eax,r11d + mov r10d,DWORD PTR[((15*4))+rsi] + mov r11d,0ffffffffh + rol eax,6 + xor r11d,ecx + add eax,ebx + lea edx,DWORD PTR[0fe2ce6e0h+r10*1+rdx] + or r11d,eax + xor r11d,ebx + add edx,r11d + mov r10d,DWORD PTR[((6*4))+rsi] + mov r11d,0ffffffffh + rol edx,10 + xor r11d,ebx + add edx,eax + lea ecx,DWORD PTR[0a3014314h+r10*1+rcx] + or r11d,edx + xor r11d,eax + add ecx,r11d + mov r10d,DWORD PTR[((13*4))+rsi] + mov r11d,0ffffffffh + rol ecx,15 + xor r11d,eax + add ecx,edx + lea ebx,DWORD PTR[04e0811a1h+r10*1+rbx] + or r11d,ecx + xor r11d,edx + add ebx,r11d + mov r10d,DWORD PTR[((4*4))+rsi] + mov r11d,0ffffffffh + rol ebx,21 + xor r11d,edx + add ebx,ecx + lea eax,DWORD PTR[0f7537e82h+r10*1+rax] + or r11d,ebx + xor r11d,ecx + add eax,r11d + mov r10d,DWORD PTR[((11*4))+rsi] + mov r11d,0ffffffffh + rol eax,6 + xor r11d,ecx + add eax,ebx + lea edx,DWORD PTR[0bd3af235h+r10*1+rdx] + or r11d,eax + xor r11d,ebx + add edx,r11d + mov r10d,DWORD PTR[((2*4))+rsi] + mov r11d,0ffffffffh + rol edx,10 + xor r11d,ebx + add edx,eax + lea ecx,DWORD PTR[02ad7d2bbh+r10*1+rcx] + or r11d,edx + xor r11d,eax + add ecx,r11d + mov r10d,DWORD PTR[((9*4))+rsi] + mov r11d,0ffffffffh + rol ecx,15 + xor r11d,eax + add ecx,edx + lea ebx,DWORD PTR[0eb86d391h+r10*1+rbx] + or r11d,ecx + xor r11d,edx + add ebx,r11d + mov r10d,DWORD PTR[((0*4))+rsi] + mov r11d,0ffffffffh + rol ebx,21 + xor r11d,edx + add ebx,ecx + + add eax,r8d + add ebx,r9d + add ecx,r14d + add edx,r15d + + + add rsi,64 + cmp rsi,rdi + jb $L$loop + + + +$L$end:: + mov DWORD PTR[((0*4))+rbp],eax + mov DWORD PTR[((1*4))+rbp],ebx + mov DWORD PTR[((2*4))+rbp],ecx + mov DWORD PTR[((3*4))+rbp],edx + + mov r15,QWORD PTR[rsp] + mov r14,QWORD PTR[8+rsp] + mov r12,QWORD PTR[16+rsp] + mov rbx,QWORD PTR[24+rsp] + mov rbp,QWORD PTR[32+rsp] + add rsp,40 +$L$epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_md5_block_asm_data_order:: +md5_block_asm_data_order ENDP +EXTERN __imp_RtlVirtualUnwind:NEAR + +ALIGN 16 +se_handler PROC PRIVATE + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD PTR[120+r8] + mov rbx,QWORD PTR[248+r8] + + lea r10,QWORD PTR[$L$prologue] + cmp rbx,r10 + jb $L$in_prologue + + mov rax,QWORD PTR[152+r8] + + lea r10,QWORD PTR[$L$epilogue] + cmp rbx,r10 + jae $L$in_prologue + + lea rax,QWORD PTR[40+rax] + + mov rbp,QWORD PTR[((-8))+rax] + mov rbx,QWORD PTR[((-16))+rax] + mov r12,QWORD PTR[((-24))+rax] + mov r14,QWORD PTR[((-32))+rax] + mov r15,QWORD PTR[((-40))+rax] + mov QWORD PTR[144+r8],rbx + mov QWORD PTR[160+r8],rbp + mov QWORD PTR[216+r8],r12 + mov QWORD PTR[232+r8],r14 + mov QWORD PTR[240+r8],r15 + +$L$in_prologue:: + mov rdi,QWORD PTR[8+rax] + mov rsi,QWORD PTR[16+rax] + mov QWORD PTR[152+r8],rax + mov QWORD PTR[168+r8],rsi + mov QWORD PTR[176+r8],rdi + + mov rdi,QWORD PTR[40+r9] + mov rsi,r8 + mov ecx,154 + DD 0a548f3fch + + + mov rsi,r9 + xor rcx,rcx + mov rdx,QWORD PTR[8+rsi] + mov r8,QWORD PTR[rsi] + mov r9,QWORD PTR[16+rsi] + mov r10,QWORD PTR[40+rsi] + lea r11,QWORD PTR[56+rsi] + lea r12,QWORD PTR[24+rsi] + mov QWORD PTR[32+rsp],r10 + mov QWORD PTR[40+rsp],r11 + mov QWORD PTR[48+rsp],r12 + mov QWORD PTR[56+rsp],rcx + call QWORD PTR[__imp_RtlVirtualUnwind] + + mov eax,1 + add rsp,64 + popfq + pop r15 + pop r14 + pop r13 + pop r12 + pop rbp + pop rbx + pop rdi + pop rsi + DB 0F3h,0C3h ;repret +se_handler ENDP + +.text$ ENDS +.pdata SEGMENT READONLY ALIGN(4) +ALIGN 4 + DD imagerel $L$SEH_begin_md5_block_asm_data_order + DD imagerel $L$SEH_end_md5_block_asm_data_order + DD imagerel $L$SEH_info_md5_block_asm_data_order + +.pdata ENDS +.xdata SEGMENT READONLY ALIGN(8) +ALIGN 8 +$L$SEH_info_md5_block_asm_data_order:: +DB 9,0,0,0 + DD imagerel se_handler + +.xdata ENDS +END diff --git a/deps/openssl/asm/x64-win32-masm/rc4/rc4-x86_64.asm b/deps/openssl/asm/x64-win32-masm/rc4/rc4-x86_64.asm new file mode 100644 index 0000000000..f508fa6679 --- /dev/null +++ b/deps/openssl/asm/x64-win32-masm/rc4/rc4-x86_64.asm @@ -0,0 +1,586 @@ +OPTION DOTNAME +.text$ SEGMENT ALIGN(64) 'CODE' + +PUBLIC RC4 + +ALIGN 16 +RC4 PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_RC4:: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + + or rsi,rsi + jne $L$entry + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] + DB 0F3h,0C3h ;repret +$L$entry:: + push rbx + push r12 + push r13 +$L$prologue:: + + add rdi,8 + mov r8d,DWORD PTR[((-8))+rdi] + mov r12d,DWORD PTR[((-4))+rdi] + cmp DWORD PTR[256+rdi],-1 + je $L$RC4_CHAR + inc r8b + mov r9d,DWORD PTR[r8*4+rdi] + test rsi,-8 + jz $L$loop1 + jmp $L$loop8 +ALIGN 16 +$L$loop8:: + add r12b,r9b + mov r10,r8 + mov r13d,DWORD PTR[r12*4+rdi] + ror rax,8 + inc r10b + mov r11d,DWORD PTR[r10*4+rdi] + cmp r12,r10 + mov DWORD PTR[r12*4+rdi],r9d + cmove r11,r9 + mov DWORD PTR[r8*4+rdi],r13d + add r13b,r9b + mov al,BYTE PTR[r13*4+rdi] + add r12b,r11b + mov r8,r10 + mov r13d,DWORD PTR[r12*4+rdi] + ror rax,8 + inc r8b + mov r9d,DWORD PTR[r8*4+rdi] + cmp r12,r8 + mov DWORD PTR[r12*4+rdi],r11d + cmove r9,r11 + mov DWORD PTR[r10*4+rdi],r13d + add r13b,r11b + mov al,BYTE PTR[r13*4+rdi] + add r12b,r9b + mov r10,r8 + mov r13d,DWORD PTR[r12*4+rdi] + ror rax,8 + inc r10b + mov r11d,DWORD PTR[r10*4+rdi] + cmp r12,r10 + mov DWORD PTR[r12*4+rdi],r9d + cmove r11,r9 + mov DWORD PTR[r8*4+rdi],r13d + add r13b,r9b + mov al,BYTE PTR[r13*4+rdi] + add r12b,r11b + mov r8,r10 + mov r13d,DWORD PTR[r12*4+rdi] + ror rax,8 + inc r8b + mov r9d,DWORD PTR[r8*4+rdi] + cmp r12,r8 + mov DWORD PTR[r12*4+rdi],r11d + cmove r9,r11 + mov DWORD PTR[r10*4+rdi],r13d + add r13b,r11b + mov al,BYTE PTR[r13*4+rdi] + add r12b,r9b + mov r10,r8 + mov r13d,DWORD PTR[r12*4+rdi] + ror rax,8 + inc r10b + mov r11d,DWORD PTR[r10*4+rdi] + cmp r12,r10 + mov DWORD PTR[r12*4+rdi],r9d + cmove r11,r9 + mov DWORD PTR[r8*4+rdi],r13d + add r13b,r9b + mov al,BYTE PTR[r13*4+rdi] + add r12b,r11b + mov r8,r10 + mov r13d,DWORD PTR[r12*4+rdi] + ror rax,8 + inc r8b + mov r9d,DWORD PTR[r8*4+rdi] + cmp r12,r8 + mov DWORD PTR[r12*4+rdi],r11d + cmove r9,r11 + mov DWORD PTR[r10*4+rdi],r13d + add r13b,r11b + mov al,BYTE PTR[r13*4+rdi] + add r12b,r9b + mov r10,r8 + mov r13d,DWORD PTR[r12*4+rdi] + ror rax,8 + inc r10b + mov r11d,DWORD PTR[r10*4+rdi] + cmp r12,r10 + mov DWORD PTR[r12*4+rdi],r9d + cmove r11,r9 + mov DWORD PTR[r8*4+rdi],r13d + add r13b,r9b + mov al,BYTE PTR[r13*4+rdi] + add r12b,r11b + mov r8,r10 + mov r13d,DWORD PTR[r12*4+rdi] + ror rax,8 + inc r8b + mov r9d,DWORD PTR[r8*4+rdi] + cmp r12,r8 + mov DWORD PTR[r12*4+rdi],r11d + cmove r9,r11 + mov DWORD PTR[r10*4+rdi],r13d + add r13b,r11b + mov al,BYTE PTR[r13*4+rdi] + ror rax,8 + sub rsi,8 + + xor rax,QWORD PTR[rdx] + add rdx,8 + mov QWORD PTR[rcx],rax + add rcx,8 + + test rsi,-8 + jnz $L$loop8 + cmp rsi,0 + jne $L$loop1 + jmp $L$exit + +ALIGN 16 +$L$loop1:: + add r12b,r9b + mov r13d,DWORD PTR[r12*4+rdi] + mov DWORD PTR[r12*4+rdi],r9d + mov DWORD PTR[r8*4+rdi],r13d + add r9b,r13b + inc r8b + mov r13d,DWORD PTR[r9*4+rdi] + mov r9d,DWORD PTR[r8*4+rdi] + xor r13b,BYTE PTR[rdx] + inc rdx + mov BYTE PTR[rcx],r13b + inc rcx + dec rsi + jnz $L$loop1 + jmp $L$exit + +ALIGN 16 +$L$RC4_CHAR:: + add r8b,1 + movzx r9d,BYTE PTR[r8*1+rdi] + test rsi,-8 + jz $L$cloop1 + cmp DWORD PTR[260+rdi],0 + jnz $L$cloop1 + jmp $L$cloop8 +ALIGN 16 +$L$cloop8:: + mov eax,DWORD PTR[rdx] + mov ebx,DWORD PTR[4+rdx] + add r12b,r9b + lea r10,QWORD PTR[1+r8] + movzx r13d,BYTE PTR[r12*1+rdi] + movzx r10d,r10b + movzx r11d,BYTE PTR[r10*1+rdi] + mov BYTE PTR[r12*1+rdi],r9b + cmp r12,r10 + mov BYTE PTR[r8*1+rdi],r13b + jne $L$cmov0 + + mov r11,r9 +$L$cmov0:: + add r13b,r9b + xor al,BYTE PTR[r13*1+rdi] + ror eax,8 + add r12b,r11b + lea r8,QWORD PTR[1+r10] + movzx r13d,BYTE PTR[r12*1+rdi] + movzx r8d,r8b + movzx r9d,BYTE PTR[r8*1+rdi] + mov BYTE PTR[r12*1+rdi],r11b + cmp r12,r8 + mov BYTE PTR[r10*1+rdi],r13b + jne $L$cmov1 + + mov r9,r11 +$L$cmov1:: + add r13b,r11b + xor al,BYTE PTR[r13*1+rdi] + ror eax,8 + add r12b,r9b + lea r10,QWORD PTR[1+r8] + movzx r13d,BYTE PTR[r12*1+rdi] + movzx r10d,r10b + movzx r11d,BYTE PTR[r10*1+rdi] + mov BYTE PTR[r12*1+rdi],r9b + cmp r12,r10 + mov BYTE PTR[r8*1+rdi],r13b + jne $L$cmov2 + + mov r11,r9 +$L$cmov2:: + add r13b,r9b + xor al,BYTE PTR[r13*1+rdi] + ror eax,8 + add r12b,r11b + lea r8,QWORD PTR[1+r10] + movzx r13d,BYTE PTR[r12*1+rdi] + movzx r8d,r8b + movzx r9d,BYTE PTR[r8*1+rdi] + mov BYTE PTR[r12*1+rdi],r11b + cmp r12,r8 + mov BYTE PTR[r10*1+rdi],r13b + jne $L$cmov3 + + mov r9,r11 +$L$cmov3:: + add r13b,r11b + xor al,BYTE PTR[r13*1+rdi] + ror eax,8 + add r12b,r9b + lea r10,QWORD PTR[1+r8] + movzx r13d,BYTE PTR[r12*1+rdi] + movzx r10d,r10b + movzx r11d,BYTE PTR[r10*1+rdi] + mov BYTE PTR[r12*1+rdi],r9b + cmp r12,r10 + mov BYTE PTR[r8*1+rdi],r13b + jne $L$cmov4 + + mov r11,r9 +$L$cmov4:: + add r13b,r9b + xor bl,BYTE PTR[r13*1+rdi] + ror ebx,8 + add r12b,r11b + lea r8,QWORD PTR[1+r10] + movzx r13d,BYTE PTR[r12*1+rdi] + movzx r8d,r8b + movzx r9d,BYTE PTR[r8*1+rdi] + mov BYTE PTR[r12*1+rdi],r11b + cmp r12,r8 + mov BYTE PTR[r10*1+rdi],r13b + jne $L$cmov5 + + mov r9,r11 +$L$cmov5:: + add r13b,r11b + xor bl,BYTE PTR[r13*1+rdi] + ror ebx,8 + add r12b,r9b + lea r10,QWORD PTR[1+r8] + movzx r13d,BYTE PTR[r12*1+rdi] + movzx r10d,r10b + movzx r11d,BYTE PTR[r10*1+rdi] + mov BYTE PTR[r12*1+rdi],r9b + cmp r12,r10 + mov BYTE PTR[r8*1+rdi],r13b + jne $L$cmov6 + + mov r11,r9 +$L$cmov6:: + add r13b,r9b + xor bl,BYTE PTR[r13*1+rdi] + ror ebx,8 + add r12b,r11b + lea r8,QWORD PTR[1+r10] + movzx r13d,BYTE PTR[r12*1+rdi] + movzx r8d,r8b + movzx r9d,BYTE PTR[r8*1+rdi] + mov BYTE PTR[r12*1+rdi],r11b + cmp r12,r8 + mov BYTE PTR[r10*1+rdi],r13b + jne $L$cmov7 + + mov r9,r11 +$L$cmov7:: + add r13b,r11b + xor bl,BYTE PTR[r13*1+rdi] + ror ebx,8 + lea rsi,QWORD PTR[((-8))+rsi] + mov DWORD PTR[rcx],eax + lea rdx,QWORD PTR[8+rdx] + mov DWORD PTR[4+rcx],ebx + lea rcx,QWORD PTR[8+rcx] + + test rsi,-8 + jnz $L$cloop8 + cmp rsi,0 + jne $L$cloop1 + jmp $L$exit +ALIGN 16 +$L$cloop1:: + add r12b,r9b + movzx r13d,BYTE PTR[r12*1+rdi] + mov BYTE PTR[r12*1+rdi],r9b + mov BYTE PTR[r8*1+rdi],r13b + add r13b,r9b + add r8b,1 + movzx r13d,r13b + movzx r8d,r8b + movzx r13d,BYTE PTR[r13*1+rdi] + movzx r9d,BYTE PTR[r8*1+rdi] + xor r13b,BYTE PTR[rdx] + lea rdx,QWORD PTR[1+rdx] + mov BYTE PTR[rcx],r13b + lea rcx,QWORD PTR[1+rcx] + sub rsi,1 + jnz $L$cloop1 + jmp $L$exit + +ALIGN 16 +$L$exit:: + sub r8b,1 + mov DWORD PTR[((-8))+rdi],r8d + mov DWORD PTR[((-4))+rdi],r12d + + mov r13,QWORD PTR[rsp] + mov r12,QWORD PTR[8+rsp] + mov rbx,QWORD PTR[16+rsp] + add rsp,24 +$L$epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_RC4:: +RC4 ENDP +EXTERN OPENSSL_ia32cap_P:NEAR +PUBLIC RC4_set_key + +ALIGN 16 +RC4_set_key PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_RC4_set_key:: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + lea rdi,QWORD PTR[8+rdi] + lea rdx,QWORD PTR[rsi*1+rdx] + neg rsi + mov rcx,rsi + xor eax,eax + xor r9,r9 + xor r10,r10 + xor r11,r11 + + mov r8d,DWORD PTR[OPENSSL_ia32cap_P] + bt r8d,20 + jnc $L$w1stloop + bt r8d,30 + setc r9b + mov DWORD PTR[260+rdi],r9d + jmp $L$c1stloop + +ALIGN 16 +$L$w1stloop:: + mov DWORD PTR[rax*4+rdi],eax + add al,1 + jnc $L$w1stloop + + xor r9,r9 + xor r8,r8 +ALIGN 16 +$L$w2ndloop:: + mov r10d,DWORD PTR[r9*4+rdi] + add r8b,BYTE PTR[rsi*1+rdx] + add r8b,r10b + add rsi,1 + mov r11d,DWORD PTR[r8*4+rdi] + cmovz rsi,rcx + mov DWORD PTR[r8*4+rdi],r10d + mov DWORD PTR[r9*4+rdi],r11d + add r9b,1 + jnc $L$w2ndloop + jmp $L$exit_key + +ALIGN 16 +$L$c1stloop:: + mov BYTE PTR[rax*1+rdi],al + add al,1 + jnc $L$c1stloop + + xor r9,r9 + xor r8,r8 +ALIGN 16 +$L$c2ndloop:: + mov r10b,BYTE PTR[r9*1+rdi] + add r8b,BYTE PTR[rsi*1+rdx] + add r8b,r10b + add rsi,1 + mov r11b,BYTE PTR[r8*1+rdi] + jnz $L$cnowrap + mov rsi,rcx +$L$cnowrap:: + mov BYTE PTR[r8*1+rdi],r10b + mov BYTE PTR[r9*1+rdi],r11b + add r9b,1 + jnc $L$c2ndloop + mov DWORD PTR[256+rdi],-1 + +ALIGN 16 +$L$exit_key:: + xor eax,eax + mov DWORD PTR[((-8))+rdi],eax + mov DWORD PTR[((-4))+rdi],eax + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_RC4_set_key:: +RC4_set_key ENDP + +PUBLIC RC4_options + +ALIGN 16 +RC4_options PROC PUBLIC + lea rax,QWORD PTR[$L$opts] + mov edx,DWORD PTR[OPENSSL_ia32cap_P] + bt edx,20 + jnc $L$done + add rax,12 + bt edx,30 + jnc $L$done + add rax,13 +$L$done:: + DB 0F3h,0C3h ;repret +ALIGN 64 +$L$opts:: +DB 114,99,52,40,56,120,44,105,110,116,41,0 +DB 114,99,52,40,56,120,44,99,104,97,114,41,0 +DB 114,99,52,40,49,120,44,99,104,97,114,41,0 +DB 82,67,52,32,102,111,114,32,120,56,54,95,54,52,44,32 +DB 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 +DB 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 +DB 62,0 +ALIGN 64 +RC4_options ENDP +EXTERN __imp_RtlVirtualUnwind:NEAR + +ALIGN 16 +stream_se_handler PROC PRIVATE + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD PTR[120+r8] + mov rbx,QWORD PTR[248+r8] + + lea r10,QWORD PTR[$L$prologue] + cmp rbx,r10 + jb $L$in_prologue + + mov rax,QWORD PTR[152+r8] + + lea r10,QWORD PTR[$L$epilogue] + cmp rbx,r10 + jae $L$in_prologue + + lea rax,QWORD PTR[24+rax] + + mov rbx,QWORD PTR[((-8))+rax] + mov r12,QWORD PTR[((-16))+rax] + mov r13,QWORD PTR[((-24))+rax] + mov QWORD PTR[144+r8],rbx + mov QWORD PTR[216+r8],r12 + mov QWORD PTR[224+r8],r13 + +$L$in_prologue:: + mov rdi,QWORD PTR[8+rax] + mov rsi,QWORD PTR[16+rax] + mov QWORD PTR[152+r8],rax + mov QWORD PTR[168+r8],rsi + mov QWORD PTR[176+r8],rdi + + jmp $L$common_seh_exit +stream_se_handler ENDP + + +ALIGN 16 +key_se_handler PROC PRIVATE + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD PTR[152+r8] + mov rdi,QWORD PTR[8+rax] + mov rsi,QWORD PTR[16+rax] + mov QWORD PTR[168+r8],rsi + mov QWORD PTR[176+r8],rdi + +$L$common_seh_exit:: + + mov rdi,QWORD PTR[40+r9] + mov rsi,r8 + mov ecx,154 + DD 0a548f3fch + + + mov rsi,r9 + xor rcx,rcx + mov rdx,QWORD PTR[8+rsi] + mov r8,QWORD PTR[rsi] + mov r9,QWORD PTR[16+rsi] + mov r10,QWORD PTR[40+rsi] + lea r11,QWORD PTR[56+rsi] + lea r12,QWORD PTR[24+rsi] + mov QWORD PTR[32+rsp],r10 + mov QWORD PTR[40+rsp],r11 + mov QWORD PTR[48+rsp],r12 + mov QWORD PTR[56+rsp],rcx + call QWORD PTR[__imp_RtlVirtualUnwind] + + mov eax,1 + add rsp,64 + popfq + pop r15 + pop r14 + pop r13 + pop r12 + pop rbp + pop rbx + pop rdi + pop rsi + DB 0F3h,0C3h ;repret +key_se_handler ENDP + +.text$ ENDS +.pdata SEGMENT READONLY ALIGN(4) +ALIGN 4 + DD imagerel $L$SEH_begin_RC4 + DD imagerel $L$SEH_end_RC4 + DD imagerel $L$SEH_info_RC4 + + DD imagerel $L$SEH_begin_RC4_set_key + DD imagerel $L$SEH_end_RC4_set_key + DD imagerel $L$SEH_info_RC4_set_key + +.pdata ENDS +.xdata SEGMENT READONLY ALIGN(8) +ALIGN 8 +$L$SEH_info_RC4:: +DB 9,0,0,0 + DD imagerel stream_se_handler +$L$SEH_info_RC4_set_key:: +DB 9,0,0,0 + DD imagerel key_se_handler + +.xdata ENDS +END diff --git a/deps/openssl/asm/x64-win32-masm/sha/sha1-x86_64.asm b/deps/openssl/asm/x64-win32-masm/sha/sha1-x86_64.asm new file mode 100644 index 0000000000..9323f2b26a --- /dev/null +++ b/deps/openssl/asm/x64-win32-masm/sha/sha1-x86_64.asm @@ -0,0 +1,1394 @@ +OPTION DOTNAME +.text$ SEGMENT ALIGN(64) 'CODE' +PUBLIC sha1_block_data_order + +ALIGN 16 +sha1_block_data_order PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_sha1_block_data_order:: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + push rbx + push rbp + push r12 + mov r11,rsp + mov r8,rdi + sub rsp,72 + mov r9,rsi + and rsp,-64 + mov r10,rdx + mov QWORD PTR[64+rsp],r11 +$L$prologue:: + + mov edx,DWORD PTR[r8] + mov esi,DWORD PTR[4+r8] + mov edi,DWORD PTR[8+r8] + mov ebp,DWORD PTR[12+r8] + mov r11d,DWORD PTR[16+r8] +ALIGN 4 +$L$loop:: + mov eax,DWORD PTR[r9] + bswap eax + mov DWORD PTR[rsp],eax + lea r12d,DWORD PTR[05a827999h+r11*1+rax] + mov ebx,edi + mov eax,DWORD PTR[4+r9] + mov r11d,edx + xor ebx,ebp + bswap eax + rol r11d,5 + and ebx,esi + mov DWORD PTR[4+rsp],eax + add r12d,r11d + xor ebx,ebp + rol esi,30 + add r12d,ebx + lea r11d,DWORD PTR[05a827999h+rbp*1+rax] + mov ebx,esi + mov eax,DWORD PTR[8+r9] + mov ebp,r12d + xor ebx,edi + bswap eax + rol ebp,5 + and ebx,edx + mov DWORD PTR[8+rsp],eax + add r11d,ebp + xor ebx,edi + rol edx,30 + add r11d,ebx + lea ebp,DWORD PTR[05a827999h+rdi*1+rax] + mov ebx,edx + mov eax,DWORD PTR[12+r9] + mov edi,r11d + xor ebx,esi + bswap eax + rol edi,5 + and ebx,r12d + mov DWORD PTR[12+rsp],eax + add ebp,edi + xor ebx,esi + rol r12d,30 + add ebp,ebx + lea edi,DWORD PTR[05a827999h+rsi*1+rax] + mov ebx,r12d + mov eax,DWORD PTR[16+r9] + mov esi,ebp + xor ebx,edx + bswap eax + rol esi,5 + and ebx,r11d + mov DWORD PTR[16+rsp],eax + add edi,esi + xor ebx,edx + rol r11d,30 + add edi,ebx + lea esi,DWORD PTR[05a827999h+rdx*1+rax] + mov ebx,r11d + mov eax,DWORD PTR[20+r9] + mov edx,edi + xor ebx,r12d + bswap eax + rol edx,5 + and ebx,ebp + mov DWORD PTR[20+rsp],eax + add esi,edx + xor ebx,r12d + rol ebp,30 + add esi,ebx + lea edx,DWORD PTR[05a827999h+r12*1+rax] + mov ebx,ebp + mov eax,DWORD PTR[24+r9] + mov r12d,esi + xor ebx,r11d + bswap eax + rol r12d,5 + and ebx,edi + mov DWORD PTR[24+rsp],eax + add edx,r12d + xor ebx,r11d + rol edi,30 + add edx,ebx + lea r12d,DWORD PTR[05a827999h+r11*1+rax] + mov ebx,edi + mov eax,DWORD PTR[28+r9] + mov r11d,edx + xor ebx,ebp + bswap eax + rol r11d,5 + and ebx,esi + mov DWORD PTR[28+rsp],eax + add r12d,r11d + xor ebx,ebp + rol esi,30 + add r12d,ebx + lea r11d,DWORD PTR[05a827999h+rbp*1+rax] + mov ebx,esi + mov eax,DWORD PTR[32+r9] + mov ebp,r12d + xor ebx,edi + bswap eax + rol ebp,5 + and ebx,edx + mov DWORD PTR[32+rsp],eax + add r11d,ebp + xor ebx,edi + rol edx,30 + add r11d,ebx + lea ebp,DWORD PTR[05a827999h+rdi*1+rax] + mov ebx,edx + mov eax,DWORD PTR[36+r9] + mov edi,r11d + xor ebx,esi + bswap eax + rol edi,5 + and ebx,r12d + mov DWORD PTR[36+rsp],eax + add ebp,edi + xor ebx,esi + rol r12d,30 + add ebp,ebx + lea edi,DWORD PTR[05a827999h+rsi*1+rax] + mov ebx,r12d + mov eax,DWORD PTR[40+r9] + mov esi,ebp + xor ebx,edx + bswap eax + rol esi,5 + and ebx,r11d + mov DWORD PTR[40+rsp],eax + add edi,esi + xor ebx,edx + rol r11d,30 + add edi,ebx + lea esi,DWORD PTR[05a827999h+rdx*1+rax] + mov ebx,r11d + mov eax,DWORD PTR[44+r9] + mov edx,edi + xor ebx,r12d + bswap eax + rol edx,5 + and ebx,ebp + mov DWORD PTR[44+rsp],eax + add esi,edx + xor ebx,r12d + rol ebp,30 + add esi,ebx + lea edx,DWORD PTR[05a827999h+r12*1+rax] + mov ebx,ebp + mov eax,DWORD PTR[48+r9] + mov r12d,esi + xor ebx,r11d + bswap eax + rol r12d,5 + and ebx,edi + mov DWORD PTR[48+rsp],eax + add edx,r12d + xor ebx,r11d + rol edi,30 + add edx,ebx + lea r12d,DWORD PTR[05a827999h+r11*1+rax] + mov ebx,edi + mov eax,DWORD PTR[52+r9] + mov r11d,edx + xor ebx,ebp + bswap eax + rol r11d,5 + and ebx,esi + mov DWORD PTR[52+rsp],eax + add r12d,r11d + xor ebx,ebp + rol esi,30 + add r12d,ebx + lea r11d,DWORD PTR[05a827999h+rbp*1+rax] + mov ebx,esi + mov eax,DWORD PTR[56+r9] + mov ebp,r12d + xor ebx,edi + bswap eax + rol ebp,5 + and ebx,edx + mov DWORD PTR[56+rsp],eax + add r11d,ebp + xor ebx,edi + rol edx,30 + add r11d,ebx + lea ebp,DWORD PTR[05a827999h+rdi*1+rax] + mov ebx,edx + mov eax,DWORD PTR[60+r9] + mov edi,r11d + xor ebx,esi + bswap eax + rol edi,5 + and ebx,r12d + mov DWORD PTR[60+rsp],eax + add ebp,edi + xor ebx,esi + rol r12d,30 + add ebp,ebx + lea edi,DWORD PTR[05a827999h+rsi*1+rax] + mov eax,DWORD PTR[rsp] + mov ebx,r12d + mov esi,ebp + xor eax,DWORD PTR[8+rsp] + xor ebx,edx + rol esi,5 + xor eax,DWORD PTR[32+rsp] + and ebx,r11d + add edi,esi + xor eax,DWORD PTR[52+rsp] + xor ebx,edx + rol r11d,30 + add edi,ebx + rol eax,1 + mov DWORD PTR[rsp],eax + lea esi,DWORD PTR[05a827999h+rdx*1+rax] + mov eax,DWORD PTR[4+rsp] + mov ebx,r11d + mov edx,edi + xor eax,DWORD PTR[12+rsp] + xor ebx,r12d + rol edx,5 + xor eax,DWORD PTR[36+rsp] + and ebx,ebp + add esi,edx + xor eax,DWORD PTR[56+rsp] + xor ebx,r12d + rol ebp,30 + add esi,ebx + rol eax,1 + mov DWORD PTR[4+rsp],eax + lea edx,DWORD PTR[05a827999h+r12*1+rax] + mov eax,DWORD PTR[8+rsp] + mov ebx,ebp + mov r12d,esi + xor eax,DWORD PTR[16+rsp] + xor ebx,r11d + rol r12d,5 + xor eax,DWORD PTR[40+rsp] + and ebx,edi + add edx,r12d + xor eax,DWORD PTR[60+rsp] + xor ebx,r11d + rol edi,30 + add edx,ebx + rol eax,1 + mov DWORD PTR[8+rsp],eax + lea r12d,DWORD PTR[05a827999h+r11*1+rax] + mov eax,DWORD PTR[12+rsp] + mov ebx,edi + mov r11d,edx + xor eax,DWORD PTR[20+rsp] + xor ebx,ebp + rol r11d,5 + xor eax,DWORD PTR[44+rsp] + and ebx,esi + add r12d,r11d + xor eax,DWORD PTR[rsp] + xor ebx,ebp + rol esi,30 + add r12d,ebx + rol eax,1 + mov DWORD PTR[12+rsp],eax + lea r11d,DWORD PTR[05a827999h+rbp*1+rax] + mov eax,DWORD PTR[16+rsp] + mov ebx,esi + mov ebp,r12d + xor eax,DWORD PTR[24+rsp] + xor ebx,edi + rol ebp,5 + xor eax,DWORD PTR[48+rsp] + and ebx,edx + add r11d,ebp + xor eax,DWORD PTR[4+rsp] + xor ebx,edi + rol edx,30 + add r11d,ebx + rol eax,1 + mov DWORD PTR[16+rsp],eax + lea ebp,DWORD PTR[1859775393+rdi*1+rax] + mov eax,DWORD PTR[20+rsp] + mov ebx,edx + mov edi,r11d + xor eax,DWORD PTR[28+rsp] + xor ebx,r12d + rol edi,5 + xor eax,DWORD PTR[52+rsp] + xor ebx,esi + add ebp,edi + xor eax,DWORD PTR[8+rsp] + rol r12d,30 + add ebp,ebx + rol eax,1 + mov DWORD PTR[20+rsp],eax + lea edi,DWORD PTR[1859775393+rsi*1+rax] + mov eax,DWORD PTR[24+rsp] + mov ebx,r12d + mov esi,ebp + xor eax,DWORD PTR[32+rsp] + xor ebx,r11d + rol esi,5 + xor eax,DWORD PTR[56+rsp] + xor ebx,edx + add edi,esi + xor eax,DWORD PTR[12+rsp] + rol r11d,30 + add edi,ebx + rol eax,1 + mov DWORD PTR[24+rsp],eax + lea esi,DWORD PTR[1859775393+rdx*1+rax] + mov eax,DWORD PTR[28+rsp] + mov ebx,r11d + mov edx,edi + xor eax,DWORD PTR[36+rsp] + xor ebx,ebp + rol edx,5 + xor eax,DWORD PTR[60+rsp] + xor ebx,r12d + add esi,edx + xor eax,DWORD PTR[16+rsp] + rol ebp,30 + add esi,ebx + rol eax,1 + mov DWORD PTR[28+rsp],eax + lea edx,DWORD PTR[1859775393+r12*1+rax] + mov eax,DWORD PTR[32+rsp] + mov ebx,ebp + mov r12d,esi + xor eax,DWORD PTR[40+rsp] + xor ebx,edi + rol r12d,5 + xor eax,DWORD PTR[rsp] + xor ebx,r11d + add edx,r12d + xor eax,DWORD PTR[20+rsp] + rol edi,30 + add edx,ebx + rol eax,1 + mov DWORD PTR[32+rsp],eax + lea r12d,DWORD PTR[1859775393+r11*1+rax] + mov eax,DWORD PTR[36+rsp] + mov ebx,edi + mov r11d,edx + xor eax,DWORD PTR[44+rsp] + xor ebx,esi + rol r11d,5 + xor eax,DWORD PTR[4+rsp] + xor ebx,ebp + add r12d,r11d + xor eax,DWORD PTR[24+rsp] + rol esi,30 + add r12d,ebx + rol eax,1 + mov DWORD PTR[36+rsp],eax + lea r11d,DWORD PTR[1859775393+rbp*1+rax] + mov eax,DWORD PTR[40+rsp] + mov ebx,esi + mov ebp,r12d + xor eax,DWORD PTR[48+rsp] + xor ebx,edx + rol ebp,5 + xor eax,DWORD PTR[8+rsp] + xor ebx,edi + add r11d,ebp + xor eax,DWORD PTR[28+rsp] + rol edx,30 + add r11d,ebx + rol eax,1 + mov DWORD PTR[40+rsp],eax + lea ebp,DWORD PTR[1859775393+rdi*1+rax] + mov eax,DWORD PTR[44+rsp] + mov ebx,edx + mov edi,r11d + xor eax,DWORD PTR[52+rsp] + xor ebx,r12d + rol edi,5 + xor eax,DWORD PTR[12+rsp] + xor ebx,esi + add ebp,edi + xor eax,DWORD PTR[32+rsp] + rol r12d,30 + add ebp,ebx + rol eax,1 + mov DWORD PTR[44+rsp],eax + lea edi,DWORD PTR[1859775393+rsi*1+rax] + mov eax,DWORD PTR[48+rsp] + mov ebx,r12d + mov esi,ebp + xor eax,DWORD PTR[56+rsp] + xor ebx,r11d + rol esi,5 + xor eax,DWORD PTR[16+rsp] + xor ebx,edx + add edi,esi + xor eax,DWORD PTR[36+rsp] + rol r11d,30 + add edi,ebx + rol eax,1 + mov DWORD PTR[48+rsp],eax + lea esi,DWORD PTR[1859775393+rdx*1+rax] + mov eax,DWORD PTR[52+rsp] + mov ebx,r11d + mov edx,edi + xor eax,DWORD PTR[60+rsp] + xor ebx,ebp + rol edx,5 + xor eax,DWORD PTR[20+rsp] + xor ebx,r12d + add esi,edx + xor eax,DWORD PTR[40+rsp] + rol ebp,30 + add esi,ebx + rol eax,1 + mov DWORD PTR[52+rsp],eax + lea edx,DWORD PTR[1859775393+r12*1+rax] + mov eax,DWORD PTR[56+rsp] + mov ebx,ebp + mov r12d,esi + xor eax,DWORD PTR[rsp] + xor ebx,edi + rol r12d,5 + xor eax,DWORD PTR[24+rsp] + xor ebx,r11d + add edx,r12d + xor eax,DWORD PTR[44+rsp] + rol edi,30 + add edx,ebx + rol eax,1 + mov DWORD PTR[56+rsp],eax + lea r12d,DWORD PTR[1859775393+r11*1+rax] + mov eax,DWORD PTR[60+rsp] + mov ebx,edi + mov r11d,edx + xor eax,DWORD PTR[4+rsp] + xor ebx,esi + rol r11d,5 + xor eax,DWORD PTR[28+rsp] + xor ebx,ebp + add r12d,r11d + xor eax,DWORD PTR[48+rsp] + rol esi,30 + add r12d,ebx + rol eax,1 + mov DWORD PTR[60+rsp],eax + lea r11d,DWORD PTR[1859775393+rbp*1+rax] + mov eax,DWORD PTR[rsp] + mov ebx,esi + mov ebp,r12d + xor eax,DWORD PTR[8+rsp] + xor ebx,edx + rol ebp,5 + xor eax,DWORD PTR[32+rsp] + xor ebx,edi + add r11d,ebp + xor eax,DWORD PTR[52+rsp] + rol edx,30 + add r11d,ebx + rol eax,1 + mov DWORD PTR[rsp],eax + lea ebp,DWORD PTR[1859775393+rdi*1+rax] + mov eax,DWORD PTR[4+rsp] + mov ebx,edx + mov edi,r11d + xor eax,DWORD PTR[12+rsp] + xor ebx,r12d + rol edi,5 + xor eax,DWORD PTR[36+rsp] + xor ebx,esi + add ebp,edi + xor eax,DWORD PTR[56+rsp] + rol r12d,30 + add ebp,ebx + rol eax,1 + mov DWORD PTR[4+rsp],eax + lea edi,DWORD PTR[1859775393+rsi*1+rax] + mov eax,DWORD PTR[8+rsp] + mov ebx,r12d + mov esi,ebp + xor eax,DWORD PTR[16+rsp] + xor ebx,r11d + rol esi,5 + xor eax,DWORD PTR[40+rsp] + xor ebx,edx + add edi,esi + xor eax,DWORD PTR[60+rsp] + rol r11d,30 + add edi,ebx + rol eax,1 + mov DWORD PTR[8+rsp],eax + lea esi,DWORD PTR[1859775393+rdx*1+rax] + mov eax,DWORD PTR[12+rsp] + mov ebx,r11d + mov edx,edi + xor eax,DWORD PTR[20+rsp] + xor ebx,ebp + rol edx,5 + xor eax,DWORD PTR[44+rsp] + xor ebx,r12d + add esi,edx + xor eax,DWORD PTR[rsp] + rol ebp,30 + add esi,ebx + rol eax,1 + mov DWORD PTR[12+rsp],eax + lea edx,DWORD PTR[1859775393+r12*1+rax] + mov eax,DWORD PTR[16+rsp] + mov ebx,ebp + mov r12d,esi + xor eax,DWORD PTR[24+rsp] + xor ebx,edi + rol r12d,5 + xor eax,DWORD PTR[48+rsp] + xor ebx,r11d + add edx,r12d + xor eax,DWORD PTR[4+rsp] + rol edi,30 + add edx,ebx + rol eax,1 + mov DWORD PTR[16+rsp],eax + lea r12d,DWORD PTR[1859775393+r11*1+rax] + mov eax,DWORD PTR[20+rsp] + mov ebx,edi + mov r11d,edx + xor eax,DWORD PTR[28+rsp] + xor ebx,esi + rol r11d,5 + xor eax,DWORD PTR[52+rsp] + xor ebx,ebp + add r12d,r11d + xor eax,DWORD PTR[8+rsp] + rol esi,30 + add r12d,ebx + rol eax,1 + mov DWORD PTR[20+rsp],eax + lea r11d,DWORD PTR[1859775393+rbp*1+rax] + mov eax,DWORD PTR[24+rsp] + mov ebx,esi + mov ebp,r12d + xor eax,DWORD PTR[32+rsp] + xor ebx,edx + rol ebp,5 + xor eax,DWORD PTR[56+rsp] + xor ebx,edi + add r11d,ebp + xor eax,DWORD PTR[12+rsp] + rol edx,30 + add r11d,ebx + rol eax,1 + mov DWORD PTR[24+rsp],eax + lea ebp,DWORD PTR[1859775393+rdi*1+rax] + mov eax,DWORD PTR[28+rsp] + mov ebx,edx + mov edi,r11d + xor eax,DWORD PTR[36+rsp] + xor ebx,r12d + rol edi,5 + xor eax,DWORD PTR[60+rsp] + xor ebx,esi + add ebp,edi + xor eax,DWORD PTR[16+rsp] + rol r12d,30 + add ebp,ebx + rol eax,1 + mov DWORD PTR[28+rsp],eax + lea edi,DWORD PTR[1859775393+rsi*1+rax] + mov eax,DWORD PTR[32+rsp] + mov ebx,r12d + mov esi,ebp + xor eax,DWORD PTR[40+rsp] + xor ebx,r11d + rol esi,5 + xor eax,DWORD PTR[rsp] + xor ebx,edx + add edi,esi + xor eax,DWORD PTR[20+rsp] + rol r11d,30 + add edi,ebx + rol eax,1 + mov DWORD PTR[32+rsp],eax + lea esi,DWORD PTR[08f1bbcdch+rdx*1+rax] + mov eax,DWORD PTR[36+rsp] + mov ebx,ebp + mov ecx,ebp + xor eax,DWORD PTR[44+rsp] + mov edx,edi + and ebx,r11d + xor eax,DWORD PTR[4+rsp] + or ecx,r11d + rol edx,5 + xor eax,DWORD PTR[24+rsp] + and ecx,r12d + add esi,edx + rol eax,1 + or ebx,ecx + rol ebp,30 + mov DWORD PTR[36+rsp],eax + add esi,ebx + lea edx,DWORD PTR[08f1bbcdch+r12*1+rax] + mov eax,DWORD PTR[40+rsp] + mov ebx,edi + mov ecx,edi + xor eax,DWORD PTR[48+rsp] + mov r12d,esi + and ebx,ebp + xor eax,DWORD PTR[8+rsp] + or ecx,ebp + rol r12d,5 + xor eax,DWORD PTR[28+rsp] + and ecx,r11d + add edx,r12d + rol eax,1 + or ebx,ecx + rol edi,30 + mov DWORD PTR[40+rsp],eax + add edx,ebx + lea r12d,DWORD PTR[08f1bbcdch+r11*1+rax] + mov eax,DWORD PTR[44+rsp] + mov ebx,esi + mov ecx,esi + xor eax,DWORD PTR[52+rsp] + mov r11d,edx + and ebx,edi + xor eax,DWORD PTR[12+rsp] + or ecx,edi + rol r11d,5 + xor eax,DWORD PTR[32+rsp] + and ecx,ebp + add r12d,r11d + rol eax,1 + or ebx,ecx + rol esi,30 + mov DWORD PTR[44+rsp],eax + add r12d,ebx + lea r11d,DWORD PTR[08f1bbcdch+rbp*1+rax] + mov eax,DWORD PTR[48+rsp] + mov ebx,edx + mov ecx,edx + xor eax,DWORD PTR[56+rsp] + mov ebp,r12d + and ebx,esi + xor eax,DWORD PTR[16+rsp] + or ecx,esi + rol ebp,5 + xor eax,DWORD PTR[36+rsp] + and ecx,edi + add r11d,ebp + rol eax,1 + or ebx,ecx + rol edx,30 + mov DWORD PTR[48+rsp],eax + add r11d,ebx + lea ebp,DWORD PTR[08f1bbcdch+rdi*1+rax] + mov eax,DWORD PTR[52+rsp] + mov ebx,r12d + mov ecx,r12d + xor eax,DWORD PTR[60+rsp] + mov edi,r11d + and ebx,edx + xor eax,DWORD PTR[20+rsp] + or ecx,edx + rol edi,5 + xor eax,DWORD PTR[40+rsp] + and ecx,esi + add ebp,edi + rol eax,1 + or ebx,ecx + rol r12d,30 + mov DWORD PTR[52+rsp],eax + add ebp,ebx + lea edi,DWORD PTR[08f1bbcdch+rsi*1+rax] + mov eax,DWORD PTR[56+rsp] + mov ebx,r11d + mov ecx,r11d + xor eax,DWORD PTR[rsp] + mov esi,ebp + and ebx,r12d + xor eax,DWORD PTR[24+rsp] + or ecx,r12d + rol esi,5 + xor eax,DWORD PTR[44+rsp] + and ecx,edx + add edi,esi + rol eax,1 + or ebx,ecx + rol r11d,30 + mov DWORD PTR[56+rsp],eax + add edi,ebx + lea esi,DWORD PTR[08f1bbcdch+rdx*1+rax] + mov eax,DWORD PTR[60+rsp] + mov ebx,ebp + mov ecx,ebp + xor eax,DWORD PTR[4+rsp] + mov edx,edi + and ebx,r11d + xor eax,DWORD PTR[28+rsp] + or ecx,r11d + rol edx,5 + xor eax,DWORD PTR[48+rsp] + and ecx,r12d + add esi,edx + rol eax,1 + or ebx,ecx + rol ebp,30 + mov DWORD PTR[60+rsp],eax + add esi,ebx + lea edx,DWORD PTR[08f1bbcdch+r12*1+rax] + mov eax,DWORD PTR[rsp] + mov ebx,edi + mov ecx,edi + xor eax,DWORD PTR[8+rsp] + mov r12d,esi + and ebx,ebp + xor eax,DWORD PTR[32+rsp] + or ecx,ebp + rol r12d,5 + xor eax,DWORD PTR[52+rsp] + and ecx,r11d + add edx,r12d + rol eax,1 + or ebx,ecx + rol edi,30 + mov DWORD PTR[rsp],eax + add edx,ebx + lea r12d,DWORD PTR[08f1bbcdch+r11*1+rax] + mov eax,DWORD PTR[4+rsp] + mov ebx,esi + mov ecx,esi + xor eax,DWORD PTR[12+rsp] + mov r11d,edx + and ebx,edi + xor eax,DWORD PTR[36+rsp] + or ecx,edi + rol r11d,5 + xor eax,DWORD PTR[56+rsp] + and ecx,ebp + add r12d,r11d + rol eax,1 + or ebx,ecx + rol esi,30 + mov DWORD PTR[4+rsp],eax + add r12d,ebx + lea r11d,DWORD PTR[08f1bbcdch+rbp*1+rax] + mov eax,DWORD PTR[8+rsp] + mov ebx,edx + mov ecx,edx + xor eax,DWORD PTR[16+rsp] + mov ebp,r12d + and ebx,esi + xor eax,DWORD PTR[40+rsp] + or ecx,esi + rol ebp,5 + xor eax,DWORD PTR[60+rsp] + and ecx,edi + add r11d,ebp + rol eax,1 + or ebx,ecx + rol edx,30 + mov DWORD PTR[8+rsp],eax + add r11d,ebx + lea ebp,DWORD PTR[08f1bbcdch+rdi*1+rax] + mov eax,DWORD PTR[12+rsp] + mov ebx,r12d + mov ecx,r12d + xor eax,DWORD PTR[20+rsp] + mov edi,r11d + and ebx,edx + xor eax,DWORD PTR[44+rsp] + or ecx,edx + rol edi,5 + xor eax,DWORD PTR[rsp] + and ecx,esi + add ebp,edi + rol eax,1 + or ebx,ecx + rol r12d,30 + mov DWORD PTR[12+rsp],eax + add ebp,ebx + lea edi,DWORD PTR[08f1bbcdch+rsi*1+rax] + mov eax,DWORD PTR[16+rsp] + mov ebx,r11d + mov ecx,r11d + xor eax,DWORD PTR[24+rsp] + mov esi,ebp + and ebx,r12d + xor eax,DWORD PTR[48+rsp] + or ecx,r12d + rol esi,5 + xor eax,DWORD PTR[4+rsp] + and ecx,edx + add edi,esi + rol eax,1 + or ebx,ecx + rol r11d,30 + mov DWORD PTR[16+rsp],eax + add edi,ebx + lea esi,DWORD PTR[08f1bbcdch+rdx*1+rax] + mov eax,DWORD PTR[20+rsp] + mov ebx,ebp + mov ecx,ebp + xor eax,DWORD PTR[28+rsp] + mov edx,edi + and ebx,r11d + xor eax,DWORD PTR[52+rsp] + or ecx,r11d + rol edx,5 + xor eax,DWORD PTR[8+rsp] + and ecx,r12d + add esi,edx + rol eax,1 + or ebx,ecx + rol ebp,30 + mov DWORD PTR[20+rsp],eax + add esi,ebx + lea edx,DWORD PTR[08f1bbcdch+r12*1+rax] + mov eax,DWORD PTR[24+rsp] + mov ebx,edi + mov ecx,edi + xor eax,DWORD PTR[32+rsp] + mov r12d,esi + and ebx,ebp + xor eax,DWORD PTR[56+rsp] + or ecx,ebp + rol r12d,5 + xor eax,DWORD PTR[12+rsp] + and ecx,r11d + add edx,r12d + rol eax,1 + or ebx,ecx + rol edi,30 + mov DWORD PTR[24+rsp],eax + add edx,ebx + lea r12d,DWORD PTR[08f1bbcdch+r11*1+rax] + mov eax,DWORD PTR[28+rsp] + mov ebx,esi + mov ecx,esi + xor eax,DWORD PTR[36+rsp] + mov r11d,edx + and ebx,edi + xor eax,DWORD PTR[60+rsp] + or ecx,edi + rol r11d,5 + xor eax,DWORD PTR[16+rsp] + and ecx,ebp + add r12d,r11d + rol eax,1 + or ebx,ecx + rol esi,30 + mov DWORD PTR[28+rsp],eax + add r12d,ebx + lea r11d,DWORD PTR[08f1bbcdch+rbp*1+rax] + mov eax,DWORD PTR[32+rsp] + mov ebx,edx + mov ecx,edx + xor eax,DWORD PTR[40+rsp] + mov ebp,r12d + and ebx,esi + xor eax,DWORD PTR[rsp] + or ecx,esi + rol ebp,5 + xor eax,DWORD PTR[20+rsp] + and ecx,edi + add r11d,ebp + rol eax,1 + or ebx,ecx + rol edx,30 + mov DWORD PTR[32+rsp],eax + add r11d,ebx + lea ebp,DWORD PTR[08f1bbcdch+rdi*1+rax] + mov eax,DWORD PTR[36+rsp] + mov ebx,r12d + mov ecx,r12d + xor eax,DWORD PTR[44+rsp] + mov edi,r11d + and ebx,edx + xor eax,DWORD PTR[4+rsp] + or ecx,edx + rol edi,5 + xor eax,DWORD PTR[24+rsp] + and ecx,esi + add ebp,edi + rol eax,1 + or ebx,ecx + rol r12d,30 + mov DWORD PTR[36+rsp],eax + add ebp,ebx + lea edi,DWORD PTR[08f1bbcdch+rsi*1+rax] + mov eax,DWORD PTR[40+rsp] + mov ebx,r11d + mov ecx,r11d + xor eax,DWORD PTR[48+rsp] + mov esi,ebp + and ebx,r12d + xor eax,DWORD PTR[8+rsp] + or ecx,r12d + rol esi,5 + xor eax,DWORD PTR[28+rsp] + and ecx,edx + add edi,esi + rol eax,1 + or ebx,ecx + rol r11d,30 + mov DWORD PTR[40+rsp],eax + add edi,ebx + lea esi,DWORD PTR[08f1bbcdch+rdx*1+rax] + mov eax,DWORD PTR[44+rsp] + mov ebx,ebp + mov ecx,ebp + xor eax,DWORD PTR[52+rsp] + mov edx,edi + and ebx,r11d + xor eax,DWORD PTR[12+rsp] + or ecx,r11d + rol edx,5 + xor eax,DWORD PTR[32+rsp] + and ecx,r12d + add esi,edx + rol eax,1 + or ebx,ecx + rol ebp,30 + mov DWORD PTR[44+rsp],eax + add esi,ebx + lea edx,DWORD PTR[08f1bbcdch+r12*1+rax] + mov eax,DWORD PTR[48+rsp] + mov ebx,edi + mov ecx,edi + xor eax,DWORD PTR[56+rsp] + mov r12d,esi + and ebx,ebp + xor eax,DWORD PTR[16+rsp] + or ecx,ebp + rol r12d,5 + xor eax,DWORD PTR[36+rsp] + and ecx,r11d + add edx,r12d + rol eax,1 + or ebx,ecx + rol edi,30 + mov DWORD PTR[48+rsp],eax + add edx,ebx + lea r12d,DWORD PTR[3395469782+r11*1+rax] + mov eax,DWORD PTR[52+rsp] + mov ebx,edi + mov r11d,edx + xor eax,DWORD PTR[60+rsp] + xor ebx,esi + rol r11d,5 + xor eax,DWORD PTR[20+rsp] + xor ebx,ebp + add r12d,r11d + xor eax,DWORD PTR[40+rsp] + rol esi,30 + add r12d,ebx + rol eax,1 + mov DWORD PTR[52+rsp],eax + lea r11d,DWORD PTR[3395469782+rbp*1+rax] + mov eax,DWORD PTR[56+rsp] + mov ebx,esi + mov ebp,r12d + xor eax,DWORD PTR[rsp] + xor ebx,edx + rol ebp,5 + xor eax,DWORD PTR[24+rsp] + xor ebx,edi + add r11d,ebp + xor eax,DWORD PTR[44+rsp] + rol edx,30 + add r11d,ebx + rol eax,1 + mov DWORD PTR[56+rsp],eax + lea ebp,DWORD PTR[3395469782+rdi*1+rax] + mov eax,DWORD PTR[60+rsp] + mov ebx,edx + mov edi,r11d + xor eax,DWORD PTR[4+rsp] + xor ebx,r12d + rol edi,5 + xor eax,DWORD PTR[28+rsp] + xor ebx,esi + add ebp,edi + xor eax,DWORD PTR[48+rsp] + rol r12d,30 + add ebp,ebx + rol eax,1 + mov DWORD PTR[60+rsp],eax + lea edi,DWORD PTR[3395469782+rsi*1+rax] + mov eax,DWORD PTR[rsp] + mov ebx,r12d + mov esi,ebp + xor eax,DWORD PTR[8+rsp] + xor ebx,r11d + rol esi,5 + xor eax,DWORD PTR[32+rsp] + xor ebx,edx + add edi,esi + xor eax,DWORD PTR[52+rsp] + rol r11d,30 + add edi,ebx + rol eax,1 + mov DWORD PTR[rsp],eax + lea esi,DWORD PTR[3395469782+rdx*1+rax] + mov eax,DWORD PTR[4+rsp] + mov ebx,r11d + mov edx,edi + xor eax,DWORD PTR[12+rsp] + xor ebx,ebp + rol edx,5 + xor eax,DWORD PTR[36+rsp] + xor ebx,r12d + add esi,edx + xor eax,DWORD PTR[56+rsp] + rol ebp,30 + add esi,ebx + rol eax,1 + mov DWORD PTR[4+rsp],eax + lea edx,DWORD PTR[3395469782+r12*1+rax] + mov eax,DWORD PTR[8+rsp] + mov ebx,ebp + mov r12d,esi + xor eax,DWORD PTR[16+rsp] + xor ebx,edi + rol r12d,5 + xor eax,DWORD PTR[40+rsp] + xor ebx,r11d + add edx,r12d + xor eax,DWORD PTR[60+rsp] + rol edi,30 + add edx,ebx + rol eax,1 + mov DWORD PTR[8+rsp],eax + lea r12d,DWORD PTR[3395469782+r11*1+rax] + mov eax,DWORD PTR[12+rsp] + mov ebx,edi + mov r11d,edx + xor eax,DWORD PTR[20+rsp] + xor ebx,esi + rol r11d,5 + xor eax,DWORD PTR[44+rsp] + xor ebx,ebp + add r12d,r11d + xor eax,DWORD PTR[rsp] + rol esi,30 + add r12d,ebx + rol eax,1 + mov DWORD PTR[12+rsp],eax + lea r11d,DWORD PTR[3395469782+rbp*1+rax] + mov eax,DWORD PTR[16+rsp] + mov ebx,esi + mov ebp,r12d + xor eax,DWORD PTR[24+rsp] + xor ebx,edx + rol ebp,5 + xor eax,DWORD PTR[48+rsp] + xor ebx,edi + add r11d,ebp + xor eax,DWORD PTR[4+rsp] + rol edx,30 + add r11d,ebx + rol eax,1 + mov DWORD PTR[16+rsp],eax + lea ebp,DWORD PTR[3395469782+rdi*1+rax] + mov eax,DWORD PTR[20+rsp] + mov ebx,edx + mov edi,r11d + xor eax,DWORD PTR[28+rsp] + xor ebx,r12d + rol edi,5 + xor eax,DWORD PTR[52+rsp] + xor ebx,esi + add ebp,edi + xor eax,DWORD PTR[8+rsp] + rol r12d,30 + add ebp,ebx + rol eax,1 + mov DWORD PTR[20+rsp],eax + lea edi,DWORD PTR[3395469782+rsi*1+rax] + mov eax,DWORD PTR[24+rsp] + mov ebx,r12d + mov esi,ebp + xor eax,DWORD PTR[32+rsp] + xor ebx,r11d + rol esi,5 + xor eax,DWORD PTR[56+rsp] + xor ebx,edx + add edi,esi + xor eax,DWORD PTR[12+rsp] + rol r11d,30 + add edi,ebx + rol eax,1 + mov DWORD PTR[24+rsp],eax + lea esi,DWORD PTR[3395469782+rdx*1+rax] + mov eax,DWORD PTR[28+rsp] + mov ebx,r11d + mov edx,edi + xor eax,DWORD PTR[36+rsp] + xor ebx,ebp + rol edx,5 + xor eax,DWORD PTR[60+rsp] + xor ebx,r12d + add esi,edx + xor eax,DWORD PTR[16+rsp] + rol ebp,30 + add esi,ebx + rol eax,1 + mov DWORD PTR[28+rsp],eax + lea edx,DWORD PTR[3395469782+r12*1+rax] + mov eax,DWORD PTR[32+rsp] + mov ebx,ebp + mov r12d,esi + xor eax,DWORD PTR[40+rsp] + xor ebx,edi + rol r12d,5 + xor eax,DWORD PTR[rsp] + xor ebx,r11d + add edx,r12d + xor eax,DWORD PTR[20+rsp] + rol edi,30 + add edx,ebx + rol eax,1 + mov DWORD PTR[32+rsp],eax + lea r12d,DWORD PTR[3395469782+r11*1+rax] + mov eax,DWORD PTR[36+rsp] + mov ebx,edi + mov r11d,edx + xor eax,DWORD PTR[44+rsp] + xor ebx,esi + rol r11d,5 + xor eax,DWORD PTR[4+rsp] + xor ebx,ebp + add r12d,r11d + xor eax,DWORD PTR[24+rsp] + rol esi,30 + add r12d,ebx + rol eax,1 + mov DWORD PTR[36+rsp],eax + lea r11d,DWORD PTR[3395469782+rbp*1+rax] + mov eax,DWORD PTR[40+rsp] + mov ebx,esi + mov ebp,r12d + xor eax,DWORD PTR[48+rsp] + xor ebx,edx + rol ebp,5 + xor eax,DWORD PTR[8+rsp] + xor ebx,edi + add r11d,ebp + xor eax,DWORD PTR[28+rsp] + rol edx,30 + add r11d,ebx + rol eax,1 + mov DWORD PTR[40+rsp],eax + lea ebp,DWORD PTR[3395469782+rdi*1+rax] + mov eax,DWORD PTR[44+rsp] + mov ebx,edx + mov edi,r11d + xor eax,DWORD PTR[52+rsp] + xor ebx,r12d + rol edi,5 + xor eax,DWORD PTR[12+rsp] + xor ebx,esi + add ebp,edi + xor eax,DWORD PTR[32+rsp] + rol r12d,30 + add ebp,ebx + rol eax,1 + mov DWORD PTR[44+rsp],eax + lea edi,DWORD PTR[3395469782+rsi*1+rax] + mov eax,DWORD PTR[48+rsp] + mov ebx,r12d + mov esi,ebp + xor eax,DWORD PTR[56+rsp] + xor ebx,r11d + rol esi,5 + xor eax,DWORD PTR[16+rsp] + xor ebx,edx + add edi,esi + xor eax,DWORD PTR[36+rsp] + rol r11d,30 + add edi,ebx + rol eax,1 + mov DWORD PTR[48+rsp],eax + lea esi,DWORD PTR[3395469782+rdx*1+rax] + mov eax,DWORD PTR[52+rsp] + mov ebx,r11d + mov edx,edi + xor eax,DWORD PTR[60+rsp] + xor ebx,ebp + rol edx,5 + xor eax,DWORD PTR[20+rsp] + xor ebx,r12d + add esi,edx + xor eax,DWORD PTR[40+rsp] + rol ebp,30 + add esi,ebx + rol eax,1 + lea edx,DWORD PTR[3395469782+r12*1+rax] + mov eax,DWORD PTR[56+rsp] + mov ebx,ebp + mov r12d,esi + xor eax,DWORD PTR[rsp] + xor ebx,edi + rol r12d,5 + xor eax,DWORD PTR[24+rsp] + xor ebx,r11d + add edx,r12d + xor eax,DWORD PTR[44+rsp] + rol edi,30 + add edx,ebx + rol eax,1 + lea r12d,DWORD PTR[3395469782+r11*1+rax] + mov eax,DWORD PTR[60+rsp] + mov ebx,edi + mov r11d,edx + xor eax,DWORD PTR[4+rsp] + xor ebx,esi + rol r11d,5 + xor eax,DWORD PTR[28+rsp] + xor ebx,ebp + add r12d,r11d + xor eax,DWORD PTR[48+rsp] + rol esi,30 + add r12d,ebx + rol eax,1 + lea r11d,DWORD PTR[3395469782+rbp*1+rax] + mov ebx,esi + mov ebp,r12d + xor ebx,edx + rol ebp,5 + xor ebx,edi + add r11d,ebp + rol edx,30 + add r11d,ebx + add r11d,DWORD PTR[r8] + add r12d,DWORD PTR[4+r8] + add edx,DWORD PTR[8+r8] + add esi,DWORD PTR[12+r8] + add edi,DWORD PTR[16+r8] + mov DWORD PTR[r8],r11d + mov DWORD PTR[4+r8],r12d + mov DWORD PTR[8+r8],edx + mov DWORD PTR[12+r8],esi + mov DWORD PTR[16+r8],edi + + xchg edx,r11d + xchg esi,r12d + xchg edi,r11d + xchg ebp,r12d + + lea r9,QWORD PTR[64+r9] + sub r10,1 + jnz $L$loop + mov rsi,QWORD PTR[64+rsp] + mov r12,QWORD PTR[rsi] + mov rbp,QWORD PTR[8+rsi] + mov rbx,QWORD PTR[16+rsi] + lea rsp,QWORD PTR[24+rsi] +$L$epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_sha1_block_data_order:: +sha1_block_data_order ENDP +DB 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115 +DB 102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44 +DB 32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60 +DB 97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114 +DB 103,62,0 +ALIGN 16 +EXTERN __imp_RtlVirtualUnwind:NEAR + +ALIGN 16 +se_handler PROC PRIVATE + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD PTR[120+r8] + mov rbx,QWORD PTR[248+r8] + + lea r10,QWORD PTR[$L$prologue] + cmp rbx,r10 + jb $L$in_prologue + + mov rax,QWORD PTR[152+r8] + + lea r10,QWORD PTR[$L$epilogue] + cmp rbx,r10 + jae $L$in_prologue + + mov rax,QWORD PTR[64+rax] + lea rax,QWORD PTR[24+rax] + + mov rbx,QWORD PTR[((-8))+rax] + mov rbp,QWORD PTR[((-16))+rax] + mov r12,QWORD PTR[((-24))+rax] + mov QWORD PTR[144+r8],rbx + mov QWORD PTR[160+r8],rbp + mov QWORD PTR[216+r8],r12 + +$L$in_prologue:: + mov rdi,QWORD PTR[8+rax] + mov rsi,QWORD PTR[16+rax] + mov QWORD PTR[152+r8],rax + mov QWORD PTR[168+r8],rsi + mov QWORD PTR[176+r8],rdi + + mov rdi,QWORD PTR[40+r9] + mov rsi,r8 + mov ecx,154 + DD 0a548f3fch + + + mov rsi,r9 + xor rcx,rcx + mov rdx,QWORD PTR[8+rsi] + mov r8,QWORD PTR[rsi] + mov r9,QWORD PTR[16+rsi] + mov r10,QWORD PTR[40+rsi] + lea r11,QWORD PTR[56+rsi] + lea r12,QWORD PTR[24+rsi] + mov QWORD PTR[32+rsp],r10 + mov QWORD PTR[40+rsp],r11 + mov QWORD PTR[48+rsp],r12 + mov QWORD PTR[56+rsp],rcx + call QWORD PTR[__imp_RtlVirtualUnwind] + + mov eax,1 + add rsp,64 + popfq + pop r15 + pop r14 + pop r13 + pop r12 + pop rbp + pop rbx + pop rdi + pop rsi + DB 0F3h,0C3h ;repret +se_handler ENDP + +.text$ ENDS +.pdata SEGMENT READONLY ALIGN(4) +ALIGN 4 + DD imagerel $L$SEH_begin_sha1_block_data_order + DD imagerel $L$SEH_end_sha1_block_data_order + DD imagerel $L$SEH_info_sha1_block_data_order + +.pdata ENDS +.xdata SEGMENT READONLY ALIGN(8) +ALIGN 8 +$L$SEH_info_sha1_block_data_order:: +DB 9,0,0,0 + DD imagerel se_handler + +.xdata ENDS +END diff --git a/deps/openssl/asm/x64-win32-masm/sha/sha512-x86_64.asm b/deps/openssl/asm/x64-win32-masm/sha/sha512-x86_64.asm new file mode 100644 index 0000000000..5ea4a6327a --- /dev/null +++ b/deps/openssl/asm/x64-win32-masm/sha/sha512-x86_64.asm @@ -0,0 +1,2085 @@ +OPTION DOTNAME +.text$ SEGMENT ALIGN(64) 'CODE' + +PUBLIC sha256_block_data_order + +ALIGN 16 +sha256_block_data_order PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_sha256_block_data_order:: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + + + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + mov r11,rsp + shl rdx,4 + sub rsp,16*4+4*8 + lea rdx,QWORD PTR[rdx*4+rsi] + and rsp,-64 + mov QWORD PTR[((16*4+0*8))+rsp],rdi + mov QWORD PTR[((16*4+1*8))+rsp],rsi + mov QWORD PTR[((16*4+2*8))+rsp],rdx + mov QWORD PTR[((16*4+3*8))+rsp],r11 +$L$prologue:: + + lea rbp,QWORD PTR[K256] + + mov eax,DWORD PTR[((4*0))+rdi] + mov ebx,DWORD PTR[((4*1))+rdi] + mov ecx,DWORD PTR[((4*2))+rdi] + mov edx,DWORD PTR[((4*3))+rdi] + mov r8d,DWORD PTR[((4*4))+rdi] + mov r9d,DWORD PTR[((4*5))+rdi] + mov r10d,DWORD PTR[((4*6))+rdi] + mov r11d,DWORD PTR[((4*7))+rdi] + jmp $L$loop + +ALIGN 16 +$L$loop:: + xor rdi,rdi + mov r12d,DWORD PTR[((4*0))+rsi] + bswap r12d + mov r13d,r8d + mov r14d,r8d + mov r15d,r9d + + ror r13d,6 + ror r14d,11 + xor r15d,r10d + + xor r13d,r14d + ror r14d,14 + and r15d,r8d + mov DWORD PTR[rsp],r12d + + xor r13d,r14d + xor r15d,r10d + add r12d,r11d + + mov r11d,eax + add r12d,r13d + + add r12d,r15d + mov r13d,eax + mov r14d,eax + + ror r11d,2 + ror r13d,13 + mov r15d,eax + add r12d,DWORD PTR[rdi*4+rbp] + + xor r11d,r13d + ror r13d,9 + or r14d,ecx + + xor r11d,r13d + and r15d,ecx + add edx,r12d + + and r14d,ebx + add r11d,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add r11d,r14d + mov r12d,DWORD PTR[((4*1))+rsi] + bswap r12d + mov r13d,edx + mov r14d,edx + mov r15d,r8d + + ror r13d,6 + ror r14d,11 + xor r15d,r9d + + xor r13d,r14d + ror r14d,14 + and r15d,edx + mov DWORD PTR[4+rsp],r12d + + xor r13d,r14d + xor r15d,r9d + add r12d,r10d + + mov r10d,r11d + add r12d,r13d + + add r12d,r15d + mov r13d,r11d + mov r14d,r11d + + ror r10d,2 + ror r13d,13 + mov r15d,r11d + add r12d,DWORD PTR[rdi*4+rbp] + + xor r10d,r13d + ror r13d,9 + or r14d,ebx + + xor r10d,r13d + and r15d,ebx + add ecx,r12d + + and r14d,eax + add r10d,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add r10d,r14d + mov r12d,DWORD PTR[((4*2))+rsi] + bswap r12d + mov r13d,ecx + mov r14d,ecx + mov r15d,edx + + ror r13d,6 + ror r14d,11 + xor r15d,r8d + + xor r13d,r14d + ror r14d,14 + and r15d,ecx + mov DWORD PTR[8+rsp],r12d + + xor r13d,r14d + xor r15d,r8d + add r12d,r9d + + mov r9d,r10d + add r12d,r13d + + add r12d,r15d + mov r13d,r10d + mov r14d,r10d + + ror r9d,2 + ror r13d,13 + mov r15d,r10d + add r12d,DWORD PTR[rdi*4+rbp] + + xor r9d,r13d + ror r13d,9 + or r14d,eax + + xor r9d,r13d + and r15d,eax + add ebx,r12d + + and r14d,r11d + add r9d,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add r9d,r14d + mov r12d,DWORD PTR[((4*3))+rsi] + bswap r12d + mov r13d,ebx + mov r14d,ebx + mov r15d,ecx + + ror r13d,6 + ror r14d,11 + xor r15d,edx + + xor r13d,r14d + ror r14d,14 + and r15d,ebx + mov DWORD PTR[12+rsp],r12d + + xor r13d,r14d + xor r15d,edx + add r12d,r8d + + mov r8d,r9d + add r12d,r13d + + add r12d,r15d + mov r13d,r9d + mov r14d,r9d + + ror r8d,2 + ror r13d,13 + mov r15d,r9d + add r12d,DWORD PTR[rdi*4+rbp] + + xor r8d,r13d + ror r13d,9 + or r14d,r11d + + xor r8d,r13d + and r15d,r11d + add eax,r12d + + and r14d,r10d + add r8d,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add r8d,r14d + mov r12d,DWORD PTR[((4*4))+rsi] + bswap r12d + mov r13d,eax + mov r14d,eax + mov r15d,ebx + + ror r13d,6 + ror r14d,11 + xor r15d,ecx + + xor r13d,r14d + ror r14d,14 + and r15d,eax + mov DWORD PTR[16+rsp],r12d + + xor r13d,r14d + xor r15d,ecx + add r12d,edx + + mov edx,r8d + add r12d,r13d + + add r12d,r15d + mov r13d,r8d + mov r14d,r8d + + ror edx,2 + ror r13d,13 + mov r15d,r8d + add r12d,DWORD PTR[rdi*4+rbp] + + xor edx,r13d + ror r13d,9 + or r14d,r10d + + xor edx,r13d + and r15d,r10d + add r11d,r12d + + and r14d,r9d + add edx,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add edx,r14d + mov r12d,DWORD PTR[((4*5))+rsi] + bswap r12d + mov r13d,r11d + mov r14d,r11d + mov r15d,eax + + ror r13d,6 + ror r14d,11 + xor r15d,ebx + + xor r13d,r14d + ror r14d,14 + and r15d,r11d + mov DWORD PTR[20+rsp],r12d + + xor r13d,r14d + xor r15d,ebx + add r12d,ecx + + mov ecx,edx + add r12d,r13d + + add r12d,r15d + mov r13d,edx + mov r14d,edx + + ror ecx,2 + ror r13d,13 + mov r15d,edx + add r12d,DWORD PTR[rdi*4+rbp] + + xor ecx,r13d + ror r13d,9 + or r14d,r9d + + xor ecx,r13d + and r15d,r9d + add r10d,r12d + + and r14d,r8d + add ecx,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add ecx,r14d + mov r12d,DWORD PTR[((4*6))+rsi] + bswap r12d + mov r13d,r10d + mov r14d,r10d + mov r15d,r11d + + ror r13d,6 + ror r14d,11 + xor r15d,eax + + xor r13d,r14d + ror r14d,14 + and r15d,r10d + mov DWORD PTR[24+rsp],r12d + + xor r13d,r14d + xor r15d,eax + add r12d,ebx + + mov ebx,ecx + add r12d,r13d + + add r12d,r15d + mov r13d,ecx + mov r14d,ecx + + ror ebx,2 + ror r13d,13 + mov r15d,ecx + add r12d,DWORD PTR[rdi*4+rbp] + + xor ebx,r13d + ror r13d,9 + or r14d,r8d + + xor ebx,r13d + and r15d,r8d + add r9d,r12d + + and r14d,edx + add ebx,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add ebx,r14d + mov r12d,DWORD PTR[((4*7))+rsi] + bswap r12d + mov r13d,r9d + mov r14d,r9d + mov r15d,r10d + + ror r13d,6 + ror r14d,11 + xor r15d,r11d + + xor r13d,r14d + ror r14d,14 + and r15d,r9d + mov DWORD PTR[28+rsp],r12d + + xor r13d,r14d + xor r15d,r11d + add r12d,eax + + mov eax,ebx + add r12d,r13d + + add r12d,r15d + mov r13d,ebx + mov r14d,ebx + + ror eax,2 + ror r13d,13 + mov r15d,ebx + add r12d,DWORD PTR[rdi*4+rbp] + + xor eax,r13d + ror r13d,9 + or r14d,edx + + xor eax,r13d + and r15d,edx + add r8d,r12d + + and r14d,ecx + add eax,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add eax,r14d + mov r12d,DWORD PTR[((4*8))+rsi] + bswap r12d + mov r13d,r8d + mov r14d,r8d + mov r15d,r9d + + ror r13d,6 + ror r14d,11 + xor r15d,r10d + + xor r13d,r14d + ror r14d,14 + and r15d,r8d + mov DWORD PTR[32+rsp],r12d + + xor r13d,r14d + xor r15d,r10d + add r12d,r11d + + mov r11d,eax + add r12d,r13d + + add r12d,r15d + mov r13d,eax + mov r14d,eax + + ror r11d,2 + ror r13d,13 + mov r15d,eax + add r12d,DWORD PTR[rdi*4+rbp] + + xor r11d,r13d + ror r13d,9 + or r14d,ecx + + xor r11d,r13d + and r15d,ecx + add edx,r12d + + and r14d,ebx + add r11d,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add r11d,r14d + mov r12d,DWORD PTR[((4*9))+rsi] + bswap r12d + mov r13d,edx + mov r14d,edx + mov r15d,r8d + + ror r13d,6 + ror r14d,11 + xor r15d,r9d + + xor r13d,r14d + ror r14d,14 + and r15d,edx + mov DWORD PTR[36+rsp],r12d + + xor r13d,r14d + xor r15d,r9d + add r12d,r10d + + mov r10d,r11d + add r12d,r13d + + add r12d,r15d + mov r13d,r11d + mov r14d,r11d + + ror r10d,2 + ror r13d,13 + mov r15d,r11d + add r12d,DWORD PTR[rdi*4+rbp] + + xor r10d,r13d + ror r13d,9 + or r14d,ebx + + xor r10d,r13d + and r15d,ebx + add ecx,r12d + + and r14d,eax + add r10d,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add r10d,r14d + mov r12d,DWORD PTR[((4*10))+rsi] + bswap r12d + mov r13d,ecx + mov r14d,ecx + mov r15d,edx + + ror r13d,6 + ror r14d,11 + xor r15d,r8d + + xor r13d,r14d + ror r14d,14 + and r15d,ecx + mov DWORD PTR[40+rsp],r12d + + xor r13d,r14d + xor r15d,r8d + add r12d,r9d + + mov r9d,r10d + add r12d,r13d + + add r12d,r15d + mov r13d,r10d + mov r14d,r10d + + ror r9d,2 + ror r13d,13 + mov r15d,r10d + add r12d,DWORD PTR[rdi*4+rbp] + + xor r9d,r13d + ror r13d,9 + or r14d,eax + + xor r9d,r13d + and r15d,eax + add ebx,r12d + + and r14d,r11d + add r9d,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add r9d,r14d + mov r12d,DWORD PTR[((4*11))+rsi] + bswap r12d + mov r13d,ebx + mov r14d,ebx + mov r15d,ecx + + ror r13d,6 + ror r14d,11 + xor r15d,edx + + xor r13d,r14d + ror r14d,14 + and r15d,ebx + mov DWORD PTR[44+rsp],r12d + + xor r13d,r14d + xor r15d,edx + add r12d,r8d + + mov r8d,r9d + add r12d,r13d + + add r12d,r15d + mov r13d,r9d + mov r14d,r9d + + ror r8d,2 + ror r13d,13 + mov r15d,r9d + add r12d,DWORD PTR[rdi*4+rbp] + + xor r8d,r13d + ror r13d,9 + or r14d,r11d + + xor r8d,r13d + and r15d,r11d + add eax,r12d + + and r14d,r10d + add r8d,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add r8d,r14d + mov r12d,DWORD PTR[((4*12))+rsi] + bswap r12d + mov r13d,eax + mov r14d,eax + mov r15d,ebx + + ror r13d,6 + ror r14d,11 + xor r15d,ecx + + xor r13d,r14d + ror r14d,14 + and r15d,eax + mov DWORD PTR[48+rsp],r12d + + xor r13d,r14d + xor r15d,ecx + add r12d,edx + + mov edx,r8d + add r12d,r13d + + add r12d,r15d + mov r13d,r8d + mov r14d,r8d + + ror edx,2 + ror r13d,13 + mov r15d,r8d + add r12d,DWORD PTR[rdi*4+rbp] + + xor edx,r13d + ror r13d,9 + or r14d,r10d + + xor edx,r13d + and r15d,r10d + add r11d,r12d + + and r14d,r9d + add edx,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add edx,r14d + mov r12d,DWORD PTR[((4*13))+rsi] + bswap r12d + mov r13d,r11d + mov r14d,r11d + mov r15d,eax + + ror r13d,6 + ror r14d,11 + xor r15d,ebx + + xor r13d,r14d + ror r14d,14 + and r15d,r11d + mov DWORD PTR[52+rsp],r12d + + xor r13d,r14d + xor r15d,ebx + add r12d,ecx + + mov ecx,edx + add r12d,r13d + + add r12d,r15d + mov r13d,edx + mov r14d,edx + + ror ecx,2 + ror r13d,13 + mov r15d,edx + add r12d,DWORD PTR[rdi*4+rbp] + + xor ecx,r13d + ror r13d,9 + or r14d,r9d + + xor ecx,r13d + and r15d,r9d + add r10d,r12d + + and r14d,r8d + add ecx,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add ecx,r14d + mov r12d,DWORD PTR[((4*14))+rsi] + bswap r12d + mov r13d,r10d + mov r14d,r10d + mov r15d,r11d + + ror r13d,6 + ror r14d,11 + xor r15d,eax + + xor r13d,r14d + ror r14d,14 + and r15d,r10d + mov DWORD PTR[56+rsp],r12d + + xor r13d,r14d + xor r15d,eax + add r12d,ebx + + mov ebx,ecx + add r12d,r13d + + add r12d,r15d + mov r13d,ecx + mov r14d,ecx + + ror ebx,2 + ror r13d,13 + mov r15d,ecx + add r12d,DWORD PTR[rdi*4+rbp] + + xor ebx,r13d + ror r13d,9 + or r14d,r8d + + xor ebx,r13d + and r15d,r8d + add r9d,r12d + + and r14d,edx + add ebx,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add ebx,r14d + mov r12d,DWORD PTR[((4*15))+rsi] + bswap r12d + mov r13d,r9d + mov r14d,r9d + mov r15d,r10d + + ror r13d,6 + ror r14d,11 + xor r15d,r11d + + xor r13d,r14d + ror r14d,14 + and r15d,r9d + mov DWORD PTR[60+rsp],r12d + + xor r13d,r14d + xor r15d,r11d + add r12d,eax + + mov eax,ebx + add r12d,r13d + + add r12d,r15d + mov r13d,ebx + mov r14d,ebx + + ror eax,2 + ror r13d,13 + mov r15d,ebx + add r12d,DWORD PTR[rdi*4+rbp] + + xor eax,r13d + ror r13d,9 + or r14d,edx + + xor eax,r13d + and r15d,edx + add r8d,r12d + + and r14d,ecx + add eax,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add eax,r14d + jmp $L$rounds_16_xx +ALIGN 16 +$L$rounds_16_xx:: + mov r13d,DWORD PTR[4+rsp] + mov r12d,DWORD PTR[56+rsp] + + mov r15d,r13d + + shr r13d,3 + ror r15d,7 + + xor r13d,r15d + ror r15d,11 + + xor r13d,r15d + mov r14d,r12d + + shr r12d,10 + ror r14d,17 + + xor r12d,r14d + ror r14d,2 + + xor r12d,r14d + + add r12d,r13d + + add r12d,DWORD PTR[36+rsp] + + add r12d,DWORD PTR[rsp] + mov r13d,r8d + mov r14d,r8d + mov r15d,r9d + + ror r13d,6 + ror r14d,11 + xor r15d,r10d + + xor r13d,r14d + ror r14d,14 + and r15d,r8d + mov DWORD PTR[rsp],r12d + + xor r13d,r14d + xor r15d,r10d + add r12d,r11d + + mov r11d,eax + add r12d,r13d + + add r12d,r15d + mov r13d,eax + mov r14d,eax + + ror r11d,2 + ror r13d,13 + mov r15d,eax + add r12d,DWORD PTR[rdi*4+rbp] + + xor r11d,r13d + ror r13d,9 + or r14d,ecx + + xor r11d,r13d + and r15d,ecx + add edx,r12d + + and r14d,ebx + add r11d,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add r11d,r14d + mov r13d,DWORD PTR[8+rsp] + mov r12d,DWORD PTR[60+rsp] + + mov r15d,r13d + + shr r13d,3 + ror r15d,7 + + xor r13d,r15d + ror r15d,11 + + xor r13d,r15d + mov r14d,r12d + + shr r12d,10 + ror r14d,17 + + xor r12d,r14d + ror r14d,2 + + xor r12d,r14d + + add r12d,r13d + + add r12d,DWORD PTR[40+rsp] + + add r12d,DWORD PTR[4+rsp] + mov r13d,edx + mov r14d,edx + mov r15d,r8d + + ror r13d,6 + ror r14d,11 + xor r15d,r9d + + xor r13d,r14d + ror r14d,14 + and r15d,edx + mov DWORD PTR[4+rsp],r12d + + xor r13d,r14d + xor r15d,r9d + add r12d,r10d + + mov r10d,r11d + add r12d,r13d + + add r12d,r15d + mov r13d,r11d + mov r14d,r11d + + ror r10d,2 + ror r13d,13 + mov r15d,r11d + add r12d,DWORD PTR[rdi*4+rbp] + + xor r10d,r13d + ror r13d,9 + or r14d,ebx + + xor r10d,r13d + and r15d,ebx + add ecx,r12d + + and r14d,eax + add r10d,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add r10d,r14d + mov r13d,DWORD PTR[12+rsp] + mov r12d,DWORD PTR[rsp] + + mov r15d,r13d + + shr r13d,3 + ror r15d,7 + + xor r13d,r15d + ror r15d,11 + + xor r13d,r15d + mov r14d,r12d + + shr r12d,10 + ror r14d,17 + + xor r12d,r14d + ror r14d,2 + + xor r12d,r14d + + add r12d,r13d + + add r12d,DWORD PTR[44+rsp] + + add r12d,DWORD PTR[8+rsp] + mov r13d,ecx + mov r14d,ecx + mov r15d,edx + + ror r13d,6 + ror r14d,11 + xor r15d,r8d + + xor r13d,r14d + ror r14d,14 + and r15d,ecx + mov DWORD PTR[8+rsp],r12d + + xor r13d,r14d + xor r15d,r8d + add r12d,r9d + + mov r9d,r10d + add r12d,r13d + + add r12d,r15d + mov r13d,r10d + mov r14d,r10d + + ror r9d,2 + ror r13d,13 + mov r15d,r10d + add r12d,DWORD PTR[rdi*4+rbp] + + xor r9d,r13d + ror r13d,9 + or r14d,eax + + xor r9d,r13d + and r15d,eax + add ebx,r12d + + and r14d,r11d + add r9d,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add r9d,r14d + mov r13d,DWORD PTR[16+rsp] + mov r12d,DWORD PTR[4+rsp] + + mov r15d,r13d + + shr r13d,3 + ror r15d,7 + + xor r13d,r15d + ror r15d,11 + + xor r13d,r15d + mov r14d,r12d + + shr r12d,10 + ror r14d,17 + + xor r12d,r14d + ror r14d,2 + + xor r12d,r14d + + add r12d,r13d + + add r12d,DWORD PTR[48+rsp] + + add r12d,DWORD PTR[12+rsp] + mov r13d,ebx + mov r14d,ebx + mov r15d,ecx + + ror r13d,6 + ror r14d,11 + xor r15d,edx + + xor r13d,r14d + ror r14d,14 + and r15d,ebx + mov DWORD PTR[12+rsp],r12d + + xor r13d,r14d + xor r15d,edx + add r12d,r8d + + mov r8d,r9d + add r12d,r13d + + add r12d,r15d + mov r13d,r9d + mov r14d,r9d + + ror r8d,2 + ror r13d,13 + mov r15d,r9d + add r12d,DWORD PTR[rdi*4+rbp] + + xor r8d,r13d + ror r13d,9 + or r14d,r11d + + xor r8d,r13d + and r15d,r11d + add eax,r12d + + and r14d,r10d + add r8d,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add r8d,r14d + mov r13d,DWORD PTR[20+rsp] + mov r12d,DWORD PTR[8+rsp] + + mov r15d,r13d + + shr r13d,3 + ror r15d,7 + + xor r13d,r15d + ror r15d,11 + + xor r13d,r15d + mov r14d,r12d + + shr r12d,10 + ror r14d,17 + + xor r12d,r14d + ror r14d,2 + + xor r12d,r14d + + add r12d,r13d + + add r12d,DWORD PTR[52+rsp] + + add r12d,DWORD PTR[16+rsp] + mov r13d,eax + mov r14d,eax + mov r15d,ebx + + ror r13d,6 + ror r14d,11 + xor r15d,ecx + + xor r13d,r14d + ror r14d,14 + and r15d,eax + mov DWORD PTR[16+rsp],r12d + + xor r13d,r14d + xor r15d,ecx + add r12d,edx + + mov edx,r8d + add r12d,r13d + + add r12d,r15d + mov r13d,r8d + mov r14d,r8d + + ror edx,2 + ror r13d,13 + mov r15d,r8d + add r12d,DWORD PTR[rdi*4+rbp] + + xor edx,r13d + ror r13d,9 + or r14d,r10d + + xor edx,r13d + and r15d,r10d + add r11d,r12d + + and r14d,r9d + add edx,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add edx,r14d + mov r13d,DWORD PTR[24+rsp] + mov r12d,DWORD PTR[12+rsp] + + mov r15d,r13d + + shr r13d,3 + ror r15d,7 + + xor r13d,r15d + ror r15d,11 + + xor r13d,r15d + mov r14d,r12d + + shr r12d,10 + ror r14d,17 + + xor r12d,r14d + ror r14d,2 + + xor r12d,r14d + + add r12d,r13d + + add r12d,DWORD PTR[56+rsp] + + add r12d,DWORD PTR[20+rsp] + mov r13d,r11d + mov r14d,r11d + mov r15d,eax + + ror r13d,6 + ror r14d,11 + xor r15d,ebx + + xor r13d,r14d + ror r14d,14 + and r15d,r11d + mov DWORD PTR[20+rsp],r12d + + xor r13d,r14d + xor r15d,ebx + add r12d,ecx + + mov ecx,edx + add r12d,r13d + + add r12d,r15d + mov r13d,edx + mov r14d,edx + + ror ecx,2 + ror r13d,13 + mov r15d,edx + add r12d,DWORD PTR[rdi*4+rbp] + + xor ecx,r13d + ror r13d,9 + or r14d,r9d + + xor ecx,r13d + and r15d,r9d + add r10d,r12d + + and r14d,r8d + add ecx,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add ecx,r14d + mov r13d,DWORD PTR[28+rsp] + mov r12d,DWORD PTR[16+rsp] + + mov r15d,r13d + + shr r13d,3 + ror r15d,7 + + xor r13d,r15d + ror r15d,11 + + xor r13d,r15d + mov r14d,r12d + + shr r12d,10 + ror r14d,17 + + xor r12d,r14d + ror r14d,2 + + xor r12d,r14d + + add r12d,r13d + + add r12d,DWORD PTR[60+rsp] + + add r12d,DWORD PTR[24+rsp] + mov r13d,r10d + mov r14d,r10d + mov r15d,r11d + + ror r13d,6 + ror r14d,11 + xor r15d,eax + + xor r13d,r14d + ror r14d,14 + and r15d,r10d + mov DWORD PTR[24+rsp],r12d + + xor r13d,r14d + xor r15d,eax + add r12d,ebx + + mov ebx,ecx + add r12d,r13d + + add r12d,r15d + mov r13d,ecx + mov r14d,ecx + + ror ebx,2 + ror r13d,13 + mov r15d,ecx + add r12d,DWORD PTR[rdi*4+rbp] + + xor ebx,r13d + ror r13d,9 + or r14d,r8d + + xor ebx,r13d + and r15d,r8d + add r9d,r12d + + and r14d,edx + add ebx,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add ebx,r14d + mov r13d,DWORD PTR[32+rsp] + mov r12d,DWORD PTR[20+rsp] + + mov r15d,r13d + + shr r13d,3 + ror r15d,7 + + xor r13d,r15d + ror r15d,11 + + xor r13d,r15d + mov r14d,r12d + + shr r12d,10 + ror r14d,17 + + xor r12d,r14d + ror r14d,2 + + xor r12d,r14d + + add r12d,r13d + + add r12d,DWORD PTR[rsp] + + add r12d,DWORD PTR[28+rsp] + mov r13d,r9d + mov r14d,r9d + mov r15d,r10d + + ror r13d,6 + ror r14d,11 + xor r15d,r11d + + xor r13d,r14d + ror r14d,14 + and r15d,r9d + mov DWORD PTR[28+rsp],r12d + + xor r13d,r14d + xor r15d,r11d + add r12d,eax + + mov eax,ebx + add r12d,r13d + + add r12d,r15d + mov r13d,ebx + mov r14d,ebx + + ror eax,2 + ror r13d,13 + mov r15d,ebx + add r12d,DWORD PTR[rdi*4+rbp] + + xor eax,r13d + ror r13d,9 + or r14d,edx + + xor eax,r13d + and r15d,edx + add r8d,r12d + + and r14d,ecx + add eax,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add eax,r14d + mov r13d,DWORD PTR[36+rsp] + mov r12d,DWORD PTR[24+rsp] + + mov r15d,r13d + + shr r13d,3 + ror r15d,7 + + xor r13d,r15d + ror r15d,11 + + xor r13d,r15d + mov r14d,r12d + + shr r12d,10 + ror r14d,17 + + xor r12d,r14d + ror r14d,2 + + xor r12d,r14d + + add r12d,r13d + + add r12d,DWORD PTR[4+rsp] + + add r12d,DWORD PTR[32+rsp] + mov r13d,r8d + mov r14d,r8d + mov r15d,r9d + + ror r13d,6 + ror r14d,11 + xor r15d,r10d + + xor r13d,r14d + ror r14d,14 + and r15d,r8d + mov DWORD PTR[32+rsp],r12d + + xor r13d,r14d + xor r15d,r10d + add r12d,r11d + + mov r11d,eax + add r12d,r13d + + add r12d,r15d + mov r13d,eax + mov r14d,eax + + ror r11d,2 + ror r13d,13 + mov r15d,eax + add r12d,DWORD PTR[rdi*4+rbp] + + xor r11d,r13d + ror r13d,9 + or r14d,ecx + + xor r11d,r13d + and r15d,ecx + add edx,r12d + + and r14d,ebx + add r11d,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add r11d,r14d + mov r13d,DWORD PTR[40+rsp] + mov r12d,DWORD PTR[28+rsp] + + mov r15d,r13d + + shr r13d,3 + ror r15d,7 + + xor r13d,r15d + ror r15d,11 + + xor r13d,r15d + mov r14d,r12d + + shr r12d,10 + ror r14d,17 + + xor r12d,r14d + ror r14d,2 + + xor r12d,r14d + + add r12d,r13d + + add r12d,DWORD PTR[8+rsp] + + add r12d,DWORD PTR[36+rsp] + mov r13d,edx + mov r14d,edx + mov r15d,r8d + + ror r13d,6 + ror r14d,11 + xor r15d,r9d + + xor r13d,r14d + ror r14d,14 + and r15d,edx + mov DWORD PTR[36+rsp],r12d + + xor r13d,r14d + xor r15d,r9d + add r12d,r10d + + mov r10d,r11d + add r12d,r13d + + add r12d,r15d + mov r13d,r11d + mov r14d,r11d + + ror r10d,2 + ror r13d,13 + mov r15d,r11d + add r12d,DWORD PTR[rdi*4+rbp] + + xor r10d,r13d + ror r13d,9 + or r14d,ebx + + xor r10d,r13d + and r15d,ebx + add ecx,r12d + + and r14d,eax + add r10d,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add r10d,r14d + mov r13d,DWORD PTR[44+rsp] + mov r12d,DWORD PTR[32+rsp] + + mov r15d,r13d + + shr r13d,3 + ror r15d,7 + + xor r13d,r15d + ror r15d,11 + + xor r13d,r15d + mov r14d,r12d + + shr r12d,10 + ror r14d,17 + + xor r12d,r14d + ror r14d,2 + + xor r12d,r14d + + add r12d,r13d + + add r12d,DWORD PTR[12+rsp] + + add r12d,DWORD PTR[40+rsp] + mov r13d,ecx + mov r14d,ecx + mov r15d,edx + + ror r13d,6 + ror r14d,11 + xor r15d,r8d + + xor r13d,r14d + ror r14d,14 + and r15d,ecx + mov DWORD PTR[40+rsp],r12d + + xor r13d,r14d + xor r15d,r8d + add r12d,r9d + + mov r9d,r10d + add r12d,r13d + + add r12d,r15d + mov r13d,r10d + mov r14d,r10d + + ror r9d,2 + ror r13d,13 + mov r15d,r10d + add r12d,DWORD PTR[rdi*4+rbp] + + xor r9d,r13d + ror r13d,9 + or r14d,eax + + xor r9d,r13d + and r15d,eax + add ebx,r12d + + and r14d,r11d + add r9d,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add r9d,r14d + mov r13d,DWORD PTR[48+rsp] + mov r12d,DWORD PTR[36+rsp] + + mov r15d,r13d + + shr r13d,3 + ror r15d,7 + + xor r13d,r15d + ror r15d,11 + + xor r13d,r15d + mov r14d,r12d + + shr r12d,10 + ror r14d,17 + + xor r12d,r14d + ror r14d,2 + + xor r12d,r14d + + add r12d,r13d + + add r12d,DWORD PTR[16+rsp] + + add r12d,DWORD PTR[44+rsp] + mov r13d,ebx + mov r14d,ebx + mov r15d,ecx + + ror r13d,6 + ror r14d,11 + xor r15d,edx + + xor r13d,r14d + ror r14d,14 + and r15d,ebx + mov DWORD PTR[44+rsp],r12d + + xor r13d,r14d + xor r15d,edx + add r12d,r8d + + mov r8d,r9d + add r12d,r13d + + add r12d,r15d + mov r13d,r9d + mov r14d,r9d + + ror r8d,2 + ror r13d,13 + mov r15d,r9d + add r12d,DWORD PTR[rdi*4+rbp] + + xor r8d,r13d + ror r13d,9 + or r14d,r11d + + xor r8d,r13d + and r15d,r11d + add eax,r12d + + and r14d,r10d + add r8d,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add r8d,r14d + mov r13d,DWORD PTR[52+rsp] + mov r12d,DWORD PTR[40+rsp] + + mov r15d,r13d + + shr r13d,3 + ror r15d,7 + + xor r13d,r15d + ror r15d,11 + + xor r13d,r15d + mov r14d,r12d + + shr r12d,10 + ror r14d,17 + + xor r12d,r14d + ror r14d,2 + + xor r12d,r14d + + add r12d,r13d + + add r12d,DWORD PTR[20+rsp] + + add r12d,DWORD PTR[48+rsp] + mov r13d,eax + mov r14d,eax + mov r15d,ebx + + ror r13d,6 + ror r14d,11 + xor r15d,ecx + + xor r13d,r14d + ror r14d,14 + and r15d,eax + mov DWORD PTR[48+rsp],r12d + + xor r13d,r14d + xor r15d,ecx + add r12d,edx + + mov edx,r8d + add r12d,r13d + + add r12d,r15d + mov r13d,r8d + mov r14d,r8d + + ror edx,2 + ror r13d,13 + mov r15d,r8d + add r12d,DWORD PTR[rdi*4+rbp] + + xor edx,r13d + ror r13d,9 + or r14d,r10d + + xor edx,r13d + and r15d,r10d + add r11d,r12d + + and r14d,r9d + add edx,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add edx,r14d + mov r13d,DWORD PTR[56+rsp] + mov r12d,DWORD PTR[44+rsp] + + mov r15d,r13d + + shr r13d,3 + ror r15d,7 + + xor r13d,r15d + ror r15d,11 + + xor r13d,r15d + mov r14d,r12d + + shr r12d,10 + ror r14d,17 + + xor r12d,r14d + ror r14d,2 + + xor r12d,r14d + + add r12d,r13d + + add r12d,DWORD PTR[24+rsp] + + add r12d,DWORD PTR[52+rsp] + mov r13d,r11d + mov r14d,r11d + mov r15d,eax + + ror r13d,6 + ror r14d,11 + xor r15d,ebx + + xor r13d,r14d + ror r14d,14 + and r15d,r11d + mov DWORD PTR[52+rsp],r12d + + xor r13d,r14d + xor r15d,ebx + add r12d,ecx + + mov ecx,edx + add r12d,r13d + + add r12d,r15d + mov r13d,edx + mov r14d,edx + + ror ecx,2 + ror r13d,13 + mov r15d,edx + add r12d,DWORD PTR[rdi*4+rbp] + + xor ecx,r13d + ror r13d,9 + or r14d,r9d + + xor ecx,r13d + and r15d,r9d + add r10d,r12d + + and r14d,r8d + add ecx,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add ecx,r14d + mov r13d,DWORD PTR[60+rsp] + mov r12d,DWORD PTR[48+rsp] + + mov r15d,r13d + + shr r13d,3 + ror r15d,7 + + xor r13d,r15d + ror r15d,11 + + xor r13d,r15d + mov r14d,r12d + + shr r12d,10 + ror r14d,17 + + xor r12d,r14d + ror r14d,2 + + xor r12d,r14d + + add r12d,r13d + + add r12d,DWORD PTR[28+rsp] + + add r12d,DWORD PTR[56+rsp] + mov r13d,r10d + mov r14d,r10d + mov r15d,r11d + + ror r13d,6 + ror r14d,11 + xor r15d,eax + + xor r13d,r14d + ror r14d,14 + and r15d,r10d + mov DWORD PTR[56+rsp],r12d + + xor r13d,r14d + xor r15d,eax + add r12d,ebx + + mov ebx,ecx + add r12d,r13d + + add r12d,r15d + mov r13d,ecx + mov r14d,ecx + + ror ebx,2 + ror r13d,13 + mov r15d,ecx + add r12d,DWORD PTR[rdi*4+rbp] + + xor ebx,r13d + ror r13d,9 + or r14d,r8d + + xor ebx,r13d + and r15d,r8d + add r9d,r12d + + and r14d,edx + add ebx,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add ebx,r14d + mov r13d,DWORD PTR[rsp] + mov r12d,DWORD PTR[52+rsp] + + mov r15d,r13d + + shr r13d,3 + ror r15d,7 + + xor r13d,r15d + ror r15d,11 + + xor r13d,r15d + mov r14d,r12d + + shr r12d,10 + ror r14d,17 + + xor r12d,r14d + ror r14d,2 + + xor r12d,r14d + + add r12d,r13d + + add r12d,DWORD PTR[32+rsp] + + add r12d,DWORD PTR[60+rsp] + mov r13d,r9d + mov r14d,r9d + mov r15d,r10d + + ror r13d,6 + ror r14d,11 + xor r15d,r11d + + xor r13d,r14d + ror r14d,14 + and r15d,r9d + mov DWORD PTR[60+rsp],r12d + + xor r13d,r14d + xor r15d,r11d + add r12d,eax + + mov eax,ebx + add r12d,r13d + + add r12d,r15d + mov r13d,ebx + mov r14d,ebx + + ror eax,2 + ror r13d,13 + mov r15d,ebx + add r12d,DWORD PTR[rdi*4+rbp] + + xor eax,r13d + ror r13d,9 + or r14d,edx + + xor eax,r13d + and r15d,edx + add r8d,r12d + + and r14d,ecx + add eax,r12d + + or r14d,r15d + lea rdi,QWORD PTR[1+rdi] + + add eax,r14d + cmp rdi,64 + jb $L$rounds_16_xx + + mov rdi,QWORD PTR[((16*4+0*8))+rsp] + lea rsi,QWORD PTR[((16*4))+rsi] + + add eax,DWORD PTR[((4*0))+rdi] + add ebx,DWORD PTR[((4*1))+rdi] + add ecx,DWORD PTR[((4*2))+rdi] + add edx,DWORD PTR[((4*3))+rdi] + add r8d,DWORD PTR[((4*4))+rdi] + add r9d,DWORD PTR[((4*5))+rdi] + add r10d,DWORD PTR[((4*6))+rdi] + add r11d,DWORD PTR[((4*7))+rdi] + + cmp rsi,QWORD PTR[((16*4+2*8))+rsp] + + mov DWORD PTR[((4*0))+rdi],eax + mov DWORD PTR[((4*1))+rdi],ebx + mov DWORD PTR[((4*2))+rdi],ecx + mov DWORD PTR[((4*3))+rdi],edx + mov DWORD PTR[((4*4))+rdi],r8d + mov DWORD PTR[((4*5))+rdi],r9d + mov DWORD PTR[((4*6))+rdi],r10d + mov DWORD PTR[((4*7))+rdi],r11d + jb $L$loop + + mov rsi,QWORD PTR[((16*4+3*8))+rsp] + mov r15,QWORD PTR[rsi] + mov r14,QWORD PTR[8+rsi] + mov r13,QWORD PTR[16+rsi] + mov r12,QWORD PTR[24+rsi] + mov rbp,QWORD PTR[32+rsi] + mov rbx,QWORD PTR[40+rsi] + lea rsp,QWORD PTR[48+rsi] +$L$epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_sha256_block_data_order:: +sha256_block_data_order ENDP +ALIGN 64 + +K256:: + DD 0428a2f98h,071374491h,0b5c0fbcfh,0e9b5dba5h + DD 03956c25bh,059f111f1h,0923f82a4h,0ab1c5ed5h + DD 0d807aa98h,012835b01h,0243185beh,0550c7dc3h + DD 072be5d74h,080deb1feh,09bdc06a7h,0c19bf174h + DD 0e49b69c1h,0efbe4786h,00fc19dc6h,0240ca1cch + DD 02de92c6fh,04a7484aah,05cb0a9dch,076f988dah + DD 0983e5152h,0a831c66dh,0b00327c8h,0bf597fc7h + DD 0c6e00bf3h,0d5a79147h,006ca6351h,014292967h + DD 027b70a85h,02e1b2138h,04d2c6dfch,053380d13h + DD 0650a7354h,0766a0abbh,081c2c92eh,092722c85h + DD 0a2bfe8a1h,0a81a664bh,0c24b8b70h,0c76c51a3h + DD 0d192e819h,0d6990624h,0f40e3585h,0106aa070h + DD 019a4c116h,01e376c08h,02748774ch,034b0bcb5h + DD 0391c0cb3h,04ed8aa4ah,05b9cca4fh,0682e6ff3h + DD 0748f82eeh,078a5636fh,084c87814h,08cc70208h + DD 090befffah,0a4506cebh,0bef9a3f7h,0c67178f2h +EXTERN __imp_RtlVirtualUnwind:NEAR + +ALIGN 16 +se_handler PROC PRIVATE + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD PTR[120+r8] + mov rbx,QWORD PTR[248+r8] + + lea r10,QWORD PTR[$L$prologue] + cmp rbx,r10 + jb $L$in_prologue + + mov rax,QWORD PTR[152+r8] + + lea r10,QWORD PTR[$L$epilogue] + cmp rbx,r10 + jae $L$in_prologue + + mov rax,QWORD PTR[((16*4+3*8))+rax] + lea rax,QWORD PTR[48+rax] + + mov rbx,QWORD PTR[((-8))+rax] + mov rbp,QWORD PTR[((-16))+rax] + mov r12,QWORD PTR[((-24))+rax] + mov r13,QWORD PTR[((-32))+rax] + mov r14,QWORD PTR[((-40))+rax] + mov r15,QWORD PTR[((-48))+rax] + mov QWORD PTR[144+r8],rbx + mov QWORD PTR[160+r8],rbp + mov QWORD PTR[216+r8],r12 + mov QWORD PTR[224+r8],r13 + mov QWORD PTR[232+r8],r14 + mov QWORD PTR[240+r8],r15 + +$L$in_prologue:: + mov rdi,QWORD PTR[8+rax] + mov rsi,QWORD PTR[16+rax] + mov QWORD PTR[152+r8],rax + mov QWORD PTR[168+r8],rsi + mov QWORD PTR[176+r8],rdi + + mov rdi,QWORD PTR[40+r9] + mov rsi,r8 + mov ecx,154 + DD 0a548f3fch + + + mov rsi,r9 + xor rcx,rcx + mov rdx,QWORD PTR[8+rsi] + mov r8,QWORD PTR[rsi] + mov r9,QWORD PTR[16+rsi] + mov r10,QWORD PTR[40+rsi] + lea r11,QWORD PTR[56+rsi] + lea r12,QWORD PTR[24+rsi] + mov QWORD PTR[32+rsp],r10 + mov QWORD PTR[40+rsp],r11 + mov QWORD PTR[48+rsp],r12 + mov QWORD PTR[56+rsp],rcx + call QWORD PTR[__imp_RtlVirtualUnwind] + + mov eax,1 + add rsp,64 + popfq + pop r15 + pop r14 + pop r13 + pop r12 + pop rbp + pop rbx + pop rdi + pop rsi + DB 0F3h,0C3h ;repret +se_handler ENDP + +.text$ ENDS +.pdata SEGMENT READONLY ALIGN(4) +ALIGN 4 + DD imagerel $L$SEH_begin_sha256_block_data_order + DD imagerel $L$SEH_end_sha256_block_data_order + DD imagerel $L$SEH_info_sha256_block_data_order + +.pdata ENDS +.xdata SEGMENT READONLY ALIGN(8) +ALIGN 8 +$L$SEH_info_sha256_block_data_order:: +DB 9,0,0,0 + DD imagerel se_handler + +.xdata ENDS +END diff --git a/deps/openssl/asm/x64-win32-masm/whrlpool/wp-x86_64.asm b/deps/openssl/asm/x64-win32-masm/whrlpool/wp-x86_64.asm new file mode 100644 index 0000000000..25337b2440 --- /dev/null +++ b/deps/openssl/asm/x64-win32-masm/whrlpool/wp-x86_64.asm @@ -0,0 +1,972 @@ +OPTION DOTNAME +.text$ SEGMENT ALIGN(64) 'CODE' + +PUBLIC whirlpool_block + +ALIGN 16 +whirlpool_block PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_whirlpool_block:: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + + mov r11,rsp + sub rsp,128+40 + and rsp,-64 + + lea r10,QWORD PTR[128+rsp] + mov QWORD PTR[r10],rdi + mov QWORD PTR[8+r10],rsi + mov QWORD PTR[16+r10],rdx + mov QWORD PTR[32+r10],r11 +$L$prologue:: + + mov rbx,r10 + lea rbp,QWORD PTR[$L$table] + + xor rcx,rcx + xor rdx,rdx + mov r8,QWORD PTR[((0*8))+rdi] + mov r9,QWORD PTR[((1*8))+rdi] + mov r10,QWORD PTR[((2*8))+rdi] + mov r11,QWORD PTR[((3*8))+rdi] + mov r12,QWORD PTR[((4*8))+rdi] + mov r13,QWORD PTR[((5*8))+rdi] + mov r14,QWORD PTR[((6*8))+rdi] + mov r15,QWORD PTR[((7*8))+rdi] +$L$outerloop:: + mov QWORD PTR[((0*8))+rsp],r8 + mov QWORD PTR[((1*8))+rsp],r9 + mov QWORD PTR[((2*8))+rsp],r10 + mov QWORD PTR[((3*8))+rsp],r11 + mov QWORD PTR[((4*8))+rsp],r12 + mov QWORD PTR[((5*8))+rsp],r13 + mov QWORD PTR[((6*8))+rsp],r14 + mov QWORD PTR[((7*8))+rsp],r15 + xor r8,QWORD PTR[((0*8))+rsi] + xor r9,QWORD PTR[((1*8))+rsi] + xor r10,QWORD PTR[((2*8))+rsi] + xor r11,QWORD PTR[((3*8))+rsi] + xor r12,QWORD PTR[((4*8))+rsi] + xor r13,QWORD PTR[((5*8))+rsi] + xor r14,QWORD PTR[((6*8))+rsi] + xor r15,QWORD PTR[((7*8))+rsi] + mov QWORD PTR[((64+0*8))+rsp],r8 + mov QWORD PTR[((64+1*8))+rsp],r9 + mov QWORD PTR[((64+2*8))+rsp],r10 + mov QWORD PTR[((64+3*8))+rsp],r11 + mov QWORD PTR[((64+4*8))+rsp],r12 + mov QWORD PTR[((64+5*8))+rsp],r13 + mov QWORD PTR[((64+6*8))+rsp],r14 + mov QWORD PTR[((64+7*8))+rsp],r15 + xor rsi,rsi + mov QWORD PTR[24+rbx],rsi +ALIGN 16 +$L$round:: + mov r8,QWORD PTR[4096+rsi*8+rbp] + mov eax,DWORD PTR[rsp] + mov ebx,DWORD PTR[4+rsp] + mov cl,al + mov dl,ah + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr eax,16 + xor r8,QWORD PTR[rsi*8+rbp] + mov r9,QWORD PTR[7+rdi*8+rbp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR[((0*8+8))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + mov r10,QWORD PTR[6+rsi*8+rbp] + mov r11,QWORD PTR[5+rdi*8+rbp] + mov cl,bl + mov dl,bh + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr ebx,16 + mov r12,QWORD PTR[4+rsi*8+rbp] + mov r13,QWORD PTR[3+rdi*8+rbp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR[((0*8+8+4))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + mov r14,QWORD PTR[2+rsi*8+rbp] + mov r15,QWORD PTR[1+rdi*8+rbp] + mov cl,al + mov dl,ah + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr eax,16 + xor r9,QWORD PTR[rsi*8+rbp] + xor r10,QWORD PTR[7+rdi*8+rbp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR[((1*8+8))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r11,QWORD PTR[6+rsi*8+rbp] + xor r12,QWORD PTR[5+rdi*8+rbp] + mov cl,bl + mov dl,bh + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr ebx,16 + xor r13,QWORD PTR[4+rsi*8+rbp] + xor r14,QWORD PTR[3+rdi*8+rbp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR[((1*8+8+4))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r15,QWORD PTR[2+rsi*8+rbp] + xor r8,QWORD PTR[1+rdi*8+rbp] + mov cl,al + mov dl,ah + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr eax,16 + xor r10,QWORD PTR[rsi*8+rbp] + xor r11,QWORD PTR[7+rdi*8+rbp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR[((2*8+8))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r12,QWORD PTR[6+rsi*8+rbp] + xor r13,QWORD PTR[5+rdi*8+rbp] + mov cl,bl + mov dl,bh + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr ebx,16 + xor r14,QWORD PTR[4+rsi*8+rbp] + xor r15,QWORD PTR[3+rdi*8+rbp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR[((2*8+8+4))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r8,QWORD PTR[2+rsi*8+rbp] + xor r9,QWORD PTR[1+rdi*8+rbp] + mov cl,al + mov dl,ah + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr eax,16 + xor r11,QWORD PTR[rsi*8+rbp] + xor r12,QWORD PTR[7+rdi*8+rbp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR[((3*8+8))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r13,QWORD PTR[6+rsi*8+rbp] + xor r14,QWORD PTR[5+rdi*8+rbp] + mov cl,bl + mov dl,bh + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr ebx,16 + xor r15,QWORD PTR[4+rsi*8+rbp] + xor r8,QWORD PTR[3+rdi*8+rbp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR[((3*8+8+4))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r9,QWORD PTR[2+rsi*8+rbp] + xor r10,QWORD PTR[1+rdi*8+rbp] + mov cl,al + mov dl,ah + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr eax,16 + xor r12,QWORD PTR[rsi*8+rbp] + xor r13,QWORD PTR[7+rdi*8+rbp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR[((4*8+8))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r14,QWORD PTR[6+rsi*8+rbp] + xor r15,QWORD PTR[5+rdi*8+rbp] + mov cl,bl + mov dl,bh + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr ebx,16 + xor r8,QWORD PTR[4+rsi*8+rbp] + xor r9,QWORD PTR[3+rdi*8+rbp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR[((4*8+8+4))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r10,QWORD PTR[2+rsi*8+rbp] + xor r11,QWORD PTR[1+rdi*8+rbp] + mov cl,al + mov dl,ah + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr eax,16 + xor r13,QWORD PTR[rsi*8+rbp] + xor r14,QWORD PTR[7+rdi*8+rbp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR[((5*8+8))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r15,QWORD PTR[6+rsi*8+rbp] + xor r8,QWORD PTR[5+rdi*8+rbp] + mov cl,bl + mov dl,bh + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr ebx,16 + xor r9,QWORD PTR[4+rsi*8+rbp] + xor r10,QWORD PTR[3+rdi*8+rbp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR[((5*8+8+4))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r11,QWORD PTR[2+rsi*8+rbp] + xor r12,QWORD PTR[1+rdi*8+rbp] + mov cl,al + mov dl,ah + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr eax,16 + xor r14,QWORD PTR[rsi*8+rbp] + xor r15,QWORD PTR[7+rdi*8+rbp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR[((6*8+8))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r8,QWORD PTR[6+rsi*8+rbp] + xor r9,QWORD PTR[5+rdi*8+rbp] + mov cl,bl + mov dl,bh + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr ebx,16 + xor r10,QWORD PTR[4+rsi*8+rbp] + xor r11,QWORD PTR[3+rdi*8+rbp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR[((6*8+8+4))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r12,QWORD PTR[2+rsi*8+rbp] + xor r13,QWORD PTR[1+rdi*8+rbp] + mov cl,al + mov dl,ah + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr eax,16 + xor r15,QWORD PTR[rsi*8+rbp] + xor r8,QWORD PTR[7+rdi*8+rbp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR[((7*8+8))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r9,QWORD PTR[6+rsi*8+rbp] + xor r10,QWORD PTR[5+rdi*8+rbp] + mov cl,bl + mov dl,bh + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr ebx,16 + xor r11,QWORD PTR[4+rsi*8+rbp] + xor r12,QWORD PTR[3+rdi*8+rbp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR[((7*8+8+4))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r13,QWORD PTR[2+rsi*8+rbp] + xor r14,QWORD PTR[1+rdi*8+rbp] + mov QWORD PTR[((0*8))+rsp],r8 + mov QWORD PTR[((1*8))+rsp],r9 + mov QWORD PTR[((2*8))+rsp],r10 + mov QWORD PTR[((3*8))+rsp],r11 + mov QWORD PTR[((4*8))+rsp],r12 + mov QWORD PTR[((5*8))+rsp],r13 + mov QWORD PTR[((6*8))+rsp],r14 + mov QWORD PTR[((7*8))+rsp],r15 + mov cl,al + mov dl,ah + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr eax,16 + xor r8,QWORD PTR[rsi*8+rbp] + xor r9,QWORD PTR[7+rdi*8+rbp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR[((64+0*8+8))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r10,QWORD PTR[6+rsi*8+rbp] + xor r11,QWORD PTR[5+rdi*8+rbp] + mov cl,bl + mov dl,bh + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr ebx,16 + xor r12,QWORD PTR[4+rsi*8+rbp] + xor r13,QWORD PTR[3+rdi*8+rbp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR[((64+0*8+8+4))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r14,QWORD PTR[2+rsi*8+rbp] + xor r15,QWORD PTR[1+rdi*8+rbp] + mov cl,al + mov dl,ah + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr eax,16 + xor r9,QWORD PTR[rsi*8+rbp] + xor r10,QWORD PTR[7+rdi*8+rbp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR[((64+1*8+8))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r11,QWORD PTR[6+rsi*8+rbp] + xor r12,QWORD PTR[5+rdi*8+rbp] + mov cl,bl + mov dl,bh + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr ebx,16 + xor r13,QWORD PTR[4+rsi*8+rbp] + xor r14,QWORD PTR[3+rdi*8+rbp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR[((64+1*8+8+4))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r15,QWORD PTR[2+rsi*8+rbp] + xor r8,QWORD PTR[1+rdi*8+rbp] + mov cl,al + mov dl,ah + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr eax,16 + xor r10,QWORD PTR[rsi*8+rbp] + xor r11,QWORD PTR[7+rdi*8+rbp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR[((64+2*8+8))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r12,QWORD PTR[6+rsi*8+rbp] + xor r13,QWORD PTR[5+rdi*8+rbp] + mov cl,bl + mov dl,bh + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr ebx,16 + xor r14,QWORD PTR[4+rsi*8+rbp] + xor r15,QWORD PTR[3+rdi*8+rbp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR[((64+2*8+8+4))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r8,QWORD PTR[2+rsi*8+rbp] + xor r9,QWORD PTR[1+rdi*8+rbp] + mov cl,al + mov dl,ah + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr eax,16 + xor r11,QWORD PTR[rsi*8+rbp] + xor r12,QWORD PTR[7+rdi*8+rbp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR[((64+3*8+8))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r13,QWORD PTR[6+rsi*8+rbp] + xor r14,QWORD PTR[5+rdi*8+rbp] + mov cl,bl + mov dl,bh + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr ebx,16 + xor r15,QWORD PTR[4+rsi*8+rbp] + xor r8,QWORD PTR[3+rdi*8+rbp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR[((64+3*8+8+4))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r9,QWORD PTR[2+rsi*8+rbp] + xor r10,QWORD PTR[1+rdi*8+rbp] + mov cl,al + mov dl,ah + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr eax,16 + xor r12,QWORD PTR[rsi*8+rbp] + xor r13,QWORD PTR[7+rdi*8+rbp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR[((64+4*8+8))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r14,QWORD PTR[6+rsi*8+rbp] + xor r15,QWORD PTR[5+rdi*8+rbp] + mov cl,bl + mov dl,bh + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr ebx,16 + xor r8,QWORD PTR[4+rsi*8+rbp] + xor r9,QWORD PTR[3+rdi*8+rbp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR[((64+4*8+8+4))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r10,QWORD PTR[2+rsi*8+rbp] + xor r11,QWORD PTR[1+rdi*8+rbp] + mov cl,al + mov dl,ah + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr eax,16 + xor r13,QWORD PTR[rsi*8+rbp] + xor r14,QWORD PTR[7+rdi*8+rbp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR[((64+5*8+8))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r15,QWORD PTR[6+rsi*8+rbp] + xor r8,QWORD PTR[5+rdi*8+rbp] + mov cl,bl + mov dl,bh + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr ebx,16 + xor r9,QWORD PTR[4+rsi*8+rbp] + xor r10,QWORD PTR[3+rdi*8+rbp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR[((64+5*8+8+4))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r11,QWORD PTR[2+rsi*8+rbp] + xor r12,QWORD PTR[1+rdi*8+rbp] + mov cl,al + mov dl,ah + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr eax,16 + xor r14,QWORD PTR[rsi*8+rbp] + xor r15,QWORD PTR[7+rdi*8+rbp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR[((64+6*8+8))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r8,QWORD PTR[6+rsi*8+rbp] + xor r9,QWORD PTR[5+rdi*8+rbp] + mov cl,bl + mov dl,bh + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr ebx,16 + xor r10,QWORD PTR[4+rsi*8+rbp] + xor r11,QWORD PTR[3+rdi*8+rbp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR[((64+6*8+8+4))+rsp] + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r12,QWORD PTR[2+rsi*8+rbp] + xor r13,QWORD PTR[1+rdi*8+rbp] + mov cl,al + mov dl,ah + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr eax,16 + xor r15,QWORD PTR[rsi*8+rbp] + xor r8,QWORD PTR[7+rdi*8+rbp] + mov cl,al + mov dl,ah + + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r9,QWORD PTR[6+rsi*8+rbp] + xor r10,QWORD PTR[5+rdi*8+rbp] + mov cl,bl + mov dl,bh + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + shr ebx,16 + xor r11,QWORD PTR[4+rsi*8+rbp] + xor r12,QWORD PTR[3+rdi*8+rbp] + mov cl,bl + mov dl,bh + + lea rsi,QWORD PTR[rcx*1+rcx] + lea rdi,QWORD PTR[rdx*1+rdx] + xor r13,QWORD PTR[2+rsi*8+rbp] + xor r14,QWORD PTR[1+rdi*8+rbp] + lea rbx,QWORD PTR[128+rsp] + mov rsi,QWORD PTR[24+rbx] + add rsi,1 + cmp rsi,10 + je $L$roundsdone + + mov QWORD PTR[24+rbx],rsi + mov QWORD PTR[((64+0*8))+rsp],r8 + mov QWORD PTR[((64+1*8))+rsp],r9 + mov QWORD PTR[((64+2*8))+rsp],r10 + mov QWORD PTR[((64+3*8))+rsp],r11 + mov QWORD PTR[((64+4*8))+rsp],r12 + mov QWORD PTR[((64+5*8))+rsp],r13 + mov QWORD PTR[((64+6*8))+rsp],r14 + mov QWORD PTR[((64+7*8))+rsp],r15 + jmp $L$round +ALIGN 16 +$L$roundsdone:: + mov rdi,QWORD PTR[rbx] + mov rsi,QWORD PTR[8+rbx] + mov rax,QWORD PTR[16+rbx] + xor r8,QWORD PTR[((0*8))+rsi] + xor r9,QWORD PTR[((1*8))+rsi] + xor r10,QWORD PTR[((2*8))+rsi] + xor r11,QWORD PTR[((3*8))+rsi] + xor r12,QWORD PTR[((4*8))+rsi] + xor r13,QWORD PTR[((5*8))+rsi] + xor r14,QWORD PTR[((6*8))+rsi] + xor r15,QWORD PTR[((7*8))+rsi] + xor r8,QWORD PTR[((0*8))+rdi] + xor r9,QWORD PTR[((1*8))+rdi] + xor r10,QWORD PTR[((2*8))+rdi] + xor r11,QWORD PTR[((3*8))+rdi] + xor r12,QWORD PTR[((4*8))+rdi] + xor r13,QWORD PTR[((5*8))+rdi] + xor r14,QWORD PTR[((6*8))+rdi] + xor r15,QWORD PTR[((7*8))+rdi] + mov QWORD PTR[((0*8))+rdi],r8 + mov QWORD PTR[((1*8))+rdi],r9 + mov QWORD PTR[((2*8))+rdi],r10 + mov QWORD PTR[((3*8))+rdi],r11 + mov QWORD PTR[((4*8))+rdi],r12 + mov QWORD PTR[((5*8))+rdi],r13 + mov QWORD PTR[((6*8))+rdi],r14 + mov QWORD PTR[((7*8))+rdi],r15 + lea rsi,QWORD PTR[64+rsi] + sub rax,1 + jz $L$alldone + mov QWORD PTR[8+rbx],rsi + mov QWORD PTR[16+rbx],rax + jmp $L$outerloop +$L$alldone:: + mov rsi,QWORD PTR[32+rbx] + mov r15,QWORD PTR[rsi] + mov r14,QWORD PTR[8+rsi] + mov r13,QWORD PTR[16+rsi] + mov r12,QWORD PTR[24+rsi] + mov rbp,QWORD PTR[32+rsi] + mov rbx,QWORD PTR[40+rsi] + lea rsp,QWORD PTR[48+rsi] +$L$epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] + DB 0F3h,0C3h ;repret +$L$SEH_end_whirlpool_block:: +whirlpool_block ENDP + +ALIGN 64 + +$L$table:: +DB 24,24,96,24,192,120,48,216,24,24,96,24,192,120,48,216 +DB 35,35,140,35,5,175,70,38,35,35,140,35,5,175,70,38 +DB 198,198,63,198,126,249,145,184,198,198,63,198,126,249,145,184 +DB 232,232,135,232,19,111,205,251,232,232,135,232,19,111,205,251 +DB 135,135,38,135,76,161,19,203,135,135,38,135,76,161,19,203 +DB 184,184,218,184,169,98,109,17,184,184,218,184,169,98,109,17 +DB 1,1,4,1,8,5,2,9,1,1,4,1,8,5,2,9 +DB 79,79,33,79,66,110,158,13,79,79,33,79,66,110,158,13 +DB 54,54,216,54,173,238,108,155,54,54,216,54,173,238,108,155 +DB 166,166,162,166,89,4,81,255,166,166,162,166,89,4,81,255 +DB 210,210,111,210,222,189,185,12,210,210,111,210,222,189,185,12 +DB 245,245,243,245,251,6,247,14,245,245,243,245,251,6,247,14 +DB 121,121,249,121,239,128,242,150,121,121,249,121,239,128,242,150 +DB 111,111,161,111,95,206,222,48,111,111,161,111,95,206,222,48 +DB 145,145,126,145,252,239,63,109,145,145,126,145,252,239,63,109 +DB 82,82,85,82,170,7,164,248,82,82,85,82,170,7,164,248 +DB 96,96,157,96,39,253,192,71,96,96,157,96,39,253,192,71 +DB 188,188,202,188,137,118,101,53,188,188,202,188,137,118,101,53 +DB 155,155,86,155,172,205,43,55,155,155,86,155,172,205,43,55 +DB 142,142,2,142,4,140,1,138,142,142,2,142,4,140,1,138 +DB 163,163,182,163,113,21,91,210,163,163,182,163,113,21,91,210 +DB 12,12,48,12,96,60,24,108,12,12,48,12,96,60,24,108 +DB 123,123,241,123,255,138,246,132,123,123,241,123,255,138,246,132 +DB 53,53,212,53,181,225,106,128,53,53,212,53,181,225,106,128 +DB 29,29,116,29,232,105,58,245,29,29,116,29,232,105,58,245 +DB 224,224,167,224,83,71,221,179,224,224,167,224,83,71,221,179 +DB 215,215,123,215,246,172,179,33,215,215,123,215,246,172,179,33 +DB 194,194,47,194,94,237,153,156,194,194,47,194,94,237,153,156 +DB 46,46,184,46,109,150,92,67,46,46,184,46,109,150,92,67 +DB 75,75,49,75,98,122,150,41,75,75,49,75,98,122,150,41 +DB 254,254,223,254,163,33,225,93,254,254,223,254,163,33,225,93 +DB 87,87,65,87,130,22,174,213,87,87,65,87,130,22,174,213 +DB 21,21,84,21,168,65,42,189,21,21,84,21,168,65,42,189 +DB 119,119,193,119,159,182,238,232,119,119,193,119,159,182,238,232 +DB 55,55,220,55,165,235,110,146,55,55,220,55,165,235,110,146 +DB 229,229,179,229,123,86,215,158,229,229,179,229,123,86,215,158 +DB 159,159,70,159,140,217,35,19,159,159,70,159,140,217,35,19 +DB 240,240,231,240,211,23,253,35,240,240,231,240,211,23,253,35 +DB 74,74,53,74,106,127,148,32,74,74,53,74,106,127,148,32 +DB 218,218,79,218,158,149,169,68,218,218,79,218,158,149,169,68 +DB 88,88,125,88,250,37,176,162,88,88,125,88,250,37,176,162 +DB 201,201,3,201,6,202,143,207,201,201,3,201,6,202,143,207 +DB 41,41,164,41,85,141,82,124,41,41,164,41,85,141,82,124 +DB 10,10,40,10,80,34,20,90,10,10,40,10,80,34,20,90 +DB 177,177,254,177,225,79,127,80,177,177,254,177,225,79,127,80 +DB 160,160,186,160,105,26,93,201,160,160,186,160,105,26,93,201 +DB 107,107,177,107,127,218,214,20,107,107,177,107,127,218,214,20 +DB 133,133,46,133,92,171,23,217,133,133,46,133,92,171,23,217 +DB 189,189,206,189,129,115,103,60,189,189,206,189,129,115,103,60 +DB 93,93,105,93,210,52,186,143,93,93,105,93,210,52,186,143 +DB 16,16,64,16,128,80,32,144,16,16,64,16,128,80,32,144 +DB 244,244,247,244,243,3,245,7,244,244,247,244,243,3,245,7 +DB 203,203,11,203,22,192,139,221,203,203,11,203,22,192,139,221 +DB 62,62,248,62,237,198,124,211,62,62,248,62,237,198,124,211 +DB 5,5,20,5,40,17,10,45,5,5,20,5,40,17,10,45 +DB 103,103,129,103,31,230,206,120,103,103,129,103,31,230,206,120 +DB 228,228,183,228,115,83,213,151,228,228,183,228,115,83,213,151 +DB 39,39,156,39,37,187,78,2,39,39,156,39,37,187,78,2 +DB 65,65,25,65,50,88,130,115,65,65,25,65,50,88,130,115 +DB 139,139,22,139,44,157,11,167,139,139,22,139,44,157,11,167 +DB 167,167,166,167,81,1,83,246,167,167,166,167,81,1,83,246 +DB 125,125,233,125,207,148,250,178,125,125,233,125,207,148,250,178 +DB 149,149,110,149,220,251,55,73,149,149,110,149,220,251,55,73 +DB 216,216,71,216,142,159,173,86,216,216,71,216,142,159,173,86 +DB 251,251,203,251,139,48,235,112,251,251,203,251,139,48,235,112 +DB 238,238,159,238,35,113,193,205,238,238,159,238,35,113,193,205 +DB 124,124,237,124,199,145,248,187,124,124,237,124,199,145,248,187 +DB 102,102,133,102,23,227,204,113,102,102,133,102,23,227,204,113 +DB 221,221,83,221,166,142,167,123,221,221,83,221,166,142,167,123 +DB 23,23,92,23,184,75,46,175,23,23,92,23,184,75,46,175 +DB 71,71,1,71,2,70,142,69,71,71,1,71,2,70,142,69 +DB 158,158,66,158,132,220,33,26,158,158,66,158,132,220,33,26 +DB 202,202,15,202,30,197,137,212,202,202,15,202,30,197,137,212 +DB 45,45,180,45,117,153,90,88,45,45,180,45,117,153,90,88 +DB 191,191,198,191,145,121,99,46,191,191,198,191,145,121,99,46 +DB 7,7,28,7,56,27,14,63,7,7,28,7,56,27,14,63 +DB 173,173,142,173,1,35,71,172,173,173,142,173,1,35,71,172 +DB 90,90,117,90,234,47,180,176,90,90,117,90,234,47,180,176 +DB 131,131,54,131,108,181,27,239,131,131,54,131,108,181,27,239 +DB 51,51,204,51,133,255,102,182,51,51,204,51,133,255,102,182 +DB 99,99,145,99,63,242,198,92,99,99,145,99,63,242,198,92 +DB 2,2,8,2,16,10,4,18,2,2,8,2,16,10,4,18 +DB 170,170,146,170,57,56,73,147,170,170,146,170,57,56,73,147 +DB 113,113,217,113,175,168,226,222,113,113,217,113,175,168,226,222 +DB 200,200,7,200,14,207,141,198,200,200,7,200,14,207,141,198 +DB 25,25,100,25,200,125,50,209,25,25,100,25,200,125,50,209 +DB 73,73,57,73,114,112,146,59,73,73,57,73,114,112,146,59 +DB 217,217,67,217,134,154,175,95,217,217,67,217,134,154,175,95 +DB 242,242,239,242,195,29,249,49,242,242,239,242,195,29,249,49 +DB 227,227,171,227,75,72,219,168,227,227,171,227,75,72,219,168 +DB 91,91,113,91,226,42,182,185,91,91,113,91,226,42,182,185 +DB 136,136,26,136,52,146,13,188,136,136,26,136,52,146,13,188 +DB 154,154,82,154,164,200,41,62,154,154,82,154,164,200,41,62 +DB 38,38,152,38,45,190,76,11,38,38,152,38,45,190,76,11 +DB 50,50,200,50,141,250,100,191,50,50,200,50,141,250,100,191 +DB 176,176,250,176,233,74,125,89,176,176,250,176,233,74,125,89 +DB 233,233,131,233,27,106,207,242,233,233,131,233,27,106,207,242 +DB 15,15,60,15,120,51,30,119,15,15,60,15,120,51,30,119 +DB 213,213,115,213,230,166,183,51,213,213,115,213,230,166,183,51 +DB 128,128,58,128,116,186,29,244,128,128,58,128,116,186,29,244 +DB 190,190,194,190,153,124,97,39,190,190,194,190,153,124,97,39 +DB 205,205,19,205,38,222,135,235,205,205,19,205,38,222,135,235 +DB 52,52,208,52,189,228,104,137,52,52,208,52,189,228,104,137 +DB 72,72,61,72,122,117,144,50,72,72,61,72,122,117,144,50 +DB 255,255,219,255,171,36,227,84,255,255,219,255,171,36,227,84 +DB 122,122,245,122,247,143,244,141,122,122,245,122,247,143,244,141 +DB 144,144,122,144,244,234,61,100,144,144,122,144,244,234,61,100 +DB 95,95,97,95,194,62,190,157,95,95,97,95,194,62,190,157 +DB 32,32,128,32,29,160,64,61,32,32,128,32,29,160,64,61 +DB 104,104,189,104,103,213,208,15,104,104,189,104,103,213,208,15 +DB 26,26,104,26,208,114,52,202,26,26,104,26,208,114,52,202 +DB 174,174,130,174,25,44,65,183,174,174,130,174,25,44,65,183 +DB 180,180,234,180,201,94,117,125,180,180,234,180,201,94,117,125 +DB 84,84,77,84,154,25,168,206,84,84,77,84,154,25,168,206 +DB 147,147,118,147,236,229,59,127,147,147,118,147,236,229,59,127 +DB 34,34,136,34,13,170,68,47,34,34,136,34,13,170,68,47 +DB 100,100,141,100,7,233,200,99,100,100,141,100,7,233,200,99 +DB 241,241,227,241,219,18,255,42,241,241,227,241,219,18,255,42 +DB 115,115,209,115,191,162,230,204,115,115,209,115,191,162,230,204 +DB 18,18,72,18,144,90,36,130,18,18,72,18,144,90,36,130 +DB 64,64,29,64,58,93,128,122,64,64,29,64,58,93,128,122 +DB 8,8,32,8,64,40,16,72,8,8,32,8,64,40,16,72 +DB 195,195,43,195,86,232,155,149,195,195,43,195,86,232,155,149 +DB 236,236,151,236,51,123,197,223,236,236,151,236,51,123,197,223 +DB 219,219,75,219,150,144,171,77,219,219,75,219,150,144,171,77 +DB 161,161,190,161,97,31,95,192,161,161,190,161,97,31,95,192 +DB 141,141,14,141,28,131,7,145,141,141,14,141,28,131,7,145 +DB 61,61,244,61,245,201,122,200,61,61,244,61,245,201,122,200 +DB 151,151,102,151,204,241,51,91,151,151,102,151,204,241,51,91 +DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +DB 207,207,27,207,54,212,131,249,207,207,27,207,54,212,131,249 +DB 43,43,172,43,69,135,86,110,43,43,172,43,69,135,86,110 +DB 118,118,197,118,151,179,236,225,118,118,197,118,151,179,236,225 +DB 130,130,50,130,100,176,25,230,130,130,50,130,100,176,25,230 +DB 214,214,127,214,254,169,177,40,214,214,127,214,254,169,177,40 +DB 27,27,108,27,216,119,54,195,27,27,108,27,216,119,54,195 +DB 181,181,238,181,193,91,119,116,181,181,238,181,193,91,119,116 +DB 175,175,134,175,17,41,67,190,175,175,134,175,17,41,67,190 +DB 106,106,181,106,119,223,212,29,106,106,181,106,119,223,212,29 +DB 80,80,93,80,186,13,160,234,80,80,93,80,186,13,160,234 +DB 69,69,9,69,18,76,138,87,69,69,9,69,18,76,138,87 +DB 243,243,235,243,203,24,251,56,243,243,235,243,203,24,251,56 +DB 48,48,192,48,157,240,96,173,48,48,192,48,157,240,96,173 +DB 239,239,155,239,43,116,195,196,239,239,155,239,43,116,195,196 +DB 63,63,252,63,229,195,126,218,63,63,252,63,229,195,126,218 +DB 85,85,73,85,146,28,170,199,85,85,73,85,146,28,170,199 +DB 162,162,178,162,121,16,89,219,162,162,178,162,121,16,89,219 +DB 234,234,143,234,3,101,201,233,234,234,143,234,3,101,201,233 +DB 101,101,137,101,15,236,202,106,101,101,137,101,15,236,202,106 +DB 186,186,210,186,185,104,105,3,186,186,210,186,185,104,105,3 +DB 47,47,188,47,101,147,94,74,47,47,188,47,101,147,94,74 +DB 192,192,39,192,78,231,157,142,192,192,39,192,78,231,157,142 +DB 222,222,95,222,190,129,161,96,222,222,95,222,190,129,161,96 +DB 28,28,112,28,224,108,56,252,28,28,112,28,224,108,56,252 +DB 253,253,211,253,187,46,231,70,253,253,211,253,187,46,231,70 +DB 77,77,41,77,82,100,154,31,77,77,41,77,82,100,154,31 +DB 146,146,114,146,228,224,57,118,146,146,114,146,228,224,57,118 +DB 117,117,201,117,143,188,234,250,117,117,201,117,143,188,234,250 +DB 6,6,24,6,48,30,12,54,6,6,24,6,48,30,12,54 +DB 138,138,18,138,36,152,9,174,138,138,18,138,36,152,9,174 +DB 178,178,242,178,249,64,121,75,178,178,242,178,249,64,121,75 +DB 230,230,191,230,99,89,209,133,230,230,191,230,99,89,209,133 +DB 14,14,56,14,112,54,28,126,14,14,56,14,112,54,28,126 +DB 31,31,124,31,248,99,62,231,31,31,124,31,248,99,62,231 +DB 98,98,149,98,55,247,196,85,98,98,149,98,55,247,196,85 +DB 212,212,119,212,238,163,181,58,212,212,119,212,238,163,181,58 +DB 168,168,154,168,41,50,77,129,168,168,154,168,41,50,77,129 +DB 150,150,98,150,196,244,49,82,150,150,98,150,196,244,49,82 +DB 249,249,195,249,155,58,239,98,249,249,195,249,155,58,239,98 +DB 197,197,51,197,102,246,151,163,197,197,51,197,102,246,151,163 +DB 37,37,148,37,53,177,74,16,37,37,148,37,53,177,74,16 +DB 89,89,121,89,242,32,178,171,89,89,121,89,242,32,178,171 +DB 132,132,42,132,84,174,21,208,132,132,42,132,84,174,21,208 +DB 114,114,213,114,183,167,228,197,114,114,213,114,183,167,228,197 +DB 57,57,228,57,213,221,114,236,57,57,228,57,213,221,114,236 +DB 76,76,45,76,90,97,152,22,76,76,45,76,90,97,152,22 +DB 94,94,101,94,202,59,188,148,94,94,101,94,202,59,188,148 +DB 120,120,253,120,231,133,240,159,120,120,253,120,231,133,240,159 +DB 56,56,224,56,221,216,112,229,56,56,224,56,221,216,112,229 +DB 140,140,10,140,20,134,5,152,140,140,10,140,20,134,5,152 +DB 209,209,99,209,198,178,191,23,209,209,99,209,198,178,191,23 +DB 165,165,174,165,65,11,87,228,165,165,174,165,65,11,87,228 +DB 226,226,175,226,67,77,217,161,226,226,175,226,67,77,217,161 +DB 97,97,153,97,47,248,194,78,97,97,153,97,47,248,194,78 +DB 179,179,246,179,241,69,123,66,179,179,246,179,241,69,123,66 +DB 33,33,132,33,21,165,66,52,33,33,132,33,21,165,66,52 +DB 156,156,74,156,148,214,37,8,156,156,74,156,148,214,37,8 +DB 30,30,120,30,240,102,60,238,30,30,120,30,240,102,60,238 +DB 67,67,17,67,34,82,134,97,67,67,17,67,34,82,134,97 +DB 199,199,59,199,118,252,147,177,199,199,59,199,118,252,147,177 +DB 252,252,215,252,179,43,229,79,252,252,215,252,179,43,229,79 +DB 4,4,16,4,32,20,8,36,4,4,16,4,32,20,8,36 +DB 81,81,89,81,178,8,162,227,81,81,89,81,178,8,162,227 +DB 153,153,94,153,188,199,47,37,153,153,94,153,188,199,47,37 +DB 109,109,169,109,79,196,218,34,109,109,169,109,79,196,218,34 +DB 13,13,52,13,104,57,26,101,13,13,52,13,104,57,26,101 +DB 250,250,207,250,131,53,233,121,250,250,207,250,131,53,233,121 +DB 223,223,91,223,182,132,163,105,223,223,91,223,182,132,163,105 +DB 126,126,229,126,215,155,252,169,126,126,229,126,215,155,252,169 +DB 36,36,144,36,61,180,72,25,36,36,144,36,61,180,72,25 +DB 59,59,236,59,197,215,118,254,59,59,236,59,197,215,118,254 +DB 171,171,150,171,49,61,75,154,171,171,150,171,49,61,75,154 +DB 206,206,31,206,62,209,129,240,206,206,31,206,62,209,129,240 +DB 17,17,68,17,136,85,34,153,17,17,68,17,136,85,34,153 +DB 143,143,6,143,12,137,3,131,143,143,6,143,12,137,3,131 +DB 78,78,37,78,74,107,156,4,78,78,37,78,74,107,156,4 +DB 183,183,230,183,209,81,115,102,183,183,230,183,209,81,115,102 +DB 235,235,139,235,11,96,203,224,235,235,139,235,11,96,203,224 +DB 60,60,240,60,253,204,120,193,60,60,240,60,253,204,120,193 +DB 129,129,62,129,124,191,31,253,129,129,62,129,124,191,31,253 +DB 148,148,106,148,212,254,53,64,148,148,106,148,212,254,53,64 +DB 247,247,251,247,235,12,243,28,247,247,251,247,235,12,243,28 +DB 185,185,222,185,161,103,111,24,185,185,222,185,161,103,111,24 +DB 19,19,76,19,152,95,38,139,19,19,76,19,152,95,38,139 +DB 44,44,176,44,125,156,88,81,44,44,176,44,125,156,88,81 +DB 211,211,107,211,214,184,187,5,211,211,107,211,214,184,187,5 +DB 231,231,187,231,107,92,211,140,231,231,187,231,107,92,211,140 +DB 110,110,165,110,87,203,220,57,110,110,165,110,87,203,220,57 +DB 196,196,55,196,110,243,149,170,196,196,55,196,110,243,149,170 +DB 3,3,12,3,24,15,6,27,3,3,12,3,24,15,6,27 +DB 86,86,69,86,138,19,172,220,86,86,69,86,138,19,172,220 +DB 68,68,13,68,26,73,136,94,68,68,13,68,26,73,136,94 +DB 127,127,225,127,223,158,254,160,127,127,225,127,223,158,254,160 +DB 169,169,158,169,33,55,79,136,169,169,158,169,33,55,79,136 +DB 42,42,168,42,77,130,84,103,42,42,168,42,77,130,84,103 +DB 187,187,214,187,177,109,107,10,187,187,214,187,177,109,107,10 +DB 193,193,35,193,70,226,159,135,193,193,35,193,70,226,159,135 +DB 83,83,81,83,162,2,166,241,83,83,81,83,162,2,166,241 +DB 220,220,87,220,174,139,165,114,220,220,87,220,174,139,165,114 +DB 11,11,44,11,88,39,22,83,11,11,44,11,88,39,22,83 +DB 157,157,78,157,156,211,39,1,157,157,78,157,156,211,39,1 +DB 108,108,173,108,71,193,216,43,108,108,173,108,71,193,216,43 +DB 49,49,196,49,149,245,98,164,49,49,196,49,149,245,98,164 +DB 116,116,205,116,135,185,232,243,116,116,205,116,135,185,232,243 +DB 246,246,255,246,227,9,241,21,246,246,255,246,227,9,241,21 +DB 70,70,5,70,10,67,140,76,70,70,5,70,10,67,140,76 +DB 172,172,138,172,9,38,69,165,172,172,138,172,9,38,69,165 +DB 137,137,30,137,60,151,15,181,137,137,30,137,60,151,15,181 +DB 20,20,80,20,160,68,40,180,20,20,80,20,160,68,40,180 +DB 225,225,163,225,91,66,223,186,225,225,163,225,91,66,223,186 +DB 22,22,88,22,176,78,44,166,22,22,88,22,176,78,44,166 +DB 58,58,232,58,205,210,116,247,58,58,232,58,205,210,116,247 +DB 105,105,185,105,111,208,210,6,105,105,185,105,111,208,210,6 +DB 9,9,36,9,72,45,18,65,9,9,36,9,72,45,18,65 +DB 112,112,221,112,167,173,224,215,112,112,221,112,167,173,224,215 +DB 182,182,226,182,217,84,113,111,182,182,226,182,217,84,113,111 +DB 208,208,103,208,206,183,189,30,208,208,103,208,206,183,189,30 +DB 237,237,147,237,59,126,199,214,237,237,147,237,59,126,199,214 +DB 204,204,23,204,46,219,133,226,204,204,23,204,46,219,133,226 +DB 66,66,21,66,42,87,132,104,66,66,21,66,42,87,132,104 +DB 152,152,90,152,180,194,45,44,152,152,90,152,180,194,45,44 +DB 164,164,170,164,73,14,85,237,164,164,170,164,73,14,85,237 +DB 40,40,160,40,93,136,80,117,40,40,160,40,93,136,80,117 +DB 92,92,109,92,218,49,184,134,92,92,109,92,218,49,184,134 +DB 248,248,199,248,147,63,237,107,248,248,199,248,147,63,237,107 +DB 134,134,34,134,68,164,17,194,134,134,34,134,68,164,17,194 +DB 24,35,198,232,135,184,1,79 +DB 54,166,210,245,121,111,145,82 +DB 96,188,155,142,163,12,123,53 +DB 29,224,215,194,46,75,254,87 +DB 21,119,55,229,159,240,74,218 +DB 88,201,41,10,177,160,107,133 +DB 189,93,16,244,203,62,5,103 +DB 228,39,65,139,167,125,149,216 +DB 251,238,124,102,221,23,71,158 +DB 202,45,191,7,173,90,131,51 +EXTERN __imp_RtlVirtualUnwind:NEAR + +ALIGN 16 +se_handler PROC PRIVATE + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD PTR[120+r8] + mov rbx,QWORD PTR[248+r8] + + lea r10,QWORD PTR[$L$prologue] + cmp rbx,r10 + jb $L$in_prologue + + mov rax,QWORD PTR[152+r8] + + lea r10,QWORD PTR[$L$epilogue] + cmp rbx,r10 + jae $L$in_prologue + + mov rax,QWORD PTR[((128+32))+rax] + lea rax,QWORD PTR[48+rax] + + mov rbx,QWORD PTR[((-8))+rax] + mov rbp,QWORD PTR[((-16))+rax] + mov r12,QWORD PTR[((-24))+rax] + mov r13,QWORD PTR[((-32))+rax] + mov r14,QWORD PTR[((-40))+rax] + mov r15,QWORD PTR[((-48))+rax] + mov QWORD PTR[144+r8],rbx + mov QWORD PTR[160+r8],rbp + mov QWORD PTR[216+r8],r12 + mov QWORD PTR[224+r8],r13 + mov QWORD PTR[232+r8],r14 + mov QWORD PTR[240+r8],r15 + +$L$in_prologue:: + mov rdi,QWORD PTR[8+rax] + mov rsi,QWORD PTR[16+rax] + mov QWORD PTR[152+r8],rax + mov QWORD PTR[168+r8],rsi + mov QWORD PTR[176+r8],rdi + + mov rdi,QWORD PTR[40+r9] + mov rsi,r8 + mov ecx,154 + DD 0a548f3fch + + + mov rsi,r9 + xor rcx,rcx + mov rdx,QWORD PTR[8+rsi] + mov r8,QWORD PTR[rsi] + mov r9,QWORD PTR[16+rsi] + mov r10,QWORD PTR[40+rsi] + lea r11,QWORD PTR[56+rsi] + lea r12,QWORD PTR[24+rsi] + mov QWORD PTR[32+rsp],r10 + mov QWORD PTR[40+rsp],r11 + mov QWORD PTR[48+rsp],r12 + mov QWORD PTR[56+rsp],rcx + call QWORD PTR[__imp_RtlVirtualUnwind] + + mov eax,1 + add rsp,64 + popfq + pop r15 + pop r14 + pop r13 + pop r12 + pop rbp + pop rbx + pop rdi + pop rsi + DB 0F3h,0C3h ;repret +se_handler ENDP + +.text$ ENDS +.pdata SEGMENT READONLY ALIGN(4) +ALIGN 4 + DD imagerel $L$SEH_begin_whirlpool_block + DD imagerel $L$SEH_end_whirlpool_block + DD imagerel $L$SEH_info_whirlpool_block + +.pdata ENDS +.xdata SEGMENT READONLY ALIGN(8) +ALIGN 8 +$L$SEH_info_whirlpool_block:: +DB 9,0,0,0 + DD imagerel se_handler + +.xdata ENDS +END diff --git a/deps/openssl/asm/x64-win32-masm/x86_64cpuid.asm b/deps/openssl/asm/x64-win32-masm/x86_64cpuid.asm new file mode 100644 index 0000000000..db26276770 --- /dev/null +++ b/deps/openssl/asm/x64-win32-masm/x86_64cpuid.asm @@ -0,0 +1,186 @@ +OPTION DOTNAME +EXTERN OPENSSL_cpuid_setup:NEAR +.CRT$XCU SEGMENT READONLY DWORD + DQ OPENSSL_cpuid_setup + +.CRT$XCU ENDS +.text$ SEGMENT ALIGN(64) 'CODE' + +PUBLIC OPENSSL_atomic_add + +ALIGN 16 +OPENSSL_atomic_add PROC PUBLIC + mov eax,DWORD PTR[rcx] +$L$spin:: lea r8,QWORD PTR[rax*1+rdx] +DB 0f0h + + cmpxchg DWORD PTR[rcx],r8d + jne $L$spin + mov eax,r8d +DB 048h,098h + + DB 0F3h,0C3h ;repret +OPENSSL_atomic_add ENDP + +PUBLIC OPENSSL_rdtsc + +ALIGN 16 +OPENSSL_rdtsc PROC PUBLIC + rdtsc + shl rdx,32 + or rax,rdx + DB 0F3h,0C3h ;repret +OPENSSL_rdtsc ENDP + +PUBLIC OPENSSL_ia32_cpuid + +ALIGN 16 +OPENSSL_ia32_cpuid PROC PUBLIC + mov r8,rbx + + xor eax,eax + cpuid + mov r11d,eax + + xor eax,eax + cmp ebx,0756e6547h + setne al + mov r9d,eax + cmp edx,049656e69h + setne al + or r9d,eax + cmp ecx,06c65746eh + setne al + or r9d,eax + jz $L$intel + + cmp ebx,068747541h + setne al + mov r10d,eax + cmp edx,069746E65h + setne al + or r10d,eax + cmp ecx,0444D4163h + setne al + or r10d,eax + jnz $L$intel + + + mov eax,080000000h + cpuid + cmp eax,080000008h + jb $L$intel + + mov eax,080000008h + cpuid + movzx r10,cl + inc r10 + + mov eax,1 + cpuid + bt edx,28 + jnc $L$done + shr ebx,16 + cmp bl,r10b + ja $L$done + and edx,0efffffffh + jmp $L$done + +$L$intel:: + cmp r11d,4 + mov r10d,-1 + jb $L$nocacheinfo + + mov eax,4 + mov ecx,0 + cpuid + mov r10d,eax + shr r10d,14 + and r10d,0fffh + +$L$nocacheinfo:: + mov eax,1 + cpuid + cmp r9d,0 + jne $L$notintel + or edx,000100000h + and ah,15 + cmp ah,15 + je $L$notintel + or edx,040000000h +$L$notintel:: + bt edx,28 + jnc $L$done + and edx,0efffffffh + cmp r10d,0 + je $L$done + + or edx,010000000h + shr ebx,16 + cmp bl,1 + ja $L$done + and edx,0efffffffh +$L$done:: + shl rcx,32 + mov eax,edx + mov rbx,r8 + or rax,rcx + DB 0F3h,0C3h ;repret +OPENSSL_ia32_cpuid ENDP + +PUBLIC OPENSSL_cleanse + +ALIGN 16 +OPENSSL_cleanse PROC PUBLIC + xor rax,rax + cmp rdx,15 + jae $L$ot + cmp rdx,0 + je $L$ret +$L$ittle:: + mov BYTE PTR[rcx],al + sub rdx,1 + lea rcx,QWORD PTR[1+rcx] + jnz $L$ittle +$L$ret:: + DB 0F3h,0C3h ;repret +ALIGN 16 +$L$ot:: + test rcx,7 + jz $L$aligned + mov BYTE PTR[rcx],al + lea rdx,QWORD PTR[((-1))+rdx] + lea rcx,QWORD PTR[1+rcx] + jmp $L$ot +$L$aligned:: + mov QWORD PTR[rcx],rax + lea rdx,QWORD PTR[((-8))+rdx] + test rdx,-8 + lea rcx,QWORD PTR[8+rcx] + jnz $L$aligned + cmp rdx,0 + jne $L$ittle + DB 0F3h,0C3h ;repret +OPENSSL_cleanse ENDP +PUBLIC OPENSSL_wipe_cpu + +ALIGN 16 +OPENSSL_wipe_cpu PROC PUBLIC + pxor xmm0,xmm0 + pxor xmm1,xmm1 + pxor xmm2,xmm2 + pxor xmm3,xmm3 + pxor xmm4,xmm4 + pxor xmm5,xmm5 + xor rcx,rcx + xor rdx,rdx + xor r8,r8 + xor r9,r9 + xor r10,r10 + xor r11,r11 + lea rax,QWORD PTR[8+rsp] + DB 0F3h,0C3h ;repret +OPENSSL_wipe_cpu ENDP + +.text$ ENDS +END diff --git a/deps/openssl/asm/x86-elf-gas/aes/aes-586.s b/deps/openssl/asm/x86-elf-gas/aes/aes-586.s new file mode 100644 index 0000000000..34c90a068b --- /dev/null +++ b/deps/openssl/asm/x86-elf-gas/aes/aes-586.s @@ -0,0 +1,3234 @@ +.file "aes-586.s" +.text +.type _x86_AES_encrypt_compact,@function +.align 16 +_x86_AES_encrypt_compact: + movl %edi,20(%esp) + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl 240(%edi),%esi + leal -2(%esi,%esi,1),%esi + leal (%edi,%esi,8),%esi + movl %esi,24(%esp) + movl -128(%ebp),%edi + movl -96(%ebp),%esi + movl -64(%ebp),%edi + movl -32(%ebp),%esi + movl (%ebp),%edi + movl 32(%ebp),%esi + movl 64(%ebp),%edi + movl 96(%ebp),%esi +.align 16 +.L000loop: + movl %eax,%esi + andl $255,%esi + movzbl -128(%ebp,%esi,1),%esi + movzbl %bh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,4(%esp) + + movl %ebx,%esi + andl $255,%esi + shrl $16,%ebx + movzbl -128(%ebp,%esi,1),%esi + movzbl %ch,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,8(%esp) + + movl %ecx,%esi + andl $255,%esi + shrl $24,%ecx + movzbl -128(%ebp,%esi,1),%esi + movzbl %dh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $16,%edi + andl $255,%edx + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movzbl %bh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + + andl $255,%edx + movzbl -128(%ebp,%edx,1),%edx + movzbl %ah,%eax + movzbl -128(%ebp,%eax,1),%eax + shll $8,%eax + xorl %eax,%edx + movl 4(%esp),%eax + andl $255,%ebx + movzbl -128(%ebp,%ebx,1),%ebx + shll $16,%ebx + xorl %ebx,%edx + movl 8(%esp),%ebx + movzbl -128(%ebp,%ecx,1),%ecx + shll $24,%ecx + xorl %ecx,%edx + movl %esi,%ecx + + movl %ecx,%esi + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%ecx,%ecx,1),%edi + subl %ebp,%esi + andl $4278124286,%edi + andl $454761243,%esi + movl %ecx,%ebp + xorl %edi,%esi + xorl %esi,%ecx + roll $24,%ecx + xorl %esi,%ecx + rorl $16,%ebp + xorl %ebp,%ecx + rorl $8,%ebp + xorl %ebp,%ecx + movl %edx,%esi + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%edx,%edx,1),%edi + subl %ebp,%esi + andl $4278124286,%edi + andl $454761243,%esi + movl %edx,%ebp + xorl %edi,%esi + xorl %esi,%edx + roll $24,%edx + xorl %esi,%edx + rorl $16,%ebp + xorl %ebp,%edx + rorl $8,%ebp + xorl %ebp,%edx + movl %eax,%esi + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%eax,%eax,1),%edi + subl %ebp,%esi + andl $4278124286,%edi + andl $454761243,%esi + movl %eax,%ebp + xorl %edi,%esi + xorl %esi,%eax + roll $24,%eax + xorl %esi,%eax + rorl $16,%ebp + xorl %ebp,%eax + rorl $8,%ebp + xorl %ebp,%eax + movl %ebx,%esi + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%ebx,%ebx,1),%edi + subl %ebp,%esi + andl $4278124286,%edi + andl $454761243,%esi + movl %ebx,%ebp + xorl %edi,%esi + xorl %esi,%ebx + roll $24,%ebx + xorl %esi,%ebx + rorl $16,%ebp + xorl %ebp,%ebx + rorl $8,%ebp + xorl %ebp,%ebx + movl 20(%esp),%edi + movl 28(%esp),%ebp + addl $16,%edi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + cmpl 24(%esp),%edi + movl %edi,20(%esp) + jb .L000loop + movl %eax,%esi + andl $255,%esi + movzbl -128(%ebp,%esi,1),%esi + movzbl %bh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,4(%esp) + + movl %ebx,%esi + andl $255,%esi + shrl $16,%ebx + movzbl -128(%ebp,%esi,1),%esi + movzbl %ch,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,8(%esp) + + movl %ecx,%esi + andl $255,%esi + shrl $24,%ecx + movzbl -128(%ebp,%esi,1),%esi + movzbl %dh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $16,%edi + andl $255,%edx + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movzbl %bh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + + movl 20(%esp),%edi + andl $255,%edx + movzbl -128(%ebp,%edx,1),%edx + movzbl %ah,%eax + movzbl -128(%ebp,%eax,1),%eax + shll $8,%eax + xorl %eax,%edx + movl 4(%esp),%eax + andl $255,%ebx + movzbl -128(%ebp,%ebx,1),%ebx + shll $16,%ebx + xorl %ebx,%edx + movl 8(%esp),%ebx + movzbl -128(%ebp,%ecx,1),%ecx + shll $24,%ecx + xorl %ecx,%edx + movl %esi,%ecx + + xorl 16(%edi),%eax + xorl 20(%edi),%ebx + xorl 24(%edi),%ecx + xorl 28(%edi),%edx + ret +.size _x86_AES_encrypt_compact,.-_x86_AES_encrypt_compact +.type _sse_AES_encrypt_compact,@function +.align 16 +_sse_AES_encrypt_compact: + pxor (%edi),%mm0 + pxor 8(%edi),%mm4 + movl 240(%edi),%esi + leal -2(%esi,%esi,1),%esi + leal (%edi,%esi,8),%esi + movl %esi,24(%esp) + movl $454761243,%eax + movl %eax,8(%esp) + movl %eax,12(%esp) + movl -128(%ebp),%eax + movl -96(%ebp),%ebx + movl -64(%ebp),%ecx + movl -32(%ebp),%edx + movl (%ebp),%eax + movl 32(%ebp),%ebx + movl 64(%ebp),%ecx + movl 96(%ebp),%edx +.align 16 +.L001loop: + pshufw $8,%mm0,%mm1 + pshufw $13,%mm4,%mm5 + movd %mm1,%eax + movd %mm5,%ebx + movzbl %al,%esi + movzbl -128(%ebp,%esi,1),%ecx + pshufw $13,%mm0,%mm2 + movzbl %ah,%edx + movzbl -128(%ebp,%edx,1),%edx + shll $8,%edx + shrl $16,%eax + movzbl %bl,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $16,%esi + orl %esi,%ecx + pshufw $8,%mm4,%mm6 + movzbl %bh,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $24,%esi + orl %esi,%edx + shrl $16,%ebx + movzbl %ah,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $8,%esi + orl %esi,%ecx + movzbl %bh,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $24,%esi + orl %esi,%ecx + movd %ecx,%mm0 + movzbl %al,%esi + movzbl -128(%ebp,%esi,1),%ecx + movd %mm2,%eax + movzbl %bl,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $16,%esi + orl %esi,%ecx + movd %mm6,%ebx + movzbl %ah,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $24,%esi + orl %esi,%ecx + movzbl %bh,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $8,%esi + orl %esi,%ecx + movd %ecx,%mm1 + movzbl %bl,%esi + movzbl -128(%ebp,%esi,1),%ecx + shrl $16,%ebx + movzbl %al,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $16,%esi + orl %esi,%ecx + shrl $16,%eax + punpckldq %mm1,%mm0 + movzbl %ah,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $24,%esi + orl %esi,%ecx + andl $255,%eax + movzbl -128(%ebp,%eax,1),%eax + shll $16,%eax + orl %eax,%edx + movzbl %bh,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $8,%esi + orl %esi,%ecx + movd %ecx,%mm4 + andl $255,%ebx + movzbl -128(%ebp,%ebx,1),%ebx + orl %ebx,%edx + movd %edx,%mm5 + punpckldq %mm5,%mm4 + addl $16,%edi + cmpl 24(%esp),%edi + ja .L002out + movq 8(%esp),%mm2 + pxor %mm3,%mm3 + pxor %mm7,%mm7 + movq %mm0,%mm1 + movq %mm4,%mm5 + pcmpgtb %mm0,%mm3 + pcmpgtb %mm4,%mm7 + pand %mm2,%mm3 + pand %mm2,%mm7 + pshufw $177,%mm0,%mm2 + pshufw $177,%mm4,%mm6 + paddb %mm0,%mm0 + paddb %mm4,%mm4 + pxor %mm3,%mm0 + pxor %mm7,%mm4 + pshufw $177,%mm2,%mm3 + pshufw $177,%mm6,%mm7 + pxor %mm0,%mm1 + pxor %mm4,%mm5 + pxor %mm2,%mm0 + pxor %mm6,%mm4 + movq %mm3,%mm2 + movq %mm7,%mm6 + pslld $8,%mm3 + pslld $8,%mm7 + psrld $24,%mm2 + psrld $24,%mm6 + pxor %mm3,%mm0 + pxor %mm7,%mm4 + pxor %mm2,%mm0 + pxor %mm6,%mm4 + movq %mm1,%mm3 + movq %mm5,%mm7 + movq (%edi),%mm2 + movq 8(%edi),%mm6 + psrld $8,%mm1 + psrld $8,%mm5 + movl -128(%ebp),%eax + pslld $24,%mm3 + pslld $24,%mm7 + movl -64(%ebp),%ebx + pxor %mm1,%mm0 + pxor %mm5,%mm4 + movl (%ebp),%ecx + pxor %mm3,%mm0 + pxor %mm7,%mm4 + movl 64(%ebp),%edx + pxor %mm2,%mm0 + pxor %mm6,%mm4 + jmp .L001loop +.align 16 +.L002out: + pxor (%edi),%mm0 + pxor 8(%edi),%mm4 + ret +.size _sse_AES_encrypt_compact,.-_sse_AES_encrypt_compact +.type _x86_AES_encrypt,@function +.align 16 +_x86_AES_encrypt: + movl %edi,20(%esp) + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl 240(%edi),%esi + leal -2(%esi,%esi,1),%esi + leal (%edi,%esi,8),%esi + movl %esi,24(%esp) +.align 16 +.L003loop: + movl %eax,%esi + andl $255,%esi + movl (%ebp,%esi,8),%esi + movzbl %bh,%edi + xorl 3(%ebp,%edi,8),%esi + movl %ecx,%edi + shrl $16,%edi + andl $255,%edi + xorl 2(%ebp,%edi,8),%esi + movl %edx,%edi + shrl $24,%edi + xorl 1(%ebp,%edi,8),%esi + movl %esi,4(%esp) + + movl %ebx,%esi + andl $255,%esi + shrl $16,%ebx + movl (%ebp,%esi,8),%esi + movzbl %ch,%edi + xorl 3(%ebp,%edi,8),%esi + movl %edx,%edi + shrl $16,%edi + andl $255,%edi + xorl 2(%ebp,%edi,8),%esi + movl %eax,%edi + shrl $24,%edi + xorl 1(%ebp,%edi,8),%esi + movl %esi,8(%esp) + + movl %ecx,%esi + andl $255,%esi + shrl $24,%ecx + movl (%ebp,%esi,8),%esi + movzbl %dh,%edi + xorl 3(%ebp,%edi,8),%esi + movl %eax,%edi + shrl $16,%edi + andl $255,%edx + andl $255,%edi + xorl 2(%ebp,%edi,8),%esi + movzbl %bh,%edi + xorl 1(%ebp,%edi,8),%esi + + movl 20(%esp),%edi + movl (%ebp,%edx,8),%edx + movzbl %ah,%eax + xorl 3(%ebp,%eax,8),%edx + movl 4(%esp),%eax + andl $255,%ebx + xorl 2(%ebp,%ebx,8),%edx + movl 8(%esp),%ebx + xorl 1(%ebp,%ecx,8),%edx + movl %esi,%ecx + + addl $16,%edi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + cmpl 24(%esp),%edi + movl %edi,20(%esp) + jb .L003loop + movl %eax,%esi + andl $255,%esi + movl 2(%ebp,%esi,8),%esi + andl $255,%esi + movzbl %bh,%edi + movl (%ebp,%edi,8),%edi + andl $65280,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $16,%edi + andl $255,%edi + movl (%ebp,%edi,8),%edi + andl $16711680,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $24,%edi + movl 2(%ebp,%edi,8),%edi + andl $4278190080,%edi + xorl %edi,%esi + movl %esi,4(%esp) + movl %ebx,%esi + andl $255,%esi + shrl $16,%ebx + movl 2(%ebp,%esi,8),%esi + andl $255,%esi + movzbl %ch,%edi + movl (%ebp,%edi,8),%edi + andl $65280,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $16,%edi + andl $255,%edi + movl (%ebp,%edi,8),%edi + andl $16711680,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $24,%edi + movl 2(%ebp,%edi,8),%edi + andl $4278190080,%edi + xorl %edi,%esi + movl %esi,8(%esp) + movl %ecx,%esi + andl $255,%esi + shrl $24,%ecx + movl 2(%ebp,%esi,8),%esi + andl $255,%esi + movzbl %dh,%edi + movl (%ebp,%edi,8),%edi + andl $65280,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $16,%edi + andl $255,%edx + andl $255,%edi + movl (%ebp,%edi,8),%edi + andl $16711680,%edi + xorl %edi,%esi + movzbl %bh,%edi + movl 2(%ebp,%edi,8),%edi + andl $4278190080,%edi + xorl %edi,%esi + movl 20(%esp),%edi + andl $255,%edx + movl 2(%ebp,%edx,8),%edx + andl $255,%edx + movzbl %ah,%eax + movl (%ebp,%eax,8),%eax + andl $65280,%eax + xorl %eax,%edx + movl 4(%esp),%eax + andl $255,%ebx + movl (%ebp,%ebx,8),%ebx + andl $16711680,%ebx + xorl %ebx,%edx + movl 8(%esp),%ebx + movl 2(%ebp,%ecx,8),%ecx + andl $4278190080,%ecx + xorl %ecx,%edx + movl %esi,%ecx + addl $16,%edi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + ret +.align 64 +.LAES_Te: +.long 2774754246,2774754246 +.long 2222750968,2222750968 +.long 2574743534,2574743534 +.long 2373680118,2373680118 +.long 234025727,234025727 +.long 3177933782,3177933782 +.long 2976870366,2976870366 +.long 1422247313,1422247313 +.long 1345335392,1345335392 +.long 50397442,50397442 +.long 2842126286,2842126286 +.long 2099981142,2099981142 +.long 436141799,436141799 +.long 1658312629,1658312629 +.long 3870010189,3870010189 +.long 2591454956,2591454956 +.long 1170918031,1170918031 +.long 2642575903,2642575903 +.long 1086966153,1086966153 +.long 2273148410,2273148410 +.long 368769775,368769775 +.long 3948501426,3948501426 +.long 3376891790,3376891790 +.long 200339707,200339707 +.long 3970805057,3970805057 +.long 1742001331,1742001331 +.long 4255294047,4255294047 +.long 3937382213,3937382213 +.long 3214711843,3214711843 +.long 4154762323,4154762323 +.long 2524082916,2524082916 +.long 1539358875,1539358875 +.long 3266819957,3266819957 +.long 486407649,486407649 +.long 2928907069,2928907069 +.long 1780885068,1780885068 +.long 1513502316,1513502316 +.long 1094664062,1094664062 +.long 49805301,49805301 +.long 1338821763,1338821763 +.long 1546925160,1546925160 +.long 4104496465,4104496465 +.long 887481809,887481809 +.long 150073849,150073849 +.long 2473685474,2473685474 +.long 1943591083,1943591083 +.long 1395732834,1395732834 +.long 1058346282,1058346282 +.long 201589768,201589768 +.long 1388824469,1388824469 +.long 1696801606,1696801606 +.long 1589887901,1589887901 +.long 672667696,672667696 +.long 2711000631,2711000631 +.long 251987210,251987210 +.long 3046808111,3046808111 +.long 151455502,151455502 +.long 907153956,907153956 +.long 2608889883,2608889883 +.long 1038279391,1038279391 +.long 652995533,652995533 +.long 1764173646,1764173646 +.long 3451040383,3451040383 +.long 2675275242,2675275242 +.long 453576978,453576978 +.long 2659418909,2659418909 +.long 1949051992,1949051992 +.long 773462580,773462580 +.long 756751158,756751158 +.long 2993581788,2993581788 +.long 3998898868,3998898868 +.long 4221608027,4221608027 +.long 4132590244,4132590244 +.long 1295727478,1295727478 +.long 1641469623,1641469623 +.long 3467883389,3467883389 +.long 2066295122,2066295122 +.long 1055122397,1055122397 +.long 1898917726,1898917726 +.long 2542044179,2542044179 +.long 4115878822,4115878822 +.long 1758581177,1758581177 +.long 0,0 +.long 753790401,753790401 +.long 1612718144,1612718144 +.long 536673507,536673507 +.long 3367088505,3367088505 +.long 3982187446,3982187446 +.long 3194645204,3194645204 +.long 1187761037,1187761037 +.long 3653156455,3653156455 +.long 1262041458,1262041458 +.long 3729410708,3729410708 +.long 3561770136,3561770136 +.long 3898103984,3898103984 +.long 1255133061,1255133061 +.long 1808847035,1808847035 +.long 720367557,720367557 +.long 3853167183,3853167183 +.long 385612781,385612781 +.long 3309519750,3309519750 +.long 3612167578,3612167578 +.long 1429418854,1429418854 +.long 2491778321,2491778321 +.long 3477423498,3477423498 +.long 284817897,284817897 +.long 100794884,100794884 +.long 2172616702,2172616702 +.long 4031795360,4031795360 +.long 1144798328,1144798328 +.long 3131023141,3131023141 +.long 3819481163,3819481163 +.long 4082192802,4082192802 +.long 4272137053,4272137053 +.long 3225436288,3225436288 +.long 2324664069,2324664069 +.long 2912064063,2912064063 +.long 3164445985,3164445985 +.long 1211644016,1211644016 +.long 83228145,83228145 +.long 3753688163,3753688163 +.long 3249976951,3249976951 +.long 1977277103,1977277103 +.long 1663115586,1663115586 +.long 806359072,806359072 +.long 452984805,452984805 +.long 250868733,250868733 +.long 1842533055,1842533055 +.long 1288555905,1288555905 +.long 336333848,336333848 +.long 890442534,890442534 +.long 804056259,804056259 +.long 3781124030,3781124030 +.long 2727843637,2727843637 +.long 3427026056,3427026056 +.long 957814574,957814574 +.long 1472513171,1472513171 +.long 4071073621,4071073621 +.long 2189328124,2189328124 +.long 1195195770,1195195770 +.long 2892260552,2892260552 +.long 3881655738,3881655738 +.long 723065138,723065138 +.long 2507371494,2507371494 +.long 2690670784,2690670784 +.long 2558624025,2558624025 +.long 3511635870,3511635870 +.long 2145180835,2145180835 +.long 1713513028,1713513028 +.long 2116692564,2116692564 +.long 2878378043,2878378043 +.long 2206763019,2206763019 +.long 3393603212,3393603212 +.long 703524551,703524551 +.long 3552098411,3552098411 +.long 1007948840,1007948840 +.long 2044649127,2044649127 +.long 3797835452,3797835452 +.long 487262998,487262998 +.long 1994120109,1994120109 +.long 1004593371,1004593371 +.long 1446130276,1446130276 +.long 1312438900,1312438900 +.long 503974420,503974420 +.long 3679013266,3679013266 +.long 168166924,168166924 +.long 1814307912,1814307912 +.long 3831258296,3831258296 +.long 1573044895,1573044895 +.long 1859376061,1859376061 +.long 4021070915,4021070915 +.long 2791465668,2791465668 +.long 2828112185,2828112185 +.long 2761266481,2761266481 +.long 937747667,937747667 +.long 2339994098,2339994098 +.long 854058965,854058965 +.long 1137232011,1137232011 +.long 1496790894,1496790894 +.long 3077402074,3077402074 +.long 2358086913,2358086913 +.long 1691735473,1691735473 +.long 3528347292,3528347292 +.long 3769215305,3769215305 +.long 3027004632,3027004632 +.long 4199962284,4199962284 +.long 133494003,133494003 +.long 636152527,636152527 +.long 2942657994,2942657994 +.long 2390391540,2390391540 +.long 3920539207,3920539207 +.long 403179536,403179536 +.long 3585784431,3585784431 +.long 2289596656,2289596656 +.long 1864705354,1864705354 +.long 1915629148,1915629148 +.long 605822008,605822008 +.long 4054230615,4054230615 +.long 3350508659,3350508659 +.long 1371981463,1371981463 +.long 602466507,602466507 +.long 2094914977,2094914977 +.long 2624877800,2624877800 +.long 555687742,555687742 +.long 3712699286,3712699286 +.long 3703422305,3703422305 +.long 2257292045,2257292045 +.long 2240449039,2240449039 +.long 2423288032,2423288032 +.long 1111375484,1111375484 +.long 3300242801,3300242801 +.long 2858837708,2858837708 +.long 3628615824,3628615824 +.long 84083462,84083462 +.long 32962295,32962295 +.long 302911004,302911004 +.long 2741068226,2741068226 +.long 1597322602,1597322602 +.long 4183250862,4183250862 +.long 3501832553,3501832553 +.long 2441512471,2441512471 +.long 1489093017,1489093017 +.long 656219450,656219450 +.long 3114180135,3114180135 +.long 954327513,954327513 +.long 335083755,335083755 +.long 3013122091,3013122091 +.long 856756514,856756514 +.long 3144247762,3144247762 +.long 1893325225,1893325225 +.long 2307821063,2307821063 +.long 2811532339,2811532339 +.long 3063651117,3063651117 +.long 572399164,572399164 +.long 2458355477,2458355477 +.long 552200649,552200649 +.long 1238290055,1238290055 +.long 4283782570,4283782570 +.long 2015897680,2015897680 +.long 2061492133,2061492133 +.long 2408352771,2408352771 +.long 4171342169,4171342169 +.long 2156497161,2156497161 +.long 386731290,386731290 +.long 3669999461,3669999461 +.long 837215959,837215959 +.long 3326231172,3326231172 +.long 3093850320,3093850320 +.long 3275833730,3275833730 +.long 2962856233,2962856233 +.long 1999449434,1999449434 +.long 286199582,286199582 +.long 3417354363,3417354363 +.long 4233385128,4233385128 +.long 3602627437,3602627437 +.long 974525996,974525996 +.byte 99,124,119,123,242,107,111,197 +.byte 48,1,103,43,254,215,171,118 +.byte 202,130,201,125,250,89,71,240 +.byte 173,212,162,175,156,164,114,192 +.byte 183,253,147,38,54,63,247,204 +.byte 52,165,229,241,113,216,49,21 +.byte 4,199,35,195,24,150,5,154 +.byte 7,18,128,226,235,39,178,117 +.byte 9,131,44,26,27,110,90,160 +.byte 82,59,214,179,41,227,47,132 +.byte 83,209,0,237,32,252,177,91 +.byte 106,203,190,57,74,76,88,207 +.byte 208,239,170,251,67,77,51,133 +.byte 69,249,2,127,80,60,159,168 +.byte 81,163,64,143,146,157,56,245 +.byte 188,182,218,33,16,255,243,210 +.byte 205,12,19,236,95,151,68,23 +.byte 196,167,126,61,100,93,25,115 +.byte 96,129,79,220,34,42,144,136 +.byte 70,238,184,20,222,94,11,219 +.byte 224,50,58,10,73,6,36,92 +.byte 194,211,172,98,145,149,228,121 +.byte 231,200,55,109,141,213,78,169 +.byte 108,86,244,234,101,122,174,8 +.byte 186,120,37,46,28,166,180,198 +.byte 232,221,116,31,75,189,139,138 +.byte 112,62,181,102,72,3,246,14 +.byte 97,53,87,185,134,193,29,158 +.byte 225,248,152,17,105,217,142,148 +.byte 155,30,135,233,206,85,40,223 +.byte 140,161,137,13,191,230,66,104 +.byte 65,153,45,15,176,84,187,22 +.byte 99,124,119,123,242,107,111,197 +.byte 48,1,103,43,254,215,171,118 +.byte 202,130,201,125,250,89,71,240 +.byte 173,212,162,175,156,164,114,192 +.byte 183,253,147,38,54,63,247,204 +.byte 52,165,229,241,113,216,49,21 +.byte 4,199,35,195,24,150,5,154 +.byte 7,18,128,226,235,39,178,117 +.byte 9,131,44,26,27,110,90,160 +.byte 82,59,214,179,41,227,47,132 +.byte 83,209,0,237,32,252,177,91 +.byte 106,203,190,57,74,76,88,207 +.byte 208,239,170,251,67,77,51,133 +.byte 69,249,2,127,80,60,159,168 +.byte 81,163,64,143,146,157,56,245 +.byte 188,182,218,33,16,255,243,210 +.byte 205,12,19,236,95,151,68,23 +.byte 196,167,126,61,100,93,25,115 +.byte 96,129,79,220,34,42,144,136 +.byte 70,238,184,20,222,94,11,219 +.byte 224,50,58,10,73,6,36,92 +.byte 194,211,172,98,145,149,228,121 +.byte 231,200,55,109,141,213,78,169 +.byte 108,86,244,234,101,122,174,8 +.byte 186,120,37,46,28,166,180,198 +.byte 232,221,116,31,75,189,139,138 +.byte 112,62,181,102,72,3,246,14 +.byte 97,53,87,185,134,193,29,158 +.byte 225,248,152,17,105,217,142,148 +.byte 155,30,135,233,206,85,40,223 +.byte 140,161,137,13,191,230,66,104 +.byte 65,153,45,15,176,84,187,22 +.byte 99,124,119,123,242,107,111,197 +.byte 48,1,103,43,254,215,171,118 +.byte 202,130,201,125,250,89,71,240 +.byte 173,212,162,175,156,164,114,192 +.byte 183,253,147,38,54,63,247,204 +.byte 52,165,229,241,113,216,49,21 +.byte 4,199,35,195,24,150,5,154 +.byte 7,18,128,226,235,39,178,117 +.byte 9,131,44,26,27,110,90,160 +.byte 82,59,214,179,41,227,47,132 +.byte 83,209,0,237,32,252,177,91 +.byte 106,203,190,57,74,76,88,207 +.byte 208,239,170,251,67,77,51,133 +.byte 69,249,2,127,80,60,159,168 +.byte 81,163,64,143,146,157,56,245 +.byte 188,182,218,33,16,255,243,210 +.byte 205,12,19,236,95,151,68,23 +.byte 196,167,126,61,100,93,25,115 +.byte 96,129,79,220,34,42,144,136 +.byte 70,238,184,20,222,94,11,219 +.byte 224,50,58,10,73,6,36,92 +.byte 194,211,172,98,145,149,228,121 +.byte 231,200,55,109,141,213,78,169 +.byte 108,86,244,234,101,122,174,8 +.byte 186,120,37,46,28,166,180,198 +.byte 232,221,116,31,75,189,139,138 +.byte 112,62,181,102,72,3,246,14 +.byte 97,53,87,185,134,193,29,158 +.byte 225,248,152,17,105,217,142,148 +.byte 155,30,135,233,206,85,40,223 +.byte 140,161,137,13,191,230,66,104 +.byte 65,153,45,15,176,84,187,22 +.byte 99,124,119,123,242,107,111,197 +.byte 48,1,103,43,254,215,171,118 +.byte 202,130,201,125,250,89,71,240 +.byte 173,212,162,175,156,164,114,192 +.byte 183,253,147,38,54,63,247,204 +.byte 52,165,229,241,113,216,49,21 +.byte 4,199,35,195,24,150,5,154 +.byte 7,18,128,226,235,39,178,117 +.byte 9,131,44,26,27,110,90,160 +.byte 82,59,214,179,41,227,47,132 +.byte 83,209,0,237,32,252,177,91 +.byte 106,203,190,57,74,76,88,207 +.byte 208,239,170,251,67,77,51,133 +.byte 69,249,2,127,80,60,159,168 +.byte 81,163,64,143,146,157,56,245 +.byte 188,182,218,33,16,255,243,210 +.byte 205,12,19,236,95,151,68,23 +.byte 196,167,126,61,100,93,25,115 +.byte 96,129,79,220,34,42,144,136 +.byte 70,238,184,20,222,94,11,219 +.byte 224,50,58,10,73,6,36,92 +.byte 194,211,172,98,145,149,228,121 +.byte 231,200,55,109,141,213,78,169 +.byte 108,86,244,234,101,122,174,8 +.byte 186,120,37,46,28,166,180,198 +.byte 232,221,116,31,75,189,139,138 +.byte 112,62,181,102,72,3,246,14 +.byte 97,53,87,185,134,193,29,158 +.byte 225,248,152,17,105,217,142,148 +.byte 155,30,135,233,206,85,40,223 +.byte 140,161,137,13,191,230,66,104 +.byte 65,153,45,15,176,84,187,22 +.long 1,2,4,8 +.long 16,32,64,128 +.long 27,54,0,0 +.long 0,0,0,0 +.size _x86_AES_encrypt,.-_x86_AES_encrypt +.globl AES_encrypt +.type AES_encrypt,@function +.align 16 +AES_encrypt: +.L_AES_encrypt_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%esi + movl 28(%esp),%edi + movl %esp,%eax + subl $36,%esp + andl $-64,%esp + leal -127(%edi),%ebx + subl %esp,%ebx + negl %ebx + andl $960,%ebx + subl %ebx,%esp + addl $4,%esp + movl %eax,28(%esp) + call .L004pic_point +.L004pic_point: + popl %ebp + leal OPENSSL_ia32cap_P,%eax + leal .LAES_Te-.L004pic_point(%ebp),%ebp + leal 764(%esp),%ebx + subl %ebp,%ebx + andl $768,%ebx + leal 2176(%ebp,%ebx,1),%ebp + btl $25,(%eax) + jnc .L005x86 + movq (%esi),%mm0 + movq 8(%esi),%mm4 + call _sse_AES_encrypt_compact + movl 28(%esp),%esp + movl 24(%esp),%esi + movq %mm0,(%esi) + movq %mm4,8(%esi) + emms + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 16 +.L005x86: + movl %ebp,24(%esp) + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + call _x86_AES_encrypt_compact + movl 28(%esp),%esp + movl 24(%esp),%esi + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size AES_encrypt,.-.L_AES_encrypt_begin +.type _x86_AES_decrypt_compact,@function +.align 16 +_x86_AES_decrypt_compact: + movl %edi,20(%esp) + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl 240(%edi),%esi + leal -2(%esi,%esi,1),%esi + leal (%edi,%esi,8),%esi + movl %esi,24(%esp) + movl -128(%ebp),%edi + movl -96(%ebp),%esi + movl -64(%ebp),%edi + movl -32(%ebp),%esi + movl (%ebp),%edi + movl 32(%ebp),%esi + movl 64(%ebp),%edi + movl 96(%ebp),%esi +.align 16 +.L006loop: + movl %eax,%esi + andl $255,%esi + movzbl -128(%ebp,%esi,1),%esi + movzbl %dh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %ebx,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,4(%esp) + movl %ebx,%esi + andl $255,%esi + movzbl -128(%ebp,%esi,1),%esi + movzbl %ah,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,8(%esp) + movl %ecx,%esi + andl $255,%esi + movzbl -128(%ebp,%esi,1),%esi + movzbl %bh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + andl $255,%edx + movzbl -128(%ebp,%edx,1),%edx + movzbl %ch,%ecx + movzbl -128(%ebp,%ecx,1),%ecx + shll $8,%ecx + xorl %ecx,%edx + movl %esi,%ecx + shrl $16,%ebx + andl $255,%ebx + movzbl -128(%ebp,%ebx,1),%ebx + shll $16,%ebx + xorl %ebx,%edx + shrl $24,%eax + movzbl -128(%ebp,%eax,1),%eax + shll $24,%eax + xorl %eax,%edx + movl %ecx,%esi + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%ecx,%ecx,1),%eax + subl %edi,%esi + andl $4278124286,%eax + andl $454761243,%esi + xorl %eax,%esi + movl %esi,%eax + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%eax,%eax,1),%ebx + subl %edi,%esi + andl $4278124286,%ebx + andl $454761243,%esi + xorl %ecx,%eax + xorl %ebx,%esi + movl %esi,%ebx + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%ebx,%ebx,1),%ebp + subl %edi,%esi + andl $4278124286,%ebp + andl $454761243,%esi + xorl %ecx,%ebx + roll $8,%ecx + xorl %esi,%ebp + xorl %eax,%ecx + xorl %ebp,%eax + roll $24,%eax + xorl %ebx,%ecx + xorl %ebp,%ebx + roll $16,%ebx + xorl %ebp,%ecx + roll $8,%ebp + xorl %eax,%ecx + xorl %ebx,%ecx + movl 4(%esp),%eax + xorl %ebp,%ecx + movl %ecx,12(%esp) + movl %edx,%esi + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%edx,%edx,1),%ebx + subl %edi,%esi + andl $4278124286,%ebx + andl $454761243,%esi + xorl %ebx,%esi + movl %esi,%ebx + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%ebx,%ebx,1),%ecx + subl %edi,%esi + andl $4278124286,%ecx + andl $454761243,%esi + xorl %edx,%ebx + xorl %ecx,%esi + movl %esi,%ecx + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%ecx,%ecx,1),%ebp + subl %edi,%esi + andl $4278124286,%ebp + andl $454761243,%esi + xorl %edx,%ecx + roll $8,%edx + xorl %esi,%ebp + xorl %ebx,%edx + xorl %ebp,%ebx + roll $24,%ebx + xorl %ecx,%edx + xorl %ebp,%ecx + roll $16,%ecx + xorl %ebp,%edx + roll $8,%ebp + xorl %ebx,%edx + xorl %ecx,%edx + movl 8(%esp),%ebx + xorl %ebp,%edx + movl %edx,16(%esp) + movl %eax,%esi + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%eax,%eax,1),%ecx + subl %edi,%esi + andl $4278124286,%ecx + andl $454761243,%esi + xorl %ecx,%esi + movl %esi,%ecx + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%ecx,%ecx,1),%edx + subl %edi,%esi + andl $4278124286,%edx + andl $454761243,%esi + xorl %eax,%ecx + xorl %edx,%esi + movl %esi,%edx + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%edx,%edx,1),%ebp + subl %edi,%esi + andl $4278124286,%ebp + andl $454761243,%esi + xorl %eax,%edx + roll $8,%eax + xorl %esi,%ebp + xorl %ecx,%eax + xorl %ebp,%ecx + roll $24,%ecx + xorl %edx,%eax + xorl %ebp,%edx + roll $16,%edx + xorl %ebp,%eax + roll $8,%ebp + xorl %ecx,%eax + xorl %edx,%eax + xorl %ebp,%eax + movl %ebx,%esi + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%ebx,%ebx,1),%ecx + subl %edi,%esi + andl $4278124286,%ecx + andl $454761243,%esi + xorl %ecx,%esi + movl %esi,%ecx + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%ecx,%ecx,1),%edx + subl %edi,%esi + andl $4278124286,%edx + andl $454761243,%esi + xorl %ebx,%ecx + xorl %edx,%esi + movl %esi,%edx + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%edx,%edx,1),%ebp + subl %edi,%esi + andl $4278124286,%ebp + andl $454761243,%esi + xorl %ebx,%edx + roll $8,%ebx + xorl %esi,%ebp + xorl %ecx,%ebx + xorl %ebp,%ecx + roll $24,%ecx + xorl %edx,%ebx + xorl %ebp,%edx + roll $16,%edx + xorl %ebp,%ebx + roll $8,%ebp + xorl %ecx,%ebx + xorl %edx,%ebx + movl 12(%esp),%ecx + xorl %ebp,%ebx + movl 16(%esp),%edx + movl 20(%esp),%edi + movl 28(%esp),%ebp + addl $16,%edi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + cmpl 24(%esp),%edi + movl %edi,20(%esp) + jb .L006loop + movl %eax,%esi + andl $255,%esi + movzbl -128(%ebp,%esi,1),%esi + movzbl %dh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %ebx,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,4(%esp) + movl %ebx,%esi + andl $255,%esi + movzbl -128(%ebp,%esi,1),%esi + movzbl %ah,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,8(%esp) + movl %ecx,%esi + andl $255,%esi + movzbl -128(%ebp,%esi,1),%esi + movzbl %bh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl 20(%esp),%edi + andl $255,%edx + movzbl -128(%ebp,%edx,1),%edx + movzbl %ch,%ecx + movzbl -128(%ebp,%ecx,1),%ecx + shll $8,%ecx + xorl %ecx,%edx + movl %esi,%ecx + shrl $16,%ebx + andl $255,%ebx + movzbl -128(%ebp,%ebx,1),%ebx + shll $16,%ebx + xorl %ebx,%edx + movl 8(%esp),%ebx + shrl $24,%eax + movzbl -128(%ebp,%eax,1),%eax + shll $24,%eax + xorl %eax,%edx + movl 4(%esp),%eax + xorl 16(%edi),%eax + xorl 20(%edi),%ebx + xorl 24(%edi),%ecx + xorl 28(%edi),%edx + ret +.size _x86_AES_decrypt_compact,.-_x86_AES_decrypt_compact +.type _sse_AES_decrypt_compact,@function +.align 16 +_sse_AES_decrypt_compact: + pxor (%edi),%mm0 + pxor 8(%edi),%mm4 + movl 240(%edi),%esi + leal -2(%esi,%esi,1),%esi + leal (%edi,%esi,8),%esi + movl %esi,24(%esp) + movl $454761243,%eax + movl %eax,8(%esp) + movl %eax,12(%esp) + movl -128(%ebp),%eax + movl -96(%ebp),%ebx + movl -64(%ebp),%ecx + movl -32(%ebp),%edx + movl (%ebp),%eax + movl 32(%ebp),%ebx + movl 64(%ebp),%ecx + movl 96(%ebp),%edx +.align 16 +.L007loop: + pshufw $12,%mm0,%mm1 + movd %mm1,%eax + pshufw $9,%mm4,%mm5 + movzbl %al,%esi + movzbl -128(%ebp,%esi,1),%ecx + movd %mm5,%ebx + movzbl %ah,%edx + movzbl -128(%ebp,%edx,1),%edx + shll $8,%edx + pshufw $6,%mm0,%mm2 + movzbl %bl,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $16,%esi + orl %esi,%ecx + shrl $16,%eax + movzbl %bh,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $24,%esi + orl %esi,%edx + shrl $16,%ebx + pshufw $3,%mm4,%mm6 + movzbl %ah,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $24,%esi + orl %esi,%ecx + movzbl %bh,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $8,%esi + orl %esi,%ecx + movd %ecx,%mm0 + movzbl %al,%esi + movd %mm2,%eax + movzbl -128(%ebp,%esi,1),%ecx + shll $16,%ecx + movzbl %bl,%esi + movd %mm6,%ebx + movzbl -128(%ebp,%esi,1),%esi + orl %esi,%ecx + movzbl %al,%esi + movzbl -128(%ebp,%esi,1),%esi + orl %esi,%edx + movzbl %bl,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $16,%esi + orl %esi,%edx + movd %edx,%mm1 + movzbl %ah,%esi + movzbl -128(%ebp,%esi,1),%edx + shll $8,%edx + movzbl %bh,%esi + shrl $16,%eax + movzbl -128(%ebp,%esi,1),%esi + shll $24,%esi + orl %esi,%edx + shrl $16,%ebx + punpckldq %mm1,%mm0 + movzbl %bh,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $8,%esi + orl %esi,%ecx + andl $255,%ebx + movzbl -128(%ebp,%ebx,1),%ebx + orl %ebx,%edx + movzbl %al,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $16,%esi + orl %esi,%edx + movd %edx,%mm4 + movzbl %ah,%eax + movzbl -128(%ebp,%eax,1),%eax + shll $24,%eax + orl %eax,%ecx + movd %ecx,%mm5 + punpckldq %mm5,%mm4 + addl $16,%edi + cmpl 24(%esp),%edi + ja .L008out + movq %mm0,%mm3 + movq %mm4,%mm7 + pshufw $228,%mm0,%mm2 + pshufw $228,%mm4,%mm6 + movq %mm0,%mm1 + movq %mm4,%mm5 + pshufw $177,%mm0,%mm0 + pshufw $177,%mm4,%mm4 + pslld $8,%mm2 + pslld $8,%mm6 + psrld $8,%mm3 + psrld $8,%mm7 + pxor %mm2,%mm0 + pxor %mm6,%mm4 + pxor %mm3,%mm0 + pxor %mm7,%mm4 + pslld $16,%mm2 + pslld $16,%mm6 + psrld $16,%mm3 + psrld $16,%mm7 + pxor %mm2,%mm0 + pxor %mm6,%mm4 + pxor %mm3,%mm0 + pxor %mm7,%mm4 + movq 8(%esp),%mm3 + pxor %mm2,%mm2 + pxor %mm6,%mm6 + pcmpgtb %mm1,%mm2 + pcmpgtb %mm5,%mm6 + pand %mm3,%mm2 + pand %mm3,%mm6 + paddb %mm1,%mm1 + paddb %mm5,%mm5 + pxor %mm2,%mm1 + pxor %mm6,%mm5 + movq %mm1,%mm3 + movq %mm5,%mm7 + movq %mm1,%mm2 + movq %mm5,%mm6 + pxor %mm1,%mm0 + pxor %mm5,%mm4 + pslld $24,%mm3 + pslld $24,%mm7 + psrld $8,%mm2 + psrld $8,%mm6 + pxor %mm3,%mm0 + pxor %mm7,%mm4 + pxor %mm2,%mm0 + pxor %mm6,%mm4 + movq 8(%esp),%mm2 + pxor %mm3,%mm3 + pxor %mm7,%mm7 + pcmpgtb %mm1,%mm3 + pcmpgtb %mm5,%mm7 + pand %mm2,%mm3 + pand %mm2,%mm7 + paddb %mm1,%mm1 + paddb %mm5,%mm5 + pxor %mm3,%mm1 + pxor %mm7,%mm5 + pshufw $177,%mm1,%mm3 + pshufw $177,%mm5,%mm7 + pxor %mm1,%mm0 + pxor %mm5,%mm4 + pxor %mm3,%mm0 + pxor %mm7,%mm4 + pxor %mm3,%mm3 + pxor %mm7,%mm7 + pcmpgtb %mm1,%mm3 + pcmpgtb %mm5,%mm7 + pand %mm2,%mm3 + pand %mm2,%mm7 + paddb %mm1,%mm1 + paddb %mm5,%mm5 + pxor %mm3,%mm1 + pxor %mm7,%mm5 + pxor %mm1,%mm0 + pxor %mm5,%mm4 + movq %mm1,%mm3 + movq %mm5,%mm7 + pshufw $177,%mm1,%mm2 + pshufw $177,%mm5,%mm6 + pxor %mm2,%mm0 + pxor %mm6,%mm4 + pslld $8,%mm1 + pslld $8,%mm5 + psrld $8,%mm3 + psrld $8,%mm7 + movq (%edi),%mm2 + movq 8(%edi),%mm6 + pxor %mm1,%mm0 + pxor %mm5,%mm4 + pxor %mm3,%mm0 + pxor %mm7,%mm4 + movl -128(%ebp),%eax + pslld $16,%mm1 + pslld $16,%mm5 + movl -64(%ebp),%ebx + psrld $16,%mm3 + psrld $16,%mm7 + movl (%ebp),%ecx + pxor %mm1,%mm0 + pxor %mm5,%mm4 + movl 64(%ebp),%edx + pxor %mm3,%mm0 + pxor %mm7,%mm4 + pxor %mm2,%mm0 + pxor %mm6,%mm4 + jmp .L007loop +.align 16 +.L008out: + pxor (%edi),%mm0 + pxor 8(%edi),%mm4 + ret +.size _sse_AES_decrypt_compact,.-_sse_AES_decrypt_compact +.type _x86_AES_decrypt,@function +.align 16 +_x86_AES_decrypt: + movl %edi,20(%esp) + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl 240(%edi),%esi + leal -2(%esi,%esi,1),%esi + leal (%edi,%esi,8),%esi + movl %esi,24(%esp) +.align 16 +.L009loop: + movl %eax,%esi + andl $255,%esi + movl (%ebp,%esi,8),%esi + movzbl %dh,%edi + xorl 3(%ebp,%edi,8),%esi + movl %ecx,%edi + shrl $16,%edi + andl $255,%edi + xorl 2(%ebp,%edi,8),%esi + movl %ebx,%edi + shrl $24,%edi + xorl 1(%ebp,%edi,8),%esi + movl %esi,4(%esp) + + movl %ebx,%esi + andl $255,%esi + movl (%ebp,%esi,8),%esi + movzbl %ah,%edi + xorl 3(%ebp,%edi,8),%esi + movl %edx,%edi + shrl $16,%edi + andl $255,%edi + xorl 2(%ebp,%edi,8),%esi + movl %ecx,%edi + shrl $24,%edi + xorl 1(%ebp,%edi,8),%esi + movl %esi,8(%esp) + + movl %ecx,%esi + andl $255,%esi + movl (%ebp,%esi,8),%esi + movzbl %bh,%edi + xorl 3(%ebp,%edi,8),%esi + movl %eax,%edi + shrl $16,%edi + andl $255,%edi + xorl 2(%ebp,%edi,8),%esi + movl %edx,%edi + shrl $24,%edi + xorl 1(%ebp,%edi,8),%esi + + movl 20(%esp),%edi + andl $255,%edx + movl (%ebp,%edx,8),%edx + movzbl %ch,%ecx + xorl 3(%ebp,%ecx,8),%edx + movl %esi,%ecx + shrl $16,%ebx + andl $255,%ebx + xorl 2(%ebp,%ebx,8),%edx + movl 8(%esp),%ebx + shrl $24,%eax + xorl 1(%ebp,%eax,8),%edx + movl 4(%esp),%eax + + addl $16,%edi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + cmpl 24(%esp),%edi + movl %edi,20(%esp) + jb .L009loop + leal 2176(%ebp),%ebp + movl -128(%ebp),%edi + movl -96(%ebp),%esi + movl -64(%ebp),%edi + movl -32(%ebp),%esi + movl (%ebp),%edi + movl 32(%ebp),%esi + movl 64(%ebp),%edi + movl 96(%ebp),%esi + leal -128(%ebp),%ebp + movl %eax,%esi + andl $255,%esi + movzbl (%ebp,%esi,1),%esi + movzbl %dh,%edi + movzbl (%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $16,%edi + andl $255,%edi + movzbl (%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %ebx,%edi + shrl $24,%edi + movzbl (%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,4(%esp) + movl %ebx,%esi + andl $255,%esi + movzbl (%ebp,%esi,1),%esi + movzbl %ah,%edi + movzbl (%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $16,%edi + andl $255,%edi + movzbl (%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $24,%edi + movzbl (%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,8(%esp) + movl %ecx,%esi + andl $255,%esi + movzbl (%ebp,%esi,1),%esi + movzbl %bh,%edi + movzbl (%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $16,%edi + andl $255,%edi + movzbl (%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $24,%edi + movzbl (%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl 20(%esp),%edi + andl $255,%edx + movzbl (%ebp,%edx,1),%edx + movzbl %ch,%ecx + movzbl (%ebp,%ecx,1),%ecx + shll $8,%ecx + xorl %ecx,%edx + movl %esi,%ecx + shrl $16,%ebx + andl $255,%ebx + movzbl (%ebp,%ebx,1),%ebx + shll $16,%ebx + xorl %ebx,%edx + movl 8(%esp),%ebx + shrl $24,%eax + movzbl (%ebp,%eax,1),%eax + shll $24,%eax + xorl %eax,%edx + movl 4(%esp),%eax + leal -2048(%ebp),%ebp + addl $16,%edi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + ret +.align 64 +.LAES_Td: +.long 1353184337,1353184337 +.long 1399144830,1399144830 +.long 3282310938,3282310938 +.long 2522752826,2522752826 +.long 3412831035,3412831035 +.long 4047871263,4047871263 +.long 2874735276,2874735276 +.long 2466505547,2466505547 +.long 1442459680,1442459680 +.long 4134368941,4134368941 +.long 2440481928,2440481928 +.long 625738485,625738485 +.long 4242007375,4242007375 +.long 3620416197,3620416197 +.long 2151953702,2151953702 +.long 2409849525,2409849525 +.long 1230680542,1230680542 +.long 1729870373,1729870373 +.long 2551114309,2551114309 +.long 3787521629,3787521629 +.long 41234371,41234371 +.long 317738113,317738113 +.long 2744600205,2744600205 +.long 3338261355,3338261355 +.long 3881799427,3881799427 +.long 2510066197,2510066197 +.long 3950669247,3950669247 +.long 3663286933,3663286933 +.long 763608788,763608788 +.long 3542185048,3542185048 +.long 694804553,694804553 +.long 1154009486,1154009486 +.long 1787413109,1787413109 +.long 2021232372,2021232372 +.long 1799248025,1799248025 +.long 3715217703,3715217703 +.long 3058688446,3058688446 +.long 397248752,397248752 +.long 1722556617,1722556617 +.long 3023752829,3023752829 +.long 407560035,407560035 +.long 2184256229,2184256229 +.long 1613975959,1613975959 +.long 1165972322,1165972322 +.long 3765920945,3765920945 +.long 2226023355,2226023355 +.long 480281086,480281086 +.long 2485848313,2485848313 +.long 1483229296,1483229296 +.long 436028815,436028815 +.long 2272059028,2272059028 +.long 3086515026,3086515026 +.long 601060267,601060267 +.long 3791801202,3791801202 +.long 1468997603,1468997603 +.long 715871590,715871590 +.long 120122290,120122290 +.long 63092015,63092015 +.long 2591802758,2591802758 +.long 2768779219,2768779219 +.long 4068943920,4068943920 +.long 2997206819,2997206819 +.long 3127509762,3127509762 +.long 1552029421,1552029421 +.long 723308426,723308426 +.long 2461301159,2461301159 +.long 4042393587,4042393587 +.long 2715969870,2715969870 +.long 3455375973,3455375973 +.long 3586000134,3586000134 +.long 526529745,526529745 +.long 2331944644,2331944644 +.long 2639474228,2639474228 +.long 2689987490,2689987490 +.long 853641733,853641733 +.long 1978398372,1978398372 +.long 971801355,971801355 +.long 2867814464,2867814464 +.long 111112542,111112542 +.long 1360031421,1360031421 +.long 4186579262,4186579262 +.long 1023860118,1023860118 +.long 2919579357,2919579357 +.long 1186850381,1186850381 +.long 3045938321,3045938321 +.long 90031217,90031217 +.long 1876166148,1876166148 +.long 4279586912,4279586912 +.long 620468249,620468249 +.long 2548678102,2548678102 +.long 3426959497,3426959497 +.long 2006899047,2006899047 +.long 3175278768,3175278768 +.long 2290845959,2290845959 +.long 945494503,945494503 +.long 3689859193,3689859193 +.long 1191869601,1191869601 +.long 3910091388,3910091388 +.long 3374220536,3374220536 +.long 0,0 +.long 2206629897,2206629897 +.long 1223502642,1223502642 +.long 2893025566,2893025566 +.long 1316117100,1316117100 +.long 4227796733,4227796733 +.long 1446544655,1446544655 +.long 517320253,517320253 +.long 658058550,658058550 +.long 1691946762,1691946762 +.long 564550760,564550760 +.long 3511966619,3511966619 +.long 976107044,976107044 +.long 2976320012,2976320012 +.long 266819475,266819475 +.long 3533106868,3533106868 +.long 2660342555,2660342555 +.long 1338359936,1338359936 +.long 2720062561,2720062561 +.long 1766553434,1766553434 +.long 370807324,370807324 +.long 179999714,179999714 +.long 3844776128,3844776128 +.long 1138762300,1138762300 +.long 488053522,488053522 +.long 185403662,185403662 +.long 2915535858,2915535858 +.long 3114841645,3114841645 +.long 3366526484,3366526484 +.long 2233069911,2233069911 +.long 1275557295,1275557295 +.long 3151862254,3151862254 +.long 4250959779,4250959779 +.long 2670068215,2670068215 +.long 3170202204,3170202204 +.long 3309004356,3309004356 +.long 880737115,880737115 +.long 1982415755,1982415755 +.long 3703972811,3703972811 +.long 1761406390,1761406390 +.long 1676797112,1676797112 +.long 3403428311,3403428311 +.long 277177154,277177154 +.long 1076008723,1076008723 +.long 538035844,538035844 +.long 2099530373,2099530373 +.long 4164795346,4164795346 +.long 288553390,288553390 +.long 1839278535,1839278535 +.long 1261411869,1261411869 +.long 4080055004,4080055004 +.long 3964831245,3964831245 +.long 3504587127,3504587127 +.long 1813426987,1813426987 +.long 2579067049,2579067049 +.long 4199060497,4199060497 +.long 577038663,577038663 +.long 3297574056,3297574056 +.long 440397984,440397984 +.long 3626794326,3626794326 +.long 4019204898,4019204898 +.long 3343796615,3343796615 +.long 3251714265,3251714265 +.long 4272081548,4272081548 +.long 906744984,906744984 +.long 3481400742,3481400742 +.long 685669029,685669029 +.long 646887386,646887386 +.long 2764025151,2764025151 +.long 3835509292,3835509292 +.long 227702864,227702864 +.long 2613862250,2613862250 +.long 1648787028,1648787028 +.long 3256061430,3256061430 +.long 3904428176,3904428176 +.long 1593260334,1593260334 +.long 4121936770,4121936770 +.long 3196083615,3196083615 +.long 2090061929,2090061929 +.long 2838353263,2838353263 +.long 3004310991,3004310991 +.long 999926984,999926984 +.long 2809993232,2809993232 +.long 1852021992,1852021992 +.long 2075868123,2075868123 +.long 158869197,158869197 +.long 4095236462,4095236462 +.long 28809964,28809964 +.long 2828685187,2828685187 +.long 1701746150,1701746150 +.long 2129067946,2129067946 +.long 147831841,147831841 +.long 3873969647,3873969647 +.long 3650873274,3650873274 +.long 3459673930,3459673930 +.long 3557400554,3557400554 +.long 3598495785,3598495785 +.long 2947720241,2947720241 +.long 824393514,824393514 +.long 815048134,815048134 +.long 3227951669,3227951669 +.long 935087732,935087732 +.long 2798289660,2798289660 +.long 2966458592,2966458592 +.long 366520115,366520115 +.long 1251476721,1251476721 +.long 4158319681,4158319681 +.long 240176511,240176511 +.long 804688151,804688151 +.long 2379631990,2379631990 +.long 1303441219,1303441219 +.long 1414376140,1414376140 +.long 3741619940,3741619940 +.long 3820343710,3820343710 +.long 461924940,461924940 +.long 3089050817,3089050817 +.long 2136040774,2136040774 +.long 82468509,82468509 +.long 1563790337,1563790337 +.long 1937016826,1937016826 +.long 776014843,776014843 +.long 1511876531,1511876531 +.long 1389550482,1389550482 +.long 861278441,861278441 +.long 323475053,323475053 +.long 2355222426,2355222426 +.long 2047648055,2047648055 +.long 2383738969,2383738969 +.long 2302415851,2302415851 +.long 3995576782,3995576782 +.long 902390199,902390199 +.long 3991215329,3991215329 +.long 1018251130,1018251130 +.long 1507840668,1507840668 +.long 1064563285,1064563285 +.long 2043548696,2043548696 +.long 3208103795,3208103795 +.long 3939366739,3939366739 +.long 1537932639,1537932639 +.long 342834655,342834655 +.long 2262516856,2262516856 +.long 2180231114,2180231114 +.long 1053059257,1053059257 +.long 741614648,741614648 +.long 1598071746,1598071746 +.long 1925389590,1925389590 +.long 203809468,203809468 +.long 2336832552,2336832552 +.long 1100287487,1100287487 +.long 1895934009,1895934009 +.long 3736275976,3736275976 +.long 2632234200,2632234200 +.long 2428589668,2428589668 +.long 1636092795,1636092795 +.long 1890988757,1890988757 +.long 1952214088,1952214088 +.long 1113045200,1113045200 +.byte 82,9,106,213,48,54,165,56 +.byte 191,64,163,158,129,243,215,251 +.byte 124,227,57,130,155,47,255,135 +.byte 52,142,67,68,196,222,233,203 +.byte 84,123,148,50,166,194,35,61 +.byte 238,76,149,11,66,250,195,78 +.byte 8,46,161,102,40,217,36,178 +.byte 118,91,162,73,109,139,209,37 +.byte 114,248,246,100,134,104,152,22 +.byte 212,164,92,204,93,101,182,146 +.byte 108,112,72,80,253,237,185,218 +.byte 94,21,70,87,167,141,157,132 +.byte 144,216,171,0,140,188,211,10 +.byte 247,228,88,5,184,179,69,6 +.byte 208,44,30,143,202,63,15,2 +.byte 193,175,189,3,1,19,138,107 +.byte 58,145,17,65,79,103,220,234 +.byte 151,242,207,206,240,180,230,115 +.byte 150,172,116,34,231,173,53,133 +.byte 226,249,55,232,28,117,223,110 +.byte 71,241,26,113,29,41,197,137 +.byte 111,183,98,14,170,24,190,27 +.byte 252,86,62,75,198,210,121,32 +.byte 154,219,192,254,120,205,90,244 +.byte 31,221,168,51,136,7,199,49 +.byte 177,18,16,89,39,128,236,95 +.byte 96,81,127,169,25,181,74,13 +.byte 45,229,122,159,147,201,156,239 +.byte 160,224,59,77,174,42,245,176 +.byte 200,235,187,60,131,83,153,97 +.byte 23,43,4,126,186,119,214,38 +.byte 225,105,20,99,85,33,12,125 +.byte 82,9,106,213,48,54,165,56 +.byte 191,64,163,158,129,243,215,251 +.byte 124,227,57,130,155,47,255,135 +.byte 52,142,67,68,196,222,233,203 +.byte 84,123,148,50,166,194,35,61 +.byte 238,76,149,11,66,250,195,78 +.byte 8,46,161,102,40,217,36,178 +.byte 118,91,162,73,109,139,209,37 +.byte 114,248,246,100,134,104,152,22 +.byte 212,164,92,204,93,101,182,146 +.byte 108,112,72,80,253,237,185,218 +.byte 94,21,70,87,167,141,157,132 +.byte 144,216,171,0,140,188,211,10 +.byte 247,228,88,5,184,179,69,6 +.byte 208,44,30,143,202,63,15,2 +.byte 193,175,189,3,1,19,138,107 +.byte 58,145,17,65,79,103,220,234 +.byte 151,242,207,206,240,180,230,115 +.byte 150,172,116,34,231,173,53,133 +.byte 226,249,55,232,28,117,223,110 +.byte 71,241,26,113,29,41,197,137 +.byte 111,183,98,14,170,24,190,27 +.byte 252,86,62,75,198,210,121,32 +.byte 154,219,192,254,120,205,90,244 +.byte 31,221,168,51,136,7,199,49 +.byte 177,18,16,89,39,128,236,95 +.byte 96,81,127,169,25,181,74,13 +.byte 45,229,122,159,147,201,156,239 +.byte 160,224,59,77,174,42,245,176 +.byte 200,235,187,60,131,83,153,97 +.byte 23,43,4,126,186,119,214,38 +.byte 225,105,20,99,85,33,12,125 +.byte 82,9,106,213,48,54,165,56 +.byte 191,64,163,158,129,243,215,251 +.byte 124,227,57,130,155,47,255,135 +.byte 52,142,67,68,196,222,233,203 +.byte 84,123,148,50,166,194,35,61 +.byte 238,76,149,11,66,250,195,78 +.byte 8,46,161,102,40,217,36,178 +.byte 118,91,162,73,109,139,209,37 +.byte 114,248,246,100,134,104,152,22 +.byte 212,164,92,204,93,101,182,146 +.byte 108,112,72,80,253,237,185,218 +.byte 94,21,70,87,167,141,157,132 +.byte 144,216,171,0,140,188,211,10 +.byte 247,228,88,5,184,179,69,6 +.byte 208,44,30,143,202,63,15,2 +.byte 193,175,189,3,1,19,138,107 +.byte 58,145,17,65,79,103,220,234 +.byte 151,242,207,206,240,180,230,115 +.byte 150,172,116,34,231,173,53,133 +.byte 226,249,55,232,28,117,223,110 +.byte 71,241,26,113,29,41,197,137 +.byte 111,183,98,14,170,24,190,27 +.byte 252,86,62,75,198,210,121,32 +.byte 154,219,192,254,120,205,90,244 +.byte 31,221,168,51,136,7,199,49 +.byte 177,18,16,89,39,128,236,95 +.byte 96,81,127,169,25,181,74,13 +.byte 45,229,122,159,147,201,156,239 +.byte 160,224,59,77,174,42,245,176 +.byte 200,235,187,60,131,83,153,97 +.byte 23,43,4,126,186,119,214,38 +.byte 225,105,20,99,85,33,12,125 +.byte 82,9,106,213,48,54,165,56 +.byte 191,64,163,158,129,243,215,251 +.byte 124,227,57,130,155,47,255,135 +.byte 52,142,67,68,196,222,233,203 +.byte 84,123,148,50,166,194,35,61 +.byte 238,76,149,11,66,250,195,78 +.byte 8,46,161,102,40,217,36,178 +.byte 118,91,162,73,109,139,209,37 +.byte 114,248,246,100,134,104,152,22 +.byte 212,164,92,204,93,101,182,146 +.byte 108,112,72,80,253,237,185,218 +.byte 94,21,70,87,167,141,157,132 +.byte 144,216,171,0,140,188,211,10 +.byte 247,228,88,5,184,179,69,6 +.byte 208,44,30,143,202,63,15,2 +.byte 193,175,189,3,1,19,138,107 +.byte 58,145,17,65,79,103,220,234 +.byte 151,242,207,206,240,180,230,115 +.byte 150,172,116,34,231,173,53,133 +.byte 226,249,55,232,28,117,223,110 +.byte 71,241,26,113,29,41,197,137 +.byte 111,183,98,14,170,24,190,27 +.byte 252,86,62,75,198,210,121,32 +.byte 154,219,192,254,120,205,90,244 +.byte 31,221,168,51,136,7,199,49 +.byte 177,18,16,89,39,128,236,95 +.byte 96,81,127,169,25,181,74,13 +.byte 45,229,122,159,147,201,156,239 +.byte 160,224,59,77,174,42,245,176 +.byte 200,235,187,60,131,83,153,97 +.byte 23,43,4,126,186,119,214,38 +.byte 225,105,20,99,85,33,12,125 +.size _x86_AES_decrypt,.-_x86_AES_decrypt +.globl AES_decrypt +.type AES_decrypt,@function +.align 16 +AES_decrypt: +.L_AES_decrypt_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%esi + movl 28(%esp),%edi + movl %esp,%eax + subl $36,%esp + andl $-64,%esp + leal -127(%edi),%ebx + subl %esp,%ebx + negl %ebx + andl $960,%ebx + subl %ebx,%esp + addl $4,%esp + movl %eax,28(%esp) + call .L010pic_point +.L010pic_point: + popl %ebp + leal OPENSSL_ia32cap_P,%eax + leal .LAES_Td-.L010pic_point(%ebp),%ebp + leal 764(%esp),%ebx + subl %ebp,%ebx + andl $768,%ebx + leal 2176(%ebp,%ebx,1),%ebp + btl $25,(%eax) + jnc .L011x86 + movq (%esi),%mm0 + movq 8(%esi),%mm4 + call _sse_AES_decrypt_compact + movl 28(%esp),%esp + movl 24(%esp),%esi + movq %mm0,(%esi) + movq %mm4,8(%esi) + emms + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 16 +.L011x86: + movl %ebp,24(%esp) + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + call _x86_AES_decrypt_compact + movl 28(%esp),%esp + movl 24(%esp),%esi + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size AES_decrypt,.-.L_AES_decrypt_begin +.globl AES_cbc_encrypt +.type AES_cbc_encrypt,@function +.align 16 +AES_cbc_encrypt: +.L_AES_cbc_encrypt_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 28(%esp),%ecx + cmpl $0,%ecx + je .L012drop_out + call .L013pic_point +.L013pic_point: + popl %ebp + leal OPENSSL_ia32cap_P,%eax + cmpl $0,40(%esp) + leal .LAES_Te-.L013pic_point(%ebp),%ebp + jne .L014picked_te + leal .LAES_Td-.LAES_Te(%ebp),%ebp +.L014picked_te: + pushfl + cld + cmpl $512,%ecx + jb .L015slow_way + testl $15,%ecx + jnz .L015slow_way + leal -324(%esp),%esi + andl $-64,%esi + movl %ebp,%eax + leal 2304(%ebp),%ebx + movl %esi,%edx + andl $4095,%eax + andl $4095,%ebx + andl $4095,%edx + cmpl %ebx,%edx + jb .L016tbl_break_out + subl %ebx,%edx + subl %edx,%esi + jmp .L017tbl_ok +.align 4 +.L016tbl_break_out: + subl %eax,%edx + andl $4095,%edx + addl $384,%edx + subl %edx,%esi +.align 4 +.L017tbl_ok: + leal 24(%esp),%edx + xchgl %esi,%esp + addl $4,%esp + movl %ebp,24(%esp) + movl %esi,28(%esp) + movl (%edx),%eax + movl 4(%edx),%ebx + movl 12(%edx),%edi + movl 16(%edx),%esi + movl 20(%edx),%edx + movl %eax,32(%esp) + movl %ebx,36(%esp) + movl %ecx,40(%esp) + movl %edi,44(%esp) + movl %esi,48(%esp) + movl $0,316(%esp) + movl %edi,%ebx + movl $61,%ecx + subl %ebp,%ebx + movl %edi,%esi + andl $4095,%ebx + leal 76(%esp),%edi + cmpl $2304,%ebx + jb .L018do_copy + cmpl $3852,%ebx + jb .L019skip_copy +.align 4 +.L018do_copy: + movl %edi,44(%esp) +.long 2784229001 +.L019skip_copy: + movl $16,%edi +.align 4 +.L020prefetch_tbl: + movl (%ebp),%eax + movl 32(%ebp),%ebx + movl 64(%ebp),%ecx + movl 96(%ebp),%esi + leal 128(%ebp),%ebp + subl $1,%edi + jnz .L020prefetch_tbl + subl $2048,%ebp + movl 32(%esp),%esi + movl 48(%esp),%edi + cmpl $0,%edx + je .L021fast_decrypt + movl (%edi),%eax + movl 4(%edi),%ebx +.align 16 +.L022fast_enc_loop: + movl 8(%edi),%ecx + movl 12(%edi),%edx + xorl (%esi),%eax + xorl 4(%esi),%ebx + xorl 8(%esi),%ecx + xorl 12(%esi),%edx + movl 44(%esp),%edi + call _x86_AES_encrypt + movl 32(%esp),%esi + movl 36(%esp),%edi + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + leal 16(%esi),%esi + movl 40(%esp),%ecx + movl %esi,32(%esp) + leal 16(%edi),%edx + movl %edx,36(%esp) + subl $16,%ecx + movl %ecx,40(%esp) + jnz .L022fast_enc_loop + movl 48(%esp),%esi + movl 8(%edi),%ecx + movl 12(%edi),%edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + cmpl $0,316(%esp) + movl 44(%esp),%edi + je .L023skip_ezero + movl $60,%ecx + xorl %eax,%eax +.align 4 +.long 2884892297 +.L023skip_ezero: + movl 28(%esp),%esp + popfl +.L012drop_out: + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + pushfl +.align 16 +.L021fast_decrypt: + cmpl 36(%esp),%esi + je .L024fast_dec_in_place + movl %edi,52(%esp) +.align 4 +.align 16 +.L025fast_dec_loop: + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl 44(%esp),%edi + call _x86_AES_decrypt + movl 52(%esp),%edi + movl 40(%esp),%esi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl 36(%esp),%edi + movl 32(%esp),%esi + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 40(%esp),%ecx + movl %esi,52(%esp) + leal 16(%esi),%esi + movl %esi,32(%esp) + leal 16(%edi),%edi + movl %edi,36(%esp) + subl $16,%ecx + movl %ecx,40(%esp) + jnz .L025fast_dec_loop + movl 52(%esp),%edi + movl 48(%esp),%esi + movl (%edi),%eax + movl 4(%edi),%ebx + movl 8(%edi),%ecx + movl 12(%edi),%edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + jmp .L026fast_dec_out +.align 16 +.L024fast_dec_in_place: +.L027fast_dec_in_place_loop: + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + leal 60(%esp),%edi + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 44(%esp),%edi + call _x86_AES_decrypt + movl 48(%esp),%edi + movl 36(%esp),%esi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + leal 16(%esi),%esi + movl %esi,36(%esp) + leal 60(%esp),%esi + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 32(%esp),%esi + movl 40(%esp),%ecx + leal 16(%esi),%esi + movl %esi,32(%esp) + subl $16,%ecx + movl %ecx,40(%esp) + jnz .L027fast_dec_in_place_loop +.align 4 +.L026fast_dec_out: + cmpl $0,316(%esp) + movl 44(%esp),%edi + je .L028skip_dzero + movl $60,%ecx + xorl %eax,%eax +.align 4 +.long 2884892297 +.L028skip_dzero: + movl 28(%esp),%esp + popfl + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + pushfl +.align 16 +.L015slow_way: + movl (%eax),%eax + movl 36(%esp),%edi + leal -80(%esp),%esi + andl $-64,%esi + leal -143(%edi),%ebx + subl %esi,%ebx + negl %ebx + andl $960,%ebx + subl %ebx,%esi + leal 768(%esi),%ebx + subl %ebp,%ebx + andl $768,%ebx + leal 2176(%ebp,%ebx,1),%ebp + leal 24(%esp),%edx + xchgl %esi,%esp + addl $4,%esp + movl %ebp,24(%esp) + movl %esi,28(%esp) + movl %eax,52(%esp) + movl (%edx),%eax + movl 4(%edx),%ebx + movl 16(%edx),%esi + movl 20(%edx),%edx + movl %eax,32(%esp) + movl %ebx,36(%esp) + movl %ecx,40(%esp) + movl %edi,44(%esp) + movl %esi,48(%esp) + movl %esi,%edi + movl %eax,%esi + cmpl $0,%edx + je .L029slow_decrypt + cmpl $16,%ecx + movl %ebx,%edx + jb .L030slow_enc_tail + btl $25,52(%esp) + jnc .L031slow_enc_x86 + movq (%edi),%mm0 + movq 8(%edi),%mm4 +.align 16 +.L032slow_enc_loop_sse: + pxor (%esi),%mm0 + pxor 8(%esi),%mm4 + movl 44(%esp),%edi + call _sse_AES_encrypt_compact + movl 32(%esp),%esi + movl 36(%esp),%edi + movl 40(%esp),%ecx + movq %mm0,(%edi) + movq %mm4,8(%edi) + leal 16(%esi),%esi + movl %esi,32(%esp) + leal 16(%edi),%edx + movl %edx,36(%esp) + subl $16,%ecx + cmpl $16,%ecx + movl %ecx,40(%esp) + jae .L032slow_enc_loop_sse + testl $15,%ecx + jnz .L030slow_enc_tail + movl 48(%esp),%esi + movq %mm0,(%esi) + movq %mm4,8(%esi) + emms + movl 28(%esp),%esp + popfl + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + pushfl +.align 16 +.L031slow_enc_x86: + movl (%edi),%eax + movl 4(%edi),%ebx +.align 4 +.L033slow_enc_loop_x86: + movl 8(%edi),%ecx + movl 12(%edi),%edx + xorl (%esi),%eax + xorl 4(%esi),%ebx + xorl 8(%esi),%ecx + xorl 12(%esi),%edx + movl 44(%esp),%edi + call _x86_AES_encrypt_compact + movl 32(%esp),%esi + movl 36(%esp),%edi + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 40(%esp),%ecx + leal 16(%esi),%esi + movl %esi,32(%esp) + leal 16(%edi),%edx + movl %edx,36(%esp) + subl $16,%ecx + cmpl $16,%ecx + movl %ecx,40(%esp) + jae .L033slow_enc_loop_x86 + testl $15,%ecx + jnz .L030slow_enc_tail + movl 48(%esp),%esi + movl 8(%edi),%ecx + movl 12(%edi),%edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + movl 28(%esp),%esp + popfl + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + pushfl +.align 16 +.L030slow_enc_tail: + emms + movl %edx,%edi + movl $16,%ebx + subl %ecx,%ebx + cmpl %esi,%edi + je .L034enc_in_place +.align 4 +.long 2767451785 + jmp .L035enc_skip_in_place +.L034enc_in_place: + leal (%edi,%ecx,1),%edi +.L035enc_skip_in_place: + movl %ebx,%ecx + xorl %eax,%eax +.align 4 +.long 2868115081 + movl 48(%esp),%edi + movl %edx,%esi + movl (%edi),%eax + movl 4(%edi),%ebx + movl $16,40(%esp) + jmp .L033slow_enc_loop_x86 +.align 16 +.L029slow_decrypt: + btl $25,52(%esp) + jnc .L036slow_dec_loop_x86 +.align 4 +.L037slow_dec_loop_sse: + movq (%esi),%mm0 + movq 8(%esi),%mm4 + movl 44(%esp),%edi + call _sse_AES_decrypt_compact + movl 32(%esp),%esi + leal 60(%esp),%eax + movl 36(%esp),%ebx + movl 40(%esp),%ecx + movl 48(%esp),%edi + movq (%esi),%mm1 + movq 8(%esi),%mm5 + pxor (%edi),%mm0 + pxor 8(%edi),%mm4 + movq %mm1,(%edi) + movq %mm5,8(%edi) + subl $16,%ecx + jc .L038slow_dec_partial_sse + movq %mm0,(%ebx) + movq %mm4,8(%ebx) + leal 16(%ebx),%ebx + movl %ebx,36(%esp) + leal 16(%esi),%esi + movl %esi,32(%esp) + movl %ecx,40(%esp) + jnz .L037slow_dec_loop_sse + emms + movl 28(%esp),%esp + popfl + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + pushfl +.align 16 +.L038slow_dec_partial_sse: + movq %mm0,(%eax) + movq %mm4,8(%eax) + emms + addl $16,%ecx + movl %ebx,%edi + movl %eax,%esi +.align 4 +.long 2767451785 + movl 28(%esp),%esp + popfl + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + pushfl +.align 16 +.L036slow_dec_loop_x86: + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + leal 60(%esp),%edi + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 44(%esp),%edi + call _x86_AES_decrypt_compact + movl 48(%esp),%edi + movl 40(%esp),%esi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + subl $16,%esi + jc .L039slow_dec_partial_x86 + movl %esi,40(%esp) + movl 36(%esp),%esi + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + leal 16(%esi),%esi + movl %esi,36(%esp) + leal 60(%esp),%esi + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 32(%esp),%esi + leal 16(%esi),%esi + movl %esi,32(%esp) + jnz .L036slow_dec_loop_x86 + movl 28(%esp),%esp + popfl + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + pushfl +.align 16 +.L039slow_dec_partial_x86: + leal 60(%esp),%esi + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + movl 32(%esp),%esi + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 40(%esp),%ecx + movl 36(%esp),%edi + leal 60(%esp),%esi +.align 4 +.long 2767451785 + movl 28(%esp),%esp + popfl + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size AES_cbc_encrypt,.-.L_AES_cbc_encrypt_begin +.type _x86_AES_set_encrypt_key,@function +.align 16 +_x86_AES_set_encrypt_key: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 24(%esp),%esi + movl 32(%esp),%edi + testl $-1,%esi + jz .L040badpointer + testl $-1,%edi + jz .L040badpointer + call .L041pic_point +.L041pic_point: + popl %ebp + leal .LAES_Te-.L041pic_point(%ebp),%ebp + leal 2176(%ebp),%ebp + movl -128(%ebp),%eax + movl -96(%ebp),%ebx + movl -64(%ebp),%ecx + movl -32(%ebp),%edx + movl (%ebp),%eax + movl 32(%ebp),%ebx + movl 64(%ebp),%ecx + movl 96(%ebp),%edx + movl 28(%esp),%ecx + cmpl $128,%ecx + je .L04210rounds + cmpl $192,%ecx + je .L04312rounds + cmpl $256,%ecx + je .L04414rounds + movl $-2,%eax + jmp .L045exit +.L04210rounds: + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + xorl %ecx,%ecx + jmp .L04610shortcut +.align 4 +.L04710loop: + movl (%edi),%eax + movl 12(%edi),%edx +.L04610shortcut: + movzbl %dl,%esi + movzbl -128(%ebp,%esi,1),%ebx + movzbl %dh,%esi + shll $24,%ebx + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + shrl $16,%edx + movzbl %dl,%esi + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + movzbl %dh,%esi + shll $8,%ebx + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + shll $16,%ebx + xorl %ebx,%eax + xorl 896(%ebp,%ecx,4),%eax + movl %eax,16(%edi) + xorl 4(%edi),%eax + movl %eax,20(%edi) + xorl 8(%edi),%eax + movl %eax,24(%edi) + xorl 12(%edi),%eax + movl %eax,28(%edi) + incl %ecx + addl $16,%edi + cmpl $10,%ecx + jl .L04710loop + movl $10,80(%edi) + xorl %eax,%eax + jmp .L045exit +.L04312rounds: + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 16(%esi),%ecx + movl 20(%esi),%edx + movl %ecx,16(%edi) + movl %edx,20(%edi) + xorl %ecx,%ecx + jmp .L04812shortcut +.align 4 +.L04912loop: + movl (%edi),%eax + movl 20(%edi),%edx +.L04812shortcut: + movzbl %dl,%esi + movzbl -128(%ebp,%esi,1),%ebx + movzbl %dh,%esi + shll $24,%ebx + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + shrl $16,%edx + movzbl %dl,%esi + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + movzbl %dh,%esi + shll $8,%ebx + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + shll $16,%ebx + xorl %ebx,%eax + xorl 896(%ebp,%ecx,4),%eax + movl %eax,24(%edi) + xorl 4(%edi),%eax + movl %eax,28(%edi) + xorl 8(%edi),%eax + movl %eax,32(%edi) + xorl 12(%edi),%eax + movl %eax,36(%edi) + cmpl $7,%ecx + je .L05012break + incl %ecx + xorl 16(%edi),%eax + movl %eax,40(%edi) + xorl 20(%edi),%eax + movl %eax,44(%edi) + addl $24,%edi + jmp .L04912loop +.L05012break: + movl $12,72(%edi) + xorl %eax,%eax + jmp .L045exit +.L04414rounds: + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 16(%esi),%eax + movl 20(%esi),%ebx + movl 24(%esi),%ecx + movl 28(%esi),%edx + movl %eax,16(%edi) + movl %ebx,20(%edi) + movl %ecx,24(%edi) + movl %edx,28(%edi) + xorl %ecx,%ecx + jmp .L05114shortcut +.align 4 +.L05214loop: + movl 28(%edi),%edx +.L05114shortcut: + movl (%edi),%eax + movzbl %dl,%esi + movzbl -128(%ebp,%esi,1),%ebx + movzbl %dh,%esi + shll $24,%ebx + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + shrl $16,%edx + movzbl %dl,%esi + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + movzbl %dh,%esi + shll $8,%ebx + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + shll $16,%ebx + xorl %ebx,%eax + xorl 896(%ebp,%ecx,4),%eax + movl %eax,32(%edi) + xorl 4(%edi),%eax + movl %eax,36(%edi) + xorl 8(%edi),%eax + movl %eax,40(%edi) + xorl 12(%edi),%eax + movl %eax,44(%edi) + cmpl $6,%ecx + je .L05314break + incl %ecx + movl %eax,%edx + movl 16(%edi),%eax + movzbl %dl,%esi + movzbl -128(%ebp,%esi,1),%ebx + movzbl %dh,%esi + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + shrl $16,%edx + shll $8,%ebx + movzbl %dl,%esi + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + movzbl %dh,%esi + shll $16,%ebx + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + shll $24,%ebx + xorl %ebx,%eax + movl %eax,48(%edi) + xorl 20(%edi),%eax + movl %eax,52(%edi) + xorl 24(%edi),%eax + movl %eax,56(%edi) + xorl 28(%edi),%eax + movl %eax,60(%edi) + addl $32,%edi + jmp .L05214loop +.L05314break: + movl $14,48(%edi) + xorl %eax,%eax + jmp .L045exit +.L040badpointer: + movl $-1,%eax +.L045exit: + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size _x86_AES_set_encrypt_key,.-_x86_AES_set_encrypt_key +.globl AES_set_encrypt_key +.type AES_set_encrypt_key,@function +.align 16 +AES_set_encrypt_key: +.L_AES_set_encrypt_key_begin: + call _x86_AES_set_encrypt_key + ret +.size AES_set_encrypt_key,.-.L_AES_set_encrypt_key_begin +.globl AES_set_decrypt_key +.type AES_set_decrypt_key,@function +.align 16 +AES_set_decrypt_key: +.L_AES_set_decrypt_key_begin: + call _x86_AES_set_encrypt_key + cmpl $0,%eax + je .L054proceed + ret +.L054proceed: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 28(%esp),%esi + movl 240(%esi),%ecx + leal (,%ecx,4),%ecx + leal (%esi,%ecx,4),%edi +.align 4 +.L055invert: + movl (%esi),%eax + movl 4(%esi),%ebx + movl (%edi),%ecx + movl 4(%edi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,(%esi) + movl %edx,4(%esi) + movl 8(%esi),%eax + movl 12(%esi),%ebx + movl 8(%edi),%ecx + movl 12(%edi),%edx + movl %eax,8(%edi) + movl %ebx,12(%edi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + addl $16,%esi + subl $16,%edi + cmpl %edi,%esi + jne .L055invert + movl 28(%esp),%edi + movl 240(%edi),%esi + leal -2(%esi,%esi,1),%esi + leal (%edi,%esi,8),%esi + movl %esi,28(%esp) + movl 16(%edi),%eax +.align 4 +.L056permute: + addl $16,%edi + movl %eax,%esi + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%eax,%eax,1),%ebx + subl %ebp,%esi + andl $4278124286,%ebx + andl $454761243,%esi + xorl %ebx,%esi + movl %esi,%ebx + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%ebx,%ebx,1),%ecx + subl %ebp,%esi + andl $4278124286,%ecx + andl $454761243,%esi + xorl %eax,%ebx + xorl %ecx,%esi + movl %esi,%ecx + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%ecx,%ecx,1),%edx + xorl %eax,%ecx + subl %ebp,%esi + andl $4278124286,%edx + andl $454761243,%esi + roll $8,%eax + xorl %esi,%edx + movl 4(%edi),%ebp + xorl %ebx,%eax + xorl %edx,%ebx + xorl %ecx,%eax + roll $24,%ebx + xorl %edx,%ecx + xorl %edx,%eax + roll $16,%ecx + xorl %ebx,%eax + roll $8,%edx + xorl %ecx,%eax + movl %ebp,%ebx + xorl %edx,%eax + movl %eax,(%edi) + movl %ebx,%esi + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%ebx,%ebx,1),%ecx + subl %ebp,%esi + andl $4278124286,%ecx + andl $454761243,%esi + xorl %ecx,%esi + movl %esi,%ecx + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%ecx,%ecx,1),%edx + subl %ebp,%esi + andl $4278124286,%edx + andl $454761243,%esi + xorl %ebx,%ecx + xorl %edx,%esi + movl %esi,%edx + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%edx,%edx,1),%eax + xorl %ebx,%edx + subl %ebp,%esi + andl $4278124286,%eax + andl $454761243,%esi + roll $8,%ebx + xorl %esi,%eax + movl 8(%edi),%ebp + xorl %ecx,%ebx + xorl %eax,%ecx + xorl %edx,%ebx + roll $24,%ecx + xorl %eax,%edx + xorl %eax,%ebx + roll $16,%edx + xorl %ecx,%ebx + roll $8,%eax + xorl %edx,%ebx + movl %ebp,%ecx + xorl %eax,%ebx + movl %ebx,4(%edi) + movl %ecx,%esi + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%ecx,%ecx,1),%edx + subl %ebp,%esi + andl $4278124286,%edx + andl $454761243,%esi + xorl %edx,%esi + movl %esi,%edx + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%edx,%edx,1),%eax + subl %ebp,%esi + andl $4278124286,%eax + andl $454761243,%esi + xorl %ecx,%edx + xorl %eax,%esi + movl %esi,%eax + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%eax,%eax,1),%ebx + xorl %ecx,%eax + subl %ebp,%esi + andl $4278124286,%ebx + andl $454761243,%esi + roll $8,%ecx + xorl %esi,%ebx + movl 12(%edi),%ebp + xorl %edx,%ecx + xorl %ebx,%edx + xorl %eax,%ecx + roll $24,%edx + xorl %ebx,%eax + xorl %ebx,%ecx + roll $16,%eax + xorl %edx,%ecx + roll $8,%ebx + xorl %eax,%ecx + movl %ebp,%edx + xorl %ebx,%ecx + movl %ecx,8(%edi) + movl %edx,%esi + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%edx,%edx,1),%eax + subl %ebp,%esi + andl $4278124286,%eax + andl $454761243,%esi + xorl %eax,%esi + movl %esi,%eax + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%eax,%eax,1),%ebx + subl %ebp,%esi + andl $4278124286,%ebx + andl $454761243,%esi + xorl %edx,%eax + xorl %ebx,%esi + movl %esi,%ebx + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%ebx,%ebx,1),%ecx + xorl %edx,%ebx + subl %ebp,%esi + andl $4278124286,%ecx + andl $454761243,%esi + roll $8,%edx + xorl %esi,%ecx + movl 16(%edi),%ebp + xorl %eax,%edx + xorl %ecx,%eax + xorl %ebx,%edx + roll $24,%eax + xorl %ecx,%ebx + xorl %ecx,%edx + roll $16,%ebx + xorl %eax,%edx + roll $8,%ecx + xorl %ebx,%edx + movl %ebp,%eax + xorl %ecx,%edx + movl %edx,12(%edi) + cmpl 28(%esp),%edi + jb .L056permute + xorl %eax,%eax + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size AES_set_decrypt_key,.-.L_AES_set_decrypt_key_begin +.byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89 +.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 +.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.comm OPENSSL_ia32cap_P,4,4 diff --git a/deps/openssl/asm/x86-elf-gas/bf/bf-686.s b/deps/openssl/asm/x86-elf-gas/bf/bf-686.s new file mode 100644 index 0000000000..69b0ce681b --- /dev/null +++ b/deps/openssl/asm/x86-elf-gas/bf/bf-686.s @@ -0,0 +1,864 @@ +.file "bf-686.s" +.text +.globl BF_encrypt +.type BF_encrypt,@function +.align 16 +BF_encrypt: +.L_BF_encrypt_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + + + movl 20(%esp),%eax + movl (%eax),%ecx + movl 4(%eax),%edx + + + movl 24(%esp),%edi + xorl %eax,%eax + xorl %ebx,%ebx + xorl (%edi),%ecx + + + rorl $16,%ecx + movl 4(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + + rorl $16,%edx + movl 8(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + + rorl $16,%ecx + movl 12(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + + rorl $16,%edx + movl 16(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + + rorl $16,%ecx + movl 20(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + + rorl $16,%edx + movl 24(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + + rorl $16,%ecx + movl 28(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + + rorl $16,%edx + movl 32(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + + rorl $16,%ecx + movl 36(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + + rorl $16,%edx + movl 40(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + + rorl $16,%ecx + movl 44(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + + rorl $16,%edx + movl 48(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + + rorl $16,%ecx + movl 52(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + + rorl $16,%edx + movl 56(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + + rorl $16,%ecx + movl 60(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + + rorl $16,%edx + movl 64(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + xorl 68(%edi),%edx + movl 20(%esp),%eax + movl %edx,(%eax) + movl %ecx,4(%eax) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size BF_encrypt,.-.L_BF_encrypt_begin +.globl BF_decrypt +.type BF_decrypt,@function +.align 16 +BF_decrypt: +.L_BF_decrypt_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + + + movl 20(%esp),%eax + movl (%eax),%ecx + movl 4(%eax),%edx + + + movl 24(%esp),%edi + xorl %eax,%eax + xorl %ebx,%ebx + xorl 68(%edi),%ecx + + + rorl $16,%ecx + movl 64(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + + rorl $16,%edx + movl 60(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + + rorl $16,%ecx + movl 56(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + + rorl $16,%edx + movl 52(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + + rorl $16,%ecx + movl 48(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + + rorl $16,%edx + movl 44(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + + rorl $16,%ecx + movl 40(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + + rorl $16,%edx + movl 36(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + + rorl $16,%ecx + movl 32(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + + rorl $16,%edx + movl 28(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + + rorl $16,%ecx + movl 24(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + + rorl $16,%edx + movl 20(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + + rorl $16,%ecx + movl 16(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + + rorl $16,%edx + movl 12(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + + rorl $16,%ecx + movl 8(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + + rorl $16,%edx + movl 4(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + xorl (%edi),%edx + movl 20(%esp),%eax + movl %edx,(%eax) + movl %ecx,4(%eax) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size BF_decrypt,.-.L_BF_decrypt_begin +.globl BF_cbc_encrypt +.type BF_cbc_encrypt,@function +.align 16 +BF_cbc_encrypt: +.L_BF_cbc_encrypt_begin: + + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 28(%esp),%ebp + + movl 36(%esp),%ebx + movl (%ebx),%esi + movl 4(%ebx),%edi + pushl %edi + pushl %esi + pushl %edi + pushl %esi + movl %esp,%ebx + movl 36(%esp),%esi + movl 40(%esp),%edi + + movl 56(%esp),%ecx + + movl 48(%esp),%eax + pushl %eax + pushl %ebx + cmpl $0,%ecx + jz .L000decrypt + andl $4294967288,%ebp + movl 8(%esp),%eax + movl 12(%esp),%ebx + jz .L001encrypt_finish +.L002encrypt_loop: + movl (%esi),%ecx + movl 4(%esi),%edx + xorl %ecx,%eax + xorl %edx,%ebx + bswap %eax + bswap %ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call .L_BF_encrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + bswap %eax + bswap %ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz .L002encrypt_loop +.L001encrypt_finish: + movl 52(%esp),%ebp + andl $7,%ebp + jz .L003finish + call .L004PIC_point +.L004PIC_point: + popl %edx + leal .L005cbc_enc_jmp_table-.L004PIC_point(%edx),%ecx + movl (%ecx,%ebp,4),%ebp + addl %edx,%ebp + xorl %ecx,%ecx + xorl %edx,%edx + jmp *%ebp +.L006ej7: + movb 6(%esi),%dh + shll $8,%edx +.L007ej6: + movb 5(%esi),%dh +.L008ej5: + movb 4(%esi),%dl +.L009ej4: + movl (%esi),%ecx + jmp .L010ejend +.L011ej3: + movb 2(%esi),%ch + shll $8,%ecx +.L012ej2: + movb 1(%esi),%ch +.L013ej1: + movb (%esi),%cl +.L010ejend: + xorl %ecx,%eax + xorl %edx,%ebx + bswap %eax + bswap %ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call .L_BF_encrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + bswap %eax + bswap %ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + jmp .L003finish +.L000decrypt: + andl $4294967288,%ebp + movl 16(%esp),%eax + movl 20(%esp),%ebx + jz .L014decrypt_finish +.L015decrypt_loop: + movl (%esi),%eax + movl 4(%esi),%ebx + bswap %eax + bswap %ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call .L_BF_decrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + bswap %eax + bswap %ebx + movl 16(%esp),%ecx + movl 20(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx + movl %ecx,(%edi) + movl %edx,4(%edi) + movl %eax,16(%esp) + movl %ebx,20(%esp) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz .L015decrypt_loop +.L014decrypt_finish: + movl 52(%esp),%ebp + andl $7,%ebp + jz .L003finish + movl (%esi),%eax + movl 4(%esi),%ebx + bswap %eax + bswap %ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call .L_BF_decrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + bswap %eax + bswap %ebx + movl 16(%esp),%ecx + movl 20(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx +.L016dj7: + rorl $16,%edx + movb %dl,6(%edi) + shrl $16,%edx +.L017dj6: + movb %dh,5(%edi) +.L018dj5: + movb %dl,4(%edi) +.L019dj4: + movl %ecx,(%edi) + jmp .L020djend +.L021dj3: + rorl $16,%ecx + movb %cl,2(%edi) + shll $16,%ecx +.L022dj2: + movb %ch,1(%esi) +.L023dj1: + movb %cl,(%esi) +.L020djend: + jmp .L003finish +.L003finish: + movl 60(%esp),%ecx + addl $24,%esp + movl %eax,(%ecx) + movl %ebx,4(%ecx) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 64 +.L005cbc_enc_jmp_table: +.long 0 +.long .L013ej1-.L004PIC_point +.long .L012ej2-.L004PIC_point +.long .L011ej3-.L004PIC_point +.long .L009ej4-.L004PIC_point +.long .L008ej5-.L004PIC_point +.long .L007ej6-.L004PIC_point +.long .L006ej7-.L004PIC_point +.align 64 +.size BF_cbc_encrypt,.-.L_BF_cbc_encrypt_begin diff --git a/deps/openssl/asm/x86-elf-gas/bn/x86-mont.s b/deps/openssl/asm/x86-elf-gas/bn/x86-mont.s new file mode 100644 index 0000000000..d71cc6441c --- /dev/null +++ b/deps/openssl/asm/x86-elf-gas/bn/x86-mont.s @@ -0,0 +1,338 @@ +.file "../openssl/crypto/bn/asm/x86-mont.s" +.text +.globl bn_mul_mont +.type bn_mul_mont,@function +.align 16 +bn_mul_mont: +.L_bn_mul_mont_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + xorl %eax,%eax + movl 40(%esp),%edi + cmpl $4,%edi + jl .L000just_leave + leal 20(%esp),%esi + leal 24(%esp),%edx + movl %esp,%ebp + addl $2,%edi + negl %edi + leal -32(%esp,%edi,4),%esp + negl %edi + movl %esp,%eax + subl %edx,%eax + andl $2047,%eax + subl %eax,%esp + xorl %esp,%edx + andl $2048,%edx + xorl $2048,%edx + subl %edx,%esp + andl $-64,%esp + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl 16(%esi),%esi + movl (%esi),%esi + movl %eax,4(%esp) + movl %ebx,8(%esp) + movl %ecx,12(%esp) + movl %edx,16(%esp) + movl %esi,20(%esp) + leal -3(%edi),%ebx + movl %ebp,24(%esp) + movl 8(%esp),%esi + leal 1(%ebx),%ebp + movl 12(%esp),%edi + xorl %ecx,%ecx + movl %esi,%edx + andl $1,%ebp + subl %edi,%edx + leal 4(%edi,%ebx,4),%eax + orl %edx,%ebp + movl (%edi),%edi + jz .L001bn_sqr_mont + movl %eax,28(%esp) + movl (%esi),%eax + xorl %edx,%edx +.align 16 +.L002mull: + movl %edx,%ebp + mull %edi + addl %eax,%ebp + leal 1(%ecx),%ecx + adcl $0,%edx + movl (%esi,%ecx,4),%eax + cmpl %ebx,%ecx + movl %ebp,28(%esp,%ecx,4) + jl .L002mull + movl %edx,%ebp + mull %edi + movl 20(%esp),%edi + addl %ebp,%eax + movl 16(%esp),%esi + adcl $0,%edx + imull 32(%esp),%edi + movl %eax,32(%esp,%ebx,4) + xorl %ecx,%ecx + movl %edx,36(%esp,%ebx,4) + movl %ecx,40(%esp,%ebx,4) + movl (%esi),%eax + mull %edi + addl 32(%esp),%eax + movl 4(%esi),%eax + adcl $0,%edx + incl %ecx + jmp .L0032ndmadd +.align 16 +.L0041stmadd: + movl %edx,%ebp + mull %edi + addl 32(%esp,%ecx,4),%ebp + leal 1(%ecx),%ecx + adcl $0,%edx + addl %eax,%ebp + movl (%esi,%ecx,4),%eax + adcl $0,%edx + cmpl %ebx,%ecx + movl %ebp,28(%esp,%ecx,4) + jl .L0041stmadd + movl %edx,%ebp + mull %edi + addl 32(%esp,%ebx,4),%eax + movl 20(%esp),%edi + adcl $0,%edx + movl 16(%esp),%esi + addl %eax,%ebp + adcl $0,%edx + imull 32(%esp),%edi + xorl %ecx,%ecx + addl 36(%esp,%ebx,4),%edx + movl %ebp,32(%esp,%ebx,4) + adcl $0,%ecx + movl (%esi),%eax + movl %edx,36(%esp,%ebx,4) + movl %ecx,40(%esp,%ebx,4) + mull %edi + addl 32(%esp),%eax + movl 4(%esi),%eax + adcl $0,%edx + movl $1,%ecx +.align 16 +.L0032ndmadd: + movl %edx,%ebp + mull %edi + addl 32(%esp,%ecx,4),%ebp + leal 1(%ecx),%ecx + adcl $0,%edx + addl %eax,%ebp + movl (%esi,%ecx,4),%eax + adcl $0,%edx + cmpl %ebx,%ecx + movl %ebp,24(%esp,%ecx,4) + jl .L0032ndmadd + movl %edx,%ebp + mull %edi + addl 32(%esp,%ebx,4),%ebp + adcl $0,%edx + addl %eax,%ebp + adcl $0,%edx + movl %ebp,28(%esp,%ebx,4) + xorl %eax,%eax + movl 12(%esp),%ecx + addl 36(%esp,%ebx,4),%edx + adcl 40(%esp,%ebx,4),%eax + leal 4(%ecx),%ecx + movl %edx,32(%esp,%ebx,4) + cmpl 28(%esp),%ecx + movl %eax,36(%esp,%ebx,4) + je .L005common_tail + movl (%ecx),%edi + movl 8(%esp),%esi + movl %ecx,12(%esp) + xorl %ecx,%ecx + xorl %edx,%edx + movl (%esi),%eax + jmp .L0041stmadd +.align 16 +.L001bn_sqr_mont: + movl %ebx,(%esp) + movl %ecx,12(%esp) + movl %edi,%eax + mull %edi + movl %eax,32(%esp) + movl %edx,%ebx + shrl $1,%edx + andl $1,%ebx + incl %ecx +.align 16 +.L006sqr: + movl (%esi,%ecx,4),%eax + movl %edx,%ebp + mull %edi + addl %ebp,%eax + leal 1(%ecx),%ecx + adcl $0,%edx + leal (%ebx,%eax,2),%ebp + shrl $31,%eax + cmpl (%esp),%ecx + movl %eax,%ebx + movl %ebp,28(%esp,%ecx,4) + jl .L006sqr + movl (%esi,%ecx,4),%eax + movl %edx,%ebp + mull %edi + addl %ebp,%eax + movl 20(%esp),%edi + adcl $0,%edx + movl 16(%esp),%esi + leal (%ebx,%eax,2),%ebp + imull 32(%esp),%edi + shrl $31,%eax + movl %ebp,32(%esp,%ecx,4) + leal (%eax,%edx,2),%ebp + movl (%esi),%eax + shrl $31,%edx + movl %ebp,36(%esp,%ecx,4) + movl %edx,40(%esp,%ecx,4) + mull %edi + addl 32(%esp),%eax + movl %ecx,%ebx + adcl $0,%edx + movl 4(%esi),%eax + movl $1,%ecx +.align 16 +.L0073rdmadd: + movl %edx,%ebp + mull %edi + addl 32(%esp,%ecx,4),%ebp + adcl $0,%edx + addl %eax,%ebp + movl 4(%esi,%ecx,4),%eax + adcl $0,%edx + movl %ebp,28(%esp,%ecx,4) + movl %edx,%ebp + mull %edi + addl 36(%esp,%ecx,4),%ebp + leal 2(%ecx),%ecx + adcl $0,%edx + addl %eax,%ebp + movl (%esi,%ecx,4),%eax + adcl $0,%edx + cmpl %ebx,%ecx + movl %ebp,24(%esp,%ecx,4) + jl .L0073rdmadd + movl %edx,%ebp + mull %edi + addl 32(%esp,%ebx,4),%ebp + adcl $0,%edx + addl %eax,%ebp + adcl $0,%edx + movl %ebp,28(%esp,%ebx,4) + movl 12(%esp),%ecx + xorl %eax,%eax + movl 8(%esp),%esi + addl 36(%esp,%ebx,4),%edx + adcl 40(%esp,%ebx,4),%eax + movl %edx,32(%esp,%ebx,4) + cmpl %ebx,%ecx + movl %eax,36(%esp,%ebx,4) + je .L005common_tail + movl 4(%esi,%ecx,4),%edi + leal 1(%ecx),%ecx + movl %edi,%eax + movl %ecx,12(%esp) + mull %edi + addl 32(%esp,%ecx,4),%eax + adcl $0,%edx + movl %eax,32(%esp,%ecx,4) + xorl %ebp,%ebp + cmpl %ebx,%ecx + leal 1(%ecx),%ecx + je .L008sqrlast + movl %edx,%ebx + shrl $1,%edx + andl $1,%ebx +.align 16 +.L009sqradd: + movl (%esi,%ecx,4),%eax + movl %edx,%ebp + mull %edi + addl %ebp,%eax + leal (%eax,%eax,1),%ebp + adcl $0,%edx + shrl $31,%eax + addl 32(%esp,%ecx,4),%ebp + leal 1(%ecx),%ecx + adcl $0,%eax + addl %ebx,%ebp + adcl $0,%eax + cmpl (%esp),%ecx + movl %ebp,28(%esp,%ecx,4) + movl %eax,%ebx + jle .L009sqradd + movl %edx,%ebp + addl %edx,%edx + shrl $31,%ebp + addl %ebx,%edx + adcl $0,%ebp +.L008sqrlast: + movl 20(%esp),%edi + movl 16(%esp),%esi + imull 32(%esp),%edi + addl 32(%esp,%ecx,4),%edx + movl (%esi),%eax + adcl $0,%ebp + movl %edx,32(%esp,%ecx,4) + movl %ebp,36(%esp,%ecx,4) + mull %edi + addl 32(%esp),%eax + leal -1(%ecx),%ebx + adcl $0,%edx + movl $1,%ecx + movl 4(%esi),%eax + jmp .L0073rdmadd +.align 16 +.L005common_tail: + movl 16(%esp),%ebp + movl 4(%esp),%edi + leal 32(%esp),%esi + movl (%esi),%eax + movl %ebx,%ecx + xorl %edx,%edx +.align 16 +.L010sub: + sbbl (%ebp,%edx,4),%eax + movl %eax,(%edi,%edx,4) + decl %ecx + movl 4(%esi,%edx,4),%eax + leal 1(%edx),%edx + jge .L010sub + sbbl $0,%eax + andl %eax,%esi + notl %eax + movl %edi,%ebp + andl %eax,%ebp + orl %ebp,%esi +.align 16 +.L011copy: + movl (%esi,%ebx,4),%eax + movl %eax,(%edi,%ebx,4) + movl %ecx,32(%esp,%ebx,4) + decl %ebx + jge .L011copy + movl 24(%esp),%esp + movl $1,%eax +.L000just_leave: + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size bn_mul_mont,.-.L_bn_mul_mont_begin +.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105 +.byte 112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56 +.byte 54,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 +.byte 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 +.byte 111,114,103,62,0 diff --git a/deps/openssl/asm/x86-elf-gas/bn/x86.s b/deps/openssl/asm/x86-elf-gas/bn/x86.s new file mode 100644 index 0000000000..c41c8e917e --- /dev/null +++ b/deps/openssl/asm/x86-elf-gas/bn/x86.s @@ -0,0 +1,2114 @@ +.file "../openssl/crypto/bn/asm/x86.s" +.text +.globl bn_mul_add_words +.type bn_mul_add_words,@function +.align 16 +bn_mul_add_words: +.L_bn_mul_add_words_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + + xorl %esi,%esi + movl 20(%esp),%edi + movl 28(%esp),%ecx + movl 24(%esp),%ebx + andl $4294967288,%ecx + movl 32(%esp),%ebp + pushl %ecx + jz .L000maw_finish +.L001maw_loop: + movl %ecx,(%esp) + + movl (%ebx),%eax + mull %ebp + addl %esi,%eax + movl (%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,(%edi) + movl %edx,%esi + + movl 4(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 4(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,4(%edi) + movl %edx,%esi + + movl 8(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 8(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,8(%edi) + movl %edx,%esi + + movl 12(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 12(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,12(%edi) + movl %edx,%esi + + movl 16(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 16(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,16(%edi) + movl %edx,%esi + + movl 20(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 20(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,20(%edi) + movl %edx,%esi + + movl 24(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 24(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,24(%edi) + movl %edx,%esi + + movl 28(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 28(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,28(%edi) + movl %edx,%esi + + movl (%esp),%ecx + addl $32,%ebx + addl $32,%edi + subl $8,%ecx + jnz .L001maw_loop +.L000maw_finish: + movl 32(%esp),%ecx + andl $7,%ecx + jnz .L002maw_finish2 + jmp .L003maw_end +.L002maw_finish2: + + movl (%ebx),%eax + mull %ebp + addl %esi,%eax + movl (%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + decl %ecx + movl %eax,(%edi) + movl %edx,%esi + jz .L003maw_end + + movl 4(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 4(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + decl %ecx + movl %eax,4(%edi) + movl %edx,%esi + jz .L003maw_end + + movl 8(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 8(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + decl %ecx + movl %eax,8(%edi) + movl %edx,%esi + jz .L003maw_end + + movl 12(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 12(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + decl %ecx + movl %eax,12(%edi) + movl %edx,%esi + jz .L003maw_end + + movl 16(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 16(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + decl %ecx + movl %eax,16(%edi) + movl %edx,%esi + jz .L003maw_end + + movl 20(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 20(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + decl %ecx + movl %eax,20(%edi) + movl %edx,%esi + jz .L003maw_end + + movl 24(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 24(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,24(%edi) + movl %edx,%esi +.L003maw_end: + movl %esi,%eax + popl %ecx + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size bn_mul_add_words,.-.L_bn_mul_add_words_begin +.globl bn_mul_words +.type bn_mul_words,@function +.align 16 +bn_mul_words: +.L_bn_mul_words_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + + xorl %esi,%esi + movl 20(%esp),%edi + movl 24(%esp),%ebx + movl 28(%esp),%ebp + movl 32(%esp),%ecx + andl $4294967288,%ebp + jz .L004mw_finish +.L005mw_loop: + + movl (%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,(%edi) + movl %edx,%esi + + movl 4(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,4(%edi) + movl %edx,%esi + + movl 8(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,8(%edi) + movl %edx,%esi + + movl 12(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,12(%edi) + movl %edx,%esi + + movl 16(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,16(%edi) + movl %edx,%esi + + movl 20(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,20(%edi) + movl %edx,%esi + + movl 24(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,24(%edi) + movl %edx,%esi + + movl 28(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,28(%edi) + movl %edx,%esi + + addl $32,%ebx + addl $32,%edi + subl $8,%ebp + jz .L004mw_finish + jmp .L005mw_loop +.L004mw_finish: + movl 28(%esp),%ebp + andl $7,%ebp + jnz .L006mw_finish2 + jmp .L007mw_end +.L006mw_finish2: + + movl (%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,(%edi) + movl %edx,%esi + decl %ebp + jz .L007mw_end + + movl 4(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,4(%edi) + movl %edx,%esi + decl %ebp + jz .L007mw_end + + movl 8(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,8(%edi) + movl %edx,%esi + decl %ebp + jz .L007mw_end + + movl 12(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,12(%edi) + movl %edx,%esi + decl %ebp + jz .L007mw_end + + movl 16(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,16(%edi) + movl %edx,%esi + decl %ebp + jz .L007mw_end + + movl 20(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,20(%edi) + movl %edx,%esi + decl %ebp + jz .L007mw_end + + movl 24(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,24(%edi) + movl %edx,%esi +.L007mw_end: + movl %esi,%eax + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size bn_mul_words,.-.L_bn_mul_words_begin +.globl bn_sqr_words +.type bn_sqr_words,@function +.align 16 +bn_sqr_words: +.L_bn_sqr_words_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + + movl 20(%esp),%esi + movl 24(%esp),%edi + movl 28(%esp),%ebx + andl $4294967288,%ebx + jz .L008sw_finish +.L009sw_loop: + + movl (%edi),%eax + mull %eax + movl %eax,(%esi) + movl %edx,4(%esi) + + movl 4(%edi),%eax + mull %eax + movl %eax,8(%esi) + movl %edx,12(%esi) + + movl 8(%edi),%eax + mull %eax + movl %eax,16(%esi) + movl %edx,20(%esi) + + movl 12(%edi),%eax + mull %eax + movl %eax,24(%esi) + movl %edx,28(%esi) + + movl 16(%edi),%eax + mull %eax + movl %eax,32(%esi) + movl %edx,36(%esi) + + movl 20(%edi),%eax + mull %eax + movl %eax,40(%esi) + movl %edx,44(%esi) + + movl 24(%edi),%eax + mull %eax + movl %eax,48(%esi) + movl %edx,52(%esi) + + movl 28(%edi),%eax + mull %eax + movl %eax,56(%esi) + movl %edx,60(%esi) + + addl $32,%edi + addl $64,%esi + subl $8,%ebx + jnz .L009sw_loop +.L008sw_finish: + movl 28(%esp),%ebx + andl $7,%ebx + jz .L010sw_end + + movl (%edi),%eax + mull %eax + movl %eax,(%esi) + decl %ebx + movl %edx,4(%esi) + jz .L010sw_end + + movl 4(%edi),%eax + mull %eax + movl %eax,8(%esi) + decl %ebx + movl %edx,12(%esi) + jz .L010sw_end + + movl 8(%edi),%eax + mull %eax + movl %eax,16(%esi) + decl %ebx + movl %edx,20(%esi) + jz .L010sw_end + + movl 12(%edi),%eax + mull %eax + movl %eax,24(%esi) + decl %ebx + movl %edx,28(%esi) + jz .L010sw_end + + movl 16(%edi),%eax + mull %eax + movl %eax,32(%esi) + decl %ebx + movl %edx,36(%esi) + jz .L010sw_end + + movl 20(%edi),%eax + mull %eax + movl %eax,40(%esi) + decl %ebx + movl %edx,44(%esi) + jz .L010sw_end + + movl 24(%edi),%eax + mull %eax + movl %eax,48(%esi) + movl %edx,52(%esi) +.L010sw_end: + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size bn_sqr_words,.-.L_bn_sqr_words_begin +.globl bn_div_words +.type bn_div_words,@function +.align 16 +bn_div_words: +.L_bn_div_words_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%edx + movl 24(%esp),%eax + movl 28(%esp),%ebx + divl %ebx + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size bn_div_words,.-.L_bn_div_words_begin +.globl bn_add_words +.type bn_add_words,@function +.align 16 +bn_add_words: +.L_bn_add_words_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + + movl 20(%esp),%ebx + movl 24(%esp),%esi + movl 28(%esp),%edi + movl 32(%esp),%ebp + xorl %eax,%eax + andl $4294967288,%ebp + jz .L011aw_finish +.L012aw_loop: + + movl (%esi),%ecx + movl (%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,(%ebx) + + movl 4(%esi),%ecx + movl 4(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,4(%ebx) + + movl 8(%esi),%ecx + movl 8(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,8(%ebx) + + movl 12(%esi),%ecx + movl 12(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,12(%ebx) + + movl 16(%esi),%ecx + movl 16(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,16(%ebx) + + movl 20(%esi),%ecx + movl 20(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,20(%ebx) + + movl 24(%esi),%ecx + movl 24(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,24(%ebx) + + movl 28(%esi),%ecx + movl 28(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,28(%ebx) + + addl $32,%esi + addl $32,%edi + addl $32,%ebx + subl $8,%ebp + jnz .L012aw_loop +.L011aw_finish: + movl 32(%esp),%ebp + andl $7,%ebp + jz .L013aw_end + + movl (%esi),%ecx + movl (%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,(%ebx) + jz .L013aw_end + + movl 4(%esi),%ecx + movl 4(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,4(%ebx) + jz .L013aw_end + + movl 8(%esi),%ecx + movl 8(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,8(%ebx) + jz .L013aw_end + + movl 12(%esi),%ecx + movl 12(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,12(%ebx) + jz .L013aw_end + + movl 16(%esi),%ecx + movl 16(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,16(%ebx) + jz .L013aw_end + + movl 20(%esi),%ecx + movl 20(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,20(%ebx) + jz .L013aw_end + + movl 24(%esi),%ecx + movl 24(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,24(%ebx) +.L013aw_end: + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size bn_add_words,.-.L_bn_add_words_begin +.globl bn_sub_words +.type bn_sub_words,@function +.align 16 +bn_sub_words: +.L_bn_sub_words_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + + movl 20(%esp),%ebx + movl 24(%esp),%esi + movl 28(%esp),%edi + movl 32(%esp),%ebp + xorl %eax,%eax + andl $4294967288,%ebp + jz .L014aw_finish +.L015aw_loop: + + movl (%esi),%ecx + movl (%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,(%ebx) + + movl 4(%esi),%ecx + movl 4(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,4(%ebx) + + movl 8(%esi),%ecx + movl 8(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,8(%ebx) + + movl 12(%esi),%ecx + movl 12(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,12(%ebx) + + movl 16(%esi),%ecx + movl 16(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,16(%ebx) + + movl 20(%esi),%ecx + movl 20(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,20(%ebx) + + movl 24(%esi),%ecx + movl 24(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,24(%ebx) + + movl 28(%esi),%ecx + movl 28(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,28(%ebx) + + addl $32,%esi + addl $32,%edi + addl $32,%ebx + subl $8,%ebp + jnz .L015aw_loop +.L014aw_finish: + movl 32(%esp),%ebp + andl $7,%ebp + jz .L016aw_end + + movl (%esi),%ecx + movl (%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,(%ebx) + jz .L016aw_end + + movl 4(%esi),%ecx + movl 4(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,4(%ebx) + jz .L016aw_end + + movl 8(%esi),%ecx + movl 8(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,8(%ebx) + jz .L016aw_end + + movl 12(%esi),%ecx + movl 12(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,12(%ebx) + jz .L016aw_end + + movl 16(%esi),%ecx + movl 16(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,16(%ebx) + jz .L016aw_end + + movl 20(%esi),%ecx + movl 20(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,20(%ebx) + jz .L016aw_end + + movl 24(%esi),%ecx + movl 24(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,24(%ebx) +.L016aw_end: + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size bn_sub_words,.-.L_bn_sub_words_begin +.globl bn_mul_comba8 +.type bn_mul_comba8,@function +.align 16 +bn_mul_comba8: +.L_bn_mul_comba8_begin: + pushl %esi + movl 12(%esp),%esi + pushl %edi + movl 20(%esp),%edi + pushl %ebp + pushl %ebx + xorl %ebx,%ebx + movl (%esi),%eax + xorl %ecx,%ecx + movl (%edi),%edx + + xorl %ebp,%ebp + + mull %edx + addl %eax,%ebx + movl 20(%esp),%eax + adcl %edx,%ecx + movl (%edi),%edx + adcl $0,%ebp + movl %ebx,(%eax) + movl 4(%esi),%eax + + + xorl %ebx,%ebx + + mull %edx + addl %eax,%ecx + movl (%esi),%eax + adcl %edx,%ebp + movl 4(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 20(%esp),%eax + adcl %edx,%ebp + movl (%edi),%edx + adcl $0,%ebx + movl %ecx,4(%eax) + movl 8(%esi),%eax + + + xorl %ecx,%ecx + + mull %edx + addl %eax,%ebp + movl 4(%esi),%eax + adcl %edx,%ebx + movl 4(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl (%esi),%eax + adcl %edx,%ebx + movl 8(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl 20(%esp),%eax + adcl %edx,%ebx + movl (%edi),%edx + adcl $0,%ecx + movl %ebp,8(%eax) + movl 12(%esi),%eax + + + xorl %ebp,%ebp + + mull %edx + addl %eax,%ebx + movl 8(%esi),%eax + adcl %edx,%ecx + movl 4(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl 4(%esi),%eax + adcl %edx,%ecx + movl 8(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl (%esi),%eax + adcl %edx,%ecx + movl 12(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl 20(%esp),%eax + adcl %edx,%ecx + movl (%edi),%edx + adcl $0,%ebp + movl %ebx,12(%eax) + movl 16(%esi),%eax + + + xorl %ebx,%ebx + + mull %edx + addl %eax,%ecx + movl 12(%esi),%eax + adcl %edx,%ebp + movl 4(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 8(%esi),%eax + adcl %edx,%ebp + movl 8(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 4(%esi),%eax + adcl %edx,%ebp + movl 12(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl (%esi),%eax + adcl %edx,%ebp + movl 16(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 20(%esp),%eax + adcl %edx,%ebp + movl (%edi),%edx + adcl $0,%ebx + movl %ecx,16(%eax) + movl 20(%esi),%eax + + + xorl %ecx,%ecx + + mull %edx + addl %eax,%ebp + movl 16(%esi),%eax + adcl %edx,%ebx + movl 4(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl 12(%esi),%eax + adcl %edx,%ebx + movl 8(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl 8(%esi),%eax + adcl %edx,%ebx + movl 12(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl 4(%esi),%eax + adcl %edx,%ebx + movl 16(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl (%esi),%eax + adcl %edx,%ebx + movl 20(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl 20(%esp),%eax + adcl %edx,%ebx + movl (%edi),%edx + adcl $0,%ecx + movl %ebp,20(%eax) + movl 24(%esi),%eax + + + xorl %ebp,%ebp + + mull %edx + addl %eax,%ebx + movl 20(%esi),%eax + adcl %edx,%ecx + movl 4(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl 16(%esi),%eax + adcl %edx,%ecx + movl 8(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl 12(%esi),%eax + adcl %edx,%ecx + movl 12(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl 8(%esi),%eax + adcl %edx,%ecx + movl 16(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl 4(%esi),%eax + adcl %edx,%ecx + movl 20(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl (%esi),%eax + adcl %edx,%ecx + movl 24(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl 20(%esp),%eax + adcl %edx,%ecx + movl (%edi),%edx + adcl $0,%ebp + movl %ebx,24(%eax) + movl 28(%esi),%eax + + + xorl %ebx,%ebx + + mull %edx + addl %eax,%ecx + movl 24(%esi),%eax + adcl %edx,%ebp + movl 4(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 20(%esi),%eax + adcl %edx,%ebp + movl 8(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 16(%esi),%eax + adcl %edx,%ebp + movl 12(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 12(%esi),%eax + adcl %edx,%ebp + movl 16(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 8(%esi),%eax + adcl %edx,%ebp + movl 20(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 4(%esi),%eax + adcl %edx,%ebp + movl 24(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl (%esi),%eax + adcl %edx,%ebp + movl 28(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 20(%esp),%eax + adcl %edx,%ebp + movl 4(%edi),%edx + adcl $0,%ebx + movl %ecx,28(%eax) + movl 28(%esi),%eax + + + xorl %ecx,%ecx + + mull %edx + addl %eax,%ebp + movl 24(%esi),%eax + adcl %edx,%ebx + movl 8(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl 20(%esi),%eax + adcl %edx,%ebx + movl 12(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl 16(%esi),%eax + adcl %edx,%ebx + movl 16(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl 12(%esi),%eax + adcl %edx,%ebx + movl 20(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl 8(%esi),%eax + adcl %edx,%ebx + movl 24(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl 4(%esi),%eax + adcl %edx,%ebx + movl 28(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl 20(%esp),%eax + adcl %edx,%ebx + movl 8(%edi),%edx + adcl $0,%ecx + movl %ebp,32(%eax) + movl 28(%esi),%eax + + + xorl %ebp,%ebp + + mull %edx + addl %eax,%ebx + movl 24(%esi),%eax + adcl %edx,%ecx + movl 12(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl 20(%esi),%eax + adcl %edx,%ecx + movl 16(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl 16(%esi),%eax + adcl %edx,%ecx + movl 20(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl 12(%esi),%eax + adcl %edx,%ecx + movl 24(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl 8(%esi),%eax + adcl %edx,%ecx + movl 28(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl 20(%esp),%eax + adcl %edx,%ecx + movl 12(%edi),%edx + adcl $0,%ebp + movl %ebx,36(%eax) + movl 28(%esi),%eax + + + xorl %ebx,%ebx + + mull %edx + addl %eax,%ecx + movl 24(%esi),%eax + adcl %edx,%ebp + movl 16(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 20(%esi),%eax + adcl %edx,%ebp + movl 20(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 16(%esi),%eax + adcl %edx,%ebp + movl 24(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 12(%esi),%eax + adcl %edx,%ebp + movl 28(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 20(%esp),%eax + adcl %edx,%ebp + movl 16(%edi),%edx + adcl $0,%ebx + movl %ecx,40(%eax) + movl 28(%esi),%eax + + + xorl %ecx,%ecx + + mull %edx + addl %eax,%ebp + movl 24(%esi),%eax + adcl %edx,%ebx + movl 20(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl 20(%esi),%eax + adcl %edx,%ebx + movl 24(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl 16(%esi),%eax + adcl %edx,%ebx + movl 28(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl 20(%esp),%eax + adcl %edx,%ebx + movl 20(%edi),%edx + adcl $0,%ecx + movl %ebp,44(%eax) + movl 28(%esi),%eax + + + xorl %ebp,%ebp + + mull %edx + addl %eax,%ebx + movl 24(%esi),%eax + adcl %edx,%ecx + movl 24(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl 20(%esi),%eax + adcl %edx,%ecx + movl 28(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl 20(%esp),%eax + adcl %edx,%ecx + movl 24(%edi),%edx + adcl $0,%ebp + movl %ebx,48(%eax) + movl 28(%esi),%eax + + + xorl %ebx,%ebx + + mull %edx + addl %eax,%ecx + movl 24(%esi),%eax + adcl %edx,%ebp + movl 28(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 20(%esp),%eax + adcl %edx,%ebp + movl 28(%edi),%edx + adcl $0,%ebx + movl %ecx,52(%eax) + movl 28(%esi),%eax + + + xorl %ecx,%ecx + + mull %edx + addl %eax,%ebp + movl 20(%esp),%eax + adcl %edx,%ebx + adcl $0,%ecx + movl %ebp,56(%eax) + + + movl %ebx,60(%eax) + popl %ebx + popl %ebp + popl %edi + popl %esi + ret +.size bn_mul_comba8,.-.L_bn_mul_comba8_begin +.globl bn_mul_comba4 +.type bn_mul_comba4,@function +.align 16 +bn_mul_comba4: +.L_bn_mul_comba4_begin: + pushl %esi + movl 12(%esp),%esi + pushl %edi + movl 20(%esp),%edi + pushl %ebp + pushl %ebx + xorl %ebx,%ebx + movl (%esi),%eax + xorl %ecx,%ecx + movl (%edi),%edx + + xorl %ebp,%ebp + + mull %edx + addl %eax,%ebx + movl 20(%esp),%eax + adcl %edx,%ecx + movl (%edi),%edx + adcl $0,%ebp + movl %ebx,(%eax) + movl 4(%esi),%eax + + + xorl %ebx,%ebx + + mull %edx + addl %eax,%ecx + movl (%esi),%eax + adcl %edx,%ebp + movl 4(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 20(%esp),%eax + adcl %edx,%ebp + movl (%edi),%edx + adcl $0,%ebx + movl %ecx,4(%eax) + movl 8(%esi),%eax + + + xorl %ecx,%ecx + + mull %edx + addl %eax,%ebp + movl 4(%esi),%eax + adcl %edx,%ebx + movl 4(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl (%esi),%eax + adcl %edx,%ebx + movl 8(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl 20(%esp),%eax + adcl %edx,%ebx + movl (%edi),%edx + adcl $0,%ecx + movl %ebp,8(%eax) + movl 12(%esi),%eax + + + xorl %ebp,%ebp + + mull %edx + addl %eax,%ebx + movl 8(%esi),%eax + adcl %edx,%ecx + movl 4(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl 4(%esi),%eax + adcl %edx,%ecx + movl 8(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl (%esi),%eax + adcl %edx,%ecx + movl 12(%edi),%edx + adcl $0,%ebp + + mull %edx + addl %eax,%ebx + movl 20(%esp),%eax + adcl %edx,%ecx + movl 4(%edi),%edx + adcl $0,%ebp + movl %ebx,12(%eax) + movl 12(%esi),%eax + + + xorl %ebx,%ebx + + mull %edx + addl %eax,%ecx + movl 8(%esi),%eax + adcl %edx,%ebp + movl 8(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 4(%esi),%eax + adcl %edx,%ebp + movl 12(%edi),%edx + adcl $0,%ebx + + mull %edx + addl %eax,%ecx + movl 20(%esp),%eax + adcl %edx,%ebp + movl 8(%edi),%edx + adcl $0,%ebx + movl %ecx,16(%eax) + movl 12(%esi),%eax + + + xorl %ecx,%ecx + + mull %edx + addl %eax,%ebp + movl 8(%esi),%eax + adcl %edx,%ebx + movl 12(%edi),%edx + adcl $0,%ecx + + mull %edx + addl %eax,%ebp + movl 20(%esp),%eax + adcl %edx,%ebx + movl 12(%edi),%edx + adcl $0,%ecx + movl %ebp,20(%eax) + movl 12(%esi),%eax + + + xorl %ebp,%ebp + + mull %edx + addl %eax,%ebx + movl 20(%esp),%eax + adcl %edx,%ecx + adcl $0,%ebp + movl %ebx,24(%eax) + + + movl %ecx,28(%eax) + popl %ebx + popl %ebp + popl %edi + popl %esi + ret +.size bn_mul_comba4,.-.L_bn_mul_comba4_begin +.globl bn_sqr_comba8 +.type bn_sqr_comba8,@function +.align 16 +bn_sqr_comba8: +.L_bn_sqr_comba8_begin: + pushl %esi + pushl %edi + pushl %ebp + pushl %ebx + movl 20(%esp),%edi + movl 24(%esp),%esi + xorl %ebx,%ebx + xorl %ecx,%ecx + movl (%esi),%eax + + xorl %ebp,%ebp + + mull %eax + addl %eax,%ebx + adcl %edx,%ecx + movl (%esi),%edx + adcl $0,%ebp + movl %ebx,(%edi) + movl 4(%esi),%eax + + + xorl %ebx,%ebx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 8(%esi),%eax + adcl $0,%ebx + movl %ecx,4(%edi) + movl (%esi),%edx + + + xorl %ecx,%ecx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 4(%esi),%eax + adcl $0,%ecx + + mull %eax + addl %eax,%ebp + adcl %edx,%ebx + movl (%esi),%edx + adcl $0,%ecx + movl %ebp,8(%edi) + movl 12(%esi),%eax + + + xorl %ebp,%ebp + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 8(%esi),%eax + adcl $0,%ebp + movl 4(%esi),%edx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 16(%esi),%eax + adcl $0,%ebp + movl %ebx,12(%edi) + movl (%esi),%edx + + + xorl %ebx,%ebx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 12(%esi),%eax + adcl $0,%ebx + movl 4(%esi),%edx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 8(%esi),%eax + adcl $0,%ebx + + mull %eax + addl %eax,%ecx + adcl %edx,%ebp + movl (%esi),%edx + adcl $0,%ebx + movl %ecx,16(%edi) + movl 20(%esi),%eax + + + xorl %ecx,%ecx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 16(%esi),%eax + adcl $0,%ecx + movl 4(%esi),%edx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 12(%esi),%eax + adcl $0,%ecx + movl 8(%esi),%edx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 24(%esi),%eax + adcl $0,%ecx + movl %ebp,20(%edi) + movl (%esi),%edx + + + xorl %ebp,%ebp + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 20(%esi),%eax + adcl $0,%ebp + movl 4(%esi),%edx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 16(%esi),%eax + adcl $0,%ebp + movl 8(%esi),%edx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 12(%esi),%eax + adcl $0,%ebp + + mull %eax + addl %eax,%ebx + adcl %edx,%ecx + movl (%esi),%edx + adcl $0,%ebp + movl %ebx,24(%edi) + movl 28(%esi),%eax + + + xorl %ebx,%ebx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 24(%esi),%eax + adcl $0,%ebx + movl 4(%esi),%edx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 20(%esi),%eax + adcl $0,%ebx + movl 8(%esi),%edx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 16(%esi),%eax + adcl $0,%ebx + movl 12(%esi),%edx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 28(%esi),%eax + adcl $0,%ebx + movl %ecx,28(%edi) + movl 4(%esi),%edx + + + xorl %ecx,%ecx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 24(%esi),%eax + adcl $0,%ecx + movl 8(%esi),%edx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 20(%esi),%eax + adcl $0,%ecx + movl 12(%esi),%edx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 16(%esi),%eax + adcl $0,%ecx + + mull %eax + addl %eax,%ebp + adcl %edx,%ebx + movl 8(%esi),%edx + adcl $0,%ecx + movl %ebp,32(%edi) + movl 28(%esi),%eax + + + xorl %ebp,%ebp + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 24(%esi),%eax + adcl $0,%ebp + movl 12(%esi),%edx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 20(%esi),%eax + adcl $0,%ebp + movl 16(%esi),%edx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 28(%esi),%eax + adcl $0,%ebp + movl %ebx,36(%edi) + movl 12(%esi),%edx + + + xorl %ebx,%ebx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 24(%esi),%eax + adcl $0,%ebx + movl 16(%esi),%edx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 20(%esi),%eax + adcl $0,%ebx + + mull %eax + addl %eax,%ecx + adcl %edx,%ebp + movl 16(%esi),%edx + adcl $0,%ebx + movl %ecx,40(%edi) + movl 28(%esi),%eax + + + xorl %ecx,%ecx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 24(%esi),%eax + adcl $0,%ecx + movl 20(%esi),%edx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 28(%esi),%eax + adcl $0,%ecx + movl %ebp,44(%edi) + movl 20(%esi),%edx + + + xorl %ebp,%ebp + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 24(%esi),%eax + adcl $0,%ebp + + mull %eax + addl %eax,%ebx + adcl %edx,%ecx + movl 24(%esi),%edx + adcl $0,%ebp + movl %ebx,48(%edi) + movl 28(%esi),%eax + + + xorl %ebx,%ebx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 28(%esi),%eax + adcl $0,%ebx + movl %ecx,52(%edi) + + + xorl %ecx,%ecx + + mull %eax + addl %eax,%ebp + adcl %edx,%ebx + adcl $0,%ecx + movl %ebp,56(%edi) + + movl %ebx,60(%edi) + popl %ebx + popl %ebp + popl %edi + popl %esi + ret +.size bn_sqr_comba8,.-.L_bn_sqr_comba8_begin +.globl bn_sqr_comba4 +.type bn_sqr_comba4,@function +.align 16 +bn_sqr_comba4: +.L_bn_sqr_comba4_begin: + pushl %esi + pushl %edi + pushl %ebp + pushl %ebx + movl 20(%esp),%edi + movl 24(%esp),%esi + xorl %ebx,%ebx + xorl %ecx,%ecx + movl (%esi),%eax + + xorl %ebp,%ebp + + mull %eax + addl %eax,%ebx + adcl %edx,%ecx + movl (%esi),%edx + adcl $0,%ebp + movl %ebx,(%edi) + movl 4(%esi),%eax + + + xorl %ebx,%ebx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 8(%esi),%eax + adcl $0,%ebx + movl %ecx,4(%edi) + movl (%esi),%edx + + + xorl %ecx,%ecx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 4(%esi),%eax + adcl $0,%ecx + + mull %eax + addl %eax,%ebp + adcl %edx,%ebx + movl (%esi),%edx + adcl $0,%ecx + movl %ebp,8(%edi) + movl 12(%esi),%eax + + + xorl %ebp,%ebp + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 8(%esi),%eax + adcl $0,%ebp + movl 4(%esi),%edx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 12(%esi),%eax + adcl $0,%ebp + movl %ebx,12(%edi) + movl 4(%esi),%edx + + + xorl %ebx,%ebx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 8(%esi),%eax + adcl $0,%ebx + + mull %eax + addl %eax,%ecx + adcl %edx,%ebp + movl 8(%esi),%edx + adcl $0,%ebx + movl %ecx,16(%edi) + movl 12(%esi),%eax + + + xorl %ecx,%ecx + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 12(%esi),%eax + adcl $0,%ecx + movl %ebp,20(%edi) + + + xorl %ebp,%ebp + + mull %eax + addl %eax,%ebx + adcl %edx,%ecx + adcl $0,%ebp + movl %ebx,24(%edi) + + movl %ecx,28(%edi) + popl %ebx + popl %ebp + popl %edi + popl %esi + ret +.size bn_sqr_comba4,.-.L_bn_sqr_comba4_begin diff --git a/deps/openssl/asm/x86-elf-gas/camellia/cmll-x86.s b/deps/openssl/asm/x86-elf-gas/camellia/cmll-x86.s new file mode 100644 index 0000000000..a896314cfe --- /dev/null +++ b/deps/openssl/asm/x86-elf-gas/camellia/cmll-x86.s @@ -0,0 +1,2375 @@ +.file "cmll-586.s" +.text +.globl Camellia_EncryptBlock_Rounds +.type Camellia_EncryptBlock_Rounds,@function +.align 16 +Camellia_EncryptBlock_Rounds: +.L_Camellia_EncryptBlock_Rounds_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%eax + movl 24(%esp),%esi + movl 28(%esp),%edi + movl %esp,%ebx + subl $28,%esp + andl $-64,%esp + leal -127(%edi),%ecx + subl %esp,%ecx + negl %ecx + andl $960,%ecx + subl %ecx,%esp + addl $4,%esp + shll $6,%eax + leal (%edi,%eax,1),%eax + movl %ebx,20(%esp) + movl %eax,16(%esp) + call .L000pic_point +.L000pic_point: + popl %ebp + leal .LCamellia_SBOX-.L000pic_point(%ebp),%ebp + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + bswap %eax + movl 12(%esi),%edx + bswap %ebx + bswap %ecx + bswap %edx + call _x86_Camellia_encrypt + movl 20(%esp),%esp + bswap %eax + movl 32(%esp),%esi + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size Camellia_EncryptBlock_Rounds,.-.L_Camellia_EncryptBlock_Rounds_begin +.globl Camellia_EncryptBlock +.type Camellia_EncryptBlock,@function +.align 16 +Camellia_EncryptBlock: +.L_Camellia_EncryptBlock_begin: + movl $128,%eax + subl 4(%esp),%eax + movl $3,%eax + adcl $0,%eax + movl %eax,4(%esp) + jmp .L_Camellia_EncryptBlock_Rounds_begin +.size Camellia_EncryptBlock,.-.L_Camellia_EncryptBlock_begin +.globl Camellia_encrypt +.type Camellia_encrypt,@function +.align 16 +Camellia_encrypt: +.L_Camellia_encrypt_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%esi + movl 28(%esp),%edi + movl %esp,%ebx + subl $28,%esp + andl $-64,%esp + movl 272(%edi),%eax + leal -127(%edi),%ecx + subl %esp,%ecx + negl %ecx + andl $960,%ecx + subl %ecx,%esp + addl $4,%esp + shll $6,%eax + leal (%edi,%eax,1),%eax + movl %ebx,20(%esp) + movl %eax,16(%esp) + call .L001pic_point +.L001pic_point: + popl %ebp + leal .LCamellia_SBOX-.L001pic_point(%ebp),%ebp + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + bswap %eax + movl 12(%esi),%edx + bswap %ebx + bswap %ecx + bswap %edx + call _x86_Camellia_encrypt + movl 20(%esp),%esp + bswap %eax + movl 24(%esp),%esi + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size Camellia_encrypt,.-.L_Camellia_encrypt_begin +.type _x86_Camellia_encrypt,@function +.align 16 +_x86_Camellia_encrypt: + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl 16(%edi),%esi + movl %eax,4(%esp) + movl %ebx,8(%esp) + movl %ecx,12(%esp) + movl %edx,16(%esp) +.align 16 +.L002loop: + xorl %esi,%eax + xorl 20(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 16(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 12(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl 24(%edi),%esi + xorl %ecx,%edx + movl %edx,16(%esp) + xorl %ebx,%ecx + movl %ecx,12(%esp) + xorl %esi,%ecx + xorl 28(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 8(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl 4(%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl 32(%edi),%esi + xorl %eax,%ebx + movl %ebx,8(%esp) + xorl %edx,%eax + movl %eax,4(%esp) + xorl %esi,%eax + xorl 36(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 16(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 12(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl 40(%edi),%esi + xorl %ecx,%edx + movl %edx,16(%esp) + xorl %ebx,%ecx + movl %ecx,12(%esp) + xorl %esi,%ecx + xorl 44(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 8(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl 4(%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl 48(%edi),%esi + xorl %eax,%ebx + movl %ebx,8(%esp) + xorl %edx,%eax + movl %eax,4(%esp) + xorl %esi,%eax + xorl 52(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 16(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 12(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl 56(%edi),%esi + xorl %ecx,%edx + movl %edx,16(%esp) + xorl %ebx,%ecx + movl %ecx,12(%esp) + xorl %esi,%ecx + xorl 60(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 8(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl 4(%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl 64(%edi),%esi + xorl %eax,%ebx + movl %ebx,8(%esp) + xorl %edx,%eax + movl %eax,4(%esp) + addl $64,%edi + cmpl 20(%esp),%edi + je .L003done + andl %eax,%esi + movl 16(%esp),%edx + roll $1,%esi + movl %edx,%ecx + xorl %esi,%ebx + orl 12(%edi),%ecx + movl %ebx,8(%esp) + xorl 12(%esp),%ecx + movl 4(%edi),%esi + movl %ecx,12(%esp) + orl %ebx,%esi + andl 8(%edi),%ecx + xorl %esi,%eax + roll $1,%ecx + movl %eax,4(%esp) + xorl %ecx,%edx + movl 16(%edi),%esi + movl %edx,16(%esp) + jmp .L002loop +.align 8 +.L003done: + movl %eax,%ecx + movl %ebx,%edx + movl 12(%esp),%eax + movl 16(%esp),%ebx + xorl %esi,%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + ret +.size _x86_Camellia_encrypt,.-_x86_Camellia_encrypt +.globl Camellia_DecryptBlock_Rounds +.type Camellia_DecryptBlock_Rounds,@function +.align 16 +Camellia_DecryptBlock_Rounds: +.L_Camellia_DecryptBlock_Rounds_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%eax + movl 24(%esp),%esi + movl 28(%esp),%edi + movl %esp,%ebx + subl $28,%esp + andl $-64,%esp + leal -127(%edi),%ecx + subl %esp,%ecx + negl %ecx + andl $960,%ecx + subl %ecx,%esp + addl $4,%esp + shll $6,%eax + movl %edi,16(%esp) + leal (%edi,%eax,1),%edi + movl %ebx,20(%esp) + call .L004pic_point +.L004pic_point: + popl %ebp + leal .LCamellia_SBOX-.L004pic_point(%ebp),%ebp + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + bswap %eax + movl 12(%esi),%edx + bswap %ebx + bswap %ecx + bswap %edx + call _x86_Camellia_decrypt + movl 20(%esp),%esp + bswap %eax + movl 32(%esp),%esi + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size Camellia_DecryptBlock_Rounds,.-.L_Camellia_DecryptBlock_Rounds_begin +.globl Camellia_DecryptBlock +.type Camellia_DecryptBlock,@function +.align 16 +Camellia_DecryptBlock: +.L_Camellia_DecryptBlock_begin: + movl $128,%eax + subl 4(%esp),%eax + movl $3,%eax + adcl $0,%eax + movl %eax,4(%esp) + jmp .L_Camellia_DecryptBlock_Rounds_begin +.size Camellia_DecryptBlock,.-.L_Camellia_DecryptBlock_begin +.globl Camellia_decrypt +.type Camellia_decrypt,@function +.align 16 +Camellia_decrypt: +.L_Camellia_decrypt_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%esi + movl 28(%esp),%edi + movl %esp,%ebx + subl $28,%esp + andl $-64,%esp + movl 272(%edi),%eax + leal -127(%edi),%ecx + subl %esp,%ecx + negl %ecx + andl $960,%ecx + subl %ecx,%esp + addl $4,%esp + shll $6,%eax + movl %edi,16(%esp) + leal (%edi,%eax,1),%edi + movl %ebx,20(%esp) + call .L005pic_point +.L005pic_point: + popl %ebp + leal .LCamellia_SBOX-.L005pic_point(%ebp),%ebp + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + bswap %eax + movl 12(%esi),%edx + bswap %ebx + bswap %ecx + bswap %edx + call _x86_Camellia_decrypt + movl 20(%esp),%esp + bswap %eax + movl 24(%esp),%esi + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size Camellia_decrypt,.-.L_Camellia_decrypt_begin +.type _x86_Camellia_decrypt,@function +.align 16 +_x86_Camellia_decrypt: + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl -8(%edi),%esi + movl %eax,4(%esp) + movl %ebx,8(%esp) + movl %ecx,12(%esp) + movl %edx,16(%esp) +.align 16 +.L006loop: + xorl %esi,%eax + xorl -4(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 16(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 12(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl -16(%edi),%esi + xorl %ecx,%edx + movl %edx,16(%esp) + xorl %ebx,%ecx + movl %ecx,12(%esp) + xorl %esi,%ecx + xorl -12(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 8(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl 4(%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl -24(%edi),%esi + xorl %eax,%ebx + movl %ebx,8(%esp) + xorl %edx,%eax + movl %eax,4(%esp) + xorl %esi,%eax + xorl -20(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 16(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 12(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl -32(%edi),%esi + xorl %ecx,%edx + movl %edx,16(%esp) + xorl %ebx,%ecx + movl %ecx,12(%esp) + xorl %esi,%ecx + xorl -28(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 8(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl 4(%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl -40(%edi),%esi + xorl %eax,%ebx + movl %ebx,8(%esp) + xorl %edx,%eax + movl %eax,4(%esp) + xorl %esi,%eax + xorl -36(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 16(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 12(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl -48(%edi),%esi + xorl %ecx,%edx + movl %edx,16(%esp) + xorl %ebx,%ecx + movl %ecx,12(%esp) + xorl %esi,%ecx + xorl -44(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 8(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl 4(%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl -56(%edi),%esi + xorl %eax,%ebx + movl %ebx,8(%esp) + xorl %edx,%eax + movl %eax,4(%esp) + subl $64,%edi + cmpl 20(%esp),%edi + je .L007done + andl %eax,%esi + movl 16(%esp),%edx + roll $1,%esi + movl %edx,%ecx + xorl %esi,%ebx + orl 4(%edi),%ecx + movl %ebx,8(%esp) + xorl 12(%esp),%ecx + movl 12(%edi),%esi + movl %ecx,12(%esp) + orl %ebx,%esi + andl (%edi),%ecx + xorl %esi,%eax + roll $1,%ecx + movl %eax,4(%esp) + xorl %ecx,%edx + movl -8(%edi),%esi + movl %edx,16(%esp) + jmp .L006loop +.align 8 +.L007done: + movl %eax,%ecx + movl %ebx,%edx + movl 12(%esp),%eax + movl 16(%esp),%ebx + xorl %esi,%ecx + xorl 12(%edi),%edx + xorl (%edi),%eax + xorl 4(%edi),%ebx + ret +.size _x86_Camellia_decrypt,.-_x86_Camellia_decrypt +.globl Camellia_Ekeygen +.type Camellia_Ekeygen,@function +.align 16 +Camellia_Ekeygen: +.L_Camellia_Ekeygen_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + subl $16,%esp + movl 36(%esp),%ebp + movl 40(%esp),%esi + movl 44(%esp),%edi + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + cmpl $128,%ebp + je .L0081st128 + movl 16(%esi),%eax + movl 20(%esi),%ebx + cmpl $192,%ebp + je .L0091st192 + movl 24(%esi),%ecx + movl 28(%esi),%edx + jmp .L0101st256 +.align 4 +.L0091st192: + movl %eax,%ecx + movl %ebx,%edx + notl %ecx + notl %edx +.align 4 +.L0101st256: + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,32(%edi) + movl %ebx,36(%edi) + movl %ecx,40(%edi) + movl %edx,44(%edi) + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx +.align 4 +.L0081st128: + call .L011pic_point +.L011pic_point: + popl %ebp + leal .LCamellia_SBOX-.L011pic_point(%ebp),%ebp + leal .LCamellia_SIGMA-.LCamellia_SBOX(%ebp),%edi + movl (%edi),%esi + movl %eax,(%esp) + movl %ebx,4(%esp) + movl %ecx,8(%esp) + movl %edx,12(%esp) + xorl %esi,%eax + xorl 4(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 12(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 8(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl 8(%edi),%esi + xorl %ecx,%edx + movl %edx,12(%esp) + xorl %ebx,%ecx + movl %ecx,8(%esp) + xorl %esi,%ecx + xorl 12(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 4(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl (%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl 16(%edi),%esi + xorl %eax,%ebx + movl %ebx,4(%esp) + xorl %edx,%eax + movl %eax,(%esp) + movl 8(%esp),%ecx + movl 12(%esp),%edx + movl 44(%esp),%esi + xorl (%esi),%eax + xorl 4(%esi),%ebx + xorl 8(%esi),%ecx + xorl 12(%esi),%edx + movl 16(%edi),%esi + movl %eax,(%esp) + movl %ebx,4(%esp) + movl %ecx,8(%esp) + movl %edx,12(%esp) + xorl %esi,%eax + xorl 20(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 12(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 8(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl 24(%edi),%esi + xorl %ecx,%edx + movl %edx,12(%esp) + xorl %ebx,%ecx + movl %ecx,8(%esp) + xorl %esi,%ecx + xorl 28(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 4(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl (%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl 32(%edi),%esi + xorl %eax,%ebx + movl %ebx,4(%esp) + xorl %edx,%eax + movl %eax,(%esp) + movl 8(%esp),%ecx + movl 12(%esp),%edx + movl 36(%esp),%esi + cmpl $128,%esi + jne .L0122nd256 + movl 44(%esp),%edi + leal 128(%edi),%edi + movl %eax,-112(%edi) + movl %ebx,-108(%edi) + movl %ecx,-104(%edi) + movl %edx,-100(%edi) + movl %eax,%ebp + shll $15,%eax + movl %ebx,%esi + shrl $17,%esi + shll $15,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $15,%ecx + movl %eax,-80(%edi) + shrl $17,%esi + orl %esi,%ebx + shrl $17,%ebp + movl %edx,%esi + shrl $17,%esi + movl %ebx,-76(%edi) + shll $15,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %ecx,-72(%edi) + movl %edx,-68(%edi) + movl %eax,%ebp + shll $15,%eax + movl %ebx,%esi + shrl $17,%esi + shll $15,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $15,%ecx + movl %eax,-64(%edi) + shrl $17,%esi + orl %esi,%ebx + shrl $17,%ebp + movl %edx,%esi + shrl $17,%esi + movl %ebx,-60(%edi) + shll $15,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %ecx,-56(%edi) + movl %edx,-52(%edi) + movl %eax,%ebp + shll $15,%eax + movl %ebx,%esi + shrl $17,%esi + shll $15,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $15,%ecx + movl %eax,-32(%edi) + shrl $17,%esi + orl %esi,%ebx + shrl $17,%ebp + movl %edx,%esi + shrl $17,%esi + movl %ebx,-28(%edi) + shll $15,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %eax,%ebp + shll $15,%eax + movl %ebx,%esi + shrl $17,%esi + shll $15,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $15,%ecx + movl %eax,-16(%edi) + shrl $17,%esi + orl %esi,%ebx + shrl $17,%ebp + movl %edx,%esi + shrl $17,%esi + movl %ebx,-12(%edi) + shll $15,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %ecx,-8(%edi) + movl %edx,-4(%edi) + movl %ebx,%ebp + shll $2,%ebx + movl %ecx,%esi + shrl $30,%esi + shll $2,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $2,%edx + movl %ebx,32(%edi) + shrl $30,%esi + orl %esi,%ecx + shrl $30,%ebp + movl %eax,%esi + shrl $30,%esi + movl %ecx,36(%edi) + shll $2,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,40(%edi) + movl %eax,44(%edi) + movl %ebx,%ebp + shll $17,%ebx + movl %ecx,%esi + shrl $15,%esi + shll $17,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $17,%edx + movl %ebx,64(%edi) + shrl $15,%esi + orl %esi,%ecx + shrl $15,%ebp + movl %eax,%esi + shrl $15,%esi + movl %ecx,68(%edi) + shll $17,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,72(%edi) + movl %eax,76(%edi) + movl -128(%edi),%ebx + movl -124(%edi),%ecx + movl -120(%edi),%edx + movl -116(%edi),%eax + movl %ebx,%ebp + shll $15,%ebx + movl %ecx,%esi + shrl $17,%esi + shll $15,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $15,%edx + movl %ebx,-96(%edi) + shrl $17,%esi + orl %esi,%ecx + shrl $17,%ebp + movl %eax,%esi + shrl $17,%esi + movl %ecx,-92(%edi) + shll $15,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,-88(%edi) + movl %eax,-84(%edi) + movl %ebx,%ebp + shll $30,%ebx + movl %ecx,%esi + shrl $2,%esi + shll $30,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $30,%edx + movl %ebx,-48(%edi) + shrl $2,%esi + orl %esi,%ecx + shrl $2,%ebp + movl %eax,%esi + shrl $2,%esi + movl %ecx,-44(%edi) + shll $30,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,-40(%edi) + movl %eax,-36(%edi) + movl %ebx,%ebp + shll $15,%ebx + movl %ecx,%esi + shrl $17,%esi + shll $15,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $15,%edx + shrl $17,%esi + orl %esi,%ecx + shrl $17,%ebp + movl %eax,%esi + shrl $17,%esi + shll $15,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,-24(%edi) + movl %eax,-20(%edi) + movl %ebx,%ebp + shll $17,%ebx + movl %ecx,%esi + shrl $15,%esi + shll $17,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $17,%edx + movl %ebx,(%edi) + shrl $15,%esi + orl %esi,%ecx + shrl $15,%ebp + movl %eax,%esi + shrl $15,%esi + movl %ecx,4(%edi) + shll $17,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,8(%edi) + movl %eax,12(%edi) + movl %ebx,%ebp + shll $17,%ebx + movl %ecx,%esi + shrl $15,%esi + shll $17,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $17,%edx + movl %ebx,16(%edi) + shrl $15,%esi + orl %esi,%ecx + shrl $15,%ebp + movl %eax,%esi + shrl $15,%esi + movl %ecx,20(%edi) + shll $17,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,24(%edi) + movl %eax,28(%edi) + movl %ebx,%ebp + shll $17,%ebx + movl %ecx,%esi + shrl $15,%esi + shll $17,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $17,%edx + movl %ebx,48(%edi) + shrl $15,%esi + orl %esi,%ecx + shrl $15,%ebp + movl %eax,%esi + shrl $15,%esi + movl %ecx,52(%edi) + shll $17,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,56(%edi) + movl %eax,60(%edi) + movl $3,%eax + jmp .L013done +.align 16 +.L0122nd256: + movl 44(%esp),%esi + movl %eax,48(%esi) + movl %ebx,52(%esi) + movl %ecx,56(%esi) + movl %edx,60(%esi) + xorl 32(%esi),%eax + xorl 36(%esi),%ebx + xorl 40(%esi),%ecx + xorl 44(%esi),%edx + movl 32(%edi),%esi + movl %eax,(%esp) + movl %ebx,4(%esp) + movl %ecx,8(%esp) + movl %edx,12(%esp) + xorl %esi,%eax + xorl 36(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 12(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 8(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl 40(%edi),%esi + xorl %ecx,%edx + movl %edx,12(%esp) + xorl %ebx,%ecx + movl %ecx,8(%esp) + xorl %esi,%ecx + xorl 44(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 4(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl (%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl 48(%edi),%esi + xorl %eax,%ebx + movl %ebx,4(%esp) + xorl %edx,%eax + movl %eax,(%esp) + movl 8(%esp),%ecx + movl 12(%esp),%edx + movl 44(%esp),%edi + leal 128(%edi),%edi + movl %eax,-112(%edi) + movl %ebx,-108(%edi) + movl %ecx,-104(%edi) + movl %edx,-100(%edi) + movl %eax,%ebp + shll $30,%eax + movl %ebx,%esi + shrl $2,%esi + shll $30,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $30,%ecx + movl %eax,-48(%edi) + shrl $2,%esi + orl %esi,%ebx + shrl $2,%ebp + movl %edx,%esi + shrl $2,%esi + movl %ebx,-44(%edi) + shll $30,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %ecx,-40(%edi) + movl %edx,-36(%edi) + movl %eax,%ebp + shll $30,%eax + movl %ebx,%esi + shrl $2,%esi + shll $30,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $30,%ecx + movl %eax,32(%edi) + shrl $2,%esi + orl %esi,%ebx + shrl $2,%ebp + movl %edx,%esi + shrl $2,%esi + movl %ebx,36(%edi) + shll $30,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %ecx,40(%edi) + movl %edx,44(%edi) + movl %ebx,%ebp + shll $19,%ebx + movl %ecx,%esi + shrl $13,%esi + shll $19,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $19,%edx + movl %ebx,128(%edi) + shrl $13,%esi + orl %esi,%ecx + shrl $13,%ebp + movl %eax,%esi + shrl $13,%esi + movl %ecx,132(%edi) + shll $19,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,136(%edi) + movl %eax,140(%edi) + movl -96(%edi),%ebx + movl -92(%edi),%ecx + movl -88(%edi),%edx + movl -84(%edi),%eax + movl %ebx,%ebp + shll $15,%ebx + movl %ecx,%esi + shrl $17,%esi + shll $15,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $15,%edx + movl %ebx,-96(%edi) + shrl $17,%esi + orl %esi,%ecx + shrl $17,%ebp + movl %eax,%esi + shrl $17,%esi + movl %ecx,-92(%edi) + shll $15,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,-88(%edi) + movl %eax,-84(%edi) + movl %ebx,%ebp + shll $15,%ebx + movl %ecx,%esi + shrl $17,%esi + shll $15,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $15,%edx + movl %ebx,-64(%edi) + shrl $17,%esi + orl %esi,%ecx + shrl $17,%ebp + movl %eax,%esi + shrl $17,%esi + movl %ecx,-60(%edi) + shll $15,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,-56(%edi) + movl %eax,-52(%edi) + movl %ebx,%ebp + shll $30,%ebx + movl %ecx,%esi + shrl $2,%esi + shll $30,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $30,%edx + movl %ebx,16(%edi) + shrl $2,%esi + orl %esi,%ecx + shrl $2,%ebp + movl %eax,%esi + shrl $2,%esi + movl %ecx,20(%edi) + shll $30,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,24(%edi) + movl %eax,28(%edi) + movl %ecx,%ebp + shll $2,%ecx + movl %edx,%esi + shrl $30,%esi + shll $2,%edx + orl %esi,%ecx + movl %eax,%esi + shll $2,%eax + movl %ecx,80(%edi) + shrl $30,%esi + orl %esi,%edx + shrl $30,%ebp + movl %ebx,%esi + shrl $30,%esi + movl %edx,84(%edi) + shll $2,%ebx + orl %esi,%eax + orl %ebp,%ebx + movl %eax,88(%edi) + movl %ebx,92(%edi) + movl -80(%edi),%ecx + movl -76(%edi),%edx + movl -72(%edi),%eax + movl -68(%edi),%ebx + movl %ecx,%ebp + shll $15,%ecx + movl %edx,%esi + shrl $17,%esi + shll $15,%edx + orl %esi,%ecx + movl %eax,%esi + shll $15,%eax + movl %ecx,-80(%edi) + shrl $17,%esi + orl %esi,%edx + shrl $17,%ebp + movl %ebx,%esi + shrl $17,%esi + movl %edx,-76(%edi) + shll $15,%ebx + orl %esi,%eax + orl %ebp,%ebx + movl %eax,-72(%edi) + movl %ebx,-68(%edi) + movl %ecx,%ebp + shll $30,%ecx + movl %edx,%esi + shrl $2,%esi + shll $30,%edx + orl %esi,%ecx + movl %eax,%esi + shll $30,%eax + movl %ecx,-16(%edi) + shrl $2,%esi + orl %esi,%edx + shrl $2,%ebp + movl %ebx,%esi + shrl $2,%esi + movl %edx,-12(%edi) + shll $30,%ebx + orl %esi,%eax + orl %ebp,%ebx + movl %eax,-8(%edi) + movl %ebx,-4(%edi) + movl %edx,64(%edi) + movl %eax,68(%edi) + movl %ebx,72(%edi) + movl %ecx,76(%edi) + movl %edx,%ebp + shll $17,%edx + movl %eax,%esi + shrl $15,%esi + shll $17,%eax + orl %esi,%edx + movl %ebx,%esi + shll $17,%ebx + movl %edx,96(%edi) + shrl $15,%esi + orl %esi,%eax + shrl $15,%ebp + movl %ecx,%esi + shrl $15,%esi + movl %eax,100(%edi) + shll $17,%ecx + orl %esi,%ebx + orl %ebp,%ecx + movl %ebx,104(%edi) + movl %ecx,108(%edi) + movl -128(%edi),%edx + movl -124(%edi),%eax + movl -120(%edi),%ebx + movl -116(%edi),%ecx + movl %eax,%ebp + shll $13,%eax + movl %ebx,%esi + shrl $19,%esi + shll $13,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $13,%ecx + movl %eax,-32(%edi) + shrl $19,%esi + orl %esi,%ebx + shrl $19,%ebp + movl %edx,%esi + shrl $19,%esi + movl %ebx,-28(%edi) + shll $13,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %ecx,-24(%edi) + movl %edx,-20(%edi) + movl %eax,%ebp + shll $15,%eax + movl %ebx,%esi + shrl $17,%esi + shll $15,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $15,%ecx + movl %eax,(%edi) + shrl $17,%esi + orl %esi,%ebx + shrl $17,%ebp + movl %edx,%esi + shrl $17,%esi + movl %ebx,4(%edi) + shll $15,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl %eax,%ebp + shll $17,%eax + movl %ebx,%esi + shrl $15,%esi + shll $17,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $17,%ecx + movl %eax,48(%edi) + shrl $15,%esi + orl %esi,%ebx + shrl $15,%ebp + movl %edx,%esi + shrl $15,%esi + movl %ebx,52(%edi) + shll $17,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %ecx,56(%edi) + movl %edx,60(%edi) + movl %ebx,%ebp + shll $2,%ebx + movl %ecx,%esi + shrl $30,%esi + shll $2,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $2,%edx + movl %ebx,112(%edi) + shrl $30,%esi + orl %esi,%ecx + shrl $30,%ebp + movl %eax,%esi + shrl $30,%esi + movl %ecx,116(%edi) + shll $2,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,120(%edi) + movl %eax,124(%edi) + movl $4,%eax +.L013done: + leal 144(%edi),%edx + addl $16,%esp + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size Camellia_Ekeygen,.-.L_Camellia_Ekeygen_begin +.globl Camellia_set_key +.type Camellia_set_key,@function +.align 16 +Camellia_set_key: +.L_Camellia_set_key_begin: + pushl %ebx + movl 8(%esp),%ecx + movl 12(%esp),%ebx + movl 16(%esp),%edx + movl $-1,%eax + testl %ecx,%ecx + jz .L014done + testl %edx,%edx + jz .L014done + movl $-2,%eax + cmpl $256,%ebx + je .L015arg_ok + cmpl $192,%ebx + je .L015arg_ok + cmpl $128,%ebx + jne .L014done +.align 4 +.L015arg_ok: + pushl %edx + pushl %ecx + pushl %ebx + call .L_Camellia_Ekeygen_begin + addl $12,%esp + movl %eax,(%edx) + xorl %eax,%eax +.align 4 +.L014done: + popl %ebx + ret +.size Camellia_set_key,.-.L_Camellia_set_key_begin +.align 64 +.LCamellia_SIGMA: +.long 2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0 +.align 64 +.LCamellia_SBOX: +.long 1886416896,1886388336 +.long 2189591040,741081132 +.long 741092352,3014852787 +.long 3974949888,3233808576 +.long 3014898432,3840147684 +.long 656877312,1465319511 +.long 3233857536,3941204202 +.long 3857048832,2930639022 +.long 3840205824,589496355 +.long 2240120064,1802174571 +.long 1465341696,1162149957 +.long 892679424,2779054245 +.long 3941263872,3991732461 +.long 202116096,1330577487 +.long 2930683392,488439837 +.long 1094795520,2459041938 +.long 589505280,2256928902 +.long 4025478912,2947481775 +.long 1802201856,2088501372 +.long 2475922176,522125343 +.long 1162167552,1044250686 +.long 421075200,3705405660 +.long 2779096320,1583218782 +.long 555819264,185270283 +.long 3991792896,2795896998 +.long 235802112,960036921 +.long 1330597632,3587506389 +.long 1313754624,1566376029 +.long 488447232,3654877401 +.long 1701143808,1515847770 +.long 2459079168,1364262993 +.long 3183328512,1819017324 +.long 2256963072,2341142667 +.long 3099113472,2593783962 +.long 2947526400,4227531003 +.long 2408550144,2964324528 +.long 2088532992,1953759348 +.long 3958106880,724238379 +.long 522133248,4042260720 +.long 3469659648,2223243396 +.long 1044266496,3755933919 +.long 808464384,3419078859 +.long 3705461760,875823156 +.long 1600085760,1987444854 +.long 1583242752,1835860077 +.long 3318072576,2846425257 +.long 185273088,3520135377 +.long 437918208,67371012 +.long 2795939328,336855060 +.long 3789676800,976879674 +.long 960051456,3739091166 +.long 3402287616,286326801 +.long 3587560704,842137650 +.long 1195853568,2627469468 +.long 1566399744,1397948499 +.long 1027423488,4075946226 +.long 3654932736,4278059262 +.long 16843008,3486449871 +.long 1515870720,3284336835 +.long 3604403712,2054815866 +.long 1364283648,606339108 +.long 1448498688,3907518696 +.long 1819044864,1616904288 +.long 1296911616,1768489065 +.long 2341178112,2863268010 +.long 218959104,2694840480 +.long 2593823232,2711683233 +.long 1717986816,1650589794 +.long 4227595008,1414791252 +.long 3435973632,505282590 +.long 2964369408,3772776672 +.long 757935360,1684275300 +.long 1953788928,269484048 +.long 303174144,0 +.long 724249344,2745368739 +.long 538976256,1970602101 +.long 4042321920,2324299914 +.long 2981212416,3873833190 +.long 2223277056,151584777 +.long 2576980224,3722248413 +.long 3755990784,2273771655 +.long 1280068608,2206400643 +.long 3419130624,3452764365 +.long 3267543552,2425356432 +.long 875836416,1936916595 +.long 2122219008,4143317238 +.long 1987474944,2644312221 +.long 84215040,3216965823 +.long 1835887872,1381105746 +.long 3082270464,3638034648 +.long 2846468352,3368550600 +.long 825307392,3334865094 +.long 3520188672,2172715137 +.long 387389184,1869545583 +.long 67372032,320012307 +.long 3621246720,1667432547 +.long 336860160,3924361449 +.long 1482184704,2812739751 +.long 976894464,2677997727 +.long 1633771776,3166437564 +.long 3739147776,690552873 +.long 454761216,4193845497 +.long 286331136,791609391 +.long 471604224,3031695540 +.long 842150400,2021130360 +.long 252645120,101056518 +.long 2627509248,3890675943 +.long 370546176,1903231089 +.long 1397969664,3570663636 +.long 404232192,2880110763 +.long 4076007936,2290614408 +.long 572662272,2374828173 +.long 4278124032,1920073842 +.long 1145324544,3115909305 +.long 3486502656,4177002744 +.long 2998055424,2896953516 +.long 3284386560,909508662 +.long 3048584448,707395626 +.long 2054846976,1010565180 +.long 2442236160,4059103473 +.long 606348288,1077936192 +.long 134744064,3553820883 +.long 3907577856,3149594811 +.long 2829625344,1128464451 +.long 1616928768,353697813 +.long 4244438016,2913796269 +.long 1768515840,2004287607 +.long 1347440640,2155872384 +.long 2863311360,2189557890 +.long 3503345664,3974889708 +.long 2694881280,656867367 +.long 2105376000,3856990437 +.long 2711724288,2240086149 +.long 2307492096,892665909 +.long 1650614784,202113036 +.long 2543294208,1094778945 +.long 1414812672,4025417967 +.long 1532713728,2475884691 +.long 505290240,421068825 +.long 2509608192,555810849 +.long 3772833792,235798542 +.long 4294967040,1313734734 +.long 1684300800,1701118053 +.long 3537031680,3183280317 +.long 269488128,3099066552 +.long 3301229568,2408513679 +.long 0,3958046955 +.long 1212696576,3469607118 +.long 2745410304,808452144 +.long 4160222976,1600061535 +.long 1970631936,3318022341 +.long 3688618752,437911578 +.long 2324335104,3789619425 +.long 50529024,3402236106 +.long 3873891840,1195835463 +.long 3671775744,1027407933 +.long 151587072,16842753 +.long 1061109504,3604349142 +.long 3722304768,1448476758 +.long 2492765184,1296891981 +.long 2273806080,218955789 +.long 1549556736,1717960806 +.long 2206434048,3435921612 +.long 33686016,757923885 +.long 3452816640,303169554 +.long 1246382592,538968096 +.long 2425393152,2981167281 +.long 858993408,2576941209 +.long 1936945920,1280049228 +.long 1734829824,3267494082 +.long 4143379968,2122186878 +.long 4092850944,84213765 +.long 2644352256,3082223799 +.long 2139062016,825294897 +.long 3217014528,387383319 +.long 3806519808,3621191895 +.long 1381126656,1482162264 +.long 2610666240,1633747041 +.long 3638089728,454754331 +.long 640034304,471597084 +.long 3368601600,252641295 +.long 926365440,370540566 +.long 3334915584,404226072 +.long 993737472,572653602 +.long 2172748032,1145307204 +.long 2526451200,2998010034 +.long 1869573888,3048538293 +.long 1263225600,2442199185 +.long 320017152,134742024 +.long 3200171520,2829582504 +.long 1667457792,4244373756 +.long 774778368,1347420240 +.long 3924420864,3503292624 +.long 2038003968,2105344125 +.long 2812782336,2307457161 +.long 2358021120,2543255703 +.long 2678038272,1532690523 +.long 1852730880,2509570197 +.long 3166485504,4294902015 +.long 2391707136,3536978130 +.long 690563328,3301179588 +.long 4126536960,1212678216 +.long 4193908992,4160159991 +.long 3065427456,3688562907 +.long 791621376,50528259 +.long 4261281024,3671720154 +.long 3031741440,1061093439 +.long 1499027712,2492727444 +.long 2021160960,1549533276 +.long 2560137216,33685506 +.long 101058048,1246363722 +.long 1785358848,858980403 +.long 3890734848,1734803559 +.long 1179010560,4092788979 +.long 1903259904,2139029631 +.long 3132799488,3806462178 +.long 3570717696,2610626715 +.long 623191296,640024614 +.long 2880154368,926351415 +.long 1111638528,993722427 +.long 2290649088,2526412950 +.long 2728567296,1263206475 +.long 2374864128,3200123070 +.long 4210752000,774766638 +.long 1920102912,2037973113 +.long 117901056,2357985420 +.long 3115956480,1852702830 +.long 1431655680,2391670926 +.long 4177065984,4126474485 +.long 4008635904,3065381046 +.long 2896997376,4261216509 +.long 168430080,1499005017 +.long 909522432,2560098456 +.long 1229539584,1785331818 +.long 707406336,1178992710 +.long 1751672832,3132752058 +.long 1010580480,623181861 +.long 943208448,1111621698 +.long 4059164928,2728525986 +.long 2762253312,4210688250 +.long 1077952512,117899271 +.long 673720320,1431634005 +.long 3553874688,4008575214 +.long 2071689984,168427530 +.long 3149642496,1229520969 +.long 3385444608,1751646312 +.long 1128481536,943194168 +.long 3250700544,2762211492 +.long 353703168,673710120 +.long 3823362816,2071658619 +.long 2913840384,3385393353 +.long 4109693952,3250651329 +.long 2004317952,3823304931 +.long 3351758592,4109631732 +.long 2155905024,3351707847 +.long 2661195264,2661154974 +.long 14737632,939538488 +.long 328965,1090535745 +.long 5789784,369104406 +.long 14277081,1979741814 +.long 6776679,3640711641 +.long 5131854,2466288531 +.long 8487297,1610637408 +.long 13355979,4060148466 +.long 13224393,1912631922 +.long 723723,3254829762 +.long 11447982,2868947883 +.long 6974058,2583730842 +.long 14013909,1962964341 +.long 1579032,100664838 +.long 6118749,1459640151 +.long 8553090,2684395680 +.long 4605510,2432733585 +.long 14671839,4144035831 +.long 14079702,3036722613 +.long 2565927,3372272073 +.long 9079434,2717950626 +.long 3289650,2348846220 +.long 4934475,3523269330 +.long 4342338,2415956112 +.long 14408667,4127258358 +.long 1842204,117442311 +.long 10395294,2801837991 +.long 10263708,654321447 +.long 3815994,2382401166 +.long 13290186,2986390194 +.long 2434341,1224755529 +.long 8092539,3724599006 +.long 855309,1124090691 +.long 7434609,1543527516 +.long 6250335,3607156695 +.long 2039583,3338717127 +.long 16316664,1040203326 +.long 14145495,4110480885 +.long 4079166,2399178639 +.long 10329501,1728079719 +.long 8158332,520101663 +.long 6316128,402659352 +.long 12171705,1845522030 +.long 12500670,2936057775 +.long 12369084,788541231 +.long 9145227,3791708898 +.long 1447446,2231403909 +.long 3421236,218107149 +.long 5066061,1392530259 +.long 12829635,4026593520 +.long 7500402,2617285788 +.long 9803157,1694524773 +.long 11250603,3925928682 +.long 9342606,2734728099 +.long 12237498,2919280302 +.long 8026746,2650840734 +.long 11776947,3959483628 +.long 131586,2147516544 +.long 11842740,754986285 +.long 11382189,1795189611 +.long 10658466,2818615464 +.long 11316396,721431339 +.long 14211288,905983542 +.long 10132122,2785060518 +.long 1513239,3305162181 +.long 1710618,2248181382 +.long 3487029,1291865421 +.long 13421772,855651123 +.long 16250871,4244700669 +.long 10066329,1711302246 +.long 6381921,1476417624 +.long 5921370,2516620950 +.long 15263976,973093434 +.long 2368548,150997257 +.long 5658198,2499843477 +.long 4210752,268439568 +.long 14803425,2013296760 +.long 6513507,3623934168 +.long 592137,1107313218 +.long 3355443,3422604492 +.long 12566463,4009816047 +.long 10000536,637543974 +.long 9934743,3842041317 +.long 8750469,1627414881 +.long 6842472,436214298 +.long 16579836,1056980799 +.long 15527148,989870907 +.long 657930,2181071490 +.long 14342874,3053500086 +.long 7303023,3674266587 +.long 5460819,3556824276 +.long 6447714,2550175896 +.long 10724259,3892373736 +.long 3026478,2332068747 +.long 526344,33554946 +.long 11513775,3942706155 +.long 2631720,167774730 +.long 11579568,738208812 +.long 7631988,486546717 +.long 12763842,2952835248 +.long 12434877,1862299503 +.long 3552822,2365623693 +.long 2236962,2281736328 +.long 3684408,234884622 +.long 6579300,419436825 +.long 1973790,2264958855 +.long 3750201,1308642894 +.long 2894892,184552203 +.long 10921638,2835392937 +.long 3158064,201329676 +.long 15066597,2030074233 +.long 4473924,285217041 +.long 16645629,2130739071 +.long 8947848,570434082 +.long 10461087,3875596263 +.long 6645093,1493195097 +.long 8882055,3774931425 +.long 7039851,3657489114 +.long 16053492,1023425853 +.long 2302755,3355494600 +.long 4737096,301994514 +.long 1052688,67109892 +.long 13750737,1946186868 +.long 5329233,1409307732 +.long 12632256,805318704 +.long 16382457,2113961598 +.long 13816530,3019945140 +.long 10526880,671098920 +.long 5592405,1426085205 +.long 10592673,1744857192 +.long 4276545,1342197840 +.long 16448250,3187719870 +.long 4408131,3489714384 +.long 1250067,3288384708 +.long 12895428,822096177 +.long 3092271,3405827019 +.long 11053224,704653866 +.long 11974326,2902502829 +.long 3947580,251662095 +.long 2829099,3389049546 +.long 12698049,1879076976 +.long 16777215,4278255615 +.long 13158600,838873650 +.long 10855845,1761634665 +.long 2105376,134219784 +.long 9013641,1644192354 +.long 0,0 +.long 9474192,603989028 +.long 4671303,3506491857 +.long 15724527,4211145723 +.long 15395562,3120609978 +.long 12040119,3976261101 +.long 1381653,1157645637 +.long 394758,2164294017 +.long 13487565,1929409395 +.long 11908533,1828744557 +.long 1184274,2214626436 +.long 8289918,2667618207 +.long 12303291,3993038574 +.long 2697513,1241533002 +.long 986895,3271607235 +.long 12105912,771763758 +.long 460551,3238052289 +.long 263172,16777473 +.long 10197915,3858818790 +.long 9737364,620766501 +.long 2171169,1207978056 +.long 6710886,2566953369 +.long 15132390,3103832505 +.long 13553358,3003167667 +.long 15592941,2063629179 +.long 15198183,4177590777 +.long 3881787,3456159438 +.long 16711422,3204497343 +.long 8355711,3741376479 +.long 12961221,1895854449 +.long 10790052,687876393 +.long 3618615,3439381965 +.long 11645361,1811967084 +.long 5000268,318771987 +.long 9539985,1677747300 +.long 7237230,2600508315 +.long 9276813,1660969827 +.long 7763574,2634063261 +.long 197379,3221274816 +.long 2960685,1258310475 +.long 14606046,3070277559 +.long 9868950,2768283045 +.long 2500134,2298513801 +.long 8224125,1593859935 +.long 13027014,2969612721 +.long 6052956,385881879 +.long 13882323,4093703412 +.long 15921906,3154164924 +.long 5197647,3540046803 +.long 1644825,1174423110 +.long 4144959,3472936911 +.long 14474460,922761015 +.long 7960953,1577082462 +.long 1907997,1191200583 +.long 5395026,2483066004 +.long 15461355,4194368250 +.long 15987699,4227923196 +.long 7171437,1526750043 +.long 6184542,2533398423 +.long 16514043,4261478142 +.long 6908265,1509972570 +.long 11711154,2885725356 +.long 15790320,1006648380 +.long 3223857,1275087948 +.long 789516,50332419 +.long 13948116,889206069 +.long 13619151,4076925939 +.long 9211020,587211555 +.long 14869218,3087055032 +.long 7697781,1560304989 +.long 11119017,1778412138 +.long 4868682,2449511058 +.long 5723991,3573601749 +.long 8684676,553656609 +.long 1118481,1140868164 +.long 4539717,1358975313 +.long 1776411,3321939654 +.long 16119285,2097184125 +.long 15000804,956315961 +.long 921102,2197848963 +.long 7566195,3691044060 +.long 11184810,2852170410 +.long 15856113,2080406652 +.long 14540253,1996519287 +.long 5855577,1442862678 +.long 1315860,83887365 +.long 7105644,452991771 +.long 9605778,2751505572 +.long 5526612,352326933 +.long 13684944,872428596 +.long 7895160,503324190 +.long 7368816,469769244 +.long 14935011,4160813304 +.long 4802889,1375752786 +.long 8421504,536879136 +.long 5263440,335549460 +.long 10987431,3909151209 +.long 16185078,3170942397 +.long 7829367,3707821533 +.long 9671571,3825263844 +.long 8816262,2701173153 +.long 8618883,3758153952 +.long 2763306,2315291274 +.long 13092807,4043370993 +.long 5987163,3590379222 +.long 15329769,2046851706 +.long 15658734,3137387451 +.long 9408399,3808486371 +.long 65793,1073758272 +.long 4013373,1325420367 +.globl Camellia_cbc_encrypt +.type Camellia_cbc_encrypt,@function +.align 16 +Camellia_cbc_encrypt: +.L_Camellia_cbc_encrypt_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 28(%esp),%ecx + cmpl $0,%ecx + je .L016enc_out + pushfl + cld + movl 24(%esp),%eax + movl 28(%esp),%ebx + movl 36(%esp),%edx + movl 40(%esp),%ebp + leal -64(%esp),%esi + andl $-64,%esi + leal -127(%edx),%edi + subl %esi,%edi + negl %edi + andl $960,%edi + subl %edi,%esi + movl 44(%esp),%edi + xchgl %esi,%esp + addl $4,%esp + movl %esi,20(%esp) + movl %eax,24(%esp) + movl %ebx,28(%esp) + movl %ecx,32(%esp) + movl %edx,36(%esp) + movl %ebp,40(%esp) + call .L017pic_point +.L017pic_point: + popl %ebp + leal .LCamellia_SBOX-.L017pic_point(%ebp),%ebp + movl $32,%esi +.align 4 +.L018prefetch_sbox: + movl (%ebp),%eax + movl 32(%ebp),%ebx + movl 64(%ebp),%ecx + movl 96(%ebp),%edx + leal 128(%ebp),%ebp + decl %esi + jnz .L018prefetch_sbox + movl 36(%esp),%eax + subl $4096,%ebp + movl 24(%esp),%esi + movl 272(%eax),%edx + cmpl $0,%edi + je .L019DECRYPT + movl 32(%esp),%ecx + movl 40(%esp),%edi + shll $6,%edx + leal (%eax,%edx,1),%edx + movl %edx,16(%esp) + testl $4294967280,%ecx + jz .L020enc_tail + movl (%edi),%eax + movl 4(%edi),%ebx +.align 4 +.L021enc_loop: + movl 8(%edi),%ecx + movl 12(%edi),%edx + xorl (%esi),%eax + xorl 4(%esi),%ebx + xorl 8(%esi),%ecx + bswap %eax + xorl 12(%esi),%edx + bswap %ebx + movl 36(%esp),%edi + bswap %ecx + bswap %edx + call _x86_Camellia_encrypt + movl 24(%esp),%esi + movl 28(%esp),%edi + bswap %eax + bswap %ebx + bswap %ecx + movl %eax,(%edi) + bswap %edx + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 32(%esp),%ecx + leal 16(%esi),%esi + movl %esi,24(%esp) + leal 16(%edi),%edx + movl %edx,28(%esp) + subl $16,%ecx + testl $4294967280,%ecx + movl %ecx,32(%esp) + jnz .L021enc_loop + testl $15,%ecx + jnz .L020enc_tail + movl 40(%esp),%esi + movl 8(%edi),%ecx + movl 12(%edi),%edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + movl 20(%esp),%esp + popfl +.L016enc_out: + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + pushfl +.align 4 +.L020enc_tail: + movl %edi,%eax + movl 28(%esp),%edi + pushl %eax + movl $16,%ebx + subl %ecx,%ebx + cmpl %esi,%edi + je .L022enc_in_place +.align 4 +.long 2767451785 + jmp .L023enc_skip_in_place +.L022enc_in_place: + leal (%edi,%ecx,1),%edi +.L023enc_skip_in_place: + movl %ebx,%ecx + xorl %eax,%eax +.align 4 +.long 2868115081 + popl %edi + movl 28(%esp),%esi + movl (%edi),%eax + movl 4(%edi),%ebx + movl $16,32(%esp) + jmp .L021enc_loop +.align 16 +.L019DECRYPT: + shll $6,%edx + leal (%eax,%edx,1),%edx + movl %eax,16(%esp) + movl %edx,36(%esp) + cmpl 28(%esp),%esi + je .L024dec_in_place + movl 40(%esp),%edi + movl %edi,44(%esp) +.align 4 +.L025dec_loop: + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + bswap %eax + movl 12(%esi),%edx + bswap %ebx + movl 36(%esp),%edi + bswap %ecx + bswap %edx + call _x86_Camellia_decrypt + movl 44(%esp),%edi + movl 32(%esp),%esi + bswap %eax + bswap %ebx + bswap %ecx + xorl (%edi),%eax + bswap %edx + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + subl $16,%esi + jc .L026dec_partial + movl %esi,32(%esp) + movl 24(%esp),%esi + movl 28(%esp),%edi + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl %esi,44(%esp) + leal 16(%esi),%esi + movl %esi,24(%esp) + leal 16(%edi),%edi + movl %edi,28(%esp) + jnz .L025dec_loop + movl 44(%esp),%edi +.L027dec_end: + movl 40(%esp),%esi + movl (%edi),%eax + movl 4(%edi),%ebx + movl 8(%edi),%ecx + movl 12(%edi),%edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + jmp .L028dec_out +.align 4 +.L026dec_partial: + leal 44(%esp),%edi + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + leal 16(%esi),%ecx + movl %edi,%esi + movl 28(%esp),%edi +.long 2767451785 + movl 24(%esp),%edi + jmp .L027dec_end +.align 4 +.L024dec_in_place: +.L029dec_in_place_loop: + leal 44(%esp),%edi + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + bswap %eax + movl %edx,12(%edi) + bswap %ebx + movl 36(%esp),%edi + bswap %ecx + bswap %edx + call _x86_Camellia_decrypt + movl 40(%esp),%edi + movl 28(%esp),%esi + bswap %eax + bswap %ebx + bswap %ecx + xorl (%edi),%eax + bswap %edx + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + leal 16(%esi),%esi + movl %esi,28(%esp) + leal 44(%esp),%esi + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 24(%esp),%esi + leal 16(%esi),%esi + movl %esi,24(%esp) + movl 32(%esp),%ecx + subl $16,%ecx + jc .L030dec_in_place_partial + movl %ecx,32(%esp) + jnz .L029dec_in_place_loop + jmp .L028dec_out +.align 4 +.L030dec_in_place_partial: + movl 28(%esp),%edi + leal 44(%esp),%esi + leal (%edi,%ecx,1),%edi + leal 16(%esi,%ecx,1),%esi + negl %ecx +.long 2767451785 +.align 4 +.L028dec_out: + movl 20(%esp),%esp + popfl + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size Camellia_cbc_encrypt,.-.L_Camellia_cbc_encrypt_begin +.byte 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54 +.byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 +.byte 115,108,46,111,114,103,62,0 diff --git a/deps/openssl/asm/x86-elf-gas/cast/cast-586.s b/deps/openssl/asm/x86-elf-gas/cast/cast-586.s new file mode 100644 index 0000000000..3ef7fe32b7 --- /dev/null +++ b/deps/openssl/asm/x86-elf-gas/cast/cast-586.s @@ -0,0 +1,933 @@ +.file "cast-586.s" +.text +.globl CAST_encrypt +.type CAST_encrypt,@function +.align 16 +CAST_encrypt: +.L_CAST_encrypt_begin: + + pushl %ebp + pushl %ebx + movl 12(%esp),%ebx + movl 16(%esp),%ebp + pushl %esi + pushl %edi + + movl (%ebx),%edi + movl 4(%ebx),%esi + + movl 128(%ebp),%eax + pushl %eax + xorl %eax,%eax + + movl (%ebp),%edx + movl 4(%ebp),%ecx + addl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%edi + + movl 8(%ebp),%edx + movl 12(%ebp),%ecx + xorl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%esi + + movl 16(%ebp),%edx + movl 20(%ebp),%ecx + subl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%edi + + movl 24(%ebp),%edx + movl 28(%ebp),%ecx + addl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%esi + + movl 32(%ebp),%edx + movl 36(%ebp),%ecx + xorl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%edi + + movl 40(%ebp),%edx + movl 44(%ebp),%ecx + subl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%esi + + movl 48(%ebp),%edx + movl 52(%ebp),%ecx + addl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%edi + + movl 56(%ebp),%edx + movl 60(%ebp),%ecx + xorl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%esi + + movl 64(%ebp),%edx + movl 68(%ebp),%ecx + subl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%edi + + movl 72(%ebp),%edx + movl 76(%ebp),%ecx + addl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%esi + + movl 80(%ebp),%edx + movl 84(%ebp),%ecx + xorl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%edi + + movl 88(%ebp),%edx + movl 92(%ebp),%ecx + subl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%esi + + popl %edx + orl %edx,%edx + jnz .L000cast_enc_done + + movl 96(%ebp),%edx + movl 100(%ebp),%ecx + addl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%edi + + movl 104(%ebp),%edx + movl 108(%ebp),%ecx + xorl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%esi + + movl 112(%ebp),%edx + movl 116(%ebp),%ecx + subl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%edi + + movl 120(%ebp),%edx + movl 124(%ebp),%ecx + addl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%esi +.L000cast_enc_done: + nop + movl 20(%esp),%eax + movl %edi,4(%eax) + movl %esi,(%eax) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size CAST_encrypt,.-.L_CAST_encrypt_begin +.globl CAST_decrypt +.type CAST_decrypt,@function +.align 16 +CAST_decrypt: +.L_CAST_decrypt_begin: + + pushl %ebp + pushl %ebx + movl 12(%esp),%ebx + movl 16(%esp),%ebp + pushl %esi + pushl %edi + + movl (%ebx),%edi + movl 4(%ebx),%esi + + movl 128(%ebp),%eax + orl %eax,%eax + jnz .L001cast_dec_skip + xorl %eax,%eax + + movl 120(%ebp),%edx + movl 124(%ebp),%ecx + addl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%edi + + movl 112(%ebp),%edx + movl 116(%ebp),%ecx + subl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%esi + + movl 104(%ebp),%edx + movl 108(%ebp),%ecx + xorl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%edi + + movl 96(%ebp),%edx + movl 100(%ebp),%ecx + addl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%esi +.L001cast_dec_skip: + + movl 88(%ebp),%edx + movl 92(%ebp),%ecx + subl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%edi + + movl 80(%ebp),%edx + movl 84(%ebp),%ecx + xorl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%esi + + movl 72(%ebp),%edx + movl 76(%ebp),%ecx + addl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%edi + + movl 64(%ebp),%edx + movl 68(%ebp),%ecx + subl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%esi + + movl 56(%ebp),%edx + movl 60(%ebp),%ecx + xorl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%edi + + movl 48(%ebp),%edx + movl 52(%ebp),%ecx + addl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%esi + + movl 40(%ebp),%edx + movl 44(%ebp),%ecx + subl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%edi + + movl 32(%ebp),%edx + movl 36(%ebp),%ecx + xorl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%esi + + movl 24(%ebp),%edx + movl 28(%ebp),%ecx + addl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%edi + + movl 16(%ebp),%edx + movl 20(%ebp),%ecx + subl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%esi + + movl 8(%ebp),%edx + movl 12(%ebp),%ecx + xorl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%edi + + movl (%ebp),%edx + movl 4(%ebp),%ecx + addl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl CAST_S_table0(,%ecx,4),%ecx + movl CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%esi + nop + movl 20(%esp),%eax + movl %edi,4(%eax) + movl %esi,(%eax) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size CAST_decrypt,.-.L_CAST_decrypt_begin +.globl CAST_cbc_encrypt +.type CAST_cbc_encrypt,@function +.align 16 +CAST_cbc_encrypt: +.L_CAST_cbc_encrypt_begin: + + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 28(%esp),%ebp + + movl 36(%esp),%ebx + movl (%ebx),%esi + movl 4(%ebx),%edi + pushl %edi + pushl %esi + pushl %edi + pushl %esi + movl %esp,%ebx + movl 36(%esp),%esi + movl 40(%esp),%edi + + movl 56(%esp),%ecx + + movl 48(%esp),%eax + pushl %eax + pushl %ebx + cmpl $0,%ecx + jz .L002decrypt + andl $4294967288,%ebp + movl 8(%esp),%eax + movl 12(%esp),%ebx + jz .L003encrypt_finish +.L004encrypt_loop: + movl (%esi),%ecx + movl 4(%esi),%edx + xorl %ecx,%eax + xorl %edx,%ebx + bswap %eax + bswap %ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call .L_CAST_encrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + bswap %eax + bswap %ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz .L004encrypt_loop +.L003encrypt_finish: + movl 52(%esp),%ebp + andl $7,%ebp + jz .L005finish + call .L006PIC_point +.L006PIC_point: + popl %edx + leal .L007cbc_enc_jmp_table-.L006PIC_point(%edx),%ecx + movl (%ecx,%ebp,4),%ebp + addl %edx,%ebp + xorl %ecx,%ecx + xorl %edx,%edx + jmp *%ebp +.L008ej7: + movb 6(%esi),%dh + shll $8,%edx +.L009ej6: + movb 5(%esi),%dh +.L010ej5: + movb 4(%esi),%dl +.L011ej4: + movl (%esi),%ecx + jmp .L012ejend +.L013ej3: + movb 2(%esi),%ch + shll $8,%ecx +.L014ej2: + movb 1(%esi),%ch +.L015ej1: + movb (%esi),%cl +.L012ejend: + xorl %ecx,%eax + xorl %edx,%ebx + bswap %eax + bswap %ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call .L_CAST_encrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + bswap %eax + bswap %ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + jmp .L005finish +.L002decrypt: + andl $4294967288,%ebp + movl 16(%esp),%eax + movl 20(%esp),%ebx + jz .L016decrypt_finish +.L017decrypt_loop: + movl (%esi),%eax + movl 4(%esi),%ebx + bswap %eax + bswap %ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call .L_CAST_decrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + bswap %eax + bswap %ebx + movl 16(%esp),%ecx + movl 20(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx + movl %ecx,(%edi) + movl %edx,4(%edi) + movl %eax,16(%esp) + movl %ebx,20(%esp) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz .L017decrypt_loop +.L016decrypt_finish: + movl 52(%esp),%ebp + andl $7,%ebp + jz .L005finish + movl (%esi),%eax + movl 4(%esi),%ebx + bswap %eax + bswap %ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call .L_CAST_decrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + bswap %eax + bswap %ebx + movl 16(%esp),%ecx + movl 20(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx +.L018dj7: + rorl $16,%edx + movb %dl,6(%edi) + shrl $16,%edx +.L019dj6: + movb %dh,5(%edi) +.L020dj5: + movb %dl,4(%edi) +.L021dj4: + movl %ecx,(%edi) + jmp .L022djend +.L023dj3: + rorl $16,%ecx + movb %cl,2(%edi) + shll $16,%ecx +.L024dj2: + movb %ch,1(%esi) +.L025dj1: + movb %cl,(%esi) +.L022djend: + jmp .L005finish +.L005finish: + movl 60(%esp),%ecx + addl $24,%esp + movl %eax,(%ecx) + movl %ebx,4(%ecx) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 64 +.L007cbc_enc_jmp_table: +.long 0 +.long .L015ej1-.L006PIC_point +.long .L014ej2-.L006PIC_point +.long .L013ej3-.L006PIC_point +.long .L011ej4-.L006PIC_point +.long .L010ej5-.L006PIC_point +.long .L009ej6-.L006PIC_point +.long .L008ej7-.L006PIC_point +.align 64 +.size CAST_cbc_encrypt,.-.L_CAST_cbc_encrypt_begin diff --git a/deps/openssl/asm/x86-elf-gas/des/crypt586.s b/deps/openssl/asm/x86-elf-gas/des/crypt586.s new file mode 100644 index 0000000000..46c81c493d --- /dev/null +++ b/deps/openssl/asm/x86-elf-gas/des/crypt586.s @@ -0,0 +1,875 @@ +.file "crypt586.s" +.text +.globl fcrypt_body +.type fcrypt_body,@function +.align 16 +fcrypt_body: +.L_fcrypt_body_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + + + xorl %edi,%edi + xorl %esi,%esi + leal DES_SPtrans,%edx + pushl %edx + movl 28(%esp),%ebp + pushl $25 +.L000start: + + + movl 36(%esp),%eax + movl %esi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %esi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl (%ebp),%ebx + xorl %ebx,%eax + movl 4(%ebp),%ecx + xorl %esi,%eax + xorl %esi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%edi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%edi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%edi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%edi + movl 32(%esp),%ebp + + + movl 36(%esp),%eax + movl %edi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %edi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 8(%ebp),%ebx + xorl %ebx,%eax + movl 12(%ebp),%ecx + xorl %edi,%eax + xorl %edi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%esi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%esi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%esi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%esi + movl 32(%esp),%ebp + + + movl 36(%esp),%eax + movl %esi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %esi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 16(%ebp),%ebx + xorl %ebx,%eax + movl 20(%ebp),%ecx + xorl %esi,%eax + xorl %esi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%edi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%edi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%edi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%edi + movl 32(%esp),%ebp + + + movl 36(%esp),%eax + movl %edi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %edi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 24(%ebp),%ebx + xorl %ebx,%eax + movl 28(%ebp),%ecx + xorl %edi,%eax + xorl %edi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%esi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%esi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%esi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%esi + movl 32(%esp),%ebp + + + movl 36(%esp),%eax + movl %esi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %esi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 32(%ebp),%ebx + xorl %ebx,%eax + movl 36(%ebp),%ecx + xorl %esi,%eax + xorl %esi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%edi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%edi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%edi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%edi + movl 32(%esp),%ebp + + + movl 36(%esp),%eax + movl %edi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %edi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 40(%ebp),%ebx + xorl %ebx,%eax + movl 44(%ebp),%ecx + xorl %edi,%eax + xorl %edi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%esi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%esi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%esi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%esi + movl 32(%esp),%ebp + + + movl 36(%esp),%eax + movl %esi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %esi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 48(%ebp),%ebx + xorl %ebx,%eax + movl 52(%ebp),%ecx + xorl %esi,%eax + xorl %esi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%edi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%edi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%edi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%edi + movl 32(%esp),%ebp + + + movl 36(%esp),%eax + movl %edi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %edi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 56(%ebp),%ebx + xorl %ebx,%eax + movl 60(%ebp),%ecx + xorl %edi,%eax + xorl %edi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%esi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%esi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%esi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%esi + movl 32(%esp),%ebp + + + movl 36(%esp),%eax + movl %esi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %esi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 64(%ebp),%ebx + xorl %ebx,%eax + movl 68(%ebp),%ecx + xorl %esi,%eax + xorl %esi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%edi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%edi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%edi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%edi + movl 32(%esp),%ebp + + + movl 36(%esp),%eax + movl %edi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %edi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 72(%ebp),%ebx + xorl %ebx,%eax + movl 76(%ebp),%ecx + xorl %edi,%eax + xorl %edi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%esi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%esi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%esi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%esi + movl 32(%esp),%ebp + + + movl 36(%esp),%eax + movl %esi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %esi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 80(%ebp),%ebx + xorl %ebx,%eax + movl 84(%ebp),%ecx + xorl %esi,%eax + xorl %esi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%edi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%edi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%edi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%edi + movl 32(%esp),%ebp + + + movl 36(%esp),%eax + movl %edi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %edi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 88(%ebp),%ebx + xorl %ebx,%eax + movl 92(%ebp),%ecx + xorl %edi,%eax + xorl %edi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%esi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%esi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%esi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%esi + movl 32(%esp),%ebp + + + movl 36(%esp),%eax + movl %esi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %esi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 96(%ebp),%ebx + xorl %ebx,%eax + movl 100(%ebp),%ecx + xorl %esi,%eax + xorl %esi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%edi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%edi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%edi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%edi + movl 32(%esp),%ebp + + + movl 36(%esp),%eax + movl %edi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %edi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 104(%ebp),%ebx + xorl %ebx,%eax + movl 108(%ebp),%ecx + xorl %edi,%eax + xorl %edi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%esi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%esi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%esi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%esi + movl 32(%esp),%ebp + + + movl 36(%esp),%eax + movl %esi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %esi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 112(%ebp),%ebx + xorl %ebx,%eax + movl 116(%ebp),%ecx + xorl %esi,%eax + xorl %esi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%edi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%edi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%edi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%edi + movl 32(%esp),%ebp + + + movl 36(%esp),%eax + movl %edi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %edi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 120(%ebp),%ebx + xorl %ebx,%eax + movl 124(%ebp),%ecx + xorl %edi,%eax + xorl %edi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%esi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%esi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%esi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%esi + movl 32(%esp),%ebp + movl (%esp),%ebx + movl %edi,%eax + decl %ebx + movl %esi,%edi + movl %eax,%esi + movl %ebx,(%esp) + jnz .L000start + + + movl 28(%esp),%edx + rorl $1,%edi + movl %esi,%eax + xorl %edi,%esi + andl $0xaaaaaaaa,%esi + xorl %esi,%eax + xorl %esi,%edi + + roll $23,%eax + movl %eax,%esi + xorl %edi,%eax + andl $0x03fc03fc,%eax + xorl %eax,%esi + xorl %eax,%edi + + roll $10,%esi + movl %esi,%eax + xorl %edi,%esi + andl $0x33333333,%esi + xorl %esi,%eax + xorl %esi,%edi + + roll $18,%edi + movl %edi,%esi + xorl %eax,%edi + andl $0xfff0000f,%edi + xorl %edi,%esi + xorl %edi,%eax + + roll $12,%esi + movl %esi,%edi + xorl %eax,%esi + andl $0xf0f0f0f0,%esi + xorl %esi,%edi + xorl %esi,%eax + + rorl $4,%eax + movl %eax,(%edx) + movl %edi,4(%edx) + addl $8,%esp + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size fcrypt_body,.-.L_fcrypt_body_begin diff --git a/deps/openssl/asm/x86-elf-gas/des/des-586.s b/deps/openssl/asm/x86-elf-gas/des/des-586.s new file mode 100644 index 0000000000..2fbd340dae --- /dev/null +++ b/deps/openssl/asm/x86-elf-gas/des/des-586.s @@ -0,0 +1,1837 @@ +.file "des-586.s" +.text +.globl DES_SPtrans +.type _x86_DES_encrypt,@function +.align 16 +_x86_DES_encrypt: + pushl %ecx + + movl (%ecx),%eax + xorl %ebx,%ebx + movl 4(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + + movl 8(%ecx),%eax + xorl %ebx,%ebx + movl 12(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + + movl 16(%ecx),%eax + xorl %ebx,%ebx + movl 20(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + + movl 24(%ecx),%eax + xorl %ebx,%ebx + movl 28(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + + movl 32(%ecx),%eax + xorl %ebx,%ebx + movl 36(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + + movl 40(%ecx),%eax + xorl %ebx,%ebx + movl 44(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + + movl 48(%ecx),%eax + xorl %ebx,%ebx + movl 52(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + + movl 56(%ecx),%eax + xorl %ebx,%ebx + movl 60(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + + movl 64(%ecx),%eax + xorl %ebx,%ebx + movl 68(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + + movl 72(%ecx),%eax + xorl %ebx,%ebx + movl 76(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + + movl 80(%ecx),%eax + xorl %ebx,%ebx + movl 84(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + + movl 88(%ecx),%eax + xorl %ebx,%ebx + movl 92(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + + movl 96(%ecx),%eax + xorl %ebx,%ebx + movl 100(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + + movl 104(%ecx),%eax + xorl %ebx,%ebx + movl 108(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + + movl 112(%ecx),%eax + xorl %ebx,%ebx + movl 116(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + + movl 120(%ecx),%eax + xorl %ebx,%ebx + movl 124(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + addl $4,%esp + ret +.size _x86_DES_encrypt,.-_x86_DES_encrypt +.type _x86_DES_decrypt,@function +.align 16 +_x86_DES_decrypt: + pushl %ecx + + movl 120(%ecx),%eax + xorl %ebx,%ebx + movl 124(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + + movl 112(%ecx),%eax + xorl %ebx,%ebx + movl 116(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + + movl 104(%ecx),%eax + xorl %ebx,%ebx + movl 108(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + + movl 96(%ecx),%eax + xorl %ebx,%ebx + movl 100(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + + movl 88(%ecx),%eax + xorl %ebx,%ebx + movl 92(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + + movl 80(%ecx),%eax + xorl %ebx,%ebx + movl 84(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + + movl 72(%ecx),%eax + xorl %ebx,%ebx + movl 76(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + + movl 64(%ecx),%eax + xorl %ebx,%ebx + movl 68(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + + movl 56(%ecx),%eax + xorl %ebx,%ebx + movl 60(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + + movl 48(%ecx),%eax + xorl %ebx,%ebx + movl 52(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + + movl 40(%ecx),%eax + xorl %ebx,%ebx + movl 44(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + + movl 32(%ecx),%eax + xorl %ebx,%ebx + movl 36(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + + movl 24(%ecx),%eax + xorl %ebx,%ebx + movl 28(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + + movl 16(%ecx),%eax + xorl %ebx,%ebx + movl 20(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + + movl 8(%ecx),%eax + xorl %ebx,%ebx + movl 12(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + + movl (%ecx),%eax + xorl %ebx,%ebx + movl 4(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + addl $4,%esp + ret +.size _x86_DES_decrypt,.-_x86_DES_decrypt +.globl DES_encrypt1 +.type DES_encrypt1,@function +.align 16 +DES_encrypt1: +.L_DES_encrypt1_begin: + pushl %esi + pushl %edi + + + movl 12(%esp),%esi + xorl %ecx,%ecx + pushl %ebx + pushl %ebp + movl (%esi),%eax + movl 28(%esp),%ebx + movl 4(%esi),%edi + + + roll $4,%eax + movl %eax,%esi + xorl %edi,%eax + andl $0xf0f0f0f0,%eax + xorl %eax,%esi + xorl %eax,%edi + + roll $20,%edi + movl %edi,%eax + xorl %esi,%edi + andl $0xfff0000f,%edi + xorl %edi,%eax + xorl %edi,%esi + + roll $14,%eax + movl %eax,%edi + xorl %esi,%eax + andl $0x33333333,%eax + xorl %eax,%edi + xorl %eax,%esi + + roll $22,%esi + movl %esi,%eax + xorl %edi,%esi + andl $0x03fc03fc,%esi + xorl %esi,%eax + xorl %esi,%edi + + roll $9,%eax + movl %eax,%esi + xorl %edi,%eax + andl $0xaaaaaaaa,%eax + xorl %eax,%esi + xorl %eax,%edi + + roll $1,%edi + call .L000pic_point +.L000pic_point: + popl %ebp + leal DES_SPtrans-.L000pic_point(%ebp),%ebp + movl 24(%esp),%ecx + cmpl $0,%ebx + je .L001decrypt + call _x86_DES_encrypt + jmp .L002done +.L001decrypt: + call _x86_DES_decrypt +.L002done: + + + movl 20(%esp),%edx + rorl $1,%esi + movl %edi,%eax + xorl %esi,%edi + andl $0xaaaaaaaa,%edi + xorl %edi,%eax + xorl %edi,%esi + + roll $23,%eax + movl %eax,%edi + xorl %esi,%eax + andl $0x03fc03fc,%eax + xorl %eax,%edi + xorl %eax,%esi + + roll $10,%edi + movl %edi,%eax + xorl %esi,%edi + andl $0x33333333,%edi + xorl %edi,%eax + xorl %edi,%esi + + roll $18,%esi + movl %esi,%edi + xorl %eax,%esi + andl $0xfff0000f,%esi + xorl %esi,%edi + xorl %esi,%eax + + roll $12,%edi + movl %edi,%esi + xorl %eax,%edi + andl $0xf0f0f0f0,%edi + xorl %edi,%esi + xorl %edi,%eax + + rorl $4,%eax + movl %eax,(%edx) + movl %esi,4(%edx) + popl %ebp + popl %ebx + popl %edi + popl %esi + ret +.size DES_encrypt1,.-.L_DES_encrypt1_begin +.globl DES_encrypt2 +.type DES_encrypt2,@function +.align 16 +DES_encrypt2: +.L_DES_encrypt2_begin: + pushl %esi + pushl %edi + + + movl 12(%esp),%eax + xorl %ecx,%ecx + pushl %ebx + pushl %ebp + movl (%eax),%esi + movl 28(%esp),%ebx + roll $3,%esi + movl 4(%eax),%edi + roll $3,%edi + call .L003pic_point +.L003pic_point: + popl %ebp + leal DES_SPtrans-.L003pic_point(%ebp),%ebp + movl 24(%esp),%ecx + cmpl $0,%ebx + je .L004decrypt + call _x86_DES_encrypt + jmp .L005done +.L004decrypt: + call _x86_DES_decrypt +.L005done: + + + rorl $3,%edi + movl 20(%esp),%eax + rorl $3,%esi + movl %edi,(%eax) + movl %esi,4(%eax) + popl %ebp + popl %ebx + popl %edi + popl %esi + ret +.size DES_encrypt2,.-.L_DES_encrypt2_begin +.globl DES_encrypt3 +.type DES_encrypt3,@function +.align 16 +DES_encrypt3: +.L_DES_encrypt3_begin: + pushl %ebx + movl 8(%esp),%ebx + pushl %ebp + pushl %esi + pushl %edi + + + movl (%ebx),%edi + movl 4(%ebx),%esi + subl $12,%esp + + + roll $4,%edi + movl %edi,%edx + xorl %esi,%edi + andl $0xf0f0f0f0,%edi + xorl %edi,%edx + xorl %edi,%esi + + roll $20,%esi + movl %esi,%edi + xorl %edx,%esi + andl $0xfff0000f,%esi + xorl %esi,%edi + xorl %esi,%edx + + roll $14,%edi + movl %edi,%esi + xorl %edx,%edi + andl $0x33333333,%edi + xorl %edi,%esi + xorl %edi,%edx + + roll $22,%edx + movl %edx,%edi + xorl %esi,%edx + andl $0x03fc03fc,%edx + xorl %edx,%edi + xorl %edx,%esi + + roll $9,%edi + movl %edi,%edx + xorl %esi,%edi + andl $0xaaaaaaaa,%edi + xorl %edi,%edx + xorl %edi,%esi + + rorl $3,%edx + rorl $2,%esi + movl %esi,4(%ebx) + movl 36(%esp),%eax + movl %edx,(%ebx) + movl 40(%esp),%edi + movl 44(%esp),%esi + movl $1,8(%esp) + movl %eax,4(%esp) + movl %ebx,(%esp) + call .L_DES_encrypt2_begin + movl $0,8(%esp) + movl %edi,4(%esp) + movl %ebx,(%esp) + call .L_DES_encrypt2_begin + movl $1,8(%esp) + movl %esi,4(%esp) + movl %ebx,(%esp) + call .L_DES_encrypt2_begin + addl $12,%esp + movl (%ebx),%edi + movl 4(%ebx),%esi + + + roll $2,%esi + roll $3,%edi + movl %edi,%eax + xorl %esi,%edi + andl $0xaaaaaaaa,%edi + xorl %edi,%eax + xorl %edi,%esi + + roll $23,%eax + movl %eax,%edi + xorl %esi,%eax + andl $0x03fc03fc,%eax + xorl %eax,%edi + xorl %eax,%esi + + roll $10,%edi + movl %edi,%eax + xorl %esi,%edi + andl $0x33333333,%edi + xorl %edi,%eax + xorl %edi,%esi + + roll $18,%esi + movl %esi,%edi + xorl %eax,%esi + andl $0xfff0000f,%esi + xorl %esi,%edi + xorl %esi,%eax + + roll $12,%edi + movl %edi,%esi + xorl %eax,%edi + andl $0xf0f0f0f0,%edi + xorl %edi,%esi + xorl %edi,%eax + + rorl $4,%eax + movl %eax,(%ebx) + movl %esi,4(%ebx) + popl %edi + popl %esi + popl %ebp + popl %ebx + ret +.size DES_encrypt3,.-.L_DES_encrypt3_begin +.globl DES_decrypt3 +.type DES_decrypt3,@function +.align 16 +DES_decrypt3: +.L_DES_decrypt3_begin: + pushl %ebx + movl 8(%esp),%ebx + pushl %ebp + pushl %esi + pushl %edi + + + movl (%ebx),%edi + movl 4(%ebx),%esi + subl $12,%esp + + + roll $4,%edi + movl %edi,%edx + xorl %esi,%edi + andl $0xf0f0f0f0,%edi + xorl %edi,%edx + xorl %edi,%esi + + roll $20,%esi + movl %esi,%edi + xorl %edx,%esi + andl $0xfff0000f,%esi + xorl %esi,%edi + xorl %esi,%edx + + roll $14,%edi + movl %edi,%esi + xorl %edx,%edi + andl $0x33333333,%edi + xorl %edi,%esi + xorl %edi,%edx + + roll $22,%edx + movl %edx,%edi + xorl %esi,%edx + andl $0x03fc03fc,%edx + xorl %edx,%edi + xorl %edx,%esi + + roll $9,%edi + movl %edi,%edx + xorl %esi,%edi + andl $0xaaaaaaaa,%edi + xorl %edi,%edx + xorl %edi,%esi + + rorl $3,%edx + rorl $2,%esi + movl %esi,4(%ebx) + movl 36(%esp),%esi + movl %edx,(%ebx) + movl 40(%esp),%edi + movl 44(%esp),%eax + movl $0,8(%esp) + movl %eax,4(%esp) + movl %ebx,(%esp) + call .L_DES_encrypt2_begin + movl $1,8(%esp) + movl %edi,4(%esp) + movl %ebx,(%esp) + call .L_DES_encrypt2_begin + movl $0,8(%esp) + movl %esi,4(%esp) + movl %ebx,(%esp) + call .L_DES_encrypt2_begin + addl $12,%esp + movl (%ebx),%edi + movl 4(%ebx),%esi + + + roll $2,%esi + roll $3,%edi + movl %edi,%eax + xorl %esi,%edi + andl $0xaaaaaaaa,%edi + xorl %edi,%eax + xorl %edi,%esi + + roll $23,%eax + movl %eax,%edi + xorl %esi,%eax + andl $0x03fc03fc,%eax + xorl %eax,%edi + xorl %eax,%esi + + roll $10,%edi + movl %edi,%eax + xorl %esi,%edi + andl $0x33333333,%edi + xorl %edi,%eax + xorl %edi,%esi + + roll $18,%esi + movl %esi,%edi + xorl %eax,%esi + andl $0xfff0000f,%esi + xorl %esi,%edi + xorl %esi,%eax + + roll $12,%edi + movl %edi,%esi + xorl %eax,%edi + andl $0xf0f0f0f0,%edi + xorl %edi,%esi + xorl %edi,%eax + + rorl $4,%eax + movl %eax,(%ebx) + movl %esi,4(%ebx) + popl %edi + popl %esi + popl %ebp + popl %ebx + ret +.size DES_decrypt3,.-.L_DES_decrypt3_begin +.globl DES_ncbc_encrypt +.type DES_ncbc_encrypt,@function +.align 16 +DES_ncbc_encrypt: +.L_DES_ncbc_encrypt_begin: + + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 28(%esp),%ebp + + movl 36(%esp),%ebx + movl (%ebx),%esi + movl 4(%ebx),%edi + pushl %edi + pushl %esi + pushl %edi + pushl %esi + movl %esp,%ebx + movl 36(%esp),%esi + movl 40(%esp),%edi + + movl 56(%esp),%ecx + + pushl %ecx + + movl 52(%esp),%eax + pushl %eax + pushl %ebx + cmpl $0,%ecx + jz .L006decrypt + andl $4294967288,%ebp + movl 12(%esp),%eax + movl 16(%esp),%ebx + jz .L007encrypt_finish +.L008encrypt_loop: + movl (%esi),%ecx + movl 4(%esi),%edx + xorl %ecx,%eax + xorl %edx,%ebx + movl %eax,12(%esp) + movl %ebx,16(%esp) + call .L_DES_encrypt1_begin + movl 12(%esp),%eax + movl 16(%esp),%ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz .L008encrypt_loop +.L007encrypt_finish: + movl 56(%esp),%ebp + andl $7,%ebp + jz .L009finish + call .L010PIC_point +.L010PIC_point: + popl %edx + leal .L011cbc_enc_jmp_table-.L010PIC_point(%edx),%ecx + movl (%ecx,%ebp,4),%ebp + addl %edx,%ebp + xorl %ecx,%ecx + xorl %edx,%edx + jmp *%ebp +.L012ej7: + movb 6(%esi),%dh + shll $8,%edx +.L013ej6: + movb 5(%esi),%dh +.L014ej5: + movb 4(%esi),%dl +.L015ej4: + movl (%esi),%ecx + jmp .L016ejend +.L017ej3: + movb 2(%esi),%ch + shll $8,%ecx +.L018ej2: + movb 1(%esi),%ch +.L019ej1: + movb (%esi),%cl +.L016ejend: + xorl %ecx,%eax + xorl %edx,%ebx + movl %eax,12(%esp) + movl %ebx,16(%esp) + call .L_DES_encrypt1_begin + movl 12(%esp),%eax + movl 16(%esp),%ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + jmp .L009finish +.L006decrypt: + andl $4294967288,%ebp + movl 20(%esp),%eax + movl 24(%esp),%ebx + jz .L020decrypt_finish +.L021decrypt_loop: + movl (%esi),%eax + movl 4(%esi),%ebx + movl %eax,12(%esp) + movl %ebx,16(%esp) + call .L_DES_encrypt1_begin + movl 12(%esp),%eax + movl 16(%esp),%ebx + movl 20(%esp),%ecx + movl 24(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx + movl %ecx,(%edi) + movl %edx,4(%edi) + movl %eax,20(%esp) + movl %ebx,24(%esp) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz .L021decrypt_loop +.L020decrypt_finish: + movl 56(%esp),%ebp + andl $7,%ebp + jz .L009finish + movl (%esi),%eax + movl 4(%esi),%ebx + movl %eax,12(%esp) + movl %ebx,16(%esp) + call .L_DES_encrypt1_begin + movl 12(%esp),%eax + movl 16(%esp),%ebx + movl 20(%esp),%ecx + movl 24(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx +.L022dj7: + rorl $16,%edx + movb %dl,6(%edi) + shrl $16,%edx +.L023dj6: + movb %dh,5(%edi) +.L024dj5: + movb %dl,4(%edi) +.L025dj4: + movl %ecx,(%edi) + jmp .L026djend +.L027dj3: + rorl $16,%ecx + movb %cl,2(%edi) + shll $16,%ecx +.L028dj2: + movb %ch,1(%esi) +.L029dj1: + movb %cl,(%esi) +.L026djend: + jmp .L009finish +.L009finish: + movl 64(%esp),%ecx + addl $28,%esp + movl %eax,(%ecx) + movl %ebx,4(%ecx) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 64 +.L011cbc_enc_jmp_table: +.long 0 +.long .L019ej1-.L010PIC_point +.long .L018ej2-.L010PIC_point +.long .L017ej3-.L010PIC_point +.long .L015ej4-.L010PIC_point +.long .L014ej5-.L010PIC_point +.long .L013ej6-.L010PIC_point +.long .L012ej7-.L010PIC_point +.align 64 +.size DES_ncbc_encrypt,.-.L_DES_ncbc_encrypt_begin +.globl DES_ede3_cbc_encrypt +.type DES_ede3_cbc_encrypt,@function +.align 16 +DES_ede3_cbc_encrypt: +.L_DES_ede3_cbc_encrypt_begin: + + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 28(%esp),%ebp + + movl 44(%esp),%ebx + movl (%ebx),%esi + movl 4(%ebx),%edi + pushl %edi + pushl %esi + pushl %edi + pushl %esi + movl %esp,%ebx + movl 36(%esp),%esi + movl 40(%esp),%edi + + movl 64(%esp),%ecx + + movl 56(%esp),%eax + pushl %eax + + movl 56(%esp),%eax + pushl %eax + + movl 56(%esp),%eax + pushl %eax + pushl %ebx + cmpl $0,%ecx + jz .L030decrypt + andl $4294967288,%ebp + movl 16(%esp),%eax + movl 20(%esp),%ebx + jz .L031encrypt_finish +.L032encrypt_loop: + movl (%esi),%ecx + movl 4(%esi),%edx + xorl %ecx,%eax + xorl %edx,%ebx + movl %eax,16(%esp) + movl %ebx,20(%esp) + call .L_DES_encrypt3_begin + movl 16(%esp),%eax + movl 20(%esp),%ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz .L032encrypt_loop +.L031encrypt_finish: + movl 60(%esp),%ebp + andl $7,%ebp + jz .L033finish + call .L034PIC_point +.L034PIC_point: + popl %edx + leal .L035cbc_enc_jmp_table-.L034PIC_point(%edx),%ecx + movl (%ecx,%ebp,4),%ebp + addl %edx,%ebp + xorl %ecx,%ecx + xorl %edx,%edx + jmp *%ebp +.L036ej7: + movb 6(%esi),%dh + shll $8,%edx +.L037ej6: + movb 5(%esi),%dh +.L038ej5: + movb 4(%esi),%dl +.L039ej4: + movl (%esi),%ecx + jmp .L040ejend +.L041ej3: + movb 2(%esi),%ch + shll $8,%ecx +.L042ej2: + movb 1(%esi),%ch +.L043ej1: + movb (%esi),%cl +.L040ejend: + xorl %ecx,%eax + xorl %edx,%ebx + movl %eax,16(%esp) + movl %ebx,20(%esp) + call .L_DES_encrypt3_begin + movl 16(%esp),%eax + movl 20(%esp),%ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + jmp .L033finish +.L030decrypt: + andl $4294967288,%ebp + movl 24(%esp),%eax + movl 28(%esp),%ebx + jz .L044decrypt_finish +.L045decrypt_loop: + movl (%esi),%eax + movl 4(%esi),%ebx + movl %eax,16(%esp) + movl %ebx,20(%esp) + call .L_DES_decrypt3_begin + movl 16(%esp),%eax + movl 20(%esp),%ebx + movl 24(%esp),%ecx + movl 28(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx + movl %ecx,(%edi) + movl %edx,4(%edi) + movl %eax,24(%esp) + movl %ebx,28(%esp) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz .L045decrypt_loop +.L044decrypt_finish: + movl 60(%esp),%ebp + andl $7,%ebp + jz .L033finish + movl (%esi),%eax + movl 4(%esi),%ebx + movl %eax,16(%esp) + movl %ebx,20(%esp) + call .L_DES_decrypt3_begin + movl 16(%esp),%eax + movl 20(%esp),%ebx + movl 24(%esp),%ecx + movl 28(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx +.L046dj7: + rorl $16,%edx + movb %dl,6(%edi) + shrl $16,%edx +.L047dj6: + movb %dh,5(%edi) +.L048dj5: + movb %dl,4(%edi) +.L049dj4: + movl %ecx,(%edi) + jmp .L050djend +.L051dj3: + rorl $16,%ecx + movb %cl,2(%edi) + shll $16,%ecx +.L052dj2: + movb %ch,1(%esi) +.L053dj1: + movb %cl,(%esi) +.L050djend: + jmp .L033finish +.L033finish: + movl 76(%esp),%ecx + addl $32,%esp + movl %eax,(%ecx) + movl %ebx,4(%ecx) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 64 +.L035cbc_enc_jmp_table: +.long 0 +.long .L043ej1-.L034PIC_point +.long .L042ej2-.L034PIC_point +.long .L041ej3-.L034PIC_point +.long .L039ej4-.L034PIC_point +.long .L038ej5-.L034PIC_point +.long .L037ej6-.L034PIC_point +.long .L036ej7-.L034PIC_point +.align 64 +.size DES_ede3_cbc_encrypt,.-.L_DES_ede3_cbc_encrypt_begin +.align 64 +DES_SPtrans: +.long 34080768,524288,33554434,34080770 +.long 33554432,526338,524290,33554434 +.long 526338,34080768,34078720,2050 +.long 33556482,33554432,0,524290 +.long 524288,2,33556480,526336 +.long 34080770,34078720,2050,33556480 +.long 2,2048,526336,34078722 +.long 2048,33556482,34078722,0 +.long 0,34080770,33556480,524290 +.long 34080768,524288,2050,33556480 +.long 34078722,2048,526336,33554434 +.long 526338,2,33554434,34078720 +.long 34080770,526336,34078720,33556482 +.long 33554432,2050,524290,0 +.long 524288,33554432,33556482,34080768 +.long 2,34078722,2048,526338 +.long 1074823184,0,1081344,1074790400 +.long 1073741840,32784,1073774592,1081344 +.long 32768,1074790416,16,1073774592 +.long 1048592,1074823168,1074790400,16 +.long 1048576,1073774608,1074790416,32768 +.long 1081360,1073741824,0,1048592 +.long 1073774608,1081360,1074823168,1073741840 +.long 1073741824,1048576,32784,1074823184 +.long 1048592,1074823168,1073774592,1081360 +.long 1074823184,1048592,1073741840,0 +.long 1073741824,32784,1048576,1074790416 +.long 32768,1073741824,1081360,1073774608 +.long 1074823168,32768,0,1073741840 +.long 16,1074823184,1081344,1074790400 +.long 1074790416,1048576,32784,1073774592 +.long 1073774608,16,1074790400,1081344 +.long 67108865,67371264,256,67109121 +.long 262145,67108864,67109121,262400 +.long 67109120,262144,67371008,1 +.long 67371265,257,1,67371009 +.long 0,262145,67371264,256 +.long 257,67371265,262144,67108865 +.long 67371009,67109120,262401,67371008 +.long 262400,0,67108864,262401 +.long 67371264,256,1,262144 +.long 257,262145,67371008,67109121 +.long 0,67371264,262400,67371009 +.long 262145,67108864,67371265,1 +.long 262401,67108865,67108864,67371265 +.long 262144,67109120,67109121,262400 +.long 67109120,0,67371009,257 +.long 67108865,262401,256,67371008 +.long 4198408,268439552,8,272633864 +.long 0,272629760,268439560,4194312 +.long 272633856,268435464,268435456,4104 +.long 268435464,4198408,4194304,268435456 +.long 272629768,4198400,4096,8 +.long 4198400,268439560,272629760,4096 +.long 4104,0,4194312,272633856 +.long 268439552,272629768,272633864,4194304 +.long 272629768,4104,4194304,268435464 +.long 4198400,268439552,8,272629760 +.long 268439560,0,4096,4194312 +.long 0,272629768,272633856,4096 +.long 268435456,272633864,4198408,4194304 +.long 272633864,8,268439552,4198408 +.long 4194312,4198400,272629760,268439560 +.long 4104,268435456,268435464,272633856 +.long 134217728,65536,1024,134284320 +.long 134283296,134218752,66592,134283264 +.long 65536,32,134217760,66560 +.long 134218784,134283296,134284288,0 +.long 66560,134217728,65568,1056 +.long 134218752,66592,0,134217760 +.long 32,134218784,134284320,65568 +.long 134283264,1024,1056,134284288 +.long 134284288,134218784,65568,134283264 +.long 65536,32,134217760,134218752 +.long 134217728,66560,134284320,0 +.long 66592,134217728,1024,65568 +.long 134218784,1024,0,134284320 +.long 134283296,134284288,1056,65536 +.long 66560,134283296,134218752,1056 +.long 32,66592,134283264,134217760 +.long 2147483712,2097216,0,2149588992 +.long 2097216,8192,2147491904,2097152 +.long 8256,2149589056,2105344,2147483648 +.long 2147491840,2147483712,2149580800,2105408 +.long 2097152,2147491904,2149580864,0 +.long 8192,64,2149588992,2149580864 +.long 2149589056,2149580800,2147483648,8256 +.long 64,2105344,2105408,2147491840 +.long 8256,2147483648,2147491840,2105408 +.long 2149588992,2097216,0,2147491840 +.long 2147483648,8192,2149580864,2097152 +.long 2097216,2149589056,2105344,64 +.long 2149589056,2105344,2097152,2147491904 +.long 2147483712,2149580800,2105408,0 +.long 8192,2147483712,2147491904,2149588992 +.long 2149580800,8256,64,2149580864 +.long 16384,512,16777728,16777220 +.long 16794116,16388,16896,0 +.long 16777216,16777732,516,16793600 +.long 4,16794112,16793600,516 +.long 16777732,16384,16388,16794116 +.long 0,16777728,16777220,16896 +.long 16793604,16900,16794112,4 +.long 16900,16793604,512,16777216 +.long 16900,16793600,16793604,516 +.long 16384,512,16777216,16793604 +.long 16777732,16900,16896,0 +.long 512,16777220,4,16777728 +.long 0,16777732,16777728,16896 +.long 516,16384,16794116,16777216 +.long 16794112,4,16388,16794116 +.long 16777220,16794112,16793600,16388 +.long 545259648,545390592,131200,0 +.long 537001984,8388736,545259520,545390720 +.long 128,536870912,8519680,131200 +.long 8519808,537002112,536871040,545259520 +.long 131072,8519808,8388736,537001984 +.long 545390720,536871040,0,8519680 +.long 536870912,8388608,537002112,545259648 +.long 8388608,131072,545390592,128 +.long 8388608,131072,536871040,545390720 +.long 131200,536870912,0,8519680 +.long 545259648,537002112,537001984,8388736 +.long 545390592,128,8388736,537001984 +.long 545390720,8388608,545259520,536871040 +.long 8519680,131200,537002112,545259520 +.long 128,545390592,8519808,0 +.long 536870912,545259648,131072,8519808 diff --git a/deps/openssl/asm/x86-elf-gas/md5/md5-586.s b/deps/openssl/asm/x86-elf-gas/md5/md5-586.s new file mode 100644 index 0000000000..e354c4ebcd --- /dev/null +++ b/deps/openssl/asm/x86-elf-gas/md5/md5-586.s @@ -0,0 +1,679 @@ +.file "../openssl/crypto/md5/asm/md5-586.s" +.text +.globl md5_block_asm_data_order +.type md5_block_asm_data_order,@function +.align 16 +md5_block_asm_data_order: +.L_md5_block_asm_data_order_begin: + pushl %esi + pushl %edi + movl 12(%esp),%edi + movl 16(%esp),%esi + movl 20(%esp),%ecx + pushl %ebp + shll $6,%ecx + pushl %ebx + addl %esi,%ecx + subl $64,%ecx + movl (%edi),%eax + pushl %ecx + movl 4(%edi),%ebx + movl 8(%edi),%ecx + movl 12(%edi),%edx +.L000start: + + + movl %ecx,%edi + movl (%esi),%ebp + + xorl %edx,%edi + andl %ebx,%edi + leal 3614090360(%eax,%ebp,1),%eax + xorl %edx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $7,%eax + movl 4(%esi),%ebp + addl %ebx,%eax + + xorl %ecx,%edi + andl %eax,%edi + leal 3905402710(%edx,%ebp,1),%edx + xorl %ecx,%edi + addl %edi,%edx + movl %eax,%edi + roll $12,%edx + movl 8(%esi),%ebp + addl %eax,%edx + + xorl %ebx,%edi + andl %edx,%edi + leal 606105819(%ecx,%ebp,1),%ecx + xorl %ebx,%edi + addl %edi,%ecx + movl %edx,%edi + roll $17,%ecx + movl 12(%esi),%ebp + addl %edx,%ecx + + xorl %eax,%edi + andl %ecx,%edi + leal 3250441966(%ebx,%ebp,1),%ebx + xorl %eax,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $22,%ebx + movl 16(%esi),%ebp + addl %ecx,%ebx + + xorl %edx,%edi + andl %ebx,%edi + leal 4118548399(%eax,%ebp,1),%eax + xorl %edx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $7,%eax + movl 20(%esi),%ebp + addl %ebx,%eax + + xorl %ecx,%edi + andl %eax,%edi + leal 1200080426(%edx,%ebp,1),%edx + xorl %ecx,%edi + addl %edi,%edx + movl %eax,%edi + roll $12,%edx + movl 24(%esi),%ebp + addl %eax,%edx + + xorl %ebx,%edi + andl %edx,%edi + leal 2821735955(%ecx,%ebp,1),%ecx + xorl %ebx,%edi + addl %edi,%ecx + movl %edx,%edi + roll $17,%ecx + movl 28(%esi),%ebp + addl %edx,%ecx + + xorl %eax,%edi + andl %ecx,%edi + leal 4249261313(%ebx,%ebp,1),%ebx + xorl %eax,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $22,%ebx + movl 32(%esi),%ebp + addl %ecx,%ebx + + xorl %edx,%edi + andl %ebx,%edi + leal 1770035416(%eax,%ebp,1),%eax + xorl %edx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $7,%eax + movl 36(%esi),%ebp + addl %ebx,%eax + + xorl %ecx,%edi + andl %eax,%edi + leal 2336552879(%edx,%ebp,1),%edx + xorl %ecx,%edi + addl %edi,%edx + movl %eax,%edi + roll $12,%edx + movl 40(%esi),%ebp + addl %eax,%edx + + xorl %ebx,%edi + andl %edx,%edi + leal 4294925233(%ecx,%ebp,1),%ecx + xorl %ebx,%edi + addl %edi,%ecx + movl %edx,%edi + roll $17,%ecx + movl 44(%esi),%ebp + addl %edx,%ecx + + xorl %eax,%edi + andl %ecx,%edi + leal 2304563134(%ebx,%ebp,1),%ebx + xorl %eax,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $22,%ebx + movl 48(%esi),%ebp + addl %ecx,%ebx + + xorl %edx,%edi + andl %ebx,%edi + leal 1804603682(%eax,%ebp,1),%eax + xorl %edx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $7,%eax + movl 52(%esi),%ebp + addl %ebx,%eax + + xorl %ecx,%edi + andl %eax,%edi + leal 4254626195(%edx,%ebp,1),%edx + xorl %ecx,%edi + addl %edi,%edx + movl %eax,%edi + roll $12,%edx + movl 56(%esi),%ebp + addl %eax,%edx + + xorl %ebx,%edi + andl %edx,%edi + leal 2792965006(%ecx,%ebp,1),%ecx + xorl %ebx,%edi + addl %edi,%ecx + movl %edx,%edi + roll $17,%ecx + movl 60(%esi),%ebp + addl %edx,%ecx + + xorl %eax,%edi + andl %ecx,%edi + leal 1236535329(%ebx,%ebp,1),%ebx + xorl %eax,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $22,%ebx + movl 4(%esi),%ebp + addl %ecx,%ebx + + + + leal 4129170786(%eax,%ebp,1),%eax + xorl %ebx,%edi + andl %edx,%edi + movl 24(%esi),%ebp + xorl %ecx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $5,%eax + addl %ebx,%eax + + leal 3225465664(%edx,%ebp,1),%edx + xorl %eax,%edi + andl %ecx,%edi + movl 44(%esi),%ebp + xorl %ebx,%edi + addl %edi,%edx + movl %eax,%edi + roll $9,%edx + addl %eax,%edx + + leal 643717713(%ecx,%ebp,1),%ecx + xorl %edx,%edi + andl %ebx,%edi + movl (%esi),%ebp + xorl %eax,%edi + addl %edi,%ecx + movl %edx,%edi + roll $14,%ecx + addl %edx,%ecx + + leal 3921069994(%ebx,%ebp,1),%ebx + xorl %ecx,%edi + andl %eax,%edi + movl 20(%esi),%ebp + xorl %edx,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $20,%ebx + addl %ecx,%ebx + + leal 3593408605(%eax,%ebp,1),%eax + xorl %ebx,%edi + andl %edx,%edi + movl 40(%esi),%ebp + xorl %ecx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $5,%eax + addl %ebx,%eax + + leal 38016083(%edx,%ebp,1),%edx + xorl %eax,%edi + andl %ecx,%edi + movl 60(%esi),%ebp + xorl %ebx,%edi + addl %edi,%edx + movl %eax,%edi + roll $9,%edx + addl %eax,%edx + + leal 3634488961(%ecx,%ebp,1),%ecx + xorl %edx,%edi + andl %ebx,%edi + movl 16(%esi),%ebp + xorl %eax,%edi + addl %edi,%ecx + movl %edx,%edi + roll $14,%ecx + addl %edx,%ecx + + leal 3889429448(%ebx,%ebp,1),%ebx + xorl %ecx,%edi + andl %eax,%edi + movl 36(%esi),%ebp + xorl %edx,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $20,%ebx + addl %ecx,%ebx + + leal 568446438(%eax,%ebp,1),%eax + xorl %ebx,%edi + andl %edx,%edi + movl 56(%esi),%ebp + xorl %ecx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $5,%eax + addl %ebx,%eax + + leal 3275163606(%edx,%ebp,1),%edx + xorl %eax,%edi + andl %ecx,%edi + movl 12(%esi),%ebp + xorl %ebx,%edi + addl %edi,%edx + movl %eax,%edi + roll $9,%edx + addl %eax,%edx + + leal 4107603335(%ecx,%ebp,1),%ecx + xorl %edx,%edi + andl %ebx,%edi + movl 32(%esi),%ebp + xorl %eax,%edi + addl %edi,%ecx + movl %edx,%edi + roll $14,%ecx + addl %edx,%ecx + + leal 1163531501(%ebx,%ebp,1),%ebx + xorl %ecx,%edi + andl %eax,%edi + movl 52(%esi),%ebp + xorl %edx,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $20,%ebx + addl %ecx,%ebx + + leal 2850285829(%eax,%ebp,1),%eax + xorl %ebx,%edi + andl %edx,%edi + movl 8(%esi),%ebp + xorl %ecx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $5,%eax + addl %ebx,%eax + + leal 4243563512(%edx,%ebp,1),%edx + xorl %eax,%edi + andl %ecx,%edi + movl 28(%esi),%ebp + xorl %ebx,%edi + addl %edi,%edx + movl %eax,%edi + roll $9,%edx + addl %eax,%edx + + leal 1735328473(%ecx,%ebp,1),%ecx + xorl %edx,%edi + andl %ebx,%edi + movl 48(%esi),%ebp + xorl %eax,%edi + addl %edi,%ecx + movl %edx,%edi + roll $14,%ecx + addl %edx,%ecx + + leal 2368359562(%ebx,%ebp,1),%ebx + xorl %ecx,%edi + andl %eax,%edi + movl 20(%esi),%ebp + xorl %edx,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $20,%ebx + addl %ecx,%ebx + + + + xorl %edx,%edi + xorl %ebx,%edi + leal 4294588738(%eax,%ebp,1),%eax + addl %edi,%eax + roll $4,%eax + movl 32(%esi),%ebp + movl %ebx,%edi + + leal 2272392833(%edx,%ebp,1),%edx + addl %ebx,%eax + xorl %ecx,%edi + xorl %eax,%edi + movl 44(%esi),%ebp + addl %edi,%edx + movl %eax,%edi + roll $11,%edx + addl %eax,%edx + + xorl %ebx,%edi + xorl %edx,%edi + leal 1839030562(%ecx,%ebp,1),%ecx + addl %edi,%ecx + roll $16,%ecx + movl 56(%esi),%ebp + movl %edx,%edi + + leal 4259657740(%ebx,%ebp,1),%ebx + addl %edx,%ecx + xorl %eax,%edi + xorl %ecx,%edi + movl 4(%esi),%ebp + addl %edi,%ebx + movl %ecx,%edi + roll $23,%ebx + addl %ecx,%ebx + + xorl %edx,%edi + xorl %ebx,%edi + leal 2763975236(%eax,%ebp,1),%eax + addl %edi,%eax + roll $4,%eax + movl 16(%esi),%ebp + movl %ebx,%edi + + leal 1272893353(%edx,%ebp,1),%edx + addl %ebx,%eax + xorl %ecx,%edi + xorl %eax,%edi + movl 28(%esi),%ebp + addl %edi,%edx + movl %eax,%edi + roll $11,%edx + addl %eax,%edx + + xorl %ebx,%edi + xorl %edx,%edi + leal 4139469664(%ecx,%ebp,1),%ecx + addl %edi,%ecx + roll $16,%ecx + movl 40(%esi),%ebp + movl %edx,%edi + + leal 3200236656(%ebx,%ebp,1),%ebx + addl %edx,%ecx + xorl %eax,%edi + xorl %ecx,%edi + movl 52(%esi),%ebp + addl %edi,%ebx + movl %ecx,%edi + roll $23,%ebx + addl %ecx,%ebx + + xorl %edx,%edi + xorl %ebx,%edi + leal 681279174(%eax,%ebp,1),%eax + addl %edi,%eax + roll $4,%eax + movl (%esi),%ebp + movl %ebx,%edi + + leal 3936430074(%edx,%ebp,1),%edx + addl %ebx,%eax + xorl %ecx,%edi + xorl %eax,%edi + movl 12(%esi),%ebp + addl %edi,%edx + movl %eax,%edi + roll $11,%edx + addl %eax,%edx + + xorl %ebx,%edi + xorl %edx,%edi + leal 3572445317(%ecx,%ebp,1),%ecx + addl %edi,%ecx + roll $16,%ecx + movl 24(%esi),%ebp + movl %edx,%edi + + leal 76029189(%ebx,%ebp,1),%ebx + addl %edx,%ecx + xorl %eax,%edi + xorl %ecx,%edi + movl 36(%esi),%ebp + addl %edi,%ebx + movl %ecx,%edi + roll $23,%ebx + addl %ecx,%ebx + + xorl %edx,%edi + xorl %ebx,%edi + leal 3654602809(%eax,%ebp,1),%eax + addl %edi,%eax + roll $4,%eax + movl 48(%esi),%ebp + movl %ebx,%edi + + leal 3873151461(%edx,%ebp,1),%edx + addl %ebx,%eax + xorl %ecx,%edi + xorl %eax,%edi + movl 60(%esi),%ebp + addl %edi,%edx + movl %eax,%edi + roll $11,%edx + addl %eax,%edx + + xorl %ebx,%edi + xorl %edx,%edi + leal 530742520(%ecx,%ebp,1),%ecx + addl %edi,%ecx + roll $16,%ecx + movl 8(%esi),%ebp + movl %edx,%edi + + leal 3299628645(%ebx,%ebp,1),%ebx + addl %edx,%ecx + xorl %eax,%edi + xorl %ecx,%edi + movl (%esi),%ebp + addl %edi,%ebx + movl $-1,%edi + roll $23,%ebx + addl %ecx,%ebx + + + + xorl %edx,%edi + orl %ebx,%edi + leal 4096336452(%eax,%ebp,1),%eax + xorl %ecx,%edi + movl 28(%esi),%ebp + addl %edi,%eax + movl $-1,%edi + roll $6,%eax + xorl %ecx,%edi + addl %ebx,%eax + + orl %eax,%edi + leal 1126891415(%edx,%ebp,1),%edx + xorl %ebx,%edi + movl 56(%esi),%ebp + addl %edi,%edx + movl $-1,%edi + roll $10,%edx + xorl %ebx,%edi + addl %eax,%edx + + orl %edx,%edi + leal 2878612391(%ecx,%ebp,1),%ecx + xorl %eax,%edi + movl 20(%esi),%ebp + addl %edi,%ecx + movl $-1,%edi + roll $15,%ecx + xorl %eax,%edi + addl %edx,%ecx + + orl %ecx,%edi + leal 4237533241(%ebx,%ebp,1),%ebx + xorl %edx,%edi + movl 48(%esi),%ebp + addl %edi,%ebx + movl $-1,%edi + roll $21,%ebx + xorl %edx,%edi + addl %ecx,%ebx + + orl %ebx,%edi + leal 1700485571(%eax,%ebp,1),%eax + xorl %ecx,%edi + movl 12(%esi),%ebp + addl %edi,%eax + movl $-1,%edi + roll $6,%eax + xorl %ecx,%edi + addl %ebx,%eax + + orl %eax,%edi + leal 2399980690(%edx,%ebp,1),%edx + xorl %ebx,%edi + movl 40(%esi),%ebp + addl %edi,%edx + movl $-1,%edi + roll $10,%edx + xorl %ebx,%edi + addl %eax,%edx + + orl %edx,%edi + leal 4293915773(%ecx,%ebp,1),%ecx + xorl %eax,%edi + movl 4(%esi),%ebp + addl %edi,%ecx + movl $-1,%edi + roll $15,%ecx + xorl %eax,%edi + addl %edx,%ecx + + orl %ecx,%edi + leal 2240044497(%ebx,%ebp,1),%ebx + xorl %edx,%edi + movl 32(%esi),%ebp + addl %edi,%ebx + movl $-1,%edi + roll $21,%ebx + xorl %edx,%edi + addl %ecx,%ebx + + orl %ebx,%edi + leal 1873313359(%eax,%ebp,1),%eax + xorl %ecx,%edi + movl 60(%esi),%ebp + addl %edi,%eax + movl $-1,%edi + roll $6,%eax + xorl %ecx,%edi + addl %ebx,%eax + + orl %eax,%edi + leal 4264355552(%edx,%ebp,1),%edx + xorl %ebx,%edi + movl 24(%esi),%ebp + addl %edi,%edx + movl $-1,%edi + roll $10,%edx + xorl %ebx,%edi + addl %eax,%edx + + orl %edx,%edi + leal 2734768916(%ecx,%ebp,1),%ecx + xorl %eax,%edi + movl 52(%esi),%ebp + addl %edi,%ecx + movl $-1,%edi + roll $15,%ecx + xorl %eax,%edi + addl %edx,%ecx + + orl %ecx,%edi + leal 1309151649(%ebx,%ebp,1),%ebx + xorl %edx,%edi + movl 16(%esi),%ebp + addl %edi,%ebx + movl $-1,%edi + roll $21,%ebx + xorl %edx,%edi + addl %ecx,%ebx + + orl %ebx,%edi + leal 4149444226(%eax,%ebp,1),%eax + xorl %ecx,%edi + movl 44(%esi),%ebp + addl %edi,%eax + movl $-1,%edi + roll $6,%eax + xorl %ecx,%edi + addl %ebx,%eax + + orl %eax,%edi + leal 3174756917(%edx,%ebp,1),%edx + xorl %ebx,%edi + movl 8(%esi),%ebp + addl %edi,%edx + movl $-1,%edi + roll $10,%edx + xorl %ebx,%edi + addl %eax,%edx + + orl %edx,%edi + leal 718787259(%ecx,%ebp,1),%ecx + xorl %eax,%edi + movl 36(%esi),%ebp + addl %edi,%ecx + movl $-1,%edi + roll $15,%ecx + xorl %eax,%edi + addl %edx,%ecx + + orl %ecx,%edi + leal 3951481745(%ebx,%ebp,1),%ebx + xorl %edx,%edi + movl 24(%esp),%ebp + addl %edi,%ebx + addl $64,%esi + roll $21,%ebx + movl (%ebp),%edi + addl %ecx,%ebx + addl %edi,%eax + movl 4(%ebp),%edi + addl %edi,%ebx + movl 8(%ebp),%edi + addl %edi,%ecx + movl 12(%ebp),%edi + addl %edi,%edx + movl %eax,(%ebp) + movl %ebx,4(%ebp) + movl (%esp),%edi + movl %ecx,8(%ebp) + movl %edx,12(%ebp) + cmpl %esi,%edi + jae .L000start + popl %eax + popl %ebx + popl %ebp + popl %edi + popl %esi + ret +.size md5_block_asm_data_order,.-.L_md5_block_asm_data_order_begin diff --git a/deps/openssl/asm/x86-elf-gas/rc4/rc4-586.s b/deps/openssl/asm/x86-elf-gas/rc4/rc4-586.s new file mode 100644 index 0000000000..9ba94e4b1a --- /dev/null +++ b/deps/openssl/asm/x86-elf-gas/rc4/rc4-586.s @@ -0,0 +1,230 @@ +.file "rc4-586.s" +.text +.globl RC4 +.type RC4,@function +.align 16 +RC4: +.L_RC4_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%edi + movl 24(%esp),%edx + movl 28(%esp),%esi + movl 32(%esp),%ebp + xorl %eax,%eax + xorl %ebx,%ebx + cmpl $0,%edx + je .L000abort + movb (%edi),%al + movb 4(%edi),%bl + addl $8,%edi + leal (%esi,%edx,1),%ecx + subl %esi,%ebp + movl %ecx,24(%esp) + incb %al + cmpl $-1,256(%edi) + je .L001RC4_CHAR + movl (%edi,%eax,4),%ecx + andl $-4,%edx + jz .L002loop1 + leal -4(%esi,%edx,1),%edx + movl %edx,28(%esp) + movl %ebp,32(%esp) +.align 16 +.L003loop4: + addb %cl,%bl + movl (%edi,%ebx,4),%edx + movl %ecx,(%edi,%ebx,4) + movl %edx,(%edi,%eax,4) + addl %ecx,%edx + incb %al + andl $255,%edx + movl (%edi,%eax,4),%ecx + movl (%edi,%edx,4),%ebp + addb %cl,%bl + movl (%edi,%ebx,4),%edx + movl %ecx,(%edi,%ebx,4) + movl %edx,(%edi,%eax,4) + addl %ecx,%edx + incb %al + andl $255,%edx + rorl $8,%ebp + movl (%edi,%eax,4),%ecx + orl (%edi,%edx,4),%ebp + addb %cl,%bl + movl (%edi,%ebx,4),%edx + movl %ecx,(%edi,%ebx,4) + movl %edx,(%edi,%eax,4) + addl %ecx,%edx + incb %al + andl $255,%edx + rorl $8,%ebp + movl (%edi,%eax,4),%ecx + orl (%edi,%edx,4),%ebp + addb %cl,%bl + movl (%edi,%ebx,4),%edx + movl %ecx,(%edi,%ebx,4) + movl %edx,(%edi,%eax,4) + addl %ecx,%edx + incb %al + andl $255,%edx + rorl $8,%ebp + movl 32(%esp),%ecx + orl (%edi,%edx,4),%ebp + rorl $8,%ebp + xorl (%esi),%ebp + cmpl 28(%esp),%esi + movl %ebp,(%ecx,%esi,1) + leal 4(%esi),%esi + movl (%edi,%eax,4),%ecx + jb .L003loop4 + cmpl 24(%esp),%esi + je .L004done + movl 32(%esp),%ebp +.align 16 +.L002loop1: + addb %cl,%bl + movl (%edi,%ebx,4),%edx + movl %ecx,(%edi,%ebx,4) + movl %edx,(%edi,%eax,4) + addl %ecx,%edx + incb %al + andl $255,%edx + movl (%edi,%edx,4),%edx + xorb (%esi),%dl + leal 1(%esi),%esi + movl (%edi,%eax,4),%ecx + cmpl 24(%esp),%esi + movb %dl,-1(%ebp,%esi,1) + jb .L002loop1 + jmp .L004done +.align 16 +.L001RC4_CHAR: + movzbl (%edi,%eax,1),%ecx +.L005cloop1: + addb %cl,%bl + movzbl (%edi,%ebx,1),%edx + movb %cl,(%edi,%ebx,1) + movb %dl,(%edi,%eax,1) + addb %cl,%dl + movzbl (%edi,%edx,1),%edx + addb $1,%al + xorb (%esi),%dl + leal 1(%esi),%esi + movzbl (%edi,%eax,1),%ecx + cmpl 24(%esp),%esi + movb %dl,-1(%ebp,%esi,1) + jb .L005cloop1 +.L004done: + decb %al + movb %bl,-4(%edi) + movb %al,-8(%edi) +.L000abort: + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size RC4,.-.L_RC4_begin +.globl RC4_set_key +.type RC4_set_key,@function +.align 16 +RC4_set_key: +.L_RC4_set_key_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%edi + movl 24(%esp),%ebp + movl 28(%esp),%esi + leal OPENSSL_ia32cap_P,%edx + leal 8(%edi),%edi + leal (%esi,%ebp,1),%esi + negl %ebp + xorl %eax,%eax + movl %ebp,-4(%edi) + btl $20,(%edx) + jc .L006c1stloop +.align 16 +.L007w1stloop: + movl %eax,(%edi,%eax,4) + addb $1,%al + jnc .L007w1stloop + xorl %ecx,%ecx + xorl %edx,%edx +.align 16 +.L008w2ndloop: + movl (%edi,%ecx,4),%eax + addb (%esi,%ebp,1),%dl + addb %al,%dl + addl $1,%ebp + movl (%edi,%edx,4),%ebx + jnz .L009wnowrap + movl -4(%edi),%ebp +.L009wnowrap: + movl %eax,(%edi,%edx,4) + movl %ebx,(%edi,%ecx,4) + addb $1,%cl + jnc .L008w2ndloop + jmp .L010exit +.align 16 +.L006c1stloop: + movb %al,(%edi,%eax,1) + addb $1,%al + jnc .L006c1stloop + xorl %ecx,%ecx + xorl %edx,%edx + xorl %ebx,%ebx +.align 16 +.L011c2ndloop: + movb (%edi,%ecx,1),%al + addb (%esi,%ebp,1),%dl + addb %al,%dl + addl $1,%ebp + movb (%edi,%edx,1),%bl + jnz .L012cnowrap + movl -4(%edi),%ebp +.L012cnowrap: + movb %al,(%edi,%edx,1) + movb %bl,(%edi,%ecx,1) + addb $1,%cl + jnc .L011c2ndloop + movl $-1,256(%edi) +.L010exit: + xorl %eax,%eax + movl %eax,-8(%edi) + movl %eax,-4(%edi) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size RC4_set_key,.-.L_RC4_set_key_begin +.globl RC4_options +.type RC4_options,@function +.align 16 +RC4_options: +.L_RC4_options_begin: + call .L013pic_point +.L013pic_point: + popl %eax + leal .L014opts-.L013pic_point(%eax),%eax + leal OPENSSL_ia32cap_P,%edx + btl $20,(%edx) + jnc .L015skip + addl $12,%eax +.L015skip: + ret +.align 64 +.L014opts: +.byte 114,99,52,40,52,120,44,105,110,116,41,0 +.byte 114,99,52,40,49,120,44,99,104,97,114,41,0 +.byte 82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89 +.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 +.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 64 +.size RC4_options,.-.L_RC4_options_begin +.comm OPENSSL_ia32cap_P,4,4 diff --git a/deps/openssl/asm/x86-elf-gas/rc5/rc5-586.s b/deps/openssl/asm/x86-elf-gas/rc5/rc5-586.s new file mode 100644 index 0000000000..ff8a4929ab --- /dev/null +++ b/deps/openssl/asm/x86-elf-gas/rc5/rc5-586.s @@ -0,0 +1,564 @@ +.file "rc5-586.s" +.text +.globl RC5_32_encrypt +.type RC5_32_encrypt,@function +.align 16 +RC5_32_encrypt: +.L_RC5_32_encrypt_begin: + + pushl %ebp + pushl %esi + pushl %edi + movl 16(%esp),%edx + movl 20(%esp),%ebp + + movl (%edx),%edi + movl 4(%edx),%esi + pushl %ebx + movl (%ebp),%ebx + addl 4(%ebp),%edi + addl 8(%ebp),%esi + xorl %esi,%edi + movl 12(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 16(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 20(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 24(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 28(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 32(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 36(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 40(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 44(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 48(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 52(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 56(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 60(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 64(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 68(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 72(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + cmpl $8,%ebx + je .L000rc5_exit + xorl %esi,%edi + movl 76(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 80(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 84(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 88(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 92(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 96(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 100(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 104(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + cmpl $12,%ebx + je .L000rc5_exit + xorl %esi,%edi + movl 108(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 112(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 116(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 120(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 124(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 128(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 132(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 136(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi +.L000rc5_exit: + movl %edi,(%edx) + movl %esi,4(%edx) + popl %ebx + popl %edi + popl %esi + popl %ebp + ret +.size RC5_32_encrypt,.-.L_RC5_32_encrypt_begin +.globl RC5_32_decrypt +.type RC5_32_decrypt,@function +.align 16 +RC5_32_decrypt: +.L_RC5_32_decrypt_begin: + + pushl %ebp + pushl %esi + pushl %edi + movl 16(%esp),%edx + movl 20(%esp),%ebp + + movl (%edx),%edi + movl 4(%edx),%esi + pushl %ebx + movl (%ebp),%ebx + cmpl $12,%ebx + je .L001rc5_dec_12 + cmpl $8,%ebx + je .L002rc5_dec_8 + movl 136(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 132(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 128(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 124(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 120(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 116(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 112(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 108(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi +.L001rc5_dec_12: + movl 104(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 100(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 96(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 92(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 88(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 84(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 80(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 76(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi +.L002rc5_dec_8: + movl 72(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 68(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 64(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 60(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 56(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 52(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 48(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 44(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 40(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 36(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 32(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 28(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 24(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 20(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 16(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 12(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + subl 8(%ebp),%esi + subl 4(%ebp),%edi +.L003rc5_exit: + movl %edi,(%edx) + movl %esi,4(%edx) + popl %ebx + popl %edi + popl %esi + popl %ebp + ret +.size RC5_32_decrypt,.-.L_RC5_32_decrypt_begin +.globl RC5_32_cbc_encrypt +.type RC5_32_cbc_encrypt,@function +.align 16 +RC5_32_cbc_encrypt: +.L_RC5_32_cbc_encrypt_begin: + + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 28(%esp),%ebp + + movl 36(%esp),%ebx + movl (%ebx),%esi + movl 4(%ebx),%edi + pushl %edi + pushl %esi + pushl %edi + pushl %esi + movl %esp,%ebx + movl 36(%esp),%esi + movl 40(%esp),%edi + + movl 56(%esp),%ecx + + movl 48(%esp),%eax + pushl %eax + pushl %ebx + cmpl $0,%ecx + jz .L004decrypt + andl $4294967288,%ebp + movl 8(%esp),%eax + movl 12(%esp),%ebx + jz .L005encrypt_finish +.L006encrypt_loop: + movl (%esi),%ecx + movl 4(%esi),%edx + xorl %ecx,%eax + xorl %edx,%ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call .L_RC5_32_encrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz .L006encrypt_loop +.L005encrypt_finish: + movl 52(%esp),%ebp + andl $7,%ebp + jz .L007finish + call .L008PIC_point +.L008PIC_point: + popl %edx + leal .L009cbc_enc_jmp_table-.L008PIC_point(%edx),%ecx + movl (%ecx,%ebp,4),%ebp + addl %edx,%ebp + xorl %ecx,%ecx + xorl %edx,%edx + jmp *%ebp +.L010ej7: + movb 6(%esi),%dh + shll $8,%edx +.L011ej6: + movb 5(%esi),%dh +.L012ej5: + movb 4(%esi),%dl +.L013ej4: + movl (%esi),%ecx + jmp .L014ejend +.L015ej3: + movb 2(%esi),%ch + shll $8,%ecx +.L016ej2: + movb 1(%esi),%ch +.L017ej1: + movb (%esi),%cl +.L014ejend: + xorl %ecx,%eax + xorl %edx,%ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call .L_RC5_32_encrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + jmp .L007finish +.L004decrypt: + andl $4294967288,%ebp + movl 16(%esp),%eax + movl 20(%esp),%ebx + jz .L018decrypt_finish +.L019decrypt_loop: + movl (%esi),%eax + movl 4(%esi),%ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call .L_RC5_32_decrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + movl 16(%esp),%ecx + movl 20(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx + movl %ecx,(%edi) + movl %edx,4(%edi) + movl %eax,16(%esp) + movl %ebx,20(%esp) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz .L019decrypt_loop +.L018decrypt_finish: + movl 52(%esp),%ebp + andl $7,%ebp + jz .L007finish + movl (%esi),%eax + movl 4(%esi),%ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call .L_RC5_32_decrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + movl 16(%esp),%ecx + movl 20(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx +.L020dj7: + rorl $16,%edx + movb %dl,6(%edi) + shrl $16,%edx +.L021dj6: + movb %dh,5(%edi) +.L022dj5: + movb %dl,4(%edi) +.L023dj4: + movl %ecx,(%edi) + jmp .L024djend +.L025dj3: + rorl $16,%ecx + movb %cl,2(%edi) + shll $16,%ecx +.L026dj2: + movb %ch,1(%esi) +.L027dj1: + movb %cl,(%esi) +.L024djend: + jmp .L007finish +.L007finish: + movl 60(%esp),%ecx + addl $24,%esp + movl %eax,(%ecx) + movl %ebx,4(%ecx) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 64 +.L009cbc_enc_jmp_table: +.long 0 +.long .L017ej1-.L008PIC_point +.long .L016ej2-.L008PIC_point +.long .L015ej3-.L008PIC_point +.long .L013ej4-.L008PIC_point +.long .L012ej5-.L008PIC_point +.long .L011ej6-.L008PIC_point +.long .L010ej7-.L008PIC_point +.align 64 +.size RC5_32_cbc_encrypt,.-.L_RC5_32_cbc_encrypt_begin diff --git a/deps/openssl/asm/x86-elf-gas/ripemd/rmd-586.s b/deps/openssl/asm/x86-elf-gas/ripemd/rmd-586.s new file mode 100644 index 0000000000..3c45fb91d0 --- /dev/null +++ b/deps/openssl/asm/x86-elf-gas/ripemd/rmd-586.s @@ -0,0 +1,1965 @@ +.file "../openssl/crypto/ripemd/asm/rmd-586.s" +.text +.globl ripemd160_block_asm_data_order +.type ripemd160_block_asm_data_order,@function +.align 16 +ripemd160_block_asm_data_order: +.L_ripemd160_block_asm_data_order_begin: + movl 4(%esp),%edx + movl 8(%esp),%eax + pushl %esi + movl (%edx),%ecx + pushl %edi + movl 4(%edx),%esi + pushl %ebp + movl 8(%edx),%edi + pushl %ebx + subl $108,%esp +.L000start: + + movl (%eax),%ebx + movl 4(%eax),%ebp + movl %ebx,(%esp) + movl %ebp,4(%esp) + movl 8(%eax),%ebx + movl 12(%eax),%ebp + movl %ebx,8(%esp) + movl %ebp,12(%esp) + movl 16(%eax),%ebx + movl 20(%eax),%ebp + movl %ebx,16(%esp) + movl %ebp,20(%esp) + movl 24(%eax),%ebx + movl 28(%eax),%ebp + movl %ebx,24(%esp) + movl %ebp,28(%esp) + movl 32(%eax),%ebx + movl 36(%eax),%ebp + movl %ebx,32(%esp) + movl %ebp,36(%esp) + movl 40(%eax),%ebx + movl 44(%eax),%ebp + movl %ebx,40(%esp) + movl %ebp,44(%esp) + movl 48(%eax),%ebx + movl 52(%eax),%ebp + movl %ebx,48(%esp) + movl %ebp,52(%esp) + movl 56(%eax),%ebx + movl 60(%eax),%ebp + movl %ebx,56(%esp) + movl %ebp,60(%esp) + movl %edi,%eax + movl 12(%edx),%ebx + movl 16(%edx),%ebp + + xorl %ebx,%eax + movl (%esp),%edx + xorl %esi,%eax + addl %edx,%ecx + roll $10,%edi + addl %eax,%ecx + movl %esi,%eax + roll $11,%ecx + addl %ebp,%ecx + + xorl %edi,%eax + movl 4(%esp),%edx + xorl %ecx,%eax + addl %eax,%ebp + movl %ecx,%eax + roll $10,%esi + addl %edx,%ebp + xorl %esi,%eax + roll $14,%ebp + addl %ebx,%ebp + + movl 8(%esp),%edx + xorl %ebp,%eax + addl %edx,%ebx + roll $10,%ecx + addl %eax,%ebx + movl %ebp,%eax + roll $15,%ebx + addl %edi,%ebx + + xorl %ecx,%eax + movl 12(%esp),%edx + xorl %ebx,%eax + addl %eax,%edi + movl %ebx,%eax + roll $10,%ebp + addl %edx,%edi + xorl %ebp,%eax + roll $12,%edi + addl %esi,%edi + + movl 16(%esp),%edx + xorl %edi,%eax + addl %edx,%esi + roll $10,%ebx + addl %eax,%esi + movl %edi,%eax + roll $5,%esi + addl %ecx,%esi + + xorl %ebx,%eax + movl 20(%esp),%edx + xorl %esi,%eax + addl %eax,%ecx + movl %esi,%eax + roll $10,%edi + addl %edx,%ecx + xorl %edi,%eax + roll $8,%ecx + addl %ebp,%ecx + + movl 24(%esp),%edx + xorl %ecx,%eax + addl %edx,%ebp + roll $10,%esi + addl %eax,%ebp + movl %ecx,%eax + roll $7,%ebp + addl %ebx,%ebp + + xorl %esi,%eax + movl 28(%esp),%edx + xorl %ebp,%eax + addl %eax,%ebx + movl %ebp,%eax + roll $10,%ecx + addl %edx,%ebx + xorl %ecx,%eax + roll $9,%ebx + addl %edi,%ebx + + movl 32(%esp),%edx + xorl %ebx,%eax + addl %edx,%edi + roll $10,%ebp + addl %eax,%edi + movl %ebx,%eax + roll $11,%edi + addl %esi,%edi + + xorl %ebp,%eax + movl 36(%esp),%edx + xorl %edi,%eax + addl %eax,%esi + movl %edi,%eax + roll $10,%ebx + addl %edx,%esi + xorl %ebx,%eax + roll $13,%esi + addl %ecx,%esi + + movl 40(%esp),%edx + xorl %esi,%eax + addl %edx,%ecx + roll $10,%edi + addl %eax,%ecx + movl %esi,%eax + roll $14,%ecx + addl %ebp,%ecx + + xorl %edi,%eax + movl 44(%esp),%edx + xorl %ecx,%eax + addl %eax,%ebp + movl %ecx,%eax + roll $10,%esi + addl %edx,%ebp + xorl %esi,%eax + roll $15,%ebp + addl %ebx,%ebp + + movl 48(%esp),%edx + xorl %ebp,%eax + addl %edx,%ebx + roll $10,%ecx + addl %eax,%ebx + movl %ebp,%eax + roll $6,%ebx + addl %edi,%ebx + + xorl %ecx,%eax + movl 52(%esp),%edx + xorl %ebx,%eax + addl %eax,%edi + movl %ebx,%eax + roll $10,%ebp + addl %edx,%edi + xorl %ebp,%eax + roll $7,%edi + addl %esi,%edi + + movl 56(%esp),%edx + xorl %edi,%eax + addl %edx,%esi + roll $10,%ebx + addl %eax,%esi + movl %edi,%eax + roll $9,%esi + addl %ecx,%esi + + xorl %ebx,%eax + movl 60(%esp),%edx + xorl %esi,%eax + addl %eax,%ecx + movl $-1,%eax + roll $10,%edi + addl %edx,%ecx + movl 28(%esp),%edx + roll $8,%ecx + addl %ebp,%ecx + + addl %edx,%ebp + movl %esi,%edx + subl %ecx,%eax + andl %ecx,%edx + andl %edi,%eax + orl %eax,%edx + movl 16(%esp),%eax + roll $10,%esi + leal 1518500249(%ebp,%edx,1),%ebp + movl $-1,%edx + roll $7,%ebp + addl %ebx,%ebp + + addl %eax,%ebx + movl %ecx,%eax + subl %ebp,%edx + andl %ebp,%eax + andl %esi,%edx + orl %edx,%eax + movl 52(%esp),%edx + roll $10,%ecx + leal 1518500249(%ebx,%eax,1),%ebx + movl $-1,%eax + roll $6,%ebx + addl %edi,%ebx + + addl %edx,%edi + movl %ebp,%edx + subl %ebx,%eax + andl %ebx,%edx + andl %ecx,%eax + orl %eax,%edx + movl 4(%esp),%eax + roll $10,%ebp + leal 1518500249(%edi,%edx,1),%edi + movl $-1,%edx + roll $8,%edi + addl %esi,%edi + + addl %eax,%esi + movl %ebx,%eax + subl %edi,%edx + andl %edi,%eax + andl %ebp,%edx + orl %edx,%eax + movl 40(%esp),%edx + roll $10,%ebx + leal 1518500249(%esi,%eax,1),%esi + movl $-1,%eax + roll $13,%esi + addl %ecx,%esi + + addl %edx,%ecx + movl %edi,%edx + subl %esi,%eax + andl %esi,%edx + andl %ebx,%eax + orl %eax,%edx + movl 24(%esp),%eax + roll $10,%edi + leal 1518500249(%ecx,%edx,1),%ecx + movl $-1,%edx + roll $11,%ecx + addl %ebp,%ecx + + addl %eax,%ebp + movl %esi,%eax + subl %ecx,%edx + andl %ecx,%eax + andl %edi,%edx + orl %edx,%eax + movl 60(%esp),%edx + roll $10,%esi + leal 1518500249(%ebp,%eax,1),%ebp + movl $-1,%eax + roll $9,%ebp + addl %ebx,%ebp + + addl %edx,%ebx + movl %ecx,%edx + subl %ebp,%eax + andl %ebp,%edx + andl %esi,%eax + orl %eax,%edx + movl 12(%esp),%eax + roll $10,%ecx + leal 1518500249(%ebx,%edx,1),%ebx + movl $-1,%edx + roll $7,%ebx + addl %edi,%ebx + + addl %eax,%edi + movl %ebp,%eax + subl %ebx,%edx + andl %ebx,%eax + andl %ecx,%edx + orl %edx,%eax + movl 48(%esp),%edx + roll $10,%ebp + leal 1518500249(%edi,%eax,1),%edi + movl $-1,%eax + roll $15,%edi + addl %esi,%edi + + addl %edx,%esi + movl %ebx,%edx + subl %edi,%eax + andl %edi,%edx + andl %ebp,%eax + orl %eax,%edx + movl (%esp),%eax + roll $10,%ebx + leal 1518500249(%esi,%edx,1),%esi + movl $-1,%edx + roll $7,%esi + addl %ecx,%esi + + addl %eax,%ecx + movl %edi,%eax + subl %esi,%edx + andl %esi,%eax + andl %ebx,%edx + orl %edx,%eax + movl 36(%esp),%edx + roll $10,%edi + leal 1518500249(%ecx,%eax,1),%ecx + movl $-1,%eax + roll $12,%ecx + addl %ebp,%ecx + + addl %edx,%ebp + movl %esi,%edx + subl %ecx,%eax + andl %ecx,%edx + andl %edi,%eax + orl %eax,%edx + movl 20(%esp),%eax + roll $10,%esi + leal 1518500249(%ebp,%edx,1),%ebp + movl $-1,%edx + roll $15,%ebp + addl %ebx,%ebp + + addl %eax,%ebx + movl %ecx,%eax + subl %ebp,%edx + andl %ebp,%eax + andl %esi,%edx + orl %edx,%eax + movl 8(%esp),%edx + roll $10,%ecx + leal 1518500249(%ebx,%eax,1),%ebx + movl $-1,%eax + roll $9,%ebx + addl %edi,%ebx + + addl %edx,%edi + movl %ebp,%edx + subl %ebx,%eax + andl %ebx,%edx + andl %ecx,%eax + orl %eax,%edx + movl 56(%esp),%eax + roll $10,%ebp + leal 1518500249(%edi,%edx,1),%edi + movl $-1,%edx + roll $11,%edi + addl %esi,%edi + + addl %eax,%esi + movl %ebx,%eax + subl %edi,%edx + andl %edi,%eax + andl %ebp,%edx + orl %edx,%eax + movl 44(%esp),%edx + roll $10,%ebx + leal 1518500249(%esi,%eax,1),%esi + movl $-1,%eax + roll $7,%esi + addl %ecx,%esi + + addl %edx,%ecx + movl %edi,%edx + subl %esi,%eax + andl %esi,%edx + andl %ebx,%eax + orl %eax,%edx + movl 32(%esp),%eax + roll $10,%edi + leal 1518500249(%ecx,%edx,1),%ecx + movl $-1,%edx + roll $13,%ecx + addl %ebp,%ecx + + addl %eax,%ebp + movl %esi,%eax + subl %ecx,%edx + andl %ecx,%eax + andl %edi,%edx + orl %edx,%eax + movl $-1,%edx + roll $10,%esi + leal 1518500249(%ebp,%eax,1),%ebp + subl %ecx,%edx + roll $12,%ebp + addl %ebx,%ebp + + movl 12(%esp),%eax + orl %ebp,%edx + addl %eax,%ebx + xorl %esi,%edx + movl $-1,%eax + roll $10,%ecx + leal 1859775393(%ebx,%edx,1),%ebx + subl %ebp,%eax + roll $11,%ebx + addl %edi,%ebx + + movl 40(%esp),%edx + orl %ebx,%eax + addl %edx,%edi + xorl %ecx,%eax + movl $-1,%edx + roll $10,%ebp + leal 1859775393(%edi,%eax,1),%edi + subl %ebx,%edx + roll $13,%edi + addl %esi,%edi + + movl 56(%esp),%eax + orl %edi,%edx + addl %eax,%esi + xorl %ebp,%edx + movl $-1,%eax + roll $10,%ebx + leal 1859775393(%esi,%edx,1),%esi + subl %edi,%eax + roll $6,%esi + addl %ecx,%esi + + movl 16(%esp),%edx + orl %esi,%eax + addl %edx,%ecx + xorl %ebx,%eax + movl $-1,%edx + roll $10,%edi + leal 1859775393(%ecx,%eax,1),%ecx + subl %esi,%edx + roll $7,%ecx + addl %ebp,%ecx + + movl 36(%esp),%eax + orl %ecx,%edx + addl %eax,%ebp + xorl %edi,%edx + movl $-1,%eax + roll $10,%esi + leal 1859775393(%ebp,%edx,1),%ebp + subl %ecx,%eax + roll $14,%ebp + addl %ebx,%ebp + + movl 60(%esp),%edx + orl %ebp,%eax + addl %edx,%ebx + xorl %esi,%eax + movl $-1,%edx + roll $10,%ecx + leal 1859775393(%ebx,%eax,1),%ebx + subl %ebp,%edx + roll $9,%ebx + addl %edi,%ebx + + movl 32(%esp),%eax + orl %ebx,%edx + addl %eax,%edi + xorl %ecx,%edx + movl $-1,%eax + roll $10,%ebp + leal 1859775393(%edi,%edx,1),%edi + subl %ebx,%eax + roll $13,%edi + addl %esi,%edi + + movl 4(%esp),%edx + orl %edi,%eax + addl %edx,%esi + xorl %ebp,%eax + movl $-1,%edx + roll $10,%ebx + leal 1859775393(%esi,%eax,1),%esi + subl %edi,%edx + roll $15,%esi + addl %ecx,%esi + + movl 8(%esp),%eax + orl %esi,%edx + addl %eax,%ecx + xorl %ebx,%edx + movl $-1,%eax + roll $10,%edi + leal 1859775393(%ecx,%edx,1),%ecx + subl %esi,%eax + roll $14,%ecx + addl %ebp,%ecx + + movl 28(%esp),%edx + orl %ecx,%eax + addl %edx,%ebp + xorl %edi,%eax + movl $-1,%edx + roll $10,%esi + leal 1859775393(%ebp,%eax,1),%ebp + subl %ecx,%edx + roll $8,%ebp + addl %ebx,%ebp + + movl (%esp),%eax + orl %ebp,%edx + addl %eax,%ebx + xorl %esi,%edx + movl $-1,%eax + roll $10,%ecx + leal 1859775393(%ebx,%edx,1),%ebx + subl %ebp,%eax + roll $13,%ebx + addl %edi,%ebx + + movl 24(%esp),%edx + orl %ebx,%eax + addl %edx,%edi + xorl %ecx,%eax + movl $-1,%edx + roll $10,%ebp + leal 1859775393(%edi,%eax,1),%edi + subl %ebx,%edx + roll $6,%edi + addl %esi,%edi + + movl 52(%esp),%eax + orl %edi,%edx + addl %eax,%esi + xorl %ebp,%edx + movl $-1,%eax + roll $10,%ebx + leal 1859775393(%esi,%edx,1),%esi + subl %edi,%eax + roll $5,%esi + addl %ecx,%esi + + movl 44(%esp),%edx + orl %esi,%eax + addl %edx,%ecx + xorl %ebx,%eax + movl $-1,%edx + roll $10,%edi + leal 1859775393(%ecx,%eax,1),%ecx + subl %esi,%edx + roll $12,%ecx + addl %ebp,%ecx + + movl 20(%esp),%eax + orl %ecx,%edx + addl %eax,%ebp + xorl %edi,%edx + movl $-1,%eax + roll $10,%esi + leal 1859775393(%ebp,%edx,1),%ebp + subl %ecx,%eax + roll $7,%ebp + addl %ebx,%ebp + + movl 48(%esp),%edx + orl %ebp,%eax + addl %edx,%ebx + xorl %esi,%eax + movl $-1,%edx + roll $10,%ecx + leal 1859775393(%ebx,%eax,1),%ebx + movl %ecx,%eax + roll $5,%ebx + addl %edi,%ebx + + subl %ecx,%edx + andl %ebx,%eax + andl %ebp,%edx + orl %eax,%edx + movl 4(%esp),%eax + roll $10,%ebp + leal 2400959708(%edi,%edx,1),%edi + movl $-1,%edx + addl %eax,%edi + movl %ebp,%eax + roll $11,%edi + addl %esi,%edi + + subl %ebp,%edx + andl %edi,%eax + andl %ebx,%edx + orl %eax,%edx + movl 36(%esp),%eax + roll $10,%ebx + leal 2400959708(%esi,%edx,1),%esi + movl $-1,%edx + addl %eax,%esi + movl %ebx,%eax + roll $12,%esi + addl %ecx,%esi + + subl %ebx,%edx + andl %esi,%eax + andl %edi,%edx + orl %eax,%edx + movl 44(%esp),%eax + roll $10,%edi + leal 2400959708(%ecx,%edx,1),%ecx + movl $-1,%edx + addl %eax,%ecx + movl %edi,%eax + roll $14,%ecx + addl %ebp,%ecx + + subl %edi,%edx + andl %ecx,%eax + andl %esi,%edx + orl %eax,%edx + movl 40(%esp),%eax + roll $10,%esi + leal 2400959708(%ebp,%edx,1),%ebp + movl $-1,%edx + addl %eax,%ebp + movl %esi,%eax + roll $15,%ebp + addl %ebx,%ebp + + subl %esi,%edx + andl %ebp,%eax + andl %ecx,%edx + orl %eax,%edx + movl (%esp),%eax + roll $10,%ecx + leal 2400959708(%ebx,%edx,1),%ebx + movl $-1,%edx + addl %eax,%ebx + movl %ecx,%eax + roll $14,%ebx + addl %edi,%ebx + + subl %ecx,%edx + andl %ebx,%eax + andl %ebp,%edx + orl %eax,%edx + movl 32(%esp),%eax + roll $10,%ebp + leal 2400959708(%edi,%edx,1),%edi + movl $-1,%edx + addl %eax,%edi + movl %ebp,%eax + roll $15,%edi + addl %esi,%edi + + subl %ebp,%edx + andl %edi,%eax + andl %ebx,%edx + orl %eax,%edx + movl 48(%esp),%eax + roll $10,%ebx + leal 2400959708(%esi,%edx,1),%esi + movl $-1,%edx + addl %eax,%esi + movl %ebx,%eax + roll $9,%esi + addl %ecx,%esi + + subl %ebx,%edx + andl %esi,%eax + andl %edi,%edx + orl %eax,%edx + movl 16(%esp),%eax + roll $10,%edi + leal 2400959708(%ecx,%edx,1),%ecx + movl $-1,%edx + addl %eax,%ecx + movl %edi,%eax + roll $8,%ecx + addl %ebp,%ecx + + subl %edi,%edx + andl %ecx,%eax + andl %esi,%edx + orl %eax,%edx + movl 52(%esp),%eax + roll $10,%esi + leal 2400959708(%ebp,%edx,1),%ebp + movl $-1,%edx + addl %eax,%ebp + movl %esi,%eax + roll $9,%ebp + addl %ebx,%ebp + + subl %esi,%edx + andl %ebp,%eax + andl %ecx,%edx + orl %eax,%edx + movl 12(%esp),%eax + roll $10,%ecx + leal 2400959708(%ebx,%edx,1),%ebx + movl $-1,%edx + addl %eax,%ebx + movl %ecx,%eax + roll $14,%ebx + addl %edi,%ebx + + subl %ecx,%edx + andl %ebx,%eax + andl %ebp,%edx + orl %eax,%edx + movl 28(%esp),%eax + roll $10,%ebp + leal 2400959708(%edi,%edx,1),%edi + movl $-1,%edx + addl %eax,%edi + movl %ebp,%eax + roll $5,%edi + addl %esi,%edi + + subl %ebp,%edx + andl %edi,%eax + andl %ebx,%edx + orl %eax,%edx + movl 60(%esp),%eax + roll $10,%ebx + leal 2400959708(%esi,%edx,1),%esi + movl $-1,%edx + addl %eax,%esi + movl %ebx,%eax + roll $6,%esi + addl %ecx,%esi + + subl %ebx,%edx + andl %esi,%eax + andl %edi,%edx + orl %eax,%edx + movl 56(%esp),%eax + roll $10,%edi + leal 2400959708(%ecx,%edx,1),%ecx + movl $-1,%edx + addl %eax,%ecx + movl %edi,%eax + roll $8,%ecx + addl %ebp,%ecx + + subl %edi,%edx + andl %ecx,%eax + andl %esi,%edx + orl %eax,%edx + movl 20(%esp),%eax + roll $10,%esi + leal 2400959708(%ebp,%edx,1),%ebp + movl $-1,%edx + addl %eax,%ebp + movl %esi,%eax + roll $6,%ebp + addl %ebx,%ebp + + subl %esi,%edx + andl %ebp,%eax + andl %ecx,%edx + orl %eax,%edx + movl 24(%esp),%eax + roll $10,%ecx + leal 2400959708(%ebx,%edx,1),%ebx + movl $-1,%edx + addl %eax,%ebx + movl %ecx,%eax + roll $5,%ebx + addl %edi,%ebx + + subl %ecx,%edx + andl %ebx,%eax + andl %ebp,%edx + orl %eax,%edx + movl 8(%esp),%eax + roll $10,%ebp + leal 2400959708(%edi,%edx,1),%edi + movl $-1,%edx + addl %eax,%edi + subl %ebp,%edx + roll $12,%edi + addl %esi,%edi + + movl 16(%esp),%eax + orl %ebx,%edx + addl %eax,%esi + xorl %edi,%edx + movl $-1,%eax + roll $10,%ebx + leal 2840853838(%esi,%edx,1),%esi + subl %ebx,%eax + roll $9,%esi + addl %ecx,%esi + + movl (%esp),%edx + orl %edi,%eax + addl %edx,%ecx + xorl %esi,%eax + movl $-1,%edx + roll $10,%edi + leal 2840853838(%ecx,%eax,1),%ecx + subl %edi,%edx + roll $15,%ecx + addl %ebp,%ecx + + movl 20(%esp),%eax + orl %esi,%edx + addl %eax,%ebp + xorl %ecx,%edx + movl $-1,%eax + roll $10,%esi + leal 2840853838(%ebp,%edx,1),%ebp + subl %esi,%eax + roll $5,%ebp + addl %ebx,%ebp + + movl 36(%esp),%edx + orl %ecx,%eax + addl %edx,%ebx + xorl %ebp,%eax + movl $-1,%edx + roll $10,%ecx + leal 2840853838(%ebx,%eax,1),%ebx + subl %ecx,%edx + roll $11,%ebx + addl %edi,%ebx + + movl 28(%esp),%eax + orl %ebp,%edx + addl %eax,%edi + xorl %ebx,%edx + movl $-1,%eax + roll $10,%ebp + leal 2840853838(%edi,%edx,1),%edi + subl %ebp,%eax + roll $6,%edi + addl %esi,%edi + + movl 48(%esp),%edx + orl %ebx,%eax + addl %edx,%esi + xorl %edi,%eax + movl $-1,%edx + roll $10,%ebx + leal 2840853838(%esi,%eax,1),%esi + subl %ebx,%edx + roll $8,%esi + addl %ecx,%esi + + movl 8(%esp),%eax + orl %edi,%edx + addl %eax,%ecx + xorl %esi,%edx + movl $-1,%eax + roll $10,%edi + leal 2840853838(%ecx,%edx,1),%ecx + subl %edi,%eax + roll $13,%ecx + addl %ebp,%ecx + + movl 40(%esp),%edx + orl %esi,%eax + addl %edx,%ebp + xorl %ecx,%eax + movl $-1,%edx + roll $10,%esi + leal 2840853838(%ebp,%eax,1),%ebp + subl %esi,%edx + roll $12,%ebp + addl %ebx,%ebp + + movl 56(%esp),%eax + orl %ecx,%edx + addl %eax,%ebx + xorl %ebp,%edx + movl $-1,%eax + roll $10,%ecx + leal 2840853838(%ebx,%edx,1),%ebx + subl %ecx,%eax + roll $5,%ebx + addl %edi,%ebx + + movl 4(%esp),%edx + orl %ebp,%eax + addl %edx,%edi + xorl %ebx,%eax + movl $-1,%edx + roll $10,%ebp + leal 2840853838(%edi,%eax,1),%edi + subl %ebp,%edx + roll $12,%edi + addl %esi,%edi + + movl 12(%esp),%eax + orl %ebx,%edx + addl %eax,%esi + xorl %edi,%edx + movl $-1,%eax + roll $10,%ebx + leal 2840853838(%esi,%edx,1),%esi + subl %ebx,%eax + roll $13,%esi + addl %ecx,%esi + + movl 32(%esp),%edx + orl %edi,%eax + addl %edx,%ecx + xorl %esi,%eax + movl $-1,%edx + roll $10,%edi + leal 2840853838(%ecx,%eax,1),%ecx + subl %edi,%edx + roll $14,%ecx + addl %ebp,%ecx + + movl 44(%esp),%eax + orl %esi,%edx + addl %eax,%ebp + xorl %ecx,%edx + movl $-1,%eax + roll $10,%esi + leal 2840853838(%ebp,%edx,1),%ebp + subl %esi,%eax + roll $11,%ebp + addl %ebx,%ebp + + movl 24(%esp),%edx + orl %ecx,%eax + addl %edx,%ebx + xorl %ebp,%eax + movl $-1,%edx + roll $10,%ecx + leal 2840853838(%ebx,%eax,1),%ebx + subl %ecx,%edx + roll $8,%ebx + addl %edi,%ebx + + movl 60(%esp),%eax + orl %ebp,%edx + addl %eax,%edi + xorl %ebx,%edx + movl $-1,%eax + roll $10,%ebp + leal 2840853838(%edi,%edx,1),%edi + subl %ebp,%eax + roll $5,%edi + addl %esi,%edi + + movl 52(%esp),%edx + orl %ebx,%eax + addl %edx,%esi + xorl %edi,%eax + movl 128(%esp),%edx + roll $10,%ebx + leal 2840853838(%esi,%eax,1),%esi + movl %ecx,64(%esp) + roll $6,%esi + addl %ecx,%esi + movl (%edx),%ecx + movl %esi,68(%esp) + movl %edi,72(%esp) + movl 4(%edx),%esi + movl %ebx,76(%esp) + movl 8(%edx),%edi + movl %ebp,80(%esp) + movl 12(%edx),%ebx + movl 16(%edx),%ebp + + movl $-1,%edx + subl %ebx,%edx + movl 20(%esp),%eax + orl %edi,%edx + addl %eax,%ecx + xorl %esi,%edx + movl $-1,%eax + roll $10,%edi + leal 1352829926(%ecx,%edx,1),%ecx + subl %edi,%eax + roll $8,%ecx + addl %ebp,%ecx + + movl 56(%esp),%edx + orl %esi,%eax + addl %edx,%ebp + xorl %ecx,%eax + movl $-1,%edx + roll $10,%esi + leal 1352829926(%ebp,%eax,1),%ebp + subl %esi,%edx + roll $9,%ebp + addl %ebx,%ebp + + movl 28(%esp),%eax + orl %ecx,%edx + addl %eax,%ebx + xorl %ebp,%edx + movl $-1,%eax + roll $10,%ecx + leal 1352829926(%ebx,%edx,1),%ebx + subl %ecx,%eax + roll $9,%ebx + addl %edi,%ebx + + movl (%esp),%edx + orl %ebp,%eax + addl %edx,%edi + xorl %ebx,%eax + movl $-1,%edx + roll $10,%ebp + leal 1352829926(%edi,%eax,1),%edi + subl %ebp,%edx + roll $11,%edi + addl %esi,%edi + + movl 36(%esp),%eax + orl %ebx,%edx + addl %eax,%esi + xorl %edi,%edx + movl $-1,%eax + roll $10,%ebx + leal 1352829926(%esi,%edx,1),%esi + subl %ebx,%eax + roll $13,%esi + addl %ecx,%esi + + movl 8(%esp),%edx + orl %edi,%eax + addl %edx,%ecx + xorl %esi,%eax + movl $-1,%edx + roll $10,%edi + leal 1352829926(%ecx,%eax,1),%ecx + subl %edi,%edx + roll $15,%ecx + addl %ebp,%ecx + + movl 44(%esp),%eax + orl %esi,%edx + addl %eax,%ebp + xorl %ecx,%edx + movl $-1,%eax + roll $10,%esi + leal 1352829926(%ebp,%edx,1),%ebp + subl %esi,%eax + roll $15,%ebp + addl %ebx,%ebp + + movl 16(%esp),%edx + orl %ecx,%eax + addl %edx,%ebx + xorl %ebp,%eax + movl $-1,%edx + roll $10,%ecx + leal 1352829926(%ebx,%eax,1),%ebx + subl %ecx,%edx + roll $5,%ebx + addl %edi,%ebx + + movl 52(%esp),%eax + orl %ebp,%edx + addl %eax,%edi + xorl %ebx,%edx + movl $-1,%eax + roll $10,%ebp + leal 1352829926(%edi,%edx,1),%edi + subl %ebp,%eax + roll $7,%edi + addl %esi,%edi + + movl 24(%esp),%edx + orl %ebx,%eax + addl %edx,%esi + xorl %edi,%eax + movl $-1,%edx + roll $10,%ebx + leal 1352829926(%esi,%eax,1),%esi + subl %ebx,%edx + roll $7,%esi + addl %ecx,%esi + + movl 60(%esp),%eax + orl %edi,%edx + addl %eax,%ecx + xorl %esi,%edx + movl $-1,%eax + roll $10,%edi + leal 1352829926(%ecx,%edx,1),%ecx + subl %edi,%eax + roll $8,%ecx + addl %ebp,%ecx + + movl 32(%esp),%edx + orl %esi,%eax + addl %edx,%ebp + xorl %ecx,%eax + movl $-1,%edx + roll $10,%esi + leal 1352829926(%ebp,%eax,1),%ebp + subl %esi,%edx + roll $11,%ebp + addl %ebx,%ebp + + movl 4(%esp),%eax + orl %ecx,%edx + addl %eax,%ebx + xorl %ebp,%edx + movl $-1,%eax + roll $10,%ecx + leal 1352829926(%ebx,%edx,1),%ebx + subl %ecx,%eax + roll $14,%ebx + addl %edi,%ebx + + movl 40(%esp),%edx + orl %ebp,%eax + addl %edx,%edi + xorl %ebx,%eax + movl $-1,%edx + roll $10,%ebp + leal 1352829926(%edi,%eax,1),%edi + subl %ebp,%edx + roll $14,%edi + addl %esi,%edi + + movl 12(%esp),%eax + orl %ebx,%edx + addl %eax,%esi + xorl %edi,%edx + movl $-1,%eax + roll $10,%ebx + leal 1352829926(%esi,%edx,1),%esi + subl %ebx,%eax + roll $12,%esi + addl %ecx,%esi + + movl 48(%esp),%edx + orl %edi,%eax + addl %edx,%ecx + xorl %esi,%eax + movl $-1,%edx + roll $10,%edi + leal 1352829926(%ecx,%eax,1),%ecx + movl %edi,%eax + roll $6,%ecx + addl %ebp,%ecx + + subl %edi,%edx + andl %ecx,%eax + andl %esi,%edx + orl %eax,%edx + movl 24(%esp),%eax + roll $10,%esi + leal 1548603684(%ebp,%edx,1),%ebp + movl $-1,%edx + addl %eax,%ebp + movl %esi,%eax + roll $9,%ebp + addl %ebx,%ebp + + subl %esi,%edx + andl %ebp,%eax + andl %ecx,%edx + orl %eax,%edx + movl 44(%esp),%eax + roll $10,%ecx + leal 1548603684(%ebx,%edx,1),%ebx + movl $-1,%edx + addl %eax,%ebx + movl %ecx,%eax + roll $13,%ebx + addl %edi,%ebx + + subl %ecx,%edx + andl %ebx,%eax + andl %ebp,%edx + orl %eax,%edx + movl 12(%esp),%eax + roll $10,%ebp + leal 1548603684(%edi,%edx,1),%edi + movl $-1,%edx + addl %eax,%edi + movl %ebp,%eax + roll $15,%edi + addl %esi,%edi + + subl %ebp,%edx + andl %edi,%eax + andl %ebx,%edx + orl %eax,%edx + movl 28(%esp),%eax + roll $10,%ebx + leal 1548603684(%esi,%edx,1),%esi + movl $-1,%edx + addl %eax,%esi + movl %ebx,%eax + roll $7,%esi + addl %ecx,%esi + + subl %ebx,%edx + andl %esi,%eax + andl %edi,%edx + orl %eax,%edx + movl (%esp),%eax + roll $10,%edi + leal 1548603684(%ecx,%edx,1),%ecx + movl $-1,%edx + addl %eax,%ecx + movl %edi,%eax + roll $12,%ecx + addl %ebp,%ecx + + subl %edi,%edx + andl %ecx,%eax + andl %esi,%edx + orl %eax,%edx + movl 52(%esp),%eax + roll $10,%esi + leal 1548603684(%ebp,%edx,1),%ebp + movl $-1,%edx + addl %eax,%ebp + movl %esi,%eax + roll $8,%ebp + addl %ebx,%ebp + + subl %esi,%edx + andl %ebp,%eax + andl %ecx,%edx + orl %eax,%edx + movl 20(%esp),%eax + roll $10,%ecx + leal 1548603684(%ebx,%edx,1),%ebx + movl $-1,%edx + addl %eax,%ebx + movl %ecx,%eax + roll $9,%ebx + addl %edi,%ebx + + subl %ecx,%edx + andl %ebx,%eax + andl %ebp,%edx + orl %eax,%edx + movl 40(%esp),%eax + roll $10,%ebp + leal 1548603684(%edi,%edx,1),%edi + movl $-1,%edx + addl %eax,%edi + movl %ebp,%eax + roll $11,%edi + addl %esi,%edi + + subl %ebp,%edx + andl %edi,%eax + andl %ebx,%edx + orl %eax,%edx + movl 56(%esp),%eax + roll $10,%ebx + leal 1548603684(%esi,%edx,1),%esi + movl $-1,%edx + addl %eax,%esi + movl %ebx,%eax + roll $7,%esi + addl %ecx,%esi + + subl %ebx,%edx + andl %esi,%eax + andl %edi,%edx + orl %eax,%edx + movl 60(%esp),%eax + roll $10,%edi + leal 1548603684(%ecx,%edx,1),%ecx + movl $-1,%edx + addl %eax,%ecx + movl %edi,%eax + roll $7,%ecx + addl %ebp,%ecx + + subl %edi,%edx + andl %ecx,%eax + andl %esi,%edx + orl %eax,%edx + movl 32(%esp),%eax + roll $10,%esi + leal 1548603684(%ebp,%edx,1),%ebp + movl $-1,%edx + addl %eax,%ebp + movl %esi,%eax + roll $12,%ebp + addl %ebx,%ebp + + subl %esi,%edx + andl %ebp,%eax + andl %ecx,%edx + orl %eax,%edx + movl 48(%esp),%eax + roll $10,%ecx + leal 1548603684(%ebx,%edx,1),%ebx + movl $-1,%edx + addl %eax,%ebx + movl %ecx,%eax + roll $7,%ebx + addl %edi,%ebx + + subl %ecx,%edx + andl %ebx,%eax + andl %ebp,%edx + orl %eax,%edx + movl 16(%esp),%eax + roll $10,%ebp + leal 1548603684(%edi,%edx,1),%edi + movl $-1,%edx + addl %eax,%edi + movl %ebp,%eax + roll $6,%edi + addl %esi,%edi + + subl %ebp,%edx + andl %edi,%eax + andl %ebx,%edx + orl %eax,%edx + movl 36(%esp),%eax + roll $10,%ebx + leal 1548603684(%esi,%edx,1),%esi + movl $-1,%edx + addl %eax,%esi + movl %ebx,%eax + roll $15,%esi + addl %ecx,%esi + + subl %ebx,%edx + andl %esi,%eax + andl %edi,%edx + orl %eax,%edx + movl 4(%esp),%eax + roll $10,%edi + leal 1548603684(%ecx,%edx,1),%ecx + movl $-1,%edx + addl %eax,%ecx + movl %edi,%eax + roll $13,%ecx + addl %ebp,%ecx + + subl %edi,%edx + andl %ecx,%eax + andl %esi,%edx + orl %eax,%edx + movl 8(%esp),%eax + roll $10,%esi + leal 1548603684(%ebp,%edx,1),%ebp + movl $-1,%edx + addl %eax,%ebp + subl %ecx,%edx + roll $11,%ebp + addl %ebx,%ebp + + movl 60(%esp),%eax + orl %ebp,%edx + addl %eax,%ebx + xorl %esi,%edx + movl $-1,%eax + roll $10,%ecx + leal 1836072691(%ebx,%edx,1),%ebx + subl %ebp,%eax + roll $9,%ebx + addl %edi,%ebx + + movl 20(%esp),%edx + orl %ebx,%eax + addl %edx,%edi + xorl %ecx,%eax + movl $-1,%edx + roll $10,%ebp + leal 1836072691(%edi,%eax,1),%edi + subl %ebx,%edx + roll $7,%edi + addl %esi,%edi + + movl 4(%esp),%eax + orl %edi,%edx + addl %eax,%esi + xorl %ebp,%edx + movl $-1,%eax + roll $10,%ebx + leal 1836072691(%esi,%edx,1),%esi + subl %edi,%eax + roll $15,%esi + addl %ecx,%esi + + movl 12(%esp),%edx + orl %esi,%eax + addl %edx,%ecx + xorl %ebx,%eax + movl $-1,%edx + roll $10,%edi + leal 1836072691(%ecx,%eax,1),%ecx + subl %esi,%edx + roll $11,%ecx + addl %ebp,%ecx + + movl 28(%esp),%eax + orl %ecx,%edx + addl %eax,%ebp + xorl %edi,%edx + movl $-1,%eax + roll $10,%esi + leal 1836072691(%ebp,%edx,1),%ebp + subl %ecx,%eax + roll $8,%ebp + addl %ebx,%ebp + + movl 56(%esp),%edx + orl %ebp,%eax + addl %edx,%ebx + xorl %esi,%eax + movl $-1,%edx + roll $10,%ecx + leal 1836072691(%ebx,%eax,1),%ebx + subl %ebp,%edx + roll $6,%ebx + addl %edi,%ebx + + movl 24(%esp),%eax + orl %ebx,%edx + addl %eax,%edi + xorl %ecx,%edx + movl $-1,%eax + roll $10,%ebp + leal 1836072691(%edi,%edx,1),%edi + subl %ebx,%eax + roll $6,%edi + addl %esi,%edi + + movl 36(%esp),%edx + orl %edi,%eax + addl %edx,%esi + xorl %ebp,%eax + movl $-1,%edx + roll $10,%ebx + leal 1836072691(%esi,%eax,1),%esi + subl %edi,%edx + roll $14,%esi + addl %ecx,%esi + + movl 44(%esp),%eax + orl %esi,%edx + addl %eax,%ecx + xorl %ebx,%edx + movl $-1,%eax + roll $10,%edi + leal 1836072691(%ecx,%edx,1),%ecx + subl %esi,%eax + roll $12,%ecx + addl %ebp,%ecx + + movl 32(%esp),%edx + orl %ecx,%eax + addl %edx,%ebp + xorl %edi,%eax + movl $-1,%edx + roll $10,%esi + leal 1836072691(%ebp,%eax,1),%ebp + subl %ecx,%edx + roll $13,%ebp + addl %ebx,%ebp + + movl 48(%esp),%eax + orl %ebp,%edx + addl %eax,%ebx + xorl %esi,%edx + movl $-1,%eax + roll $10,%ecx + leal 1836072691(%ebx,%edx,1),%ebx + subl %ebp,%eax + roll $5,%ebx + addl %edi,%ebx + + movl 8(%esp),%edx + orl %ebx,%eax + addl %edx,%edi + xorl %ecx,%eax + movl $-1,%edx + roll $10,%ebp + leal 1836072691(%edi,%eax,1),%edi + subl %ebx,%edx + roll $14,%edi + addl %esi,%edi + + movl 40(%esp),%eax + orl %edi,%edx + addl %eax,%esi + xorl %ebp,%edx + movl $-1,%eax + roll $10,%ebx + leal 1836072691(%esi,%edx,1),%esi + subl %edi,%eax + roll $13,%esi + addl %ecx,%esi + + movl (%esp),%edx + orl %esi,%eax + addl %edx,%ecx + xorl %ebx,%eax + movl $-1,%edx + roll $10,%edi + leal 1836072691(%ecx,%eax,1),%ecx + subl %esi,%edx + roll $13,%ecx + addl %ebp,%ecx + + movl 16(%esp),%eax + orl %ecx,%edx + addl %eax,%ebp + xorl %edi,%edx + movl $-1,%eax + roll $10,%esi + leal 1836072691(%ebp,%edx,1),%ebp + subl %ecx,%eax + roll $7,%ebp + addl %ebx,%ebp + + movl 52(%esp),%edx + orl %ebp,%eax + addl %edx,%ebx + xorl %esi,%eax + movl 32(%esp),%edx + roll $10,%ecx + leal 1836072691(%ebx,%eax,1),%ebx + movl $-1,%eax + roll $5,%ebx + addl %edi,%ebx + + addl %edx,%edi + movl %ebp,%edx + subl %ebx,%eax + andl %ebx,%edx + andl %ecx,%eax + orl %eax,%edx + movl 24(%esp),%eax + roll $10,%ebp + leal 2053994217(%edi,%edx,1),%edi + movl $-1,%edx + roll $15,%edi + addl %esi,%edi + + addl %eax,%esi + movl %ebx,%eax + subl %edi,%edx + andl %edi,%eax + andl %ebp,%edx + orl %edx,%eax + movl 16(%esp),%edx + roll $10,%ebx + leal 2053994217(%esi,%eax,1),%esi + movl $-1,%eax + roll $5,%esi + addl %ecx,%esi + + addl %edx,%ecx + movl %edi,%edx + subl %esi,%eax + andl %esi,%edx + andl %ebx,%eax + orl %eax,%edx + movl 4(%esp),%eax + roll $10,%edi + leal 2053994217(%ecx,%edx,1),%ecx + movl $-1,%edx + roll $8,%ecx + addl %ebp,%ecx + + addl %eax,%ebp + movl %esi,%eax + subl %ecx,%edx + andl %ecx,%eax + andl %edi,%edx + orl %edx,%eax + movl 12(%esp),%edx + roll $10,%esi + leal 2053994217(%ebp,%eax,1),%ebp + movl $-1,%eax + roll $11,%ebp + addl %ebx,%ebp + + addl %edx,%ebx + movl %ecx,%edx + subl %ebp,%eax + andl %ebp,%edx + andl %esi,%eax + orl %eax,%edx + movl 44(%esp),%eax + roll $10,%ecx + leal 2053994217(%ebx,%edx,1),%ebx + movl $-1,%edx + roll $14,%ebx + addl %edi,%ebx + + addl %eax,%edi + movl %ebp,%eax + subl %ebx,%edx + andl %ebx,%eax + andl %ecx,%edx + orl %edx,%eax + movl 60(%esp),%edx + roll $10,%ebp + leal 2053994217(%edi,%eax,1),%edi + movl $-1,%eax + roll $14,%edi + addl %esi,%edi + + addl %edx,%esi + movl %ebx,%edx + subl %edi,%eax + andl %edi,%edx + andl %ebp,%eax + orl %eax,%edx + movl (%esp),%eax + roll $10,%ebx + leal 2053994217(%esi,%edx,1),%esi + movl $-1,%edx + roll $6,%esi + addl %ecx,%esi + + addl %eax,%ecx + movl %edi,%eax + subl %esi,%edx + andl %esi,%eax + andl %ebx,%edx + orl %edx,%eax + movl 20(%esp),%edx + roll $10,%edi + leal 2053994217(%ecx,%eax,1),%ecx + movl $-1,%eax + roll $14,%ecx + addl %ebp,%ecx + + addl %edx,%ebp + movl %esi,%edx + subl %ecx,%eax + andl %ecx,%edx + andl %edi,%eax + orl %eax,%edx + movl 48(%esp),%eax + roll $10,%esi + leal 2053994217(%ebp,%edx,1),%ebp + movl $-1,%edx + roll $6,%ebp + addl %ebx,%ebp + + addl %eax,%ebx + movl %ecx,%eax + subl %ebp,%edx + andl %ebp,%eax + andl %esi,%edx + orl %edx,%eax + movl 8(%esp),%edx + roll $10,%ecx + leal 2053994217(%ebx,%eax,1),%ebx + movl $-1,%eax + roll $9,%ebx + addl %edi,%ebx + + addl %edx,%edi + movl %ebp,%edx + subl %ebx,%eax + andl %ebx,%edx + andl %ecx,%eax + orl %eax,%edx + movl 52(%esp),%eax + roll $10,%ebp + leal 2053994217(%edi,%edx,1),%edi + movl $-1,%edx + roll $12,%edi + addl %esi,%edi + + addl %eax,%esi + movl %ebx,%eax + subl %edi,%edx + andl %edi,%eax + andl %ebp,%edx + orl %edx,%eax + movl 36(%esp),%edx + roll $10,%ebx + leal 2053994217(%esi,%eax,1),%esi + movl $-1,%eax + roll $9,%esi + addl %ecx,%esi + + addl %edx,%ecx + movl %edi,%edx + subl %esi,%eax + andl %esi,%edx + andl %ebx,%eax + orl %eax,%edx + movl 28(%esp),%eax + roll $10,%edi + leal 2053994217(%ecx,%edx,1),%ecx + movl $-1,%edx + roll $12,%ecx + addl %ebp,%ecx + + addl %eax,%ebp + movl %esi,%eax + subl %ecx,%edx + andl %ecx,%eax + andl %edi,%edx + orl %edx,%eax + movl 40(%esp),%edx + roll $10,%esi + leal 2053994217(%ebp,%eax,1),%ebp + movl $-1,%eax + roll $5,%ebp + addl %ebx,%ebp + + addl %edx,%ebx + movl %ecx,%edx + subl %ebp,%eax + andl %ebp,%edx + andl %esi,%eax + orl %eax,%edx + movl 56(%esp),%eax + roll $10,%ecx + leal 2053994217(%ebx,%edx,1),%ebx + movl $-1,%edx + roll $15,%ebx + addl %edi,%ebx + + addl %eax,%edi + movl %ebp,%eax + subl %ebx,%edx + andl %ebx,%eax + andl %ecx,%edx + orl %eax,%edx + movl %ebx,%eax + roll $10,%ebp + leal 2053994217(%edi,%edx,1),%edi + xorl %ebp,%eax + roll $8,%edi + addl %esi,%edi + + movl 48(%esp),%edx + xorl %edi,%eax + addl %edx,%esi + roll $10,%ebx + addl %eax,%esi + movl %edi,%eax + roll $8,%esi + addl %ecx,%esi + + xorl %ebx,%eax + movl 60(%esp),%edx + xorl %esi,%eax + addl %eax,%ecx + movl %esi,%eax + roll $10,%edi + addl %edx,%ecx + xorl %edi,%eax + roll $5,%ecx + addl %ebp,%ecx + + movl 40(%esp),%edx + xorl %ecx,%eax + addl %edx,%ebp + roll $10,%esi + addl %eax,%ebp + movl %ecx,%eax + roll $12,%ebp + addl %ebx,%ebp + + xorl %esi,%eax + movl 16(%esp),%edx + xorl %ebp,%eax + addl %eax,%ebx + movl %ebp,%eax + roll $10,%ecx + addl %edx,%ebx + xorl %ecx,%eax + roll $9,%ebx + addl %edi,%ebx + + movl 4(%esp),%edx + xorl %ebx,%eax + addl %edx,%edi + roll $10,%ebp + addl %eax,%edi + movl %ebx,%eax + roll $12,%edi + addl %esi,%edi + + xorl %ebp,%eax + movl 20(%esp),%edx + xorl %edi,%eax + addl %eax,%esi + movl %edi,%eax + roll $10,%ebx + addl %edx,%esi + xorl %ebx,%eax + roll $5,%esi + addl %ecx,%esi + + movl 32(%esp),%edx + xorl %esi,%eax + addl %edx,%ecx + roll $10,%edi + addl %eax,%ecx + movl %esi,%eax + roll $14,%ecx + addl %ebp,%ecx + + xorl %edi,%eax + movl 28(%esp),%edx + xorl %ecx,%eax + addl %eax,%ebp + movl %ecx,%eax + roll $10,%esi + addl %edx,%ebp + xorl %esi,%eax + roll $6,%ebp + addl %ebx,%ebp + + movl 24(%esp),%edx + xorl %ebp,%eax + addl %edx,%ebx + roll $10,%ecx + addl %eax,%ebx + movl %ebp,%eax + roll $8,%ebx + addl %edi,%ebx + + xorl %ecx,%eax + movl 8(%esp),%edx + xorl %ebx,%eax + addl %eax,%edi + movl %ebx,%eax + roll $10,%ebp + addl %edx,%edi + xorl %ebp,%eax + roll $13,%edi + addl %esi,%edi + + movl 52(%esp),%edx + xorl %edi,%eax + addl %edx,%esi + roll $10,%ebx + addl %eax,%esi + movl %edi,%eax + roll $6,%esi + addl %ecx,%esi + + xorl %ebx,%eax + movl 56(%esp),%edx + xorl %esi,%eax + addl %eax,%ecx + movl %esi,%eax + roll $10,%edi + addl %edx,%ecx + xorl %edi,%eax + roll $5,%ecx + addl %ebp,%ecx + + movl (%esp),%edx + xorl %ecx,%eax + addl %edx,%ebp + roll $10,%esi + addl %eax,%ebp + movl %ecx,%eax + roll $15,%ebp + addl %ebx,%ebp + + xorl %esi,%eax + movl 12(%esp),%edx + xorl %ebp,%eax + addl %eax,%ebx + movl %ebp,%eax + roll $10,%ecx + addl %edx,%ebx + xorl %ecx,%eax + roll $13,%ebx + addl %edi,%ebx + + movl 36(%esp),%edx + xorl %ebx,%eax + addl %edx,%edi + roll $10,%ebp + addl %eax,%edi + movl %ebx,%eax + roll $11,%edi + addl %esi,%edi + + xorl %ebp,%eax + movl 44(%esp),%edx + xorl %edi,%eax + addl %eax,%esi + roll $10,%ebx + addl %edx,%esi + movl 128(%esp),%edx + roll $11,%esi + addl %ecx,%esi + movl 4(%edx),%eax + addl %eax,%ebx + movl 72(%esp),%eax + addl %eax,%ebx + movl 8(%edx),%eax + addl %eax,%ebp + movl 76(%esp),%eax + addl %eax,%ebp + movl 12(%edx),%eax + addl %eax,%ecx + movl 80(%esp),%eax + addl %eax,%ecx + movl 16(%edx),%eax + addl %eax,%esi + movl 64(%esp),%eax + addl %eax,%esi + movl (%edx),%eax + addl %eax,%edi + movl 68(%esp),%eax + addl %eax,%edi + movl 136(%esp),%eax + movl %ebx,(%edx) + movl %ebp,4(%edx) + movl %ecx,8(%edx) + subl $1,%eax + movl %esi,12(%edx) + movl %edi,16(%edx) + jle .L001get_out + movl %eax,136(%esp) + movl %ecx,%edi + movl 132(%esp),%eax + movl %ebx,%ecx + addl $64,%eax + movl %ebp,%esi + movl %eax,132(%esp) + jmp .L000start +.L001get_out: + addl $108,%esp + popl %ebx + popl %ebp + popl %edi + popl %esi + ret +.size ripemd160_block_asm_data_order,.-.L_ripemd160_block_asm_data_order_begin diff --git a/deps/openssl/asm/x86-elf-gas/sha/sha1-586.s b/deps/openssl/asm/x86-elf-gas/sha/sha1-586.s new file mode 100644 index 0000000000..cccb1aba85 --- /dev/null +++ b/deps/openssl/asm/x86-elf-gas/sha/sha1-586.s @@ -0,0 +1,1442 @@ +.file "sha1-586.s" +.text +.globl sha1_block_data_order +.type sha1_block_data_order,@function +.align 16 +sha1_block_data_order: +.L_sha1_block_data_order_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%ebp + movl 24(%esp),%esi + movl 28(%esp),%eax + subl $64,%esp + shll $6,%eax + addl %esi,%eax + movl %eax,92(%esp) + movl 16(%ebp),%edi +.align 16 +.L000loop: + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,(%esp) + movl %ebx,4(%esp) + movl %ecx,8(%esp) + movl %edx,12(%esp) + movl 16(%esi),%eax + movl 20(%esi),%ebx + movl 24(%esi),%ecx + movl 28(%esi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,16(%esp) + movl %ebx,20(%esp) + movl %ecx,24(%esp) + movl %edx,28(%esp) + movl 32(%esi),%eax + movl 36(%esi),%ebx + movl 40(%esi),%ecx + movl 44(%esi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,32(%esp) + movl %ebx,36(%esp) + movl %ecx,40(%esp) + movl %edx,44(%esp) + movl 48(%esi),%eax + movl 52(%esi),%ebx + movl 56(%esi),%ecx + movl 60(%esi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,48(%esp) + movl %ebx,52(%esp) + movl %ecx,56(%esp) + movl %edx,60(%esp) + movl %esi,88(%esp) + movl (%ebp),%eax + movl 4(%ebp),%ebx + movl 8(%ebp),%ecx + movl 12(%ebp),%edx + + movl %ecx,%esi + movl %eax,%ebp + roll $5,%ebp + xorl %edx,%esi + addl %edi,%ebp + andl %ebx,%esi + movl (%esp),%edi + xorl %edx,%esi + rorl $2,%ebx + leal 1518500249(%ebp,%edi,1),%ebp + addl %esi,%ebp + + movl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + xorl %ecx,%edi + addl %edx,%ebp + andl %eax,%edi + movl 4(%esp),%edx + xorl %ecx,%edi + rorl $2,%eax + leal 1518500249(%ebp,%edx,1),%ebp + addl %edi,%ebp + + movl %eax,%edx + movl %ebp,%edi + roll $5,%ebp + xorl %ebx,%edx + addl %ecx,%ebp + andl %esi,%edx + movl 8(%esp),%ecx + xorl %ebx,%edx + rorl $2,%esi + leal 1518500249(%ebp,%ecx,1),%ebp + addl %edx,%ebp + + movl %esi,%ecx + movl %ebp,%edx + roll $5,%ebp + xorl %eax,%ecx + addl %ebx,%ebp + andl %edi,%ecx + movl 12(%esp),%ebx + xorl %eax,%ecx + rorl $2,%edi + leal 1518500249(%ebp,%ebx,1),%ebp + addl %ecx,%ebp + + movl %edi,%ebx + movl %ebp,%ecx + roll $5,%ebp + xorl %esi,%ebx + addl %eax,%ebp + andl %edx,%ebx + movl 16(%esp),%eax + xorl %esi,%ebx + rorl $2,%edx + leal 1518500249(%ebp,%eax,1),%ebp + addl %ebx,%ebp + + movl %edx,%eax + movl %ebp,%ebx + roll $5,%ebp + xorl %edi,%eax + addl %esi,%ebp + andl %ecx,%eax + movl 20(%esp),%esi + xorl %edi,%eax + rorl $2,%ecx + leal 1518500249(%ebp,%esi,1),%ebp + addl %eax,%ebp + + movl %ecx,%esi + movl %ebp,%eax + roll $5,%ebp + xorl %edx,%esi + addl %edi,%ebp + andl %ebx,%esi + movl 24(%esp),%edi + xorl %edx,%esi + rorl $2,%ebx + leal 1518500249(%ebp,%edi,1),%ebp + addl %esi,%ebp + + movl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + xorl %ecx,%edi + addl %edx,%ebp + andl %eax,%edi + movl 28(%esp),%edx + xorl %ecx,%edi + rorl $2,%eax + leal 1518500249(%ebp,%edx,1),%ebp + addl %edi,%ebp + + movl %eax,%edx + movl %ebp,%edi + roll $5,%ebp + xorl %ebx,%edx + addl %ecx,%ebp + andl %esi,%edx + movl 32(%esp),%ecx + xorl %ebx,%edx + rorl $2,%esi + leal 1518500249(%ebp,%ecx,1),%ebp + addl %edx,%ebp + + movl %esi,%ecx + movl %ebp,%edx + roll $5,%ebp + xorl %eax,%ecx + addl %ebx,%ebp + andl %edi,%ecx + movl 36(%esp),%ebx + xorl %eax,%ecx + rorl $2,%edi + leal 1518500249(%ebp,%ebx,1),%ebp + addl %ecx,%ebp + + movl %edi,%ebx + movl %ebp,%ecx + roll $5,%ebp + xorl %esi,%ebx + addl %eax,%ebp + andl %edx,%ebx + movl 40(%esp),%eax + xorl %esi,%ebx + rorl $2,%edx + leal 1518500249(%ebp,%eax,1),%ebp + addl %ebx,%ebp + + movl %edx,%eax + movl %ebp,%ebx + roll $5,%ebp + xorl %edi,%eax + addl %esi,%ebp + andl %ecx,%eax + movl 44(%esp),%esi + xorl %edi,%eax + rorl $2,%ecx + leal 1518500249(%ebp,%esi,1),%ebp + addl %eax,%ebp + + movl %ecx,%esi + movl %ebp,%eax + roll $5,%ebp + xorl %edx,%esi + addl %edi,%ebp + andl %ebx,%esi + movl 48(%esp),%edi + xorl %edx,%esi + rorl $2,%ebx + leal 1518500249(%ebp,%edi,1),%ebp + addl %esi,%ebp + + movl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + xorl %ecx,%edi + addl %edx,%ebp + andl %eax,%edi + movl 52(%esp),%edx + xorl %ecx,%edi + rorl $2,%eax + leal 1518500249(%ebp,%edx,1),%ebp + addl %edi,%ebp + + movl %eax,%edx + movl %ebp,%edi + roll $5,%ebp + xorl %ebx,%edx + addl %ecx,%ebp + andl %esi,%edx + movl 56(%esp),%ecx + xorl %ebx,%edx + rorl $2,%esi + leal 1518500249(%ebp,%ecx,1),%ebp + addl %edx,%ebp + + movl %esi,%ecx + movl %ebp,%edx + roll $5,%ebp + xorl %eax,%ecx + addl %ebx,%ebp + andl %edi,%ecx + movl 60(%esp),%ebx + xorl %eax,%ecx + rorl $2,%edi + leal 1518500249(%ebp,%ebx,1),%ebp + addl %ebp,%ecx + + movl (%esp),%ebx + movl %edi,%ebp + xorl 8(%esp),%ebx + xorl %esi,%ebp + xorl 32(%esp),%ebx + andl %edx,%ebp + rorl $2,%edx + xorl 52(%esp),%ebx + roll $1,%ebx + xorl %esi,%ebp + movl %ebx,(%esp) + leal 1518500249(%ebx,%eax,1),%ebx + movl %ecx,%eax + roll $5,%eax + addl %ebp,%ebx + addl %eax,%ebx + + movl 4(%esp),%eax + movl %edx,%ebp + xorl 12(%esp),%eax + xorl %edi,%ebp + xorl 36(%esp),%eax + andl %ecx,%ebp + rorl $2,%ecx + xorl 56(%esp),%eax + roll $1,%eax + xorl %edi,%ebp + movl %eax,4(%esp) + leal 1518500249(%eax,%esi,1),%eax + movl %ebx,%esi + roll $5,%esi + addl %ebp,%eax + addl %esi,%eax + + movl 8(%esp),%esi + movl %ecx,%ebp + xorl 16(%esp),%esi + xorl %edx,%ebp + xorl 40(%esp),%esi + andl %ebx,%ebp + rorl $2,%ebx + xorl 60(%esp),%esi + roll $1,%esi + xorl %edx,%ebp + movl %esi,8(%esp) + leal 1518500249(%esi,%edi,1),%esi + movl %eax,%edi + roll $5,%edi + addl %ebp,%esi + addl %edi,%esi + + movl 12(%esp),%edi + movl %ebx,%ebp + xorl 20(%esp),%edi + xorl %ecx,%ebp + xorl 44(%esp),%edi + andl %eax,%ebp + rorl $2,%eax + xorl (%esp),%edi + roll $1,%edi + xorl %ecx,%ebp + movl %edi,12(%esp) + leal 1518500249(%edi,%edx,1),%edi + movl %esi,%edx + roll $5,%edx + addl %ebp,%edi + addl %edx,%edi + + movl %esi,%ebp + movl 16(%esp),%edx + rorl $2,%esi + xorl 24(%esp),%edx + xorl %eax,%ebp + xorl 48(%esp),%edx + xorl %ebx,%ebp + xorl 4(%esp),%edx + roll $1,%edx + addl %ecx,%ebp + movl %edx,16(%esp) + movl %edi,%ecx + roll $5,%ecx + leal 1859775393(%edx,%ebp,1),%edx + addl %ecx,%edx + + movl %edi,%ebp + movl 20(%esp),%ecx + rorl $2,%edi + xorl 28(%esp),%ecx + xorl %esi,%ebp + xorl 52(%esp),%ecx + xorl %eax,%ebp + xorl 8(%esp),%ecx + roll $1,%ecx + addl %ebx,%ebp + movl %ecx,20(%esp) + movl %edx,%ebx + roll $5,%ebx + leal 1859775393(%ecx,%ebp,1),%ecx + addl %ebx,%ecx + + movl %edx,%ebp + movl 24(%esp),%ebx + rorl $2,%edx + xorl 32(%esp),%ebx + xorl %edi,%ebp + xorl 56(%esp),%ebx + xorl %esi,%ebp + xorl 12(%esp),%ebx + roll $1,%ebx + addl %eax,%ebp + movl %ebx,24(%esp) + movl %ecx,%eax + roll $5,%eax + leal 1859775393(%ebx,%ebp,1),%ebx + addl %eax,%ebx + + movl %ecx,%ebp + movl 28(%esp),%eax + rorl $2,%ecx + xorl 36(%esp),%eax + xorl %edx,%ebp + xorl 60(%esp),%eax + xorl %edi,%ebp + xorl 16(%esp),%eax + roll $1,%eax + addl %esi,%ebp + movl %eax,28(%esp) + movl %ebx,%esi + roll $5,%esi + leal 1859775393(%eax,%ebp,1),%eax + addl %esi,%eax + + movl %ebx,%ebp + movl 32(%esp),%esi + rorl $2,%ebx + xorl 40(%esp),%esi + xorl %ecx,%ebp + xorl (%esp),%esi + xorl %edx,%ebp + xorl 20(%esp),%esi + roll $1,%esi + addl %edi,%ebp + movl %esi,32(%esp) + movl %eax,%edi + roll $5,%edi + leal 1859775393(%esi,%ebp,1),%esi + addl %edi,%esi + + movl %eax,%ebp + movl 36(%esp),%edi + rorl $2,%eax + xorl 44(%esp),%edi + xorl %ebx,%ebp + xorl 4(%esp),%edi + xorl %ecx,%ebp + xorl 24(%esp),%edi + roll $1,%edi + addl %edx,%ebp + movl %edi,36(%esp) + movl %esi,%edx + roll $5,%edx + leal 1859775393(%edi,%ebp,1),%edi + addl %edx,%edi + + movl %esi,%ebp + movl 40(%esp),%edx + rorl $2,%esi + xorl 48(%esp),%edx + xorl %eax,%ebp + xorl 8(%esp),%edx + xorl %ebx,%ebp + xorl 28(%esp),%edx + roll $1,%edx + addl %ecx,%ebp + movl %edx,40(%esp) + movl %edi,%ecx + roll $5,%ecx + leal 1859775393(%edx,%ebp,1),%edx + addl %ecx,%edx + + movl %edi,%ebp + movl 44(%esp),%ecx + rorl $2,%edi + xorl 52(%esp),%ecx + xorl %esi,%ebp + xorl 12(%esp),%ecx + xorl %eax,%ebp + xorl 32(%esp),%ecx + roll $1,%ecx + addl %ebx,%ebp + movl %ecx,44(%esp) + movl %edx,%ebx + roll $5,%ebx + leal 1859775393(%ecx,%ebp,1),%ecx + addl %ebx,%ecx + + movl %edx,%ebp + movl 48(%esp),%ebx + rorl $2,%edx + xorl 56(%esp),%ebx + xorl %edi,%ebp + xorl 16(%esp),%ebx + xorl %esi,%ebp + xorl 36(%esp),%ebx + roll $1,%ebx + addl %eax,%ebp + movl %ebx,48(%esp) + movl %ecx,%eax + roll $5,%eax + leal 1859775393(%ebx,%ebp,1),%ebx + addl %eax,%ebx + + movl %ecx,%ebp + movl 52(%esp),%eax + rorl $2,%ecx + xorl 60(%esp),%eax + xorl %edx,%ebp + xorl 20(%esp),%eax + xorl %edi,%ebp + xorl 40(%esp),%eax + roll $1,%eax + addl %esi,%ebp + movl %eax,52(%esp) + movl %ebx,%esi + roll $5,%esi + leal 1859775393(%eax,%ebp,1),%eax + addl %esi,%eax + + movl %ebx,%ebp + movl 56(%esp),%esi + rorl $2,%ebx + xorl (%esp),%esi + xorl %ecx,%ebp + xorl 24(%esp),%esi + xorl %edx,%ebp + xorl 44(%esp),%esi + roll $1,%esi + addl %edi,%ebp + movl %esi,56(%esp) + movl %eax,%edi + roll $5,%edi + leal 1859775393(%esi,%ebp,1),%esi + addl %edi,%esi + + movl %eax,%ebp + movl 60(%esp),%edi + rorl $2,%eax + xorl 4(%esp),%edi + xorl %ebx,%ebp + xorl 28(%esp),%edi + xorl %ecx,%ebp + xorl 48(%esp),%edi + roll $1,%edi + addl %edx,%ebp + movl %edi,60(%esp) + movl %esi,%edx + roll $5,%edx + leal 1859775393(%edi,%ebp,1),%edi + addl %edx,%edi + + movl %esi,%ebp + movl (%esp),%edx + rorl $2,%esi + xorl 8(%esp),%edx + xorl %eax,%ebp + xorl 32(%esp),%edx + xorl %ebx,%ebp + xorl 52(%esp),%edx + roll $1,%edx + addl %ecx,%ebp + movl %edx,(%esp) + movl %edi,%ecx + roll $5,%ecx + leal 1859775393(%edx,%ebp,1),%edx + addl %ecx,%edx + + movl %edi,%ebp + movl 4(%esp),%ecx + rorl $2,%edi + xorl 12(%esp),%ecx + xorl %esi,%ebp + xorl 36(%esp),%ecx + xorl %eax,%ebp + xorl 56(%esp),%ecx + roll $1,%ecx + addl %ebx,%ebp + movl %ecx,4(%esp) + movl %edx,%ebx + roll $5,%ebx + leal 1859775393(%ecx,%ebp,1),%ecx + addl %ebx,%ecx + + movl %edx,%ebp + movl 8(%esp),%ebx + rorl $2,%edx + xorl 16(%esp),%ebx + xorl %edi,%ebp + xorl 40(%esp),%ebx + xorl %esi,%ebp + xorl 60(%esp),%ebx + roll $1,%ebx + addl %eax,%ebp + movl %ebx,8(%esp) + movl %ecx,%eax + roll $5,%eax + leal 1859775393(%ebx,%ebp,1),%ebx + addl %eax,%ebx + + movl %ecx,%ebp + movl 12(%esp),%eax + rorl $2,%ecx + xorl 20(%esp),%eax + xorl %edx,%ebp + xorl 44(%esp),%eax + xorl %edi,%ebp + xorl (%esp),%eax + roll $1,%eax + addl %esi,%ebp + movl %eax,12(%esp) + movl %ebx,%esi + roll $5,%esi + leal 1859775393(%eax,%ebp,1),%eax + addl %esi,%eax + + movl %ebx,%ebp + movl 16(%esp),%esi + rorl $2,%ebx + xorl 24(%esp),%esi + xorl %ecx,%ebp + xorl 48(%esp),%esi + xorl %edx,%ebp + xorl 4(%esp),%esi + roll $1,%esi + addl %edi,%ebp + movl %esi,16(%esp) + movl %eax,%edi + roll $5,%edi + leal 1859775393(%esi,%ebp,1),%esi + addl %edi,%esi + + movl %eax,%ebp + movl 20(%esp),%edi + rorl $2,%eax + xorl 28(%esp),%edi + xorl %ebx,%ebp + xorl 52(%esp),%edi + xorl %ecx,%ebp + xorl 8(%esp),%edi + roll $1,%edi + addl %edx,%ebp + movl %edi,20(%esp) + movl %esi,%edx + roll $5,%edx + leal 1859775393(%edi,%ebp,1),%edi + addl %edx,%edi + + movl %esi,%ebp + movl 24(%esp),%edx + rorl $2,%esi + xorl 32(%esp),%edx + xorl %eax,%ebp + xorl 56(%esp),%edx + xorl %ebx,%ebp + xorl 12(%esp),%edx + roll $1,%edx + addl %ecx,%ebp + movl %edx,24(%esp) + movl %edi,%ecx + roll $5,%ecx + leal 1859775393(%edx,%ebp,1),%edx + addl %ecx,%edx + + movl %edi,%ebp + movl 28(%esp),%ecx + rorl $2,%edi + xorl 36(%esp),%ecx + xorl %esi,%ebp + xorl 60(%esp),%ecx + xorl %eax,%ebp + xorl 16(%esp),%ecx + roll $1,%ecx + addl %ebx,%ebp + movl %ecx,28(%esp) + movl %edx,%ebx + roll $5,%ebx + leal 1859775393(%ecx,%ebp,1),%ecx + addl %ebx,%ecx + + movl 32(%esp),%ebx + movl 40(%esp),%ebp + xorl %ebp,%ebx + movl (%esp),%ebp + xorl %ebp,%ebx + movl 20(%esp),%ebp + xorl %ebp,%ebx + movl %edx,%ebp + roll $1,%ebx + orl %edi,%ebp + movl %ebx,32(%esp) + andl %esi,%ebp + leal 2400959708(%ebx,%eax,1),%ebx + movl %edx,%eax + rorl $2,%edx + andl %edi,%eax + orl %eax,%ebp + movl %ecx,%eax + roll $5,%eax + addl %ebp,%ebx + addl %eax,%ebx + + movl 36(%esp),%eax + movl 44(%esp),%ebp + xorl %ebp,%eax + movl 4(%esp),%ebp + xorl %ebp,%eax + movl 24(%esp),%ebp + xorl %ebp,%eax + movl %ecx,%ebp + roll $1,%eax + orl %edx,%ebp + movl %eax,36(%esp) + andl %edi,%ebp + leal 2400959708(%eax,%esi,1),%eax + movl %ecx,%esi + rorl $2,%ecx + andl %edx,%esi + orl %esi,%ebp + movl %ebx,%esi + roll $5,%esi + addl %ebp,%eax + addl %esi,%eax + + movl 40(%esp),%esi + movl 48(%esp),%ebp + xorl %ebp,%esi + movl 8(%esp),%ebp + xorl %ebp,%esi + movl 28(%esp),%ebp + xorl %ebp,%esi + movl %ebx,%ebp + roll $1,%esi + orl %ecx,%ebp + movl %esi,40(%esp) + andl %edx,%ebp + leal 2400959708(%esi,%edi,1),%esi + movl %ebx,%edi + rorl $2,%ebx + andl %ecx,%edi + orl %edi,%ebp + movl %eax,%edi + roll $5,%edi + addl %ebp,%esi + addl %edi,%esi + + movl 44(%esp),%edi + movl 52(%esp),%ebp + xorl %ebp,%edi + movl 12(%esp),%ebp + xorl %ebp,%edi + movl 32(%esp),%ebp + xorl %ebp,%edi + movl %eax,%ebp + roll $1,%edi + orl %ebx,%ebp + movl %edi,44(%esp) + andl %ecx,%ebp + leal 2400959708(%edi,%edx,1),%edi + movl %eax,%edx + rorl $2,%eax + andl %ebx,%edx + orl %edx,%ebp + movl %esi,%edx + roll $5,%edx + addl %ebp,%edi + addl %edx,%edi + + movl 48(%esp),%edx + movl 56(%esp),%ebp + xorl %ebp,%edx + movl 16(%esp),%ebp + xorl %ebp,%edx + movl 36(%esp),%ebp + xorl %ebp,%edx + movl %esi,%ebp + roll $1,%edx + orl %eax,%ebp + movl %edx,48(%esp) + andl %ebx,%ebp + leal 2400959708(%edx,%ecx,1),%edx + movl %esi,%ecx + rorl $2,%esi + andl %eax,%ecx + orl %ecx,%ebp + movl %edi,%ecx + roll $5,%ecx + addl %ebp,%edx + addl %ecx,%edx + + movl 52(%esp),%ecx + movl 60(%esp),%ebp + xorl %ebp,%ecx + movl 20(%esp),%ebp + xorl %ebp,%ecx + movl 40(%esp),%ebp + xorl %ebp,%ecx + movl %edi,%ebp + roll $1,%ecx + orl %esi,%ebp + movl %ecx,52(%esp) + andl %eax,%ebp + leal 2400959708(%ecx,%ebx,1),%ecx + movl %edi,%ebx + rorl $2,%edi + andl %esi,%ebx + orl %ebx,%ebp + movl %edx,%ebx + roll $5,%ebx + addl %ebp,%ecx + addl %ebx,%ecx + + movl 56(%esp),%ebx + movl (%esp),%ebp + xorl %ebp,%ebx + movl 24(%esp),%ebp + xorl %ebp,%ebx + movl 44(%esp),%ebp + xorl %ebp,%ebx + movl %edx,%ebp + roll $1,%ebx + orl %edi,%ebp + movl %ebx,56(%esp) + andl %esi,%ebp + leal 2400959708(%ebx,%eax,1),%ebx + movl %edx,%eax + rorl $2,%edx + andl %edi,%eax + orl %eax,%ebp + movl %ecx,%eax + roll $5,%eax + addl %ebp,%ebx + addl %eax,%ebx + + movl 60(%esp),%eax + movl 4(%esp),%ebp + xorl %ebp,%eax + movl 28(%esp),%ebp + xorl %ebp,%eax + movl 48(%esp),%ebp + xorl %ebp,%eax + movl %ecx,%ebp + roll $1,%eax + orl %edx,%ebp + movl %eax,60(%esp) + andl %edi,%ebp + leal 2400959708(%eax,%esi,1),%eax + movl %ecx,%esi + rorl $2,%ecx + andl %edx,%esi + orl %esi,%ebp + movl %ebx,%esi + roll $5,%esi + addl %ebp,%eax + addl %esi,%eax + + movl (%esp),%esi + movl 8(%esp),%ebp + xorl %ebp,%esi + movl 32(%esp),%ebp + xorl %ebp,%esi + movl 52(%esp),%ebp + xorl %ebp,%esi + movl %ebx,%ebp + roll $1,%esi + orl %ecx,%ebp + movl %esi,(%esp) + andl %edx,%ebp + leal 2400959708(%esi,%edi,1),%esi + movl %ebx,%edi + rorl $2,%ebx + andl %ecx,%edi + orl %edi,%ebp + movl %eax,%edi + roll $5,%edi + addl %ebp,%esi + addl %edi,%esi + + movl 4(%esp),%edi + movl 12(%esp),%ebp + xorl %ebp,%edi + movl 36(%esp),%ebp + xorl %ebp,%edi + movl 56(%esp),%ebp + xorl %ebp,%edi + movl %eax,%ebp + roll $1,%edi + orl %ebx,%ebp + movl %edi,4(%esp) + andl %ecx,%ebp + leal 2400959708(%edi,%edx,1),%edi + movl %eax,%edx + rorl $2,%eax + andl %ebx,%edx + orl %edx,%ebp + movl %esi,%edx + roll $5,%edx + addl %ebp,%edi + addl %edx,%edi + + movl 8(%esp),%edx + movl 16(%esp),%ebp + xorl %ebp,%edx + movl 40(%esp),%ebp + xorl %ebp,%edx + movl 60(%esp),%ebp + xorl %ebp,%edx + movl %esi,%ebp + roll $1,%edx + orl %eax,%ebp + movl %edx,8(%esp) + andl %ebx,%ebp + leal 2400959708(%edx,%ecx,1),%edx + movl %esi,%ecx + rorl $2,%esi + andl %eax,%ecx + orl %ecx,%ebp + movl %edi,%ecx + roll $5,%ecx + addl %ebp,%edx + addl %ecx,%edx + + movl 12(%esp),%ecx + movl 20(%esp),%ebp + xorl %ebp,%ecx + movl 44(%esp),%ebp + xorl %ebp,%ecx + movl (%esp),%ebp + xorl %ebp,%ecx + movl %edi,%ebp + roll $1,%ecx + orl %esi,%ebp + movl %ecx,12(%esp) + andl %eax,%ebp + leal 2400959708(%ecx,%ebx,1),%ecx + movl %edi,%ebx + rorl $2,%edi + andl %esi,%ebx + orl %ebx,%ebp + movl %edx,%ebx + roll $5,%ebx + addl %ebp,%ecx + addl %ebx,%ecx + + movl 16(%esp),%ebx + movl 24(%esp),%ebp + xorl %ebp,%ebx + movl 48(%esp),%ebp + xorl %ebp,%ebx + movl 4(%esp),%ebp + xorl %ebp,%ebx + movl %edx,%ebp + roll $1,%ebx + orl %edi,%ebp + movl %ebx,16(%esp) + andl %esi,%ebp + leal 2400959708(%ebx,%eax,1),%ebx + movl %edx,%eax + rorl $2,%edx + andl %edi,%eax + orl %eax,%ebp + movl %ecx,%eax + roll $5,%eax + addl %ebp,%ebx + addl %eax,%ebx + + movl 20(%esp),%eax + movl 28(%esp),%ebp + xorl %ebp,%eax + movl 52(%esp),%ebp + xorl %ebp,%eax + movl 8(%esp),%ebp + xorl %ebp,%eax + movl %ecx,%ebp + roll $1,%eax + orl %edx,%ebp + movl %eax,20(%esp) + andl %edi,%ebp + leal 2400959708(%eax,%esi,1),%eax + movl %ecx,%esi + rorl $2,%ecx + andl %edx,%esi + orl %esi,%ebp + movl %ebx,%esi + roll $5,%esi + addl %ebp,%eax + addl %esi,%eax + + movl 24(%esp),%esi + movl 32(%esp),%ebp + xorl %ebp,%esi + movl 56(%esp),%ebp + xorl %ebp,%esi + movl 12(%esp),%ebp + xorl %ebp,%esi + movl %ebx,%ebp + roll $1,%esi + orl %ecx,%ebp + movl %esi,24(%esp) + andl %edx,%ebp + leal 2400959708(%esi,%edi,1),%esi + movl %ebx,%edi + rorl $2,%ebx + andl %ecx,%edi + orl %edi,%ebp + movl %eax,%edi + roll $5,%edi + addl %ebp,%esi + addl %edi,%esi + + movl 28(%esp),%edi + movl 36(%esp),%ebp + xorl %ebp,%edi + movl 60(%esp),%ebp + xorl %ebp,%edi + movl 16(%esp),%ebp + xorl %ebp,%edi + movl %eax,%ebp + roll $1,%edi + orl %ebx,%ebp + movl %edi,28(%esp) + andl %ecx,%ebp + leal 2400959708(%edi,%edx,1),%edi + movl %eax,%edx + rorl $2,%eax + andl %ebx,%edx + orl %edx,%ebp + movl %esi,%edx + roll $5,%edx + addl %ebp,%edi + addl %edx,%edi + + movl 32(%esp),%edx + movl 40(%esp),%ebp + xorl %ebp,%edx + movl (%esp),%ebp + xorl %ebp,%edx + movl 20(%esp),%ebp + xorl %ebp,%edx + movl %esi,%ebp + roll $1,%edx + orl %eax,%ebp + movl %edx,32(%esp) + andl %ebx,%ebp + leal 2400959708(%edx,%ecx,1),%edx + movl %esi,%ecx + rorl $2,%esi + andl %eax,%ecx + orl %ecx,%ebp + movl %edi,%ecx + roll $5,%ecx + addl %ebp,%edx + addl %ecx,%edx + + movl 36(%esp),%ecx + movl 44(%esp),%ebp + xorl %ebp,%ecx + movl 4(%esp),%ebp + xorl %ebp,%ecx + movl 24(%esp),%ebp + xorl %ebp,%ecx + movl %edi,%ebp + roll $1,%ecx + orl %esi,%ebp + movl %ecx,36(%esp) + andl %eax,%ebp + leal 2400959708(%ecx,%ebx,1),%ecx + movl %edi,%ebx + rorl $2,%edi + andl %esi,%ebx + orl %ebx,%ebp + movl %edx,%ebx + roll $5,%ebx + addl %ebp,%ecx + addl %ebx,%ecx + + movl 40(%esp),%ebx + movl 48(%esp),%ebp + xorl %ebp,%ebx + movl 8(%esp),%ebp + xorl %ebp,%ebx + movl 28(%esp),%ebp + xorl %ebp,%ebx + movl %edx,%ebp + roll $1,%ebx + orl %edi,%ebp + movl %ebx,40(%esp) + andl %esi,%ebp + leal 2400959708(%ebx,%eax,1),%ebx + movl %edx,%eax + rorl $2,%edx + andl %edi,%eax + orl %eax,%ebp + movl %ecx,%eax + roll $5,%eax + addl %ebp,%ebx + addl %eax,%ebx + + movl 44(%esp),%eax + movl 52(%esp),%ebp + xorl %ebp,%eax + movl 12(%esp),%ebp + xorl %ebp,%eax + movl 32(%esp),%ebp + xorl %ebp,%eax + movl %ecx,%ebp + roll $1,%eax + orl %edx,%ebp + movl %eax,44(%esp) + andl %edi,%ebp + leal 2400959708(%eax,%esi,1),%eax + movl %ecx,%esi + rorl $2,%ecx + andl %edx,%esi + orl %esi,%ebp + movl %ebx,%esi + roll $5,%esi + addl %ebp,%eax + addl %esi,%eax + + movl %ebx,%ebp + movl 48(%esp),%esi + rorl $2,%ebx + xorl 56(%esp),%esi + xorl %ecx,%ebp + xorl 16(%esp),%esi + xorl %edx,%ebp + xorl 36(%esp),%esi + roll $1,%esi + addl %edi,%ebp + movl %esi,48(%esp) + movl %eax,%edi + roll $5,%edi + leal 3395469782(%esi,%ebp,1),%esi + addl %edi,%esi + + movl %eax,%ebp + movl 52(%esp),%edi + rorl $2,%eax + xorl 60(%esp),%edi + xorl %ebx,%ebp + xorl 20(%esp),%edi + xorl %ecx,%ebp + xorl 40(%esp),%edi + roll $1,%edi + addl %edx,%ebp + movl %edi,52(%esp) + movl %esi,%edx + roll $5,%edx + leal 3395469782(%edi,%ebp,1),%edi + addl %edx,%edi + + movl %esi,%ebp + movl 56(%esp),%edx + rorl $2,%esi + xorl (%esp),%edx + xorl %eax,%ebp + xorl 24(%esp),%edx + xorl %ebx,%ebp + xorl 44(%esp),%edx + roll $1,%edx + addl %ecx,%ebp + movl %edx,56(%esp) + movl %edi,%ecx + roll $5,%ecx + leal 3395469782(%edx,%ebp,1),%edx + addl %ecx,%edx + + movl %edi,%ebp + movl 60(%esp),%ecx + rorl $2,%edi + xorl 4(%esp),%ecx + xorl %esi,%ebp + xorl 28(%esp),%ecx + xorl %eax,%ebp + xorl 48(%esp),%ecx + roll $1,%ecx + addl %ebx,%ebp + movl %ecx,60(%esp) + movl %edx,%ebx + roll $5,%ebx + leal 3395469782(%ecx,%ebp,1),%ecx + addl %ebx,%ecx + + movl %edx,%ebp + movl (%esp),%ebx + rorl $2,%edx + xorl 8(%esp),%ebx + xorl %edi,%ebp + xorl 32(%esp),%ebx + xorl %esi,%ebp + xorl 52(%esp),%ebx + roll $1,%ebx + addl %eax,%ebp + movl %ebx,(%esp) + movl %ecx,%eax + roll $5,%eax + leal 3395469782(%ebx,%ebp,1),%ebx + addl %eax,%ebx + + movl %ecx,%ebp + movl 4(%esp),%eax + rorl $2,%ecx + xorl 12(%esp),%eax + xorl %edx,%ebp + xorl 36(%esp),%eax + xorl %edi,%ebp + xorl 56(%esp),%eax + roll $1,%eax + addl %esi,%ebp + movl %eax,4(%esp) + movl %ebx,%esi + roll $5,%esi + leal 3395469782(%eax,%ebp,1),%eax + addl %esi,%eax + + movl %ebx,%ebp + movl 8(%esp),%esi + rorl $2,%ebx + xorl 16(%esp),%esi + xorl %ecx,%ebp + xorl 40(%esp),%esi + xorl %edx,%ebp + xorl 60(%esp),%esi + roll $1,%esi + addl %edi,%ebp + movl %esi,8(%esp) + movl %eax,%edi + roll $5,%edi + leal 3395469782(%esi,%ebp,1),%esi + addl %edi,%esi + + movl %eax,%ebp + movl 12(%esp),%edi + rorl $2,%eax + xorl 20(%esp),%edi + xorl %ebx,%ebp + xorl 44(%esp),%edi + xorl %ecx,%ebp + xorl (%esp),%edi + roll $1,%edi + addl %edx,%ebp + movl %edi,12(%esp) + movl %esi,%edx + roll $5,%edx + leal 3395469782(%edi,%ebp,1),%edi + addl %edx,%edi + + movl %esi,%ebp + movl 16(%esp),%edx + rorl $2,%esi + xorl 24(%esp),%edx + xorl %eax,%ebp + xorl 48(%esp),%edx + xorl %ebx,%ebp + xorl 4(%esp),%edx + roll $1,%edx + addl %ecx,%ebp + movl %edx,16(%esp) + movl %edi,%ecx + roll $5,%ecx + leal 3395469782(%edx,%ebp,1),%edx + addl %ecx,%edx + + movl %edi,%ebp + movl 20(%esp),%ecx + rorl $2,%edi + xorl 28(%esp),%ecx + xorl %esi,%ebp + xorl 52(%esp),%ecx + xorl %eax,%ebp + xorl 8(%esp),%ecx + roll $1,%ecx + addl %ebx,%ebp + movl %ecx,20(%esp) + movl %edx,%ebx + roll $5,%ebx + leal 3395469782(%ecx,%ebp,1),%ecx + addl %ebx,%ecx + + movl %edx,%ebp + movl 24(%esp),%ebx + rorl $2,%edx + xorl 32(%esp),%ebx + xorl %edi,%ebp + xorl 56(%esp),%ebx + xorl %esi,%ebp + xorl 12(%esp),%ebx + roll $1,%ebx + addl %eax,%ebp + movl %ebx,24(%esp) + movl %ecx,%eax + roll $5,%eax + leal 3395469782(%ebx,%ebp,1),%ebx + addl %eax,%ebx + + movl %ecx,%ebp + movl 28(%esp),%eax + rorl $2,%ecx + xorl 36(%esp),%eax + xorl %edx,%ebp + xorl 60(%esp),%eax + xorl %edi,%ebp + xorl 16(%esp),%eax + roll $1,%eax + addl %esi,%ebp + movl %eax,28(%esp) + movl %ebx,%esi + roll $5,%esi + leal 3395469782(%eax,%ebp,1),%eax + addl %esi,%eax + + movl %ebx,%ebp + movl 32(%esp),%esi + rorl $2,%ebx + xorl 40(%esp),%esi + xorl %ecx,%ebp + xorl (%esp),%esi + xorl %edx,%ebp + xorl 20(%esp),%esi + roll $1,%esi + addl %edi,%ebp + movl %esi,32(%esp) + movl %eax,%edi + roll $5,%edi + leal 3395469782(%esi,%ebp,1),%esi + addl %edi,%esi + + movl %eax,%ebp + movl 36(%esp),%edi + rorl $2,%eax + xorl 44(%esp),%edi + xorl %ebx,%ebp + xorl 4(%esp),%edi + xorl %ecx,%ebp + xorl 24(%esp),%edi + roll $1,%edi + addl %edx,%ebp + movl %edi,36(%esp) + movl %esi,%edx + roll $5,%edx + leal 3395469782(%edi,%ebp,1),%edi + addl %edx,%edi + + movl %esi,%ebp + movl 40(%esp),%edx + rorl $2,%esi + xorl 48(%esp),%edx + xorl %eax,%ebp + xorl 8(%esp),%edx + xorl %ebx,%ebp + xorl 28(%esp),%edx + roll $1,%edx + addl %ecx,%ebp + movl %edx,40(%esp) + movl %edi,%ecx + roll $5,%ecx + leal 3395469782(%edx,%ebp,1),%edx + addl %ecx,%edx + + movl %edi,%ebp + movl 44(%esp),%ecx + rorl $2,%edi + xorl 52(%esp),%ecx + xorl %esi,%ebp + xorl 12(%esp),%ecx + xorl %eax,%ebp + xorl 32(%esp),%ecx + roll $1,%ecx + addl %ebx,%ebp + movl %ecx,44(%esp) + movl %edx,%ebx + roll $5,%ebx + leal 3395469782(%ecx,%ebp,1),%ecx + addl %ebx,%ecx + + movl %edx,%ebp + movl 48(%esp),%ebx + rorl $2,%edx + xorl 56(%esp),%ebx + xorl %edi,%ebp + xorl 16(%esp),%ebx + xorl %esi,%ebp + xorl 36(%esp),%ebx + roll $1,%ebx + addl %eax,%ebp + movl %ebx,48(%esp) + movl %ecx,%eax + roll $5,%eax + leal 3395469782(%ebx,%ebp,1),%ebx + addl %eax,%ebx + + movl %ecx,%ebp + movl 52(%esp),%eax + rorl $2,%ecx + xorl 60(%esp),%eax + xorl %edx,%ebp + xorl 20(%esp),%eax + xorl %edi,%ebp + xorl 40(%esp),%eax + roll $1,%eax + addl %esi,%ebp + movl %eax,52(%esp) + movl %ebx,%esi + roll $5,%esi + leal 3395469782(%eax,%ebp,1),%eax + addl %esi,%eax + + movl %ebx,%ebp + movl 56(%esp),%esi + rorl $2,%ebx + xorl (%esp),%esi + xorl %ecx,%ebp + xorl 24(%esp),%esi + xorl %edx,%ebp + xorl 44(%esp),%esi + roll $1,%esi + addl %edi,%ebp + movl %esi,56(%esp) + movl %eax,%edi + roll $5,%edi + leal 3395469782(%esi,%ebp,1),%esi + addl %edi,%esi + + movl %eax,%ebp + movl 60(%esp),%edi + rorl $2,%eax + xorl 4(%esp),%edi + xorl %ebx,%ebp + xorl 28(%esp),%edi + xorl %ecx,%ebp + xorl 48(%esp),%edi + roll $1,%edi + addl %edx,%ebp + movl %edi,60(%esp) + movl %esi,%edx + roll $5,%edx + leal 3395469782(%edi,%ebp,1),%edi + addl %edx,%edi + movl 84(%esp),%ebp + movl 88(%esp),%edx + addl (%ebp),%edi + addl 4(%ebp),%esi + addl 8(%ebp),%eax + addl 12(%ebp),%ebx + addl 16(%ebp),%ecx + movl %edi,(%ebp) + addl $64,%edx + movl %esi,4(%ebp) + cmpl 92(%esp),%edx + movl %eax,8(%ebp) + movl %ecx,%edi + movl %ebx,12(%ebp) + movl %edx,%esi + movl %ecx,16(%ebp) + jb .L000loop + addl $64,%esp + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size sha1_block_data_order,.-.L_sha1_block_data_order_begin +.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115 +.byte 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82 +.byte 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 +.byte 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/deps/openssl/asm/x86-elf-gas/sha/sha256-586.s b/deps/openssl/asm/x86-elf-gas/sha/sha256-586.s new file mode 100644 index 0000000000..973e50d198 --- /dev/null +++ b/deps/openssl/asm/x86-elf-gas/sha/sha256-586.s @@ -0,0 +1,261 @@ +.file "sha512-586.s" +.text +.globl sha256_block_data_order +.type sha256_block_data_order,@function +.align 16 +sha256_block_data_order: +.L_sha256_block_data_order_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%esi + movl 24(%esp),%edi + movl 28(%esp),%eax + movl %esp,%ebx + call .L000pic_point +.L000pic_point: + popl %ebp + leal .L001K256-.L000pic_point(%ebp),%ebp + subl $16,%esp + andl $-64,%esp + shll $6,%eax + addl %edi,%eax + movl %esi,(%esp) + movl %edi,4(%esp) + movl %eax,8(%esp) + movl %ebx,12(%esp) +.align 16 +.L002loop: + movl (%edi),%eax + movl 4(%edi),%ebx + movl 8(%edi),%ecx + movl 12(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 16(%edi),%eax + movl 20(%edi),%ebx + movl 24(%edi),%ecx + movl 28(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 32(%edi),%eax + movl 36(%edi),%ebx + movl 40(%edi),%ecx + movl 44(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 48(%edi),%eax + movl 52(%edi),%ebx + movl 56(%edi),%ecx + movl 60(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + addl $64,%edi + subl $32,%esp + movl %edi,100(%esp) + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edi + movl %ebx,4(%esp) + movl %ecx,8(%esp) + movl %edi,12(%esp) + movl 16(%esi),%edx + movl 20(%esi),%ebx + movl 24(%esi),%ecx + movl 28(%esi),%edi + movl %ebx,20(%esp) + movl %ecx,24(%esp) + movl %edi,28(%esp) +.align 16 +.L00300_15: + movl 92(%esp),%ebx + movl %edx,%ecx + rorl $6,%ecx + movl %edx,%edi + rorl $11,%edi + movl 20(%esp),%esi + xorl %edi,%ecx + rorl $14,%edi + xorl %edi,%ecx + movl 24(%esp),%edi + addl %ecx,%ebx + movl %edx,16(%esp) + xorl %edi,%esi + movl %eax,%ecx + andl %edx,%esi + movl 12(%esp),%edx + xorl %edi,%esi + movl %eax,%edi + addl %esi,%ebx + rorl $2,%ecx + addl 28(%esp),%ebx + rorl $13,%edi + movl 4(%esp),%esi + xorl %edi,%ecx + rorl $9,%edi + addl %ebx,%edx + xorl %edi,%ecx + movl 8(%esp),%edi + addl %ecx,%ebx + movl %eax,(%esp) + movl %eax,%ecx + subl $4,%esp + orl %esi,%eax + andl %esi,%ecx + andl %edi,%eax + movl (%ebp),%esi + orl %ecx,%eax + addl $4,%ebp + addl %ebx,%eax + addl %esi,%edx + addl %esi,%eax + cmpl $3248222580,%esi + jne .L00300_15 + movl 152(%esp),%ebx +.align 16 +.L00416_63: + movl %ebx,%esi + movl 100(%esp),%ecx + shrl $3,%ebx + rorl $7,%esi + xorl %esi,%ebx + rorl $11,%esi + movl %ecx,%edi + xorl %esi,%ebx + shrl $10,%ecx + movl 156(%esp),%esi + rorl $17,%edi + xorl %edi,%ecx + rorl $2,%edi + addl %esi,%ebx + xorl %ecx,%edi + addl %edi,%ebx + movl %edx,%ecx + addl 120(%esp),%ebx + rorl $6,%ecx + movl %edx,%edi + rorl $11,%edi + movl 20(%esp),%esi + xorl %edi,%ecx + rorl $14,%edi + movl %ebx,92(%esp) + xorl %edi,%ecx + movl 24(%esp),%edi + addl %ecx,%ebx + movl %edx,16(%esp) + xorl %edi,%esi + movl %eax,%ecx + andl %edx,%esi + movl 12(%esp),%edx + xorl %edi,%esi + movl %eax,%edi + addl %esi,%ebx + rorl $2,%ecx + addl 28(%esp),%ebx + rorl $13,%edi + movl 4(%esp),%esi + xorl %edi,%ecx + rorl $9,%edi + addl %ebx,%edx + xorl %edi,%ecx + movl 8(%esp),%edi + addl %ecx,%ebx + movl %eax,(%esp) + movl %eax,%ecx + subl $4,%esp + orl %esi,%eax + andl %esi,%ecx + andl %edi,%eax + movl (%ebp),%esi + orl %ecx,%eax + addl $4,%ebp + addl %ebx,%eax + movl 152(%esp),%ebx + addl %esi,%edx + addl %esi,%eax + cmpl $3329325298,%esi + jne .L00416_63 + movl 352(%esp),%esi + movl 4(%esp),%ebx + movl 8(%esp),%ecx + movl 12(%esp),%edi + addl (%esi),%eax + addl 4(%esi),%ebx + addl 8(%esi),%ecx + addl 12(%esi),%edi + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edi,12(%esi) + movl 20(%esp),%eax + movl 24(%esp),%ebx + movl 28(%esp),%ecx + movl 356(%esp),%edi + addl 16(%esi),%edx + addl 20(%esi),%eax + addl 24(%esi),%ebx + addl 28(%esi),%ecx + movl %edx,16(%esi) + movl %eax,20(%esi) + movl %ebx,24(%esi) + movl %ecx,28(%esi) + addl $352,%esp + subl $256,%ebp + cmpl 8(%esp),%edi + jb .L002loop + movl 12(%esp),%esp + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 64 +.L001K256: +.long 1116352408,1899447441,3049323471,3921009573 +.long 961987163,1508970993,2453635748,2870763221 +.long 3624381080,310598401,607225278,1426881987 +.long 1925078388,2162078206,2614888103,3248222580 +.long 3835390401,4022224774,264347078,604807628 +.long 770255983,1249150122,1555081692,1996064986 +.long 2554220882,2821834349,2952996808,3210313671 +.long 3336571891,3584528711,113926993,338241895 +.long 666307205,773529912,1294757372,1396182291 +.long 1695183700,1986661051,2177026350,2456956037 +.long 2730485921,2820302411,3259730800,3345764771 +.long 3516065817,3600352804,4094571909,275423344 +.long 430227734,506948616,659060556,883997877 +.long 958139571,1322822218,1537002063,1747873779 +.long 1955562222,2024104815,2227730452,2361852424 +.long 2428436474,2756734187,3204031479,3329325298 +.size sha256_block_data_order,.-.L_sha256_block_data_order_begin +.byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97 +.byte 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32 +.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 +.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 +.byte 62,0 diff --git a/deps/openssl/asm/x86-elf-gas/sha/sha512-586.s b/deps/openssl/asm/x86-elf-gas/sha/sha512-586.s new file mode 100644 index 0000000000..4b806f352e --- /dev/null +++ b/deps/openssl/asm/x86-elf-gas/sha/sha512-586.s @@ -0,0 +1,563 @@ +.file "sha512-586.s" +.text +.globl sha512_block_data_order +.type sha512_block_data_order,@function +.align 16 +sha512_block_data_order: +.L_sha512_block_data_order_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%esi + movl 24(%esp),%edi + movl 28(%esp),%eax + movl %esp,%ebx + call .L000pic_point +.L000pic_point: + popl %ebp + leal .L001K512-.L000pic_point(%ebp),%ebp + subl $16,%esp + andl $-64,%esp + shll $7,%eax + addl %edi,%eax + movl %esi,(%esp) + movl %edi,4(%esp) + movl %eax,8(%esp) + movl %ebx,12(%esp) +.align 16 +.L002loop_x86: + movl (%edi),%eax + movl 4(%edi),%ebx + movl 8(%edi),%ecx + movl 12(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 16(%edi),%eax + movl 20(%edi),%ebx + movl 24(%edi),%ecx + movl 28(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 32(%edi),%eax + movl 36(%edi),%ebx + movl 40(%edi),%ecx + movl 44(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 48(%edi),%eax + movl 52(%edi),%ebx + movl 56(%edi),%ecx + movl 60(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 64(%edi),%eax + movl 68(%edi),%ebx + movl 72(%edi),%ecx + movl 76(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 80(%edi),%eax + movl 84(%edi),%ebx + movl 88(%edi),%ecx + movl 92(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 96(%edi),%eax + movl 100(%edi),%ebx + movl 104(%edi),%ecx + movl 108(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 112(%edi),%eax + movl 116(%edi),%ebx + movl 120(%edi),%ecx + movl 124(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + addl $128,%edi + subl $72,%esp + movl %edi,204(%esp) + leal 8(%esp),%edi + movl $16,%ecx +.long 2784229001 +.align 16 +.L00300_15_x86: + movl 40(%esp),%ecx + movl 44(%esp),%edx + movl %ecx,%esi + shrl $9,%ecx + movl %edx,%edi + shrl $9,%edx + movl %ecx,%ebx + shll $14,%esi + movl %edx,%eax + shll $14,%edi + xorl %esi,%ebx + shrl $5,%ecx + xorl %edi,%eax + shrl $5,%edx + xorl %ecx,%eax + shll $4,%esi + xorl %edx,%ebx + shll $4,%edi + xorl %esi,%ebx + shrl $4,%ecx + xorl %edi,%eax + shrl $4,%edx + xorl %ecx,%eax + shll $5,%esi + xorl %edx,%ebx + shll $5,%edi + xorl %esi,%eax + xorl %edi,%ebx + movl 48(%esp),%ecx + movl 52(%esp),%edx + movl 56(%esp),%esi + movl 60(%esp),%edi + addl 64(%esp),%eax + adcl 68(%esp),%ebx + xorl %esi,%ecx + xorl %edi,%edx + andl 40(%esp),%ecx + andl 44(%esp),%edx + addl 192(%esp),%eax + adcl 196(%esp),%ebx + xorl %esi,%ecx + xorl %edi,%edx + movl (%ebp),%esi + movl 4(%ebp),%edi + addl %ecx,%eax + adcl %edx,%ebx + movl 32(%esp),%ecx + movl 36(%esp),%edx + addl %esi,%eax + adcl %edi,%ebx + movl %eax,(%esp) + movl %ebx,4(%esp) + addl %ecx,%eax + adcl %edx,%ebx + movl 8(%esp),%ecx + movl 12(%esp),%edx + movl %eax,32(%esp) + movl %ebx,36(%esp) + movl %ecx,%esi + shrl $2,%ecx + movl %edx,%edi + shrl $2,%edx + movl %ecx,%ebx + shll $4,%esi + movl %edx,%eax + shll $4,%edi + xorl %esi,%ebx + shrl $5,%ecx + xorl %edi,%eax + shrl $5,%edx + xorl %ecx,%ebx + shll $21,%esi + xorl %edx,%eax + shll $21,%edi + xorl %esi,%eax + shrl $21,%ecx + xorl %edi,%ebx + shrl $21,%edx + xorl %ecx,%eax + shll $5,%esi + xorl %edx,%ebx + shll $5,%edi + xorl %esi,%eax + xorl %edi,%ebx + movl 8(%esp),%ecx + movl 12(%esp),%edx + movl 16(%esp),%esi + movl 20(%esp),%edi + addl (%esp),%eax + adcl 4(%esp),%ebx + orl %esi,%ecx + orl %edi,%edx + andl 24(%esp),%ecx + andl 28(%esp),%edx + andl 8(%esp),%esi + andl 12(%esp),%edi + orl %esi,%ecx + orl %edi,%edx + addl %ecx,%eax + adcl %edx,%ebx + movl %eax,(%esp) + movl %ebx,4(%esp) + movb (%ebp),%dl + subl $8,%esp + leal 8(%ebp),%ebp + cmpb $148,%dl + jne .L00300_15_x86 +.align 16 +.L00416_79_x86: + movl 312(%esp),%ecx + movl 316(%esp),%edx + movl %ecx,%esi + shrl $1,%ecx + movl %edx,%edi + shrl $1,%edx + movl %ecx,%eax + shll $24,%esi + movl %edx,%ebx + shll $24,%edi + xorl %esi,%ebx + shrl $6,%ecx + xorl %edi,%eax + shrl $6,%edx + xorl %ecx,%eax + shll $7,%esi + xorl %edx,%ebx + shll $1,%edi + xorl %esi,%ebx + shrl $1,%ecx + xorl %edi,%eax + shrl $1,%edx + xorl %ecx,%eax + shll $6,%edi + xorl %edx,%ebx + xorl %edi,%eax + movl %eax,(%esp) + movl %ebx,4(%esp) + movl 208(%esp),%ecx + movl 212(%esp),%edx + movl %ecx,%esi + shrl $6,%ecx + movl %edx,%edi + shrl $6,%edx + movl %ecx,%eax + shll $3,%esi + movl %edx,%ebx + shll $3,%edi + xorl %esi,%eax + shrl $13,%ecx + xorl %edi,%ebx + shrl $13,%edx + xorl %ecx,%eax + shll $10,%esi + xorl %edx,%ebx + shll $10,%edi + xorl %esi,%ebx + shrl $10,%ecx + xorl %edi,%eax + shrl $10,%edx + xorl %ecx,%ebx + shll $13,%edi + xorl %edx,%eax + xorl %edi,%eax + movl 320(%esp),%ecx + movl 324(%esp),%edx + addl (%esp),%eax + adcl 4(%esp),%ebx + movl 248(%esp),%esi + movl 252(%esp),%edi + addl %ecx,%eax + adcl %edx,%ebx + addl %esi,%eax + adcl %edi,%ebx + movl %eax,192(%esp) + movl %ebx,196(%esp) + movl 40(%esp),%ecx + movl 44(%esp),%edx + movl %ecx,%esi + shrl $9,%ecx + movl %edx,%edi + shrl $9,%edx + movl %ecx,%ebx + shll $14,%esi + movl %edx,%eax + shll $14,%edi + xorl %esi,%ebx + shrl $5,%ecx + xorl %edi,%eax + shrl $5,%edx + xorl %ecx,%eax + shll $4,%esi + xorl %edx,%ebx + shll $4,%edi + xorl %esi,%ebx + shrl $4,%ecx + xorl %edi,%eax + shrl $4,%edx + xorl %ecx,%eax + shll $5,%esi + xorl %edx,%ebx + shll $5,%edi + xorl %esi,%eax + xorl %edi,%ebx + movl 48(%esp),%ecx + movl 52(%esp),%edx + movl 56(%esp),%esi + movl 60(%esp),%edi + addl 64(%esp),%eax + adcl 68(%esp),%ebx + xorl %esi,%ecx + xorl %edi,%edx + andl 40(%esp),%ecx + andl 44(%esp),%edx + addl 192(%esp),%eax + adcl 196(%esp),%ebx + xorl %esi,%ecx + xorl %edi,%edx + movl (%ebp),%esi + movl 4(%ebp),%edi + addl %ecx,%eax + adcl %edx,%ebx + movl 32(%esp),%ecx + movl 36(%esp),%edx + addl %esi,%eax + adcl %edi,%ebx + movl %eax,(%esp) + movl %ebx,4(%esp) + addl %ecx,%eax + adcl %edx,%ebx + movl 8(%esp),%ecx + movl 12(%esp),%edx + movl %eax,32(%esp) + movl %ebx,36(%esp) + movl %ecx,%esi + shrl $2,%ecx + movl %edx,%edi + shrl $2,%edx + movl %ecx,%ebx + shll $4,%esi + movl %edx,%eax + shll $4,%edi + xorl %esi,%ebx + shrl $5,%ecx + xorl %edi,%eax + shrl $5,%edx + xorl %ecx,%ebx + shll $21,%esi + xorl %edx,%eax + shll $21,%edi + xorl %esi,%eax + shrl $21,%ecx + xorl %edi,%ebx + shrl $21,%edx + xorl %ecx,%eax + shll $5,%esi + xorl %edx,%ebx + shll $5,%edi + xorl %esi,%eax + xorl %edi,%ebx + movl 8(%esp),%ecx + movl 12(%esp),%edx + movl 16(%esp),%esi + movl 20(%esp),%edi + addl (%esp),%eax + adcl 4(%esp),%ebx + orl %esi,%ecx + orl %edi,%edx + andl 24(%esp),%ecx + andl 28(%esp),%edx + andl 8(%esp),%esi + andl 12(%esp),%edi + orl %esi,%ecx + orl %edi,%edx + addl %ecx,%eax + adcl %edx,%ebx + movl %eax,(%esp) + movl %ebx,4(%esp) + movb (%ebp),%dl + subl $8,%esp + leal 8(%ebp),%ebp + cmpb $23,%dl + jne .L00416_79_x86 + movl 840(%esp),%esi + movl 844(%esp),%edi + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + addl 8(%esp),%eax + adcl 12(%esp),%ebx + movl %eax,(%esi) + movl %ebx,4(%esi) + addl 16(%esp),%ecx + adcl 20(%esp),%edx + movl %ecx,8(%esi) + movl %edx,12(%esi) + movl 16(%esi),%eax + movl 20(%esi),%ebx + movl 24(%esi),%ecx + movl 28(%esi),%edx + addl 24(%esp),%eax + adcl 28(%esp),%ebx + movl %eax,16(%esi) + movl %ebx,20(%esi) + addl 32(%esp),%ecx + adcl 36(%esp),%edx + movl %ecx,24(%esi) + movl %edx,28(%esi) + movl 32(%esi),%eax + movl 36(%esi),%ebx + movl 40(%esi),%ecx + movl 44(%esi),%edx + addl 40(%esp),%eax + adcl 44(%esp),%ebx + movl %eax,32(%esi) + movl %ebx,36(%esi) + addl 48(%esp),%ecx + adcl 52(%esp),%edx + movl %ecx,40(%esi) + movl %edx,44(%esi) + movl 48(%esi),%eax + movl 52(%esi),%ebx + movl 56(%esi),%ecx + movl 60(%esi),%edx + addl 56(%esp),%eax + adcl 60(%esp),%ebx + movl %eax,48(%esi) + movl %ebx,52(%esi) + addl 64(%esp),%ecx + adcl 68(%esp),%edx + movl %ecx,56(%esi) + movl %edx,60(%esi) + addl $840,%esp + subl $640,%ebp + cmpl 8(%esp),%edi + jb .L002loop_x86 + movl 12(%esp),%esp + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 64 +.L001K512: +.long 3609767458,1116352408 +.long 602891725,1899447441 +.long 3964484399,3049323471 +.long 2173295548,3921009573 +.long 4081628472,961987163 +.long 3053834265,1508970993 +.long 2937671579,2453635748 +.long 3664609560,2870763221 +.long 2734883394,3624381080 +.long 1164996542,310598401 +.long 1323610764,607225278 +.long 3590304994,1426881987 +.long 4068182383,1925078388 +.long 991336113,2162078206 +.long 633803317,2614888103 +.long 3479774868,3248222580 +.long 2666613458,3835390401 +.long 944711139,4022224774 +.long 2341262773,264347078 +.long 2007800933,604807628 +.long 1495990901,770255983 +.long 1856431235,1249150122 +.long 3175218132,1555081692 +.long 2198950837,1996064986 +.long 3999719339,2554220882 +.long 766784016,2821834349 +.long 2566594879,2952996808 +.long 3203337956,3210313671 +.long 1034457026,3336571891 +.long 2466948901,3584528711 +.long 3758326383,113926993 +.long 168717936,338241895 +.long 1188179964,666307205 +.long 1546045734,773529912 +.long 1522805485,1294757372 +.long 2643833823,1396182291 +.long 2343527390,1695183700 +.long 1014477480,1986661051 +.long 1206759142,2177026350 +.long 344077627,2456956037 +.long 1290863460,2730485921 +.long 3158454273,2820302411 +.long 3505952657,3259730800 +.long 106217008,3345764771 +.long 3606008344,3516065817 +.long 1432725776,3600352804 +.long 1467031594,4094571909 +.long 851169720,275423344 +.long 3100823752,430227734 +.long 1363258195,506948616 +.long 3750685593,659060556 +.long 3785050280,883997877 +.long 3318307427,958139571 +.long 3812723403,1322822218 +.long 2003034995,1537002063 +.long 3602036899,1747873779 +.long 1575990012,1955562222 +.long 1125592928,2024104815 +.long 2716904306,2227730452 +.long 442776044,2361852424 +.long 593698344,2428436474 +.long 3733110249,2756734187 +.long 2999351573,3204031479 +.long 3815920427,3329325298 +.long 3928383900,3391569614 +.long 566280711,3515267271 +.long 3454069534,3940187606 +.long 4000239992,4118630271 +.long 1914138554,116418474 +.long 2731055270,174292421 +.long 3203993006,289380356 +.long 320620315,460393269 +.long 587496836,685471733 +.long 1086792851,852142971 +.long 365543100,1017036298 +.long 2618297676,1126000580 +.long 3409855158,1288033470 +.long 4234509866,1501505948 +.long 987167468,1607167915 +.long 1246189591,1816402316 +.size sha512_block_data_order,.-.L_sha512_block_data_order_begin +.byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97 +.byte 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32 +.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 +.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 +.byte 62,0 diff --git a/deps/openssl/asm/x86-elf-gas/whrlpool/wp-mmx.s b/deps/openssl/asm/x86-elf-gas/whrlpool/wp-mmx.s new file mode 100644 index 0000000000..c03f3f6cb7 --- /dev/null +++ b/deps/openssl/asm/x86-elf-gas/whrlpool/wp-mmx.s @@ -0,0 +1,1105 @@ +.file "wp-mmx.s" +.text +.globl whirlpool_block_mmx +.type whirlpool_block_mmx,@function +.align 16 +whirlpool_block_mmx: +.L_whirlpool_block_mmx_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%esi + movl 24(%esp),%edi + movl 28(%esp),%ebp + movl %esp,%eax + subl $148,%esp + andl $-64,%esp + leal 128(%esp),%ebx + movl %esi,(%ebx) + movl %edi,4(%ebx) + movl %ebp,8(%ebx) + movl %eax,16(%ebx) + call .L000pic_point +.L000pic_point: + popl %ebp + leal .L001table-.L000pic_point(%ebp),%ebp + xorl %ecx,%ecx + xorl %edx,%edx + movq (%esi),%mm0 + movq 8(%esi),%mm1 + movq 16(%esi),%mm2 + movq 24(%esi),%mm3 + movq 32(%esi),%mm4 + movq 40(%esi),%mm5 + movq 48(%esi),%mm6 + movq 56(%esi),%mm7 +.L002outerloop: + movq %mm0,(%esp) + movq %mm1,8(%esp) + movq %mm2,16(%esp) + movq %mm3,24(%esp) + movq %mm4,32(%esp) + movq %mm5,40(%esp) + movq %mm6,48(%esp) + movq %mm7,56(%esp) + pxor (%edi),%mm0 + pxor 8(%edi),%mm1 + pxor 16(%edi),%mm2 + pxor 24(%edi),%mm3 + pxor 32(%edi),%mm4 + pxor 40(%edi),%mm5 + pxor 48(%edi),%mm6 + pxor 56(%edi),%mm7 + movq %mm0,64(%esp) + movq %mm1,72(%esp) + movq %mm2,80(%esp) + movq %mm3,88(%esp) + movq %mm4,96(%esp) + movq %mm5,104(%esp) + movq %mm6,112(%esp) + movq %mm7,120(%esp) + xorl %esi,%esi + movl %esi,12(%ebx) +.align 16 +.L003round: + movq 4096(%ebp,%esi,8),%mm0 + movl (%esp),%eax + movl 4(%esp),%ebx + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm0 + movq 7(%ebp,%edi,8),%mm1 + movb %al,%cl + movb %ah,%dl + movl 8(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + movq 6(%ebp,%esi,8),%mm2 + movq 5(%ebp,%edi,8),%mm3 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + movq 4(%ebp,%esi,8),%mm4 + movq 3(%ebp,%edi,8),%mm5 + movb %bl,%cl + movb %bh,%dl + movl 12(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + movq 2(%ebp,%esi,8),%mm6 + movq 1(%ebp,%edi,8),%mm7 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm1 + pxor 7(%ebp,%edi,8),%mm2 + movb %al,%cl + movb %ah,%dl + movl 16(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm3 + pxor 5(%ebp,%edi,8),%mm4 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm5 + pxor 3(%ebp,%edi,8),%mm6 + movb %bl,%cl + movb %bh,%dl + movl 20(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm7 + pxor 1(%ebp,%edi,8),%mm0 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm2 + pxor 7(%ebp,%edi,8),%mm3 + movb %al,%cl + movb %ah,%dl + movl 24(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm4 + pxor 5(%ebp,%edi,8),%mm5 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm6 + pxor 3(%ebp,%edi,8),%mm7 + movb %bl,%cl + movb %bh,%dl + movl 28(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm0 + pxor 1(%ebp,%edi,8),%mm1 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm3 + pxor 7(%ebp,%edi,8),%mm4 + movb %al,%cl + movb %ah,%dl + movl 32(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm5 + pxor 5(%ebp,%edi,8),%mm6 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm7 + pxor 3(%ebp,%edi,8),%mm0 + movb %bl,%cl + movb %bh,%dl + movl 36(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm1 + pxor 1(%ebp,%edi,8),%mm2 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm4 + pxor 7(%ebp,%edi,8),%mm5 + movb %al,%cl + movb %ah,%dl + movl 40(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm6 + pxor 5(%ebp,%edi,8),%mm7 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm0 + pxor 3(%ebp,%edi,8),%mm1 + movb %bl,%cl + movb %bh,%dl + movl 44(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm2 + pxor 1(%ebp,%edi,8),%mm3 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm5 + pxor 7(%ebp,%edi,8),%mm6 + movb %al,%cl + movb %ah,%dl + movl 48(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm7 + pxor 5(%ebp,%edi,8),%mm0 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm1 + pxor 3(%ebp,%edi,8),%mm2 + movb %bl,%cl + movb %bh,%dl + movl 52(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm3 + pxor 1(%ebp,%edi,8),%mm4 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm6 + pxor 7(%ebp,%edi,8),%mm7 + movb %al,%cl + movb %ah,%dl + movl 56(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm0 + pxor 5(%ebp,%edi,8),%mm1 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm2 + pxor 3(%ebp,%edi,8),%mm3 + movb %bl,%cl + movb %bh,%dl + movl 60(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm4 + pxor 1(%ebp,%edi,8),%mm5 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm7 + pxor 7(%ebp,%edi,8),%mm0 + movb %al,%cl + movb %ah,%dl + movl 64(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm1 + pxor 5(%ebp,%edi,8),%mm2 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm3 + pxor 3(%ebp,%edi,8),%mm4 + movb %bl,%cl + movb %bh,%dl + movl 68(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm5 + pxor 1(%ebp,%edi,8),%mm6 + movq %mm0,(%esp) + movq %mm1,8(%esp) + movq %mm2,16(%esp) + movq %mm3,24(%esp) + movq %mm4,32(%esp) + movq %mm5,40(%esp) + movq %mm6,48(%esp) + movq %mm7,56(%esp) + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm0 + pxor 7(%ebp,%edi,8),%mm1 + movb %al,%cl + movb %ah,%dl + movl 72(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm2 + pxor 5(%ebp,%edi,8),%mm3 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm4 + pxor 3(%ebp,%edi,8),%mm5 + movb %bl,%cl + movb %bh,%dl + movl 76(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm6 + pxor 1(%ebp,%edi,8),%mm7 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm1 + pxor 7(%ebp,%edi,8),%mm2 + movb %al,%cl + movb %ah,%dl + movl 80(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm3 + pxor 5(%ebp,%edi,8),%mm4 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm5 + pxor 3(%ebp,%edi,8),%mm6 + movb %bl,%cl + movb %bh,%dl + movl 84(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm7 + pxor 1(%ebp,%edi,8),%mm0 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm2 + pxor 7(%ebp,%edi,8),%mm3 + movb %al,%cl + movb %ah,%dl + movl 88(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm4 + pxor 5(%ebp,%edi,8),%mm5 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm6 + pxor 3(%ebp,%edi,8),%mm7 + movb %bl,%cl + movb %bh,%dl + movl 92(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm0 + pxor 1(%ebp,%edi,8),%mm1 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm3 + pxor 7(%ebp,%edi,8),%mm4 + movb %al,%cl + movb %ah,%dl + movl 96(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm5 + pxor 5(%ebp,%edi,8),%mm6 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm7 + pxor 3(%ebp,%edi,8),%mm0 + movb %bl,%cl + movb %bh,%dl + movl 100(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm1 + pxor 1(%ebp,%edi,8),%mm2 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm4 + pxor 7(%ebp,%edi,8),%mm5 + movb %al,%cl + movb %ah,%dl + movl 104(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm6 + pxor 5(%ebp,%edi,8),%mm7 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm0 + pxor 3(%ebp,%edi,8),%mm1 + movb %bl,%cl + movb %bh,%dl + movl 108(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm2 + pxor 1(%ebp,%edi,8),%mm3 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm5 + pxor 7(%ebp,%edi,8),%mm6 + movb %al,%cl + movb %ah,%dl + movl 112(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm7 + pxor 5(%ebp,%edi,8),%mm0 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm1 + pxor 3(%ebp,%edi,8),%mm2 + movb %bl,%cl + movb %bh,%dl + movl 116(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm3 + pxor 1(%ebp,%edi,8),%mm4 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm6 + pxor 7(%ebp,%edi,8),%mm7 + movb %al,%cl + movb %ah,%dl + movl 120(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm0 + pxor 5(%ebp,%edi,8),%mm1 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm2 + pxor 3(%ebp,%edi,8),%mm3 + movb %bl,%cl + movb %bh,%dl + movl 124(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm4 + pxor 1(%ebp,%edi,8),%mm5 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm7 + pxor 7(%ebp,%edi,8),%mm0 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm1 + pxor 5(%ebp,%edi,8),%mm2 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm3 + pxor 3(%ebp,%edi,8),%mm4 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm5 + pxor 1(%ebp,%edi,8),%mm6 + leal 128(%esp),%ebx + movl 12(%ebx),%esi + addl $1,%esi + cmpl $10,%esi + je .L004roundsdone + movl %esi,12(%ebx) + movq %mm0,64(%esp) + movq %mm1,72(%esp) + movq %mm2,80(%esp) + movq %mm3,88(%esp) + movq %mm4,96(%esp) + movq %mm5,104(%esp) + movq %mm6,112(%esp) + movq %mm7,120(%esp) + jmp .L003round +.align 16 +.L004roundsdone: + movl (%ebx),%esi + movl 4(%ebx),%edi + movl 8(%ebx),%eax + pxor (%edi),%mm0 + pxor 8(%edi),%mm1 + pxor 16(%edi),%mm2 + pxor 24(%edi),%mm3 + pxor 32(%edi),%mm4 + pxor 40(%edi),%mm5 + pxor 48(%edi),%mm6 + pxor 56(%edi),%mm7 + pxor (%esi),%mm0 + pxor 8(%esi),%mm1 + pxor 16(%esi),%mm2 + pxor 24(%esi),%mm3 + pxor 32(%esi),%mm4 + pxor 40(%esi),%mm5 + pxor 48(%esi),%mm6 + pxor 56(%esi),%mm7 + movq %mm0,(%esi) + movq %mm1,8(%esi) + movq %mm2,16(%esi) + movq %mm3,24(%esi) + movq %mm4,32(%esi) + movq %mm5,40(%esi) + movq %mm6,48(%esi) + movq %mm7,56(%esi) + leal 64(%edi),%edi + subl $1,%eax + jz .L005alldone + movl %edi,4(%ebx) + movl %eax,8(%ebx) + jmp .L002outerloop +.L005alldone: + emms + movl 16(%ebx),%esp + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 64 +.L001table: +.byte 24,24,96,24,192,120,48,216 +.byte 24,24,96,24,192,120,48,216 +.byte 35,35,140,35,5,175,70,38 +.byte 35,35,140,35,5,175,70,38 +.byte 198,198,63,198,126,249,145,184 +.byte 198,198,63,198,126,249,145,184 +.byte 232,232,135,232,19,111,205,251 +.byte 232,232,135,232,19,111,205,251 +.byte 135,135,38,135,76,161,19,203 +.byte 135,135,38,135,76,161,19,203 +.byte 184,184,218,184,169,98,109,17 +.byte 184,184,218,184,169,98,109,17 +.byte 1,1,4,1,8,5,2,9 +.byte 1,1,4,1,8,5,2,9 +.byte 79,79,33,79,66,110,158,13 +.byte 79,79,33,79,66,110,158,13 +.byte 54,54,216,54,173,238,108,155 +.byte 54,54,216,54,173,238,108,155 +.byte 166,166,162,166,89,4,81,255 +.byte 166,166,162,166,89,4,81,255 +.byte 210,210,111,210,222,189,185,12 +.byte 210,210,111,210,222,189,185,12 +.byte 245,245,243,245,251,6,247,14 +.byte 245,245,243,245,251,6,247,14 +.byte 121,121,249,121,239,128,242,150 +.byte 121,121,249,121,239,128,242,150 +.byte 111,111,161,111,95,206,222,48 +.byte 111,111,161,111,95,206,222,48 +.byte 145,145,126,145,252,239,63,109 +.byte 145,145,126,145,252,239,63,109 +.byte 82,82,85,82,170,7,164,248 +.byte 82,82,85,82,170,7,164,248 +.byte 96,96,157,96,39,253,192,71 +.byte 96,96,157,96,39,253,192,71 +.byte 188,188,202,188,137,118,101,53 +.byte 188,188,202,188,137,118,101,53 +.byte 155,155,86,155,172,205,43,55 +.byte 155,155,86,155,172,205,43,55 +.byte 142,142,2,142,4,140,1,138 +.byte 142,142,2,142,4,140,1,138 +.byte 163,163,182,163,113,21,91,210 +.byte 163,163,182,163,113,21,91,210 +.byte 12,12,48,12,96,60,24,108 +.byte 12,12,48,12,96,60,24,108 +.byte 123,123,241,123,255,138,246,132 +.byte 123,123,241,123,255,138,246,132 +.byte 53,53,212,53,181,225,106,128 +.byte 53,53,212,53,181,225,106,128 +.byte 29,29,116,29,232,105,58,245 +.byte 29,29,116,29,232,105,58,245 +.byte 224,224,167,224,83,71,221,179 +.byte 224,224,167,224,83,71,221,179 +.byte 215,215,123,215,246,172,179,33 +.byte 215,215,123,215,246,172,179,33 +.byte 194,194,47,194,94,237,153,156 +.byte 194,194,47,194,94,237,153,156 +.byte 46,46,184,46,109,150,92,67 +.byte 46,46,184,46,109,150,92,67 +.byte 75,75,49,75,98,122,150,41 +.byte 75,75,49,75,98,122,150,41 +.byte 254,254,223,254,163,33,225,93 +.byte 254,254,223,254,163,33,225,93 +.byte 87,87,65,87,130,22,174,213 +.byte 87,87,65,87,130,22,174,213 +.byte 21,21,84,21,168,65,42,189 +.byte 21,21,84,21,168,65,42,189 +.byte 119,119,193,119,159,182,238,232 +.byte 119,119,193,119,159,182,238,232 +.byte 55,55,220,55,165,235,110,146 +.byte 55,55,220,55,165,235,110,146 +.byte 229,229,179,229,123,86,215,158 +.byte 229,229,179,229,123,86,215,158 +.byte 159,159,70,159,140,217,35,19 +.byte 159,159,70,159,140,217,35,19 +.byte 240,240,231,240,211,23,253,35 +.byte 240,240,231,240,211,23,253,35 +.byte 74,74,53,74,106,127,148,32 +.byte 74,74,53,74,106,127,148,32 +.byte 218,218,79,218,158,149,169,68 +.byte 218,218,79,218,158,149,169,68 +.byte 88,88,125,88,250,37,176,162 +.byte 88,88,125,88,250,37,176,162 +.byte 201,201,3,201,6,202,143,207 +.byte 201,201,3,201,6,202,143,207 +.byte 41,41,164,41,85,141,82,124 +.byte 41,41,164,41,85,141,82,124 +.byte 10,10,40,10,80,34,20,90 +.byte 10,10,40,10,80,34,20,90 +.byte 177,177,254,177,225,79,127,80 +.byte 177,177,254,177,225,79,127,80 +.byte 160,160,186,160,105,26,93,201 +.byte 160,160,186,160,105,26,93,201 +.byte 107,107,177,107,127,218,214,20 +.byte 107,107,177,107,127,218,214,20 +.byte 133,133,46,133,92,171,23,217 +.byte 133,133,46,133,92,171,23,217 +.byte 189,189,206,189,129,115,103,60 +.byte 189,189,206,189,129,115,103,60 +.byte 93,93,105,93,210,52,186,143 +.byte 93,93,105,93,210,52,186,143 +.byte 16,16,64,16,128,80,32,144 +.byte 16,16,64,16,128,80,32,144 +.byte 244,244,247,244,243,3,245,7 +.byte 244,244,247,244,243,3,245,7 +.byte 203,203,11,203,22,192,139,221 +.byte 203,203,11,203,22,192,139,221 +.byte 62,62,248,62,237,198,124,211 +.byte 62,62,248,62,237,198,124,211 +.byte 5,5,20,5,40,17,10,45 +.byte 5,5,20,5,40,17,10,45 +.byte 103,103,129,103,31,230,206,120 +.byte 103,103,129,103,31,230,206,120 +.byte 228,228,183,228,115,83,213,151 +.byte 228,228,183,228,115,83,213,151 +.byte 39,39,156,39,37,187,78,2 +.byte 39,39,156,39,37,187,78,2 +.byte 65,65,25,65,50,88,130,115 +.byte 65,65,25,65,50,88,130,115 +.byte 139,139,22,139,44,157,11,167 +.byte 139,139,22,139,44,157,11,167 +.byte 167,167,166,167,81,1,83,246 +.byte 167,167,166,167,81,1,83,246 +.byte 125,125,233,125,207,148,250,178 +.byte 125,125,233,125,207,148,250,178 +.byte 149,149,110,149,220,251,55,73 +.byte 149,149,110,149,220,251,55,73 +.byte 216,216,71,216,142,159,173,86 +.byte 216,216,71,216,142,159,173,86 +.byte 251,251,203,251,139,48,235,112 +.byte 251,251,203,251,139,48,235,112 +.byte 238,238,159,238,35,113,193,205 +.byte 238,238,159,238,35,113,193,205 +.byte 124,124,237,124,199,145,248,187 +.byte 124,124,237,124,199,145,248,187 +.byte 102,102,133,102,23,227,204,113 +.byte 102,102,133,102,23,227,204,113 +.byte 221,221,83,221,166,142,167,123 +.byte 221,221,83,221,166,142,167,123 +.byte 23,23,92,23,184,75,46,175 +.byte 23,23,92,23,184,75,46,175 +.byte 71,71,1,71,2,70,142,69 +.byte 71,71,1,71,2,70,142,69 +.byte 158,158,66,158,132,220,33,26 +.byte 158,158,66,158,132,220,33,26 +.byte 202,202,15,202,30,197,137,212 +.byte 202,202,15,202,30,197,137,212 +.byte 45,45,180,45,117,153,90,88 +.byte 45,45,180,45,117,153,90,88 +.byte 191,191,198,191,145,121,99,46 +.byte 191,191,198,191,145,121,99,46 +.byte 7,7,28,7,56,27,14,63 +.byte 7,7,28,7,56,27,14,63 +.byte 173,173,142,173,1,35,71,172 +.byte 173,173,142,173,1,35,71,172 +.byte 90,90,117,90,234,47,180,176 +.byte 90,90,117,90,234,47,180,176 +.byte 131,131,54,131,108,181,27,239 +.byte 131,131,54,131,108,181,27,239 +.byte 51,51,204,51,133,255,102,182 +.byte 51,51,204,51,133,255,102,182 +.byte 99,99,145,99,63,242,198,92 +.byte 99,99,145,99,63,242,198,92 +.byte 2,2,8,2,16,10,4,18 +.byte 2,2,8,2,16,10,4,18 +.byte 170,170,146,170,57,56,73,147 +.byte 170,170,146,170,57,56,73,147 +.byte 113,113,217,113,175,168,226,222 +.byte 113,113,217,113,175,168,226,222 +.byte 200,200,7,200,14,207,141,198 +.byte 200,200,7,200,14,207,141,198 +.byte 25,25,100,25,200,125,50,209 +.byte 25,25,100,25,200,125,50,209 +.byte 73,73,57,73,114,112,146,59 +.byte 73,73,57,73,114,112,146,59 +.byte 217,217,67,217,134,154,175,95 +.byte 217,217,67,217,134,154,175,95 +.byte 242,242,239,242,195,29,249,49 +.byte 242,242,239,242,195,29,249,49 +.byte 227,227,171,227,75,72,219,168 +.byte 227,227,171,227,75,72,219,168 +.byte 91,91,113,91,226,42,182,185 +.byte 91,91,113,91,226,42,182,185 +.byte 136,136,26,136,52,146,13,188 +.byte 136,136,26,136,52,146,13,188 +.byte 154,154,82,154,164,200,41,62 +.byte 154,154,82,154,164,200,41,62 +.byte 38,38,152,38,45,190,76,11 +.byte 38,38,152,38,45,190,76,11 +.byte 50,50,200,50,141,250,100,191 +.byte 50,50,200,50,141,250,100,191 +.byte 176,176,250,176,233,74,125,89 +.byte 176,176,250,176,233,74,125,89 +.byte 233,233,131,233,27,106,207,242 +.byte 233,233,131,233,27,106,207,242 +.byte 15,15,60,15,120,51,30,119 +.byte 15,15,60,15,120,51,30,119 +.byte 213,213,115,213,230,166,183,51 +.byte 213,213,115,213,230,166,183,51 +.byte 128,128,58,128,116,186,29,244 +.byte 128,128,58,128,116,186,29,244 +.byte 190,190,194,190,153,124,97,39 +.byte 190,190,194,190,153,124,97,39 +.byte 205,205,19,205,38,222,135,235 +.byte 205,205,19,205,38,222,135,235 +.byte 52,52,208,52,189,228,104,137 +.byte 52,52,208,52,189,228,104,137 +.byte 72,72,61,72,122,117,144,50 +.byte 72,72,61,72,122,117,144,50 +.byte 255,255,219,255,171,36,227,84 +.byte 255,255,219,255,171,36,227,84 +.byte 122,122,245,122,247,143,244,141 +.byte 122,122,245,122,247,143,244,141 +.byte 144,144,122,144,244,234,61,100 +.byte 144,144,122,144,244,234,61,100 +.byte 95,95,97,95,194,62,190,157 +.byte 95,95,97,95,194,62,190,157 +.byte 32,32,128,32,29,160,64,61 +.byte 32,32,128,32,29,160,64,61 +.byte 104,104,189,104,103,213,208,15 +.byte 104,104,189,104,103,213,208,15 +.byte 26,26,104,26,208,114,52,202 +.byte 26,26,104,26,208,114,52,202 +.byte 174,174,130,174,25,44,65,183 +.byte 174,174,130,174,25,44,65,183 +.byte 180,180,234,180,201,94,117,125 +.byte 180,180,234,180,201,94,117,125 +.byte 84,84,77,84,154,25,168,206 +.byte 84,84,77,84,154,25,168,206 +.byte 147,147,118,147,236,229,59,127 +.byte 147,147,118,147,236,229,59,127 +.byte 34,34,136,34,13,170,68,47 +.byte 34,34,136,34,13,170,68,47 +.byte 100,100,141,100,7,233,200,99 +.byte 100,100,141,100,7,233,200,99 +.byte 241,241,227,241,219,18,255,42 +.byte 241,241,227,241,219,18,255,42 +.byte 115,115,209,115,191,162,230,204 +.byte 115,115,209,115,191,162,230,204 +.byte 18,18,72,18,144,90,36,130 +.byte 18,18,72,18,144,90,36,130 +.byte 64,64,29,64,58,93,128,122 +.byte 64,64,29,64,58,93,128,122 +.byte 8,8,32,8,64,40,16,72 +.byte 8,8,32,8,64,40,16,72 +.byte 195,195,43,195,86,232,155,149 +.byte 195,195,43,195,86,232,155,149 +.byte 236,236,151,236,51,123,197,223 +.byte 236,236,151,236,51,123,197,223 +.byte 219,219,75,219,150,144,171,77 +.byte 219,219,75,219,150,144,171,77 +.byte 161,161,190,161,97,31,95,192 +.byte 161,161,190,161,97,31,95,192 +.byte 141,141,14,141,28,131,7,145 +.byte 141,141,14,141,28,131,7,145 +.byte 61,61,244,61,245,201,122,200 +.byte 61,61,244,61,245,201,122,200 +.byte 151,151,102,151,204,241,51,91 +.byte 151,151,102,151,204,241,51,91 +.byte 0,0,0,0,0,0,0,0 +.byte 0,0,0,0,0,0,0,0 +.byte 207,207,27,207,54,212,131,249 +.byte 207,207,27,207,54,212,131,249 +.byte 43,43,172,43,69,135,86,110 +.byte 43,43,172,43,69,135,86,110 +.byte 118,118,197,118,151,179,236,225 +.byte 118,118,197,118,151,179,236,225 +.byte 130,130,50,130,100,176,25,230 +.byte 130,130,50,130,100,176,25,230 +.byte 214,214,127,214,254,169,177,40 +.byte 214,214,127,214,254,169,177,40 +.byte 27,27,108,27,216,119,54,195 +.byte 27,27,108,27,216,119,54,195 +.byte 181,181,238,181,193,91,119,116 +.byte 181,181,238,181,193,91,119,116 +.byte 175,175,134,175,17,41,67,190 +.byte 175,175,134,175,17,41,67,190 +.byte 106,106,181,106,119,223,212,29 +.byte 106,106,181,106,119,223,212,29 +.byte 80,80,93,80,186,13,160,234 +.byte 80,80,93,80,186,13,160,234 +.byte 69,69,9,69,18,76,138,87 +.byte 69,69,9,69,18,76,138,87 +.byte 243,243,235,243,203,24,251,56 +.byte 243,243,235,243,203,24,251,56 +.byte 48,48,192,48,157,240,96,173 +.byte 48,48,192,48,157,240,96,173 +.byte 239,239,155,239,43,116,195,196 +.byte 239,239,155,239,43,116,195,196 +.byte 63,63,252,63,229,195,126,218 +.byte 63,63,252,63,229,195,126,218 +.byte 85,85,73,85,146,28,170,199 +.byte 85,85,73,85,146,28,170,199 +.byte 162,162,178,162,121,16,89,219 +.byte 162,162,178,162,121,16,89,219 +.byte 234,234,143,234,3,101,201,233 +.byte 234,234,143,234,3,101,201,233 +.byte 101,101,137,101,15,236,202,106 +.byte 101,101,137,101,15,236,202,106 +.byte 186,186,210,186,185,104,105,3 +.byte 186,186,210,186,185,104,105,3 +.byte 47,47,188,47,101,147,94,74 +.byte 47,47,188,47,101,147,94,74 +.byte 192,192,39,192,78,231,157,142 +.byte 192,192,39,192,78,231,157,142 +.byte 222,222,95,222,190,129,161,96 +.byte 222,222,95,222,190,129,161,96 +.byte 28,28,112,28,224,108,56,252 +.byte 28,28,112,28,224,108,56,252 +.byte 253,253,211,253,187,46,231,70 +.byte 253,253,211,253,187,46,231,70 +.byte 77,77,41,77,82,100,154,31 +.byte 77,77,41,77,82,100,154,31 +.byte 146,146,114,146,228,224,57,118 +.byte 146,146,114,146,228,224,57,118 +.byte 117,117,201,117,143,188,234,250 +.byte 117,117,201,117,143,188,234,250 +.byte 6,6,24,6,48,30,12,54 +.byte 6,6,24,6,48,30,12,54 +.byte 138,138,18,138,36,152,9,174 +.byte 138,138,18,138,36,152,9,174 +.byte 178,178,242,178,249,64,121,75 +.byte 178,178,242,178,249,64,121,75 +.byte 230,230,191,230,99,89,209,133 +.byte 230,230,191,230,99,89,209,133 +.byte 14,14,56,14,112,54,28,126 +.byte 14,14,56,14,112,54,28,126 +.byte 31,31,124,31,248,99,62,231 +.byte 31,31,124,31,248,99,62,231 +.byte 98,98,149,98,55,247,196,85 +.byte 98,98,149,98,55,247,196,85 +.byte 212,212,119,212,238,163,181,58 +.byte 212,212,119,212,238,163,181,58 +.byte 168,168,154,168,41,50,77,129 +.byte 168,168,154,168,41,50,77,129 +.byte 150,150,98,150,196,244,49,82 +.byte 150,150,98,150,196,244,49,82 +.byte 249,249,195,249,155,58,239,98 +.byte 249,249,195,249,155,58,239,98 +.byte 197,197,51,197,102,246,151,163 +.byte 197,197,51,197,102,246,151,163 +.byte 37,37,148,37,53,177,74,16 +.byte 37,37,148,37,53,177,74,16 +.byte 89,89,121,89,242,32,178,171 +.byte 89,89,121,89,242,32,178,171 +.byte 132,132,42,132,84,174,21,208 +.byte 132,132,42,132,84,174,21,208 +.byte 114,114,213,114,183,167,228,197 +.byte 114,114,213,114,183,167,228,197 +.byte 57,57,228,57,213,221,114,236 +.byte 57,57,228,57,213,221,114,236 +.byte 76,76,45,76,90,97,152,22 +.byte 76,76,45,76,90,97,152,22 +.byte 94,94,101,94,202,59,188,148 +.byte 94,94,101,94,202,59,188,148 +.byte 120,120,253,120,231,133,240,159 +.byte 120,120,253,120,231,133,240,159 +.byte 56,56,224,56,221,216,112,229 +.byte 56,56,224,56,221,216,112,229 +.byte 140,140,10,140,20,134,5,152 +.byte 140,140,10,140,20,134,5,152 +.byte 209,209,99,209,198,178,191,23 +.byte 209,209,99,209,198,178,191,23 +.byte 165,165,174,165,65,11,87,228 +.byte 165,165,174,165,65,11,87,228 +.byte 226,226,175,226,67,77,217,161 +.byte 226,226,175,226,67,77,217,161 +.byte 97,97,153,97,47,248,194,78 +.byte 97,97,153,97,47,248,194,78 +.byte 179,179,246,179,241,69,123,66 +.byte 179,179,246,179,241,69,123,66 +.byte 33,33,132,33,21,165,66,52 +.byte 33,33,132,33,21,165,66,52 +.byte 156,156,74,156,148,214,37,8 +.byte 156,156,74,156,148,214,37,8 +.byte 30,30,120,30,240,102,60,238 +.byte 30,30,120,30,240,102,60,238 +.byte 67,67,17,67,34,82,134,97 +.byte 67,67,17,67,34,82,134,97 +.byte 199,199,59,199,118,252,147,177 +.byte 199,199,59,199,118,252,147,177 +.byte 252,252,215,252,179,43,229,79 +.byte 252,252,215,252,179,43,229,79 +.byte 4,4,16,4,32,20,8,36 +.byte 4,4,16,4,32,20,8,36 +.byte 81,81,89,81,178,8,162,227 +.byte 81,81,89,81,178,8,162,227 +.byte 153,153,94,153,188,199,47,37 +.byte 153,153,94,153,188,199,47,37 +.byte 109,109,169,109,79,196,218,34 +.byte 109,109,169,109,79,196,218,34 +.byte 13,13,52,13,104,57,26,101 +.byte 13,13,52,13,104,57,26,101 +.byte 250,250,207,250,131,53,233,121 +.byte 250,250,207,250,131,53,233,121 +.byte 223,223,91,223,182,132,163,105 +.byte 223,223,91,223,182,132,163,105 +.byte 126,126,229,126,215,155,252,169 +.byte 126,126,229,126,215,155,252,169 +.byte 36,36,144,36,61,180,72,25 +.byte 36,36,144,36,61,180,72,25 +.byte 59,59,236,59,197,215,118,254 +.byte 59,59,236,59,197,215,118,254 +.byte 171,171,150,171,49,61,75,154 +.byte 171,171,150,171,49,61,75,154 +.byte 206,206,31,206,62,209,129,240 +.byte 206,206,31,206,62,209,129,240 +.byte 17,17,68,17,136,85,34,153 +.byte 17,17,68,17,136,85,34,153 +.byte 143,143,6,143,12,137,3,131 +.byte 143,143,6,143,12,137,3,131 +.byte 78,78,37,78,74,107,156,4 +.byte 78,78,37,78,74,107,156,4 +.byte 183,183,230,183,209,81,115,102 +.byte 183,183,230,183,209,81,115,102 +.byte 235,235,139,235,11,96,203,224 +.byte 235,235,139,235,11,96,203,224 +.byte 60,60,240,60,253,204,120,193 +.byte 60,60,240,60,253,204,120,193 +.byte 129,129,62,129,124,191,31,253 +.byte 129,129,62,129,124,191,31,253 +.byte 148,148,106,148,212,254,53,64 +.byte 148,148,106,148,212,254,53,64 +.byte 247,247,251,247,235,12,243,28 +.byte 247,247,251,247,235,12,243,28 +.byte 185,185,222,185,161,103,111,24 +.byte 185,185,222,185,161,103,111,24 +.byte 19,19,76,19,152,95,38,139 +.byte 19,19,76,19,152,95,38,139 +.byte 44,44,176,44,125,156,88,81 +.byte 44,44,176,44,125,156,88,81 +.byte 211,211,107,211,214,184,187,5 +.byte 211,211,107,211,214,184,187,5 +.byte 231,231,187,231,107,92,211,140 +.byte 231,231,187,231,107,92,211,140 +.byte 110,110,165,110,87,203,220,57 +.byte 110,110,165,110,87,203,220,57 +.byte 196,196,55,196,110,243,149,170 +.byte 196,196,55,196,110,243,149,170 +.byte 3,3,12,3,24,15,6,27 +.byte 3,3,12,3,24,15,6,27 +.byte 86,86,69,86,138,19,172,220 +.byte 86,86,69,86,138,19,172,220 +.byte 68,68,13,68,26,73,136,94 +.byte 68,68,13,68,26,73,136,94 +.byte 127,127,225,127,223,158,254,160 +.byte 127,127,225,127,223,158,254,160 +.byte 169,169,158,169,33,55,79,136 +.byte 169,169,158,169,33,55,79,136 +.byte 42,42,168,42,77,130,84,103 +.byte 42,42,168,42,77,130,84,103 +.byte 187,187,214,187,177,109,107,10 +.byte 187,187,214,187,177,109,107,10 +.byte 193,193,35,193,70,226,159,135 +.byte 193,193,35,193,70,226,159,135 +.byte 83,83,81,83,162,2,166,241 +.byte 83,83,81,83,162,2,166,241 +.byte 220,220,87,220,174,139,165,114 +.byte 220,220,87,220,174,139,165,114 +.byte 11,11,44,11,88,39,22,83 +.byte 11,11,44,11,88,39,22,83 +.byte 157,157,78,157,156,211,39,1 +.byte 157,157,78,157,156,211,39,1 +.byte 108,108,173,108,71,193,216,43 +.byte 108,108,173,108,71,193,216,43 +.byte 49,49,196,49,149,245,98,164 +.byte 49,49,196,49,149,245,98,164 +.byte 116,116,205,116,135,185,232,243 +.byte 116,116,205,116,135,185,232,243 +.byte 246,246,255,246,227,9,241,21 +.byte 246,246,255,246,227,9,241,21 +.byte 70,70,5,70,10,67,140,76 +.byte 70,70,5,70,10,67,140,76 +.byte 172,172,138,172,9,38,69,165 +.byte 172,172,138,172,9,38,69,165 +.byte 137,137,30,137,60,151,15,181 +.byte 137,137,30,137,60,151,15,181 +.byte 20,20,80,20,160,68,40,180 +.byte 20,20,80,20,160,68,40,180 +.byte 225,225,163,225,91,66,223,186 +.byte 225,225,163,225,91,66,223,186 +.byte 22,22,88,22,176,78,44,166 +.byte 22,22,88,22,176,78,44,166 +.byte 58,58,232,58,205,210,116,247 +.byte 58,58,232,58,205,210,116,247 +.byte 105,105,185,105,111,208,210,6 +.byte 105,105,185,105,111,208,210,6 +.byte 9,9,36,9,72,45,18,65 +.byte 9,9,36,9,72,45,18,65 +.byte 112,112,221,112,167,173,224,215 +.byte 112,112,221,112,167,173,224,215 +.byte 182,182,226,182,217,84,113,111 +.byte 182,182,226,182,217,84,113,111 +.byte 208,208,103,208,206,183,189,30 +.byte 208,208,103,208,206,183,189,30 +.byte 237,237,147,237,59,126,199,214 +.byte 237,237,147,237,59,126,199,214 +.byte 204,204,23,204,46,219,133,226 +.byte 204,204,23,204,46,219,133,226 +.byte 66,66,21,66,42,87,132,104 +.byte 66,66,21,66,42,87,132,104 +.byte 152,152,90,152,180,194,45,44 +.byte 152,152,90,152,180,194,45,44 +.byte 164,164,170,164,73,14,85,237 +.byte 164,164,170,164,73,14,85,237 +.byte 40,40,160,40,93,136,80,117 +.byte 40,40,160,40,93,136,80,117 +.byte 92,92,109,92,218,49,184,134 +.byte 92,92,109,92,218,49,184,134 +.byte 248,248,199,248,147,63,237,107 +.byte 248,248,199,248,147,63,237,107 +.byte 134,134,34,134,68,164,17,194 +.byte 134,134,34,134,68,164,17,194 +.byte 24,35,198,232,135,184,1,79 +.byte 54,166,210,245,121,111,145,82 +.byte 96,188,155,142,163,12,123,53 +.byte 29,224,215,194,46,75,254,87 +.byte 21,119,55,229,159,240,74,218 +.byte 88,201,41,10,177,160,107,133 +.byte 189,93,16,244,203,62,5,103 +.byte 228,39,65,139,167,125,149,216 +.byte 251,238,124,102,221,23,71,158 +.byte 202,45,191,7,173,90,131,51 +.size whirlpool_block_mmx,.-.L_whirlpool_block_mmx_begin diff --git a/deps/openssl/asm/x86-elf-gas/x86cpuid.s b/deps/openssl/asm/x86-elf-gas/x86cpuid.s new file mode 100644 index 0000000000..56a92bfcbe --- /dev/null +++ b/deps/openssl/asm/x86-elf-gas/x86cpuid.s @@ -0,0 +1,279 @@ +.file "x86cpuid.s" +.text +.globl OPENSSL_ia32_cpuid +.type OPENSSL_ia32_cpuid,@function +.align 16 +OPENSSL_ia32_cpuid: +.L_OPENSSL_ia32_cpuid_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + xorl %edx,%edx + pushfl + popl %eax + movl %eax,%ecx + xorl $2097152,%eax + pushl %eax + popfl + pushfl + popl %eax + xorl %eax,%ecx + btl $21,%ecx + jnc .L000done + xorl %eax,%eax + .byte 0x0f,0xa2 + movl %eax,%edi + xorl %eax,%eax + cmpl $1970169159,%ebx + setne %al + movl %eax,%ebp + cmpl $1231384169,%edx + setne %al + orl %eax,%ebp + cmpl $1818588270,%ecx + setne %al + orl %eax,%ebp + jz .L001intel + cmpl $1752462657,%ebx + setne %al + movl %eax,%esi + cmpl $1769238117,%edx + setne %al + orl %eax,%esi + cmpl $1145913699,%ecx + setne %al + orl %eax,%esi + jnz .L001intel + movl $2147483648,%eax + .byte 0x0f,0xa2 + cmpl $2147483656,%eax + jb .L001intel + movl $2147483656,%eax + .byte 0x0f,0xa2 + movzbl %cl,%esi + incl %esi + movl $1,%eax + .byte 0x0f,0xa2 + btl $28,%edx + jnc .L000done + shrl $16,%ebx + andl $255,%ebx + cmpl %esi,%ebx + ja .L000done + andl $4026531839,%edx + jmp .L000done +.L001intel: + cmpl $4,%edi + movl $-1,%edi + jb .L002nocacheinfo + movl $4,%eax + movl $0,%ecx + .byte 0x0f,0xa2 + movl %eax,%edi + shrl $14,%edi + andl $4095,%edi +.L002nocacheinfo: + movl $1,%eax + .byte 0x0f,0xa2 + cmpl $0,%ebp + jne .L003notP4 + andb $15,%ah + cmpb $15,%ah + jne .L003notP4 + orl $1048576,%edx +.L003notP4: + btl $28,%edx + jnc .L000done + andl $4026531839,%edx + cmpl $0,%edi + je .L000done + orl $268435456,%edx + shrl $16,%ebx + cmpb $1,%bl + ja .L000done + andl $4026531839,%edx +.L000done: + movl %edx,%eax + movl %ecx,%edx + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.size OPENSSL_ia32_cpuid,.-.L_OPENSSL_ia32_cpuid_begin +.globl OPENSSL_rdtsc +.type OPENSSL_rdtsc,@function +.align 16 +OPENSSL_rdtsc: +.L_OPENSSL_rdtsc_begin: + xorl %eax,%eax + xorl %edx,%edx + leal OPENSSL_ia32cap_P,%ecx + btl $4,(%ecx) + jnc .L004notsc + .byte 0x0f,0x31 +.L004notsc: + ret +.size OPENSSL_rdtsc,.-.L_OPENSSL_rdtsc_begin +.globl OPENSSL_instrument_halt +.type OPENSSL_instrument_halt,@function +.align 16 +OPENSSL_instrument_halt: +.L_OPENSSL_instrument_halt_begin: + leal OPENSSL_ia32cap_P,%ecx + btl $4,(%ecx) + jnc .L005nohalt +.long 2421723150 + andl $3,%eax + jnz .L005nohalt + pushfl + popl %eax + btl $9,%eax + jnc .L005nohalt + .byte 0x0f,0x31 + pushl %edx + pushl %eax + hlt + .byte 0x0f,0x31 + subl (%esp),%eax + sbbl 4(%esp),%edx + addl $8,%esp + ret +.L005nohalt: + xorl %eax,%eax + xorl %edx,%edx + ret +.size OPENSSL_instrument_halt,.-.L_OPENSSL_instrument_halt_begin +.globl OPENSSL_far_spin +.type OPENSSL_far_spin,@function +.align 16 +OPENSSL_far_spin: +.L_OPENSSL_far_spin_begin: + pushfl + popl %eax + btl $9,%eax + jnc .L006nospin + movl 4(%esp),%eax + movl 8(%esp),%ecx +.long 2430111262 + xorl %eax,%eax + movl (%ecx),%edx + jmp .L007spin +.align 16 +.L007spin: + incl %eax + cmpl (%ecx),%edx + je .L007spin +.long 529567888 + ret +.L006nospin: + xorl %eax,%eax + xorl %edx,%edx + ret +.size OPENSSL_far_spin,.-.L_OPENSSL_far_spin_begin +.globl OPENSSL_wipe_cpu +.type OPENSSL_wipe_cpu,@function +.align 16 +OPENSSL_wipe_cpu: +.L_OPENSSL_wipe_cpu_begin: + xorl %eax,%eax + xorl %edx,%edx + leal OPENSSL_ia32cap_P,%ecx + movl (%ecx),%ecx + btl $1,(%ecx) + jnc .L008no_x87 +.long 4007259865,4007259865,4007259865,4007259865,2430851995 +.L008no_x87: + leal 4(%esp),%eax + ret +.size OPENSSL_wipe_cpu,.-.L_OPENSSL_wipe_cpu_begin +.globl OPENSSL_atomic_add +.type OPENSSL_atomic_add,@function +.align 16 +OPENSSL_atomic_add: +.L_OPENSSL_atomic_add_begin: + movl 4(%esp),%edx + movl 8(%esp),%ecx + pushl %ebx + nop + movl (%edx),%eax +.L009spin: + leal (%eax,%ecx,1),%ebx + nop +.long 447811568 + jne .L009spin + movl %ebx,%eax + popl %ebx + ret +.size OPENSSL_atomic_add,.-.L_OPENSSL_atomic_add_begin +.globl OPENSSL_indirect_call +.type OPENSSL_indirect_call,@function +.align 16 +OPENSSL_indirect_call: +.L_OPENSSL_indirect_call_begin: + pushl %ebp + movl %esp,%ebp + subl $28,%esp + movl 12(%ebp),%ecx + movl %ecx,(%esp) + movl 16(%ebp),%edx + movl %edx,4(%esp) + movl 20(%ebp),%eax + movl %eax,8(%esp) + movl 24(%ebp),%eax + movl %eax,12(%esp) + movl 28(%ebp),%eax + movl %eax,16(%esp) + movl 32(%ebp),%eax + movl %eax,20(%esp) + movl 36(%ebp),%eax + movl %eax,24(%esp) + call *8(%ebp) + movl %ebp,%esp + popl %ebp + ret +.size OPENSSL_indirect_call,.-.L_OPENSSL_indirect_call_begin +.globl OPENSSL_cleanse +.type OPENSSL_cleanse,@function +.align 16 +OPENSSL_cleanse: +.L_OPENSSL_cleanse_begin: + movl 4(%esp),%edx + movl 8(%esp),%ecx + xorl %eax,%eax + cmpl $7,%ecx + jae .L010lot + cmpl $0,%ecx + je .L011ret +.L012little: + movb %al,(%edx) + subl $1,%ecx + leal 1(%edx),%edx + jnz .L012little +.L011ret: + ret +.align 16 +.L010lot: + testl $3,%edx + jz .L013aligned + movb %al,(%edx) + leal -1(%ecx),%ecx + leal 1(%edx),%edx + jmp .L010lot +.L013aligned: + movl %eax,(%edx) + leal -4(%ecx),%ecx + testl $-4,%ecx + leal 4(%edx),%edx + jnz .L013aligned + cmpl $0,%ecx + jne .L012little + ret +.size OPENSSL_cleanse,.-.L_OPENSSL_cleanse_begin +.comm OPENSSL_ia32cap_P,4,4 +.section .init + call OPENSSL_cpuid_setup + jmp .Linitalign +.align 16 +.Linitalign: diff --git a/deps/openssl/asm/x86-macosx-gas/aes/aes-586.s b/deps/openssl/asm/x86-macosx-gas/aes/aes-586.s new file mode 100644 index 0000000000..ff56a4bef7 --- /dev/null +++ b/deps/openssl/asm/x86-macosx-gas/aes/aes-586.s @@ -0,0 +1,3194 @@ +.file "aes-586.s" +.text +.align 4 +__x86_AES_encrypt_compact: + movl %edi,20(%esp) + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl 240(%edi),%esi + leal -2(%esi,%esi,1),%esi + leal (%edi,%esi,8),%esi + movl %esi,24(%esp) + movl -128(%ebp),%edi + movl -96(%ebp),%esi + movl -64(%ebp),%edi + movl -32(%ebp),%esi + movl (%ebp),%edi + movl 32(%ebp),%esi + movl 64(%ebp),%edi + movl 96(%ebp),%esi +.align 4,0x90 +L000loop: + movl %eax,%esi + andl $255,%esi + movzbl -128(%ebp,%esi,1),%esi + movzbl %bh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,4(%esp) + movl %ebx,%esi + andl $255,%esi + shrl $16,%ebx + movzbl -128(%ebp,%esi,1),%esi + movzbl %ch,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,8(%esp) + movl %ecx,%esi + andl $255,%esi + shrl $24,%ecx + movzbl -128(%ebp,%esi,1),%esi + movzbl %dh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $16,%edi + andl $255,%edx + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movzbl %bh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + andl $255,%edx + movzbl -128(%ebp,%edx,1),%edx + movzbl %ah,%eax + movzbl -128(%ebp,%eax,1),%eax + shll $8,%eax + xorl %eax,%edx + movl 4(%esp),%eax + andl $255,%ebx + movzbl -128(%ebp,%ebx,1),%ebx + shll $16,%ebx + xorl %ebx,%edx + movl 8(%esp),%ebx + movzbl -128(%ebp,%ecx,1),%ecx + shll $24,%ecx + xorl %ecx,%edx + movl %esi,%ecx + movl %ecx,%esi + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%ecx,%ecx,1),%edi + subl %ebp,%esi + andl $4278124286,%edi + andl $454761243,%esi + movl %ecx,%ebp + xorl %edi,%esi + xorl %esi,%ecx + roll $24,%ecx + xorl %esi,%ecx + rorl $16,%ebp + xorl %ebp,%ecx + rorl $8,%ebp + xorl %ebp,%ecx + movl %edx,%esi + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%edx,%edx,1),%edi + subl %ebp,%esi + andl $4278124286,%edi + andl $454761243,%esi + movl %edx,%ebp + xorl %edi,%esi + xorl %esi,%edx + roll $24,%edx + xorl %esi,%edx + rorl $16,%ebp + xorl %ebp,%edx + rorl $8,%ebp + xorl %ebp,%edx + movl %eax,%esi + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%eax,%eax,1),%edi + subl %ebp,%esi + andl $4278124286,%edi + andl $454761243,%esi + movl %eax,%ebp + xorl %edi,%esi + xorl %esi,%eax + roll $24,%eax + xorl %esi,%eax + rorl $16,%ebp + xorl %ebp,%eax + rorl $8,%ebp + xorl %ebp,%eax + movl %ebx,%esi + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%ebx,%ebx,1),%edi + subl %ebp,%esi + andl $4278124286,%edi + andl $454761243,%esi + movl %ebx,%ebp + xorl %edi,%esi + xorl %esi,%ebx + roll $24,%ebx + xorl %esi,%ebx + rorl $16,%ebp + xorl %ebp,%ebx + rorl $8,%ebp + xorl %ebp,%ebx + movl 20(%esp),%edi + movl 28(%esp),%ebp + addl $16,%edi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + cmpl 24(%esp),%edi + movl %edi,20(%esp) + jb L000loop + movl %eax,%esi + andl $255,%esi + movzbl -128(%ebp,%esi,1),%esi + movzbl %bh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,4(%esp) + movl %ebx,%esi + andl $255,%esi + shrl $16,%ebx + movzbl -128(%ebp,%esi,1),%esi + movzbl %ch,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,8(%esp) + movl %ecx,%esi + andl $255,%esi + shrl $24,%ecx + movzbl -128(%ebp,%esi,1),%esi + movzbl %dh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $16,%edi + andl $255,%edx + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movzbl %bh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl 20(%esp),%edi + andl $255,%edx + movzbl -128(%ebp,%edx,1),%edx + movzbl %ah,%eax + movzbl -128(%ebp,%eax,1),%eax + shll $8,%eax + xorl %eax,%edx + movl 4(%esp),%eax + andl $255,%ebx + movzbl -128(%ebp,%ebx,1),%ebx + shll $16,%ebx + xorl %ebx,%edx + movl 8(%esp),%ebx + movzbl -128(%ebp,%ecx,1),%ecx + shll $24,%ecx + xorl %ecx,%edx + movl %esi,%ecx + xorl 16(%edi),%eax + xorl 20(%edi),%ebx + xorl 24(%edi),%ecx + xorl 28(%edi),%edx + ret +.align 4 +__sse_AES_encrypt_compact: + pxor (%edi),%mm0 + pxor 8(%edi),%mm4 + movl 240(%edi),%esi + leal -2(%esi,%esi,1),%esi + leal (%edi,%esi,8),%esi + movl %esi,24(%esp) + movl $454761243,%eax + movl %eax,8(%esp) + movl %eax,12(%esp) + movl -128(%ebp),%eax + movl -96(%ebp),%ebx + movl -64(%ebp),%ecx + movl -32(%ebp),%edx + movl (%ebp),%eax + movl 32(%ebp),%ebx + movl 64(%ebp),%ecx + movl 96(%ebp),%edx +.align 4,0x90 +L001loop: + pshufw $8,%mm0,%mm1 + pshufw $13,%mm4,%mm5 + movd %mm1,%eax + movd %mm5,%ebx + movzbl %al,%esi + movzbl -128(%ebp,%esi,1),%ecx + pshufw $13,%mm0,%mm2 + movzbl %ah,%edx + movzbl -128(%ebp,%edx,1),%edx + shll $8,%edx + shrl $16,%eax + movzbl %bl,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $16,%esi + orl %esi,%ecx + pshufw $8,%mm4,%mm6 + movzbl %bh,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $24,%esi + orl %esi,%edx + shrl $16,%ebx + movzbl %ah,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $8,%esi + orl %esi,%ecx + movzbl %bh,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $24,%esi + orl %esi,%ecx + movd %ecx,%mm0 + movzbl %al,%esi + movzbl -128(%ebp,%esi,1),%ecx + movd %mm2,%eax + movzbl %bl,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $16,%esi + orl %esi,%ecx + movd %mm6,%ebx + movzbl %ah,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $24,%esi + orl %esi,%ecx + movzbl %bh,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $8,%esi + orl %esi,%ecx + movd %ecx,%mm1 + movzbl %bl,%esi + movzbl -128(%ebp,%esi,1),%ecx + shrl $16,%ebx + movzbl %al,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $16,%esi + orl %esi,%ecx + shrl $16,%eax + punpckldq %mm1,%mm0 + movzbl %ah,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $24,%esi + orl %esi,%ecx + andl $255,%eax + movzbl -128(%ebp,%eax,1),%eax + shll $16,%eax + orl %eax,%edx + movzbl %bh,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $8,%esi + orl %esi,%ecx + movd %ecx,%mm4 + andl $255,%ebx + movzbl -128(%ebp,%ebx,1),%ebx + orl %ebx,%edx + movd %edx,%mm5 + punpckldq %mm5,%mm4 + addl $16,%edi + cmpl 24(%esp),%edi + ja L002out + movq 8(%esp),%mm2 + pxor %mm3,%mm3 + pxor %mm7,%mm7 + movq %mm0,%mm1 + movq %mm4,%mm5 + pcmpgtb %mm0,%mm3 + pcmpgtb %mm4,%mm7 + pand %mm2,%mm3 + pand %mm2,%mm7 + pshufw $177,%mm0,%mm2 + pshufw $177,%mm4,%mm6 + paddb %mm0,%mm0 + paddb %mm4,%mm4 + pxor %mm3,%mm0 + pxor %mm7,%mm4 + pshufw $177,%mm2,%mm3 + pshufw $177,%mm6,%mm7 + pxor %mm0,%mm1 + pxor %mm4,%mm5 + pxor %mm2,%mm0 + pxor %mm6,%mm4 + movq %mm3,%mm2 + movq %mm7,%mm6 + pslld $8,%mm3 + pslld $8,%mm7 + psrld $24,%mm2 + psrld $24,%mm6 + pxor %mm3,%mm0 + pxor %mm7,%mm4 + pxor %mm2,%mm0 + pxor %mm6,%mm4 + movq %mm1,%mm3 + movq %mm5,%mm7 + movq (%edi),%mm2 + movq 8(%edi),%mm6 + psrld $8,%mm1 + psrld $8,%mm5 + movl -128(%ebp),%eax + pslld $24,%mm3 + pslld $24,%mm7 + movl -64(%ebp),%ebx + pxor %mm1,%mm0 + pxor %mm5,%mm4 + movl (%ebp),%ecx + pxor %mm3,%mm0 + pxor %mm7,%mm4 + movl 64(%ebp),%edx + pxor %mm2,%mm0 + pxor %mm6,%mm4 + jmp L001loop +.align 4,0x90 +L002out: + pxor (%edi),%mm0 + pxor 8(%edi),%mm4 + ret +.align 4 +__x86_AES_encrypt: + movl %edi,20(%esp) + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl 240(%edi),%esi + leal -2(%esi,%esi,1),%esi + leal (%edi,%esi,8),%esi + movl %esi,24(%esp) +.align 4,0x90 +L003loop: + movl %eax,%esi + andl $255,%esi + movl (%ebp,%esi,8),%esi + movzbl %bh,%edi + xorl 3(%ebp,%edi,8),%esi + movl %ecx,%edi + shrl $16,%edi + andl $255,%edi + xorl 2(%ebp,%edi,8),%esi + movl %edx,%edi + shrl $24,%edi + xorl 1(%ebp,%edi,8),%esi + movl %esi,4(%esp) + movl %ebx,%esi + andl $255,%esi + shrl $16,%ebx + movl (%ebp,%esi,8),%esi + movzbl %ch,%edi + xorl 3(%ebp,%edi,8),%esi + movl %edx,%edi + shrl $16,%edi + andl $255,%edi + xorl 2(%ebp,%edi,8),%esi + movl %eax,%edi + shrl $24,%edi + xorl 1(%ebp,%edi,8),%esi + movl %esi,8(%esp) + movl %ecx,%esi + andl $255,%esi + shrl $24,%ecx + movl (%ebp,%esi,8),%esi + movzbl %dh,%edi + xorl 3(%ebp,%edi,8),%esi + movl %eax,%edi + shrl $16,%edi + andl $255,%edx + andl $255,%edi + xorl 2(%ebp,%edi,8),%esi + movzbl %bh,%edi + xorl 1(%ebp,%edi,8),%esi + movl 20(%esp),%edi + movl (%ebp,%edx,8),%edx + movzbl %ah,%eax + xorl 3(%ebp,%eax,8),%edx + movl 4(%esp),%eax + andl $255,%ebx + xorl 2(%ebp,%ebx,8),%edx + movl 8(%esp),%ebx + xorl 1(%ebp,%ecx,8),%edx + movl %esi,%ecx + addl $16,%edi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + cmpl 24(%esp),%edi + movl %edi,20(%esp) + jb L003loop + movl %eax,%esi + andl $255,%esi + movl 2(%ebp,%esi,8),%esi + andl $255,%esi + movzbl %bh,%edi + movl (%ebp,%edi,8),%edi + andl $65280,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $16,%edi + andl $255,%edi + movl (%ebp,%edi,8),%edi + andl $16711680,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $24,%edi + movl 2(%ebp,%edi,8),%edi + andl $4278190080,%edi + xorl %edi,%esi + movl %esi,4(%esp) + movl %ebx,%esi + andl $255,%esi + shrl $16,%ebx + movl 2(%ebp,%esi,8),%esi + andl $255,%esi + movzbl %ch,%edi + movl (%ebp,%edi,8),%edi + andl $65280,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $16,%edi + andl $255,%edi + movl (%ebp,%edi,8),%edi + andl $16711680,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $24,%edi + movl 2(%ebp,%edi,8),%edi + andl $4278190080,%edi + xorl %edi,%esi + movl %esi,8(%esp) + movl %ecx,%esi + andl $255,%esi + shrl $24,%ecx + movl 2(%ebp,%esi,8),%esi + andl $255,%esi + movzbl %dh,%edi + movl (%ebp,%edi,8),%edi + andl $65280,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $16,%edi + andl $255,%edx + andl $255,%edi + movl (%ebp,%edi,8),%edi + andl $16711680,%edi + xorl %edi,%esi + movzbl %bh,%edi + movl 2(%ebp,%edi,8),%edi + andl $4278190080,%edi + xorl %edi,%esi + movl 20(%esp),%edi + andl $255,%edx + movl 2(%ebp,%edx,8),%edx + andl $255,%edx + movzbl %ah,%eax + movl (%ebp,%eax,8),%eax + andl $65280,%eax + xorl %eax,%edx + movl 4(%esp),%eax + andl $255,%ebx + movl (%ebp,%ebx,8),%ebx + andl $16711680,%ebx + xorl %ebx,%edx + movl 8(%esp),%ebx + movl 2(%ebp,%ecx,8),%ecx + andl $4278190080,%ecx + xorl %ecx,%edx + movl %esi,%ecx + addl $16,%edi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + ret +.align 6,0x90 +LAES_Te: +.long 2774754246,2774754246 +.long 2222750968,2222750968 +.long 2574743534,2574743534 +.long 2373680118,2373680118 +.long 234025727,234025727 +.long 3177933782,3177933782 +.long 2976870366,2976870366 +.long 1422247313,1422247313 +.long 1345335392,1345335392 +.long 50397442,50397442 +.long 2842126286,2842126286 +.long 2099981142,2099981142 +.long 436141799,436141799 +.long 1658312629,1658312629 +.long 3870010189,3870010189 +.long 2591454956,2591454956 +.long 1170918031,1170918031 +.long 2642575903,2642575903 +.long 1086966153,1086966153 +.long 2273148410,2273148410 +.long 368769775,368769775 +.long 3948501426,3948501426 +.long 3376891790,3376891790 +.long 200339707,200339707 +.long 3970805057,3970805057 +.long 1742001331,1742001331 +.long 4255294047,4255294047 +.long 3937382213,3937382213 +.long 3214711843,3214711843 +.long 4154762323,4154762323 +.long 2524082916,2524082916 +.long 1539358875,1539358875 +.long 3266819957,3266819957 +.long 486407649,486407649 +.long 2928907069,2928907069 +.long 1780885068,1780885068 +.long 1513502316,1513502316 +.long 1094664062,1094664062 +.long 49805301,49805301 +.long 1338821763,1338821763 +.long 1546925160,1546925160 +.long 4104496465,4104496465 +.long 887481809,887481809 +.long 150073849,150073849 +.long 2473685474,2473685474 +.long 1943591083,1943591083 +.long 1395732834,1395732834 +.long 1058346282,1058346282 +.long 201589768,201589768 +.long 1388824469,1388824469 +.long 1696801606,1696801606 +.long 1589887901,1589887901 +.long 672667696,672667696 +.long 2711000631,2711000631 +.long 251987210,251987210 +.long 3046808111,3046808111 +.long 151455502,151455502 +.long 907153956,907153956 +.long 2608889883,2608889883 +.long 1038279391,1038279391 +.long 652995533,652995533 +.long 1764173646,1764173646 +.long 3451040383,3451040383 +.long 2675275242,2675275242 +.long 453576978,453576978 +.long 2659418909,2659418909 +.long 1949051992,1949051992 +.long 773462580,773462580 +.long 756751158,756751158 +.long 2993581788,2993581788 +.long 3998898868,3998898868 +.long 4221608027,4221608027 +.long 4132590244,4132590244 +.long 1295727478,1295727478 +.long 1641469623,1641469623 +.long 3467883389,3467883389 +.long 2066295122,2066295122 +.long 1055122397,1055122397 +.long 1898917726,1898917726 +.long 2542044179,2542044179 +.long 4115878822,4115878822 +.long 1758581177,1758581177 +.long 0,0 +.long 753790401,753790401 +.long 1612718144,1612718144 +.long 536673507,536673507 +.long 3367088505,3367088505 +.long 3982187446,3982187446 +.long 3194645204,3194645204 +.long 1187761037,1187761037 +.long 3653156455,3653156455 +.long 1262041458,1262041458 +.long 3729410708,3729410708 +.long 3561770136,3561770136 +.long 3898103984,3898103984 +.long 1255133061,1255133061 +.long 1808847035,1808847035 +.long 720367557,720367557 +.long 3853167183,3853167183 +.long 385612781,385612781 +.long 3309519750,3309519750 +.long 3612167578,3612167578 +.long 1429418854,1429418854 +.long 2491778321,2491778321 +.long 3477423498,3477423498 +.long 284817897,284817897 +.long 100794884,100794884 +.long 2172616702,2172616702 +.long 4031795360,4031795360 +.long 1144798328,1144798328 +.long 3131023141,3131023141 +.long 3819481163,3819481163 +.long 4082192802,4082192802 +.long 4272137053,4272137053 +.long 3225436288,3225436288 +.long 2324664069,2324664069 +.long 2912064063,2912064063 +.long 3164445985,3164445985 +.long 1211644016,1211644016 +.long 83228145,83228145 +.long 3753688163,3753688163 +.long 3249976951,3249976951 +.long 1977277103,1977277103 +.long 1663115586,1663115586 +.long 806359072,806359072 +.long 452984805,452984805 +.long 250868733,250868733 +.long 1842533055,1842533055 +.long 1288555905,1288555905 +.long 336333848,336333848 +.long 890442534,890442534 +.long 804056259,804056259 +.long 3781124030,3781124030 +.long 2727843637,2727843637 +.long 3427026056,3427026056 +.long 957814574,957814574 +.long 1472513171,1472513171 +.long 4071073621,4071073621 +.long 2189328124,2189328124 +.long 1195195770,1195195770 +.long 2892260552,2892260552 +.long 3881655738,3881655738 +.long 723065138,723065138 +.long 2507371494,2507371494 +.long 2690670784,2690670784 +.long 2558624025,2558624025 +.long 3511635870,3511635870 +.long 2145180835,2145180835 +.long 1713513028,1713513028 +.long 2116692564,2116692564 +.long 2878378043,2878378043 +.long 2206763019,2206763019 +.long 3393603212,3393603212 +.long 703524551,703524551 +.long 3552098411,3552098411 +.long 1007948840,1007948840 +.long 2044649127,2044649127 +.long 3797835452,3797835452 +.long 487262998,487262998 +.long 1994120109,1994120109 +.long 1004593371,1004593371 +.long 1446130276,1446130276 +.long 1312438900,1312438900 +.long 503974420,503974420 +.long 3679013266,3679013266 +.long 168166924,168166924 +.long 1814307912,1814307912 +.long 3831258296,3831258296 +.long 1573044895,1573044895 +.long 1859376061,1859376061 +.long 4021070915,4021070915 +.long 2791465668,2791465668 +.long 2828112185,2828112185 +.long 2761266481,2761266481 +.long 937747667,937747667 +.long 2339994098,2339994098 +.long 854058965,854058965 +.long 1137232011,1137232011 +.long 1496790894,1496790894 +.long 3077402074,3077402074 +.long 2358086913,2358086913 +.long 1691735473,1691735473 +.long 3528347292,3528347292 +.long 3769215305,3769215305 +.long 3027004632,3027004632 +.long 4199962284,4199962284 +.long 133494003,133494003 +.long 636152527,636152527 +.long 2942657994,2942657994 +.long 2390391540,2390391540 +.long 3920539207,3920539207 +.long 403179536,403179536 +.long 3585784431,3585784431 +.long 2289596656,2289596656 +.long 1864705354,1864705354 +.long 1915629148,1915629148 +.long 605822008,605822008 +.long 4054230615,4054230615 +.long 3350508659,3350508659 +.long 1371981463,1371981463 +.long 602466507,602466507 +.long 2094914977,2094914977 +.long 2624877800,2624877800 +.long 555687742,555687742 +.long 3712699286,3712699286 +.long 3703422305,3703422305 +.long 2257292045,2257292045 +.long 2240449039,2240449039 +.long 2423288032,2423288032 +.long 1111375484,1111375484 +.long 3300242801,3300242801 +.long 2858837708,2858837708 +.long 3628615824,3628615824 +.long 84083462,84083462 +.long 32962295,32962295 +.long 302911004,302911004 +.long 2741068226,2741068226 +.long 1597322602,1597322602 +.long 4183250862,4183250862 +.long 3501832553,3501832553 +.long 2441512471,2441512471 +.long 1489093017,1489093017 +.long 656219450,656219450 +.long 3114180135,3114180135 +.long 954327513,954327513 +.long 335083755,335083755 +.long 3013122091,3013122091 +.long 856756514,856756514 +.long 3144247762,3144247762 +.long 1893325225,1893325225 +.long 2307821063,2307821063 +.long 2811532339,2811532339 +.long 3063651117,3063651117 +.long 572399164,572399164 +.long 2458355477,2458355477 +.long 552200649,552200649 +.long 1238290055,1238290055 +.long 4283782570,4283782570 +.long 2015897680,2015897680 +.long 2061492133,2061492133 +.long 2408352771,2408352771 +.long 4171342169,4171342169 +.long 2156497161,2156497161 +.long 386731290,386731290 +.long 3669999461,3669999461 +.long 837215959,837215959 +.long 3326231172,3326231172 +.long 3093850320,3093850320 +.long 3275833730,3275833730 +.long 2962856233,2962856233 +.long 1999449434,1999449434 +.long 286199582,286199582 +.long 3417354363,3417354363 +.long 4233385128,4233385128 +.long 3602627437,3602627437 +.long 974525996,974525996 +.byte 99,124,119,123,242,107,111,197 +.byte 48,1,103,43,254,215,171,118 +.byte 202,130,201,125,250,89,71,240 +.byte 173,212,162,175,156,164,114,192 +.byte 183,253,147,38,54,63,247,204 +.byte 52,165,229,241,113,216,49,21 +.byte 4,199,35,195,24,150,5,154 +.byte 7,18,128,226,235,39,178,117 +.byte 9,131,44,26,27,110,90,160 +.byte 82,59,214,179,41,227,47,132 +.byte 83,209,0,237,32,252,177,91 +.byte 106,203,190,57,74,76,88,207 +.byte 208,239,170,251,67,77,51,133 +.byte 69,249,2,127,80,60,159,168 +.byte 81,163,64,143,146,157,56,245 +.byte 188,182,218,33,16,255,243,210 +.byte 205,12,19,236,95,151,68,23 +.byte 196,167,126,61,100,93,25,115 +.byte 96,129,79,220,34,42,144,136 +.byte 70,238,184,20,222,94,11,219 +.byte 224,50,58,10,73,6,36,92 +.byte 194,211,172,98,145,149,228,121 +.byte 231,200,55,109,141,213,78,169 +.byte 108,86,244,234,101,122,174,8 +.byte 186,120,37,46,28,166,180,198 +.byte 232,221,116,31,75,189,139,138 +.byte 112,62,181,102,72,3,246,14 +.byte 97,53,87,185,134,193,29,158 +.byte 225,248,152,17,105,217,142,148 +.byte 155,30,135,233,206,85,40,223 +.byte 140,161,137,13,191,230,66,104 +.byte 65,153,45,15,176,84,187,22 +.byte 99,124,119,123,242,107,111,197 +.byte 48,1,103,43,254,215,171,118 +.byte 202,130,201,125,250,89,71,240 +.byte 173,212,162,175,156,164,114,192 +.byte 183,253,147,38,54,63,247,204 +.byte 52,165,229,241,113,216,49,21 +.byte 4,199,35,195,24,150,5,154 +.byte 7,18,128,226,235,39,178,117 +.byte 9,131,44,26,27,110,90,160 +.byte 82,59,214,179,41,227,47,132 +.byte 83,209,0,237,32,252,177,91 +.byte 106,203,190,57,74,76,88,207 +.byte 208,239,170,251,67,77,51,133 +.byte 69,249,2,127,80,60,159,168 +.byte 81,163,64,143,146,157,56,245 +.byte 188,182,218,33,16,255,243,210 +.byte 205,12,19,236,95,151,68,23 +.byte 196,167,126,61,100,93,25,115 +.byte 96,129,79,220,34,42,144,136 +.byte 70,238,184,20,222,94,11,219 +.byte 224,50,58,10,73,6,36,92 +.byte 194,211,172,98,145,149,228,121 +.byte 231,200,55,109,141,213,78,169 +.byte 108,86,244,234,101,122,174,8 +.byte 186,120,37,46,28,166,180,198 +.byte 232,221,116,31,75,189,139,138 +.byte 112,62,181,102,72,3,246,14 +.byte 97,53,87,185,134,193,29,158 +.byte 225,248,152,17,105,217,142,148 +.byte 155,30,135,233,206,85,40,223 +.byte 140,161,137,13,191,230,66,104 +.byte 65,153,45,15,176,84,187,22 +.byte 99,124,119,123,242,107,111,197 +.byte 48,1,103,43,254,215,171,118 +.byte 202,130,201,125,250,89,71,240 +.byte 173,212,162,175,156,164,114,192 +.byte 183,253,147,38,54,63,247,204 +.byte 52,165,229,241,113,216,49,21 +.byte 4,199,35,195,24,150,5,154 +.byte 7,18,128,226,235,39,178,117 +.byte 9,131,44,26,27,110,90,160 +.byte 82,59,214,179,41,227,47,132 +.byte 83,209,0,237,32,252,177,91 +.byte 106,203,190,57,74,76,88,207 +.byte 208,239,170,251,67,77,51,133 +.byte 69,249,2,127,80,60,159,168 +.byte 81,163,64,143,146,157,56,245 +.byte 188,182,218,33,16,255,243,210 +.byte 205,12,19,236,95,151,68,23 +.byte 196,167,126,61,100,93,25,115 +.byte 96,129,79,220,34,42,144,136 +.byte 70,238,184,20,222,94,11,219 +.byte 224,50,58,10,73,6,36,92 +.byte 194,211,172,98,145,149,228,121 +.byte 231,200,55,109,141,213,78,169 +.byte 108,86,244,234,101,122,174,8 +.byte 186,120,37,46,28,166,180,198 +.byte 232,221,116,31,75,189,139,138 +.byte 112,62,181,102,72,3,246,14 +.byte 97,53,87,185,134,193,29,158 +.byte 225,248,152,17,105,217,142,148 +.byte 155,30,135,233,206,85,40,223 +.byte 140,161,137,13,191,230,66,104 +.byte 65,153,45,15,176,84,187,22 +.byte 99,124,119,123,242,107,111,197 +.byte 48,1,103,43,254,215,171,118 +.byte 202,130,201,125,250,89,71,240 +.byte 173,212,162,175,156,164,114,192 +.byte 183,253,147,38,54,63,247,204 +.byte 52,165,229,241,113,216,49,21 +.byte 4,199,35,195,24,150,5,154 +.byte 7,18,128,226,235,39,178,117 +.byte 9,131,44,26,27,110,90,160 +.byte 82,59,214,179,41,227,47,132 +.byte 83,209,0,237,32,252,177,91 +.byte 106,203,190,57,74,76,88,207 +.byte 208,239,170,251,67,77,51,133 +.byte 69,249,2,127,80,60,159,168 +.byte 81,163,64,143,146,157,56,245 +.byte 188,182,218,33,16,255,243,210 +.byte 205,12,19,236,95,151,68,23 +.byte 196,167,126,61,100,93,25,115 +.byte 96,129,79,220,34,42,144,136 +.byte 70,238,184,20,222,94,11,219 +.byte 224,50,58,10,73,6,36,92 +.byte 194,211,172,98,145,149,228,121 +.byte 231,200,55,109,141,213,78,169 +.byte 108,86,244,234,101,122,174,8 +.byte 186,120,37,46,28,166,180,198 +.byte 232,221,116,31,75,189,139,138 +.byte 112,62,181,102,72,3,246,14 +.byte 97,53,87,185,134,193,29,158 +.byte 225,248,152,17,105,217,142,148 +.byte 155,30,135,233,206,85,40,223 +.byte 140,161,137,13,191,230,66,104 +.byte 65,153,45,15,176,84,187,22 +.long 1,2,4,8 +.long 16,32,64,128 +.long 27,54,0,0 +.long 0,0,0,0 +.globl _AES_encrypt +.align 4 +_AES_encrypt: +L_AES_encrypt_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%esi + movl 28(%esp),%edi + movl %esp,%eax + subl $36,%esp + andl $-64,%esp + leal -127(%edi),%ebx + subl %esp,%ebx + negl %ebx + andl $960,%ebx + subl %ebx,%esp + addl $4,%esp + movl %eax,28(%esp) + call L004pic_point +L004pic_point: + popl %ebp + leal _OPENSSL_ia32cap_P,%eax + leal LAES_Te-L004pic_point(%ebp),%ebp + leal 764(%esp),%ebx + subl %ebp,%ebx + andl $768,%ebx + leal 2176(%ebp,%ebx,1),%ebp + btl $25,(%eax) + jnc L005x86 + movq (%esi),%mm0 + movq 8(%esi),%mm4 + call __sse_AES_encrypt_compact + movl 28(%esp),%esp + movl 24(%esp),%esi + movq %mm0,(%esi) + movq %mm4,8(%esi) + emms + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 4,0x90 +L005x86: + movl %ebp,24(%esp) + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + call __x86_AES_encrypt_compact + movl 28(%esp),%esp + movl 24(%esp),%esi + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 4 +__x86_AES_decrypt_compact: + movl %edi,20(%esp) + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl 240(%edi),%esi + leal -2(%esi,%esi,1),%esi + leal (%edi,%esi,8),%esi + movl %esi,24(%esp) + movl -128(%ebp),%edi + movl -96(%ebp),%esi + movl -64(%ebp),%edi + movl -32(%ebp),%esi + movl (%ebp),%edi + movl 32(%ebp),%esi + movl 64(%ebp),%edi + movl 96(%ebp),%esi +.align 4,0x90 +L006loop: + movl %eax,%esi + andl $255,%esi + movzbl -128(%ebp,%esi,1),%esi + movzbl %dh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %ebx,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,4(%esp) + movl %ebx,%esi + andl $255,%esi + movzbl -128(%ebp,%esi,1),%esi + movzbl %ah,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,8(%esp) + movl %ecx,%esi + andl $255,%esi + movzbl -128(%ebp,%esi,1),%esi + movzbl %bh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + andl $255,%edx + movzbl -128(%ebp,%edx,1),%edx + movzbl %ch,%ecx + movzbl -128(%ebp,%ecx,1),%ecx + shll $8,%ecx + xorl %ecx,%edx + movl %esi,%ecx + shrl $16,%ebx + andl $255,%ebx + movzbl -128(%ebp,%ebx,1),%ebx + shll $16,%ebx + xorl %ebx,%edx + shrl $24,%eax + movzbl -128(%ebp,%eax,1),%eax + shll $24,%eax + xorl %eax,%edx + movl %ecx,%esi + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%ecx,%ecx,1),%eax + subl %edi,%esi + andl $4278124286,%eax + andl $454761243,%esi + xorl %eax,%esi + movl %esi,%eax + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%eax,%eax,1),%ebx + subl %edi,%esi + andl $4278124286,%ebx + andl $454761243,%esi + xorl %ecx,%eax + xorl %ebx,%esi + movl %esi,%ebx + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%ebx,%ebx,1),%ebp + subl %edi,%esi + andl $4278124286,%ebp + andl $454761243,%esi + xorl %ecx,%ebx + roll $8,%ecx + xorl %esi,%ebp + xorl %eax,%ecx + xorl %ebp,%eax + roll $24,%eax + xorl %ebx,%ecx + xorl %ebp,%ebx + roll $16,%ebx + xorl %ebp,%ecx + roll $8,%ebp + xorl %eax,%ecx + xorl %ebx,%ecx + movl 4(%esp),%eax + xorl %ebp,%ecx + movl %ecx,12(%esp) + movl %edx,%esi + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%edx,%edx,1),%ebx + subl %edi,%esi + andl $4278124286,%ebx + andl $454761243,%esi + xorl %ebx,%esi + movl %esi,%ebx + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%ebx,%ebx,1),%ecx + subl %edi,%esi + andl $4278124286,%ecx + andl $454761243,%esi + xorl %edx,%ebx + xorl %ecx,%esi + movl %esi,%ecx + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%ecx,%ecx,1),%ebp + subl %edi,%esi + andl $4278124286,%ebp + andl $454761243,%esi + xorl %edx,%ecx + roll $8,%edx + xorl %esi,%ebp + xorl %ebx,%edx + xorl %ebp,%ebx + roll $24,%ebx + xorl %ecx,%edx + xorl %ebp,%ecx + roll $16,%ecx + xorl %ebp,%edx + roll $8,%ebp + xorl %ebx,%edx + xorl %ecx,%edx + movl 8(%esp),%ebx + xorl %ebp,%edx + movl %edx,16(%esp) + movl %eax,%esi + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%eax,%eax,1),%ecx + subl %edi,%esi + andl $4278124286,%ecx + andl $454761243,%esi + xorl %ecx,%esi + movl %esi,%ecx + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%ecx,%ecx,1),%edx + subl %edi,%esi + andl $4278124286,%edx + andl $454761243,%esi + xorl %eax,%ecx + xorl %edx,%esi + movl %esi,%edx + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%edx,%edx,1),%ebp + subl %edi,%esi + andl $4278124286,%ebp + andl $454761243,%esi + xorl %eax,%edx + roll $8,%eax + xorl %esi,%ebp + xorl %ecx,%eax + xorl %ebp,%ecx + roll $24,%ecx + xorl %edx,%eax + xorl %ebp,%edx + roll $16,%edx + xorl %ebp,%eax + roll $8,%ebp + xorl %ecx,%eax + xorl %edx,%eax + xorl %ebp,%eax + movl %ebx,%esi + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%ebx,%ebx,1),%ecx + subl %edi,%esi + andl $4278124286,%ecx + andl $454761243,%esi + xorl %ecx,%esi + movl %esi,%ecx + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%ecx,%ecx,1),%edx + subl %edi,%esi + andl $4278124286,%edx + andl $454761243,%esi + xorl %ebx,%ecx + xorl %edx,%esi + movl %esi,%edx + andl $2155905152,%esi + movl %esi,%edi + shrl $7,%edi + leal (%edx,%edx,1),%ebp + subl %edi,%esi + andl $4278124286,%ebp + andl $454761243,%esi + xorl %ebx,%edx + roll $8,%ebx + xorl %esi,%ebp + xorl %ecx,%ebx + xorl %ebp,%ecx + roll $24,%ecx + xorl %edx,%ebx + xorl %ebp,%edx + roll $16,%edx + xorl %ebp,%ebx + roll $8,%ebp + xorl %ecx,%ebx + xorl %edx,%ebx + movl 12(%esp),%ecx + xorl %ebp,%ebx + movl 16(%esp),%edx + movl 20(%esp),%edi + movl 28(%esp),%ebp + addl $16,%edi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + cmpl 24(%esp),%edi + movl %edi,20(%esp) + jb L006loop + movl %eax,%esi + andl $255,%esi + movzbl -128(%ebp,%esi,1),%esi + movzbl %dh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %ebx,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,4(%esp) + movl %ebx,%esi + andl $255,%esi + movzbl -128(%ebp,%esi,1),%esi + movzbl %ah,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,8(%esp) + movl %ecx,%esi + andl $255,%esi + movzbl -128(%ebp,%esi,1),%esi + movzbl %bh,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $16,%edi + andl $255,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $24,%edi + movzbl -128(%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl 20(%esp),%edi + andl $255,%edx + movzbl -128(%ebp,%edx,1),%edx + movzbl %ch,%ecx + movzbl -128(%ebp,%ecx,1),%ecx + shll $8,%ecx + xorl %ecx,%edx + movl %esi,%ecx + shrl $16,%ebx + andl $255,%ebx + movzbl -128(%ebp,%ebx,1),%ebx + shll $16,%ebx + xorl %ebx,%edx + movl 8(%esp),%ebx + shrl $24,%eax + movzbl -128(%ebp,%eax,1),%eax + shll $24,%eax + xorl %eax,%edx + movl 4(%esp),%eax + xorl 16(%edi),%eax + xorl 20(%edi),%ebx + xorl 24(%edi),%ecx + xorl 28(%edi),%edx + ret +.align 4 +__sse_AES_decrypt_compact: + pxor (%edi),%mm0 + pxor 8(%edi),%mm4 + movl 240(%edi),%esi + leal -2(%esi,%esi,1),%esi + leal (%edi,%esi,8),%esi + movl %esi,24(%esp) + movl $454761243,%eax + movl %eax,8(%esp) + movl %eax,12(%esp) + movl -128(%ebp),%eax + movl -96(%ebp),%ebx + movl -64(%ebp),%ecx + movl -32(%ebp),%edx + movl (%ebp),%eax + movl 32(%ebp),%ebx + movl 64(%ebp),%ecx + movl 96(%ebp),%edx +.align 4,0x90 +L007loop: + pshufw $12,%mm0,%mm1 + movd %mm1,%eax + pshufw $9,%mm4,%mm5 + movzbl %al,%esi + movzbl -128(%ebp,%esi,1),%ecx + movd %mm5,%ebx + movzbl %ah,%edx + movzbl -128(%ebp,%edx,1),%edx + shll $8,%edx + pshufw $6,%mm0,%mm2 + movzbl %bl,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $16,%esi + orl %esi,%ecx + shrl $16,%eax + movzbl %bh,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $24,%esi + orl %esi,%edx + shrl $16,%ebx + pshufw $3,%mm4,%mm6 + movzbl %ah,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $24,%esi + orl %esi,%ecx + movzbl %bh,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $8,%esi + orl %esi,%ecx + movd %ecx,%mm0 + movzbl %al,%esi + movd %mm2,%eax + movzbl -128(%ebp,%esi,1),%ecx + shll $16,%ecx + movzbl %bl,%esi + movd %mm6,%ebx + movzbl -128(%ebp,%esi,1),%esi + orl %esi,%ecx + movzbl %al,%esi + movzbl -128(%ebp,%esi,1),%esi + orl %esi,%edx + movzbl %bl,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $16,%esi + orl %esi,%edx + movd %edx,%mm1 + movzbl %ah,%esi + movzbl -128(%ebp,%esi,1),%edx + shll $8,%edx + movzbl %bh,%esi + shrl $16,%eax + movzbl -128(%ebp,%esi,1),%esi + shll $24,%esi + orl %esi,%edx + shrl $16,%ebx + punpckldq %mm1,%mm0 + movzbl %bh,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $8,%esi + orl %esi,%ecx + andl $255,%ebx + movzbl -128(%ebp,%ebx,1),%ebx + orl %ebx,%edx + movzbl %al,%esi + movzbl -128(%ebp,%esi,1),%esi + shll $16,%esi + orl %esi,%edx + movd %edx,%mm4 + movzbl %ah,%eax + movzbl -128(%ebp,%eax,1),%eax + shll $24,%eax + orl %eax,%ecx + movd %ecx,%mm5 + punpckldq %mm5,%mm4 + addl $16,%edi + cmpl 24(%esp),%edi + ja L008out + movq %mm0,%mm3 + movq %mm4,%mm7 + pshufw $228,%mm0,%mm2 + pshufw $228,%mm4,%mm6 + movq %mm0,%mm1 + movq %mm4,%mm5 + pshufw $177,%mm0,%mm0 + pshufw $177,%mm4,%mm4 + pslld $8,%mm2 + pslld $8,%mm6 + psrld $8,%mm3 + psrld $8,%mm7 + pxor %mm2,%mm0 + pxor %mm6,%mm4 + pxor %mm3,%mm0 + pxor %mm7,%mm4 + pslld $16,%mm2 + pslld $16,%mm6 + psrld $16,%mm3 + psrld $16,%mm7 + pxor %mm2,%mm0 + pxor %mm6,%mm4 + pxor %mm3,%mm0 + pxor %mm7,%mm4 + movq 8(%esp),%mm3 + pxor %mm2,%mm2 + pxor %mm6,%mm6 + pcmpgtb %mm1,%mm2 + pcmpgtb %mm5,%mm6 + pand %mm3,%mm2 + pand %mm3,%mm6 + paddb %mm1,%mm1 + paddb %mm5,%mm5 + pxor %mm2,%mm1 + pxor %mm6,%mm5 + movq %mm1,%mm3 + movq %mm5,%mm7 + movq %mm1,%mm2 + movq %mm5,%mm6 + pxor %mm1,%mm0 + pxor %mm5,%mm4 + pslld $24,%mm3 + pslld $24,%mm7 + psrld $8,%mm2 + psrld $8,%mm6 + pxor %mm3,%mm0 + pxor %mm7,%mm4 + pxor %mm2,%mm0 + pxor %mm6,%mm4 + movq 8(%esp),%mm2 + pxor %mm3,%mm3 + pxor %mm7,%mm7 + pcmpgtb %mm1,%mm3 + pcmpgtb %mm5,%mm7 + pand %mm2,%mm3 + pand %mm2,%mm7 + paddb %mm1,%mm1 + paddb %mm5,%mm5 + pxor %mm3,%mm1 + pxor %mm7,%mm5 + pshufw $177,%mm1,%mm3 + pshufw $177,%mm5,%mm7 + pxor %mm1,%mm0 + pxor %mm5,%mm4 + pxor %mm3,%mm0 + pxor %mm7,%mm4 + pxor %mm3,%mm3 + pxor %mm7,%mm7 + pcmpgtb %mm1,%mm3 + pcmpgtb %mm5,%mm7 + pand %mm2,%mm3 + pand %mm2,%mm7 + paddb %mm1,%mm1 + paddb %mm5,%mm5 + pxor %mm3,%mm1 + pxor %mm7,%mm5 + pxor %mm1,%mm0 + pxor %mm5,%mm4 + movq %mm1,%mm3 + movq %mm5,%mm7 + pshufw $177,%mm1,%mm2 + pshufw $177,%mm5,%mm6 + pxor %mm2,%mm0 + pxor %mm6,%mm4 + pslld $8,%mm1 + pslld $8,%mm5 + psrld $8,%mm3 + psrld $8,%mm7 + movq (%edi),%mm2 + movq 8(%edi),%mm6 + pxor %mm1,%mm0 + pxor %mm5,%mm4 + pxor %mm3,%mm0 + pxor %mm7,%mm4 + movl -128(%ebp),%eax + pslld $16,%mm1 + pslld $16,%mm5 + movl -64(%ebp),%ebx + psrld $16,%mm3 + psrld $16,%mm7 + movl (%ebp),%ecx + pxor %mm1,%mm0 + pxor %mm5,%mm4 + movl 64(%ebp),%edx + pxor %mm3,%mm0 + pxor %mm7,%mm4 + pxor %mm2,%mm0 + pxor %mm6,%mm4 + jmp L007loop +.align 4,0x90 +L008out: + pxor (%edi),%mm0 + pxor 8(%edi),%mm4 + ret +.align 4 +__x86_AES_decrypt: + movl %edi,20(%esp) + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl 240(%edi),%esi + leal -2(%esi,%esi,1),%esi + leal (%edi,%esi,8),%esi + movl %esi,24(%esp) +.align 4,0x90 +L009loop: + movl %eax,%esi + andl $255,%esi + movl (%ebp,%esi,8),%esi + movzbl %dh,%edi + xorl 3(%ebp,%edi,8),%esi + movl %ecx,%edi + shrl $16,%edi + andl $255,%edi + xorl 2(%ebp,%edi,8),%esi + movl %ebx,%edi + shrl $24,%edi + xorl 1(%ebp,%edi,8),%esi + movl %esi,4(%esp) + movl %ebx,%esi + andl $255,%esi + movl (%ebp,%esi,8),%esi + movzbl %ah,%edi + xorl 3(%ebp,%edi,8),%esi + movl %edx,%edi + shrl $16,%edi + andl $255,%edi + xorl 2(%ebp,%edi,8),%esi + movl %ecx,%edi + shrl $24,%edi + xorl 1(%ebp,%edi,8),%esi + movl %esi,8(%esp) + movl %ecx,%esi + andl $255,%esi + movl (%ebp,%esi,8),%esi + movzbl %bh,%edi + xorl 3(%ebp,%edi,8),%esi + movl %eax,%edi + shrl $16,%edi + andl $255,%edi + xorl 2(%ebp,%edi,8),%esi + movl %edx,%edi + shrl $24,%edi + xorl 1(%ebp,%edi,8),%esi + movl 20(%esp),%edi + andl $255,%edx + movl (%ebp,%edx,8),%edx + movzbl %ch,%ecx + xorl 3(%ebp,%ecx,8),%edx + movl %esi,%ecx + shrl $16,%ebx + andl $255,%ebx + xorl 2(%ebp,%ebx,8),%edx + movl 8(%esp),%ebx + shrl $24,%eax + xorl 1(%ebp,%eax,8),%edx + movl 4(%esp),%eax + addl $16,%edi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + cmpl 24(%esp),%edi + movl %edi,20(%esp) + jb L009loop + leal 2176(%ebp),%ebp + movl -128(%ebp),%edi + movl -96(%ebp),%esi + movl -64(%ebp),%edi + movl -32(%ebp),%esi + movl (%ebp),%edi + movl 32(%ebp),%esi + movl 64(%ebp),%edi + movl 96(%ebp),%esi + leal -128(%ebp),%ebp + movl %eax,%esi + andl $255,%esi + movzbl (%ebp,%esi,1),%esi + movzbl %dh,%edi + movzbl (%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $16,%edi + andl $255,%edi + movzbl (%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %ebx,%edi + shrl $24,%edi + movzbl (%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,4(%esp) + movl %ebx,%esi + andl $255,%esi + movzbl (%ebp,%esi,1),%esi + movzbl %ah,%edi + movzbl (%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $16,%edi + andl $255,%edi + movzbl (%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %ecx,%edi + shrl $24,%edi + movzbl (%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl %esi,8(%esp) + movl %ecx,%esi + andl $255,%esi + movzbl (%ebp,%esi,1),%esi + movzbl %bh,%edi + movzbl (%ebp,%edi,1),%edi + shll $8,%edi + xorl %edi,%esi + movl %eax,%edi + shrl $16,%edi + andl $255,%edi + movzbl (%ebp,%edi,1),%edi + shll $16,%edi + xorl %edi,%esi + movl %edx,%edi + shrl $24,%edi + movzbl (%ebp,%edi,1),%edi + shll $24,%edi + xorl %edi,%esi + movl 20(%esp),%edi + andl $255,%edx + movzbl (%ebp,%edx,1),%edx + movzbl %ch,%ecx + movzbl (%ebp,%ecx,1),%ecx + shll $8,%ecx + xorl %ecx,%edx + movl %esi,%ecx + shrl $16,%ebx + andl $255,%ebx + movzbl (%ebp,%ebx,1),%ebx + shll $16,%ebx + xorl %ebx,%edx + movl 8(%esp),%ebx + shrl $24,%eax + movzbl (%ebp,%eax,1),%eax + shll $24,%eax + xorl %eax,%edx + movl 4(%esp),%eax + leal -2048(%ebp),%ebp + addl $16,%edi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + ret +.align 6,0x90 +LAES_Td: +.long 1353184337,1353184337 +.long 1399144830,1399144830 +.long 3282310938,3282310938 +.long 2522752826,2522752826 +.long 3412831035,3412831035 +.long 4047871263,4047871263 +.long 2874735276,2874735276 +.long 2466505547,2466505547 +.long 1442459680,1442459680 +.long 4134368941,4134368941 +.long 2440481928,2440481928 +.long 625738485,625738485 +.long 4242007375,4242007375 +.long 3620416197,3620416197 +.long 2151953702,2151953702 +.long 2409849525,2409849525 +.long 1230680542,1230680542 +.long 1729870373,1729870373 +.long 2551114309,2551114309 +.long 3787521629,3787521629 +.long 41234371,41234371 +.long 317738113,317738113 +.long 2744600205,2744600205 +.long 3338261355,3338261355 +.long 3881799427,3881799427 +.long 2510066197,2510066197 +.long 3950669247,3950669247 +.long 3663286933,3663286933 +.long 763608788,763608788 +.long 3542185048,3542185048 +.long 694804553,694804553 +.long 1154009486,1154009486 +.long 1787413109,1787413109 +.long 2021232372,2021232372 +.long 1799248025,1799248025 +.long 3715217703,3715217703 +.long 3058688446,3058688446 +.long 397248752,397248752 +.long 1722556617,1722556617 +.long 3023752829,3023752829 +.long 407560035,407560035 +.long 2184256229,2184256229 +.long 1613975959,1613975959 +.long 1165972322,1165972322 +.long 3765920945,3765920945 +.long 2226023355,2226023355 +.long 480281086,480281086 +.long 2485848313,2485848313 +.long 1483229296,1483229296 +.long 436028815,436028815 +.long 2272059028,2272059028 +.long 3086515026,3086515026 +.long 601060267,601060267 +.long 3791801202,3791801202 +.long 1468997603,1468997603 +.long 715871590,715871590 +.long 120122290,120122290 +.long 63092015,63092015 +.long 2591802758,2591802758 +.long 2768779219,2768779219 +.long 4068943920,4068943920 +.long 2997206819,2997206819 +.long 3127509762,3127509762 +.long 1552029421,1552029421 +.long 723308426,723308426 +.long 2461301159,2461301159 +.long 4042393587,4042393587 +.long 2715969870,2715969870 +.long 3455375973,3455375973 +.long 3586000134,3586000134 +.long 526529745,526529745 +.long 2331944644,2331944644 +.long 2639474228,2639474228 +.long 2689987490,2689987490 +.long 853641733,853641733 +.long 1978398372,1978398372 +.long 971801355,971801355 +.long 2867814464,2867814464 +.long 111112542,111112542 +.long 1360031421,1360031421 +.long 4186579262,4186579262 +.long 1023860118,1023860118 +.long 2919579357,2919579357 +.long 1186850381,1186850381 +.long 3045938321,3045938321 +.long 90031217,90031217 +.long 1876166148,1876166148 +.long 4279586912,4279586912 +.long 620468249,620468249 +.long 2548678102,2548678102 +.long 3426959497,3426959497 +.long 2006899047,2006899047 +.long 3175278768,3175278768 +.long 2290845959,2290845959 +.long 945494503,945494503 +.long 3689859193,3689859193 +.long 1191869601,1191869601 +.long 3910091388,3910091388 +.long 3374220536,3374220536 +.long 0,0 +.long 2206629897,2206629897 +.long 1223502642,1223502642 +.long 2893025566,2893025566 +.long 1316117100,1316117100 +.long 4227796733,4227796733 +.long 1446544655,1446544655 +.long 517320253,517320253 +.long 658058550,658058550 +.long 1691946762,1691946762 +.long 564550760,564550760 +.long 3511966619,3511966619 +.long 976107044,976107044 +.long 2976320012,2976320012 +.long 266819475,266819475 +.long 3533106868,3533106868 +.long 2660342555,2660342555 +.long 1338359936,1338359936 +.long 2720062561,2720062561 +.long 1766553434,1766553434 +.long 370807324,370807324 +.long 179999714,179999714 +.long 3844776128,3844776128 +.long 1138762300,1138762300 +.long 488053522,488053522 +.long 185403662,185403662 +.long 2915535858,2915535858 +.long 3114841645,3114841645 +.long 3366526484,3366526484 +.long 2233069911,2233069911 +.long 1275557295,1275557295 +.long 3151862254,3151862254 +.long 4250959779,4250959779 +.long 2670068215,2670068215 +.long 3170202204,3170202204 +.long 3309004356,3309004356 +.long 880737115,880737115 +.long 1982415755,1982415755 +.long 3703972811,3703972811 +.long 1761406390,1761406390 +.long 1676797112,1676797112 +.long 3403428311,3403428311 +.long 277177154,277177154 +.long 1076008723,1076008723 +.long 538035844,538035844 +.long 2099530373,2099530373 +.long 4164795346,4164795346 +.long 288553390,288553390 +.long 1839278535,1839278535 +.long 1261411869,1261411869 +.long 4080055004,4080055004 +.long 3964831245,3964831245 +.long 3504587127,3504587127 +.long 1813426987,1813426987 +.long 2579067049,2579067049 +.long 4199060497,4199060497 +.long 577038663,577038663 +.long 3297574056,3297574056 +.long 440397984,440397984 +.long 3626794326,3626794326 +.long 4019204898,4019204898 +.long 3343796615,3343796615 +.long 3251714265,3251714265 +.long 4272081548,4272081548 +.long 906744984,906744984 +.long 3481400742,3481400742 +.long 685669029,685669029 +.long 646887386,646887386 +.long 2764025151,2764025151 +.long 3835509292,3835509292 +.long 227702864,227702864 +.long 2613862250,2613862250 +.long 1648787028,1648787028 +.long 3256061430,3256061430 +.long 3904428176,3904428176 +.long 1593260334,1593260334 +.long 4121936770,4121936770 +.long 3196083615,3196083615 +.long 2090061929,2090061929 +.long 2838353263,2838353263 +.long 3004310991,3004310991 +.long 999926984,999926984 +.long 2809993232,2809993232 +.long 1852021992,1852021992 +.long 2075868123,2075868123 +.long 158869197,158869197 +.long 4095236462,4095236462 +.long 28809964,28809964 +.long 2828685187,2828685187 +.long 1701746150,1701746150 +.long 2129067946,2129067946 +.long 147831841,147831841 +.long 3873969647,3873969647 +.long 3650873274,3650873274 +.long 3459673930,3459673930 +.long 3557400554,3557400554 +.long 3598495785,3598495785 +.long 2947720241,2947720241 +.long 824393514,824393514 +.long 815048134,815048134 +.long 3227951669,3227951669 +.long 935087732,935087732 +.long 2798289660,2798289660 +.long 2966458592,2966458592 +.long 366520115,366520115 +.long 1251476721,1251476721 +.long 4158319681,4158319681 +.long 240176511,240176511 +.long 804688151,804688151 +.long 2379631990,2379631990 +.long 1303441219,1303441219 +.long 1414376140,1414376140 +.long 3741619940,3741619940 +.long 3820343710,3820343710 +.long 461924940,461924940 +.long 3089050817,3089050817 +.long 2136040774,2136040774 +.long 82468509,82468509 +.long 1563790337,1563790337 +.long 1937016826,1937016826 +.long 776014843,776014843 +.long 1511876531,1511876531 +.long 1389550482,1389550482 +.long 861278441,861278441 +.long 323475053,323475053 +.long 2355222426,2355222426 +.long 2047648055,2047648055 +.long 2383738969,2383738969 +.long 2302415851,2302415851 +.long 3995576782,3995576782 +.long 902390199,902390199 +.long 3991215329,3991215329 +.long 1018251130,1018251130 +.long 1507840668,1507840668 +.long 1064563285,1064563285 +.long 2043548696,2043548696 +.long 3208103795,3208103795 +.long 3939366739,3939366739 +.long 1537932639,1537932639 +.long 342834655,342834655 +.long 2262516856,2262516856 +.long 2180231114,2180231114 +.long 1053059257,1053059257 +.long 741614648,741614648 +.long 1598071746,1598071746 +.long 1925389590,1925389590 +.long 203809468,203809468 +.long 2336832552,2336832552 +.long 1100287487,1100287487 +.long 1895934009,1895934009 +.long 3736275976,3736275976 +.long 2632234200,2632234200 +.long 2428589668,2428589668 +.long 1636092795,1636092795 +.long 1890988757,1890988757 +.long 1952214088,1952214088 +.long 1113045200,1113045200 +.byte 82,9,106,213,48,54,165,56 +.byte 191,64,163,158,129,243,215,251 +.byte 124,227,57,130,155,47,255,135 +.byte 52,142,67,68,196,222,233,203 +.byte 84,123,148,50,166,194,35,61 +.byte 238,76,149,11,66,250,195,78 +.byte 8,46,161,102,40,217,36,178 +.byte 118,91,162,73,109,139,209,37 +.byte 114,248,246,100,134,104,152,22 +.byte 212,164,92,204,93,101,182,146 +.byte 108,112,72,80,253,237,185,218 +.byte 94,21,70,87,167,141,157,132 +.byte 144,216,171,0,140,188,211,10 +.byte 247,228,88,5,184,179,69,6 +.byte 208,44,30,143,202,63,15,2 +.byte 193,175,189,3,1,19,138,107 +.byte 58,145,17,65,79,103,220,234 +.byte 151,242,207,206,240,180,230,115 +.byte 150,172,116,34,231,173,53,133 +.byte 226,249,55,232,28,117,223,110 +.byte 71,241,26,113,29,41,197,137 +.byte 111,183,98,14,170,24,190,27 +.byte 252,86,62,75,198,210,121,32 +.byte 154,219,192,254,120,205,90,244 +.byte 31,221,168,51,136,7,199,49 +.byte 177,18,16,89,39,128,236,95 +.byte 96,81,127,169,25,181,74,13 +.byte 45,229,122,159,147,201,156,239 +.byte 160,224,59,77,174,42,245,176 +.byte 200,235,187,60,131,83,153,97 +.byte 23,43,4,126,186,119,214,38 +.byte 225,105,20,99,85,33,12,125 +.byte 82,9,106,213,48,54,165,56 +.byte 191,64,163,158,129,243,215,251 +.byte 124,227,57,130,155,47,255,135 +.byte 52,142,67,68,196,222,233,203 +.byte 84,123,148,50,166,194,35,61 +.byte 238,76,149,11,66,250,195,78 +.byte 8,46,161,102,40,217,36,178 +.byte 118,91,162,73,109,139,209,37 +.byte 114,248,246,100,134,104,152,22 +.byte 212,164,92,204,93,101,182,146 +.byte 108,112,72,80,253,237,185,218 +.byte 94,21,70,87,167,141,157,132 +.byte 144,216,171,0,140,188,211,10 +.byte 247,228,88,5,184,179,69,6 +.byte 208,44,30,143,202,63,15,2 +.byte 193,175,189,3,1,19,138,107 +.byte 58,145,17,65,79,103,220,234 +.byte 151,242,207,206,240,180,230,115 +.byte 150,172,116,34,231,173,53,133 +.byte 226,249,55,232,28,117,223,110 +.byte 71,241,26,113,29,41,197,137 +.byte 111,183,98,14,170,24,190,27 +.byte 252,86,62,75,198,210,121,32 +.byte 154,219,192,254,120,205,90,244 +.byte 31,221,168,51,136,7,199,49 +.byte 177,18,16,89,39,128,236,95 +.byte 96,81,127,169,25,181,74,13 +.byte 45,229,122,159,147,201,156,239 +.byte 160,224,59,77,174,42,245,176 +.byte 200,235,187,60,131,83,153,97 +.byte 23,43,4,126,186,119,214,38 +.byte 225,105,20,99,85,33,12,125 +.byte 82,9,106,213,48,54,165,56 +.byte 191,64,163,158,129,243,215,251 +.byte 124,227,57,130,155,47,255,135 +.byte 52,142,67,68,196,222,233,203 +.byte 84,123,148,50,166,194,35,61 +.byte 238,76,149,11,66,250,195,78 +.byte 8,46,161,102,40,217,36,178 +.byte 118,91,162,73,109,139,209,37 +.byte 114,248,246,100,134,104,152,22 +.byte 212,164,92,204,93,101,182,146 +.byte 108,112,72,80,253,237,185,218 +.byte 94,21,70,87,167,141,157,132 +.byte 144,216,171,0,140,188,211,10 +.byte 247,228,88,5,184,179,69,6 +.byte 208,44,30,143,202,63,15,2 +.byte 193,175,189,3,1,19,138,107 +.byte 58,145,17,65,79,103,220,234 +.byte 151,242,207,206,240,180,230,115 +.byte 150,172,116,34,231,173,53,133 +.byte 226,249,55,232,28,117,223,110 +.byte 71,241,26,113,29,41,197,137 +.byte 111,183,98,14,170,24,190,27 +.byte 252,86,62,75,198,210,121,32 +.byte 154,219,192,254,120,205,90,244 +.byte 31,221,168,51,136,7,199,49 +.byte 177,18,16,89,39,128,236,95 +.byte 96,81,127,169,25,181,74,13 +.byte 45,229,122,159,147,201,156,239 +.byte 160,224,59,77,174,42,245,176 +.byte 200,235,187,60,131,83,153,97 +.byte 23,43,4,126,186,119,214,38 +.byte 225,105,20,99,85,33,12,125 +.byte 82,9,106,213,48,54,165,56 +.byte 191,64,163,158,129,243,215,251 +.byte 124,227,57,130,155,47,255,135 +.byte 52,142,67,68,196,222,233,203 +.byte 84,123,148,50,166,194,35,61 +.byte 238,76,149,11,66,250,195,78 +.byte 8,46,161,102,40,217,36,178 +.byte 118,91,162,73,109,139,209,37 +.byte 114,248,246,100,134,104,152,22 +.byte 212,164,92,204,93,101,182,146 +.byte 108,112,72,80,253,237,185,218 +.byte 94,21,70,87,167,141,157,132 +.byte 144,216,171,0,140,188,211,10 +.byte 247,228,88,5,184,179,69,6 +.byte 208,44,30,143,202,63,15,2 +.byte 193,175,189,3,1,19,138,107 +.byte 58,145,17,65,79,103,220,234 +.byte 151,242,207,206,240,180,230,115 +.byte 150,172,116,34,231,173,53,133 +.byte 226,249,55,232,28,117,223,110 +.byte 71,241,26,113,29,41,197,137 +.byte 111,183,98,14,170,24,190,27 +.byte 252,86,62,75,198,210,121,32 +.byte 154,219,192,254,120,205,90,244 +.byte 31,221,168,51,136,7,199,49 +.byte 177,18,16,89,39,128,236,95 +.byte 96,81,127,169,25,181,74,13 +.byte 45,229,122,159,147,201,156,239 +.byte 160,224,59,77,174,42,245,176 +.byte 200,235,187,60,131,83,153,97 +.byte 23,43,4,126,186,119,214,38 +.byte 225,105,20,99,85,33,12,125 +.globl _AES_decrypt +.align 4 +_AES_decrypt: +L_AES_decrypt_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%esi + movl 28(%esp),%edi + movl %esp,%eax + subl $36,%esp + andl $-64,%esp + leal -127(%edi),%ebx + subl %esp,%ebx + negl %ebx + andl $960,%ebx + subl %ebx,%esp + addl $4,%esp + movl %eax,28(%esp) + call L010pic_point +L010pic_point: + popl %ebp + leal _OPENSSL_ia32cap_P,%eax + leal LAES_Td-L010pic_point(%ebp),%ebp + leal 764(%esp),%ebx + subl %ebp,%ebx + andl $768,%ebx + leal 2176(%ebp,%ebx,1),%ebp + btl $25,(%eax) + jnc L011x86 + movq (%esi),%mm0 + movq 8(%esi),%mm4 + call __sse_AES_decrypt_compact + movl 28(%esp),%esp + movl 24(%esp),%esi + movq %mm0,(%esi) + movq %mm4,8(%esi) + emms + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 4,0x90 +L011x86: + movl %ebp,24(%esp) + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + call __x86_AES_decrypt_compact + movl 28(%esp),%esp + movl 24(%esp),%esi + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _AES_cbc_encrypt +.align 4 +_AES_cbc_encrypt: +L_AES_cbc_encrypt_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 28(%esp),%ecx + cmpl $0,%ecx + je L012drop_out + call L013pic_point +L013pic_point: + popl %ebp + leal _OPENSSL_ia32cap_P,%eax + cmpl $0,40(%esp) + leal LAES_Te-L013pic_point(%ebp),%ebp + jne L014picked_te + leal LAES_Td-LAES_Te(%ebp),%ebp +L014picked_te: + pushfl + cld + cmpl $512,%ecx + jb L015slow_way + testl $15,%ecx + jnz L015slow_way + leal -324(%esp),%esi + andl $-64,%esi + movl %ebp,%eax + leal 2304(%ebp),%ebx + movl %esi,%edx + andl $4095,%eax + andl $4095,%ebx + andl $4095,%edx + cmpl %ebx,%edx + jb L016tbl_break_out + subl %ebx,%edx + subl %edx,%esi + jmp L017tbl_ok +.align 2,0x90 +L016tbl_break_out: + subl %eax,%edx + andl $4095,%edx + addl $384,%edx + subl %edx,%esi +.align 2,0x90 +L017tbl_ok: + leal 24(%esp),%edx + xchgl %esi,%esp + addl $4,%esp + movl %ebp,24(%esp) + movl %esi,28(%esp) + movl (%edx),%eax + movl 4(%edx),%ebx + movl 12(%edx),%edi + movl 16(%edx),%esi + movl 20(%edx),%edx + movl %eax,32(%esp) + movl %ebx,36(%esp) + movl %ecx,40(%esp) + movl %edi,44(%esp) + movl %esi,48(%esp) + movl $0,316(%esp) + movl %edi,%ebx + movl $61,%ecx + subl %ebp,%ebx + movl %edi,%esi + andl $4095,%ebx + leal 76(%esp),%edi + cmpl $2304,%ebx + jb L018do_copy + cmpl $3852,%ebx + jb L019skip_copy +.align 2,0x90 +L018do_copy: + movl %edi,44(%esp) +.long 2784229001 +L019skip_copy: + movl $16,%edi +.align 2,0x90 +L020prefetch_tbl: + movl (%ebp),%eax + movl 32(%ebp),%ebx + movl 64(%ebp),%ecx + movl 96(%ebp),%esi + leal 128(%ebp),%ebp + subl $1,%edi + jnz L020prefetch_tbl + subl $2048,%ebp + movl 32(%esp),%esi + movl 48(%esp),%edi + cmpl $0,%edx + je L021fast_decrypt + movl (%edi),%eax + movl 4(%edi),%ebx +.align 4,0x90 +L022fast_enc_loop: + movl 8(%edi),%ecx + movl 12(%edi),%edx + xorl (%esi),%eax + xorl 4(%esi),%ebx + xorl 8(%esi),%ecx + xorl 12(%esi),%edx + movl 44(%esp),%edi + call __x86_AES_encrypt + movl 32(%esp),%esi + movl 36(%esp),%edi + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + leal 16(%esi),%esi + movl 40(%esp),%ecx + movl %esi,32(%esp) + leal 16(%edi),%edx + movl %edx,36(%esp) + subl $16,%ecx + movl %ecx,40(%esp) + jnz L022fast_enc_loop + movl 48(%esp),%esi + movl 8(%edi),%ecx + movl 12(%edi),%edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + cmpl $0,316(%esp) + movl 44(%esp),%edi + je L023skip_ezero + movl $60,%ecx + xorl %eax,%eax +.align 2,0x90 +.long 2884892297 +L023skip_ezero: + movl 28(%esp),%esp + popfl +L012drop_out: + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + pushfl +.align 4,0x90 +L021fast_decrypt: + cmpl 36(%esp),%esi + je L024fast_dec_in_place + movl %edi,52(%esp) +.align 2,0x90 +.align 4,0x90 +L025fast_dec_loop: + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl 44(%esp),%edi + call __x86_AES_decrypt + movl 52(%esp),%edi + movl 40(%esp),%esi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl 36(%esp),%edi + movl 32(%esp),%esi + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 40(%esp),%ecx + movl %esi,52(%esp) + leal 16(%esi),%esi + movl %esi,32(%esp) + leal 16(%edi),%edi + movl %edi,36(%esp) + subl $16,%ecx + movl %ecx,40(%esp) + jnz L025fast_dec_loop + movl 52(%esp),%edi + movl 48(%esp),%esi + movl (%edi),%eax + movl 4(%edi),%ebx + movl 8(%edi),%ecx + movl 12(%edi),%edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + jmp L026fast_dec_out +.align 4,0x90 +L024fast_dec_in_place: +L027fast_dec_in_place_loop: + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + leal 60(%esp),%edi + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 44(%esp),%edi + call __x86_AES_decrypt + movl 48(%esp),%edi + movl 36(%esp),%esi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + leal 16(%esi),%esi + movl %esi,36(%esp) + leal 60(%esp),%esi + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 32(%esp),%esi + movl 40(%esp),%ecx + leal 16(%esi),%esi + movl %esi,32(%esp) + subl $16,%ecx + movl %ecx,40(%esp) + jnz L027fast_dec_in_place_loop +.align 2,0x90 +L026fast_dec_out: + cmpl $0,316(%esp) + movl 44(%esp),%edi + je L028skip_dzero + movl $60,%ecx + xorl %eax,%eax +.align 2,0x90 +.long 2884892297 +L028skip_dzero: + movl 28(%esp),%esp + popfl + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + pushfl +.align 4,0x90 +L015slow_way: + movl (%eax),%eax + movl 36(%esp),%edi + leal -80(%esp),%esi + andl $-64,%esi + leal -143(%edi),%ebx + subl %esi,%ebx + negl %ebx + andl $960,%ebx + subl %ebx,%esi + leal 768(%esi),%ebx + subl %ebp,%ebx + andl $768,%ebx + leal 2176(%ebp,%ebx,1),%ebp + leal 24(%esp),%edx + xchgl %esi,%esp + addl $4,%esp + movl %ebp,24(%esp) + movl %esi,28(%esp) + movl %eax,52(%esp) + movl (%edx),%eax + movl 4(%edx),%ebx + movl 16(%edx),%esi + movl 20(%edx),%edx + movl %eax,32(%esp) + movl %ebx,36(%esp) + movl %ecx,40(%esp) + movl %edi,44(%esp) + movl %esi,48(%esp) + movl %esi,%edi + movl %eax,%esi + cmpl $0,%edx + je L029slow_decrypt + cmpl $16,%ecx + movl %ebx,%edx + jb L030slow_enc_tail + btl $25,52(%esp) + jnc L031slow_enc_x86 + movq (%edi),%mm0 + movq 8(%edi),%mm4 +.align 4,0x90 +L032slow_enc_loop_sse: + pxor (%esi),%mm0 + pxor 8(%esi),%mm4 + movl 44(%esp),%edi + call __sse_AES_encrypt_compact + movl 32(%esp),%esi + movl 36(%esp),%edi + movl 40(%esp),%ecx + movq %mm0,(%edi) + movq %mm4,8(%edi) + leal 16(%esi),%esi + movl %esi,32(%esp) + leal 16(%edi),%edx + movl %edx,36(%esp) + subl $16,%ecx + cmpl $16,%ecx + movl %ecx,40(%esp) + jae L032slow_enc_loop_sse + testl $15,%ecx + jnz L030slow_enc_tail + movl 48(%esp),%esi + movq %mm0,(%esi) + movq %mm4,8(%esi) + emms + movl 28(%esp),%esp + popfl + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + pushfl +.align 4,0x90 +L031slow_enc_x86: + movl (%edi),%eax + movl 4(%edi),%ebx +.align 2,0x90 +L033slow_enc_loop_x86: + movl 8(%edi),%ecx + movl 12(%edi),%edx + xorl (%esi),%eax + xorl 4(%esi),%ebx + xorl 8(%esi),%ecx + xorl 12(%esi),%edx + movl 44(%esp),%edi + call __x86_AES_encrypt_compact + movl 32(%esp),%esi + movl 36(%esp),%edi + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 40(%esp),%ecx + leal 16(%esi),%esi + movl %esi,32(%esp) + leal 16(%edi),%edx + movl %edx,36(%esp) + subl $16,%ecx + cmpl $16,%ecx + movl %ecx,40(%esp) + jae L033slow_enc_loop_x86 + testl $15,%ecx + jnz L030slow_enc_tail + movl 48(%esp),%esi + movl 8(%edi),%ecx + movl 12(%edi),%edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + movl 28(%esp),%esp + popfl + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + pushfl +.align 4,0x90 +L030slow_enc_tail: + emms + movl %edx,%edi + movl $16,%ebx + subl %ecx,%ebx + cmpl %esi,%edi + je L034enc_in_place +.align 2,0x90 +.long 2767451785 + jmp L035enc_skip_in_place +L034enc_in_place: + leal (%edi,%ecx,1),%edi +L035enc_skip_in_place: + movl %ebx,%ecx + xorl %eax,%eax +.align 2,0x90 +.long 2868115081 + movl 48(%esp),%edi + movl %edx,%esi + movl (%edi),%eax + movl 4(%edi),%ebx + movl $16,40(%esp) + jmp L033slow_enc_loop_x86 +.align 4,0x90 +L029slow_decrypt: + btl $25,52(%esp) + jnc L036slow_dec_loop_x86 +.align 2,0x90 +L037slow_dec_loop_sse: + movq (%esi),%mm0 + movq 8(%esi),%mm4 + movl 44(%esp),%edi + call __sse_AES_decrypt_compact + movl 32(%esp),%esi + leal 60(%esp),%eax + movl 36(%esp),%ebx + movl 40(%esp),%ecx + movl 48(%esp),%edi + movq (%esi),%mm1 + movq 8(%esi),%mm5 + pxor (%edi),%mm0 + pxor 8(%edi),%mm4 + movq %mm1,(%edi) + movq %mm5,8(%edi) + subl $16,%ecx + jc L038slow_dec_partial_sse + movq %mm0,(%ebx) + movq %mm4,8(%ebx) + leal 16(%ebx),%ebx + movl %ebx,36(%esp) + leal 16(%esi),%esi + movl %esi,32(%esp) + movl %ecx,40(%esp) + jnz L037slow_dec_loop_sse + emms + movl 28(%esp),%esp + popfl + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + pushfl +.align 4,0x90 +L038slow_dec_partial_sse: + movq %mm0,(%eax) + movq %mm4,8(%eax) + emms + addl $16,%ecx + movl %ebx,%edi + movl %eax,%esi +.align 2,0x90 +.long 2767451785 + movl 28(%esp),%esp + popfl + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + pushfl +.align 4,0x90 +L036slow_dec_loop_x86: + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + leal 60(%esp),%edi + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 44(%esp),%edi + call __x86_AES_decrypt_compact + movl 48(%esp),%edi + movl 40(%esp),%esi + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + subl $16,%esi + jc L039slow_dec_partial_x86 + movl %esi,40(%esp) + movl 36(%esp),%esi + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + leal 16(%esi),%esi + movl %esi,36(%esp) + leal 60(%esp),%esi + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 32(%esp),%esi + leal 16(%esi),%esi + movl %esi,32(%esp) + jnz L036slow_dec_loop_x86 + movl 28(%esp),%esp + popfl + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + pushfl +.align 4,0x90 +L039slow_dec_partial_x86: + leal 60(%esp),%esi + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + movl 32(%esp),%esi + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 40(%esp),%ecx + movl 36(%esp),%edi + leal 60(%esp),%esi +.align 2,0x90 +.long 2767451785 + movl 28(%esp),%esp + popfl + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 4 +__x86_AES_set_encrypt_key: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 24(%esp),%esi + movl 32(%esp),%edi + testl $-1,%esi + jz L040badpointer + testl $-1,%edi + jz L040badpointer + call L041pic_point +L041pic_point: + popl %ebp + leal LAES_Te-L041pic_point(%ebp),%ebp + leal 2176(%ebp),%ebp + movl -128(%ebp),%eax + movl -96(%ebp),%ebx + movl -64(%ebp),%ecx + movl -32(%ebp),%edx + movl (%ebp),%eax + movl 32(%ebp),%ebx + movl 64(%ebp),%ecx + movl 96(%ebp),%edx + movl 28(%esp),%ecx + cmpl $128,%ecx + je L04210rounds + cmpl $192,%ecx + je L04312rounds + cmpl $256,%ecx + je L04414rounds + movl $-2,%eax + jmp L045exit +L04210rounds: + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + xorl %ecx,%ecx + jmp L04610shortcut +.align 2,0x90 +L04710loop: + movl (%edi),%eax + movl 12(%edi),%edx +L04610shortcut: + movzbl %dl,%esi + movzbl -128(%ebp,%esi,1),%ebx + movzbl %dh,%esi + shll $24,%ebx + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + shrl $16,%edx + movzbl %dl,%esi + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + movzbl %dh,%esi + shll $8,%ebx + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + shll $16,%ebx + xorl %ebx,%eax + xorl 896(%ebp,%ecx,4),%eax + movl %eax,16(%edi) + xorl 4(%edi),%eax + movl %eax,20(%edi) + xorl 8(%edi),%eax + movl %eax,24(%edi) + xorl 12(%edi),%eax + movl %eax,28(%edi) + incl %ecx + addl $16,%edi + cmpl $10,%ecx + jl L04710loop + movl $10,80(%edi) + xorl %eax,%eax + jmp L045exit +L04312rounds: + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 16(%esi),%ecx + movl 20(%esi),%edx + movl %ecx,16(%edi) + movl %edx,20(%edi) + xorl %ecx,%ecx + jmp L04812shortcut +.align 2,0x90 +L04912loop: + movl (%edi),%eax + movl 20(%edi),%edx +L04812shortcut: + movzbl %dl,%esi + movzbl -128(%ebp,%esi,1),%ebx + movzbl %dh,%esi + shll $24,%ebx + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + shrl $16,%edx + movzbl %dl,%esi + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + movzbl %dh,%esi + shll $8,%ebx + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + shll $16,%ebx + xorl %ebx,%eax + xorl 896(%ebp,%ecx,4),%eax + movl %eax,24(%edi) + xorl 4(%edi),%eax + movl %eax,28(%edi) + xorl 8(%edi),%eax + movl %eax,32(%edi) + xorl 12(%edi),%eax + movl %eax,36(%edi) + cmpl $7,%ecx + je L05012break + incl %ecx + xorl 16(%edi),%eax + movl %eax,40(%edi) + xorl 20(%edi),%eax + movl %eax,44(%edi) + addl $24,%edi + jmp L04912loop +L05012break: + movl $12,72(%edi) + xorl %eax,%eax + jmp L045exit +L04414rounds: + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 16(%esi),%eax + movl 20(%esi),%ebx + movl 24(%esi),%ecx + movl 28(%esi),%edx + movl %eax,16(%edi) + movl %ebx,20(%edi) + movl %ecx,24(%edi) + movl %edx,28(%edi) + xorl %ecx,%ecx + jmp L05114shortcut +.align 2,0x90 +L05214loop: + movl 28(%edi),%edx +L05114shortcut: + movl (%edi),%eax + movzbl %dl,%esi + movzbl -128(%ebp,%esi,1),%ebx + movzbl %dh,%esi + shll $24,%ebx + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + shrl $16,%edx + movzbl %dl,%esi + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + movzbl %dh,%esi + shll $8,%ebx + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + shll $16,%ebx + xorl %ebx,%eax + xorl 896(%ebp,%ecx,4),%eax + movl %eax,32(%edi) + xorl 4(%edi),%eax + movl %eax,36(%edi) + xorl 8(%edi),%eax + movl %eax,40(%edi) + xorl 12(%edi),%eax + movl %eax,44(%edi) + cmpl $6,%ecx + je L05314break + incl %ecx + movl %eax,%edx + movl 16(%edi),%eax + movzbl %dl,%esi + movzbl -128(%ebp,%esi,1),%ebx + movzbl %dh,%esi + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + shrl $16,%edx + shll $8,%ebx + movzbl %dl,%esi + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + movzbl %dh,%esi + shll $16,%ebx + xorl %ebx,%eax + movzbl -128(%ebp,%esi,1),%ebx + shll $24,%ebx + xorl %ebx,%eax + movl %eax,48(%edi) + xorl 20(%edi),%eax + movl %eax,52(%edi) + xorl 24(%edi),%eax + movl %eax,56(%edi) + xorl 28(%edi),%eax + movl %eax,60(%edi) + addl $32,%edi + jmp L05214loop +L05314break: + movl $14,48(%edi) + xorl %eax,%eax + jmp L045exit +L040badpointer: + movl $-1,%eax +L045exit: + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _AES_set_encrypt_key +.align 4 +_AES_set_encrypt_key: +L_AES_set_encrypt_key_begin: + call __x86_AES_set_encrypt_key + ret +.globl _AES_set_decrypt_key +.align 4 +_AES_set_decrypt_key: +L_AES_set_decrypt_key_begin: + call __x86_AES_set_encrypt_key + cmpl $0,%eax + je L054proceed + ret +L054proceed: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 28(%esp),%esi + movl 240(%esi),%ecx + leal (,%ecx,4),%ecx + leal (%esi,%ecx,4),%edi +.align 2,0x90 +L055invert: + movl (%esi),%eax + movl 4(%esi),%ebx + movl (%edi),%ecx + movl 4(%edi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,(%esi) + movl %edx,4(%esi) + movl 8(%esi),%eax + movl 12(%esi),%ebx + movl 8(%edi),%ecx + movl 12(%edi),%edx + movl %eax,8(%edi) + movl %ebx,12(%edi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + addl $16,%esi + subl $16,%edi + cmpl %edi,%esi + jne L055invert + movl 28(%esp),%edi + movl 240(%edi),%esi + leal -2(%esi,%esi,1),%esi + leal (%edi,%esi,8),%esi + movl %esi,28(%esp) + movl 16(%edi),%eax +.align 2,0x90 +L056permute: + addl $16,%edi + movl %eax,%esi + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%eax,%eax,1),%ebx + subl %ebp,%esi + andl $4278124286,%ebx + andl $454761243,%esi + xorl %ebx,%esi + movl %esi,%ebx + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%ebx,%ebx,1),%ecx + subl %ebp,%esi + andl $4278124286,%ecx + andl $454761243,%esi + xorl %eax,%ebx + xorl %ecx,%esi + movl %esi,%ecx + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%ecx,%ecx,1),%edx + xorl %eax,%ecx + subl %ebp,%esi + andl $4278124286,%edx + andl $454761243,%esi + roll $8,%eax + xorl %esi,%edx + movl 4(%edi),%ebp + xorl %ebx,%eax + xorl %edx,%ebx + xorl %ecx,%eax + roll $24,%ebx + xorl %edx,%ecx + xorl %edx,%eax + roll $16,%ecx + xorl %ebx,%eax + roll $8,%edx + xorl %ecx,%eax + movl %ebp,%ebx + xorl %edx,%eax + movl %eax,(%edi) + movl %ebx,%esi + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%ebx,%ebx,1),%ecx + subl %ebp,%esi + andl $4278124286,%ecx + andl $454761243,%esi + xorl %ecx,%esi + movl %esi,%ecx + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%ecx,%ecx,1),%edx + subl %ebp,%esi + andl $4278124286,%edx + andl $454761243,%esi + xorl %ebx,%ecx + xorl %edx,%esi + movl %esi,%edx + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%edx,%edx,1),%eax + xorl %ebx,%edx + subl %ebp,%esi + andl $4278124286,%eax + andl $454761243,%esi + roll $8,%ebx + xorl %esi,%eax + movl 8(%edi),%ebp + xorl %ecx,%ebx + xorl %eax,%ecx + xorl %edx,%ebx + roll $24,%ecx + xorl %eax,%edx + xorl %eax,%ebx + roll $16,%edx + xorl %ecx,%ebx + roll $8,%eax + xorl %edx,%ebx + movl %ebp,%ecx + xorl %eax,%ebx + movl %ebx,4(%edi) + movl %ecx,%esi + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%ecx,%ecx,1),%edx + subl %ebp,%esi + andl $4278124286,%edx + andl $454761243,%esi + xorl %edx,%esi + movl %esi,%edx + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%edx,%edx,1),%eax + subl %ebp,%esi + andl $4278124286,%eax + andl $454761243,%esi + xorl %ecx,%edx + xorl %eax,%esi + movl %esi,%eax + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%eax,%eax,1),%ebx + xorl %ecx,%eax + subl %ebp,%esi + andl $4278124286,%ebx + andl $454761243,%esi + roll $8,%ecx + xorl %esi,%ebx + movl 12(%edi),%ebp + xorl %edx,%ecx + xorl %ebx,%edx + xorl %eax,%ecx + roll $24,%edx + xorl %ebx,%eax + xorl %ebx,%ecx + roll $16,%eax + xorl %edx,%ecx + roll $8,%ebx + xorl %eax,%ecx + movl %ebp,%edx + xorl %ebx,%ecx + movl %ecx,8(%edi) + movl %edx,%esi + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%edx,%edx,1),%eax + subl %ebp,%esi + andl $4278124286,%eax + andl $454761243,%esi + xorl %eax,%esi + movl %esi,%eax + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%eax,%eax,1),%ebx + subl %ebp,%esi + andl $4278124286,%ebx + andl $454761243,%esi + xorl %edx,%eax + xorl %ebx,%esi + movl %esi,%ebx + andl $2155905152,%esi + movl %esi,%ebp + shrl $7,%ebp + leal (%ebx,%ebx,1),%ecx + xorl %edx,%ebx + subl %ebp,%esi + andl $4278124286,%ecx + andl $454761243,%esi + roll $8,%edx + xorl %esi,%ecx + movl 16(%edi),%ebp + xorl %eax,%edx + xorl %ecx,%eax + xorl %ebx,%edx + roll $24,%eax + xorl %ecx,%ebx + xorl %ecx,%edx + roll $16,%ebx + xorl %eax,%edx + roll $8,%ecx + xorl %ebx,%edx + movl %ebp,%eax + xorl %ecx,%edx + movl %edx,12(%edi) + cmpl 28(%esp),%edi + jb L056permute + xorl %eax,%eax + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89 +.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 +.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.comm _OPENSSL_ia32cap_P,4 diff --git a/deps/openssl/asm/x86-macosx-gas/bf/bf-686.s b/deps/openssl/asm/x86-macosx-gas/bf/bf-686.s new file mode 100644 index 0000000000..013d2dec8e --- /dev/null +++ b/deps/openssl/asm/x86-macosx-gas/bf/bf-686.s @@ -0,0 +1,897 @@ +.file "bf-686.s" +.text +.globl _BF_encrypt +.align 4 +_BF_encrypt: +L_BF_encrypt_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + + # Load the 2 words + + movl 20(%esp),%eax + movl (%eax),%ecx + movl 4(%eax),%edx + + # P pointer, s and enc flag + + movl 24(%esp),%edi + xorl %eax,%eax + xorl %ebx,%ebx + xorl (%edi),%ecx + + # Round 0 + + rorl $16,%ecx + movl 4(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + # Round 1 + + rorl $16,%edx + movl 8(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + # Round 2 + + rorl $16,%ecx + movl 12(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + # Round 3 + + rorl $16,%edx + movl 16(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + # Round 4 + + rorl $16,%ecx + movl 20(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + # Round 5 + + rorl $16,%edx + movl 24(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + # Round 6 + + rorl $16,%ecx + movl 28(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + # Round 7 + + rorl $16,%edx + movl 32(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + # Round 8 + + rorl $16,%ecx + movl 36(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + # Round 9 + + rorl $16,%edx + movl 40(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + # Round 10 + + rorl $16,%ecx + movl 44(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + # Round 11 + + rorl $16,%edx + movl 48(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + # Round 12 + + rorl $16,%ecx + movl 52(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + # Round 13 + + rorl $16,%edx + movl 56(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + # Round 14 + + rorl $16,%ecx + movl 60(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + # Round 15 + + rorl $16,%edx + movl 64(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + xorl 68(%edi),%edx + movl 20(%esp),%eax + movl %edx,(%eax) + movl %ecx,4(%eax) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _BF_decrypt +.align 4 +_BF_decrypt: +L_BF_decrypt_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + + # Load the 2 words + + movl 20(%esp),%eax + movl (%eax),%ecx + movl 4(%eax),%edx + + # P pointer, s and enc flag + + movl 24(%esp),%edi + xorl %eax,%eax + xorl %ebx,%ebx + xorl 68(%edi),%ecx + + # Round 16 + + rorl $16,%ecx + movl 64(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + # Round 15 + + rorl $16,%edx + movl 60(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + # Round 14 + + rorl $16,%ecx + movl 56(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + # Round 13 + + rorl $16,%edx + movl 52(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + # Round 12 + + rorl $16,%ecx + movl 48(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + # Round 11 + + rorl $16,%edx + movl 44(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + # Round 10 + + rorl $16,%ecx + movl 40(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + # Round 9 + + rorl $16,%edx + movl 36(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + # Round 8 + + rorl $16,%ecx + movl 32(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + # Round 7 + + rorl $16,%edx + movl 28(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + # Round 6 + + rorl $16,%ecx + movl 24(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + # Round 5 + + rorl $16,%edx + movl 20(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + # Round 4 + + rorl $16,%ecx + movl 16(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + # Round 3 + + rorl $16,%edx + movl 12(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + + # Round 2 + + rorl $16,%ecx + movl 8(%edi),%esi + movb %ch,%al + movb %cl,%bl + rorl $16,%ecx + xorl %esi,%edx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %ch,%al + movb %cl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%edx + + # Round 1 + + rorl $16,%edx + movl 4(%edi),%esi + movb %dh,%al + movb %dl,%bl + rorl $16,%edx + xorl %esi,%ecx + movl 72(%edi,%eax,4),%esi + movl 1096(%edi,%ebx,4),%ebp + movb %dh,%al + movb %dl,%bl + addl %ebp,%esi + movl 2120(%edi,%eax,4),%eax + xorl %eax,%esi + movl 3144(%edi,%ebx,4),%ebp + addl %ebp,%esi + xorl %eax,%eax + xorl %esi,%ecx + xorl (%edi),%edx + movl 20(%esp),%eax + movl %edx,(%eax) + movl %ecx,4(%eax) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _BF_cbc_encrypt +.align 4 +_BF_cbc_encrypt: +L_BF_cbc_encrypt_begin: + + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 28(%esp),%ebp + # getting iv ptr from parameter 4 + + movl 36(%esp),%ebx + movl (%ebx),%esi + movl 4(%ebx),%edi + pushl %edi + pushl %esi + pushl %edi + pushl %esi + movl %esp,%ebx + movl 36(%esp),%esi + movl 40(%esp),%edi + # getting encrypt flag from parameter 5 + + movl 56(%esp),%ecx + # get and push parameter 3 + + movl 48(%esp),%eax + pushl %eax + pushl %ebx + cmpl $0,%ecx + jz L000decrypt + andl $4294967288,%ebp + movl 8(%esp),%eax + movl 12(%esp),%ebx + jz L001encrypt_finish +L002encrypt_loop: + movl (%esi),%ecx + movl 4(%esi),%edx + xorl %ecx,%eax + xorl %edx,%ebx + bswap %eax + bswap %ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call L_BF_encrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + bswap %eax + bswap %ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz L002encrypt_loop +L001encrypt_finish: + movl 52(%esp),%ebp + andl $7,%ebp + jz L003finish + call L004PIC_point +L004PIC_point: + popl %edx + leal L005cbc_enc_jmp_table-L004PIC_point(%edx),%ecx + movl (%ecx,%ebp,4),%ebp + addl %edx,%ebp + xorl %ecx,%ecx + xorl %edx,%edx + jmp *%ebp +L006ej7: + movb 6(%esi),%dh + shll $8,%edx +L007ej6: + movb 5(%esi),%dh +L008ej5: + movb 4(%esi),%dl +L009ej4: + movl (%esi),%ecx + jmp L010ejend +L011ej3: + movb 2(%esi),%ch + shll $8,%ecx +L012ej2: + movb 1(%esi),%ch +L013ej1: + movb (%esi),%cl +L010ejend: + xorl %ecx,%eax + xorl %edx,%ebx + bswap %eax + bswap %ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call L_BF_encrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + bswap %eax + bswap %ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + jmp L003finish +L000decrypt: + andl $4294967288,%ebp + movl 16(%esp),%eax + movl 20(%esp),%ebx + jz L014decrypt_finish +L015decrypt_loop: + movl (%esi),%eax + movl 4(%esi),%ebx + bswap %eax + bswap %ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call L_BF_decrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + bswap %eax + bswap %ebx + movl 16(%esp),%ecx + movl 20(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx + movl %ecx,(%edi) + movl %edx,4(%edi) + movl %eax,16(%esp) + movl %ebx,20(%esp) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz L015decrypt_loop +L014decrypt_finish: + movl 52(%esp),%ebp + andl $7,%ebp + jz L003finish + movl (%esi),%eax + movl 4(%esi),%ebx + bswap %eax + bswap %ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call L_BF_decrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + bswap %eax + bswap %ebx + movl 16(%esp),%ecx + movl 20(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx +L016dj7: + rorl $16,%edx + movb %dl,6(%edi) + shrl $16,%edx +L017dj6: + movb %dh,5(%edi) +L018dj5: + movb %dl,4(%edi) +L019dj4: + movl %ecx,(%edi) + jmp L020djend +L021dj3: + rorl $16,%ecx + movb %cl,2(%edi) + shll $16,%ecx +L022dj2: + movb %ch,1(%esi) +L023dj1: + movb %cl,(%esi) +L020djend: + jmp L003finish +L003finish: + movl 60(%esp),%ecx + addl $24,%esp + movl %eax,(%ecx) + movl %ebx,4(%ecx) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 6,0x90 +L005cbc_enc_jmp_table: +.long 0 +.long L013ej1-L004PIC_point +.long L012ej2-L004PIC_point +.long L011ej3-L004PIC_point +.long L009ej4-L004PIC_point +.long L008ej5-L004PIC_point +.long L007ej6-L004PIC_point +.long L006ej7-L004PIC_point +.align 6,0x90 diff --git a/deps/openssl/asm/x86-macosx-gas/bn/x86-mont.s b/deps/openssl/asm/x86-macosx-gas/bn/x86-mont.s new file mode 100644 index 0000000000..48598cc62d --- /dev/null +++ b/deps/openssl/asm/x86-macosx-gas/bn/x86-mont.s @@ -0,0 +1,336 @@ +.file "../openssl/crypto/bn/asm/x86-mont.s" +.text +.globl _bn_mul_mont +.align 4 +_bn_mul_mont: +L_bn_mul_mont_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + xorl %eax,%eax + movl 40(%esp),%edi + cmpl $4,%edi + jl L000just_leave + leal 20(%esp),%esi + leal 24(%esp),%edx + movl %esp,%ebp + addl $2,%edi + negl %edi + leal -32(%esp,%edi,4),%esp + negl %edi + movl %esp,%eax + subl %edx,%eax + andl $2047,%eax + subl %eax,%esp + xorl %esp,%edx + andl $2048,%edx + xorl $2048,%edx + subl %edx,%esp + andl $-64,%esp + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl 16(%esi),%esi + movl (%esi),%esi + movl %eax,4(%esp) + movl %ebx,8(%esp) + movl %ecx,12(%esp) + movl %edx,16(%esp) + movl %esi,20(%esp) + leal -3(%edi),%ebx + movl %ebp,24(%esp) + movl 8(%esp),%esi + leal 1(%ebx),%ebp + movl 12(%esp),%edi + xorl %ecx,%ecx + movl %esi,%edx + andl $1,%ebp + subl %edi,%edx + leal 4(%edi,%ebx,4),%eax + orl %edx,%ebp + movl (%edi),%edi + jz L001bn_sqr_mont + movl %eax,28(%esp) + movl (%esi),%eax + xorl %edx,%edx +.align 4,0x90 +L002mull: + movl %edx,%ebp + mull %edi + addl %eax,%ebp + leal 1(%ecx),%ecx + adcl $0,%edx + movl (%esi,%ecx,4),%eax + cmpl %ebx,%ecx + movl %ebp,28(%esp,%ecx,4) + jl L002mull + movl %edx,%ebp + mull %edi + movl 20(%esp),%edi + addl %ebp,%eax + movl 16(%esp),%esi + adcl $0,%edx + imull 32(%esp),%edi + movl %eax,32(%esp,%ebx,4) + xorl %ecx,%ecx + movl %edx,36(%esp,%ebx,4) + movl %ecx,40(%esp,%ebx,4) + movl (%esi),%eax + mull %edi + addl 32(%esp),%eax + movl 4(%esi),%eax + adcl $0,%edx + incl %ecx + jmp L0032ndmadd +.align 4,0x90 +L0041stmadd: + movl %edx,%ebp + mull %edi + addl 32(%esp,%ecx,4),%ebp + leal 1(%ecx),%ecx + adcl $0,%edx + addl %eax,%ebp + movl (%esi,%ecx,4),%eax + adcl $0,%edx + cmpl %ebx,%ecx + movl %ebp,28(%esp,%ecx,4) + jl L0041stmadd + movl %edx,%ebp + mull %edi + addl 32(%esp,%ebx,4),%eax + movl 20(%esp),%edi + adcl $0,%edx + movl 16(%esp),%esi + addl %eax,%ebp + adcl $0,%edx + imull 32(%esp),%edi + xorl %ecx,%ecx + addl 36(%esp,%ebx,4),%edx + movl %ebp,32(%esp,%ebx,4) + adcl $0,%ecx + movl (%esi),%eax + movl %edx,36(%esp,%ebx,4) + movl %ecx,40(%esp,%ebx,4) + mull %edi + addl 32(%esp),%eax + movl 4(%esi),%eax + adcl $0,%edx + movl $1,%ecx +.align 4,0x90 +L0032ndmadd: + movl %edx,%ebp + mull %edi + addl 32(%esp,%ecx,4),%ebp + leal 1(%ecx),%ecx + adcl $0,%edx + addl %eax,%ebp + movl (%esi,%ecx,4),%eax + adcl $0,%edx + cmpl %ebx,%ecx + movl %ebp,24(%esp,%ecx,4) + jl L0032ndmadd + movl %edx,%ebp + mull %edi + addl 32(%esp,%ebx,4),%ebp + adcl $0,%edx + addl %eax,%ebp + adcl $0,%edx + movl %ebp,28(%esp,%ebx,4) + xorl %eax,%eax + movl 12(%esp),%ecx + addl 36(%esp,%ebx,4),%edx + adcl 40(%esp,%ebx,4),%eax + leal 4(%ecx),%ecx + movl %edx,32(%esp,%ebx,4) + cmpl 28(%esp),%ecx + movl %eax,36(%esp,%ebx,4) + je L005common_tail + movl (%ecx),%edi + movl 8(%esp),%esi + movl %ecx,12(%esp) + xorl %ecx,%ecx + xorl %edx,%edx + movl (%esi),%eax + jmp L0041stmadd +.align 4,0x90 +L001bn_sqr_mont: + movl %ebx,(%esp) + movl %ecx,12(%esp) + movl %edi,%eax + mull %edi + movl %eax,32(%esp) + movl %edx,%ebx + shrl $1,%edx + andl $1,%ebx + incl %ecx +.align 4,0x90 +L006sqr: + movl (%esi,%ecx,4),%eax + movl %edx,%ebp + mull %edi + addl %ebp,%eax + leal 1(%ecx),%ecx + adcl $0,%edx + leal (%ebx,%eax,2),%ebp + shrl $31,%eax + cmpl (%esp),%ecx + movl %eax,%ebx + movl %ebp,28(%esp,%ecx,4) + jl L006sqr + movl (%esi,%ecx,4),%eax + movl %edx,%ebp + mull %edi + addl %ebp,%eax + movl 20(%esp),%edi + adcl $0,%edx + movl 16(%esp),%esi + leal (%ebx,%eax,2),%ebp + imull 32(%esp),%edi + shrl $31,%eax + movl %ebp,32(%esp,%ecx,4) + leal (%eax,%edx,2),%ebp + movl (%esi),%eax + shrl $31,%edx + movl %ebp,36(%esp,%ecx,4) + movl %edx,40(%esp,%ecx,4) + mull %edi + addl 32(%esp),%eax + movl %ecx,%ebx + adcl $0,%edx + movl 4(%esi),%eax + movl $1,%ecx +.align 4,0x90 +L0073rdmadd: + movl %edx,%ebp + mull %edi + addl 32(%esp,%ecx,4),%ebp + adcl $0,%edx + addl %eax,%ebp + movl 4(%esi,%ecx,4),%eax + adcl $0,%edx + movl %ebp,28(%esp,%ecx,4) + movl %edx,%ebp + mull %edi + addl 36(%esp,%ecx,4),%ebp + leal 2(%ecx),%ecx + adcl $0,%edx + addl %eax,%ebp + movl (%esi,%ecx,4),%eax + adcl $0,%edx + cmpl %ebx,%ecx + movl %ebp,24(%esp,%ecx,4) + jl L0073rdmadd + movl %edx,%ebp + mull %edi + addl 32(%esp,%ebx,4),%ebp + adcl $0,%edx + addl %eax,%ebp + adcl $0,%edx + movl %ebp,28(%esp,%ebx,4) + movl 12(%esp),%ecx + xorl %eax,%eax + movl 8(%esp),%esi + addl 36(%esp,%ebx,4),%edx + adcl 40(%esp,%ebx,4),%eax + movl %edx,32(%esp,%ebx,4) + cmpl %ebx,%ecx + movl %eax,36(%esp,%ebx,4) + je L005common_tail + movl 4(%esi,%ecx,4),%edi + leal 1(%ecx),%ecx + movl %edi,%eax + movl %ecx,12(%esp) + mull %edi + addl 32(%esp,%ecx,4),%eax + adcl $0,%edx + movl %eax,32(%esp,%ecx,4) + xorl %ebp,%ebp + cmpl %ebx,%ecx + leal 1(%ecx),%ecx + je L008sqrlast + movl %edx,%ebx + shrl $1,%edx + andl $1,%ebx +.align 4,0x90 +L009sqradd: + movl (%esi,%ecx,4),%eax + movl %edx,%ebp + mull %edi + addl %ebp,%eax + leal (%eax,%eax,1),%ebp + adcl $0,%edx + shrl $31,%eax + addl 32(%esp,%ecx,4),%ebp + leal 1(%ecx),%ecx + adcl $0,%eax + addl %ebx,%ebp + adcl $0,%eax + cmpl (%esp),%ecx + movl %ebp,28(%esp,%ecx,4) + movl %eax,%ebx + jle L009sqradd + movl %edx,%ebp + addl %edx,%edx + shrl $31,%ebp + addl %ebx,%edx + adcl $0,%ebp +L008sqrlast: + movl 20(%esp),%edi + movl 16(%esp),%esi + imull 32(%esp),%edi + addl 32(%esp,%ecx,4),%edx + movl (%esi),%eax + adcl $0,%ebp + movl %edx,32(%esp,%ecx,4) + movl %ebp,36(%esp,%ecx,4) + mull %edi + addl 32(%esp),%eax + leal -1(%ecx),%ebx + adcl $0,%edx + movl $1,%ecx + movl 4(%esi),%eax + jmp L0073rdmadd +.align 4,0x90 +L005common_tail: + movl 16(%esp),%ebp + movl 4(%esp),%edi + leal 32(%esp),%esi + movl (%esi),%eax + movl %ebx,%ecx + xorl %edx,%edx +.align 4,0x90 +L010sub: + sbbl (%ebp,%edx,4),%eax + movl %eax,(%edi,%edx,4) + decl %ecx + movl 4(%esi,%edx,4),%eax + leal 1(%edx),%edx + jge L010sub + sbbl $0,%eax + andl %eax,%esi + notl %eax + movl %edi,%ebp + andl %eax,%ebp + orl %ebp,%esi +.align 4,0x90 +L011copy: + movl (%esi,%ebx,4),%eax + movl %eax,(%edi,%ebx,4) + movl %ecx,32(%esp,%ebx,4) + decl %ebx + jge L011copy + movl 24(%esp),%esp + movl $1,%eax +L000just_leave: + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105 +.byte 112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56 +.byte 54,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 +.byte 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 +.byte 111,114,103,62,0 diff --git a/deps/openssl/asm/x86-macosx-gas/bn/x86.s b/deps/openssl/asm/x86-macosx-gas/bn/x86.s new file mode 100644 index 0000000000..eb975d247b --- /dev/null +++ b/deps/openssl/asm/x86-macosx-gas/bn/x86.s @@ -0,0 +1,2385 @@ +.file "../openssl/crypto/bn/asm/x86.s" +.text +.globl _bn_mul_add_words +.align 4 +_bn_mul_add_words: +L_bn_mul_add_words_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + + xorl %esi,%esi + movl 20(%esp),%edi + movl 28(%esp),%ecx + movl 24(%esp),%ebx + andl $4294967288,%ecx + movl 32(%esp),%ebp + pushl %ecx + jz L000maw_finish +L001maw_loop: + movl %ecx,(%esp) + # Round 0 + + movl (%ebx),%eax + mull %ebp + addl %esi,%eax + movl (%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,(%edi) + movl %edx,%esi + # Round 4 + + movl 4(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 4(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,4(%edi) + movl %edx,%esi + # Round 8 + + movl 8(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 8(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,8(%edi) + movl %edx,%esi + # Round 12 + + movl 12(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 12(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,12(%edi) + movl %edx,%esi + # Round 16 + + movl 16(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 16(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,16(%edi) + movl %edx,%esi + # Round 20 + + movl 20(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 20(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,20(%edi) + movl %edx,%esi + # Round 24 + + movl 24(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 24(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,24(%edi) + movl %edx,%esi + # Round 28 + + movl 28(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 28(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,28(%edi) + movl %edx,%esi + + movl (%esp),%ecx + addl $32,%ebx + addl $32,%edi + subl $8,%ecx + jnz L001maw_loop +L000maw_finish: + movl 32(%esp),%ecx + andl $7,%ecx + jnz L002maw_finish2 + jmp L003maw_end +L002maw_finish2: + # Tail Round 0 + + movl (%ebx),%eax + mull %ebp + addl %esi,%eax + movl (%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + decl %ecx + movl %eax,(%edi) + movl %edx,%esi + jz L003maw_end + # Tail Round 1 + + movl 4(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 4(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + decl %ecx + movl %eax,4(%edi) + movl %edx,%esi + jz L003maw_end + # Tail Round 2 + + movl 8(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 8(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + decl %ecx + movl %eax,8(%edi) + movl %edx,%esi + jz L003maw_end + # Tail Round 3 + + movl 12(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 12(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + decl %ecx + movl %eax,12(%edi) + movl %edx,%esi + jz L003maw_end + # Tail Round 4 + + movl 16(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 16(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + decl %ecx + movl %eax,16(%edi) + movl %edx,%esi + jz L003maw_end + # Tail Round 5 + + movl 20(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 20(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + decl %ecx + movl %eax,20(%edi) + movl %edx,%esi + jz L003maw_end + # Tail Round 6 + + movl 24(%ebx),%eax + mull %ebp + addl %esi,%eax + movl 24(%edi),%esi + adcl $0,%edx + addl %esi,%eax + adcl $0,%edx + movl %eax,24(%edi) + movl %edx,%esi +L003maw_end: + movl %esi,%eax + popl %ecx + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _bn_mul_words +.align 4 +_bn_mul_words: +L_bn_mul_words_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + + xorl %esi,%esi + movl 20(%esp),%edi + movl 24(%esp),%ebx + movl 28(%esp),%ebp + movl 32(%esp),%ecx + andl $4294967288,%ebp + jz L004mw_finish +L005mw_loop: + # Round 0 + + movl (%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,(%edi) + movl %edx,%esi + # Round 4 + + movl 4(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,4(%edi) + movl %edx,%esi + # Round 8 + + movl 8(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,8(%edi) + movl %edx,%esi + # Round 12 + + movl 12(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,12(%edi) + movl %edx,%esi + # Round 16 + + movl 16(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,16(%edi) + movl %edx,%esi + # Round 20 + + movl 20(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,20(%edi) + movl %edx,%esi + # Round 24 + + movl 24(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,24(%edi) + movl %edx,%esi + # Round 28 + + movl 28(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,28(%edi) + movl %edx,%esi + + addl $32,%ebx + addl $32,%edi + subl $8,%ebp + jz L004mw_finish + jmp L005mw_loop +L004mw_finish: + movl 28(%esp),%ebp + andl $7,%ebp + jnz L006mw_finish2 + jmp L007mw_end +L006mw_finish2: + # Tail Round 0 + + movl (%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,(%edi) + movl %edx,%esi + decl %ebp + jz L007mw_end + # Tail Round 1 + + movl 4(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,4(%edi) + movl %edx,%esi + decl %ebp + jz L007mw_end + # Tail Round 2 + + movl 8(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,8(%edi) + movl %edx,%esi + decl %ebp + jz L007mw_end + # Tail Round 3 + + movl 12(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,12(%edi) + movl %edx,%esi + decl %ebp + jz L007mw_end + # Tail Round 4 + + movl 16(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,16(%edi) + movl %edx,%esi + decl %ebp + jz L007mw_end + # Tail Round 5 + + movl 20(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,20(%edi) + movl %edx,%esi + decl %ebp + jz L007mw_end + # Tail Round 6 + + movl 24(%ebx),%eax + mull %ecx + addl %esi,%eax + adcl $0,%edx + movl %eax,24(%edi) + movl %edx,%esi +L007mw_end: + movl %esi,%eax + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _bn_sqr_words +.align 4 +_bn_sqr_words: +L_bn_sqr_words_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + + movl 20(%esp),%esi + movl 24(%esp),%edi + movl 28(%esp),%ebx + andl $4294967288,%ebx + jz L008sw_finish +L009sw_loop: + # Round 0 + + movl (%edi),%eax + mull %eax + movl %eax,(%esi) + movl %edx,4(%esi) + # Round 4 + + movl 4(%edi),%eax + mull %eax + movl %eax,8(%esi) + movl %edx,12(%esi) + # Round 8 + + movl 8(%edi),%eax + mull %eax + movl %eax,16(%esi) + movl %edx,20(%esi) + # Round 12 + + movl 12(%edi),%eax + mull %eax + movl %eax,24(%esi) + movl %edx,28(%esi) + # Round 16 + + movl 16(%edi),%eax + mull %eax + movl %eax,32(%esi) + movl %edx,36(%esi) + # Round 20 + + movl 20(%edi),%eax + mull %eax + movl %eax,40(%esi) + movl %edx,44(%esi) + # Round 24 + + movl 24(%edi),%eax + mull %eax + movl %eax,48(%esi) + movl %edx,52(%esi) + # Round 28 + + movl 28(%edi),%eax + mull %eax + movl %eax,56(%esi) + movl %edx,60(%esi) + + addl $32,%edi + addl $64,%esi + subl $8,%ebx + jnz L009sw_loop +L008sw_finish: + movl 28(%esp),%ebx + andl $7,%ebx + jz L010sw_end + # Tail Round 0 + + movl (%edi),%eax + mull %eax + movl %eax,(%esi) + decl %ebx + movl %edx,4(%esi) + jz L010sw_end + # Tail Round 1 + + movl 4(%edi),%eax + mull %eax + movl %eax,8(%esi) + decl %ebx + movl %edx,12(%esi) + jz L010sw_end + # Tail Round 2 + + movl 8(%edi),%eax + mull %eax + movl %eax,16(%esi) + decl %ebx + movl %edx,20(%esi) + jz L010sw_end + # Tail Round 3 + + movl 12(%edi),%eax + mull %eax + movl %eax,24(%esi) + decl %ebx + movl %edx,28(%esi) + jz L010sw_end + # Tail Round 4 + + movl 16(%edi),%eax + mull %eax + movl %eax,32(%esi) + decl %ebx + movl %edx,36(%esi) + jz L010sw_end + # Tail Round 5 + + movl 20(%edi),%eax + mull %eax + movl %eax,40(%esi) + decl %ebx + movl %edx,44(%esi) + jz L010sw_end + # Tail Round 6 + + movl 24(%edi),%eax + mull %eax + movl %eax,48(%esi) + movl %edx,52(%esi) +L010sw_end: + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _bn_div_words +.align 4 +_bn_div_words: +L_bn_div_words_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%edx + movl 24(%esp),%eax + movl 28(%esp),%ebx + divl %ebx + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _bn_add_words +.align 4 +_bn_add_words: +L_bn_add_words_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + + movl 20(%esp),%ebx + movl 24(%esp),%esi + movl 28(%esp),%edi + movl 32(%esp),%ebp + xorl %eax,%eax + andl $4294967288,%ebp + jz L011aw_finish +L012aw_loop: + # Round 0 + + movl (%esi),%ecx + movl (%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,(%ebx) + # Round 1 + + movl 4(%esi),%ecx + movl 4(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,4(%ebx) + # Round 2 + + movl 8(%esi),%ecx + movl 8(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,8(%ebx) + # Round 3 + + movl 12(%esi),%ecx + movl 12(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,12(%ebx) + # Round 4 + + movl 16(%esi),%ecx + movl 16(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,16(%ebx) + # Round 5 + + movl 20(%esi),%ecx + movl 20(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,20(%ebx) + # Round 6 + + movl 24(%esi),%ecx + movl 24(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,24(%ebx) + # Round 7 + + movl 28(%esi),%ecx + movl 28(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,28(%ebx) + + addl $32,%esi + addl $32,%edi + addl $32,%ebx + subl $8,%ebp + jnz L012aw_loop +L011aw_finish: + movl 32(%esp),%ebp + andl $7,%ebp + jz L013aw_end + # Tail Round 0 + + movl (%esi),%ecx + movl (%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,(%ebx) + jz L013aw_end + # Tail Round 1 + + movl 4(%esi),%ecx + movl 4(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,4(%ebx) + jz L013aw_end + # Tail Round 2 + + movl 8(%esi),%ecx + movl 8(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,8(%ebx) + jz L013aw_end + # Tail Round 3 + + movl 12(%esi),%ecx + movl 12(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,12(%ebx) + jz L013aw_end + # Tail Round 4 + + movl 16(%esi),%ecx + movl 16(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,16(%ebx) + jz L013aw_end + # Tail Round 5 + + movl 20(%esi),%ecx + movl 20(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,20(%ebx) + jz L013aw_end + # Tail Round 6 + + movl 24(%esi),%ecx + movl 24(%edi),%edx + addl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + addl %edx,%ecx + adcl $0,%eax + movl %ecx,24(%ebx) +L013aw_end: + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _bn_sub_words +.align 4 +_bn_sub_words: +L_bn_sub_words_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + + movl 20(%esp),%ebx + movl 24(%esp),%esi + movl 28(%esp),%edi + movl 32(%esp),%ebp + xorl %eax,%eax + andl $4294967288,%ebp + jz L014aw_finish +L015aw_loop: + # Round 0 + + movl (%esi),%ecx + movl (%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,(%ebx) + # Round 1 + + movl 4(%esi),%ecx + movl 4(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,4(%ebx) + # Round 2 + + movl 8(%esi),%ecx + movl 8(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,8(%ebx) + # Round 3 + + movl 12(%esi),%ecx + movl 12(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,12(%ebx) + # Round 4 + + movl 16(%esi),%ecx + movl 16(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,16(%ebx) + # Round 5 + + movl 20(%esi),%ecx + movl 20(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,20(%ebx) + # Round 6 + + movl 24(%esi),%ecx + movl 24(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,24(%ebx) + # Round 7 + + movl 28(%esi),%ecx + movl 28(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,28(%ebx) + + addl $32,%esi + addl $32,%edi + addl $32,%ebx + subl $8,%ebp + jnz L015aw_loop +L014aw_finish: + movl 32(%esp),%ebp + andl $7,%ebp + jz L016aw_end + # Tail Round 0 + + movl (%esi),%ecx + movl (%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,(%ebx) + jz L016aw_end + # Tail Round 1 + + movl 4(%esi),%ecx + movl 4(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,4(%ebx) + jz L016aw_end + # Tail Round 2 + + movl 8(%esi),%ecx + movl 8(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,8(%ebx) + jz L016aw_end + # Tail Round 3 + + movl 12(%esi),%ecx + movl 12(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,12(%ebx) + jz L016aw_end + # Tail Round 4 + + movl 16(%esi),%ecx + movl 16(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,16(%ebx) + jz L016aw_end + # Tail Round 5 + + movl 20(%esi),%ecx + movl 20(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + decl %ebp + movl %ecx,20(%ebx) + jz L016aw_end + # Tail Round 6 + + movl 24(%esi),%ecx + movl 24(%edi),%edx + subl %eax,%ecx + movl $0,%eax + adcl %eax,%eax + subl %edx,%ecx + adcl $0,%eax + movl %ecx,24(%ebx) +L016aw_end: + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _bn_mul_comba8 +.align 4 +_bn_mul_comba8: +L_bn_mul_comba8_begin: + pushl %esi + movl 12(%esp),%esi + pushl %edi + movl 20(%esp),%edi + pushl %ebp + pushl %ebx + xorl %ebx,%ebx + movl (%esi),%eax + xorl %ecx,%ecx + movl (%edi),%edx + # ################## Calculate word 0 + + xorl %ebp,%ebp + # mul a[0]*b[0] + + mull %edx + addl %eax,%ebx + movl 20(%esp),%eax + adcl %edx,%ecx + movl (%edi),%edx + adcl $0,%ebp + movl %ebx,(%eax) + movl 4(%esi),%eax + # saved r[0] + + # ################## Calculate word 1 + + xorl %ebx,%ebx + # mul a[1]*b[0] + + mull %edx + addl %eax,%ecx + movl (%esi),%eax + adcl %edx,%ebp + movl 4(%edi),%edx + adcl $0,%ebx + # mul a[0]*b[1] + + mull %edx + addl %eax,%ecx + movl 20(%esp),%eax + adcl %edx,%ebp + movl (%edi),%edx + adcl $0,%ebx + movl %ecx,4(%eax) + movl 8(%esi),%eax + # saved r[1] + + # ################## Calculate word 2 + + xorl %ecx,%ecx + # mul a[2]*b[0] + + mull %edx + addl %eax,%ebp + movl 4(%esi),%eax + adcl %edx,%ebx + movl 4(%edi),%edx + adcl $0,%ecx + # mul a[1]*b[1] + + mull %edx + addl %eax,%ebp + movl (%esi),%eax + adcl %edx,%ebx + movl 8(%edi),%edx + adcl $0,%ecx + # mul a[0]*b[2] + + mull %edx + addl %eax,%ebp + movl 20(%esp),%eax + adcl %edx,%ebx + movl (%edi),%edx + adcl $0,%ecx + movl %ebp,8(%eax) + movl 12(%esi),%eax + # saved r[2] + + # ################## Calculate word 3 + + xorl %ebp,%ebp + # mul a[3]*b[0] + + mull %edx + addl %eax,%ebx + movl 8(%esi),%eax + adcl %edx,%ecx + movl 4(%edi),%edx + adcl $0,%ebp + # mul a[2]*b[1] + + mull %edx + addl %eax,%ebx + movl 4(%esi),%eax + adcl %edx,%ecx + movl 8(%edi),%edx + adcl $0,%ebp + # mul a[1]*b[2] + + mull %edx + addl %eax,%ebx + movl (%esi),%eax + adcl %edx,%ecx + movl 12(%edi),%edx + adcl $0,%ebp + # mul a[0]*b[3] + + mull %edx + addl %eax,%ebx + movl 20(%esp),%eax + adcl %edx,%ecx + movl (%edi),%edx + adcl $0,%ebp + movl %ebx,12(%eax) + movl 16(%esi),%eax + # saved r[3] + + # ################## Calculate word 4 + + xorl %ebx,%ebx + # mul a[4]*b[0] + + mull %edx + addl %eax,%ecx + movl 12(%esi),%eax + adcl %edx,%ebp + movl 4(%edi),%edx + adcl $0,%ebx + # mul a[3]*b[1] + + mull %edx + addl %eax,%ecx + movl 8(%esi),%eax + adcl %edx,%ebp + movl 8(%edi),%edx + adcl $0,%ebx + # mul a[2]*b[2] + + mull %edx + addl %eax,%ecx + movl 4(%esi),%eax + adcl %edx,%ebp + movl 12(%edi),%edx + adcl $0,%ebx + # mul a[1]*b[3] + + mull %edx + addl %eax,%ecx + movl (%esi),%eax + adcl %edx,%ebp + movl 16(%edi),%edx + adcl $0,%ebx + # mul a[0]*b[4] + + mull %edx + addl %eax,%ecx + movl 20(%esp),%eax + adcl %edx,%ebp + movl (%edi),%edx + adcl $0,%ebx + movl %ecx,16(%eax) + movl 20(%esi),%eax + # saved r[4] + + # ################## Calculate word 5 + + xorl %ecx,%ecx + # mul a[5]*b[0] + + mull %edx + addl %eax,%ebp + movl 16(%esi),%eax + adcl %edx,%ebx + movl 4(%edi),%edx + adcl $0,%ecx + # mul a[4]*b[1] + + mull %edx + addl %eax,%ebp + movl 12(%esi),%eax + adcl %edx,%ebx + movl 8(%edi),%edx + adcl $0,%ecx + # mul a[3]*b[2] + + mull %edx + addl %eax,%ebp + movl 8(%esi),%eax + adcl %edx,%ebx + movl 12(%edi),%edx + adcl $0,%ecx + # mul a[2]*b[3] + + mull %edx + addl %eax,%ebp + movl 4(%esi),%eax + adcl %edx,%ebx + movl 16(%edi),%edx + adcl $0,%ecx + # mul a[1]*b[4] + + mull %edx + addl %eax,%ebp + movl (%esi),%eax + adcl %edx,%ebx + movl 20(%edi),%edx + adcl $0,%ecx + # mul a[0]*b[5] + + mull %edx + addl %eax,%ebp + movl 20(%esp),%eax + adcl %edx,%ebx + movl (%edi),%edx + adcl $0,%ecx + movl %ebp,20(%eax) + movl 24(%esi),%eax + # saved r[5] + + # ################## Calculate word 6 + + xorl %ebp,%ebp + # mul a[6]*b[0] + + mull %edx + addl %eax,%ebx + movl 20(%esi),%eax + adcl %edx,%ecx + movl 4(%edi),%edx + adcl $0,%ebp + # mul a[5]*b[1] + + mull %edx + addl %eax,%ebx + movl 16(%esi),%eax + adcl %edx,%ecx + movl 8(%edi),%edx + adcl $0,%ebp + # mul a[4]*b[2] + + mull %edx + addl %eax,%ebx + movl 12(%esi),%eax + adcl %edx,%ecx + movl 12(%edi),%edx + adcl $0,%ebp + # mul a[3]*b[3] + + mull %edx + addl %eax,%ebx + movl 8(%esi),%eax + adcl %edx,%ecx + movl 16(%edi),%edx + adcl $0,%ebp + # mul a[2]*b[4] + + mull %edx + addl %eax,%ebx + movl 4(%esi),%eax + adcl %edx,%ecx + movl 20(%edi),%edx + adcl $0,%ebp + # mul a[1]*b[5] + + mull %edx + addl %eax,%ebx + movl (%esi),%eax + adcl %edx,%ecx + movl 24(%edi),%edx + adcl $0,%ebp + # mul a[0]*b[6] + + mull %edx + addl %eax,%ebx + movl 20(%esp),%eax + adcl %edx,%ecx + movl (%edi),%edx + adcl $0,%ebp + movl %ebx,24(%eax) + movl 28(%esi),%eax + # saved r[6] + + # ################## Calculate word 7 + + xorl %ebx,%ebx + # mul a[7]*b[0] + + mull %edx + addl %eax,%ecx + movl 24(%esi),%eax + adcl %edx,%ebp + movl 4(%edi),%edx + adcl $0,%ebx + # mul a[6]*b[1] + + mull %edx + addl %eax,%ecx + movl 20(%esi),%eax + adcl %edx,%ebp + movl 8(%edi),%edx + adcl $0,%ebx + # mul a[5]*b[2] + + mull %edx + addl %eax,%ecx + movl 16(%esi),%eax + adcl %edx,%ebp + movl 12(%edi),%edx + adcl $0,%ebx + # mul a[4]*b[3] + + mull %edx + addl %eax,%ecx + movl 12(%esi),%eax + adcl %edx,%ebp + movl 16(%edi),%edx + adcl $0,%ebx + # mul a[3]*b[4] + + mull %edx + addl %eax,%ecx + movl 8(%esi),%eax + adcl %edx,%ebp + movl 20(%edi),%edx + adcl $0,%ebx + # mul a[2]*b[5] + + mull %edx + addl %eax,%ecx + movl 4(%esi),%eax + adcl %edx,%ebp + movl 24(%edi),%edx + adcl $0,%ebx + # mul a[1]*b[6] + + mull %edx + addl %eax,%ecx + movl (%esi),%eax + adcl %edx,%ebp + movl 28(%edi),%edx + adcl $0,%ebx + # mul a[0]*b[7] + + mull %edx + addl %eax,%ecx + movl 20(%esp),%eax + adcl %edx,%ebp + movl 4(%edi),%edx + adcl $0,%ebx + movl %ecx,28(%eax) + movl 28(%esi),%eax + # saved r[7] + + # ################## Calculate word 8 + + xorl %ecx,%ecx + # mul a[7]*b[1] + + mull %edx + addl %eax,%ebp + movl 24(%esi),%eax + adcl %edx,%ebx + movl 8(%edi),%edx + adcl $0,%ecx + # mul a[6]*b[2] + + mull %edx + addl %eax,%ebp + movl 20(%esi),%eax + adcl %edx,%ebx + movl 12(%edi),%edx + adcl $0,%ecx + # mul a[5]*b[3] + + mull %edx + addl %eax,%ebp + movl 16(%esi),%eax + adcl %edx,%ebx + movl 16(%edi),%edx + adcl $0,%ecx + # mul a[4]*b[4] + + mull %edx + addl %eax,%ebp + movl 12(%esi),%eax + adcl %edx,%ebx + movl 20(%edi),%edx + adcl $0,%ecx + # mul a[3]*b[5] + + mull %edx + addl %eax,%ebp + movl 8(%esi),%eax + adcl %edx,%ebx + movl 24(%edi),%edx + adcl $0,%ecx + # mul a[2]*b[6] + + mull %edx + addl %eax,%ebp + movl 4(%esi),%eax + adcl %edx,%ebx + movl 28(%edi),%edx + adcl $0,%ecx + # mul a[1]*b[7] + + mull %edx + addl %eax,%ebp + movl 20(%esp),%eax + adcl %edx,%ebx + movl 8(%edi),%edx + adcl $0,%ecx + movl %ebp,32(%eax) + movl 28(%esi),%eax + # saved r[8] + + # ################## Calculate word 9 + + xorl %ebp,%ebp + # mul a[7]*b[2] + + mull %edx + addl %eax,%ebx + movl 24(%esi),%eax + adcl %edx,%ecx + movl 12(%edi),%edx + adcl $0,%ebp + # mul a[6]*b[3] + + mull %edx + addl %eax,%ebx + movl 20(%esi),%eax + adcl %edx,%ecx + movl 16(%edi),%edx + adcl $0,%ebp + # mul a[5]*b[4] + + mull %edx + addl %eax,%ebx + movl 16(%esi),%eax + adcl %edx,%ecx + movl 20(%edi),%edx + adcl $0,%ebp + # mul a[4]*b[5] + + mull %edx + addl %eax,%ebx + movl 12(%esi),%eax + adcl %edx,%ecx + movl 24(%edi),%edx + adcl $0,%ebp + # mul a[3]*b[6] + + mull %edx + addl %eax,%ebx + movl 8(%esi),%eax + adcl %edx,%ecx + movl 28(%edi),%edx + adcl $0,%ebp + # mul a[2]*b[7] + + mull %edx + addl %eax,%ebx + movl 20(%esp),%eax + adcl %edx,%ecx + movl 12(%edi),%edx + adcl $0,%ebp + movl %ebx,36(%eax) + movl 28(%esi),%eax + # saved r[9] + + # ################## Calculate word 10 + + xorl %ebx,%ebx + # mul a[7]*b[3] + + mull %edx + addl %eax,%ecx + movl 24(%esi),%eax + adcl %edx,%ebp + movl 16(%edi),%edx + adcl $0,%ebx + # mul a[6]*b[4] + + mull %edx + addl %eax,%ecx + movl 20(%esi),%eax + adcl %edx,%ebp + movl 20(%edi),%edx + adcl $0,%ebx + # mul a[5]*b[5] + + mull %edx + addl %eax,%ecx + movl 16(%esi),%eax + adcl %edx,%ebp + movl 24(%edi),%edx + adcl $0,%ebx + # mul a[4]*b[6] + + mull %edx + addl %eax,%ecx + movl 12(%esi),%eax + adcl %edx,%ebp + movl 28(%edi),%edx + adcl $0,%ebx + # mul a[3]*b[7] + + mull %edx + addl %eax,%ecx + movl 20(%esp),%eax + adcl %edx,%ebp + movl 16(%edi),%edx + adcl $0,%ebx + movl %ecx,40(%eax) + movl 28(%esi),%eax + # saved r[10] + + # ################## Calculate word 11 + + xorl %ecx,%ecx + # mul a[7]*b[4] + + mull %edx + addl %eax,%ebp + movl 24(%esi),%eax + adcl %edx,%ebx + movl 20(%edi),%edx + adcl $0,%ecx + # mul a[6]*b[5] + + mull %edx + addl %eax,%ebp + movl 20(%esi),%eax + adcl %edx,%ebx + movl 24(%edi),%edx + adcl $0,%ecx + # mul a[5]*b[6] + + mull %edx + addl %eax,%ebp + movl 16(%esi),%eax + adcl %edx,%ebx + movl 28(%edi),%edx + adcl $0,%ecx + # mul a[4]*b[7] + + mull %edx + addl %eax,%ebp + movl 20(%esp),%eax + adcl %edx,%ebx + movl 20(%edi),%edx + adcl $0,%ecx + movl %ebp,44(%eax) + movl 28(%esi),%eax + # saved r[11] + + # ################## Calculate word 12 + + xorl %ebp,%ebp + # mul a[7]*b[5] + + mull %edx + addl %eax,%ebx + movl 24(%esi),%eax + adcl %edx,%ecx + movl 24(%edi),%edx + adcl $0,%ebp + # mul a[6]*b[6] + + mull %edx + addl %eax,%ebx + movl 20(%esi),%eax + adcl %edx,%ecx + movl 28(%edi),%edx + adcl $0,%ebp + # mul a[5]*b[7] + + mull %edx + addl %eax,%ebx + movl 20(%esp),%eax + adcl %edx,%ecx + movl 24(%edi),%edx + adcl $0,%ebp + movl %ebx,48(%eax) + movl 28(%esi),%eax + # saved r[12] + + # ################## Calculate word 13 + + xorl %ebx,%ebx + # mul a[7]*b[6] + + mull %edx + addl %eax,%ecx + movl 24(%esi),%eax + adcl %edx,%ebp + movl 28(%edi),%edx + adcl $0,%ebx + # mul a[6]*b[7] + + mull %edx + addl %eax,%ecx + movl 20(%esp),%eax + adcl %edx,%ebp + movl 28(%edi),%edx + adcl $0,%ebx + movl %ecx,52(%eax) + movl 28(%esi),%eax + # saved r[13] + + # ################## Calculate word 14 + + xorl %ecx,%ecx + # mul a[7]*b[7] + + mull %edx + addl %eax,%ebp + movl 20(%esp),%eax + adcl %edx,%ebx + adcl $0,%ecx + movl %ebp,56(%eax) + # saved r[14] + + # save r[15] + + movl %ebx,60(%eax) + popl %ebx + popl %ebp + popl %edi + popl %esi + ret +.globl _bn_mul_comba4 +.align 4 +_bn_mul_comba4: +L_bn_mul_comba4_begin: + pushl %esi + movl 12(%esp),%esi + pushl %edi + movl 20(%esp),%edi + pushl %ebp + pushl %ebx + xorl %ebx,%ebx + movl (%esi),%eax + xorl %ecx,%ecx + movl (%edi),%edx + # ################## Calculate word 0 + + xorl %ebp,%ebp + # mul a[0]*b[0] + + mull %edx + addl %eax,%ebx + movl 20(%esp),%eax + adcl %edx,%ecx + movl (%edi),%edx + adcl $0,%ebp + movl %ebx,(%eax) + movl 4(%esi),%eax + # saved r[0] + + # ################## Calculate word 1 + + xorl %ebx,%ebx + # mul a[1]*b[0] + + mull %edx + addl %eax,%ecx + movl (%esi),%eax + adcl %edx,%ebp + movl 4(%edi),%edx + adcl $0,%ebx + # mul a[0]*b[1] + + mull %edx + addl %eax,%ecx + movl 20(%esp),%eax + adcl %edx,%ebp + movl (%edi),%edx + adcl $0,%ebx + movl %ecx,4(%eax) + movl 8(%esi),%eax + # saved r[1] + + # ################## Calculate word 2 + + xorl %ecx,%ecx + # mul a[2]*b[0] + + mull %edx + addl %eax,%ebp + movl 4(%esi),%eax + adcl %edx,%ebx + movl 4(%edi),%edx + adcl $0,%ecx + # mul a[1]*b[1] + + mull %edx + addl %eax,%ebp + movl (%esi),%eax + adcl %edx,%ebx + movl 8(%edi),%edx + adcl $0,%ecx + # mul a[0]*b[2] + + mull %edx + addl %eax,%ebp + movl 20(%esp),%eax + adcl %edx,%ebx + movl (%edi),%edx + adcl $0,%ecx + movl %ebp,8(%eax) + movl 12(%esi),%eax + # saved r[2] + + # ################## Calculate word 3 + + xorl %ebp,%ebp + # mul a[3]*b[0] + + mull %edx + addl %eax,%ebx + movl 8(%esi),%eax + adcl %edx,%ecx + movl 4(%edi),%edx + adcl $0,%ebp + # mul a[2]*b[1] + + mull %edx + addl %eax,%ebx + movl 4(%esi),%eax + adcl %edx,%ecx + movl 8(%edi),%edx + adcl $0,%ebp + # mul a[1]*b[2] + + mull %edx + addl %eax,%ebx + movl (%esi),%eax + adcl %edx,%ecx + movl 12(%edi),%edx + adcl $0,%ebp + # mul a[0]*b[3] + + mull %edx + addl %eax,%ebx + movl 20(%esp),%eax + adcl %edx,%ecx + movl 4(%edi),%edx + adcl $0,%ebp + movl %ebx,12(%eax) + movl 12(%esi),%eax + # saved r[3] + + # ################## Calculate word 4 + + xorl %ebx,%ebx + # mul a[3]*b[1] + + mull %edx + addl %eax,%ecx + movl 8(%esi),%eax + adcl %edx,%ebp + movl 8(%edi),%edx + adcl $0,%ebx + # mul a[2]*b[2] + + mull %edx + addl %eax,%ecx + movl 4(%esi),%eax + adcl %edx,%ebp + movl 12(%edi),%edx + adcl $0,%ebx + # mul a[1]*b[3] + + mull %edx + addl %eax,%ecx + movl 20(%esp),%eax + adcl %edx,%ebp + movl 8(%edi),%edx + adcl $0,%ebx + movl %ecx,16(%eax) + movl 12(%esi),%eax + # saved r[4] + + # ################## Calculate word 5 + + xorl %ecx,%ecx + # mul a[3]*b[2] + + mull %edx + addl %eax,%ebp + movl 8(%esi),%eax + adcl %edx,%ebx + movl 12(%edi),%edx + adcl $0,%ecx + # mul a[2]*b[3] + + mull %edx + addl %eax,%ebp + movl 20(%esp),%eax + adcl %edx,%ebx + movl 12(%edi),%edx + adcl $0,%ecx + movl %ebp,20(%eax) + movl 12(%esi),%eax + # saved r[5] + + # ################## Calculate word 6 + + xorl %ebp,%ebp + # mul a[3]*b[3] + + mull %edx + addl %eax,%ebx + movl 20(%esp),%eax + adcl %edx,%ecx + adcl $0,%ebp + movl %ebx,24(%eax) + # saved r[6] + + # save r[7] + + movl %ecx,28(%eax) + popl %ebx + popl %ebp + popl %edi + popl %esi + ret +.globl _bn_sqr_comba8 +.align 4 +_bn_sqr_comba8: +L_bn_sqr_comba8_begin: + pushl %esi + pushl %edi + pushl %ebp + pushl %ebx + movl 20(%esp),%edi + movl 24(%esp),%esi + xorl %ebx,%ebx + xorl %ecx,%ecx + movl (%esi),%eax + # ############### Calculate word 0 + + xorl %ebp,%ebp + # sqr a[0]*a[0] + + mull %eax + addl %eax,%ebx + adcl %edx,%ecx + movl (%esi),%edx + adcl $0,%ebp + movl %ebx,(%edi) + movl 4(%esi),%eax + # saved r[0] + + # ############### Calculate word 1 + + xorl %ebx,%ebx + # sqr a[1]*a[0] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 8(%esi),%eax + adcl $0,%ebx + movl %ecx,4(%edi) + movl (%esi),%edx + # saved r[1] + + # ############### Calculate word 2 + + xorl %ecx,%ecx + # sqr a[2]*a[0] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 4(%esi),%eax + adcl $0,%ecx + # sqr a[1]*a[1] + + mull %eax + addl %eax,%ebp + adcl %edx,%ebx + movl (%esi),%edx + adcl $0,%ecx + movl %ebp,8(%edi) + movl 12(%esi),%eax + # saved r[2] + + # ############### Calculate word 3 + + xorl %ebp,%ebp + # sqr a[3]*a[0] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 8(%esi),%eax + adcl $0,%ebp + movl 4(%esi),%edx + # sqr a[2]*a[1] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 16(%esi),%eax + adcl $0,%ebp + movl %ebx,12(%edi) + movl (%esi),%edx + # saved r[3] + + # ############### Calculate word 4 + + xorl %ebx,%ebx + # sqr a[4]*a[0] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 12(%esi),%eax + adcl $0,%ebx + movl 4(%esi),%edx + # sqr a[3]*a[1] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 8(%esi),%eax + adcl $0,%ebx + # sqr a[2]*a[2] + + mull %eax + addl %eax,%ecx + adcl %edx,%ebp + movl (%esi),%edx + adcl $0,%ebx + movl %ecx,16(%edi) + movl 20(%esi),%eax + # saved r[4] + + # ############### Calculate word 5 + + xorl %ecx,%ecx + # sqr a[5]*a[0] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 16(%esi),%eax + adcl $0,%ecx + movl 4(%esi),%edx + # sqr a[4]*a[1] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 12(%esi),%eax + adcl $0,%ecx + movl 8(%esi),%edx + # sqr a[3]*a[2] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 24(%esi),%eax + adcl $0,%ecx + movl %ebp,20(%edi) + movl (%esi),%edx + # saved r[5] + + # ############### Calculate word 6 + + xorl %ebp,%ebp + # sqr a[6]*a[0] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 20(%esi),%eax + adcl $0,%ebp + movl 4(%esi),%edx + # sqr a[5]*a[1] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 16(%esi),%eax + adcl $0,%ebp + movl 8(%esi),%edx + # sqr a[4]*a[2] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 12(%esi),%eax + adcl $0,%ebp + # sqr a[3]*a[3] + + mull %eax + addl %eax,%ebx + adcl %edx,%ecx + movl (%esi),%edx + adcl $0,%ebp + movl %ebx,24(%edi) + movl 28(%esi),%eax + # saved r[6] + + # ############### Calculate word 7 + + xorl %ebx,%ebx + # sqr a[7]*a[0] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 24(%esi),%eax + adcl $0,%ebx + movl 4(%esi),%edx + # sqr a[6]*a[1] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 20(%esi),%eax + adcl $0,%ebx + movl 8(%esi),%edx + # sqr a[5]*a[2] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 16(%esi),%eax + adcl $0,%ebx + movl 12(%esi),%edx + # sqr a[4]*a[3] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 28(%esi),%eax + adcl $0,%ebx + movl %ecx,28(%edi) + movl 4(%esi),%edx + # saved r[7] + + # ############### Calculate word 8 + + xorl %ecx,%ecx + # sqr a[7]*a[1] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 24(%esi),%eax + adcl $0,%ecx + movl 8(%esi),%edx + # sqr a[6]*a[2] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 20(%esi),%eax + adcl $0,%ecx + movl 12(%esi),%edx + # sqr a[5]*a[3] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 16(%esi),%eax + adcl $0,%ecx + # sqr a[4]*a[4] + + mull %eax + addl %eax,%ebp + adcl %edx,%ebx + movl 8(%esi),%edx + adcl $0,%ecx + movl %ebp,32(%edi) + movl 28(%esi),%eax + # saved r[8] + + # ############### Calculate word 9 + + xorl %ebp,%ebp + # sqr a[7]*a[2] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 24(%esi),%eax + adcl $0,%ebp + movl 12(%esi),%edx + # sqr a[6]*a[3] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 20(%esi),%eax + adcl $0,%ebp + movl 16(%esi),%edx + # sqr a[5]*a[4] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 28(%esi),%eax + adcl $0,%ebp + movl %ebx,36(%edi) + movl 12(%esi),%edx + # saved r[9] + + # ############### Calculate word 10 + + xorl %ebx,%ebx + # sqr a[7]*a[3] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 24(%esi),%eax + adcl $0,%ebx + movl 16(%esi),%edx + # sqr a[6]*a[4] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 20(%esi),%eax + adcl $0,%ebx + # sqr a[5]*a[5] + + mull %eax + addl %eax,%ecx + adcl %edx,%ebp + movl 16(%esi),%edx + adcl $0,%ebx + movl %ecx,40(%edi) + movl 28(%esi),%eax + # saved r[10] + + # ############### Calculate word 11 + + xorl %ecx,%ecx + # sqr a[7]*a[4] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 24(%esi),%eax + adcl $0,%ecx + movl 20(%esi),%edx + # sqr a[6]*a[5] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 28(%esi),%eax + adcl $0,%ecx + movl %ebp,44(%edi) + movl 20(%esi),%edx + # saved r[11] + + # ############### Calculate word 12 + + xorl %ebp,%ebp + # sqr a[7]*a[5] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 24(%esi),%eax + adcl $0,%ebp + # sqr a[6]*a[6] + + mull %eax + addl %eax,%ebx + adcl %edx,%ecx + movl 24(%esi),%edx + adcl $0,%ebp + movl %ebx,48(%edi) + movl 28(%esi),%eax + # saved r[12] + + # ############### Calculate word 13 + + xorl %ebx,%ebx + # sqr a[7]*a[6] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 28(%esi),%eax + adcl $0,%ebx + movl %ecx,52(%edi) + # saved r[13] + + # ############### Calculate word 14 + + xorl %ecx,%ecx + # sqr a[7]*a[7] + + mull %eax + addl %eax,%ebp + adcl %edx,%ebx + adcl $0,%ecx + movl %ebp,56(%edi) + # saved r[14] + + movl %ebx,60(%edi) + popl %ebx + popl %ebp + popl %edi + popl %esi + ret +.globl _bn_sqr_comba4 +.align 4 +_bn_sqr_comba4: +L_bn_sqr_comba4_begin: + pushl %esi + pushl %edi + pushl %ebp + pushl %ebx + movl 20(%esp),%edi + movl 24(%esp),%esi + xorl %ebx,%ebx + xorl %ecx,%ecx + movl (%esi),%eax + # ############### Calculate word 0 + + xorl %ebp,%ebp + # sqr a[0]*a[0] + + mull %eax + addl %eax,%ebx + adcl %edx,%ecx + movl (%esi),%edx + adcl $0,%ebp + movl %ebx,(%edi) + movl 4(%esi),%eax + # saved r[0] + + # ############### Calculate word 1 + + xorl %ebx,%ebx + # sqr a[1]*a[0] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 8(%esi),%eax + adcl $0,%ebx + movl %ecx,4(%edi) + movl (%esi),%edx + # saved r[1] + + # ############### Calculate word 2 + + xorl %ecx,%ecx + # sqr a[2]*a[0] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 4(%esi),%eax + adcl $0,%ecx + # sqr a[1]*a[1] + + mull %eax + addl %eax,%ebp + adcl %edx,%ebx + movl (%esi),%edx + adcl $0,%ecx + movl %ebp,8(%edi) + movl 12(%esi),%eax + # saved r[2] + + # ############### Calculate word 3 + + xorl %ebp,%ebp + # sqr a[3]*a[0] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 8(%esi),%eax + adcl $0,%ebp + movl 4(%esi),%edx + # sqr a[2]*a[1] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebp + addl %eax,%ebx + adcl %edx,%ecx + movl 12(%esi),%eax + adcl $0,%ebp + movl %ebx,12(%edi) + movl 4(%esi),%edx + # saved r[3] + + # ############### Calculate word 4 + + xorl %ebx,%ebx + # sqr a[3]*a[1] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ebx + addl %eax,%ecx + adcl %edx,%ebp + movl 8(%esi),%eax + adcl $0,%ebx + # sqr a[2]*a[2] + + mull %eax + addl %eax,%ecx + adcl %edx,%ebp + movl 8(%esi),%edx + adcl $0,%ebx + movl %ecx,16(%edi) + movl 12(%esi),%eax + # saved r[4] + + # ############### Calculate word 5 + + xorl %ecx,%ecx + # sqr a[3]*a[2] + + mull %edx + addl %eax,%eax + adcl %edx,%edx + adcl $0,%ecx + addl %eax,%ebp + adcl %edx,%ebx + movl 12(%esi),%eax + adcl $0,%ecx + movl %ebp,20(%edi) + # saved r[5] + + # ############### Calculate word 6 + + xorl %ebp,%ebp + # sqr a[3]*a[3] + + mull %eax + addl %eax,%ebx + adcl %edx,%ecx + adcl $0,%ebp + movl %ebx,24(%edi) + # saved r[6] + + movl %ecx,28(%edi) + popl %ebx + popl %ebp + popl %edi + popl %esi + ret diff --git a/deps/openssl/asm/x86-macosx-gas/camellia/cmll-x86.s b/deps/openssl/asm/x86-macosx-gas/camellia/cmll-x86.s new file mode 100644 index 0000000000..4d61caa680 --- /dev/null +++ b/deps/openssl/asm/x86-macosx-gas/camellia/cmll-x86.s @@ -0,0 +1,2353 @@ +.file "cmll-586.s" +.text +.globl _Camellia_EncryptBlock_Rounds +.align 4 +_Camellia_EncryptBlock_Rounds: +L_Camellia_EncryptBlock_Rounds_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%eax + movl 24(%esp),%esi + movl 28(%esp),%edi + movl %esp,%ebx + subl $28,%esp + andl $-64,%esp + leal -127(%edi),%ecx + subl %esp,%ecx + negl %ecx + andl $960,%ecx + subl %ecx,%esp + addl $4,%esp + shll $6,%eax + leal (%edi,%eax,1),%eax + movl %ebx,20(%esp) + movl %eax,16(%esp) + call L000pic_point +L000pic_point: + popl %ebp + leal LCamellia_SBOX-L000pic_point(%ebp),%ebp + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + bswap %eax + movl 12(%esi),%edx + bswap %ebx + bswap %ecx + bswap %edx + call __x86_Camellia_encrypt + movl 20(%esp),%esp + bswap %eax + movl 32(%esp),%esi + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _Camellia_EncryptBlock +.align 4 +_Camellia_EncryptBlock: +L_Camellia_EncryptBlock_begin: + movl $128,%eax + subl 4(%esp),%eax + movl $3,%eax + adcl $0,%eax + movl %eax,4(%esp) + jmp L_Camellia_EncryptBlock_Rounds_begin +.globl _Camellia_encrypt +.align 4 +_Camellia_encrypt: +L_Camellia_encrypt_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%esi + movl 28(%esp),%edi + movl %esp,%ebx + subl $28,%esp + andl $-64,%esp + movl 272(%edi),%eax + leal -127(%edi),%ecx + subl %esp,%ecx + negl %ecx + andl $960,%ecx + subl %ecx,%esp + addl $4,%esp + shll $6,%eax + leal (%edi,%eax,1),%eax + movl %ebx,20(%esp) + movl %eax,16(%esp) + call L001pic_point +L001pic_point: + popl %ebp + leal LCamellia_SBOX-L001pic_point(%ebp),%ebp + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + bswap %eax + movl 12(%esi),%edx + bswap %ebx + bswap %ecx + bswap %edx + call __x86_Camellia_encrypt + movl 20(%esp),%esp + bswap %eax + movl 24(%esp),%esi + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 4 +__x86_Camellia_encrypt: + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl 16(%edi),%esi + movl %eax,4(%esp) + movl %ebx,8(%esp) + movl %ecx,12(%esp) + movl %edx,16(%esp) +.align 4,0x90 +L002loop: + xorl %esi,%eax + xorl 20(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 16(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 12(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl 24(%edi),%esi + xorl %ecx,%edx + movl %edx,16(%esp) + xorl %ebx,%ecx + movl %ecx,12(%esp) + xorl %esi,%ecx + xorl 28(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 8(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl 4(%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl 32(%edi),%esi + xorl %eax,%ebx + movl %ebx,8(%esp) + xorl %edx,%eax + movl %eax,4(%esp) + xorl %esi,%eax + xorl 36(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 16(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 12(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl 40(%edi),%esi + xorl %ecx,%edx + movl %edx,16(%esp) + xorl %ebx,%ecx + movl %ecx,12(%esp) + xorl %esi,%ecx + xorl 44(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 8(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl 4(%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl 48(%edi),%esi + xorl %eax,%ebx + movl %ebx,8(%esp) + xorl %edx,%eax + movl %eax,4(%esp) + xorl %esi,%eax + xorl 52(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 16(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 12(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl 56(%edi),%esi + xorl %ecx,%edx + movl %edx,16(%esp) + xorl %ebx,%ecx + movl %ecx,12(%esp) + xorl %esi,%ecx + xorl 60(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 8(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl 4(%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl 64(%edi),%esi + xorl %eax,%ebx + movl %ebx,8(%esp) + xorl %edx,%eax + movl %eax,4(%esp) + addl $64,%edi + cmpl 20(%esp),%edi + je L003done + andl %eax,%esi + movl 16(%esp),%edx + roll $1,%esi + movl %edx,%ecx + xorl %esi,%ebx + orl 12(%edi),%ecx + movl %ebx,8(%esp) + xorl 12(%esp),%ecx + movl 4(%edi),%esi + movl %ecx,12(%esp) + orl %ebx,%esi + andl 8(%edi),%ecx + xorl %esi,%eax + roll $1,%ecx + movl %eax,4(%esp) + xorl %ecx,%edx + movl 16(%edi),%esi + movl %edx,16(%esp) + jmp L002loop +.align 3,0x90 +L003done: + movl %eax,%ecx + movl %ebx,%edx + movl 12(%esp),%eax + movl 16(%esp),%ebx + xorl %esi,%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + ret +.globl _Camellia_DecryptBlock_Rounds +.align 4 +_Camellia_DecryptBlock_Rounds: +L_Camellia_DecryptBlock_Rounds_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%eax + movl 24(%esp),%esi + movl 28(%esp),%edi + movl %esp,%ebx + subl $28,%esp + andl $-64,%esp + leal -127(%edi),%ecx + subl %esp,%ecx + negl %ecx + andl $960,%ecx + subl %ecx,%esp + addl $4,%esp + shll $6,%eax + movl %edi,16(%esp) + leal (%edi,%eax,1),%edi + movl %ebx,20(%esp) + call L004pic_point +L004pic_point: + popl %ebp + leal LCamellia_SBOX-L004pic_point(%ebp),%ebp + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + bswap %eax + movl 12(%esi),%edx + bswap %ebx + bswap %ecx + bswap %edx + call __x86_Camellia_decrypt + movl 20(%esp),%esp + bswap %eax + movl 32(%esp),%esi + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _Camellia_DecryptBlock +.align 4 +_Camellia_DecryptBlock: +L_Camellia_DecryptBlock_begin: + movl $128,%eax + subl 4(%esp),%eax + movl $3,%eax + adcl $0,%eax + movl %eax,4(%esp) + jmp L_Camellia_DecryptBlock_Rounds_begin +.globl _Camellia_decrypt +.align 4 +_Camellia_decrypt: +L_Camellia_decrypt_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%esi + movl 28(%esp),%edi + movl %esp,%ebx + subl $28,%esp + andl $-64,%esp + movl 272(%edi),%eax + leal -127(%edi),%ecx + subl %esp,%ecx + negl %ecx + andl $960,%ecx + subl %ecx,%esp + addl $4,%esp + shll $6,%eax + movl %edi,16(%esp) + leal (%edi,%eax,1),%edi + movl %ebx,20(%esp) + call L005pic_point +L005pic_point: + popl %ebp + leal LCamellia_SBOX-L005pic_point(%ebp),%ebp + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + bswap %eax + movl 12(%esi),%edx + bswap %ebx + bswap %ecx + bswap %edx + call __x86_Camellia_decrypt + movl 20(%esp),%esp + bswap %eax + movl 24(%esp),%esi + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 4 +__x86_Camellia_decrypt: + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl -8(%edi),%esi + movl %eax,4(%esp) + movl %ebx,8(%esp) + movl %ecx,12(%esp) + movl %edx,16(%esp) +.align 4,0x90 +L006loop: + xorl %esi,%eax + xorl -4(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 16(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 12(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl -16(%edi),%esi + xorl %ecx,%edx + movl %edx,16(%esp) + xorl %ebx,%ecx + movl %ecx,12(%esp) + xorl %esi,%ecx + xorl -12(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 8(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl 4(%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl -24(%edi),%esi + xorl %eax,%ebx + movl %ebx,8(%esp) + xorl %edx,%eax + movl %eax,4(%esp) + xorl %esi,%eax + xorl -20(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 16(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 12(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl -32(%edi),%esi + xorl %ecx,%edx + movl %edx,16(%esp) + xorl %ebx,%ecx + movl %ecx,12(%esp) + xorl %esi,%ecx + xorl -28(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 8(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl 4(%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl -40(%edi),%esi + xorl %eax,%ebx + movl %ebx,8(%esp) + xorl %edx,%eax + movl %eax,4(%esp) + xorl %esi,%eax + xorl -36(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 16(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 12(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl -48(%edi),%esi + xorl %ecx,%edx + movl %edx,16(%esp) + xorl %ebx,%ecx + movl %ecx,12(%esp) + xorl %esi,%ecx + xorl -44(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 8(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl 4(%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl -56(%edi),%esi + xorl %eax,%ebx + movl %ebx,8(%esp) + xorl %edx,%eax + movl %eax,4(%esp) + subl $64,%edi + cmpl 20(%esp),%edi + je L007done + andl %eax,%esi + movl 16(%esp),%edx + roll $1,%esi + movl %edx,%ecx + xorl %esi,%ebx + orl 4(%edi),%ecx + movl %ebx,8(%esp) + xorl 12(%esp),%ecx + movl 12(%edi),%esi + movl %ecx,12(%esp) + orl %ebx,%esi + andl (%edi),%ecx + xorl %esi,%eax + roll $1,%ecx + movl %eax,4(%esp) + xorl %ecx,%edx + movl -8(%edi),%esi + movl %edx,16(%esp) + jmp L006loop +.align 3,0x90 +L007done: + movl %eax,%ecx + movl %ebx,%edx + movl 12(%esp),%eax + movl 16(%esp),%ebx + xorl %esi,%ecx + xorl 12(%edi),%edx + xorl (%edi),%eax + xorl 4(%edi),%ebx + ret +.globl _Camellia_Ekeygen +.align 4 +_Camellia_Ekeygen: +L_Camellia_Ekeygen_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + subl $16,%esp + movl 36(%esp),%ebp + movl 40(%esp),%esi + movl 44(%esp),%edi + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + cmpl $128,%ebp + je L0081st128 + movl 16(%esi),%eax + movl 20(%esi),%ebx + cmpl $192,%ebp + je L0091st192 + movl 24(%esi),%ecx + movl 28(%esi),%edx + jmp L0101st256 +.align 2,0x90 +L0091st192: + movl %eax,%ecx + movl %ebx,%edx + notl %ecx + notl %edx +.align 2,0x90 +L0101st256: + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,32(%edi) + movl %ebx,36(%edi) + movl %ecx,40(%edi) + movl %edx,44(%edi) + xorl (%edi),%eax + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx +.align 2,0x90 +L0081st128: + call L011pic_point +L011pic_point: + popl %ebp + leal LCamellia_SBOX-L011pic_point(%ebp),%ebp + leal LCamellia_SIGMA-LCamellia_SBOX(%ebp),%edi + movl (%edi),%esi + movl %eax,(%esp) + movl %ebx,4(%esp) + movl %ecx,8(%esp) + movl %edx,12(%esp) + xorl %esi,%eax + xorl 4(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 12(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 8(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl 8(%edi),%esi + xorl %ecx,%edx + movl %edx,12(%esp) + xorl %ebx,%ecx + movl %ecx,8(%esp) + xorl %esi,%ecx + xorl 12(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 4(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl (%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl 16(%edi),%esi + xorl %eax,%ebx + movl %ebx,4(%esp) + xorl %edx,%eax + movl %eax,(%esp) + movl 8(%esp),%ecx + movl 12(%esp),%edx + movl 44(%esp),%esi + xorl (%esi),%eax + xorl 4(%esi),%ebx + xorl 8(%esi),%ecx + xorl 12(%esi),%edx + movl 16(%edi),%esi + movl %eax,(%esp) + movl %ebx,4(%esp) + movl %ecx,8(%esp) + movl %edx,12(%esp) + xorl %esi,%eax + xorl 20(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 12(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 8(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl 24(%edi),%esi + xorl %ecx,%edx + movl %edx,12(%esp) + xorl %ebx,%ecx + movl %ecx,8(%esp) + xorl %esi,%ecx + xorl 28(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 4(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl (%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl 32(%edi),%esi + xorl %eax,%ebx + movl %ebx,4(%esp) + xorl %edx,%eax + movl %eax,(%esp) + movl 8(%esp),%ecx + movl 12(%esp),%edx + movl 36(%esp),%esi + cmpl $128,%esi + jne L0122nd256 + movl 44(%esp),%edi + leal 128(%edi),%edi + movl %eax,-112(%edi) + movl %ebx,-108(%edi) + movl %ecx,-104(%edi) + movl %edx,-100(%edi) + movl %eax,%ebp + shll $15,%eax + movl %ebx,%esi + shrl $17,%esi + shll $15,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $15,%ecx + movl %eax,-80(%edi) + shrl $17,%esi + orl %esi,%ebx + shrl $17,%ebp + movl %edx,%esi + shrl $17,%esi + movl %ebx,-76(%edi) + shll $15,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %ecx,-72(%edi) + movl %edx,-68(%edi) + movl %eax,%ebp + shll $15,%eax + movl %ebx,%esi + shrl $17,%esi + shll $15,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $15,%ecx + movl %eax,-64(%edi) + shrl $17,%esi + orl %esi,%ebx + shrl $17,%ebp + movl %edx,%esi + shrl $17,%esi + movl %ebx,-60(%edi) + shll $15,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %ecx,-56(%edi) + movl %edx,-52(%edi) + movl %eax,%ebp + shll $15,%eax + movl %ebx,%esi + shrl $17,%esi + shll $15,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $15,%ecx + movl %eax,-32(%edi) + shrl $17,%esi + orl %esi,%ebx + shrl $17,%ebp + movl %edx,%esi + shrl $17,%esi + movl %ebx,-28(%edi) + shll $15,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %eax,%ebp + shll $15,%eax + movl %ebx,%esi + shrl $17,%esi + shll $15,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $15,%ecx + movl %eax,-16(%edi) + shrl $17,%esi + orl %esi,%ebx + shrl $17,%ebp + movl %edx,%esi + shrl $17,%esi + movl %ebx,-12(%edi) + shll $15,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %ecx,-8(%edi) + movl %edx,-4(%edi) + movl %ebx,%ebp + shll $2,%ebx + movl %ecx,%esi + shrl $30,%esi + shll $2,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $2,%edx + movl %ebx,32(%edi) + shrl $30,%esi + orl %esi,%ecx + shrl $30,%ebp + movl %eax,%esi + shrl $30,%esi + movl %ecx,36(%edi) + shll $2,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,40(%edi) + movl %eax,44(%edi) + movl %ebx,%ebp + shll $17,%ebx + movl %ecx,%esi + shrl $15,%esi + shll $17,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $17,%edx + movl %ebx,64(%edi) + shrl $15,%esi + orl %esi,%ecx + shrl $15,%ebp + movl %eax,%esi + shrl $15,%esi + movl %ecx,68(%edi) + shll $17,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,72(%edi) + movl %eax,76(%edi) + movl -128(%edi),%ebx + movl -124(%edi),%ecx + movl -120(%edi),%edx + movl -116(%edi),%eax + movl %ebx,%ebp + shll $15,%ebx + movl %ecx,%esi + shrl $17,%esi + shll $15,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $15,%edx + movl %ebx,-96(%edi) + shrl $17,%esi + orl %esi,%ecx + shrl $17,%ebp + movl %eax,%esi + shrl $17,%esi + movl %ecx,-92(%edi) + shll $15,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,-88(%edi) + movl %eax,-84(%edi) + movl %ebx,%ebp + shll $30,%ebx + movl %ecx,%esi + shrl $2,%esi + shll $30,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $30,%edx + movl %ebx,-48(%edi) + shrl $2,%esi + orl %esi,%ecx + shrl $2,%ebp + movl %eax,%esi + shrl $2,%esi + movl %ecx,-44(%edi) + shll $30,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,-40(%edi) + movl %eax,-36(%edi) + movl %ebx,%ebp + shll $15,%ebx + movl %ecx,%esi + shrl $17,%esi + shll $15,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $15,%edx + shrl $17,%esi + orl %esi,%ecx + shrl $17,%ebp + movl %eax,%esi + shrl $17,%esi + shll $15,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,-24(%edi) + movl %eax,-20(%edi) + movl %ebx,%ebp + shll $17,%ebx + movl %ecx,%esi + shrl $15,%esi + shll $17,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $17,%edx + movl %ebx,(%edi) + shrl $15,%esi + orl %esi,%ecx + shrl $15,%ebp + movl %eax,%esi + shrl $15,%esi + movl %ecx,4(%edi) + shll $17,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,8(%edi) + movl %eax,12(%edi) + movl %ebx,%ebp + shll $17,%ebx + movl %ecx,%esi + shrl $15,%esi + shll $17,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $17,%edx + movl %ebx,16(%edi) + shrl $15,%esi + orl %esi,%ecx + shrl $15,%ebp + movl %eax,%esi + shrl $15,%esi + movl %ecx,20(%edi) + shll $17,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,24(%edi) + movl %eax,28(%edi) + movl %ebx,%ebp + shll $17,%ebx + movl %ecx,%esi + shrl $15,%esi + shll $17,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $17,%edx + movl %ebx,48(%edi) + shrl $15,%esi + orl %esi,%ecx + shrl $15,%ebp + movl %eax,%esi + shrl $15,%esi + movl %ecx,52(%edi) + shll $17,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,56(%edi) + movl %eax,60(%edi) + movl $3,%eax + jmp L013done +.align 4,0x90 +L0122nd256: + movl 44(%esp),%esi + movl %eax,48(%esi) + movl %ebx,52(%esi) + movl %ecx,56(%esi) + movl %edx,60(%esi) + xorl 32(%esi),%eax + xorl 36(%esi),%ebx + xorl 40(%esi),%ecx + xorl 44(%esi),%edx + movl 32(%edi),%esi + movl %eax,(%esp) + movl %ebx,4(%esp) + movl %ecx,8(%esp) + movl %edx,12(%esp) + xorl %esi,%eax + xorl 36(%edi),%ebx + movzbl %ah,%esi + movl 2052(%ebp,%esi,8),%edx + movzbl %al,%esi + xorl 4(%ebp,%esi,8),%edx + shrl $16,%eax + movzbl %bl,%esi + movl (%ebp,%esi,8),%ecx + movzbl %ah,%esi + xorl (%ebp,%esi,8),%edx + movzbl %bh,%esi + xorl 4(%ebp,%esi,8),%ecx + shrl $16,%ebx + movzbl %al,%eax + xorl 2048(%ebp,%eax,8),%edx + movzbl %bh,%esi + movl 12(%esp),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl 2048(%ebp,%esi,8),%ecx + movzbl %bl,%esi + movl 8(%esp),%ebx + xorl %eax,%edx + xorl 2052(%ebp,%esi,8),%ecx + movl 40(%edi),%esi + xorl %ecx,%edx + movl %edx,12(%esp) + xorl %ebx,%ecx + movl %ecx,8(%esp) + xorl %esi,%ecx + xorl 44(%edi),%edx + movzbl %ch,%esi + movl 2052(%ebp,%esi,8),%ebx + movzbl %cl,%esi + xorl 4(%ebp,%esi,8),%ebx + shrl $16,%ecx + movzbl %dl,%esi + movl (%ebp,%esi,8),%eax + movzbl %ch,%esi + xorl (%ebp,%esi,8),%ebx + movzbl %dh,%esi + xorl 4(%ebp,%esi,8),%eax + shrl $16,%edx + movzbl %cl,%ecx + xorl 2048(%ebp,%ecx,8),%ebx + movzbl %dh,%esi + movl 4(%esp),%ecx + xorl %ebx,%eax + rorl $8,%ebx + xorl 2048(%ebp,%esi,8),%eax + movzbl %dl,%esi + movl (%esp),%edx + xorl %ecx,%ebx + xorl 2052(%ebp,%esi,8),%eax + movl 48(%edi),%esi + xorl %eax,%ebx + movl %ebx,4(%esp) + xorl %edx,%eax + movl %eax,(%esp) + movl 8(%esp),%ecx + movl 12(%esp),%edx + movl 44(%esp),%edi + leal 128(%edi),%edi + movl %eax,-112(%edi) + movl %ebx,-108(%edi) + movl %ecx,-104(%edi) + movl %edx,-100(%edi) + movl %eax,%ebp + shll $30,%eax + movl %ebx,%esi + shrl $2,%esi + shll $30,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $30,%ecx + movl %eax,-48(%edi) + shrl $2,%esi + orl %esi,%ebx + shrl $2,%ebp + movl %edx,%esi + shrl $2,%esi + movl %ebx,-44(%edi) + shll $30,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %ecx,-40(%edi) + movl %edx,-36(%edi) + movl %eax,%ebp + shll $30,%eax + movl %ebx,%esi + shrl $2,%esi + shll $30,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $30,%ecx + movl %eax,32(%edi) + shrl $2,%esi + orl %esi,%ebx + shrl $2,%ebp + movl %edx,%esi + shrl $2,%esi + movl %ebx,36(%edi) + shll $30,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %ecx,40(%edi) + movl %edx,44(%edi) + movl %ebx,%ebp + shll $19,%ebx + movl %ecx,%esi + shrl $13,%esi + shll $19,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $19,%edx + movl %ebx,128(%edi) + shrl $13,%esi + orl %esi,%ecx + shrl $13,%ebp + movl %eax,%esi + shrl $13,%esi + movl %ecx,132(%edi) + shll $19,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,136(%edi) + movl %eax,140(%edi) + movl -96(%edi),%ebx + movl -92(%edi),%ecx + movl -88(%edi),%edx + movl -84(%edi),%eax + movl %ebx,%ebp + shll $15,%ebx + movl %ecx,%esi + shrl $17,%esi + shll $15,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $15,%edx + movl %ebx,-96(%edi) + shrl $17,%esi + orl %esi,%ecx + shrl $17,%ebp + movl %eax,%esi + shrl $17,%esi + movl %ecx,-92(%edi) + shll $15,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,-88(%edi) + movl %eax,-84(%edi) + movl %ebx,%ebp + shll $15,%ebx + movl %ecx,%esi + shrl $17,%esi + shll $15,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $15,%edx + movl %ebx,-64(%edi) + shrl $17,%esi + orl %esi,%ecx + shrl $17,%ebp + movl %eax,%esi + shrl $17,%esi + movl %ecx,-60(%edi) + shll $15,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,-56(%edi) + movl %eax,-52(%edi) + movl %ebx,%ebp + shll $30,%ebx + movl %ecx,%esi + shrl $2,%esi + shll $30,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $30,%edx + movl %ebx,16(%edi) + shrl $2,%esi + orl %esi,%ecx + shrl $2,%ebp + movl %eax,%esi + shrl $2,%esi + movl %ecx,20(%edi) + shll $30,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,24(%edi) + movl %eax,28(%edi) + movl %ecx,%ebp + shll $2,%ecx + movl %edx,%esi + shrl $30,%esi + shll $2,%edx + orl %esi,%ecx + movl %eax,%esi + shll $2,%eax + movl %ecx,80(%edi) + shrl $30,%esi + orl %esi,%edx + shrl $30,%ebp + movl %ebx,%esi + shrl $30,%esi + movl %edx,84(%edi) + shll $2,%ebx + orl %esi,%eax + orl %ebp,%ebx + movl %eax,88(%edi) + movl %ebx,92(%edi) + movl -80(%edi),%ecx + movl -76(%edi),%edx + movl -72(%edi),%eax + movl -68(%edi),%ebx + movl %ecx,%ebp + shll $15,%ecx + movl %edx,%esi + shrl $17,%esi + shll $15,%edx + orl %esi,%ecx + movl %eax,%esi + shll $15,%eax + movl %ecx,-80(%edi) + shrl $17,%esi + orl %esi,%edx + shrl $17,%ebp + movl %ebx,%esi + shrl $17,%esi + movl %edx,-76(%edi) + shll $15,%ebx + orl %esi,%eax + orl %ebp,%ebx + movl %eax,-72(%edi) + movl %ebx,-68(%edi) + movl %ecx,%ebp + shll $30,%ecx + movl %edx,%esi + shrl $2,%esi + shll $30,%edx + orl %esi,%ecx + movl %eax,%esi + shll $30,%eax + movl %ecx,-16(%edi) + shrl $2,%esi + orl %esi,%edx + shrl $2,%ebp + movl %ebx,%esi + shrl $2,%esi + movl %edx,-12(%edi) + shll $30,%ebx + orl %esi,%eax + orl %ebp,%ebx + movl %eax,-8(%edi) + movl %ebx,-4(%edi) + movl %edx,64(%edi) + movl %eax,68(%edi) + movl %ebx,72(%edi) + movl %ecx,76(%edi) + movl %edx,%ebp + shll $17,%edx + movl %eax,%esi + shrl $15,%esi + shll $17,%eax + orl %esi,%edx + movl %ebx,%esi + shll $17,%ebx + movl %edx,96(%edi) + shrl $15,%esi + orl %esi,%eax + shrl $15,%ebp + movl %ecx,%esi + shrl $15,%esi + movl %eax,100(%edi) + shll $17,%ecx + orl %esi,%ebx + orl %ebp,%ecx + movl %ebx,104(%edi) + movl %ecx,108(%edi) + movl -128(%edi),%edx + movl -124(%edi),%eax + movl -120(%edi),%ebx + movl -116(%edi),%ecx + movl %eax,%ebp + shll $13,%eax + movl %ebx,%esi + shrl $19,%esi + shll $13,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $13,%ecx + movl %eax,-32(%edi) + shrl $19,%esi + orl %esi,%ebx + shrl $19,%ebp + movl %edx,%esi + shrl $19,%esi + movl %ebx,-28(%edi) + shll $13,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %ecx,-24(%edi) + movl %edx,-20(%edi) + movl %eax,%ebp + shll $15,%eax + movl %ebx,%esi + shrl $17,%esi + shll $15,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $15,%ecx + movl %eax,(%edi) + shrl $17,%esi + orl %esi,%ebx + shrl $17,%ebp + movl %edx,%esi + shrl $17,%esi + movl %ebx,4(%edi) + shll $15,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl %eax,%ebp + shll $17,%eax + movl %ebx,%esi + shrl $15,%esi + shll $17,%ebx + orl %esi,%eax + movl %ecx,%esi + shll $17,%ecx + movl %eax,48(%edi) + shrl $15,%esi + orl %esi,%ebx + shrl $15,%ebp + movl %edx,%esi + shrl $15,%esi + movl %ebx,52(%edi) + shll $17,%edx + orl %esi,%ecx + orl %ebp,%edx + movl %ecx,56(%edi) + movl %edx,60(%edi) + movl %ebx,%ebp + shll $2,%ebx + movl %ecx,%esi + shrl $30,%esi + shll $2,%ecx + orl %esi,%ebx + movl %edx,%esi + shll $2,%edx + movl %ebx,112(%edi) + shrl $30,%esi + orl %esi,%ecx + shrl $30,%ebp + movl %eax,%esi + shrl $30,%esi + movl %ecx,116(%edi) + shll $2,%eax + orl %esi,%edx + orl %ebp,%eax + movl %edx,120(%edi) + movl %eax,124(%edi) + movl $4,%eax +L013done: + leal 144(%edi),%edx + addl $16,%esp + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _Camellia_set_key +.align 4 +_Camellia_set_key: +L_Camellia_set_key_begin: + pushl %ebx + movl 8(%esp),%ecx + movl 12(%esp),%ebx + movl 16(%esp),%edx + movl $-1,%eax + testl %ecx,%ecx + jz L014done + testl %edx,%edx + jz L014done + movl $-2,%eax + cmpl $256,%ebx + je L015arg_ok + cmpl $192,%ebx + je L015arg_ok + cmpl $128,%ebx + jne L014done +.align 2,0x90 +L015arg_ok: + pushl %edx + pushl %ecx + pushl %ebx + call L_Camellia_Ekeygen_begin + addl $12,%esp + movl %eax,(%edx) + xorl %eax,%eax +.align 2,0x90 +L014done: + popl %ebx + ret +.align 6,0x90 +LCamellia_SIGMA: +.long 2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0 +.align 6,0x90 +LCamellia_SBOX: +.long 1886416896,1886388336 +.long 2189591040,741081132 +.long 741092352,3014852787 +.long 3974949888,3233808576 +.long 3014898432,3840147684 +.long 656877312,1465319511 +.long 3233857536,3941204202 +.long 3857048832,2930639022 +.long 3840205824,589496355 +.long 2240120064,1802174571 +.long 1465341696,1162149957 +.long 892679424,2779054245 +.long 3941263872,3991732461 +.long 202116096,1330577487 +.long 2930683392,488439837 +.long 1094795520,2459041938 +.long 589505280,2256928902 +.long 4025478912,2947481775 +.long 1802201856,2088501372 +.long 2475922176,522125343 +.long 1162167552,1044250686 +.long 421075200,3705405660 +.long 2779096320,1583218782 +.long 555819264,185270283 +.long 3991792896,2795896998 +.long 235802112,960036921 +.long 1330597632,3587506389 +.long 1313754624,1566376029 +.long 488447232,3654877401 +.long 1701143808,1515847770 +.long 2459079168,1364262993 +.long 3183328512,1819017324 +.long 2256963072,2341142667 +.long 3099113472,2593783962 +.long 2947526400,4227531003 +.long 2408550144,2964324528 +.long 2088532992,1953759348 +.long 3958106880,724238379 +.long 522133248,4042260720 +.long 3469659648,2223243396 +.long 1044266496,3755933919 +.long 808464384,3419078859 +.long 3705461760,875823156 +.long 1600085760,1987444854 +.long 1583242752,1835860077 +.long 3318072576,2846425257 +.long 185273088,3520135377 +.long 437918208,67371012 +.long 2795939328,336855060 +.long 3789676800,976879674 +.long 960051456,3739091166 +.long 3402287616,286326801 +.long 3587560704,842137650 +.long 1195853568,2627469468 +.long 1566399744,1397948499 +.long 1027423488,4075946226 +.long 3654932736,4278059262 +.long 16843008,3486449871 +.long 1515870720,3284336835 +.long 3604403712,2054815866 +.long 1364283648,606339108 +.long 1448498688,3907518696 +.long 1819044864,1616904288 +.long 1296911616,1768489065 +.long 2341178112,2863268010 +.long 218959104,2694840480 +.long 2593823232,2711683233 +.long 1717986816,1650589794 +.long 4227595008,1414791252 +.long 3435973632,505282590 +.long 2964369408,3772776672 +.long 757935360,1684275300 +.long 1953788928,269484048 +.long 303174144,0 +.long 724249344,2745368739 +.long 538976256,1970602101 +.long 4042321920,2324299914 +.long 2981212416,3873833190 +.long 2223277056,151584777 +.long 2576980224,3722248413 +.long 3755990784,2273771655 +.long 1280068608,2206400643 +.long 3419130624,3452764365 +.long 3267543552,2425356432 +.long 875836416,1936916595 +.long 2122219008,4143317238 +.long 1987474944,2644312221 +.long 84215040,3216965823 +.long 1835887872,1381105746 +.long 3082270464,3638034648 +.long 2846468352,3368550600 +.long 825307392,3334865094 +.long 3520188672,2172715137 +.long 387389184,1869545583 +.long 67372032,320012307 +.long 3621246720,1667432547 +.long 336860160,3924361449 +.long 1482184704,2812739751 +.long 976894464,2677997727 +.long 1633771776,3166437564 +.long 3739147776,690552873 +.long 454761216,4193845497 +.long 286331136,791609391 +.long 471604224,3031695540 +.long 842150400,2021130360 +.long 252645120,101056518 +.long 2627509248,3890675943 +.long 370546176,1903231089 +.long 1397969664,3570663636 +.long 404232192,2880110763 +.long 4076007936,2290614408 +.long 572662272,2374828173 +.long 4278124032,1920073842 +.long 1145324544,3115909305 +.long 3486502656,4177002744 +.long 2998055424,2896953516 +.long 3284386560,909508662 +.long 3048584448,707395626 +.long 2054846976,1010565180 +.long 2442236160,4059103473 +.long 606348288,1077936192 +.long 134744064,3553820883 +.long 3907577856,3149594811 +.long 2829625344,1128464451 +.long 1616928768,353697813 +.long 4244438016,2913796269 +.long 1768515840,2004287607 +.long 1347440640,2155872384 +.long 2863311360,2189557890 +.long 3503345664,3974889708 +.long 2694881280,656867367 +.long 2105376000,3856990437 +.long 2711724288,2240086149 +.long 2307492096,892665909 +.long 1650614784,202113036 +.long 2543294208,1094778945 +.long 1414812672,4025417967 +.long 1532713728,2475884691 +.long 505290240,421068825 +.long 2509608192,555810849 +.long 3772833792,235798542 +.long 4294967040,1313734734 +.long 1684300800,1701118053 +.long 3537031680,3183280317 +.long 269488128,3099066552 +.long 3301229568,2408513679 +.long 0,3958046955 +.long 1212696576,3469607118 +.long 2745410304,808452144 +.long 4160222976,1600061535 +.long 1970631936,3318022341 +.long 3688618752,437911578 +.long 2324335104,3789619425 +.long 50529024,3402236106 +.long 3873891840,1195835463 +.long 3671775744,1027407933 +.long 151587072,16842753 +.long 1061109504,3604349142 +.long 3722304768,1448476758 +.long 2492765184,1296891981 +.long 2273806080,218955789 +.long 1549556736,1717960806 +.long 2206434048,3435921612 +.long 33686016,757923885 +.long 3452816640,303169554 +.long 1246382592,538968096 +.long 2425393152,2981167281 +.long 858993408,2576941209 +.long 1936945920,1280049228 +.long 1734829824,3267494082 +.long 4143379968,2122186878 +.long 4092850944,84213765 +.long 2644352256,3082223799 +.long 2139062016,825294897 +.long 3217014528,387383319 +.long 3806519808,3621191895 +.long 1381126656,1482162264 +.long 2610666240,1633747041 +.long 3638089728,454754331 +.long 640034304,471597084 +.long 3368601600,252641295 +.long 926365440,370540566 +.long 3334915584,404226072 +.long 993737472,572653602 +.long 2172748032,1145307204 +.long 2526451200,2998010034 +.long 1869573888,3048538293 +.long 1263225600,2442199185 +.long 320017152,134742024 +.long 3200171520,2829582504 +.long 1667457792,4244373756 +.long 774778368,1347420240 +.long 3924420864,3503292624 +.long 2038003968,2105344125 +.long 2812782336,2307457161 +.long 2358021120,2543255703 +.long 2678038272,1532690523 +.long 1852730880,2509570197 +.long 3166485504,4294902015 +.long 2391707136,3536978130 +.long 690563328,3301179588 +.long 4126536960,1212678216 +.long 4193908992,4160159991 +.long 3065427456,3688562907 +.long 791621376,50528259 +.long 4261281024,3671720154 +.long 3031741440,1061093439 +.long 1499027712,2492727444 +.long 2021160960,1549533276 +.long 2560137216,33685506 +.long 101058048,1246363722 +.long 1785358848,858980403 +.long 3890734848,1734803559 +.long 1179010560,4092788979 +.long 1903259904,2139029631 +.long 3132799488,3806462178 +.long 3570717696,2610626715 +.long 623191296,640024614 +.long 2880154368,926351415 +.long 1111638528,993722427 +.long 2290649088,2526412950 +.long 2728567296,1263206475 +.long 2374864128,3200123070 +.long 4210752000,774766638 +.long 1920102912,2037973113 +.long 117901056,2357985420 +.long 3115956480,1852702830 +.long 1431655680,2391670926 +.long 4177065984,4126474485 +.long 4008635904,3065381046 +.long 2896997376,4261216509 +.long 168430080,1499005017 +.long 909522432,2560098456 +.long 1229539584,1785331818 +.long 707406336,1178992710 +.long 1751672832,3132752058 +.long 1010580480,623181861 +.long 943208448,1111621698 +.long 4059164928,2728525986 +.long 2762253312,4210688250 +.long 1077952512,117899271 +.long 673720320,1431634005 +.long 3553874688,4008575214 +.long 2071689984,168427530 +.long 3149642496,1229520969 +.long 3385444608,1751646312 +.long 1128481536,943194168 +.long 3250700544,2762211492 +.long 353703168,673710120 +.long 3823362816,2071658619 +.long 2913840384,3385393353 +.long 4109693952,3250651329 +.long 2004317952,3823304931 +.long 3351758592,4109631732 +.long 2155905024,3351707847 +.long 2661195264,2661154974 +.long 14737632,939538488 +.long 328965,1090535745 +.long 5789784,369104406 +.long 14277081,1979741814 +.long 6776679,3640711641 +.long 5131854,2466288531 +.long 8487297,1610637408 +.long 13355979,4060148466 +.long 13224393,1912631922 +.long 723723,3254829762 +.long 11447982,2868947883 +.long 6974058,2583730842 +.long 14013909,1962964341 +.long 1579032,100664838 +.long 6118749,1459640151 +.long 8553090,2684395680 +.long 4605510,2432733585 +.long 14671839,4144035831 +.long 14079702,3036722613 +.long 2565927,3372272073 +.long 9079434,2717950626 +.long 3289650,2348846220 +.long 4934475,3523269330 +.long 4342338,2415956112 +.long 14408667,4127258358 +.long 1842204,117442311 +.long 10395294,2801837991 +.long 10263708,654321447 +.long 3815994,2382401166 +.long 13290186,2986390194 +.long 2434341,1224755529 +.long 8092539,3724599006 +.long 855309,1124090691 +.long 7434609,1543527516 +.long 6250335,3607156695 +.long 2039583,3338717127 +.long 16316664,1040203326 +.long 14145495,4110480885 +.long 4079166,2399178639 +.long 10329501,1728079719 +.long 8158332,520101663 +.long 6316128,402659352 +.long 12171705,1845522030 +.long 12500670,2936057775 +.long 12369084,788541231 +.long 9145227,3791708898 +.long 1447446,2231403909 +.long 3421236,218107149 +.long 5066061,1392530259 +.long 12829635,4026593520 +.long 7500402,2617285788 +.long 9803157,1694524773 +.long 11250603,3925928682 +.long 9342606,2734728099 +.long 12237498,2919280302 +.long 8026746,2650840734 +.long 11776947,3959483628 +.long 131586,2147516544 +.long 11842740,754986285 +.long 11382189,1795189611 +.long 10658466,2818615464 +.long 11316396,721431339 +.long 14211288,905983542 +.long 10132122,2785060518 +.long 1513239,3305162181 +.long 1710618,2248181382 +.long 3487029,1291865421 +.long 13421772,855651123 +.long 16250871,4244700669 +.long 10066329,1711302246 +.long 6381921,1476417624 +.long 5921370,2516620950 +.long 15263976,973093434 +.long 2368548,150997257 +.long 5658198,2499843477 +.long 4210752,268439568 +.long 14803425,2013296760 +.long 6513507,3623934168 +.long 592137,1107313218 +.long 3355443,3422604492 +.long 12566463,4009816047 +.long 10000536,637543974 +.long 9934743,3842041317 +.long 8750469,1627414881 +.long 6842472,436214298 +.long 16579836,1056980799 +.long 15527148,989870907 +.long 657930,2181071490 +.long 14342874,3053500086 +.long 7303023,3674266587 +.long 5460819,3556824276 +.long 6447714,2550175896 +.long 10724259,3892373736 +.long 3026478,2332068747 +.long 526344,33554946 +.long 11513775,3942706155 +.long 2631720,167774730 +.long 11579568,738208812 +.long 7631988,486546717 +.long 12763842,2952835248 +.long 12434877,1862299503 +.long 3552822,2365623693 +.long 2236962,2281736328 +.long 3684408,234884622 +.long 6579300,419436825 +.long 1973790,2264958855 +.long 3750201,1308642894 +.long 2894892,184552203 +.long 10921638,2835392937 +.long 3158064,201329676 +.long 15066597,2030074233 +.long 4473924,285217041 +.long 16645629,2130739071 +.long 8947848,570434082 +.long 10461087,3875596263 +.long 6645093,1493195097 +.long 8882055,3774931425 +.long 7039851,3657489114 +.long 16053492,1023425853 +.long 2302755,3355494600 +.long 4737096,301994514 +.long 1052688,67109892 +.long 13750737,1946186868 +.long 5329233,1409307732 +.long 12632256,805318704 +.long 16382457,2113961598 +.long 13816530,3019945140 +.long 10526880,671098920 +.long 5592405,1426085205 +.long 10592673,1744857192 +.long 4276545,1342197840 +.long 16448250,3187719870 +.long 4408131,3489714384 +.long 1250067,3288384708 +.long 12895428,822096177 +.long 3092271,3405827019 +.long 11053224,704653866 +.long 11974326,2902502829 +.long 3947580,251662095 +.long 2829099,3389049546 +.long 12698049,1879076976 +.long 16777215,4278255615 +.long 13158600,838873650 +.long 10855845,1761634665 +.long 2105376,134219784 +.long 9013641,1644192354 +.long 0,0 +.long 9474192,603989028 +.long 4671303,3506491857 +.long 15724527,4211145723 +.long 15395562,3120609978 +.long 12040119,3976261101 +.long 1381653,1157645637 +.long 394758,2164294017 +.long 13487565,1929409395 +.long 11908533,1828744557 +.long 1184274,2214626436 +.long 8289918,2667618207 +.long 12303291,3993038574 +.long 2697513,1241533002 +.long 986895,3271607235 +.long 12105912,771763758 +.long 460551,3238052289 +.long 263172,16777473 +.long 10197915,3858818790 +.long 9737364,620766501 +.long 2171169,1207978056 +.long 6710886,2566953369 +.long 15132390,3103832505 +.long 13553358,3003167667 +.long 15592941,2063629179 +.long 15198183,4177590777 +.long 3881787,3456159438 +.long 16711422,3204497343 +.long 8355711,3741376479 +.long 12961221,1895854449 +.long 10790052,687876393 +.long 3618615,3439381965 +.long 11645361,1811967084 +.long 5000268,318771987 +.long 9539985,1677747300 +.long 7237230,2600508315 +.long 9276813,1660969827 +.long 7763574,2634063261 +.long 197379,3221274816 +.long 2960685,1258310475 +.long 14606046,3070277559 +.long 9868950,2768283045 +.long 2500134,2298513801 +.long 8224125,1593859935 +.long 13027014,2969612721 +.long 6052956,385881879 +.long 13882323,4093703412 +.long 15921906,3154164924 +.long 5197647,3540046803 +.long 1644825,1174423110 +.long 4144959,3472936911 +.long 14474460,922761015 +.long 7960953,1577082462 +.long 1907997,1191200583 +.long 5395026,2483066004 +.long 15461355,4194368250 +.long 15987699,4227923196 +.long 7171437,1526750043 +.long 6184542,2533398423 +.long 16514043,4261478142 +.long 6908265,1509972570 +.long 11711154,2885725356 +.long 15790320,1006648380 +.long 3223857,1275087948 +.long 789516,50332419 +.long 13948116,889206069 +.long 13619151,4076925939 +.long 9211020,587211555 +.long 14869218,3087055032 +.long 7697781,1560304989 +.long 11119017,1778412138 +.long 4868682,2449511058 +.long 5723991,3573601749 +.long 8684676,553656609 +.long 1118481,1140868164 +.long 4539717,1358975313 +.long 1776411,3321939654 +.long 16119285,2097184125 +.long 15000804,956315961 +.long 921102,2197848963 +.long 7566195,3691044060 +.long 11184810,2852170410 +.long 15856113,2080406652 +.long 14540253,1996519287 +.long 5855577,1442862678 +.long 1315860,83887365 +.long 7105644,452991771 +.long 9605778,2751505572 +.long 5526612,352326933 +.long 13684944,872428596 +.long 7895160,503324190 +.long 7368816,469769244 +.long 14935011,4160813304 +.long 4802889,1375752786 +.long 8421504,536879136 +.long 5263440,335549460 +.long 10987431,3909151209 +.long 16185078,3170942397 +.long 7829367,3707821533 +.long 9671571,3825263844 +.long 8816262,2701173153 +.long 8618883,3758153952 +.long 2763306,2315291274 +.long 13092807,4043370993 +.long 5987163,3590379222 +.long 15329769,2046851706 +.long 15658734,3137387451 +.long 9408399,3808486371 +.long 65793,1073758272 +.long 4013373,1325420367 +.globl _Camellia_cbc_encrypt +.align 4 +_Camellia_cbc_encrypt: +L_Camellia_cbc_encrypt_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 28(%esp),%ecx + cmpl $0,%ecx + je L016enc_out + pushfl + cld + movl 24(%esp),%eax + movl 28(%esp),%ebx + movl 36(%esp),%edx + movl 40(%esp),%ebp + leal -64(%esp),%esi + andl $-64,%esi + leal -127(%edx),%edi + subl %esi,%edi + negl %edi + andl $960,%edi + subl %edi,%esi + movl 44(%esp),%edi + xchgl %esi,%esp + addl $4,%esp + movl %esi,20(%esp) + movl %eax,24(%esp) + movl %ebx,28(%esp) + movl %ecx,32(%esp) + movl %edx,36(%esp) + movl %ebp,40(%esp) + call L017pic_point +L017pic_point: + popl %ebp + leal LCamellia_SBOX-L017pic_point(%ebp),%ebp + movl $32,%esi +.align 2,0x90 +L018prefetch_sbox: + movl (%ebp),%eax + movl 32(%ebp),%ebx + movl 64(%ebp),%ecx + movl 96(%ebp),%edx + leal 128(%ebp),%ebp + decl %esi + jnz L018prefetch_sbox + movl 36(%esp),%eax + subl $4096,%ebp + movl 24(%esp),%esi + movl 272(%eax),%edx + cmpl $0,%edi + je L019DECRYPT + movl 32(%esp),%ecx + movl 40(%esp),%edi + shll $6,%edx + leal (%eax,%edx,1),%edx + movl %edx,16(%esp) + testl $4294967280,%ecx + jz L020enc_tail + movl (%edi),%eax + movl 4(%edi),%ebx +.align 2,0x90 +L021enc_loop: + movl 8(%edi),%ecx + movl 12(%edi),%edx + xorl (%esi),%eax + xorl 4(%esi),%ebx + xorl 8(%esi),%ecx + bswap %eax + xorl 12(%esi),%edx + bswap %ebx + movl 36(%esp),%edi + bswap %ecx + bswap %edx + call __x86_Camellia_encrypt + movl 24(%esp),%esi + movl 28(%esp),%edi + bswap %eax + bswap %ebx + bswap %ecx + movl %eax,(%edi) + bswap %edx + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 32(%esp),%ecx + leal 16(%esi),%esi + movl %esi,24(%esp) + leal 16(%edi),%edx + movl %edx,28(%esp) + subl $16,%ecx + testl $4294967280,%ecx + movl %ecx,32(%esp) + jnz L021enc_loop + testl $15,%ecx + jnz L020enc_tail + movl 40(%esp),%esi + movl 8(%edi),%ecx + movl 12(%edi),%edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + movl 20(%esp),%esp + popfl +L016enc_out: + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + pushfl +.align 2,0x90 +L020enc_tail: + movl %edi,%eax + movl 28(%esp),%edi + pushl %eax + movl $16,%ebx + subl %ecx,%ebx + cmpl %esi,%edi + je L022enc_in_place +.align 2,0x90 +.long 2767451785 + jmp L023enc_skip_in_place +L022enc_in_place: + leal (%edi,%ecx,1),%edi +L023enc_skip_in_place: + movl %ebx,%ecx + xorl %eax,%eax +.align 2,0x90 +.long 2868115081 + popl %edi + movl 28(%esp),%esi + movl (%edi),%eax + movl 4(%edi),%ebx + movl $16,32(%esp) + jmp L021enc_loop +.align 4,0x90 +L019DECRYPT: + shll $6,%edx + leal (%eax,%edx,1),%edx + movl %eax,16(%esp) + movl %edx,36(%esp) + cmpl 28(%esp),%esi + je L024dec_in_place + movl 40(%esp),%edi + movl %edi,44(%esp) +.align 2,0x90 +L025dec_loop: + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + bswap %eax + movl 12(%esi),%edx + bswap %ebx + movl 36(%esp),%edi + bswap %ecx + bswap %edx + call __x86_Camellia_decrypt + movl 44(%esp),%edi + movl 32(%esp),%esi + bswap %eax + bswap %ebx + bswap %ecx + xorl (%edi),%eax + bswap %edx + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + subl $16,%esi + jc L026dec_partial + movl %esi,32(%esp) + movl 24(%esp),%esi + movl 28(%esp),%edi + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl %esi,44(%esp) + leal 16(%esi),%esi + movl %esi,24(%esp) + leal 16(%edi),%edi + movl %edi,28(%esp) + jnz L025dec_loop + movl 44(%esp),%edi +L027dec_end: + movl 40(%esp),%esi + movl (%edi),%eax + movl 4(%edi),%ebx + movl 8(%edi),%ecx + movl 12(%edi),%edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + jmp L028dec_out +.align 2,0x90 +L026dec_partial: + leal 44(%esp),%edi + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + leal 16(%esi),%ecx + movl %edi,%esi + movl 28(%esp),%edi +.long 2767451785 + movl 24(%esp),%edi + jmp L027dec_end +.align 2,0x90 +L024dec_in_place: +L029dec_in_place_loop: + leal 44(%esp),%edi + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + bswap %eax + movl %edx,12(%edi) + bswap %ebx + movl 36(%esp),%edi + bswap %ecx + bswap %edx + call __x86_Camellia_decrypt + movl 40(%esp),%edi + movl 28(%esp),%esi + bswap %eax + bswap %ebx + bswap %ecx + xorl (%edi),%eax + bswap %edx + xorl 4(%edi),%ebx + xorl 8(%edi),%ecx + xorl 12(%edi),%edx + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edx,12(%esi) + leal 16(%esi),%esi + movl %esi,28(%esp) + leal 44(%esp),%esi + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + movl %eax,(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl 24(%esp),%esi + leal 16(%esi),%esi + movl %esi,24(%esp) + movl 32(%esp),%ecx + subl $16,%ecx + jc L030dec_in_place_partial + movl %ecx,32(%esp) + jnz L029dec_in_place_loop + jmp L028dec_out +.align 2,0x90 +L030dec_in_place_partial: + movl 28(%esp),%edi + leal 44(%esp),%esi + leal (%edi,%ecx,1),%edi + leal 16(%esi,%ecx,1),%esi + negl %ecx +.long 2767451785 +.align 2,0x90 +L028dec_out: + movl 20(%esp),%esp + popfl + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.byte 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54 +.byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 +.byte 115,108,46,111,114,103,62,0 diff --git a/deps/openssl/asm/x86-macosx-gas/cast/cast-586.s b/deps/openssl/asm/x86-macosx-gas/cast/cast-586.s new file mode 100644 index 0000000000..9314dff21d --- /dev/null +++ b/deps/openssl/asm/x86-macosx-gas/cast/cast-586.s @@ -0,0 +1,967 @@ +.file "cast-586.s" +.text +.globl _CAST_encrypt +.align 4 +_CAST_encrypt: +L_CAST_encrypt_begin: + + pushl %ebp + pushl %ebx + movl 12(%esp),%ebx + movl 16(%esp),%ebp + pushl %esi + pushl %edi + # Load the 2 words + + movl (%ebx),%edi + movl 4(%ebx),%esi + # Get short key flag + + movl 128(%ebp),%eax + pushl %eax + xorl %eax,%eax + # round 0 + + movl (%ebp),%edx + movl 4(%ebp),%ecx + addl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%edi + # round 1 + + movl 8(%ebp),%edx + movl 12(%ebp),%ecx + xorl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%esi + # round 2 + + movl 16(%ebp),%edx + movl 20(%ebp),%ecx + subl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%edi + # round 3 + + movl 24(%ebp),%edx + movl 28(%ebp),%ecx + addl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%esi + # round 4 + + movl 32(%ebp),%edx + movl 36(%ebp),%ecx + xorl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%edi + # round 5 + + movl 40(%ebp),%edx + movl 44(%ebp),%ecx + subl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%esi + # round 6 + + movl 48(%ebp),%edx + movl 52(%ebp),%ecx + addl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%edi + # round 7 + + movl 56(%ebp),%edx + movl 60(%ebp),%ecx + xorl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%esi + # round 8 + + movl 64(%ebp),%edx + movl 68(%ebp),%ecx + subl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%edi + # round 9 + + movl 72(%ebp),%edx + movl 76(%ebp),%ecx + addl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%esi + # round 10 + + movl 80(%ebp),%edx + movl 84(%ebp),%ecx + xorl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%edi + # round 11 + + movl 88(%ebp),%edx + movl 92(%ebp),%ecx + subl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%esi + # test short key flag + + popl %edx + orl %edx,%edx + jnz L000cast_enc_done + # round 12 + + movl 96(%ebp),%edx + movl 100(%ebp),%ecx + addl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%edi + # round 13 + + movl 104(%ebp),%edx + movl 108(%ebp),%ecx + xorl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%esi + # round 14 + + movl 112(%ebp),%edx + movl 116(%ebp),%ecx + subl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%edi + # round 15 + + movl 120(%ebp),%edx + movl 124(%ebp),%ecx + addl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%esi +L000cast_enc_done: + nop + movl 20(%esp),%eax + movl %edi,4(%eax) + movl %esi,(%eax) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _CAST_decrypt +.align 4 +_CAST_decrypt: +L_CAST_decrypt_begin: + + pushl %ebp + pushl %ebx + movl 12(%esp),%ebx + movl 16(%esp),%ebp + pushl %esi + pushl %edi + # Load the 2 words + + movl (%ebx),%edi + movl 4(%ebx),%esi + # Get short key flag + + movl 128(%ebp),%eax + orl %eax,%eax + jnz L001cast_dec_skip + xorl %eax,%eax + # round 15 + + movl 120(%ebp),%edx + movl 124(%ebp),%ecx + addl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%edi + # round 14 + + movl 112(%ebp),%edx + movl 116(%ebp),%ecx + subl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%esi + # round 13 + + movl 104(%ebp),%edx + movl 108(%ebp),%ecx + xorl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%edi + # round 12 + + movl 96(%ebp),%edx + movl 100(%ebp),%ecx + addl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%esi +L001cast_dec_skip: + # round 11 + + movl 88(%ebp),%edx + movl 92(%ebp),%ecx + subl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%edi + # round 10 + + movl 80(%ebp),%edx + movl 84(%ebp),%ecx + xorl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%esi + # round 9 + + movl 72(%ebp),%edx + movl 76(%ebp),%ecx + addl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%edi + # round 8 + + movl 64(%ebp),%edx + movl 68(%ebp),%ecx + subl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%esi + # round 7 + + movl 56(%ebp),%edx + movl 60(%ebp),%ecx + xorl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%edi + # round 6 + + movl 48(%ebp),%edx + movl 52(%ebp),%ecx + addl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%esi + # round 5 + + movl 40(%ebp),%edx + movl 44(%ebp),%ecx + subl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%edi + # round 4 + + movl 32(%ebp),%edx + movl 36(%ebp),%ecx + xorl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%esi + # round 3 + + movl 24(%ebp),%edx + movl 28(%ebp),%ecx + addl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%edi + # round 2 + + movl 16(%ebp),%edx + movl 20(%ebp),%ecx + subl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + subl %ebx,%ecx + xorl %ecx,%esi + # round 1 + + movl 8(%ebp),%edx + movl 12(%ebp),%ecx + xorl %esi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + addl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + xorl %ebx,%ecx + xorl %ecx,%edi + # round 0 + + movl (%ebp),%edx + movl 4(%ebp),%ecx + addl %edi,%edx + roll %cl,%edx + movl %edx,%ebx + xorl %ecx,%ecx + movb %dh,%cl + andl $255,%ebx + shrl $16,%edx + xorl %eax,%eax + movb %dh,%al + andl $255,%edx + movl _CAST_S_table0(,%ecx,4),%ecx + movl _CAST_S_table1(,%ebx,4),%ebx + xorl %ebx,%ecx + movl _CAST_S_table2(,%eax,4),%ebx + subl %ebx,%ecx + movl _CAST_S_table3(,%edx,4),%ebx + addl %ebx,%ecx + xorl %ecx,%esi + nop + movl 20(%esp),%eax + movl %edi,4(%eax) + movl %esi,(%eax) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _CAST_cbc_encrypt +.align 4 +_CAST_cbc_encrypt: +L_CAST_cbc_encrypt_begin: + + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 28(%esp),%ebp + # getting iv ptr from parameter 4 + + movl 36(%esp),%ebx + movl (%ebx),%esi + movl 4(%ebx),%edi + pushl %edi + pushl %esi + pushl %edi + pushl %esi + movl %esp,%ebx + movl 36(%esp),%esi + movl 40(%esp),%edi + # getting encrypt flag from parameter 5 + + movl 56(%esp),%ecx + # get and push parameter 3 + + movl 48(%esp),%eax + pushl %eax + pushl %ebx + cmpl $0,%ecx + jz L002decrypt + andl $4294967288,%ebp + movl 8(%esp),%eax + movl 12(%esp),%ebx + jz L003encrypt_finish +L004encrypt_loop: + movl (%esi),%ecx + movl 4(%esi),%edx + xorl %ecx,%eax + xorl %edx,%ebx + bswap %eax + bswap %ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call L_CAST_encrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + bswap %eax + bswap %ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz L004encrypt_loop +L003encrypt_finish: + movl 52(%esp),%ebp + andl $7,%ebp + jz L005finish + call L006PIC_point +L006PIC_point: + popl %edx + leal L007cbc_enc_jmp_table-L006PIC_point(%edx),%ecx + movl (%ecx,%ebp,4),%ebp + addl %edx,%ebp + xorl %ecx,%ecx + xorl %edx,%edx + jmp *%ebp +L008ej7: + movb 6(%esi),%dh + shll $8,%edx +L009ej6: + movb 5(%esi),%dh +L010ej5: + movb 4(%esi),%dl +L011ej4: + movl (%esi),%ecx + jmp L012ejend +L013ej3: + movb 2(%esi),%ch + shll $8,%ecx +L014ej2: + movb 1(%esi),%ch +L015ej1: + movb (%esi),%cl +L012ejend: + xorl %ecx,%eax + xorl %edx,%ebx + bswap %eax + bswap %ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call L_CAST_encrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + bswap %eax + bswap %ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + jmp L005finish +L002decrypt: + andl $4294967288,%ebp + movl 16(%esp),%eax + movl 20(%esp),%ebx + jz L016decrypt_finish +L017decrypt_loop: + movl (%esi),%eax + movl 4(%esi),%ebx + bswap %eax + bswap %ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call L_CAST_decrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + bswap %eax + bswap %ebx + movl 16(%esp),%ecx + movl 20(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx + movl %ecx,(%edi) + movl %edx,4(%edi) + movl %eax,16(%esp) + movl %ebx,20(%esp) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz L017decrypt_loop +L016decrypt_finish: + movl 52(%esp),%ebp + andl $7,%ebp + jz L005finish + movl (%esi),%eax + movl 4(%esi),%ebx + bswap %eax + bswap %ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call L_CAST_decrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + bswap %eax + bswap %ebx + movl 16(%esp),%ecx + movl 20(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx +L018dj7: + rorl $16,%edx + movb %dl,6(%edi) + shrl $16,%edx +L019dj6: + movb %dh,5(%edi) +L020dj5: + movb %dl,4(%edi) +L021dj4: + movl %ecx,(%edi) + jmp L022djend +L023dj3: + rorl $16,%ecx + movb %cl,2(%edi) + shll $16,%ecx +L024dj2: + movb %ch,1(%esi) +L025dj1: + movb %cl,(%esi) +L022djend: + jmp L005finish +L005finish: + movl 60(%esp),%ecx + addl $24,%esp + movl %eax,(%ecx) + movl %ebx,4(%ecx) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 6,0x90 +L007cbc_enc_jmp_table: +.long 0 +.long L015ej1-L006PIC_point +.long L014ej2-L006PIC_point +.long L013ej3-L006PIC_point +.long L011ej4-L006PIC_point +.long L010ej5-L006PIC_point +.long L009ej6-L006PIC_point +.long L008ej7-L006PIC_point +.align 6,0x90 diff --git a/deps/openssl/asm/x86-macosx-gas/des/crypt586.s b/deps/openssl/asm/x86-macosx-gas/des/crypt586.s new file mode 100644 index 0000000000..edb1bb3915 --- /dev/null +++ b/deps/openssl/asm/x86-macosx-gas/des/crypt586.s @@ -0,0 +1,891 @@ +.file "crypt586.s" +.text +.globl _fcrypt_body +.align 4 +_fcrypt_body: +L_fcrypt_body_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + + # Load the 2 words + + xorl %edi,%edi + xorl %esi,%esi + leal _DES_SPtrans,%edx + pushl %edx + movl 28(%esp),%ebp + pushl $25 +L000start: + + # Round 0 + + movl 36(%esp),%eax + movl %esi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %esi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl (%ebp),%ebx + xorl %ebx,%eax + movl 4(%ebp),%ecx + xorl %esi,%eax + xorl %esi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%edi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%edi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%edi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%edi + movl 32(%esp),%ebp + + # Round 1 + + movl 36(%esp),%eax + movl %edi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %edi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 8(%ebp),%ebx + xorl %ebx,%eax + movl 12(%ebp),%ecx + xorl %edi,%eax + xorl %edi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%esi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%esi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%esi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%esi + movl 32(%esp),%ebp + + # Round 2 + + movl 36(%esp),%eax + movl %esi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %esi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 16(%ebp),%ebx + xorl %ebx,%eax + movl 20(%ebp),%ecx + xorl %esi,%eax + xorl %esi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%edi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%edi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%edi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%edi + movl 32(%esp),%ebp + + # Round 3 + + movl 36(%esp),%eax + movl %edi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %edi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 24(%ebp),%ebx + xorl %ebx,%eax + movl 28(%ebp),%ecx + xorl %edi,%eax + xorl %edi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%esi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%esi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%esi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%esi + movl 32(%esp),%ebp + + # Round 4 + + movl 36(%esp),%eax + movl %esi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %esi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 32(%ebp),%ebx + xorl %ebx,%eax + movl 36(%ebp),%ecx + xorl %esi,%eax + xorl %esi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%edi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%edi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%edi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%edi + movl 32(%esp),%ebp + + # Round 5 + + movl 36(%esp),%eax + movl %edi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %edi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 40(%ebp),%ebx + xorl %ebx,%eax + movl 44(%ebp),%ecx + xorl %edi,%eax + xorl %edi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%esi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%esi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%esi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%esi + movl 32(%esp),%ebp + + # Round 6 + + movl 36(%esp),%eax + movl %esi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %esi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 48(%ebp),%ebx + xorl %ebx,%eax + movl 52(%ebp),%ecx + xorl %esi,%eax + xorl %esi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%edi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%edi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%edi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%edi + movl 32(%esp),%ebp + + # Round 7 + + movl 36(%esp),%eax + movl %edi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %edi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 56(%ebp),%ebx + xorl %ebx,%eax + movl 60(%ebp),%ecx + xorl %edi,%eax + xorl %edi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%esi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%esi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%esi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%esi + movl 32(%esp),%ebp + + # Round 8 + + movl 36(%esp),%eax + movl %esi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %esi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 64(%ebp),%ebx + xorl %ebx,%eax + movl 68(%ebp),%ecx + xorl %esi,%eax + xorl %esi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%edi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%edi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%edi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%edi + movl 32(%esp),%ebp + + # Round 9 + + movl 36(%esp),%eax + movl %edi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %edi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 72(%ebp),%ebx + xorl %ebx,%eax + movl 76(%ebp),%ecx + xorl %edi,%eax + xorl %edi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%esi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%esi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%esi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%esi + movl 32(%esp),%ebp + + # Round 10 + + movl 36(%esp),%eax + movl %esi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %esi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 80(%ebp),%ebx + xorl %ebx,%eax + movl 84(%ebp),%ecx + xorl %esi,%eax + xorl %esi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%edi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%edi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%edi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%edi + movl 32(%esp),%ebp + + # Round 11 + + movl 36(%esp),%eax + movl %edi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %edi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 88(%ebp),%ebx + xorl %ebx,%eax + movl 92(%ebp),%ecx + xorl %edi,%eax + xorl %edi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%esi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%esi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%esi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%esi + movl 32(%esp),%ebp + + # Round 12 + + movl 36(%esp),%eax + movl %esi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %esi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 96(%ebp),%ebx + xorl %ebx,%eax + movl 100(%ebp),%ecx + xorl %esi,%eax + xorl %esi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%edi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%edi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%edi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%edi + movl 32(%esp),%ebp + + # Round 13 + + movl 36(%esp),%eax + movl %edi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %edi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 104(%ebp),%ebx + xorl %ebx,%eax + movl 108(%ebp),%ecx + xorl %edi,%eax + xorl %edi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%esi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%esi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%esi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%esi + movl 32(%esp),%ebp + + # Round 14 + + movl 36(%esp),%eax + movl %esi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %esi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 112(%ebp),%ebx + xorl %ebx,%eax + movl 116(%ebp),%ecx + xorl %esi,%eax + xorl %esi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%edi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%edi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%edi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%edi + movl 32(%esp),%ebp + + # Round 15 + + movl 36(%esp),%eax + movl %edi,%edx + shrl $16,%edx + movl 40(%esp),%ecx + xorl %edi,%edx + andl %edx,%eax + andl %ecx,%edx + movl %eax,%ebx + shll $16,%ebx + movl %edx,%ecx + shll $16,%ecx + xorl %ebx,%eax + xorl %ecx,%edx + movl 120(%ebp),%ebx + xorl %ebx,%eax + movl 124(%ebp),%ecx + xorl %edi,%eax + xorl %edi,%edx + xorl %ecx,%edx + andl $0xfcfcfcfc,%eax + xorl %ebx,%ebx + andl $0xcfcfcfcf,%edx + xorl %ecx,%ecx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + movl 4(%esp),%ebp + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + movl 0x600(%ebp,%ebx,1),%ebx + xorl %ebx,%esi + movl 0x700(%ebp,%ecx,1),%ebx + xorl %ebx,%esi + movl 0x400(%ebp,%eax,1),%ebx + xorl %ebx,%esi + movl 0x500(%ebp,%edx,1),%ebx + xorl %ebx,%esi + movl 32(%esp),%ebp + movl (%esp),%ebx + movl %edi,%eax + decl %ebx + movl %esi,%edi + movl %eax,%esi + movl %ebx,(%esp) + jnz L000start + + # FP + + movl 28(%esp),%edx + rorl $1,%edi + movl %esi,%eax + xorl %edi,%esi + andl $0xaaaaaaaa,%esi + xorl %esi,%eax + xorl %esi,%edi + + roll $23,%eax + movl %eax,%esi + xorl %edi,%eax + andl $0x03fc03fc,%eax + xorl %eax,%esi + xorl %eax,%edi + + roll $10,%esi + movl %esi,%eax + xorl %edi,%esi + andl $0x33333333,%esi + xorl %esi,%eax + xorl %esi,%edi + + roll $18,%edi + movl %edi,%esi + xorl %eax,%edi + andl $0xfff0000f,%edi + xorl %edi,%esi + xorl %edi,%eax + + roll $12,%esi + movl %esi,%edi + xorl %eax,%esi + andl $0xf0f0f0f0,%esi + xorl %esi,%edi + xorl %esi,%eax + + rorl $4,%eax + movl %eax,(%edx) + movl %edi,4(%edx) + addl $8,%esp + popl %edi + popl %esi + popl %ebx + popl %ebp + ret diff --git a/deps/openssl/asm/x86-macosx-gas/des/des-586.s b/deps/openssl/asm/x86-macosx-gas/des/des-586.s new file mode 100644 index 0000000000..f9e0ad3337 --- /dev/null +++ b/deps/openssl/asm/x86-macosx-gas/des/des-586.s @@ -0,0 +1,1873 @@ +.file "des-586.s" +.text +.globl _DES_SPtrans +.align 4 +__x86_DES_encrypt: + pushl %ecx + # Round 0 + + movl (%ecx),%eax + xorl %ebx,%ebx + movl 4(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + # Round 1 + + movl 8(%ecx),%eax + xorl %ebx,%ebx + movl 12(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + # Round 2 + + movl 16(%ecx),%eax + xorl %ebx,%ebx + movl 20(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + # Round 3 + + movl 24(%ecx),%eax + xorl %ebx,%ebx + movl 28(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + # Round 4 + + movl 32(%ecx),%eax + xorl %ebx,%ebx + movl 36(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + # Round 5 + + movl 40(%ecx),%eax + xorl %ebx,%ebx + movl 44(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + # Round 6 + + movl 48(%ecx),%eax + xorl %ebx,%ebx + movl 52(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + # Round 7 + + movl 56(%ecx),%eax + xorl %ebx,%ebx + movl 60(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + # Round 8 + + movl 64(%ecx),%eax + xorl %ebx,%ebx + movl 68(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + # Round 9 + + movl 72(%ecx),%eax + xorl %ebx,%ebx + movl 76(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + # Round 10 + + movl 80(%ecx),%eax + xorl %ebx,%ebx + movl 84(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + # Round 11 + + movl 88(%ecx),%eax + xorl %ebx,%ebx + movl 92(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + # Round 12 + + movl 96(%ecx),%eax + xorl %ebx,%ebx + movl 100(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + # Round 13 + + movl 104(%ecx),%eax + xorl %ebx,%ebx + movl 108(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + # Round 14 + + movl 112(%ecx),%eax + xorl %ebx,%ebx + movl 116(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + # Round 15 + + movl 120(%ecx),%eax + xorl %ebx,%ebx + movl 124(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + addl $4,%esp + ret +.align 4 +__x86_DES_decrypt: + pushl %ecx + # Round 15 + + movl 120(%ecx),%eax + xorl %ebx,%ebx + movl 124(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + # Round 14 + + movl 112(%ecx),%eax + xorl %ebx,%ebx + movl 116(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + # Round 13 + + movl 104(%ecx),%eax + xorl %ebx,%ebx + movl 108(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + # Round 12 + + movl 96(%ecx),%eax + xorl %ebx,%ebx + movl 100(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + # Round 11 + + movl 88(%ecx),%eax + xorl %ebx,%ebx + movl 92(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + # Round 10 + + movl 80(%ecx),%eax + xorl %ebx,%ebx + movl 84(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + # Round 9 + + movl 72(%ecx),%eax + xorl %ebx,%ebx + movl 76(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + # Round 8 + + movl 64(%ecx),%eax + xorl %ebx,%ebx + movl 68(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + # Round 7 + + movl 56(%ecx),%eax + xorl %ebx,%ebx + movl 60(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + # Round 6 + + movl 48(%ecx),%eax + xorl %ebx,%ebx + movl 52(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + # Round 5 + + movl 40(%ecx),%eax + xorl %ebx,%ebx + movl 44(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + # Round 4 + + movl 32(%ecx),%eax + xorl %ebx,%ebx + movl 36(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + # Round 3 + + movl 24(%ecx),%eax + xorl %ebx,%ebx + movl 28(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + # Round 2 + + movl 16(%ecx),%eax + xorl %ebx,%ebx + movl 20(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + # Round 1 + + movl 8(%ecx),%eax + xorl %ebx,%ebx + movl 12(%ecx),%edx + xorl %esi,%eax + xorl %ecx,%ecx + xorl %esi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%edi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%edi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%edi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%edi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%edi + xorl 0x700(%ebp,%ecx,1),%edi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%edi + xorl 0x500(%ebp,%edx,1),%edi + # Round 0 + + movl (%ecx),%eax + xorl %ebx,%ebx + movl 4(%ecx),%edx + xorl %edi,%eax + xorl %ecx,%ecx + xorl %edi,%edx + andl $0xfcfcfcfc,%eax + andl $0xcfcfcfcf,%edx + movb %al,%bl + movb %ah,%cl + rorl $4,%edx + xorl (%ebp,%ebx,1),%esi + movb %dl,%bl + xorl 0x200(%ebp,%ecx,1),%esi + movb %dh,%cl + shrl $16,%eax + xorl 0x100(%ebp,%ebx,1),%esi + movb %ah,%bl + shrl $16,%edx + xorl 0x300(%ebp,%ecx,1),%esi + movb %dh,%cl + andl $0xff,%eax + andl $0xff,%edx + xorl 0x600(%ebp,%ebx,1),%esi + xorl 0x700(%ebp,%ecx,1),%esi + movl (%esp),%ecx + xorl 0x400(%ebp,%eax,1),%esi + xorl 0x500(%ebp,%edx,1),%esi + addl $4,%esp + ret +.globl _DES_encrypt1 +.align 4 +_DES_encrypt1: +L_DES_encrypt1_begin: + pushl %esi + pushl %edi + + # Load the 2 words + + movl 12(%esp),%esi + xorl %ecx,%ecx + pushl %ebx + pushl %ebp + movl (%esi),%eax + movl 28(%esp),%ebx + movl 4(%esi),%edi + + # IP + + roll $4,%eax + movl %eax,%esi + xorl %edi,%eax + andl $0xf0f0f0f0,%eax + xorl %eax,%esi + xorl %eax,%edi + + roll $20,%edi + movl %edi,%eax + xorl %esi,%edi + andl $0xfff0000f,%edi + xorl %edi,%eax + xorl %edi,%esi + + roll $14,%eax + movl %eax,%edi + xorl %esi,%eax + andl $0x33333333,%eax + xorl %eax,%edi + xorl %eax,%esi + + roll $22,%esi + movl %esi,%eax + xorl %edi,%esi + andl $0x03fc03fc,%esi + xorl %esi,%eax + xorl %esi,%edi + + roll $9,%eax + movl %eax,%esi + xorl %edi,%eax + andl $0xaaaaaaaa,%eax + xorl %eax,%esi + xorl %eax,%edi + + roll $1,%edi + call L000pic_point +L000pic_point: + popl %ebp + leal _DES_SPtrans-L000pic_point(%ebp),%ebp + movl 24(%esp),%ecx + cmpl $0,%ebx + je L001decrypt + call __x86_DES_encrypt + jmp L002done +L001decrypt: + call __x86_DES_decrypt +L002done: + + # FP + + movl 20(%esp),%edx + rorl $1,%esi + movl %edi,%eax + xorl %esi,%edi + andl $0xaaaaaaaa,%edi + xorl %edi,%eax + xorl %edi,%esi + + roll $23,%eax + movl %eax,%edi + xorl %esi,%eax + andl $0x03fc03fc,%eax + xorl %eax,%edi + xorl %eax,%esi + + roll $10,%edi + movl %edi,%eax + xorl %esi,%edi + andl $0x33333333,%edi + xorl %edi,%eax + xorl %edi,%esi + + roll $18,%esi + movl %esi,%edi + xorl %eax,%esi + andl $0xfff0000f,%esi + xorl %esi,%edi + xorl %esi,%eax + + roll $12,%edi + movl %edi,%esi + xorl %eax,%edi + andl $0xf0f0f0f0,%edi + xorl %edi,%esi + xorl %edi,%eax + + rorl $4,%eax + movl %eax,(%edx) + movl %esi,4(%edx) + popl %ebp + popl %ebx + popl %edi + popl %esi + ret +.globl _DES_encrypt2 +.align 4 +_DES_encrypt2: +L_DES_encrypt2_begin: + pushl %esi + pushl %edi + + # Load the 2 words + + movl 12(%esp),%eax + xorl %ecx,%ecx + pushl %ebx + pushl %ebp + movl (%eax),%esi + movl 28(%esp),%ebx + roll $3,%esi + movl 4(%eax),%edi + roll $3,%edi + call L003pic_point +L003pic_point: + popl %ebp + leal _DES_SPtrans-L003pic_point(%ebp),%ebp + movl 24(%esp),%ecx + cmpl $0,%ebx + je L004decrypt + call __x86_DES_encrypt + jmp L005done +L004decrypt: + call __x86_DES_decrypt +L005done: + + # Fixup + + rorl $3,%edi + movl 20(%esp),%eax + rorl $3,%esi + movl %edi,(%eax) + movl %esi,4(%eax) + popl %ebp + popl %ebx + popl %edi + popl %esi + ret +.globl _DES_encrypt3 +.align 4 +_DES_encrypt3: +L_DES_encrypt3_begin: + pushl %ebx + movl 8(%esp),%ebx + pushl %ebp + pushl %esi + pushl %edi + + # Load the data words + + movl (%ebx),%edi + movl 4(%ebx),%esi + subl $12,%esp + + # IP + + roll $4,%edi + movl %edi,%edx + xorl %esi,%edi + andl $0xf0f0f0f0,%edi + xorl %edi,%edx + xorl %edi,%esi + + roll $20,%esi + movl %esi,%edi + xorl %edx,%esi + andl $0xfff0000f,%esi + xorl %esi,%edi + xorl %esi,%edx + + roll $14,%edi + movl %edi,%esi + xorl %edx,%edi + andl $0x33333333,%edi + xorl %edi,%esi + xorl %edi,%edx + + roll $22,%edx + movl %edx,%edi + xorl %esi,%edx + andl $0x03fc03fc,%edx + xorl %edx,%edi + xorl %edx,%esi + + roll $9,%edi + movl %edi,%edx + xorl %esi,%edi + andl $0xaaaaaaaa,%edi + xorl %edi,%edx + xorl %edi,%esi + + rorl $3,%edx + rorl $2,%esi + movl %esi,4(%ebx) + movl 36(%esp),%eax + movl %edx,(%ebx) + movl 40(%esp),%edi + movl 44(%esp),%esi + movl $1,8(%esp) + movl %eax,4(%esp) + movl %ebx,(%esp) + call L_DES_encrypt2_begin + movl $0,8(%esp) + movl %edi,4(%esp) + movl %ebx,(%esp) + call L_DES_encrypt2_begin + movl $1,8(%esp) + movl %esi,4(%esp) + movl %ebx,(%esp) + call L_DES_encrypt2_begin + addl $12,%esp + movl (%ebx),%edi + movl 4(%ebx),%esi + + # FP + + roll $2,%esi + roll $3,%edi + movl %edi,%eax + xorl %esi,%edi + andl $0xaaaaaaaa,%edi + xorl %edi,%eax + xorl %edi,%esi + + roll $23,%eax + movl %eax,%edi + xorl %esi,%eax + andl $0x03fc03fc,%eax + xorl %eax,%edi + xorl %eax,%esi + + roll $10,%edi + movl %edi,%eax + xorl %esi,%edi + andl $0x33333333,%edi + xorl %edi,%eax + xorl %edi,%esi + + roll $18,%esi + movl %esi,%edi + xorl %eax,%esi + andl $0xfff0000f,%esi + xorl %esi,%edi + xorl %esi,%eax + + roll $12,%edi + movl %edi,%esi + xorl %eax,%edi + andl $0xf0f0f0f0,%edi + xorl %edi,%esi + xorl %edi,%eax + + rorl $4,%eax + movl %eax,(%ebx) + movl %esi,4(%ebx) + popl %edi + popl %esi + popl %ebp + popl %ebx + ret +.globl _DES_decrypt3 +.align 4 +_DES_decrypt3: +L_DES_decrypt3_begin: + pushl %ebx + movl 8(%esp),%ebx + pushl %ebp + pushl %esi + pushl %edi + + # Load the data words + + movl (%ebx),%edi + movl 4(%ebx),%esi + subl $12,%esp + + # IP + + roll $4,%edi + movl %edi,%edx + xorl %esi,%edi + andl $0xf0f0f0f0,%edi + xorl %edi,%edx + xorl %edi,%esi + + roll $20,%esi + movl %esi,%edi + xorl %edx,%esi + andl $0xfff0000f,%esi + xorl %esi,%edi + xorl %esi,%edx + + roll $14,%edi + movl %edi,%esi + xorl %edx,%edi + andl $0x33333333,%edi + xorl %edi,%esi + xorl %edi,%edx + + roll $22,%edx + movl %edx,%edi + xorl %esi,%edx + andl $0x03fc03fc,%edx + xorl %edx,%edi + xorl %edx,%esi + + roll $9,%edi + movl %edi,%edx + xorl %esi,%edi + andl $0xaaaaaaaa,%edi + xorl %edi,%edx + xorl %edi,%esi + + rorl $3,%edx + rorl $2,%esi + movl %esi,4(%ebx) + movl 36(%esp),%esi + movl %edx,(%ebx) + movl 40(%esp),%edi + movl 44(%esp),%eax + movl $0,8(%esp) + movl %eax,4(%esp) + movl %ebx,(%esp) + call L_DES_encrypt2_begin + movl $1,8(%esp) + movl %edi,4(%esp) + movl %ebx,(%esp) + call L_DES_encrypt2_begin + movl $0,8(%esp) + movl %esi,4(%esp) + movl %ebx,(%esp) + call L_DES_encrypt2_begin + addl $12,%esp + movl (%ebx),%edi + movl 4(%ebx),%esi + + # FP + + roll $2,%esi + roll $3,%edi + movl %edi,%eax + xorl %esi,%edi + andl $0xaaaaaaaa,%edi + xorl %edi,%eax + xorl %edi,%esi + + roll $23,%eax + movl %eax,%edi + xorl %esi,%eax + andl $0x03fc03fc,%eax + xorl %eax,%edi + xorl %eax,%esi + + roll $10,%edi + movl %edi,%eax + xorl %esi,%edi + andl $0x33333333,%edi + xorl %edi,%eax + xorl %edi,%esi + + roll $18,%esi + movl %esi,%edi + xorl %eax,%esi + andl $0xfff0000f,%esi + xorl %esi,%edi + xorl %esi,%eax + + roll $12,%edi + movl %edi,%esi + xorl %eax,%edi + andl $0xf0f0f0f0,%edi + xorl %edi,%esi + xorl %edi,%eax + + rorl $4,%eax + movl %eax,(%ebx) + movl %esi,4(%ebx) + popl %edi + popl %esi + popl %ebp + popl %ebx + ret +.globl _DES_ncbc_encrypt +.align 4 +_DES_ncbc_encrypt: +L_DES_ncbc_encrypt_begin: + + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 28(%esp),%ebp + # getting iv ptr from parameter 4 + + movl 36(%esp),%ebx + movl (%ebx),%esi + movl 4(%ebx),%edi + pushl %edi + pushl %esi + pushl %edi + pushl %esi + movl %esp,%ebx + movl 36(%esp),%esi + movl 40(%esp),%edi + # getting encrypt flag from parameter 5 + + movl 56(%esp),%ecx + # get and push parameter 5 + + pushl %ecx + # get and push parameter 3 + + movl 52(%esp),%eax + pushl %eax + pushl %ebx + cmpl $0,%ecx + jz L006decrypt + andl $4294967288,%ebp + movl 12(%esp),%eax + movl 16(%esp),%ebx + jz L007encrypt_finish +L008encrypt_loop: + movl (%esi),%ecx + movl 4(%esi),%edx + xorl %ecx,%eax + xorl %edx,%ebx + movl %eax,12(%esp) + movl %ebx,16(%esp) + call L_DES_encrypt1_begin + movl 12(%esp),%eax + movl 16(%esp),%ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz L008encrypt_loop +L007encrypt_finish: + movl 56(%esp),%ebp + andl $7,%ebp + jz L009finish + call L010PIC_point +L010PIC_point: + popl %edx + leal L011cbc_enc_jmp_table-L010PIC_point(%edx),%ecx + movl (%ecx,%ebp,4),%ebp + addl %edx,%ebp + xorl %ecx,%ecx + xorl %edx,%edx + jmp *%ebp +L012ej7: + movb 6(%esi),%dh + shll $8,%edx +L013ej6: + movb 5(%esi),%dh +L014ej5: + movb 4(%esi),%dl +L015ej4: + movl (%esi),%ecx + jmp L016ejend +L017ej3: + movb 2(%esi),%ch + shll $8,%ecx +L018ej2: + movb 1(%esi),%ch +L019ej1: + movb (%esi),%cl +L016ejend: + xorl %ecx,%eax + xorl %edx,%ebx + movl %eax,12(%esp) + movl %ebx,16(%esp) + call L_DES_encrypt1_begin + movl 12(%esp),%eax + movl 16(%esp),%ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + jmp L009finish +L006decrypt: + andl $4294967288,%ebp + movl 20(%esp),%eax + movl 24(%esp),%ebx + jz L020decrypt_finish +L021decrypt_loop: + movl (%esi),%eax + movl 4(%esi),%ebx + movl %eax,12(%esp) + movl %ebx,16(%esp) + call L_DES_encrypt1_begin + movl 12(%esp),%eax + movl 16(%esp),%ebx + movl 20(%esp),%ecx + movl 24(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx + movl %ecx,(%edi) + movl %edx,4(%edi) + movl %eax,20(%esp) + movl %ebx,24(%esp) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz L021decrypt_loop +L020decrypt_finish: + movl 56(%esp),%ebp + andl $7,%ebp + jz L009finish + movl (%esi),%eax + movl 4(%esi),%ebx + movl %eax,12(%esp) + movl %ebx,16(%esp) + call L_DES_encrypt1_begin + movl 12(%esp),%eax + movl 16(%esp),%ebx + movl 20(%esp),%ecx + movl 24(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx +L022dj7: + rorl $16,%edx + movb %dl,6(%edi) + shrl $16,%edx +L023dj6: + movb %dh,5(%edi) +L024dj5: + movb %dl,4(%edi) +L025dj4: + movl %ecx,(%edi) + jmp L026djend +L027dj3: + rorl $16,%ecx + movb %cl,2(%edi) + shll $16,%ecx +L028dj2: + movb %ch,1(%esi) +L029dj1: + movb %cl,(%esi) +L026djend: + jmp L009finish +L009finish: + movl 64(%esp),%ecx + addl $28,%esp + movl %eax,(%ecx) + movl %ebx,4(%ecx) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 6,0x90 +L011cbc_enc_jmp_table: +.long 0 +.long L019ej1-L010PIC_point +.long L018ej2-L010PIC_point +.long L017ej3-L010PIC_point +.long L015ej4-L010PIC_point +.long L014ej5-L010PIC_point +.long L013ej6-L010PIC_point +.long L012ej7-L010PIC_point +.align 6,0x90 +.globl _DES_ede3_cbc_encrypt +.align 4 +_DES_ede3_cbc_encrypt: +L_DES_ede3_cbc_encrypt_begin: + + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 28(%esp),%ebp + # getting iv ptr from parameter 6 + + movl 44(%esp),%ebx + movl (%ebx),%esi + movl 4(%ebx),%edi + pushl %edi + pushl %esi + pushl %edi + pushl %esi + movl %esp,%ebx + movl 36(%esp),%esi + movl 40(%esp),%edi + # getting encrypt flag from parameter 7 + + movl 64(%esp),%ecx + # get and push parameter 5 + + movl 56(%esp),%eax + pushl %eax + # get and push parameter 4 + + movl 56(%esp),%eax + pushl %eax + # get and push parameter 3 + + movl 56(%esp),%eax + pushl %eax + pushl %ebx + cmpl $0,%ecx + jz L030decrypt + andl $4294967288,%ebp + movl 16(%esp),%eax + movl 20(%esp),%ebx + jz L031encrypt_finish +L032encrypt_loop: + movl (%esi),%ecx + movl 4(%esi),%edx + xorl %ecx,%eax + xorl %edx,%ebx + movl %eax,16(%esp) + movl %ebx,20(%esp) + call L_DES_encrypt3_begin + movl 16(%esp),%eax + movl 20(%esp),%ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz L032encrypt_loop +L031encrypt_finish: + movl 60(%esp),%ebp + andl $7,%ebp + jz L033finish + call L034PIC_point +L034PIC_point: + popl %edx + leal L035cbc_enc_jmp_table-L034PIC_point(%edx),%ecx + movl (%ecx,%ebp,4),%ebp + addl %edx,%ebp + xorl %ecx,%ecx + xorl %edx,%edx + jmp *%ebp +L036ej7: + movb 6(%esi),%dh + shll $8,%edx +L037ej6: + movb 5(%esi),%dh +L038ej5: + movb 4(%esi),%dl +L039ej4: + movl (%esi),%ecx + jmp L040ejend +L041ej3: + movb 2(%esi),%ch + shll $8,%ecx +L042ej2: + movb 1(%esi),%ch +L043ej1: + movb (%esi),%cl +L040ejend: + xorl %ecx,%eax + xorl %edx,%ebx + movl %eax,16(%esp) + movl %ebx,20(%esp) + call L_DES_encrypt3_begin + movl 16(%esp),%eax + movl 20(%esp),%ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + jmp L033finish +L030decrypt: + andl $4294967288,%ebp + movl 24(%esp),%eax + movl 28(%esp),%ebx + jz L044decrypt_finish +L045decrypt_loop: + movl (%esi),%eax + movl 4(%esi),%ebx + movl %eax,16(%esp) + movl %ebx,20(%esp) + call L_DES_decrypt3_begin + movl 16(%esp),%eax + movl 20(%esp),%ebx + movl 24(%esp),%ecx + movl 28(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx + movl %ecx,(%edi) + movl %edx,4(%edi) + movl %eax,24(%esp) + movl %ebx,28(%esp) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz L045decrypt_loop +L044decrypt_finish: + movl 60(%esp),%ebp + andl $7,%ebp + jz L033finish + movl (%esi),%eax + movl 4(%esi),%ebx + movl %eax,16(%esp) + movl %ebx,20(%esp) + call L_DES_decrypt3_begin + movl 16(%esp),%eax + movl 20(%esp),%ebx + movl 24(%esp),%ecx + movl 28(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx +L046dj7: + rorl $16,%edx + movb %dl,6(%edi) + shrl $16,%edx +L047dj6: + movb %dh,5(%edi) +L048dj5: + movb %dl,4(%edi) +L049dj4: + movl %ecx,(%edi) + jmp L050djend +L051dj3: + rorl $16,%ecx + movb %cl,2(%edi) + shll $16,%ecx +L052dj2: + movb %ch,1(%esi) +L053dj1: + movb %cl,(%esi) +L050djend: + jmp L033finish +L033finish: + movl 76(%esp),%ecx + addl $32,%esp + movl %eax,(%ecx) + movl %ebx,4(%ecx) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 6,0x90 +L035cbc_enc_jmp_table: +.long 0 +.long L043ej1-L034PIC_point +.long L042ej2-L034PIC_point +.long L041ej3-L034PIC_point +.long L039ej4-L034PIC_point +.long L038ej5-L034PIC_point +.long L037ej6-L034PIC_point +.long L036ej7-L034PIC_point +.align 6,0x90 +.align 6,0x90 +_DES_SPtrans: +.long 34080768,524288,33554434,34080770 +.long 33554432,526338,524290,33554434 +.long 526338,34080768,34078720,2050 +.long 33556482,33554432,0,524290 +.long 524288,2,33556480,526336 +.long 34080770,34078720,2050,33556480 +.long 2,2048,526336,34078722 +.long 2048,33556482,34078722,0 +.long 0,34080770,33556480,524290 +.long 34080768,524288,2050,33556480 +.long 34078722,2048,526336,33554434 +.long 526338,2,33554434,34078720 +.long 34080770,526336,34078720,33556482 +.long 33554432,2050,524290,0 +.long 524288,33554432,33556482,34080768 +.long 2,34078722,2048,526338 +.long 1074823184,0,1081344,1074790400 +.long 1073741840,32784,1073774592,1081344 +.long 32768,1074790416,16,1073774592 +.long 1048592,1074823168,1074790400,16 +.long 1048576,1073774608,1074790416,32768 +.long 1081360,1073741824,0,1048592 +.long 1073774608,1081360,1074823168,1073741840 +.long 1073741824,1048576,32784,1074823184 +.long 1048592,1074823168,1073774592,1081360 +.long 1074823184,1048592,1073741840,0 +.long 1073741824,32784,1048576,1074790416 +.long 32768,1073741824,1081360,1073774608 +.long 1074823168,32768,0,1073741840 +.long 16,1074823184,1081344,1074790400 +.long 1074790416,1048576,32784,1073774592 +.long 1073774608,16,1074790400,1081344 +.long 67108865,67371264,256,67109121 +.long 262145,67108864,67109121,262400 +.long 67109120,262144,67371008,1 +.long 67371265,257,1,67371009 +.long 0,262145,67371264,256 +.long 257,67371265,262144,67108865 +.long 67371009,67109120,262401,67371008 +.long 262400,0,67108864,262401 +.long 67371264,256,1,262144 +.long 257,262145,67371008,67109121 +.long 0,67371264,262400,67371009 +.long 262145,67108864,67371265,1 +.long 262401,67108865,67108864,67371265 +.long 262144,67109120,67109121,262400 +.long 67109120,0,67371009,257 +.long 67108865,262401,256,67371008 +.long 4198408,268439552,8,272633864 +.long 0,272629760,268439560,4194312 +.long 272633856,268435464,268435456,4104 +.long 268435464,4198408,4194304,268435456 +.long 272629768,4198400,4096,8 +.long 4198400,268439560,272629760,4096 +.long 4104,0,4194312,272633856 +.long 268439552,272629768,272633864,4194304 +.long 272629768,4104,4194304,268435464 +.long 4198400,268439552,8,272629760 +.long 268439560,0,4096,4194312 +.long 0,272629768,272633856,4096 +.long 268435456,272633864,4198408,4194304 +.long 272633864,8,268439552,4198408 +.long 4194312,4198400,272629760,268439560 +.long 4104,268435456,268435464,272633856 +.long 134217728,65536,1024,134284320 +.long 134283296,134218752,66592,134283264 +.long 65536,32,134217760,66560 +.long 134218784,134283296,134284288,0 +.long 66560,134217728,65568,1056 +.long 134218752,66592,0,134217760 +.long 32,134218784,134284320,65568 +.long 134283264,1024,1056,134284288 +.long 134284288,134218784,65568,134283264 +.long 65536,32,134217760,134218752 +.long 134217728,66560,134284320,0 +.long 66592,134217728,1024,65568 +.long 134218784,1024,0,134284320 +.long 134283296,134284288,1056,65536 +.long 66560,134283296,134218752,1056 +.long 32,66592,134283264,134217760 +.long 2147483712,2097216,0,2149588992 +.long 2097216,8192,2147491904,2097152 +.long 8256,2149589056,2105344,2147483648 +.long 2147491840,2147483712,2149580800,2105408 +.long 2097152,2147491904,2149580864,0 +.long 8192,64,2149588992,2149580864 +.long 2149589056,2149580800,2147483648,8256 +.long 64,2105344,2105408,2147491840 +.long 8256,2147483648,2147491840,2105408 +.long 2149588992,2097216,0,2147491840 +.long 2147483648,8192,2149580864,2097152 +.long 2097216,2149589056,2105344,64 +.long 2149589056,2105344,2097152,2147491904 +.long 2147483712,2149580800,2105408,0 +.long 8192,2147483712,2147491904,2149588992 +.long 2149580800,8256,64,2149580864 +.long 16384,512,16777728,16777220 +.long 16794116,16388,16896,0 +.long 16777216,16777732,516,16793600 +.long 4,16794112,16793600,516 +.long 16777732,16384,16388,16794116 +.long 0,16777728,16777220,16896 +.long 16793604,16900,16794112,4 +.long 16900,16793604,512,16777216 +.long 16900,16793600,16793604,516 +.long 16384,512,16777216,16793604 +.long 16777732,16900,16896,0 +.long 512,16777220,4,16777728 +.long 0,16777732,16777728,16896 +.long 516,16384,16794116,16777216 +.long 16794112,4,16388,16794116 +.long 16777220,16794112,16793600,16388 +.long 545259648,545390592,131200,0 +.long 537001984,8388736,545259520,545390720 +.long 128,536870912,8519680,131200 +.long 8519808,537002112,536871040,545259520 +.long 131072,8519808,8388736,537001984 +.long 545390720,536871040,0,8519680 +.long 536870912,8388608,537002112,545259648 +.long 8388608,131072,545390592,128 +.long 8388608,131072,536871040,545390720 +.long 131200,536870912,0,8519680 +.long 545259648,537002112,537001984,8388736 +.long 545390592,128,8388736,537001984 +.long 545390720,8388608,545259520,536871040 +.long 8519680,131200,537002112,545259520 +.long 128,545390592,8519808,0 +.long 536870912,545259648,131072,8519808 diff --git a/deps/openssl/asm/x86-macosx-gas/md5/md5-586.s b/deps/openssl/asm/x86-macosx-gas/md5/md5-586.s new file mode 100644 index 0000000000..5336574c86 --- /dev/null +++ b/deps/openssl/asm/x86-macosx-gas/md5/md5-586.s @@ -0,0 +1,745 @@ +.file "../openssl/crypto/md5/asm/md5-586.s" +.text +.globl _md5_block_asm_data_order +.align 4 +_md5_block_asm_data_order: +L_md5_block_asm_data_order_begin: + pushl %esi + pushl %edi + movl 12(%esp),%edi + movl 16(%esp),%esi + movl 20(%esp),%ecx + pushl %ebp + shll $6,%ecx + pushl %ebx + addl %esi,%ecx + subl $64,%ecx + movl (%edi),%eax + pushl %ecx + movl 4(%edi),%ebx + movl 8(%edi),%ecx + movl 12(%edi),%edx +L000start: + + # R0 section + + movl %ecx,%edi + movl (%esi),%ebp + # R0 0 + + xorl %edx,%edi + andl %ebx,%edi + leal 3614090360(%eax,%ebp,1),%eax + xorl %edx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $7,%eax + movl 4(%esi),%ebp + addl %ebx,%eax + # R0 1 + + xorl %ecx,%edi + andl %eax,%edi + leal 3905402710(%edx,%ebp,1),%edx + xorl %ecx,%edi + addl %edi,%edx + movl %eax,%edi + roll $12,%edx + movl 8(%esi),%ebp + addl %eax,%edx + # R0 2 + + xorl %ebx,%edi + andl %edx,%edi + leal 606105819(%ecx,%ebp,1),%ecx + xorl %ebx,%edi + addl %edi,%ecx + movl %edx,%edi + roll $17,%ecx + movl 12(%esi),%ebp + addl %edx,%ecx + # R0 3 + + xorl %eax,%edi + andl %ecx,%edi + leal 3250441966(%ebx,%ebp,1),%ebx + xorl %eax,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $22,%ebx + movl 16(%esi),%ebp + addl %ecx,%ebx + # R0 4 + + xorl %edx,%edi + andl %ebx,%edi + leal 4118548399(%eax,%ebp,1),%eax + xorl %edx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $7,%eax + movl 20(%esi),%ebp + addl %ebx,%eax + # R0 5 + + xorl %ecx,%edi + andl %eax,%edi + leal 1200080426(%edx,%ebp,1),%edx + xorl %ecx,%edi + addl %edi,%edx + movl %eax,%edi + roll $12,%edx + movl 24(%esi),%ebp + addl %eax,%edx + # R0 6 + + xorl %ebx,%edi + andl %edx,%edi + leal 2821735955(%ecx,%ebp,1),%ecx + xorl %ebx,%edi + addl %edi,%ecx + movl %edx,%edi + roll $17,%ecx + movl 28(%esi),%ebp + addl %edx,%ecx + # R0 7 + + xorl %eax,%edi + andl %ecx,%edi + leal 4249261313(%ebx,%ebp,1),%ebx + xorl %eax,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $22,%ebx + movl 32(%esi),%ebp + addl %ecx,%ebx + # R0 8 + + xorl %edx,%edi + andl %ebx,%edi + leal 1770035416(%eax,%ebp,1),%eax + xorl %edx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $7,%eax + movl 36(%esi),%ebp + addl %ebx,%eax + # R0 9 + + xorl %ecx,%edi + andl %eax,%edi + leal 2336552879(%edx,%ebp,1),%edx + xorl %ecx,%edi + addl %edi,%edx + movl %eax,%edi + roll $12,%edx + movl 40(%esi),%ebp + addl %eax,%edx + # R0 10 + + xorl %ebx,%edi + andl %edx,%edi + leal 4294925233(%ecx,%ebp,1),%ecx + xorl %ebx,%edi + addl %edi,%ecx + movl %edx,%edi + roll $17,%ecx + movl 44(%esi),%ebp + addl %edx,%ecx + # R0 11 + + xorl %eax,%edi + andl %ecx,%edi + leal 2304563134(%ebx,%ebp,1),%ebx + xorl %eax,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $22,%ebx + movl 48(%esi),%ebp + addl %ecx,%ebx + # R0 12 + + xorl %edx,%edi + andl %ebx,%edi + leal 1804603682(%eax,%ebp,1),%eax + xorl %edx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $7,%eax + movl 52(%esi),%ebp + addl %ebx,%eax + # R0 13 + + xorl %ecx,%edi + andl %eax,%edi + leal 4254626195(%edx,%ebp,1),%edx + xorl %ecx,%edi + addl %edi,%edx + movl %eax,%edi + roll $12,%edx + movl 56(%esi),%ebp + addl %eax,%edx + # R0 14 + + xorl %ebx,%edi + andl %edx,%edi + leal 2792965006(%ecx,%ebp,1),%ecx + xorl %ebx,%edi + addl %edi,%ecx + movl %edx,%edi + roll $17,%ecx + movl 60(%esi),%ebp + addl %edx,%ecx + # R0 15 + + xorl %eax,%edi + andl %ecx,%edi + leal 1236535329(%ebx,%ebp,1),%ebx + xorl %eax,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $22,%ebx + movl 4(%esi),%ebp + addl %ecx,%ebx + + # R1 section + + # R1 16 + + leal 4129170786(%eax,%ebp,1),%eax + xorl %ebx,%edi + andl %edx,%edi + movl 24(%esi),%ebp + xorl %ecx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $5,%eax + addl %ebx,%eax + # R1 17 + + leal 3225465664(%edx,%ebp,1),%edx + xorl %eax,%edi + andl %ecx,%edi + movl 44(%esi),%ebp + xorl %ebx,%edi + addl %edi,%edx + movl %eax,%edi + roll $9,%edx + addl %eax,%edx + # R1 18 + + leal 643717713(%ecx,%ebp,1),%ecx + xorl %edx,%edi + andl %ebx,%edi + movl (%esi),%ebp + xorl %eax,%edi + addl %edi,%ecx + movl %edx,%edi + roll $14,%ecx + addl %edx,%ecx + # R1 19 + + leal 3921069994(%ebx,%ebp,1),%ebx + xorl %ecx,%edi + andl %eax,%edi + movl 20(%esi),%ebp + xorl %edx,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $20,%ebx + addl %ecx,%ebx + # R1 20 + + leal 3593408605(%eax,%ebp,1),%eax + xorl %ebx,%edi + andl %edx,%edi + movl 40(%esi),%ebp + xorl %ecx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $5,%eax + addl %ebx,%eax + # R1 21 + + leal 38016083(%edx,%ebp,1),%edx + xorl %eax,%edi + andl %ecx,%edi + movl 60(%esi),%ebp + xorl %ebx,%edi + addl %edi,%edx + movl %eax,%edi + roll $9,%edx + addl %eax,%edx + # R1 22 + + leal 3634488961(%ecx,%ebp,1),%ecx + xorl %edx,%edi + andl %ebx,%edi + movl 16(%esi),%ebp + xorl %eax,%edi + addl %edi,%ecx + movl %edx,%edi + roll $14,%ecx + addl %edx,%ecx + # R1 23 + + leal 3889429448(%ebx,%ebp,1),%ebx + xorl %ecx,%edi + andl %eax,%edi + movl 36(%esi),%ebp + xorl %edx,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $20,%ebx + addl %ecx,%ebx + # R1 24 + + leal 568446438(%eax,%ebp,1),%eax + xorl %ebx,%edi + andl %edx,%edi + movl 56(%esi),%ebp + xorl %ecx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $5,%eax + addl %ebx,%eax + # R1 25 + + leal 3275163606(%edx,%ebp,1),%edx + xorl %eax,%edi + andl %ecx,%edi + movl 12(%esi),%ebp + xorl %ebx,%edi + addl %edi,%edx + movl %eax,%edi + roll $9,%edx + addl %eax,%edx + # R1 26 + + leal 4107603335(%ecx,%ebp,1),%ecx + xorl %edx,%edi + andl %ebx,%edi + movl 32(%esi),%ebp + xorl %eax,%edi + addl %edi,%ecx + movl %edx,%edi + roll $14,%ecx + addl %edx,%ecx + # R1 27 + + leal 1163531501(%ebx,%ebp,1),%ebx + xorl %ecx,%edi + andl %eax,%edi + movl 52(%esi),%ebp + xorl %edx,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $20,%ebx + addl %ecx,%ebx + # R1 28 + + leal 2850285829(%eax,%ebp,1),%eax + xorl %ebx,%edi + andl %edx,%edi + movl 8(%esi),%ebp + xorl %ecx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $5,%eax + addl %ebx,%eax + # R1 29 + + leal 4243563512(%edx,%ebp,1),%edx + xorl %eax,%edi + andl %ecx,%edi + movl 28(%esi),%ebp + xorl %ebx,%edi + addl %edi,%edx + movl %eax,%edi + roll $9,%edx + addl %eax,%edx + # R1 30 + + leal 1735328473(%ecx,%ebp,1),%ecx + xorl %edx,%edi + andl %ebx,%edi + movl 48(%esi),%ebp + xorl %eax,%edi + addl %edi,%ecx + movl %edx,%edi + roll $14,%ecx + addl %edx,%ecx + # R1 31 + + leal 2368359562(%ebx,%ebp,1),%ebx + xorl %ecx,%edi + andl %eax,%edi + movl 20(%esi),%ebp + xorl %edx,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $20,%ebx + addl %ecx,%ebx + + # R2 section + + # R2 32 + + xorl %edx,%edi + xorl %ebx,%edi + leal 4294588738(%eax,%ebp,1),%eax + addl %edi,%eax + roll $4,%eax + movl 32(%esi),%ebp + movl %ebx,%edi + # R2 33 + + leal 2272392833(%edx,%ebp,1),%edx + addl %ebx,%eax + xorl %ecx,%edi + xorl %eax,%edi + movl 44(%esi),%ebp + addl %edi,%edx + movl %eax,%edi + roll $11,%edx + addl %eax,%edx + # R2 34 + + xorl %ebx,%edi + xorl %edx,%edi + leal 1839030562(%ecx,%ebp,1),%ecx + addl %edi,%ecx + roll $16,%ecx + movl 56(%esi),%ebp + movl %edx,%edi + # R2 35 + + leal 4259657740(%ebx,%ebp,1),%ebx + addl %edx,%ecx + xorl %eax,%edi + xorl %ecx,%edi + movl 4(%esi),%ebp + addl %edi,%ebx + movl %ecx,%edi + roll $23,%ebx + addl %ecx,%ebx + # R2 36 + + xorl %edx,%edi + xorl %ebx,%edi + leal 2763975236(%eax,%ebp,1),%eax + addl %edi,%eax + roll $4,%eax + movl 16(%esi),%ebp + movl %ebx,%edi + # R2 37 + + leal 1272893353(%edx,%ebp,1),%edx + addl %ebx,%eax + xorl %ecx,%edi + xorl %eax,%edi + movl 28(%esi),%ebp + addl %edi,%edx + movl %eax,%edi + roll $11,%edx + addl %eax,%edx + # R2 38 + + xorl %ebx,%edi + xorl %edx,%edi + leal 4139469664(%ecx,%ebp,1),%ecx + addl %edi,%ecx + roll $16,%ecx + movl 40(%esi),%ebp + movl %edx,%edi + # R2 39 + + leal 3200236656(%ebx,%ebp,1),%ebx + addl %edx,%ecx + xorl %eax,%edi + xorl %ecx,%edi + movl 52(%esi),%ebp + addl %edi,%ebx + movl %ecx,%edi + roll $23,%ebx + addl %ecx,%ebx + # R2 40 + + xorl %edx,%edi + xorl %ebx,%edi + leal 681279174(%eax,%ebp,1),%eax + addl %edi,%eax + roll $4,%eax + movl (%esi),%ebp + movl %ebx,%edi + # R2 41 + + leal 3936430074(%edx,%ebp,1),%edx + addl %ebx,%eax + xorl %ecx,%edi + xorl %eax,%edi + movl 12(%esi),%ebp + addl %edi,%edx + movl %eax,%edi + roll $11,%edx + addl %eax,%edx + # R2 42 + + xorl %ebx,%edi + xorl %edx,%edi + leal 3572445317(%ecx,%ebp,1),%ecx + addl %edi,%ecx + roll $16,%ecx + movl 24(%esi),%ebp + movl %edx,%edi + # R2 43 + + leal 76029189(%ebx,%ebp,1),%ebx + addl %edx,%ecx + xorl %eax,%edi + xorl %ecx,%edi + movl 36(%esi),%ebp + addl %edi,%ebx + movl %ecx,%edi + roll $23,%ebx + addl %ecx,%ebx + # R2 44 + + xorl %edx,%edi + xorl %ebx,%edi + leal 3654602809(%eax,%ebp,1),%eax + addl %edi,%eax + roll $4,%eax + movl 48(%esi),%ebp + movl %ebx,%edi + # R2 45 + + leal 3873151461(%edx,%ebp,1),%edx + addl %ebx,%eax + xorl %ecx,%edi + xorl %eax,%edi + movl 60(%esi),%ebp + addl %edi,%edx + movl %eax,%edi + roll $11,%edx + addl %eax,%edx + # R2 46 + + xorl %ebx,%edi + xorl %edx,%edi + leal 530742520(%ecx,%ebp,1),%ecx + addl %edi,%ecx + roll $16,%ecx + movl 8(%esi),%ebp + movl %edx,%edi + # R2 47 + + leal 3299628645(%ebx,%ebp,1),%ebx + addl %edx,%ecx + xorl %eax,%edi + xorl %ecx,%edi + movl (%esi),%ebp + addl %edi,%ebx + movl $-1,%edi + roll $23,%ebx + addl %ecx,%ebx + + # R3 section + + # R3 48 + + xorl %edx,%edi + orl %ebx,%edi + leal 4096336452(%eax,%ebp,1),%eax + xorl %ecx,%edi + movl 28(%esi),%ebp + addl %edi,%eax + movl $-1,%edi + roll $6,%eax + xorl %ecx,%edi + addl %ebx,%eax + # R3 49 + + orl %eax,%edi + leal 1126891415(%edx,%ebp,1),%edx + xorl %ebx,%edi + movl 56(%esi),%ebp + addl %edi,%edx + movl $-1,%edi + roll $10,%edx + xorl %ebx,%edi + addl %eax,%edx + # R3 50 + + orl %edx,%edi + leal 2878612391(%ecx,%ebp,1),%ecx + xorl %eax,%edi + movl 20(%esi),%ebp + addl %edi,%ecx + movl $-1,%edi + roll $15,%ecx + xorl %eax,%edi + addl %edx,%ecx + # R3 51 + + orl %ecx,%edi + leal 4237533241(%ebx,%ebp,1),%ebx + xorl %edx,%edi + movl 48(%esi),%ebp + addl %edi,%ebx + movl $-1,%edi + roll $21,%ebx + xorl %edx,%edi + addl %ecx,%ebx + # R3 52 + + orl %ebx,%edi + leal 1700485571(%eax,%ebp,1),%eax + xorl %ecx,%edi + movl 12(%esi),%ebp + addl %edi,%eax + movl $-1,%edi + roll $6,%eax + xorl %ecx,%edi + addl %ebx,%eax + # R3 53 + + orl %eax,%edi + leal 2399980690(%edx,%ebp,1),%edx + xorl %ebx,%edi + movl 40(%esi),%ebp + addl %edi,%edx + movl $-1,%edi + roll $10,%edx + xorl %ebx,%edi + addl %eax,%edx + # R3 54 + + orl %edx,%edi + leal 4293915773(%ecx,%ebp,1),%ecx + xorl %eax,%edi + movl 4(%esi),%ebp + addl %edi,%ecx + movl $-1,%edi + roll $15,%ecx + xorl %eax,%edi + addl %edx,%ecx + # R3 55 + + orl %ecx,%edi + leal 2240044497(%ebx,%ebp,1),%ebx + xorl %edx,%edi + movl 32(%esi),%ebp + addl %edi,%ebx + movl $-1,%edi + roll $21,%ebx + xorl %edx,%edi + addl %ecx,%ebx + # R3 56 + + orl %ebx,%edi + leal 1873313359(%eax,%ebp,1),%eax + xorl %ecx,%edi + movl 60(%esi),%ebp + addl %edi,%eax + movl $-1,%edi + roll $6,%eax + xorl %ecx,%edi + addl %ebx,%eax + # R3 57 + + orl %eax,%edi + leal 4264355552(%edx,%ebp,1),%edx + xorl %ebx,%edi + movl 24(%esi),%ebp + addl %edi,%edx + movl $-1,%edi + roll $10,%edx + xorl %ebx,%edi + addl %eax,%edx + # R3 58 + + orl %edx,%edi + leal 2734768916(%ecx,%ebp,1),%ecx + xorl %eax,%edi + movl 52(%esi),%ebp + addl %edi,%ecx + movl $-1,%edi + roll $15,%ecx + xorl %eax,%edi + addl %edx,%ecx + # R3 59 + + orl %ecx,%edi + leal 1309151649(%ebx,%ebp,1),%ebx + xorl %edx,%edi + movl 16(%esi),%ebp + addl %edi,%ebx + movl $-1,%edi + roll $21,%ebx + xorl %edx,%edi + addl %ecx,%ebx + # R3 60 + + orl %ebx,%edi + leal 4149444226(%eax,%ebp,1),%eax + xorl %ecx,%edi + movl 44(%esi),%ebp + addl %edi,%eax + movl $-1,%edi + roll $6,%eax + xorl %ecx,%edi + addl %ebx,%eax + # R3 61 + + orl %eax,%edi + leal 3174756917(%edx,%ebp,1),%edx + xorl %ebx,%edi + movl 8(%esi),%ebp + addl %edi,%edx + movl $-1,%edi + roll $10,%edx + xorl %ebx,%edi + addl %eax,%edx + # R3 62 + + orl %edx,%edi + leal 718787259(%ecx,%ebp,1),%ecx + xorl %eax,%edi + movl 36(%esi),%ebp + addl %edi,%ecx + movl $-1,%edi + roll $15,%ecx + xorl %eax,%edi + addl %edx,%ecx + # R3 63 + + orl %ecx,%edi + leal 3951481745(%ebx,%ebp,1),%ebx + xorl %edx,%edi + movl 24(%esp),%ebp + addl %edi,%ebx + addl $64,%esi + roll $21,%ebx + movl (%ebp),%edi + addl %ecx,%ebx + addl %edi,%eax + movl 4(%ebp),%edi + addl %edi,%ebx + movl 8(%ebp),%edi + addl %edi,%ecx + movl 12(%ebp),%edi + addl %edi,%edx + movl %eax,(%ebp) + movl %ebx,4(%ebp) + movl (%esp),%edi + movl %ecx,8(%ebp) + movl %edx,12(%ebp) + cmpl %esi,%edi + jae L000start + popl %eax + popl %ebx + popl %ebp + popl %edi + popl %esi + ret diff --git a/deps/openssl/asm/x86-macosx-gas/rc4/rc4-586.s b/deps/openssl/asm/x86-macosx-gas/rc4/rc4-586.s new file mode 100644 index 0000000000..a821dc9503 --- /dev/null +++ b/deps/openssl/asm/x86-macosx-gas/rc4/rc4-586.s @@ -0,0 +1,224 @@ +.file "rc4-586.s" +.text +.globl _RC4 +.align 4 +_RC4: +L_RC4_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%edi + movl 24(%esp),%edx + movl 28(%esp),%esi + movl 32(%esp),%ebp + xorl %eax,%eax + xorl %ebx,%ebx + cmpl $0,%edx + je L000abort + movb (%edi),%al + movb 4(%edi),%bl + addl $8,%edi + leal (%esi,%edx,1),%ecx + subl %esi,%ebp + movl %ecx,24(%esp) + incb %al + cmpl $-1,256(%edi) + je L001RC4_CHAR + movl (%edi,%eax,4),%ecx + andl $-4,%edx + jz L002loop1 + leal -4(%esi,%edx,1),%edx + movl %edx,28(%esp) + movl %ebp,32(%esp) +.align 4,0x90 +L003loop4: + addb %cl,%bl + movl (%edi,%ebx,4),%edx + movl %ecx,(%edi,%ebx,4) + movl %edx,(%edi,%eax,4) + addl %ecx,%edx + incb %al + andl $255,%edx + movl (%edi,%eax,4),%ecx + movl (%edi,%edx,4),%ebp + addb %cl,%bl + movl (%edi,%ebx,4),%edx + movl %ecx,(%edi,%ebx,4) + movl %edx,(%edi,%eax,4) + addl %ecx,%edx + incb %al + andl $255,%edx + rorl $8,%ebp + movl (%edi,%eax,4),%ecx + orl (%edi,%edx,4),%ebp + addb %cl,%bl + movl (%edi,%ebx,4),%edx + movl %ecx,(%edi,%ebx,4) + movl %edx,(%edi,%eax,4) + addl %ecx,%edx + incb %al + andl $255,%edx + rorl $8,%ebp + movl (%edi,%eax,4),%ecx + orl (%edi,%edx,4),%ebp + addb %cl,%bl + movl (%edi,%ebx,4),%edx + movl %ecx,(%edi,%ebx,4) + movl %edx,(%edi,%eax,4) + addl %ecx,%edx + incb %al + andl $255,%edx + rorl $8,%ebp + movl 32(%esp),%ecx + orl (%edi,%edx,4),%ebp + rorl $8,%ebp + xorl (%esi),%ebp + cmpl 28(%esp),%esi + movl %ebp,(%ecx,%esi,1) + leal 4(%esi),%esi + movl (%edi,%eax,4),%ecx + jb L003loop4 + cmpl 24(%esp),%esi + je L004done + movl 32(%esp),%ebp +.align 4,0x90 +L002loop1: + addb %cl,%bl + movl (%edi,%ebx,4),%edx + movl %ecx,(%edi,%ebx,4) + movl %edx,(%edi,%eax,4) + addl %ecx,%edx + incb %al + andl $255,%edx + movl (%edi,%edx,4),%edx + xorb (%esi),%dl + leal 1(%esi),%esi + movl (%edi,%eax,4),%ecx + cmpl 24(%esp),%esi + movb %dl,-1(%ebp,%esi,1) + jb L002loop1 + jmp L004done +.align 4,0x90 +L001RC4_CHAR: + movzbl (%edi,%eax,1),%ecx +L005cloop1: + addb %cl,%bl + movzbl (%edi,%ebx,1),%edx + movb %cl,(%edi,%ebx,1) + movb %dl,(%edi,%eax,1) + addb %cl,%dl + movzbl (%edi,%edx,1),%edx + addb $1,%al + xorb (%esi),%dl + leal 1(%esi),%esi + movzbl (%edi,%eax,1),%ecx + cmpl 24(%esp),%esi + movb %dl,-1(%ebp,%esi,1) + jb L005cloop1 +L004done: + decb %al + movb %bl,-4(%edi) + movb %al,-8(%edi) +L000abort: + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _RC4_set_key +.align 4 +_RC4_set_key: +L_RC4_set_key_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%edi + movl 24(%esp),%ebp + movl 28(%esp),%esi + leal _OPENSSL_ia32cap_P,%edx + leal 8(%edi),%edi + leal (%esi,%ebp,1),%esi + negl %ebp + xorl %eax,%eax + movl %ebp,-4(%edi) + btl $20,(%edx) + jc L006c1stloop +.align 4,0x90 +L007w1stloop: + movl %eax,(%edi,%eax,4) + addb $1,%al + jnc L007w1stloop + xorl %ecx,%ecx + xorl %edx,%edx +.align 4,0x90 +L008w2ndloop: + movl (%edi,%ecx,4),%eax + addb (%esi,%ebp,1),%dl + addb %al,%dl + addl $1,%ebp + movl (%edi,%edx,4),%ebx + jnz L009wnowrap + movl -4(%edi),%ebp +L009wnowrap: + movl %eax,(%edi,%edx,4) + movl %ebx,(%edi,%ecx,4) + addb $1,%cl + jnc L008w2ndloop + jmp L010exit +.align 4,0x90 +L006c1stloop: + movb %al,(%edi,%eax,1) + addb $1,%al + jnc L006c1stloop + xorl %ecx,%ecx + xorl %edx,%edx + xorl %ebx,%ebx +.align 4,0x90 +L011c2ndloop: + movb (%edi,%ecx,1),%al + addb (%esi,%ebp,1),%dl + addb %al,%dl + addl $1,%ebp + movb (%edi,%edx,1),%bl + jnz L012cnowrap + movl -4(%edi),%ebp +L012cnowrap: + movb %al,(%edi,%edx,1) + movb %bl,(%edi,%ecx,1) + addb $1,%cl + jnc L011c2ndloop + movl $-1,256(%edi) +L010exit: + xorl %eax,%eax + movl %eax,-8(%edi) + movl %eax,-4(%edi) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _RC4_options +.align 4 +_RC4_options: +L_RC4_options_begin: + call L013pic_point +L013pic_point: + popl %eax + leal L014opts-L013pic_point(%eax),%eax + leal _OPENSSL_ia32cap_P,%edx + btl $20,(%edx) + jnc L015skip + addl $12,%eax +L015skip: + ret +.align 6,0x90 +L014opts: +.byte 114,99,52,40,52,120,44,105,110,116,41,0 +.byte 114,99,52,40,49,120,44,99,104,97,114,41,0 +.byte 82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89 +.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 +.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 6,0x90 +.comm _OPENSSL_ia32cap_P,4 diff --git a/deps/openssl/asm/x86-macosx-gas/rc5/rc5-586.s b/deps/openssl/asm/x86-macosx-gas/rc5/rc5-586.s new file mode 100644 index 0000000000..ed7f7dc762 --- /dev/null +++ b/deps/openssl/asm/x86-macosx-gas/rc5/rc5-586.s @@ -0,0 +1,563 @@ +.file "rc5-586.s" +.text +.globl _RC5_32_encrypt +.align 4 +_RC5_32_encrypt: +L_RC5_32_encrypt_begin: + + pushl %ebp + pushl %esi + pushl %edi + movl 16(%esp),%edx + movl 20(%esp),%ebp + # Load the 2 words + + movl (%edx),%edi + movl 4(%edx),%esi + pushl %ebx + movl (%ebp),%ebx + addl 4(%ebp),%edi + addl 8(%ebp),%esi + xorl %esi,%edi + movl 12(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 16(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 20(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 24(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 28(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 32(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 36(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 40(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 44(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 48(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 52(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 56(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 60(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 64(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 68(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 72(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + cmpl $8,%ebx + je L000rc5_exit + xorl %esi,%edi + movl 76(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 80(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 84(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 88(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 92(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 96(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 100(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 104(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + cmpl $12,%ebx + je L000rc5_exit + xorl %esi,%edi + movl 108(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 112(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 116(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 120(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 124(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 128(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi + xorl %esi,%edi + movl 132(%ebp),%eax + movl %esi,%ecx + roll %cl,%edi + addl %eax,%edi + xorl %edi,%esi + movl 136(%ebp),%eax + movl %edi,%ecx + roll %cl,%esi + addl %eax,%esi +L000rc5_exit: + movl %edi,(%edx) + movl %esi,4(%edx) + popl %ebx + popl %edi + popl %esi + popl %ebp + ret +.globl _RC5_32_decrypt +.align 4 +_RC5_32_decrypt: +L_RC5_32_decrypt_begin: + + pushl %ebp + pushl %esi + pushl %edi + movl 16(%esp),%edx + movl 20(%esp),%ebp + # Load the 2 words + + movl (%edx),%edi + movl 4(%edx),%esi + pushl %ebx + movl (%ebp),%ebx + cmpl $12,%ebx + je L001rc5_dec_12 + cmpl $8,%ebx + je L002rc5_dec_8 + movl 136(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 132(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 128(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 124(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 120(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 116(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 112(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 108(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi +L001rc5_dec_12: + movl 104(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 100(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 96(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 92(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 88(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 84(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 80(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 76(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi +L002rc5_dec_8: + movl 72(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 68(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 64(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 60(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 56(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 52(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 48(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 44(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 40(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 36(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 32(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 28(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 24(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 20(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + movl 16(%ebp),%eax + subl %eax,%esi + movl %edi,%ecx + rorl %cl,%esi + xorl %edi,%esi + movl 12(%ebp),%eax + subl %eax,%edi + movl %esi,%ecx + rorl %cl,%edi + xorl %esi,%edi + subl 8(%ebp),%esi + subl 4(%ebp),%edi +L003rc5_exit: + movl %edi,(%edx) + movl %esi,4(%edx) + popl %ebx + popl %edi + popl %esi + popl %ebp + ret +.globl _RC5_32_cbc_encrypt +.align 4 +_RC5_32_cbc_encrypt: +L_RC5_32_cbc_encrypt_begin: + + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 28(%esp),%ebp + # getting iv ptr from parameter 4 + + movl 36(%esp),%ebx + movl (%ebx),%esi + movl 4(%ebx),%edi + pushl %edi + pushl %esi + pushl %edi + pushl %esi + movl %esp,%ebx + movl 36(%esp),%esi + movl 40(%esp),%edi + # getting encrypt flag from parameter 5 + + movl 56(%esp),%ecx + # get and push parameter 3 + + movl 48(%esp),%eax + pushl %eax + pushl %ebx + cmpl $0,%ecx + jz L004decrypt + andl $4294967288,%ebp + movl 8(%esp),%eax + movl 12(%esp),%ebx + jz L005encrypt_finish +L006encrypt_loop: + movl (%esi),%ecx + movl 4(%esi),%edx + xorl %ecx,%eax + xorl %edx,%ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call L_RC5_32_encrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz L006encrypt_loop +L005encrypt_finish: + movl 52(%esp),%ebp + andl $7,%ebp + jz L007finish + call L008PIC_point +L008PIC_point: + popl %edx + leal L009cbc_enc_jmp_table-L008PIC_point(%edx),%ecx + movl (%ecx,%ebp,4),%ebp + addl %edx,%ebp + xorl %ecx,%ecx + xorl %edx,%edx + jmp *%ebp +L010ej7: + movb 6(%esi),%dh + shll $8,%edx +L011ej6: + movb 5(%esi),%dh +L012ej5: + movb 4(%esi),%dl +L013ej4: + movl (%esi),%ecx + jmp L014ejend +L015ej3: + movb 2(%esi),%ch + shll $8,%ecx +L016ej2: + movb 1(%esi),%ch +L017ej1: + movb (%esi),%cl +L014ejend: + xorl %ecx,%eax + xorl %edx,%ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call L_RC5_32_encrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + movl %eax,(%edi) + movl %ebx,4(%edi) + jmp L007finish +L004decrypt: + andl $4294967288,%ebp + movl 16(%esp),%eax + movl 20(%esp),%ebx + jz L018decrypt_finish +L019decrypt_loop: + movl (%esi),%eax + movl 4(%esi),%ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call L_RC5_32_decrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + movl 16(%esp),%ecx + movl 20(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx + movl %ecx,(%edi) + movl %edx,4(%edi) + movl %eax,16(%esp) + movl %ebx,20(%esp) + addl $8,%esi + addl $8,%edi + subl $8,%ebp + jnz L019decrypt_loop +L018decrypt_finish: + movl 52(%esp),%ebp + andl $7,%ebp + jz L007finish + movl (%esi),%eax + movl 4(%esi),%ebx + movl %eax,8(%esp) + movl %ebx,12(%esp) + call L_RC5_32_decrypt_begin + movl 8(%esp),%eax + movl 12(%esp),%ebx + movl 16(%esp),%ecx + movl 20(%esp),%edx + xorl %eax,%ecx + xorl %ebx,%edx + movl (%esi),%eax + movl 4(%esi),%ebx +L020dj7: + rorl $16,%edx + movb %dl,6(%edi) + shrl $16,%edx +L021dj6: + movb %dh,5(%edi) +L022dj5: + movb %dl,4(%edi) +L023dj4: + movl %ecx,(%edi) + jmp L024djend +L025dj3: + rorl $16,%ecx + movb %cl,2(%edi) + shll $16,%ecx +L026dj2: + movb %ch,1(%esi) +L027dj1: + movb %cl,(%esi) +L024djend: + jmp L007finish +L007finish: + movl 60(%esp),%ecx + addl $24,%esp + movl %eax,(%ecx) + movl %ebx,4(%ecx) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 6,0x90 +L009cbc_enc_jmp_table: +.long 0 +.long L017ej1-L008PIC_point +.long L016ej2-L008PIC_point +.long L015ej3-L008PIC_point +.long L013ej4-L008PIC_point +.long L012ej5-L008PIC_point +.long L011ej6-L008PIC_point +.long L010ej7-L008PIC_point +.align 6,0x90 diff --git a/deps/openssl/asm/x86-macosx-gas/ripemd/rmd-586.s b/deps/openssl/asm/x86-macosx-gas/ripemd/rmd-586.s new file mode 100644 index 0000000000..7d9d0e4d68 --- /dev/null +++ b/deps/openssl/asm/x86-macosx-gas/ripemd/rmd-586.s @@ -0,0 +1,2123 @@ +.file "../openssl/crypto/ripemd/asm/rmd-586.s" +.text +.globl _ripemd160_block_asm_data_order +.align 4 +_ripemd160_block_asm_data_order: +L_ripemd160_block_asm_data_order_begin: + movl 4(%esp),%edx + movl 8(%esp),%eax + pushl %esi + movl (%edx),%ecx + pushl %edi + movl 4(%edx),%esi + pushl %ebp + movl 8(%edx),%edi + pushl %ebx + subl $108,%esp +L000start: + + movl (%eax),%ebx + movl 4(%eax),%ebp + movl %ebx,(%esp) + movl %ebp,4(%esp) + movl 8(%eax),%ebx + movl 12(%eax),%ebp + movl %ebx,8(%esp) + movl %ebp,12(%esp) + movl 16(%eax),%ebx + movl 20(%eax),%ebp + movl %ebx,16(%esp) + movl %ebp,20(%esp) + movl 24(%eax),%ebx + movl 28(%eax),%ebp + movl %ebx,24(%esp) + movl %ebp,28(%esp) + movl 32(%eax),%ebx + movl 36(%eax),%ebp + movl %ebx,32(%esp) + movl %ebp,36(%esp) + movl 40(%eax),%ebx + movl 44(%eax),%ebp + movl %ebx,40(%esp) + movl %ebp,44(%esp) + movl 48(%eax),%ebx + movl 52(%eax),%ebp + movl %ebx,48(%esp) + movl %ebp,52(%esp) + movl 56(%eax),%ebx + movl 60(%eax),%ebp + movl %ebx,56(%esp) + movl %ebp,60(%esp) + movl %edi,%eax + movl 12(%edx),%ebx + movl 16(%edx),%ebp + # 0 + + xorl %ebx,%eax + movl (%esp),%edx + xorl %esi,%eax + addl %edx,%ecx + roll $10,%edi + addl %eax,%ecx + movl %esi,%eax + roll $11,%ecx + addl %ebp,%ecx + # 1 + + xorl %edi,%eax + movl 4(%esp),%edx + xorl %ecx,%eax + addl %eax,%ebp + movl %ecx,%eax + roll $10,%esi + addl %edx,%ebp + xorl %esi,%eax + roll $14,%ebp + addl %ebx,%ebp + # 2 + + movl 8(%esp),%edx + xorl %ebp,%eax + addl %edx,%ebx + roll $10,%ecx + addl %eax,%ebx + movl %ebp,%eax + roll $15,%ebx + addl %edi,%ebx + # 3 + + xorl %ecx,%eax + movl 12(%esp),%edx + xorl %ebx,%eax + addl %eax,%edi + movl %ebx,%eax + roll $10,%ebp + addl %edx,%edi + xorl %ebp,%eax + roll $12,%edi + addl %esi,%edi + # 4 + + movl 16(%esp),%edx + xorl %edi,%eax + addl %edx,%esi + roll $10,%ebx + addl %eax,%esi + movl %edi,%eax + roll $5,%esi + addl %ecx,%esi + # 5 + + xorl %ebx,%eax + movl 20(%esp),%edx + xorl %esi,%eax + addl %eax,%ecx + movl %esi,%eax + roll $10,%edi + addl %edx,%ecx + xorl %edi,%eax + roll $8,%ecx + addl %ebp,%ecx + # 6 + + movl 24(%esp),%edx + xorl %ecx,%eax + addl %edx,%ebp + roll $10,%esi + addl %eax,%ebp + movl %ecx,%eax + roll $7,%ebp + addl %ebx,%ebp + # 7 + + xorl %esi,%eax + movl 28(%esp),%edx + xorl %ebp,%eax + addl %eax,%ebx + movl %ebp,%eax + roll $10,%ecx + addl %edx,%ebx + xorl %ecx,%eax + roll $9,%ebx + addl %edi,%ebx + # 8 + + movl 32(%esp),%edx + xorl %ebx,%eax + addl %edx,%edi + roll $10,%ebp + addl %eax,%edi + movl %ebx,%eax + roll $11,%edi + addl %esi,%edi + # 9 + + xorl %ebp,%eax + movl 36(%esp),%edx + xorl %edi,%eax + addl %eax,%esi + movl %edi,%eax + roll $10,%ebx + addl %edx,%esi + xorl %ebx,%eax + roll $13,%esi + addl %ecx,%esi + # 10 + + movl 40(%esp),%edx + xorl %esi,%eax + addl %edx,%ecx + roll $10,%edi + addl %eax,%ecx + movl %esi,%eax + roll $14,%ecx + addl %ebp,%ecx + # 11 + + xorl %edi,%eax + movl 44(%esp),%edx + xorl %ecx,%eax + addl %eax,%ebp + movl %ecx,%eax + roll $10,%esi + addl %edx,%ebp + xorl %esi,%eax + roll $15,%ebp + addl %ebx,%ebp + # 12 + + movl 48(%esp),%edx + xorl %ebp,%eax + addl %edx,%ebx + roll $10,%ecx + addl %eax,%ebx + movl %ebp,%eax + roll $6,%ebx + addl %edi,%ebx + # 13 + + xorl %ecx,%eax + movl 52(%esp),%edx + xorl %ebx,%eax + addl %eax,%edi + movl %ebx,%eax + roll $10,%ebp + addl %edx,%edi + xorl %ebp,%eax + roll $7,%edi + addl %esi,%edi + # 14 + + movl 56(%esp),%edx + xorl %edi,%eax + addl %edx,%esi + roll $10,%ebx + addl %eax,%esi + movl %edi,%eax + roll $9,%esi + addl %ecx,%esi + # 15 + + xorl %ebx,%eax + movl 60(%esp),%edx + xorl %esi,%eax + addl %eax,%ecx + movl $-1,%eax + roll $10,%edi + addl %edx,%ecx + movl 28(%esp),%edx + roll $8,%ecx + addl %ebp,%ecx + # 16 + + addl %edx,%ebp + movl %esi,%edx + subl %ecx,%eax + andl %ecx,%edx + andl %edi,%eax + orl %eax,%edx + movl 16(%esp),%eax + roll $10,%esi + leal 1518500249(%ebp,%edx,1),%ebp + movl $-1,%edx + roll $7,%ebp + addl %ebx,%ebp + # 17 + + addl %eax,%ebx + movl %ecx,%eax + subl %ebp,%edx + andl %ebp,%eax + andl %esi,%edx + orl %edx,%eax + movl 52(%esp),%edx + roll $10,%ecx + leal 1518500249(%ebx,%eax,1),%ebx + movl $-1,%eax + roll $6,%ebx + addl %edi,%ebx + # 18 + + addl %edx,%edi + movl %ebp,%edx + subl %ebx,%eax + andl %ebx,%edx + andl %ecx,%eax + orl %eax,%edx + movl 4(%esp),%eax + roll $10,%ebp + leal 1518500249(%edi,%edx,1),%edi + movl $-1,%edx + roll $8,%edi + addl %esi,%edi + # 19 + + addl %eax,%esi + movl %ebx,%eax + subl %edi,%edx + andl %edi,%eax + andl %ebp,%edx + orl %edx,%eax + movl 40(%esp),%edx + roll $10,%ebx + leal 1518500249(%esi,%eax,1),%esi + movl $-1,%eax + roll $13,%esi + addl %ecx,%esi + # 20 + + addl %edx,%ecx + movl %edi,%edx + subl %esi,%eax + andl %esi,%edx + andl %ebx,%eax + orl %eax,%edx + movl 24(%esp),%eax + roll $10,%edi + leal 1518500249(%ecx,%edx,1),%ecx + movl $-1,%edx + roll $11,%ecx + addl %ebp,%ecx + # 21 + + addl %eax,%ebp + movl %esi,%eax + subl %ecx,%edx + andl %ecx,%eax + andl %edi,%edx + orl %edx,%eax + movl 60(%esp),%edx + roll $10,%esi + leal 1518500249(%ebp,%eax,1),%ebp + movl $-1,%eax + roll $9,%ebp + addl %ebx,%ebp + # 22 + + addl %edx,%ebx + movl %ecx,%edx + subl %ebp,%eax + andl %ebp,%edx + andl %esi,%eax + orl %eax,%edx + movl 12(%esp),%eax + roll $10,%ecx + leal 1518500249(%ebx,%edx,1),%ebx + movl $-1,%edx + roll $7,%ebx + addl %edi,%ebx + # 23 + + addl %eax,%edi + movl %ebp,%eax + subl %ebx,%edx + andl %ebx,%eax + andl %ecx,%edx + orl %edx,%eax + movl 48(%esp),%edx + roll $10,%ebp + leal 1518500249(%edi,%eax,1),%edi + movl $-1,%eax + roll $15,%edi + addl %esi,%edi + # 24 + + addl %edx,%esi + movl %ebx,%edx + subl %edi,%eax + andl %edi,%edx + andl %ebp,%eax + orl %eax,%edx + movl (%esp),%eax + roll $10,%ebx + leal 1518500249(%esi,%edx,1),%esi + movl $-1,%edx + roll $7,%esi + addl %ecx,%esi + # 25 + + addl %eax,%ecx + movl %edi,%eax + subl %esi,%edx + andl %esi,%eax + andl %ebx,%edx + orl %edx,%eax + movl 36(%esp),%edx + roll $10,%edi + leal 1518500249(%ecx,%eax,1),%ecx + movl $-1,%eax + roll $12,%ecx + addl %ebp,%ecx + # 26 + + addl %edx,%ebp + movl %esi,%edx + subl %ecx,%eax + andl %ecx,%edx + andl %edi,%eax + orl %eax,%edx + movl 20(%esp),%eax + roll $10,%esi + leal 1518500249(%ebp,%edx,1),%ebp + movl $-1,%edx + roll $15,%ebp + addl %ebx,%ebp + # 27 + + addl %eax,%ebx + movl %ecx,%eax + subl %ebp,%edx + andl %ebp,%eax + andl %esi,%edx + orl %edx,%eax + movl 8(%esp),%edx + roll $10,%ecx + leal 1518500249(%ebx,%eax,1),%ebx + movl $-1,%eax + roll $9,%ebx + addl %edi,%ebx + # 28 + + addl %edx,%edi + movl %ebp,%edx + subl %ebx,%eax + andl %ebx,%edx + andl %ecx,%eax + orl %eax,%edx + movl 56(%esp),%eax + roll $10,%ebp + leal 1518500249(%edi,%edx,1),%edi + movl $-1,%edx + roll $11,%edi + addl %esi,%edi + # 29 + + addl %eax,%esi + movl %ebx,%eax + subl %edi,%edx + andl %edi,%eax + andl %ebp,%edx + orl %edx,%eax + movl 44(%esp),%edx + roll $10,%ebx + leal 1518500249(%esi,%eax,1),%esi + movl $-1,%eax + roll $7,%esi + addl %ecx,%esi + # 30 + + addl %edx,%ecx + movl %edi,%edx + subl %esi,%eax + andl %esi,%edx + andl %ebx,%eax + orl %eax,%edx + movl 32(%esp),%eax + roll $10,%edi + leal 1518500249(%ecx,%edx,1),%ecx + movl $-1,%edx + roll $13,%ecx + addl %ebp,%ecx + # 31 + + addl %eax,%ebp + movl %esi,%eax + subl %ecx,%edx + andl %ecx,%eax + andl %edi,%edx + orl %edx,%eax + movl $-1,%edx + roll $10,%esi + leal 1518500249(%ebp,%eax,1),%ebp + subl %ecx,%edx + roll $12,%ebp + addl %ebx,%ebp + # 32 + + movl 12(%esp),%eax + orl %ebp,%edx + addl %eax,%ebx + xorl %esi,%edx + movl $-1,%eax + roll $10,%ecx + leal 1859775393(%ebx,%edx,1),%ebx + subl %ebp,%eax + roll $11,%ebx + addl %edi,%ebx + # 33 + + movl 40(%esp),%edx + orl %ebx,%eax + addl %edx,%edi + xorl %ecx,%eax + movl $-1,%edx + roll $10,%ebp + leal 1859775393(%edi,%eax,1),%edi + subl %ebx,%edx + roll $13,%edi + addl %esi,%edi + # 34 + + movl 56(%esp),%eax + orl %edi,%edx + addl %eax,%esi + xorl %ebp,%edx + movl $-1,%eax + roll $10,%ebx + leal 1859775393(%esi,%edx,1),%esi + subl %edi,%eax + roll $6,%esi + addl %ecx,%esi + # 35 + + movl 16(%esp),%edx + orl %esi,%eax + addl %edx,%ecx + xorl %ebx,%eax + movl $-1,%edx + roll $10,%edi + leal 1859775393(%ecx,%eax,1),%ecx + subl %esi,%edx + roll $7,%ecx + addl %ebp,%ecx + # 36 + + movl 36(%esp),%eax + orl %ecx,%edx + addl %eax,%ebp + xorl %edi,%edx + movl $-1,%eax + roll $10,%esi + leal 1859775393(%ebp,%edx,1),%ebp + subl %ecx,%eax + roll $14,%ebp + addl %ebx,%ebp + # 37 + + movl 60(%esp),%edx + orl %ebp,%eax + addl %edx,%ebx + xorl %esi,%eax + movl $-1,%edx + roll $10,%ecx + leal 1859775393(%ebx,%eax,1),%ebx + subl %ebp,%edx + roll $9,%ebx + addl %edi,%ebx + # 38 + + movl 32(%esp),%eax + orl %ebx,%edx + addl %eax,%edi + xorl %ecx,%edx + movl $-1,%eax + roll $10,%ebp + leal 1859775393(%edi,%edx,1),%edi + subl %ebx,%eax + roll $13,%edi + addl %esi,%edi + # 39 + + movl 4(%esp),%edx + orl %edi,%eax + addl %edx,%esi + xorl %ebp,%eax + movl $-1,%edx + roll $10,%ebx + leal 1859775393(%esi,%eax,1),%esi + subl %edi,%edx + roll $15,%esi + addl %ecx,%esi + # 40 + + movl 8(%esp),%eax + orl %esi,%edx + addl %eax,%ecx + xorl %ebx,%edx + movl $-1,%eax + roll $10,%edi + leal 1859775393(%ecx,%edx,1),%ecx + subl %esi,%eax + roll $14,%ecx + addl %ebp,%ecx + # 41 + + movl 28(%esp),%edx + orl %ecx,%eax + addl %edx,%ebp + xorl %edi,%eax + movl $-1,%edx + roll $10,%esi + leal 1859775393(%ebp,%eax,1),%ebp + subl %ecx,%edx + roll $8,%ebp + addl %ebx,%ebp + # 42 + + movl (%esp),%eax + orl %ebp,%edx + addl %eax,%ebx + xorl %esi,%edx + movl $-1,%eax + roll $10,%ecx + leal 1859775393(%ebx,%edx,1),%ebx + subl %ebp,%eax + roll $13,%ebx + addl %edi,%ebx + # 43 + + movl 24(%esp),%edx + orl %ebx,%eax + addl %edx,%edi + xorl %ecx,%eax + movl $-1,%edx + roll $10,%ebp + leal 1859775393(%edi,%eax,1),%edi + subl %ebx,%edx + roll $6,%edi + addl %esi,%edi + # 44 + + movl 52(%esp),%eax + orl %edi,%edx + addl %eax,%esi + xorl %ebp,%edx + movl $-1,%eax + roll $10,%ebx + leal 1859775393(%esi,%edx,1),%esi + subl %edi,%eax + roll $5,%esi + addl %ecx,%esi + # 45 + + movl 44(%esp),%edx + orl %esi,%eax + addl %edx,%ecx + xorl %ebx,%eax + movl $-1,%edx + roll $10,%edi + leal 1859775393(%ecx,%eax,1),%ecx + subl %esi,%edx + roll $12,%ecx + addl %ebp,%ecx + # 46 + + movl 20(%esp),%eax + orl %ecx,%edx + addl %eax,%ebp + xorl %edi,%edx + movl $-1,%eax + roll $10,%esi + leal 1859775393(%ebp,%edx,1),%ebp + subl %ecx,%eax + roll $7,%ebp + addl %ebx,%ebp + # 47 + + movl 48(%esp),%edx + orl %ebp,%eax + addl %edx,%ebx + xorl %esi,%eax + movl $-1,%edx + roll $10,%ecx + leal 1859775393(%ebx,%eax,1),%ebx + movl %ecx,%eax + roll $5,%ebx + addl %edi,%ebx + # 48 + + subl %ecx,%edx + andl %ebx,%eax + andl %ebp,%edx + orl %eax,%edx + movl 4(%esp),%eax + roll $10,%ebp + leal 2400959708(%edi,%edx,1),%edi + movl $-1,%edx + addl %eax,%edi + movl %ebp,%eax + roll $11,%edi + addl %esi,%edi + # 49 + + subl %ebp,%edx + andl %edi,%eax + andl %ebx,%edx + orl %eax,%edx + movl 36(%esp),%eax + roll $10,%ebx + leal 2400959708(%esi,%edx,1),%esi + movl $-1,%edx + addl %eax,%esi + movl %ebx,%eax + roll $12,%esi + addl %ecx,%esi + # 50 + + subl %ebx,%edx + andl %esi,%eax + andl %edi,%edx + orl %eax,%edx + movl 44(%esp),%eax + roll $10,%edi + leal 2400959708(%ecx,%edx,1),%ecx + movl $-1,%edx + addl %eax,%ecx + movl %edi,%eax + roll $14,%ecx + addl %ebp,%ecx + # 51 + + subl %edi,%edx + andl %ecx,%eax + andl %esi,%edx + orl %eax,%edx + movl 40(%esp),%eax + roll $10,%esi + leal 2400959708(%ebp,%edx,1),%ebp + movl $-1,%edx + addl %eax,%ebp + movl %esi,%eax + roll $15,%ebp + addl %ebx,%ebp + # 52 + + subl %esi,%edx + andl %ebp,%eax + andl %ecx,%edx + orl %eax,%edx + movl (%esp),%eax + roll $10,%ecx + leal 2400959708(%ebx,%edx,1),%ebx + movl $-1,%edx + addl %eax,%ebx + movl %ecx,%eax + roll $14,%ebx + addl %edi,%ebx + # 53 + + subl %ecx,%edx + andl %ebx,%eax + andl %ebp,%edx + orl %eax,%edx + movl 32(%esp),%eax + roll $10,%ebp + leal 2400959708(%edi,%edx,1),%edi + movl $-1,%edx + addl %eax,%edi + movl %ebp,%eax + roll $15,%edi + addl %esi,%edi + # 54 + + subl %ebp,%edx + andl %edi,%eax + andl %ebx,%edx + orl %eax,%edx + movl 48(%esp),%eax + roll $10,%ebx + leal 2400959708(%esi,%edx,1),%esi + movl $-1,%edx + addl %eax,%esi + movl %ebx,%eax + roll $9,%esi + addl %ecx,%esi + # 55 + + subl %ebx,%edx + andl %esi,%eax + andl %edi,%edx + orl %eax,%edx + movl 16(%esp),%eax + roll $10,%edi + leal 2400959708(%ecx,%edx,1),%ecx + movl $-1,%edx + addl %eax,%ecx + movl %edi,%eax + roll $8,%ecx + addl %ebp,%ecx + # 56 + + subl %edi,%edx + andl %ecx,%eax + andl %esi,%edx + orl %eax,%edx + movl 52(%esp),%eax + roll $10,%esi + leal 2400959708(%ebp,%edx,1),%ebp + movl $-1,%edx + addl %eax,%ebp + movl %esi,%eax + roll $9,%ebp + addl %ebx,%ebp + # 57 + + subl %esi,%edx + andl %ebp,%eax + andl %ecx,%edx + orl %eax,%edx + movl 12(%esp),%eax + roll $10,%ecx + leal 2400959708(%ebx,%edx,1),%ebx + movl $-1,%edx + addl %eax,%ebx + movl %ecx,%eax + roll $14,%ebx + addl %edi,%ebx + # 58 + + subl %ecx,%edx + andl %ebx,%eax + andl %ebp,%edx + orl %eax,%edx + movl 28(%esp),%eax + roll $10,%ebp + leal 2400959708(%edi,%edx,1),%edi + movl $-1,%edx + addl %eax,%edi + movl %ebp,%eax + roll $5,%edi + addl %esi,%edi + # 59 + + subl %ebp,%edx + andl %edi,%eax + andl %ebx,%edx + orl %eax,%edx + movl 60(%esp),%eax + roll $10,%ebx + leal 2400959708(%esi,%edx,1),%esi + movl $-1,%edx + addl %eax,%esi + movl %ebx,%eax + roll $6,%esi + addl %ecx,%esi + # 60 + + subl %ebx,%edx + andl %esi,%eax + andl %edi,%edx + orl %eax,%edx + movl 56(%esp),%eax + roll $10,%edi + leal 2400959708(%ecx,%edx,1),%ecx + movl $-1,%edx + addl %eax,%ecx + movl %edi,%eax + roll $8,%ecx + addl %ebp,%ecx + # 61 + + subl %edi,%edx + andl %ecx,%eax + andl %esi,%edx + orl %eax,%edx + movl 20(%esp),%eax + roll $10,%esi + leal 2400959708(%ebp,%edx,1),%ebp + movl $-1,%edx + addl %eax,%ebp + movl %esi,%eax + roll $6,%ebp + addl %ebx,%ebp + # 62 + + subl %esi,%edx + andl %ebp,%eax + andl %ecx,%edx + orl %eax,%edx + movl 24(%esp),%eax + roll $10,%ecx + leal 2400959708(%ebx,%edx,1),%ebx + movl $-1,%edx + addl %eax,%ebx + movl %ecx,%eax + roll $5,%ebx + addl %edi,%ebx + # 63 + + subl %ecx,%edx + andl %ebx,%eax + andl %ebp,%edx + orl %eax,%edx + movl 8(%esp),%eax + roll $10,%ebp + leal 2400959708(%edi,%edx,1),%edi + movl $-1,%edx + addl %eax,%edi + subl %ebp,%edx + roll $12,%edi + addl %esi,%edi + # 64 + + movl 16(%esp),%eax + orl %ebx,%edx + addl %eax,%esi + xorl %edi,%edx + movl $-1,%eax + roll $10,%ebx + leal 2840853838(%esi,%edx,1),%esi + subl %ebx,%eax + roll $9,%esi + addl %ecx,%esi + # 65 + + movl (%esp),%edx + orl %edi,%eax + addl %edx,%ecx + xorl %esi,%eax + movl $-1,%edx + roll $10,%edi + leal 2840853838(%ecx,%eax,1),%ecx + subl %edi,%edx + roll $15,%ecx + addl %ebp,%ecx + # 66 + + movl 20(%esp),%eax + orl %esi,%edx + addl %eax,%ebp + xorl %ecx,%edx + movl $-1,%eax + roll $10,%esi + leal 2840853838(%ebp,%edx,1),%ebp + subl %esi,%eax + roll $5,%ebp + addl %ebx,%ebp + # 67 + + movl 36(%esp),%edx + orl %ecx,%eax + addl %edx,%ebx + xorl %ebp,%eax + movl $-1,%edx + roll $10,%ecx + leal 2840853838(%ebx,%eax,1),%ebx + subl %ecx,%edx + roll $11,%ebx + addl %edi,%ebx + # 68 + + movl 28(%esp),%eax + orl %ebp,%edx + addl %eax,%edi + xorl %ebx,%edx + movl $-1,%eax + roll $10,%ebp + leal 2840853838(%edi,%edx,1),%edi + subl %ebp,%eax + roll $6,%edi + addl %esi,%edi + # 69 + + movl 48(%esp),%edx + orl %ebx,%eax + addl %edx,%esi + xorl %edi,%eax + movl $-1,%edx + roll $10,%ebx + leal 2840853838(%esi,%eax,1),%esi + subl %ebx,%edx + roll $8,%esi + addl %ecx,%esi + # 70 + + movl 8(%esp),%eax + orl %edi,%edx + addl %eax,%ecx + xorl %esi,%edx + movl $-1,%eax + roll $10,%edi + leal 2840853838(%ecx,%edx,1),%ecx + subl %edi,%eax + roll $13,%ecx + addl %ebp,%ecx + # 71 + + movl 40(%esp),%edx + orl %esi,%eax + addl %edx,%ebp + xorl %ecx,%eax + movl $-1,%edx + roll $10,%esi + leal 2840853838(%ebp,%eax,1),%ebp + subl %esi,%edx + roll $12,%ebp + addl %ebx,%ebp + # 72 + + movl 56(%esp),%eax + orl %ecx,%edx + addl %eax,%ebx + xorl %ebp,%edx + movl $-1,%eax + roll $10,%ecx + leal 2840853838(%ebx,%edx,1),%ebx + subl %ecx,%eax + roll $5,%ebx + addl %edi,%ebx + # 73 + + movl 4(%esp),%edx + orl %ebp,%eax + addl %edx,%edi + xorl %ebx,%eax + movl $-1,%edx + roll $10,%ebp + leal 2840853838(%edi,%eax,1),%edi + subl %ebp,%edx + roll $12,%edi + addl %esi,%edi + # 74 + + movl 12(%esp),%eax + orl %ebx,%edx + addl %eax,%esi + xorl %edi,%edx + movl $-1,%eax + roll $10,%ebx + leal 2840853838(%esi,%edx,1),%esi + subl %ebx,%eax + roll $13,%esi + addl %ecx,%esi + # 75 + + movl 32(%esp),%edx + orl %edi,%eax + addl %edx,%ecx + xorl %esi,%eax + movl $-1,%edx + roll $10,%edi + leal 2840853838(%ecx,%eax,1),%ecx + subl %edi,%edx + roll $14,%ecx + addl %ebp,%ecx + # 76 + + movl 44(%esp),%eax + orl %esi,%edx + addl %eax,%ebp + xorl %ecx,%edx + movl $-1,%eax + roll $10,%esi + leal 2840853838(%ebp,%edx,1),%ebp + subl %esi,%eax + roll $11,%ebp + addl %ebx,%ebp + # 77 + + movl 24(%esp),%edx + orl %ecx,%eax + addl %edx,%ebx + xorl %ebp,%eax + movl $-1,%edx + roll $10,%ecx + leal 2840853838(%ebx,%eax,1),%ebx + subl %ecx,%edx + roll $8,%ebx + addl %edi,%ebx + # 78 + + movl 60(%esp),%eax + orl %ebp,%edx + addl %eax,%edi + xorl %ebx,%edx + movl $-1,%eax + roll $10,%ebp + leal 2840853838(%edi,%edx,1),%edi + subl %ebp,%eax + roll $5,%edi + addl %esi,%edi + # 79 + + movl 52(%esp),%edx + orl %ebx,%eax + addl %edx,%esi + xorl %edi,%eax + movl 128(%esp),%edx + roll $10,%ebx + leal 2840853838(%esi,%eax,1),%esi + movl %ecx,64(%esp) + roll $6,%esi + addl %ecx,%esi + movl (%edx),%ecx + movl %esi,68(%esp) + movl %edi,72(%esp) + movl 4(%edx),%esi + movl %ebx,76(%esp) + movl 8(%edx),%edi + movl %ebp,80(%esp) + movl 12(%edx),%ebx + movl 16(%edx),%ebp + # 80 + + movl $-1,%edx + subl %ebx,%edx + movl 20(%esp),%eax + orl %edi,%edx + addl %eax,%ecx + xorl %esi,%edx + movl $-1,%eax + roll $10,%edi + leal 1352829926(%ecx,%edx,1),%ecx + subl %edi,%eax + roll $8,%ecx + addl %ebp,%ecx + # 81 + + movl 56(%esp),%edx + orl %esi,%eax + addl %edx,%ebp + xorl %ecx,%eax + movl $-1,%edx + roll $10,%esi + leal 1352829926(%ebp,%eax,1),%ebp + subl %esi,%edx + roll $9,%ebp + addl %ebx,%ebp + # 82 + + movl 28(%esp),%eax + orl %ecx,%edx + addl %eax,%ebx + xorl %ebp,%edx + movl $-1,%eax + roll $10,%ecx + leal 1352829926(%ebx,%edx,1),%ebx + subl %ecx,%eax + roll $9,%ebx + addl %edi,%ebx + # 83 + + movl (%esp),%edx + orl %ebp,%eax + addl %edx,%edi + xorl %ebx,%eax + movl $-1,%edx + roll $10,%ebp + leal 1352829926(%edi,%eax,1),%edi + subl %ebp,%edx + roll $11,%edi + addl %esi,%edi + # 84 + + movl 36(%esp),%eax + orl %ebx,%edx + addl %eax,%esi + xorl %edi,%edx + movl $-1,%eax + roll $10,%ebx + leal 1352829926(%esi,%edx,1),%esi + subl %ebx,%eax + roll $13,%esi + addl %ecx,%esi + # 85 + + movl 8(%esp),%edx + orl %edi,%eax + addl %edx,%ecx + xorl %esi,%eax + movl $-1,%edx + roll $10,%edi + leal 1352829926(%ecx,%eax,1),%ecx + subl %edi,%edx + roll $15,%ecx + addl %ebp,%ecx + # 86 + + movl 44(%esp),%eax + orl %esi,%edx + addl %eax,%ebp + xorl %ecx,%edx + movl $-1,%eax + roll $10,%esi + leal 1352829926(%ebp,%edx,1),%ebp + subl %esi,%eax + roll $15,%ebp + addl %ebx,%ebp + # 87 + + movl 16(%esp),%edx + orl %ecx,%eax + addl %edx,%ebx + xorl %ebp,%eax + movl $-1,%edx + roll $10,%ecx + leal 1352829926(%ebx,%eax,1),%ebx + subl %ecx,%edx + roll $5,%ebx + addl %edi,%ebx + # 88 + + movl 52(%esp),%eax + orl %ebp,%edx + addl %eax,%edi + xorl %ebx,%edx + movl $-1,%eax + roll $10,%ebp + leal 1352829926(%edi,%edx,1),%edi + subl %ebp,%eax + roll $7,%edi + addl %esi,%edi + # 89 + + movl 24(%esp),%edx + orl %ebx,%eax + addl %edx,%esi + xorl %edi,%eax + movl $-1,%edx + roll $10,%ebx + leal 1352829926(%esi,%eax,1),%esi + subl %ebx,%edx + roll $7,%esi + addl %ecx,%esi + # 90 + + movl 60(%esp),%eax + orl %edi,%edx + addl %eax,%ecx + xorl %esi,%edx + movl $-1,%eax + roll $10,%edi + leal 1352829926(%ecx,%edx,1),%ecx + subl %edi,%eax + roll $8,%ecx + addl %ebp,%ecx + # 91 + + movl 32(%esp),%edx + orl %esi,%eax + addl %edx,%ebp + xorl %ecx,%eax + movl $-1,%edx + roll $10,%esi + leal 1352829926(%ebp,%eax,1),%ebp + subl %esi,%edx + roll $11,%ebp + addl %ebx,%ebp + # 92 + + movl 4(%esp),%eax + orl %ecx,%edx + addl %eax,%ebx + xorl %ebp,%edx + movl $-1,%eax + roll $10,%ecx + leal 1352829926(%ebx,%edx,1),%ebx + subl %ecx,%eax + roll $14,%ebx + addl %edi,%ebx + # 93 + + movl 40(%esp),%edx + orl %ebp,%eax + addl %edx,%edi + xorl %ebx,%eax + movl $-1,%edx + roll $10,%ebp + leal 1352829926(%edi,%eax,1),%edi + subl %ebp,%edx + roll $14,%edi + addl %esi,%edi + # 94 + + movl 12(%esp),%eax + orl %ebx,%edx + addl %eax,%esi + xorl %edi,%edx + movl $-1,%eax + roll $10,%ebx + leal 1352829926(%esi,%edx,1),%esi + subl %ebx,%eax + roll $12,%esi + addl %ecx,%esi + # 95 + + movl 48(%esp),%edx + orl %edi,%eax + addl %edx,%ecx + xorl %esi,%eax + movl $-1,%edx + roll $10,%edi + leal 1352829926(%ecx,%eax,1),%ecx + movl %edi,%eax + roll $6,%ecx + addl %ebp,%ecx + # 96 + + subl %edi,%edx + andl %ecx,%eax + andl %esi,%edx + orl %eax,%edx + movl 24(%esp),%eax + roll $10,%esi + leal 1548603684(%ebp,%edx,1),%ebp + movl $-1,%edx + addl %eax,%ebp + movl %esi,%eax + roll $9,%ebp + addl %ebx,%ebp + # 97 + + subl %esi,%edx + andl %ebp,%eax + andl %ecx,%edx + orl %eax,%edx + movl 44(%esp),%eax + roll $10,%ecx + leal 1548603684(%ebx,%edx,1),%ebx + movl $-1,%edx + addl %eax,%ebx + movl %ecx,%eax + roll $13,%ebx + addl %edi,%ebx + # 98 + + subl %ecx,%edx + andl %ebx,%eax + andl %ebp,%edx + orl %eax,%edx + movl 12(%esp),%eax + roll $10,%ebp + leal 1548603684(%edi,%edx,1),%edi + movl $-1,%edx + addl %eax,%edi + movl %ebp,%eax + roll $15,%edi + addl %esi,%edi + # 99 + + subl %ebp,%edx + andl %edi,%eax + andl %ebx,%edx + orl %eax,%edx + movl 28(%esp),%eax + roll $10,%ebx + leal 1548603684(%esi,%edx,1),%esi + movl $-1,%edx + addl %eax,%esi + movl %ebx,%eax + roll $7,%esi + addl %ecx,%esi + # 100 + + subl %ebx,%edx + andl %esi,%eax + andl %edi,%edx + orl %eax,%edx + movl (%esp),%eax + roll $10,%edi + leal 1548603684(%ecx,%edx,1),%ecx + movl $-1,%edx + addl %eax,%ecx + movl %edi,%eax + roll $12,%ecx + addl %ebp,%ecx + # 101 + + subl %edi,%edx + andl %ecx,%eax + andl %esi,%edx + orl %eax,%edx + movl 52(%esp),%eax + roll $10,%esi + leal 1548603684(%ebp,%edx,1),%ebp + movl $-1,%edx + addl %eax,%ebp + movl %esi,%eax + roll $8,%ebp + addl %ebx,%ebp + # 102 + + subl %esi,%edx + andl %ebp,%eax + andl %ecx,%edx + orl %eax,%edx + movl 20(%esp),%eax + roll $10,%ecx + leal 1548603684(%ebx,%edx,1),%ebx + movl $-1,%edx + addl %eax,%ebx + movl %ecx,%eax + roll $9,%ebx + addl %edi,%ebx + # 103 + + subl %ecx,%edx + andl %ebx,%eax + andl %ebp,%edx + orl %eax,%edx + movl 40(%esp),%eax + roll $10,%ebp + leal 1548603684(%edi,%edx,1),%edi + movl $-1,%edx + addl %eax,%edi + movl %ebp,%eax + roll $11,%edi + addl %esi,%edi + # 104 + + subl %ebp,%edx + andl %edi,%eax + andl %ebx,%edx + orl %eax,%edx + movl 56(%esp),%eax + roll $10,%ebx + leal 1548603684(%esi,%edx,1),%esi + movl $-1,%edx + addl %eax,%esi + movl %ebx,%eax + roll $7,%esi + addl %ecx,%esi + # 105 + + subl %ebx,%edx + andl %esi,%eax + andl %edi,%edx + orl %eax,%edx + movl 60(%esp),%eax + roll $10,%edi + leal 1548603684(%ecx,%edx,1),%ecx + movl $-1,%edx + addl %eax,%ecx + movl %edi,%eax + roll $7,%ecx + addl %ebp,%ecx + # 106 + + subl %edi,%edx + andl %ecx,%eax + andl %esi,%edx + orl %eax,%edx + movl 32(%esp),%eax + roll $10,%esi + leal 1548603684(%ebp,%edx,1),%ebp + movl $-1,%edx + addl %eax,%ebp + movl %esi,%eax + roll $12,%ebp + addl %ebx,%ebp + # 107 + + subl %esi,%edx + andl %ebp,%eax + andl %ecx,%edx + orl %eax,%edx + movl 48(%esp),%eax + roll $10,%ecx + leal 1548603684(%ebx,%edx,1),%ebx + movl $-1,%edx + addl %eax,%ebx + movl %ecx,%eax + roll $7,%ebx + addl %edi,%ebx + # 108 + + subl %ecx,%edx + andl %ebx,%eax + andl %ebp,%edx + orl %eax,%edx + movl 16(%esp),%eax + roll $10,%ebp + leal 1548603684(%edi,%edx,1),%edi + movl $-1,%edx + addl %eax,%edi + movl %ebp,%eax + roll $6,%edi + addl %esi,%edi + # 109 + + subl %ebp,%edx + andl %edi,%eax + andl %ebx,%edx + orl %eax,%edx + movl 36(%esp),%eax + roll $10,%ebx + leal 1548603684(%esi,%edx,1),%esi + movl $-1,%edx + addl %eax,%esi + movl %ebx,%eax + roll $15,%esi + addl %ecx,%esi + # 110 + + subl %ebx,%edx + andl %esi,%eax + andl %edi,%edx + orl %eax,%edx + movl 4(%esp),%eax + roll $10,%edi + leal 1548603684(%ecx,%edx,1),%ecx + movl $-1,%edx + addl %eax,%ecx + movl %edi,%eax + roll $13,%ecx + addl %ebp,%ecx + # 111 + + subl %edi,%edx + andl %ecx,%eax + andl %esi,%edx + orl %eax,%edx + movl 8(%esp),%eax + roll $10,%esi + leal 1548603684(%ebp,%edx,1),%ebp + movl $-1,%edx + addl %eax,%ebp + subl %ecx,%edx + roll $11,%ebp + addl %ebx,%ebp + # 112 + + movl 60(%esp),%eax + orl %ebp,%edx + addl %eax,%ebx + xorl %esi,%edx + movl $-1,%eax + roll $10,%ecx + leal 1836072691(%ebx,%edx,1),%ebx + subl %ebp,%eax + roll $9,%ebx + addl %edi,%ebx + # 113 + + movl 20(%esp),%edx + orl %ebx,%eax + addl %edx,%edi + xorl %ecx,%eax + movl $-1,%edx + roll $10,%ebp + leal 1836072691(%edi,%eax,1),%edi + subl %ebx,%edx + roll $7,%edi + addl %esi,%edi + # 114 + + movl 4(%esp),%eax + orl %edi,%edx + addl %eax,%esi + xorl %ebp,%edx + movl $-1,%eax + roll $10,%ebx + leal 1836072691(%esi,%edx,1),%esi + subl %edi,%eax + roll $15,%esi + addl %ecx,%esi + # 115 + + movl 12(%esp),%edx + orl %esi,%eax + addl %edx,%ecx + xorl %ebx,%eax + movl $-1,%edx + roll $10,%edi + leal 1836072691(%ecx,%eax,1),%ecx + subl %esi,%edx + roll $11,%ecx + addl %ebp,%ecx + # 116 + + movl 28(%esp),%eax + orl %ecx,%edx + addl %eax,%ebp + xorl %edi,%edx + movl $-1,%eax + roll $10,%esi + leal 1836072691(%ebp,%edx,1),%ebp + subl %ecx,%eax + roll $8,%ebp + addl %ebx,%ebp + # 117 + + movl 56(%esp),%edx + orl %ebp,%eax + addl %edx,%ebx + xorl %esi,%eax + movl $-1,%edx + roll $10,%ecx + leal 1836072691(%ebx,%eax,1),%ebx + subl %ebp,%edx + roll $6,%ebx + addl %edi,%ebx + # 118 + + movl 24(%esp),%eax + orl %ebx,%edx + addl %eax,%edi + xorl %ecx,%edx + movl $-1,%eax + roll $10,%ebp + leal 1836072691(%edi,%edx,1),%edi + subl %ebx,%eax + roll $6,%edi + addl %esi,%edi + # 119 + + movl 36(%esp),%edx + orl %edi,%eax + addl %edx,%esi + xorl %ebp,%eax + movl $-1,%edx + roll $10,%ebx + leal 1836072691(%esi,%eax,1),%esi + subl %edi,%edx + roll $14,%esi + addl %ecx,%esi + # 120 + + movl 44(%esp),%eax + orl %esi,%edx + addl %eax,%ecx + xorl %ebx,%edx + movl $-1,%eax + roll $10,%edi + leal 1836072691(%ecx,%edx,1),%ecx + subl %esi,%eax + roll $12,%ecx + addl %ebp,%ecx + # 121 + + movl 32(%esp),%edx + orl %ecx,%eax + addl %edx,%ebp + xorl %edi,%eax + movl $-1,%edx + roll $10,%esi + leal 1836072691(%ebp,%eax,1),%ebp + subl %ecx,%edx + roll $13,%ebp + addl %ebx,%ebp + # 122 + + movl 48(%esp),%eax + orl %ebp,%edx + addl %eax,%ebx + xorl %esi,%edx + movl $-1,%eax + roll $10,%ecx + leal 1836072691(%ebx,%edx,1),%ebx + subl %ebp,%eax + roll $5,%ebx + addl %edi,%ebx + # 123 + + movl 8(%esp),%edx + orl %ebx,%eax + addl %edx,%edi + xorl %ecx,%eax + movl $-1,%edx + roll $10,%ebp + leal 1836072691(%edi,%eax,1),%edi + subl %ebx,%edx + roll $14,%edi + addl %esi,%edi + # 124 + + movl 40(%esp),%eax + orl %edi,%edx + addl %eax,%esi + xorl %ebp,%edx + movl $-1,%eax + roll $10,%ebx + leal 1836072691(%esi,%edx,1),%esi + subl %edi,%eax + roll $13,%esi + addl %ecx,%esi + # 125 + + movl (%esp),%edx + orl %esi,%eax + addl %edx,%ecx + xorl %ebx,%eax + movl $-1,%edx + roll $10,%edi + leal 1836072691(%ecx,%eax,1),%ecx + subl %esi,%edx + roll $13,%ecx + addl %ebp,%ecx + # 126 + + movl 16(%esp),%eax + orl %ecx,%edx + addl %eax,%ebp + xorl %edi,%edx + movl $-1,%eax + roll $10,%esi + leal 1836072691(%ebp,%edx,1),%ebp + subl %ecx,%eax + roll $7,%ebp + addl %ebx,%ebp + # 127 + + movl 52(%esp),%edx + orl %ebp,%eax + addl %edx,%ebx + xorl %esi,%eax + movl 32(%esp),%edx + roll $10,%ecx + leal 1836072691(%ebx,%eax,1),%ebx + movl $-1,%eax + roll $5,%ebx + addl %edi,%ebx + # 128 + + addl %edx,%edi + movl %ebp,%edx + subl %ebx,%eax + andl %ebx,%edx + andl %ecx,%eax + orl %eax,%edx + movl 24(%esp),%eax + roll $10,%ebp + leal 2053994217(%edi,%edx,1),%edi + movl $-1,%edx + roll $15,%edi + addl %esi,%edi + # 129 + + addl %eax,%esi + movl %ebx,%eax + subl %edi,%edx + andl %edi,%eax + andl %ebp,%edx + orl %edx,%eax + movl 16(%esp),%edx + roll $10,%ebx + leal 2053994217(%esi,%eax,1),%esi + movl $-1,%eax + roll $5,%esi + addl %ecx,%esi + # 130 + + addl %edx,%ecx + movl %edi,%edx + subl %esi,%eax + andl %esi,%edx + andl %ebx,%eax + orl %eax,%edx + movl 4(%esp),%eax + roll $10,%edi + leal 2053994217(%ecx,%edx,1),%ecx + movl $-1,%edx + roll $8,%ecx + addl %ebp,%ecx + # 131 + + addl %eax,%ebp + movl %esi,%eax + subl %ecx,%edx + andl %ecx,%eax + andl %edi,%edx + orl %edx,%eax + movl 12(%esp),%edx + roll $10,%esi + leal 2053994217(%ebp,%eax,1),%ebp + movl $-1,%eax + roll $11,%ebp + addl %ebx,%ebp + # 132 + + addl %edx,%ebx + movl %ecx,%edx + subl %ebp,%eax + andl %ebp,%edx + andl %esi,%eax + orl %eax,%edx + movl 44(%esp),%eax + roll $10,%ecx + leal 2053994217(%ebx,%edx,1),%ebx + movl $-1,%edx + roll $14,%ebx + addl %edi,%ebx + # 133 + + addl %eax,%edi + movl %ebp,%eax + subl %ebx,%edx + andl %ebx,%eax + andl %ecx,%edx + orl %edx,%eax + movl 60(%esp),%edx + roll $10,%ebp + leal 2053994217(%edi,%eax,1),%edi + movl $-1,%eax + roll $14,%edi + addl %esi,%edi + # 134 + + addl %edx,%esi + movl %ebx,%edx + subl %edi,%eax + andl %edi,%edx + andl %ebp,%eax + orl %eax,%edx + movl (%esp),%eax + roll $10,%ebx + leal 2053994217(%esi,%edx,1),%esi + movl $-1,%edx + roll $6,%esi + addl %ecx,%esi + # 135 + + addl %eax,%ecx + movl %edi,%eax + subl %esi,%edx + andl %esi,%eax + andl %ebx,%edx + orl %edx,%eax + movl 20(%esp),%edx + roll $10,%edi + leal 2053994217(%ecx,%eax,1),%ecx + movl $-1,%eax + roll $14,%ecx + addl %ebp,%ecx + # 136 + + addl %edx,%ebp + movl %esi,%edx + subl %ecx,%eax + andl %ecx,%edx + andl %edi,%eax + orl %eax,%edx + movl 48(%esp),%eax + roll $10,%esi + leal 2053994217(%ebp,%edx,1),%ebp + movl $-1,%edx + roll $6,%ebp + addl %ebx,%ebp + # 137 + + addl %eax,%ebx + movl %ecx,%eax + subl %ebp,%edx + andl %ebp,%eax + andl %esi,%edx + orl %edx,%eax + movl 8(%esp),%edx + roll $10,%ecx + leal 2053994217(%ebx,%eax,1),%ebx + movl $-1,%eax + roll $9,%ebx + addl %edi,%ebx + # 138 + + addl %edx,%edi + movl %ebp,%edx + subl %ebx,%eax + andl %ebx,%edx + andl %ecx,%eax + orl %eax,%edx + movl 52(%esp),%eax + roll $10,%ebp + leal 2053994217(%edi,%edx,1),%edi + movl $-1,%edx + roll $12,%edi + addl %esi,%edi + # 139 + + addl %eax,%esi + movl %ebx,%eax + subl %edi,%edx + andl %edi,%eax + andl %ebp,%edx + orl %edx,%eax + movl 36(%esp),%edx + roll $10,%ebx + leal 2053994217(%esi,%eax,1),%esi + movl $-1,%eax + roll $9,%esi + addl %ecx,%esi + # 140 + + addl %edx,%ecx + movl %edi,%edx + subl %esi,%eax + andl %esi,%edx + andl %ebx,%eax + orl %eax,%edx + movl 28(%esp),%eax + roll $10,%edi + leal 2053994217(%ecx,%edx,1),%ecx + movl $-1,%edx + roll $12,%ecx + addl %ebp,%ecx + # 141 + + addl %eax,%ebp + movl %esi,%eax + subl %ecx,%edx + andl %ecx,%eax + andl %edi,%edx + orl %edx,%eax + movl 40(%esp),%edx + roll $10,%esi + leal 2053994217(%ebp,%eax,1),%ebp + movl $-1,%eax + roll $5,%ebp + addl %ebx,%ebp + # 142 + + addl %edx,%ebx + movl %ecx,%edx + subl %ebp,%eax + andl %ebp,%edx + andl %esi,%eax + orl %eax,%edx + movl 56(%esp),%eax + roll $10,%ecx + leal 2053994217(%ebx,%edx,1),%ebx + movl $-1,%edx + roll $15,%ebx + addl %edi,%ebx + # 143 + + addl %eax,%edi + movl %ebp,%eax + subl %ebx,%edx + andl %ebx,%eax + andl %ecx,%edx + orl %eax,%edx + movl %ebx,%eax + roll $10,%ebp + leal 2053994217(%edi,%edx,1),%edi + xorl %ebp,%eax + roll $8,%edi + addl %esi,%edi + # 144 + + movl 48(%esp),%edx + xorl %edi,%eax + addl %edx,%esi + roll $10,%ebx + addl %eax,%esi + movl %edi,%eax + roll $8,%esi + addl %ecx,%esi + # 145 + + xorl %ebx,%eax + movl 60(%esp),%edx + xorl %esi,%eax + addl %eax,%ecx + movl %esi,%eax + roll $10,%edi + addl %edx,%ecx + xorl %edi,%eax + roll $5,%ecx + addl %ebp,%ecx + # 146 + + movl 40(%esp),%edx + xorl %ecx,%eax + addl %edx,%ebp + roll $10,%esi + addl %eax,%ebp + movl %ecx,%eax + roll $12,%ebp + addl %ebx,%ebp + # 147 + + xorl %esi,%eax + movl 16(%esp),%edx + xorl %ebp,%eax + addl %eax,%ebx + movl %ebp,%eax + roll $10,%ecx + addl %edx,%ebx + xorl %ecx,%eax + roll $9,%ebx + addl %edi,%ebx + # 148 + + movl 4(%esp),%edx + xorl %ebx,%eax + addl %edx,%edi + roll $10,%ebp + addl %eax,%edi + movl %ebx,%eax + roll $12,%edi + addl %esi,%edi + # 149 + + xorl %ebp,%eax + movl 20(%esp),%edx + xorl %edi,%eax + addl %eax,%esi + movl %edi,%eax + roll $10,%ebx + addl %edx,%esi + xorl %ebx,%eax + roll $5,%esi + addl %ecx,%esi + # 150 + + movl 32(%esp),%edx + xorl %esi,%eax + addl %edx,%ecx + roll $10,%edi + addl %eax,%ecx + movl %esi,%eax + roll $14,%ecx + addl %ebp,%ecx + # 151 + + xorl %edi,%eax + movl 28(%esp),%edx + xorl %ecx,%eax + addl %eax,%ebp + movl %ecx,%eax + roll $10,%esi + addl %edx,%ebp + xorl %esi,%eax + roll $6,%ebp + addl %ebx,%ebp + # 152 + + movl 24(%esp),%edx + xorl %ebp,%eax + addl %edx,%ebx + roll $10,%ecx + addl %eax,%ebx + movl %ebp,%eax + roll $8,%ebx + addl %edi,%ebx + # 153 + + xorl %ecx,%eax + movl 8(%esp),%edx + xorl %ebx,%eax + addl %eax,%edi + movl %ebx,%eax + roll $10,%ebp + addl %edx,%edi + xorl %ebp,%eax + roll $13,%edi + addl %esi,%edi + # 154 + + movl 52(%esp),%edx + xorl %edi,%eax + addl %edx,%esi + roll $10,%ebx + addl %eax,%esi + movl %edi,%eax + roll $6,%esi + addl %ecx,%esi + # 155 + + xorl %ebx,%eax + movl 56(%esp),%edx + xorl %esi,%eax + addl %eax,%ecx + movl %esi,%eax + roll $10,%edi + addl %edx,%ecx + xorl %edi,%eax + roll $5,%ecx + addl %ebp,%ecx + # 156 + + movl (%esp),%edx + xorl %ecx,%eax + addl %edx,%ebp + roll $10,%esi + addl %eax,%ebp + movl %ecx,%eax + roll $15,%ebp + addl %ebx,%ebp + # 157 + + xorl %esi,%eax + movl 12(%esp),%edx + xorl %ebp,%eax + addl %eax,%ebx + movl %ebp,%eax + roll $10,%ecx + addl %edx,%ebx + xorl %ecx,%eax + roll $13,%ebx + addl %edi,%ebx + # 158 + + movl 36(%esp),%edx + xorl %ebx,%eax + addl %edx,%edi + roll $10,%ebp + addl %eax,%edi + movl %ebx,%eax + roll $11,%edi + addl %esi,%edi + # 159 + + xorl %ebp,%eax + movl 44(%esp),%edx + xorl %edi,%eax + addl %eax,%esi + roll $10,%ebx + addl %edx,%esi + movl 128(%esp),%edx + roll $11,%esi + addl %ecx,%esi + movl 4(%edx),%eax + addl %eax,%ebx + movl 72(%esp),%eax + addl %eax,%ebx + movl 8(%edx),%eax + addl %eax,%ebp + movl 76(%esp),%eax + addl %eax,%ebp + movl 12(%edx),%eax + addl %eax,%ecx + movl 80(%esp),%eax + addl %eax,%ecx + movl 16(%edx),%eax + addl %eax,%esi + movl 64(%esp),%eax + addl %eax,%esi + movl (%edx),%eax + addl %eax,%edi + movl 68(%esp),%eax + addl %eax,%edi + movl 136(%esp),%eax + movl %ebx,(%edx) + movl %ebp,4(%edx) + movl %ecx,8(%edx) + subl $1,%eax + movl %esi,12(%edx) + movl %edi,16(%edx) + jle L001get_out + movl %eax,136(%esp) + movl %ecx,%edi + movl 132(%esp),%eax + movl %ebx,%ecx + addl $64,%eax + movl %ebp,%esi + movl %eax,132(%esp) + jmp L000start +L001get_out: + addl $108,%esp + popl %ebx + popl %ebp + popl %edi + popl %esi + ret diff --git a/deps/openssl/asm/x86-macosx-gas/sha/sha1-586.s b/deps/openssl/asm/x86-macosx-gas/sha/sha1-586.s new file mode 100644 index 0000000000..4f356fe70f --- /dev/null +++ b/deps/openssl/asm/x86-macosx-gas/sha/sha1-586.s @@ -0,0 +1,1520 @@ +.file "sha1-586.s" +.text +.globl _sha1_block_data_order +.align 4 +_sha1_block_data_order: +L_sha1_block_data_order_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%ebp + movl 24(%esp),%esi + movl 28(%esp),%eax + subl $64,%esp + shll $6,%eax + addl %esi,%eax + movl %eax,92(%esp) + movl 16(%ebp),%edi +.align 4,0x90 +L000loop: + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,(%esp) + movl %ebx,4(%esp) + movl %ecx,8(%esp) + movl %edx,12(%esp) + movl 16(%esi),%eax + movl 20(%esi),%ebx + movl 24(%esi),%ecx + movl 28(%esi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,16(%esp) + movl %ebx,20(%esp) + movl %ecx,24(%esp) + movl %edx,28(%esp) + movl 32(%esi),%eax + movl 36(%esi),%ebx + movl 40(%esi),%ecx + movl 44(%esi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,32(%esp) + movl %ebx,36(%esp) + movl %ecx,40(%esp) + movl %edx,44(%esp) + movl 48(%esi),%eax + movl 52(%esi),%ebx + movl 56(%esi),%ecx + movl 60(%esi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + movl %eax,48(%esp) + movl %ebx,52(%esp) + movl %ecx,56(%esp) + movl %edx,60(%esp) + movl %esi,88(%esp) + movl (%ebp),%eax + movl 4(%ebp),%ebx + movl 8(%ebp),%ecx + movl 12(%ebp),%edx + # 00_15 0 + + movl %ecx,%esi + movl %eax,%ebp + roll $5,%ebp + xorl %edx,%esi + addl %edi,%ebp + andl %ebx,%esi + movl (%esp),%edi + xorl %edx,%esi + rorl $2,%ebx + leal 1518500249(%ebp,%edi,1),%ebp + addl %esi,%ebp + # 00_15 1 + + movl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + xorl %ecx,%edi + addl %edx,%ebp + andl %eax,%edi + movl 4(%esp),%edx + xorl %ecx,%edi + rorl $2,%eax + leal 1518500249(%ebp,%edx,1),%ebp + addl %edi,%ebp + # 00_15 2 + + movl %eax,%edx + movl %ebp,%edi + roll $5,%ebp + xorl %ebx,%edx + addl %ecx,%ebp + andl %esi,%edx + movl 8(%esp),%ecx + xorl %ebx,%edx + rorl $2,%esi + leal 1518500249(%ebp,%ecx,1),%ebp + addl %edx,%ebp + # 00_15 3 + + movl %esi,%ecx + movl %ebp,%edx + roll $5,%ebp + xorl %eax,%ecx + addl %ebx,%ebp + andl %edi,%ecx + movl 12(%esp),%ebx + xorl %eax,%ecx + rorl $2,%edi + leal 1518500249(%ebp,%ebx,1),%ebp + addl %ecx,%ebp + # 00_15 4 + + movl %edi,%ebx + movl %ebp,%ecx + roll $5,%ebp + xorl %esi,%ebx + addl %eax,%ebp + andl %edx,%ebx + movl 16(%esp),%eax + xorl %esi,%ebx + rorl $2,%edx + leal 1518500249(%ebp,%eax,1),%ebp + addl %ebx,%ebp + # 00_15 5 + + movl %edx,%eax + movl %ebp,%ebx + roll $5,%ebp + xorl %edi,%eax + addl %esi,%ebp + andl %ecx,%eax + movl 20(%esp),%esi + xorl %edi,%eax + rorl $2,%ecx + leal 1518500249(%ebp,%esi,1),%ebp + addl %eax,%ebp + # 00_15 6 + + movl %ecx,%esi + movl %ebp,%eax + roll $5,%ebp + xorl %edx,%esi + addl %edi,%ebp + andl %ebx,%esi + movl 24(%esp),%edi + xorl %edx,%esi + rorl $2,%ebx + leal 1518500249(%ebp,%edi,1),%ebp + addl %esi,%ebp + # 00_15 7 + + movl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + xorl %ecx,%edi + addl %edx,%ebp + andl %eax,%edi + movl 28(%esp),%edx + xorl %ecx,%edi + rorl $2,%eax + leal 1518500249(%ebp,%edx,1),%ebp + addl %edi,%ebp + # 00_15 8 + + movl %eax,%edx + movl %ebp,%edi + roll $5,%ebp + xorl %ebx,%edx + addl %ecx,%ebp + andl %esi,%edx + movl 32(%esp),%ecx + xorl %ebx,%edx + rorl $2,%esi + leal 1518500249(%ebp,%ecx,1),%ebp + addl %edx,%ebp + # 00_15 9 + + movl %esi,%ecx + movl %ebp,%edx + roll $5,%ebp + xorl %eax,%ecx + addl %ebx,%ebp + andl %edi,%ecx + movl 36(%esp),%ebx + xorl %eax,%ecx + rorl $2,%edi + leal 1518500249(%ebp,%ebx,1),%ebp + addl %ecx,%ebp + # 00_15 10 + + movl %edi,%ebx + movl %ebp,%ecx + roll $5,%ebp + xorl %esi,%ebx + addl %eax,%ebp + andl %edx,%ebx + movl 40(%esp),%eax + xorl %esi,%ebx + rorl $2,%edx + leal 1518500249(%ebp,%eax,1),%ebp + addl %ebx,%ebp + # 00_15 11 + + movl %edx,%eax + movl %ebp,%ebx + roll $5,%ebp + xorl %edi,%eax + addl %esi,%ebp + andl %ecx,%eax + movl 44(%esp),%esi + xorl %edi,%eax + rorl $2,%ecx + leal 1518500249(%ebp,%esi,1),%ebp + addl %eax,%ebp + # 00_15 12 + + movl %ecx,%esi + movl %ebp,%eax + roll $5,%ebp + xorl %edx,%esi + addl %edi,%ebp + andl %ebx,%esi + movl 48(%esp),%edi + xorl %edx,%esi + rorl $2,%ebx + leal 1518500249(%ebp,%edi,1),%ebp + addl %esi,%ebp + # 00_15 13 + + movl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + xorl %ecx,%edi + addl %edx,%ebp + andl %eax,%edi + movl 52(%esp),%edx + xorl %ecx,%edi + rorl $2,%eax + leal 1518500249(%ebp,%edx,1),%ebp + addl %edi,%ebp + # 00_15 14 + + movl %eax,%edx + movl %ebp,%edi + roll $5,%ebp + xorl %ebx,%edx + addl %ecx,%ebp + andl %esi,%edx + movl 56(%esp),%ecx + xorl %ebx,%edx + rorl $2,%esi + leal 1518500249(%ebp,%ecx,1),%ebp + addl %edx,%ebp + # 00_15 15 + + movl %esi,%ecx + movl %ebp,%edx + roll $5,%ebp + xorl %eax,%ecx + addl %ebx,%ebp + andl %edi,%ecx + movl 60(%esp),%ebx + xorl %eax,%ecx + rorl $2,%edi + leal 1518500249(%ebp,%ebx,1),%ebp + addl %ebp,%ecx + # 16_19 16 + + movl (%esp),%ebx + movl %edi,%ebp + xorl 8(%esp),%ebx + xorl %esi,%ebp + xorl 32(%esp),%ebx + andl %edx,%ebp + rorl $2,%edx + xorl 52(%esp),%ebx + roll $1,%ebx + xorl %esi,%ebp + movl %ebx,(%esp) + leal 1518500249(%ebx,%eax,1),%ebx + movl %ecx,%eax + roll $5,%eax + addl %ebp,%ebx + addl %eax,%ebx + # 16_19 17 + + movl 4(%esp),%eax + movl %edx,%ebp + xorl 12(%esp),%eax + xorl %edi,%ebp + xorl 36(%esp),%eax + andl %ecx,%ebp + rorl $2,%ecx + xorl 56(%esp),%eax + roll $1,%eax + xorl %edi,%ebp + movl %eax,4(%esp) + leal 1518500249(%eax,%esi,1),%eax + movl %ebx,%esi + roll $5,%esi + addl %ebp,%eax + addl %esi,%eax + # 16_19 18 + + movl 8(%esp),%esi + movl %ecx,%ebp + xorl 16(%esp),%esi + xorl %edx,%ebp + xorl 40(%esp),%esi + andl %ebx,%ebp + rorl $2,%ebx + xorl 60(%esp),%esi + roll $1,%esi + xorl %edx,%ebp + movl %esi,8(%esp) + leal 1518500249(%esi,%edi,1),%esi + movl %eax,%edi + roll $5,%edi + addl %ebp,%esi + addl %edi,%esi + # 16_19 19 + + movl 12(%esp),%edi + movl %ebx,%ebp + xorl 20(%esp),%edi + xorl %ecx,%ebp + xorl 44(%esp),%edi + andl %eax,%ebp + rorl $2,%eax + xorl (%esp),%edi + roll $1,%edi + xorl %ecx,%ebp + movl %edi,12(%esp) + leal 1518500249(%edi,%edx,1),%edi + movl %esi,%edx + roll $5,%edx + addl %ebp,%edi + addl %edx,%edi + # 20_39 20 + + movl %esi,%ebp + movl 16(%esp),%edx + rorl $2,%esi + xorl 24(%esp),%edx + xorl %eax,%ebp + xorl 48(%esp),%edx + xorl %ebx,%ebp + xorl 4(%esp),%edx + roll $1,%edx + addl %ecx,%ebp + movl %edx,16(%esp) + movl %edi,%ecx + roll $5,%ecx + leal 1859775393(%edx,%ebp,1),%edx + addl %ecx,%edx + # 20_39 21 + + movl %edi,%ebp + movl 20(%esp),%ecx + rorl $2,%edi + xorl 28(%esp),%ecx + xorl %esi,%ebp + xorl 52(%esp),%ecx + xorl %eax,%ebp + xorl 8(%esp),%ecx + roll $1,%ecx + addl %ebx,%ebp + movl %ecx,20(%esp) + movl %edx,%ebx + roll $5,%ebx + leal 1859775393(%ecx,%ebp,1),%ecx + addl %ebx,%ecx + # 20_39 22 + + movl %edx,%ebp + movl 24(%esp),%ebx + rorl $2,%edx + xorl 32(%esp),%ebx + xorl %edi,%ebp + xorl 56(%esp),%ebx + xorl %esi,%ebp + xorl 12(%esp),%ebx + roll $1,%ebx + addl %eax,%ebp + movl %ebx,24(%esp) + movl %ecx,%eax + roll $5,%eax + leal 1859775393(%ebx,%ebp,1),%ebx + addl %eax,%ebx + # 20_39 23 + + movl %ecx,%ebp + movl 28(%esp),%eax + rorl $2,%ecx + xorl 36(%esp),%eax + xorl %edx,%ebp + xorl 60(%esp),%eax + xorl %edi,%ebp + xorl 16(%esp),%eax + roll $1,%eax + addl %esi,%ebp + movl %eax,28(%esp) + movl %ebx,%esi + roll $5,%esi + leal 1859775393(%eax,%ebp,1),%eax + addl %esi,%eax + # 20_39 24 + + movl %ebx,%ebp + movl 32(%esp),%esi + rorl $2,%ebx + xorl 40(%esp),%esi + xorl %ecx,%ebp + xorl (%esp),%esi + xorl %edx,%ebp + xorl 20(%esp),%esi + roll $1,%esi + addl %edi,%ebp + movl %esi,32(%esp) + movl %eax,%edi + roll $5,%edi + leal 1859775393(%esi,%ebp,1),%esi + addl %edi,%esi + # 20_39 25 + + movl %eax,%ebp + movl 36(%esp),%edi + rorl $2,%eax + xorl 44(%esp),%edi + xorl %ebx,%ebp + xorl 4(%esp),%edi + xorl %ecx,%ebp + xorl 24(%esp),%edi + roll $1,%edi + addl %edx,%ebp + movl %edi,36(%esp) + movl %esi,%edx + roll $5,%edx + leal 1859775393(%edi,%ebp,1),%edi + addl %edx,%edi + # 20_39 26 + + movl %esi,%ebp + movl 40(%esp),%edx + rorl $2,%esi + xorl 48(%esp),%edx + xorl %eax,%ebp + xorl 8(%esp),%edx + xorl %ebx,%ebp + xorl 28(%esp),%edx + roll $1,%edx + addl %ecx,%ebp + movl %edx,40(%esp) + movl %edi,%ecx + roll $5,%ecx + leal 1859775393(%edx,%ebp,1),%edx + addl %ecx,%edx + # 20_39 27 + + movl %edi,%ebp + movl 44(%esp),%ecx + rorl $2,%edi + xorl 52(%esp),%ecx + xorl %esi,%ebp + xorl 12(%esp),%ecx + xorl %eax,%ebp + xorl 32(%esp),%ecx + roll $1,%ecx + addl %ebx,%ebp + movl %ecx,44(%esp) + movl %edx,%ebx + roll $5,%ebx + leal 1859775393(%ecx,%ebp,1),%ecx + addl %ebx,%ecx + # 20_39 28 + + movl %edx,%ebp + movl 48(%esp),%ebx + rorl $2,%edx + xorl 56(%esp),%ebx + xorl %edi,%ebp + xorl 16(%esp),%ebx + xorl %esi,%ebp + xorl 36(%esp),%ebx + roll $1,%ebx + addl %eax,%ebp + movl %ebx,48(%esp) + movl %ecx,%eax + roll $5,%eax + leal 1859775393(%ebx,%ebp,1),%ebx + addl %eax,%ebx + # 20_39 29 + + movl %ecx,%ebp + movl 52(%esp),%eax + rorl $2,%ecx + xorl 60(%esp),%eax + xorl %edx,%ebp + xorl 20(%esp),%eax + xorl %edi,%ebp + xorl 40(%esp),%eax + roll $1,%eax + addl %esi,%ebp + movl %eax,52(%esp) + movl %ebx,%esi + roll $5,%esi + leal 1859775393(%eax,%ebp,1),%eax + addl %esi,%eax + # 20_39 30 + + movl %ebx,%ebp + movl 56(%esp),%esi + rorl $2,%ebx + xorl (%esp),%esi + xorl %ecx,%ebp + xorl 24(%esp),%esi + xorl %edx,%ebp + xorl 44(%esp),%esi + roll $1,%esi + addl %edi,%ebp + movl %esi,56(%esp) + movl %eax,%edi + roll $5,%edi + leal 1859775393(%esi,%ebp,1),%esi + addl %edi,%esi + # 20_39 31 + + movl %eax,%ebp + movl 60(%esp),%edi + rorl $2,%eax + xorl 4(%esp),%edi + xorl %ebx,%ebp + xorl 28(%esp),%edi + xorl %ecx,%ebp + xorl 48(%esp),%edi + roll $1,%edi + addl %edx,%ebp + movl %edi,60(%esp) + movl %esi,%edx + roll $5,%edx + leal 1859775393(%edi,%ebp,1),%edi + addl %edx,%edi + # 20_39 32 + + movl %esi,%ebp + movl (%esp),%edx + rorl $2,%esi + xorl 8(%esp),%edx + xorl %eax,%ebp + xorl 32(%esp),%edx + xorl %ebx,%ebp + xorl 52(%esp),%edx + roll $1,%edx + addl %ecx,%ebp + movl %edx,(%esp) + movl %edi,%ecx + roll $5,%ecx + leal 1859775393(%edx,%ebp,1),%edx + addl %ecx,%edx + # 20_39 33 + + movl %edi,%ebp + movl 4(%esp),%ecx + rorl $2,%edi + xorl 12(%esp),%ecx + xorl %esi,%ebp + xorl 36(%esp),%ecx + xorl %eax,%ebp + xorl 56(%esp),%ecx + roll $1,%ecx + addl %ebx,%ebp + movl %ecx,4(%esp) + movl %edx,%ebx + roll $5,%ebx + leal 1859775393(%ecx,%ebp,1),%ecx + addl %ebx,%ecx + # 20_39 34 + + movl %edx,%ebp + movl 8(%esp),%ebx + rorl $2,%edx + xorl 16(%esp),%ebx + xorl %edi,%ebp + xorl 40(%esp),%ebx + xorl %esi,%ebp + xorl 60(%esp),%ebx + roll $1,%ebx + addl %eax,%ebp + movl %ebx,8(%esp) + movl %ecx,%eax + roll $5,%eax + leal 1859775393(%ebx,%ebp,1),%ebx + addl %eax,%ebx + # 20_39 35 + + movl %ecx,%ebp + movl 12(%esp),%eax + rorl $2,%ecx + xorl 20(%esp),%eax + xorl %edx,%ebp + xorl 44(%esp),%eax + xorl %edi,%ebp + xorl (%esp),%eax + roll $1,%eax + addl %esi,%ebp + movl %eax,12(%esp) + movl %ebx,%esi + roll $5,%esi + leal 1859775393(%eax,%ebp,1),%eax + addl %esi,%eax + # 20_39 36 + + movl %ebx,%ebp + movl 16(%esp),%esi + rorl $2,%ebx + xorl 24(%esp),%esi + xorl %ecx,%ebp + xorl 48(%esp),%esi + xorl %edx,%ebp + xorl 4(%esp),%esi + roll $1,%esi + addl %edi,%ebp + movl %esi,16(%esp) + movl %eax,%edi + roll $5,%edi + leal 1859775393(%esi,%ebp,1),%esi + addl %edi,%esi + # 20_39 37 + + movl %eax,%ebp + movl 20(%esp),%edi + rorl $2,%eax + xorl 28(%esp),%edi + xorl %ebx,%ebp + xorl 52(%esp),%edi + xorl %ecx,%ebp + xorl 8(%esp),%edi + roll $1,%edi + addl %edx,%ebp + movl %edi,20(%esp) + movl %esi,%edx + roll $5,%edx + leal 1859775393(%edi,%ebp,1),%edi + addl %edx,%edi + # 20_39 38 + + movl %esi,%ebp + movl 24(%esp),%edx + rorl $2,%esi + xorl 32(%esp),%edx + xorl %eax,%ebp + xorl 56(%esp),%edx + xorl %ebx,%ebp + xorl 12(%esp),%edx + roll $1,%edx + addl %ecx,%ebp + movl %edx,24(%esp) + movl %edi,%ecx + roll $5,%ecx + leal 1859775393(%edx,%ebp,1),%edx + addl %ecx,%edx + # 20_39 39 + + movl %edi,%ebp + movl 28(%esp),%ecx + rorl $2,%edi + xorl 36(%esp),%ecx + xorl %esi,%ebp + xorl 60(%esp),%ecx + xorl %eax,%ebp + xorl 16(%esp),%ecx + roll $1,%ecx + addl %ebx,%ebp + movl %ecx,28(%esp) + movl %edx,%ebx + roll $5,%ebx + leal 1859775393(%ecx,%ebp,1),%ecx + addl %ebx,%ecx + # 40_59 40 + + movl 32(%esp),%ebx + movl 40(%esp),%ebp + xorl %ebp,%ebx + movl (%esp),%ebp + xorl %ebp,%ebx + movl 20(%esp),%ebp + xorl %ebp,%ebx + movl %edx,%ebp + roll $1,%ebx + orl %edi,%ebp + movl %ebx,32(%esp) + andl %esi,%ebp + leal 2400959708(%ebx,%eax,1),%ebx + movl %edx,%eax + rorl $2,%edx + andl %edi,%eax + orl %eax,%ebp + movl %ecx,%eax + roll $5,%eax + addl %ebp,%ebx + addl %eax,%ebx + # 40_59 41 + + movl 36(%esp),%eax + movl 44(%esp),%ebp + xorl %ebp,%eax + movl 4(%esp),%ebp + xorl %ebp,%eax + movl 24(%esp),%ebp + xorl %ebp,%eax + movl %ecx,%ebp + roll $1,%eax + orl %edx,%ebp + movl %eax,36(%esp) + andl %edi,%ebp + leal 2400959708(%eax,%esi,1),%eax + movl %ecx,%esi + rorl $2,%ecx + andl %edx,%esi + orl %esi,%ebp + movl %ebx,%esi + roll $5,%esi + addl %ebp,%eax + addl %esi,%eax + # 40_59 42 + + movl 40(%esp),%esi + movl 48(%esp),%ebp + xorl %ebp,%esi + movl 8(%esp),%ebp + xorl %ebp,%esi + movl 28(%esp),%ebp + xorl %ebp,%esi + movl %ebx,%ebp + roll $1,%esi + orl %ecx,%ebp + movl %esi,40(%esp) + andl %edx,%ebp + leal 2400959708(%esi,%edi,1),%esi + movl %ebx,%edi + rorl $2,%ebx + andl %ecx,%edi + orl %edi,%ebp + movl %eax,%edi + roll $5,%edi + addl %ebp,%esi + addl %edi,%esi + # 40_59 43 + + movl 44(%esp),%edi + movl 52(%esp),%ebp + xorl %ebp,%edi + movl 12(%esp),%ebp + xorl %ebp,%edi + movl 32(%esp),%ebp + xorl %ebp,%edi + movl %eax,%ebp + roll $1,%edi + orl %ebx,%ebp + movl %edi,44(%esp) + andl %ecx,%ebp + leal 2400959708(%edi,%edx,1),%edi + movl %eax,%edx + rorl $2,%eax + andl %ebx,%edx + orl %edx,%ebp + movl %esi,%edx + roll $5,%edx + addl %ebp,%edi + addl %edx,%edi + # 40_59 44 + + movl 48(%esp),%edx + movl 56(%esp),%ebp + xorl %ebp,%edx + movl 16(%esp),%ebp + xorl %ebp,%edx + movl 36(%esp),%ebp + xorl %ebp,%edx + movl %esi,%ebp + roll $1,%edx + orl %eax,%ebp + movl %edx,48(%esp) + andl %ebx,%ebp + leal 2400959708(%edx,%ecx,1),%edx + movl %esi,%ecx + rorl $2,%esi + andl %eax,%ecx + orl %ecx,%ebp + movl %edi,%ecx + roll $5,%ecx + addl %ebp,%edx + addl %ecx,%edx + # 40_59 45 + + movl 52(%esp),%ecx + movl 60(%esp),%ebp + xorl %ebp,%ecx + movl 20(%esp),%ebp + xorl %ebp,%ecx + movl 40(%esp),%ebp + xorl %ebp,%ecx + movl %edi,%ebp + roll $1,%ecx + orl %esi,%ebp + movl %ecx,52(%esp) + andl %eax,%ebp + leal 2400959708(%ecx,%ebx,1),%ecx + movl %edi,%ebx + rorl $2,%edi + andl %esi,%ebx + orl %ebx,%ebp + movl %edx,%ebx + roll $5,%ebx + addl %ebp,%ecx + addl %ebx,%ecx + # 40_59 46 + + movl 56(%esp),%ebx + movl (%esp),%ebp + xorl %ebp,%ebx + movl 24(%esp),%ebp + xorl %ebp,%ebx + movl 44(%esp),%ebp + xorl %ebp,%ebx + movl %edx,%ebp + roll $1,%ebx + orl %edi,%ebp + movl %ebx,56(%esp) + andl %esi,%ebp + leal 2400959708(%ebx,%eax,1),%ebx + movl %edx,%eax + rorl $2,%edx + andl %edi,%eax + orl %eax,%ebp + movl %ecx,%eax + roll $5,%eax + addl %ebp,%ebx + addl %eax,%ebx + # 40_59 47 + + movl 60(%esp),%eax + movl 4(%esp),%ebp + xorl %ebp,%eax + movl 28(%esp),%ebp + xorl %ebp,%eax + movl 48(%esp),%ebp + xorl %ebp,%eax + movl %ecx,%ebp + roll $1,%eax + orl %edx,%ebp + movl %eax,60(%esp) + andl %edi,%ebp + leal 2400959708(%eax,%esi,1),%eax + movl %ecx,%esi + rorl $2,%ecx + andl %edx,%esi + orl %esi,%ebp + movl %ebx,%esi + roll $5,%esi + addl %ebp,%eax + addl %esi,%eax + # 40_59 48 + + movl (%esp),%esi + movl 8(%esp),%ebp + xorl %ebp,%esi + movl 32(%esp),%ebp + xorl %ebp,%esi + movl 52(%esp),%ebp + xorl %ebp,%esi + movl %ebx,%ebp + roll $1,%esi + orl %ecx,%ebp + movl %esi,(%esp) + andl %edx,%ebp + leal 2400959708(%esi,%edi,1),%esi + movl %ebx,%edi + rorl $2,%ebx + andl %ecx,%edi + orl %edi,%ebp + movl %eax,%edi + roll $5,%edi + addl %ebp,%esi + addl %edi,%esi + # 40_59 49 + + movl 4(%esp),%edi + movl 12(%esp),%ebp + xorl %ebp,%edi + movl 36(%esp),%ebp + xorl %ebp,%edi + movl 56(%esp),%ebp + xorl %ebp,%edi + movl %eax,%ebp + roll $1,%edi + orl %ebx,%ebp + movl %edi,4(%esp) + andl %ecx,%ebp + leal 2400959708(%edi,%edx,1),%edi + movl %eax,%edx + rorl $2,%eax + andl %ebx,%edx + orl %edx,%ebp + movl %esi,%edx + roll $5,%edx + addl %ebp,%edi + addl %edx,%edi + # 40_59 50 + + movl 8(%esp),%edx + movl 16(%esp),%ebp + xorl %ebp,%edx + movl 40(%esp),%ebp + xorl %ebp,%edx + movl 60(%esp),%ebp + xorl %ebp,%edx + movl %esi,%ebp + roll $1,%edx + orl %eax,%ebp + movl %edx,8(%esp) + andl %ebx,%ebp + leal 2400959708(%edx,%ecx,1),%edx + movl %esi,%ecx + rorl $2,%esi + andl %eax,%ecx + orl %ecx,%ebp + movl %edi,%ecx + roll $5,%ecx + addl %ebp,%edx + addl %ecx,%edx + # 40_59 51 + + movl 12(%esp),%ecx + movl 20(%esp),%ebp + xorl %ebp,%ecx + movl 44(%esp),%ebp + xorl %ebp,%ecx + movl (%esp),%ebp + xorl %ebp,%ecx + movl %edi,%ebp + roll $1,%ecx + orl %esi,%ebp + movl %ecx,12(%esp) + andl %eax,%ebp + leal 2400959708(%ecx,%ebx,1),%ecx + movl %edi,%ebx + rorl $2,%edi + andl %esi,%ebx + orl %ebx,%ebp + movl %edx,%ebx + roll $5,%ebx + addl %ebp,%ecx + addl %ebx,%ecx + # 40_59 52 + + movl 16(%esp),%ebx + movl 24(%esp),%ebp + xorl %ebp,%ebx + movl 48(%esp),%ebp + xorl %ebp,%ebx + movl 4(%esp),%ebp + xorl %ebp,%ebx + movl %edx,%ebp + roll $1,%ebx + orl %edi,%ebp + movl %ebx,16(%esp) + andl %esi,%ebp + leal 2400959708(%ebx,%eax,1),%ebx + movl %edx,%eax + rorl $2,%edx + andl %edi,%eax + orl %eax,%ebp + movl %ecx,%eax + roll $5,%eax + addl %ebp,%ebx + addl %eax,%ebx + # 40_59 53 + + movl 20(%esp),%eax + movl 28(%esp),%ebp + xorl %ebp,%eax + movl 52(%esp),%ebp + xorl %ebp,%eax + movl 8(%esp),%ebp + xorl %ebp,%eax + movl %ecx,%ebp + roll $1,%eax + orl %edx,%ebp + movl %eax,20(%esp) + andl %edi,%ebp + leal 2400959708(%eax,%esi,1),%eax + movl %ecx,%esi + rorl $2,%ecx + andl %edx,%esi + orl %esi,%ebp + movl %ebx,%esi + roll $5,%esi + addl %ebp,%eax + addl %esi,%eax + # 40_59 54 + + movl 24(%esp),%esi + movl 32(%esp),%ebp + xorl %ebp,%esi + movl 56(%esp),%ebp + xorl %ebp,%esi + movl 12(%esp),%ebp + xorl %ebp,%esi + movl %ebx,%ebp + roll $1,%esi + orl %ecx,%ebp + movl %esi,24(%esp) + andl %edx,%ebp + leal 2400959708(%esi,%edi,1),%esi + movl %ebx,%edi + rorl $2,%ebx + andl %ecx,%edi + orl %edi,%ebp + movl %eax,%edi + roll $5,%edi + addl %ebp,%esi + addl %edi,%esi + # 40_59 55 + + movl 28(%esp),%edi + movl 36(%esp),%ebp + xorl %ebp,%edi + movl 60(%esp),%ebp + xorl %ebp,%edi + movl 16(%esp),%ebp + xorl %ebp,%edi + movl %eax,%ebp + roll $1,%edi + orl %ebx,%ebp + movl %edi,28(%esp) + andl %ecx,%ebp + leal 2400959708(%edi,%edx,1),%edi + movl %eax,%edx + rorl $2,%eax + andl %ebx,%edx + orl %edx,%ebp + movl %esi,%edx + roll $5,%edx + addl %ebp,%edi + addl %edx,%edi + # 40_59 56 + + movl 32(%esp),%edx + movl 40(%esp),%ebp + xorl %ebp,%edx + movl (%esp),%ebp + xorl %ebp,%edx + movl 20(%esp),%ebp + xorl %ebp,%edx + movl %esi,%ebp + roll $1,%edx + orl %eax,%ebp + movl %edx,32(%esp) + andl %ebx,%ebp + leal 2400959708(%edx,%ecx,1),%edx + movl %esi,%ecx + rorl $2,%esi + andl %eax,%ecx + orl %ecx,%ebp + movl %edi,%ecx + roll $5,%ecx + addl %ebp,%edx + addl %ecx,%edx + # 40_59 57 + + movl 36(%esp),%ecx + movl 44(%esp),%ebp + xorl %ebp,%ecx + movl 4(%esp),%ebp + xorl %ebp,%ecx + movl 24(%esp),%ebp + xorl %ebp,%ecx + movl %edi,%ebp + roll $1,%ecx + orl %esi,%ebp + movl %ecx,36(%esp) + andl %eax,%ebp + leal 2400959708(%ecx,%ebx,1),%ecx + movl %edi,%ebx + rorl $2,%edi + andl %esi,%ebx + orl %ebx,%ebp + movl %edx,%ebx + roll $5,%ebx + addl %ebp,%ecx + addl %ebx,%ecx + # 40_59 58 + + movl 40(%esp),%ebx + movl 48(%esp),%ebp + xorl %ebp,%ebx + movl 8(%esp),%ebp + xorl %ebp,%ebx + movl 28(%esp),%ebp + xorl %ebp,%ebx + movl %edx,%ebp + roll $1,%ebx + orl %edi,%ebp + movl %ebx,40(%esp) + andl %esi,%ebp + leal 2400959708(%ebx,%eax,1),%ebx + movl %edx,%eax + rorl $2,%edx + andl %edi,%eax + orl %eax,%ebp + movl %ecx,%eax + roll $5,%eax + addl %ebp,%ebx + addl %eax,%ebx + # 40_59 59 + + movl 44(%esp),%eax + movl 52(%esp),%ebp + xorl %ebp,%eax + movl 12(%esp),%ebp + xorl %ebp,%eax + movl 32(%esp),%ebp + xorl %ebp,%eax + movl %ecx,%ebp + roll $1,%eax + orl %edx,%ebp + movl %eax,44(%esp) + andl %edi,%ebp + leal 2400959708(%eax,%esi,1),%eax + movl %ecx,%esi + rorl $2,%ecx + andl %edx,%esi + orl %esi,%ebp + movl %ebx,%esi + roll $5,%esi + addl %ebp,%eax + addl %esi,%eax + # 20_39 60 + + movl %ebx,%ebp + movl 48(%esp),%esi + rorl $2,%ebx + xorl 56(%esp),%esi + xorl %ecx,%ebp + xorl 16(%esp),%esi + xorl %edx,%ebp + xorl 36(%esp),%esi + roll $1,%esi + addl %edi,%ebp + movl %esi,48(%esp) + movl %eax,%edi + roll $5,%edi + leal 3395469782(%esi,%ebp,1),%esi + addl %edi,%esi + # 20_39 61 + + movl %eax,%ebp + movl 52(%esp),%edi + rorl $2,%eax + xorl 60(%esp),%edi + xorl %ebx,%ebp + xorl 20(%esp),%edi + xorl %ecx,%ebp + xorl 40(%esp),%edi + roll $1,%edi + addl %edx,%ebp + movl %edi,52(%esp) + movl %esi,%edx + roll $5,%edx + leal 3395469782(%edi,%ebp,1),%edi + addl %edx,%edi + # 20_39 62 + + movl %esi,%ebp + movl 56(%esp),%edx + rorl $2,%esi + xorl (%esp),%edx + xorl %eax,%ebp + xorl 24(%esp),%edx + xorl %ebx,%ebp + xorl 44(%esp),%edx + roll $1,%edx + addl %ecx,%ebp + movl %edx,56(%esp) + movl %edi,%ecx + roll $5,%ecx + leal 3395469782(%edx,%ebp,1),%edx + addl %ecx,%edx + # 20_39 63 + + movl %edi,%ebp + movl 60(%esp),%ecx + rorl $2,%edi + xorl 4(%esp),%ecx + xorl %esi,%ebp + xorl 28(%esp),%ecx + xorl %eax,%ebp + xorl 48(%esp),%ecx + roll $1,%ecx + addl %ebx,%ebp + movl %ecx,60(%esp) + movl %edx,%ebx + roll $5,%ebx + leal 3395469782(%ecx,%ebp,1),%ecx + addl %ebx,%ecx + # 20_39 64 + + movl %edx,%ebp + movl (%esp),%ebx + rorl $2,%edx + xorl 8(%esp),%ebx + xorl %edi,%ebp + xorl 32(%esp),%ebx + xorl %esi,%ebp + xorl 52(%esp),%ebx + roll $1,%ebx + addl %eax,%ebp + movl %ebx,(%esp) + movl %ecx,%eax + roll $5,%eax + leal 3395469782(%ebx,%ebp,1),%ebx + addl %eax,%ebx + # 20_39 65 + + movl %ecx,%ebp + movl 4(%esp),%eax + rorl $2,%ecx + xorl 12(%esp),%eax + xorl %edx,%ebp + xorl 36(%esp),%eax + xorl %edi,%ebp + xorl 56(%esp),%eax + roll $1,%eax + addl %esi,%ebp + movl %eax,4(%esp) + movl %ebx,%esi + roll $5,%esi + leal 3395469782(%eax,%ebp,1),%eax + addl %esi,%eax + # 20_39 66 + + movl %ebx,%ebp + movl 8(%esp),%esi + rorl $2,%ebx + xorl 16(%esp),%esi + xorl %ecx,%ebp + xorl 40(%esp),%esi + xorl %edx,%ebp + xorl 60(%esp),%esi + roll $1,%esi + addl %edi,%ebp + movl %esi,8(%esp) + movl %eax,%edi + roll $5,%edi + leal 3395469782(%esi,%ebp,1),%esi + addl %edi,%esi + # 20_39 67 + + movl %eax,%ebp + movl 12(%esp),%edi + rorl $2,%eax + xorl 20(%esp),%edi + xorl %ebx,%ebp + xorl 44(%esp),%edi + xorl %ecx,%ebp + xorl (%esp),%edi + roll $1,%edi + addl %edx,%ebp + movl %edi,12(%esp) + movl %esi,%edx + roll $5,%edx + leal 3395469782(%edi,%ebp,1),%edi + addl %edx,%edi + # 20_39 68 + + movl %esi,%ebp + movl 16(%esp),%edx + rorl $2,%esi + xorl 24(%esp),%edx + xorl %eax,%ebp + xorl 48(%esp),%edx + xorl %ebx,%ebp + xorl 4(%esp),%edx + roll $1,%edx + addl %ecx,%ebp + movl %edx,16(%esp) + movl %edi,%ecx + roll $5,%ecx + leal 3395469782(%edx,%ebp,1),%edx + addl %ecx,%edx + # 20_39 69 + + movl %edi,%ebp + movl 20(%esp),%ecx + rorl $2,%edi + xorl 28(%esp),%ecx + xorl %esi,%ebp + xorl 52(%esp),%ecx + xorl %eax,%ebp + xorl 8(%esp),%ecx + roll $1,%ecx + addl %ebx,%ebp + movl %ecx,20(%esp) + movl %edx,%ebx + roll $5,%ebx + leal 3395469782(%ecx,%ebp,1),%ecx + addl %ebx,%ecx + # 20_39 70 + + movl %edx,%ebp + movl 24(%esp),%ebx + rorl $2,%edx + xorl 32(%esp),%ebx + xorl %edi,%ebp + xorl 56(%esp),%ebx + xorl %esi,%ebp + xorl 12(%esp),%ebx + roll $1,%ebx + addl %eax,%ebp + movl %ebx,24(%esp) + movl %ecx,%eax + roll $5,%eax + leal 3395469782(%ebx,%ebp,1),%ebx + addl %eax,%ebx + # 20_39 71 + + movl %ecx,%ebp + movl 28(%esp),%eax + rorl $2,%ecx + xorl 36(%esp),%eax + xorl %edx,%ebp + xorl 60(%esp),%eax + xorl %edi,%ebp + xorl 16(%esp),%eax + roll $1,%eax + addl %esi,%ebp + movl %eax,28(%esp) + movl %ebx,%esi + roll $5,%esi + leal 3395469782(%eax,%ebp,1),%eax + addl %esi,%eax + # 20_39 72 + + movl %ebx,%ebp + movl 32(%esp),%esi + rorl $2,%ebx + xorl 40(%esp),%esi + xorl %ecx,%ebp + xorl (%esp),%esi + xorl %edx,%ebp + xorl 20(%esp),%esi + roll $1,%esi + addl %edi,%ebp + movl %esi,32(%esp) + movl %eax,%edi + roll $5,%edi + leal 3395469782(%esi,%ebp,1),%esi + addl %edi,%esi + # 20_39 73 + + movl %eax,%ebp + movl 36(%esp),%edi + rorl $2,%eax + xorl 44(%esp),%edi + xorl %ebx,%ebp + xorl 4(%esp),%edi + xorl %ecx,%ebp + xorl 24(%esp),%edi + roll $1,%edi + addl %edx,%ebp + movl %edi,36(%esp) + movl %esi,%edx + roll $5,%edx + leal 3395469782(%edi,%ebp,1),%edi + addl %edx,%edi + # 20_39 74 + + movl %esi,%ebp + movl 40(%esp),%edx + rorl $2,%esi + xorl 48(%esp),%edx + xorl %eax,%ebp + xorl 8(%esp),%edx + xorl %ebx,%ebp + xorl 28(%esp),%edx + roll $1,%edx + addl %ecx,%ebp + movl %edx,40(%esp) + movl %edi,%ecx + roll $5,%ecx + leal 3395469782(%edx,%ebp,1),%edx + addl %ecx,%edx + # 20_39 75 + + movl %edi,%ebp + movl 44(%esp),%ecx + rorl $2,%edi + xorl 52(%esp),%ecx + xorl %esi,%ebp + xorl 12(%esp),%ecx + xorl %eax,%ebp + xorl 32(%esp),%ecx + roll $1,%ecx + addl %ebx,%ebp + movl %ecx,44(%esp) + movl %edx,%ebx + roll $5,%ebx + leal 3395469782(%ecx,%ebp,1),%ecx + addl %ebx,%ecx + # 20_39 76 + + movl %edx,%ebp + movl 48(%esp),%ebx + rorl $2,%edx + xorl 56(%esp),%ebx + xorl %edi,%ebp + xorl 16(%esp),%ebx + xorl %esi,%ebp + xorl 36(%esp),%ebx + roll $1,%ebx + addl %eax,%ebp + movl %ebx,48(%esp) + movl %ecx,%eax + roll $5,%eax + leal 3395469782(%ebx,%ebp,1),%ebx + addl %eax,%ebx + # 20_39 77 + + movl %ecx,%ebp + movl 52(%esp),%eax + rorl $2,%ecx + xorl 60(%esp),%eax + xorl %edx,%ebp + xorl 20(%esp),%eax + xorl %edi,%ebp + xorl 40(%esp),%eax + roll $1,%eax + addl %esi,%ebp + movl %eax,52(%esp) + movl %ebx,%esi + roll $5,%esi + leal 3395469782(%eax,%ebp,1),%eax + addl %esi,%eax + # 20_39 78 + + movl %ebx,%ebp + movl 56(%esp),%esi + rorl $2,%ebx + xorl (%esp),%esi + xorl %ecx,%ebp + xorl 24(%esp),%esi + xorl %edx,%ebp + xorl 44(%esp),%esi + roll $1,%esi + addl %edi,%ebp + movl %esi,56(%esp) + movl %eax,%edi + roll $5,%edi + leal 3395469782(%esi,%ebp,1),%esi + addl %edi,%esi + # 20_39 79 + + movl %eax,%ebp + movl 60(%esp),%edi + rorl $2,%eax + xorl 4(%esp),%edi + xorl %ebx,%ebp + xorl 28(%esp),%edi + xorl %ecx,%ebp + xorl 48(%esp),%edi + roll $1,%edi + addl %edx,%ebp + movl %edi,60(%esp) + movl %esi,%edx + roll $5,%edx + leal 3395469782(%edi,%ebp,1),%edi + addl %edx,%edi + movl 84(%esp),%ebp + movl 88(%esp),%edx + addl (%ebp),%edi + addl 4(%ebp),%esi + addl 8(%ebp),%eax + addl 12(%ebp),%ebx + addl 16(%ebp),%ecx + movl %edi,(%ebp) + addl $64,%edx + movl %esi,4(%ebp) + cmpl 92(%esp),%edx + movl %eax,8(%ebp) + movl %ecx,%edi + movl %ebx,12(%ebp) + movl %edx,%esi + movl %ecx,16(%ebp) + jb L000loop + addl $64,%esp + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115 +.byte 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82 +.byte 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 +.byte 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/deps/openssl/asm/x86-macosx-gas/sha/sha256-586.s b/deps/openssl/asm/x86-macosx-gas/sha/sha256-586.s new file mode 100644 index 0000000000..1190be7503 --- /dev/null +++ b/deps/openssl/asm/x86-macosx-gas/sha/sha256-586.s @@ -0,0 +1,259 @@ +.file "sha512-586.s" +.text +.globl _sha256_block_data_order +.align 4 +_sha256_block_data_order: +L_sha256_block_data_order_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%esi + movl 24(%esp),%edi + movl 28(%esp),%eax + movl %esp,%ebx + call L000pic_point +L000pic_point: + popl %ebp + leal L001K256-L000pic_point(%ebp),%ebp + subl $16,%esp + andl $-64,%esp + shll $6,%eax + addl %edi,%eax + movl %esi,(%esp) + movl %edi,4(%esp) + movl %eax,8(%esp) + movl %ebx,12(%esp) +.align 4,0x90 +L002loop: + movl (%edi),%eax + movl 4(%edi),%ebx + movl 8(%edi),%ecx + movl 12(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 16(%edi),%eax + movl 20(%edi),%ebx + movl 24(%edi),%ecx + movl 28(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 32(%edi),%eax + movl 36(%edi),%ebx + movl 40(%edi),%ecx + movl 44(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 48(%edi),%eax + movl 52(%edi),%ebx + movl 56(%edi),%ecx + movl 60(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + addl $64,%edi + subl $32,%esp + movl %edi,100(%esp) + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edi + movl %ebx,4(%esp) + movl %ecx,8(%esp) + movl %edi,12(%esp) + movl 16(%esi),%edx + movl 20(%esi),%ebx + movl 24(%esi),%ecx + movl 28(%esi),%edi + movl %ebx,20(%esp) + movl %ecx,24(%esp) + movl %edi,28(%esp) +.align 4,0x90 +L00300_15: + movl 92(%esp),%ebx + movl %edx,%ecx + rorl $6,%ecx + movl %edx,%edi + rorl $11,%edi + movl 20(%esp),%esi + xorl %edi,%ecx + rorl $14,%edi + xorl %edi,%ecx + movl 24(%esp),%edi + addl %ecx,%ebx + movl %edx,16(%esp) + xorl %edi,%esi + movl %eax,%ecx + andl %edx,%esi + movl 12(%esp),%edx + xorl %edi,%esi + movl %eax,%edi + addl %esi,%ebx + rorl $2,%ecx + addl 28(%esp),%ebx + rorl $13,%edi + movl 4(%esp),%esi + xorl %edi,%ecx + rorl $9,%edi + addl %ebx,%edx + xorl %edi,%ecx + movl 8(%esp),%edi + addl %ecx,%ebx + movl %eax,(%esp) + movl %eax,%ecx + subl $4,%esp + orl %esi,%eax + andl %esi,%ecx + andl %edi,%eax + movl (%ebp),%esi + orl %ecx,%eax + addl $4,%ebp + addl %ebx,%eax + addl %esi,%edx + addl %esi,%eax + cmpl $3248222580,%esi + jne L00300_15 + movl 152(%esp),%ebx +.align 4,0x90 +L00416_63: + movl %ebx,%esi + movl 100(%esp),%ecx + shrl $3,%ebx + rorl $7,%esi + xorl %esi,%ebx + rorl $11,%esi + movl %ecx,%edi + xorl %esi,%ebx + shrl $10,%ecx + movl 156(%esp),%esi + rorl $17,%edi + xorl %edi,%ecx + rorl $2,%edi + addl %esi,%ebx + xorl %ecx,%edi + addl %edi,%ebx + movl %edx,%ecx + addl 120(%esp),%ebx + rorl $6,%ecx + movl %edx,%edi + rorl $11,%edi + movl 20(%esp),%esi + xorl %edi,%ecx + rorl $14,%edi + movl %ebx,92(%esp) + xorl %edi,%ecx + movl 24(%esp),%edi + addl %ecx,%ebx + movl %edx,16(%esp) + xorl %edi,%esi + movl %eax,%ecx + andl %edx,%esi + movl 12(%esp),%edx + xorl %edi,%esi + movl %eax,%edi + addl %esi,%ebx + rorl $2,%ecx + addl 28(%esp),%ebx + rorl $13,%edi + movl 4(%esp),%esi + xorl %edi,%ecx + rorl $9,%edi + addl %ebx,%edx + xorl %edi,%ecx + movl 8(%esp),%edi + addl %ecx,%ebx + movl %eax,(%esp) + movl %eax,%ecx + subl $4,%esp + orl %esi,%eax + andl %esi,%ecx + andl %edi,%eax + movl (%ebp),%esi + orl %ecx,%eax + addl $4,%ebp + addl %ebx,%eax + movl 152(%esp),%ebx + addl %esi,%edx + addl %esi,%eax + cmpl $3329325298,%esi + jne L00416_63 + movl 352(%esp),%esi + movl 4(%esp),%ebx + movl 8(%esp),%ecx + movl 12(%esp),%edi + addl (%esi),%eax + addl 4(%esi),%ebx + addl 8(%esi),%ecx + addl 12(%esi),%edi + movl %eax,(%esi) + movl %ebx,4(%esi) + movl %ecx,8(%esi) + movl %edi,12(%esi) + movl 20(%esp),%eax + movl 24(%esp),%ebx + movl 28(%esp),%ecx + movl 356(%esp),%edi + addl 16(%esi),%edx + addl 20(%esi),%eax + addl 24(%esi),%ebx + addl 28(%esi),%ecx + movl %edx,16(%esi) + movl %eax,20(%esi) + movl %ebx,24(%esi) + movl %ecx,28(%esi) + addl $352,%esp + subl $256,%ebp + cmpl 8(%esp),%edi + jb L002loop + movl 12(%esp),%esp + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 6,0x90 +L001K256: +.long 1116352408,1899447441,3049323471,3921009573 +.long 961987163,1508970993,2453635748,2870763221 +.long 3624381080,310598401,607225278,1426881987 +.long 1925078388,2162078206,2614888103,3248222580 +.long 3835390401,4022224774,264347078,604807628 +.long 770255983,1249150122,1555081692,1996064986 +.long 2554220882,2821834349,2952996808,3210313671 +.long 3336571891,3584528711,113926993,338241895 +.long 666307205,773529912,1294757372,1396182291 +.long 1695183700,1986661051,2177026350,2456956037 +.long 2730485921,2820302411,3259730800,3345764771 +.long 3516065817,3600352804,4094571909,275423344 +.long 430227734,506948616,659060556,883997877 +.long 958139571,1322822218,1537002063,1747873779 +.long 1955562222,2024104815,2227730452,2361852424 +.long 2428436474,2756734187,3204031479,3329325298 +.byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97 +.byte 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32 +.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 +.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 +.byte 62,0 diff --git a/deps/openssl/asm/x86-macosx-gas/sha/sha512-586.s b/deps/openssl/asm/x86-macosx-gas/sha/sha512-586.s new file mode 100644 index 0000000000..2c9975305a --- /dev/null +++ b/deps/openssl/asm/x86-macosx-gas/sha/sha512-586.s @@ -0,0 +1,561 @@ +.file "sha512-586.s" +.text +.globl _sha512_block_data_order +.align 4 +_sha512_block_data_order: +L_sha512_block_data_order_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%esi + movl 24(%esp),%edi + movl 28(%esp),%eax + movl %esp,%ebx + call L000pic_point +L000pic_point: + popl %ebp + leal L001K512-L000pic_point(%ebp),%ebp + subl $16,%esp + andl $-64,%esp + shll $7,%eax + addl %edi,%eax + movl %esi,(%esp) + movl %edi,4(%esp) + movl %eax,8(%esp) + movl %ebx,12(%esp) +.align 4,0x90 +L002loop_x86: + movl (%edi),%eax + movl 4(%edi),%ebx + movl 8(%edi),%ecx + movl 12(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 16(%edi),%eax + movl 20(%edi),%ebx + movl 24(%edi),%ecx + movl 28(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 32(%edi),%eax + movl 36(%edi),%ebx + movl 40(%edi),%ecx + movl 44(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 48(%edi),%eax + movl 52(%edi),%ebx + movl 56(%edi),%ecx + movl 60(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 64(%edi),%eax + movl 68(%edi),%ebx + movl 72(%edi),%ecx + movl 76(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 80(%edi),%eax + movl 84(%edi),%ebx + movl 88(%edi),%ecx + movl 92(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 96(%edi),%eax + movl 100(%edi),%ebx + movl 104(%edi),%ecx + movl 108(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + movl 112(%edi),%eax + movl 116(%edi),%ebx + movl 120(%edi),%ecx + movl 124(%edi),%edx + bswap %eax + bswap %ebx + bswap %ecx + bswap %edx + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + addl $128,%edi + subl $72,%esp + movl %edi,204(%esp) + leal 8(%esp),%edi + movl $16,%ecx +.long 2784229001 +.align 4,0x90 +L00300_15_x86: + movl 40(%esp),%ecx + movl 44(%esp),%edx + movl %ecx,%esi + shrl $9,%ecx + movl %edx,%edi + shrl $9,%edx + movl %ecx,%ebx + shll $14,%esi + movl %edx,%eax + shll $14,%edi + xorl %esi,%ebx + shrl $5,%ecx + xorl %edi,%eax + shrl $5,%edx + xorl %ecx,%eax + shll $4,%esi + xorl %edx,%ebx + shll $4,%edi + xorl %esi,%ebx + shrl $4,%ecx + xorl %edi,%eax + shrl $4,%edx + xorl %ecx,%eax + shll $5,%esi + xorl %edx,%ebx + shll $5,%edi + xorl %esi,%eax + xorl %edi,%ebx + movl 48(%esp),%ecx + movl 52(%esp),%edx + movl 56(%esp),%esi + movl 60(%esp),%edi + addl 64(%esp),%eax + adcl 68(%esp),%ebx + xorl %esi,%ecx + xorl %edi,%edx + andl 40(%esp),%ecx + andl 44(%esp),%edx + addl 192(%esp),%eax + adcl 196(%esp),%ebx + xorl %esi,%ecx + xorl %edi,%edx + movl (%ebp),%esi + movl 4(%ebp),%edi + addl %ecx,%eax + adcl %edx,%ebx + movl 32(%esp),%ecx + movl 36(%esp),%edx + addl %esi,%eax + adcl %edi,%ebx + movl %eax,(%esp) + movl %ebx,4(%esp) + addl %ecx,%eax + adcl %edx,%ebx + movl 8(%esp),%ecx + movl 12(%esp),%edx + movl %eax,32(%esp) + movl %ebx,36(%esp) + movl %ecx,%esi + shrl $2,%ecx + movl %edx,%edi + shrl $2,%edx + movl %ecx,%ebx + shll $4,%esi + movl %edx,%eax + shll $4,%edi + xorl %esi,%ebx + shrl $5,%ecx + xorl %edi,%eax + shrl $5,%edx + xorl %ecx,%ebx + shll $21,%esi + xorl %edx,%eax + shll $21,%edi + xorl %esi,%eax + shrl $21,%ecx + xorl %edi,%ebx + shrl $21,%edx + xorl %ecx,%eax + shll $5,%esi + xorl %edx,%ebx + shll $5,%edi + xorl %esi,%eax + xorl %edi,%ebx + movl 8(%esp),%ecx + movl 12(%esp),%edx + movl 16(%esp),%esi + movl 20(%esp),%edi + addl (%esp),%eax + adcl 4(%esp),%ebx + orl %esi,%ecx + orl %edi,%edx + andl 24(%esp),%ecx + andl 28(%esp),%edx + andl 8(%esp),%esi + andl 12(%esp),%edi + orl %esi,%ecx + orl %edi,%edx + addl %ecx,%eax + adcl %edx,%ebx + movl %eax,(%esp) + movl %ebx,4(%esp) + movb (%ebp),%dl + subl $8,%esp + leal 8(%ebp),%ebp + cmpb $148,%dl + jne L00300_15_x86 +.align 4,0x90 +L00416_79_x86: + movl 312(%esp),%ecx + movl 316(%esp),%edx + movl %ecx,%esi + shrl $1,%ecx + movl %edx,%edi + shrl $1,%edx + movl %ecx,%eax + shll $24,%esi + movl %edx,%ebx + shll $24,%edi + xorl %esi,%ebx + shrl $6,%ecx + xorl %edi,%eax + shrl $6,%edx + xorl %ecx,%eax + shll $7,%esi + xorl %edx,%ebx + shll $1,%edi + xorl %esi,%ebx + shrl $1,%ecx + xorl %edi,%eax + shrl $1,%edx + xorl %ecx,%eax + shll $6,%edi + xorl %edx,%ebx + xorl %edi,%eax + movl %eax,(%esp) + movl %ebx,4(%esp) + movl 208(%esp),%ecx + movl 212(%esp),%edx + movl %ecx,%esi + shrl $6,%ecx + movl %edx,%edi + shrl $6,%edx + movl %ecx,%eax + shll $3,%esi + movl %edx,%ebx + shll $3,%edi + xorl %esi,%eax + shrl $13,%ecx + xorl %edi,%ebx + shrl $13,%edx + xorl %ecx,%eax + shll $10,%esi + xorl %edx,%ebx + shll $10,%edi + xorl %esi,%ebx + shrl $10,%ecx + xorl %edi,%eax + shrl $10,%edx + xorl %ecx,%ebx + shll $13,%edi + xorl %edx,%eax + xorl %edi,%eax + movl 320(%esp),%ecx + movl 324(%esp),%edx + addl (%esp),%eax + adcl 4(%esp),%ebx + movl 248(%esp),%esi + movl 252(%esp),%edi + addl %ecx,%eax + adcl %edx,%ebx + addl %esi,%eax + adcl %edi,%ebx + movl %eax,192(%esp) + movl %ebx,196(%esp) + movl 40(%esp),%ecx + movl 44(%esp),%edx + movl %ecx,%esi + shrl $9,%ecx + movl %edx,%edi + shrl $9,%edx + movl %ecx,%ebx + shll $14,%esi + movl %edx,%eax + shll $14,%edi + xorl %esi,%ebx + shrl $5,%ecx + xorl %edi,%eax + shrl $5,%edx + xorl %ecx,%eax + shll $4,%esi + xorl %edx,%ebx + shll $4,%edi + xorl %esi,%ebx + shrl $4,%ecx + xorl %edi,%eax + shrl $4,%edx + xorl %ecx,%eax + shll $5,%esi + xorl %edx,%ebx + shll $5,%edi + xorl %esi,%eax + xorl %edi,%ebx + movl 48(%esp),%ecx + movl 52(%esp),%edx + movl 56(%esp),%esi + movl 60(%esp),%edi + addl 64(%esp),%eax + adcl 68(%esp),%ebx + xorl %esi,%ecx + xorl %edi,%edx + andl 40(%esp),%ecx + andl 44(%esp),%edx + addl 192(%esp),%eax + adcl 196(%esp),%ebx + xorl %esi,%ecx + xorl %edi,%edx + movl (%ebp),%esi + movl 4(%ebp),%edi + addl %ecx,%eax + adcl %edx,%ebx + movl 32(%esp),%ecx + movl 36(%esp),%edx + addl %esi,%eax + adcl %edi,%ebx + movl %eax,(%esp) + movl %ebx,4(%esp) + addl %ecx,%eax + adcl %edx,%ebx + movl 8(%esp),%ecx + movl 12(%esp),%edx + movl %eax,32(%esp) + movl %ebx,36(%esp) + movl %ecx,%esi + shrl $2,%ecx + movl %edx,%edi + shrl $2,%edx + movl %ecx,%ebx + shll $4,%esi + movl %edx,%eax + shll $4,%edi + xorl %esi,%ebx + shrl $5,%ecx + xorl %edi,%eax + shrl $5,%edx + xorl %ecx,%ebx + shll $21,%esi + xorl %edx,%eax + shll $21,%edi + xorl %esi,%eax + shrl $21,%ecx + xorl %edi,%ebx + shrl $21,%edx + xorl %ecx,%eax + shll $5,%esi + xorl %edx,%ebx + shll $5,%edi + xorl %esi,%eax + xorl %edi,%ebx + movl 8(%esp),%ecx + movl 12(%esp),%edx + movl 16(%esp),%esi + movl 20(%esp),%edi + addl (%esp),%eax + adcl 4(%esp),%ebx + orl %esi,%ecx + orl %edi,%edx + andl 24(%esp),%ecx + andl 28(%esp),%edx + andl 8(%esp),%esi + andl 12(%esp),%edi + orl %esi,%ecx + orl %edi,%edx + addl %ecx,%eax + adcl %edx,%ebx + movl %eax,(%esp) + movl %ebx,4(%esp) + movb (%ebp),%dl + subl $8,%esp + leal 8(%ebp),%ebp + cmpb $23,%dl + jne L00416_79_x86 + movl 840(%esp),%esi + movl 844(%esp),%edi + movl (%esi),%eax + movl 4(%esi),%ebx + movl 8(%esi),%ecx + movl 12(%esi),%edx + addl 8(%esp),%eax + adcl 12(%esp),%ebx + movl %eax,(%esi) + movl %ebx,4(%esi) + addl 16(%esp),%ecx + adcl 20(%esp),%edx + movl %ecx,8(%esi) + movl %edx,12(%esi) + movl 16(%esi),%eax + movl 20(%esi),%ebx + movl 24(%esi),%ecx + movl 28(%esi),%edx + addl 24(%esp),%eax + adcl 28(%esp),%ebx + movl %eax,16(%esi) + movl %ebx,20(%esi) + addl 32(%esp),%ecx + adcl 36(%esp),%edx + movl %ecx,24(%esi) + movl %edx,28(%esi) + movl 32(%esi),%eax + movl 36(%esi),%ebx + movl 40(%esi),%ecx + movl 44(%esi),%edx + addl 40(%esp),%eax + adcl 44(%esp),%ebx + movl %eax,32(%esi) + movl %ebx,36(%esi) + addl 48(%esp),%ecx + adcl 52(%esp),%edx + movl %ecx,40(%esi) + movl %edx,44(%esi) + movl 48(%esi),%eax + movl 52(%esi),%ebx + movl 56(%esi),%ecx + movl 60(%esi),%edx + addl 56(%esp),%eax + adcl 60(%esp),%ebx + movl %eax,48(%esi) + movl %ebx,52(%esi) + addl 64(%esp),%ecx + adcl 68(%esp),%edx + movl %ecx,56(%esi) + movl %edx,60(%esi) + addl $840,%esp + subl $640,%ebp + cmpl 8(%esp),%edi + jb L002loop_x86 + movl 12(%esp),%esp + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 6,0x90 +L001K512: +.long 3609767458,1116352408 +.long 602891725,1899447441 +.long 3964484399,3049323471 +.long 2173295548,3921009573 +.long 4081628472,961987163 +.long 3053834265,1508970993 +.long 2937671579,2453635748 +.long 3664609560,2870763221 +.long 2734883394,3624381080 +.long 1164996542,310598401 +.long 1323610764,607225278 +.long 3590304994,1426881987 +.long 4068182383,1925078388 +.long 991336113,2162078206 +.long 633803317,2614888103 +.long 3479774868,3248222580 +.long 2666613458,3835390401 +.long 944711139,4022224774 +.long 2341262773,264347078 +.long 2007800933,604807628 +.long 1495990901,770255983 +.long 1856431235,1249150122 +.long 3175218132,1555081692 +.long 2198950837,1996064986 +.long 3999719339,2554220882 +.long 766784016,2821834349 +.long 2566594879,2952996808 +.long 3203337956,3210313671 +.long 1034457026,3336571891 +.long 2466948901,3584528711 +.long 3758326383,113926993 +.long 168717936,338241895 +.long 1188179964,666307205 +.long 1546045734,773529912 +.long 1522805485,1294757372 +.long 2643833823,1396182291 +.long 2343527390,1695183700 +.long 1014477480,1986661051 +.long 1206759142,2177026350 +.long 344077627,2456956037 +.long 1290863460,2730485921 +.long 3158454273,2820302411 +.long 3505952657,3259730800 +.long 106217008,3345764771 +.long 3606008344,3516065817 +.long 1432725776,3600352804 +.long 1467031594,4094571909 +.long 851169720,275423344 +.long 3100823752,430227734 +.long 1363258195,506948616 +.long 3750685593,659060556 +.long 3785050280,883997877 +.long 3318307427,958139571 +.long 3812723403,1322822218 +.long 2003034995,1537002063 +.long 3602036899,1747873779 +.long 1575990012,1955562222 +.long 1125592928,2024104815 +.long 2716904306,2227730452 +.long 442776044,2361852424 +.long 593698344,2428436474 +.long 3733110249,2756734187 +.long 2999351573,3204031479 +.long 3815920427,3329325298 +.long 3928383900,3391569614 +.long 566280711,3515267271 +.long 3454069534,3940187606 +.long 4000239992,4118630271 +.long 1914138554,116418474 +.long 2731055270,174292421 +.long 3203993006,289380356 +.long 320620315,460393269 +.long 587496836,685471733 +.long 1086792851,852142971 +.long 365543100,1017036298 +.long 2618297676,1126000580 +.long 3409855158,1288033470 +.long 4234509866,1501505948 +.long 987167468,1607167915 +.long 1246189591,1816402316 +.byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97 +.byte 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32 +.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 +.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 +.byte 62,0 diff --git a/deps/openssl/asm/x86-macosx-gas/whrlpool/wp-mmx.s b/deps/openssl/asm/x86-macosx-gas/whrlpool/wp-mmx.s new file mode 100644 index 0000000000..5d612e0f75 --- /dev/null +++ b/deps/openssl/asm/x86-macosx-gas/whrlpool/wp-mmx.s @@ -0,0 +1,1103 @@ +.file "wp-mmx.s" +.text +.globl _whirlpool_block_mmx +.align 4 +_whirlpool_block_mmx: +L_whirlpool_block_mmx_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%esi + movl 24(%esp),%edi + movl 28(%esp),%ebp + movl %esp,%eax + subl $148,%esp + andl $-64,%esp + leal 128(%esp),%ebx + movl %esi,(%ebx) + movl %edi,4(%ebx) + movl %ebp,8(%ebx) + movl %eax,16(%ebx) + call L000pic_point +L000pic_point: + popl %ebp + leal L001table-L000pic_point(%ebp),%ebp + xorl %ecx,%ecx + xorl %edx,%edx + movq (%esi),%mm0 + movq 8(%esi),%mm1 + movq 16(%esi),%mm2 + movq 24(%esi),%mm3 + movq 32(%esi),%mm4 + movq 40(%esi),%mm5 + movq 48(%esi),%mm6 + movq 56(%esi),%mm7 +L002outerloop: + movq %mm0,(%esp) + movq %mm1,8(%esp) + movq %mm2,16(%esp) + movq %mm3,24(%esp) + movq %mm4,32(%esp) + movq %mm5,40(%esp) + movq %mm6,48(%esp) + movq %mm7,56(%esp) + pxor (%edi),%mm0 + pxor 8(%edi),%mm1 + pxor 16(%edi),%mm2 + pxor 24(%edi),%mm3 + pxor 32(%edi),%mm4 + pxor 40(%edi),%mm5 + pxor 48(%edi),%mm6 + pxor 56(%edi),%mm7 + movq %mm0,64(%esp) + movq %mm1,72(%esp) + movq %mm2,80(%esp) + movq %mm3,88(%esp) + movq %mm4,96(%esp) + movq %mm5,104(%esp) + movq %mm6,112(%esp) + movq %mm7,120(%esp) + xorl %esi,%esi + movl %esi,12(%ebx) +.align 4,0x90 +L003round: + movq 4096(%ebp,%esi,8),%mm0 + movl (%esp),%eax + movl 4(%esp),%ebx + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm0 + movq 7(%ebp,%edi,8),%mm1 + movb %al,%cl + movb %ah,%dl + movl 8(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + movq 6(%ebp,%esi,8),%mm2 + movq 5(%ebp,%edi,8),%mm3 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + movq 4(%ebp,%esi,8),%mm4 + movq 3(%ebp,%edi,8),%mm5 + movb %bl,%cl + movb %bh,%dl + movl 12(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + movq 2(%ebp,%esi,8),%mm6 + movq 1(%ebp,%edi,8),%mm7 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm1 + pxor 7(%ebp,%edi,8),%mm2 + movb %al,%cl + movb %ah,%dl + movl 16(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm3 + pxor 5(%ebp,%edi,8),%mm4 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm5 + pxor 3(%ebp,%edi,8),%mm6 + movb %bl,%cl + movb %bh,%dl + movl 20(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm7 + pxor 1(%ebp,%edi,8),%mm0 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm2 + pxor 7(%ebp,%edi,8),%mm3 + movb %al,%cl + movb %ah,%dl + movl 24(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm4 + pxor 5(%ebp,%edi,8),%mm5 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm6 + pxor 3(%ebp,%edi,8),%mm7 + movb %bl,%cl + movb %bh,%dl + movl 28(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm0 + pxor 1(%ebp,%edi,8),%mm1 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm3 + pxor 7(%ebp,%edi,8),%mm4 + movb %al,%cl + movb %ah,%dl + movl 32(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm5 + pxor 5(%ebp,%edi,8),%mm6 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm7 + pxor 3(%ebp,%edi,8),%mm0 + movb %bl,%cl + movb %bh,%dl + movl 36(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm1 + pxor 1(%ebp,%edi,8),%mm2 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm4 + pxor 7(%ebp,%edi,8),%mm5 + movb %al,%cl + movb %ah,%dl + movl 40(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm6 + pxor 5(%ebp,%edi,8),%mm7 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm0 + pxor 3(%ebp,%edi,8),%mm1 + movb %bl,%cl + movb %bh,%dl + movl 44(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm2 + pxor 1(%ebp,%edi,8),%mm3 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm5 + pxor 7(%ebp,%edi,8),%mm6 + movb %al,%cl + movb %ah,%dl + movl 48(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm7 + pxor 5(%ebp,%edi,8),%mm0 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm1 + pxor 3(%ebp,%edi,8),%mm2 + movb %bl,%cl + movb %bh,%dl + movl 52(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm3 + pxor 1(%ebp,%edi,8),%mm4 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm6 + pxor 7(%ebp,%edi,8),%mm7 + movb %al,%cl + movb %ah,%dl + movl 56(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm0 + pxor 5(%ebp,%edi,8),%mm1 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm2 + pxor 3(%ebp,%edi,8),%mm3 + movb %bl,%cl + movb %bh,%dl + movl 60(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm4 + pxor 1(%ebp,%edi,8),%mm5 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm7 + pxor 7(%ebp,%edi,8),%mm0 + movb %al,%cl + movb %ah,%dl + movl 64(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm1 + pxor 5(%ebp,%edi,8),%mm2 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm3 + pxor 3(%ebp,%edi,8),%mm4 + movb %bl,%cl + movb %bh,%dl + movl 68(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm5 + pxor 1(%ebp,%edi,8),%mm6 + movq %mm0,(%esp) + movq %mm1,8(%esp) + movq %mm2,16(%esp) + movq %mm3,24(%esp) + movq %mm4,32(%esp) + movq %mm5,40(%esp) + movq %mm6,48(%esp) + movq %mm7,56(%esp) + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm0 + pxor 7(%ebp,%edi,8),%mm1 + movb %al,%cl + movb %ah,%dl + movl 72(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm2 + pxor 5(%ebp,%edi,8),%mm3 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm4 + pxor 3(%ebp,%edi,8),%mm5 + movb %bl,%cl + movb %bh,%dl + movl 76(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm6 + pxor 1(%ebp,%edi,8),%mm7 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm1 + pxor 7(%ebp,%edi,8),%mm2 + movb %al,%cl + movb %ah,%dl + movl 80(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm3 + pxor 5(%ebp,%edi,8),%mm4 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm5 + pxor 3(%ebp,%edi,8),%mm6 + movb %bl,%cl + movb %bh,%dl + movl 84(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm7 + pxor 1(%ebp,%edi,8),%mm0 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm2 + pxor 7(%ebp,%edi,8),%mm3 + movb %al,%cl + movb %ah,%dl + movl 88(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm4 + pxor 5(%ebp,%edi,8),%mm5 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm6 + pxor 3(%ebp,%edi,8),%mm7 + movb %bl,%cl + movb %bh,%dl + movl 92(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm0 + pxor 1(%ebp,%edi,8),%mm1 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm3 + pxor 7(%ebp,%edi,8),%mm4 + movb %al,%cl + movb %ah,%dl + movl 96(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm5 + pxor 5(%ebp,%edi,8),%mm6 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm7 + pxor 3(%ebp,%edi,8),%mm0 + movb %bl,%cl + movb %bh,%dl + movl 100(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm1 + pxor 1(%ebp,%edi,8),%mm2 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm4 + pxor 7(%ebp,%edi,8),%mm5 + movb %al,%cl + movb %ah,%dl + movl 104(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm6 + pxor 5(%ebp,%edi,8),%mm7 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm0 + pxor 3(%ebp,%edi,8),%mm1 + movb %bl,%cl + movb %bh,%dl + movl 108(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm2 + pxor 1(%ebp,%edi,8),%mm3 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm5 + pxor 7(%ebp,%edi,8),%mm6 + movb %al,%cl + movb %ah,%dl + movl 112(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm7 + pxor 5(%ebp,%edi,8),%mm0 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm1 + pxor 3(%ebp,%edi,8),%mm2 + movb %bl,%cl + movb %bh,%dl + movl 116(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm3 + pxor 1(%ebp,%edi,8),%mm4 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm6 + pxor 7(%ebp,%edi,8),%mm7 + movb %al,%cl + movb %ah,%dl + movl 120(%esp),%eax + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm0 + pxor 5(%ebp,%edi,8),%mm1 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm2 + pxor 3(%ebp,%edi,8),%mm3 + movb %bl,%cl + movb %bh,%dl + movl 124(%esp),%ebx + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm4 + pxor 1(%ebp,%edi,8),%mm5 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%eax + pxor (%ebp,%esi,8),%mm7 + pxor 7(%ebp,%edi,8),%mm0 + movb %al,%cl + movb %ah,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 6(%ebp,%esi,8),%mm1 + pxor 5(%ebp,%edi,8),%mm2 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + shrl $16,%ebx + pxor 4(%ebp,%esi,8),%mm3 + pxor 3(%ebp,%edi,8),%mm4 + movb %bl,%cl + movb %bh,%dl + leal (%ecx,%ecx,1),%esi + leal (%edx,%edx,1),%edi + pxor 2(%ebp,%esi,8),%mm5 + pxor 1(%ebp,%edi,8),%mm6 + leal 128(%esp),%ebx + movl 12(%ebx),%esi + addl $1,%esi + cmpl $10,%esi + je L004roundsdone + movl %esi,12(%ebx) + movq %mm0,64(%esp) + movq %mm1,72(%esp) + movq %mm2,80(%esp) + movq %mm3,88(%esp) + movq %mm4,96(%esp) + movq %mm5,104(%esp) + movq %mm6,112(%esp) + movq %mm7,120(%esp) + jmp L003round +.align 4,0x90 +L004roundsdone: + movl (%ebx),%esi + movl 4(%ebx),%edi + movl 8(%ebx),%eax + pxor (%edi),%mm0 + pxor 8(%edi),%mm1 + pxor 16(%edi),%mm2 + pxor 24(%edi),%mm3 + pxor 32(%edi),%mm4 + pxor 40(%edi),%mm5 + pxor 48(%edi),%mm6 + pxor 56(%edi),%mm7 + pxor (%esi),%mm0 + pxor 8(%esi),%mm1 + pxor 16(%esi),%mm2 + pxor 24(%esi),%mm3 + pxor 32(%esi),%mm4 + pxor 40(%esi),%mm5 + pxor 48(%esi),%mm6 + pxor 56(%esi),%mm7 + movq %mm0,(%esi) + movq %mm1,8(%esi) + movq %mm2,16(%esi) + movq %mm3,24(%esi) + movq %mm4,32(%esi) + movq %mm5,40(%esi) + movq %mm6,48(%esi) + movq %mm7,56(%esi) + leal 64(%edi),%edi + subl $1,%eax + jz L005alldone + movl %edi,4(%ebx) + movl %eax,8(%ebx) + jmp L002outerloop +L005alldone: + emms + movl 16(%ebx),%esp + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.align 6,0x90 +L001table: +.byte 24,24,96,24,192,120,48,216 +.byte 24,24,96,24,192,120,48,216 +.byte 35,35,140,35,5,175,70,38 +.byte 35,35,140,35,5,175,70,38 +.byte 198,198,63,198,126,249,145,184 +.byte 198,198,63,198,126,249,145,184 +.byte 232,232,135,232,19,111,205,251 +.byte 232,232,135,232,19,111,205,251 +.byte 135,135,38,135,76,161,19,203 +.byte 135,135,38,135,76,161,19,203 +.byte 184,184,218,184,169,98,109,17 +.byte 184,184,218,184,169,98,109,17 +.byte 1,1,4,1,8,5,2,9 +.byte 1,1,4,1,8,5,2,9 +.byte 79,79,33,79,66,110,158,13 +.byte 79,79,33,79,66,110,158,13 +.byte 54,54,216,54,173,238,108,155 +.byte 54,54,216,54,173,238,108,155 +.byte 166,166,162,166,89,4,81,255 +.byte 166,166,162,166,89,4,81,255 +.byte 210,210,111,210,222,189,185,12 +.byte 210,210,111,210,222,189,185,12 +.byte 245,245,243,245,251,6,247,14 +.byte 245,245,243,245,251,6,247,14 +.byte 121,121,249,121,239,128,242,150 +.byte 121,121,249,121,239,128,242,150 +.byte 111,111,161,111,95,206,222,48 +.byte 111,111,161,111,95,206,222,48 +.byte 145,145,126,145,252,239,63,109 +.byte 145,145,126,145,252,239,63,109 +.byte 82,82,85,82,170,7,164,248 +.byte 82,82,85,82,170,7,164,248 +.byte 96,96,157,96,39,253,192,71 +.byte 96,96,157,96,39,253,192,71 +.byte 188,188,202,188,137,118,101,53 +.byte 188,188,202,188,137,118,101,53 +.byte 155,155,86,155,172,205,43,55 +.byte 155,155,86,155,172,205,43,55 +.byte 142,142,2,142,4,140,1,138 +.byte 142,142,2,142,4,140,1,138 +.byte 163,163,182,163,113,21,91,210 +.byte 163,163,182,163,113,21,91,210 +.byte 12,12,48,12,96,60,24,108 +.byte 12,12,48,12,96,60,24,108 +.byte 123,123,241,123,255,138,246,132 +.byte 123,123,241,123,255,138,246,132 +.byte 53,53,212,53,181,225,106,128 +.byte 53,53,212,53,181,225,106,128 +.byte 29,29,116,29,232,105,58,245 +.byte 29,29,116,29,232,105,58,245 +.byte 224,224,167,224,83,71,221,179 +.byte 224,224,167,224,83,71,221,179 +.byte 215,215,123,215,246,172,179,33 +.byte 215,215,123,215,246,172,179,33 +.byte 194,194,47,194,94,237,153,156 +.byte 194,194,47,194,94,237,153,156 +.byte 46,46,184,46,109,150,92,67 +.byte 46,46,184,46,109,150,92,67 +.byte 75,75,49,75,98,122,150,41 +.byte 75,75,49,75,98,122,150,41 +.byte 254,254,223,254,163,33,225,93 +.byte 254,254,223,254,163,33,225,93 +.byte 87,87,65,87,130,22,174,213 +.byte 87,87,65,87,130,22,174,213 +.byte 21,21,84,21,168,65,42,189 +.byte 21,21,84,21,168,65,42,189 +.byte 119,119,193,119,159,182,238,232 +.byte 119,119,193,119,159,182,238,232 +.byte 55,55,220,55,165,235,110,146 +.byte 55,55,220,55,165,235,110,146 +.byte 229,229,179,229,123,86,215,158 +.byte 229,229,179,229,123,86,215,158 +.byte 159,159,70,159,140,217,35,19 +.byte 159,159,70,159,140,217,35,19 +.byte 240,240,231,240,211,23,253,35 +.byte 240,240,231,240,211,23,253,35 +.byte 74,74,53,74,106,127,148,32 +.byte 74,74,53,74,106,127,148,32 +.byte 218,218,79,218,158,149,169,68 +.byte 218,218,79,218,158,149,169,68 +.byte 88,88,125,88,250,37,176,162 +.byte 88,88,125,88,250,37,176,162 +.byte 201,201,3,201,6,202,143,207 +.byte 201,201,3,201,6,202,143,207 +.byte 41,41,164,41,85,141,82,124 +.byte 41,41,164,41,85,141,82,124 +.byte 10,10,40,10,80,34,20,90 +.byte 10,10,40,10,80,34,20,90 +.byte 177,177,254,177,225,79,127,80 +.byte 177,177,254,177,225,79,127,80 +.byte 160,160,186,160,105,26,93,201 +.byte 160,160,186,160,105,26,93,201 +.byte 107,107,177,107,127,218,214,20 +.byte 107,107,177,107,127,218,214,20 +.byte 133,133,46,133,92,171,23,217 +.byte 133,133,46,133,92,171,23,217 +.byte 189,189,206,189,129,115,103,60 +.byte 189,189,206,189,129,115,103,60 +.byte 93,93,105,93,210,52,186,143 +.byte 93,93,105,93,210,52,186,143 +.byte 16,16,64,16,128,80,32,144 +.byte 16,16,64,16,128,80,32,144 +.byte 244,244,247,244,243,3,245,7 +.byte 244,244,247,244,243,3,245,7 +.byte 203,203,11,203,22,192,139,221 +.byte 203,203,11,203,22,192,139,221 +.byte 62,62,248,62,237,198,124,211 +.byte 62,62,248,62,237,198,124,211 +.byte 5,5,20,5,40,17,10,45 +.byte 5,5,20,5,40,17,10,45 +.byte 103,103,129,103,31,230,206,120 +.byte 103,103,129,103,31,230,206,120 +.byte 228,228,183,228,115,83,213,151 +.byte 228,228,183,228,115,83,213,151 +.byte 39,39,156,39,37,187,78,2 +.byte 39,39,156,39,37,187,78,2 +.byte 65,65,25,65,50,88,130,115 +.byte 65,65,25,65,50,88,130,115 +.byte 139,139,22,139,44,157,11,167 +.byte 139,139,22,139,44,157,11,167 +.byte 167,167,166,167,81,1,83,246 +.byte 167,167,166,167,81,1,83,246 +.byte 125,125,233,125,207,148,250,178 +.byte 125,125,233,125,207,148,250,178 +.byte 149,149,110,149,220,251,55,73 +.byte 149,149,110,149,220,251,55,73 +.byte 216,216,71,216,142,159,173,86 +.byte 216,216,71,216,142,159,173,86 +.byte 251,251,203,251,139,48,235,112 +.byte 251,251,203,251,139,48,235,112 +.byte 238,238,159,238,35,113,193,205 +.byte 238,238,159,238,35,113,193,205 +.byte 124,124,237,124,199,145,248,187 +.byte 124,124,237,124,199,145,248,187 +.byte 102,102,133,102,23,227,204,113 +.byte 102,102,133,102,23,227,204,113 +.byte 221,221,83,221,166,142,167,123 +.byte 221,221,83,221,166,142,167,123 +.byte 23,23,92,23,184,75,46,175 +.byte 23,23,92,23,184,75,46,175 +.byte 71,71,1,71,2,70,142,69 +.byte 71,71,1,71,2,70,142,69 +.byte 158,158,66,158,132,220,33,26 +.byte 158,158,66,158,132,220,33,26 +.byte 202,202,15,202,30,197,137,212 +.byte 202,202,15,202,30,197,137,212 +.byte 45,45,180,45,117,153,90,88 +.byte 45,45,180,45,117,153,90,88 +.byte 191,191,198,191,145,121,99,46 +.byte 191,191,198,191,145,121,99,46 +.byte 7,7,28,7,56,27,14,63 +.byte 7,7,28,7,56,27,14,63 +.byte 173,173,142,173,1,35,71,172 +.byte 173,173,142,173,1,35,71,172 +.byte 90,90,117,90,234,47,180,176 +.byte 90,90,117,90,234,47,180,176 +.byte 131,131,54,131,108,181,27,239 +.byte 131,131,54,131,108,181,27,239 +.byte 51,51,204,51,133,255,102,182 +.byte 51,51,204,51,133,255,102,182 +.byte 99,99,145,99,63,242,198,92 +.byte 99,99,145,99,63,242,198,92 +.byte 2,2,8,2,16,10,4,18 +.byte 2,2,8,2,16,10,4,18 +.byte 170,170,146,170,57,56,73,147 +.byte 170,170,146,170,57,56,73,147 +.byte 113,113,217,113,175,168,226,222 +.byte 113,113,217,113,175,168,226,222 +.byte 200,200,7,200,14,207,141,198 +.byte 200,200,7,200,14,207,141,198 +.byte 25,25,100,25,200,125,50,209 +.byte 25,25,100,25,200,125,50,209 +.byte 73,73,57,73,114,112,146,59 +.byte 73,73,57,73,114,112,146,59 +.byte 217,217,67,217,134,154,175,95 +.byte 217,217,67,217,134,154,175,95 +.byte 242,242,239,242,195,29,249,49 +.byte 242,242,239,242,195,29,249,49 +.byte 227,227,171,227,75,72,219,168 +.byte 227,227,171,227,75,72,219,168 +.byte 91,91,113,91,226,42,182,185 +.byte 91,91,113,91,226,42,182,185 +.byte 136,136,26,136,52,146,13,188 +.byte 136,136,26,136,52,146,13,188 +.byte 154,154,82,154,164,200,41,62 +.byte 154,154,82,154,164,200,41,62 +.byte 38,38,152,38,45,190,76,11 +.byte 38,38,152,38,45,190,76,11 +.byte 50,50,200,50,141,250,100,191 +.byte 50,50,200,50,141,250,100,191 +.byte 176,176,250,176,233,74,125,89 +.byte 176,176,250,176,233,74,125,89 +.byte 233,233,131,233,27,106,207,242 +.byte 233,233,131,233,27,106,207,242 +.byte 15,15,60,15,120,51,30,119 +.byte 15,15,60,15,120,51,30,119 +.byte 213,213,115,213,230,166,183,51 +.byte 213,213,115,213,230,166,183,51 +.byte 128,128,58,128,116,186,29,244 +.byte 128,128,58,128,116,186,29,244 +.byte 190,190,194,190,153,124,97,39 +.byte 190,190,194,190,153,124,97,39 +.byte 205,205,19,205,38,222,135,235 +.byte 205,205,19,205,38,222,135,235 +.byte 52,52,208,52,189,228,104,137 +.byte 52,52,208,52,189,228,104,137 +.byte 72,72,61,72,122,117,144,50 +.byte 72,72,61,72,122,117,144,50 +.byte 255,255,219,255,171,36,227,84 +.byte 255,255,219,255,171,36,227,84 +.byte 122,122,245,122,247,143,244,141 +.byte 122,122,245,122,247,143,244,141 +.byte 144,144,122,144,244,234,61,100 +.byte 144,144,122,144,244,234,61,100 +.byte 95,95,97,95,194,62,190,157 +.byte 95,95,97,95,194,62,190,157 +.byte 32,32,128,32,29,160,64,61 +.byte 32,32,128,32,29,160,64,61 +.byte 104,104,189,104,103,213,208,15 +.byte 104,104,189,104,103,213,208,15 +.byte 26,26,104,26,208,114,52,202 +.byte 26,26,104,26,208,114,52,202 +.byte 174,174,130,174,25,44,65,183 +.byte 174,174,130,174,25,44,65,183 +.byte 180,180,234,180,201,94,117,125 +.byte 180,180,234,180,201,94,117,125 +.byte 84,84,77,84,154,25,168,206 +.byte 84,84,77,84,154,25,168,206 +.byte 147,147,118,147,236,229,59,127 +.byte 147,147,118,147,236,229,59,127 +.byte 34,34,136,34,13,170,68,47 +.byte 34,34,136,34,13,170,68,47 +.byte 100,100,141,100,7,233,200,99 +.byte 100,100,141,100,7,233,200,99 +.byte 241,241,227,241,219,18,255,42 +.byte 241,241,227,241,219,18,255,42 +.byte 115,115,209,115,191,162,230,204 +.byte 115,115,209,115,191,162,230,204 +.byte 18,18,72,18,144,90,36,130 +.byte 18,18,72,18,144,90,36,130 +.byte 64,64,29,64,58,93,128,122 +.byte 64,64,29,64,58,93,128,122 +.byte 8,8,32,8,64,40,16,72 +.byte 8,8,32,8,64,40,16,72 +.byte 195,195,43,195,86,232,155,149 +.byte 195,195,43,195,86,232,155,149 +.byte 236,236,151,236,51,123,197,223 +.byte 236,236,151,236,51,123,197,223 +.byte 219,219,75,219,150,144,171,77 +.byte 219,219,75,219,150,144,171,77 +.byte 161,161,190,161,97,31,95,192 +.byte 161,161,190,161,97,31,95,192 +.byte 141,141,14,141,28,131,7,145 +.byte 141,141,14,141,28,131,7,145 +.byte 61,61,244,61,245,201,122,200 +.byte 61,61,244,61,245,201,122,200 +.byte 151,151,102,151,204,241,51,91 +.byte 151,151,102,151,204,241,51,91 +.byte 0,0,0,0,0,0,0,0 +.byte 0,0,0,0,0,0,0,0 +.byte 207,207,27,207,54,212,131,249 +.byte 207,207,27,207,54,212,131,249 +.byte 43,43,172,43,69,135,86,110 +.byte 43,43,172,43,69,135,86,110 +.byte 118,118,197,118,151,179,236,225 +.byte 118,118,197,118,151,179,236,225 +.byte 130,130,50,130,100,176,25,230 +.byte 130,130,50,130,100,176,25,230 +.byte 214,214,127,214,254,169,177,40 +.byte 214,214,127,214,254,169,177,40 +.byte 27,27,108,27,216,119,54,195 +.byte 27,27,108,27,216,119,54,195 +.byte 181,181,238,181,193,91,119,116 +.byte 181,181,238,181,193,91,119,116 +.byte 175,175,134,175,17,41,67,190 +.byte 175,175,134,175,17,41,67,190 +.byte 106,106,181,106,119,223,212,29 +.byte 106,106,181,106,119,223,212,29 +.byte 80,80,93,80,186,13,160,234 +.byte 80,80,93,80,186,13,160,234 +.byte 69,69,9,69,18,76,138,87 +.byte 69,69,9,69,18,76,138,87 +.byte 243,243,235,243,203,24,251,56 +.byte 243,243,235,243,203,24,251,56 +.byte 48,48,192,48,157,240,96,173 +.byte 48,48,192,48,157,240,96,173 +.byte 239,239,155,239,43,116,195,196 +.byte 239,239,155,239,43,116,195,196 +.byte 63,63,252,63,229,195,126,218 +.byte 63,63,252,63,229,195,126,218 +.byte 85,85,73,85,146,28,170,199 +.byte 85,85,73,85,146,28,170,199 +.byte 162,162,178,162,121,16,89,219 +.byte 162,162,178,162,121,16,89,219 +.byte 234,234,143,234,3,101,201,233 +.byte 234,234,143,234,3,101,201,233 +.byte 101,101,137,101,15,236,202,106 +.byte 101,101,137,101,15,236,202,106 +.byte 186,186,210,186,185,104,105,3 +.byte 186,186,210,186,185,104,105,3 +.byte 47,47,188,47,101,147,94,74 +.byte 47,47,188,47,101,147,94,74 +.byte 192,192,39,192,78,231,157,142 +.byte 192,192,39,192,78,231,157,142 +.byte 222,222,95,222,190,129,161,96 +.byte 222,222,95,222,190,129,161,96 +.byte 28,28,112,28,224,108,56,252 +.byte 28,28,112,28,224,108,56,252 +.byte 253,253,211,253,187,46,231,70 +.byte 253,253,211,253,187,46,231,70 +.byte 77,77,41,77,82,100,154,31 +.byte 77,77,41,77,82,100,154,31 +.byte 146,146,114,146,228,224,57,118 +.byte 146,146,114,146,228,224,57,118 +.byte 117,117,201,117,143,188,234,250 +.byte 117,117,201,117,143,188,234,250 +.byte 6,6,24,6,48,30,12,54 +.byte 6,6,24,6,48,30,12,54 +.byte 138,138,18,138,36,152,9,174 +.byte 138,138,18,138,36,152,9,174 +.byte 178,178,242,178,249,64,121,75 +.byte 178,178,242,178,249,64,121,75 +.byte 230,230,191,230,99,89,209,133 +.byte 230,230,191,230,99,89,209,133 +.byte 14,14,56,14,112,54,28,126 +.byte 14,14,56,14,112,54,28,126 +.byte 31,31,124,31,248,99,62,231 +.byte 31,31,124,31,248,99,62,231 +.byte 98,98,149,98,55,247,196,85 +.byte 98,98,149,98,55,247,196,85 +.byte 212,212,119,212,238,163,181,58 +.byte 212,212,119,212,238,163,181,58 +.byte 168,168,154,168,41,50,77,129 +.byte 168,168,154,168,41,50,77,129 +.byte 150,150,98,150,196,244,49,82 +.byte 150,150,98,150,196,244,49,82 +.byte 249,249,195,249,155,58,239,98 +.byte 249,249,195,249,155,58,239,98 +.byte 197,197,51,197,102,246,151,163 +.byte 197,197,51,197,102,246,151,163 +.byte 37,37,148,37,53,177,74,16 +.byte 37,37,148,37,53,177,74,16 +.byte 89,89,121,89,242,32,178,171 +.byte 89,89,121,89,242,32,178,171 +.byte 132,132,42,132,84,174,21,208 +.byte 132,132,42,132,84,174,21,208 +.byte 114,114,213,114,183,167,228,197 +.byte 114,114,213,114,183,167,228,197 +.byte 57,57,228,57,213,221,114,236 +.byte 57,57,228,57,213,221,114,236 +.byte 76,76,45,76,90,97,152,22 +.byte 76,76,45,76,90,97,152,22 +.byte 94,94,101,94,202,59,188,148 +.byte 94,94,101,94,202,59,188,148 +.byte 120,120,253,120,231,133,240,159 +.byte 120,120,253,120,231,133,240,159 +.byte 56,56,224,56,221,216,112,229 +.byte 56,56,224,56,221,216,112,229 +.byte 140,140,10,140,20,134,5,152 +.byte 140,140,10,140,20,134,5,152 +.byte 209,209,99,209,198,178,191,23 +.byte 209,209,99,209,198,178,191,23 +.byte 165,165,174,165,65,11,87,228 +.byte 165,165,174,165,65,11,87,228 +.byte 226,226,175,226,67,77,217,161 +.byte 226,226,175,226,67,77,217,161 +.byte 97,97,153,97,47,248,194,78 +.byte 97,97,153,97,47,248,194,78 +.byte 179,179,246,179,241,69,123,66 +.byte 179,179,246,179,241,69,123,66 +.byte 33,33,132,33,21,165,66,52 +.byte 33,33,132,33,21,165,66,52 +.byte 156,156,74,156,148,214,37,8 +.byte 156,156,74,156,148,214,37,8 +.byte 30,30,120,30,240,102,60,238 +.byte 30,30,120,30,240,102,60,238 +.byte 67,67,17,67,34,82,134,97 +.byte 67,67,17,67,34,82,134,97 +.byte 199,199,59,199,118,252,147,177 +.byte 199,199,59,199,118,252,147,177 +.byte 252,252,215,252,179,43,229,79 +.byte 252,252,215,252,179,43,229,79 +.byte 4,4,16,4,32,20,8,36 +.byte 4,4,16,4,32,20,8,36 +.byte 81,81,89,81,178,8,162,227 +.byte 81,81,89,81,178,8,162,227 +.byte 153,153,94,153,188,199,47,37 +.byte 153,153,94,153,188,199,47,37 +.byte 109,109,169,109,79,196,218,34 +.byte 109,109,169,109,79,196,218,34 +.byte 13,13,52,13,104,57,26,101 +.byte 13,13,52,13,104,57,26,101 +.byte 250,250,207,250,131,53,233,121 +.byte 250,250,207,250,131,53,233,121 +.byte 223,223,91,223,182,132,163,105 +.byte 223,223,91,223,182,132,163,105 +.byte 126,126,229,126,215,155,252,169 +.byte 126,126,229,126,215,155,252,169 +.byte 36,36,144,36,61,180,72,25 +.byte 36,36,144,36,61,180,72,25 +.byte 59,59,236,59,197,215,118,254 +.byte 59,59,236,59,197,215,118,254 +.byte 171,171,150,171,49,61,75,154 +.byte 171,171,150,171,49,61,75,154 +.byte 206,206,31,206,62,209,129,240 +.byte 206,206,31,206,62,209,129,240 +.byte 17,17,68,17,136,85,34,153 +.byte 17,17,68,17,136,85,34,153 +.byte 143,143,6,143,12,137,3,131 +.byte 143,143,6,143,12,137,3,131 +.byte 78,78,37,78,74,107,156,4 +.byte 78,78,37,78,74,107,156,4 +.byte 183,183,230,183,209,81,115,102 +.byte 183,183,230,183,209,81,115,102 +.byte 235,235,139,235,11,96,203,224 +.byte 235,235,139,235,11,96,203,224 +.byte 60,60,240,60,253,204,120,193 +.byte 60,60,240,60,253,204,120,193 +.byte 129,129,62,129,124,191,31,253 +.byte 129,129,62,129,124,191,31,253 +.byte 148,148,106,148,212,254,53,64 +.byte 148,148,106,148,212,254,53,64 +.byte 247,247,251,247,235,12,243,28 +.byte 247,247,251,247,235,12,243,28 +.byte 185,185,222,185,161,103,111,24 +.byte 185,185,222,185,161,103,111,24 +.byte 19,19,76,19,152,95,38,139 +.byte 19,19,76,19,152,95,38,139 +.byte 44,44,176,44,125,156,88,81 +.byte 44,44,176,44,125,156,88,81 +.byte 211,211,107,211,214,184,187,5 +.byte 211,211,107,211,214,184,187,5 +.byte 231,231,187,231,107,92,211,140 +.byte 231,231,187,231,107,92,211,140 +.byte 110,110,165,110,87,203,220,57 +.byte 110,110,165,110,87,203,220,57 +.byte 196,196,55,196,110,243,149,170 +.byte 196,196,55,196,110,243,149,170 +.byte 3,3,12,3,24,15,6,27 +.byte 3,3,12,3,24,15,6,27 +.byte 86,86,69,86,138,19,172,220 +.byte 86,86,69,86,138,19,172,220 +.byte 68,68,13,68,26,73,136,94 +.byte 68,68,13,68,26,73,136,94 +.byte 127,127,225,127,223,158,254,160 +.byte 127,127,225,127,223,158,254,160 +.byte 169,169,158,169,33,55,79,136 +.byte 169,169,158,169,33,55,79,136 +.byte 42,42,168,42,77,130,84,103 +.byte 42,42,168,42,77,130,84,103 +.byte 187,187,214,187,177,109,107,10 +.byte 187,187,214,187,177,109,107,10 +.byte 193,193,35,193,70,226,159,135 +.byte 193,193,35,193,70,226,159,135 +.byte 83,83,81,83,162,2,166,241 +.byte 83,83,81,83,162,2,166,241 +.byte 220,220,87,220,174,139,165,114 +.byte 220,220,87,220,174,139,165,114 +.byte 11,11,44,11,88,39,22,83 +.byte 11,11,44,11,88,39,22,83 +.byte 157,157,78,157,156,211,39,1 +.byte 157,157,78,157,156,211,39,1 +.byte 108,108,173,108,71,193,216,43 +.byte 108,108,173,108,71,193,216,43 +.byte 49,49,196,49,149,245,98,164 +.byte 49,49,196,49,149,245,98,164 +.byte 116,116,205,116,135,185,232,243 +.byte 116,116,205,116,135,185,232,243 +.byte 246,246,255,246,227,9,241,21 +.byte 246,246,255,246,227,9,241,21 +.byte 70,70,5,70,10,67,140,76 +.byte 70,70,5,70,10,67,140,76 +.byte 172,172,138,172,9,38,69,165 +.byte 172,172,138,172,9,38,69,165 +.byte 137,137,30,137,60,151,15,181 +.byte 137,137,30,137,60,151,15,181 +.byte 20,20,80,20,160,68,40,180 +.byte 20,20,80,20,160,68,40,180 +.byte 225,225,163,225,91,66,223,186 +.byte 225,225,163,225,91,66,223,186 +.byte 22,22,88,22,176,78,44,166 +.byte 22,22,88,22,176,78,44,166 +.byte 58,58,232,58,205,210,116,247 +.byte 58,58,232,58,205,210,116,247 +.byte 105,105,185,105,111,208,210,6 +.byte 105,105,185,105,111,208,210,6 +.byte 9,9,36,9,72,45,18,65 +.byte 9,9,36,9,72,45,18,65 +.byte 112,112,221,112,167,173,224,215 +.byte 112,112,221,112,167,173,224,215 +.byte 182,182,226,182,217,84,113,111 +.byte 182,182,226,182,217,84,113,111 +.byte 208,208,103,208,206,183,189,30 +.byte 208,208,103,208,206,183,189,30 +.byte 237,237,147,237,59,126,199,214 +.byte 237,237,147,237,59,126,199,214 +.byte 204,204,23,204,46,219,133,226 +.byte 204,204,23,204,46,219,133,226 +.byte 66,66,21,66,42,87,132,104 +.byte 66,66,21,66,42,87,132,104 +.byte 152,152,90,152,180,194,45,44 +.byte 152,152,90,152,180,194,45,44 +.byte 164,164,170,164,73,14,85,237 +.byte 164,164,170,164,73,14,85,237 +.byte 40,40,160,40,93,136,80,117 +.byte 40,40,160,40,93,136,80,117 +.byte 92,92,109,92,218,49,184,134 +.byte 92,92,109,92,218,49,184,134 +.byte 248,248,199,248,147,63,237,107 +.byte 248,248,199,248,147,63,237,107 +.byte 134,134,34,134,68,164,17,194 +.byte 134,134,34,134,68,164,17,194 +.byte 24,35,198,232,135,184,1,79 +.byte 54,166,210,245,121,111,145,82 +.byte 96,188,155,142,163,12,123,53 +.byte 29,224,215,194,46,75,254,87 +.byte 21,119,55,229,159,240,74,218 +.byte 88,201,41,10,177,160,107,133 +.byte 189,93,16,244,203,62,5,103 +.byte 228,39,65,139,167,125,149,216 +.byte 251,238,124,102,221,23,71,158 +.byte 202,45,191,7,173,90,131,51 diff --git a/deps/openssl/asm/x86-macosx-gas/x86cpuid.s b/deps/openssl/asm/x86-macosx-gas/x86cpuid.s new file mode 100644 index 0000000000..b5e80f83a3 --- /dev/null +++ b/deps/openssl/asm/x86-macosx-gas/x86cpuid.s @@ -0,0 +1,261 @@ +.file "x86cpuid.s" +.text +.globl _OPENSSL_ia32_cpuid +.align 4 +_OPENSSL_ia32_cpuid: +L_OPENSSL_ia32_cpuid_begin: + pushl %ebp + pushl %ebx + pushl %esi + pushl %edi + xorl %edx,%edx + pushfl + popl %eax + movl %eax,%ecx + xorl $2097152,%eax + pushl %eax + popfl + pushfl + popl %eax + xorl %eax,%ecx + btl $21,%ecx + jnc L000done + xorl %eax,%eax + .byte 0x0f,0xa2 + movl %eax,%edi + xorl %eax,%eax + cmpl $1970169159,%ebx + setne %al + movl %eax,%ebp + cmpl $1231384169,%edx + setne %al + orl %eax,%ebp + cmpl $1818588270,%ecx + setne %al + orl %eax,%ebp + jz L001intel + cmpl $1752462657,%ebx + setne %al + movl %eax,%esi + cmpl $1769238117,%edx + setne %al + orl %eax,%esi + cmpl $1145913699,%ecx + setne %al + orl %eax,%esi + jnz L001intel + movl $2147483648,%eax + .byte 0x0f,0xa2 + cmpl $2147483656,%eax + jb L001intel + movl $2147483656,%eax + .byte 0x0f,0xa2 + movzbl %cl,%esi + incl %esi + movl $1,%eax + .byte 0x0f,0xa2 + btl $28,%edx + jnc L000done + shrl $16,%ebx + andl $255,%ebx + cmpl %esi,%ebx + ja L000done + andl $4026531839,%edx + jmp L000done +L001intel: + cmpl $4,%edi + movl $-1,%edi + jb L002nocacheinfo + movl $4,%eax + movl $0,%ecx + .byte 0x0f,0xa2 + movl %eax,%edi + shrl $14,%edi + andl $4095,%edi +L002nocacheinfo: + movl $1,%eax + .byte 0x0f,0xa2 + cmpl $0,%ebp + jne L003notP4 + andb $15,%ah + cmpb $15,%ah + jne L003notP4 + orl $1048576,%edx +L003notP4: + btl $28,%edx + jnc L000done + andl $4026531839,%edx + cmpl $0,%edi + je L000done + orl $268435456,%edx + shrl $16,%ebx + cmpb $1,%bl + ja L000done + andl $4026531839,%edx +L000done: + movl %edx,%eax + movl %ecx,%edx + popl %edi + popl %esi + popl %ebx + popl %ebp + ret +.globl _OPENSSL_rdtsc +.align 4 +_OPENSSL_rdtsc: +L_OPENSSL_rdtsc_begin: + xorl %eax,%eax + xorl %edx,%edx + leal _OPENSSL_ia32cap_P,%ecx + btl $4,(%ecx) + jnc L004notsc + .byte 0x0f,0x31 +L004notsc: + ret +.globl _OPENSSL_instrument_halt +.align 4 +_OPENSSL_instrument_halt: +L_OPENSSL_instrument_halt_begin: + leal _OPENSSL_ia32cap_P,%ecx + btl $4,(%ecx) + jnc L005nohalt +.long 2421723150 + andl $3,%eax + jnz L005nohalt + pushfl + popl %eax + btl $9,%eax + jnc L005nohalt + .byte 0x0f,0x31 + pushl %edx + pushl %eax + hlt + .byte 0x0f,0x31 + subl (%esp),%eax + sbbl 4(%esp),%edx + addl $8,%esp + ret +L005nohalt: + xorl %eax,%eax + xorl %edx,%edx + ret +.globl _OPENSSL_far_spin +.align 4 +_OPENSSL_far_spin: +L_OPENSSL_far_spin_begin: + pushfl + popl %eax + btl $9,%eax + jnc L006nospin + movl 4(%esp),%eax + movl 8(%esp),%ecx +.long 2430111262 + xorl %eax,%eax + movl (%ecx),%edx + jmp L007spin +.align 4,0x90 +L007spin: + incl %eax + cmpl (%ecx),%edx + je L007spin +.long 529567888 + ret +L006nospin: + xorl %eax,%eax + xorl %edx,%edx + ret +.globl _OPENSSL_wipe_cpu +.align 4 +_OPENSSL_wipe_cpu: +L_OPENSSL_wipe_cpu_begin: + xorl %eax,%eax + xorl %edx,%edx + leal _OPENSSL_ia32cap_P,%ecx + movl (%ecx),%ecx + btl $1,(%ecx) + jnc L008no_x87 +.long 4007259865,4007259865,4007259865,4007259865,2430851995 +L008no_x87: + leal 4(%esp),%eax + ret +.globl _OPENSSL_atomic_add +.align 4 +_OPENSSL_atomic_add: +L_OPENSSL_atomic_add_begin: + movl 4(%esp),%edx + movl 8(%esp),%ecx + pushl %ebx + nop + movl (%edx),%eax +L009spin: + leal (%eax,%ecx,1),%ebx + nop +.long 447811568 + jne L009spin + movl %ebx,%eax + popl %ebx + ret +.globl _OPENSSL_indirect_call +.align 4 +_OPENSSL_indirect_call: +L_OPENSSL_indirect_call_begin: + pushl %ebp + movl %esp,%ebp + subl $28,%esp + movl 12(%ebp),%ecx + movl %ecx,(%esp) + movl 16(%ebp),%edx + movl %edx,4(%esp) + movl 20(%ebp),%eax + movl %eax,8(%esp) + movl 24(%ebp),%eax + movl %eax,12(%esp) + movl 28(%ebp),%eax + movl %eax,16(%esp) + movl 32(%ebp),%eax + movl %eax,20(%esp) + movl 36(%ebp),%eax + movl %eax,24(%esp) + call *8(%ebp) + movl %ebp,%esp + popl %ebp + ret +.globl _OPENSSL_cleanse +.align 4 +_OPENSSL_cleanse: +L_OPENSSL_cleanse_begin: + movl 4(%esp),%edx + movl 8(%esp),%ecx + xorl %eax,%eax + cmpl $7,%ecx + jae L010lot + cmpl $0,%ecx + je L011ret +L012little: + movb %al,(%edx) + subl $1,%ecx + leal 1(%edx),%edx + jnz L012little +L011ret: + ret +.align 4,0x90 +L010lot: + testl $3,%edx + jz L013aligned + movb %al,(%edx) + leal -1(%ecx),%ecx + leal 1(%edx),%edx + jmp L010lot +L013aligned: + movl %eax,(%edx) + leal -4(%ecx),%ecx + testl $-4,%ecx + leal 4(%edx),%edx + jnz L013aligned + cmpl $0,%ecx + jne L012little + ret +.comm _OPENSSL_ia32cap_P,4 +.mod_init_func +.align 2 +.long _OPENSSL_cpuid_setup diff --git a/deps/openssl/asm/x86-win32-masm/aes/aes-586.asm b/deps/openssl/asm/x86-win32-masm/aes/aes-586.asm new file mode 100644 index 0000000000..22dd21fbcd --- /dev/null +++ b/deps/openssl/asm/x86-win32-masm/aes/aes-586.asm @@ -0,0 +1,3222 @@ +TITLE aes-586.asm +IF @Version LT 800 +ECHO MASM version 8.00 or later is strongly recommended. +ENDIF +.686 +.XMM +IF @Version LT 800 +XMMWORD STRUCT 16 +DQ 2 dup (?) +XMMWORD ENDS +ENDIF + +.MODEL FLAT +OPTION DOTNAME +IF @Version LT 800 +.text$ SEGMENT PAGE 'CODE' +ELSE +.text$ SEGMENT ALIGN(64) 'CODE' +ENDIF +ALIGN 16 +__x86_AES_encrypt_compact PROC PRIVATE + mov DWORD PTR 20[esp],edi + xor eax,DWORD PTR [edi] + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + mov esi,DWORD PTR 240[edi] + lea esi,DWORD PTR [esi*1+esi-2] + lea esi,DWORD PTR [esi*8+edi] + mov DWORD PTR 24[esp],esi + mov edi,DWORD PTR [ebp-128] + mov esi,DWORD PTR [ebp-96] + mov edi,DWORD PTR [ebp-64] + mov esi,DWORD PTR [ebp-32] + mov edi,DWORD PTR [ebp] + mov esi,DWORD PTR 32[ebp] + mov edi,DWORD PTR 64[ebp] + mov esi,DWORD PTR 96[ebp] +ALIGN 16 +$L000loop: + mov esi,eax + and esi,255 + movzx esi,BYTE PTR [esi*1+ebp-128] + movzx edi,bh + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,8 + xor esi,edi + mov edi,ecx + shr edi,16 + and edi,255 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,16 + xor esi,edi + mov edi,edx + shr edi,24 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,24 + xor esi,edi + mov DWORD PTR 4[esp],esi + mov esi,ebx + and esi,255 + shr ebx,16 + movzx esi,BYTE PTR [esi*1+ebp-128] + movzx edi,ch + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,8 + xor esi,edi + mov edi,edx + shr edi,16 + and edi,255 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,16 + xor esi,edi + mov edi,eax + shr edi,24 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,24 + xor esi,edi + mov DWORD PTR 8[esp],esi + mov esi,ecx + and esi,255 + shr ecx,24 + movzx esi,BYTE PTR [esi*1+ebp-128] + movzx edi,dh + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,8 + xor esi,edi + mov edi,eax + shr edi,16 + and edx,255 + and edi,255 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,16 + xor esi,edi + movzx edi,bh + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,24 + xor esi,edi + and edx,255 + movzx edx,BYTE PTR [edx*1+ebp-128] + movzx eax,ah + movzx eax,BYTE PTR [eax*1+ebp-128] + shl eax,8 + xor edx,eax + mov eax,DWORD PTR 4[esp] + and ebx,255 + movzx ebx,BYTE PTR [ebx*1+ebp-128] + shl ebx,16 + xor edx,ebx + mov ebx,DWORD PTR 8[esp] + movzx ecx,BYTE PTR [ecx*1+ebp-128] + shl ecx,24 + xor edx,ecx + mov ecx,esi + mov esi,ecx + and esi,2155905152 + mov ebp,esi + shr ebp,7 + lea edi,DWORD PTR [ecx*1+ecx] + sub esi,ebp + and edi,4278124286 + and esi,454761243 + mov ebp,ecx + xor esi,edi + xor ecx,esi + rol ecx,24 + xor ecx,esi + ror ebp,16 + xor ecx,ebp + ror ebp,8 + xor ecx,ebp + mov esi,edx + and esi,2155905152 + mov ebp,esi + shr ebp,7 + lea edi,DWORD PTR [edx*1+edx] + sub esi,ebp + and edi,4278124286 + and esi,454761243 + mov ebp,edx + xor esi,edi + xor edx,esi + rol edx,24 + xor edx,esi + ror ebp,16 + xor edx,ebp + ror ebp,8 + xor edx,ebp + mov esi,eax + and esi,2155905152 + mov ebp,esi + shr ebp,7 + lea edi,DWORD PTR [eax*1+eax] + sub esi,ebp + and edi,4278124286 + and esi,454761243 + mov ebp,eax + xor esi,edi + xor eax,esi + rol eax,24 + xor eax,esi + ror ebp,16 + xor eax,ebp + ror ebp,8 + xor eax,ebp + mov esi,ebx + and esi,2155905152 + mov ebp,esi + shr ebp,7 + lea edi,DWORD PTR [ebx*1+ebx] + sub esi,ebp + and edi,4278124286 + and esi,454761243 + mov ebp,ebx + xor esi,edi + xor ebx,esi + rol ebx,24 + xor ebx,esi + ror ebp,16 + xor ebx,ebp + ror ebp,8 + xor ebx,ebp + mov edi,DWORD PTR 20[esp] + mov ebp,DWORD PTR 28[esp] + add edi,16 + xor eax,DWORD PTR [edi] + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + cmp edi,DWORD PTR 24[esp] + mov DWORD PTR 20[esp],edi + jb $L000loop + mov esi,eax + and esi,255 + movzx esi,BYTE PTR [esi*1+ebp-128] + movzx edi,bh + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,8 + xor esi,edi + mov edi,ecx + shr edi,16 + and edi,255 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,16 + xor esi,edi + mov edi,edx + shr edi,24 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,24 + xor esi,edi + mov DWORD PTR 4[esp],esi + mov esi,ebx + and esi,255 + shr ebx,16 + movzx esi,BYTE PTR [esi*1+ebp-128] + movzx edi,ch + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,8 + xor esi,edi + mov edi,edx + shr edi,16 + and edi,255 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,16 + xor esi,edi + mov edi,eax + shr edi,24 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,24 + xor esi,edi + mov DWORD PTR 8[esp],esi + mov esi,ecx + and esi,255 + shr ecx,24 + movzx esi,BYTE PTR [esi*1+ebp-128] + movzx edi,dh + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,8 + xor esi,edi + mov edi,eax + shr edi,16 + and edx,255 + and edi,255 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,16 + xor esi,edi + movzx edi,bh + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,24 + xor esi,edi + mov edi,DWORD PTR 20[esp] + and edx,255 + movzx edx,BYTE PTR [edx*1+ebp-128] + movzx eax,ah + movzx eax,BYTE PTR [eax*1+ebp-128] + shl eax,8 + xor edx,eax + mov eax,DWORD PTR 4[esp] + and ebx,255 + movzx ebx,BYTE PTR [ebx*1+ebp-128] + shl ebx,16 + xor edx,ebx + mov ebx,DWORD PTR 8[esp] + movzx ecx,BYTE PTR [ecx*1+ebp-128] + shl ecx,24 + xor edx,ecx + mov ecx,esi + xor eax,DWORD PTR 16[edi] + xor ebx,DWORD PTR 20[edi] + xor ecx,DWORD PTR 24[edi] + xor edx,DWORD PTR 28[edi] + ret +__x86_AES_encrypt_compact ENDP +ALIGN 16 +__sse_AES_encrypt_compact PROC PRIVATE + pxor mm0,QWORD PTR [edi] + pxor mm4,QWORD PTR 8[edi] + mov esi,DWORD PTR 240[edi] + lea esi,DWORD PTR [esi*1+esi-2] + lea esi,DWORD PTR [esi*8+edi] + mov DWORD PTR 24[esp],esi + mov eax,454761243 + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],eax + mov eax,DWORD PTR [ebp-128] + mov ebx,DWORD PTR [ebp-96] + mov ecx,DWORD PTR [ebp-64] + mov edx,DWORD PTR [ebp-32] + mov eax,DWORD PTR [ebp] + mov ebx,DWORD PTR 32[ebp] + mov ecx,DWORD PTR 64[ebp] + mov edx,DWORD PTR 96[ebp] +ALIGN 16 +$L001loop: + pshufw mm1,mm0,8 + pshufw mm5,mm4,13 + movd eax,mm1 + movd ebx,mm5 + movzx esi,al + movzx ecx,BYTE PTR [esi*1+ebp-128] + pshufw mm2,mm0,13 + movzx edx,ah + movzx edx,BYTE PTR [edx*1+ebp-128] + shl edx,8 + shr eax,16 + movzx esi,bl + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,16 + or ecx,esi + pshufw mm6,mm4,8 + movzx esi,bh + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,24 + or edx,esi + shr ebx,16 + movzx esi,ah + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,8 + or ecx,esi + movzx esi,bh + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,24 + or ecx,esi + movd mm0,ecx + movzx esi,al + movzx ecx,BYTE PTR [esi*1+ebp-128] + movd eax,mm2 + movzx esi,bl + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,16 + or ecx,esi + movd ebx,mm6 + movzx esi,ah + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,24 + or ecx,esi + movzx esi,bh + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,8 + or ecx,esi + movd mm1,ecx + movzx esi,bl + movzx ecx,BYTE PTR [esi*1+ebp-128] + shr ebx,16 + movzx esi,al + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,16 + or ecx,esi + shr eax,16 + punpckldq mm0,mm1 + movzx esi,ah + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,24 + or ecx,esi + and eax,255 + movzx eax,BYTE PTR [eax*1+ebp-128] + shl eax,16 + or edx,eax + movzx esi,bh + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,8 + or ecx,esi + movd mm4,ecx + and ebx,255 + movzx ebx,BYTE PTR [ebx*1+ebp-128] + or edx,ebx + movd mm5,edx + punpckldq mm4,mm5 + add edi,16 + cmp edi,DWORD PTR 24[esp] + ja $L002out + movq mm2,QWORD PTR 8[esp] + pxor mm3,mm3 + pxor mm7,mm7 + movq mm1,mm0 + movq mm5,mm4 + pcmpgtb mm3,mm0 + pcmpgtb mm7,mm4 + pand mm3,mm2 + pand mm7,mm2 + pshufw mm2,mm0,177 + pshufw mm6,mm4,177 + paddb mm0,mm0 + paddb mm4,mm4 + pxor mm0,mm3 + pxor mm4,mm7 + pshufw mm3,mm2,177 + pshufw mm7,mm6,177 + pxor mm1,mm0 + pxor mm5,mm4 + pxor mm0,mm2 + pxor mm4,mm6 + movq mm2,mm3 + movq mm6,mm7 + pslld mm3,8 + pslld mm7,8 + psrld mm2,24 + psrld mm6,24 + pxor mm0,mm3 + pxor mm4,mm7 + pxor mm0,mm2 + pxor mm4,mm6 + movq mm3,mm1 + movq mm7,mm5 + movq mm2,QWORD PTR [edi] + movq mm6,QWORD PTR 8[edi] + psrld mm1,8 + psrld mm5,8 + mov eax,DWORD PTR [ebp-128] + pslld mm3,24 + pslld mm7,24 + mov ebx,DWORD PTR [ebp-64] + pxor mm0,mm1 + pxor mm4,mm5 + mov ecx,DWORD PTR [ebp] + pxor mm0,mm3 + pxor mm4,mm7 + mov edx,DWORD PTR 64[ebp] + pxor mm0,mm2 + pxor mm4,mm6 + jmp $L001loop +ALIGN 16 +$L002out: + pxor mm0,QWORD PTR [edi] + pxor mm4,QWORD PTR 8[edi] + ret +__sse_AES_encrypt_compact ENDP +ALIGN 16 +__x86_AES_encrypt PROC PRIVATE + mov DWORD PTR 20[esp],edi + xor eax,DWORD PTR [edi] + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + mov esi,DWORD PTR 240[edi] + lea esi,DWORD PTR [esi*1+esi-2] + lea esi,DWORD PTR [esi*8+edi] + mov DWORD PTR 24[esp],esi +ALIGN 16 +$L003loop: + mov esi,eax + and esi,255 + mov esi,DWORD PTR [esi*8+ebp] + movzx edi,bh + xor esi,DWORD PTR 3[edi*8+ebp] + mov edi,ecx + shr edi,16 + and edi,255 + xor esi,DWORD PTR 2[edi*8+ebp] + mov edi,edx + shr edi,24 + xor esi,DWORD PTR 1[edi*8+ebp] + mov DWORD PTR 4[esp],esi + mov esi,ebx + and esi,255 + shr ebx,16 + mov esi,DWORD PTR [esi*8+ebp] + movzx edi,ch + xor esi,DWORD PTR 3[edi*8+ebp] + mov edi,edx + shr edi,16 + and edi,255 + xor esi,DWORD PTR 2[edi*8+ebp] + mov edi,eax + shr edi,24 + xor esi,DWORD PTR 1[edi*8+ebp] + mov DWORD PTR 8[esp],esi + mov esi,ecx + and esi,255 + shr ecx,24 + mov esi,DWORD PTR [esi*8+ebp] + movzx edi,dh + xor esi,DWORD PTR 3[edi*8+ebp] + mov edi,eax + shr edi,16 + and edx,255 + and edi,255 + xor esi,DWORD PTR 2[edi*8+ebp] + movzx edi,bh + xor esi,DWORD PTR 1[edi*8+ebp] + mov edi,DWORD PTR 20[esp] + mov edx,DWORD PTR [edx*8+ebp] + movzx eax,ah + xor edx,DWORD PTR 3[eax*8+ebp] + mov eax,DWORD PTR 4[esp] + and ebx,255 + xor edx,DWORD PTR 2[ebx*8+ebp] + mov ebx,DWORD PTR 8[esp] + xor edx,DWORD PTR 1[ecx*8+ebp] + mov ecx,esi + add edi,16 + xor eax,DWORD PTR [edi] + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + cmp edi,DWORD PTR 24[esp] + mov DWORD PTR 20[esp],edi + jb $L003loop + mov esi,eax + and esi,255 + mov esi,DWORD PTR 2[esi*8+ebp] + and esi,255 + movzx edi,bh + mov edi,DWORD PTR [edi*8+ebp] + and edi,65280 + xor esi,edi + mov edi,ecx + shr edi,16 + and edi,255 + mov edi,DWORD PTR [edi*8+ebp] + and edi,16711680 + xor esi,edi + mov edi,edx + shr edi,24 + mov edi,DWORD PTR 2[edi*8+ebp] + and edi,4278190080 + xor esi,edi + mov DWORD PTR 4[esp],esi + mov esi,ebx + and esi,255 + shr ebx,16 + mov esi,DWORD PTR 2[esi*8+ebp] + and esi,255 + movzx edi,ch + mov edi,DWORD PTR [edi*8+ebp] + and edi,65280 + xor esi,edi + mov edi,edx + shr edi,16 + and edi,255 + mov edi,DWORD PTR [edi*8+ebp] + and edi,16711680 + xor esi,edi + mov edi,eax + shr edi,24 + mov edi,DWORD PTR 2[edi*8+ebp] + and edi,4278190080 + xor esi,edi + mov DWORD PTR 8[esp],esi + mov esi,ecx + and esi,255 + shr ecx,24 + mov esi,DWORD PTR 2[esi*8+ebp] + and esi,255 + movzx edi,dh + mov edi,DWORD PTR [edi*8+ebp] + and edi,65280 + xor esi,edi + mov edi,eax + shr edi,16 + and edx,255 + and edi,255 + mov edi,DWORD PTR [edi*8+ebp] + and edi,16711680 + xor esi,edi + movzx edi,bh + mov edi,DWORD PTR 2[edi*8+ebp] + and edi,4278190080 + xor esi,edi + mov edi,DWORD PTR 20[esp] + and edx,255 + mov edx,DWORD PTR 2[edx*8+ebp] + and edx,255 + movzx eax,ah + mov eax,DWORD PTR [eax*8+ebp] + and eax,65280 + xor edx,eax + mov eax,DWORD PTR 4[esp] + and ebx,255 + mov ebx,DWORD PTR [ebx*8+ebp] + and ebx,16711680 + xor edx,ebx + mov ebx,DWORD PTR 8[esp] + mov ecx,DWORD PTR 2[ecx*8+ebp] + and ecx,4278190080 + xor edx,ecx + mov ecx,esi + add edi,16 + xor eax,DWORD PTR [edi] + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + ret +ALIGN 64 +$LAES_Te:: +DD 2774754246,2774754246 +DD 2222750968,2222750968 +DD 2574743534,2574743534 +DD 2373680118,2373680118 +DD 234025727,234025727 +DD 3177933782,3177933782 +DD 2976870366,2976870366 +DD 1422247313,1422247313 +DD 1345335392,1345335392 +DD 50397442,50397442 +DD 2842126286,2842126286 +DD 2099981142,2099981142 +DD 436141799,436141799 +DD 1658312629,1658312629 +DD 3870010189,3870010189 +DD 2591454956,2591454956 +DD 1170918031,1170918031 +DD 2642575903,2642575903 +DD 1086966153,1086966153 +DD 2273148410,2273148410 +DD 368769775,368769775 +DD 3948501426,3948501426 +DD 3376891790,3376891790 +DD 200339707,200339707 +DD 3970805057,3970805057 +DD 1742001331,1742001331 +DD 4255294047,4255294047 +DD 3937382213,3937382213 +DD 3214711843,3214711843 +DD 4154762323,4154762323 +DD 2524082916,2524082916 +DD 1539358875,1539358875 +DD 3266819957,3266819957 +DD 486407649,486407649 +DD 2928907069,2928907069 +DD 1780885068,1780885068 +DD 1513502316,1513502316 +DD 1094664062,1094664062 +DD 49805301,49805301 +DD 1338821763,1338821763 +DD 1546925160,1546925160 +DD 4104496465,4104496465 +DD 887481809,887481809 +DD 150073849,150073849 +DD 2473685474,2473685474 +DD 1943591083,1943591083 +DD 1395732834,1395732834 +DD 1058346282,1058346282 +DD 201589768,201589768 +DD 1388824469,1388824469 +DD 1696801606,1696801606 +DD 1589887901,1589887901 +DD 672667696,672667696 +DD 2711000631,2711000631 +DD 251987210,251987210 +DD 3046808111,3046808111 +DD 151455502,151455502 +DD 907153956,907153956 +DD 2608889883,2608889883 +DD 1038279391,1038279391 +DD 652995533,652995533 +DD 1764173646,1764173646 +DD 3451040383,3451040383 +DD 2675275242,2675275242 +DD 453576978,453576978 +DD 2659418909,2659418909 +DD 1949051992,1949051992 +DD 773462580,773462580 +DD 756751158,756751158 +DD 2993581788,2993581788 +DD 3998898868,3998898868 +DD 4221608027,4221608027 +DD 4132590244,4132590244 +DD 1295727478,1295727478 +DD 1641469623,1641469623 +DD 3467883389,3467883389 +DD 2066295122,2066295122 +DD 1055122397,1055122397 +DD 1898917726,1898917726 +DD 2542044179,2542044179 +DD 4115878822,4115878822 +DD 1758581177,1758581177 +DD 0,0 +DD 753790401,753790401 +DD 1612718144,1612718144 +DD 536673507,536673507 +DD 3367088505,3367088505 +DD 3982187446,3982187446 +DD 3194645204,3194645204 +DD 1187761037,1187761037 +DD 3653156455,3653156455 +DD 1262041458,1262041458 +DD 3729410708,3729410708 +DD 3561770136,3561770136 +DD 3898103984,3898103984 +DD 1255133061,1255133061 +DD 1808847035,1808847035 +DD 720367557,720367557 +DD 3853167183,3853167183 +DD 385612781,385612781 +DD 3309519750,3309519750 +DD 3612167578,3612167578 +DD 1429418854,1429418854 +DD 2491778321,2491778321 +DD 3477423498,3477423498 +DD 284817897,284817897 +DD 100794884,100794884 +DD 2172616702,2172616702 +DD 4031795360,4031795360 +DD 1144798328,1144798328 +DD 3131023141,3131023141 +DD 3819481163,3819481163 +DD 4082192802,4082192802 +DD 4272137053,4272137053 +DD 3225436288,3225436288 +DD 2324664069,2324664069 +DD 2912064063,2912064063 +DD 3164445985,3164445985 +DD 1211644016,1211644016 +DD 83228145,83228145 +DD 3753688163,3753688163 +DD 3249976951,3249976951 +DD 1977277103,1977277103 +DD 1663115586,1663115586 +DD 806359072,806359072 +DD 452984805,452984805 +DD 250868733,250868733 +DD 1842533055,1842533055 +DD 1288555905,1288555905 +DD 336333848,336333848 +DD 890442534,890442534 +DD 804056259,804056259 +DD 3781124030,3781124030 +DD 2727843637,2727843637 +DD 3427026056,3427026056 +DD 957814574,957814574 +DD 1472513171,1472513171 +DD 4071073621,4071073621 +DD 2189328124,2189328124 +DD 1195195770,1195195770 +DD 2892260552,2892260552 +DD 3881655738,3881655738 +DD 723065138,723065138 +DD 2507371494,2507371494 +DD 2690670784,2690670784 +DD 2558624025,2558624025 +DD 3511635870,3511635870 +DD 2145180835,2145180835 +DD 1713513028,1713513028 +DD 2116692564,2116692564 +DD 2878378043,2878378043 +DD 2206763019,2206763019 +DD 3393603212,3393603212 +DD 703524551,703524551 +DD 3552098411,3552098411 +DD 1007948840,1007948840 +DD 2044649127,2044649127 +DD 3797835452,3797835452 +DD 487262998,487262998 +DD 1994120109,1994120109 +DD 1004593371,1004593371 +DD 1446130276,1446130276 +DD 1312438900,1312438900 +DD 503974420,503974420 +DD 3679013266,3679013266 +DD 168166924,168166924 +DD 1814307912,1814307912 +DD 3831258296,3831258296 +DD 1573044895,1573044895 +DD 1859376061,1859376061 +DD 4021070915,4021070915 +DD 2791465668,2791465668 +DD 2828112185,2828112185 +DD 2761266481,2761266481 +DD 937747667,937747667 +DD 2339994098,2339994098 +DD 854058965,854058965 +DD 1137232011,1137232011 +DD 1496790894,1496790894 +DD 3077402074,3077402074 +DD 2358086913,2358086913 +DD 1691735473,1691735473 +DD 3528347292,3528347292 +DD 3769215305,3769215305 +DD 3027004632,3027004632 +DD 4199962284,4199962284 +DD 133494003,133494003 +DD 636152527,636152527 +DD 2942657994,2942657994 +DD 2390391540,2390391540 +DD 3920539207,3920539207 +DD 403179536,403179536 +DD 3585784431,3585784431 +DD 2289596656,2289596656 +DD 1864705354,1864705354 +DD 1915629148,1915629148 +DD 605822008,605822008 +DD 4054230615,4054230615 +DD 3350508659,3350508659 +DD 1371981463,1371981463 +DD 602466507,602466507 +DD 2094914977,2094914977 +DD 2624877800,2624877800 +DD 555687742,555687742 +DD 3712699286,3712699286 +DD 3703422305,3703422305 +DD 2257292045,2257292045 +DD 2240449039,2240449039 +DD 2423288032,2423288032 +DD 1111375484,1111375484 +DD 3300242801,3300242801 +DD 2858837708,2858837708 +DD 3628615824,3628615824 +DD 84083462,84083462 +DD 32962295,32962295 +DD 302911004,302911004 +DD 2741068226,2741068226 +DD 1597322602,1597322602 +DD 4183250862,4183250862 +DD 3501832553,3501832553 +DD 2441512471,2441512471 +DD 1489093017,1489093017 +DD 656219450,656219450 +DD 3114180135,3114180135 +DD 954327513,954327513 +DD 335083755,335083755 +DD 3013122091,3013122091 +DD 856756514,856756514 +DD 3144247762,3144247762 +DD 1893325225,1893325225 +DD 2307821063,2307821063 +DD 2811532339,2811532339 +DD 3063651117,3063651117 +DD 572399164,572399164 +DD 2458355477,2458355477 +DD 552200649,552200649 +DD 1238290055,1238290055 +DD 4283782570,4283782570 +DD 2015897680,2015897680 +DD 2061492133,2061492133 +DD 2408352771,2408352771 +DD 4171342169,4171342169 +DD 2156497161,2156497161 +DD 386731290,386731290 +DD 3669999461,3669999461 +DD 837215959,837215959 +DD 3326231172,3326231172 +DD 3093850320,3093850320 +DD 3275833730,3275833730 +DD 2962856233,2962856233 +DD 1999449434,1999449434 +DD 286199582,286199582 +DD 3417354363,3417354363 +DD 4233385128,4233385128 +DD 3602627437,3602627437 +DD 974525996,974525996 +DB 99,124,119,123,242,107,111,197 +DB 48,1,103,43,254,215,171,118 +DB 202,130,201,125,250,89,71,240 +DB 173,212,162,175,156,164,114,192 +DB 183,253,147,38,54,63,247,204 +DB 52,165,229,241,113,216,49,21 +DB 4,199,35,195,24,150,5,154 +DB 7,18,128,226,235,39,178,117 +DB 9,131,44,26,27,110,90,160 +DB 82,59,214,179,41,227,47,132 +DB 83,209,0,237,32,252,177,91 +DB 106,203,190,57,74,76,88,207 +DB 208,239,170,251,67,77,51,133 +DB 69,249,2,127,80,60,159,168 +DB 81,163,64,143,146,157,56,245 +DB 188,182,218,33,16,255,243,210 +DB 205,12,19,236,95,151,68,23 +DB 196,167,126,61,100,93,25,115 +DB 96,129,79,220,34,42,144,136 +DB 70,238,184,20,222,94,11,219 +DB 224,50,58,10,73,6,36,92 +DB 194,211,172,98,145,149,228,121 +DB 231,200,55,109,141,213,78,169 +DB 108,86,244,234,101,122,174,8 +DB 186,120,37,46,28,166,180,198 +DB 232,221,116,31,75,189,139,138 +DB 112,62,181,102,72,3,246,14 +DB 97,53,87,185,134,193,29,158 +DB 225,248,152,17,105,217,142,148 +DB 155,30,135,233,206,85,40,223 +DB 140,161,137,13,191,230,66,104 +DB 65,153,45,15,176,84,187,22 +DB 99,124,119,123,242,107,111,197 +DB 48,1,103,43,254,215,171,118 +DB 202,130,201,125,250,89,71,240 +DB 173,212,162,175,156,164,114,192 +DB 183,253,147,38,54,63,247,204 +DB 52,165,229,241,113,216,49,21 +DB 4,199,35,195,24,150,5,154 +DB 7,18,128,226,235,39,178,117 +DB 9,131,44,26,27,110,90,160 +DB 82,59,214,179,41,227,47,132 +DB 83,209,0,237,32,252,177,91 +DB 106,203,190,57,74,76,88,207 +DB 208,239,170,251,67,77,51,133 +DB 69,249,2,127,80,60,159,168 +DB 81,163,64,143,146,157,56,245 +DB 188,182,218,33,16,255,243,210 +DB 205,12,19,236,95,151,68,23 +DB 196,167,126,61,100,93,25,115 +DB 96,129,79,220,34,42,144,136 +DB 70,238,184,20,222,94,11,219 +DB 224,50,58,10,73,6,36,92 +DB 194,211,172,98,145,149,228,121 +DB 231,200,55,109,141,213,78,169 +DB 108,86,244,234,101,122,174,8 +DB 186,120,37,46,28,166,180,198 +DB 232,221,116,31,75,189,139,138 +DB 112,62,181,102,72,3,246,14 +DB 97,53,87,185,134,193,29,158 +DB 225,248,152,17,105,217,142,148 +DB 155,30,135,233,206,85,40,223 +DB 140,161,137,13,191,230,66,104 +DB 65,153,45,15,176,84,187,22 +DB 99,124,119,123,242,107,111,197 +DB 48,1,103,43,254,215,171,118 +DB 202,130,201,125,250,89,71,240 +DB 173,212,162,175,156,164,114,192 +DB 183,253,147,38,54,63,247,204 +DB 52,165,229,241,113,216,49,21 +DB 4,199,35,195,24,150,5,154 +DB 7,18,128,226,235,39,178,117 +DB 9,131,44,26,27,110,90,160 +DB 82,59,214,179,41,227,47,132 +DB 83,209,0,237,32,252,177,91 +DB 106,203,190,57,74,76,88,207 +DB 208,239,170,251,67,77,51,133 +DB 69,249,2,127,80,60,159,168 +DB 81,163,64,143,146,157,56,245 +DB 188,182,218,33,16,255,243,210 +DB 205,12,19,236,95,151,68,23 +DB 196,167,126,61,100,93,25,115 +DB 96,129,79,220,34,42,144,136 +DB 70,238,184,20,222,94,11,219 +DB 224,50,58,10,73,6,36,92 +DB 194,211,172,98,145,149,228,121 +DB 231,200,55,109,141,213,78,169 +DB 108,86,244,234,101,122,174,8 +DB 186,120,37,46,28,166,180,198 +DB 232,221,116,31,75,189,139,138 +DB 112,62,181,102,72,3,246,14 +DB 97,53,87,185,134,193,29,158 +DB 225,248,152,17,105,217,142,148 +DB 155,30,135,233,206,85,40,223 +DB 140,161,137,13,191,230,66,104 +DB 65,153,45,15,176,84,187,22 +DB 99,124,119,123,242,107,111,197 +DB 48,1,103,43,254,215,171,118 +DB 202,130,201,125,250,89,71,240 +DB 173,212,162,175,156,164,114,192 +DB 183,253,147,38,54,63,247,204 +DB 52,165,229,241,113,216,49,21 +DB 4,199,35,195,24,150,5,154 +DB 7,18,128,226,235,39,178,117 +DB 9,131,44,26,27,110,90,160 +DB 82,59,214,179,41,227,47,132 +DB 83,209,0,237,32,252,177,91 +DB 106,203,190,57,74,76,88,207 +DB 208,239,170,251,67,77,51,133 +DB 69,249,2,127,80,60,159,168 +DB 81,163,64,143,146,157,56,245 +DB 188,182,218,33,16,255,243,210 +DB 205,12,19,236,95,151,68,23 +DB 196,167,126,61,100,93,25,115 +DB 96,129,79,220,34,42,144,136 +DB 70,238,184,20,222,94,11,219 +DB 224,50,58,10,73,6,36,92 +DB 194,211,172,98,145,149,228,121 +DB 231,200,55,109,141,213,78,169 +DB 108,86,244,234,101,122,174,8 +DB 186,120,37,46,28,166,180,198 +DB 232,221,116,31,75,189,139,138 +DB 112,62,181,102,72,3,246,14 +DB 97,53,87,185,134,193,29,158 +DB 225,248,152,17,105,217,142,148 +DB 155,30,135,233,206,85,40,223 +DB 140,161,137,13,191,230,66,104 +DB 65,153,45,15,176,84,187,22 +DD 1,2,4,8 +DD 16,32,64,128 +DD 27,54,0,0 +DD 0,0,0,0 +__x86_AES_encrypt ENDP +ALIGN 16 +_AES_encrypt PROC PUBLIC +$L_AES_encrypt_begin:: + push ebp + push ebx + push esi + push edi + mov esi,DWORD PTR 20[esp] + mov edi,DWORD PTR 28[esp] + mov eax,esp + sub esp,36 + and esp,-64 + lea ebx,DWORD PTR [edi-127] + sub ebx,esp + neg ebx + and ebx,960 + sub esp,ebx + add esp,4 + mov DWORD PTR 28[esp],eax + call $L004pic_point +$L004pic_point: + pop ebp + lea eax,DWORD PTR _OPENSSL_ia32cap_P + lea ebp,DWORD PTR ($LAES_Te-$L004pic_point)[ebp] + lea ebx,DWORD PTR 764[esp] + sub ebx,ebp + and ebx,768 + lea ebp,DWORD PTR 2176[ebx*1+ebp] + bt DWORD PTR [eax],25 + jnc $L005x86 + movq mm0,QWORD PTR [esi] + movq mm4,QWORD PTR 8[esi] + call __sse_AES_encrypt_compact + mov esp,DWORD PTR 28[esp] + mov esi,DWORD PTR 24[esp] + movq QWORD PTR [esi],mm0 + movq QWORD PTR 8[esi],mm4 + emms + pop edi + pop esi + pop ebx + pop ebp + ret +ALIGN 16 +$L005x86: + mov DWORD PTR 24[esp],ebp + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 12[esi] + call __x86_AES_encrypt_compact + mov esp,DWORD PTR 28[esp] + mov esi,DWORD PTR 24[esp] + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],ebx + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edx + pop edi + pop esi + pop ebx + pop ebp + ret +_AES_encrypt ENDP +ALIGN 16 +__x86_AES_decrypt_compact PROC PRIVATE + mov DWORD PTR 20[esp],edi + xor eax,DWORD PTR [edi] + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + mov esi,DWORD PTR 240[edi] + lea esi,DWORD PTR [esi*1+esi-2] + lea esi,DWORD PTR [esi*8+edi] + mov DWORD PTR 24[esp],esi + mov edi,DWORD PTR [ebp-128] + mov esi,DWORD PTR [ebp-96] + mov edi,DWORD PTR [ebp-64] + mov esi,DWORD PTR [ebp-32] + mov edi,DWORD PTR [ebp] + mov esi,DWORD PTR 32[ebp] + mov edi,DWORD PTR 64[ebp] + mov esi,DWORD PTR 96[ebp] +ALIGN 16 +$L006loop: + mov esi,eax + and esi,255 + movzx esi,BYTE PTR [esi*1+ebp-128] + movzx edi,dh + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,8 + xor esi,edi + mov edi,ecx + shr edi,16 + and edi,255 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,16 + xor esi,edi + mov edi,ebx + shr edi,24 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,24 + xor esi,edi + mov DWORD PTR 4[esp],esi + mov esi,ebx + and esi,255 + movzx esi,BYTE PTR [esi*1+ebp-128] + movzx edi,ah + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,8 + xor esi,edi + mov edi,edx + shr edi,16 + and edi,255 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,16 + xor esi,edi + mov edi,ecx + shr edi,24 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,24 + xor esi,edi + mov DWORD PTR 8[esp],esi + mov esi,ecx + and esi,255 + movzx esi,BYTE PTR [esi*1+ebp-128] + movzx edi,bh + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,8 + xor esi,edi + mov edi,eax + shr edi,16 + and edi,255 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,16 + xor esi,edi + mov edi,edx + shr edi,24 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,24 + xor esi,edi + and edx,255 + movzx edx,BYTE PTR [edx*1+ebp-128] + movzx ecx,ch + movzx ecx,BYTE PTR [ecx*1+ebp-128] + shl ecx,8 + xor edx,ecx + mov ecx,esi + shr ebx,16 + and ebx,255 + movzx ebx,BYTE PTR [ebx*1+ebp-128] + shl ebx,16 + xor edx,ebx + shr eax,24 + movzx eax,BYTE PTR [eax*1+ebp-128] + shl eax,24 + xor edx,eax + mov esi,ecx + and esi,2155905152 + mov edi,esi + shr edi,7 + lea eax,DWORD PTR [ecx*1+ecx] + sub esi,edi + and eax,4278124286 + and esi,454761243 + xor esi,eax + mov eax,esi + and esi,2155905152 + mov edi,esi + shr edi,7 + lea ebx,DWORD PTR [eax*1+eax] + sub esi,edi + and ebx,4278124286 + and esi,454761243 + xor eax,ecx + xor esi,ebx + mov ebx,esi + and esi,2155905152 + mov edi,esi + shr edi,7 + lea ebp,DWORD PTR [ebx*1+ebx] + sub esi,edi + and ebp,4278124286 + and esi,454761243 + xor ebx,ecx + rol ecx,8 + xor ebp,esi + xor ecx,eax + xor eax,ebp + rol eax,24 + xor ecx,ebx + xor ebx,ebp + rol ebx,16 + xor ecx,ebp + rol ebp,8 + xor ecx,eax + xor ecx,ebx + mov eax,DWORD PTR 4[esp] + xor ecx,ebp + mov DWORD PTR 12[esp],ecx + mov esi,edx + and esi,2155905152 + mov edi,esi + shr edi,7 + lea ebx,DWORD PTR [edx*1+edx] + sub esi,edi + and ebx,4278124286 + and esi,454761243 + xor esi,ebx + mov ebx,esi + and esi,2155905152 + mov edi,esi + shr edi,7 + lea ecx,DWORD PTR [ebx*1+ebx] + sub esi,edi + and ecx,4278124286 + and esi,454761243 + xor ebx,edx + xor esi,ecx + mov ecx,esi + and esi,2155905152 + mov edi,esi + shr edi,7 + lea ebp,DWORD PTR [ecx*1+ecx] + sub esi,edi + and ebp,4278124286 + and esi,454761243 + xor ecx,edx + rol edx,8 + xor ebp,esi + xor edx,ebx + xor ebx,ebp + rol ebx,24 + xor edx,ecx + xor ecx,ebp + rol ecx,16 + xor edx,ebp + rol ebp,8 + xor edx,ebx + xor edx,ecx + mov ebx,DWORD PTR 8[esp] + xor edx,ebp + mov DWORD PTR 16[esp],edx + mov esi,eax + and esi,2155905152 + mov edi,esi + shr edi,7 + lea ecx,DWORD PTR [eax*1+eax] + sub esi,edi + and ecx,4278124286 + and esi,454761243 + xor esi,ecx + mov ecx,esi + and esi,2155905152 + mov edi,esi + shr edi,7 + lea edx,DWORD PTR [ecx*1+ecx] + sub esi,edi + and edx,4278124286 + and esi,454761243 + xor ecx,eax + xor esi,edx + mov edx,esi + and esi,2155905152 + mov edi,esi + shr edi,7 + lea ebp,DWORD PTR [edx*1+edx] + sub esi,edi + and ebp,4278124286 + and esi,454761243 + xor edx,eax + rol eax,8 + xor ebp,esi + xor eax,ecx + xor ecx,ebp + rol ecx,24 + xor eax,edx + xor edx,ebp + rol edx,16 + xor eax,ebp + rol ebp,8 + xor eax,ecx + xor eax,edx + xor eax,ebp + mov esi,ebx + and esi,2155905152 + mov edi,esi + shr edi,7 + lea ecx,DWORD PTR [ebx*1+ebx] + sub esi,edi + and ecx,4278124286 + and esi,454761243 + xor esi,ecx + mov ecx,esi + and esi,2155905152 + mov edi,esi + shr edi,7 + lea edx,DWORD PTR [ecx*1+ecx] + sub esi,edi + and edx,4278124286 + and esi,454761243 + xor ecx,ebx + xor esi,edx + mov edx,esi + and esi,2155905152 + mov edi,esi + shr edi,7 + lea ebp,DWORD PTR [edx*1+edx] + sub esi,edi + and ebp,4278124286 + and esi,454761243 + xor edx,ebx + rol ebx,8 + xor ebp,esi + xor ebx,ecx + xor ecx,ebp + rol ecx,24 + xor ebx,edx + xor edx,ebp + rol edx,16 + xor ebx,ebp + rol ebp,8 + xor ebx,ecx + xor ebx,edx + mov ecx,DWORD PTR 12[esp] + xor ebx,ebp + mov edx,DWORD PTR 16[esp] + mov edi,DWORD PTR 20[esp] + mov ebp,DWORD PTR 28[esp] + add edi,16 + xor eax,DWORD PTR [edi] + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + cmp edi,DWORD PTR 24[esp] + mov DWORD PTR 20[esp],edi + jb $L006loop + mov esi,eax + and esi,255 + movzx esi,BYTE PTR [esi*1+ebp-128] + movzx edi,dh + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,8 + xor esi,edi + mov edi,ecx + shr edi,16 + and edi,255 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,16 + xor esi,edi + mov edi,ebx + shr edi,24 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,24 + xor esi,edi + mov DWORD PTR 4[esp],esi + mov esi,ebx + and esi,255 + movzx esi,BYTE PTR [esi*1+ebp-128] + movzx edi,ah + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,8 + xor esi,edi + mov edi,edx + shr edi,16 + and edi,255 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,16 + xor esi,edi + mov edi,ecx + shr edi,24 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,24 + xor esi,edi + mov DWORD PTR 8[esp],esi + mov esi,ecx + and esi,255 + movzx esi,BYTE PTR [esi*1+ebp-128] + movzx edi,bh + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,8 + xor esi,edi + mov edi,eax + shr edi,16 + and edi,255 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,16 + xor esi,edi + mov edi,edx + shr edi,24 + movzx edi,BYTE PTR [edi*1+ebp-128] + shl edi,24 + xor esi,edi + mov edi,DWORD PTR 20[esp] + and edx,255 + movzx edx,BYTE PTR [edx*1+ebp-128] + movzx ecx,ch + movzx ecx,BYTE PTR [ecx*1+ebp-128] + shl ecx,8 + xor edx,ecx + mov ecx,esi + shr ebx,16 + and ebx,255 + movzx ebx,BYTE PTR [ebx*1+ebp-128] + shl ebx,16 + xor edx,ebx + mov ebx,DWORD PTR 8[esp] + shr eax,24 + movzx eax,BYTE PTR [eax*1+ebp-128] + shl eax,24 + xor edx,eax + mov eax,DWORD PTR 4[esp] + xor eax,DWORD PTR 16[edi] + xor ebx,DWORD PTR 20[edi] + xor ecx,DWORD PTR 24[edi] + xor edx,DWORD PTR 28[edi] + ret +__x86_AES_decrypt_compact ENDP +ALIGN 16 +__sse_AES_decrypt_compact PROC PRIVATE + pxor mm0,QWORD PTR [edi] + pxor mm4,QWORD PTR 8[edi] + mov esi,DWORD PTR 240[edi] + lea esi,DWORD PTR [esi*1+esi-2] + lea esi,DWORD PTR [esi*8+edi] + mov DWORD PTR 24[esp],esi + mov eax,454761243 + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],eax + mov eax,DWORD PTR [ebp-128] + mov ebx,DWORD PTR [ebp-96] + mov ecx,DWORD PTR [ebp-64] + mov edx,DWORD PTR [ebp-32] + mov eax,DWORD PTR [ebp] + mov ebx,DWORD PTR 32[ebp] + mov ecx,DWORD PTR 64[ebp] + mov edx,DWORD PTR 96[ebp] +ALIGN 16 +$L007loop: + pshufw mm1,mm0,12 + movd eax,mm1 + pshufw mm5,mm4,9 + movzx esi,al + movzx ecx,BYTE PTR [esi*1+ebp-128] + movd ebx,mm5 + movzx edx,ah + movzx edx,BYTE PTR [edx*1+ebp-128] + shl edx,8 + pshufw mm2,mm0,6 + movzx esi,bl + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,16 + or ecx,esi + shr eax,16 + movzx esi,bh + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,24 + or edx,esi + shr ebx,16 + pshufw mm6,mm4,3 + movzx esi,ah + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,24 + or ecx,esi + movzx esi,bh + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,8 + or ecx,esi + movd mm0,ecx + movzx esi,al + movd eax,mm2 + movzx ecx,BYTE PTR [esi*1+ebp-128] + shl ecx,16 + movzx esi,bl + movd ebx,mm6 + movzx esi,BYTE PTR [esi*1+ebp-128] + or ecx,esi + movzx esi,al + movzx esi,BYTE PTR [esi*1+ebp-128] + or edx,esi + movzx esi,bl + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,16 + or edx,esi + movd mm1,edx + movzx esi,ah + movzx edx,BYTE PTR [esi*1+ebp-128] + shl edx,8 + movzx esi,bh + shr eax,16 + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,24 + or edx,esi + shr ebx,16 + punpckldq mm0,mm1 + movzx esi,bh + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,8 + or ecx,esi + and ebx,255 + movzx ebx,BYTE PTR [ebx*1+ebp-128] + or edx,ebx + movzx esi,al + movzx esi,BYTE PTR [esi*1+ebp-128] + shl esi,16 + or edx,esi + movd mm4,edx + movzx eax,ah + movzx eax,BYTE PTR [eax*1+ebp-128] + shl eax,24 + or ecx,eax + movd mm5,ecx + punpckldq mm4,mm5 + add edi,16 + cmp edi,DWORD PTR 24[esp] + ja $L008out + movq mm3,mm0 + movq mm7,mm4 + pshufw mm2,mm0,228 + pshufw mm6,mm4,228 + movq mm1,mm0 + movq mm5,mm4 + pshufw mm0,mm0,177 + pshufw mm4,mm4,177 + pslld mm2,8 + pslld mm6,8 + psrld mm3,8 + psrld mm7,8 + pxor mm0,mm2 + pxor mm4,mm6 + pxor mm0,mm3 + pxor mm4,mm7 + pslld mm2,16 + pslld mm6,16 + psrld mm3,16 + psrld mm7,16 + pxor mm0,mm2 + pxor mm4,mm6 + pxor mm0,mm3 + pxor mm4,mm7 + movq mm3,QWORD PTR 8[esp] + pxor mm2,mm2 + pxor mm6,mm6 + pcmpgtb mm2,mm1 + pcmpgtb mm6,mm5 + pand mm2,mm3 + pand mm6,mm3 + paddb mm1,mm1 + paddb mm5,mm5 + pxor mm1,mm2 + pxor mm5,mm6 + movq mm3,mm1 + movq mm7,mm5 + movq mm2,mm1 + movq mm6,mm5 + pxor mm0,mm1 + pxor mm4,mm5 + pslld mm3,24 + pslld mm7,24 + psrld mm2,8 + psrld mm6,8 + pxor mm0,mm3 + pxor mm4,mm7 + pxor mm0,mm2 + pxor mm4,mm6 + movq mm2,QWORD PTR 8[esp] + pxor mm3,mm3 + pxor mm7,mm7 + pcmpgtb mm3,mm1 + pcmpgtb mm7,mm5 + pand mm3,mm2 + pand mm7,mm2 + paddb mm1,mm1 + paddb mm5,mm5 + pxor mm1,mm3 + pxor mm5,mm7 + pshufw mm3,mm1,177 + pshufw mm7,mm5,177 + pxor mm0,mm1 + pxor mm4,mm5 + pxor mm0,mm3 + pxor mm4,mm7 + pxor mm3,mm3 + pxor mm7,mm7 + pcmpgtb mm3,mm1 + pcmpgtb mm7,mm5 + pand mm3,mm2 + pand mm7,mm2 + paddb mm1,mm1 + paddb mm5,mm5 + pxor mm1,mm3 + pxor mm5,mm7 + pxor mm0,mm1 + pxor mm4,mm5 + movq mm3,mm1 + movq mm7,mm5 + pshufw mm2,mm1,177 + pshufw mm6,mm5,177 + pxor mm0,mm2 + pxor mm4,mm6 + pslld mm1,8 + pslld mm5,8 + psrld mm3,8 + psrld mm7,8 + movq mm2,QWORD PTR [edi] + movq mm6,QWORD PTR 8[edi] + pxor mm0,mm1 + pxor mm4,mm5 + pxor mm0,mm3 + pxor mm4,mm7 + mov eax,DWORD PTR [ebp-128] + pslld mm1,16 + pslld mm5,16 + mov ebx,DWORD PTR [ebp-64] + psrld mm3,16 + psrld mm7,16 + mov ecx,DWORD PTR [ebp] + pxor mm0,mm1 + pxor mm4,mm5 + mov edx,DWORD PTR 64[ebp] + pxor mm0,mm3 + pxor mm4,mm7 + pxor mm0,mm2 + pxor mm4,mm6 + jmp $L007loop +ALIGN 16 +$L008out: + pxor mm0,QWORD PTR [edi] + pxor mm4,QWORD PTR 8[edi] + ret +__sse_AES_decrypt_compact ENDP +ALIGN 16 +__x86_AES_decrypt PROC PRIVATE + mov DWORD PTR 20[esp],edi + xor eax,DWORD PTR [edi] + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + mov esi,DWORD PTR 240[edi] + lea esi,DWORD PTR [esi*1+esi-2] + lea esi,DWORD PTR [esi*8+edi] + mov DWORD PTR 24[esp],esi +ALIGN 16 +$L009loop: + mov esi,eax + and esi,255 + mov esi,DWORD PTR [esi*8+ebp] + movzx edi,dh + xor esi,DWORD PTR 3[edi*8+ebp] + mov edi,ecx + shr edi,16 + and edi,255 + xor esi,DWORD PTR 2[edi*8+ebp] + mov edi,ebx + shr edi,24 + xor esi,DWORD PTR 1[edi*8+ebp] + mov DWORD PTR 4[esp],esi + mov esi,ebx + and esi,255 + mov esi,DWORD PTR [esi*8+ebp] + movzx edi,ah + xor esi,DWORD PTR 3[edi*8+ebp] + mov edi,edx + shr edi,16 + and edi,255 + xor esi,DWORD PTR 2[edi*8+ebp] + mov edi,ecx + shr edi,24 + xor esi,DWORD PTR 1[edi*8+ebp] + mov DWORD PTR 8[esp],esi + mov esi,ecx + and esi,255 + mov esi,DWORD PTR [esi*8+ebp] + movzx edi,bh + xor esi,DWORD PTR 3[edi*8+ebp] + mov edi,eax + shr edi,16 + and edi,255 + xor esi,DWORD PTR 2[edi*8+ebp] + mov edi,edx + shr edi,24 + xor esi,DWORD PTR 1[edi*8+ebp] + mov edi,DWORD PTR 20[esp] + and edx,255 + mov edx,DWORD PTR [edx*8+ebp] + movzx ecx,ch + xor edx,DWORD PTR 3[ecx*8+ebp] + mov ecx,esi + shr ebx,16 + and ebx,255 + xor edx,DWORD PTR 2[ebx*8+ebp] + mov ebx,DWORD PTR 8[esp] + shr eax,24 + xor edx,DWORD PTR 1[eax*8+ebp] + mov eax,DWORD PTR 4[esp] + add edi,16 + xor eax,DWORD PTR [edi] + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + cmp edi,DWORD PTR 24[esp] + mov DWORD PTR 20[esp],edi + jb $L009loop + lea ebp,DWORD PTR 2176[ebp] + mov edi,DWORD PTR [ebp-128] + mov esi,DWORD PTR [ebp-96] + mov edi,DWORD PTR [ebp-64] + mov esi,DWORD PTR [ebp-32] + mov edi,DWORD PTR [ebp] + mov esi,DWORD PTR 32[ebp] + mov edi,DWORD PTR 64[ebp] + mov esi,DWORD PTR 96[ebp] + lea ebp,DWORD PTR [ebp-128] + mov esi,eax + and esi,255 + movzx esi,BYTE PTR [esi*1+ebp] + movzx edi,dh + movzx edi,BYTE PTR [edi*1+ebp] + shl edi,8 + xor esi,edi + mov edi,ecx + shr edi,16 + and edi,255 + movzx edi,BYTE PTR [edi*1+ebp] + shl edi,16 + xor esi,edi + mov edi,ebx + shr edi,24 + movzx edi,BYTE PTR [edi*1+ebp] + shl edi,24 + xor esi,edi + mov DWORD PTR 4[esp],esi + mov esi,ebx + and esi,255 + movzx esi,BYTE PTR [esi*1+ebp] + movzx edi,ah + movzx edi,BYTE PTR [edi*1+ebp] + shl edi,8 + xor esi,edi + mov edi,edx + shr edi,16 + and edi,255 + movzx edi,BYTE PTR [edi*1+ebp] + shl edi,16 + xor esi,edi + mov edi,ecx + shr edi,24 + movzx edi,BYTE PTR [edi*1+ebp] + shl edi,24 + xor esi,edi + mov DWORD PTR 8[esp],esi + mov esi,ecx + and esi,255 + movzx esi,BYTE PTR [esi*1+ebp] + movzx edi,bh + movzx edi,BYTE PTR [edi*1+ebp] + shl edi,8 + xor esi,edi + mov edi,eax + shr edi,16 + and edi,255 + movzx edi,BYTE PTR [edi*1+ebp] + shl edi,16 + xor esi,edi + mov edi,edx + shr edi,24 + movzx edi,BYTE PTR [edi*1+ebp] + shl edi,24 + xor esi,edi + mov edi,DWORD PTR 20[esp] + and edx,255 + movzx edx,BYTE PTR [edx*1+ebp] + movzx ecx,ch + movzx ecx,BYTE PTR [ecx*1+ebp] + shl ecx,8 + xor edx,ecx + mov ecx,esi + shr ebx,16 + and ebx,255 + movzx ebx,BYTE PTR [ebx*1+ebp] + shl ebx,16 + xor edx,ebx + mov ebx,DWORD PTR 8[esp] + shr eax,24 + movzx eax,BYTE PTR [eax*1+ebp] + shl eax,24 + xor edx,eax + mov eax,DWORD PTR 4[esp] + lea ebp,DWORD PTR [ebp-2048] + add edi,16 + xor eax,DWORD PTR [edi] + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + ret +ALIGN 64 +$LAES_Td:: +DD 1353184337,1353184337 +DD 1399144830,1399144830 +DD 3282310938,3282310938 +DD 2522752826,2522752826 +DD 3412831035,3412831035 +DD 4047871263,4047871263 +DD 2874735276,2874735276 +DD 2466505547,2466505547 +DD 1442459680,1442459680 +DD 4134368941,4134368941 +DD 2440481928,2440481928 +DD 625738485,625738485 +DD 4242007375,4242007375 +DD 3620416197,3620416197 +DD 2151953702,2151953702 +DD 2409849525,2409849525 +DD 1230680542,1230680542 +DD 1729870373,1729870373 +DD 2551114309,2551114309 +DD 3787521629,3787521629 +DD 41234371,41234371 +DD 317738113,317738113 +DD 2744600205,2744600205 +DD 3338261355,3338261355 +DD 3881799427,3881799427 +DD 2510066197,2510066197 +DD 3950669247,3950669247 +DD 3663286933,3663286933 +DD 763608788,763608788 +DD 3542185048,3542185048 +DD 694804553,694804553 +DD 1154009486,1154009486 +DD 1787413109,1787413109 +DD 2021232372,2021232372 +DD 1799248025,1799248025 +DD 3715217703,3715217703 +DD 3058688446,3058688446 +DD 397248752,397248752 +DD 1722556617,1722556617 +DD 3023752829,3023752829 +DD 407560035,407560035 +DD 2184256229,2184256229 +DD 1613975959,1613975959 +DD 1165972322,1165972322 +DD 3765920945,3765920945 +DD 2226023355,2226023355 +DD 480281086,480281086 +DD 2485848313,2485848313 +DD 1483229296,1483229296 +DD 436028815,436028815 +DD 2272059028,2272059028 +DD 3086515026,3086515026 +DD 601060267,601060267 +DD 3791801202,3791801202 +DD 1468997603,1468997603 +DD 715871590,715871590 +DD 120122290,120122290 +DD 63092015,63092015 +DD 2591802758,2591802758 +DD 2768779219,2768779219 +DD 4068943920,4068943920 +DD 2997206819,2997206819 +DD 3127509762,3127509762 +DD 1552029421,1552029421 +DD 723308426,723308426 +DD 2461301159,2461301159 +DD 4042393587,4042393587 +DD 2715969870,2715969870 +DD 3455375973,3455375973 +DD 3586000134,3586000134 +DD 526529745,526529745 +DD 2331944644,2331944644 +DD 2639474228,2639474228 +DD 2689987490,2689987490 +DD 853641733,853641733 +DD 1978398372,1978398372 +DD 971801355,971801355 +DD 2867814464,2867814464 +DD 111112542,111112542 +DD 1360031421,1360031421 +DD 4186579262,4186579262 +DD 1023860118,1023860118 +DD 2919579357,2919579357 +DD 1186850381,1186850381 +DD 3045938321,3045938321 +DD 90031217,90031217 +DD 1876166148,1876166148 +DD 4279586912,4279586912 +DD 620468249,620468249 +DD 2548678102,2548678102 +DD 3426959497,3426959497 +DD 2006899047,2006899047 +DD 3175278768,3175278768 +DD 2290845959,2290845959 +DD 945494503,945494503 +DD 3689859193,3689859193 +DD 1191869601,1191869601 +DD 3910091388,3910091388 +DD 3374220536,3374220536 +DD 0,0 +DD 2206629897,2206629897 +DD 1223502642,1223502642 +DD 2893025566,2893025566 +DD 1316117100,1316117100 +DD 4227796733,4227796733 +DD 1446544655,1446544655 +DD 517320253,517320253 +DD 658058550,658058550 +DD 1691946762,1691946762 +DD 564550760,564550760 +DD 3511966619,3511966619 +DD 976107044,976107044 +DD 2976320012,2976320012 +DD 266819475,266819475 +DD 3533106868,3533106868 +DD 2660342555,2660342555 +DD 1338359936,1338359936 +DD 2720062561,2720062561 +DD 1766553434,1766553434 +DD 370807324,370807324 +DD 179999714,179999714 +DD 3844776128,3844776128 +DD 1138762300,1138762300 +DD 488053522,488053522 +DD 185403662,185403662 +DD 2915535858,2915535858 +DD 3114841645,3114841645 +DD 3366526484,3366526484 +DD 2233069911,2233069911 +DD 1275557295,1275557295 +DD 3151862254,3151862254 +DD 4250959779,4250959779 +DD 2670068215,2670068215 +DD 3170202204,3170202204 +DD 3309004356,3309004356 +DD 880737115,880737115 +DD 1982415755,1982415755 +DD 3703972811,3703972811 +DD 1761406390,1761406390 +DD 1676797112,1676797112 +DD 3403428311,3403428311 +DD 277177154,277177154 +DD 1076008723,1076008723 +DD 538035844,538035844 +DD 2099530373,2099530373 +DD 4164795346,4164795346 +DD 288553390,288553390 +DD 1839278535,1839278535 +DD 1261411869,1261411869 +DD 4080055004,4080055004 +DD 3964831245,3964831245 +DD 3504587127,3504587127 +DD 1813426987,1813426987 +DD 2579067049,2579067049 +DD 4199060497,4199060497 +DD 577038663,577038663 +DD 3297574056,3297574056 +DD 440397984,440397984 +DD 3626794326,3626794326 +DD 4019204898,4019204898 +DD 3343796615,3343796615 +DD 3251714265,3251714265 +DD 4272081548,4272081548 +DD 906744984,906744984 +DD 3481400742,3481400742 +DD 685669029,685669029 +DD 646887386,646887386 +DD 2764025151,2764025151 +DD 3835509292,3835509292 +DD 227702864,227702864 +DD 2613862250,2613862250 +DD 1648787028,1648787028 +DD 3256061430,3256061430 +DD 3904428176,3904428176 +DD 1593260334,1593260334 +DD 4121936770,4121936770 +DD 3196083615,3196083615 +DD 2090061929,2090061929 +DD 2838353263,2838353263 +DD 3004310991,3004310991 +DD 999926984,999926984 +DD 2809993232,2809993232 +DD 1852021992,1852021992 +DD 2075868123,2075868123 +DD 158869197,158869197 +DD 4095236462,4095236462 +DD 28809964,28809964 +DD 2828685187,2828685187 +DD 1701746150,1701746150 +DD 2129067946,2129067946 +DD 147831841,147831841 +DD 3873969647,3873969647 +DD 3650873274,3650873274 +DD 3459673930,3459673930 +DD 3557400554,3557400554 +DD 3598495785,3598495785 +DD 2947720241,2947720241 +DD 824393514,824393514 +DD 815048134,815048134 +DD 3227951669,3227951669 +DD 935087732,935087732 +DD 2798289660,2798289660 +DD 2966458592,2966458592 +DD 366520115,366520115 +DD 1251476721,1251476721 +DD 4158319681,4158319681 +DD 240176511,240176511 +DD 804688151,804688151 +DD 2379631990,2379631990 +DD 1303441219,1303441219 +DD 1414376140,1414376140 +DD 3741619940,3741619940 +DD 3820343710,3820343710 +DD 461924940,461924940 +DD 3089050817,3089050817 +DD 2136040774,2136040774 +DD 82468509,82468509 +DD 1563790337,1563790337 +DD 1937016826,1937016826 +DD 776014843,776014843 +DD 1511876531,1511876531 +DD 1389550482,1389550482 +DD 861278441,861278441 +DD 323475053,323475053 +DD 2355222426,2355222426 +DD 2047648055,2047648055 +DD 2383738969,2383738969 +DD 2302415851,2302415851 +DD 3995576782,3995576782 +DD 902390199,902390199 +DD 3991215329,3991215329 +DD 1018251130,1018251130 +DD 1507840668,1507840668 +DD 1064563285,1064563285 +DD 2043548696,2043548696 +DD 3208103795,3208103795 +DD 3939366739,3939366739 +DD 1537932639,1537932639 +DD 342834655,342834655 +DD 2262516856,2262516856 +DD 2180231114,2180231114 +DD 1053059257,1053059257 +DD 741614648,741614648 +DD 1598071746,1598071746 +DD 1925389590,1925389590 +DD 203809468,203809468 +DD 2336832552,2336832552 +DD 1100287487,1100287487 +DD 1895934009,1895934009 +DD 3736275976,3736275976 +DD 2632234200,2632234200 +DD 2428589668,2428589668 +DD 1636092795,1636092795 +DD 1890988757,1890988757 +DD 1952214088,1952214088 +DD 1113045200,1113045200 +DB 82,9,106,213,48,54,165,56 +DB 191,64,163,158,129,243,215,251 +DB 124,227,57,130,155,47,255,135 +DB 52,142,67,68,196,222,233,203 +DB 84,123,148,50,166,194,35,61 +DB 238,76,149,11,66,250,195,78 +DB 8,46,161,102,40,217,36,178 +DB 118,91,162,73,109,139,209,37 +DB 114,248,246,100,134,104,152,22 +DB 212,164,92,204,93,101,182,146 +DB 108,112,72,80,253,237,185,218 +DB 94,21,70,87,167,141,157,132 +DB 144,216,171,0,140,188,211,10 +DB 247,228,88,5,184,179,69,6 +DB 208,44,30,143,202,63,15,2 +DB 193,175,189,3,1,19,138,107 +DB 58,145,17,65,79,103,220,234 +DB 151,242,207,206,240,180,230,115 +DB 150,172,116,34,231,173,53,133 +DB 226,249,55,232,28,117,223,110 +DB 71,241,26,113,29,41,197,137 +DB 111,183,98,14,170,24,190,27 +DB 252,86,62,75,198,210,121,32 +DB 154,219,192,254,120,205,90,244 +DB 31,221,168,51,136,7,199,49 +DB 177,18,16,89,39,128,236,95 +DB 96,81,127,169,25,181,74,13 +DB 45,229,122,159,147,201,156,239 +DB 160,224,59,77,174,42,245,176 +DB 200,235,187,60,131,83,153,97 +DB 23,43,4,126,186,119,214,38 +DB 225,105,20,99,85,33,12,125 +DB 82,9,106,213,48,54,165,56 +DB 191,64,163,158,129,243,215,251 +DB 124,227,57,130,155,47,255,135 +DB 52,142,67,68,196,222,233,203 +DB 84,123,148,50,166,194,35,61 +DB 238,76,149,11,66,250,195,78 +DB 8,46,161,102,40,217,36,178 +DB 118,91,162,73,109,139,209,37 +DB 114,248,246,100,134,104,152,22 +DB 212,164,92,204,93,101,182,146 +DB 108,112,72,80,253,237,185,218 +DB 94,21,70,87,167,141,157,132 +DB 144,216,171,0,140,188,211,10 +DB 247,228,88,5,184,179,69,6 +DB 208,44,30,143,202,63,15,2 +DB 193,175,189,3,1,19,138,107 +DB 58,145,17,65,79,103,220,234 +DB 151,242,207,206,240,180,230,115 +DB 150,172,116,34,231,173,53,133 +DB 226,249,55,232,28,117,223,110 +DB 71,241,26,113,29,41,197,137 +DB 111,183,98,14,170,24,190,27 +DB 252,86,62,75,198,210,121,32 +DB 154,219,192,254,120,205,90,244 +DB 31,221,168,51,136,7,199,49 +DB 177,18,16,89,39,128,236,95 +DB 96,81,127,169,25,181,74,13 +DB 45,229,122,159,147,201,156,239 +DB 160,224,59,77,174,42,245,176 +DB 200,235,187,60,131,83,153,97 +DB 23,43,4,126,186,119,214,38 +DB 225,105,20,99,85,33,12,125 +DB 82,9,106,213,48,54,165,56 +DB 191,64,163,158,129,243,215,251 +DB 124,227,57,130,155,47,255,135 +DB 52,142,67,68,196,222,233,203 +DB 84,123,148,50,166,194,35,61 +DB 238,76,149,11,66,250,195,78 +DB 8,46,161,102,40,217,36,178 +DB 118,91,162,73,109,139,209,37 +DB 114,248,246,100,134,104,152,22 +DB 212,164,92,204,93,101,182,146 +DB 108,112,72,80,253,237,185,218 +DB 94,21,70,87,167,141,157,132 +DB 144,216,171,0,140,188,211,10 +DB 247,228,88,5,184,179,69,6 +DB 208,44,30,143,202,63,15,2 +DB 193,175,189,3,1,19,138,107 +DB 58,145,17,65,79,103,220,234 +DB 151,242,207,206,240,180,230,115 +DB 150,172,116,34,231,173,53,133 +DB 226,249,55,232,28,117,223,110 +DB 71,241,26,113,29,41,197,137 +DB 111,183,98,14,170,24,190,27 +DB 252,86,62,75,198,210,121,32 +DB 154,219,192,254,120,205,90,244 +DB 31,221,168,51,136,7,199,49 +DB 177,18,16,89,39,128,236,95 +DB 96,81,127,169,25,181,74,13 +DB 45,229,122,159,147,201,156,239 +DB 160,224,59,77,174,42,245,176 +DB 200,235,187,60,131,83,153,97 +DB 23,43,4,126,186,119,214,38 +DB 225,105,20,99,85,33,12,125 +DB 82,9,106,213,48,54,165,56 +DB 191,64,163,158,129,243,215,251 +DB 124,227,57,130,155,47,255,135 +DB 52,142,67,68,196,222,233,203 +DB 84,123,148,50,166,194,35,61 +DB 238,76,149,11,66,250,195,78 +DB 8,46,161,102,40,217,36,178 +DB 118,91,162,73,109,139,209,37 +DB 114,248,246,100,134,104,152,22 +DB 212,164,92,204,93,101,182,146 +DB 108,112,72,80,253,237,185,218 +DB 94,21,70,87,167,141,157,132 +DB 144,216,171,0,140,188,211,10 +DB 247,228,88,5,184,179,69,6 +DB 208,44,30,143,202,63,15,2 +DB 193,175,189,3,1,19,138,107 +DB 58,145,17,65,79,103,220,234 +DB 151,242,207,206,240,180,230,115 +DB 150,172,116,34,231,173,53,133 +DB 226,249,55,232,28,117,223,110 +DB 71,241,26,113,29,41,197,137 +DB 111,183,98,14,170,24,190,27 +DB 252,86,62,75,198,210,121,32 +DB 154,219,192,254,120,205,90,244 +DB 31,221,168,51,136,7,199,49 +DB 177,18,16,89,39,128,236,95 +DB 96,81,127,169,25,181,74,13 +DB 45,229,122,159,147,201,156,239 +DB 160,224,59,77,174,42,245,176 +DB 200,235,187,60,131,83,153,97 +DB 23,43,4,126,186,119,214,38 +DB 225,105,20,99,85,33,12,125 +__x86_AES_decrypt ENDP +ALIGN 16 +_AES_decrypt PROC PUBLIC +$L_AES_decrypt_begin:: + push ebp + push ebx + push esi + push edi + mov esi,DWORD PTR 20[esp] + mov edi,DWORD PTR 28[esp] + mov eax,esp + sub esp,36 + and esp,-64 + lea ebx,DWORD PTR [edi-127] + sub ebx,esp + neg ebx + and ebx,960 + sub esp,ebx + add esp,4 + mov DWORD PTR 28[esp],eax + call $L010pic_point +$L010pic_point: + pop ebp + lea eax,DWORD PTR _OPENSSL_ia32cap_P + lea ebp,DWORD PTR ($LAES_Td-$L010pic_point)[ebp] + lea ebx,DWORD PTR 764[esp] + sub ebx,ebp + and ebx,768 + lea ebp,DWORD PTR 2176[ebx*1+ebp] + bt DWORD PTR [eax],25 + jnc $L011x86 + movq mm0,QWORD PTR [esi] + movq mm4,QWORD PTR 8[esi] + call __sse_AES_decrypt_compact + mov esp,DWORD PTR 28[esp] + mov esi,DWORD PTR 24[esp] + movq QWORD PTR [esi],mm0 + movq QWORD PTR 8[esi],mm4 + emms + pop edi + pop esi + pop ebx + pop ebp + ret +ALIGN 16 +$L011x86: + mov DWORD PTR 24[esp],ebp + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 12[esi] + call __x86_AES_decrypt_compact + mov esp,DWORD PTR 28[esp] + mov esi,DWORD PTR 24[esp] + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],ebx + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edx + pop edi + pop esi + pop ebx + pop ebp + ret +_AES_decrypt ENDP +ALIGN 16 +_AES_cbc_encrypt PROC PUBLIC +$L_AES_cbc_encrypt_begin:: + push ebp + push ebx + push esi + push edi + mov ecx,DWORD PTR 28[esp] + cmp ecx,0 + je $L012drop_out + call $L013pic_point +$L013pic_point: + pop ebp + lea eax,DWORD PTR _OPENSSL_ia32cap_P + cmp DWORD PTR 40[esp],0 + lea ebp,DWORD PTR ($LAES_Te-$L013pic_point)[ebp] + jne $L014picked_te + lea ebp,DWORD PTR ($LAES_Td-$LAES_Te)[ebp] +$L014picked_te: + pushfd + cld + cmp ecx,512 + jb $L015slow_way + test ecx,15 + jnz $L015slow_way + lea esi,DWORD PTR [esp-324] + and esi,-64 + mov eax,ebp + lea ebx,DWORD PTR 2304[ebp] + mov edx,esi + and eax,4095 + and ebx,4095 + and edx,4095 + cmp edx,ebx + jb $L016tbl_break_out + sub edx,ebx + sub esi,edx + jmp $L017tbl_ok +ALIGN 4 +$L016tbl_break_out: + sub edx,eax + and edx,4095 + add edx,384 + sub esi,edx +ALIGN 4 +$L017tbl_ok: + lea edx,DWORD PTR 24[esp] + xchg esp,esi + add esp,4 + mov DWORD PTR 24[esp],ebp + mov DWORD PTR 28[esp],esi + mov eax,DWORD PTR [edx] + mov ebx,DWORD PTR 4[edx] + mov edi,DWORD PTR 12[edx] + mov esi,DWORD PTR 16[edx] + mov edx,DWORD PTR 20[edx] + mov DWORD PTR 32[esp],eax + mov DWORD PTR 36[esp],ebx + mov DWORD PTR 40[esp],ecx + mov DWORD PTR 44[esp],edi + mov DWORD PTR 48[esp],esi + mov DWORD PTR 316[esp],0 + mov ebx,edi + mov ecx,61 + sub ebx,ebp + mov esi,edi + and ebx,4095 + lea edi,DWORD PTR 76[esp] + cmp ebx,2304 + jb $L018do_copy + cmp ebx,3852 + jb $L019skip_copy +ALIGN 4 +$L018do_copy: + mov DWORD PTR 44[esp],edi +DD 2784229001 +$L019skip_copy: + mov edi,16 +ALIGN 4 +$L020prefetch_tbl: + mov eax,DWORD PTR [ebp] + mov ebx,DWORD PTR 32[ebp] + mov ecx,DWORD PTR 64[ebp] + mov esi,DWORD PTR 96[ebp] + lea ebp,DWORD PTR 128[ebp] + sub edi,1 + jnz $L020prefetch_tbl + sub ebp,2048 + mov esi,DWORD PTR 32[esp] + mov edi,DWORD PTR 48[esp] + cmp edx,0 + je $L021fast_decrypt + mov eax,DWORD PTR [edi] + mov ebx,DWORD PTR 4[edi] +ALIGN 16 +$L022fast_enc_loop: + mov ecx,DWORD PTR 8[edi] + mov edx,DWORD PTR 12[edi] + xor eax,DWORD PTR [esi] + xor ebx,DWORD PTR 4[esi] + xor ecx,DWORD PTR 8[esi] + xor edx,DWORD PTR 12[esi] + mov edi,DWORD PTR 44[esp] + call __x86_AES_encrypt + mov esi,DWORD PTR 32[esp] + mov edi,DWORD PTR 36[esp] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + mov DWORD PTR 8[edi],ecx + mov DWORD PTR 12[edi],edx + lea esi,DWORD PTR 16[esi] + mov ecx,DWORD PTR 40[esp] + mov DWORD PTR 32[esp],esi + lea edx,DWORD PTR 16[edi] + mov DWORD PTR 36[esp],edx + sub ecx,16 + mov DWORD PTR 40[esp],ecx + jnz $L022fast_enc_loop + mov esi,DWORD PTR 48[esp] + mov ecx,DWORD PTR 8[edi] + mov edx,DWORD PTR 12[edi] + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],ebx + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edx + cmp DWORD PTR 316[esp],0 + mov edi,DWORD PTR 44[esp] + je $L023skip_ezero + mov ecx,60 + xor eax,eax +ALIGN 4 +DD 2884892297 +$L023skip_ezero: + mov esp,DWORD PTR 28[esp] + popfd +$L012drop_out: + pop edi + pop esi + pop ebx + pop ebp + ret + pushfd +ALIGN 16 +$L021fast_decrypt: + cmp esi,DWORD PTR 36[esp] + je $L024fast_dec_in_place + mov DWORD PTR 52[esp],edi +ALIGN 4 +ALIGN 16 +$L025fast_dec_loop: + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 12[esi] + mov edi,DWORD PTR 44[esp] + call __x86_AES_decrypt + mov edi,DWORD PTR 52[esp] + mov esi,DWORD PTR 40[esp] + xor eax,DWORD PTR [edi] + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + mov edi,DWORD PTR 36[esp] + mov esi,DWORD PTR 32[esp] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + mov DWORD PTR 8[edi],ecx + mov DWORD PTR 12[edi],edx + mov ecx,DWORD PTR 40[esp] + mov DWORD PTR 52[esp],esi + lea esi,DWORD PTR 16[esi] + mov DWORD PTR 32[esp],esi + lea edi,DWORD PTR 16[edi] + mov DWORD PTR 36[esp],edi + sub ecx,16 + mov DWORD PTR 40[esp],ecx + jnz $L025fast_dec_loop + mov edi,DWORD PTR 52[esp] + mov esi,DWORD PTR 48[esp] + mov eax,DWORD PTR [edi] + mov ebx,DWORD PTR 4[edi] + mov ecx,DWORD PTR 8[edi] + mov edx,DWORD PTR 12[edi] + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],ebx + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edx + jmp $L026fast_dec_out +ALIGN 16 +$L024fast_dec_in_place: +$L027fast_dec_in_place_loop: + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 12[esi] + lea edi,DWORD PTR 60[esp] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + mov DWORD PTR 8[edi],ecx + mov DWORD PTR 12[edi],edx + mov edi,DWORD PTR 44[esp] + call __x86_AES_decrypt + mov edi,DWORD PTR 48[esp] + mov esi,DWORD PTR 36[esp] + xor eax,DWORD PTR [edi] + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],ebx + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edx + lea esi,DWORD PTR 16[esi] + mov DWORD PTR 36[esp],esi + lea esi,DWORD PTR 60[esp] + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 12[esi] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + mov DWORD PTR 8[edi],ecx + mov DWORD PTR 12[edi],edx + mov esi,DWORD PTR 32[esp] + mov ecx,DWORD PTR 40[esp] + lea esi,DWORD PTR 16[esi] + mov DWORD PTR 32[esp],esi + sub ecx,16 + mov DWORD PTR 40[esp],ecx + jnz $L027fast_dec_in_place_loop +ALIGN 4 +$L026fast_dec_out: + cmp DWORD PTR 316[esp],0 + mov edi,DWORD PTR 44[esp] + je $L028skip_dzero + mov ecx,60 + xor eax,eax +ALIGN 4 +DD 2884892297 +$L028skip_dzero: + mov esp,DWORD PTR 28[esp] + popfd + pop edi + pop esi + pop ebx + pop ebp + ret + pushfd +ALIGN 16 +$L015slow_way: + mov eax,DWORD PTR [eax] + mov edi,DWORD PTR 36[esp] + lea esi,DWORD PTR [esp-80] + and esi,-64 + lea ebx,DWORD PTR [edi-143] + sub ebx,esi + neg ebx + and ebx,960 + sub esi,ebx + lea ebx,DWORD PTR 768[esi] + sub ebx,ebp + and ebx,768 + lea ebp,DWORD PTR 2176[ebx*1+ebp] + lea edx,DWORD PTR 24[esp] + xchg esp,esi + add esp,4 + mov DWORD PTR 24[esp],ebp + mov DWORD PTR 28[esp],esi + mov DWORD PTR 52[esp],eax + mov eax,DWORD PTR [edx] + mov ebx,DWORD PTR 4[edx] + mov esi,DWORD PTR 16[edx] + mov edx,DWORD PTR 20[edx] + mov DWORD PTR 32[esp],eax + mov DWORD PTR 36[esp],ebx + mov DWORD PTR 40[esp],ecx + mov DWORD PTR 44[esp],edi + mov DWORD PTR 48[esp],esi + mov edi,esi + mov esi,eax + cmp edx,0 + je $L029slow_decrypt + cmp ecx,16 + mov edx,ebx + jb $L030slow_enc_tail + bt DWORD PTR 52[esp],25 + jnc $L031slow_enc_x86 + movq mm0,QWORD PTR [edi] + movq mm4,QWORD PTR 8[edi] +ALIGN 16 +$L032slow_enc_loop_sse: + pxor mm0,QWORD PTR [esi] + pxor mm4,QWORD PTR 8[esi] + mov edi,DWORD PTR 44[esp] + call __sse_AES_encrypt_compact + mov esi,DWORD PTR 32[esp] + mov edi,DWORD PTR 36[esp] + mov ecx,DWORD PTR 40[esp] + movq QWORD PTR [edi],mm0 + movq QWORD PTR 8[edi],mm4 + lea esi,DWORD PTR 16[esi] + mov DWORD PTR 32[esp],esi + lea edx,DWORD PTR 16[edi] + mov DWORD PTR 36[esp],edx + sub ecx,16 + cmp ecx,16 + mov DWORD PTR 40[esp],ecx + jae $L032slow_enc_loop_sse + test ecx,15 + jnz $L030slow_enc_tail + mov esi,DWORD PTR 48[esp] + movq QWORD PTR [esi],mm0 + movq QWORD PTR 8[esi],mm4 + emms + mov esp,DWORD PTR 28[esp] + popfd + pop edi + pop esi + pop ebx + pop ebp + ret + pushfd +ALIGN 16 +$L031slow_enc_x86: + mov eax,DWORD PTR [edi] + mov ebx,DWORD PTR 4[edi] +ALIGN 4 +$L033slow_enc_loop_x86: + mov ecx,DWORD PTR 8[edi] + mov edx,DWORD PTR 12[edi] + xor eax,DWORD PTR [esi] + xor ebx,DWORD PTR 4[esi] + xor ecx,DWORD PTR 8[esi] + xor edx,DWORD PTR 12[esi] + mov edi,DWORD PTR 44[esp] + call __x86_AES_encrypt_compact + mov esi,DWORD PTR 32[esp] + mov edi,DWORD PTR 36[esp] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + mov DWORD PTR 8[edi],ecx + mov DWORD PTR 12[edi],edx + mov ecx,DWORD PTR 40[esp] + lea esi,DWORD PTR 16[esi] + mov DWORD PTR 32[esp],esi + lea edx,DWORD PTR 16[edi] + mov DWORD PTR 36[esp],edx + sub ecx,16 + cmp ecx,16 + mov DWORD PTR 40[esp],ecx + jae $L033slow_enc_loop_x86 + test ecx,15 + jnz $L030slow_enc_tail + mov esi,DWORD PTR 48[esp] + mov ecx,DWORD PTR 8[edi] + mov edx,DWORD PTR 12[edi] + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],ebx + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edx + mov esp,DWORD PTR 28[esp] + popfd + pop edi + pop esi + pop ebx + pop ebp + ret + pushfd +ALIGN 16 +$L030slow_enc_tail: + emms + mov edi,edx + mov ebx,16 + sub ebx,ecx + cmp edi,esi + je $L034enc_in_place +ALIGN 4 +DD 2767451785 + jmp $L035enc_skip_in_place +$L034enc_in_place: + lea edi,DWORD PTR [ecx*1+edi] +$L035enc_skip_in_place: + mov ecx,ebx + xor eax,eax +ALIGN 4 +DD 2868115081 + mov edi,DWORD PTR 48[esp] + mov esi,edx + mov eax,DWORD PTR [edi] + mov ebx,DWORD PTR 4[edi] + mov DWORD PTR 40[esp],16 + jmp $L033slow_enc_loop_x86 +ALIGN 16 +$L029slow_decrypt: + bt DWORD PTR 52[esp],25 + jnc $L036slow_dec_loop_x86 +ALIGN 4 +$L037slow_dec_loop_sse: + movq mm0,QWORD PTR [esi] + movq mm4,QWORD PTR 8[esi] + mov edi,DWORD PTR 44[esp] + call __sse_AES_decrypt_compact + mov esi,DWORD PTR 32[esp] + lea eax,DWORD PTR 60[esp] + mov ebx,DWORD PTR 36[esp] + mov ecx,DWORD PTR 40[esp] + mov edi,DWORD PTR 48[esp] + movq mm1,QWORD PTR [esi] + movq mm5,QWORD PTR 8[esi] + pxor mm0,QWORD PTR [edi] + pxor mm4,QWORD PTR 8[edi] + movq QWORD PTR [edi],mm1 + movq QWORD PTR 8[edi],mm5 + sub ecx,16 + jc $L038slow_dec_partial_sse + movq QWORD PTR [ebx],mm0 + movq QWORD PTR 8[ebx],mm4 + lea ebx,DWORD PTR 16[ebx] + mov DWORD PTR 36[esp],ebx + lea esi,DWORD PTR 16[esi] + mov DWORD PTR 32[esp],esi + mov DWORD PTR 40[esp],ecx + jnz $L037slow_dec_loop_sse + emms + mov esp,DWORD PTR 28[esp] + popfd + pop edi + pop esi + pop ebx + pop ebp + ret + pushfd +ALIGN 16 +$L038slow_dec_partial_sse: + movq QWORD PTR [eax],mm0 + movq QWORD PTR 8[eax],mm4 + emms + add ecx,16 + mov edi,ebx + mov esi,eax +ALIGN 4 +DD 2767451785 + mov esp,DWORD PTR 28[esp] + popfd + pop edi + pop esi + pop ebx + pop ebp + ret + pushfd +ALIGN 16 +$L036slow_dec_loop_x86: + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 12[esi] + lea edi,DWORD PTR 60[esp] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + mov DWORD PTR 8[edi],ecx + mov DWORD PTR 12[edi],edx + mov edi,DWORD PTR 44[esp] + call __x86_AES_decrypt_compact + mov edi,DWORD PTR 48[esp] + mov esi,DWORD PTR 40[esp] + xor eax,DWORD PTR [edi] + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + sub esi,16 + jc $L039slow_dec_partial_x86 + mov DWORD PTR 40[esp],esi + mov esi,DWORD PTR 36[esp] + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],ebx + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edx + lea esi,DWORD PTR 16[esi] + mov DWORD PTR 36[esp],esi + lea esi,DWORD PTR 60[esp] + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 12[esi] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + mov DWORD PTR 8[edi],ecx + mov DWORD PTR 12[edi],edx + mov esi,DWORD PTR 32[esp] + lea esi,DWORD PTR 16[esi] + mov DWORD PTR 32[esp],esi + jnz $L036slow_dec_loop_x86 + mov esp,DWORD PTR 28[esp] + popfd + pop edi + pop esi + pop ebx + pop ebp + ret + pushfd +ALIGN 16 +$L039slow_dec_partial_x86: + lea esi,DWORD PTR 60[esp] + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],ebx + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edx + mov esi,DWORD PTR 32[esp] + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 12[esi] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + mov DWORD PTR 8[edi],ecx + mov DWORD PTR 12[edi],edx + mov ecx,DWORD PTR 40[esp] + mov edi,DWORD PTR 36[esp] + lea esi,DWORD PTR 60[esp] +ALIGN 4 +DD 2767451785 + mov esp,DWORD PTR 28[esp] + popfd + pop edi + pop esi + pop ebx + pop ebp + ret +_AES_cbc_encrypt ENDP +ALIGN 16 +__x86_AES_set_encrypt_key PROC PRIVATE + push ebp + push ebx + push esi + push edi + mov esi,DWORD PTR 24[esp] + mov edi,DWORD PTR 32[esp] + test esi,-1 + jz $L040badpointer + test edi,-1 + jz $L040badpointer + call $L041pic_point +$L041pic_point: + pop ebp + lea ebp,DWORD PTR ($LAES_Te-$L041pic_point)[ebp] + lea ebp,DWORD PTR 2176[ebp] + mov eax,DWORD PTR [ebp-128] + mov ebx,DWORD PTR [ebp-96] + mov ecx,DWORD PTR [ebp-64] + mov edx,DWORD PTR [ebp-32] + mov eax,DWORD PTR [ebp] + mov ebx,DWORD PTR 32[ebp] + mov ecx,DWORD PTR 64[ebp] + mov edx,DWORD PTR 96[ebp] + mov ecx,DWORD PTR 28[esp] + cmp ecx,128 + je $L04210rounds + cmp ecx,192 + je $L04312rounds + cmp ecx,256 + je $L04414rounds + mov eax,-2 + jmp $L045exit +$L04210rounds: + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 12[esi] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + mov DWORD PTR 8[edi],ecx + mov DWORD PTR 12[edi],edx + xor ecx,ecx + jmp $L04610shortcut +ALIGN 4 +$L04710loop: + mov eax,DWORD PTR [edi] + mov edx,DWORD PTR 12[edi] +$L04610shortcut: + movzx esi,dl + movzx ebx,BYTE PTR [esi*1+ebp-128] + movzx esi,dh + shl ebx,24 + xor eax,ebx + movzx ebx,BYTE PTR [esi*1+ebp-128] + shr edx,16 + movzx esi,dl + xor eax,ebx + movzx ebx,BYTE PTR [esi*1+ebp-128] + movzx esi,dh + shl ebx,8 + xor eax,ebx + movzx ebx,BYTE PTR [esi*1+ebp-128] + shl ebx,16 + xor eax,ebx + xor eax,DWORD PTR 896[ecx*4+ebp] + mov DWORD PTR 16[edi],eax + xor eax,DWORD PTR 4[edi] + mov DWORD PTR 20[edi],eax + xor eax,DWORD PTR 8[edi] + mov DWORD PTR 24[edi],eax + xor eax,DWORD PTR 12[edi] + mov DWORD PTR 28[edi],eax + inc ecx + add edi,16 + cmp ecx,10 + jl $L04710loop + mov DWORD PTR 80[edi],10 + xor eax,eax + jmp $L045exit +$L04312rounds: + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 12[esi] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + mov DWORD PTR 8[edi],ecx + mov DWORD PTR 12[edi],edx + mov ecx,DWORD PTR 16[esi] + mov edx,DWORD PTR 20[esi] + mov DWORD PTR 16[edi],ecx + mov DWORD PTR 20[edi],edx + xor ecx,ecx + jmp $L04812shortcut +ALIGN 4 +$L04912loop: + mov eax,DWORD PTR [edi] + mov edx,DWORD PTR 20[edi] +$L04812shortcut: + movzx esi,dl + movzx ebx,BYTE PTR [esi*1+ebp-128] + movzx esi,dh + shl ebx,24 + xor eax,ebx + movzx ebx,BYTE PTR [esi*1+ebp-128] + shr edx,16 + movzx esi,dl + xor eax,ebx + movzx ebx,BYTE PTR [esi*1+ebp-128] + movzx esi,dh + shl ebx,8 + xor eax,ebx + movzx ebx,BYTE PTR [esi*1+ebp-128] + shl ebx,16 + xor eax,ebx + xor eax,DWORD PTR 896[ecx*4+ebp] + mov DWORD PTR 24[edi],eax + xor eax,DWORD PTR 4[edi] + mov DWORD PTR 28[edi],eax + xor eax,DWORD PTR 8[edi] + mov DWORD PTR 32[edi],eax + xor eax,DWORD PTR 12[edi] + mov DWORD PTR 36[edi],eax + cmp ecx,7 + je $L05012break + inc ecx + xor eax,DWORD PTR 16[edi] + mov DWORD PTR 40[edi],eax + xor eax,DWORD PTR 20[edi] + mov DWORD PTR 44[edi],eax + add edi,24 + jmp $L04912loop +$L05012break: + mov DWORD PTR 72[edi],12 + xor eax,eax + jmp $L045exit +$L04414rounds: + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 12[esi] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + mov DWORD PTR 8[edi],ecx + mov DWORD PTR 12[edi],edx + mov eax,DWORD PTR 16[esi] + mov ebx,DWORD PTR 20[esi] + mov ecx,DWORD PTR 24[esi] + mov edx,DWORD PTR 28[esi] + mov DWORD PTR 16[edi],eax + mov DWORD PTR 20[edi],ebx + mov DWORD PTR 24[edi],ecx + mov DWORD PTR 28[edi],edx + xor ecx,ecx + jmp $L05114shortcut +ALIGN 4 +$L05214loop: + mov edx,DWORD PTR 28[edi] +$L05114shortcut: + mov eax,DWORD PTR [edi] + movzx esi,dl + movzx ebx,BYTE PTR [esi*1+ebp-128] + movzx esi,dh + shl ebx,24 + xor eax,ebx + movzx ebx,BYTE PTR [esi*1+ebp-128] + shr edx,16 + movzx esi,dl + xor eax,ebx + movzx ebx,BYTE PTR [esi*1+ebp-128] + movzx esi,dh + shl ebx,8 + xor eax,ebx + movzx ebx,BYTE PTR [esi*1+ebp-128] + shl ebx,16 + xor eax,ebx + xor eax,DWORD PTR 896[ecx*4+ebp] + mov DWORD PTR 32[edi],eax + xor eax,DWORD PTR 4[edi] + mov DWORD PTR 36[edi],eax + xor eax,DWORD PTR 8[edi] + mov DWORD PTR 40[edi],eax + xor eax,DWORD PTR 12[edi] + mov DWORD PTR 44[edi],eax + cmp ecx,6 + je $L05314break + inc ecx + mov edx,eax + mov eax,DWORD PTR 16[edi] + movzx esi,dl + movzx ebx,BYTE PTR [esi*1+ebp-128] + movzx esi,dh + xor eax,ebx + movzx ebx,BYTE PTR [esi*1+ebp-128] + shr edx,16 + shl ebx,8 + movzx esi,dl + xor eax,ebx + movzx ebx,BYTE PTR [esi*1+ebp-128] + movzx esi,dh + shl ebx,16 + xor eax,ebx + movzx ebx,BYTE PTR [esi*1+ebp-128] + shl ebx,24 + xor eax,ebx + mov DWORD PTR 48[edi],eax + xor eax,DWORD PTR 20[edi] + mov DWORD PTR 52[edi],eax + xor eax,DWORD PTR 24[edi] + mov DWORD PTR 56[edi],eax + xor eax,DWORD PTR 28[edi] + mov DWORD PTR 60[edi],eax + add edi,32 + jmp $L05214loop +$L05314break: + mov DWORD PTR 48[edi],14 + xor eax,eax + jmp $L045exit +$L040badpointer: + mov eax,-1 +$L045exit: + pop edi + pop esi + pop ebx + pop ebp + ret +__x86_AES_set_encrypt_key ENDP +ALIGN 16 +_AES_set_encrypt_key PROC PUBLIC +$L_AES_set_encrypt_key_begin:: + call __x86_AES_set_encrypt_key + ret +_AES_set_encrypt_key ENDP +ALIGN 16 +_AES_set_decrypt_key PROC PUBLIC +$L_AES_set_decrypt_key_begin:: + call __x86_AES_set_encrypt_key + cmp eax,0 + je $L054proceed + ret +$L054proceed: + push ebp + push ebx + push esi + push edi + mov esi,DWORD PTR 28[esp] + mov ecx,DWORD PTR 240[esi] + lea ecx,DWORD PTR [ecx*4] + lea edi,DWORD PTR [ecx*4+esi] +ALIGN 4 +$L055invert: + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR [edi] + mov edx,DWORD PTR 4[edi] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + mov DWORD PTR [esi],ecx + mov DWORD PTR 4[esi],edx + mov eax,DWORD PTR 8[esi] + mov ebx,DWORD PTR 12[esi] + mov ecx,DWORD PTR 8[edi] + mov edx,DWORD PTR 12[edi] + mov DWORD PTR 8[edi],eax + mov DWORD PTR 12[edi],ebx + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edx + add esi,16 + sub edi,16 + cmp esi,edi + jne $L055invert + mov edi,DWORD PTR 28[esp] + mov esi,DWORD PTR 240[edi] + lea esi,DWORD PTR [esi*1+esi-2] + lea esi,DWORD PTR [esi*8+edi] + mov DWORD PTR 28[esp],esi + mov eax,DWORD PTR 16[edi] +ALIGN 4 +$L056permute: + add edi,16 + mov esi,eax + and esi,2155905152 + mov ebp,esi + shr ebp,7 + lea ebx,DWORD PTR [eax*1+eax] + sub esi,ebp + and ebx,4278124286 + and esi,454761243 + xor esi,ebx + mov ebx,esi + and esi,2155905152 + mov ebp,esi + shr ebp,7 + lea ecx,DWORD PTR [ebx*1+ebx] + sub esi,ebp + and ecx,4278124286 + and esi,454761243 + xor ebx,eax + xor esi,ecx + mov ecx,esi + and esi,2155905152 + mov ebp,esi + shr ebp,7 + lea edx,DWORD PTR [ecx*1+ecx] + xor ecx,eax + sub esi,ebp + and edx,4278124286 + and esi,454761243 + rol eax,8 + xor edx,esi + mov ebp,DWORD PTR 4[edi] + xor eax,ebx + xor ebx,edx + xor eax,ecx + rol ebx,24 + xor ecx,edx + xor eax,edx + rol ecx,16 + xor eax,ebx + rol edx,8 + xor eax,ecx + mov ebx,ebp + xor eax,edx + mov DWORD PTR [edi],eax + mov esi,ebx + and esi,2155905152 + mov ebp,esi + shr ebp,7 + lea ecx,DWORD PTR [ebx*1+ebx] + sub esi,ebp + and ecx,4278124286 + and esi,454761243 + xor esi,ecx + mov ecx,esi + and esi,2155905152 + mov ebp,esi + shr ebp,7 + lea edx,DWORD PTR [ecx*1+ecx] + sub esi,ebp + and edx,4278124286 + and esi,454761243 + xor ecx,ebx + xor esi,edx + mov edx,esi + and esi,2155905152 + mov ebp,esi + shr ebp,7 + lea eax,DWORD PTR [edx*1+edx] + xor edx,ebx + sub esi,ebp + and eax,4278124286 + and esi,454761243 + rol ebx,8 + xor eax,esi + mov ebp,DWORD PTR 8[edi] + xor ebx,ecx + xor ecx,eax + xor ebx,edx + rol ecx,24 + xor edx,eax + xor ebx,eax + rol edx,16 + xor ebx,ecx + rol eax,8 + xor ebx,edx + mov ecx,ebp + xor ebx,eax + mov DWORD PTR 4[edi],ebx + mov esi,ecx + and esi,2155905152 + mov ebp,esi + shr ebp,7 + lea edx,DWORD PTR [ecx*1+ecx] + sub esi,ebp + and edx,4278124286 + and esi,454761243 + xor esi,edx + mov edx,esi + and esi,2155905152 + mov ebp,esi + shr ebp,7 + lea eax,DWORD PTR [edx*1+edx] + sub esi,ebp + and eax,4278124286 + and esi,454761243 + xor edx,ecx + xor esi,eax + mov eax,esi + and esi,2155905152 + mov ebp,esi + shr ebp,7 + lea ebx,DWORD PTR [eax*1+eax] + xor eax,ecx + sub esi,ebp + and ebx,4278124286 + and esi,454761243 + rol ecx,8 + xor ebx,esi + mov ebp,DWORD PTR 12[edi] + xor ecx,edx + xor edx,ebx + xor ecx,eax + rol edx,24 + xor eax,ebx + xor ecx,ebx + rol eax,16 + xor ecx,edx + rol ebx,8 + xor ecx,eax + mov edx,ebp + xor ecx,ebx + mov DWORD PTR 8[edi],ecx + mov esi,edx + and esi,2155905152 + mov ebp,esi + shr ebp,7 + lea eax,DWORD PTR [edx*1+edx] + sub esi,ebp + and eax,4278124286 + and esi,454761243 + xor esi,eax + mov eax,esi + and esi,2155905152 + mov ebp,esi + shr ebp,7 + lea ebx,DWORD PTR [eax*1+eax] + sub esi,ebp + and ebx,4278124286 + and esi,454761243 + xor eax,edx + xor esi,ebx + mov ebx,esi + and esi,2155905152 + mov ebp,esi + shr ebp,7 + lea ecx,DWORD PTR [ebx*1+ebx] + xor ebx,edx + sub esi,ebp + and ecx,4278124286 + and esi,454761243 + rol edx,8 + xor ecx,esi + mov ebp,DWORD PTR 16[edi] + xor edx,eax + xor eax,ecx + xor edx,ebx + rol eax,24 + xor ebx,ecx + xor edx,ecx + rol ebx,16 + xor edx,eax + rol ecx,8 + xor edx,ebx + mov eax,ebp + xor edx,ecx + mov DWORD PTR 12[edi],edx + cmp edi,DWORD PTR 28[esp] + jb $L056permute + xor eax,eax + pop edi + pop esi + pop ebx + pop ebp + ret +_AES_set_decrypt_key ENDP +DB 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89 +DB 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 +DB 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.text$ ENDS +.bss SEGMENT 'BSS' +COMM _OPENSSL_ia32cap_P:DWORD +.bss ENDS +END diff --git a/deps/openssl/asm/x86-win32-masm/bf/bf-686.asm b/deps/openssl/asm/x86-win32-masm/bf/bf-686.asm new file mode 100644 index 0000000000..a802e7292f --- /dev/null +++ b/deps/openssl/asm/x86-win32-masm/bf/bf-686.asm @@ -0,0 +1,907 @@ +TITLE bf-686.asm +IF @Version LT 800 +ECHO MASM version 8.00 or later is strongly recommended. +ENDIF +.586 +.MODEL FLAT +OPTION DOTNAME +IF @Version LT 800 +.text$ SEGMENT PAGE 'CODE' +ELSE +.text$ SEGMENT ALIGN(64) 'CODE' +ENDIF +ALIGN 16 +_BF_encrypt PROC PUBLIC +$L_BF_encrypt_begin:: + push ebp + push ebx + push esi + push edi + ; + + ; Load the 2 words + mov eax,DWORD PTR 20[esp] + mov ecx,DWORD PTR [eax] + mov edx,DWORD PTR 4[eax] + ; + + ; P pointer, s and enc flag + mov edi,DWORD PTR 24[esp] + xor eax,eax + xor ebx,ebx + xor ecx,DWORD PTR [edi] + ; + + ; Round 0 + ror ecx,16 + mov esi,DWORD PTR 4[edi] + mov al,ch + mov bl,cl + ror ecx,16 + xor edx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,ch + mov bl,cl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor edx,esi + ; + + ; Round 1 + ror edx,16 + mov esi,DWORD PTR 8[edi] + mov al,dh + mov bl,dl + ror edx,16 + xor ecx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,dh + mov bl,dl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor ecx,esi + ; + + ; Round 2 + ror ecx,16 + mov esi,DWORD PTR 12[edi] + mov al,ch + mov bl,cl + ror ecx,16 + xor edx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,ch + mov bl,cl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor edx,esi + ; + + ; Round 3 + ror edx,16 + mov esi,DWORD PTR 16[edi] + mov al,dh + mov bl,dl + ror edx,16 + xor ecx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,dh + mov bl,dl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor ecx,esi + ; + + ; Round 4 + ror ecx,16 + mov esi,DWORD PTR 20[edi] + mov al,ch + mov bl,cl + ror ecx,16 + xor edx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,ch + mov bl,cl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor edx,esi + ; + + ; Round 5 + ror edx,16 + mov esi,DWORD PTR 24[edi] + mov al,dh + mov bl,dl + ror edx,16 + xor ecx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,dh + mov bl,dl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor ecx,esi + ; + + ; Round 6 + ror ecx,16 + mov esi,DWORD PTR 28[edi] + mov al,ch + mov bl,cl + ror ecx,16 + xor edx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,ch + mov bl,cl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor edx,esi + ; + + ; Round 7 + ror edx,16 + mov esi,DWORD PTR 32[edi] + mov al,dh + mov bl,dl + ror edx,16 + xor ecx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,dh + mov bl,dl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor ecx,esi + ; + + ; Round 8 + ror ecx,16 + mov esi,DWORD PTR 36[edi] + mov al,ch + mov bl,cl + ror ecx,16 + xor edx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,ch + mov bl,cl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor edx,esi + ; + + ; Round 9 + ror edx,16 + mov esi,DWORD PTR 40[edi] + mov al,dh + mov bl,dl + ror edx,16 + xor ecx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,dh + mov bl,dl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor ecx,esi + ; + + ; Round 10 + ror ecx,16 + mov esi,DWORD PTR 44[edi] + mov al,ch + mov bl,cl + ror ecx,16 + xor edx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,ch + mov bl,cl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor edx,esi + ; + + ; Round 11 + ror edx,16 + mov esi,DWORD PTR 48[edi] + mov al,dh + mov bl,dl + ror edx,16 + xor ecx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,dh + mov bl,dl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor ecx,esi + ; + + ; Round 12 + ror ecx,16 + mov esi,DWORD PTR 52[edi] + mov al,ch + mov bl,cl + ror ecx,16 + xor edx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,ch + mov bl,cl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor edx,esi + ; + + ; Round 13 + ror edx,16 + mov esi,DWORD PTR 56[edi] + mov al,dh + mov bl,dl + ror edx,16 + xor ecx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,dh + mov bl,dl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor ecx,esi + ; + + ; Round 14 + ror ecx,16 + mov esi,DWORD PTR 60[edi] + mov al,ch + mov bl,cl + ror ecx,16 + xor edx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,ch + mov bl,cl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor edx,esi + ; + + ; Round 15 + ror edx,16 + mov esi,DWORD PTR 64[edi] + mov al,dh + mov bl,dl + ror edx,16 + xor ecx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,dh + mov bl,dl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor ecx,esi + xor edx,DWORD PTR 68[edi] + mov eax,DWORD PTR 20[esp] + mov DWORD PTR [eax],edx + mov DWORD PTR 4[eax],ecx + pop edi + pop esi + pop ebx + pop ebp + ret +_BF_encrypt ENDP +ALIGN 16 +_BF_decrypt PROC PUBLIC +$L_BF_decrypt_begin:: + push ebp + push ebx + push esi + push edi + ; + + ; Load the 2 words + mov eax,DWORD PTR 20[esp] + mov ecx,DWORD PTR [eax] + mov edx,DWORD PTR 4[eax] + ; + + ; P pointer, s and enc flag + mov edi,DWORD PTR 24[esp] + xor eax,eax + xor ebx,ebx + xor ecx,DWORD PTR 68[edi] + ; + + ; Round 16 + ror ecx,16 + mov esi,DWORD PTR 64[edi] + mov al,ch + mov bl,cl + ror ecx,16 + xor edx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,ch + mov bl,cl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor edx,esi + ; + + ; Round 15 + ror edx,16 + mov esi,DWORD PTR 60[edi] + mov al,dh + mov bl,dl + ror edx,16 + xor ecx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,dh + mov bl,dl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor ecx,esi + ; + + ; Round 14 + ror ecx,16 + mov esi,DWORD PTR 56[edi] + mov al,ch + mov bl,cl + ror ecx,16 + xor edx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,ch + mov bl,cl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor edx,esi + ; + + ; Round 13 + ror edx,16 + mov esi,DWORD PTR 52[edi] + mov al,dh + mov bl,dl + ror edx,16 + xor ecx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,dh + mov bl,dl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor ecx,esi + ; + + ; Round 12 + ror ecx,16 + mov esi,DWORD PTR 48[edi] + mov al,ch + mov bl,cl + ror ecx,16 + xor edx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,ch + mov bl,cl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor edx,esi + ; + + ; Round 11 + ror edx,16 + mov esi,DWORD PTR 44[edi] + mov al,dh + mov bl,dl + ror edx,16 + xor ecx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,dh + mov bl,dl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor ecx,esi + ; + + ; Round 10 + ror ecx,16 + mov esi,DWORD PTR 40[edi] + mov al,ch + mov bl,cl + ror ecx,16 + xor edx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,ch + mov bl,cl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor edx,esi + ; + + ; Round 9 + ror edx,16 + mov esi,DWORD PTR 36[edi] + mov al,dh + mov bl,dl + ror edx,16 + xor ecx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,dh + mov bl,dl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor ecx,esi + ; + + ; Round 8 + ror ecx,16 + mov esi,DWORD PTR 32[edi] + mov al,ch + mov bl,cl + ror ecx,16 + xor edx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,ch + mov bl,cl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor edx,esi + ; + + ; Round 7 + ror edx,16 + mov esi,DWORD PTR 28[edi] + mov al,dh + mov bl,dl + ror edx,16 + xor ecx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,dh + mov bl,dl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor ecx,esi + ; + + ; Round 6 + ror ecx,16 + mov esi,DWORD PTR 24[edi] + mov al,ch + mov bl,cl + ror ecx,16 + xor edx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,ch + mov bl,cl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor edx,esi + ; + + ; Round 5 + ror edx,16 + mov esi,DWORD PTR 20[edi] + mov al,dh + mov bl,dl + ror edx,16 + xor ecx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,dh + mov bl,dl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor ecx,esi + ; + + ; Round 4 + ror ecx,16 + mov esi,DWORD PTR 16[edi] + mov al,ch + mov bl,cl + ror ecx,16 + xor edx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,ch + mov bl,cl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor edx,esi + ; + + ; Round 3 + ror edx,16 + mov esi,DWORD PTR 12[edi] + mov al,dh + mov bl,dl + ror edx,16 + xor ecx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,dh + mov bl,dl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor ecx,esi + ; + + ; Round 2 + ror ecx,16 + mov esi,DWORD PTR 8[edi] + mov al,ch + mov bl,cl + ror ecx,16 + xor edx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,ch + mov bl,cl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor edx,esi + ; + + ; Round 1 + ror edx,16 + mov esi,DWORD PTR 4[edi] + mov al,dh + mov bl,dl + ror edx,16 + xor ecx,esi + mov esi,DWORD PTR 72[eax*4+edi] + mov ebp,DWORD PTR 1096[ebx*4+edi] + mov al,dh + mov bl,dl + add esi,ebp + mov eax,DWORD PTR 2120[eax*4+edi] + xor esi,eax + mov ebp,DWORD PTR 3144[ebx*4+edi] + add esi,ebp + xor eax,eax + xor ecx,esi + xor edx,DWORD PTR [edi] + mov eax,DWORD PTR 20[esp] + mov DWORD PTR [eax],edx + mov DWORD PTR 4[eax],ecx + pop edi + pop esi + pop ebx + pop ebp + ret +_BF_decrypt ENDP +ALIGN 16 +_BF_cbc_encrypt PROC PUBLIC +$L_BF_cbc_encrypt_begin:: + ; + + push ebp + push ebx + push esi + push edi + mov ebp,DWORD PTR 28[esp] + ; getting iv ptr from parameter 4 + mov ebx,DWORD PTR 36[esp] + mov esi,DWORD PTR [ebx] + mov edi,DWORD PTR 4[ebx] + push edi + push esi + push edi + push esi + mov ebx,esp + mov esi,DWORD PTR 36[esp] + mov edi,DWORD PTR 40[esp] + ; getting encrypt flag from parameter 5 + mov ecx,DWORD PTR 56[esp] + ; get and push parameter 3 + mov eax,DWORD PTR 48[esp] + push eax + push ebx + cmp ecx,0 + jz $L000decrypt + and ebp,4294967288 + mov eax,DWORD PTR 8[esp] + mov ebx,DWORD PTR 12[esp] + jz $L001encrypt_finish +$L002encrypt_loop: + mov ecx,DWORD PTR [esi] + mov edx,DWORD PTR 4[esi] + xor eax,ecx + xor ebx,edx + bswap eax + bswap ebx + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],ebx + call $L_BF_encrypt_begin + mov eax,DWORD PTR 8[esp] + mov ebx,DWORD PTR 12[esp] + bswap eax + bswap ebx + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + add esi,8 + add edi,8 + sub ebp,8 + jnz $L002encrypt_loop +$L001encrypt_finish: + mov ebp,DWORD PTR 52[esp] + and ebp,7 + jz $L003finish + call $L004PIC_point +$L004PIC_point: + pop edx + lea ecx,DWORD PTR ($L005cbc_enc_jmp_table-$L004PIC_point)[edx] + mov ebp,DWORD PTR [ebp*4+ecx] + add ebp,edx + xor ecx,ecx + xor edx,edx + jmp ebp +$L006ej7: + mov dh,BYTE PTR 6[esi] + shl edx,8 +$L007ej6: + mov dh,BYTE PTR 5[esi] +$L008ej5: + mov dl,BYTE PTR 4[esi] +$L009ej4: + mov ecx,DWORD PTR [esi] + jmp $L010ejend +$L011ej3: + mov ch,BYTE PTR 2[esi] + shl ecx,8 +$L012ej2: + mov ch,BYTE PTR 1[esi] +$L013ej1: + mov cl,BYTE PTR [esi] +$L010ejend: + xor eax,ecx + xor ebx,edx + bswap eax + bswap ebx + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],ebx + call $L_BF_encrypt_begin + mov eax,DWORD PTR 8[esp] + mov ebx,DWORD PTR 12[esp] + bswap eax + bswap ebx + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + jmp $L003finish +$L000decrypt: + and ebp,4294967288 + mov eax,DWORD PTR 16[esp] + mov ebx,DWORD PTR 20[esp] + jz $L014decrypt_finish +$L015decrypt_loop: + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + bswap eax + bswap ebx + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],ebx + call $L_BF_decrypt_begin + mov eax,DWORD PTR 8[esp] + mov ebx,DWORD PTR 12[esp] + bswap eax + bswap ebx + mov ecx,DWORD PTR 16[esp] + mov edx,DWORD PTR 20[esp] + xor ecx,eax + xor edx,ebx + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov DWORD PTR [edi],ecx + mov DWORD PTR 4[edi],edx + mov DWORD PTR 16[esp],eax + mov DWORD PTR 20[esp],ebx + add esi,8 + add edi,8 + sub ebp,8 + jnz $L015decrypt_loop +$L014decrypt_finish: + mov ebp,DWORD PTR 52[esp] + and ebp,7 + jz $L003finish + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + bswap eax + bswap ebx + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],ebx + call $L_BF_decrypt_begin + mov eax,DWORD PTR 8[esp] + mov ebx,DWORD PTR 12[esp] + bswap eax + bswap ebx + mov ecx,DWORD PTR 16[esp] + mov edx,DWORD PTR 20[esp] + xor ecx,eax + xor edx,ebx + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] +$L016dj7: + ror edx,16 + mov BYTE PTR 6[edi],dl + shr edx,16 +$L017dj6: + mov BYTE PTR 5[edi],dh +$L018dj5: + mov BYTE PTR 4[edi],dl +$L019dj4: + mov DWORD PTR [edi],ecx + jmp $L020djend +$L021dj3: + ror ecx,16 + mov BYTE PTR 2[edi],cl + shl ecx,16 +$L022dj2: + mov BYTE PTR 1[esi],ch +$L023dj1: + mov BYTE PTR [esi],cl +$L020djend: + jmp $L003finish +$L003finish: + mov ecx,DWORD PTR 60[esp] + add esp,24 + mov DWORD PTR [ecx],eax + mov DWORD PTR 4[ecx],ebx + pop edi + pop esi + pop ebx + pop ebp + ret +ALIGN 64 +$L005cbc_enc_jmp_table: +DD 0 +DD $L013ej1-$L004PIC_point +DD $L012ej2-$L004PIC_point +DD $L011ej3-$L004PIC_point +DD $L009ej4-$L004PIC_point +DD $L008ej5-$L004PIC_point +DD $L007ej6-$L004PIC_point +DD $L006ej7-$L004PIC_point +ALIGN 64 +_BF_cbc_encrypt ENDP +.text$ ENDS +END diff --git a/deps/openssl/asm/x86-win32-masm/bn/x86-mont.asm b/deps/openssl/asm/x86-win32-masm/bn/x86-mont.asm new file mode 100644 index 0000000000..eaad4a073a --- /dev/null +++ b/deps/openssl/asm/x86-win32-masm/bn/x86-mont.asm @@ -0,0 +1,348 @@ +TITLE ../openssl/crypto/bn/asm/x86-mont.asm +IF @Version LT 800 +ECHO MASM version 8.00 or later is strongly recommended. +ENDIF +.586 +.MODEL FLAT +OPTION DOTNAME +IF @Version LT 800 +.text$ SEGMENT PAGE 'CODE' +ELSE +.text$ SEGMENT ALIGN(64) 'CODE' +ENDIF +ALIGN 16 +_bn_mul_mont PROC PUBLIC +$L_bn_mul_mont_begin:: + push ebp + push ebx + push esi + push edi + xor eax,eax + mov edi,DWORD PTR 40[esp] + cmp edi,4 + jl $L000just_leave + lea esi,DWORD PTR 20[esp] + lea edx,DWORD PTR 24[esp] + mov ebp,esp + add edi,2 + neg edi + lea esp,DWORD PTR [edi*4+esp-32] + neg edi + mov eax,esp + sub eax,edx + and eax,2047 + sub esp,eax + xor edx,esp + and edx,2048 + xor edx,2048 + sub esp,edx + and esp,-64 + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 12[esi] + mov esi,DWORD PTR 16[esi] + mov esi,DWORD PTR [esi] + mov DWORD PTR 4[esp],eax + mov DWORD PTR 8[esp],ebx + mov DWORD PTR 12[esp],ecx + mov DWORD PTR 16[esp],edx + mov DWORD PTR 20[esp],esi + lea ebx,DWORD PTR [edi-3] + mov DWORD PTR 24[esp],ebp + mov esi,DWORD PTR 8[esp] + lea ebp,DWORD PTR 1[ebx] + mov edi,DWORD PTR 12[esp] + xor ecx,ecx + mov edx,esi + and ebp,1 + sub edx,edi + lea eax,DWORD PTR 4[ebx*4+edi] + or ebp,edx + mov edi,DWORD PTR [edi] + jz $L001bn_sqr_mont + mov DWORD PTR 28[esp],eax + mov eax,DWORD PTR [esi] + xor edx,edx +ALIGN 16 +$L002mull: + mov ebp,edx + mul edi + add ebp,eax + lea ecx,DWORD PTR 1[ecx] + adc edx,0 + mov eax,DWORD PTR [ecx*4+esi] + cmp ecx,ebx + mov DWORD PTR 28[ecx*4+esp],ebp + jl $L002mull + mov ebp,edx + mul edi + mov edi,DWORD PTR 20[esp] + add eax,ebp + mov esi,DWORD PTR 16[esp] + adc edx,0 + imul edi,DWORD PTR 32[esp] + mov DWORD PTR 32[ebx*4+esp],eax + xor ecx,ecx + mov DWORD PTR 36[ebx*4+esp],edx + mov DWORD PTR 40[ebx*4+esp],ecx + mov eax,DWORD PTR [esi] + mul edi + add eax,DWORD PTR 32[esp] + mov eax,DWORD PTR 4[esi] + adc edx,0 + inc ecx + jmp $L0032ndmadd +ALIGN 16 +$L0041stmadd: + mov ebp,edx + mul edi + add ebp,DWORD PTR 32[ecx*4+esp] + lea ecx,DWORD PTR 1[ecx] + adc edx,0 + add ebp,eax + mov eax,DWORD PTR [ecx*4+esi] + adc edx,0 + cmp ecx,ebx + mov DWORD PTR 28[ecx*4+esp],ebp + jl $L0041stmadd + mov ebp,edx + mul edi + add eax,DWORD PTR 32[ebx*4+esp] + mov edi,DWORD PTR 20[esp] + adc edx,0 + mov esi,DWORD PTR 16[esp] + add ebp,eax + adc edx,0 + imul edi,DWORD PTR 32[esp] + xor ecx,ecx + add edx,DWORD PTR 36[ebx*4+esp] + mov DWORD PTR 32[ebx*4+esp],ebp + adc ecx,0 + mov eax,DWORD PTR [esi] + mov DWORD PTR 36[ebx*4+esp],edx + mov DWORD PTR 40[ebx*4+esp],ecx + mul edi + add eax,DWORD PTR 32[esp] + mov eax,DWORD PTR 4[esi] + adc edx,0 + mov ecx,1 +ALIGN 16 +$L0032ndmadd: + mov ebp,edx + mul edi + add ebp,DWORD PTR 32[ecx*4+esp] + lea ecx,DWORD PTR 1[ecx] + adc edx,0 + add ebp,eax + mov eax,DWORD PTR [ecx*4+esi] + adc edx,0 + cmp ecx,ebx + mov DWORD PTR 24[ecx*4+esp],ebp + jl $L0032ndmadd + mov ebp,edx + mul edi + add ebp,DWORD PTR 32[ebx*4+esp] + adc edx,0 + add ebp,eax + adc edx,0 + mov DWORD PTR 28[ebx*4+esp],ebp + xor eax,eax + mov ecx,DWORD PTR 12[esp] + add edx,DWORD PTR 36[ebx*4+esp] + adc eax,DWORD PTR 40[ebx*4+esp] + lea ecx,DWORD PTR 4[ecx] + mov DWORD PTR 32[ebx*4+esp],edx + cmp ecx,DWORD PTR 28[esp] + mov DWORD PTR 36[ebx*4+esp],eax + je $L005common_tail + mov edi,DWORD PTR [ecx] + mov esi,DWORD PTR 8[esp] + mov DWORD PTR 12[esp],ecx + xor ecx,ecx + xor edx,edx + mov eax,DWORD PTR [esi] + jmp $L0041stmadd +ALIGN 16 +$L001bn_sqr_mont: + mov DWORD PTR [esp],ebx + mov DWORD PTR 12[esp],ecx + mov eax,edi + mul edi + mov DWORD PTR 32[esp],eax + mov ebx,edx + shr edx,1 + and ebx,1 + inc ecx +ALIGN 16 +$L006sqr: + mov eax,DWORD PTR [ecx*4+esi] + mov ebp,edx + mul edi + add eax,ebp + lea ecx,DWORD PTR 1[ecx] + adc edx,0 + lea ebp,DWORD PTR [eax*2+ebx] + shr eax,31 + cmp ecx,DWORD PTR [esp] + mov ebx,eax + mov DWORD PTR 28[ecx*4+esp],ebp + jl $L006sqr + mov eax,DWORD PTR [ecx*4+esi] + mov ebp,edx + mul edi + add eax,ebp + mov edi,DWORD PTR 20[esp] + adc edx,0 + mov esi,DWORD PTR 16[esp] + lea ebp,DWORD PTR [eax*2+ebx] + imul edi,DWORD PTR 32[esp] + shr eax,31 + mov DWORD PTR 32[ecx*4+esp],ebp + lea ebp,DWORD PTR [edx*2+eax] + mov eax,DWORD PTR [esi] + shr edx,31 + mov DWORD PTR 36[ecx*4+esp],ebp + mov DWORD PTR 40[ecx*4+esp],edx + mul edi + add eax,DWORD PTR 32[esp] + mov ebx,ecx + adc edx,0 + mov eax,DWORD PTR 4[esi] + mov ecx,1 +ALIGN 16 +$L0073rdmadd: + mov ebp,edx + mul edi + add ebp,DWORD PTR 32[ecx*4+esp] + adc edx,0 + add ebp,eax + mov eax,DWORD PTR 4[ecx*4+esi] + adc edx,0 + mov DWORD PTR 28[ecx*4+esp],ebp + mov ebp,edx + mul edi + add ebp,DWORD PTR 36[ecx*4+esp] + lea ecx,DWORD PTR 2[ecx] + adc edx,0 + add ebp,eax + mov eax,DWORD PTR [ecx*4+esi] + adc edx,0 + cmp ecx,ebx + mov DWORD PTR 24[ecx*4+esp],ebp + jl $L0073rdmadd + mov ebp,edx + mul edi + add ebp,DWORD PTR 32[ebx*4+esp] + adc edx,0 + add ebp,eax + adc edx,0 + mov DWORD PTR 28[ebx*4+esp],ebp + mov ecx,DWORD PTR 12[esp] + xor eax,eax + mov esi,DWORD PTR 8[esp] + add edx,DWORD PTR 36[ebx*4+esp] + adc eax,DWORD PTR 40[ebx*4+esp] + mov DWORD PTR 32[ebx*4+esp],edx + cmp ecx,ebx + mov DWORD PTR 36[ebx*4+esp],eax + je $L005common_tail + mov edi,DWORD PTR 4[ecx*4+esi] + lea ecx,DWORD PTR 1[ecx] + mov eax,edi + mov DWORD PTR 12[esp],ecx + mul edi + add eax,DWORD PTR 32[ecx*4+esp] + adc edx,0 + mov DWORD PTR 32[ecx*4+esp],eax + xor ebp,ebp + cmp ecx,ebx + lea ecx,DWORD PTR 1[ecx] + je $L008sqrlast + mov ebx,edx + shr edx,1 + and ebx,1 +ALIGN 16 +$L009sqradd: + mov eax,DWORD PTR [ecx*4+esi] + mov ebp,edx + mul edi + add eax,ebp + lea ebp,DWORD PTR [eax*1+eax] + adc edx,0 + shr eax,31 + add ebp,DWORD PTR 32[ecx*4+esp] + lea ecx,DWORD PTR 1[ecx] + adc eax,0 + add ebp,ebx + adc eax,0 + cmp ecx,DWORD PTR [esp] + mov DWORD PTR 28[ecx*4+esp],ebp + mov ebx,eax + jle $L009sqradd + mov ebp,edx + add edx,edx + shr ebp,31 + add edx,ebx + adc ebp,0 +$L008sqrlast: + mov edi,DWORD PTR 20[esp] + mov esi,DWORD PTR 16[esp] + imul edi,DWORD PTR 32[esp] + add edx,DWORD PTR 32[ecx*4+esp] + mov eax,DWORD PTR [esi] + adc ebp,0 + mov DWORD PTR 32[ecx*4+esp],edx + mov DWORD PTR 36[ecx*4+esp],ebp + mul edi + add eax,DWORD PTR 32[esp] + lea ebx,DWORD PTR [ecx-1] + adc edx,0 + mov ecx,1 + mov eax,DWORD PTR 4[esi] + jmp $L0073rdmadd +ALIGN 16 +$L005common_tail: + mov ebp,DWORD PTR 16[esp] + mov edi,DWORD PTR 4[esp] + lea esi,DWORD PTR 32[esp] + mov eax,DWORD PTR [esi] + mov ecx,ebx + xor edx,edx +ALIGN 16 +$L010sub: + sbb eax,DWORD PTR [edx*4+ebp] + mov DWORD PTR [edx*4+edi],eax + dec ecx + mov eax,DWORD PTR 4[edx*4+esi] + lea edx,DWORD PTR 1[edx] + jge $L010sub + sbb eax,0 + and esi,eax + not eax + mov ebp,edi + and ebp,eax + or esi,ebp +ALIGN 16 +$L011copy: + mov eax,DWORD PTR [ebx*4+esi] + mov DWORD PTR [ebx*4+edi],eax + mov DWORD PTR 32[ebx*4+esp],ecx + dec ebx + jge $L011copy + mov esp,DWORD PTR 24[esp] + mov eax,1 +$L000just_leave: + pop edi + pop esi + pop ebx + pop ebp + ret +_bn_mul_mont ENDP +DB 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105 +DB 112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56 +DB 54,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 +DB 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 +DB 111,114,103,62,0 +.text$ ENDS +END diff --git a/deps/openssl/asm/x86-win32-masm/bn/x86.asm b/deps/openssl/asm/x86-win32-masm/bn/x86.asm new file mode 100644 index 0000000000..d7051fa4e5 --- /dev/null +++ b/deps/openssl/asm/x86-win32-masm/bn/x86.asm @@ -0,0 +1,2116 @@ +TITLE ../openssl/crypto/bn/asm/x86.asm +IF @Version LT 800 +ECHO MASM version 8.00 or later is strongly recommended. +ENDIF +.586 +.MODEL FLAT +OPTION DOTNAME +IF @Version LT 800 +.text$ SEGMENT PAGE 'CODE' +ELSE +.text$ SEGMENT ALIGN(64) 'CODE' +ENDIF +ALIGN 16 +_bn_mul_add_words PROC PUBLIC +$L_bn_mul_add_words_begin:: + push ebp + push ebx + push esi + push edi + ; + + xor esi,esi + mov edi,DWORD PTR 20[esp] + mov ecx,DWORD PTR 28[esp] + mov ebx,DWORD PTR 24[esp] + and ecx,4294967288 + mov ebp,DWORD PTR 32[esp] + push ecx + jz $L000maw_finish +$L001maw_loop: + mov DWORD PTR [esp],ecx + ; Round 0 + mov eax,DWORD PTR [ebx] + mul ebp + add eax,esi + mov esi,DWORD PTR [edi] + adc edx,0 + add eax,esi + adc edx,0 + mov DWORD PTR [edi],eax + mov esi,edx + ; Round 4 + mov eax,DWORD PTR 4[ebx] + mul ebp + add eax,esi + mov esi,DWORD PTR 4[edi] + adc edx,0 + add eax,esi + adc edx,0 + mov DWORD PTR 4[edi],eax + mov esi,edx + ; Round 8 + mov eax,DWORD PTR 8[ebx] + mul ebp + add eax,esi + mov esi,DWORD PTR 8[edi] + adc edx,0 + add eax,esi + adc edx,0 + mov DWORD PTR 8[edi],eax + mov esi,edx + ; Round 12 + mov eax,DWORD PTR 12[ebx] + mul ebp + add eax,esi + mov esi,DWORD PTR 12[edi] + adc edx,0 + add eax,esi + adc edx,0 + mov DWORD PTR 12[edi],eax + mov esi,edx + ; Round 16 + mov eax,DWORD PTR 16[ebx] + mul ebp + add eax,esi + mov esi,DWORD PTR 16[edi] + adc edx,0 + add eax,esi + adc edx,0 + mov DWORD PTR 16[edi],eax + mov esi,edx + ; Round 20 + mov eax,DWORD PTR 20[ebx] + mul ebp + add eax,esi + mov esi,DWORD PTR 20[edi] + adc edx,0 + add eax,esi + adc edx,0 + mov DWORD PTR 20[edi],eax + mov esi,edx + ; Round 24 + mov eax,DWORD PTR 24[ebx] + mul ebp + add eax,esi + mov esi,DWORD PTR 24[edi] + adc edx,0 + add eax,esi + adc edx,0 + mov DWORD PTR 24[edi],eax + mov esi,edx + ; Round 28 + mov eax,DWORD PTR 28[ebx] + mul ebp + add eax,esi + mov esi,DWORD PTR 28[edi] + adc edx,0 + add eax,esi + adc edx,0 + mov DWORD PTR 28[edi],eax + mov esi,edx + ; + + mov ecx,DWORD PTR [esp] + add ebx,32 + add edi,32 + sub ecx,8 + jnz $L001maw_loop +$L000maw_finish: + mov ecx,DWORD PTR 32[esp] + and ecx,7 + jnz $L002maw_finish2 + jmp $L003maw_end +$L002maw_finish2: + ; Tail Round 0 + mov eax,DWORD PTR [ebx] + mul ebp + add eax,esi + mov esi,DWORD PTR [edi] + adc edx,0 + add eax,esi + adc edx,0 + dec ecx + mov DWORD PTR [edi],eax + mov esi,edx + jz $L003maw_end + ; Tail Round 1 + mov eax,DWORD PTR 4[ebx] + mul ebp + add eax,esi + mov esi,DWORD PTR 4[edi] + adc edx,0 + add eax,esi + adc edx,0 + dec ecx + mov DWORD PTR 4[edi],eax + mov esi,edx + jz $L003maw_end + ; Tail Round 2 + mov eax,DWORD PTR 8[ebx] + mul ebp + add eax,esi + mov esi,DWORD PTR 8[edi] + adc edx,0 + add eax,esi + adc edx,0 + dec ecx + mov DWORD PTR 8[edi],eax + mov esi,edx + jz $L003maw_end + ; Tail Round 3 + mov eax,DWORD PTR 12[ebx] + mul ebp + add eax,esi + mov esi,DWORD PTR 12[edi] + adc edx,0 + add eax,esi + adc edx,0 + dec ecx + mov DWORD PTR 12[edi],eax + mov esi,edx + jz $L003maw_end + ; Tail Round 4 + mov eax,DWORD PTR 16[ebx] + mul ebp + add eax,esi + mov esi,DWORD PTR 16[edi] + adc edx,0 + add eax,esi + adc edx,0 + dec ecx + mov DWORD PTR 16[edi],eax + mov esi,edx + jz $L003maw_end + ; Tail Round 5 + mov eax,DWORD PTR 20[ebx] + mul ebp + add eax,esi + mov esi,DWORD PTR 20[edi] + adc edx,0 + add eax,esi + adc edx,0 + dec ecx + mov DWORD PTR 20[edi],eax + mov esi,edx + jz $L003maw_end + ; Tail Round 6 + mov eax,DWORD PTR 24[ebx] + mul ebp + add eax,esi + mov esi,DWORD PTR 24[edi] + adc edx,0 + add eax,esi + adc edx,0 + mov DWORD PTR 24[edi],eax + mov esi,edx +$L003maw_end: + mov eax,esi + pop ecx + pop edi + pop esi + pop ebx + pop ebp + ret +_bn_mul_add_words ENDP +ALIGN 16 +_bn_mul_words PROC PUBLIC +$L_bn_mul_words_begin:: + push ebp + push ebx + push esi + push edi + ; + + xor esi,esi + mov edi,DWORD PTR 20[esp] + mov ebx,DWORD PTR 24[esp] + mov ebp,DWORD PTR 28[esp] + mov ecx,DWORD PTR 32[esp] + and ebp,4294967288 + jz $L004mw_finish +$L005mw_loop: + ; Round 0 + mov eax,DWORD PTR [ebx] + mul ecx + add eax,esi + adc edx,0 + mov DWORD PTR [edi],eax + mov esi,edx + ; Round 4 + mov eax,DWORD PTR 4[ebx] + mul ecx + add eax,esi + adc edx,0 + mov DWORD PTR 4[edi],eax + mov esi,edx + ; Round 8 + mov eax,DWORD PTR 8[ebx] + mul ecx + add eax,esi + adc edx,0 + mov DWORD PTR 8[edi],eax + mov esi,edx + ; Round 12 + mov eax,DWORD PTR 12[ebx] + mul ecx + add eax,esi + adc edx,0 + mov DWORD PTR 12[edi],eax + mov esi,edx + ; Round 16 + mov eax,DWORD PTR 16[ebx] + mul ecx + add eax,esi + adc edx,0 + mov DWORD PTR 16[edi],eax + mov esi,edx + ; Round 20 + mov eax,DWORD PTR 20[ebx] + mul ecx + add eax,esi + adc edx,0 + mov DWORD PTR 20[edi],eax + mov esi,edx + ; Round 24 + mov eax,DWORD PTR 24[ebx] + mul ecx + add eax,esi + adc edx,0 + mov DWORD PTR 24[edi],eax + mov esi,edx + ; Round 28 + mov eax,DWORD PTR 28[ebx] + mul ecx + add eax,esi + adc edx,0 + mov DWORD PTR 28[edi],eax + mov esi,edx + ; + + add ebx,32 + add edi,32 + sub ebp,8 + jz $L004mw_finish + jmp $L005mw_loop +$L004mw_finish: + mov ebp,DWORD PTR 28[esp] + and ebp,7 + jnz $L006mw_finish2 + jmp $L007mw_end +$L006mw_finish2: + ; Tail Round 0 + mov eax,DWORD PTR [ebx] + mul ecx + add eax,esi + adc edx,0 + mov DWORD PTR [edi],eax + mov esi,edx + dec ebp + jz $L007mw_end + ; Tail Round 1 + mov eax,DWORD PTR 4[ebx] + mul ecx + add eax,esi + adc edx,0 + mov DWORD PTR 4[edi],eax + mov esi,edx + dec ebp + jz $L007mw_end + ; Tail Round 2 + mov eax,DWORD PTR 8[ebx] + mul ecx + add eax,esi + adc edx,0 + mov DWORD PTR 8[edi],eax + mov esi,edx + dec ebp + jz $L007mw_end + ; Tail Round 3 + mov eax,DWORD PTR 12[ebx] + mul ecx + add eax,esi + adc edx,0 + mov DWORD PTR 12[edi],eax + mov esi,edx + dec ebp + jz $L007mw_end + ; Tail Round 4 + mov eax,DWORD PTR 16[ebx] + mul ecx + add eax,esi + adc edx,0 + mov DWORD PTR 16[edi],eax + mov esi,edx + dec ebp + jz $L007mw_end + ; Tail Round 5 + mov eax,DWORD PTR 20[ebx] + mul ecx + add eax,esi + adc edx,0 + mov DWORD PTR 20[edi],eax + mov esi,edx + dec ebp + jz $L007mw_end + ; Tail Round 6 + mov eax,DWORD PTR 24[ebx] + mul ecx + add eax,esi + adc edx,0 + mov DWORD PTR 24[edi],eax + mov esi,edx +$L007mw_end: + mov eax,esi + pop edi + pop esi + pop ebx + pop ebp + ret +_bn_mul_words ENDP +ALIGN 16 +_bn_sqr_words PROC PUBLIC +$L_bn_sqr_words_begin:: + push ebp + push ebx + push esi + push edi + ; + + mov esi,DWORD PTR 20[esp] + mov edi,DWORD PTR 24[esp] + mov ebx,DWORD PTR 28[esp] + and ebx,4294967288 + jz $L008sw_finish +$L009sw_loop: + ; Round 0 + mov eax,DWORD PTR [edi] + mul eax + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],edx + ; Round 4 + mov eax,DWORD PTR 4[edi] + mul eax + mov DWORD PTR 8[esi],eax + mov DWORD PTR 12[esi],edx + ; Round 8 + mov eax,DWORD PTR 8[edi] + mul eax + mov DWORD PTR 16[esi],eax + mov DWORD PTR 20[esi],edx + ; Round 12 + mov eax,DWORD PTR 12[edi] + mul eax + mov DWORD PTR 24[esi],eax + mov DWORD PTR 28[esi],edx + ; Round 16 + mov eax,DWORD PTR 16[edi] + mul eax + mov DWORD PTR 32[esi],eax + mov DWORD PTR 36[esi],edx + ; Round 20 + mov eax,DWORD PTR 20[edi] + mul eax + mov DWORD PTR 40[esi],eax + mov DWORD PTR 44[esi],edx + ; Round 24 + mov eax,DWORD PTR 24[edi] + mul eax + mov DWORD PTR 48[esi],eax + mov DWORD PTR 52[esi],edx + ; Round 28 + mov eax,DWORD PTR 28[edi] + mul eax + mov DWORD PTR 56[esi],eax + mov DWORD PTR 60[esi],edx + ; + + add edi,32 + add esi,64 + sub ebx,8 + jnz $L009sw_loop +$L008sw_finish: + mov ebx,DWORD PTR 28[esp] + and ebx,7 + jz $L010sw_end + ; Tail Round 0 + mov eax,DWORD PTR [edi] + mul eax + mov DWORD PTR [esi],eax + dec ebx + mov DWORD PTR 4[esi],edx + jz $L010sw_end + ; Tail Round 1 + mov eax,DWORD PTR 4[edi] + mul eax + mov DWORD PTR 8[esi],eax + dec ebx + mov DWORD PTR 12[esi],edx + jz $L010sw_end + ; Tail Round 2 + mov eax,DWORD PTR 8[edi] + mul eax + mov DWORD PTR 16[esi],eax + dec ebx + mov DWORD PTR 20[esi],edx + jz $L010sw_end + ; Tail Round 3 + mov eax,DWORD PTR 12[edi] + mul eax + mov DWORD PTR 24[esi],eax + dec ebx + mov DWORD PTR 28[esi],edx + jz $L010sw_end + ; Tail Round 4 + mov eax,DWORD PTR 16[edi] + mul eax + mov DWORD PTR 32[esi],eax + dec ebx + mov DWORD PTR 36[esi],edx + jz $L010sw_end + ; Tail Round 5 + mov eax,DWORD PTR 20[edi] + mul eax + mov DWORD PTR 40[esi],eax + dec ebx + mov DWORD PTR 44[esi],edx + jz $L010sw_end + ; Tail Round 6 + mov eax,DWORD PTR 24[edi] + mul eax + mov DWORD PTR 48[esi],eax + mov DWORD PTR 52[esi],edx +$L010sw_end: + pop edi + pop esi + pop ebx + pop ebp + ret +_bn_sqr_words ENDP +ALIGN 16 +_bn_div_words PROC PUBLIC +$L_bn_div_words_begin:: + push ebp + push ebx + push esi + push edi + mov edx,DWORD PTR 20[esp] + mov eax,DWORD PTR 24[esp] + mov ebx,DWORD PTR 28[esp] + div ebx + pop edi + pop esi + pop ebx + pop ebp + ret +_bn_div_words ENDP +ALIGN 16 +_bn_add_words PROC PUBLIC +$L_bn_add_words_begin:: + push ebp + push ebx + push esi + push edi + ; + + mov ebx,DWORD PTR 20[esp] + mov esi,DWORD PTR 24[esp] + mov edi,DWORD PTR 28[esp] + mov ebp,DWORD PTR 32[esp] + xor eax,eax + and ebp,4294967288 + jz $L011aw_finish +$L012aw_loop: + ; Round 0 + mov ecx,DWORD PTR [esi] + mov edx,DWORD PTR [edi] + add ecx,eax + mov eax,0 + adc eax,eax + add ecx,edx + adc eax,0 + mov DWORD PTR [ebx],ecx + ; Round 1 + mov ecx,DWORD PTR 4[esi] + mov edx,DWORD PTR 4[edi] + add ecx,eax + mov eax,0 + adc eax,eax + add ecx,edx + adc eax,0 + mov DWORD PTR 4[ebx],ecx + ; Round 2 + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 8[edi] + add ecx,eax + mov eax,0 + adc eax,eax + add ecx,edx + adc eax,0 + mov DWORD PTR 8[ebx],ecx + ; Round 3 + mov ecx,DWORD PTR 12[esi] + mov edx,DWORD PTR 12[edi] + add ecx,eax + mov eax,0 + adc eax,eax + add ecx,edx + adc eax,0 + mov DWORD PTR 12[ebx],ecx + ; Round 4 + mov ecx,DWORD PTR 16[esi] + mov edx,DWORD PTR 16[edi] + add ecx,eax + mov eax,0 + adc eax,eax + add ecx,edx + adc eax,0 + mov DWORD PTR 16[ebx],ecx + ; Round 5 + mov ecx,DWORD PTR 20[esi] + mov edx,DWORD PTR 20[edi] + add ecx,eax + mov eax,0 + adc eax,eax + add ecx,edx + adc eax,0 + mov DWORD PTR 20[ebx],ecx + ; Round 6 + mov ecx,DWORD PTR 24[esi] + mov edx,DWORD PTR 24[edi] + add ecx,eax + mov eax,0 + adc eax,eax + add ecx,edx + adc eax,0 + mov DWORD PTR 24[ebx],ecx + ; Round 7 + mov ecx,DWORD PTR 28[esi] + mov edx,DWORD PTR 28[edi] + add ecx,eax + mov eax,0 + adc eax,eax + add ecx,edx + adc eax,0 + mov DWORD PTR 28[ebx],ecx + ; + + add esi,32 + add edi,32 + add ebx,32 + sub ebp,8 + jnz $L012aw_loop +$L011aw_finish: + mov ebp,DWORD PTR 32[esp] + and ebp,7 + jz $L013aw_end + ; Tail Round 0 + mov ecx,DWORD PTR [esi] + mov edx,DWORD PTR [edi] + add ecx,eax + mov eax,0 + adc eax,eax + add ecx,edx + adc eax,0 + dec ebp + mov DWORD PTR [ebx],ecx + jz $L013aw_end + ; Tail Round 1 + mov ecx,DWORD PTR 4[esi] + mov edx,DWORD PTR 4[edi] + add ecx,eax + mov eax,0 + adc eax,eax + add ecx,edx + adc eax,0 + dec ebp + mov DWORD PTR 4[ebx],ecx + jz $L013aw_end + ; Tail Round 2 + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 8[edi] + add ecx,eax + mov eax,0 + adc eax,eax + add ecx,edx + adc eax,0 + dec ebp + mov DWORD PTR 8[ebx],ecx + jz $L013aw_end + ; Tail Round 3 + mov ecx,DWORD PTR 12[esi] + mov edx,DWORD PTR 12[edi] + add ecx,eax + mov eax,0 + adc eax,eax + add ecx,edx + adc eax,0 + dec ebp + mov DWORD PTR 12[ebx],ecx + jz $L013aw_end + ; Tail Round 4 + mov ecx,DWORD PTR 16[esi] + mov edx,DWORD PTR 16[edi] + add ecx,eax + mov eax,0 + adc eax,eax + add ecx,edx + adc eax,0 + dec ebp + mov DWORD PTR 16[ebx],ecx + jz $L013aw_end + ; Tail Round 5 + mov ecx,DWORD PTR 20[esi] + mov edx,DWORD PTR 20[edi] + add ecx,eax + mov eax,0 + adc eax,eax + add ecx,edx + adc eax,0 + dec ebp + mov DWORD PTR 20[ebx],ecx + jz $L013aw_end + ; Tail Round 6 + mov ecx,DWORD PTR 24[esi] + mov edx,DWORD PTR 24[edi] + add ecx,eax + mov eax,0 + adc eax,eax + add ecx,edx + adc eax,0 + mov DWORD PTR 24[ebx],ecx +$L013aw_end: + pop edi + pop esi + pop ebx + pop ebp + ret +_bn_add_words ENDP +ALIGN 16 +_bn_sub_words PROC PUBLIC +$L_bn_sub_words_begin:: + push ebp + push ebx + push esi + push edi + ; + + mov ebx,DWORD PTR 20[esp] + mov esi,DWORD PTR 24[esp] + mov edi,DWORD PTR 28[esp] + mov ebp,DWORD PTR 32[esp] + xor eax,eax + and ebp,4294967288 + jz $L014aw_finish +$L015aw_loop: + ; Round 0 + mov ecx,DWORD PTR [esi] + mov edx,DWORD PTR [edi] + sub ecx,eax + mov eax,0 + adc eax,eax + sub ecx,edx + adc eax,0 + mov DWORD PTR [ebx],ecx + ; Round 1 + mov ecx,DWORD PTR 4[esi] + mov edx,DWORD PTR 4[edi] + sub ecx,eax + mov eax,0 + adc eax,eax + sub ecx,edx + adc eax,0 + mov DWORD PTR 4[ebx],ecx + ; Round 2 + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 8[edi] + sub ecx,eax + mov eax,0 + adc eax,eax + sub ecx,edx + adc eax,0 + mov DWORD PTR 8[ebx],ecx + ; Round 3 + mov ecx,DWORD PTR 12[esi] + mov edx,DWORD PTR 12[edi] + sub ecx,eax + mov eax,0 + adc eax,eax + sub ecx,edx + adc eax,0 + mov DWORD PTR 12[ebx],ecx + ; Round 4 + mov ecx,DWORD PTR 16[esi] + mov edx,DWORD PTR 16[edi] + sub ecx,eax + mov eax,0 + adc eax,eax + sub ecx,edx + adc eax,0 + mov DWORD PTR 16[ebx],ecx + ; Round 5 + mov ecx,DWORD PTR 20[esi] + mov edx,DWORD PTR 20[edi] + sub ecx,eax + mov eax,0 + adc eax,eax + sub ecx,edx + adc eax,0 + mov DWORD PTR 20[ebx],ecx + ; Round 6 + mov ecx,DWORD PTR 24[esi] + mov edx,DWORD PTR 24[edi] + sub ecx,eax + mov eax,0 + adc eax,eax + sub ecx,edx + adc eax,0 + mov DWORD PTR 24[ebx],ecx + ; Round 7 + mov ecx,DWORD PTR 28[esi] + mov edx,DWORD PTR 28[edi] + sub ecx,eax + mov eax,0 + adc eax,eax + sub ecx,edx + adc eax,0 + mov DWORD PTR 28[ebx],ecx + ; + + add esi,32 + add edi,32 + add ebx,32 + sub ebp,8 + jnz $L015aw_loop +$L014aw_finish: + mov ebp,DWORD PTR 32[esp] + and ebp,7 + jz $L016aw_end + ; Tail Round 0 + mov ecx,DWORD PTR [esi] + mov edx,DWORD PTR [edi] + sub ecx,eax + mov eax,0 + adc eax,eax + sub ecx,edx + adc eax,0 + dec ebp + mov DWORD PTR [ebx],ecx + jz $L016aw_end + ; Tail Round 1 + mov ecx,DWORD PTR 4[esi] + mov edx,DWORD PTR 4[edi] + sub ecx,eax + mov eax,0 + adc eax,eax + sub ecx,edx + adc eax,0 + dec ebp + mov DWORD PTR 4[ebx],ecx + jz $L016aw_end + ; Tail Round 2 + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 8[edi] + sub ecx,eax + mov eax,0 + adc eax,eax + sub ecx,edx + adc eax,0 + dec ebp + mov DWORD PTR 8[ebx],ecx + jz $L016aw_end + ; Tail Round 3 + mov ecx,DWORD PTR 12[esi] + mov edx,DWORD PTR 12[edi] + sub ecx,eax + mov eax,0 + adc eax,eax + sub ecx,edx + adc eax,0 + dec ebp + mov DWORD PTR 12[ebx],ecx + jz $L016aw_end + ; Tail Round 4 + mov ecx,DWORD PTR 16[esi] + mov edx,DWORD PTR 16[edi] + sub ecx,eax + mov eax,0 + adc eax,eax + sub ecx,edx + adc eax,0 + dec ebp + mov DWORD PTR 16[ebx],ecx + jz $L016aw_end + ; Tail Round 5 + mov ecx,DWORD PTR 20[esi] + mov edx,DWORD PTR 20[edi] + sub ecx,eax + mov eax,0 + adc eax,eax + sub ecx,edx + adc eax,0 + dec ebp + mov DWORD PTR 20[ebx],ecx + jz $L016aw_end + ; Tail Round 6 + mov ecx,DWORD PTR 24[esi] + mov edx,DWORD PTR 24[edi] + sub ecx,eax + mov eax,0 + adc eax,eax + sub ecx,edx + adc eax,0 + mov DWORD PTR 24[ebx],ecx +$L016aw_end: + pop edi + pop esi + pop ebx + pop ebp + ret +_bn_sub_words ENDP +ALIGN 16 +_bn_mul_comba8 PROC PUBLIC +$L_bn_mul_comba8_begin:: + push esi + mov esi,DWORD PTR 12[esp] + push edi + mov edi,DWORD PTR 20[esp] + push ebp + push ebx + xor ebx,ebx + mov eax,DWORD PTR [esi] + xor ecx,ecx + mov edx,DWORD PTR [edi] + ; ################## Calculate word 0 + xor ebp,ebp + ; mul a[0]*b[0] + mul edx + add ebx,eax + mov eax,DWORD PTR 20[esp] + adc ecx,edx + mov edx,DWORD PTR [edi] + adc ebp,0 + mov DWORD PTR [eax],ebx + mov eax,DWORD PTR 4[esi] + ; saved r[0] + ; ################## Calculate word 1 + xor ebx,ebx + ; mul a[1]*b[0] + mul edx + add ecx,eax + mov eax,DWORD PTR [esi] + adc ebp,edx + mov edx,DWORD PTR 4[edi] + adc ebx,0 + ; mul a[0]*b[1] + mul edx + add ecx,eax + mov eax,DWORD PTR 20[esp] + adc ebp,edx + mov edx,DWORD PTR [edi] + adc ebx,0 + mov DWORD PTR 4[eax],ecx + mov eax,DWORD PTR 8[esi] + ; saved r[1] + ; ################## Calculate word 2 + xor ecx,ecx + ; mul a[2]*b[0] + mul edx + add ebp,eax + mov eax,DWORD PTR 4[esi] + adc ebx,edx + mov edx,DWORD PTR 4[edi] + adc ecx,0 + ; mul a[1]*b[1] + mul edx + add ebp,eax + mov eax,DWORD PTR [esi] + adc ebx,edx + mov edx,DWORD PTR 8[edi] + adc ecx,0 + ; mul a[0]*b[2] + mul edx + add ebp,eax + mov eax,DWORD PTR 20[esp] + adc ebx,edx + mov edx,DWORD PTR [edi] + adc ecx,0 + mov DWORD PTR 8[eax],ebp + mov eax,DWORD PTR 12[esi] + ; saved r[2] + ; ################## Calculate word 3 + xor ebp,ebp + ; mul a[3]*b[0] + mul edx + add ebx,eax + mov eax,DWORD PTR 8[esi] + adc ecx,edx + mov edx,DWORD PTR 4[edi] + adc ebp,0 + ; mul a[2]*b[1] + mul edx + add ebx,eax + mov eax,DWORD PTR 4[esi] + adc ecx,edx + mov edx,DWORD PTR 8[edi] + adc ebp,0 + ; mul a[1]*b[2] + mul edx + add ebx,eax + mov eax,DWORD PTR [esi] + adc ecx,edx + mov edx,DWORD PTR 12[edi] + adc ebp,0 + ; mul a[0]*b[3] + mul edx + add ebx,eax + mov eax,DWORD PTR 20[esp] + adc ecx,edx + mov edx,DWORD PTR [edi] + adc ebp,0 + mov DWORD PTR 12[eax],ebx + mov eax,DWORD PTR 16[esi] + ; saved r[3] + ; ################## Calculate word 4 + xor ebx,ebx + ; mul a[4]*b[0] + mul edx + add ecx,eax + mov eax,DWORD PTR 12[esi] + adc ebp,edx + mov edx,DWORD PTR 4[edi] + adc ebx,0 + ; mul a[3]*b[1] + mul edx + add ecx,eax + mov eax,DWORD PTR 8[esi] + adc ebp,edx + mov edx,DWORD PTR 8[edi] + adc ebx,0 + ; mul a[2]*b[2] + mul edx + add ecx,eax + mov eax,DWORD PTR 4[esi] + adc ebp,edx + mov edx,DWORD PTR 12[edi] + adc ebx,0 + ; mul a[1]*b[3] + mul edx + add ecx,eax + mov eax,DWORD PTR [esi] + adc ebp,edx + mov edx,DWORD PTR 16[edi] + adc ebx,0 + ; mul a[0]*b[4] + mul edx + add ecx,eax + mov eax,DWORD PTR 20[esp] + adc ebp,edx + mov edx,DWORD PTR [edi] + adc ebx,0 + mov DWORD PTR 16[eax],ecx + mov eax,DWORD PTR 20[esi] + ; saved r[4] + ; ################## Calculate word 5 + xor ecx,ecx + ; mul a[5]*b[0] + mul edx + add ebp,eax + mov eax,DWORD PTR 16[esi] + adc ebx,edx + mov edx,DWORD PTR 4[edi] + adc ecx,0 + ; mul a[4]*b[1] + mul edx + add ebp,eax + mov eax,DWORD PTR 12[esi] + adc ebx,edx + mov edx,DWORD PTR 8[edi] + adc ecx,0 + ; mul a[3]*b[2] + mul edx + add ebp,eax + mov eax,DWORD PTR 8[esi] + adc ebx,edx + mov edx,DWORD PTR 12[edi] + adc ecx,0 + ; mul a[2]*b[3] + mul edx + add ebp,eax + mov eax,DWORD PTR 4[esi] + adc ebx,edx + mov edx,DWORD PTR 16[edi] + adc ecx,0 + ; mul a[1]*b[4] + mul edx + add ebp,eax + mov eax,DWORD PTR [esi] + adc ebx,edx + mov edx,DWORD PTR 20[edi] + adc ecx,0 + ; mul a[0]*b[5] + mul edx + add ebp,eax + mov eax,DWORD PTR 20[esp] + adc ebx,edx + mov edx,DWORD PTR [edi] + adc ecx,0 + mov DWORD PTR 20[eax],ebp + mov eax,DWORD PTR 24[esi] + ; saved r[5] + ; ################## Calculate word 6 + xor ebp,ebp + ; mul a[6]*b[0] + mul edx + add ebx,eax + mov eax,DWORD PTR 20[esi] + adc ecx,edx + mov edx,DWORD PTR 4[edi] + adc ebp,0 + ; mul a[5]*b[1] + mul edx + add ebx,eax + mov eax,DWORD PTR 16[esi] + adc ecx,edx + mov edx,DWORD PTR 8[edi] + adc ebp,0 + ; mul a[4]*b[2] + mul edx + add ebx,eax + mov eax,DWORD PTR 12[esi] + adc ecx,edx + mov edx,DWORD PTR 12[edi] + adc ebp,0 + ; mul a[3]*b[3] + mul edx + add ebx,eax + mov eax,DWORD PTR 8[esi] + adc ecx,edx + mov edx,DWORD PTR 16[edi] + adc ebp,0 + ; mul a[2]*b[4] + mul edx + add ebx,eax + mov eax,DWORD PTR 4[esi] + adc ecx,edx + mov edx,DWORD PTR 20[edi] + adc ebp,0 + ; mul a[1]*b[5] + mul edx + add ebx,eax + mov eax,DWORD PTR [esi] + adc ecx,edx + mov edx,DWORD PTR 24[edi] + adc ebp,0 + ; mul a[0]*b[6] + mul edx + add ebx,eax + mov eax,DWORD PTR 20[esp] + adc ecx,edx + mov edx,DWORD PTR [edi] + adc ebp,0 + mov DWORD PTR 24[eax],ebx + mov eax,DWORD PTR 28[esi] + ; saved r[6] + ; ################## Calculate word 7 + xor ebx,ebx + ; mul a[7]*b[0] + mul edx + add ecx,eax + mov eax,DWORD PTR 24[esi] + adc ebp,edx + mov edx,DWORD PTR 4[edi] + adc ebx,0 + ; mul a[6]*b[1] + mul edx + add ecx,eax + mov eax,DWORD PTR 20[esi] + adc ebp,edx + mov edx,DWORD PTR 8[edi] + adc ebx,0 + ; mul a[5]*b[2] + mul edx + add ecx,eax + mov eax,DWORD PTR 16[esi] + adc ebp,edx + mov edx,DWORD PTR 12[edi] + adc ebx,0 + ; mul a[4]*b[3] + mul edx + add ecx,eax + mov eax,DWORD PTR 12[esi] + adc ebp,edx + mov edx,DWORD PTR 16[edi] + adc ebx,0 + ; mul a[3]*b[4] + mul edx + add ecx,eax + mov eax,DWORD PTR 8[esi] + adc ebp,edx + mov edx,DWORD PTR 20[edi] + adc ebx,0 + ; mul a[2]*b[5] + mul edx + add ecx,eax + mov eax,DWORD PTR 4[esi] + adc ebp,edx + mov edx,DWORD PTR 24[edi] + adc ebx,0 + ; mul a[1]*b[6] + mul edx + add ecx,eax + mov eax,DWORD PTR [esi] + adc ebp,edx + mov edx,DWORD PTR 28[edi] + adc ebx,0 + ; mul a[0]*b[7] + mul edx + add ecx,eax + mov eax,DWORD PTR 20[esp] + adc ebp,edx + mov edx,DWORD PTR 4[edi] + adc ebx,0 + mov DWORD PTR 28[eax],ecx + mov eax,DWORD PTR 28[esi] + ; saved r[7] + ; ################## Calculate word 8 + xor ecx,ecx + ; mul a[7]*b[1] + mul edx + add ebp,eax + mov eax,DWORD PTR 24[esi] + adc ebx,edx + mov edx,DWORD PTR 8[edi] + adc ecx,0 + ; mul a[6]*b[2] + mul edx + add ebp,eax + mov eax,DWORD PTR 20[esi] + adc ebx,edx + mov edx,DWORD PTR 12[edi] + adc ecx,0 + ; mul a[5]*b[3] + mul edx + add ebp,eax + mov eax,DWORD PTR 16[esi] + adc ebx,edx + mov edx,DWORD PTR 16[edi] + adc ecx,0 + ; mul a[4]*b[4] + mul edx + add ebp,eax + mov eax,DWORD PTR 12[esi] + adc ebx,edx + mov edx,DWORD PTR 20[edi] + adc ecx,0 + ; mul a[3]*b[5] + mul edx + add ebp,eax + mov eax,DWORD PTR 8[esi] + adc ebx,edx + mov edx,DWORD PTR 24[edi] + adc ecx,0 + ; mul a[2]*b[6] + mul edx + add ebp,eax + mov eax,DWORD PTR 4[esi] + adc ebx,edx + mov edx,DWORD PTR 28[edi] + adc ecx,0 + ; mul a[1]*b[7] + mul edx + add ebp,eax + mov eax,DWORD PTR 20[esp] + adc ebx,edx + mov edx,DWORD PTR 8[edi] + adc ecx,0 + mov DWORD PTR 32[eax],ebp + mov eax,DWORD PTR 28[esi] + ; saved r[8] + ; ################## Calculate word 9 + xor ebp,ebp + ; mul a[7]*b[2] + mul edx + add ebx,eax + mov eax,DWORD PTR 24[esi] + adc ecx,edx + mov edx,DWORD PTR 12[edi] + adc ebp,0 + ; mul a[6]*b[3] + mul edx + add ebx,eax + mov eax,DWORD PTR 20[esi] + adc ecx,edx + mov edx,DWORD PTR 16[edi] + adc ebp,0 + ; mul a[5]*b[4] + mul edx + add ebx,eax + mov eax,DWORD PTR 16[esi] + adc ecx,edx + mov edx,DWORD PTR 20[edi] + adc ebp,0 + ; mul a[4]*b[5] + mul edx + add ebx,eax + mov eax,DWORD PTR 12[esi] + adc ecx,edx + mov edx,DWORD PTR 24[edi] + adc ebp,0 + ; mul a[3]*b[6] + mul edx + add ebx,eax + mov eax,DWORD PTR 8[esi] + adc ecx,edx + mov edx,DWORD PTR 28[edi] + adc ebp,0 + ; mul a[2]*b[7] + mul edx + add ebx,eax + mov eax,DWORD PTR 20[esp] + adc ecx,edx + mov edx,DWORD PTR 12[edi] + adc ebp,0 + mov DWORD PTR 36[eax],ebx + mov eax,DWORD PTR 28[esi] + ; saved r[9] + ; ################## Calculate word 10 + xor ebx,ebx + ; mul a[7]*b[3] + mul edx + add ecx,eax + mov eax,DWORD PTR 24[esi] + adc ebp,edx + mov edx,DWORD PTR 16[edi] + adc ebx,0 + ; mul a[6]*b[4] + mul edx + add ecx,eax + mov eax,DWORD PTR 20[esi] + adc ebp,edx + mov edx,DWORD PTR 20[edi] + adc ebx,0 + ; mul a[5]*b[5] + mul edx + add ecx,eax + mov eax,DWORD PTR 16[esi] + adc ebp,edx + mov edx,DWORD PTR 24[edi] + adc ebx,0 + ; mul a[4]*b[6] + mul edx + add ecx,eax + mov eax,DWORD PTR 12[esi] + adc ebp,edx + mov edx,DWORD PTR 28[edi] + adc ebx,0 + ; mul a[3]*b[7] + mul edx + add ecx,eax + mov eax,DWORD PTR 20[esp] + adc ebp,edx + mov edx,DWORD PTR 16[edi] + adc ebx,0 + mov DWORD PTR 40[eax],ecx + mov eax,DWORD PTR 28[esi] + ; saved r[10] + ; ################## Calculate word 11 + xor ecx,ecx + ; mul a[7]*b[4] + mul edx + add ebp,eax + mov eax,DWORD PTR 24[esi] + adc ebx,edx + mov edx,DWORD PTR 20[edi] + adc ecx,0 + ; mul a[6]*b[5] + mul edx + add ebp,eax + mov eax,DWORD PTR 20[esi] + adc ebx,edx + mov edx,DWORD PTR 24[edi] + adc ecx,0 + ; mul a[5]*b[6] + mul edx + add ebp,eax + mov eax,DWORD PTR 16[esi] + adc ebx,edx + mov edx,DWORD PTR 28[edi] + adc ecx,0 + ; mul a[4]*b[7] + mul edx + add ebp,eax + mov eax,DWORD PTR 20[esp] + adc ebx,edx + mov edx,DWORD PTR 20[edi] + adc ecx,0 + mov DWORD PTR 44[eax],ebp + mov eax,DWORD PTR 28[esi] + ; saved r[11] + ; ################## Calculate word 12 + xor ebp,ebp + ; mul a[7]*b[5] + mul edx + add ebx,eax + mov eax,DWORD PTR 24[esi] + adc ecx,edx + mov edx,DWORD PTR 24[edi] + adc ebp,0 + ; mul a[6]*b[6] + mul edx + add ebx,eax + mov eax,DWORD PTR 20[esi] + adc ecx,edx + mov edx,DWORD PTR 28[edi] + adc ebp,0 + ; mul a[5]*b[7] + mul edx + add ebx,eax + mov eax,DWORD PTR 20[esp] + adc ecx,edx + mov edx,DWORD PTR 24[edi] + adc ebp,0 + mov DWORD PTR 48[eax],ebx + mov eax,DWORD PTR 28[esi] + ; saved r[12] + ; ################## Calculate word 13 + xor ebx,ebx + ; mul a[7]*b[6] + mul edx + add ecx,eax + mov eax,DWORD PTR 24[esi] + adc ebp,edx + mov edx,DWORD PTR 28[edi] + adc ebx,0 + ; mul a[6]*b[7] + mul edx + add ecx,eax + mov eax,DWORD PTR 20[esp] + adc ebp,edx + mov edx,DWORD PTR 28[edi] + adc ebx,0 + mov DWORD PTR 52[eax],ecx + mov eax,DWORD PTR 28[esi] + ; saved r[13] + ; ################## Calculate word 14 + xor ecx,ecx + ; mul a[7]*b[7] + mul edx + add ebp,eax + mov eax,DWORD PTR 20[esp] + adc ebx,edx + adc ecx,0 + mov DWORD PTR 56[eax],ebp + ; saved r[14] + ; save r[15] + mov DWORD PTR 60[eax],ebx + pop ebx + pop ebp + pop edi + pop esi + ret +_bn_mul_comba8 ENDP +ALIGN 16 +_bn_mul_comba4 PROC PUBLIC +$L_bn_mul_comba4_begin:: + push esi + mov esi,DWORD PTR 12[esp] + push edi + mov edi,DWORD PTR 20[esp] + push ebp + push ebx + xor ebx,ebx + mov eax,DWORD PTR [esi] + xor ecx,ecx + mov edx,DWORD PTR [edi] + ; ################## Calculate word 0 + xor ebp,ebp + ; mul a[0]*b[0] + mul edx + add ebx,eax + mov eax,DWORD PTR 20[esp] + adc ecx,edx + mov edx,DWORD PTR [edi] + adc ebp,0 + mov DWORD PTR [eax],ebx + mov eax,DWORD PTR 4[esi] + ; saved r[0] + ; ################## Calculate word 1 + xor ebx,ebx + ; mul a[1]*b[0] + mul edx + add ecx,eax + mov eax,DWORD PTR [esi] + adc ebp,edx + mov edx,DWORD PTR 4[edi] + adc ebx,0 + ; mul a[0]*b[1] + mul edx + add ecx,eax + mov eax,DWORD PTR 20[esp] + adc ebp,edx + mov edx,DWORD PTR [edi] + adc ebx,0 + mov DWORD PTR 4[eax],ecx + mov eax,DWORD PTR 8[esi] + ; saved r[1] + ; ################## Calculate word 2 + xor ecx,ecx + ; mul a[2]*b[0] + mul edx + add ebp,eax + mov eax,DWORD PTR 4[esi] + adc ebx,edx + mov edx,DWORD PTR 4[edi] + adc ecx,0 + ; mul a[1]*b[1] + mul edx + add ebp,eax + mov eax,DWORD PTR [esi] + adc ebx,edx + mov edx,DWORD PTR 8[edi] + adc ecx,0 + ; mul a[0]*b[2] + mul edx + add ebp,eax + mov eax,DWORD PTR 20[esp] + adc ebx,edx + mov edx,DWORD PTR [edi] + adc ecx,0 + mov DWORD PTR 8[eax],ebp + mov eax,DWORD PTR 12[esi] + ; saved r[2] + ; ################## Calculate word 3 + xor ebp,ebp + ; mul a[3]*b[0] + mul edx + add ebx,eax + mov eax,DWORD PTR 8[esi] + adc ecx,edx + mov edx,DWORD PTR 4[edi] + adc ebp,0 + ; mul a[2]*b[1] + mul edx + add ebx,eax + mov eax,DWORD PTR 4[esi] + adc ecx,edx + mov edx,DWORD PTR 8[edi] + adc ebp,0 + ; mul a[1]*b[2] + mul edx + add ebx,eax + mov eax,DWORD PTR [esi] + adc ecx,edx + mov edx,DWORD PTR 12[edi] + adc ebp,0 + ; mul a[0]*b[3] + mul edx + add ebx,eax + mov eax,DWORD PTR 20[esp] + adc ecx,edx + mov edx,DWORD PTR 4[edi] + adc ebp,0 + mov DWORD PTR 12[eax],ebx + mov eax,DWORD PTR 12[esi] + ; saved r[3] + ; ################## Calculate word 4 + xor ebx,ebx + ; mul a[3]*b[1] + mul edx + add ecx,eax + mov eax,DWORD PTR 8[esi] + adc ebp,edx + mov edx,DWORD PTR 8[edi] + adc ebx,0 + ; mul a[2]*b[2] + mul edx + add ecx,eax + mov eax,DWORD PTR 4[esi] + adc ebp,edx + mov edx,DWORD PTR 12[edi] + adc ebx,0 + ; mul a[1]*b[3] + mul edx + add ecx,eax + mov eax,DWORD PTR 20[esp] + adc ebp,edx + mov edx,DWORD PTR 8[edi] + adc ebx,0 + mov DWORD PTR 16[eax],ecx + mov eax,DWORD PTR 12[esi] + ; saved r[4] + ; ################## Calculate word 5 + xor ecx,ecx + ; mul a[3]*b[2] + mul edx + add ebp,eax + mov eax,DWORD PTR 8[esi] + adc ebx,edx + mov edx,DWORD PTR 12[edi] + adc ecx,0 + ; mul a[2]*b[3] + mul edx + add ebp,eax + mov eax,DWORD PTR 20[esp] + adc ebx,edx + mov edx,DWORD PTR 12[edi] + adc ecx,0 + mov DWORD PTR 20[eax],ebp + mov eax,DWORD PTR 12[esi] + ; saved r[5] + ; ################## Calculate word 6 + xor ebp,ebp + ; mul a[3]*b[3] + mul edx + add ebx,eax + mov eax,DWORD PTR 20[esp] + adc ecx,edx + adc ebp,0 + mov DWORD PTR 24[eax],ebx + ; saved r[6] + ; save r[7] + mov DWORD PTR 28[eax],ecx + pop ebx + pop ebp + pop edi + pop esi + ret +_bn_mul_comba4 ENDP +ALIGN 16 +_bn_sqr_comba8 PROC PUBLIC +$L_bn_sqr_comba8_begin:: + push esi + push edi + push ebp + push ebx + mov edi,DWORD PTR 20[esp] + mov esi,DWORD PTR 24[esp] + xor ebx,ebx + xor ecx,ecx + mov eax,DWORD PTR [esi] + ; ############### Calculate word 0 + xor ebp,ebp + ; sqr a[0]*a[0] + mul eax + add ebx,eax + adc ecx,edx + mov edx,DWORD PTR [esi] + adc ebp,0 + mov DWORD PTR [edi],ebx + mov eax,DWORD PTR 4[esi] + ; saved r[0] + ; ############### Calculate word 1 + xor ebx,ebx + ; sqr a[1]*a[0] + mul edx + add eax,eax + adc edx,edx + adc ebx,0 + add ecx,eax + adc ebp,edx + mov eax,DWORD PTR 8[esi] + adc ebx,0 + mov DWORD PTR 4[edi],ecx + mov edx,DWORD PTR [esi] + ; saved r[1] + ; ############### Calculate word 2 + xor ecx,ecx + ; sqr a[2]*a[0] + mul edx + add eax,eax + adc edx,edx + adc ecx,0 + add ebp,eax + adc ebx,edx + mov eax,DWORD PTR 4[esi] + adc ecx,0 + ; sqr a[1]*a[1] + mul eax + add ebp,eax + adc ebx,edx + mov edx,DWORD PTR [esi] + adc ecx,0 + mov DWORD PTR 8[edi],ebp + mov eax,DWORD PTR 12[esi] + ; saved r[2] + ; ############### Calculate word 3 + xor ebp,ebp + ; sqr a[3]*a[0] + mul edx + add eax,eax + adc edx,edx + adc ebp,0 + add ebx,eax + adc ecx,edx + mov eax,DWORD PTR 8[esi] + adc ebp,0 + mov edx,DWORD PTR 4[esi] + ; sqr a[2]*a[1] + mul edx + add eax,eax + adc edx,edx + adc ebp,0 + add ebx,eax + adc ecx,edx + mov eax,DWORD PTR 16[esi] + adc ebp,0 + mov DWORD PTR 12[edi],ebx + mov edx,DWORD PTR [esi] + ; saved r[3] + ; ############### Calculate word 4 + xor ebx,ebx + ; sqr a[4]*a[0] + mul edx + add eax,eax + adc edx,edx + adc ebx,0 + add ecx,eax + adc ebp,edx + mov eax,DWORD PTR 12[esi] + adc ebx,0 + mov edx,DWORD PTR 4[esi] + ; sqr a[3]*a[1] + mul edx + add eax,eax + adc edx,edx + adc ebx,0 + add ecx,eax + adc ebp,edx + mov eax,DWORD PTR 8[esi] + adc ebx,0 + ; sqr a[2]*a[2] + mul eax + add ecx,eax + adc ebp,edx + mov edx,DWORD PTR [esi] + adc ebx,0 + mov DWORD PTR 16[edi],ecx + mov eax,DWORD PTR 20[esi] + ; saved r[4] + ; ############### Calculate word 5 + xor ecx,ecx + ; sqr a[5]*a[0] + mul edx + add eax,eax + adc edx,edx + adc ecx,0 + add ebp,eax + adc ebx,edx + mov eax,DWORD PTR 16[esi] + adc ecx,0 + mov edx,DWORD PTR 4[esi] + ; sqr a[4]*a[1] + mul edx + add eax,eax + adc edx,edx + adc ecx,0 + add ebp,eax + adc ebx,edx + mov eax,DWORD PTR 12[esi] + adc ecx,0 + mov edx,DWORD PTR 8[esi] + ; sqr a[3]*a[2] + mul edx + add eax,eax + adc edx,edx + adc ecx,0 + add ebp,eax + adc ebx,edx + mov eax,DWORD PTR 24[esi] + adc ecx,0 + mov DWORD PTR 20[edi],ebp + mov edx,DWORD PTR [esi] + ; saved r[5] + ; ############### Calculate word 6 + xor ebp,ebp + ; sqr a[6]*a[0] + mul edx + add eax,eax + adc edx,edx + adc ebp,0 + add ebx,eax + adc ecx,edx + mov eax,DWORD PTR 20[esi] + adc ebp,0 + mov edx,DWORD PTR 4[esi] + ; sqr a[5]*a[1] + mul edx + add eax,eax + adc edx,edx + adc ebp,0 + add ebx,eax + adc ecx,edx + mov eax,DWORD PTR 16[esi] + adc ebp,0 + mov edx,DWORD PTR 8[esi] + ; sqr a[4]*a[2] + mul edx + add eax,eax + adc edx,edx + adc ebp,0 + add ebx,eax + adc ecx,edx + mov eax,DWORD PTR 12[esi] + adc ebp,0 + ; sqr a[3]*a[3] + mul eax + add ebx,eax + adc ecx,edx + mov edx,DWORD PTR [esi] + adc ebp,0 + mov DWORD PTR 24[edi],ebx + mov eax,DWORD PTR 28[esi] + ; saved r[6] + ; ############### Calculate word 7 + xor ebx,ebx + ; sqr a[7]*a[0] + mul edx + add eax,eax + adc edx,edx + adc ebx,0 + add ecx,eax + adc ebp,edx + mov eax,DWORD PTR 24[esi] + adc ebx,0 + mov edx,DWORD PTR 4[esi] + ; sqr a[6]*a[1] + mul edx + add eax,eax + adc edx,edx + adc ebx,0 + add ecx,eax + adc ebp,edx + mov eax,DWORD PTR 20[esi] + adc ebx,0 + mov edx,DWORD PTR 8[esi] + ; sqr a[5]*a[2] + mul edx + add eax,eax + adc edx,edx + adc ebx,0 + add ecx,eax + adc ebp,edx + mov eax,DWORD PTR 16[esi] + adc ebx,0 + mov edx,DWORD PTR 12[esi] + ; sqr a[4]*a[3] + mul edx + add eax,eax + adc edx,edx + adc ebx,0 + add ecx,eax + adc ebp,edx + mov eax,DWORD PTR 28[esi] + adc ebx,0 + mov DWORD PTR 28[edi],ecx + mov edx,DWORD PTR 4[esi] + ; saved r[7] + ; ############### Calculate word 8 + xor ecx,ecx + ; sqr a[7]*a[1] + mul edx + add eax,eax + adc edx,edx + adc ecx,0 + add ebp,eax + adc ebx,edx + mov eax,DWORD PTR 24[esi] + adc ecx,0 + mov edx,DWORD PTR 8[esi] + ; sqr a[6]*a[2] + mul edx + add eax,eax + adc edx,edx + adc ecx,0 + add ebp,eax + adc ebx,edx + mov eax,DWORD PTR 20[esi] + adc ecx,0 + mov edx,DWORD PTR 12[esi] + ; sqr a[5]*a[3] + mul edx + add eax,eax + adc edx,edx + adc ecx,0 + add ebp,eax + adc ebx,edx + mov eax,DWORD PTR 16[esi] + adc ecx,0 + ; sqr a[4]*a[4] + mul eax + add ebp,eax + adc ebx,edx + mov edx,DWORD PTR 8[esi] + adc ecx,0 + mov DWORD PTR 32[edi],ebp + mov eax,DWORD PTR 28[esi] + ; saved r[8] + ; ############### Calculate word 9 + xor ebp,ebp + ; sqr a[7]*a[2] + mul edx + add eax,eax + adc edx,edx + adc ebp,0 + add ebx,eax + adc ecx,edx + mov eax,DWORD PTR 24[esi] + adc ebp,0 + mov edx,DWORD PTR 12[esi] + ; sqr a[6]*a[3] + mul edx + add eax,eax + adc edx,edx + adc ebp,0 + add ebx,eax + adc ecx,edx + mov eax,DWORD PTR 20[esi] + adc ebp,0 + mov edx,DWORD PTR 16[esi] + ; sqr a[5]*a[4] + mul edx + add eax,eax + adc edx,edx + adc ebp,0 + add ebx,eax + adc ecx,edx + mov eax,DWORD PTR 28[esi] + adc ebp,0 + mov DWORD PTR 36[edi],ebx + mov edx,DWORD PTR 12[esi] + ; saved r[9] + ; ############### Calculate word 10 + xor ebx,ebx + ; sqr a[7]*a[3] + mul edx + add eax,eax + adc edx,edx + adc ebx,0 + add ecx,eax + adc ebp,edx + mov eax,DWORD PTR 24[esi] + adc ebx,0 + mov edx,DWORD PTR 16[esi] + ; sqr a[6]*a[4] + mul edx + add eax,eax + adc edx,edx + adc ebx,0 + add ecx,eax + adc ebp,edx + mov eax,DWORD PTR 20[esi] + adc ebx,0 + ; sqr a[5]*a[5] + mul eax + add ecx,eax + adc ebp,edx + mov edx,DWORD PTR 16[esi] + adc ebx,0 + mov DWORD PTR 40[edi],ecx + mov eax,DWORD PTR 28[esi] + ; saved r[10] + ; ############### Calculate word 11 + xor ecx,ecx + ; sqr a[7]*a[4] + mul edx + add eax,eax + adc edx,edx + adc ecx,0 + add ebp,eax + adc ebx,edx + mov eax,DWORD PTR 24[esi] + adc ecx,0 + mov edx,DWORD PTR 20[esi] + ; sqr a[6]*a[5] + mul edx + add eax,eax + adc edx,edx + adc ecx,0 + add ebp,eax + adc ebx,edx + mov eax,DWORD PTR 28[esi] + adc ecx,0 + mov DWORD PTR 44[edi],ebp + mov edx,DWORD PTR 20[esi] + ; saved r[11] + ; ############### Calculate word 12 + xor ebp,ebp + ; sqr a[7]*a[5] + mul edx + add eax,eax + adc edx,edx + adc ebp,0 + add ebx,eax + adc ecx,edx + mov eax,DWORD PTR 24[esi] + adc ebp,0 + ; sqr a[6]*a[6] + mul eax + add ebx,eax + adc ecx,edx + mov edx,DWORD PTR 24[esi] + adc ebp,0 + mov DWORD PTR 48[edi],ebx + mov eax,DWORD PTR 28[esi] + ; saved r[12] + ; ############### Calculate word 13 + xor ebx,ebx + ; sqr a[7]*a[6] + mul edx + add eax,eax + adc edx,edx + adc ebx,0 + add ecx,eax + adc ebp,edx + mov eax,DWORD PTR 28[esi] + adc ebx,0 + mov DWORD PTR 52[edi],ecx + ; saved r[13] + ; ############### Calculate word 14 + xor ecx,ecx + ; sqr a[7]*a[7] + mul eax + add ebp,eax + adc ebx,edx + adc ecx,0 + mov DWORD PTR 56[edi],ebp + ; saved r[14] + mov DWORD PTR 60[edi],ebx + pop ebx + pop ebp + pop edi + pop esi + ret +_bn_sqr_comba8 ENDP +ALIGN 16 +_bn_sqr_comba4 PROC PUBLIC +$L_bn_sqr_comba4_begin:: + push esi + push edi + push ebp + push ebx + mov edi,DWORD PTR 20[esp] + mov esi,DWORD PTR 24[esp] + xor ebx,ebx + xor ecx,ecx + mov eax,DWORD PTR [esi] + ; ############### Calculate word 0 + xor ebp,ebp + ; sqr a[0]*a[0] + mul eax + add ebx,eax + adc ecx,edx + mov edx,DWORD PTR [esi] + adc ebp,0 + mov DWORD PTR [edi],ebx + mov eax,DWORD PTR 4[esi] + ; saved r[0] + ; ############### Calculate word 1 + xor ebx,ebx + ; sqr a[1]*a[0] + mul edx + add eax,eax + adc edx,edx + adc ebx,0 + add ecx,eax + adc ebp,edx + mov eax,DWORD PTR 8[esi] + adc ebx,0 + mov DWORD PTR 4[edi],ecx + mov edx,DWORD PTR [esi] + ; saved r[1] + ; ############### Calculate word 2 + xor ecx,ecx + ; sqr a[2]*a[0] + mul edx + add eax,eax + adc edx,edx + adc ecx,0 + add ebp,eax + adc ebx,edx + mov eax,DWORD PTR 4[esi] + adc ecx,0 + ; sqr a[1]*a[1] + mul eax + add ebp,eax + adc ebx,edx + mov edx,DWORD PTR [esi] + adc ecx,0 + mov DWORD PTR 8[edi],ebp + mov eax,DWORD PTR 12[esi] + ; saved r[2] + ; ############### Calculate word 3 + xor ebp,ebp + ; sqr a[3]*a[0] + mul edx + add eax,eax + adc edx,edx + adc ebp,0 + add ebx,eax + adc ecx,edx + mov eax,DWORD PTR 8[esi] + adc ebp,0 + mov edx,DWORD PTR 4[esi] + ; sqr a[2]*a[1] + mul edx + add eax,eax + adc edx,edx + adc ebp,0 + add ebx,eax + adc ecx,edx + mov eax,DWORD PTR 12[esi] + adc ebp,0 + mov DWORD PTR 12[edi],ebx + mov edx,DWORD PTR 4[esi] + ; saved r[3] + ; ############### Calculate word 4 + xor ebx,ebx + ; sqr a[3]*a[1] + mul edx + add eax,eax + adc edx,edx + adc ebx,0 + add ecx,eax + adc ebp,edx + mov eax,DWORD PTR 8[esi] + adc ebx,0 + ; sqr a[2]*a[2] + mul eax + add ecx,eax + adc ebp,edx + mov edx,DWORD PTR 8[esi] + adc ebx,0 + mov DWORD PTR 16[edi],ecx + mov eax,DWORD PTR 12[esi] + ; saved r[4] + ; ############### Calculate word 5 + xor ecx,ecx + ; sqr a[3]*a[2] + mul edx + add eax,eax + adc edx,edx + adc ecx,0 + add ebp,eax + adc ebx,edx + mov eax,DWORD PTR 12[esi] + adc ecx,0 + mov DWORD PTR 20[edi],ebp + ; saved r[5] + ; ############### Calculate word 6 + xor ebp,ebp + ; sqr a[3]*a[3] + mul eax + add ebx,eax + adc ecx,edx + adc ebp,0 + mov DWORD PTR 24[edi],ebx + ; saved r[6] + mov DWORD PTR 28[edi],ecx + pop ebx + pop ebp + pop edi + pop esi + ret +_bn_sqr_comba4 ENDP +.text$ ENDS +END diff --git a/deps/openssl/asm/x86-win32-masm/camellia/cmll-x86.asm b/deps/openssl/asm/x86-win32-masm/camellia/cmll-x86.asm new file mode 100644 index 0000000000..acdf6a2f8b --- /dev/null +++ b/deps/openssl/asm/x86-win32-masm/camellia/cmll-x86.asm @@ -0,0 +1,2367 @@ +TITLE cmll-586.asm +IF @Version LT 800 +ECHO MASM version 8.00 or later is strongly recommended. +ENDIF +.586 +.MODEL FLAT +OPTION DOTNAME +IF @Version LT 800 +.text$ SEGMENT PAGE 'CODE' +ELSE +.text$ SEGMENT ALIGN(64) 'CODE' +ENDIF +ALIGN 16 +_Camellia_EncryptBlock_Rounds PROC PUBLIC +$L_Camellia_EncryptBlock_Rounds_begin:: + push ebp + push ebx + push esi + push edi + mov eax,DWORD PTR 20[esp] + mov esi,DWORD PTR 24[esp] + mov edi,DWORD PTR 28[esp] + mov ebx,esp + sub esp,28 + and esp,-64 + lea ecx,DWORD PTR [edi-127] + sub ecx,esp + neg ecx + and ecx,960 + sub esp,ecx + add esp,4 + shl eax,6 + lea eax,DWORD PTR [eax*1+edi] + mov DWORD PTR 20[esp],ebx + mov DWORD PTR 16[esp],eax + call $L000pic_point +$L000pic_point: + pop ebp + lea ebp,DWORD PTR ($LCamellia_SBOX-$L000pic_point)[ebp] + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + bswap eax + mov edx,DWORD PTR 12[esi] + bswap ebx + bswap ecx + bswap edx + call __x86_Camellia_encrypt + mov esp,DWORD PTR 20[esp] + bswap eax + mov esi,DWORD PTR 32[esp] + bswap ebx + bswap ecx + bswap edx + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],ebx + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edx + pop edi + pop esi + pop ebx + pop ebp + ret +_Camellia_EncryptBlock_Rounds ENDP +ALIGN 16 +_Camellia_EncryptBlock PROC PUBLIC +$L_Camellia_EncryptBlock_begin:: + mov eax,128 + sub eax,DWORD PTR 4[esp] + mov eax,3 + adc eax,0 + mov DWORD PTR 4[esp],eax + jmp $L_Camellia_EncryptBlock_Rounds_begin +_Camellia_EncryptBlock ENDP +ALIGN 16 +_Camellia_encrypt PROC PUBLIC +$L_Camellia_encrypt_begin:: + push ebp + push ebx + push esi + push edi + mov esi,DWORD PTR 20[esp] + mov edi,DWORD PTR 28[esp] + mov ebx,esp + sub esp,28 + and esp,-64 + mov eax,DWORD PTR 272[edi] + lea ecx,DWORD PTR [edi-127] + sub ecx,esp + neg ecx + and ecx,960 + sub esp,ecx + add esp,4 + shl eax,6 + lea eax,DWORD PTR [eax*1+edi] + mov DWORD PTR 20[esp],ebx + mov DWORD PTR 16[esp],eax + call $L001pic_point +$L001pic_point: + pop ebp + lea ebp,DWORD PTR ($LCamellia_SBOX-$L001pic_point)[ebp] + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + bswap eax + mov edx,DWORD PTR 12[esi] + bswap ebx + bswap ecx + bswap edx + call __x86_Camellia_encrypt + mov esp,DWORD PTR 20[esp] + bswap eax + mov esi,DWORD PTR 24[esp] + bswap ebx + bswap ecx + bswap edx + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],ebx + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edx + pop edi + pop esi + pop ebx + pop ebp + ret +_Camellia_encrypt ENDP +ALIGN 16 +__x86_Camellia_encrypt PROC PRIVATE + xor eax,DWORD PTR [edi] + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + mov esi,DWORD PTR 16[edi] + mov DWORD PTR 4[esp],eax + mov DWORD PTR 8[esp],ebx + mov DWORD PTR 12[esp],ecx + mov DWORD PTR 16[esp],edx +ALIGN 16 +$L002loop: + xor eax,esi + xor ebx,DWORD PTR 20[edi] + movzx esi,ah + mov edx,DWORD PTR 2052[esi*8+ebp] + movzx esi,al + xor edx,DWORD PTR 4[esi*8+ebp] + shr eax,16 + movzx esi,bl + mov ecx,DWORD PTR [esi*8+ebp] + movzx esi,ah + xor edx,DWORD PTR [esi*8+ebp] + movzx esi,bh + xor ecx,DWORD PTR 4[esi*8+ebp] + shr ebx,16 + movzx eax,al + xor edx,DWORD PTR 2048[eax*8+ebp] + movzx esi,bh + mov eax,DWORD PTR 16[esp] + xor ecx,edx + ror edx,8 + xor ecx,DWORD PTR 2048[esi*8+ebp] + movzx esi,bl + mov ebx,DWORD PTR 12[esp] + xor edx,eax + xor ecx,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR 24[edi] + xor edx,ecx + mov DWORD PTR 16[esp],edx + xor ecx,ebx + mov DWORD PTR 12[esp],ecx + xor ecx,esi + xor edx,DWORD PTR 28[edi] + movzx esi,ch + mov ebx,DWORD PTR 2052[esi*8+ebp] + movzx esi,cl + xor ebx,DWORD PTR 4[esi*8+ebp] + shr ecx,16 + movzx esi,dl + mov eax,DWORD PTR [esi*8+ebp] + movzx esi,ch + xor ebx,DWORD PTR [esi*8+ebp] + movzx esi,dh + xor eax,DWORD PTR 4[esi*8+ebp] + shr edx,16 + movzx ecx,cl + xor ebx,DWORD PTR 2048[ecx*8+ebp] + movzx esi,dh + mov ecx,DWORD PTR 8[esp] + xor eax,ebx + ror ebx,8 + xor eax,DWORD PTR 2048[esi*8+ebp] + movzx esi,dl + mov edx,DWORD PTR 4[esp] + xor ebx,ecx + xor eax,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR 32[edi] + xor ebx,eax + mov DWORD PTR 8[esp],ebx + xor eax,edx + mov DWORD PTR 4[esp],eax + xor eax,esi + xor ebx,DWORD PTR 36[edi] + movzx esi,ah + mov edx,DWORD PTR 2052[esi*8+ebp] + movzx esi,al + xor edx,DWORD PTR 4[esi*8+ebp] + shr eax,16 + movzx esi,bl + mov ecx,DWORD PTR [esi*8+ebp] + movzx esi,ah + xor edx,DWORD PTR [esi*8+ebp] + movzx esi,bh + xor ecx,DWORD PTR 4[esi*8+ebp] + shr ebx,16 + movzx eax,al + xor edx,DWORD PTR 2048[eax*8+ebp] + movzx esi,bh + mov eax,DWORD PTR 16[esp] + xor ecx,edx + ror edx,8 + xor ecx,DWORD PTR 2048[esi*8+ebp] + movzx esi,bl + mov ebx,DWORD PTR 12[esp] + xor edx,eax + xor ecx,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR 40[edi] + xor edx,ecx + mov DWORD PTR 16[esp],edx + xor ecx,ebx + mov DWORD PTR 12[esp],ecx + xor ecx,esi + xor edx,DWORD PTR 44[edi] + movzx esi,ch + mov ebx,DWORD PTR 2052[esi*8+ebp] + movzx esi,cl + xor ebx,DWORD PTR 4[esi*8+ebp] + shr ecx,16 + movzx esi,dl + mov eax,DWORD PTR [esi*8+ebp] + movzx esi,ch + xor ebx,DWORD PTR [esi*8+ebp] + movzx esi,dh + xor eax,DWORD PTR 4[esi*8+ebp] + shr edx,16 + movzx ecx,cl + xor ebx,DWORD PTR 2048[ecx*8+ebp] + movzx esi,dh + mov ecx,DWORD PTR 8[esp] + xor eax,ebx + ror ebx,8 + xor eax,DWORD PTR 2048[esi*8+ebp] + movzx esi,dl + mov edx,DWORD PTR 4[esp] + xor ebx,ecx + xor eax,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR 48[edi] + xor ebx,eax + mov DWORD PTR 8[esp],ebx + xor eax,edx + mov DWORD PTR 4[esp],eax + xor eax,esi + xor ebx,DWORD PTR 52[edi] + movzx esi,ah + mov edx,DWORD PTR 2052[esi*8+ebp] + movzx esi,al + xor edx,DWORD PTR 4[esi*8+ebp] + shr eax,16 + movzx esi,bl + mov ecx,DWORD PTR [esi*8+ebp] + movzx esi,ah + xor edx,DWORD PTR [esi*8+ebp] + movzx esi,bh + xor ecx,DWORD PTR 4[esi*8+ebp] + shr ebx,16 + movzx eax,al + xor edx,DWORD PTR 2048[eax*8+ebp] + movzx esi,bh + mov eax,DWORD PTR 16[esp] + xor ecx,edx + ror edx,8 + xor ecx,DWORD PTR 2048[esi*8+ebp] + movzx esi,bl + mov ebx,DWORD PTR 12[esp] + xor edx,eax + xor ecx,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR 56[edi] + xor edx,ecx + mov DWORD PTR 16[esp],edx + xor ecx,ebx + mov DWORD PTR 12[esp],ecx + xor ecx,esi + xor edx,DWORD PTR 60[edi] + movzx esi,ch + mov ebx,DWORD PTR 2052[esi*8+ebp] + movzx esi,cl + xor ebx,DWORD PTR 4[esi*8+ebp] + shr ecx,16 + movzx esi,dl + mov eax,DWORD PTR [esi*8+ebp] + movzx esi,ch + xor ebx,DWORD PTR [esi*8+ebp] + movzx esi,dh + xor eax,DWORD PTR 4[esi*8+ebp] + shr edx,16 + movzx ecx,cl + xor ebx,DWORD PTR 2048[ecx*8+ebp] + movzx esi,dh + mov ecx,DWORD PTR 8[esp] + xor eax,ebx + ror ebx,8 + xor eax,DWORD PTR 2048[esi*8+ebp] + movzx esi,dl + mov edx,DWORD PTR 4[esp] + xor ebx,ecx + xor eax,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR 64[edi] + xor ebx,eax + mov DWORD PTR 8[esp],ebx + xor eax,edx + mov DWORD PTR 4[esp],eax + add edi,64 + cmp edi,DWORD PTR 20[esp] + je $L003done + and esi,eax + mov edx,DWORD PTR 16[esp] + rol esi,1 + mov ecx,edx + xor ebx,esi + or ecx,DWORD PTR 12[edi] + mov DWORD PTR 8[esp],ebx + xor ecx,DWORD PTR 12[esp] + mov esi,DWORD PTR 4[edi] + mov DWORD PTR 12[esp],ecx + or esi,ebx + and ecx,DWORD PTR 8[edi] + xor eax,esi + rol ecx,1 + mov DWORD PTR 4[esp],eax + xor edx,ecx + mov esi,DWORD PTR 16[edi] + mov DWORD PTR 16[esp],edx + jmp $L002loop +ALIGN 8 +$L003done: + mov ecx,eax + mov edx,ebx + mov eax,DWORD PTR 12[esp] + mov ebx,DWORD PTR 16[esp] + xor eax,esi + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + ret +__x86_Camellia_encrypt ENDP +ALIGN 16 +_Camellia_DecryptBlock_Rounds PROC PUBLIC +$L_Camellia_DecryptBlock_Rounds_begin:: + push ebp + push ebx + push esi + push edi + mov eax,DWORD PTR 20[esp] + mov esi,DWORD PTR 24[esp] + mov edi,DWORD PTR 28[esp] + mov ebx,esp + sub esp,28 + and esp,-64 + lea ecx,DWORD PTR [edi-127] + sub ecx,esp + neg ecx + and ecx,960 + sub esp,ecx + add esp,4 + shl eax,6 + mov DWORD PTR 16[esp],edi + lea edi,DWORD PTR [eax*1+edi] + mov DWORD PTR 20[esp],ebx + call $L004pic_point +$L004pic_point: + pop ebp + lea ebp,DWORD PTR ($LCamellia_SBOX-$L004pic_point)[ebp] + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + bswap eax + mov edx,DWORD PTR 12[esi] + bswap ebx + bswap ecx + bswap edx + call __x86_Camellia_decrypt + mov esp,DWORD PTR 20[esp] + bswap eax + mov esi,DWORD PTR 32[esp] + bswap ebx + bswap ecx + bswap edx + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],ebx + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edx + pop edi + pop esi + pop ebx + pop ebp + ret +_Camellia_DecryptBlock_Rounds ENDP +ALIGN 16 +_Camellia_DecryptBlock PROC PUBLIC +$L_Camellia_DecryptBlock_begin:: + mov eax,128 + sub eax,DWORD PTR 4[esp] + mov eax,3 + adc eax,0 + mov DWORD PTR 4[esp],eax + jmp $L_Camellia_DecryptBlock_Rounds_begin +_Camellia_DecryptBlock ENDP +ALIGN 16 +_Camellia_decrypt PROC PUBLIC +$L_Camellia_decrypt_begin:: + push ebp + push ebx + push esi + push edi + mov esi,DWORD PTR 20[esp] + mov edi,DWORD PTR 28[esp] + mov ebx,esp + sub esp,28 + and esp,-64 + mov eax,DWORD PTR 272[edi] + lea ecx,DWORD PTR [edi-127] + sub ecx,esp + neg ecx + and ecx,960 + sub esp,ecx + add esp,4 + shl eax,6 + mov DWORD PTR 16[esp],edi + lea edi,DWORD PTR [eax*1+edi] + mov DWORD PTR 20[esp],ebx + call $L005pic_point +$L005pic_point: + pop ebp + lea ebp,DWORD PTR ($LCamellia_SBOX-$L005pic_point)[ebp] + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + bswap eax + mov edx,DWORD PTR 12[esi] + bswap ebx + bswap ecx + bswap edx + call __x86_Camellia_decrypt + mov esp,DWORD PTR 20[esp] + bswap eax + mov esi,DWORD PTR 24[esp] + bswap ebx + bswap ecx + bswap edx + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],ebx + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edx + pop edi + pop esi + pop ebx + pop ebp + ret +_Camellia_decrypt ENDP +ALIGN 16 +__x86_Camellia_decrypt PROC PRIVATE + xor eax,DWORD PTR [edi] + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + mov esi,DWORD PTR [edi-8] + mov DWORD PTR 4[esp],eax + mov DWORD PTR 8[esp],ebx + mov DWORD PTR 12[esp],ecx + mov DWORD PTR 16[esp],edx +ALIGN 16 +$L006loop: + xor eax,esi + xor ebx,DWORD PTR [edi-4] + movzx esi,ah + mov edx,DWORD PTR 2052[esi*8+ebp] + movzx esi,al + xor edx,DWORD PTR 4[esi*8+ebp] + shr eax,16 + movzx esi,bl + mov ecx,DWORD PTR [esi*8+ebp] + movzx esi,ah + xor edx,DWORD PTR [esi*8+ebp] + movzx esi,bh + xor ecx,DWORD PTR 4[esi*8+ebp] + shr ebx,16 + movzx eax,al + xor edx,DWORD PTR 2048[eax*8+ebp] + movzx esi,bh + mov eax,DWORD PTR 16[esp] + xor ecx,edx + ror edx,8 + xor ecx,DWORD PTR 2048[esi*8+ebp] + movzx esi,bl + mov ebx,DWORD PTR 12[esp] + xor edx,eax + xor ecx,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR [edi-16] + xor edx,ecx + mov DWORD PTR 16[esp],edx + xor ecx,ebx + mov DWORD PTR 12[esp],ecx + xor ecx,esi + xor edx,DWORD PTR [edi-12] + movzx esi,ch + mov ebx,DWORD PTR 2052[esi*8+ebp] + movzx esi,cl + xor ebx,DWORD PTR 4[esi*8+ebp] + shr ecx,16 + movzx esi,dl + mov eax,DWORD PTR [esi*8+ebp] + movzx esi,ch + xor ebx,DWORD PTR [esi*8+ebp] + movzx esi,dh + xor eax,DWORD PTR 4[esi*8+ebp] + shr edx,16 + movzx ecx,cl + xor ebx,DWORD PTR 2048[ecx*8+ebp] + movzx esi,dh + mov ecx,DWORD PTR 8[esp] + xor eax,ebx + ror ebx,8 + xor eax,DWORD PTR 2048[esi*8+ebp] + movzx esi,dl + mov edx,DWORD PTR 4[esp] + xor ebx,ecx + xor eax,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR [edi-24] + xor ebx,eax + mov DWORD PTR 8[esp],ebx + xor eax,edx + mov DWORD PTR 4[esp],eax + xor eax,esi + xor ebx,DWORD PTR [edi-20] + movzx esi,ah + mov edx,DWORD PTR 2052[esi*8+ebp] + movzx esi,al + xor edx,DWORD PTR 4[esi*8+ebp] + shr eax,16 + movzx esi,bl + mov ecx,DWORD PTR [esi*8+ebp] + movzx esi,ah + xor edx,DWORD PTR [esi*8+ebp] + movzx esi,bh + xor ecx,DWORD PTR 4[esi*8+ebp] + shr ebx,16 + movzx eax,al + xor edx,DWORD PTR 2048[eax*8+ebp] + movzx esi,bh + mov eax,DWORD PTR 16[esp] + xor ecx,edx + ror edx,8 + xor ecx,DWORD PTR 2048[esi*8+ebp] + movzx esi,bl + mov ebx,DWORD PTR 12[esp] + xor edx,eax + xor ecx,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR [edi-32] + xor edx,ecx + mov DWORD PTR 16[esp],edx + xor ecx,ebx + mov DWORD PTR 12[esp],ecx + xor ecx,esi + xor edx,DWORD PTR [edi-28] + movzx esi,ch + mov ebx,DWORD PTR 2052[esi*8+ebp] + movzx esi,cl + xor ebx,DWORD PTR 4[esi*8+ebp] + shr ecx,16 + movzx esi,dl + mov eax,DWORD PTR [esi*8+ebp] + movzx esi,ch + xor ebx,DWORD PTR [esi*8+ebp] + movzx esi,dh + xor eax,DWORD PTR 4[esi*8+ebp] + shr edx,16 + movzx ecx,cl + xor ebx,DWORD PTR 2048[ecx*8+ebp] + movzx esi,dh + mov ecx,DWORD PTR 8[esp] + xor eax,ebx + ror ebx,8 + xor eax,DWORD PTR 2048[esi*8+ebp] + movzx esi,dl + mov edx,DWORD PTR 4[esp] + xor ebx,ecx + xor eax,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR [edi-40] + xor ebx,eax + mov DWORD PTR 8[esp],ebx + xor eax,edx + mov DWORD PTR 4[esp],eax + xor eax,esi + xor ebx,DWORD PTR [edi-36] + movzx esi,ah + mov edx,DWORD PTR 2052[esi*8+ebp] + movzx esi,al + xor edx,DWORD PTR 4[esi*8+ebp] + shr eax,16 + movzx esi,bl + mov ecx,DWORD PTR [esi*8+ebp] + movzx esi,ah + xor edx,DWORD PTR [esi*8+ebp] + movzx esi,bh + xor ecx,DWORD PTR 4[esi*8+ebp] + shr ebx,16 + movzx eax,al + xor edx,DWORD PTR 2048[eax*8+ebp] + movzx esi,bh + mov eax,DWORD PTR 16[esp] + xor ecx,edx + ror edx,8 + xor ecx,DWORD PTR 2048[esi*8+ebp] + movzx esi,bl + mov ebx,DWORD PTR 12[esp] + xor edx,eax + xor ecx,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR [edi-48] + xor edx,ecx + mov DWORD PTR 16[esp],edx + xor ecx,ebx + mov DWORD PTR 12[esp],ecx + xor ecx,esi + xor edx,DWORD PTR [edi-44] + movzx esi,ch + mov ebx,DWORD PTR 2052[esi*8+ebp] + movzx esi,cl + xor ebx,DWORD PTR 4[esi*8+ebp] + shr ecx,16 + movzx esi,dl + mov eax,DWORD PTR [esi*8+ebp] + movzx esi,ch + xor ebx,DWORD PTR [esi*8+ebp] + movzx esi,dh + xor eax,DWORD PTR 4[esi*8+ebp] + shr edx,16 + movzx ecx,cl + xor ebx,DWORD PTR 2048[ecx*8+ebp] + movzx esi,dh + mov ecx,DWORD PTR 8[esp] + xor eax,ebx + ror ebx,8 + xor eax,DWORD PTR 2048[esi*8+ebp] + movzx esi,dl + mov edx,DWORD PTR 4[esp] + xor ebx,ecx + xor eax,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR [edi-56] + xor ebx,eax + mov DWORD PTR 8[esp],ebx + xor eax,edx + mov DWORD PTR 4[esp],eax + sub edi,64 + cmp edi,DWORD PTR 20[esp] + je $L007done + and esi,eax + mov edx,DWORD PTR 16[esp] + rol esi,1 + mov ecx,edx + xor ebx,esi + or ecx,DWORD PTR 4[edi] + mov DWORD PTR 8[esp],ebx + xor ecx,DWORD PTR 12[esp] + mov esi,DWORD PTR 12[edi] + mov DWORD PTR 12[esp],ecx + or esi,ebx + and ecx,DWORD PTR [edi] + xor eax,esi + rol ecx,1 + mov DWORD PTR 4[esp],eax + xor edx,ecx + mov esi,DWORD PTR [edi-8] + mov DWORD PTR 16[esp],edx + jmp $L006loop +ALIGN 8 +$L007done: + mov ecx,eax + mov edx,ebx + mov eax,DWORD PTR 12[esp] + mov ebx,DWORD PTR 16[esp] + xor ecx,esi + xor edx,DWORD PTR 12[edi] + xor eax,DWORD PTR [edi] + xor ebx,DWORD PTR 4[edi] + ret +__x86_Camellia_decrypt ENDP +ALIGN 16 +_Camellia_Ekeygen PROC PUBLIC +$L_Camellia_Ekeygen_begin:: + push ebp + push ebx + push esi + push edi + sub esp,16 + mov ebp,DWORD PTR 36[esp] + mov esi,DWORD PTR 40[esp] + mov edi,DWORD PTR 44[esp] + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 12[esi] + bswap eax + bswap ebx + bswap ecx + bswap edx + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + mov DWORD PTR 8[edi],ecx + mov DWORD PTR 12[edi],edx + cmp ebp,128 + je $L0081st128 + mov eax,DWORD PTR 16[esi] + mov ebx,DWORD PTR 20[esi] + cmp ebp,192 + je $L0091st192 + mov ecx,DWORD PTR 24[esi] + mov edx,DWORD PTR 28[esi] + jmp $L0101st256 +ALIGN 4 +$L0091st192: + mov ecx,eax + mov edx,ebx + not ecx + not edx +ALIGN 4 +$L0101st256: + bswap eax + bswap ebx + bswap ecx + bswap edx + mov DWORD PTR 32[edi],eax + mov DWORD PTR 36[edi],ebx + mov DWORD PTR 40[edi],ecx + mov DWORD PTR 44[edi],edx + xor eax,DWORD PTR [edi] + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] +ALIGN 4 +$L0081st128: + call $L011pic_point +$L011pic_point: + pop ebp + lea ebp,DWORD PTR ($LCamellia_SBOX-$L011pic_point)[ebp] + lea edi,DWORD PTR ($LCamellia_SIGMA-$LCamellia_SBOX)[ebp] + mov esi,DWORD PTR [edi] + mov DWORD PTR [esp],eax + mov DWORD PTR 4[esp],ebx + mov DWORD PTR 8[esp],ecx + mov DWORD PTR 12[esp],edx + xor eax,esi + xor ebx,DWORD PTR 4[edi] + movzx esi,ah + mov edx,DWORD PTR 2052[esi*8+ebp] + movzx esi,al + xor edx,DWORD PTR 4[esi*8+ebp] + shr eax,16 + movzx esi,bl + mov ecx,DWORD PTR [esi*8+ebp] + movzx esi,ah + xor edx,DWORD PTR [esi*8+ebp] + movzx esi,bh + xor ecx,DWORD PTR 4[esi*8+ebp] + shr ebx,16 + movzx eax,al + xor edx,DWORD PTR 2048[eax*8+ebp] + movzx esi,bh + mov eax,DWORD PTR 12[esp] + xor ecx,edx + ror edx,8 + xor ecx,DWORD PTR 2048[esi*8+ebp] + movzx esi,bl + mov ebx,DWORD PTR 8[esp] + xor edx,eax + xor ecx,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR 8[edi] + xor edx,ecx + mov DWORD PTR 12[esp],edx + xor ecx,ebx + mov DWORD PTR 8[esp],ecx + xor ecx,esi + xor edx,DWORD PTR 12[edi] + movzx esi,ch + mov ebx,DWORD PTR 2052[esi*8+ebp] + movzx esi,cl + xor ebx,DWORD PTR 4[esi*8+ebp] + shr ecx,16 + movzx esi,dl + mov eax,DWORD PTR [esi*8+ebp] + movzx esi,ch + xor ebx,DWORD PTR [esi*8+ebp] + movzx esi,dh + xor eax,DWORD PTR 4[esi*8+ebp] + shr edx,16 + movzx ecx,cl + xor ebx,DWORD PTR 2048[ecx*8+ebp] + movzx esi,dh + mov ecx,DWORD PTR 4[esp] + xor eax,ebx + ror ebx,8 + xor eax,DWORD PTR 2048[esi*8+ebp] + movzx esi,dl + mov edx,DWORD PTR [esp] + xor ebx,ecx + xor eax,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR 16[edi] + xor ebx,eax + mov DWORD PTR 4[esp],ebx + xor eax,edx + mov DWORD PTR [esp],eax + mov ecx,DWORD PTR 8[esp] + mov edx,DWORD PTR 12[esp] + mov esi,DWORD PTR 44[esp] + xor eax,DWORD PTR [esi] + xor ebx,DWORD PTR 4[esi] + xor ecx,DWORD PTR 8[esi] + xor edx,DWORD PTR 12[esi] + mov esi,DWORD PTR 16[edi] + mov DWORD PTR [esp],eax + mov DWORD PTR 4[esp],ebx + mov DWORD PTR 8[esp],ecx + mov DWORD PTR 12[esp],edx + xor eax,esi + xor ebx,DWORD PTR 20[edi] + movzx esi,ah + mov edx,DWORD PTR 2052[esi*8+ebp] + movzx esi,al + xor edx,DWORD PTR 4[esi*8+ebp] + shr eax,16 + movzx esi,bl + mov ecx,DWORD PTR [esi*8+ebp] + movzx esi,ah + xor edx,DWORD PTR [esi*8+ebp] + movzx esi,bh + xor ecx,DWORD PTR 4[esi*8+ebp] + shr ebx,16 + movzx eax,al + xor edx,DWORD PTR 2048[eax*8+ebp] + movzx esi,bh + mov eax,DWORD PTR 12[esp] + xor ecx,edx + ror edx,8 + xor ecx,DWORD PTR 2048[esi*8+ebp] + movzx esi,bl + mov ebx,DWORD PTR 8[esp] + xor edx,eax + xor ecx,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR 24[edi] + xor edx,ecx + mov DWORD PTR 12[esp],edx + xor ecx,ebx + mov DWORD PTR 8[esp],ecx + xor ecx,esi + xor edx,DWORD PTR 28[edi] + movzx esi,ch + mov ebx,DWORD PTR 2052[esi*8+ebp] + movzx esi,cl + xor ebx,DWORD PTR 4[esi*8+ebp] + shr ecx,16 + movzx esi,dl + mov eax,DWORD PTR [esi*8+ebp] + movzx esi,ch + xor ebx,DWORD PTR [esi*8+ebp] + movzx esi,dh + xor eax,DWORD PTR 4[esi*8+ebp] + shr edx,16 + movzx ecx,cl + xor ebx,DWORD PTR 2048[ecx*8+ebp] + movzx esi,dh + mov ecx,DWORD PTR 4[esp] + xor eax,ebx + ror ebx,8 + xor eax,DWORD PTR 2048[esi*8+ebp] + movzx esi,dl + mov edx,DWORD PTR [esp] + xor ebx,ecx + xor eax,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR 32[edi] + xor ebx,eax + mov DWORD PTR 4[esp],ebx + xor eax,edx + mov DWORD PTR [esp],eax + mov ecx,DWORD PTR 8[esp] + mov edx,DWORD PTR 12[esp] + mov esi,DWORD PTR 36[esp] + cmp esi,128 + jne $L0122nd256 + mov edi,DWORD PTR 44[esp] + lea edi,DWORD PTR 128[edi] + mov DWORD PTR [edi-112],eax + mov DWORD PTR [edi-108],ebx + mov DWORD PTR [edi-104],ecx + mov DWORD PTR [edi-100],edx + mov ebp,eax + shl eax,15 + mov esi,ebx + shr esi,17 + shl ebx,15 + or eax,esi + mov esi,ecx + shl ecx,15 + mov DWORD PTR [edi-80],eax + shr esi,17 + or ebx,esi + shr ebp,17 + mov esi,edx + shr esi,17 + mov DWORD PTR [edi-76],ebx + shl edx,15 + or ecx,esi + or edx,ebp + mov DWORD PTR [edi-72],ecx + mov DWORD PTR [edi-68],edx + mov ebp,eax + shl eax,15 + mov esi,ebx + shr esi,17 + shl ebx,15 + or eax,esi + mov esi,ecx + shl ecx,15 + mov DWORD PTR [edi-64],eax + shr esi,17 + or ebx,esi + shr ebp,17 + mov esi,edx + shr esi,17 + mov DWORD PTR [edi-60],ebx + shl edx,15 + or ecx,esi + or edx,ebp + mov DWORD PTR [edi-56],ecx + mov DWORD PTR [edi-52],edx + mov ebp,eax + shl eax,15 + mov esi,ebx + shr esi,17 + shl ebx,15 + or eax,esi + mov esi,ecx + shl ecx,15 + mov DWORD PTR [edi-32],eax + shr esi,17 + or ebx,esi + shr ebp,17 + mov esi,edx + shr esi,17 + mov DWORD PTR [edi-28],ebx + shl edx,15 + or ecx,esi + or edx,ebp + mov ebp,eax + shl eax,15 + mov esi,ebx + shr esi,17 + shl ebx,15 + or eax,esi + mov esi,ecx + shl ecx,15 + mov DWORD PTR [edi-16],eax + shr esi,17 + or ebx,esi + shr ebp,17 + mov esi,edx + shr esi,17 + mov DWORD PTR [edi-12],ebx + shl edx,15 + or ecx,esi + or edx,ebp + mov DWORD PTR [edi-8],ecx + mov DWORD PTR [edi-4],edx + mov ebp,ebx + shl ebx,2 + mov esi,ecx + shr esi,30 + shl ecx,2 + or ebx,esi + mov esi,edx + shl edx,2 + mov DWORD PTR 32[edi],ebx + shr esi,30 + or ecx,esi + shr ebp,30 + mov esi,eax + shr esi,30 + mov DWORD PTR 36[edi],ecx + shl eax,2 + or edx,esi + or eax,ebp + mov DWORD PTR 40[edi],edx + mov DWORD PTR 44[edi],eax + mov ebp,ebx + shl ebx,17 + mov esi,ecx + shr esi,15 + shl ecx,17 + or ebx,esi + mov esi,edx + shl edx,17 + mov DWORD PTR 64[edi],ebx + shr esi,15 + or ecx,esi + shr ebp,15 + mov esi,eax + shr esi,15 + mov DWORD PTR 68[edi],ecx + shl eax,17 + or edx,esi + or eax,ebp + mov DWORD PTR 72[edi],edx + mov DWORD PTR 76[edi],eax + mov ebx,DWORD PTR [edi-128] + mov ecx,DWORD PTR [edi-124] + mov edx,DWORD PTR [edi-120] + mov eax,DWORD PTR [edi-116] + mov ebp,ebx + shl ebx,15 + mov esi,ecx + shr esi,17 + shl ecx,15 + or ebx,esi + mov esi,edx + shl edx,15 + mov DWORD PTR [edi-96],ebx + shr esi,17 + or ecx,esi + shr ebp,17 + mov esi,eax + shr esi,17 + mov DWORD PTR [edi-92],ecx + shl eax,15 + or edx,esi + or eax,ebp + mov DWORD PTR [edi-88],edx + mov DWORD PTR [edi-84],eax + mov ebp,ebx + shl ebx,30 + mov esi,ecx + shr esi,2 + shl ecx,30 + or ebx,esi + mov esi,edx + shl edx,30 + mov DWORD PTR [edi-48],ebx + shr esi,2 + or ecx,esi + shr ebp,2 + mov esi,eax + shr esi,2 + mov DWORD PTR [edi-44],ecx + shl eax,30 + or edx,esi + or eax,ebp + mov DWORD PTR [edi-40],edx + mov DWORD PTR [edi-36],eax + mov ebp,ebx + shl ebx,15 + mov esi,ecx + shr esi,17 + shl ecx,15 + or ebx,esi + mov esi,edx + shl edx,15 + shr esi,17 + or ecx,esi + shr ebp,17 + mov esi,eax + shr esi,17 + shl eax,15 + or edx,esi + or eax,ebp + mov DWORD PTR [edi-24],edx + mov DWORD PTR [edi-20],eax + mov ebp,ebx + shl ebx,17 + mov esi,ecx + shr esi,15 + shl ecx,17 + or ebx,esi + mov esi,edx + shl edx,17 + mov DWORD PTR [edi],ebx + shr esi,15 + or ecx,esi + shr ebp,15 + mov esi,eax + shr esi,15 + mov DWORD PTR 4[edi],ecx + shl eax,17 + or edx,esi + or eax,ebp + mov DWORD PTR 8[edi],edx + mov DWORD PTR 12[edi],eax + mov ebp,ebx + shl ebx,17 + mov esi,ecx + shr esi,15 + shl ecx,17 + or ebx,esi + mov esi,edx + shl edx,17 + mov DWORD PTR 16[edi],ebx + shr esi,15 + or ecx,esi + shr ebp,15 + mov esi,eax + shr esi,15 + mov DWORD PTR 20[edi],ecx + shl eax,17 + or edx,esi + or eax,ebp + mov DWORD PTR 24[edi],edx + mov DWORD PTR 28[edi],eax + mov ebp,ebx + shl ebx,17 + mov esi,ecx + shr esi,15 + shl ecx,17 + or ebx,esi + mov esi,edx + shl edx,17 + mov DWORD PTR 48[edi],ebx + shr esi,15 + or ecx,esi + shr ebp,15 + mov esi,eax + shr esi,15 + mov DWORD PTR 52[edi],ecx + shl eax,17 + or edx,esi + or eax,ebp + mov DWORD PTR 56[edi],edx + mov DWORD PTR 60[edi],eax + mov eax,3 + jmp $L013done +ALIGN 16 +$L0122nd256: + mov esi,DWORD PTR 44[esp] + mov DWORD PTR 48[esi],eax + mov DWORD PTR 52[esi],ebx + mov DWORD PTR 56[esi],ecx + mov DWORD PTR 60[esi],edx + xor eax,DWORD PTR 32[esi] + xor ebx,DWORD PTR 36[esi] + xor ecx,DWORD PTR 40[esi] + xor edx,DWORD PTR 44[esi] + mov esi,DWORD PTR 32[edi] + mov DWORD PTR [esp],eax + mov DWORD PTR 4[esp],ebx + mov DWORD PTR 8[esp],ecx + mov DWORD PTR 12[esp],edx + xor eax,esi + xor ebx,DWORD PTR 36[edi] + movzx esi,ah + mov edx,DWORD PTR 2052[esi*8+ebp] + movzx esi,al + xor edx,DWORD PTR 4[esi*8+ebp] + shr eax,16 + movzx esi,bl + mov ecx,DWORD PTR [esi*8+ebp] + movzx esi,ah + xor edx,DWORD PTR [esi*8+ebp] + movzx esi,bh + xor ecx,DWORD PTR 4[esi*8+ebp] + shr ebx,16 + movzx eax,al + xor edx,DWORD PTR 2048[eax*8+ebp] + movzx esi,bh + mov eax,DWORD PTR 12[esp] + xor ecx,edx + ror edx,8 + xor ecx,DWORD PTR 2048[esi*8+ebp] + movzx esi,bl + mov ebx,DWORD PTR 8[esp] + xor edx,eax + xor ecx,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR 40[edi] + xor edx,ecx + mov DWORD PTR 12[esp],edx + xor ecx,ebx + mov DWORD PTR 8[esp],ecx + xor ecx,esi + xor edx,DWORD PTR 44[edi] + movzx esi,ch + mov ebx,DWORD PTR 2052[esi*8+ebp] + movzx esi,cl + xor ebx,DWORD PTR 4[esi*8+ebp] + shr ecx,16 + movzx esi,dl + mov eax,DWORD PTR [esi*8+ebp] + movzx esi,ch + xor ebx,DWORD PTR [esi*8+ebp] + movzx esi,dh + xor eax,DWORD PTR 4[esi*8+ebp] + shr edx,16 + movzx ecx,cl + xor ebx,DWORD PTR 2048[ecx*8+ebp] + movzx esi,dh + mov ecx,DWORD PTR 4[esp] + xor eax,ebx + ror ebx,8 + xor eax,DWORD PTR 2048[esi*8+ebp] + movzx esi,dl + mov edx,DWORD PTR [esp] + xor ebx,ecx + xor eax,DWORD PTR 2052[esi*8+ebp] + mov esi,DWORD PTR 48[edi] + xor ebx,eax + mov DWORD PTR 4[esp],ebx + xor eax,edx + mov DWORD PTR [esp],eax + mov ecx,DWORD PTR 8[esp] + mov edx,DWORD PTR 12[esp] + mov edi,DWORD PTR 44[esp] + lea edi,DWORD PTR 128[edi] + mov DWORD PTR [edi-112],eax + mov DWORD PTR [edi-108],ebx + mov DWORD PTR [edi-104],ecx + mov DWORD PTR [edi-100],edx + mov ebp,eax + shl eax,30 + mov esi,ebx + shr esi,2 + shl ebx,30 + or eax,esi + mov esi,ecx + shl ecx,30 + mov DWORD PTR [edi-48],eax + shr esi,2 + or ebx,esi + shr ebp,2 + mov esi,edx + shr esi,2 + mov DWORD PTR [edi-44],ebx + shl edx,30 + or ecx,esi + or edx,ebp + mov DWORD PTR [edi-40],ecx + mov DWORD PTR [edi-36],edx + mov ebp,eax + shl eax,30 + mov esi,ebx + shr esi,2 + shl ebx,30 + or eax,esi + mov esi,ecx + shl ecx,30 + mov DWORD PTR 32[edi],eax + shr esi,2 + or ebx,esi + shr ebp,2 + mov esi,edx + shr esi,2 + mov DWORD PTR 36[edi],ebx + shl edx,30 + or ecx,esi + or edx,ebp + mov DWORD PTR 40[edi],ecx + mov DWORD PTR 44[edi],edx + mov ebp,ebx + shl ebx,19 + mov esi,ecx + shr esi,13 + shl ecx,19 + or ebx,esi + mov esi,edx + shl edx,19 + mov DWORD PTR 128[edi],ebx + shr esi,13 + or ecx,esi + shr ebp,13 + mov esi,eax + shr esi,13 + mov DWORD PTR 132[edi],ecx + shl eax,19 + or edx,esi + or eax,ebp + mov DWORD PTR 136[edi],edx + mov DWORD PTR 140[edi],eax + mov ebx,DWORD PTR [edi-96] + mov ecx,DWORD PTR [edi-92] + mov edx,DWORD PTR [edi-88] + mov eax,DWORD PTR [edi-84] + mov ebp,ebx + shl ebx,15 + mov esi,ecx + shr esi,17 + shl ecx,15 + or ebx,esi + mov esi,edx + shl edx,15 + mov DWORD PTR [edi-96],ebx + shr esi,17 + or ecx,esi + shr ebp,17 + mov esi,eax + shr esi,17 + mov DWORD PTR [edi-92],ecx + shl eax,15 + or edx,esi + or eax,ebp + mov DWORD PTR [edi-88],edx + mov DWORD PTR [edi-84],eax + mov ebp,ebx + shl ebx,15 + mov esi,ecx + shr esi,17 + shl ecx,15 + or ebx,esi + mov esi,edx + shl edx,15 + mov DWORD PTR [edi-64],ebx + shr esi,17 + or ecx,esi + shr ebp,17 + mov esi,eax + shr esi,17 + mov DWORD PTR [edi-60],ecx + shl eax,15 + or edx,esi + or eax,ebp + mov DWORD PTR [edi-56],edx + mov DWORD PTR [edi-52],eax + mov ebp,ebx + shl ebx,30 + mov esi,ecx + shr esi,2 + shl ecx,30 + or ebx,esi + mov esi,edx + shl edx,30 + mov DWORD PTR 16[edi],ebx + shr esi,2 + or ecx,esi + shr ebp,2 + mov esi,eax + shr esi,2 + mov DWORD PTR 20[edi],ecx + shl eax,30 + or edx,esi + or eax,ebp + mov DWORD PTR 24[edi],edx + mov DWORD PTR 28[edi],eax + mov ebp,ecx + shl ecx,2 + mov esi,edx + shr esi,30 + shl edx,2 + or ecx,esi + mov esi,eax + shl eax,2 + mov DWORD PTR 80[edi],ecx + shr esi,30 + or edx,esi + shr ebp,30 + mov esi,ebx + shr esi,30 + mov DWORD PTR 84[edi],edx + shl ebx,2 + or eax,esi + or ebx,ebp + mov DWORD PTR 88[edi],eax + mov DWORD PTR 92[edi],ebx + mov ecx,DWORD PTR [edi-80] + mov edx,DWORD PTR [edi-76] + mov eax,DWORD PTR [edi-72] + mov ebx,DWORD PTR [edi-68] + mov ebp,ecx + shl ecx,15 + mov esi,edx + shr esi,17 + shl edx,15 + or ecx,esi + mov esi,eax + shl eax,15 + mov DWORD PTR [edi-80],ecx + shr esi,17 + or edx,esi + shr ebp,17 + mov esi,ebx + shr esi,17 + mov DWORD PTR [edi-76],edx + shl ebx,15 + or eax,esi + or ebx,ebp + mov DWORD PTR [edi-72],eax + mov DWORD PTR [edi-68],ebx + mov ebp,ecx + shl ecx,30 + mov esi,edx + shr esi,2 + shl edx,30 + or ecx,esi + mov esi,eax + shl eax,30 + mov DWORD PTR [edi-16],ecx + shr esi,2 + or edx,esi + shr ebp,2 + mov esi,ebx + shr esi,2 + mov DWORD PTR [edi-12],edx + shl ebx,30 + or eax,esi + or ebx,ebp + mov DWORD PTR [edi-8],eax + mov DWORD PTR [edi-4],ebx + mov DWORD PTR 64[edi],edx + mov DWORD PTR 68[edi],eax + mov DWORD PTR 72[edi],ebx + mov DWORD PTR 76[edi],ecx + mov ebp,edx + shl edx,17 + mov esi,eax + shr esi,15 + shl eax,17 + or edx,esi + mov esi,ebx + shl ebx,17 + mov DWORD PTR 96[edi],edx + shr esi,15 + or eax,esi + shr ebp,15 + mov esi,ecx + shr esi,15 + mov DWORD PTR 100[edi],eax + shl ecx,17 + or ebx,esi + or ecx,ebp + mov DWORD PTR 104[edi],ebx + mov DWORD PTR 108[edi],ecx + mov edx,DWORD PTR [edi-128] + mov eax,DWORD PTR [edi-124] + mov ebx,DWORD PTR [edi-120] + mov ecx,DWORD PTR [edi-116] + mov ebp,eax + shl eax,13 + mov esi,ebx + shr esi,19 + shl ebx,13 + or eax,esi + mov esi,ecx + shl ecx,13 + mov DWORD PTR [edi-32],eax + shr esi,19 + or ebx,esi + shr ebp,19 + mov esi,edx + shr esi,19 + mov DWORD PTR [edi-28],ebx + shl edx,13 + or ecx,esi + or edx,ebp + mov DWORD PTR [edi-24],ecx + mov DWORD PTR [edi-20],edx + mov ebp,eax + shl eax,15 + mov esi,ebx + shr esi,17 + shl ebx,15 + or eax,esi + mov esi,ecx + shl ecx,15 + mov DWORD PTR [edi],eax + shr esi,17 + or ebx,esi + shr ebp,17 + mov esi,edx + shr esi,17 + mov DWORD PTR 4[edi],ebx + shl edx,15 + or ecx,esi + or edx,ebp + mov DWORD PTR 8[edi],ecx + mov DWORD PTR 12[edi],edx + mov ebp,eax + shl eax,17 + mov esi,ebx + shr esi,15 + shl ebx,17 + or eax,esi + mov esi,ecx + shl ecx,17 + mov DWORD PTR 48[edi],eax + shr esi,15 + or ebx,esi + shr ebp,15 + mov esi,edx + shr esi,15 + mov DWORD PTR 52[edi],ebx + shl edx,17 + or ecx,esi + or edx,ebp + mov DWORD PTR 56[edi],ecx + mov DWORD PTR 60[edi],edx + mov ebp,ebx + shl ebx,2 + mov esi,ecx + shr esi,30 + shl ecx,2 + or ebx,esi + mov esi,edx + shl edx,2 + mov DWORD PTR 112[edi],ebx + shr esi,30 + or ecx,esi + shr ebp,30 + mov esi,eax + shr esi,30 + mov DWORD PTR 116[edi],ecx + shl eax,2 + or edx,esi + or eax,ebp + mov DWORD PTR 120[edi],edx + mov DWORD PTR 124[edi],eax + mov eax,4 +$L013done: + lea edx,DWORD PTR 144[edi] + add esp,16 + pop edi + pop esi + pop ebx + pop ebp + ret +_Camellia_Ekeygen ENDP +ALIGN 16 +_Camellia_set_key PROC PUBLIC +$L_Camellia_set_key_begin:: + push ebx + mov ecx,DWORD PTR 8[esp] + mov ebx,DWORD PTR 12[esp] + mov edx,DWORD PTR 16[esp] + mov eax,-1 + test ecx,ecx + jz $L014done + test edx,edx + jz $L014done + mov eax,-2 + cmp ebx,256 + je $L015arg_ok + cmp ebx,192 + je $L015arg_ok + cmp ebx,128 + jne $L014done +ALIGN 4 +$L015arg_ok: + push edx + push ecx + push ebx + call $L_Camellia_Ekeygen_begin + add esp,12 + mov DWORD PTR [edx],eax + xor eax,eax +ALIGN 4 +$L014done: + pop ebx + ret +_Camellia_set_key ENDP +ALIGN 64 +$LCamellia_SIGMA:: +DD 2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0 +ALIGN 64 +$LCamellia_SBOX:: +DD 1886416896,1886388336 +DD 2189591040,741081132 +DD 741092352,3014852787 +DD 3974949888,3233808576 +DD 3014898432,3840147684 +DD 656877312,1465319511 +DD 3233857536,3941204202 +DD 3857048832,2930639022 +DD 3840205824,589496355 +DD 2240120064,1802174571 +DD 1465341696,1162149957 +DD 892679424,2779054245 +DD 3941263872,3991732461 +DD 202116096,1330577487 +DD 2930683392,488439837 +DD 1094795520,2459041938 +DD 589505280,2256928902 +DD 4025478912,2947481775 +DD 1802201856,2088501372 +DD 2475922176,522125343 +DD 1162167552,1044250686 +DD 421075200,3705405660 +DD 2779096320,1583218782 +DD 555819264,185270283 +DD 3991792896,2795896998 +DD 235802112,960036921 +DD 1330597632,3587506389 +DD 1313754624,1566376029 +DD 488447232,3654877401 +DD 1701143808,1515847770 +DD 2459079168,1364262993 +DD 3183328512,1819017324 +DD 2256963072,2341142667 +DD 3099113472,2593783962 +DD 2947526400,4227531003 +DD 2408550144,2964324528 +DD 2088532992,1953759348 +DD 3958106880,724238379 +DD 522133248,4042260720 +DD 3469659648,2223243396 +DD 1044266496,3755933919 +DD 808464384,3419078859 +DD 3705461760,875823156 +DD 1600085760,1987444854 +DD 1583242752,1835860077 +DD 3318072576,2846425257 +DD 185273088,3520135377 +DD 437918208,67371012 +DD 2795939328,336855060 +DD 3789676800,976879674 +DD 960051456,3739091166 +DD 3402287616,286326801 +DD 3587560704,842137650 +DD 1195853568,2627469468 +DD 1566399744,1397948499 +DD 1027423488,4075946226 +DD 3654932736,4278059262 +DD 16843008,3486449871 +DD 1515870720,3284336835 +DD 3604403712,2054815866 +DD 1364283648,606339108 +DD 1448498688,3907518696 +DD 1819044864,1616904288 +DD 1296911616,1768489065 +DD 2341178112,2863268010 +DD 218959104,2694840480 +DD 2593823232,2711683233 +DD 1717986816,1650589794 +DD 4227595008,1414791252 +DD 3435973632,505282590 +DD 2964369408,3772776672 +DD 757935360,1684275300 +DD 1953788928,269484048 +DD 303174144,0 +DD 724249344,2745368739 +DD 538976256,1970602101 +DD 4042321920,2324299914 +DD 2981212416,3873833190 +DD 2223277056,151584777 +DD 2576980224,3722248413 +DD 3755990784,2273771655 +DD 1280068608,2206400643 +DD 3419130624,3452764365 +DD 3267543552,2425356432 +DD 875836416,1936916595 +DD 2122219008,4143317238 +DD 1987474944,2644312221 +DD 84215040,3216965823 +DD 1835887872,1381105746 +DD 3082270464,3638034648 +DD 2846468352,3368550600 +DD 825307392,3334865094 +DD 3520188672,2172715137 +DD 387389184,1869545583 +DD 67372032,320012307 +DD 3621246720,1667432547 +DD 336860160,3924361449 +DD 1482184704,2812739751 +DD 976894464,2677997727 +DD 1633771776,3166437564 +DD 3739147776,690552873 +DD 454761216,4193845497 +DD 286331136,791609391 +DD 471604224,3031695540 +DD 842150400,2021130360 +DD 252645120,101056518 +DD 2627509248,3890675943 +DD 370546176,1903231089 +DD 1397969664,3570663636 +DD 404232192,2880110763 +DD 4076007936,2290614408 +DD 572662272,2374828173 +DD 4278124032,1920073842 +DD 1145324544,3115909305 +DD 3486502656,4177002744 +DD 2998055424,2896953516 +DD 3284386560,909508662 +DD 3048584448,707395626 +DD 2054846976,1010565180 +DD 2442236160,4059103473 +DD 606348288,1077936192 +DD 134744064,3553820883 +DD 3907577856,3149594811 +DD 2829625344,1128464451 +DD 1616928768,353697813 +DD 4244438016,2913796269 +DD 1768515840,2004287607 +DD 1347440640,2155872384 +DD 2863311360,2189557890 +DD 3503345664,3974889708 +DD 2694881280,656867367 +DD 2105376000,3856990437 +DD 2711724288,2240086149 +DD 2307492096,892665909 +DD 1650614784,202113036 +DD 2543294208,1094778945 +DD 1414812672,4025417967 +DD 1532713728,2475884691 +DD 505290240,421068825 +DD 2509608192,555810849 +DD 3772833792,235798542 +DD 4294967040,1313734734 +DD 1684300800,1701118053 +DD 3537031680,3183280317 +DD 269488128,3099066552 +DD 3301229568,2408513679 +DD 0,3958046955 +DD 1212696576,3469607118 +DD 2745410304,808452144 +DD 4160222976,1600061535 +DD 1970631936,3318022341 +DD 3688618752,437911578 +DD 2324335104,3789619425 +DD 50529024,3402236106 +DD 3873891840,1195835463 +DD 3671775744,1027407933 +DD 151587072,16842753 +DD 1061109504,3604349142 +DD 3722304768,1448476758 +DD 2492765184,1296891981 +DD 2273806080,218955789 +DD 1549556736,1717960806 +DD 2206434048,3435921612 +DD 33686016,757923885 +DD 3452816640,303169554 +DD 1246382592,538968096 +DD 2425393152,2981167281 +DD 858993408,2576941209 +DD 1936945920,1280049228 +DD 1734829824,3267494082 +DD 4143379968,2122186878 +DD 4092850944,84213765 +DD 2644352256,3082223799 +DD 2139062016,825294897 +DD 3217014528,387383319 +DD 3806519808,3621191895 +DD 1381126656,1482162264 +DD 2610666240,1633747041 +DD 3638089728,454754331 +DD 640034304,471597084 +DD 3368601600,252641295 +DD 926365440,370540566 +DD 3334915584,404226072 +DD 993737472,572653602 +DD 2172748032,1145307204 +DD 2526451200,2998010034 +DD 1869573888,3048538293 +DD 1263225600,2442199185 +DD 320017152,134742024 +DD 3200171520,2829582504 +DD 1667457792,4244373756 +DD 774778368,1347420240 +DD 3924420864,3503292624 +DD 2038003968,2105344125 +DD 2812782336,2307457161 +DD 2358021120,2543255703 +DD 2678038272,1532690523 +DD 1852730880,2509570197 +DD 3166485504,4294902015 +DD 2391707136,3536978130 +DD 690563328,3301179588 +DD 4126536960,1212678216 +DD 4193908992,4160159991 +DD 3065427456,3688562907 +DD 791621376,50528259 +DD 4261281024,3671720154 +DD 3031741440,1061093439 +DD 1499027712,2492727444 +DD 2021160960,1549533276 +DD 2560137216,33685506 +DD 101058048,1246363722 +DD 1785358848,858980403 +DD 3890734848,1734803559 +DD 1179010560,4092788979 +DD 1903259904,2139029631 +DD 3132799488,3806462178 +DD 3570717696,2610626715 +DD 623191296,640024614 +DD 2880154368,926351415 +DD 1111638528,993722427 +DD 2290649088,2526412950 +DD 2728567296,1263206475 +DD 2374864128,3200123070 +DD 4210752000,774766638 +DD 1920102912,2037973113 +DD 117901056,2357985420 +DD 3115956480,1852702830 +DD 1431655680,2391670926 +DD 4177065984,4126474485 +DD 4008635904,3065381046 +DD 2896997376,4261216509 +DD 168430080,1499005017 +DD 909522432,2560098456 +DD 1229539584,1785331818 +DD 707406336,1178992710 +DD 1751672832,3132752058 +DD 1010580480,623181861 +DD 943208448,1111621698 +DD 4059164928,2728525986 +DD 2762253312,4210688250 +DD 1077952512,117899271 +DD 673720320,1431634005 +DD 3553874688,4008575214 +DD 2071689984,168427530 +DD 3149642496,1229520969 +DD 3385444608,1751646312 +DD 1128481536,943194168 +DD 3250700544,2762211492 +DD 353703168,673710120 +DD 3823362816,2071658619 +DD 2913840384,3385393353 +DD 4109693952,3250651329 +DD 2004317952,3823304931 +DD 3351758592,4109631732 +DD 2155905024,3351707847 +DD 2661195264,2661154974 +DD 14737632,939538488 +DD 328965,1090535745 +DD 5789784,369104406 +DD 14277081,1979741814 +DD 6776679,3640711641 +DD 5131854,2466288531 +DD 8487297,1610637408 +DD 13355979,4060148466 +DD 13224393,1912631922 +DD 723723,3254829762 +DD 11447982,2868947883 +DD 6974058,2583730842 +DD 14013909,1962964341 +DD 1579032,100664838 +DD 6118749,1459640151 +DD 8553090,2684395680 +DD 4605510,2432733585 +DD 14671839,4144035831 +DD 14079702,3036722613 +DD 2565927,3372272073 +DD 9079434,2717950626 +DD 3289650,2348846220 +DD 4934475,3523269330 +DD 4342338,2415956112 +DD 14408667,4127258358 +DD 1842204,117442311 +DD 10395294,2801837991 +DD 10263708,654321447 +DD 3815994,2382401166 +DD 13290186,2986390194 +DD 2434341,1224755529 +DD 8092539,3724599006 +DD 855309,1124090691 +DD 7434609,1543527516 +DD 6250335,3607156695 +DD 2039583,3338717127 +DD 16316664,1040203326 +DD 14145495,4110480885 +DD 4079166,2399178639 +DD 10329501,1728079719 +DD 8158332,520101663 +DD 6316128,402659352 +DD 12171705,1845522030 +DD 12500670,2936057775 +DD 12369084,788541231 +DD 9145227,3791708898 +DD 1447446,2231403909 +DD 3421236,218107149 +DD 5066061,1392530259 +DD 12829635,4026593520 +DD 7500402,2617285788 +DD 9803157,1694524773 +DD 11250603,3925928682 +DD 9342606,2734728099 +DD 12237498,2919280302 +DD 8026746,2650840734 +DD 11776947,3959483628 +DD 131586,2147516544 +DD 11842740,754986285 +DD 11382189,1795189611 +DD 10658466,2818615464 +DD 11316396,721431339 +DD 14211288,905983542 +DD 10132122,2785060518 +DD 1513239,3305162181 +DD 1710618,2248181382 +DD 3487029,1291865421 +DD 13421772,855651123 +DD 16250871,4244700669 +DD 10066329,1711302246 +DD 6381921,1476417624 +DD 5921370,2516620950 +DD 15263976,973093434 +DD 2368548,150997257 +DD 5658198,2499843477 +DD 4210752,268439568 +DD 14803425,2013296760 +DD 6513507,3623934168 +DD 592137,1107313218 +DD 3355443,3422604492 +DD 12566463,4009816047 +DD 10000536,637543974 +DD 9934743,3842041317 +DD 8750469,1627414881 +DD 6842472,436214298 +DD 16579836,1056980799 +DD 15527148,989870907 +DD 657930,2181071490 +DD 14342874,3053500086 +DD 7303023,3674266587 +DD 5460819,3556824276 +DD 6447714,2550175896 +DD 10724259,3892373736 +DD 3026478,2332068747 +DD 526344,33554946 +DD 11513775,3942706155 +DD 2631720,167774730 +DD 11579568,738208812 +DD 7631988,486546717 +DD 12763842,2952835248 +DD 12434877,1862299503 +DD 3552822,2365623693 +DD 2236962,2281736328 +DD 3684408,234884622 +DD 6579300,419436825 +DD 1973790,2264958855 +DD 3750201,1308642894 +DD 2894892,184552203 +DD 10921638,2835392937 +DD 3158064,201329676 +DD 15066597,2030074233 +DD 4473924,285217041 +DD 16645629,2130739071 +DD 8947848,570434082 +DD 10461087,3875596263 +DD 6645093,1493195097 +DD 8882055,3774931425 +DD 7039851,3657489114 +DD 16053492,1023425853 +DD 2302755,3355494600 +DD 4737096,301994514 +DD 1052688,67109892 +DD 13750737,1946186868 +DD 5329233,1409307732 +DD 12632256,805318704 +DD 16382457,2113961598 +DD 13816530,3019945140 +DD 10526880,671098920 +DD 5592405,1426085205 +DD 10592673,1744857192 +DD 4276545,1342197840 +DD 16448250,3187719870 +DD 4408131,3489714384 +DD 1250067,3288384708 +DD 12895428,822096177 +DD 3092271,3405827019 +DD 11053224,704653866 +DD 11974326,2902502829 +DD 3947580,251662095 +DD 2829099,3389049546 +DD 12698049,1879076976 +DD 16777215,4278255615 +DD 13158600,838873650 +DD 10855845,1761634665 +DD 2105376,134219784 +DD 9013641,1644192354 +DD 0,0 +DD 9474192,603989028 +DD 4671303,3506491857 +DD 15724527,4211145723 +DD 15395562,3120609978 +DD 12040119,3976261101 +DD 1381653,1157645637 +DD 394758,2164294017 +DD 13487565,1929409395 +DD 11908533,1828744557 +DD 1184274,2214626436 +DD 8289918,2667618207 +DD 12303291,3993038574 +DD 2697513,1241533002 +DD 986895,3271607235 +DD 12105912,771763758 +DD 460551,3238052289 +DD 263172,16777473 +DD 10197915,3858818790 +DD 9737364,620766501 +DD 2171169,1207978056 +DD 6710886,2566953369 +DD 15132390,3103832505 +DD 13553358,3003167667 +DD 15592941,2063629179 +DD 15198183,4177590777 +DD 3881787,3456159438 +DD 16711422,3204497343 +DD 8355711,3741376479 +DD 12961221,1895854449 +DD 10790052,687876393 +DD 3618615,3439381965 +DD 11645361,1811967084 +DD 5000268,318771987 +DD 9539985,1677747300 +DD 7237230,2600508315 +DD 9276813,1660969827 +DD 7763574,2634063261 +DD 197379,3221274816 +DD 2960685,1258310475 +DD 14606046,3070277559 +DD 9868950,2768283045 +DD 2500134,2298513801 +DD 8224125,1593859935 +DD 13027014,2969612721 +DD 6052956,385881879 +DD 13882323,4093703412 +DD 15921906,3154164924 +DD 5197647,3540046803 +DD 1644825,1174423110 +DD 4144959,3472936911 +DD 14474460,922761015 +DD 7960953,1577082462 +DD 1907997,1191200583 +DD 5395026,2483066004 +DD 15461355,4194368250 +DD 15987699,4227923196 +DD 7171437,1526750043 +DD 6184542,2533398423 +DD 16514043,4261478142 +DD 6908265,1509972570 +DD 11711154,2885725356 +DD 15790320,1006648380 +DD 3223857,1275087948 +DD 789516,50332419 +DD 13948116,889206069 +DD 13619151,4076925939 +DD 9211020,587211555 +DD 14869218,3087055032 +DD 7697781,1560304989 +DD 11119017,1778412138 +DD 4868682,2449511058 +DD 5723991,3573601749 +DD 8684676,553656609 +DD 1118481,1140868164 +DD 4539717,1358975313 +DD 1776411,3321939654 +DD 16119285,2097184125 +DD 15000804,956315961 +DD 921102,2197848963 +DD 7566195,3691044060 +DD 11184810,2852170410 +DD 15856113,2080406652 +DD 14540253,1996519287 +DD 5855577,1442862678 +DD 1315860,83887365 +DD 7105644,452991771 +DD 9605778,2751505572 +DD 5526612,352326933 +DD 13684944,872428596 +DD 7895160,503324190 +DD 7368816,469769244 +DD 14935011,4160813304 +DD 4802889,1375752786 +DD 8421504,536879136 +DD 5263440,335549460 +DD 10987431,3909151209 +DD 16185078,3170942397 +DD 7829367,3707821533 +DD 9671571,3825263844 +DD 8816262,2701173153 +DD 8618883,3758153952 +DD 2763306,2315291274 +DD 13092807,4043370993 +DD 5987163,3590379222 +DD 15329769,2046851706 +DD 15658734,3137387451 +DD 9408399,3808486371 +DD 65793,1073758272 +DD 4013373,1325420367 +ALIGN 16 +_Camellia_cbc_encrypt PROC PUBLIC +$L_Camellia_cbc_encrypt_begin:: + push ebp + push ebx + push esi + push edi + mov ecx,DWORD PTR 28[esp] + cmp ecx,0 + je $L016enc_out + pushfd + cld + mov eax,DWORD PTR 24[esp] + mov ebx,DWORD PTR 28[esp] + mov edx,DWORD PTR 36[esp] + mov ebp,DWORD PTR 40[esp] + lea esi,DWORD PTR [esp-64] + and esi,-64 + lea edi,DWORD PTR [edx-127] + sub edi,esi + neg edi + and edi,960 + sub esi,edi + mov edi,DWORD PTR 44[esp] + xchg esp,esi + add esp,4 + mov DWORD PTR 20[esp],esi + mov DWORD PTR 24[esp],eax + mov DWORD PTR 28[esp],ebx + mov DWORD PTR 32[esp],ecx + mov DWORD PTR 36[esp],edx + mov DWORD PTR 40[esp],ebp + call $L017pic_point +$L017pic_point: + pop ebp + lea ebp,DWORD PTR ($LCamellia_SBOX-$L017pic_point)[ebp] + mov esi,32 +ALIGN 4 +$L018prefetch_sbox: + mov eax,DWORD PTR [ebp] + mov ebx,DWORD PTR 32[ebp] + mov ecx,DWORD PTR 64[ebp] + mov edx,DWORD PTR 96[ebp] + lea ebp,DWORD PTR 128[ebp] + dec esi + jnz $L018prefetch_sbox + mov eax,DWORD PTR 36[esp] + sub ebp,4096 + mov esi,DWORD PTR 24[esp] + mov edx,DWORD PTR 272[eax] + cmp edi,0 + je $L019DECRYPT + mov ecx,DWORD PTR 32[esp] + mov edi,DWORD PTR 40[esp] + shl edx,6 + lea edx,DWORD PTR [edx*1+eax] + mov DWORD PTR 16[esp],edx + test ecx,4294967280 + jz $L020enc_tail + mov eax,DWORD PTR [edi] + mov ebx,DWORD PTR 4[edi] +ALIGN 4 +$L021enc_loop: + mov ecx,DWORD PTR 8[edi] + mov edx,DWORD PTR 12[edi] + xor eax,DWORD PTR [esi] + xor ebx,DWORD PTR 4[esi] + xor ecx,DWORD PTR 8[esi] + bswap eax + xor edx,DWORD PTR 12[esi] + bswap ebx + mov edi,DWORD PTR 36[esp] + bswap ecx + bswap edx + call __x86_Camellia_encrypt + mov esi,DWORD PTR 24[esp] + mov edi,DWORD PTR 28[esp] + bswap eax + bswap ebx + bswap ecx + mov DWORD PTR [edi],eax + bswap edx + mov DWORD PTR 4[edi],ebx + mov DWORD PTR 8[edi],ecx + mov DWORD PTR 12[edi],edx + mov ecx,DWORD PTR 32[esp] + lea esi,DWORD PTR 16[esi] + mov DWORD PTR 24[esp],esi + lea edx,DWORD PTR 16[edi] + mov DWORD PTR 28[esp],edx + sub ecx,16 + test ecx,4294967280 + mov DWORD PTR 32[esp],ecx + jnz $L021enc_loop + test ecx,15 + jnz $L020enc_tail + mov esi,DWORD PTR 40[esp] + mov ecx,DWORD PTR 8[edi] + mov edx,DWORD PTR 12[edi] + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],ebx + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edx + mov esp,DWORD PTR 20[esp] + popfd +$L016enc_out: + pop edi + pop esi + pop ebx + pop ebp + ret + pushfd +ALIGN 4 +$L020enc_tail: + mov eax,edi + mov edi,DWORD PTR 28[esp] + push eax + mov ebx,16 + sub ebx,ecx + cmp edi,esi + je $L022enc_in_place +ALIGN 4 +DD 2767451785 + jmp $L023enc_skip_in_place +$L022enc_in_place: + lea edi,DWORD PTR [ecx*1+edi] +$L023enc_skip_in_place: + mov ecx,ebx + xor eax,eax +ALIGN 4 +DD 2868115081 + pop edi + mov esi,DWORD PTR 28[esp] + mov eax,DWORD PTR [edi] + mov ebx,DWORD PTR 4[edi] + mov DWORD PTR 32[esp],16 + jmp $L021enc_loop +ALIGN 16 +$L019DECRYPT: + shl edx,6 + lea edx,DWORD PTR [edx*1+eax] + mov DWORD PTR 16[esp],eax + mov DWORD PTR 36[esp],edx + cmp esi,DWORD PTR 28[esp] + je $L024dec_in_place + mov edi,DWORD PTR 40[esp] + mov DWORD PTR 44[esp],edi +ALIGN 4 +$L025dec_loop: + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + bswap eax + mov edx,DWORD PTR 12[esi] + bswap ebx + mov edi,DWORD PTR 36[esp] + bswap ecx + bswap edx + call __x86_Camellia_decrypt + mov edi,DWORD PTR 44[esp] + mov esi,DWORD PTR 32[esp] + bswap eax + bswap ebx + bswap ecx + xor eax,DWORD PTR [edi] + bswap edx + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + sub esi,16 + jc $L026dec_partial + mov DWORD PTR 32[esp],esi + mov esi,DWORD PTR 24[esp] + mov edi,DWORD PTR 28[esp] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + mov DWORD PTR 8[edi],ecx + mov DWORD PTR 12[edi],edx + mov DWORD PTR 44[esp],esi + lea esi,DWORD PTR 16[esi] + mov DWORD PTR 24[esp],esi + lea edi,DWORD PTR 16[edi] + mov DWORD PTR 28[esp],edi + jnz $L025dec_loop + mov edi,DWORD PTR 44[esp] +$L027dec_end: + mov esi,DWORD PTR 40[esp] + mov eax,DWORD PTR [edi] + mov ebx,DWORD PTR 4[edi] + mov ecx,DWORD PTR 8[edi] + mov edx,DWORD PTR 12[edi] + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],ebx + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edx + jmp $L028dec_out +ALIGN 4 +$L026dec_partial: + lea edi,DWORD PTR 44[esp] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + mov DWORD PTR 8[edi],ecx + mov DWORD PTR 12[edi],edx + lea ecx,DWORD PTR 16[esi] + mov esi,edi + mov edi,DWORD PTR 28[esp] +DD 2767451785 + mov edi,DWORD PTR 24[esp] + jmp $L027dec_end +ALIGN 4 +$L024dec_in_place: +$L029dec_in_place_loop: + lea edi,DWORD PTR 44[esp] + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 12[esi] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + mov DWORD PTR 8[edi],ecx + bswap eax + mov DWORD PTR 12[edi],edx + bswap ebx + mov edi,DWORD PTR 36[esp] + bswap ecx + bswap edx + call __x86_Camellia_decrypt + mov edi,DWORD PTR 40[esp] + mov esi,DWORD PTR 28[esp] + bswap eax + bswap ebx + bswap ecx + xor eax,DWORD PTR [edi] + bswap edx + xor ebx,DWORD PTR 4[edi] + xor ecx,DWORD PTR 8[edi] + xor edx,DWORD PTR 12[edi] + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],ebx + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edx + lea esi,DWORD PTR 16[esi] + mov DWORD PTR 28[esp],esi + lea esi,DWORD PTR 44[esp] + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 12[esi] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + mov DWORD PTR 8[edi],ecx + mov DWORD PTR 12[edi],edx + mov esi,DWORD PTR 24[esp] + lea esi,DWORD PTR 16[esi] + mov DWORD PTR 24[esp],esi + mov ecx,DWORD PTR 32[esp] + sub ecx,16 + jc $L030dec_in_place_partial + mov DWORD PTR 32[esp],ecx + jnz $L029dec_in_place_loop + jmp $L028dec_out +ALIGN 4 +$L030dec_in_place_partial: + mov edi,DWORD PTR 28[esp] + lea esi,DWORD PTR 44[esp] + lea edi,DWORD PTR [ecx*1+edi] + lea esi,DWORD PTR 16[ecx*1+esi] + neg ecx +DD 2767451785 +ALIGN 4 +$L028dec_out: + mov esp,DWORD PTR 20[esp] + popfd + pop edi + pop esi + pop ebx + pop ebp + ret +_Camellia_cbc_encrypt ENDP +DB 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54 +DB 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 +DB 115,108,46,111,114,103,62,0 +.text$ ENDS +END diff --git a/deps/openssl/asm/x86-win32-masm/cast/cast-586.asm b/deps/openssl/asm/x86-win32-masm/cast/cast-586.asm new file mode 100644 index 0000000000..1f2f0708a5 --- /dev/null +++ b/deps/openssl/asm/x86-win32-masm/cast/cast-586.asm @@ -0,0 +1,950 @@ +TITLE cast-586.asm +IF @Version LT 800 +ECHO MASM version 8.00 or later is strongly recommended. +ENDIF +.586 +.MODEL FLAT +OPTION DOTNAME +IF @Version LT 800 +.text$ SEGMENT PAGE 'CODE' +ELSE +.text$ SEGMENT ALIGN(64) 'CODE' +ENDIF +EXTERN _CAST_S_table0:NEAR +EXTERN _CAST_S_table1:NEAR +EXTERN _CAST_S_table2:NEAR +EXTERN _CAST_S_table3:NEAR +ALIGN 16 +_CAST_encrypt PROC PUBLIC +$L_CAST_encrypt_begin:: + ; + + push ebp + push ebx + mov ebx,DWORD PTR 12[esp] + mov ebp,DWORD PTR 16[esp] + push esi + push edi + ; Load the 2 words + mov edi,DWORD PTR [ebx] + mov esi,DWORD PTR 4[ebx] + ; Get short key flag + mov eax,DWORD PTR 128[ebp] + push eax + xor eax,eax + ; round 0 + mov edx,DWORD PTR [ebp] + mov ecx,DWORD PTR 4[ebp] + add edx,esi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + add ecx,ebx + xor edi,ecx + ; round 1 + mov edx,DWORD PTR 8[ebp] + mov ecx,DWORD PTR 12[ebp] + xor edx,edi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + xor ecx,ebx + xor esi,ecx + ; round 2 + mov edx,DWORD PTR 16[ebp] + mov ecx,DWORD PTR 20[ebp] + sub edx,esi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + sub ecx,ebx + xor edi,ecx + ; round 3 + mov edx,DWORD PTR 24[ebp] + mov ecx,DWORD PTR 28[ebp] + add edx,edi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + add ecx,ebx + xor esi,ecx + ; round 4 + mov edx,DWORD PTR 32[ebp] + mov ecx,DWORD PTR 36[ebp] + xor edx,esi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + xor ecx,ebx + xor edi,ecx + ; round 5 + mov edx,DWORD PTR 40[ebp] + mov ecx,DWORD PTR 44[ebp] + sub edx,edi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + sub ecx,ebx + xor esi,ecx + ; round 6 + mov edx,DWORD PTR 48[ebp] + mov ecx,DWORD PTR 52[ebp] + add edx,esi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + add ecx,ebx + xor edi,ecx + ; round 7 + mov edx,DWORD PTR 56[ebp] + mov ecx,DWORD PTR 60[ebp] + xor edx,edi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + xor ecx,ebx + xor esi,ecx + ; round 8 + mov edx,DWORD PTR 64[ebp] + mov ecx,DWORD PTR 68[ebp] + sub edx,esi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + sub ecx,ebx + xor edi,ecx + ; round 9 + mov edx,DWORD PTR 72[ebp] + mov ecx,DWORD PTR 76[ebp] + add edx,edi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + add ecx,ebx + xor esi,ecx + ; round 10 + mov edx,DWORD PTR 80[ebp] + mov ecx,DWORD PTR 84[ebp] + xor edx,esi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + xor ecx,ebx + xor edi,ecx + ; round 11 + mov edx,DWORD PTR 88[ebp] + mov ecx,DWORD PTR 92[ebp] + sub edx,edi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + sub ecx,ebx + xor esi,ecx + ; test short key flag + pop edx + or edx,edx + jnz $L000cast_enc_done + ; round 12 + mov edx,DWORD PTR 96[ebp] + mov ecx,DWORD PTR 100[ebp] + add edx,esi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + add ecx,ebx + xor edi,ecx + ; round 13 + mov edx,DWORD PTR 104[ebp] + mov ecx,DWORD PTR 108[ebp] + xor edx,edi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + xor ecx,ebx + xor esi,ecx + ; round 14 + mov edx,DWORD PTR 112[ebp] + mov ecx,DWORD PTR 116[ebp] + sub edx,esi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + sub ecx,ebx + xor edi,ecx + ; round 15 + mov edx,DWORD PTR 120[ebp] + mov ecx,DWORD PTR 124[ebp] + add edx,edi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + add ecx,ebx + xor esi,ecx +$L000cast_enc_done: + nop + mov eax,DWORD PTR 20[esp] + mov DWORD PTR 4[eax],edi + mov DWORD PTR [eax],esi + pop edi + pop esi + pop ebx + pop ebp + ret +_CAST_encrypt ENDP +EXTERN _CAST_S_table0:NEAR +EXTERN _CAST_S_table1:NEAR +EXTERN _CAST_S_table2:NEAR +EXTERN _CAST_S_table3:NEAR +ALIGN 16 +_CAST_decrypt PROC PUBLIC +$L_CAST_decrypt_begin:: + ; + + push ebp + push ebx + mov ebx,DWORD PTR 12[esp] + mov ebp,DWORD PTR 16[esp] + push esi + push edi + ; Load the 2 words + mov edi,DWORD PTR [ebx] + mov esi,DWORD PTR 4[ebx] + ; Get short key flag + mov eax,DWORD PTR 128[ebp] + or eax,eax + jnz $L001cast_dec_skip + xor eax,eax + ; round 15 + mov edx,DWORD PTR 120[ebp] + mov ecx,DWORD PTR 124[ebp] + add edx,esi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + add ecx,ebx + xor edi,ecx + ; round 14 + mov edx,DWORD PTR 112[ebp] + mov ecx,DWORD PTR 116[ebp] + sub edx,edi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + sub ecx,ebx + xor esi,ecx + ; round 13 + mov edx,DWORD PTR 104[ebp] + mov ecx,DWORD PTR 108[ebp] + xor edx,esi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + xor ecx,ebx + xor edi,ecx + ; round 12 + mov edx,DWORD PTR 96[ebp] + mov ecx,DWORD PTR 100[ebp] + add edx,edi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + add ecx,ebx + xor esi,ecx +$L001cast_dec_skip: + ; round 11 + mov edx,DWORD PTR 88[ebp] + mov ecx,DWORD PTR 92[ebp] + sub edx,esi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + sub ecx,ebx + xor edi,ecx + ; round 10 + mov edx,DWORD PTR 80[ebp] + mov ecx,DWORD PTR 84[ebp] + xor edx,edi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + xor ecx,ebx + xor esi,ecx + ; round 9 + mov edx,DWORD PTR 72[ebp] + mov ecx,DWORD PTR 76[ebp] + add edx,esi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + add ecx,ebx + xor edi,ecx + ; round 8 + mov edx,DWORD PTR 64[ebp] + mov ecx,DWORD PTR 68[ebp] + sub edx,edi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + sub ecx,ebx + xor esi,ecx + ; round 7 + mov edx,DWORD PTR 56[ebp] + mov ecx,DWORD PTR 60[ebp] + xor edx,esi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + xor ecx,ebx + xor edi,ecx + ; round 6 + mov edx,DWORD PTR 48[ebp] + mov ecx,DWORD PTR 52[ebp] + add edx,edi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + add ecx,ebx + xor esi,ecx + ; round 5 + mov edx,DWORD PTR 40[ebp] + mov ecx,DWORD PTR 44[ebp] + sub edx,esi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + sub ecx,ebx + xor edi,ecx + ; round 4 + mov edx,DWORD PTR 32[ebp] + mov ecx,DWORD PTR 36[ebp] + xor edx,edi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + xor ecx,ebx + xor esi,ecx + ; round 3 + mov edx,DWORD PTR 24[ebp] + mov ecx,DWORD PTR 28[ebp] + add edx,esi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + add ecx,ebx + xor edi,ecx + ; round 2 + mov edx,DWORD PTR 16[ebp] + mov ecx,DWORD PTR 20[ebp] + sub edx,edi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + sub ecx,ebx + xor esi,ecx + ; round 1 + mov edx,DWORD PTR 8[ebp] + mov ecx,DWORD PTR 12[ebp] + xor edx,esi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + add ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + xor ecx,ebx + xor edi,ecx + ; round 0 + mov edx,DWORD PTR [ebp] + mov ecx,DWORD PTR 4[ebp] + add edx,edi + rol edx,cl + mov ebx,edx + xor ecx,ecx + mov cl,dh + and ebx,255 + shr edx,16 + xor eax,eax + mov al,dh + and edx,255 + mov ecx,DWORD PTR _CAST_S_table0[ecx*4] + mov ebx,DWORD PTR _CAST_S_table1[ebx*4] + xor ecx,ebx + mov ebx,DWORD PTR _CAST_S_table2[eax*4] + sub ecx,ebx + mov ebx,DWORD PTR _CAST_S_table3[edx*4] + add ecx,ebx + xor esi,ecx + nop + mov eax,DWORD PTR 20[esp] + mov DWORD PTR 4[eax],edi + mov DWORD PTR [eax],esi + pop edi + pop esi + pop ebx + pop ebp + ret +_CAST_decrypt ENDP +ALIGN 16 +_CAST_cbc_encrypt PROC PUBLIC +$L_CAST_cbc_encrypt_begin:: + ; + + push ebp + push ebx + push esi + push edi + mov ebp,DWORD PTR 28[esp] + ; getting iv ptr from parameter 4 + mov ebx,DWORD PTR 36[esp] + mov esi,DWORD PTR [ebx] + mov edi,DWORD PTR 4[ebx] + push edi + push esi + push edi + push esi + mov ebx,esp + mov esi,DWORD PTR 36[esp] + mov edi,DWORD PTR 40[esp] + ; getting encrypt flag from parameter 5 + mov ecx,DWORD PTR 56[esp] + ; get and push parameter 3 + mov eax,DWORD PTR 48[esp] + push eax + push ebx + cmp ecx,0 + jz $L002decrypt + and ebp,4294967288 + mov eax,DWORD PTR 8[esp] + mov ebx,DWORD PTR 12[esp] + jz $L003encrypt_finish +$L004encrypt_loop: + mov ecx,DWORD PTR [esi] + mov edx,DWORD PTR 4[esi] + xor eax,ecx + xor ebx,edx + bswap eax + bswap ebx + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],ebx + call $L_CAST_encrypt_begin + mov eax,DWORD PTR 8[esp] + mov ebx,DWORD PTR 12[esp] + bswap eax + bswap ebx + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + add esi,8 + add edi,8 + sub ebp,8 + jnz $L004encrypt_loop +$L003encrypt_finish: + mov ebp,DWORD PTR 52[esp] + and ebp,7 + jz $L005finish + call $L006PIC_point +$L006PIC_point: + pop edx + lea ecx,DWORD PTR ($L007cbc_enc_jmp_table-$L006PIC_point)[edx] + mov ebp,DWORD PTR [ebp*4+ecx] + add ebp,edx + xor ecx,ecx + xor edx,edx + jmp ebp +$L008ej7: + mov dh,BYTE PTR 6[esi] + shl edx,8 +$L009ej6: + mov dh,BYTE PTR 5[esi] +$L010ej5: + mov dl,BYTE PTR 4[esi] +$L011ej4: + mov ecx,DWORD PTR [esi] + jmp $L012ejend +$L013ej3: + mov ch,BYTE PTR 2[esi] + shl ecx,8 +$L014ej2: + mov ch,BYTE PTR 1[esi] +$L015ej1: + mov cl,BYTE PTR [esi] +$L012ejend: + xor eax,ecx + xor ebx,edx + bswap eax + bswap ebx + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],ebx + call $L_CAST_encrypt_begin + mov eax,DWORD PTR 8[esp] + mov ebx,DWORD PTR 12[esp] + bswap eax + bswap ebx + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + jmp $L005finish +$L002decrypt: + and ebp,4294967288 + mov eax,DWORD PTR 16[esp] + mov ebx,DWORD PTR 20[esp] + jz $L016decrypt_finish +$L017decrypt_loop: + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + bswap eax + bswap ebx + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],ebx + call $L_CAST_decrypt_begin + mov eax,DWORD PTR 8[esp] + mov ebx,DWORD PTR 12[esp] + bswap eax + bswap ebx + mov ecx,DWORD PTR 16[esp] + mov edx,DWORD PTR 20[esp] + xor ecx,eax + xor edx,ebx + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov DWORD PTR [edi],ecx + mov DWORD PTR 4[edi],edx + mov DWORD PTR 16[esp],eax + mov DWORD PTR 20[esp],ebx + add esi,8 + add edi,8 + sub ebp,8 + jnz $L017decrypt_loop +$L016decrypt_finish: + mov ebp,DWORD PTR 52[esp] + and ebp,7 + jz $L005finish + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + bswap eax + bswap ebx + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],ebx + call $L_CAST_decrypt_begin + mov eax,DWORD PTR 8[esp] + mov ebx,DWORD PTR 12[esp] + bswap eax + bswap ebx + mov ecx,DWORD PTR 16[esp] + mov edx,DWORD PTR 20[esp] + xor ecx,eax + xor edx,ebx + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] +$L018dj7: + ror edx,16 + mov BYTE PTR 6[edi],dl + shr edx,16 +$L019dj6: + mov BYTE PTR 5[edi],dh +$L020dj5: + mov BYTE PTR 4[edi],dl +$L021dj4: + mov DWORD PTR [edi],ecx + jmp $L022djend +$L023dj3: + ror ecx,16 + mov BYTE PTR 2[edi],cl + shl ecx,16 +$L024dj2: + mov BYTE PTR 1[esi],ch +$L025dj1: + mov BYTE PTR [esi],cl +$L022djend: + jmp $L005finish +$L005finish: + mov ecx,DWORD PTR 60[esp] + add esp,24 + mov DWORD PTR [ecx],eax + mov DWORD PTR 4[ecx],ebx + pop edi + pop esi + pop ebx + pop ebp + ret +ALIGN 64 +$L007cbc_enc_jmp_table: +DD 0 +DD $L015ej1-$L006PIC_point +DD $L014ej2-$L006PIC_point +DD $L013ej3-$L006PIC_point +DD $L011ej4-$L006PIC_point +DD $L010ej5-$L006PIC_point +DD $L009ej6-$L006PIC_point +DD $L008ej7-$L006PIC_point +ALIGN 64 +_CAST_cbc_encrypt ENDP +.text$ ENDS +END diff --git a/deps/openssl/asm/x86-win32-masm/des/crypt586.asm b/deps/openssl/asm/x86-win32-masm/des/crypt586.asm new file mode 100644 index 0000000000..24e474dfc5 --- /dev/null +++ b/deps/openssl/asm/x86-win32-masm/des/crypt586.asm @@ -0,0 +1,909 @@ +TITLE crypt586.asm +IF @Version LT 800 +ECHO MASM version 8.00 or later is strongly recommended. +ENDIF +.586 +.MODEL FLAT +OPTION DOTNAME +IF @Version LT 800 +.text$ SEGMENT PAGE 'CODE' +ELSE +.text$ SEGMENT ALIGN(64) 'CODE' +ENDIF +EXTERN _DES_SPtrans:NEAR +ALIGN 16 +_fcrypt_body PROC PUBLIC +$L_fcrypt_body_begin:: + push ebp + push ebx + push esi + push edi + ; + + ; Load the 2 words + xor edi,edi + xor esi,esi + lea edx,DWORD PTR _DES_SPtrans + push edx + mov ebp,DWORD PTR 28[esp] + push 25 +$L000start: + ; + + ; Round 0 + mov eax,DWORD PTR 36[esp] + mov edx,esi + shr edx,16 + mov ecx,DWORD PTR 40[esp] + xor edx,esi + and eax,edx + and edx,ecx + mov ebx,eax + shl ebx,16 + mov ecx,edx + shl ecx,16 + xor eax,ebx + xor edx,ecx + mov ebx,DWORD PTR [ebp] + xor eax,ebx + mov ecx,DWORD PTR 4[ebp] + xor eax,esi + xor edx,esi + xor edx,ecx + and eax,0fcfcfcfch + xor ebx,ebx + and edx,0cfcfcfcfh + xor ecx,ecx + mov bl,al + mov cl,ah + ror edx,4 + mov ebp,DWORD PTR 4[esp] + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + mov ebx,DWORD PTR 0600h[ebx*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0700h[ecx*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0400h[eax*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0500h[edx*1+ebp] + xor edi,ebx + mov ebp,DWORD PTR 32[esp] + ; + + ; Round 1 + mov eax,DWORD PTR 36[esp] + mov edx,edi + shr edx,16 + mov ecx,DWORD PTR 40[esp] + xor edx,edi + and eax,edx + and edx,ecx + mov ebx,eax + shl ebx,16 + mov ecx,edx + shl ecx,16 + xor eax,ebx + xor edx,ecx + mov ebx,DWORD PTR 8[ebp] + xor eax,ebx + mov ecx,DWORD PTR 12[ebp] + xor eax,edi + xor edx,edi + xor edx,ecx + and eax,0fcfcfcfch + xor ebx,ebx + and edx,0cfcfcfcfh + xor ecx,ecx + mov bl,al + mov cl,ah + ror edx,4 + mov ebp,DWORD PTR 4[esp] + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + mov ebx,DWORD PTR 0600h[ebx*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0700h[ecx*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0400h[eax*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0500h[edx*1+ebp] + xor esi,ebx + mov ebp,DWORD PTR 32[esp] + ; + + ; Round 2 + mov eax,DWORD PTR 36[esp] + mov edx,esi + shr edx,16 + mov ecx,DWORD PTR 40[esp] + xor edx,esi + and eax,edx + and edx,ecx + mov ebx,eax + shl ebx,16 + mov ecx,edx + shl ecx,16 + xor eax,ebx + xor edx,ecx + mov ebx,DWORD PTR 16[ebp] + xor eax,ebx + mov ecx,DWORD PTR 20[ebp] + xor eax,esi + xor edx,esi + xor edx,ecx + and eax,0fcfcfcfch + xor ebx,ebx + and edx,0cfcfcfcfh + xor ecx,ecx + mov bl,al + mov cl,ah + ror edx,4 + mov ebp,DWORD PTR 4[esp] + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + mov ebx,DWORD PTR 0600h[ebx*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0700h[ecx*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0400h[eax*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0500h[edx*1+ebp] + xor edi,ebx + mov ebp,DWORD PTR 32[esp] + ; + + ; Round 3 + mov eax,DWORD PTR 36[esp] + mov edx,edi + shr edx,16 + mov ecx,DWORD PTR 40[esp] + xor edx,edi + and eax,edx + and edx,ecx + mov ebx,eax + shl ebx,16 + mov ecx,edx + shl ecx,16 + xor eax,ebx + xor edx,ecx + mov ebx,DWORD PTR 24[ebp] + xor eax,ebx + mov ecx,DWORD PTR 28[ebp] + xor eax,edi + xor edx,edi + xor edx,ecx + and eax,0fcfcfcfch + xor ebx,ebx + and edx,0cfcfcfcfh + xor ecx,ecx + mov bl,al + mov cl,ah + ror edx,4 + mov ebp,DWORD PTR 4[esp] + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + mov ebx,DWORD PTR 0600h[ebx*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0700h[ecx*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0400h[eax*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0500h[edx*1+ebp] + xor esi,ebx + mov ebp,DWORD PTR 32[esp] + ; + + ; Round 4 + mov eax,DWORD PTR 36[esp] + mov edx,esi + shr edx,16 + mov ecx,DWORD PTR 40[esp] + xor edx,esi + and eax,edx + and edx,ecx + mov ebx,eax + shl ebx,16 + mov ecx,edx + shl ecx,16 + xor eax,ebx + xor edx,ecx + mov ebx,DWORD PTR 32[ebp] + xor eax,ebx + mov ecx,DWORD PTR 36[ebp] + xor eax,esi + xor edx,esi + xor edx,ecx + and eax,0fcfcfcfch + xor ebx,ebx + and edx,0cfcfcfcfh + xor ecx,ecx + mov bl,al + mov cl,ah + ror edx,4 + mov ebp,DWORD PTR 4[esp] + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + mov ebx,DWORD PTR 0600h[ebx*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0700h[ecx*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0400h[eax*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0500h[edx*1+ebp] + xor edi,ebx + mov ebp,DWORD PTR 32[esp] + ; + + ; Round 5 + mov eax,DWORD PTR 36[esp] + mov edx,edi + shr edx,16 + mov ecx,DWORD PTR 40[esp] + xor edx,edi + and eax,edx + and edx,ecx + mov ebx,eax + shl ebx,16 + mov ecx,edx + shl ecx,16 + xor eax,ebx + xor edx,ecx + mov ebx,DWORD PTR 40[ebp] + xor eax,ebx + mov ecx,DWORD PTR 44[ebp] + xor eax,edi + xor edx,edi + xor edx,ecx + and eax,0fcfcfcfch + xor ebx,ebx + and edx,0cfcfcfcfh + xor ecx,ecx + mov bl,al + mov cl,ah + ror edx,4 + mov ebp,DWORD PTR 4[esp] + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + mov ebx,DWORD PTR 0600h[ebx*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0700h[ecx*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0400h[eax*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0500h[edx*1+ebp] + xor esi,ebx + mov ebp,DWORD PTR 32[esp] + ; + + ; Round 6 + mov eax,DWORD PTR 36[esp] + mov edx,esi + shr edx,16 + mov ecx,DWORD PTR 40[esp] + xor edx,esi + and eax,edx + and edx,ecx + mov ebx,eax + shl ebx,16 + mov ecx,edx + shl ecx,16 + xor eax,ebx + xor edx,ecx + mov ebx,DWORD PTR 48[ebp] + xor eax,ebx + mov ecx,DWORD PTR 52[ebp] + xor eax,esi + xor edx,esi + xor edx,ecx + and eax,0fcfcfcfch + xor ebx,ebx + and edx,0cfcfcfcfh + xor ecx,ecx + mov bl,al + mov cl,ah + ror edx,4 + mov ebp,DWORD PTR 4[esp] + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + mov ebx,DWORD PTR 0600h[ebx*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0700h[ecx*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0400h[eax*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0500h[edx*1+ebp] + xor edi,ebx + mov ebp,DWORD PTR 32[esp] + ; + + ; Round 7 + mov eax,DWORD PTR 36[esp] + mov edx,edi + shr edx,16 + mov ecx,DWORD PTR 40[esp] + xor edx,edi + and eax,edx + and edx,ecx + mov ebx,eax + shl ebx,16 + mov ecx,edx + shl ecx,16 + xor eax,ebx + xor edx,ecx + mov ebx,DWORD PTR 56[ebp] + xor eax,ebx + mov ecx,DWORD PTR 60[ebp] + xor eax,edi + xor edx,edi + xor edx,ecx + and eax,0fcfcfcfch + xor ebx,ebx + and edx,0cfcfcfcfh + xor ecx,ecx + mov bl,al + mov cl,ah + ror edx,4 + mov ebp,DWORD PTR 4[esp] + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + mov ebx,DWORD PTR 0600h[ebx*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0700h[ecx*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0400h[eax*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0500h[edx*1+ebp] + xor esi,ebx + mov ebp,DWORD PTR 32[esp] + ; + + ; Round 8 + mov eax,DWORD PTR 36[esp] + mov edx,esi + shr edx,16 + mov ecx,DWORD PTR 40[esp] + xor edx,esi + and eax,edx + and edx,ecx + mov ebx,eax + shl ebx,16 + mov ecx,edx + shl ecx,16 + xor eax,ebx + xor edx,ecx + mov ebx,DWORD PTR 64[ebp] + xor eax,ebx + mov ecx,DWORD PTR 68[ebp] + xor eax,esi + xor edx,esi + xor edx,ecx + and eax,0fcfcfcfch + xor ebx,ebx + and edx,0cfcfcfcfh + xor ecx,ecx + mov bl,al + mov cl,ah + ror edx,4 + mov ebp,DWORD PTR 4[esp] + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + mov ebx,DWORD PTR 0600h[ebx*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0700h[ecx*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0400h[eax*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0500h[edx*1+ebp] + xor edi,ebx + mov ebp,DWORD PTR 32[esp] + ; + + ; Round 9 + mov eax,DWORD PTR 36[esp] + mov edx,edi + shr edx,16 + mov ecx,DWORD PTR 40[esp] + xor edx,edi + and eax,edx + and edx,ecx + mov ebx,eax + shl ebx,16 + mov ecx,edx + shl ecx,16 + xor eax,ebx + xor edx,ecx + mov ebx,DWORD PTR 72[ebp] + xor eax,ebx + mov ecx,DWORD PTR 76[ebp] + xor eax,edi + xor edx,edi + xor edx,ecx + and eax,0fcfcfcfch + xor ebx,ebx + and edx,0cfcfcfcfh + xor ecx,ecx + mov bl,al + mov cl,ah + ror edx,4 + mov ebp,DWORD PTR 4[esp] + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + mov ebx,DWORD PTR 0600h[ebx*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0700h[ecx*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0400h[eax*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0500h[edx*1+ebp] + xor esi,ebx + mov ebp,DWORD PTR 32[esp] + ; + + ; Round 10 + mov eax,DWORD PTR 36[esp] + mov edx,esi + shr edx,16 + mov ecx,DWORD PTR 40[esp] + xor edx,esi + and eax,edx + and edx,ecx + mov ebx,eax + shl ebx,16 + mov ecx,edx + shl ecx,16 + xor eax,ebx + xor edx,ecx + mov ebx,DWORD PTR 80[ebp] + xor eax,ebx + mov ecx,DWORD PTR 84[ebp] + xor eax,esi + xor edx,esi + xor edx,ecx + and eax,0fcfcfcfch + xor ebx,ebx + and edx,0cfcfcfcfh + xor ecx,ecx + mov bl,al + mov cl,ah + ror edx,4 + mov ebp,DWORD PTR 4[esp] + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + mov ebx,DWORD PTR 0600h[ebx*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0700h[ecx*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0400h[eax*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0500h[edx*1+ebp] + xor edi,ebx + mov ebp,DWORD PTR 32[esp] + ; + + ; Round 11 + mov eax,DWORD PTR 36[esp] + mov edx,edi + shr edx,16 + mov ecx,DWORD PTR 40[esp] + xor edx,edi + and eax,edx + and edx,ecx + mov ebx,eax + shl ebx,16 + mov ecx,edx + shl ecx,16 + xor eax,ebx + xor edx,ecx + mov ebx,DWORD PTR 88[ebp] + xor eax,ebx + mov ecx,DWORD PTR 92[ebp] + xor eax,edi + xor edx,edi + xor edx,ecx + and eax,0fcfcfcfch + xor ebx,ebx + and edx,0cfcfcfcfh + xor ecx,ecx + mov bl,al + mov cl,ah + ror edx,4 + mov ebp,DWORD PTR 4[esp] + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + mov ebx,DWORD PTR 0600h[ebx*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0700h[ecx*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0400h[eax*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0500h[edx*1+ebp] + xor esi,ebx + mov ebp,DWORD PTR 32[esp] + ; + + ; Round 12 + mov eax,DWORD PTR 36[esp] + mov edx,esi + shr edx,16 + mov ecx,DWORD PTR 40[esp] + xor edx,esi + and eax,edx + and edx,ecx + mov ebx,eax + shl ebx,16 + mov ecx,edx + shl ecx,16 + xor eax,ebx + xor edx,ecx + mov ebx,DWORD PTR 96[ebp] + xor eax,ebx + mov ecx,DWORD PTR 100[ebp] + xor eax,esi + xor edx,esi + xor edx,ecx + and eax,0fcfcfcfch + xor ebx,ebx + and edx,0cfcfcfcfh + xor ecx,ecx + mov bl,al + mov cl,ah + ror edx,4 + mov ebp,DWORD PTR 4[esp] + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + mov ebx,DWORD PTR 0600h[ebx*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0700h[ecx*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0400h[eax*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0500h[edx*1+ebp] + xor edi,ebx + mov ebp,DWORD PTR 32[esp] + ; + + ; Round 13 + mov eax,DWORD PTR 36[esp] + mov edx,edi + shr edx,16 + mov ecx,DWORD PTR 40[esp] + xor edx,edi + and eax,edx + and edx,ecx + mov ebx,eax + shl ebx,16 + mov ecx,edx + shl ecx,16 + xor eax,ebx + xor edx,ecx + mov ebx,DWORD PTR 104[ebp] + xor eax,ebx + mov ecx,DWORD PTR 108[ebp] + xor eax,edi + xor edx,edi + xor edx,ecx + and eax,0fcfcfcfch + xor ebx,ebx + and edx,0cfcfcfcfh + xor ecx,ecx + mov bl,al + mov cl,ah + ror edx,4 + mov ebp,DWORD PTR 4[esp] + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + mov ebx,DWORD PTR 0600h[ebx*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0700h[ecx*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0400h[eax*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0500h[edx*1+ebp] + xor esi,ebx + mov ebp,DWORD PTR 32[esp] + ; + + ; Round 14 + mov eax,DWORD PTR 36[esp] + mov edx,esi + shr edx,16 + mov ecx,DWORD PTR 40[esp] + xor edx,esi + and eax,edx + and edx,ecx + mov ebx,eax + shl ebx,16 + mov ecx,edx + shl ecx,16 + xor eax,ebx + xor edx,ecx + mov ebx,DWORD PTR 112[ebp] + xor eax,ebx + mov ecx,DWORD PTR 116[ebp] + xor eax,esi + xor edx,esi + xor edx,ecx + and eax,0fcfcfcfch + xor ebx,ebx + and edx,0cfcfcfcfh + xor ecx,ecx + mov bl,al + mov cl,ah + ror edx,4 + mov ebp,DWORD PTR 4[esp] + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + mov ebx,DWORD PTR 0600h[ebx*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0700h[ecx*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0400h[eax*1+ebp] + xor edi,ebx + mov ebx,DWORD PTR 0500h[edx*1+ebp] + xor edi,ebx + mov ebp,DWORD PTR 32[esp] + ; + + ; Round 15 + mov eax,DWORD PTR 36[esp] + mov edx,edi + shr edx,16 + mov ecx,DWORD PTR 40[esp] + xor edx,edi + and eax,edx + and edx,ecx + mov ebx,eax + shl ebx,16 + mov ecx,edx + shl ecx,16 + xor eax,ebx + xor edx,ecx + mov ebx,DWORD PTR 120[ebp] + xor eax,ebx + mov ecx,DWORD PTR 124[ebp] + xor eax,edi + xor edx,edi + xor edx,ecx + and eax,0fcfcfcfch + xor ebx,ebx + and edx,0cfcfcfcfh + xor ecx,ecx + mov bl,al + mov cl,ah + ror edx,4 + mov ebp,DWORD PTR 4[esp] + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + mov ebx,DWORD PTR 0600h[ebx*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0700h[ecx*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0400h[eax*1+ebp] + xor esi,ebx + mov ebx,DWORD PTR 0500h[edx*1+ebp] + xor esi,ebx + mov ebp,DWORD PTR 32[esp] + mov ebx,DWORD PTR [esp] + mov eax,edi + dec ebx + mov edi,esi + mov esi,eax + mov DWORD PTR [esp],ebx + jnz $L000start + ; + + ; FP + mov edx,DWORD PTR 28[esp] + ror edi,1 + mov eax,esi + xor esi,edi + and esi,0aaaaaaaah + xor eax,esi + xor edi,esi + ; + + rol eax,23 + mov esi,eax + xor eax,edi + and eax,003fc03fch + xor esi,eax + xor edi,eax + ; + + rol esi,10 + mov eax,esi + xor esi,edi + and esi,033333333h + xor eax,esi + xor edi,esi + ; + + rol edi,18 + mov esi,edi + xor edi,eax + and edi,0fff0000fh + xor esi,edi + xor eax,edi + ; + + rol esi,12 + mov edi,esi + xor esi,eax + and esi,0f0f0f0f0h + xor edi,esi + xor eax,esi + ; + + ror eax,4 + mov DWORD PTR [edx],eax + mov DWORD PTR 4[edx],edi + add esp,8 + pop edi + pop esi + pop ebx + pop ebp + ret +_fcrypt_body ENDP +.text$ ENDS +END diff --git a/deps/openssl/asm/x86-win32-masm/des/des-586.asm b/deps/openssl/asm/x86-win32-masm/des/des-586.asm new file mode 100644 index 0000000000..3c630daff9 --- /dev/null +++ b/deps/openssl/asm/x86-win32-masm/des/des-586.asm @@ -0,0 +1,1878 @@ +TITLE des-586.asm +IF @Version LT 800 +ECHO MASM version 8.00 or later is strongly recommended. +ENDIF +.586 +.MODEL FLAT +OPTION DOTNAME +IF @Version LT 800 +.text$ SEGMENT PAGE 'CODE' +ELSE +.text$ SEGMENT ALIGN(64) 'CODE' +ENDIF +PUBLIC _DES_SPtrans +ALIGN 16 +__x86_DES_encrypt PROC PRIVATE + push ecx + ; Round 0 + mov eax,DWORD PTR [ecx] + xor ebx,ebx + mov edx,DWORD PTR 4[ecx] + xor eax,esi + xor ecx,ecx + xor edx,esi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor edi,DWORD PTR 0600h[ebx*1+ebp] + xor edi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor edi,DWORD PTR 0400h[eax*1+ebp] + xor edi,DWORD PTR 0500h[edx*1+ebp] + ; Round 1 + mov eax,DWORD PTR 8[ecx] + xor ebx,ebx + mov edx,DWORD PTR 12[ecx] + xor eax,edi + xor ecx,ecx + xor edx,edi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor esi,DWORD PTR 0600h[ebx*1+ebp] + xor esi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor esi,DWORD PTR 0400h[eax*1+ebp] + xor esi,DWORD PTR 0500h[edx*1+ebp] + ; Round 2 + mov eax,DWORD PTR 16[ecx] + xor ebx,ebx + mov edx,DWORD PTR 20[ecx] + xor eax,esi + xor ecx,ecx + xor edx,esi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor edi,DWORD PTR 0600h[ebx*1+ebp] + xor edi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor edi,DWORD PTR 0400h[eax*1+ebp] + xor edi,DWORD PTR 0500h[edx*1+ebp] + ; Round 3 + mov eax,DWORD PTR 24[ecx] + xor ebx,ebx + mov edx,DWORD PTR 28[ecx] + xor eax,edi + xor ecx,ecx + xor edx,edi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor esi,DWORD PTR 0600h[ebx*1+ebp] + xor esi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor esi,DWORD PTR 0400h[eax*1+ebp] + xor esi,DWORD PTR 0500h[edx*1+ebp] + ; Round 4 + mov eax,DWORD PTR 32[ecx] + xor ebx,ebx + mov edx,DWORD PTR 36[ecx] + xor eax,esi + xor ecx,ecx + xor edx,esi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor edi,DWORD PTR 0600h[ebx*1+ebp] + xor edi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor edi,DWORD PTR 0400h[eax*1+ebp] + xor edi,DWORD PTR 0500h[edx*1+ebp] + ; Round 5 + mov eax,DWORD PTR 40[ecx] + xor ebx,ebx + mov edx,DWORD PTR 44[ecx] + xor eax,edi + xor ecx,ecx + xor edx,edi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor esi,DWORD PTR 0600h[ebx*1+ebp] + xor esi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor esi,DWORD PTR 0400h[eax*1+ebp] + xor esi,DWORD PTR 0500h[edx*1+ebp] + ; Round 6 + mov eax,DWORD PTR 48[ecx] + xor ebx,ebx + mov edx,DWORD PTR 52[ecx] + xor eax,esi + xor ecx,ecx + xor edx,esi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor edi,DWORD PTR 0600h[ebx*1+ebp] + xor edi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor edi,DWORD PTR 0400h[eax*1+ebp] + xor edi,DWORD PTR 0500h[edx*1+ebp] + ; Round 7 + mov eax,DWORD PTR 56[ecx] + xor ebx,ebx + mov edx,DWORD PTR 60[ecx] + xor eax,edi + xor ecx,ecx + xor edx,edi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor esi,DWORD PTR 0600h[ebx*1+ebp] + xor esi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor esi,DWORD PTR 0400h[eax*1+ebp] + xor esi,DWORD PTR 0500h[edx*1+ebp] + ; Round 8 + mov eax,DWORD PTR 64[ecx] + xor ebx,ebx + mov edx,DWORD PTR 68[ecx] + xor eax,esi + xor ecx,ecx + xor edx,esi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor edi,DWORD PTR 0600h[ebx*1+ebp] + xor edi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor edi,DWORD PTR 0400h[eax*1+ebp] + xor edi,DWORD PTR 0500h[edx*1+ebp] + ; Round 9 + mov eax,DWORD PTR 72[ecx] + xor ebx,ebx + mov edx,DWORD PTR 76[ecx] + xor eax,edi + xor ecx,ecx + xor edx,edi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor esi,DWORD PTR 0600h[ebx*1+ebp] + xor esi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor esi,DWORD PTR 0400h[eax*1+ebp] + xor esi,DWORD PTR 0500h[edx*1+ebp] + ; Round 10 + mov eax,DWORD PTR 80[ecx] + xor ebx,ebx + mov edx,DWORD PTR 84[ecx] + xor eax,esi + xor ecx,ecx + xor edx,esi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor edi,DWORD PTR 0600h[ebx*1+ebp] + xor edi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor edi,DWORD PTR 0400h[eax*1+ebp] + xor edi,DWORD PTR 0500h[edx*1+ebp] + ; Round 11 + mov eax,DWORD PTR 88[ecx] + xor ebx,ebx + mov edx,DWORD PTR 92[ecx] + xor eax,edi + xor ecx,ecx + xor edx,edi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor esi,DWORD PTR 0600h[ebx*1+ebp] + xor esi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor esi,DWORD PTR 0400h[eax*1+ebp] + xor esi,DWORD PTR 0500h[edx*1+ebp] + ; Round 12 + mov eax,DWORD PTR 96[ecx] + xor ebx,ebx + mov edx,DWORD PTR 100[ecx] + xor eax,esi + xor ecx,ecx + xor edx,esi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor edi,DWORD PTR 0600h[ebx*1+ebp] + xor edi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor edi,DWORD PTR 0400h[eax*1+ebp] + xor edi,DWORD PTR 0500h[edx*1+ebp] + ; Round 13 + mov eax,DWORD PTR 104[ecx] + xor ebx,ebx + mov edx,DWORD PTR 108[ecx] + xor eax,edi + xor ecx,ecx + xor edx,edi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor esi,DWORD PTR 0600h[ebx*1+ebp] + xor esi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor esi,DWORD PTR 0400h[eax*1+ebp] + xor esi,DWORD PTR 0500h[edx*1+ebp] + ; Round 14 + mov eax,DWORD PTR 112[ecx] + xor ebx,ebx + mov edx,DWORD PTR 116[ecx] + xor eax,esi + xor ecx,ecx + xor edx,esi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor edi,DWORD PTR 0600h[ebx*1+ebp] + xor edi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor edi,DWORD PTR 0400h[eax*1+ebp] + xor edi,DWORD PTR 0500h[edx*1+ebp] + ; Round 15 + mov eax,DWORD PTR 120[ecx] + xor ebx,ebx + mov edx,DWORD PTR 124[ecx] + xor eax,edi + xor ecx,ecx + xor edx,edi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor esi,DWORD PTR 0600h[ebx*1+ebp] + xor esi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor esi,DWORD PTR 0400h[eax*1+ebp] + xor esi,DWORD PTR 0500h[edx*1+ebp] + add esp,4 + ret +__x86_DES_encrypt ENDP +ALIGN 16 +__x86_DES_decrypt PROC PRIVATE + push ecx + ; Round 15 + mov eax,DWORD PTR 120[ecx] + xor ebx,ebx + mov edx,DWORD PTR 124[ecx] + xor eax,esi + xor ecx,ecx + xor edx,esi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor edi,DWORD PTR 0600h[ebx*1+ebp] + xor edi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor edi,DWORD PTR 0400h[eax*1+ebp] + xor edi,DWORD PTR 0500h[edx*1+ebp] + ; Round 14 + mov eax,DWORD PTR 112[ecx] + xor ebx,ebx + mov edx,DWORD PTR 116[ecx] + xor eax,edi + xor ecx,ecx + xor edx,edi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor esi,DWORD PTR 0600h[ebx*1+ebp] + xor esi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor esi,DWORD PTR 0400h[eax*1+ebp] + xor esi,DWORD PTR 0500h[edx*1+ebp] + ; Round 13 + mov eax,DWORD PTR 104[ecx] + xor ebx,ebx + mov edx,DWORD PTR 108[ecx] + xor eax,esi + xor ecx,ecx + xor edx,esi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor edi,DWORD PTR 0600h[ebx*1+ebp] + xor edi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor edi,DWORD PTR 0400h[eax*1+ebp] + xor edi,DWORD PTR 0500h[edx*1+ebp] + ; Round 12 + mov eax,DWORD PTR 96[ecx] + xor ebx,ebx + mov edx,DWORD PTR 100[ecx] + xor eax,edi + xor ecx,ecx + xor edx,edi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor esi,DWORD PTR 0600h[ebx*1+ebp] + xor esi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor esi,DWORD PTR 0400h[eax*1+ebp] + xor esi,DWORD PTR 0500h[edx*1+ebp] + ; Round 11 + mov eax,DWORD PTR 88[ecx] + xor ebx,ebx + mov edx,DWORD PTR 92[ecx] + xor eax,esi + xor ecx,ecx + xor edx,esi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor edi,DWORD PTR 0600h[ebx*1+ebp] + xor edi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor edi,DWORD PTR 0400h[eax*1+ebp] + xor edi,DWORD PTR 0500h[edx*1+ebp] + ; Round 10 + mov eax,DWORD PTR 80[ecx] + xor ebx,ebx + mov edx,DWORD PTR 84[ecx] + xor eax,edi + xor ecx,ecx + xor edx,edi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor esi,DWORD PTR 0600h[ebx*1+ebp] + xor esi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor esi,DWORD PTR 0400h[eax*1+ebp] + xor esi,DWORD PTR 0500h[edx*1+ebp] + ; Round 9 + mov eax,DWORD PTR 72[ecx] + xor ebx,ebx + mov edx,DWORD PTR 76[ecx] + xor eax,esi + xor ecx,ecx + xor edx,esi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor edi,DWORD PTR 0600h[ebx*1+ebp] + xor edi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor edi,DWORD PTR 0400h[eax*1+ebp] + xor edi,DWORD PTR 0500h[edx*1+ebp] + ; Round 8 + mov eax,DWORD PTR 64[ecx] + xor ebx,ebx + mov edx,DWORD PTR 68[ecx] + xor eax,edi + xor ecx,ecx + xor edx,edi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor esi,DWORD PTR 0600h[ebx*1+ebp] + xor esi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor esi,DWORD PTR 0400h[eax*1+ebp] + xor esi,DWORD PTR 0500h[edx*1+ebp] + ; Round 7 + mov eax,DWORD PTR 56[ecx] + xor ebx,ebx + mov edx,DWORD PTR 60[ecx] + xor eax,esi + xor ecx,ecx + xor edx,esi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor edi,DWORD PTR 0600h[ebx*1+ebp] + xor edi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor edi,DWORD PTR 0400h[eax*1+ebp] + xor edi,DWORD PTR 0500h[edx*1+ebp] + ; Round 6 + mov eax,DWORD PTR 48[ecx] + xor ebx,ebx + mov edx,DWORD PTR 52[ecx] + xor eax,edi + xor ecx,ecx + xor edx,edi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor esi,DWORD PTR 0600h[ebx*1+ebp] + xor esi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor esi,DWORD PTR 0400h[eax*1+ebp] + xor esi,DWORD PTR 0500h[edx*1+ebp] + ; Round 5 + mov eax,DWORD PTR 40[ecx] + xor ebx,ebx + mov edx,DWORD PTR 44[ecx] + xor eax,esi + xor ecx,ecx + xor edx,esi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor edi,DWORD PTR 0600h[ebx*1+ebp] + xor edi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor edi,DWORD PTR 0400h[eax*1+ebp] + xor edi,DWORD PTR 0500h[edx*1+ebp] + ; Round 4 + mov eax,DWORD PTR 32[ecx] + xor ebx,ebx + mov edx,DWORD PTR 36[ecx] + xor eax,edi + xor ecx,ecx + xor edx,edi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor esi,DWORD PTR 0600h[ebx*1+ebp] + xor esi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor esi,DWORD PTR 0400h[eax*1+ebp] + xor esi,DWORD PTR 0500h[edx*1+ebp] + ; Round 3 + mov eax,DWORD PTR 24[ecx] + xor ebx,ebx + mov edx,DWORD PTR 28[ecx] + xor eax,esi + xor ecx,ecx + xor edx,esi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor edi,DWORD PTR 0600h[ebx*1+ebp] + xor edi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor edi,DWORD PTR 0400h[eax*1+ebp] + xor edi,DWORD PTR 0500h[edx*1+ebp] + ; Round 2 + mov eax,DWORD PTR 16[ecx] + xor ebx,ebx + mov edx,DWORD PTR 20[ecx] + xor eax,edi + xor ecx,ecx + xor edx,edi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor esi,DWORD PTR 0600h[ebx*1+ebp] + xor esi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor esi,DWORD PTR 0400h[eax*1+ebp] + xor esi,DWORD PTR 0500h[edx*1+ebp] + ; Round 1 + mov eax,DWORD PTR 8[ecx] + xor ebx,ebx + mov edx,DWORD PTR 12[ecx] + xor eax,esi + xor ecx,ecx + xor edx,esi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor edi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor edi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor edi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor edi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor edi,DWORD PTR 0600h[ebx*1+ebp] + xor edi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor edi,DWORD PTR 0400h[eax*1+ebp] + xor edi,DWORD PTR 0500h[edx*1+ebp] + ; Round 0 + mov eax,DWORD PTR [ecx] + xor ebx,ebx + mov edx,DWORD PTR 4[ecx] + xor eax,edi + xor ecx,ecx + xor edx,edi + and eax,0fcfcfcfch + and edx,0cfcfcfcfh + mov bl,al + mov cl,ah + ror edx,4 + xor esi,DWORD PTR [ebx*1+ebp] + mov bl,dl + xor esi,DWORD PTR 0200h[ecx*1+ebp] + mov cl,dh + shr eax,16 + xor esi,DWORD PTR 0100h[ebx*1+ebp] + mov bl,ah + shr edx,16 + xor esi,DWORD PTR 0300h[ecx*1+ebp] + mov cl,dh + and eax,0ffh + and edx,0ffh + xor esi,DWORD PTR 0600h[ebx*1+ebp] + xor esi,DWORD PTR 0700h[ecx*1+ebp] + mov ecx,DWORD PTR [esp] + xor esi,DWORD PTR 0400h[eax*1+ebp] + xor esi,DWORD PTR 0500h[edx*1+ebp] + add esp,4 + ret +__x86_DES_decrypt ENDP +ALIGN 16 +_DES_encrypt1 PROC PUBLIC +$L_DES_encrypt1_begin:: + push esi + push edi + ; + + ; Load the 2 words + mov esi,DWORD PTR 12[esp] + xor ecx,ecx + push ebx + push ebp + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 28[esp] + mov edi,DWORD PTR 4[esi] + ; + + ; IP + rol eax,4 + mov esi,eax + xor eax,edi + and eax,0f0f0f0f0h + xor esi,eax + xor edi,eax + ; + + rol edi,20 + mov eax,edi + xor edi,esi + and edi,0fff0000fh + xor eax,edi + xor esi,edi + ; + + rol eax,14 + mov edi,eax + xor eax,esi + and eax,033333333h + xor edi,eax + xor esi,eax + ; + + rol esi,22 + mov eax,esi + xor esi,edi + and esi,003fc03fch + xor eax,esi + xor edi,esi + ; + + rol eax,9 + mov esi,eax + xor eax,edi + and eax,0aaaaaaaah + xor esi,eax + xor edi,eax + ; + + rol edi,1 + call $L000pic_point +$L000pic_point: + pop ebp + lea ebp,DWORD PTR (_DES_SPtrans-$L000pic_point)[ebp] + mov ecx,DWORD PTR 24[esp] + cmp ebx,0 + je $L001decrypt + call __x86_DES_encrypt + jmp $L002done +$L001decrypt: + call __x86_DES_decrypt +$L002done: + ; + + ; FP + mov edx,DWORD PTR 20[esp] + ror esi,1 + mov eax,edi + xor edi,esi + and edi,0aaaaaaaah + xor eax,edi + xor esi,edi + ; + + rol eax,23 + mov edi,eax + xor eax,esi + and eax,003fc03fch + xor edi,eax + xor esi,eax + ; + + rol edi,10 + mov eax,edi + xor edi,esi + and edi,033333333h + xor eax,edi + xor esi,edi + ; + + rol esi,18 + mov edi,esi + xor esi,eax + and esi,0fff0000fh + xor edi,esi + xor eax,esi + ; + + rol edi,12 + mov esi,edi + xor edi,eax + and edi,0f0f0f0f0h + xor esi,edi + xor eax,edi + ; + + ror eax,4 + mov DWORD PTR [edx],eax + mov DWORD PTR 4[edx],esi + pop ebp + pop ebx + pop edi + pop esi + ret +_DES_encrypt1 ENDP +ALIGN 16 +_DES_encrypt2 PROC PUBLIC +$L_DES_encrypt2_begin:: + push esi + push edi + ; + + ; Load the 2 words + mov eax,DWORD PTR 12[esp] + xor ecx,ecx + push ebx + push ebp + mov esi,DWORD PTR [eax] + mov ebx,DWORD PTR 28[esp] + rol esi,3 + mov edi,DWORD PTR 4[eax] + rol edi,3 + call $L003pic_point +$L003pic_point: + pop ebp + lea ebp,DWORD PTR (_DES_SPtrans-$L003pic_point)[ebp] + mov ecx,DWORD PTR 24[esp] + cmp ebx,0 + je $L004decrypt + call __x86_DES_encrypt + jmp $L005done +$L004decrypt: + call __x86_DES_decrypt +$L005done: + ; + + ; Fixup + ror edi,3 + mov eax,DWORD PTR 20[esp] + ror esi,3 + mov DWORD PTR [eax],edi + mov DWORD PTR 4[eax],esi + pop ebp + pop ebx + pop edi + pop esi + ret +_DES_encrypt2 ENDP +ALIGN 16 +_DES_encrypt3 PROC PUBLIC +$L_DES_encrypt3_begin:: + push ebx + mov ebx,DWORD PTR 8[esp] + push ebp + push esi + push edi + ; + + ; Load the data words + mov edi,DWORD PTR [ebx] + mov esi,DWORD PTR 4[ebx] + sub esp,12 + ; + + ; IP + rol edi,4 + mov edx,edi + xor edi,esi + and edi,0f0f0f0f0h + xor edx,edi + xor esi,edi + ; + + rol esi,20 + mov edi,esi + xor esi,edx + and esi,0fff0000fh + xor edi,esi + xor edx,esi + ; + + rol edi,14 + mov esi,edi + xor edi,edx + and edi,033333333h + xor esi,edi + xor edx,edi + ; + + rol edx,22 + mov edi,edx + xor edx,esi + and edx,003fc03fch + xor edi,edx + xor esi,edx + ; + + rol edi,9 + mov edx,edi + xor edi,esi + and edi,0aaaaaaaah + xor edx,edi + xor esi,edi + ; + + ror edx,3 + ror esi,2 + mov DWORD PTR 4[ebx],esi + mov eax,DWORD PTR 36[esp] + mov DWORD PTR [ebx],edx + mov edi,DWORD PTR 40[esp] + mov esi,DWORD PTR 44[esp] + mov DWORD PTR 8[esp],1 + mov DWORD PTR 4[esp],eax + mov DWORD PTR [esp],ebx + call $L_DES_encrypt2_begin + mov DWORD PTR 8[esp],0 + mov DWORD PTR 4[esp],edi + mov DWORD PTR [esp],ebx + call $L_DES_encrypt2_begin + mov DWORD PTR 8[esp],1 + mov DWORD PTR 4[esp],esi + mov DWORD PTR [esp],ebx + call $L_DES_encrypt2_begin + add esp,12 + mov edi,DWORD PTR [ebx] + mov esi,DWORD PTR 4[ebx] + ; + + ; FP + rol esi,2 + rol edi,3 + mov eax,edi + xor edi,esi + and edi,0aaaaaaaah + xor eax,edi + xor esi,edi + ; + + rol eax,23 + mov edi,eax + xor eax,esi + and eax,003fc03fch + xor edi,eax + xor esi,eax + ; + + rol edi,10 + mov eax,edi + xor edi,esi + and edi,033333333h + xor eax,edi + xor esi,edi + ; + + rol esi,18 + mov edi,esi + xor esi,eax + and esi,0fff0000fh + xor edi,esi + xor eax,esi + ; + + rol edi,12 + mov esi,edi + xor edi,eax + and edi,0f0f0f0f0h + xor esi,edi + xor eax,edi + ; + + ror eax,4 + mov DWORD PTR [ebx],eax + mov DWORD PTR 4[ebx],esi + pop edi + pop esi + pop ebp + pop ebx + ret +_DES_encrypt3 ENDP +ALIGN 16 +_DES_decrypt3 PROC PUBLIC +$L_DES_decrypt3_begin:: + push ebx + mov ebx,DWORD PTR 8[esp] + push ebp + push esi + push edi + ; + + ; Load the data words + mov edi,DWORD PTR [ebx] + mov esi,DWORD PTR 4[ebx] + sub esp,12 + ; + + ; IP + rol edi,4 + mov edx,edi + xor edi,esi + and edi,0f0f0f0f0h + xor edx,edi + xor esi,edi + ; + + rol esi,20 + mov edi,esi + xor esi,edx + and esi,0fff0000fh + xor edi,esi + xor edx,esi + ; + + rol edi,14 + mov esi,edi + xor edi,edx + and edi,033333333h + xor esi,edi + xor edx,edi + ; + + rol edx,22 + mov edi,edx + xor edx,esi + and edx,003fc03fch + xor edi,edx + xor esi,edx + ; + + rol edi,9 + mov edx,edi + xor edi,esi + and edi,0aaaaaaaah + xor edx,edi + xor esi,edi + ; + + ror edx,3 + ror esi,2 + mov DWORD PTR 4[ebx],esi + mov esi,DWORD PTR 36[esp] + mov DWORD PTR [ebx],edx + mov edi,DWORD PTR 40[esp] + mov eax,DWORD PTR 44[esp] + mov DWORD PTR 8[esp],0 + mov DWORD PTR 4[esp],eax + mov DWORD PTR [esp],ebx + call $L_DES_encrypt2_begin + mov DWORD PTR 8[esp],1 + mov DWORD PTR 4[esp],edi + mov DWORD PTR [esp],ebx + call $L_DES_encrypt2_begin + mov DWORD PTR 8[esp],0 + mov DWORD PTR 4[esp],esi + mov DWORD PTR [esp],ebx + call $L_DES_encrypt2_begin + add esp,12 + mov edi,DWORD PTR [ebx] + mov esi,DWORD PTR 4[ebx] + ; + + ; FP + rol esi,2 + rol edi,3 + mov eax,edi + xor edi,esi + and edi,0aaaaaaaah + xor eax,edi + xor esi,edi + ; + + rol eax,23 + mov edi,eax + xor eax,esi + and eax,003fc03fch + xor edi,eax + xor esi,eax + ; + + rol edi,10 + mov eax,edi + xor edi,esi + and edi,033333333h + xor eax,edi + xor esi,edi + ; + + rol esi,18 + mov edi,esi + xor esi,eax + and esi,0fff0000fh + xor edi,esi + xor eax,esi + ; + + rol edi,12 + mov esi,edi + xor edi,eax + and edi,0f0f0f0f0h + xor esi,edi + xor eax,edi + ; + + ror eax,4 + mov DWORD PTR [ebx],eax + mov DWORD PTR 4[ebx],esi + pop edi + pop esi + pop ebp + pop ebx + ret +_DES_decrypt3 ENDP +ALIGN 16 +_DES_ncbc_encrypt PROC PUBLIC +$L_DES_ncbc_encrypt_begin:: + ; + + push ebp + push ebx + push esi + push edi + mov ebp,DWORD PTR 28[esp] + ; getting iv ptr from parameter 4 + mov ebx,DWORD PTR 36[esp] + mov esi,DWORD PTR [ebx] + mov edi,DWORD PTR 4[ebx] + push edi + push esi + push edi + push esi + mov ebx,esp + mov esi,DWORD PTR 36[esp] + mov edi,DWORD PTR 40[esp] + ; getting encrypt flag from parameter 5 + mov ecx,DWORD PTR 56[esp] + ; get and push parameter 5 + push ecx + ; get and push parameter 3 + mov eax,DWORD PTR 52[esp] + push eax + push ebx + cmp ecx,0 + jz $L006decrypt + and ebp,4294967288 + mov eax,DWORD PTR 12[esp] + mov ebx,DWORD PTR 16[esp] + jz $L007encrypt_finish +$L008encrypt_loop: + mov ecx,DWORD PTR [esi] + mov edx,DWORD PTR 4[esi] + xor eax,ecx + xor ebx,edx + mov DWORD PTR 12[esp],eax + mov DWORD PTR 16[esp],ebx + call $L_DES_encrypt1_begin + mov eax,DWORD PTR 12[esp] + mov ebx,DWORD PTR 16[esp] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + add esi,8 + add edi,8 + sub ebp,8 + jnz $L008encrypt_loop +$L007encrypt_finish: + mov ebp,DWORD PTR 56[esp] + and ebp,7 + jz $L009finish + call $L010PIC_point +$L010PIC_point: + pop edx + lea ecx,DWORD PTR ($L011cbc_enc_jmp_table-$L010PIC_point)[edx] + mov ebp,DWORD PTR [ebp*4+ecx] + add ebp,edx + xor ecx,ecx + xor edx,edx + jmp ebp +$L012ej7: + mov dh,BYTE PTR 6[esi] + shl edx,8 +$L013ej6: + mov dh,BYTE PTR 5[esi] +$L014ej5: + mov dl,BYTE PTR 4[esi] +$L015ej4: + mov ecx,DWORD PTR [esi] + jmp $L016ejend +$L017ej3: + mov ch,BYTE PTR 2[esi] + shl ecx,8 +$L018ej2: + mov ch,BYTE PTR 1[esi] +$L019ej1: + mov cl,BYTE PTR [esi] +$L016ejend: + xor eax,ecx + xor ebx,edx + mov DWORD PTR 12[esp],eax + mov DWORD PTR 16[esp],ebx + call $L_DES_encrypt1_begin + mov eax,DWORD PTR 12[esp] + mov ebx,DWORD PTR 16[esp] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + jmp $L009finish +$L006decrypt: + and ebp,4294967288 + mov eax,DWORD PTR 20[esp] + mov ebx,DWORD PTR 24[esp] + jz $L020decrypt_finish +$L021decrypt_loop: + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov DWORD PTR 12[esp],eax + mov DWORD PTR 16[esp],ebx + call $L_DES_encrypt1_begin + mov eax,DWORD PTR 12[esp] + mov ebx,DWORD PTR 16[esp] + mov ecx,DWORD PTR 20[esp] + mov edx,DWORD PTR 24[esp] + xor ecx,eax + xor edx,ebx + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov DWORD PTR [edi],ecx + mov DWORD PTR 4[edi],edx + mov DWORD PTR 20[esp],eax + mov DWORD PTR 24[esp],ebx + add esi,8 + add edi,8 + sub ebp,8 + jnz $L021decrypt_loop +$L020decrypt_finish: + mov ebp,DWORD PTR 56[esp] + and ebp,7 + jz $L009finish + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov DWORD PTR 12[esp],eax + mov DWORD PTR 16[esp],ebx + call $L_DES_encrypt1_begin + mov eax,DWORD PTR 12[esp] + mov ebx,DWORD PTR 16[esp] + mov ecx,DWORD PTR 20[esp] + mov edx,DWORD PTR 24[esp] + xor ecx,eax + xor edx,ebx + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] +$L022dj7: + ror edx,16 + mov BYTE PTR 6[edi],dl + shr edx,16 +$L023dj6: + mov BYTE PTR 5[edi],dh +$L024dj5: + mov BYTE PTR 4[edi],dl +$L025dj4: + mov DWORD PTR [edi],ecx + jmp $L026djend +$L027dj3: + ror ecx,16 + mov BYTE PTR 2[edi],cl + shl ecx,16 +$L028dj2: + mov BYTE PTR 1[esi],ch +$L029dj1: + mov BYTE PTR [esi],cl +$L026djend: + jmp $L009finish +$L009finish: + mov ecx,DWORD PTR 64[esp] + add esp,28 + mov DWORD PTR [ecx],eax + mov DWORD PTR 4[ecx],ebx + pop edi + pop esi + pop ebx + pop ebp + ret +ALIGN 64 +$L011cbc_enc_jmp_table: +DD 0 +DD $L019ej1-$L010PIC_point +DD $L018ej2-$L010PIC_point +DD $L017ej3-$L010PIC_point +DD $L015ej4-$L010PIC_point +DD $L014ej5-$L010PIC_point +DD $L013ej6-$L010PIC_point +DD $L012ej7-$L010PIC_point +ALIGN 64 +_DES_ncbc_encrypt ENDP +ALIGN 16 +_DES_ede3_cbc_encrypt PROC PUBLIC +$L_DES_ede3_cbc_encrypt_begin:: + ; + + push ebp + push ebx + push esi + push edi + mov ebp,DWORD PTR 28[esp] + ; getting iv ptr from parameter 6 + mov ebx,DWORD PTR 44[esp] + mov esi,DWORD PTR [ebx] + mov edi,DWORD PTR 4[ebx] + push edi + push esi + push edi + push esi + mov ebx,esp + mov esi,DWORD PTR 36[esp] + mov edi,DWORD PTR 40[esp] + ; getting encrypt flag from parameter 7 + mov ecx,DWORD PTR 64[esp] + ; get and push parameter 5 + mov eax,DWORD PTR 56[esp] + push eax + ; get and push parameter 4 + mov eax,DWORD PTR 56[esp] + push eax + ; get and push parameter 3 + mov eax,DWORD PTR 56[esp] + push eax + push ebx + cmp ecx,0 + jz $L030decrypt + and ebp,4294967288 + mov eax,DWORD PTR 16[esp] + mov ebx,DWORD PTR 20[esp] + jz $L031encrypt_finish +$L032encrypt_loop: + mov ecx,DWORD PTR [esi] + mov edx,DWORD PTR 4[esi] + xor eax,ecx + xor ebx,edx + mov DWORD PTR 16[esp],eax + mov DWORD PTR 20[esp],ebx + call $L_DES_encrypt3_begin + mov eax,DWORD PTR 16[esp] + mov ebx,DWORD PTR 20[esp] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + add esi,8 + add edi,8 + sub ebp,8 + jnz $L032encrypt_loop +$L031encrypt_finish: + mov ebp,DWORD PTR 60[esp] + and ebp,7 + jz $L033finish + call $L034PIC_point +$L034PIC_point: + pop edx + lea ecx,DWORD PTR ($L035cbc_enc_jmp_table-$L034PIC_point)[edx] + mov ebp,DWORD PTR [ebp*4+ecx] + add ebp,edx + xor ecx,ecx + xor edx,edx + jmp ebp +$L036ej7: + mov dh,BYTE PTR 6[esi] + shl edx,8 +$L037ej6: + mov dh,BYTE PTR 5[esi] +$L038ej5: + mov dl,BYTE PTR 4[esi] +$L039ej4: + mov ecx,DWORD PTR [esi] + jmp $L040ejend +$L041ej3: + mov ch,BYTE PTR 2[esi] + shl ecx,8 +$L042ej2: + mov ch,BYTE PTR 1[esi] +$L043ej1: + mov cl,BYTE PTR [esi] +$L040ejend: + xor eax,ecx + xor ebx,edx + mov DWORD PTR 16[esp],eax + mov DWORD PTR 20[esp],ebx + call $L_DES_encrypt3_begin + mov eax,DWORD PTR 16[esp] + mov ebx,DWORD PTR 20[esp] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + jmp $L033finish +$L030decrypt: + and ebp,4294967288 + mov eax,DWORD PTR 24[esp] + mov ebx,DWORD PTR 28[esp] + jz $L044decrypt_finish +$L045decrypt_loop: + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov DWORD PTR 16[esp],eax + mov DWORD PTR 20[esp],ebx + call $L_DES_decrypt3_begin + mov eax,DWORD PTR 16[esp] + mov ebx,DWORD PTR 20[esp] + mov ecx,DWORD PTR 24[esp] + mov edx,DWORD PTR 28[esp] + xor ecx,eax + xor edx,ebx + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov DWORD PTR [edi],ecx + mov DWORD PTR 4[edi],edx + mov DWORD PTR 24[esp],eax + mov DWORD PTR 28[esp],ebx + add esi,8 + add edi,8 + sub ebp,8 + jnz $L045decrypt_loop +$L044decrypt_finish: + mov ebp,DWORD PTR 60[esp] + and ebp,7 + jz $L033finish + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov DWORD PTR 16[esp],eax + mov DWORD PTR 20[esp],ebx + call $L_DES_decrypt3_begin + mov eax,DWORD PTR 16[esp] + mov ebx,DWORD PTR 20[esp] + mov ecx,DWORD PTR 24[esp] + mov edx,DWORD PTR 28[esp] + xor ecx,eax + xor edx,ebx + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] +$L046dj7: + ror edx,16 + mov BYTE PTR 6[edi],dl + shr edx,16 +$L047dj6: + mov BYTE PTR 5[edi],dh +$L048dj5: + mov BYTE PTR 4[edi],dl +$L049dj4: + mov DWORD PTR [edi],ecx + jmp $L050djend +$L051dj3: + ror ecx,16 + mov BYTE PTR 2[edi],cl + shl ecx,16 +$L052dj2: + mov BYTE PTR 1[esi],ch +$L053dj1: + mov BYTE PTR [esi],cl +$L050djend: + jmp $L033finish +$L033finish: + mov ecx,DWORD PTR 76[esp] + add esp,32 + mov DWORD PTR [ecx],eax + mov DWORD PTR 4[ecx],ebx + pop edi + pop esi + pop ebx + pop ebp + ret +ALIGN 64 +$L035cbc_enc_jmp_table: +DD 0 +DD $L043ej1-$L034PIC_point +DD $L042ej2-$L034PIC_point +DD $L041ej3-$L034PIC_point +DD $L039ej4-$L034PIC_point +DD $L038ej5-$L034PIC_point +DD $L037ej6-$L034PIC_point +DD $L036ej7-$L034PIC_point +ALIGN 64 +_DES_ede3_cbc_encrypt ENDP +ALIGN 64 +_DES_SPtrans:: +DD 34080768,524288,33554434,34080770 +DD 33554432,526338,524290,33554434 +DD 526338,34080768,34078720,2050 +DD 33556482,33554432,0,524290 +DD 524288,2,33556480,526336 +DD 34080770,34078720,2050,33556480 +DD 2,2048,526336,34078722 +DD 2048,33556482,34078722,0 +DD 0,34080770,33556480,524290 +DD 34080768,524288,2050,33556480 +DD 34078722,2048,526336,33554434 +DD 526338,2,33554434,34078720 +DD 34080770,526336,34078720,33556482 +DD 33554432,2050,524290,0 +DD 524288,33554432,33556482,34080768 +DD 2,34078722,2048,526338 +DD 1074823184,0,1081344,1074790400 +DD 1073741840,32784,1073774592,1081344 +DD 32768,1074790416,16,1073774592 +DD 1048592,1074823168,1074790400,16 +DD 1048576,1073774608,1074790416,32768 +DD 1081360,1073741824,0,1048592 +DD 1073774608,1081360,1074823168,1073741840 +DD 1073741824,1048576,32784,1074823184 +DD 1048592,1074823168,1073774592,1081360 +DD 1074823184,1048592,1073741840,0 +DD 1073741824,32784,1048576,1074790416 +DD 32768,1073741824,1081360,1073774608 +DD 1074823168,32768,0,1073741840 +DD 16,1074823184,1081344,1074790400 +DD 1074790416,1048576,32784,1073774592 +DD 1073774608,16,1074790400,1081344 +DD 67108865,67371264,256,67109121 +DD 262145,67108864,67109121,262400 +DD 67109120,262144,67371008,1 +DD 67371265,257,1,67371009 +DD 0,262145,67371264,256 +DD 257,67371265,262144,67108865 +DD 67371009,67109120,262401,67371008 +DD 262400,0,67108864,262401 +DD 67371264,256,1,262144 +DD 257,262145,67371008,67109121 +DD 0,67371264,262400,67371009 +DD 262145,67108864,67371265,1 +DD 262401,67108865,67108864,67371265 +DD 262144,67109120,67109121,262400 +DD 67109120,0,67371009,257 +DD 67108865,262401,256,67371008 +DD 4198408,268439552,8,272633864 +DD 0,272629760,268439560,4194312 +DD 272633856,268435464,268435456,4104 +DD 268435464,4198408,4194304,268435456 +DD 272629768,4198400,4096,8 +DD 4198400,268439560,272629760,4096 +DD 4104,0,4194312,272633856 +DD 268439552,272629768,272633864,4194304 +DD 272629768,4104,4194304,268435464 +DD 4198400,268439552,8,272629760 +DD 268439560,0,4096,4194312 +DD 0,272629768,272633856,4096 +DD 268435456,272633864,4198408,4194304 +DD 272633864,8,268439552,4198408 +DD 4194312,4198400,272629760,268439560 +DD 4104,268435456,268435464,272633856 +DD 134217728,65536,1024,134284320 +DD 134283296,134218752,66592,134283264 +DD 65536,32,134217760,66560 +DD 134218784,134283296,134284288,0 +DD 66560,134217728,65568,1056 +DD 134218752,66592,0,134217760 +DD 32,134218784,134284320,65568 +DD 134283264,1024,1056,134284288 +DD 134284288,134218784,65568,134283264 +DD 65536,32,134217760,134218752 +DD 134217728,66560,134284320,0 +DD 66592,134217728,1024,65568 +DD 134218784,1024,0,134284320 +DD 134283296,134284288,1056,65536 +DD 66560,134283296,134218752,1056 +DD 32,66592,134283264,134217760 +DD 2147483712,2097216,0,2149588992 +DD 2097216,8192,2147491904,2097152 +DD 8256,2149589056,2105344,2147483648 +DD 2147491840,2147483712,2149580800,2105408 +DD 2097152,2147491904,2149580864,0 +DD 8192,64,2149588992,2149580864 +DD 2149589056,2149580800,2147483648,8256 +DD 64,2105344,2105408,2147491840 +DD 8256,2147483648,2147491840,2105408 +DD 2149588992,2097216,0,2147491840 +DD 2147483648,8192,2149580864,2097152 +DD 2097216,2149589056,2105344,64 +DD 2149589056,2105344,2097152,2147491904 +DD 2147483712,2149580800,2105408,0 +DD 8192,2147483712,2147491904,2149588992 +DD 2149580800,8256,64,2149580864 +DD 16384,512,16777728,16777220 +DD 16794116,16388,16896,0 +DD 16777216,16777732,516,16793600 +DD 4,16794112,16793600,516 +DD 16777732,16384,16388,16794116 +DD 0,16777728,16777220,16896 +DD 16793604,16900,16794112,4 +DD 16900,16793604,512,16777216 +DD 16900,16793600,16793604,516 +DD 16384,512,16777216,16793604 +DD 16777732,16900,16896,0 +DD 512,16777220,4,16777728 +DD 0,16777732,16777728,16896 +DD 516,16384,16794116,16777216 +DD 16794112,4,16388,16794116 +DD 16777220,16794112,16793600,16388 +DD 545259648,545390592,131200,0 +DD 537001984,8388736,545259520,545390720 +DD 128,536870912,8519680,131200 +DD 8519808,537002112,536871040,545259520 +DD 131072,8519808,8388736,537001984 +DD 545390720,536871040,0,8519680 +DD 536870912,8388608,537002112,545259648 +DD 8388608,131072,545390592,128 +DD 8388608,131072,536871040,545390720 +DD 131200,536870912,0,8519680 +DD 545259648,537002112,537001984,8388736 +DD 545390592,128,8388736,537001984 +DD 545390720,8388608,545259520,536871040 +DD 8519680,131200,537002112,545259520 +DD 128,545390592,8519808,0 +DD 536870912,545259648,131072,8519808 +.text$ ENDS +END diff --git a/deps/openssl/asm/x86-win32-masm/md5/md5-586.asm b/deps/openssl/asm/x86-win32-masm/md5/md5-586.asm new file mode 100644 index 0000000000..c8edae762d --- /dev/null +++ b/deps/openssl/asm/x86-win32-masm/md5/md5-586.asm @@ -0,0 +1,693 @@ +TITLE ../openssl/crypto/md5/asm/md5-586.asm +IF @Version LT 800 +ECHO MASM version 8.00 or later is strongly recommended. +ENDIF +.586 +.MODEL FLAT +OPTION DOTNAME +IF @Version LT 800 +.text$ SEGMENT PAGE 'CODE' +ELSE +.text$ SEGMENT ALIGN(64) 'CODE' +ENDIF +ALIGN 16 +_md5_block_asm_data_order PROC PUBLIC +$L_md5_block_asm_data_order_begin:: + push esi + push edi + mov edi,DWORD PTR 12[esp] + mov esi,DWORD PTR 16[esp] + mov ecx,DWORD PTR 20[esp] + push ebp + shl ecx,6 + push ebx + add ecx,esi + sub ecx,64 + mov eax,DWORD PTR [edi] + push ecx + mov ebx,DWORD PTR 4[edi] + mov ecx,DWORD PTR 8[edi] + mov edx,DWORD PTR 12[edi] +$L000start: + ; + + ; R0 section + mov edi,ecx + mov ebp,DWORD PTR [esi] + ; R0 0 + xor edi,edx + and edi,ebx + lea eax,DWORD PTR 3614090360[ebp*1+eax] + xor edi,edx + add eax,edi + mov edi,ebx + rol eax,7 + mov ebp,DWORD PTR 4[esi] + add eax,ebx + ; R0 1 + xor edi,ecx + and edi,eax + lea edx,DWORD PTR 3905402710[ebp*1+edx] + xor edi,ecx + add edx,edi + mov edi,eax + rol edx,12 + mov ebp,DWORD PTR 8[esi] + add edx,eax + ; R0 2 + xor edi,ebx + and edi,edx + lea ecx,DWORD PTR 606105819[ebp*1+ecx] + xor edi,ebx + add ecx,edi + mov edi,edx + rol ecx,17 + mov ebp,DWORD PTR 12[esi] + add ecx,edx + ; R0 3 + xor edi,eax + and edi,ecx + lea ebx,DWORD PTR 3250441966[ebp*1+ebx] + xor edi,eax + add ebx,edi + mov edi,ecx + rol ebx,22 + mov ebp,DWORD PTR 16[esi] + add ebx,ecx + ; R0 4 + xor edi,edx + and edi,ebx + lea eax,DWORD PTR 4118548399[ebp*1+eax] + xor edi,edx + add eax,edi + mov edi,ebx + rol eax,7 + mov ebp,DWORD PTR 20[esi] + add eax,ebx + ; R0 5 + xor edi,ecx + and edi,eax + lea edx,DWORD PTR 1200080426[ebp*1+edx] + xor edi,ecx + add edx,edi + mov edi,eax + rol edx,12 + mov ebp,DWORD PTR 24[esi] + add edx,eax + ; R0 6 + xor edi,ebx + and edi,edx + lea ecx,DWORD PTR 2821735955[ebp*1+ecx] + xor edi,ebx + add ecx,edi + mov edi,edx + rol ecx,17 + mov ebp,DWORD PTR 28[esi] + add ecx,edx + ; R0 7 + xor edi,eax + and edi,ecx + lea ebx,DWORD PTR 4249261313[ebp*1+ebx] + xor edi,eax + add ebx,edi + mov edi,ecx + rol ebx,22 + mov ebp,DWORD PTR 32[esi] + add ebx,ecx + ; R0 8 + xor edi,edx + and edi,ebx + lea eax,DWORD PTR 1770035416[ebp*1+eax] + xor edi,edx + add eax,edi + mov edi,ebx + rol eax,7 + mov ebp,DWORD PTR 36[esi] + add eax,ebx + ; R0 9 + xor edi,ecx + and edi,eax + lea edx,DWORD PTR 2336552879[ebp*1+edx] + xor edi,ecx + add edx,edi + mov edi,eax + rol edx,12 + mov ebp,DWORD PTR 40[esi] + add edx,eax + ; R0 10 + xor edi,ebx + and edi,edx + lea ecx,DWORD PTR 4294925233[ebp*1+ecx] + xor edi,ebx + add ecx,edi + mov edi,edx + rol ecx,17 + mov ebp,DWORD PTR 44[esi] + add ecx,edx + ; R0 11 + xor edi,eax + and edi,ecx + lea ebx,DWORD PTR 2304563134[ebp*1+ebx] + xor edi,eax + add ebx,edi + mov edi,ecx + rol ebx,22 + mov ebp,DWORD PTR 48[esi] + add ebx,ecx + ; R0 12 + xor edi,edx + and edi,ebx + lea eax,DWORD PTR 1804603682[ebp*1+eax] + xor edi,edx + add eax,edi + mov edi,ebx + rol eax,7 + mov ebp,DWORD PTR 52[esi] + add eax,ebx + ; R0 13 + xor edi,ecx + and edi,eax + lea edx,DWORD PTR 4254626195[ebp*1+edx] + xor edi,ecx + add edx,edi + mov edi,eax + rol edx,12 + mov ebp,DWORD PTR 56[esi] + add edx,eax + ; R0 14 + xor edi,ebx + and edi,edx + lea ecx,DWORD PTR 2792965006[ebp*1+ecx] + xor edi,ebx + add ecx,edi + mov edi,edx + rol ecx,17 + mov ebp,DWORD PTR 60[esi] + add ecx,edx + ; R0 15 + xor edi,eax + and edi,ecx + lea ebx,DWORD PTR 1236535329[ebp*1+ebx] + xor edi,eax + add ebx,edi + mov edi,ecx + rol ebx,22 + mov ebp,DWORD PTR 4[esi] + add ebx,ecx + ; + + ; R1 section + ; R1 16 + lea eax,DWORD PTR 4129170786[ebp*1+eax] + xor edi,ebx + and edi,edx + mov ebp,DWORD PTR 24[esi] + xor edi,ecx + add eax,edi + mov edi,ebx + rol eax,5 + add eax,ebx + ; R1 17 + lea edx,DWORD PTR 3225465664[ebp*1+edx] + xor edi,eax + and edi,ecx + mov ebp,DWORD PTR 44[esi] + xor edi,ebx + add edx,edi + mov edi,eax + rol edx,9 + add edx,eax + ; R1 18 + lea ecx,DWORD PTR 643717713[ebp*1+ecx] + xor edi,edx + and edi,ebx + mov ebp,DWORD PTR [esi] + xor edi,eax + add ecx,edi + mov edi,edx + rol ecx,14 + add ecx,edx + ; R1 19 + lea ebx,DWORD PTR 3921069994[ebp*1+ebx] + xor edi,ecx + and edi,eax + mov ebp,DWORD PTR 20[esi] + xor edi,edx + add ebx,edi + mov edi,ecx + rol ebx,20 + add ebx,ecx + ; R1 20 + lea eax,DWORD PTR 3593408605[ebp*1+eax] + xor edi,ebx + and edi,edx + mov ebp,DWORD PTR 40[esi] + xor edi,ecx + add eax,edi + mov edi,ebx + rol eax,5 + add eax,ebx + ; R1 21 + lea edx,DWORD PTR 38016083[ebp*1+edx] + xor edi,eax + and edi,ecx + mov ebp,DWORD PTR 60[esi] + xor edi,ebx + add edx,edi + mov edi,eax + rol edx,9 + add edx,eax + ; R1 22 + lea ecx,DWORD PTR 3634488961[ebp*1+ecx] + xor edi,edx + and edi,ebx + mov ebp,DWORD PTR 16[esi] + xor edi,eax + add ecx,edi + mov edi,edx + rol ecx,14 + add ecx,edx + ; R1 23 + lea ebx,DWORD PTR 3889429448[ebp*1+ebx] + xor edi,ecx + and edi,eax + mov ebp,DWORD PTR 36[esi] + xor edi,edx + add ebx,edi + mov edi,ecx + rol ebx,20 + add ebx,ecx + ; R1 24 + lea eax,DWORD PTR 568446438[ebp*1+eax] + xor edi,ebx + and edi,edx + mov ebp,DWORD PTR 56[esi] + xor edi,ecx + add eax,edi + mov edi,ebx + rol eax,5 + add eax,ebx + ; R1 25 + lea edx,DWORD PTR 3275163606[ebp*1+edx] + xor edi,eax + and edi,ecx + mov ebp,DWORD PTR 12[esi] + xor edi,ebx + add edx,edi + mov edi,eax + rol edx,9 + add edx,eax + ; R1 26 + lea ecx,DWORD PTR 4107603335[ebp*1+ecx] + xor edi,edx + and edi,ebx + mov ebp,DWORD PTR 32[esi] + xor edi,eax + add ecx,edi + mov edi,edx + rol ecx,14 + add ecx,edx + ; R1 27 + lea ebx,DWORD PTR 1163531501[ebp*1+ebx] + xor edi,ecx + and edi,eax + mov ebp,DWORD PTR 52[esi] + xor edi,edx + add ebx,edi + mov edi,ecx + rol ebx,20 + add ebx,ecx + ; R1 28 + lea eax,DWORD PTR 2850285829[ebp*1+eax] + xor edi,ebx + and edi,edx + mov ebp,DWORD PTR 8[esi] + xor edi,ecx + add eax,edi + mov edi,ebx + rol eax,5 + add eax,ebx + ; R1 29 + lea edx,DWORD PTR 4243563512[ebp*1+edx] + xor edi,eax + and edi,ecx + mov ebp,DWORD PTR 28[esi] + xor edi,ebx + add edx,edi + mov edi,eax + rol edx,9 + add edx,eax + ; R1 30 + lea ecx,DWORD PTR 1735328473[ebp*1+ecx] + xor edi,edx + and edi,ebx + mov ebp,DWORD PTR 48[esi] + xor edi,eax + add ecx,edi + mov edi,edx + rol ecx,14 + add ecx,edx + ; R1 31 + lea ebx,DWORD PTR 2368359562[ebp*1+ebx] + xor edi,ecx + and edi,eax + mov ebp,DWORD PTR 20[esi] + xor edi,edx + add ebx,edi + mov edi,ecx + rol ebx,20 + add ebx,ecx + ; + + ; R2 section + ; R2 32 + xor edi,edx + xor edi,ebx + lea eax,DWORD PTR 4294588738[ebp*1+eax] + add eax,edi + rol eax,4 + mov ebp,DWORD PTR 32[esi] + mov edi,ebx + ; R2 33 + lea edx,DWORD PTR 2272392833[ebp*1+edx] + add eax,ebx + xor edi,ecx + xor edi,eax + mov ebp,DWORD PTR 44[esi] + add edx,edi + mov edi,eax + rol edx,11 + add edx,eax + ; R2 34 + xor edi,ebx + xor edi,edx + lea ecx,DWORD PTR 1839030562[ebp*1+ecx] + add ecx,edi + rol ecx,16 + mov ebp,DWORD PTR 56[esi] + mov edi,edx + ; R2 35 + lea ebx,DWORD PTR 4259657740[ebp*1+ebx] + add ecx,edx + xor edi,eax + xor edi,ecx + mov ebp,DWORD PTR 4[esi] + add ebx,edi + mov edi,ecx + rol ebx,23 + add ebx,ecx + ; R2 36 + xor edi,edx + xor edi,ebx + lea eax,DWORD PTR 2763975236[ebp*1+eax] + add eax,edi + rol eax,4 + mov ebp,DWORD PTR 16[esi] + mov edi,ebx + ; R2 37 + lea edx,DWORD PTR 1272893353[ebp*1+edx] + add eax,ebx + xor edi,ecx + xor edi,eax + mov ebp,DWORD PTR 28[esi] + add edx,edi + mov edi,eax + rol edx,11 + add edx,eax + ; R2 38 + xor edi,ebx + xor edi,edx + lea ecx,DWORD PTR 4139469664[ebp*1+ecx] + add ecx,edi + rol ecx,16 + mov ebp,DWORD PTR 40[esi] + mov edi,edx + ; R2 39 + lea ebx,DWORD PTR 3200236656[ebp*1+ebx] + add ecx,edx + xor edi,eax + xor edi,ecx + mov ebp,DWORD PTR 52[esi] + add ebx,edi + mov edi,ecx + rol ebx,23 + add ebx,ecx + ; R2 40 + xor edi,edx + xor edi,ebx + lea eax,DWORD PTR 681279174[ebp*1+eax] + add eax,edi + rol eax,4 + mov ebp,DWORD PTR [esi] + mov edi,ebx + ; R2 41 + lea edx,DWORD PTR 3936430074[ebp*1+edx] + add eax,ebx + xor edi,ecx + xor edi,eax + mov ebp,DWORD PTR 12[esi] + add edx,edi + mov edi,eax + rol edx,11 + add edx,eax + ; R2 42 + xor edi,ebx + xor edi,edx + lea ecx,DWORD PTR 3572445317[ebp*1+ecx] + add ecx,edi + rol ecx,16 + mov ebp,DWORD PTR 24[esi] + mov edi,edx + ; R2 43 + lea ebx,DWORD PTR 76029189[ebp*1+ebx] + add ecx,edx + xor edi,eax + xor edi,ecx + mov ebp,DWORD PTR 36[esi] + add ebx,edi + mov edi,ecx + rol ebx,23 + add ebx,ecx + ; R2 44 + xor edi,edx + xor edi,ebx + lea eax,DWORD PTR 3654602809[ebp*1+eax] + add eax,edi + rol eax,4 + mov ebp,DWORD PTR 48[esi] + mov edi,ebx + ; R2 45 + lea edx,DWORD PTR 3873151461[ebp*1+edx] + add eax,ebx + xor edi,ecx + xor edi,eax + mov ebp,DWORD PTR 60[esi] + add edx,edi + mov edi,eax + rol edx,11 + add edx,eax + ; R2 46 + xor edi,ebx + xor edi,edx + lea ecx,DWORD PTR 530742520[ebp*1+ecx] + add ecx,edi + rol ecx,16 + mov ebp,DWORD PTR 8[esi] + mov edi,edx + ; R2 47 + lea ebx,DWORD PTR 3299628645[ebp*1+ebx] + add ecx,edx + xor edi,eax + xor edi,ecx + mov ebp,DWORD PTR [esi] + add ebx,edi + mov edi,-1 + rol ebx,23 + add ebx,ecx + ; + + ; R3 section + ; R3 48 + xor edi,edx + or edi,ebx + lea eax,DWORD PTR 4096336452[ebp*1+eax] + xor edi,ecx + mov ebp,DWORD PTR 28[esi] + add eax,edi + mov edi,-1 + rol eax,6 + xor edi,ecx + add eax,ebx + ; R3 49 + or edi,eax + lea edx,DWORD PTR 1126891415[ebp*1+edx] + xor edi,ebx + mov ebp,DWORD PTR 56[esi] + add edx,edi + mov edi,-1 + rol edx,10 + xor edi,ebx + add edx,eax + ; R3 50 + or edi,edx + lea ecx,DWORD PTR 2878612391[ebp*1+ecx] + xor edi,eax + mov ebp,DWORD PTR 20[esi] + add ecx,edi + mov edi,-1 + rol ecx,15 + xor edi,eax + add ecx,edx + ; R3 51 + or edi,ecx + lea ebx,DWORD PTR 4237533241[ebp*1+ebx] + xor edi,edx + mov ebp,DWORD PTR 48[esi] + add ebx,edi + mov edi,-1 + rol ebx,21 + xor edi,edx + add ebx,ecx + ; R3 52 + or edi,ebx + lea eax,DWORD PTR 1700485571[ebp*1+eax] + xor edi,ecx + mov ebp,DWORD PTR 12[esi] + add eax,edi + mov edi,-1 + rol eax,6 + xor edi,ecx + add eax,ebx + ; R3 53 + or edi,eax + lea edx,DWORD PTR 2399980690[ebp*1+edx] + xor edi,ebx + mov ebp,DWORD PTR 40[esi] + add edx,edi + mov edi,-1 + rol edx,10 + xor edi,ebx + add edx,eax + ; R3 54 + or edi,edx + lea ecx,DWORD PTR 4293915773[ebp*1+ecx] + xor edi,eax + mov ebp,DWORD PTR 4[esi] + add ecx,edi + mov edi,-1 + rol ecx,15 + xor edi,eax + add ecx,edx + ; R3 55 + or edi,ecx + lea ebx,DWORD PTR 2240044497[ebp*1+ebx] + xor edi,edx + mov ebp,DWORD PTR 32[esi] + add ebx,edi + mov edi,-1 + rol ebx,21 + xor edi,edx + add ebx,ecx + ; R3 56 + or edi,ebx + lea eax,DWORD PTR 1873313359[ebp*1+eax] + xor edi,ecx + mov ebp,DWORD PTR 60[esi] + add eax,edi + mov edi,-1 + rol eax,6 + xor edi,ecx + add eax,ebx + ; R3 57 + or edi,eax + lea edx,DWORD PTR 4264355552[ebp*1+edx] + xor edi,ebx + mov ebp,DWORD PTR 24[esi] + add edx,edi + mov edi,-1 + rol edx,10 + xor edi,ebx + add edx,eax + ; R3 58 + or edi,edx + lea ecx,DWORD PTR 2734768916[ebp*1+ecx] + xor edi,eax + mov ebp,DWORD PTR 52[esi] + add ecx,edi + mov edi,-1 + rol ecx,15 + xor edi,eax + add ecx,edx + ; R3 59 + or edi,ecx + lea ebx,DWORD PTR 1309151649[ebp*1+ebx] + xor edi,edx + mov ebp,DWORD PTR 16[esi] + add ebx,edi + mov edi,-1 + rol ebx,21 + xor edi,edx + add ebx,ecx + ; R3 60 + or edi,ebx + lea eax,DWORD PTR 4149444226[ebp*1+eax] + xor edi,ecx + mov ebp,DWORD PTR 44[esi] + add eax,edi + mov edi,-1 + rol eax,6 + xor edi,ecx + add eax,ebx + ; R3 61 + or edi,eax + lea edx,DWORD PTR 3174756917[ebp*1+edx] + xor edi,ebx + mov ebp,DWORD PTR 8[esi] + add edx,edi + mov edi,-1 + rol edx,10 + xor edi,ebx + add edx,eax + ; R3 62 + or edi,edx + lea ecx,DWORD PTR 718787259[ebp*1+ecx] + xor edi,eax + mov ebp,DWORD PTR 36[esi] + add ecx,edi + mov edi,-1 + rol ecx,15 + xor edi,eax + add ecx,edx + ; R3 63 + or edi,ecx + lea ebx,DWORD PTR 3951481745[ebp*1+ebx] + xor edi,edx + mov ebp,DWORD PTR 24[esp] + add ebx,edi + add esi,64 + rol ebx,21 + mov edi,DWORD PTR [ebp] + add ebx,ecx + add eax,edi + mov edi,DWORD PTR 4[ebp] + add ebx,edi + mov edi,DWORD PTR 8[ebp] + add ecx,edi + mov edi,DWORD PTR 12[ebp] + add edx,edi + mov DWORD PTR [ebp],eax + mov DWORD PTR 4[ebp],ebx + mov edi,DWORD PTR [esp] + mov DWORD PTR 8[ebp],ecx + mov DWORD PTR 12[ebp],edx + cmp edi,esi + jae $L000start + pop eax + pop ebx + pop ebp + pop edi + pop esi + ret +_md5_block_asm_data_order ENDP +.text$ ENDS +END diff --git a/deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm b/deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm new file mode 100644 index 0000000000..3eb66f7350 --- /dev/null +++ b/deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm @@ -0,0 +1,239 @@ +TITLE rc4-586.asm +IF @Version LT 800 +ECHO MASM version 8.00 or later is strongly recommended. +ENDIF +.586 +.MODEL FLAT +OPTION DOTNAME +IF @Version LT 800 +.text$ SEGMENT PAGE 'CODE' +ELSE +.text$ SEGMENT ALIGN(64) 'CODE' +ENDIF +ALIGN 16 +_RC4 PROC PUBLIC +$L_RC4_begin:: + push ebp + push ebx + push esi + push edi + mov edi,DWORD PTR 20[esp] + mov edx,DWORD PTR 24[esp] + mov esi,DWORD PTR 28[esp] + mov ebp,DWORD PTR 32[esp] + xor eax,eax + xor ebx,ebx + cmp edx,0 + je $L000abort + mov al,BYTE PTR [edi] + mov bl,BYTE PTR 4[edi] + add edi,8 + lea ecx,DWORD PTR [edx*1+esi] + sub ebp,esi + mov DWORD PTR 24[esp],ecx + inc al + cmp DWORD PTR 256[edi],-1 + je $L001RC4_CHAR + mov ecx,DWORD PTR [eax*4+edi] + and edx,-4 + jz $L002loop1 + lea edx,DWORD PTR [edx*1+esi-4] + mov DWORD PTR 28[esp],edx + mov DWORD PTR 32[esp],ebp +ALIGN 16 +$L003loop4: + add bl,cl + mov edx,DWORD PTR [ebx*4+edi] + mov DWORD PTR [ebx*4+edi],ecx + mov DWORD PTR [eax*4+edi],edx + add edx,ecx + inc al + and edx,255 + mov ecx,DWORD PTR [eax*4+edi] + mov ebp,DWORD PTR [edx*4+edi] + add bl,cl + mov edx,DWORD PTR [ebx*4+edi] + mov DWORD PTR [ebx*4+edi],ecx + mov DWORD PTR [eax*4+edi],edx + add edx,ecx + inc al + and edx,255 + ror ebp,8 + mov ecx,DWORD PTR [eax*4+edi] + or ebp,DWORD PTR [edx*4+edi] + add bl,cl + mov edx,DWORD PTR [ebx*4+edi] + mov DWORD PTR [ebx*4+edi],ecx + mov DWORD PTR [eax*4+edi],edx + add edx,ecx + inc al + and edx,255 + ror ebp,8 + mov ecx,DWORD PTR [eax*4+edi] + or ebp,DWORD PTR [edx*4+edi] + add bl,cl + mov edx,DWORD PTR [ebx*4+edi] + mov DWORD PTR [ebx*4+edi],ecx + mov DWORD PTR [eax*4+edi],edx + add edx,ecx + inc al + and edx,255 + ror ebp,8 + mov ecx,DWORD PTR 32[esp] + or ebp,DWORD PTR [edx*4+edi] + ror ebp,8 + xor ebp,DWORD PTR [esi] + cmp esi,DWORD PTR 28[esp] + mov DWORD PTR [esi*1+ecx],ebp + lea esi,DWORD PTR 4[esi] + mov ecx,DWORD PTR [eax*4+edi] + jb $L003loop4 + cmp esi,DWORD PTR 24[esp] + je $L004done + mov ebp,DWORD PTR 32[esp] +ALIGN 16 +$L002loop1: + add bl,cl + mov edx,DWORD PTR [ebx*4+edi] + mov DWORD PTR [ebx*4+edi],ecx + mov DWORD PTR [eax*4+edi],edx + add edx,ecx + inc al + and edx,255 + mov edx,DWORD PTR [edx*4+edi] + xor dl,BYTE PTR [esi] + lea esi,DWORD PTR 1[esi] + mov ecx,DWORD PTR [eax*4+edi] + cmp esi,DWORD PTR 24[esp] + mov BYTE PTR [esi*1+ebp-1],dl + jb $L002loop1 + jmp $L004done +ALIGN 16 +$L001RC4_CHAR: + movzx ecx,BYTE PTR [eax*1+edi] +$L005cloop1: + add bl,cl + movzx edx,BYTE PTR [ebx*1+edi] + mov BYTE PTR [ebx*1+edi],cl + mov BYTE PTR [eax*1+edi],dl + add dl,cl + movzx edx,BYTE PTR [edx*1+edi] + add al,1 + xor dl,BYTE PTR [esi] + lea esi,DWORD PTR 1[esi] + movzx ecx,BYTE PTR [eax*1+edi] + cmp esi,DWORD PTR 24[esp] + mov BYTE PTR [esi*1+ebp-1],dl + jb $L005cloop1 +$L004done: + dec al + mov BYTE PTR [edi-4],bl + mov BYTE PTR [edi-8],al +$L000abort: + pop edi + pop esi + pop ebx + pop ebp + ret +_RC4 ENDP +;EXTERN _OPENSSL_ia32cap_P:NEAR +ALIGN 16 +_RC4_set_key PROC PUBLIC +$L_RC4_set_key_begin:: + push ebp + push ebx + push esi + push edi + mov edi,DWORD PTR 20[esp] + mov ebp,DWORD PTR 24[esp] + mov esi,DWORD PTR 28[esp] + lea edx,DWORD PTR _OPENSSL_ia32cap_P + lea edi,DWORD PTR 8[edi] + lea esi,DWORD PTR [ebp*1+esi] + neg ebp + xor eax,eax + mov DWORD PTR [edi-4],ebp + bt DWORD PTR [edx],20 + jc $L006c1stloop +ALIGN 16 +$L007w1stloop: + mov DWORD PTR [eax*4+edi],eax + add al,1 + jnc $L007w1stloop + xor ecx,ecx + xor edx,edx +ALIGN 16 +$L008w2ndloop: + mov eax,DWORD PTR [ecx*4+edi] + add dl,BYTE PTR [ebp*1+esi] + add dl,al + add ebp,1 + mov ebx,DWORD PTR [edx*4+edi] + jnz $L009wnowrap + mov ebp,DWORD PTR [edi-4] +$L009wnowrap: + mov DWORD PTR [edx*4+edi],eax + mov DWORD PTR [ecx*4+edi],ebx + add cl,1 + jnc $L008w2ndloop + jmp $L010exit +ALIGN 16 +$L006c1stloop: + mov BYTE PTR [eax*1+edi],al + add al,1 + jnc $L006c1stloop + xor ecx,ecx + xor edx,edx + xor ebx,ebx +ALIGN 16 +$L011c2ndloop: + mov al,BYTE PTR [ecx*1+edi] + add dl,BYTE PTR [ebp*1+esi] + add dl,al + add ebp,1 + mov bl,BYTE PTR [edx*1+edi] + jnz $L012cnowrap + mov ebp,DWORD PTR [edi-4] +$L012cnowrap: + mov BYTE PTR [edx*1+edi],al + mov BYTE PTR [ecx*1+edi],bl + add cl,1 + jnc $L011c2ndloop + mov DWORD PTR 256[edi],-1 +$L010exit: + xor eax,eax + mov DWORD PTR [edi-8],eax + mov DWORD PTR [edi-4],eax + pop edi + pop esi + pop ebx + pop ebp + ret +_RC4_set_key ENDP +ALIGN 16 +_RC4_options PROC PUBLIC +$L_RC4_options_begin:: + call $L013pic_point +$L013pic_point: + pop eax + lea eax,DWORD PTR ($L014opts-$L013pic_point)[eax] + lea edx,DWORD PTR _OPENSSL_ia32cap_P + bt DWORD PTR [edx],20 + jnc $L015skip + add eax,12 +$L015skip: + ret +ALIGN 64 +$L014opts: +DB 114,99,52,40,52,120,44,105,110,116,41,0 +DB 114,99,52,40,49,120,44,99,104,97,114,41,0 +DB 82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89 +DB 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 +DB 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +ALIGN 64 +_RC4_options ENDP +.text$ ENDS +.bss SEGMENT 'BSS' +COMM _OPENSSL_ia32cap_P:DWORD +.bss ENDS +END diff --git a/deps/openssl/asm/x86-win32-masm/rc5/rc5-586.asm b/deps/openssl/asm/x86-win32-masm/rc5/rc5-586.asm new file mode 100644 index 0000000000..e699d9173f --- /dev/null +++ b/deps/openssl/asm/x86-win32-masm/rc5/rc5-586.asm @@ -0,0 +1,573 @@ +TITLE rc5-586.asm +IF @Version LT 800 +ECHO MASM version 8.00 or later is strongly recommended. +ENDIF +.586 +.MODEL FLAT +OPTION DOTNAME +IF @Version LT 800 +.text$ SEGMENT PAGE 'CODE' +ELSE +.text$ SEGMENT ALIGN(64) 'CODE' +ENDIF +ALIGN 16 +_RC5_32_encrypt PROC PUBLIC +$L_RC5_32_encrypt_begin:: + ; + + push ebp + push esi + push edi + mov edx,DWORD PTR 16[esp] + mov ebp,DWORD PTR 20[esp] + ; Load the 2 words + mov edi,DWORD PTR [edx] + mov esi,DWORD PTR 4[edx] + push ebx + mov ebx,DWORD PTR [ebp] + add edi,DWORD PTR 4[ebp] + add esi,DWORD PTR 8[ebp] + xor edi,esi + mov eax,DWORD PTR 12[ebp] + mov ecx,esi + rol edi,cl + add edi,eax + xor esi,edi + mov eax,DWORD PTR 16[ebp] + mov ecx,edi + rol esi,cl + add esi,eax + xor edi,esi + mov eax,DWORD PTR 20[ebp] + mov ecx,esi + rol edi,cl + add edi,eax + xor esi,edi + mov eax,DWORD PTR 24[ebp] + mov ecx,edi + rol esi,cl + add esi,eax + xor edi,esi + mov eax,DWORD PTR 28[ebp] + mov ecx,esi + rol edi,cl + add edi,eax + xor esi,edi + mov eax,DWORD PTR 32[ebp] + mov ecx,edi + rol esi,cl + add esi,eax + xor edi,esi + mov eax,DWORD PTR 36[ebp] + mov ecx,esi + rol edi,cl + add edi,eax + xor esi,edi + mov eax,DWORD PTR 40[ebp] + mov ecx,edi + rol esi,cl + add esi,eax + xor edi,esi + mov eax,DWORD PTR 44[ebp] + mov ecx,esi + rol edi,cl + add edi,eax + xor esi,edi + mov eax,DWORD PTR 48[ebp] + mov ecx,edi + rol esi,cl + add esi,eax + xor edi,esi + mov eax,DWORD PTR 52[ebp] + mov ecx,esi + rol edi,cl + add edi,eax + xor esi,edi + mov eax,DWORD PTR 56[ebp] + mov ecx,edi + rol esi,cl + add esi,eax + xor edi,esi + mov eax,DWORD PTR 60[ebp] + mov ecx,esi + rol edi,cl + add edi,eax + xor esi,edi + mov eax,DWORD PTR 64[ebp] + mov ecx,edi + rol esi,cl + add esi,eax + xor edi,esi + mov eax,DWORD PTR 68[ebp] + mov ecx,esi + rol edi,cl + add edi,eax + xor esi,edi + mov eax,DWORD PTR 72[ebp] + mov ecx,edi + rol esi,cl + add esi,eax + cmp ebx,8 + je $L000rc5_exit + xor edi,esi + mov eax,DWORD PTR 76[ebp] + mov ecx,esi + rol edi,cl + add edi,eax + xor esi,edi + mov eax,DWORD PTR 80[ebp] + mov ecx,edi + rol esi,cl + add esi,eax + xor edi,esi + mov eax,DWORD PTR 84[ebp] + mov ecx,esi + rol edi,cl + add edi,eax + xor esi,edi + mov eax,DWORD PTR 88[ebp] + mov ecx,edi + rol esi,cl + add esi,eax + xor edi,esi + mov eax,DWORD PTR 92[ebp] + mov ecx,esi + rol edi,cl + add edi,eax + xor esi,edi + mov eax,DWORD PTR 96[ebp] + mov ecx,edi + rol esi,cl + add esi,eax + xor edi,esi + mov eax,DWORD PTR 100[ebp] + mov ecx,esi + rol edi,cl + add edi,eax + xor esi,edi + mov eax,DWORD PTR 104[ebp] + mov ecx,edi + rol esi,cl + add esi,eax + cmp ebx,12 + je $L000rc5_exit + xor edi,esi + mov eax,DWORD PTR 108[ebp] + mov ecx,esi + rol edi,cl + add edi,eax + xor esi,edi + mov eax,DWORD PTR 112[ebp] + mov ecx,edi + rol esi,cl + add esi,eax + xor edi,esi + mov eax,DWORD PTR 116[ebp] + mov ecx,esi + rol edi,cl + add edi,eax + xor esi,edi + mov eax,DWORD PTR 120[ebp] + mov ecx,edi + rol esi,cl + add esi,eax + xor edi,esi + mov eax,DWORD PTR 124[ebp] + mov ecx,esi + rol edi,cl + add edi,eax + xor esi,edi + mov eax,DWORD PTR 128[ebp] + mov ecx,edi + rol esi,cl + add esi,eax + xor edi,esi + mov eax,DWORD PTR 132[ebp] + mov ecx,esi + rol edi,cl + add edi,eax + xor esi,edi + mov eax,DWORD PTR 136[ebp] + mov ecx,edi + rol esi,cl + add esi,eax +$L000rc5_exit: + mov DWORD PTR [edx],edi + mov DWORD PTR 4[edx],esi + pop ebx + pop edi + pop esi + pop ebp + ret +_RC5_32_encrypt ENDP +ALIGN 16 +_RC5_32_decrypt PROC PUBLIC +$L_RC5_32_decrypt_begin:: + ; + + push ebp + push esi + push edi + mov edx,DWORD PTR 16[esp] + mov ebp,DWORD PTR 20[esp] + ; Load the 2 words + mov edi,DWORD PTR [edx] + mov esi,DWORD PTR 4[edx] + push ebx + mov ebx,DWORD PTR [ebp] + cmp ebx,12 + je $L001rc5_dec_12 + cmp ebx,8 + je $L002rc5_dec_8 + mov eax,DWORD PTR 136[ebp] + sub esi,eax + mov ecx,edi + ror esi,cl + xor esi,edi + mov eax,DWORD PTR 132[ebp] + sub edi,eax + mov ecx,esi + ror edi,cl + xor edi,esi + mov eax,DWORD PTR 128[ebp] + sub esi,eax + mov ecx,edi + ror esi,cl + xor esi,edi + mov eax,DWORD PTR 124[ebp] + sub edi,eax + mov ecx,esi + ror edi,cl + xor edi,esi + mov eax,DWORD PTR 120[ebp] + sub esi,eax + mov ecx,edi + ror esi,cl + xor esi,edi + mov eax,DWORD PTR 116[ebp] + sub edi,eax + mov ecx,esi + ror edi,cl + xor edi,esi + mov eax,DWORD PTR 112[ebp] + sub esi,eax + mov ecx,edi + ror esi,cl + xor esi,edi + mov eax,DWORD PTR 108[ebp] + sub edi,eax + mov ecx,esi + ror edi,cl + xor edi,esi +$L001rc5_dec_12: + mov eax,DWORD PTR 104[ebp] + sub esi,eax + mov ecx,edi + ror esi,cl + xor esi,edi + mov eax,DWORD PTR 100[ebp] + sub edi,eax + mov ecx,esi + ror edi,cl + xor edi,esi + mov eax,DWORD PTR 96[ebp] + sub esi,eax + mov ecx,edi + ror esi,cl + xor esi,edi + mov eax,DWORD PTR 92[ebp] + sub edi,eax + mov ecx,esi + ror edi,cl + xor edi,esi + mov eax,DWORD PTR 88[ebp] + sub esi,eax + mov ecx,edi + ror esi,cl + xor esi,edi + mov eax,DWORD PTR 84[ebp] + sub edi,eax + mov ecx,esi + ror edi,cl + xor edi,esi + mov eax,DWORD PTR 80[ebp] + sub esi,eax + mov ecx,edi + ror esi,cl + xor esi,edi + mov eax,DWORD PTR 76[ebp] + sub edi,eax + mov ecx,esi + ror edi,cl + xor edi,esi +$L002rc5_dec_8: + mov eax,DWORD PTR 72[ebp] + sub esi,eax + mov ecx,edi + ror esi,cl + xor esi,edi + mov eax,DWORD PTR 68[ebp] + sub edi,eax + mov ecx,esi + ror edi,cl + xor edi,esi + mov eax,DWORD PTR 64[ebp] + sub esi,eax + mov ecx,edi + ror esi,cl + xor esi,edi + mov eax,DWORD PTR 60[ebp] + sub edi,eax + mov ecx,esi + ror edi,cl + xor edi,esi + mov eax,DWORD PTR 56[ebp] + sub esi,eax + mov ecx,edi + ror esi,cl + xor esi,edi + mov eax,DWORD PTR 52[ebp] + sub edi,eax + mov ecx,esi + ror edi,cl + xor edi,esi + mov eax,DWORD PTR 48[ebp] + sub esi,eax + mov ecx,edi + ror esi,cl + xor esi,edi + mov eax,DWORD PTR 44[ebp] + sub edi,eax + mov ecx,esi + ror edi,cl + xor edi,esi + mov eax,DWORD PTR 40[ebp] + sub esi,eax + mov ecx,edi + ror esi,cl + xor esi,edi + mov eax,DWORD PTR 36[ebp] + sub edi,eax + mov ecx,esi + ror edi,cl + xor edi,esi + mov eax,DWORD PTR 32[ebp] + sub esi,eax + mov ecx,edi + ror esi,cl + xor esi,edi + mov eax,DWORD PTR 28[ebp] + sub edi,eax + mov ecx,esi + ror edi,cl + xor edi,esi + mov eax,DWORD PTR 24[ebp] + sub esi,eax + mov ecx,edi + ror esi,cl + xor esi,edi + mov eax,DWORD PTR 20[ebp] + sub edi,eax + mov ecx,esi + ror edi,cl + xor edi,esi + mov eax,DWORD PTR 16[ebp] + sub esi,eax + mov ecx,edi + ror esi,cl + xor esi,edi + mov eax,DWORD PTR 12[ebp] + sub edi,eax + mov ecx,esi + ror edi,cl + xor edi,esi + sub esi,DWORD PTR 8[ebp] + sub edi,DWORD PTR 4[ebp] +$L003rc5_exit: + mov DWORD PTR [edx],edi + mov DWORD PTR 4[edx],esi + pop ebx + pop edi + pop esi + pop ebp + ret +_RC5_32_decrypt ENDP +ALIGN 16 +_RC5_32_cbc_encrypt PROC PUBLIC +$L_RC5_32_cbc_encrypt_begin:: + ; + + push ebp + push ebx + push esi + push edi + mov ebp,DWORD PTR 28[esp] + ; getting iv ptr from parameter 4 + mov ebx,DWORD PTR 36[esp] + mov esi,DWORD PTR [ebx] + mov edi,DWORD PTR 4[ebx] + push edi + push esi + push edi + push esi + mov ebx,esp + mov esi,DWORD PTR 36[esp] + mov edi,DWORD PTR 40[esp] + ; getting encrypt flag from parameter 5 + mov ecx,DWORD PTR 56[esp] + ; get and push parameter 3 + mov eax,DWORD PTR 48[esp] + push eax + push ebx + cmp ecx,0 + jz $L004decrypt + and ebp,4294967288 + mov eax,DWORD PTR 8[esp] + mov ebx,DWORD PTR 12[esp] + jz $L005encrypt_finish +$L006encrypt_loop: + mov ecx,DWORD PTR [esi] + mov edx,DWORD PTR 4[esi] + xor eax,ecx + xor ebx,edx + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],ebx + call $L_RC5_32_encrypt_begin + mov eax,DWORD PTR 8[esp] + mov ebx,DWORD PTR 12[esp] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + add esi,8 + add edi,8 + sub ebp,8 + jnz $L006encrypt_loop +$L005encrypt_finish: + mov ebp,DWORD PTR 52[esp] + and ebp,7 + jz $L007finish + call $L008PIC_point +$L008PIC_point: + pop edx + lea ecx,DWORD PTR ($L009cbc_enc_jmp_table-$L008PIC_point)[edx] + mov ebp,DWORD PTR [ebp*4+ecx] + add ebp,edx + xor ecx,ecx + xor edx,edx + jmp ebp +$L010ej7: + mov dh,BYTE PTR 6[esi] + shl edx,8 +$L011ej6: + mov dh,BYTE PTR 5[esi] +$L012ej5: + mov dl,BYTE PTR 4[esi] +$L013ej4: + mov ecx,DWORD PTR [esi] + jmp $L014ejend +$L015ej3: + mov ch,BYTE PTR 2[esi] + shl ecx,8 +$L016ej2: + mov ch,BYTE PTR 1[esi] +$L017ej1: + mov cl,BYTE PTR [esi] +$L014ejend: + xor eax,ecx + xor ebx,edx + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],ebx + call $L_RC5_32_encrypt_begin + mov eax,DWORD PTR 8[esp] + mov ebx,DWORD PTR 12[esp] + mov DWORD PTR [edi],eax + mov DWORD PTR 4[edi],ebx + jmp $L007finish +$L004decrypt: + and ebp,4294967288 + mov eax,DWORD PTR 16[esp] + mov ebx,DWORD PTR 20[esp] + jz $L018decrypt_finish +$L019decrypt_loop: + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],ebx + call $L_RC5_32_decrypt_begin + mov eax,DWORD PTR 8[esp] + mov ebx,DWORD PTR 12[esp] + mov ecx,DWORD PTR 16[esp] + mov edx,DWORD PTR 20[esp] + xor ecx,eax + xor edx,ebx + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov DWORD PTR [edi],ecx + mov DWORD PTR 4[edi],edx + mov DWORD PTR 16[esp],eax + mov DWORD PTR 20[esp],ebx + add esi,8 + add edi,8 + sub ebp,8 + jnz $L019decrypt_loop +$L018decrypt_finish: + mov ebp,DWORD PTR 52[esp] + and ebp,7 + jz $L007finish + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],ebx + call $L_RC5_32_decrypt_begin + mov eax,DWORD PTR 8[esp] + mov ebx,DWORD PTR 12[esp] + mov ecx,DWORD PTR 16[esp] + mov edx,DWORD PTR 20[esp] + xor ecx,eax + xor edx,ebx + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] +$L020dj7: + ror edx,16 + mov BYTE PTR 6[edi],dl + shr edx,16 +$L021dj6: + mov BYTE PTR 5[edi],dh +$L022dj5: + mov BYTE PTR 4[edi],dl +$L023dj4: + mov DWORD PTR [edi],ecx + jmp $L024djend +$L025dj3: + ror ecx,16 + mov BYTE PTR 2[edi],cl + shl ecx,16 +$L026dj2: + mov BYTE PTR 1[esi],ch +$L027dj1: + mov BYTE PTR [esi],cl +$L024djend: + jmp $L007finish +$L007finish: + mov ecx,DWORD PTR 60[esp] + add esp,24 + mov DWORD PTR [ecx],eax + mov DWORD PTR 4[ecx],ebx + pop edi + pop esi + pop ebx + pop ebp + ret +ALIGN 64 +$L009cbc_enc_jmp_table: +DD 0 +DD $L017ej1-$L008PIC_point +DD $L016ej2-$L008PIC_point +DD $L015ej3-$L008PIC_point +DD $L013ej4-$L008PIC_point +DD $L012ej5-$L008PIC_point +DD $L011ej6-$L008PIC_point +DD $L010ej7-$L008PIC_point +ALIGN 64 +_RC5_32_cbc_encrypt ENDP +.text$ ENDS +END diff --git a/deps/openssl/asm/x86-win32-masm/ripemd/rmd-586.asm b/deps/openssl/asm/x86-win32-masm/ripemd/rmd-586.asm new file mode 100644 index 0000000000..8fa61f8f98 --- /dev/null +++ b/deps/openssl/asm/x86-win32-masm/ripemd/rmd-586.asm @@ -0,0 +1,1976 @@ +TITLE ../openssl/crypto/ripemd/asm/rmd-586.asm +IF @Version LT 800 +ECHO MASM version 8.00 or later is strongly recommended. +ENDIF +.586 +.MODEL FLAT +OPTION DOTNAME +IF @Version LT 800 +.text$ SEGMENT PAGE 'CODE' +ELSE +.text$ SEGMENT ALIGN(64) 'CODE' +ENDIF +ALIGN 16 +_ripemd160_block_asm_data_order PROC PUBLIC +$L_ripemd160_block_asm_data_order_begin:: + mov edx,DWORD PTR 4[esp] + mov eax,DWORD PTR 8[esp] + push esi + mov ecx,DWORD PTR [edx] + push edi + mov esi,DWORD PTR 4[edx] + push ebp + mov edi,DWORD PTR 8[edx] + push ebx + sub esp,108 +$L000start: + ; + + mov ebx,DWORD PTR [eax] + mov ebp,DWORD PTR 4[eax] + mov DWORD PTR [esp],ebx + mov DWORD PTR 4[esp],ebp + mov ebx,DWORD PTR 8[eax] + mov ebp,DWORD PTR 12[eax] + mov DWORD PTR 8[esp],ebx + mov DWORD PTR 12[esp],ebp + mov ebx,DWORD PTR 16[eax] + mov ebp,DWORD PTR 20[eax] + mov DWORD PTR 16[esp],ebx + mov DWORD PTR 20[esp],ebp + mov ebx,DWORD PTR 24[eax] + mov ebp,DWORD PTR 28[eax] + mov DWORD PTR 24[esp],ebx + mov DWORD PTR 28[esp],ebp + mov ebx,DWORD PTR 32[eax] + mov ebp,DWORD PTR 36[eax] + mov DWORD PTR 32[esp],ebx + mov DWORD PTR 36[esp],ebp + mov ebx,DWORD PTR 40[eax] + mov ebp,DWORD PTR 44[eax] + mov DWORD PTR 40[esp],ebx + mov DWORD PTR 44[esp],ebp + mov ebx,DWORD PTR 48[eax] + mov ebp,DWORD PTR 52[eax] + mov DWORD PTR 48[esp],ebx + mov DWORD PTR 52[esp],ebp + mov ebx,DWORD PTR 56[eax] + mov ebp,DWORD PTR 60[eax] + mov DWORD PTR 56[esp],ebx + mov DWORD PTR 60[esp],ebp + mov eax,edi + mov ebx,DWORD PTR 12[edx] + mov ebp,DWORD PTR 16[edx] + ; 0 + xor eax,ebx + mov edx,DWORD PTR [esp] + xor eax,esi + add ecx,edx + rol edi,10 + add ecx,eax + mov eax,esi + rol ecx,11 + add ecx,ebp + ; 1 + xor eax,edi + mov edx,DWORD PTR 4[esp] + xor eax,ecx + add ebp,eax + mov eax,ecx + rol esi,10 + add ebp,edx + xor eax,esi + rol ebp,14 + add ebp,ebx + ; 2 + mov edx,DWORD PTR 8[esp] + xor eax,ebp + add ebx,edx + rol ecx,10 + add ebx,eax + mov eax,ebp + rol ebx,15 + add ebx,edi + ; 3 + xor eax,ecx + mov edx,DWORD PTR 12[esp] + xor eax,ebx + add edi,eax + mov eax,ebx + rol ebp,10 + add edi,edx + xor eax,ebp + rol edi,12 + add edi,esi + ; 4 + mov edx,DWORD PTR 16[esp] + xor eax,edi + add esi,edx + rol ebx,10 + add esi,eax + mov eax,edi + rol esi,5 + add esi,ecx + ; 5 + xor eax,ebx + mov edx,DWORD PTR 20[esp] + xor eax,esi + add ecx,eax + mov eax,esi + rol edi,10 + add ecx,edx + xor eax,edi + rol ecx,8 + add ecx,ebp + ; 6 + mov edx,DWORD PTR 24[esp] + xor eax,ecx + add ebp,edx + rol esi,10 + add ebp,eax + mov eax,ecx + rol ebp,7 + add ebp,ebx + ; 7 + xor eax,esi + mov edx,DWORD PTR 28[esp] + xor eax,ebp + add ebx,eax + mov eax,ebp + rol ecx,10 + add ebx,edx + xor eax,ecx + rol ebx,9 + add ebx,edi + ; 8 + mov edx,DWORD PTR 32[esp] + xor eax,ebx + add edi,edx + rol ebp,10 + add edi,eax + mov eax,ebx + rol edi,11 + add edi,esi + ; 9 + xor eax,ebp + mov edx,DWORD PTR 36[esp] + xor eax,edi + add esi,eax + mov eax,edi + rol ebx,10 + add esi,edx + xor eax,ebx + rol esi,13 + add esi,ecx + ; 10 + mov edx,DWORD PTR 40[esp] + xor eax,esi + add ecx,edx + rol edi,10 + add ecx,eax + mov eax,esi + rol ecx,14 + add ecx,ebp + ; 11 + xor eax,edi + mov edx,DWORD PTR 44[esp] + xor eax,ecx + add ebp,eax + mov eax,ecx + rol esi,10 + add ebp,edx + xor eax,esi + rol ebp,15 + add ebp,ebx + ; 12 + mov edx,DWORD PTR 48[esp] + xor eax,ebp + add ebx,edx + rol ecx,10 + add ebx,eax + mov eax,ebp + rol ebx,6 + add ebx,edi + ; 13 + xor eax,ecx + mov edx,DWORD PTR 52[esp] + xor eax,ebx + add edi,eax + mov eax,ebx + rol ebp,10 + add edi,edx + xor eax,ebp + rol edi,7 + add edi,esi + ; 14 + mov edx,DWORD PTR 56[esp] + xor eax,edi + add esi,edx + rol ebx,10 + add esi,eax + mov eax,edi + rol esi,9 + add esi,ecx + ; 15 + xor eax,ebx + mov edx,DWORD PTR 60[esp] + xor eax,esi + add ecx,eax + mov eax,-1 + rol edi,10 + add ecx,edx + mov edx,DWORD PTR 28[esp] + rol ecx,8 + add ecx,ebp + ; 16 + add ebp,edx + mov edx,esi + sub eax,ecx + and edx,ecx + and eax,edi + or edx,eax + mov eax,DWORD PTR 16[esp] + rol esi,10 + lea ebp,DWORD PTR 1518500249[edx*1+ebp] + mov edx,-1 + rol ebp,7 + add ebp,ebx + ; 17 + add ebx,eax + mov eax,ecx + sub edx,ebp + and eax,ebp + and edx,esi + or eax,edx + mov edx,DWORD PTR 52[esp] + rol ecx,10 + lea ebx,DWORD PTR 1518500249[eax*1+ebx] + mov eax,-1 + rol ebx,6 + add ebx,edi + ; 18 + add edi,edx + mov edx,ebp + sub eax,ebx + and edx,ebx + and eax,ecx + or edx,eax + mov eax,DWORD PTR 4[esp] + rol ebp,10 + lea edi,DWORD PTR 1518500249[edx*1+edi] + mov edx,-1 + rol edi,8 + add edi,esi + ; 19 + add esi,eax + mov eax,ebx + sub edx,edi + and eax,edi + and edx,ebp + or eax,edx + mov edx,DWORD PTR 40[esp] + rol ebx,10 + lea esi,DWORD PTR 1518500249[eax*1+esi] + mov eax,-1 + rol esi,13 + add esi,ecx + ; 20 + add ecx,edx + mov edx,edi + sub eax,esi + and edx,esi + and eax,ebx + or edx,eax + mov eax,DWORD PTR 24[esp] + rol edi,10 + lea ecx,DWORD PTR 1518500249[edx*1+ecx] + mov edx,-1 + rol ecx,11 + add ecx,ebp + ; 21 + add ebp,eax + mov eax,esi + sub edx,ecx + and eax,ecx + and edx,edi + or eax,edx + mov edx,DWORD PTR 60[esp] + rol esi,10 + lea ebp,DWORD PTR 1518500249[eax*1+ebp] + mov eax,-1 + rol ebp,9 + add ebp,ebx + ; 22 + add ebx,edx + mov edx,ecx + sub eax,ebp + and edx,ebp + and eax,esi + or edx,eax + mov eax,DWORD PTR 12[esp] + rol ecx,10 + lea ebx,DWORD PTR 1518500249[edx*1+ebx] + mov edx,-1 + rol ebx,7 + add ebx,edi + ; 23 + add edi,eax + mov eax,ebp + sub edx,ebx + and eax,ebx + and edx,ecx + or eax,edx + mov edx,DWORD PTR 48[esp] + rol ebp,10 + lea edi,DWORD PTR 1518500249[eax*1+edi] + mov eax,-1 + rol edi,15 + add edi,esi + ; 24 + add esi,edx + mov edx,ebx + sub eax,edi + and edx,edi + and eax,ebp + or edx,eax + mov eax,DWORD PTR [esp] + rol ebx,10 + lea esi,DWORD PTR 1518500249[edx*1+esi] + mov edx,-1 + rol esi,7 + add esi,ecx + ; 25 + add ecx,eax + mov eax,edi + sub edx,esi + and eax,esi + and edx,ebx + or eax,edx + mov edx,DWORD PTR 36[esp] + rol edi,10 + lea ecx,DWORD PTR 1518500249[eax*1+ecx] + mov eax,-1 + rol ecx,12 + add ecx,ebp + ; 26 + add ebp,edx + mov edx,esi + sub eax,ecx + and edx,ecx + and eax,edi + or edx,eax + mov eax,DWORD PTR 20[esp] + rol esi,10 + lea ebp,DWORD PTR 1518500249[edx*1+ebp] + mov edx,-1 + rol ebp,15 + add ebp,ebx + ; 27 + add ebx,eax + mov eax,ecx + sub edx,ebp + and eax,ebp + and edx,esi + or eax,edx + mov edx,DWORD PTR 8[esp] + rol ecx,10 + lea ebx,DWORD PTR 1518500249[eax*1+ebx] + mov eax,-1 + rol ebx,9 + add ebx,edi + ; 28 + add edi,edx + mov edx,ebp + sub eax,ebx + and edx,ebx + and eax,ecx + or edx,eax + mov eax,DWORD PTR 56[esp] + rol ebp,10 + lea edi,DWORD PTR 1518500249[edx*1+edi] + mov edx,-1 + rol edi,11 + add edi,esi + ; 29 + add esi,eax + mov eax,ebx + sub edx,edi + and eax,edi + and edx,ebp + or eax,edx + mov edx,DWORD PTR 44[esp] + rol ebx,10 + lea esi,DWORD PTR 1518500249[eax*1+esi] + mov eax,-1 + rol esi,7 + add esi,ecx + ; 30 + add ecx,edx + mov edx,edi + sub eax,esi + and edx,esi + and eax,ebx + or edx,eax + mov eax,DWORD PTR 32[esp] + rol edi,10 + lea ecx,DWORD PTR 1518500249[edx*1+ecx] + mov edx,-1 + rol ecx,13 + add ecx,ebp + ; 31 + add ebp,eax + mov eax,esi + sub edx,ecx + and eax,ecx + and edx,edi + or eax,edx + mov edx,-1 + rol esi,10 + lea ebp,DWORD PTR 1518500249[eax*1+ebp] + sub edx,ecx + rol ebp,12 + add ebp,ebx + ; 32 + mov eax,DWORD PTR 12[esp] + or edx,ebp + add ebx,eax + xor edx,esi + mov eax,-1 + rol ecx,10 + lea ebx,DWORD PTR 1859775393[edx*1+ebx] + sub eax,ebp + rol ebx,11 + add ebx,edi + ; 33 + mov edx,DWORD PTR 40[esp] + or eax,ebx + add edi,edx + xor eax,ecx + mov edx,-1 + rol ebp,10 + lea edi,DWORD PTR 1859775393[eax*1+edi] + sub edx,ebx + rol edi,13 + add edi,esi + ; 34 + mov eax,DWORD PTR 56[esp] + or edx,edi + add esi,eax + xor edx,ebp + mov eax,-1 + rol ebx,10 + lea esi,DWORD PTR 1859775393[edx*1+esi] + sub eax,edi + rol esi,6 + add esi,ecx + ; 35 + mov edx,DWORD PTR 16[esp] + or eax,esi + add ecx,edx + xor eax,ebx + mov edx,-1 + rol edi,10 + lea ecx,DWORD PTR 1859775393[eax*1+ecx] + sub edx,esi + rol ecx,7 + add ecx,ebp + ; 36 + mov eax,DWORD PTR 36[esp] + or edx,ecx + add ebp,eax + xor edx,edi + mov eax,-1 + rol esi,10 + lea ebp,DWORD PTR 1859775393[edx*1+ebp] + sub eax,ecx + rol ebp,14 + add ebp,ebx + ; 37 + mov edx,DWORD PTR 60[esp] + or eax,ebp + add ebx,edx + xor eax,esi + mov edx,-1 + rol ecx,10 + lea ebx,DWORD PTR 1859775393[eax*1+ebx] + sub edx,ebp + rol ebx,9 + add ebx,edi + ; 38 + mov eax,DWORD PTR 32[esp] + or edx,ebx + add edi,eax + xor edx,ecx + mov eax,-1 + rol ebp,10 + lea edi,DWORD PTR 1859775393[edx*1+edi] + sub eax,ebx + rol edi,13 + add edi,esi + ; 39 + mov edx,DWORD PTR 4[esp] + or eax,edi + add esi,edx + xor eax,ebp + mov edx,-1 + rol ebx,10 + lea esi,DWORD PTR 1859775393[eax*1+esi] + sub edx,edi + rol esi,15 + add esi,ecx + ; 40 + mov eax,DWORD PTR 8[esp] + or edx,esi + add ecx,eax + xor edx,ebx + mov eax,-1 + rol edi,10 + lea ecx,DWORD PTR 1859775393[edx*1+ecx] + sub eax,esi + rol ecx,14 + add ecx,ebp + ; 41 + mov edx,DWORD PTR 28[esp] + or eax,ecx + add ebp,edx + xor eax,edi + mov edx,-1 + rol esi,10 + lea ebp,DWORD PTR 1859775393[eax*1+ebp] + sub edx,ecx + rol ebp,8 + add ebp,ebx + ; 42 + mov eax,DWORD PTR [esp] + or edx,ebp + add ebx,eax + xor edx,esi + mov eax,-1 + rol ecx,10 + lea ebx,DWORD PTR 1859775393[edx*1+ebx] + sub eax,ebp + rol ebx,13 + add ebx,edi + ; 43 + mov edx,DWORD PTR 24[esp] + or eax,ebx + add edi,edx + xor eax,ecx + mov edx,-1 + rol ebp,10 + lea edi,DWORD PTR 1859775393[eax*1+edi] + sub edx,ebx + rol edi,6 + add edi,esi + ; 44 + mov eax,DWORD PTR 52[esp] + or edx,edi + add esi,eax + xor edx,ebp + mov eax,-1 + rol ebx,10 + lea esi,DWORD PTR 1859775393[edx*1+esi] + sub eax,edi + rol esi,5 + add esi,ecx + ; 45 + mov edx,DWORD PTR 44[esp] + or eax,esi + add ecx,edx + xor eax,ebx + mov edx,-1 + rol edi,10 + lea ecx,DWORD PTR 1859775393[eax*1+ecx] + sub edx,esi + rol ecx,12 + add ecx,ebp + ; 46 + mov eax,DWORD PTR 20[esp] + or edx,ecx + add ebp,eax + xor edx,edi + mov eax,-1 + rol esi,10 + lea ebp,DWORD PTR 1859775393[edx*1+ebp] + sub eax,ecx + rol ebp,7 + add ebp,ebx + ; 47 + mov edx,DWORD PTR 48[esp] + or eax,ebp + add ebx,edx + xor eax,esi + mov edx,-1 + rol ecx,10 + lea ebx,DWORD PTR 1859775393[eax*1+ebx] + mov eax,ecx + rol ebx,5 + add ebx,edi + ; 48 + sub edx,ecx + and eax,ebx + and edx,ebp + or edx,eax + mov eax,DWORD PTR 4[esp] + rol ebp,10 + lea edi,DWORD PTR 2400959708[edx*1+edi] + mov edx,-1 + add edi,eax + mov eax,ebp + rol edi,11 + add edi,esi + ; 49 + sub edx,ebp + and eax,edi + and edx,ebx + or edx,eax + mov eax,DWORD PTR 36[esp] + rol ebx,10 + lea esi,DWORD PTR 2400959708[edx*1+esi] + mov edx,-1 + add esi,eax + mov eax,ebx + rol esi,12 + add esi,ecx + ; 50 + sub edx,ebx + and eax,esi + and edx,edi + or edx,eax + mov eax,DWORD PTR 44[esp] + rol edi,10 + lea ecx,DWORD PTR 2400959708[edx*1+ecx] + mov edx,-1 + add ecx,eax + mov eax,edi + rol ecx,14 + add ecx,ebp + ; 51 + sub edx,edi + and eax,ecx + and edx,esi + or edx,eax + mov eax,DWORD PTR 40[esp] + rol esi,10 + lea ebp,DWORD PTR 2400959708[edx*1+ebp] + mov edx,-1 + add ebp,eax + mov eax,esi + rol ebp,15 + add ebp,ebx + ; 52 + sub edx,esi + and eax,ebp + and edx,ecx + or edx,eax + mov eax,DWORD PTR [esp] + rol ecx,10 + lea ebx,DWORD PTR 2400959708[edx*1+ebx] + mov edx,-1 + add ebx,eax + mov eax,ecx + rol ebx,14 + add ebx,edi + ; 53 + sub edx,ecx + and eax,ebx + and edx,ebp + or edx,eax + mov eax,DWORD PTR 32[esp] + rol ebp,10 + lea edi,DWORD PTR 2400959708[edx*1+edi] + mov edx,-1 + add edi,eax + mov eax,ebp + rol edi,15 + add edi,esi + ; 54 + sub edx,ebp + and eax,edi + and edx,ebx + or edx,eax + mov eax,DWORD PTR 48[esp] + rol ebx,10 + lea esi,DWORD PTR 2400959708[edx*1+esi] + mov edx,-1 + add esi,eax + mov eax,ebx + rol esi,9 + add esi,ecx + ; 55 + sub edx,ebx + and eax,esi + and edx,edi + or edx,eax + mov eax,DWORD PTR 16[esp] + rol edi,10 + lea ecx,DWORD PTR 2400959708[edx*1+ecx] + mov edx,-1 + add ecx,eax + mov eax,edi + rol ecx,8 + add ecx,ebp + ; 56 + sub edx,edi + and eax,ecx + and edx,esi + or edx,eax + mov eax,DWORD PTR 52[esp] + rol esi,10 + lea ebp,DWORD PTR 2400959708[edx*1+ebp] + mov edx,-1 + add ebp,eax + mov eax,esi + rol ebp,9 + add ebp,ebx + ; 57 + sub edx,esi + and eax,ebp + and edx,ecx + or edx,eax + mov eax,DWORD PTR 12[esp] + rol ecx,10 + lea ebx,DWORD PTR 2400959708[edx*1+ebx] + mov edx,-1 + add ebx,eax + mov eax,ecx + rol ebx,14 + add ebx,edi + ; 58 + sub edx,ecx + and eax,ebx + and edx,ebp + or edx,eax + mov eax,DWORD PTR 28[esp] + rol ebp,10 + lea edi,DWORD PTR 2400959708[edx*1+edi] + mov edx,-1 + add edi,eax + mov eax,ebp + rol edi,5 + add edi,esi + ; 59 + sub edx,ebp + and eax,edi + and edx,ebx + or edx,eax + mov eax,DWORD PTR 60[esp] + rol ebx,10 + lea esi,DWORD PTR 2400959708[edx*1+esi] + mov edx,-1 + add esi,eax + mov eax,ebx + rol esi,6 + add esi,ecx + ; 60 + sub edx,ebx + and eax,esi + and edx,edi + or edx,eax + mov eax,DWORD PTR 56[esp] + rol edi,10 + lea ecx,DWORD PTR 2400959708[edx*1+ecx] + mov edx,-1 + add ecx,eax + mov eax,edi + rol ecx,8 + add ecx,ebp + ; 61 + sub edx,edi + and eax,ecx + and edx,esi + or edx,eax + mov eax,DWORD PTR 20[esp] + rol esi,10 + lea ebp,DWORD PTR 2400959708[edx*1+ebp] + mov edx,-1 + add ebp,eax + mov eax,esi + rol ebp,6 + add ebp,ebx + ; 62 + sub edx,esi + and eax,ebp + and edx,ecx + or edx,eax + mov eax,DWORD PTR 24[esp] + rol ecx,10 + lea ebx,DWORD PTR 2400959708[edx*1+ebx] + mov edx,-1 + add ebx,eax + mov eax,ecx + rol ebx,5 + add ebx,edi + ; 63 + sub edx,ecx + and eax,ebx + and edx,ebp + or edx,eax + mov eax,DWORD PTR 8[esp] + rol ebp,10 + lea edi,DWORD PTR 2400959708[edx*1+edi] + mov edx,-1 + add edi,eax + sub edx,ebp + rol edi,12 + add edi,esi + ; 64 + mov eax,DWORD PTR 16[esp] + or edx,ebx + add esi,eax + xor edx,edi + mov eax,-1 + rol ebx,10 + lea esi,DWORD PTR 2840853838[edx*1+esi] + sub eax,ebx + rol esi,9 + add esi,ecx + ; 65 + mov edx,DWORD PTR [esp] + or eax,edi + add ecx,edx + xor eax,esi + mov edx,-1 + rol edi,10 + lea ecx,DWORD PTR 2840853838[eax*1+ecx] + sub edx,edi + rol ecx,15 + add ecx,ebp + ; 66 + mov eax,DWORD PTR 20[esp] + or edx,esi + add ebp,eax + xor edx,ecx + mov eax,-1 + rol esi,10 + lea ebp,DWORD PTR 2840853838[edx*1+ebp] + sub eax,esi + rol ebp,5 + add ebp,ebx + ; 67 + mov edx,DWORD PTR 36[esp] + or eax,ecx + add ebx,edx + xor eax,ebp + mov edx,-1 + rol ecx,10 + lea ebx,DWORD PTR 2840853838[eax*1+ebx] + sub edx,ecx + rol ebx,11 + add ebx,edi + ; 68 + mov eax,DWORD PTR 28[esp] + or edx,ebp + add edi,eax + xor edx,ebx + mov eax,-1 + rol ebp,10 + lea edi,DWORD PTR 2840853838[edx*1+edi] + sub eax,ebp + rol edi,6 + add edi,esi + ; 69 + mov edx,DWORD PTR 48[esp] + or eax,ebx + add esi,edx + xor eax,edi + mov edx,-1 + rol ebx,10 + lea esi,DWORD PTR 2840853838[eax*1+esi] + sub edx,ebx + rol esi,8 + add esi,ecx + ; 70 + mov eax,DWORD PTR 8[esp] + or edx,edi + add ecx,eax + xor edx,esi + mov eax,-1 + rol edi,10 + lea ecx,DWORD PTR 2840853838[edx*1+ecx] + sub eax,edi + rol ecx,13 + add ecx,ebp + ; 71 + mov edx,DWORD PTR 40[esp] + or eax,esi + add ebp,edx + xor eax,ecx + mov edx,-1 + rol esi,10 + lea ebp,DWORD PTR 2840853838[eax*1+ebp] + sub edx,esi + rol ebp,12 + add ebp,ebx + ; 72 + mov eax,DWORD PTR 56[esp] + or edx,ecx + add ebx,eax + xor edx,ebp + mov eax,-1 + rol ecx,10 + lea ebx,DWORD PTR 2840853838[edx*1+ebx] + sub eax,ecx + rol ebx,5 + add ebx,edi + ; 73 + mov edx,DWORD PTR 4[esp] + or eax,ebp + add edi,edx + xor eax,ebx + mov edx,-1 + rol ebp,10 + lea edi,DWORD PTR 2840853838[eax*1+edi] + sub edx,ebp + rol edi,12 + add edi,esi + ; 74 + mov eax,DWORD PTR 12[esp] + or edx,ebx + add esi,eax + xor edx,edi + mov eax,-1 + rol ebx,10 + lea esi,DWORD PTR 2840853838[edx*1+esi] + sub eax,ebx + rol esi,13 + add esi,ecx + ; 75 + mov edx,DWORD PTR 32[esp] + or eax,edi + add ecx,edx + xor eax,esi + mov edx,-1 + rol edi,10 + lea ecx,DWORD PTR 2840853838[eax*1+ecx] + sub edx,edi + rol ecx,14 + add ecx,ebp + ; 76 + mov eax,DWORD PTR 44[esp] + or edx,esi + add ebp,eax + xor edx,ecx + mov eax,-1 + rol esi,10 + lea ebp,DWORD PTR 2840853838[edx*1+ebp] + sub eax,esi + rol ebp,11 + add ebp,ebx + ; 77 + mov edx,DWORD PTR 24[esp] + or eax,ecx + add ebx,edx + xor eax,ebp + mov edx,-1 + rol ecx,10 + lea ebx,DWORD PTR 2840853838[eax*1+ebx] + sub edx,ecx + rol ebx,8 + add ebx,edi + ; 78 + mov eax,DWORD PTR 60[esp] + or edx,ebp + add edi,eax + xor edx,ebx + mov eax,-1 + rol ebp,10 + lea edi,DWORD PTR 2840853838[edx*1+edi] + sub eax,ebp + rol edi,5 + add edi,esi + ; 79 + mov edx,DWORD PTR 52[esp] + or eax,ebx + add esi,edx + xor eax,edi + mov edx,DWORD PTR 128[esp] + rol ebx,10 + lea esi,DWORD PTR 2840853838[eax*1+esi] + mov DWORD PTR 64[esp],ecx + rol esi,6 + add esi,ecx + mov ecx,DWORD PTR [edx] + mov DWORD PTR 68[esp],esi + mov DWORD PTR 72[esp],edi + mov esi,DWORD PTR 4[edx] + mov DWORD PTR 76[esp],ebx + mov edi,DWORD PTR 8[edx] + mov DWORD PTR 80[esp],ebp + mov ebx,DWORD PTR 12[edx] + mov ebp,DWORD PTR 16[edx] + ; 80 + mov edx,-1 + sub edx,ebx + mov eax,DWORD PTR 20[esp] + or edx,edi + add ecx,eax + xor edx,esi + mov eax,-1 + rol edi,10 + lea ecx,DWORD PTR 1352829926[edx*1+ecx] + sub eax,edi + rol ecx,8 + add ecx,ebp + ; 81 + mov edx,DWORD PTR 56[esp] + or eax,esi + add ebp,edx + xor eax,ecx + mov edx,-1 + rol esi,10 + lea ebp,DWORD PTR 1352829926[eax*1+ebp] + sub edx,esi + rol ebp,9 + add ebp,ebx + ; 82 + mov eax,DWORD PTR 28[esp] + or edx,ecx + add ebx,eax + xor edx,ebp + mov eax,-1 + rol ecx,10 + lea ebx,DWORD PTR 1352829926[edx*1+ebx] + sub eax,ecx + rol ebx,9 + add ebx,edi + ; 83 + mov edx,DWORD PTR [esp] + or eax,ebp + add edi,edx + xor eax,ebx + mov edx,-1 + rol ebp,10 + lea edi,DWORD PTR 1352829926[eax*1+edi] + sub edx,ebp + rol edi,11 + add edi,esi + ; 84 + mov eax,DWORD PTR 36[esp] + or edx,ebx + add esi,eax + xor edx,edi + mov eax,-1 + rol ebx,10 + lea esi,DWORD PTR 1352829926[edx*1+esi] + sub eax,ebx + rol esi,13 + add esi,ecx + ; 85 + mov edx,DWORD PTR 8[esp] + or eax,edi + add ecx,edx + xor eax,esi + mov edx,-1 + rol edi,10 + lea ecx,DWORD PTR 1352829926[eax*1+ecx] + sub edx,edi + rol ecx,15 + add ecx,ebp + ; 86 + mov eax,DWORD PTR 44[esp] + or edx,esi + add ebp,eax + xor edx,ecx + mov eax,-1 + rol esi,10 + lea ebp,DWORD PTR 1352829926[edx*1+ebp] + sub eax,esi + rol ebp,15 + add ebp,ebx + ; 87 + mov edx,DWORD PTR 16[esp] + or eax,ecx + add ebx,edx + xor eax,ebp + mov edx,-1 + rol ecx,10 + lea ebx,DWORD PTR 1352829926[eax*1+ebx] + sub edx,ecx + rol ebx,5 + add ebx,edi + ; 88 + mov eax,DWORD PTR 52[esp] + or edx,ebp + add edi,eax + xor edx,ebx + mov eax,-1 + rol ebp,10 + lea edi,DWORD PTR 1352829926[edx*1+edi] + sub eax,ebp + rol edi,7 + add edi,esi + ; 89 + mov edx,DWORD PTR 24[esp] + or eax,ebx + add esi,edx + xor eax,edi + mov edx,-1 + rol ebx,10 + lea esi,DWORD PTR 1352829926[eax*1+esi] + sub edx,ebx + rol esi,7 + add esi,ecx + ; 90 + mov eax,DWORD PTR 60[esp] + or edx,edi + add ecx,eax + xor edx,esi + mov eax,-1 + rol edi,10 + lea ecx,DWORD PTR 1352829926[edx*1+ecx] + sub eax,edi + rol ecx,8 + add ecx,ebp + ; 91 + mov edx,DWORD PTR 32[esp] + or eax,esi + add ebp,edx + xor eax,ecx + mov edx,-1 + rol esi,10 + lea ebp,DWORD PTR 1352829926[eax*1+ebp] + sub edx,esi + rol ebp,11 + add ebp,ebx + ; 92 + mov eax,DWORD PTR 4[esp] + or edx,ecx + add ebx,eax + xor edx,ebp + mov eax,-1 + rol ecx,10 + lea ebx,DWORD PTR 1352829926[edx*1+ebx] + sub eax,ecx + rol ebx,14 + add ebx,edi + ; 93 + mov edx,DWORD PTR 40[esp] + or eax,ebp + add edi,edx + xor eax,ebx + mov edx,-1 + rol ebp,10 + lea edi,DWORD PTR 1352829926[eax*1+edi] + sub edx,ebp + rol edi,14 + add edi,esi + ; 94 + mov eax,DWORD PTR 12[esp] + or edx,ebx + add esi,eax + xor edx,edi + mov eax,-1 + rol ebx,10 + lea esi,DWORD PTR 1352829926[edx*1+esi] + sub eax,ebx + rol esi,12 + add esi,ecx + ; 95 + mov edx,DWORD PTR 48[esp] + or eax,edi + add ecx,edx + xor eax,esi + mov edx,-1 + rol edi,10 + lea ecx,DWORD PTR 1352829926[eax*1+ecx] + mov eax,edi + rol ecx,6 + add ecx,ebp + ; 96 + sub edx,edi + and eax,ecx + and edx,esi + or edx,eax + mov eax,DWORD PTR 24[esp] + rol esi,10 + lea ebp,DWORD PTR 1548603684[edx*1+ebp] + mov edx,-1 + add ebp,eax + mov eax,esi + rol ebp,9 + add ebp,ebx + ; 97 + sub edx,esi + and eax,ebp + and edx,ecx + or edx,eax + mov eax,DWORD PTR 44[esp] + rol ecx,10 + lea ebx,DWORD PTR 1548603684[edx*1+ebx] + mov edx,-1 + add ebx,eax + mov eax,ecx + rol ebx,13 + add ebx,edi + ; 98 + sub edx,ecx + and eax,ebx + and edx,ebp + or edx,eax + mov eax,DWORD PTR 12[esp] + rol ebp,10 + lea edi,DWORD PTR 1548603684[edx*1+edi] + mov edx,-1 + add edi,eax + mov eax,ebp + rol edi,15 + add edi,esi + ; 99 + sub edx,ebp + and eax,edi + and edx,ebx + or edx,eax + mov eax,DWORD PTR 28[esp] + rol ebx,10 + lea esi,DWORD PTR 1548603684[edx*1+esi] + mov edx,-1 + add esi,eax + mov eax,ebx + rol esi,7 + add esi,ecx + ; 100 + sub edx,ebx + and eax,esi + and edx,edi + or edx,eax + mov eax,DWORD PTR [esp] + rol edi,10 + lea ecx,DWORD PTR 1548603684[edx*1+ecx] + mov edx,-1 + add ecx,eax + mov eax,edi + rol ecx,12 + add ecx,ebp + ; 101 + sub edx,edi + and eax,ecx + and edx,esi + or edx,eax + mov eax,DWORD PTR 52[esp] + rol esi,10 + lea ebp,DWORD PTR 1548603684[edx*1+ebp] + mov edx,-1 + add ebp,eax + mov eax,esi + rol ebp,8 + add ebp,ebx + ; 102 + sub edx,esi + and eax,ebp + and edx,ecx + or edx,eax + mov eax,DWORD PTR 20[esp] + rol ecx,10 + lea ebx,DWORD PTR 1548603684[edx*1+ebx] + mov edx,-1 + add ebx,eax + mov eax,ecx + rol ebx,9 + add ebx,edi + ; 103 + sub edx,ecx + and eax,ebx + and edx,ebp + or edx,eax + mov eax,DWORD PTR 40[esp] + rol ebp,10 + lea edi,DWORD PTR 1548603684[edx*1+edi] + mov edx,-1 + add edi,eax + mov eax,ebp + rol edi,11 + add edi,esi + ; 104 + sub edx,ebp + and eax,edi + and edx,ebx + or edx,eax + mov eax,DWORD PTR 56[esp] + rol ebx,10 + lea esi,DWORD PTR 1548603684[edx*1+esi] + mov edx,-1 + add esi,eax + mov eax,ebx + rol esi,7 + add esi,ecx + ; 105 + sub edx,ebx + and eax,esi + and edx,edi + or edx,eax + mov eax,DWORD PTR 60[esp] + rol edi,10 + lea ecx,DWORD PTR 1548603684[edx*1+ecx] + mov edx,-1 + add ecx,eax + mov eax,edi + rol ecx,7 + add ecx,ebp + ; 106 + sub edx,edi + and eax,ecx + and edx,esi + or edx,eax + mov eax,DWORD PTR 32[esp] + rol esi,10 + lea ebp,DWORD PTR 1548603684[edx*1+ebp] + mov edx,-1 + add ebp,eax + mov eax,esi + rol ebp,12 + add ebp,ebx + ; 107 + sub edx,esi + and eax,ebp + and edx,ecx + or edx,eax + mov eax,DWORD PTR 48[esp] + rol ecx,10 + lea ebx,DWORD PTR 1548603684[edx*1+ebx] + mov edx,-1 + add ebx,eax + mov eax,ecx + rol ebx,7 + add ebx,edi + ; 108 + sub edx,ecx + and eax,ebx + and edx,ebp + or edx,eax + mov eax,DWORD PTR 16[esp] + rol ebp,10 + lea edi,DWORD PTR 1548603684[edx*1+edi] + mov edx,-1 + add edi,eax + mov eax,ebp + rol edi,6 + add edi,esi + ; 109 + sub edx,ebp + and eax,edi + and edx,ebx + or edx,eax + mov eax,DWORD PTR 36[esp] + rol ebx,10 + lea esi,DWORD PTR 1548603684[edx*1+esi] + mov edx,-1 + add esi,eax + mov eax,ebx + rol esi,15 + add esi,ecx + ; 110 + sub edx,ebx + and eax,esi + and edx,edi + or edx,eax + mov eax,DWORD PTR 4[esp] + rol edi,10 + lea ecx,DWORD PTR 1548603684[edx*1+ecx] + mov edx,-1 + add ecx,eax + mov eax,edi + rol ecx,13 + add ecx,ebp + ; 111 + sub edx,edi + and eax,ecx + and edx,esi + or edx,eax + mov eax,DWORD PTR 8[esp] + rol esi,10 + lea ebp,DWORD PTR 1548603684[edx*1+ebp] + mov edx,-1 + add ebp,eax + sub edx,ecx + rol ebp,11 + add ebp,ebx + ; 112 + mov eax,DWORD PTR 60[esp] + or edx,ebp + add ebx,eax + xor edx,esi + mov eax,-1 + rol ecx,10 + lea ebx,DWORD PTR 1836072691[edx*1+ebx] + sub eax,ebp + rol ebx,9 + add ebx,edi + ; 113 + mov edx,DWORD PTR 20[esp] + or eax,ebx + add edi,edx + xor eax,ecx + mov edx,-1 + rol ebp,10 + lea edi,DWORD PTR 1836072691[eax*1+edi] + sub edx,ebx + rol edi,7 + add edi,esi + ; 114 + mov eax,DWORD PTR 4[esp] + or edx,edi + add esi,eax + xor edx,ebp + mov eax,-1 + rol ebx,10 + lea esi,DWORD PTR 1836072691[edx*1+esi] + sub eax,edi + rol esi,15 + add esi,ecx + ; 115 + mov edx,DWORD PTR 12[esp] + or eax,esi + add ecx,edx + xor eax,ebx + mov edx,-1 + rol edi,10 + lea ecx,DWORD PTR 1836072691[eax*1+ecx] + sub edx,esi + rol ecx,11 + add ecx,ebp + ; 116 + mov eax,DWORD PTR 28[esp] + or edx,ecx + add ebp,eax + xor edx,edi + mov eax,-1 + rol esi,10 + lea ebp,DWORD PTR 1836072691[edx*1+ebp] + sub eax,ecx + rol ebp,8 + add ebp,ebx + ; 117 + mov edx,DWORD PTR 56[esp] + or eax,ebp + add ebx,edx + xor eax,esi + mov edx,-1 + rol ecx,10 + lea ebx,DWORD PTR 1836072691[eax*1+ebx] + sub edx,ebp + rol ebx,6 + add ebx,edi + ; 118 + mov eax,DWORD PTR 24[esp] + or edx,ebx + add edi,eax + xor edx,ecx + mov eax,-1 + rol ebp,10 + lea edi,DWORD PTR 1836072691[edx*1+edi] + sub eax,ebx + rol edi,6 + add edi,esi + ; 119 + mov edx,DWORD PTR 36[esp] + or eax,edi + add esi,edx + xor eax,ebp + mov edx,-1 + rol ebx,10 + lea esi,DWORD PTR 1836072691[eax*1+esi] + sub edx,edi + rol esi,14 + add esi,ecx + ; 120 + mov eax,DWORD PTR 44[esp] + or edx,esi + add ecx,eax + xor edx,ebx + mov eax,-1 + rol edi,10 + lea ecx,DWORD PTR 1836072691[edx*1+ecx] + sub eax,esi + rol ecx,12 + add ecx,ebp + ; 121 + mov edx,DWORD PTR 32[esp] + or eax,ecx + add ebp,edx + xor eax,edi + mov edx,-1 + rol esi,10 + lea ebp,DWORD PTR 1836072691[eax*1+ebp] + sub edx,ecx + rol ebp,13 + add ebp,ebx + ; 122 + mov eax,DWORD PTR 48[esp] + or edx,ebp + add ebx,eax + xor edx,esi + mov eax,-1 + rol ecx,10 + lea ebx,DWORD PTR 1836072691[edx*1+ebx] + sub eax,ebp + rol ebx,5 + add ebx,edi + ; 123 + mov edx,DWORD PTR 8[esp] + or eax,ebx + add edi,edx + xor eax,ecx + mov edx,-1 + rol ebp,10 + lea edi,DWORD PTR 1836072691[eax*1+edi] + sub edx,ebx + rol edi,14 + add edi,esi + ; 124 + mov eax,DWORD PTR 40[esp] + or edx,edi + add esi,eax + xor edx,ebp + mov eax,-1 + rol ebx,10 + lea esi,DWORD PTR 1836072691[edx*1+esi] + sub eax,edi + rol esi,13 + add esi,ecx + ; 125 + mov edx,DWORD PTR [esp] + or eax,esi + add ecx,edx + xor eax,ebx + mov edx,-1 + rol edi,10 + lea ecx,DWORD PTR 1836072691[eax*1+ecx] + sub edx,esi + rol ecx,13 + add ecx,ebp + ; 126 + mov eax,DWORD PTR 16[esp] + or edx,ecx + add ebp,eax + xor edx,edi + mov eax,-1 + rol esi,10 + lea ebp,DWORD PTR 1836072691[edx*1+ebp] + sub eax,ecx + rol ebp,7 + add ebp,ebx + ; 127 + mov edx,DWORD PTR 52[esp] + or eax,ebp + add ebx,edx + xor eax,esi + mov edx,DWORD PTR 32[esp] + rol ecx,10 + lea ebx,DWORD PTR 1836072691[eax*1+ebx] + mov eax,-1 + rol ebx,5 + add ebx,edi + ; 128 + add edi,edx + mov edx,ebp + sub eax,ebx + and edx,ebx + and eax,ecx + or edx,eax + mov eax,DWORD PTR 24[esp] + rol ebp,10 + lea edi,DWORD PTR 2053994217[edx*1+edi] + mov edx,-1 + rol edi,15 + add edi,esi + ; 129 + add esi,eax + mov eax,ebx + sub edx,edi + and eax,edi + and edx,ebp + or eax,edx + mov edx,DWORD PTR 16[esp] + rol ebx,10 + lea esi,DWORD PTR 2053994217[eax*1+esi] + mov eax,-1 + rol esi,5 + add esi,ecx + ; 130 + add ecx,edx + mov edx,edi + sub eax,esi + and edx,esi + and eax,ebx + or edx,eax + mov eax,DWORD PTR 4[esp] + rol edi,10 + lea ecx,DWORD PTR 2053994217[edx*1+ecx] + mov edx,-1 + rol ecx,8 + add ecx,ebp + ; 131 + add ebp,eax + mov eax,esi + sub edx,ecx + and eax,ecx + and edx,edi + or eax,edx + mov edx,DWORD PTR 12[esp] + rol esi,10 + lea ebp,DWORD PTR 2053994217[eax*1+ebp] + mov eax,-1 + rol ebp,11 + add ebp,ebx + ; 132 + add ebx,edx + mov edx,ecx + sub eax,ebp + and edx,ebp + and eax,esi + or edx,eax + mov eax,DWORD PTR 44[esp] + rol ecx,10 + lea ebx,DWORD PTR 2053994217[edx*1+ebx] + mov edx,-1 + rol ebx,14 + add ebx,edi + ; 133 + add edi,eax + mov eax,ebp + sub edx,ebx + and eax,ebx + and edx,ecx + or eax,edx + mov edx,DWORD PTR 60[esp] + rol ebp,10 + lea edi,DWORD PTR 2053994217[eax*1+edi] + mov eax,-1 + rol edi,14 + add edi,esi + ; 134 + add esi,edx + mov edx,ebx + sub eax,edi + and edx,edi + and eax,ebp + or edx,eax + mov eax,DWORD PTR [esp] + rol ebx,10 + lea esi,DWORD PTR 2053994217[edx*1+esi] + mov edx,-1 + rol esi,6 + add esi,ecx + ; 135 + add ecx,eax + mov eax,edi + sub edx,esi + and eax,esi + and edx,ebx + or eax,edx + mov edx,DWORD PTR 20[esp] + rol edi,10 + lea ecx,DWORD PTR 2053994217[eax*1+ecx] + mov eax,-1 + rol ecx,14 + add ecx,ebp + ; 136 + add ebp,edx + mov edx,esi + sub eax,ecx + and edx,ecx + and eax,edi + or edx,eax + mov eax,DWORD PTR 48[esp] + rol esi,10 + lea ebp,DWORD PTR 2053994217[edx*1+ebp] + mov edx,-1 + rol ebp,6 + add ebp,ebx + ; 137 + add ebx,eax + mov eax,ecx + sub edx,ebp + and eax,ebp + and edx,esi + or eax,edx + mov edx,DWORD PTR 8[esp] + rol ecx,10 + lea ebx,DWORD PTR 2053994217[eax*1+ebx] + mov eax,-1 + rol ebx,9 + add ebx,edi + ; 138 + add edi,edx + mov edx,ebp + sub eax,ebx + and edx,ebx + and eax,ecx + or edx,eax + mov eax,DWORD PTR 52[esp] + rol ebp,10 + lea edi,DWORD PTR 2053994217[edx*1+edi] + mov edx,-1 + rol edi,12 + add edi,esi + ; 139 + add esi,eax + mov eax,ebx + sub edx,edi + and eax,edi + and edx,ebp + or eax,edx + mov edx,DWORD PTR 36[esp] + rol ebx,10 + lea esi,DWORD PTR 2053994217[eax*1+esi] + mov eax,-1 + rol esi,9 + add esi,ecx + ; 140 + add ecx,edx + mov edx,edi + sub eax,esi + and edx,esi + and eax,ebx + or edx,eax + mov eax,DWORD PTR 28[esp] + rol edi,10 + lea ecx,DWORD PTR 2053994217[edx*1+ecx] + mov edx,-1 + rol ecx,12 + add ecx,ebp + ; 141 + add ebp,eax + mov eax,esi + sub edx,ecx + and eax,ecx + and edx,edi + or eax,edx + mov edx,DWORD PTR 40[esp] + rol esi,10 + lea ebp,DWORD PTR 2053994217[eax*1+ebp] + mov eax,-1 + rol ebp,5 + add ebp,ebx + ; 142 + add ebx,edx + mov edx,ecx + sub eax,ebp + and edx,ebp + and eax,esi + or edx,eax + mov eax,DWORD PTR 56[esp] + rol ecx,10 + lea ebx,DWORD PTR 2053994217[edx*1+ebx] + mov edx,-1 + rol ebx,15 + add ebx,edi + ; 143 + add edi,eax + mov eax,ebp + sub edx,ebx + and eax,ebx + and edx,ecx + or edx,eax + mov eax,ebx + rol ebp,10 + lea edi,DWORD PTR 2053994217[edx*1+edi] + xor eax,ebp + rol edi,8 + add edi,esi + ; 144 + mov edx,DWORD PTR 48[esp] + xor eax,edi + add esi,edx + rol ebx,10 + add esi,eax + mov eax,edi + rol esi,8 + add esi,ecx + ; 145 + xor eax,ebx + mov edx,DWORD PTR 60[esp] + xor eax,esi + add ecx,eax + mov eax,esi + rol edi,10 + add ecx,edx + xor eax,edi + rol ecx,5 + add ecx,ebp + ; 146 + mov edx,DWORD PTR 40[esp] + xor eax,ecx + add ebp,edx + rol esi,10 + add ebp,eax + mov eax,ecx + rol ebp,12 + add ebp,ebx + ; 147 + xor eax,esi + mov edx,DWORD PTR 16[esp] + xor eax,ebp + add ebx,eax + mov eax,ebp + rol ecx,10 + add ebx,edx + xor eax,ecx + rol ebx,9 + add ebx,edi + ; 148 + mov edx,DWORD PTR 4[esp] + xor eax,ebx + add edi,edx + rol ebp,10 + add edi,eax + mov eax,ebx + rol edi,12 + add edi,esi + ; 149 + xor eax,ebp + mov edx,DWORD PTR 20[esp] + xor eax,edi + add esi,eax + mov eax,edi + rol ebx,10 + add esi,edx + xor eax,ebx + rol esi,5 + add esi,ecx + ; 150 + mov edx,DWORD PTR 32[esp] + xor eax,esi + add ecx,edx + rol edi,10 + add ecx,eax + mov eax,esi + rol ecx,14 + add ecx,ebp + ; 151 + xor eax,edi + mov edx,DWORD PTR 28[esp] + xor eax,ecx + add ebp,eax + mov eax,ecx + rol esi,10 + add ebp,edx + xor eax,esi + rol ebp,6 + add ebp,ebx + ; 152 + mov edx,DWORD PTR 24[esp] + xor eax,ebp + add ebx,edx + rol ecx,10 + add ebx,eax + mov eax,ebp + rol ebx,8 + add ebx,edi + ; 153 + xor eax,ecx + mov edx,DWORD PTR 8[esp] + xor eax,ebx + add edi,eax + mov eax,ebx + rol ebp,10 + add edi,edx + xor eax,ebp + rol edi,13 + add edi,esi + ; 154 + mov edx,DWORD PTR 52[esp] + xor eax,edi + add esi,edx + rol ebx,10 + add esi,eax + mov eax,edi + rol esi,6 + add esi,ecx + ; 155 + xor eax,ebx + mov edx,DWORD PTR 56[esp] + xor eax,esi + add ecx,eax + mov eax,esi + rol edi,10 + add ecx,edx + xor eax,edi + rol ecx,5 + add ecx,ebp + ; 156 + mov edx,DWORD PTR [esp] + xor eax,ecx + add ebp,edx + rol esi,10 + add ebp,eax + mov eax,ecx + rol ebp,15 + add ebp,ebx + ; 157 + xor eax,esi + mov edx,DWORD PTR 12[esp] + xor eax,ebp + add ebx,eax + mov eax,ebp + rol ecx,10 + add ebx,edx + xor eax,ecx + rol ebx,13 + add ebx,edi + ; 158 + mov edx,DWORD PTR 36[esp] + xor eax,ebx + add edi,edx + rol ebp,10 + add edi,eax + mov eax,ebx + rol edi,11 + add edi,esi + ; 159 + xor eax,ebp + mov edx,DWORD PTR 44[esp] + xor eax,edi + add esi,eax + rol ebx,10 + add esi,edx + mov edx,DWORD PTR 128[esp] + rol esi,11 + add esi,ecx + mov eax,DWORD PTR 4[edx] + add ebx,eax + mov eax,DWORD PTR 72[esp] + add ebx,eax + mov eax,DWORD PTR 8[edx] + add ebp,eax + mov eax,DWORD PTR 76[esp] + add ebp,eax + mov eax,DWORD PTR 12[edx] + add ecx,eax + mov eax,DWORD PTR 80[esp] + add ecx,eax + mov eax,DWORD PTR 16[edx] + add esi,eax + mov eax,DWORD PTR 64[esp] + add esi,eax + mov eax,DWORD PTR [edx] + add edi,eax + mov eax,DWORD PTR 68[esp] + add edi,eax + mov eax,DWORD PTR 136[esp] + mov DWORD PTR [edx],ebx + mov DWORD PTR 4[edx],ebp + mov DWORD PTR 8[edx],ecx + sub eax,1 + mov DWORD PTR 12[edx],esi + mov DWORD PTR 16[edx],edi + jle $L001get_out + mov DWORD PTR 136[esp],eax + mov edi,ecx + mov eax,DWORD PTR 132[esp] + mov ecx,ebx + add eax,64 + mov esi,ebp + mov DWORD PTR 132[esp],eax + jmp $L000start +$L001get_out: + add esp,108 + pop ebx + pop ebp + pop edi + pop esi + ret +_ripemd160_block_asm_data_order ENDP +.text$ ENDS +END diff --git a/deps/openssl/asm/x86-win32-masm/sha/sha1-586.asm b/deps/openssl/asm/x86-win32-masm/sha/sha1-586.asm new file mode 100644 index 0000000000..ce9f8d5b45 --- /dev/null +++ b/deps/openssl/asm/x86-win32-masm/sha/sha1-586.asm @@ -0,0 +1,1452 @@ +TITLE sha1-586.asm +IF @Version LT 800 +ECHO MASM version 8.00 or later is strongly recommended. +ENDIF +.586 +.MODEL FLAT +OPTION DOTNAME +IF @Version LT 800 +.text$ SEGMENT PAGE 'CODE' +ELSE +.text$ SEGMENT ALIGN(64) 'CODE' +ENDIF +ALIGN 16 +_sha1_block_data_order PROC PUBLIC +$L_sha1_block_data_order_begin:: + push ebp + push ebx + push esi + push edi + mov ebp,DWORD PTR 20[esp] + mov esi,DWORD PTR 24[esp] + mov eax,DWORD PTR 28[esp] + sub esp,64 + shl eax,6 + add eax,esi + mov DWORD PTR 92[esp],eax + mov edi,DWORD PTR 16[ebp] +ALIGN 16 +$L000loop: + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 12[esi] + bswap eax + bswap ebx + bswap ecx + bswap edx + mov DWORD PTR [esp],eax + mov DWORD PTR 4[esp],ebx + mov DWORD PTR 8[esp],ecx + mov DWORD PTR 12[esp],edx + mov eax,DWORD PTR 16[esi] + mov ebx,DWORD PTR 20[esi] + mov ecx,DWORD PTR 24[esi] + mov edx,DWORD PTR 28[esi] + bswap eax + bswap ebx + bswap ecx + bswap edx + mov DWORD PTR 16[esp],eax + mov DWORD PTR 20[esp],ebx + mov DWORD PTR 24[esp],ecx + mov DWORD PTR 28[esp],edx + mov eax,DWORD PTR 32[esi] + mov ebx,DWORD PTR 36[esi] + mov ecx,DWORD PTR 40[esi] + mov edx,DWORD PTR 44[esi] + bswap eax + bswap ebx + bswap ecx + bswap edx + mov DWORD PTR 32[esp],eax + mov DWORD PTR 36[esp],ebx + mov DWORD PTR 40[esp],ecx + mov DWORD PTR 44[esp],edx + mov eax,DWORD PTR 48[esi] + mov ebx,DWORD PTR 52[esi] + mov ecx,DWORD PTR 56[esi] + mov edx,DWORD PTR 60[esi] + bswap eax + bswap ebx + bswap ecx + bswap edx + mov DWORD PTR 48[esp],eax + mov DWORD PTR 52[esp],ebx + mov DWORD PTR 56[esp],ecx + mov DWORD PTR 60[esp],edx + mov DWORD PTR 88[esp],esi + mov eax,DWORD PTR [ebp] + mov ebx,DWORD PTR 4[ebp] + mov ecx,DWORD PTR 8[ebp] + mov edx,DWORD PTR 12[ebp] + ; 00_15 0 + mov esi,ecx + mov ebp,eax + rol ebp,5 + xor esi,edx + add ebp,edi + and esi,ebx + mov edi,DWORD PTR [esp] + xor esi,edx + ror ebx,2 + lea ebp,DWORD PTR 1518500249[edi*1+ebp] + add ebp,esi + ; 00_15 1 + mov edi,ebx + mov esi,ebp + rol ebp,5 + xor edi,ecx + add ebp,edx + and edi,eax + mov edx,DWORD PTR 4[esp] + xor edi,ecx + ror eax,2 + lea ebp,DWORD PTR 1518500249[edx*1+ebp] + add ebp,edi + ; 00_15 2 + mov edx,eax + mov edi,ebp + rol ebp,5 + xor edx,ebx + add ebp,ecx + and edx,esi + mov ecx,DWORD PTR 8[esp] + xor edx,ebx + ror esi,2 + lea ebp,DWORD PTR 1518500249[ecx*1+ebp] + add ebp,edx + ; 00_15 3 + mov ecx,esi + mov edx,ebp + rol ebp,5 + xor ecx,eax + add ebp,ebx + and ecx,edi + mov ebx,DWORD PTR 12[esp] + xor ecx,eax + ror edi,2 + lea ebp,DWORD PTR 1518500249[ebx*1+ebp] + add ebp,ecx + ; 00_15 4 + mov ebx,edi + mov ecx,ebp + rol ebp,5 + xor ebx,esi + add ebp,eax + and ebx,edx + mov eax,DWORD PTR 16[esp] + xor ebx,esi + ror edx,2 + lea ebp,DWORD PTR 1518500249[eax*1+ebp] + add ebp,ebx + ; 00_15 5 + mov eax,edx + mov ebx,ebp + rol ebp,5 + xor eax,edi + add ebp,esi + and eax,ecx + mov esi,DWORD PTR 20[esp] + xor eax,edi + ror ecx,2 + lea ebp,DWORD PTR 1518500249[esi*1+ebp] + add ebp,eax + ; 00_15 6 + mov esi,ecx + mov eax,ebp + rol ebp,5 + xor esi,edx + add ebp,edi + and esi,ebx + mov edi,DWORD PTR 24[esp] + xor esi,edx + ror ebx,2 + lea ebp,DWORD PTR 1518500249[edi*1+ebp] + add ebp,esi + ; 00_15 7 + mov edi,ebx + mov esi,ebp + rol ebp,5 + xor edi,ecx + add ebp,edx + and edi,eax + mov edx,DWORD PTR 28[esp] + xor edi,ecx + ror eax,2 + lea ebp,DWORD PTR 1518500249[edx*1+ebp] + add ebp,edi + ; 00_15 8 + mov edx,eax + mov edi,ebp + rol ebp,5 + xor edx,ebx + add ebp,ecx + and edx,esi + mov ecx,DWORD PTR 32[esp] + xor edx,ebx + ror esi,2 + lea ebp,DWORD PTR 1518500249[ecx*1+ebp] + add ebp,edx + ; 00_15 9 + mov ecx,esi + mov edx,ebp + rol ebp,5 + xor ecx,eax + add ebp,ebx + and ecx,edi + mov ebx,DWORD PTR 36[esp] + xor ecx,eax + ror edi,2 + lea ebp,DWORD PTR 1518500249[ebx*1+ebp] + add ebp,ecx + ; 00_15 10 + mov ebx,edi + mov ecx,ebp + rol ebp,5 + xor ebx,esi + add ebp,eax + and ebx,edx + mov eax,DWORD PTR 40[esp] + xor ebx,esi + ror edx,2 + lea ebp,DWORD PTR 1518500249[eax*1+ebp] + add ebp,ebx + ; 00_15 11 + mov eax,edx + mov ebx,ebp + rol ebp,5 + xor eax,edi + add ebp,esi + and eax,ecx + mov esi,DWORD PTR 44[esp] + xor eax,edi + ror ecx,2 + lea ebp,DWORD PTR 1518500249[esi*1+ebp] + add ebp,eax + ; 00_15 12 + mov esi,ecx + mov eax,ebp + rol ebp,5 + xor esi,edx + add ebp,edi + and esi,ebx + mov edi,DWORD PTR 48[esp] + xor esi,edx + ror ebx,2 + lea ebp,DWORD PTR 1518500249[edi*1+ebp] + add ebp,esi + ; 00_15 13 + mov edi,ebx + mov esi,ebp + rol ebp,5 + xor edi,ecx + add ebp,edx + and edi,eax + mov edx,DWORD PTR 52[esp] + xor edi,ecx + ror eax,2 + lea ebp,DWORD PTR 1518500249[edx*1+ebp] + add ebp,edi + ; 00_15 14 + mov edx,eax + mov edi,ebp + rol ebp,5 + xor edx,ebx + add ebp,ecx + and edx,esi + mov ecx,DWORD PTR 56[esp] + xor edx,ebx + ror esi,2 + lea ebp,DWORD PTR 1518500249[ecx*1+ebp] + add ebp,edx + ; 00_15 15 + mov ecx,esi + mov edx,ebp + rol ebp,5 + xor ecx,eax + add ebp,ebx + and ecx,edi + mov ebx,DWORD PTR 60[esp] + xor ecx,eax + ror edi,2 + lea ebp,DWORD PTR 1518500249[ebx*1+ebp] + add ecx,ebp + ; 16_19 16 + mov ebx,DWORD PTR [esp] + mov ebp,edi + xor ebx,DWORD PTR 8[esp] + xor ebp,esi + xor ebx,DWORD PTR 32[esp] + and ebp,edx + ror edx,2 + xor ebx,DWORD PTR 52[esp] + rol ebx,1 + xor ebp,esi + mov DWORD PTR [esp],ebx + lea ebx,DWORD PTR 1518500249[eax*1+ebx] + mov eax,ecx + rol eax,5 + add ebx,ebp + add ebx,eax + ; 16_19 17 + mov eax,DWORD PTR 4[esp] + mov ebp,edx + xor eax,DWORD PTR 12[esp] + xor ebp,edi + xor eax,DWORD PTR 36[esp] + and ebp,ecx + ror ecx,2 + xor eax,DWORD PTR 56[esp] + rol eax,1 + xor ebp,edi + mov DWORD PTR 4[esp],eax + lea eax,DWORD PTR 1518500249[esi*1+eax] + mov esi,ebx + rol esi,5 + add eax,ebp + add eax,esi + ; 16_19 18 + mov esi,DWORD PTR 8[esp] + mov ebp,ecx + xor esi,DWORD PTR 16[esp] + xor ebp,edx + xor esi,DWORD PTR 40[esp] + and ebp,ebx + ror ebx,2 + xor esi,DWORD PTR 60[esp] + rol esi,1 + xor ebp,edx + mov DWORD PTR 8[esp],esi + lea esi,DWORD PTR 1518500249[edi*1+esi] + mov edi,eax + rol edi,5 + add esi,ebp + add esi,edi + ; 16_19 19 + mov edi,DWORD PTR 12[esp] + mov ebp,ebx + xor edi,DWORD PTR 20[esp] + xor ebp,ecx + xor edi,DWORD PTR 44[esp] + and ebp,eax + ror eax,2 + xor edi,DWORD PTR [esp] + rol edi,1 + xor ebp,ecx + mov DWORD PTR 12[esp],edi + lea edi,DWORD PTR 1518500249[edx*1+edi] + mov edx,esi + rol edx,5 + add edi,ebp + add edi,edx + ; 20_39 20 + mov ebp,esi + mov edx,DWORD PTR 16[esp] + ror esi,2 + xor edx,DWORD PTR 24[esp] + xor ebp,eax + xor edx,DWORD PTR 48[esp] + xor ebp,ebx + xor edx,DWORD PTR 4[esp] + rol edx,1 + add ebp,ecx + mov DWORD PTR 16[esp],edx + mov ecx,edi + rol ecx,5 + lea edx,DWORD PTR 1859775393[ebp*1+edx] + add edx,ecx + ; 20_39 21 + mov ebp,edi + mov ecx,DWORD PTR 20[esp] + ror edi,2 + xor ecx,DWORD PTR 28[esp] + xor ebp,esi + xor ecx,DWORD PTR 52[esp] + xor ebp,eax + xor ecx,DWORD PTR 8[esp] + rol ecx,1 + add ebp,ebx + mov DWORD PTR 20[esp],ecx + mov ebx,edx + rol ebx,5 + lea ecx,DWORD PTR 1859775393[ebp*1+ecx] + add ecx,ebx + ; 20_39 22 + mov ebp,edx + mov ebx,DWORD PTR 24[esp] + ror edx,2 + xor ebx,DWORD PTR 32[esp] + xor ebp,edi + xor ebx,DWORD PTR 56[esp] + xor ebp,esi + xor ebx,DWORD PTR 12[esp] + rol ebx,1 + add ebp,eax + mov DWORD PTR 24[esp],ebx + mov eax,ecx + rol eax,5 + lea ebx,DWORD PTR 1859775393[ebp*1+ebx] + add ebx,eax + ; 20_39 23 + mov ebp,ecx + mov eax,DWORD PTR 28[esp] + ror ecx,2 + xor eax,DWORD PTR 36[esp] + xor ebp,edx + xor eax,DWORD PTR 60[esp] + xor ebp,edi + xor eax,DWORD PTR 16[esp] + rol eax,1 + add ebp,esi + mov DWORD PTR 28[esp],eax + mov esi,ebx + rol esi,5 + lea eax,DWORD PTR 1859775393[ebp*1+eax] + add eax,esi + ; 20_39 24 + mov ebp,ebx + mov esi,DWORD PTR 32[esp] + ror ebx,2 + xor esi,DWORD PTR 40[esp] + xor ebp,ecx + xor esi,DWORD PTR [esp] + xor ebp,edx + xor esi,DWORD PTR 20[esp] + rol esi,1 + add ebp,edi + mov DWORD PTR 32[esp],esi + mov edi,eax + rol edi,5 + lea esi,DWORD PTR 1859775393[ebp*1+esi] + add esi,edi + ; 20_39 25 + mov ebp,eax + mov edi,DWORD PTR 36[esp] + ror eax,2 + xor edi,DWORD PTR 44[esp] + xor ebp,ebx + xor edi,DWORD PTR 4[esp] + xor ebp,ecx + xor edi,DWORD PTR 24[esp] + rol edi,1 + add ebp,edx + mov DWORD PTR 36[esp],edi + mov edx,esi + rol edx,5 + lea edi,DWORD PTR 1859775393[ebp*1+edi] + add edi,edx + ; 20_39 26 + mov ebp,esi + mov edx,DWORD PTR 40[esp] + ror esi,2 + xor edx,DWORD PTR 48[esp] + xor ebp,eax + xor edx,DWORD PTR 8[esp] + xor ebp,ebx + xor edx,DWORD PTR 28[esp] + rol edx,1 + add ebp,ecx + mov DWORD PTR 40[esp],edx + mov ecx,edi + rol ecx,5 + lea edx,DWORD PTR 1859775393[ebp*1+edx] + add edx,ecx + ; 20_39 27 + mov ebp,edi + mov ecx,DWORD PTR 44[esp] + ror edi,2 + xor ecx,DWORD PTR 52[esp] + xor ebp,esi + xor ecx,DWORD PTR 12[esp] + xor ebp,eax + xor ecx,DWORD PTR 32[esp] + rol ecx,1 + add ebp,ebx + mov DWORD PTR 44[esp],ecx + mov ebx,edx + rol ebx,5 + lea ecx,DWORD PTR 1859775393[ebp*1+ecx] + add ecx,ebx + ; 20_39 28 + mov ebp,edx + mov ebx,DWORD PTR 48[esp] + ror edx,2 + xor ebx,DWORD PTR 56[esp] + xor ebp,edi + xor ebx,DWORD PTR 16[esp] + xor ebp,esi + xor ebx,DWORD PTR 36[esp] + rol ebx,1 + add ebp,eax + mov DWORD PTR 48[esp],ebx + mov eax,ecx + rol eax,5 + lea ebx,DWORD PTR 1859775393[ebp*1+ebx] + add ebx,eax + ; 20_39 29 + mov ebp,ecx + mov eax,DWORD PTR 52[esp] + ror ecx,2 + xor eax,DWORD PTR 60[esp] + xor ebp,edx + xor eax,DWORD PTR 20[esp] + xor ebp,edi + xor eax,DWORD PTR 40[esp] + rol eax,1 + add ebp,esi + mov DWORD PTR 52[esp],eax + mov esi,ebx + rol esi,5 + lea eax,DWORD PTR 1859775393[ebp*1+eax] + add eax,esi + ; 20_39 30 + mov ebp,ebx + mov esi,DWORD PTR 56[esp] + ror ebx,2 + xor esi,DWORD PTR [esp] + xor ebp,ecx + xor esi,DWORD PTR 24[esp] + xor ebp,edx + xor esi,DWORD PTR 44[esp] + rol esi,1 + add ebp,edi + mov DWORD PTR 56[esp],esi + mov edi,eax + rol edi,5 + lea esi,DWORD PTR 1859775393[ebp*1+esi] + add esi,edi + ; 20_39 31 + mov ebp,eax + mov edi,DWORD PTR 60[esp] + ror eax,2 + xor edi,DWORD PTR 4[esp] + xor ebp,ebx + xor edi,DWORD PTR 28[esp] + xor ebp,ecx + xor edi,DWORD PTR 48[esp] + rol edi,1 + add ebp,edx + mov DWORD PTR 60[esp],edi + mov edx,esi + rol edx,5 + lea edi,DWORD PTR 1859775393[ebp*1+edi] + add edi,edx + ; 20_39 32 + mov ebp,esi + mov edx,DWORD PTR [esp] + ror esi,2 + xor edx,DWORD PTR 8[esp] + xor ebp,eax + xor edx,DWORD PTR 32[esp] + xor ebp,ebx + xor edx,DWORD PTR 52[esp] + rol edx,1 + add ebp,ecx + mov DWORD PTR [esp],edx + mov ecx,edi + rol ecx,5 + lea edx,DWORD PTR 1859775393[ebp*1+edx] + add edx,ecx + ; 20_39 33 + mov ebp,edi + mov ecx,DWORD PTR 4[esp] + ror edi,2 + xor ecx,DWORD PTR 12[esp] + xor ebp,esi + xor ecx,DWORD PTR 36[esp] + xor ebp,eax + xor ecx,DWORD PTR 56[esp] + rol ecx,1 + add ebp,ebx + mov DWORD PTR 4[esp],ecx + mov ebx,edx + rol ebx,5 + lea ecx,DWORD PTR 1859775393[ebp*1+ecx] + add ecx,ebx + ; 20_39 34 + mov ebp,edx + mov ebx,DWORD PTR 8[esp] + ror edx,2 + xor ebx,DWORD PTR 16[esp] + xor ebp,edi + xor ebx,DWORD PTR 40[esp] + xor ebp,esi + xor ebx,DWORD PTR 60[esp] + rol ebx,1 + add ebp,eax + mov DWORD PTR 8[esp],ebx + mov eax,ecx + rol eax,5 + lea ebx,DWORD PTR 1859775393[ebp*1+ebx] + add ebx,eax + ; 20_39 35 + mov ebp,ecx + mov eax,DWORD PTR 12[esp] + ror ecx,2 + xor eax,DWORD PTR 20[esp] + xor ebp,edx + xor eax,DWORD PTR 44[esp] + xor ebp,edi + xor eax,DWORD PTR [esp] + rol eax,1 + add ebp,esi + mov DWORD PTR 12[esp],eax + mov esi,ebx + rol esi,5 + lea eax,DWORD PTR 1859775393[ebp*1+eax] + add eax,esi + ; 20_39 36 + mov ebp,ebx + mov esi,DWORD PTR 16[esp] + ror ebx,2 + xor esi,DWORD PTR 24[esp] + xor ebp,ecx + xor esi,DWORD PTR 48[esp] + xor ebp,edx + xor esi,DWORD PTR 4[esp] + rol esi,1 + add ebp,edi + mov DWORD PTR 16[esp],esi + mov edi,eax + rol edi,5 + lea esi,DWORD PTR 1859775393[ebp*1+esi] + add esi,edi + ; 20_39 37 + mov ebp,eax + mov edi,DWORD PTR 20[esp] + ror eax,2 + xor edi,DWORD PTR 28[esp] + xor ebp,ebx + xor edi,DWORD PTR 52[esp] + xor ebp,ecx + xor edi,DWORD PTR 8[esp] + rol edi,1 + add ebp,edx + mov DWORD PTR 20[esp],edi + mov edx,esi + rol edx,5 + lea edi,DWORD PTR 1859775393[ebp*1+edi] + add edi,edx + ; 20_39 38 + mov ebp,esi + mov edx,DWORD PTR 24[esp] + ror esi,2 + xor edx,DWORD PTR 32[esp] + xor ebp,eax + xor edx,DWORD PTR 56[esp] + xor ebp,ebx + xor edx,DWORD PTR 12[esp] + rol edx,1 + add ebp,ecx + mov DWORD PTR 24[esp],edx + mov ecx,edi + rol ecx,5 + lea edx,DWORD PTR 1859775393[ebp*1+edx] + add edx,ecx + ; 20_39 39 + mov ebp,edi + mov ecx,DWORD PTR 28[esp] + ror edi,2 + xor ecx,DWORD PTR 36[esp] + xor ebp,esi + xor ecx,DWORD PTR 60[esp] + xor ebp,eax + xor ecx,DWORD PTR 16[esp] + rol ecx,1 + add ebp,ebx + mov DWORD PTR 28[esp],ecx + mov ebx,edx + rol ebx,5 + lea ecx,DWORD PTR 1859775393[ebp*1+ecx] + add ecx,ebx + ; 40_59 40 + mov ebx,DWORD PTR 32[esp] + mov ebp,DWORD PTR 40[esp] + xor ebx,ebp + mov ebp,DWORD PTR [esp] + xor ebx,ebp + mov ebp,DWORD PTR 20[esp] + xor ebx,ebp + mov ebp,edx + rol ebx,1 + or ebp,edi + mov DWORD PTR 32[esp],ebx + and ebp,esi + lea ebx,DWORD PTR 2400959708[eax*1+ebx] + mov eax,edx + ror edx,2 + and eax,edi + or ebp,eax + mov eax,ecx + rol eax,5 + add ebx,ebp + add ebx,eax + ; 40_59 41 + mov eax,DWORD PTR 36[esp] + mov ebp,DWORD PTR 44[esp] + xor eax,ebp + mov ebp,DWORD PTR 4[esp] + xor eax,ebp + mov ebp,DWORD PTR 24[esp] + xor eax,ebp + mov ebp,ecx + rol eax,1 + or ebp,edx + mov DWORD PTR 36[esp],eax + and ebp,edi + lea eax,DWORD PTR 2400959708[esi*1+eax] + mov esi,ecx + ror ecx,2 + and esi,edx + or ebp,esi + mov esi,ebx + rol esi,5 + add eax,ebp + add eax,esi + ; 40_59 42 + mov esi,DWORD PTR 40[esp] + mov ebp,DWORD PTR 48[esp] + xor esi,ebp + mov ebp,DWORD PTR 8[esp] + xor esi,ebp + mov ebp,DWORD PTR 28[esp] + xor esi,ebp + mov ebp,ebx + rol esi,1 + or ebp,ecx + mov DWORD PTR 40[esp],esi + and ebp,edx + lea esi,DWORD PTR 2400959708[edi*1+esi] + mov edi,ebx + ror ebx,2 + and edi,ecx + or ebp,edi + mov edi,eax + rol edi,5 + add esi,ebp + add esi,edi + ; 40_59 43 + mov edi,DWORD PTR 44[esp] + mov ebp,DWORD PTR 52[esp] + xor edi,ebp + mov ebp,DWORD PTR 12[esp] + xor edi,ebp + mov ebp,DWORD PTR 32[esp] + xor edi,ebp + mov ebp,eax + rol edi,1 + or ebp,ebx + mov DWORD PTR 44[esp],edi + and ebp,ecx + lea edi,DWORD PTR 2400959708[edx*1+edi] + mov edx,eax + ror eax,2 + and edx,ebx + or ebp,edx + mov edx,esi + rol edx,5 + add edi,ebp + add edi,edx + ; 40_59 44 + mov edx,DWORD PTR 48[esp] + mov ebp,DWORD PTR 56[esp] + xor edx,ebp + mov ebp,DWORD PTR 16[esp] + xor edx,ebp + mov ebp,DWORD PTR 36[esp] + xor edx,ebp + mov ebp,esi + rol edx,1 + or ebp,eax + mov DWORD PTR 48[esp],edx + and ebp,ebx + lea edx,DWORD PTR 2400959708[ecx*1+edx] + mov ecx,esi + ror esi,2 + and ecx,eax + or ebp,ecx + mov ecx,edi + rol ecx,5 + add edx,ebp + add edx,ecx + ; 40_59 45 + mov ecx,DWORD PTR 52[esp] + mov ebp,DWORD PTR 60[esp] + xor ecx,ebp + mov ebp,DWORD PTR 20[esp] + xor ecx,ebp + mov ebp,DWORD PTR 40[esp] + xor ecx,ebp + mov ebp,edi + rol ecx,1 + or ebp,esi + mov DWORD PTR 52[esp],ecx + and ebp,eax + lea ecx,DWORD PTR 2400959708[ebx*1+ecx] + mov ebx,edi + ror edi,2 + and ebx,esi + or ebp,ebx + mov ebx,edx + rol ebx,5 + add ecx,ebp + add ecx,ebx + ; 40_59 46 + mov ebx,DWORD PTR 56[esp] + mov ebp,DWORD PTR [esp] + xor ebx,ebp + mov ebp,DWORD PTR 24[esp] + xor ebx,ebp + mov ebp,DWORD PTR 44[esp] + xor ebx,ebp + mov ebp,edx + rol ebx,1 + or ebp,edi + mov DWORD PTR 56[esp],ebx + and ebp,esi + lea ebx,DWORD PTR 2400959708[eax*1+ebx] + mov eax,edx + ror edx,2 + and eax,edi + or ebp,eax + mov eax,ecx + rol eax,5 + add ebx,ebp + add ebx,eax + ; 40_59 47 + mov eax,DWORD PTR 60[esp] + mov ebp,DWORD PTR 4[esp] + xor eax,ebp + mov ebp,DWORD PTR 28[esp] + xor eax,ebp + mov ebp,DWORD PTR 48[esp] + xor eax,ebp + mov ebp,ecx + rol eax,1 + or ebp,edx + mov DWORD PTR 60[esp],eax + and ebp,edi + lea eax,DWORD PTR 2400959708[esi*1+eax] + mov esi,ecx + ror ecx,2 + and esi,edx + or ebp,esi + mov esi,ebx + rol esi,5 + add eax,ebp + add eax,esi + ; 40_59 48 + mov esi,DWORD PTR [esp] + mov ebp,DWORD PTR 8[esp] + xor esi,ebp + mov ebp,DWORD PTR 32[esp] + xor esi,ebp + mov ebp,DWORD PTR 52[esp] + xor esi,ebp + mov ebp,ebx + rol esi,1 + or ebp,ecx + mov DWORD PTR [esp],esi + and ebp,edx + lea esi,DWORD PTR 2400959708[edi*1+esi] + mov edi,ebx + ror ebx,2 + and edi,ecx + or ebp,edi + mov edi,eax + rol edi,5 + add esi,ebp + add esi,edi + ; 40_59 49 + mov edi,DWORD PTR 4[esp] + mov ebp,DWORD PTR 12[esp] + xor edi,ebp + mov ebp,DWORD PTR 36[esp] + xor edi,ebp + mov ebp,DWORD PTR 56[esp] + xor edi,ebp + mov ebp,eax + rol edi,1 + or ebp,ebx + mov DWORD PTR 4[esp],edi + and ebp,ecx + lea edi,DWORD PTR 2400959708[edx*1+edi] + mov edx,eax + ror eax,2 + and edx,ebx + or ebp,edx + mov edx,esi + rol edx,5 + add edi,ebp + add edi,edx + ; 40_59 50 + mov edx,DWORD PTR 8[esp] + mov ebp,DWORD PTR 16[esp] + xor edx,ebp + mov ebp,DWORD PTR 40[esp] + xor edx,ebp + mov ebp,DWORD PTR 60[esp] + xor edx,ebp + mov ebp,esi + rol edx,1 + or ebp,eax + mov DWORD PTR 8[esp],edx + and ebp,ebx + lea edx,DWORD PTR 2400959708[ecx*1+edx] + mov ecx,esi + ror esi,2 + and ecx,eax + or ebp,ecx + mov ecx,edi + rol ecx,5 + add edx,ebp + add edx,ecx + ; 40_59 51 + mov ecx,DWORD PTR 12[esp] + mov ebp,DWORD PTR 20[esp] + xor ecx,ebp + mov ebp,DWORD PTR 44[esp] + xor ecx,ebp + mov ebp,DWORD PTR [esp] + xor ecx,ebp + mov ebp,edi + rol ecx,1 + or ebp,esi + mov DWORD PTR 12[esp],ecx + and ebp,eax + lea ecx,DWORD PTR 2400959708[ebx*1+ecx] + mov ebx,edi + ror edi,2 + and ebx,esi + or ebp,ebx + mov ebx,edx + rol ebx,5 + add ecx,ebp + add ecx,ebx + ; 40_59 52 + mov ebx,DWORD PTR 16[esp] + mov ebp,DWORD PTR 24[esp] + xor ebx,ebp + mov ebp,DWORD PTR 48[esp] + xor ebx,ebp + mov ebp,DWORD PTR 4[esp] + xor ebx,ebp + mov ebp,edx + rol ebx,1 + or ebp,edi + mov DWORD PTR 16[esp],ebx + and ebp,esi + lea ebx,DWORD PTR 2400959708[eax*1+ebx] + mov eax,edx + ror edx,2 + and eax,edi + or ebp,eax + mov eax,ecx + rol eax,5 + add ebx,ebp + add ebx,eax + ; 40_59 53 + mov eax,DWORD PTR 20[esp] + mov ebp,DWORD PTR 28[esp] + xor eax,ebp + mov ebp,DWORD PTR 52[esp] + xor eax,ebp + mov ebp,DWORD PTR 8[esp] + xor eax,ebp + mov ebp,ecx + rol eax,1 + or ebp,edx + mov DWORD PTR 20[esp],eax + and ebp,edi + lea eax,DWORD PTR 2400959708[esi*1+eax] + mov esi,ecx + ror ecx,2 + and esi,edx + or ebp,esi + mov esi,ebx + rol esi,5 + add eax,ebp + add eax,esi + ; 40_59 54 + mov esi,DWORD PTR 24[esp] + mov ebp,DWORD PTR 32[esp] + xor esi,ebp + mov ebp,DWORD PTR 56[esp] + xor esi,ebp + mov ebp,DWORD PTR 12[esp] + xor esi,ebp + mov ebp,ebx + rol esi,1 + or ebp,ecx + mov DWORD PTR 24[esp],esi + and ebp,edx + lea esi,DWORD PTR 2400959708[edi*1+esi] + mov edi,ebx + ror ebx,2 + and edi,ecx + or ebp,edi + mov edi,eax + rol edi,5 + add esi,ebp + add esi,edi + ; 40_59 55 + mov edi,DWORD PTR 28[esp] + mov ebp,DWORD PTR 36[esp] + xor edi,ebp + mov ebp,DWORD PTR 60[esp] + xor edi,ebp + mov ebp,DWORD PTR 16[esp] + xor edi,ebp + mov ebp,eax + rol edi,1 + or ebp,ebx + mov DWORD PTR 28[esp],edi + and ebp,ecx + lea edi,DWORD PTR 2400959708[edx*1+edi] + mov edx,eax + ror eax,2 + and edx,ebx + or ebp,edx + mov edx,esi + rol edx,5 + add edi,ebp + add edi,edx + ; 40_59 56 + mov edx,DWORD PTR 32[esp] + mov ebp,DWORD PTR 40[esp] + xor edx,ebp + mov ebp,DWORD PTR [esp] + xor edx,ebp + mov ebp,DWORD PTR 20[esp] + xor edx,ebp + mov ebp,esi + rol edx,1 + or ebp,eax + mov DWORD PTR 32[esp],edx + and ebp,ebx + lea edx,DWORD PTR 2400959708[ecx*1+edx] + mov ecx,esi + ror esi,2 + and ecx,eax + or ebp,ecx + mov ecx,edi + rol ecx,5 + add edx,ebp + add edx,ecx + ; 40_59 57 + mov ecx,DWORD PTR 36[esp] + mov ebp,DWORD PTR 44[esp] + xor ecx,ebp + mov ebp,DWORD PTR 4[esp] + xor ecx,ebp + mov ebp,DWORD PTR 24[esp] + xor ecx,ebp + mov ebp,edi + rol ecx,1 + or ebp,esi + mov DWORD PTR 36[esp],ecx + and ebp,eax + lea ecx,DWORD PTR 2400959708[ebx*1+ecx] + mov ebx,edi + ror edi,2 + and ebx,esi + or ebp,ebx + mov ebx,edx + rol ebx,5 + add ecx,ebp + add ecx,ebx + ; 40_59 58 + mov ebx,DWORD PTR 40[esp] + mov ebp,DWORD PTR 48[esp] + xor ebx,ebp + mov ebp,DWORD PTR 8[esp] + xor ebx,ebp + mov ebp,DWORD PTR 28[esp] + xor ebx,ebp + mov ebp,edx + rol ebx,1 + or ebp,edi + mov DWORD PTR 40[esp],ebx + and ebp,esi + lea ebx,DWORD PTR 2400959708[eax*1+ebx] + mov eax,edx + ror edx,2 + and eax,edi + or ebp,eax + mov eax,ecx + rol eax,5 + add ebx,ebp + add ebx,eax + ; 40_59 59 + mov eax,DWORD PTR 44[esp] + mov ebp,DWORD PTR 52[esp] + xor eax,ebp + mov ebp,DWORD PTR 12[esp] + xor eax,ebp + mov ebp,DWORD PTR 32[esp] + xor eax,ebp + mov ebp,ecx + rol eax,1 + or ebp,edx + mov DWORD PTR 44[esp],eax + and ebp,edi + lea eax,DWORD PTR 2400959708[esi*1+eax] + mov esi,ecx + ror ecx,2 + and esi,edx + or ebp,esi + mov esi,ebx + rol esi,5 + add eax,ebp + add eax,esi + ; 20_39 60 + mov ebp,ebx + mov esi,DWORD PTR 48[esp] + ror ebx,2 + xor esi,DWORD PTR 56[esp] + xor ebp,ecx + xor esi,DWORD PTR 16[esp] + xor ebp,edx + xor esi,DWORD PTR 36[esp] + rol esi,1 + add ebp,edi + mov DWORD PTR 48[esp],esi + mov edi,eax + rol edi,5 + lea esi,DWORD PTR 3395469782[ebp*1+esi] + add esi,edi + ; 20_39 61 + mov ebp,eax + mov edi,DWORD PTR 52[esp] + ror eax,2 + xor edi,DWORD PTR 60[esp] + xor ebp,ebx + xor edi,DWORD PTR 20[esp] + xor ebp,ecx + xor edi,DWORD PTR 40[esp] + rol edi,1 + add ebp,edx + mov DWORD PTR 52[esp],edi + mov edx,esi + rol edx,5 + lea edi,DWORD PTR 3395469782[ebp*1+edi] + add edi,edx + ; 20_39 62 + mov ebp,esi + mov edx,DWORD PTR 56[esp] + ror esi,2 + xor edx,DWORD PTR [esp] + xor ebp,eax + xor edx,DWORD PTR 24[esp] + xor ebp,ebx + xor edx,DWORD PTR 44[esp] + rol edx,1 + add ebp,ecx + mov DWORD PTR 56[esp],edx + mov ecx,edi + rol ecx,5 + lea edx,DWORD PTR 3395469782[ebp*1+edx] + add edx,ecx + ; 20_39 63 + mov ebp,edi + mov ecx,DWORD PTR 60[esp] + ror edi,2 + xor ecx,DWORD PTR 4[esp] + xor ebp,esi + xor ecx,DWORD PTR 28[esp] + xor ebp,eax + xor ecx,DWORD PTR 48[esp] + rol ecx,1 + add ebp,ebx + mov DWORD PTR 60[esp],ecx + mov ebx,edx + rol ebx,5 + lea ecx,DWORD PTR 3395469782[ebp*1+ecx] + add ecx,ebx + ; 20_39 64 + mov ebp,edx + mov ebx,DWORD PTR [esp] + ror edx,2 + xor ebx,DWORD PTR 8[esp] + xor ebp,edi + xor ebx,DWORD PTR 32[esp] + xor ebp,esi + xor ebx,DWORD PTR 52[esp] + rol ebx,1 + add ebp,eax + mov DWORD PTR [esp],ebx + mov eax,ecx + rol eax,5 + lea ebx,DWORD PTR 3395469782[ebp*1+ebx] + add ebx,eax + ; 20_39 65 + mov ebp,ecx + mov eax,DWORD PTR 4[esp] + ror ecx,2 + xor eax,DWORD PTR 12[esp] + xor ebp,edx + xor eax,DWORD PTR 36[esp] + xor ebp,edi + xor eax,DWORD PTR 56[esp] + rol eax,1 + add ebp,esi + mov DWORD PTR 4[esp],eax + mov esi,ebx + rol esi,5 + lea eax,DWORD PTR 3395469782[ebp*1+eax] + add eax,esi + ; 20_39 66 + mov ebp,ebx + mov esi,DWORD PTR 8[esp] + ror ebx,2 + xor esi,DWORD PTR 16[esp] + xor ebp,ecx + xor esi,DWORD PTR 40[esp] + xor ebp,edx + xor esi,DWORD PTR 60[esp] + rol esi,1 + add ebp,edi + mov DWORD PTR 8[esp],esi + mov edi,eax + rol edi,5 + lea esi,DWORD PTR 3395469782[ebp*1+esi] + add esi,edi + ; 20_39 67 + mov ebp,eax + mov edi,DWORD PTR 12[esp] + ror eax,2 + xor edi,DWORD PTR 20[esp] + xor ebp,ebx + xor edi,DWORD PTR 44[esp] + xor ebp,ecx + xor edi,DWORD PTR [esp] + rol edi,1 + add ebp,edx + mov DWORD PTR 12[esp],edi + mov edx,esi + rol edx,5 + lea edi,DWORD PTR 3395469782[ebp*1+edi] + add edi,edx + ; 20_39 68 + mov ebp,esi + mov edx,DWORD PTR 16[esp] + ror esi,2 + xor edx,DWORD PTR 24[esp] + xor ebp,eax + xor edx,DWORD PTR 48[esp] + xor ebp,ebx + xor edx,DWORD PTR 4[esp] + rol edx,1 + add ebp,ecx + mov DWORD PTR 16[esp],edx + mov ecx,edi + rol ecx,5 + lea edx,DWORD PTR 3395469782[ebp*1+edx] + add edx,ecx + ; 20_39 69 + mov ebp,edi + mov ecx,DWORD PTR 20[esp] + ror edi,2 + xor ecx,DWORD PTR 28[esp] + xor ebp,esi + xor ecx,DWORD PTR 52[esp] + xor ebp,eax + xor ecx,DWORD PTR 8[esp] + rol ecx,1 + add ebp,ebx + mov DWORD PTR 20[esp],ecx + mov ebx,edx + rol ebx,5 + lea ecx,DWORD PTR 3395469782[ebp*1+ecx] + add ecx,ebx + ; 20_39 70 + mov ebp,edx + mov ebx,DWORD PTR 24[esp] + ror edx,2 + xor ebx,DWORD PTR 32[esp] + xor ebp,edi + xor ebx,DWORD PTR 56[esp] + xor ebp,esi + xor ebx,DWORD PTR 12[esp] + rol ebx,1 + add ebp,eax + mov DWORD PTR 24[esp],ebx + mov eax,ecx + rol eax,5 + lea ebx,DWORD PTR 3395469782[ebp*1+ebx] + add ebx,eax + ; 20_39 71 + mov ebp,ecx + mov eax,DWORD PTR 28[esp] + ror ecx,2 + xor eax,DWORD PTR 36[esp] + xor ebp,edx + xor eax,DWORD PTR 60[esp] + xor ebp,edi + xor eax,DWORD PTR 16[esp] + rol eax,1 + add ebp,esi + mov DWORD PTR 28[esp],eax + mov esi,ebx + rol esi,5 + lea eax,DWORD PTR 3395469782[ebp*1+eax] + add eax,esi + ; 20_39 72 + mov ebp,ebx + mov esi,DWORD PTR 32[esp] + ror ebx,2 + xor esi,DWORD PTR 40[esp] + xor ebp,ecx + xor esi,DWORD PTR [esp] + xor ebp,edx + xor esi,DWORD PTR 20[esp] + rol esi,1 + add ebp,edi + mov DWORD PTR 32[esp],esi + mov edi,eax + rol edi,5 + lea esi,DWORD PTR 3395469782[ebp*1+esi] + add esi,edi + ; 20_39 73 + mov ebp,eax + mov edi,DWORD PTR 36[esp] + ror eax,2 + xor edi,DWORD PTR 44[esp] + xor ebp,ebx + xor edi,DWORD PTR 4[esp] + xor ebp,ecx + xor edi,DWORD PTR 24[esp] + rol edi,1 + add ebp,edx + mov DWORD PTR 36[esp],edi + mov edx,esi + rol edx,5 + lea edi,DWORD PTR 3395469782[ebp*1+edi] + add edi,edx + ; 20_39 74 + mov ebp,esi + mov edx,DWORD PTR 40[esp] + ror esi,2 + xor edx,DWORD PTR 48[esp] + xor ebp,eax + xor edx,DWORD PTR 8[esp] + xor ebp,ebx + xor edx,DWORD PTR 28[esp] + rol edx,1 + add ebp,ecx + mov DWORD PTR 40[esp],edx + mov ecx,edi + rol ecx,5 + lea edx,DWORD PTR 3395469782[ebp*1+edx] + add edx,ecx + ; 20_39 75 + mov ebp,edi + mov ecx,DWORD PTR 44[esp] + ror edi,2 + xor ecx,DWORD PTR 52[esp] + xor ebp,esi + xor ecx,DWORD PTR 12[esp] + xor ebp,eax + xor ecx,DWORD PTR 32[esp] + rol ecx,1 + add ebp,ebx + mov DWORD PTR 44[esp],ecx + mov ebx,edx + rol ebx,5 + lea ecx,DWORD PTR 3395469782[ebp*1+ecx] + add ecx,ebx + ; 20_39 76 + mov ebp,edx + mov ebx,DWORD PTR 48[esp] + ror edx,2 + xor ebx,DWORD PTR 56[esp] + xor ebp,edi + xor ebx,DWORD PTR 16[esp] + xor ebp,esi + xor ebx,DWORD PTR 36[esp] + rol ebx,1 + add ebp,eax + mov DWORD PTR 48[esp],ebx + mov eax,ecx + rol eax,5 + lea ebx,DWORD PTR 3395469782[ebp*1+ebx] + add ebx,eax + ; 20_39 77 + mov ebp,ecx + mov eax,DWORD PTR 52[esp] + ror ecx,2 + xor eax,DWORD PTR 60[esp] + xor ebp,edx + xor eax,DWORD PTR 20[esp] + xor ebp,edi + xor eax,DWORD PTR 40[esp] + rol eax,1 + add ebp,esi + mov DWORD PTR 52[esp],eax + mov esi,ebx + rol esi,5 + lea eax,DWORD PTR 3395469782[ebp*1+eax] + add eax,esi + ; 20_39 78 + mov ebp,ebx + mov esi,DWORD PTR 56[esp] + ror ebx,2 + xor esi,DWORD PTR [esp] + xor ebp,ecx + xor esi,DWORD PTR 24[esp] + xor ebp,edx + xor esi,DWORD PTR 44[esp] + rol esi,1 + add ebp,edi + mov DWORD PTR 56[esp],esi + mov edi,eax + rol edi,5 + lea esi,DWORD PTR 3395469782[ebp*1+esi] + add esi,edi + ; 20_39 79 + mov ebp,eax + mov edi,DWORD PTR 60[esp] + ror eax,2 + xor edi,DWORD PTR 4[esp] + xor ebp,ebx + xor edi,DWORD PTR 28[esp] + xor ebp,ecx + xor edi,DWORD PTR 48[esp] + rol edi,1 + add ebp,edx + mov DWORD PTR 60[esp],edi + mov edx,esi + rol edx,5 + lea edi,DWORD PTR 3395469782[ebp*1+edi] + add edi,edx + mov ebp,DWORD PTR 84[esp] + mov edx,DWORD PTR 88[esp] + add edi,DWORD PTR [ebp] + add esi,DWORD PTR 4[ebp] + add eax,DWORD PTR 8[ebp] + add ebx,DWORD PTR 12[ebp] + add ecx,DWORD PTR 16[ebp] + mov DWORD PTR [ebp],edi + add edx,64 + mov DWORD PTR 4[ebp],esi + cmp edx,DWORD PTR 92[esp] + mov DWORD PTR 8[ebp],eax + mov edi,ecx + mov DWORD PTR 12[ebp],ebx + mov esi,edx + mov DWORD PTR 16[ebp],ecx + jb $L000loop + add esp,64 + pop edi + pop esi + pop ebx + pop ebp + ret +_sha1_block_data_order ENDP +DB 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115 +DB 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82 +DB 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 +DB 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.text$ ENDS +END diff --git a/deps/openssl/asm/x86-win32-masm/sha/sha256-586.asm b/deps/openssl/asm/x86-win32-masm/sha/sha256-586.asm new file mode 100644 index 0000000000..75b1dc8ac5 --- /dev/null +++ b/deps/openssl/asm/x86-win32-masm/sha/sha256-586.asm @@ -0,0 +1,271 @@ +TITLE sha512-586.asm +IF @Version LT 800 +ECHO MASM version 8.00 or later is strongly recommended. +ENDIF +.586 +.MODEL FLAT +OPTION DOTNAME +IF @Version LT 800 +.text$ SEGMENT PAGE 'CODE' +ELSE +.text$ SEGMENT ALIGN(64) 'CODE' +ENDIF +ALIGN 16 +_sha256_block_data_order PROC PUBLIC +$L_sha256_block_data_order_begin:: + push ebp + push ebx + push esi + push edi + mov esi,DWORD PTR 20[esp] + mov edi,DWORD PTR 24[esp] + mov eax,DWORD PTR 28[esp] + mov ebx,esp + call $L000pic_point +$L000pic_point: + pop ebp + lea ebp,DWORD PTR ($L001K256-$L000pic_point)[ebp] + sub esp,16 + and esp,-64 + shl eax,6 + add eax,edi + mov DWORD PTR [esp],esi + mov DWORD PTR 4[esp],edi + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],ebx +ALIGN 16 +$L002loop: + mov eax,DWORD PTR [edi] + mov ebx,DWORD PTR 4[edi] + mov ecx,DWORD PTR 8[edi] + mov edx,DWORD PTR 12[edi] + bswap eax + bswap ebx + bswap ecx + bswap edx + push eax + push ebx + push ecx + push edx + mov eax,DWORD PTR 16[edi] + mov ebx,DWORD PTR 20[edi] + mov ecx,DWORD PTR 24[edi] + mov edx,DWORD PTR 28[edi] + bswap eax + bswap ebx + bswap ecx + bswap edx + push eax + push ebx + push ecx + push edx + mov eax,DWORD PTR 32[edi] + mov ebx,DWORD PTR 36[edi] + mov ecx,DWORD PTR 40[edi] + mov edx,DWORD PTR 44[edi] + bswap eax + bswap ebx + bswap ecx + bswap edx + push eax + push ebx + push ecx + push edx + mov eax,DWORD PTR 48[edi] + mov ebx,DWORD PTR 52[edi] + mov ecx,DWORD PTR 56[edi] + mov edx,DWORD PTR 60[edi] + bswap eax + bswap ebx + bswap ecx + bswap edx + push eax + push ebx + push ecx + push edx + add edi,64 + sub esp,32 + mov DWORD PTR 100[esp],edi + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edi,DWORD PTR 12[esi] + mov DWORD PTR 4[esp],ebx + mov DWORD PTR 8[esp],ecx + mov DWORD PTR 12[esp],edi + mov edx,DWORD PTR 16[esi] + mov ebx,DWORD PTR 20[esi] + mov ecx,DWORD PTR 24[esi] + mov edi,DWORD PTR 28[esi] + mov DWORD PTR 20[esp],ebx + mov DWORD PTR 24[esp],ecx + mov DWORD PTR 28[esp],edi +ALIGN 16 +$L00300_15: + mov ebx,DWORD PTR 92[esp] + mov ecx,edx + ror ecx,6 + mov edi,edx + ror edi,11 + mov esi,DWORD PTR 20[esp] + xor ecx,edi + ror edi,14 + xor ecx,edi + mov edi,DWORD PTR 24[esp] + add ebx,ecx + mov DWORD PTR 16[esp],edx + xor esi,edi + mov ecx,eax + and esi,edx + mov edx,DWORD PTR 12[esp] + xor esi,edi + mov edi,eax + add ebx,esi + ror ecx,2 + add ebx,DWORD PTR 28[esp] + ror edi,13 + mov esi,DWORD PTR 4[esp] + xor ecx,edi + ror edi,9 + add edx,ebx + xor ecx,edi + mov edi,DWORD PTR 8[esp] + add ebx,ecx + mov DWORD PTR [esp],eax + mov ecx,eax + sub esp,4 + or eax,esi + and ecx,esi + and eax,edi + mov esi,DWORD PTR [ebp] + or eax,ecx + add ebp,4 + add eax,ebx + add edx,esi + add eax,esi + cmp esi,3248222580 + jne $L00300_15 + mov ebx,DWORD PTR 152[esp] +ALIGN 16 +$L00416_63: + mov esi,ebx + mov ecx,DWORD PTR 100[esp] + shr ebx,3 + ror esi,7 + xor ebx,esi + ror esi,11 + mov edi,ecx + xor ebx,esi + shr ecx,10 + mov esi,DWORD PTR 156[esp] + ror edi,17 + xor ecx,edi + ror edi,2 + add ebx,esi + xor edi,ecx + add ebx,edi + mov ecx,edx + add ebx,DWORD PTR 120[esp] + ror ecx,6 + mov edi,edx + ror edi,11 + mov esi,DWORD PTR 20[esp] + xor ecx,edi + ror edi,14 + mov DWORD PTR 92[esp],ebx + xor ecx,edi + mov edi,DWORD PTR 24[esp] + add ebx,ecx + mov DWORD PTR 16[esp],edx + xor esi,edi + mov ecx,eax + and esi,edx + mov edx,DWORD PTR 12[esp] + xor esi,edi + mov edi,eax + add ebx,esi + ror ecx,2 + add ebx,DWORD PTR 28[esp] + ror edi,13 + mov esi,DWORD PTR 4[esp] + xor ecx,edi + ror edi,9 + add edx,ebx + xor ecx,edi + mov edi,DWORD PTR 8[esp] + add ebx,ecx + mov DWORD PTR [esp],eax + mov ecx,eax + sub esp,4 + or eax,esi + and ecx,esi + and eax,edi + mov esi,DWORD PTR [ebp] + or eax,ecx + add ebp,4 + add eax,ebx + mov ebx,DWORD PTR 152[esp] + add edx,esi + add eax,esi + cmp esi,3329325298 + jne $L00416_63 + mov esi,DWORD PTR 352[esp] + mov ebx,DWORD PTR 4[esp] + mov ecx,DWORD PTR 8[esp] + mov edi,DWORD PTR 12[esp] + add eax,DWORD PTR [esi] + add ebx,DWORD PTR 4[esi] + add ecx,DWORD PTR 8[esi] + add edi,DWORD PTR 12[esi] + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],ebx + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edi + mov eax,DWORD PTR 20[esp] + mov ebx,DWORD PTR 24[esp] + mov ecx,DWORD PTR 28[esp] + mov edi,DWORD PTR 356[esp] + add edx,DWORD PTR 16[esi] + add eax,DWORD PTR 20[esi] + add ebx,DWORD PTR 24[esi] + add ecx,DWORD PTR 28[esi] + mov DWORD PTR 16[esi],edx + mov DWORD PTR 20[esi],eax + mov DWORD PTR 24[esi],ebx + mov DWORD PTR 28[esi],ecx + add esp,352 + sub ebp,256 + cmp edi,DWORD PTR 8[esp] + jb $L002loop + mov esp,DWORD PTR 12[esp] + pop edi + pop esi + pop ebx + pop ebp + ret +ALIGN 64 +$L001K256: +DD 1116352408,1899447441,3049323471,3921009573 +DD 961987163,1508970993,2453635748,2870763221 +DD 3624381080,310598401,607225278,1426881987 +DD 1925078388,2162078206,2614888103,3248222580 +DD 3835390401,4022224774,264347078,604807628 +DD 770255983,1249150122,1555081692,1996064986 +DD 2554220882,2821834349,2952996808,3210313671 +DD 3336571891,3584528711,113926993,338241895 +DD 666307205,773529912,1294757372,1396182291 +DD 1695183700,1986661051,2177026350,2456956037 +DD 2730485921,2820302411,3259730800,3345764771 +DD 3516065817,3600352804,4094571909,275423344 +DD 430227734,506948616,659060556,883997877 +DD 958139571,1322822218,1537002063,1747873779 +DD 1955562222,2024104815,2227730452,2361852424 +DD 2428436474,2756734187,3204031479,3329325298 +_sha256_block_data_order ENDP +DB 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97 +DB 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32 +DB 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 +DB 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 +DB 62,0 +.text$ ENDS +END diff --git a/deps/openssl/asm/x86-win32-masm/sha/sha512-586.asm b/deps/openssl/asm/x86-win32-masm/sha/sha512-586.asm new file mode 100644 index 0000000000..9f3249762b --- /dev/null +++ b/deps/openssl/asm/x86-win32-masm/sha/sha512-586.asm @@ -0,0 +1,573 @@ +TITLE sha512-586.asm +IF @Version LT 800 +ECHO MASM version 8.00 or later is strongly recommended. +ENDIF +.586 +.MODEL FLAT +OPTION DOTNAME +IF @Version LT 800 +.text$ SEGMENT PAGE 'CODE' +ELSE +.text$ SEGMENT ALIGN(64) 'CODE' +ENDIF +ALIGN 16 +_sha512_block_data_order PROC PUBLIC +$L_sha512_block_data_order_begin:: + push ebp + push ebx + push esi + push edi + mov esi,DWORD PTR 20[esp] + mov edi,DWORD PTR 24[esp] + mov eax,DWORD PTR 28[esp] + mov ebx,esp + call $L000pic_point +$L000pic_point: + pop ebp + lea ebp,DWORD PTR ($L001K512-$L000pic_point)[ebp] + sub esp,16 + and esp,-64 + shl eax,7 + add eax,edi + mov DWORD PTR [esp],esi + mov DWORD PTR 4[esp],edi + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],ebx +ALIGN 16 +$L002loop_x86: + mov eax,DWORD PTR [edi] + mov ebx,DWORD PTR 4[edi] + mov ecx,DWORD PTR 8[edi] + mov edx,DWORD PTR 12[edi] + bswap eax + bswap ebx + bswap ecx + bswap edx + push eax + push ebx + push ecx + push edx + mov eax,DWORD PTR 16[edi] + mov ebx,DWORD PTR 20[edi] + mov ecx,DWORD PTR 24[edi] + mov edx,DWORD PTR 28[edi] + bswap eax + bswap ebx + bswap ecx + bswap edx + push eax + push ebx + push ecx + push edx + mov eax,DWORD PTR 32[edi] + mov ebx,DWORD PTR 36[edi] + mov ecx,DWORD PTR 40[edi] + mov edx,DWORD PTR 44[edi] + bswap eax + bswap ebx + bswap ecx + bswap edx + push eax + push ebx + push ecx + push edx + mov eax,DWORD PTR 48[edi] + mov ebx,DWORD PTR 52[edi] + mov ecx,DWORD PTR 56[edi] + mov edx,DWORD PTR 60[edi] + bswap eax + bswap ebx + bswap ecx + bswap edx + push eax + push ebx + push ecx + push edx + mov eax,DWORD PTR 64[edi] + mov ebx,DWORD PTR 68[edi] + mov ecx,DWORD PTR 72[edi] + mov edx,DWORD PTR 76[edi] + bswap eax + bswap ebx + bswap ecx + bswap edx + push eax + push ebx + push ecx + push edx + mov eax,DWORD PTR 80[edi] + mov ebx,DWORD PTR 84[edi] + mov ecx,DWORD PTR 88[edi] + mov edx,DWORD PTR 92[edi] + bswap eax + bswap ebx + bswap ecx + bswap edx + push eax + push ebx + push ecx + push edx + mov eax,DWORD PTR 96[edi] + mov ebx,DWORD PTR 100[edi] + mov ecx,DWORD PTR 104[edi] + mov edx,DWORD PTR 108[edi] + bswap eax + bswap ebx + bswap ecx + bswap edx + push eax + push ebx + push ecx + push edx + mov eax,DWORD PTR 112[edi] + mov ebx,DWORD PTR 116[edi] + mov ecx,DWORD PTR 120[edi] + mov edx,DWORD PTR 124[edi] + bswap eax + bswap ebx + bswap ecx + bswap edx + push eax + push ebx + push ecx + push edx + add edi,128 + sub esp,72 + mov DWORD PTR 204[esp],edi + lea edi,DWORD PTR 8[esp] + mov ecx,16 +DD 2784229001 +ALIGN 16 +$L00300_15_x86: + mov ecx,DWORD PTR 40[esp] + mov edx,DWORD PTR 44[esp] + mov esi,ecx + shr ecx,9 + mov edi,edx + shr edx,9 + mov ebx,ecx + shl esi,14 + mov eax,edx + shl edi,14 + xor ebx,esi + shr ecx,5 + xor eax,edi + shr edx,5 + xor eax,ecx + shl esi,4 + xor ebx,edx + shl edi,4 + xor ebx,esi + shr ecx,4 + xor eax,edi + shr edx,4 + xor eax,ecx + shl esi,5 + xor ebx,edx + shl edi,5 + xor eax,esi + xor ebx,edi + mov ecx,DWORD PTR 48[esp] + mov edx,DWORD PTR 52[esp] + mov esi,DWORD PTR 56[esp] + mov edi,DWORD PTR 60[esp] + add eax,DWORD PTR 64[esp] + adc ebx,DWORD PTR 68[esp] + xor ecx,esi + xor edx,edi + and ecx,DWORD PTR 40[esp] + and edx,DWORD PTR 44[esp] + add eax,DWORD PTR 192[esp] + adc ebx,DWORD PTR 196[esp] + xor ecx,esi + xor edx,edi + mov esi,DWORD PTR [ebp] + mov edi,DWORD PTR 4[ebp] + add eax,ecx + adc ebx,edx + mov ecx,DWORD PTR 32[esp] + mov edx,DWORD PTR 36[esp] + add eax,esi + adc ebx,edi + mov DWORD PTR [esp],eax + mov DWORD PTR 4[esp],ebx + add eax,ecx + adc ebx,edx + mov ecx,DWORD PTR 8[esp] + mov edx,DWORD PTR 12[esp] + mov DWORD PTR 32[esp],eax + mov DWORD PTR 36[esp],ebx + mov esi,ecx + shr ecx,2 + mov edi,edx + shr edx,2 + mov ebx,ecx + shl esi,4 + mov eax,edx + shl edi,4 + xor ebx,esi + shr ecx,5 + xor eax,edi + shr edx,5 + xor ebx,ecx + shl esi,21 + xor eax,edx + shl edi,21 + xor eax,esi + shr ecx,21 + xor ebx,edi + shr edx,21 + xor eax,ecx + shl esi,5 + xor ebx,edx + shl edi,5 + xor eax,esi + xor ebx,edi + mov ecx,DWORD PTR 8[esp] + mov edx,DWORD PTR 12[esp] + mov esi,DWORD PTR 16[esp] + mov edi,DWORD PTR 20[esp] + add eax,DWORD PTR [esp] + adc ebx,DWORD PTR 4[esp] + or ecx,esi + or edx,edi + and ecx,DWORD PTR 24[esp] + and edx,DWORD PTR 28[esp] + and esi,DWORD PTR 8[esp] + and edi,DWORD PTR 12[esp] + or ecx,esi + or edx,edi + add eax,ecx + adc ebx,edx + mov DWORD PTR [esp],eax + mov DWORD PTR 4[esp],ebx + mov dl,BYTE PTR [ebp] + sub esp,8 + lea ebp,DWORD PTR 8[ebp] + cmp dl,148 + jne $L00300_15_x86 +ALIGN 16 +$L00416_79_x86: + mov ecx,DWORD PTR 312[esp] + mov edx,DWORD PTR 316[esp] + mov esi,ecx + shr ecx,1 + mov edi,edx + shr edx,1 + mov eax,ecx + shl esi,24 + mov ebx,edx + shl edi,24 + xor ebx,esi + shr ecx,6 + xor eax,edi + shr edx,6 + xor eax,ecx + shl esi,7 + xor ebx,edx + shl edi,1 + xor ebx,esi + shr ecx,1 + xor eax,edi + shr edx,1 + xor eax,ecx + shl edi,6 + xor ebx,edx + xor eax,edi + mov DWORD PTR [esp],eax + mov DWORD PTR 4[esp],ebx + mov ecx,DWORD PTR 208[esp] + mov edx,DWORD PTR 212[esp] + mov esi,ecx + shr ecx,6 + mov edi,edx + shr edx,6 + mov eax,ecx + shl esi,3 + mov ebx,edx + shl edi,3 + xor eax,esi + shr ecx,13 + xor ebx,edi + shr edx,13 + xor eax,ecx + shl esi,10 + xor ebx,edx + shl edi,10 + xor ebx,esi + shr ecx,10 + xor eax,edi + shr edx,10 + xor ebx,ecx + shl edi,13 + xor eax,edx + xor eax,edi + mov ecx,DWORD PTR 320[esp] + mov edx,DWORD PTR 324[esp] + add eax,DWORD PTR [esp] + adc ebx,DWORD PTR 4[esp] + mov esi,DWORD PTR 248[esp] + mov edi,DWORD PTR 252[esp] + add eax,ecx + adc ebx,edx + add eax,esi + adc ebx,edi + mov DWORD PTR 192[esp],eax + mov DWORD PTR 196[esp],ebx + mov ecx,DWORD PTR 40[esp] + mov edx,DWORD PTR 44[esp] + mov esi,ecx + shr ecx,9 + mov edi,edx + shr edx,9 + mov ebx,ecx + shl esi,14 + mov eax,edx + shl edi,14 + xor ebx,esi + shr ecx,5 + xor eax,edi + shr edx,5 + xor eax,ecx + shl esi,4 + xor ebx,edx + shl edi,4 + xor ebx,esi + shr ecx,4 + xor eax,edi + shr edx,4 + xor eax,ecx + shl esi,5 + xor ebx,edx + shl edi,5 + xor eax,esi + xor ebx,edi + mov ecx,DWORD PTR 48[esp] + mov edx,DWORD PTR 52[esp] + mov esi,DWORD PTR 56[esp] + mov edi,DWORD PTR 60[esp] + add eax,DWORD PTR 64[esp] + adc ebx,DWORD PTR 68[esp] + xor ecx,esi + xor edx,edi + and ecx,DWORD PTR 40[esp] + and edx,DWORD PTR 44[esp] + add eax,DWORD PTR 192[esp] + adc ebx,DWORD PTR 196[esp] + xor ecx,esi + xor edx,edi + mov esi,DWORD PTR [ebp] + mov edi,DWORD PTR 4[ebp] + add eax,ecx + adc ebx,edx + mov ecx,DWORD PTR 32[esp] + mov edx,DWORD PTR 36[esp] + add eax,esi + adc ebx,edi + mov DWORD PTR [esp],eax + mov DWORD PTR 4[esp],ebx + add eax,ecx + adc ebx,edx + mov ecx,DWORD PTR 8[esp] + mov edx,DWORD PTR 12[esp] + mov DWORD PTR 32[esp],eax + mov DWORD PTR 36[esp],ebx + mov esi,ecx + shr ecx,2 + mov edi,edx + shr edx,2 + mov ebx,ecx + shl esi,4 + mov eax,edx + shl edi,4 + xor ebx,esi + shr ecx,5 + xor eax,edi + shr edx,5 + xor ebx,ecx + shl esi,21 + xor eax,edx + shl edi,21 + xor eax,esi + shr ecx,21 + xor ebx,edi + shr edx,21 + xor eax,ecx + shl esi,5 + xor ebx,edx + shl edi,5 + xor eax,esi + xor ebx,edi + mov ecx,DWORD PTR 8[esp] + mov edx,DWORD PTR 12[esp] + mov esi,DWORD PTR 16[esp] + mov edi,DWORD PTR 20[esp] + add eax,DWORD PTR [esp] + adc ebx,DWORD PTR 4[esp] + or ecx,esi + or edx,edi + and ecx,DWORD PTR 24[esp] + and edx,DWORD PTR 28[esp] + and esi,DWORD PTR 8[esp] + and edi,DWORD PTR 12[esp] + or ecx,esi + or edx,edi + add eax,ecx + adc ebx,edx + mov DWORD PTR [esp],eax + mov DWORD PTR 4[esp],ebx + mov dl,BYTE PTR [ebp] + sub esp,8 + lea ebp,DWORD PTR 8[ebp] + cmp dl,23 + jne $L00416_79_x86 + mov esi,DWORD PTR 840[esp] + mov edi,DWORD PTR 844[esp] + mov eax,DWORD PTR [esi] + mov ebx,DWORD PTR 4[esi] + mov ecx,DWORD PTR 8[esi] + mov edx,DWORD PTR 12[esi] + add eax,DWORD PTR 8[esp] + adc ebx,DWORD PTR 12[esp] + mov DWORD PTR [esi],eax + mov DWORD PTR 4[esi],ebx + add ecx,DWORD PTR 16[esp] + adc edx,DWORD PTR 20[esp] + mov DWORD PTR 8[esi],ecx + mov DWORD PTR 12[esi],edx + mov eax,DWORD PTR 16[esi] + mov ebx,DWORD PTR 20[esi] + mov ecx,DWORD PTR 24[esi] + mov edx,DWORD PTR 28[esi] + add eax,DWORD PTR 24[esp] + adc ebx,DWORD PTR 28[esp] + mov DWORD PTR 16[esi],eax + mov DWORD PTR 20[esi],ebx + add ecx,DWORD PTR 32[esp] + adc edx,DWORD PTR 36[esp] + mov DWORD PTR 24[esi],ecx + mov DWORD PTR 28[esi],edx + mov eax,DWORD PTR 32[esi] + mov ebx,DWORD PTR 36[esi] + mov ecx,DWORD PTR 40[esi] + mov edx,DWORD PTR 44[esi] + add eax,DWORD PTR 40[esp] + adc ebx,DWORD PTR 44[esp] + mov DWORD PTR 32[esi],eax + mov DWORD PTR 36[esi],ebx + add ecx,DWORD PTR 48[esp] + adc edx,DWORD PTR 52[esp] + mov DWORD PTR 40[esi],ecx + mov DWORD PTR 44[esi],edx + mov eax,DWORD PTR 48[esi] + mov ebx,DWORD PTR 52[esi] + mov ecx,DWORD PTR 56[esi] + mov edx,DWORD PTR 60[esi] + add eax,DWORD PTR 56[esp] + adc ebx,DWORD PTR 60[esp] + mov DWORD PTR 48[esi],eax + mov DWORD PTR 52[esi],ebx + add ecx,DWORD PTR 64[esp] + adc edx,DWORD PTR 68[esp] + mov DWORD PTR 56[esi],ecx + mov DWORD PTR 60[esi],edx + add esp,840 + sub ebp,640 + cmp edi,DWORD PTR 8[esp] + jb $L002loop_x86 + mov esp,DWORD PTR 12[esp] + pop edi + pop esi + pop ebx + pop ebp + ret +ALIGN 64 +$L001K512: +DD 3609767458,1116352408 +DD 602891725,1899447441 +DD 3964484399,3049323471 +DD 2173295548,3921009573 +DD 4081628472,961987163 +DD 3053834265,1508970993 +DD 2937671579,2453635748 +DD 3664609560,2870763221 +DD 2734883394,3624381080 +DD 1164996542,310598401 +DD 1323610764,607225278 +DD 3590304994,1426881987 +DD 4068182383,1925078388 +DD 991336113,2162078206 +DD 633803317,2614888103 +DD 3479774868,3248222580 +DD 2666613458,3835390401 +DD 944711139,4022224774 +DD 2341262773,264347078 +DD 2007800933,604807628 +DD 1495990901,770255983 +DD 1856431235,1249150122 +DD 3175218132,1555081692 +DD 2198950837,1996064986 +DD 3999719339,2554220882 +DD 766784016,2821834349 +DD 2566594879,2952996808 +DD 3203337956,3210313671 +DD 1034457026,3336571891 +DD 2466948901,3584528711 +DD 3758326383,113926993 +DD 168717936,338241895 +DD 1188179964,666307205 +DD 1546045734,773529912 +DD 1522805485,1294757372 +DD 2643833823,1396182291 +DD 2343527390,1695183700 +DD 1014477480,1986661051 +DD 1206759142,2177026350 +DD 344077627,2456956037 +DD 1290863460,2730485921 +DD 3158454273,2820302411 +DD 3505952657,3259730800 +DD 106217008,3345764771 +DD 3606008344,3516065817 +DD 1432725776,3600352804 +DD 1467031594,4094571909 +DD 851169720,275423344 +DD 3100823752,430227734 +DD 1363258195,506948616 +DD 3750685593,659060556 +DD 3785050280,883997877 +DD 3318307427,958139571 +DD 3812723403,1322822218 +DD 2003034995,1537002063 +DD 3602036899,1747873779 +DD 1575990012,1955562222 +DD 1125592928,2024104815 +DD 2716904306,2227730452 +DD 442776044,2361852424 +DD 593698344,2428436474 +DD 3733110249,2756734187 +DD 2999351573,3204031479 +DD 3815920427,3329325298 +DD 3928383900,3391569614 +DD 566280711,3515267271 +DD 3454069534,3940187606 +DD 4000239992,4118630271 +DD 1914138554,116418474 +DD 2731055270,174292421 +DD 3203993006,289380356 +DD 320620315,460393269 +DD 587496836,685471733 +DD 1086792851,852142971 +DD 365543100,1017036298 +DD 2618297676,1126000580 +DD 3409855158,1288033470 +DD 4234509866,1501505948 +DD 987167468,1607167915 +DD 1246189591,1816402316 +_sha512_block_data_order ENDP +DB 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97 +DB 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32 +DB 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 +DB 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 +DB 62,0 +.text$ ENDS +END diff --git a/deps/openssl/asm/x86-win32-masm/whrlpool/wp-mmx.asm b/deps/openssl/asm/x86-win32-masm/whrlpool/wp-mmx.asm new file mode 100644 index 0000000000..9fa36662ce --- /dev/null +++ b/deps/openssl/asm/x86-win32-masm/whrlpool/wp-mmx.asm @@ -0,0 +1,1122 @@ +TITLE wp-mmx.asm +IF @Version LT 800 +ECHO MASM version 8.00 or later is strongly recommended. +ENDIF +.686 +.XMM +IF @Version LT 800 +XMMWORD STRUCT 16 +DQ 2 dup (?) +XMMWORD ENDS +ENDIF + +.MODEL FLAT +OPTION DOTNAME +IF @Version LT 800 +.text$ SEGMENT PAGE 'CODE' +ELSE +.text$ SEGMENT ALIGN(64) 'CODE' +ENDIF +ALIGN 16 +_whirlpool_block_mmx PROC PUBLIC +$L_whirlpool_block_mmx_begin:: + push ebp + push ebx + push esi + push edi + mov esi,DWORD PTR 20[esp] + mov edi,DWORD PTR 24[esp] + mov ebp,DWORD PTR 28[esp] + mov eax,esp + sub esp,148 + and esp,-64 + lea ebx,DWORD PTR 128[esp] + mov DWORD PTR [ebx],esi + mov DWORD PTR 4[ebx],edi + mov DWORD PTR 8[ebx],ebp + mov DWORD PTR 16[ebx],eax + call $L000pic_point +$L000pic_point: + pop ebp + lea ebp,DWORD PTR ($L001table-$L000pic_point)[ebp] + xor ecx,ecx + xor edx,edx + movq mm0,QWORD PTR [esi] + movq mm1,QWORD PTR 8[esi] + movq mm2,QWORD PTR 16[esi] + movq mm3,QWORD PTR 24[esi] + movq mm4,QWORD PTR 32[esi] + movq mm5,QWORD PTR 40[esi] + movq mm6,QWORD PTR 48[esi] + movq mm7,QWORD PTR 56[esi] +$L002outerloop: + movq QWORD PTR [esp],mm0 + movq QWORD PTR 8[esp],mm1 + movq QWORD PTR 16[esp],mm2 + movq QWORD PTR 24[esp],mm3 + movq QWORD PTR 32[esp],mm4 + movq QWORD PTR 40[esp],mm5 + movq QWORD PTR 48[esp],mm6 + movq QWORD PTR 56[esp],mm7 + pxor mm0,QWORD PTR [edi] + pxor mm1,QWORD PTR 8[edi] + pxor mm2,QWORD PTR 16[edi] + pxor mm3,QWORD PTR 24[edi] + pxor mm4,QWORD PTR 32[edi] + pxor mm5,QWORD PTR 40[edi] + pxor mm6,QWORD PTR 48[edi] + pxor mm7,QWORD PTR 56[edi] + movq QWORD PTR 64[esp],mm0 + movq QWORD PTR 72[esp],mm1 + movq QWORD PTR 80[esp],mm2 + movq QWORD PTR 88[esp],mm3 + movq QWORD PTR 96[esp],mm4 + movq QWORD PTR 104[esp],mm5 + movq QWORD PTR 112[esp],mm6 + movq QWORD PTR 120[esp],mm7 + xor esi,esi + mov DWORD PTR 12[ebx],esi +ALIGN 16 +$L003round: + movq mm0,QWORD PTR 4096[esi*8+ebp] + mov eax,DWORD PTR [esp] + mov ebx,DWORD PTR 4[esp] + mov cl,al + mov dl,ah + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr eax,16 + pxor mm0,QWORD PTR [esi*8+ebp] + movq mm1,QWORD PTR 7[edi*8+ebp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR 8[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + movq mm2,QWORD PTR 6[esi*8+ebp] + movq mm3,QWORD PTR 5[edi*8+ebp] + mov cl,bl + mov dl,bh + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr ebx,16 + movq mm4,QWORD PTR 4[esi*8+ebp] + movq mm5,QWORD PTR 3[edi*8+ebp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR 12[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + movq mm6,QWORD PTR 2[esi*8+ebp] + movq mm7,QWORD PTR 1[edi*8+ebp] + mov cl,al + mov dl,ah + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr eax,16 + pxor mm1,QWORD PTR [esi*8+ebp] + pxor mm2,QWORD PTR 7[edi*8+ebp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR 16[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm3,QWORD PTR 6[esi*8+ebp] + pxor mm4,QWORD PTR 5[edi*8+ebp] + mov cl,bl + mov dl,bh + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr ebx,16 + pxor mm5,QWORD PTR 4[esi*8+ebp] + pxor mm6,QWORD PTR 3[edi*8+ebp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR 20[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm7,QWORD PTR 2[esi*8+ebp] + pxor mm0,QWORD PTR 1[edi*8+ebp] + mov cl,al + mov dl,ah + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr eax,16 + pxor mm2,QWORD PTR [esi*8+ebp] + pxor mm3,QWORD PTR 7[edi*8+ebp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR 24[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm4,QWORD PTR 6[esi*8+ebp] + pxor mm5,QWORD PTR 5[edi*8+ebp] + mov cl,bl + mov dl,bh + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr ebx,16 + pxor mm6,QWORD PTR 4[esi*8+ebp] + pxor mm7,QWORD PTR 3[edi*8+ebp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR 28[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm0,QWORD PTR 2[esi*8+ebp] + pxor mm1,QWORD PTR 1[edi*8+ebp] + mov cl,al + mov dl,ah + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr eax,16 + pxor mm3,QWORD PTR [esi*8+ebp] + pxor mm4,QWORD PTR 7[edi*8+ebp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR 32[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm5,QWORD PTR 6[esi*8+ebp] + pxor mm6,QWORD PTR 5[edi*8+ebp] + mov cl,bl + mov dl,bh + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr ebx,16 + pxor mm7,QWORD PTR 4[esi*8+ebp] + pxor mm0,QWORD PTR 3[edi*8+ebp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR 36[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm1,QWORD PTR 2[esi*8+ebp] + pxor mm2,QWORD PTR 1[edi*8+ebp] + mov cl,al + mov dl,ah + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr eax,16 + pxor mm4,QWORD PTR [esi*8+ebp] + pxor mm5,QWORD PTR 7[edi*8+ebp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR 40[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm6,QWORD PTR 6[esi*8+ebp] + pxor mm7,QWORD PTR 5[edi*8+ebp] + mov cl,bl + mov dl,bh + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr ebx,16 + pxor mm0,QWORD PTR 4[esi*8+ebp] + pxor mm1,QWORD PTR 3[edi*8+ebp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR 44[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm2,QWORD PTR 2[esi*8+ebp] + pxor mm3,QWORD PTR 1[edi*8+ebp] + mov cl,al + mov dl,ah + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr eax,16 + pxor mm5,QWORD PTR [esi*8+ebp] + pxor mm6,QWORD PTR 7[edi*8+ebp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR 48[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm7,QWORD PTR 6[esi*8+ebp] + pxor mm0,QWORD PTR 5[edi*8+ebp] + mov cl,bl + mov dl,bh + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr ebx,16 + pxor mm1,QWORD PTR 4[esi*8+ebp] + pxor mm2,QWORD PTR 3[edi*8+ebp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR 52[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm3,QWORD PTR 2[esi*8+ebp] + pxor mm4,QWORD PTR 1[edi*8+ebp] + mov cl,al + mov dl,ah + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr eax,16 + pxor mm6,QWORD PTR [esi*8+ebp] + pxor mm7,QWORD PTR 7[edi*8+ebp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR 56[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm0,QWORD PTR 6[esi*8+ebp] + pxor mm1,QWORD PTR 5[edi*8+ebp] + mov cl,bl + mov dl,bh + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr ebx,16 + pxor mm2,QWORD PTR 4[esi*8+ebp] + pxor mm3,QWORD PTR 3[edi*8+ebp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR 60[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm4,QWORD PTR 2[esi*8+ebp] + pxor mm5,QWORD PTR 1[edi*8+ebp] + mov cl,al + mov dl,ah + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr eax,16 + pxor mm7,QWORD PTR [esi*8+ebp] + pxor mm0,QWORD PTR 7[edi*8+ebp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR 64[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm1,QWORD PTR 6[esi*8+ebp] + pxor mm2,QWORD PTR 5[edi*8+ebp] + mov cl,bl + mov dl,bh + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr ebx,16 + pxor mm3,QWORD PTR 4[esi*8+ebp] + pxor mm4,QWORD PTR 3[edi*8+ebp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR 68[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm5,QWORD PTR 2[esi*8+ebp] + pxor mm6,QWORD PTR 1[edi*8+ebp] + movq QWORD PTR [esp],mm0 + movq QWORD PTR 8[esp],mm1 + movq QWORD PTR 16[esp],mm2 + movq QWORD PTR 24[esp],mm3 + movq QWORD PTR 32[esp],mm4 + movq QWORD PTR 40[esp],mm5 + movq QWORD PTR 48[esp],mm6 + movq QWORD PTR 56[esp],mm7 + mov cl,al + mov dl,ah + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr eax,16 + pxor mm0,QWORD PTR [esi*8+ebp] + pxor mm1,QWORD PTR 7[edi*8+ebp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR 72[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm2,QWORD PTR 6[esi*8+ebp] + pxor mm3,QWORD PTR 5[edi*8+ebp] + mov cl,bl + mov dl,bh + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr ebx,16 + pxor mm4,QWORD PTR 4[esi*8+ebp] + pxor mm5,QWORD PTR 3[edi*8+ebp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR 76[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm6,QWORD PTR 2[esi*8+ebp] + pxor mm7,QWORD PTR 1[edi*8+ebp] + mov cl,al + mov dl,ah + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr eax,16 + pxor mm1,QWORD PTR [esi*8+ebp] + pxor mm2,QWORD PTR 7[edi*8+ebp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR 80[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm3,QWORD PTR 6[esi*8+ebp] + pxor mm4,QWORD PTR 5[edi*8+ebp] + mov cl,bl + mov dl,bh + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr ebx,16 + pxor mm5,QWORD PTR 4[esi*8+ebp] + pxor mm6,QWORD PTR 3[edi*8+ebp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR 84[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm7,QWORD PTR 2[esi*8+ebp] + pxor mm0,QWORD PTR 1[edi*8+ebp] + mov cl,al + mov dl,ah + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr eax,16 + pxor mm2,QWORD PTR [esi*8+ebp] + pxor mm3,QWORD PTR 7[edi*8+ebp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR 88[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm4,QWORD PTR 6[esi*8+ebp] + pxor mm5,QWORD PTR 5[edi*8+ebp] + mov cl,bl + mov dl,bh + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr ebx,16 + pxor mm6,QWORD PTR 4[esi*8+ebp] + pxor mm7,QWORD PTR 3[edi*8+ebp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR 92[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm0,QWORD PTR 2[esi*8+ebp] + pxor mm1,QWORD PTR 1[edi*8+ebp] + mov cl,al + mov dl,ah + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr eax,16 + pxor mm3,QWORD PTR [esi*8+ebp] + pxor mm4,QWORD PTR 7[edi*8+ebp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR 96[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm5,QWORD PTR 6[esi*8+ebp] + pxor mm6,QWORD PTR 5[edi*8+ebp] + mov cl,bl + mov dl,bh + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr ebx,16 + pxor mm7,QWORD PTR 4[esi*8+ebp] + pxor mm0,QWORD PTR 3[edi*8+ebp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR 100[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm1,QWORD PTR 2[esi*8+ebp] + pxor mm2,QWORD PTR 1[edi*8+ebp] + mov cl,al + mov dl,ah + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr eax,16 + pxor mm4,QWORD PTR [esi*8+ebp] + pxor mm5,QWORD PTR 7[edi*8+ebp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR 104[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm6,QWORD PTR 6[esi*8+ebp] + pxor mm7,QWORD PTR 5[edi*8+ebp] + mov cl,bl + mov dl,bh + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr ebx,16 + pxor mm0,QWORD PTR 4[esi*8+ebp] + pxor mm1,QWORD PTR 3[edi*8+ebp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR 108[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm2,QWORD PTR 2[esi*8+ebp] + pxor mm3,QWORD PTR 1[edi*8+ebp] + mov cl,al + mov dl,ah + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr eax,16 + pxor mm5,QWORD PTR [esi*8+ebp] + pxor mm6,QWORD PTR 7[edi*8+ebp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR 112[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm7,QWORD PTR 6[esi*8+ebp] + pxor mm0,QWORD PTR 5[edi*8+ebp] + mov cl,bl + mov dl,bh + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr ebx,16 + pxor mm1,QWORD PTR 4[esi*8+ebp] + pxor mm2,QWORD PTR 3[edi*8+ebp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR 116[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm3,QWORD PTR 2[esi*8+ebp] + pxor mm4,QWORD PTR 1[edi*8+ebp] + mov cl,al + mov dl,ah + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr eax,16 + pxor mm6,QWORD PTR [esi*8+ebp] + pxor mm7,QWORD PTR 7[edi*8+ebp] + mov cl,al + mov dl,ah + mov eax,DWORD PTR 120[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm0,QWORD PTR 6[esi*8+ebp] + pxor mm1,QWORD PTR 5[edi*8+ebp] + mov cl,bl + mov dl,bh + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr ebx,16 + pxor mm2,QWORD PTR 4[esi*8+ebp] + pxor mm3,QWORD PTR 3[edi*8+ebp] + mov cl,bl + mov dl,bh + mov ebx,DWORD PTR 124[esp] + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm4,QWORD PTR 2[esi*8+ebp] + pxor mm5,QWORD PTR 1[edi*8+ebp] + mov cl,al + mov dl,ah + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr eax,16 + pxor mm7,QWORD PTR [esi*8+ebp] + pxor mm0,QWORD PTR 7[edi*8+ebp] + mov cl,al + mov dl,ah + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm1,QWORD PTR 6[esi*8+ebp] + pxor mm2,QWORD PTR 5[edi*8+ebp] + mov cl,bl + mov dl,bh + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + shr ebx,16 + pxor mm3,QWORD PTR 4[esi*8+ebp] + pxor mm4,QWORD PTR 3[edi*8+ebp] + mov cl,bl + mov dl,bh + lea esi,DWORD PTR [ecx*1+ecx] + lea edi,DWORD PTR [edx*1+edx] + pxor mm5,QWORD PTR 2[esi*8+ebp] + pxor mm6,QWORD PTR 1[edi*8+ebp] + lea ebx,DWORD PTR 128[esp] + mov esi,DWORD PTR 12[ebx] + add esi,1 + cmp esi,10 + je $L004roundsdone + mov DWORD PTR 12[ebx],esi + movq QWORD PTR 64[esp],mm0 + movq QWORD PTR 72[esp],mm1 + movq QWORD PTR 80[esp],mm2 + movq QWORD PTR 88[esp],mm3 + movq QWORD PTR 96[esp],mm4 + movq QWORD PTR 104[esp],mm5 + movq QWORD PTR 112[esp],mm6 + movq QWORD PTR 120[esp],mm7 + jmp $L003round +ALIGN 16 +$L004roundsdone: + mov esi,DWORD PTR [ebx] + mov edi,DWORD PTR 4[ebx] + mov eax,DWORD PTR 8[ebx] + pxor mm0,QWORD PTR [edi] + pxor mm1,QWORD PTR 8[edi] + pxor mm2,QWORD PTR 16[edi] + pxor mm3,QWORD PTR 24[edi] + pxor mm4,QWORD PTR 32[edi] + pxor mm5,QWORD PTR 40[edi] + pxor mm6,QWORD PTR 48[edi] + pxor mm7,QWORD PTR 56[edi] + pxor mm0,QWORD PTR [esi] + pxor mm1,QWORD PTR 8[esi] + pxor mm2,QWORD PTR 16[esi] + pxor mm3,QWORD PTR 24[esi] + pxor mm4,QWORD PTR 32[esi] + pxor mm5,QWORD PTR 40[esi] + pxor mm6,QWORD PTR 48[esi] + pxor mm7,QWORD PTR 56[esi] + movq QWORD PTR [esi],mm0 + movq QWORD PTR 8[esi],mm1 + movq QWORD PTR 16[esi],mm2 + movq QWORD PTR 24[esi],mm3 + movq QWORD PTR 32[esi],mm4 + movq QWORD PTR 40[esi],mm5 + movq QWORD PTR 48[esi],mm6 + movq QWORD PTR 56[esi],mm7 + lea edi,DWORD PTR 64[edi] + sub eax,1 + jz $L005alldone + mov DWORD PTR 4[ebx],edi + mov DWORD PTR 8[ebx],eax + jmp $L002outerloop +$L005alldone: + emms + mov esp,DWORD PTR 16[ebx] + pop edi + pop esi + pop ebx + pop ebp + ret +ALIGN 64 +$L001table: +DB 24,24,96,24,192,120,48,216 +DB 24,24,96,24,192,120,48,216 +DB 35,35,140,35,5,175,70,38 +DB 35,35,140,35,5,175,70,38 +DB 198,198,63,198,126,249,145,184 +DB 198,198,63,198,126,249,145,184 +DB 232,232,135,232,19,111,205,251 +DB 232,232,135,232,19,111,205,251 +DB 135,135,38,135,76,161,19,203 +DB 135,135,38,135,76,161,19,203 +DB 184,184,218,184,169,98,109,17 +DB 184,184,218,184,169,98,109,17 +DB 1,1,4,1,8,5,2,9 +DB 1,1,4,1,8,5,2,9 +DB 79,79,33,79,66,110,158,13 +DB 79,79,33,79,66,110,158,13 +DB 54,54,216,54,173,238,108,155 +DB 54,54,216,54,173,238,108,155 +DB 166,166,162,166,89,4,81,255 +DB 166,166,162,166,89,4,81,255 +DB 210,210,111,210,222,189,185,12 +DB 210,210,111,210,222,189,185,12 +DB 245,245,243,245,251,6,247,14 +DB 245,245,243,245,251,6,247,14 +DB 121,121,249,121,239,128,242,150 +DB 121,121,249,121,239,128,242,150 +DB 111,111,161,111,95,206,222,48 +DB 111,111,161,111,95,206,222,48 +DB 145,145,126,145,252,239,63,109 +DB 145,145,126,145,252,239,63,109 +DB 82,82,85,82,170,7,164,248 +DB 82,82,85,82,170,7,164,248 +DB 96,96,157,96,39,253,192,71 +DB 96,96,157,96,39,253,192,71 +DB 188,188,202,188,137,118,101,53 +DB 188,188,202,188,137,118,101,53 +DB 155,155,86,155,172,205,43,55 +DB 155,155,86,155,172,205,43,55 +DB 142,142,2,142,4,140,1,138 +DB 142,142,2,142,4,140,1,138 +DB 163,163,182,163,113,21,91,210 +DB 163,163,182,163,113,21,91,210 +DB 12,12,48,12,96,60,24,108 +DB 12,12,48,12,96,60,24,108 +DB 123,123,241,123,255,138,246,132 +DB 123,123,241,123,255,138,246,132 +DB 53,53,212,53,181,225,106,128 +DB 53,53,212,53,181,225,106,128 +DB 29,29,116,29,232,105,58,245 +DB 29,29,116,29,232,105,58,245 +DB 224,224,167,224,83,71,221,179 +DB 224,224,167,224,83,71,221,179 +DB 215,215,123,215,246,172,179,33 +DB 215,215,123,215,246,172,179,33 +DB 194,194,47,194,94,237,153,156 +DB 194,194,47,194,94,237,153,156 +DB 46,46,184,46,109,150,92,67 +DB 46,46,184,46,109,150,92,67 +DB 75,75,49,75,98,122,150,41 +DB 75,75,49,75,98,122,150,41 +DB 254,254,223,254,163,33,225,93 +DB 254,254,223,254,163,33,225,93 +DB 87,87,65,87,130,22,174,213 +DB 87,87,65,87,130,22,174,213 +DB 21,21,84,21,168,65,42,189 +DB 21,21,84,21,168,65,42,189 +DB 119,119,193,119,159,182,238,232 +DB 119,119,193,119,159,182,238,232 +DB 55,55,220,55,165,235,110,146 +DB 55,55,220,55,165,235,110,146 +DB 229,229,179,229,123,86,215,158 +DB 229,229,179,229,123,86,215,158 +DB 159,159,70,159,140,217,35,19 +DB 159,159,70,159,140,217,35,19 +DB 240,240,231,240,211,23,253,35 +DB 240,240,231,240,211,23,253,35 +DB 74,74,53,74,106,127,148,32 +DB 74,74,53,74,106,127,148,32 +DB 218,218,79,218,158,149,169,68 +DB 218,218,79,218,158,149,169,68 +DB 88,88,125,88,250,37,176,162 +DB 88,88,125,88,250,37,176,162 +DB 201,201,3,201,6,202,143,207 +DB 201,201,3,201,6,202,143,207 +DB 41,41,164,41,85,141,82,124 +DB 41,41,164,41,85,141,82,124 +DB 10,10,40,10,80,34,20,90 +DB 10,10,40,10,80,34,20,90 +DB 177,177,254,177,225,79,127,80 +DB 177,177,254,177,225,79,127,80 +DB 160,160,186,160,105,26,93,201 +DB 160,160,186,160,105,26,93,201 +DB 107,107,177,107,127,218,214,20 +DB 107,107,177,107,127,218,214,20 +DB 133,133,46,133,92,171,23,217 +DB 133,133,46,133,92,171,23,217 +DB 189,189,206,189,129,115,103,60 +DB 189,189,206,189,129,115,103,60 +DB 93,93,105,93,210,52,186,143 +DB 93,93,105,93,210,52,186,143 +DB 16,16,64,16,128,80,32,144 +DB 16,16,64,16,128,80,32,144 +DB 244,244,247,244,243,3,245,7 +DB 244,244,247,244,243,3,245,7 +DB 203,203,11,203,22,192,139,221 +DB 203,203,11,203,22,192,139,221 +DB 62,62,248,62,237,198,124,211 +DB 62,62,248,62,237,198,124,211 +DB 5,5,20,5,40,17,10,45 +DB 5,5,20,5,40,17,10,45 +DB 103,103,129,103,31,230,206,120 +DB 103,103,129,103,31,230,206,120 +DB 228,228,183,228,115,83,213,151 +DB 228,228,183,228,115,83,213,151 +DB 39,39,156,39,37,187,78,2 +DB 39,39,156,39,37,187,78,2 +DB 65,65,25,65,50,88,130,115 +DB 65,65,25,65,50,88,130,115 +DB 139,139,22,139,44,157,11,167 +DB 139,139,22,139,44,157,11,167 +DB 167,167,166,167,81,1,83,246 +DB 167,167,166,167,81,1,83,246 +DB 125,125,233,125,207,148,250,178 +DB 125,125,233,125,207,148,250,178 +DB 149,149,110,149,220,251,55,73 +DB 149,149,110,149,220,251,55,73 +DB 216,216,71,216,142,159,173,86 +DB 216,216,71,216,142,159,173,86 +DB 251,251,203,251,139,48,235,112 +DB 251,251,203,251,139,48,235,112 +DB 238,238,159,238,35,113,193,205 +DB 238,238,159,238,35,113,193,205 +DB 124,124,237,124,199,145,248,187 +DB 124,124,237,124,199,145,248,187 +DB 102,102,133,102,23,227,204,113 +DB 102,102,133,102,23,227,204,113 +DB 221,221,83,221,166,142,167,123 +DB 221,221,83,221,166,142,167,123 +DB 23,23,92,23,184,75,46,175 +DB 23,23,92,23,184,75,46,175 +DB 71,71,1,71,2,70,142,69 +DB 71,71,1,71,2,70,142,69 +DB 158,158,66,158,132,220,33,26 +DB 158,158,66,158,132,220,33,26 +DB 202,202,15,202,30,197,137,212 +DB 202,202,15,202,30,197,137,212 +DB 45,45,180,45,117,153,90,88 +DB 45,45,180,45,117,153,90,88 +DB 191,191,198,191,145,121,99,46 +DB 191,191,198,191,145,121,99,46 +DB 7,7,28,7,56,27,14,63 +DB 7,7,28,7,56,27,14,63 +DB 173,173,142,173,1,35,71,172 +DB 173,173,142,173,1,35,71,172 +DB 90,90,117,90,234,47,180,176 +DB 90,90,117,90,234,47,180,176 +DB 131,131,54,131,108,181,27,239 +DB 131,131,54,131,108,181,27,239 +DB 51,51,204,51,133,255,102,182 +DB 51,51,204,51,133,255,102,182 +DB 99,99,145,99,63,242,198,92 +DB 99,99,145,99,63,242,198,92 +DB 2,2,8,2,16,10,4,18 +DB 2,2,8,2,16,10,4,18 +DB 170,170,146,170,57,56,73,147 +DB 170,170,146,170,57,56,73,147 +DB 113,113,217,113,175,168,226,222 +DB 113,113,217,113,175,168,226,222 +DB 200,200,7,200,14,207,141,198 +DB 200,200,7,200,14,207,141,198 +DB 25,25,100,25,200,125,50,209 +DB 25,25,100,25,200,125,50,209 +DB 73,73,57,73,114,112,146,59 +DB 73,73,57,73,114,112,146,59 +DB 217,217,67,217,134,154,175,95 +DB 217,217,67,217,134,154,175,95 +DB 242,242,239,242,195,29,249,49 +DB 242,242,239,242,195,29,249,49 +DB 227,227,171,227,75,72,219,168 +DB 227,227,171,227,75,72,219,168 +DB 91,91,113,91,226,42,182,185 +DB 91,91,113,91,226,42,182,185 +DB 136,136,26,136,52,146,13,188 +DB 136,136,26,136,52,146,13,188 +DB 154,154,82,154,164,200,41,62 +DB 154,154,82,154,164,200,41,62 +DB 38,38,152,38,45,190,76,11 +DB 38,38,152,38,45,190,76,11 +DB 50,50,200,50,141,250,100,191 +DB 50,50,200,50,141,250,100,191 +DB 176,176,250,176,233,74,125,89 +DB 176,176,250,176,233,74,125,89 +DB 233,233,131,233,27,106,207,242 +DB 233,233,131,233,27,106,207,242 +DB 15,15,60,15,120,51,30,119 +DB 15,15,60,15,120,51,30,119 +DB 213,213,115,213,230,166,183,51 +DB 213,213,115,213,230,166,183,51 +DB 128,128,58,128,116,186,29,244 +DB 128,128,58,128,116,186,29,244 +DB 190,190,194,190,153,124,97,39 +DB 190,190,194,190,153,124,97,39 +DB 205,205,19,205,38,222,135,235 +DB 205,205,19,205,38,222,135,235 +DB 52,52,208,52,189,228,104,137 +DB 52,52,208,52,189,228,104,137 +DB 72,72,61,72,122,117,144,50 +DB 72,72,61,72,122,117,144,50 +DB 255,255,219,255,171,36,227,84 +DB 255,255,219,255,171,36,227,84 +DB 122,122,245,122,247,143,244,141 +DB 122,122,245,122,247,143,244,141 +DB 144,144,122,144,244,234,61,100 +DB 144,144,122,144,244,234,61,100 +DB 95,95,97,95,194,62,190,157 +DB 95,95,97,95,194,62,190,157 +DB 32,32,128,32,29,160,64,61 +DB 32,32,128,32,29,160,64,61 +DB 104,104,189,104,103,213,208,15 +DB 104,104,189,104,103,213,208,15 +DB 26,26,104,26,208,114,52,202 +DB 26,26,104,26,208,114,52,202 +DB 174,174,130,174,25,44,65,183 +DB 174,174,130,174,25,44,65,183 +DB 180,180,234,180,201,94,117,125 +DB 180,180,234,180,201,94,117,125 +DB 84,84,77,84,154,25,168,206 +DB 84,84,77,84,154,25,168,206 +DB 147,147,118,147,236,229,59,127 +DB 147,147,118,147,236,229,59,127 +DB 34,34,136,34,13,170,68,47 +DB 34,34,136,34,13,170,68,47 +DB 100,100,141,100,7,233,200,99 +DB 100,100,141,100,7,233,200,99 +DB 241,241,227,241,219,18,255,42 +DB 241,241,227,241,219,18,255,42 +DB 115,115,209,115,191,162,230,204 +DB 115,115,209,115,191,162,230,204 +DB 18,18,72,18,144,90,36,130 +DB 18,18,72,18,144,90,36,130 +DB 64,64,29,64,58,93,128,122 +DB 64,64,29,64,58,93,128,122 +DB 8,8,32,8,64,40,16,72 +DB 8,8,32,8,64,40,16,72 +DB 195,195,43,195,86,232,155,149 +DB 195,195,43,195,86,232,155,149 +DB 236,236,151,236,51,123,197,223 +DB 236,236,151,236,51,123,197,223 +DB 219,219,75,219,150,144,171,77 +DB 219,219,75,219,150,144,171,77 +DB 161,161,190,161,97,31,95,192 +DB 161,161,190,161,97,31,95,192 +DB 141,141,14,141,28,131,7,145 +DB 141,141,14,141,28,131,7,145 +DB 61,61,244,61,245,201,122,200 +DB 61,61,244,61,245,201,122,200 +DB 151,151,102,151,204,241,51,91 +DB 151,151,102,151,204,241,51,91 +DB 0,0,0,0,0,0,0,0 +DB 0,0,0,0,0,0,0,0 +DB 207,207,27,207,54,212,131,249 +DB 207,207,27,207,54,212,131,249 +DB 43,43,172,43,69,135,86,110 +DB 43,43,172,43,69,135,86,110 +DB 118,118,197,118,151,179,236,225 +DB 118,118,197,118,151,179,236,225 +DB 130,130,50,130,100,176,25,230 +DB 130,130,50,130,100,176,25,230 +DB 214,214,127,214,254,169,177,40 +DB 214,214,127,214,254,169,177,40 +DB 27,27,108,27,216,119,54,195 +DB 27,27,108,27,216,119,54,195 +DB 181,181,238,181,193,91,119,116 +DB 181,181,238,181,193,91,119,116 +DB 175,175,134,175,17,41,67,190 +DB 175,175,134,175,17,41,67,190 +DB 106,106,181,106,119,223,212,29 +DB 106,106,181,106,119,223,212,29 +DB 80,80,93,80,186,13,160,234 +DB 80,80,93,80,186,13,160,234 +DB 69,69,9,69,18,76,138,87 +DB 69,69,9,69,18,76,138,87 +DB 243,243,235,243,203,24,251,56 +DB 243,243,235,243,203,24,251,56 +DB 48,48,192,48,157,240,96,173 +DB 48,48,192,48,157,240,96,173 +DB 239,239,155,239,43,116,195,196 +DB 239,239,155,239,43,116,195,196 +DB 63,63,252,63,229,195,126,218 +DB 63,63,252,63,229,195,126,218 +DB 85,85,73,85,146,28,170,199 +DB 85,85,73,85,146,28,170,199 +DB 162,162,178,162,121,16,89,219 +DB 162,162,178,162,121,16,89,219 +DB 234,234,143,234,3,101,201,233 +DB 234,234,143,234,3,101,201,233 +DB 101,101,137,101,15,236,202,106 +DB 101,101,137,101,15,236,202,106 +DB 186,186,210,186,185,104,105,3 +DB 186,186,210,186,185,104,105,3 +DB 47,47,188,47,101,147,94,74 +DB 47,47,188,47,101,147,94,74 +DB 192,192,39,192,78,231,157,142 +DB 192,192,39,192,78,231,157,142 +DB 222,222,95,222,190,129,161,96 +DB 222,222,95,222,190,129,161,96 +DB 28,28,112,28,224,108,56,252 +DB 28,28,112,28,224,108,56,252 +DB 253,253,211,253,187,46,231,70 +DB 253,253,211,253,187,46,231,70 +DB 77,77,41,77,82,100,154,31 +DB 77,77,41,77,82,100,154,31 +DB 146,146,114,146,228,224,57,118 +DB 146,146,114,146,228,224,57,118 +DB 117,117,201,117,143,188,234,250 +DB 117,117,201,117,143,188,234,250 +DB 6,6,24,6,48,30,12,54 +DB 6,6,24,6,48,30,12,54 +DB 138,138,18,138,36,152,9,174 +DB 138,138,18,138,36,152,9,174 +DB 178,178,242,178,249,64,121,75 +DB 178,178,242,178,249,64,121,75 +DB 230,230,191,230,99,89,209,133 +DB 230,230,191,230,99,89,209,133 +DB 14,14,56,14,112,54,28,126 +DB 14,14,56,14,112,54,28,126 +DB 31,31,124,31,248,99,62,231 +DB 31,31,124,31,248,99,62,231 +DB 98,98,149,98,55,247,196,85 +DB 98,98,149,98,55,247,196,85 +DB 212,212,119,212,238,163,181,58 +DB 212,212,119,212,238,163,181,58 +DB 168,168,154,168,41,50,77,129 +DB 168,168,154,168,41,50,77,129 +DB 150,150,98,150,196,244,49,82 +DB 150,150,98,150,196,244,49,82 +DB 249,249,195,249,155,58,239,98 +DB 249,249,195,249,155,58,239,98 +DB 197,197,51,197,102,246,151,163 +DB 197,197,51,197,102,246,151,163 +DB 37,37,148,37,53,177,74,16 +DB 37,37,148,37,53,177,74,16 +DB 89,89,121,89,242,32,178,171 +DB 89,89,121,89,242,32,178,171 +DB 132,132,42,132,84,174,21,208 +DB 132,132,42,132,84,174,21,208 +DB 114,114,213,114,183,167,228,197 +DB 114,114,213,114,183,167,228,197 +DB 57,57,228,57,213,221,114,236 +DB 57,57,228,57,213,221,114,236 +DB 76,76,45,76,90,97,152,22 +DB 76,76,45,76,90,97,152,22 +DB 94,94,101,94,202,59,188,148 +DB 94,94,101,94,202,59,188,148 +DB 120,120,253,120,231,133,240,159 +DB 120,120,253,120,231,133,240,159 +DB 56,56,224,56,221,216,112,229 +DB 56,56,224,56,221,216,112,229 +DB 140,140,10,140,20,134,5,152 +DB 140,140,10,140,20,134,5,152 +DB 209,209,99,209,198,178,191,23 +DB 209,209,99,209,198,178,191,23 +DB 165,165,174,165,65,11,87,228 +DB 165,165,174,165,65,11,87,228 +DB 226,226,175,226,67,77,217,161 +DB 226,226,175,226,67,77,217,161 +DB 97,97,153,97,47,248,194,78 +DB 97,97,153,97,47,248,194,78 +DB 179,179,246,179,241,69,123,66 +DB 179,179,246,179,241,69,123,66 +DB 33,33,132,33,21,165,66,52 +DB 33,33,132,33,21,165,66,52 +DB 156,156,74,156,148,214,37,8 +DB 156,156,74,156,148,214,37,8 +DB 30,30,120,30,240,102,60,238 +DB 30,30,120,30,240,102,60,238 +DB 67,67,17,67,34,82,134,97 +DB 67,67,17,67,34,82,134,97 +DB 199,199,59,199,118,252,147,177 +DB 199,199,59,199,118,252,147,177 +DB 252,252,215,252,179,43,229,79 +DB 252,252,215,252,179,43,229,79 +DB 4,4,16,4,32,20,8,36 +DB 4,4,16,4,32,20,8,36 +DB 81,81,89,81,178,8,162,227 +DB 81,81,89,81,178,8,162,227 +DB 153,153,94,153,188,199,47,37 +DB 153,153,94,153,188,199,47,37 +DB 109,109,169,109,79,196,218,34 +DB 109,109,169,109,79,196,218,34 +DB 13,13,52,13,104,57,26,101 +DB 13,13,52,13,104,57,26,101 +DB 250,250,207,250,131,53,233,121 +DB 250,250,207,250,131,53,233,121 +DB 223,223,91,223,182,132,163,105 +DB 223,223,91,223,182,132,163,105 +DB 126,126,229,126,215,155,252,169 +DB 126,126,229,126,215,155,252,169 +DB 36,36,144,36,61,180,72,25 +DB 36,36,144,36,61,180,72,25 +DB 59,59,236,59,197,215,118,254 +DB 59,59,236,59,197,215,118,254 +DB 171,171,150,171,49,61,75,154 +DB 171,171,150,171,49,61,75,154 +DB 206,206,31,206,62,209,129,240 +DB 206,206,31,206,62,209,129,240 +DB 17,17,68,17,136,85,34,153 +DB 17,17,68,17,136,85,34,153 +DB 143,143,6,143,12,137,3,131 +DB 143,143,6,143,12,137,3,131 +DB 78,78,37,78,74,107,156,4 +DB 78,78,37,78,74,107,156,4 +DB 183,183,230,183,209,81,115,102 +DB 183,183,230,183,209,81,115,102 +DB 235,235,139,235,11,96,203,224 +DB 235,235,139,235,11,96,203,224 +DB 60,60,240,60,253,204,120,193 +DB 60,60,240,60,253,204,120,193 +DB 129,129,62,129,124,191,31,253 +DB 129,129,62,129,124,191,31,253 +DB 148,148,106,148,212,254,53,64 +DB 148,148,106,148,212,254,53,64 +DB 247,247,251,247,235,12,243,28 +DB 247,247,251,247,235,12,243,28 +DB 185,185,222,185,161,103,111,24 +DB 185,185,222,185,161,103,111,24 +DB 19,19,76,19,152,95,38,139 +DB 19,19,76,19,152,95,38,139 +DB 44,44,176,44,125,156,88,81 +DB 44,44,176,44,125,156,88,81 +DB 211,211,107,211,214,184,187,5 +DB 211,211,107,211,214,184,187,5 +DB 231,231,187,231,107,92,211,140 +DB 231,231,187,231,107,92,211,140 +DB 110,110,165,110,87,203,220,57 +DB 110,110,165,110,87,203,220,57 +DB 196,196,55,196,110,243,149,170 +DB 196,196,55,196,110,243,149,170 +DB 3,3,12,3,24,15,6,27 +DB 3,3,12,3,24,15,6,27 +DB 86,86,69,86,138,19,172,220 +DB 86,86,69,86,138,19,172,220 +DB 68,68,13,68,26,73,136,94 +DB 68,68,13,68,26,73,136,94 +DB 127,127,225,127,223,158,254,160 +DB 127,127,225,127,223,158,254,160 +DB 169,169,158,169,33,55,79,136 +DB 169,169,158,169,33,55,79,136 +DB 42,42,168,42,77,130,84,103 +DB 42,42,168,42,77,130,84,103 +DB 187,187,214,187,177,109,107,10 +DB 187,187,214,187,177,109,107,10 +DB 193,193,35,193,70,226,159,135 +DB 193,193,35,193,70,226,159,135 +DB 83,83,81,83,162,2,166,241 +DB 83,83,81,83,162,2,166,241 +DB 220,220,87,220,174,139,165,114 +DB 220,220,87,220,174,139,165,114 +DB 11,11,44,11,88,39,22,83 +DB 11,11,44,11,88,39,22,83 +DB 157,157,78,157,156,211,39,1 +DB 157,157,78,157,156,211,39,1 +DB 108,108,173,108,71,193,216,43 +DB 108,108,173,108,71,193,216,43 +DB 49,49,196,49,149,245,98,164 +DB 49,49,196,49,149,245,98,164 +DB 116,116,205,116,135,185,232,243 +DB 116,116,205,116,135,185,232,243 +DB 246,246,255,246,227,9,241,21 +DB 246,246,255,246,227,9,241,21 +DB 70,70,5,70,10,67,140,76 +DB 70,70,5,70,10,67,140,76 +DB 172,172,138,172,9,38,69,165 +DB 172,172,138,172,9,38,69,165 +DB 137,137,30,137,60,151,15,181 +DB 137,137,30,137,60,151,15,181 +DB 20,20,80,20,160,68,40,180 +DB 20,20,80,20,160,68,40,180 +DB 225,225,163,225,91,66,223,186 +DB 225,225,163,225,91,66,223,186 +DB 22,22,88,22,176,78,44,166 +DB 22,22,88,22,176,78,44,166 +DB 58,58,232,58,205,210,116,247 +DB 58,58,232,58,205,210,116,247 +DB 105,105,185,105,111,208,210,6 +DB 105,105,185,105,111,208,210,6 +DB 9,9,36,9,72,45,18,65 +DB 9,9,36,9,72,45,18,65 +DB 112,112,221,112,167,173,224,215 +DB 112,112,221,112,167,173,224,215 +DB 182,182,226,182,217,84,113,111 +DB 182,182,226,182,217,84,113,111 +DB 208,208,103,208,206,183,189,30 +DB 208,208,103,208,206,183,189,30 +DB 237,237,147,237,59,126,199,214 +DB 237,237,147,237,59,126,199,214 +DB 204,204,23,204,46,219,133,226 +DB 204,204,23,204,46,219,133,226 +DB 66,66,21,66,42,87,132,104 +DB 66,66,21,66,42,87,132,104 +DB 152,152,90,152,180,194,45,44 +DB 152,152,90,152,180,194,45,44 +DB 164,164,170,164,73,14,85,237 +DB 164,164,170,164,73,14,85,237 +DB 40,40,160,40,93,136,80,117 +DB 40,40,160,40,93,136,80,117 +DB 92,92,109,92,218,49,184,134 +DB 92,92,109,92,218,49,184,134 +DB 248,248,199,248,147,63,237,107 +DB 248,248,199,248,147,63,237,107 +DB 134,134,34,134,68,164,17,194 +DB 134,134,34,134,68,164,17,194 +DB 24,35,198,232,135,184,1,79 +DB 54,166,210,245,121,111,145,82 +DB 96,188,155,142,163,12,123,53 +DB 29,224,215,194,46,75,254,87 +DB 21,119,55,229,159,240,74,218 +DB 88,201,41,10,177,160,107,133 +DB 189,93,16,244,203,62,5,103 +DB 228,39,65,139,167,125,149,216 +DB 251,238,124,102,221,23,71,158 +DB 202,45,191,7,173,90,131,51 +_whirlpool_block_mmx ENDP +.text$ ENDS +END diff --git a/deps/openssl/asm/x86-win32-masm/x86cpuid.asm b/deps/openssl/asm/x86-win32-masm/x86cpuid.asm new file mode 100644 index 0000000000..7e663d6645 --- /dev/null +++ b/deps/openssl/asm/x86-win32-masm/x86cpuid.asm @@ -0,0 +1,277 @@ +TITLE x86cpuid.asm +IF @Version LT 800 +ECHO MASM version 8.00 or later is strongly recommended. +ENDIF +.586 +.MODEL FLAT +OPTION DOTNAME +IF @Version LT 800 +.text$ SEGMENT PAGE 'CODE' +ELSE +.text$ SEGMENT ALIGN(64) 'CODE' +ENDIF +ALIGN 16 +_OPENSSL_ia32_cpuid PROC PUBLIC +$L_OPENSSL_ia32_cpuid_begin:: + push ebp + push ebx + push esi + push edi + xor edx,edx + pushfd + pop eax + mov ecx,eax + xor eax,2097152 + push eax + popfd + pushfd + pop eax + xor ecx,eax + bt ecx,21 + jnc $L000done + xor eax,eax + cpuid + mov edi,eax + xor eax,eax + cmp ebx,1970169159 + setne al + mov ebp,eax + cmp edx,1231384169 + setne al + or ebp,eax + cmp ecx,1818588270 + setne al + or ebp,eax + jz $L001intel + cmp ebx,1752462657 + setne al + mov esi,eax + cmp edx,1769238117 + setne al + or esi,eax + cmp ecx,1145913699 + setne al + or esi,eax + jnz $L001intel + mov eax,2147483648 + cpuid + cmp eax,2147483656 + jb $L001intel + mov eax,2147483656 + cpuid + movzx esi,cl + inc esi + mov eax,1 + cpuid + bt edx,28 + jnc $L000done + shr ebx,16 + and ebx,255 + cmp ebx,esi + ja $L000done + and edx,4026531839 + jmp $L000done +$L001intel: + cmp edi,4 + mov edi,-1 + jb $L002nocacheinfo + mov eax,4 + mov ecx,0 + cpuid + mov edi,eax + shr edi,14 + and edi,4095 +$L002nocacheinfo: + mov eax,1 + cpuid + cmp ebp,0 + jne $L003notP4 + and ah,15 + cmp ah,15 + jne $L003notP4 + or edx,1048576 +$L003notP4: + bt edx,28 + jnc $L000done + and edx,4026531839 + cmp edi,0 + je $L000done + or edx,268435456 + shr ebx,16 + cmp bl,1 + ja $L000done + and edx,4026531839 +$L000done: + mov eax,edx + mov edx,ecx + pop edi + pop esi + pop ebx + pop ebp + ret +_OPENSSL_ia32_cpuid ENDP +;EXTERN _OPENSSL_ia32cap_P:NEAR +ALIGN 16 +_OPENSSL_rdtsc PROC PUBLIC +$L_OPENSSL_rdtsc_begin:: + xor eax,eax + xor edx,edx + lea ecx,DWORD PTR _OPENSSL_ia32cap_P + bt DWORD PTR [ecx],4 + jnc $L004notsc + rdtsc +$L004notsc: + ret +_OPENSSL_rdtsc ENDP +ALIGN 16 +_OPENSSL_instrument_halt PROC PUBLIC +$L_OPENSSL_instrument_halt_begin:: + lea ecx,DWORD PTR _OPENSSL_ia32cap_P + bt DWORD PTR [ecx],4 + jnc $L005nohalt +DD 2421723150 + and eax,3 + jnz $L005nohalt + pushfd + pop eax + bt eax,9 + jnc $L005nohalt + rdtsc + push edx + push eax + hlt + rdtsc + sub eax,DWORD PTR [esp] + sbb edx,DWORD PTR 4[esp] + add esp,8 + ret +$L005nohalt: + xor eax,eax + xor edx,edx + ret +_OPENSSL_instrument_halt ENDP +ALIGN 16 +_OPENSSL_far_spin PROC PUBLIC +$L_OPENSSL_far_spin_begin:: + pushfd + pop eax + bt eax,9 + jnc $L006nospin + mov eax,DWORD PTR 4[esp] + mov ecx,DWORD PTR 8[esp] +DD 2430111262 + xor eax,eax + mov edx,DWORD PTR [ecx] + jmp $L007spin +ALIGN 16 +$L007spin: + inc eax + cmp edx,DWORD PTR [ecx] + je $L007spin +DD 529567888 + ret +$L006nospin: + xor eax,eax + xor edx,edx + ret +_OPENSSL_far_spin ENDP +ALIGN 16 +_OPENSSL_wipe_cpu PROC PUBLIC +$L_OPENSSL_wipe_cpu_begin:: + xor eax,eax + xor edx,edx + lea ecx,DWORD PTR _OPENSSL_ia32cap_P + mov ecx,DWORD PTR [ecx] + bt DWORD PTR [ecx],1 + jnc $L008no_x87 +DD 4007259865,4007259865,4007259865,4007259865,2430851995 +$L008no_x87: + lea eax,DWORD PTR 4[esp] + ret +_OPENSSL_wipe_cpu ENDP +ALIGN 16 +_OPENSSL_atomic_add PROC PUBLIC +$L_OPENSSL_atomic_add_begin:: + mov edx,DWORD PTR 4[esp] + mov ecx,DWORD PTR 8[esp] + push ebx + nop + mov eax,DWORD PTR [edx] +$L009spin: + lea ebx,DWORD PTR [ecx*1+eax] + nop +DD 447811568 + jne $L009spin + mov eax,ebx + pop ebx + ret +_OPENSSL_atomic_add ENDP +ALIGN 16 +_OPENSSL_indirect_call PROC PUBLIC +$L_OPENSSL_indirect_call_begin:: + push ebp + mov ebp,esp + sub esp,28 + mov ecx,DWORD PTR 12[ebp] + mov DWORD PTR [esp],ecx + mov edx,DWORD PTR 16[ebp] + mov DWORD PTR 4[esp],edx + mov eax,DWORD PTR 20[ebp] + mov DWORD PTR 8[esp],eax + mov eax,DWORD PTR 24[ebp] + mov DWORD PTR 12[esp],eax + mov eax,DWORD PTR 28[ebp] + mov DWORD PTR 16[esp],eax + mov eax,DWORD PTR 32[ebp] + mov DWORD PTR 20[esp],eax + mov eax,DWORD PTR 36[ebp] + mov DWORD PTR 24[esp],eax + call DWORD PTR 8[ebp] + mov esp,ebp + pop ebp + ret +_OPENSSL_indirect_call ENDP +ALIGN 16 +_OPENSSL_cleanse PROC PUBLIC +$L_OPENSSL_cleanse_begin:: + mov edx,DWORD PTR 4[esp] + mov ecx,DWORD PTR 8[esp] + xor eax,eax + cmp ecx,7 + jae $L010lot + cmp ecx,0 + je $L011ret +$L012little: + mov BYTE PTR [edx],al + sub ecx,1 + lea edx,DWORD PTR 1[edx] + jnz $L012little +$L011ret: + ret +ALIGN 16 +$L010lot: + test edx,3 + jz $L013aligned + mov BYTE PTR [edx],al + lea ecx,DWORD PTR [ecx-1] + lea edx,DWORD PTR 1[edx] + jmp $L010lot +$L013aligned: + mov DWORD PTR [edx],eax + lea ecx,DWORD PTR [ecx-4] + test ecx,-4 + lea edx,DWORD PTR 4[edx] + jnz $L013aligned + cmp ecx,0 + jne $L012little + ret +_OPENSSL_cleanse ENDP +.text$ ENDS +.bss SEGMENT 'BSS' +COMM _OPENSSL_ia32cap_P:DWORD +.bss ENDS +.CRT$XCU SEGMENT DWORD PUBLIC 'DATA' +EXTERN _OPENSSL_cpuid_setup:NEAR +DD _OPENSSL_cpuid_setup +.CRT$XCU ENDS +END diff --git a/deps/openssl/openssl/crypto/bn/asm/x86_64-win32-masm.asm b/deps/openssl/openssl/crypto/bn/asm/x86_64-win32-masm.asm new file mode 100644 index 0000000000..2c9197ba34 --- /dev/null +++ b/deps/openssl/openssl/crypto/bn/asm/x86_64-win32-masm.asm @@ -0,0 +1,1679 @@ + +_TEXT SEGMENT + + +ALIGN 16 +PUBLIC bn_mul_add_words +bn_mul_add_words PROC + push rbp + push rdi + push rsi + push rbx + test r8d, r8d + jle label0 + xor ebx, ebx + test r8d, -4 + mov r10, rdx + je label1 + lea rbp, qword ptr [rcx + 8] + lea rdi, qword ptr [rcx + 16] + lea rsi, qword ptr [rcx + 24] + sub rbp, rdx + sub rdi, rdx + sub rsi, rdx +label2: + sub r8d, 4 + mov rax, r9 + + mul qword ptr [r10] + add rbx, rax + adc rdx, 0 + + mov rax, r9 + + add qword ptr [rcx], rbx + adc rdx, 0 + + add rcx, 32 + mov r11, rdx + + mul qword ptr [r10 + 8] + add r11, rax + adc rdx, 0 + + mov rax, r9 + + add qword ptr [r10 + rbp], r11 + adc rdx, 0 + + mov rbx, rdx + + mul qword ptr [r10 + 16] + add rbx, rax + adc rdx, 0 + + mov rax, r9 + + add qword ptr [r10 + rdi], rbx + adc rdx, 0 + + mov r11, rdx + + mul qword ptr [r10 + 24] + add r11, rax + adc rdx, 0 + add qword ptr [r10 + rsi], r11 + adc rdx, 0 + + add r10, 32 + test r8d, -4 + mov rbx, rdx + jne label2 + test r8d, r8d + mov r11, rdx + je label3 +label1: + mov rax, r9 + + mul qword ptr [r10] + add rbx, rax + adc rdx, 0 + add qword ptr [rcx], rbx + adc rdx, 0 + + sub r8d, 1 + mov r11, rdx + je label3 + mov rax, r9 + + mul qword ptr [r10 + 8] + add r11, rax + adc rdx, 0 + add qword ptr [rcx + 8], r11 + adc rdx, 0 + + cmp r8d, 1 + mov rbx, rdx + je label4 + mov rax, r9 + + mul qword ptr [r10 + 16] + add rbx, rax + adc rdx, 0 + add qword ptr [rcx + 16], rbx + adc rdx, 0 + + mov r11, rdx +label3: + mov rax, r11 + pop rbx + pop rsi + pop rdi + pop rbp + ret +label0: + xor r11d, r11d + mov rax, r11 + pop rbx + pop rsi + pop rdi + pop rbp + ret +label4: + mov r11, rdx + jmp label3 +bn_mul_add_words ENDP + + +ALIGN 16 +PUBLIC bn_mul_words +bn_mul_words PROC + push rsi + push rbx + test r8d, r8d + mov r10, rdx + jle label5 + xor ebx, ebx + test r8d, -4 + je label6 +label7: + sub r8d, 4 + mov rax, r9 + + mul qword ptr [r10] + add rbx, rax + adc rdx, 0 + + mov rax, r9 + mov qword ptr [rcx], rbx + mov r11, rdx + + mul qword ptr [r10 + 8] + add r11, rax + adc rdx, 0 + + mov rax, r9 + mov qword ptr [rcx + 8], r11 + mov rbx, rdx + + mul qword ptr [r10 + 16] + add rbx, rax + adc rdx, 0 + + mov rax, r9 + mov qword ptr [rcx + 16], rbx + mov r11, rdx + + mul qword ptr [r10 + 24] + + add r10, 32 + + add r11, rax + adc rdx, 0 + + mov qword ptr [rcx + 24], r11 + add rcx, 32 + test r8d, -4 + mov rbx, rdx + jne label7 + test r8d, r8d + mov r11, rdx + jne label6 +label8: + mov rax, r11 + pop rbx + pop rsi + ret +label6: + mov rax, r9 + + mul qword ptr [r10] + add rbx, rax + adc rdx, 0 + + sub r8d, 1 + mov qword ptr [rcx], rbx + mov r11, rdx + je label8 + mov rax, r9 + + mul qword ptr [r10 + 8] + add r11, rax + adc rdx, 0 + + cmp r8d, 1 + mov rbx, rdx + mov qword ptr [rcx + 8], r11 + je label9 + mov rax, r9 + + mul qword ptr [r10 + 16] + add rbx, rax + adc rdx, 0 + + mov r11, rdx + mov qword ptr [rcx + 16], rbx + mov rax, r11 + pop rbx + pop rsi + ret +label9: + mov r11, rdx + jmp label8 +label5: + xor r11d, r11d + mov rax, r11 + pop rbx + pop rsi + ret +bn_mul_words ENDP + + +ALIGN 16 +PUBLIC bn_sqr_words +bn_sqr_words PROC + test r8d, r8d + mov r9, rdx + jle label10 + test r8d, -4 + je label11 +label12: + sub r8d, 4 + mov rax, qword ptr [r9] + + mul rax + + mov qword ptr [rcx + 8], rdx + mov qword ptr [rcx], rax + mov rax, qword ptr [r9 + 8] + + mul rax + + mov qword ptr [rcx + 24], rdx + mov qword ptr [rcx + 16], rax + mov rax, qword ptr [r9 + 16] + + mul rax + + mov qword ptr [rcx + 40], rdx + mov qword ptr [rcx + 32], rax + mov rax, qword ptr [r9 + 24] + add r9, 32 + + mul rax + + mov qword ptr [rcx + 48], rax + mov qword ptr [rcx + 56], rdx + add rcx, 64 + test r8d, -4 + jne label12 + test r8d, r8d + je label10 +label11: + mov rax, qword ptr [r9] + + mul rax + + sub r8d, 1 + mov qword ptr [rcx], rax + mov qword ptr [rcx + 8], rdx + je label10 + mov rax, qword ptr [r9 + 8] + + mul rax + + cmp r8d, 1 + mov qword ptr [rcx + 16], rax + mov qword ptr [rcx + 24], rdx + je label10 + mov rax, qword ptr [r9 + 16] + + mul rax + + mov qword ptr [rcx + 32], rax + mov qword ptr [rcx + 40], rdx +label10: + ret 0 +bn_sqr_words ENDP + + +ALIGN 16 +PUBLIC bn_div_words +bn_div_words PROC + mov rax, rdx + mov rdx, rcx + + div r8 + + ret +bn_div_words ENDP + + +ALIGN 16 +PUBLIC bn_add_words +bn_add_words PROC + test r9d, r9d + mov r10, rcx + jle label13 + mov ecx, r9d + + sub r11, r11 +label14: + mov rax, qword ptr [rdx + r11 * 8] + adc rax, qword ptr [r8 + r11 * 8] + mov qword ptr [r10 + r11 * 8], rax + lea r11, qword ptr [r11 + 1] + loop label14 + sbb rax, rax + + and eax, 1 + ret +label13: + xor eax, eax + ret +bn_add_words ENDP + + +ALIGN 16 +PUBLIC bn_sub_words +bn_sub_words PROC + test r9d, r9d + mov r10, rcx + jle label15 + mov ecx, r9d + + sub r11, r11 +label16: + mov rax, qword ptr [rdx + r11 * 8] + sbb rax, qword ptr [r8 + r11 * 8] + mov qword ptr [r10 + r11 * 8], rax + lea r11, qword ptr [r11 + 1] + loop label16 + sbb rax, rax + + and eax, 1 + ret +label15: + xor eax, eax + ret +bn_sub_words ENDP + + +ALIGN 16 +PUBLIC bn_mul_comba8 +bn_mul_comba8 PROC + push rsi + push rbx + xor r10d, r10d + mov rax, qword ptr [rdx] + mov r9, rdx + mov rsi, r10 + mov r11, r10 + + mul qword ptr [r8] + + mov rbx, r10 + + add rsi, rax + adc rdx, 0 + + mov qword ptr [rcx], rsi + mov rax, qword ptr [r9] + + add r11, rdx + adc rbx, 0 + mul qword ptr [r8 + 8] + + mov rsi, r11 + mov r11, r10 + + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 8] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8] + add rsi, rax + adc rdx, 0 + + mov qword ptr [rcx + 8], rsi + mov rsi, r10 + mov rax, qword ptr [r9 + 16] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 8] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 8] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 16] + add rbx, rax + adc rdx, 0 + + mov qword ptr [rcx + 16], rbx + mov rbx, r10 + mov rax, qword ptr [r9] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 24] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 8] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 16] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 16] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 8] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 24] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8] + add r11, rax + adc rdx, 0 + + mov qword ptr [rcx + 24], r11 + mov rax, qword ptr [r9 + 32] + mov r11, r10 + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 24] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 8] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 16] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 16] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 8] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 24] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 32] + add rsi, rax + adc rdx, 0 + + mov qword ptr [rcx + 32], rsi + mov rsi, r10 + mov rax, qword ptr [r9] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 40] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 8] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 32] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 16] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 24] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 24] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 16] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 32] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 8] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 40] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8] + add rbx, rax + adc rdx, 0 + + mov qword ptr [rcx + 40], rbx + mov rax, qword ptr [r9 + 48] + mov rbx, r10 + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 40] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 8] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 32] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 16] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 24] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 24] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 16] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 32] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 8] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 40] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 48] + add r11, rax + adc rdx, 0 + + mov qword ptr [rcx + 48], r11 + mov r11, r10 + mov rax, qword ptr [r9] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 56] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 8] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 48] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 16] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 40] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 24] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 32] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 32] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 24] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 40] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 16] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 48] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 8] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 56] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8] + add rsi, rax + adc rdx, 0 + + mov qword ptr [rcx + 56], rsi + mov rax, qword ptr [r9 + 56] + mov rsi, r10 + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 8] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 48] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 16] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 40] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 24] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 32] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 32] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 24] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 40] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 16] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 48] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 8] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 56] + add rbx, rax + adc rdx, 0 + + mov qword ptr [rcx + 64], rbx + mov rbx, r10 + mov rax, qword ptr [r9 + 16] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 56] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 24] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 48] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 32] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 40] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 40] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 32] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 48] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 24] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 56] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 16] + add r11, rax + adc rdx, 0 + + mov qword ptr [rcx + 72], r11 + mov rax, qword ptr [r9 + 56] + mov r11, r10 + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 24] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 48] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 32] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 40] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 40] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 32] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 48] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 24] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 56] + add rsi, rax + adc rdx, 0 + + mov qword ptr [rcx + 80], rsi + mov rsi, r10 + mov rax, qword ptr [r9 + 32] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 56] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 40] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 48] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 48] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 40] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 56] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 32] + add rbx, rax + adc rdx, 0 + + mov qword ptr [rcx + 88], rbx + mov rbx, r10 + mov rax, qword ptr [r9 + 56] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 40] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 48] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 48] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 40] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 56] + add r11, rax + adc rdx, 0 + + mov qword ptr [rcx + 96], r11 + mov rax, qword ptr [r9 + 48] + mov r11, r10 + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 56] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 56] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 48] + add rsi, rax + adc rdx, 0 + add rbx, rdx + adc r11, 0 + + mov qword ptr [rcx + 104], rsi + mov rax, qword ptr [r9 + 56] + + mul qword ptr [r8 + 56] + + mov r8, rbx + + add r8, rax + adc rdx, 0 + add r11, rdx + adc r10, 0 + + mov qword ptr [rcx + 112], r8 + mov qword ptr [rcx + 120], r11 + pop rbx + pop rsi + ret +bn_mul_comba8 ENDP + + +ALIGN 16 +PUBLIC bn_mul_comba4 +bn_mul_comba4 PROC + push rsi + push rbx + xor r10d, r10d + mov rax, qword ptr [rdx] + mov r9, rdx + mov rbx, r10 + mov r11, r10 + + mul qword ptr [r8] + + mov rsi, r10 + + add rbx, rax + adc rdx, 0 + + mov qword ptr [rcx], rbx + mov rbx, r10 + mov rax, qword ptr [r9] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 8] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 8] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8] + add r11, rax + adc rdx, 0 + + mov qword ptr [rcx + 8], r11 + mov r11, r10 + mov rax, qword ptr [r9 + 16] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 8] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 8] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 16] + add rsi, rax + adc rdx, 0 + + mov qword ptr [rcx + 16], rsi + mov rsi, r10 + mov rax, qword ptr [r9] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 24] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 8] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 16] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 16] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 8] + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 24] + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8] + add rbx, rax + adc rdx, 0 + + mov qword ptr [rcx + 24], rbx + mov rax, qword ptr [r9 + 24] + mov rbx, r10 + + add r11, rdx + adc rsi, 0 + mul qword ptr [r8 + 8] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 16] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 16] + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 8] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 24] + add r11, rax + adc rdx, 0 + + mov qword ptr [rcx + 32], r11 + mov r11, r10 + mov rax, qword ptr [r9 + 16] + + add rsi, rdx + adc rbx, 0 + mul qword ptr [r8 + 24] + add rsi, rax + adc rdx, 0 + + mov rax, qword ptr [r9 + 24] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 16] + add rsi, rax + adc rdx, 0 + add rbx, rdx + adc r11, 0 + + mov qword ptr [rcx + 40], rsi + mov rax, qword ptr [r9 + 24] + + mul qword ptr [r8 + 24] + + mov r8, rbx + + add r8, rax + adc rdx, 0 + add r11, rdx + adc r10, 0 + + mov qword ptr [rcx + 48], r8 + mov qword ptr [rcx + 56], r11 + pop rbx + pop rsi + ret +bn_mul_comba4 ENDP + + +ALIGN 16 +PUBLIC bn_sqr_comba8 +bn_sqr_comba8 PROC + push rsi + push rbx + xor r9d, r9d + mov rax, qword ptr [rdx] + mov r8, rdx + mov rbx, r9 + mov r10, r9 + + mul rax + + mov r11, r9 + mov rsi, r9 + + add rbx, rax + adc rdx, 0 + + mov qword ptr [rcx], rbx + mov rax, qword ptr [r8 + 8] + + add r10, rdx + adc r11, 0 + mul qword ptr [r8] + + mov rbx, r10 + + add rdx, rdx + adc rsi, 0 + add rax, rax + adc rdx, 0 + + mov r10, rsi + + add rbx, rax + adc rdx, 0 + + mov qword ptr [rcx + 8], rbx + mov rbx, r9 + mov rax, qword ptr [r8 + 8] + + add r11, rdx + adc r10, 0 + mul rax + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 16] + + add r10, rdx + adc rbx, 0 + mul qword ptr [r8] + add rdx, rdx + adc rbx, 0 + add rax, rax + adc rdx, 0 + add r11, rax + adc rdx, 0 + + mov qword ptr [rcx + 16], r11 + mov r11, r9 + mov rax, qword ptr [r8 + 24] + + add r10, rdx + adc rbx, 0 + mul qword ptr [r8] + add rdx, rdx + adc r11, 0 + add rax, rax + adc rdx, 0 + add r10, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 16] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 8] + add rdx, rdx + adc r11, 0 + add rax, rax + adc rdx, 0 + add r10, rax + adc rdx, 0 + + mov qword ptr [rcx + 24], r10 + mov r10, r9 + mov rax, qword ptr [r8 + 16] + + add rbx, rdx + adc r11, 0 + mul rax + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 24] + + add r11, rdx + adc r10, 0 + mul qword ptr [r8 + 8] + add rdx, rdx + adc r10, 0 + add rax, rax + adc rdx, 0 + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 32] + + add r11, rdx + adc r10, 0 + mul qword ptr [r8] + add rdx, rdx + adc r10, 0 + add rax, rax + adc rdx, 0 + add rbx, rax + adc rdx, 0 + + mov qword ptr [rcx + 32], rbx + mov rbx, r9 + mov rax, qword ptr [r8 + 40] + + add r11, rdx + adc r10, 0 + mul qword ptr [r8] + add rdx, rdx + adc rbx, 0 + add rax, rax + adc rdx, 0 + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 32] + + add r10, rdx + adc rbx, 0 + mul qword ptr [r8 + 8] + add rdx, rdx + adc rbx, 0 + add rax, rax + adc rdx, 0 + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 24] + + add r10, rdx + adc rbx, 0 + mul qword ptr [r8 + 16] + add rdx, rdx + adc rbx, 0 + add rax, rax + adc rdx, 0 + add r11, rax + adc rdx, 0 + + mov qword ptr [rcx + 40], r11 + mov rax, qword ptr [r8 + 24] + mov r11, r9 + + add r10, rdx + adc rbx, 0 + mul rax + add r10, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 32] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 16] + add rdx, rdx + adc r11, 0 + add rax, rax + adc rdx, 0 + add r10, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 40] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 8] + add rdx, rdx + adc r11, 0 + add rax, rax + adc rdx, 0 + add r10, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 48] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8] + add rdx, rdx + adc r11, 0 + add rax, rax + adc rdx, 0 + add r10, rax + adc rdx, 0 + + mov qword ptr [rcx + 48], r10 + mov r10, r9 + mov rax, qword ptr [r8 + 56] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8] + add rdx, rdx + adc r10, 0 + add rax, rax + adc rdx, 0 + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 48] + + add r11, rdx + adc r10, 0 + mul qword ptr [r8 + 8] + add rdx, rdx + adc r10, 0 + add rax, rax + adc rdx, 0 + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 40] + + add r11, rdx + adc r10, 0 + mul qword ptr [r8 + 16] + add rdx, rdx + adc r10, 0 + add rax, rax + adc rdx, 0 + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 32] + + add r11, rdx + adc r10, 0 + mul qword ptr [r8 + 24] + add rdx, rdx + adc r10, 0 + add rax, rax + adc rdx, 0 + add rbx, rax + adc rdx, 0 + + mov qword ptr [rcx + 56], rbx + mov rbx, r9 + mov rax, qword ptr [r8 + 32] + + add r11, rdx + adc r10, 0 + mul rax + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 40] + + add r10, rdx + adc rbx, 0 + mul qword ptr [r8 + 24] + add rdx, rdx + adc rbx, 0 + add rax, rax + adc rdx, 0 + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 48] + + add r10, rdx + adc rbx, 0 + mul qword ptr [r8 + 16] + add rdx, rdx + adc rbx, 0 + add rax, rax + adc rdx, 0 + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 56] + + add r10, rdx + adc rbx, 0 + mul qword ptr [r8 + 8] + add rdx, rdx + adc rbx, 0 + add rax, rax + adc rdx, 0 + add r11, rax + adc rdx, 0 + + mov qword ptr [rcx + 64], r11 + mov rax, qword ptr [r8 + 56] + mov r11, r9 + + add r10, rdx + adc rbx, 0 + mul qword ptr [r8 + 16] + add rdx, rdx + adc r11, 0 + add rax, rax + adc rdx, 0 + add r10, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 48] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 24] + add rdx, rdx + adc r11, 0 + add rax, rax + adc rdx, 0 + add r10, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 40] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 32] + add rdx, rdx + adc r11, 0 + add rax, rax + adc rdx, 0 + add r10, rax + adc rdx, 0 + + mov qword ptr [rcx + 72], r10 + mov r10, r9 + mov rax, qword ptr [r8 + 40] + + add rbx, rdx + adc r11, 0 + mul rax + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 48] + + add r11, rdx + adc r10, 0 + mul qword ptr [r8 + 32] + add rdx, rdx + adc r10, 0 + add rax, rax + adc rdx, 0 + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 56] + + add r11, rdx + adc r10, 0 + mul qword ptr [r8 + 24] + add rdx, rdx + adc r10, 0 + add rax, rax + adc rdx, 0 + add rbx, rax + adc rdx, 0 + + mov qword ptr [rcx + 80], rbx + mov rbx, r9 + mov rax, qword ptr [r8 + 56] + + add r11, rdx + adc r10, 0 + mul qword ptr [r8 + 32] + add rdx, rdx + adc rbx, 0 + add rax, rax + adc rdx, 0 + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 48] + + add r10, rdx + adc rbx, 0 + mul qword ptr [r8 + 40] + add rdx, rdx + adc rbx, 0 + add rax, rax + adc rdx, 0 + add r11, rax + adc rdx, 0 + + mov qword ptr [rcx + 88], r11 + mov r11, r9 + mov rax, qword ptr [r8 + 48] + + add r10, rdx + adc rbx, 0 + mul rax + add r10, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 56] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 40] + add rdx, rdx + adc r11, 0 + add rax, rax + adc rdx, 0 + add r10, rax + adc rdx, 0 + + mov qword ptr [rcx + 96], r10 + mov r10, r9 + mov rax, qword ptr [r8 + 56] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 48] + add rdx, rdx + adc r10, 0 + add rax, rax + adc rdx, 0 + add rbx, rax + adc rdx, 0 + add r11, rdx + adc r10, 0 + + mov qword ptr [rcx + 104], rbx + mov rax, qword ptr [r8 + 56] + mov r8, r11 + + mul rax + add r8, rax + adc rdx, 0 + add r10, rdx + adc r9, 0 + + mov qword ptr [rcx + 112], r8 + mov qword ptr [rcx + 120], r10 + pop rbx + pop rsi + ret +bn_sqr_comba8 ENDP + + +ALIGN 16 +PUBLIC bn_sqr_comba4 +bn_sqr_comba4 PROC + push rbx + xor r9d, r9d + mov rax, qword ptr [rdx] + mov r8, rdx + mov r11, r9 + mov r10, r9 + + mul rax + + mov rbx, r9 + + add r11, rax + adc rdx, 0 + + mov qword ptr [rcx], r11 + mov r11, r9 + mov rax, qword ptr [r8 + 8] + + add r10, rdx + adc rbx, 0 + mul qword ptr [r8] + add rdx, rdx + adc r11, 0 + add rax, rax + adc rdx, 0 + add r10, rax + adc rdx, 0 + + mov qword ptr [rcx + 8], r10 + mov r10, r9 + mov rax, qword ptr [r8 + 8] + + add rbx, rdx + adc r11, 0 + mul rax + add rbx, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 16] + + add r11, rdx + adc r10, 0 + mul qword ptr [r8] + add rdx, rdx + adc r10, 0 + add rax, rax + adc rdx, 0 + add rbx, rax + adc rdx, 0 + + mov qword ptr [rcx + 16], rbx + mov rbx, r9 + mov rax, qword ptr [r8 + 24] + + add r11, rdx + adc r10, 0 + mul qword ptr [r8] + add rdx, rdx + adc rbx, 0 + add rax, rax + adc rdx, 0 + add r11, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 16] + + add r10, rdx + adc rbx, 0 + mul qword ptr [r8 + 8] + add rdx, rdx + adc rbx, 0 + add rax, rax + adc rdx, 0 + add r11, rax + adc rdx, 0 + + mov qword ptr [rcx + 24], r11 + mov r11, r9 + mov rax, qword ptr [r8 + 16] + + add r10, rdx + adc rbx, 0 + mul rax + add r10, rax + adc rdx, 0 + + mov rax, qword ptr [r8 + 24] + + add rbx, rdx + adc r11, 0 + mul qword ptr [r8 + 8] + add rdx, rdx + adc r11, 0 + add rax, rax + adc rdx, 0 + add r10, rax + adc rdx, 0 + add rbx, rdx + adc r11, 0 + + mov qword ptr [rcx + 32], r10 + mov r10, r9 + mov rax, qword ptr [r8 + 24] + + mul qword ptr [r8 + 16] + add rdx, rdx + adc r10, 0 + add rax, rax + adc rdx, 0 + add rbx, rax + adc rdx, 0 + add r11, rdx + adc r10, 0 + + mov qword ptr [rcx + 40], rbx + mov rax, qword ptr [r8 + 24] + mov r8, r11 + + mul rax + add r8, rax + adc rdx, 0 + add r10, rdx + adc r9, 0 + + mov qword ptr [rcx + 48], r8 + mov qword ptr [rcx + 56], r10 + pop rbx + ret +bn_sqr_comba4 ENDP + + +_TEXT ENDS + +END diff --git a/doc/api/_toc.markdown b/doc/api/_toc.markdown index 276b3db8a8..9f658687e0 100644 --- a/doc/api/_toc.markdown +++ b/doc/api/_toc.markdown @@ -1,36 +1,36 @@ * [About these Docs](documentation.html) * [Synopsis](synopsis.html) -* [Globals](globals.html) -* [STDIO](stdio.html) -* [Timers](timers.html) -* [Modules](modules.html) -* [C/C++ Addons](addons.html) -* [Process](process.html) -* [Utilities](util.html) -* [Events](events.html) -* [Domain](domain.html) +* [Assertion Testing](assert.html) * [Buffer](buffer.html) -* [Stream](stream.html) +* [C/C++ Addons](addons.html) +* [Child Processes](child_process.html) +* [Cluster](cluster.html) * [Crypto](crypto.html) -* [TLS/SSL](tls.html) -* [String Decoder](string_decoder.html) -* [File System](fs.html) -* [Path](path.html) -* [Net](net.html) -* [UDP/Datagram](dgram.html) +* [Debugger](debugger.html) * [DNS](dns.html) +* [Domain](domain.html) +* [Events](events.html) +* [File System](fs.html) +* [Globals](globals.html) * [HTTP](http.html) * [HTTPS](https.html) -* [URL](url.html) -* [Query Strings](querystring.html) +* [Modules](modules.html) +* [Net](net.html) +* [OS](os.html) +* [Path](path.html) +* [Process](process.html) * [Punycode](punycode.html) +* [Query Strings](querystring.html) * [Readline](readline.html) * [REPL](repl.html) -* [VM](vm.html) -* [Child Processes](child_process.html) -* [Assertion Testing](assert.html) +* [STDIO](stdio.html) +* [Stream](stream.html) +* [String Decoder](string_decoder.html) +* [Timers](timers.html) +* [TLS/SSL](tls.html) * [TTY](tty.html) +* [UDP/Datagram](dgram.html) +* [URL](url.html) +* [Utilities](util.html) +* [VM](vm.html) * [ZLIB](zlib.html) -* [OS](os.html) -* [Debugger](debugger.html) -* [Cluster](cluster.html) diff --git a/doc/api/child_process.markdown b/doc/api/child_process.markdown index 092cb31e29..d4616e63c2 100644 --- a/doc/api/child_process.markdown +++ b/doc/api/child_process.markdown @@ -221,7 +221,7 @@ The `child.js` could look like this: process.on('message', function(m, socket) { if (m === 'socket') { - socket.end('You where handled as a ' + process.argv[2] + ' person'); + socket.end('You were handled as a ' + process.argv[2] + ' person'); } }); diff --git a/doc/api/cluster.markdown b/doc/api/cluster.markdown index 032e38138e..79aa79044f 100644 --- a/doc/api/cluster.markdown +++ b/doc/api/cluster.markdown @@ -69,7 +69,7 @@ This causes potentially surprising behavior in three edge cases: the worker to use the supplied handle, rather than talk to the master process. If the worker already has the handle, then it's presumed that you know what you are doing. -3. `server.listen(0)` Normally, this will case servers to listen on a +3. `server.listen(0)` Normally, this will cause servers to listen on a random port. However, in a cluster, each worker will receive the same "random" port each time they do `listen(0)`. In essence, the port is random the first time, but predictable thereafter. If you diff --git a/doc/api/net.markdown b/doc/api/net.markdown index f49eb3c695..3f39cda326 100644 --- a/doc/api/net.markdown +++ b/doc/api/net.markdown @@ -21,7 +21,7 @@ packet when the other end of the socket sends a FIN packet. The socket becomes non-readable, but still writable. You should call the `end()` method explicitly. See ['end'][] event for more information. -Here is an example of a echo server which listens for connections +Here is an example of an echo server which listens for connections on port 8124: var net = require('net'); diff --git a/doc/blog/release/v0.8.10.md b/doc/blog/release/v0.8.10.md new file mode 100644 index 0000000000..26a490d5ec --- /dev/null +++ b/doc/blog/release/v0.8.10.md @@ -0,0 +1,93 @@ +title: Node v0.8.10 (Stable) +date: Tue Sep 25 15:36:47 PDT 2012 +slug: node-v0-8-10-stable +category: release +version: 0.8.10 + +2012.09.25, Version 0.8.10 (Stable) + +* npm: Upgrade to 1.1.62 + +* repl: make invalid RegExps throw in the REPL (Nathan Rajlich) + +* v8: loosen artificial mmap constraint (Bryan Cantrill) + +* process: fix setuid() and setgid() error reporting (Ben Noordhuis) + +* domain: Properly exit() on domain disposal (isaacs) + +* fs: fix watchFile() missing deletion events (Ben Noordhuis) + +* fs: fix assert in fs.watch() (Ben Noordhuis) + +* fs: don't segfault on deeply recursive stat() (Ben Noordhuis) + +* http: Remove timeout handler when data arrives (Frédéric Germain) + +* http: make the client "res" object gets the same domain as "req" (Nathan Rajlich) + +* windows: don't blow up when an invalid FD is used (Bert Belder) + +* unix: map EDQUOT to UV_ENOSPC (Charlie McConnell) + +* linux: improve /proc/cpuinfo parser (Ben Noordhuis) + +* win/tty: reset background brightness when color is set to default (Bert Belder) + +* unix: put child process stdio fds in blocking mode (Ben Noordhuis) + +* unix: fix EMFILE busy loop (Ben Noordhuis) + +* sunos: don't set TCP_KEEPALIVE (Ben Noordhuis) + +* tls: Use slab allocator for memory management (Fedor Indutny) + +* openssl: Use optimized assembly code for x86 and x64 (Bert Belder) + + +Source Code: http://nodejs.org/dist/v0.8.10/node-v0.8.10.tar.gz + +Macintosh Installer (Universal): http://nodejs.org/dist/v0.8.10/node-v0.8.10.pkg + +Windows Installer: http://nodejs.org/dist/v0.8.10/node-v0.8.10-x86.msi + +Windows x64 Installer: http://nodejs.org/dist/v0.8.10/x64/node-v0.8.10-x64.msi + +Windows x64 Files: http://nodejs.org/dist/v0.8.10/x64/ + +Linux 32-bit Binary: http://nodejs.org/dist/v0.8.10/node-v0.8.10-linux-x86.tar.gz + +Linux 64-bit Binary: http://nodejs.org/dist/v0.8.10/node-v0.8.10-linux-x64.tar.gz + +Solaris 32-bit Binary: http://nodejs.org/dist/v0.8.10/node-v0.8.10-sunos-x86.tar.gz + +Solaris 64-bit Binary: http://nodejs.org/dist/v0.8.10/node-v0.8.10-sunos-x64.tar.gz + +Other release files: http://nodejs.org/dist/v0.8.10/ + +Website: http://nodejs.org/docs/v0.8.10/ + +Documentation: http://nodejs.org/docs/v0.8.10/api/ + +Shasums: + +``` +ae327ce5cc9f46e7d1bdd04f06ea299e44f9a0fc node-v0.8.10-darwin-x64.tar.gz +812405695e3522bfd998d67b6de2daff55ff0a7b node-v0.8.10-darwin-x86.tar.gz +8ef4e489817a79aaea75cffd09cc4b072c38fe2e node-v0.8.10-linux-x64.tar.gz +76f289b12ba41730c43b59d286de5cee571c9064 node-v0.8.10-linux-x86.tar.gz +61e40e8a5e911b26889ad33856029d783388778a node-v0.8.10-sunos-x64.tar.gz +2fd06dc2d145fdba6b2800186ffcaebb0fe3b109 node-v0.8.10-sunos-x86.tar.gz +3e49e1c958815d0144cafe5e43c2fa83e775dd1c node-v0.8.10-x86.msi +9605340dca27725110eebcb15fdf61599622e308 node-v0.8.10.pkg +c596cce77726724441cf7fc98f42df3a5335ab8e node-v0.8.10.tar.gz +f6d172e3452e2bf429dc75836a385eff22407c83 node.exe +ccb8c0e0fa052d8da48ea421cc7a220bb89835f9 node.exp +7ea077e6ca1216d5e8f42e445f75f0542f7d85c4 node.lib +d86ad55c37ac1a0975731ab444fc58c93a7bca47 node.pdb +90fc70b09f92f788fc68a116f589a86ca3309fdb x64/node-v0.8.10-x64.msi +4b62cedf4bbbff1ffb8df6d52c9a57255f383ad3 x64/node.exe +6b4b813c3b065154ce437b7f36a15beceeb76af0 x64/node.exp +9e7dd3ddca3ba37483ac2125c39a52e72035e1d0 x64/node.lib +28de8dd05af5e390f5bd63508bd27b7c683177de x64/node.pdb +``` diff --git a/doc/blog/release/v0.8.11.md b/doc/blog/release/v0.8.11.md new file mode 100644 index 0000000000..f378d5b25d --- /dev/null +++ b/doc/blog/release/v0.8.11.md @@ -0,0 +1,63 @@ +category: release +version: v0.8.11 +date: Thu Sep 27 10:13:12 PDT 2012 +slug: node-v0.8.11 +title: Node v0.8.11 (Stable) + +This is just a minor bugfix release to correct the regression in +[v0.8.10](http://blog.nodejs.org/2012/09/25/node-v0-8-10-stable/). + +If you haven't yet upgraded to v0.8.10, then please use this release +instead. + +2012.09.27, Version 0.8.11 (Stable) + +* fs: Fix stat() size reporting for large files (Ben Noordhuis) + + +Source Code: http://nodejs.org/dist/v0.8.11/node-v0.8.11.tar.gz + +Macintosh Installer (Universal): http://nodejs.org/dist/v0.8.11/node-v0.8.11.pkg + +Windows Installer: http://nodejs.org/dist/v0.8.11/node-v0.8.11-x86.msi + +Windows x64 Installer: http://nodejs.org/dist/v0.8.11/x64/node-v0.8.11-x64.msi + +Windows x64 Files: http://nodejs.org/dist/v0.8.11/x64/ + +Linux 32-bit Binary: http://nodejs.org/dist/v0.8.11/node-v0.8.11-linux-x86.tar.gz + +Linux 64-bit Binary: http://nodejs.org/dist/v0.8.11/node-v0.8.11-linux-x64.tar.gz + +Solaris 32-bit Binary: http://nodejs.org/dist/v0.8.11/node-v0.8.11-sunos-x86.tar.gz + +Solaris 64-bit Binary: http://nodejs.org/dist/v0.8.11/node-v0.8.11-sunos-x64.tar.gz + +Other release files: http://nodejs.org/dist/v0.8.11/ + +Website: http://nodejs.org/docs/v0.8.11/ + +Documentation: http://nodejs.org/docs/v0.8.11/api/ + +Shasums: + +``` +3677fdcce837233d4d3d5cdfb8685123ef38fcc2 node-v0.8.11-darwin-x64.tar.gz +24213b076d5c95a1ee7598c540a454a4d6b1d899 node-v0.8.11-darwin-x86.tar.gz +380e533b7953767ec3a43109d37615238296d15c node-v0.8.11-linux-x64.tar.gz +0d9c1bd3a97aa7a5adf6274271f4a8e7745ff704 node-v0.8.11-linux-x86.tar.gz +d4dbb70ca6a3e06c763b7be5fffaae1c7630bd69 node-v0.8.11-sunos-x64.tar.gz +d8fcd334118576a744a57eb1f3565c242810f4f1 node-v0.8.11-sunos-x86.tar.gz +80a14ed82672d3c5c14f60f41ba3f03d65dde13f node-v0.8.11-x86.msi +8a096cdaf7c3e76ee82373214b51a7c7f306de47 node-v0.8.11.pkg +e9dd36cbbe03c632ee7e9c52e06122fa022981c8 node-v0.8.11.tar.gz +5bf31a7e2518d06df1dd05f135617db8c32d8a2e node.exe +79a21c6de2d8e38937865c4cd36306b92e37c832 node.exp +31862938d8cd95efe0e6121764c7797a1487fe51 node.lib +2bbcad390e7fc122be74cb1a116f5420057e9600 node.pdb +30798c0b6d69b13ba94c3501b222f88212f77149 x64/node-v0.8.11-x64.msi +1e69c413252121ab475420795023f9799823d3f7 x64/node.exe +470683d233c9d0295f45f5635203560b242d6f7c x64/node.exp +2134bf022d719da1e455585792af8782ffe81d33 x64/node.lib +1c2a22d0ce3c902f5dae7fde15d32bd9393a2153 x64/node.pdb +``` diff --git a/doc/blog/release/v0.9.2.md b/doc/blog/release/v0.9.2.md new file mode 100644 index 0000000000..f12d0cf57d --- /dev/null +++ b/doc/blog/release/v0.9.2.md @@ -0,0 +1,95 @@ +title: Version 0.9.2 (Unstable) +category: release +version: 0.9.2 +date: Mon Sep 17 18:25:53 PDT 2012 +slug: node-v0-9-2-unstable + +2012.09.17, Version 0.9.2 (Unstable) + +* http_parser: upgrade to ad3b631 + +* openssl: upgrade 1.0.1c + +* darwin: use FSEvents to watch directory changes (Fedor Indutny) + +* unix: support missing API on NetBSD (Shigeki Ohtsu) + +* unix: fix EMFILE busy loop (Ben Noordhuis) + +* windows: un-break writable tty handles (Bert Belder) + +* windows: map WSAESHUTDOWN to UV_EPIPE (Bert Belder) + +* windows: make spawn with custom environment work again (Bert Belder) + +* windows: map ERROR_DIRECTORY to UV_ENOENT (Bert Belder) + +* tls, https: validate server certificate by default (Ben Noordhuis) + +* tls, https: throw exception on missing key/cert (Ben Noordhuis) + +* tls: async session storage (Fedor Indutny) + +* installer: don't install header files (Ben Noordhuis) + +* buffer: implement Buffer.prototype.toJSON() (Nathan Rajlich) + +* buffer: added support for writing NaN and Infinity (koichik) + +* http: make http.ServerResponse emit 'end' (Ben Noordhuis) + +* build: ./configure --ninja (Ben Noordhuis, Timothy J Fontaine) + +* installer: fix --without-npm (Ben Noordhuis) + +* cli: make -p equivalent to -pe (Ben Noordhuis) + +* url: Go much faster by using Url class (isaacs) + + +Source Code: http://nodejs.org/dist/v0.9.2/node-v0.9.2.tar.gz + +Macintosh Installer (Universal): http://nodejs.org/dist/v0.9.2/node-v0.9.2.pkg + +Windows Installer: http://nodejs.org/dist/v0.9.2/node-v0.9.2-x86.msi + +Windows x64 Installer: http://nodejs.org/dist/v0.9.2/x64/node-v0.9.2-x64.msi + +Windows x64 Files: http://nodejs.org/dist/v0.9.2/x64/ + +Linux 32-bit Binary: http://nodejs.org/dist/v0.9.2/node-v0.9.2-linux-x86.tar.gz + +Linux 64-bit Binary: http://nodejs.org/dist/v0.9.2/node-v0.9.2-linux-x64.tar.gz + +Solaris 32-bit Binary: http://nodejs.org/dist/v0.9.2/node-v0.9.2-sunos-x86.tar.gz + +Solaris 64-bit Binary: http://nodejs.org/dist/v0.9.2/node-v0.9.2-sunos-x64.tar.gz + +Other release files: http://nodejs.org/dist/v0.9.2/ + +Website: http://nodejs.org/docs/v0.9.2/ + +Documentation: http://nodejs.org/docs/v0.9.2/api/ + +Shasums: + +``` +3d1bb82013cbefd199abedaf0fe91d18579939b5 node-v0.9.2-darwin-x64.tar.gz +0a8e43e13ae6ce13ee3c8bb281d9a26aacc3ba3c node-v0.9.2-darwin-x86.tar.gz +c5c2708d796d0e37c5a401af39bfa17c9c3b67c0 node-v0.9.2-linux-x64.tar.gz +0d0a09b34b74f2c9f310f044cd142d0b80885c22 node-v0.9.2-linux-x86.tar.gz +0bcc9a23e601cd8bef42a2e250d918ccb03b3f5b node-v0.9.2-sunos-x64.tar.gz +7827998ec5ca442f26f824f46b51f33d0c9bbbb7 node-v0.9.2-sunos-x86.tar.gz +ed1c7d8a966c786969e3b4f68081cc5b3c753a03 node-v0.9.2-x86.msi +e1a1270d3f2a398738a363c68e8f30fd47dd5eb6 node-v0.9.2.pkg +09dd5e2135ab67ee9544f2b6ce0c5ab0e95b02b8 node-v0.9.2.tar.gz +8bfd33550b0115f71aed15a0c114a13cd573e10b node.exe +3484b1c61442bd2ca7e00d06c61ad7fa6f61acad node.exp +37dcaa77234b63a3ce3cecdea27041b7565698cc node.lib +52abfb1b09f6facb0cda7c2e27b1bb48f8e75404 node.pdb +c4c3f87c5dd7a0d36d682fb449cc6a8a245a4789 x64/node-v0.9.2-x64.msi +d60fb389deada9eb753948bedb84b2f797424a93 x64/node.exe +04190c31210b2bc7ee80679167920567c166db75 x64/node.exp +dfb5a231905da844279bf86984813440e152becf x64/node.lib +d5c5e26395e5c714efd4855505dcf0a31c57e22e x64/node.pdb +``` diff --git a/doc/cla.html b/doc/cla.html index ed5660b7bb..1be563559f 100644 --- a/doc/cla.html +++ b/doc/cla.html @@ -54,39 +54,12 @@ license is for your protection as well as the protection of NodeJS and its licensees; it does not change your rights to use your own Contributions for any other purpose. Please complete the following information about you and the -Contributions and send us an original signed Agreement at - -

-Joyent, Inc
-One Embarcadero Center, 9th Floor
-San Francisco, CA 94111
-U.S.A. - -

-Scanned agreements may also be emailed in PDF format to -emily@joyent.com. You should also keep a copy for your own -records. +Contributions and sign electronically by filling out the form +below.

If you have questions about these terms, please contact us -at emily@joyent.com. - - -

-Full name: _________________________________________________
-
-Mailing Address: ___________________________________________
-
-____________________________________________________________
-
-Country:   _________________________________________________
-
-Telephone: _________________________________________________
-
-Facsimile: _________________________________________________
-
-E-Mail:    _________________________________________________
-
+at isaacs@joyent.com.

Corporate Contributions:

@@ -98,17 +71,7 @@ otherwise may claim rights in the Contributions, please provide information about your employer's policy on contributing to open source projects, including the name of the supervisor to contact in connection with such -contributions: - -
-
-____________________________________________________________
-
-____________________________________________________________
-
-____________________________________________________________
-
- +contributions.

You and NodeJS agree:

@@ -172,14 +135,6 @@ CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - -
-
-
-Please sign: _______________________________________________
-
-Date: ______________________________________________________
-
@@ -187,9 +142,52 @@ Date: ______________________________________________________ +

As an alternative to electronic signing, you may also print +the document and send the original to: + +

+Joyent, Inc
+One Embarcadero Center, 9th Floor
+San Francisco, CA 94111
+U.S.A. + +

+Scanned agreements may also be emailed in PDF format to +isaacs@joyent.com. You should also keep a copy for your own +records. + +

+Full name: _________________________________________________
+
+Mailing Address: ___________________________________________
+
+____________________________________________________________
+
+Country:   _________________________________________________
+
+Telephone: _________________________________________________
+
+Facsimile: _________________________________________________
+
+E-Mail:    _________________________________________________
+
+Employer:  _________________________________________________
+
+Employer Contact:   ________________________________________
+
+Employer Open Source Contribution Policy:  _________________
+
+____________________________________________________________
+
+____________________________________________________________
+
+Please sign: _______________________________________________
+
+Date: ______________________________________________________
+
diff --git a/lib/domain.js b/lib/domain.js index e219c5e507..fe71235e1e 100644 --- a/lib/domain.js +++ b/lib/domain.js @@ -59,7 +59,7 @@ function uncaughtHandler(er) { domain_thrown: true }); exports.active.emit('error', er); - exports.active.exit(); + if (exports.active) exports.active.exit(); } else if (process.listeners('uncaughtException').length === 1) { // if there are other handlers, then they'll take care of it. // but if not, then we need to crash now. @@ -209,6 +209,9 @@ Domain.prototype.bind = function(cb, interceptError) { Domain.prototype.dispose = function() { if (this._disposed) return; + // if we're the active domain, then get out now. + this.exit(); + this.emit('dispose'); // remove error handlers. diff --git a/lib/events.js b/lib/events.js index 11f91b5ccb..d71380dcd6 100644 --- a/lib/events.js +++ b/lib/events.js @@ -45,6 +45,8 @@ EventEmitter.prototype.setMaxListeners = function(n) { this._maxListeners = n; }; +// non-global reference, for speed. +var PROCESS; EventEmitter.prototype.emit = function() { var type = arguments[0]; @@ -77,7 +79,10 @@ EventEmitter.prototype.emit = function() { if (typeof handler == 'function') { if (this.domain) { - this.domain.enter(); + PROCESS = PROCESS || process; + if (this !== PROCESS) { + this.domain.enter(); + } } switch (arguments.length) { // fast cases @@ -97,14 +102,17 @@ EventEmitter.prototype.emit = function() { for (var i = 1; i < l; i++) args[i - 1] = arguments[i]; handler.apply(this, args); } - if (this.domain) { + if (this.domain && this !== PROCESS) { this.domain.exit(); } return true; } else if (isArray(handler)) { if (this.domain) { - this.domain.enter(); + PROCESS = PROCESS || process; + if (this !== PROCESS) { + this.domain.enter(); + } } var l = arguments.length; var args = new Array(l - 1); @@ -114,7 +122,7 @@ EventEmitter.prototype.emit = function() { for (var i = 0, l = listeners.length; i < l; i++) { listeners[i].apply(this, args); } - if (this.domain) { + if (this.domain && this !== PROCESS) { this.domain.exit(); } return true; diff --git a/lib/fs.js b/lib/fs.js index 3ed99c77ff..e8a9aa4f72 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -956,7 +956,10 @@ function StatWatcher() { var oldStatus = -1; this._handle.onchange = function(current, previous, newStatus) { - if (oldStatus == -1 && newStatus == -1) return; + if (oldStatus === -1 && + newStatus === -1 && + current.nlink === previous.nlink) return; + oldStatus = newStatus; self.emit('change', current, previous); }; diff --git a/lib/http.js b/lib/http.js index c4e0a77aad..afa55b9423 100644 --- a/lib/http.js +++ b/lib/http.js @@ -1421,6 +1421,12 @@ function parserOnIncomingClient(res, shouldKeepAlive) { var socket = this.socket; var req = socket._httpMessage; + // propogate "domain" setting... + if (req.domain && !res.domain) { + debug('setting "res.domain"'); + res.domain = req.domain; + } + debug('AGENT incoming response!'); if (req.res) { diff --git a/lib/repl.js b/lib/repl.js index dee6f2d3af..361745fc16 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -271,6 +271,9 @@ function REPLServer(prompt, stream, eval_, useGlobal, ignoreUndefined) { // Convert error to string e = e && (e.stack || e.toString()); return e && e.match(/^SyntaxError/) && + // RegExp syntax error + !e.match(/^SyntaxError: Invalid regular expression/) && + // JSON.parse() error !(e.match(/^SyntaxError: Unexpected token .*\n/) && e.match(/\n at Object.parse \(native\)\n/)); } diff --git a/src/fs_event_wrap.cc b/src/fs_event_wrap.cc index adac00c9fc..bb45733007 100644 --- a/src/fs_event_wrap.cc +++ b/src/fs_event_wrap.cc @@ -166,12 +166,17 @@ void FSEventWrap::OnEvent(uv_fs_event_t* handle, const char* filename, Handle FSEventWrap::Close(const Arguments& args) { HandleScope scope; - UNWRAP(FSEventWrap) - - if (!wrap->initialized_) - return Undefined(); - + // Unwrap manually here. The UNWRAP() macro asserts that wrap != NULL. + // That usually indicates an error but not here: double closes are possible + // and legal, HandleWrap::Close() deals with them the same way. + assert(!args.Holder().IsEmpty()); + assert(args.Holder()->InternalFieldCount() > 0); + void* ptr = args.Holder()->GetPointerFromInternalField(0); + FSEventWrap* wrap = static_cast(ptr); + + if (wrap == NULL || wrap->initialized_ == false) return Undefined(); wrap->initialized_ = false; + return HandleWrap::Close(args); } diff --git a/src/node.cc b/src/node.cc index d6c8fb3a1e..9d359f1e2e 100644 --- a/src/node.cc +++ b/src/node.cc @@ -1488,6 +1488,7 @@ static Handle SetGid(const Arguments& args) { struct group grp, *grpp = NULL; int err; + errno = 0; if ((err = getgrnam_r(*grpnam, &grp, getbuf, ARRAY_SIZE(getbuf), &grpp)) || grpp == NULL) { if (errno == 0) @@ -1528,6 +1529,7 @@ static Handle SetUid(const Arguments& args) { struct passwd pwd, *pwdp = NULL; int err; + errno = 0; if ((err = getpwnam_r(*pwnam, &pwd, getbuf, ARRAY_SIZE(getbuf), &pwdp)) || pwdp == NULL) { if (errno == 0) diff --git a/src/node_file.cc b/src/node_file.cc index 1fdf9a4c94..714a18c941 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -301,46 +301,59 @@ Local BuildStatsObject(const uv_statbuf_t* s) { Local stats = stats_constructor_template->GetFunction()->NewInstance(); - /* ID of device containing file */ - stats->Set(dev_symbol, Integer::New(s->st_dev)); - - /* inode number */ - stats->Set(ino_symbol, Integer::New(s->st_ino)); - - /* protection */ - stats->Set(mode_symbol, Integer::New(s->st_mode)); - - /* number of hard links */ - stats->Set(nlink_symbol, Integer::New(s->st_nlink)); - - /* user ID of owner */ - stats->Set(uid_symbol, Integer::New(s->st_uid)); - - /* group ID of owner */ - stats->Set(gid_symbol, Integer::New(s->st_gid)); - - /* device ID (if special file) */ - stats->Set(rdev_symbol, Integer::New(s->st_rdev)); - - /* total size, in bytes */ - stats->Set(size_symbol, Number::New(s->st_size)); - -#ifdef __POSIX__ - /* blocksize for filesystem I/O */ - stats->Set(blksize_symbol, Integer::New(s->st_blksize)); - - /* number of blocks allocated */ - stats->Set(blocks_symbol, Integer::New(s->st_blocks)); -#endif - - /* time of last access */ - stats->Set(atime_symbol, NODE_UNIXTIME_V8(s->st_atime)); - - /* time of last modification */ - stats->Set(mtime_symbol, NODE_UNIXTIME_V8(s->st_mtime)); - - /* time of last status change */ - stats->Set(ctime_symbol, NODE_UNIXTIME_V8(s->st_ctime)); + if (stats.IsEmpty()) return Local(); + + // The code below is very nasty-looking but it prevents a segmentation fault + // when people run JS code like the snippet below. It's apparently more + // common than you would expect, several people have reported this crash... + // + // function crash() { + // fs.statSync('.'); + // crash(); + // } + // + // We need to check the return value of Integer::New() and Date::New() + // and make sure that we bail out when V8 returns an empty handle. +#define X(name) \ + { \ + Local val = Integer::New(s->st_##name); \ + if (val.IsEmpty()) return Local(); \ + stats->Set(name##_symbol, val); \ + } + X(dev) + X(mode) + X(nlink) + X(uid) + X(gid) + X(rdev) +# if defined(__POSIX__) + X(blksize) +# endif +#undef X + +#define X(name) \ + { \ + Local val = Number::New(static_cast(s->st_##name)); \ + if (val.IsEmpty()) return Local(); \ + stats->Set(name##_symbol, val); \ + } + X(ino) + X(size) +# if defined(__POSIX__) + X(blocks) +# endif +#undef X + +#define X(name) \ + { \ + Local val = NODE_UNIXTIME_V8(s->st_##name); \ + if (val.IsEmpty()) return Local(); \ + stats->Set(name##_symbol, val); \ + } + X(atime) + X(mtime) + X(ctime) +#undef X return scope.Close(stats); } diff --git a/test/fixtures/test-regress-GH-4015.js b/test/fixtures/test-regress-GH-4015.js new file mode 100644 index 0000000000..0d9c05d6d7 --- /dev/null +++ b/test/fixtures/test-regress-GH-4015.js @@ -0,0 +1,7 @@ +var fs = require('fs'); + +function load() { + fs.statSync('.'); + load(); +} +load(); diff --git a/test/internet/test-dns.js b/test/internet/test-dns.js index e0d5486c8f..a079ec8d44 100644 --- a/test/internet/test-dns.js +++ b/test/internet/test-dns.js @@ -221,7 +221,7 @@ TEST(function test_resolveSrv(done) { TEST(function test_resolveCname(done) { - var req = dns.resolveCname('www.google.com', function(err, names) { + var req = dns.resolveCname('www.microsoft.com', function(err, names) { if (err) throw err; assert.ok(names.length > 0); diff --git a/test/simple/test-domain-exit-dispose.js b/test/simple/test-domain-exit-dispose.js new file mode 100644 index 0000000000..fd990911c1 --- /dev/null +++ b/test/simple/test-domain-exit-dispose.js @@ -0,0 +1,67 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +var common = require('../common.js'); +var assert = require('assert'); +var domain = require('domain'); +var disposalFailed = false; + +// no matter what happens, we should increment a 10 times. +var a = 0; +log(); +function log(){ + console.log(a++, process.domain); + if (a < 10) setTimeout(log, 20); +} + +// in 50ms we'll throw an error. +setTimeout(err, 50); +function err(){ + var d = domain.create(); + d.on('error', handle); + d.run(err2); + + function err2() { + // this timeout should never be called, since the domain gets + // disposed when the error happens. + setTimeout(function() { + console.error('This should not happen.'); + disposalFailed = true; + process.exit(1); + }); + + // this function doesn't exist, and throws an error as a result. + err3(); + } + + function handle(e) { + // this should clean up everything properly. + d.dispose(); + console.error(e); + console.error('in handler', process.domain, process.domain === d); + } +} + +process.on('exit', function() { + assert.equal(a, 10); + assert.equal(disposalFailed, false); + console.log('ok'); +}); diff --git a/test/simple/test-http-client-response-domain.js b/test/simple/test-http-client-response-domain.js new file mode 100644 index 0000000000..7a3c41bda4 --- /dev/null +++ b/test/simple/test-http-client-response-domain.js @@ -0,0 +1,65 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +var common = require('../common'), + assert = require('assert'), + http = require('http'), + domain = require('domain'); + +var gotDomainError = false; +var d; + +process.on('exit', function() { + assert(gotDomainError); +}); + +// first fire up a simple HTTP server +var server = http.createServer(function(req, res) { + res.writeHead(200); + res.end(); + server.close(); +}); +server.listen(common.PIPE, function() { + // create a domain + d = domain.create(); + d.run(test); +}); + +function test() { + + d.on('error', function(err) { + gotDomainError = true; + assert.equal('should be caught by domain', err.message); + }); + + var req = http.get({ + socketPath: common.PIPE, + headers: {'Content-Length':'1'}, + method: 'POST', + path: '/' + }); + req.on('response', function(res) { + res.on('end', function() { + res.emit('error', new Error('should be caught by domain')); + }); + }); + req.end(); +} diff --git a/test/simple/test-http-client-timeout-agent.js b/test/simple/test-http-client-timeout-agent.js index 99e9f8d672..1509eb7a3e 100644 --- a/test/simple/test-http-client-timeout-agent.js +++ b/test/simple/test-http-client-timeout-agent.js @@ -82,14 +82,16 @@ server.listen(options.port, options.host, function() { }); req.end(); } - var tid = setTimeout(function() { - finish(); - }, timeout); - function finish() { - clearTimeout(tid); - server.close(); - } + setTimeout(function maybeDone() { + if (requests_done >= requests_sent) { + setTimeout(function() { + server.close(); + }, 100); + } else { + setTimeout(maybeDone, 100); + } + }, 100); }); process.on('exit', function() { diff --git a/test/simple/test-regress-GH-4015.js b/test/simple/test-regress-GH-4015.js new file mode 100644 index 0000000000..b66584f804 --- /dev/null +++ b/test/simple/test-regress-GH-4015.js @@ -0,0 +1,33 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +var common = require('../common'); +var assert = require('assert'); +var exec = require('child_process').exec; + +var cmd = process.execPath + + ' ' + + common.fixturesDir + + '/test-regress-GH-4015.js'; + +exec(cmd, function(err, stdout, stderr) { + assert(/RangeError: Maximum call stack size exceeded/.test(stderr)); +}); diff --git a/test/simple/test-regress-GH-4027.js b/test/simple/test-regress-GH-4027.js new file mode 100644 index 0000000000..3dff1684d7 --- /dev/null +++ b/test/simple/test-regress-GH-4027.js @@ -0,0 +1,41 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +var common = require('../common'); +var assert = require('assert'); +var path = require('path'); +var fs = require('fs'); + +var filename = path.join(common.tmpDir, 'watched'); +fs.writeFileSync(filename, 'quis custodiet ipsos custodes'); +setTimeout(fs.unlinkSync, 100, filename); + +var seenEvent = 0; +process.on('exit', function() { + assert.equal(seenEvent, 1); +}); + +fs.watchFile(filename, { interval: 50 }, function(curr, prev) { + assert.equal(prev.nlink, 1); + assert.equal(curr.nlink, 0); + fs.unwatchFile(filename); + seenEvent++; +}); diff --git a/test/simple/test-repl.js b/test/simple/test-repl.js index 6cf2aaaac3..7360dfd998 100644 --- a/test/simple/test-repl.js +++ b/test/simple/test-repl.js @@ -126,6 +126,10 @@ function error_test() { // should throw { client: client_unix, send: 'JSON.parse(\'{invalid: \\\'json\\\'}\');', expect: /^SyntaxError: Unexpected token i/ }, + // invalid RegExps are a special case of syntax error, + // should throw + { client: client_unix, send: '/(/;', + expect: /^SyntaxError: Invalid regular expression\:/ }, // Named functions can be used: { client: client_unix, send: 'function blah() { return 1; }', expect: prompt_unix },