Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2012-09-28 20:47:48 +0400
committerisaacs <i@izs.me>2012-09-28 20:47:48 +0400
commitae40f1c438050bf4607143862259ae10931e3a3c (patch)
tree0e90ed620fd8dd2eab01388eacbfae1615359553
parentd68c02e3fe50405279a138e908701558939ce926 (diff)
parent33a5c8a814483ff48ba3acd94e091335b3536870 (diff)
Merge remote-tracking branch 'ry/v0.8' into v0.8-merge
Conflicts: AUTHORS ChangeLog deps/openssl/openssl.gyp deps/uv/src/unix/linux/linux-core.c deps/uv/src/unix/process.c deps/uv/src/unix/stream.c deps/v8/src/arm/builtins-arm.cc deps/v8/src/arm/code-stubs-arm.cc deps/v8/src/arm/full-codegen-arm.cc lib/tls.js src/node_version.h test/simple/test-http-client-timeout-agent.js
-rw-r--r--AUTHORS2
-rw-r--r--ChangeLog46
-rw-r--r--deps/npm/LICENSE21
-rw-r--r--deps/npm/Makefile4
-rw-r--r--deps/npm/html/api/bin.html2
-rw-r--r--deps/npm/html/api/bugs.html2
-rw-r--r--deps/npm/html/api/commands.html2
-rw-r--r--deps/npm/html/api/config.html2
-rw-r--r--deps/npm/html/api/deprecate.html2
-rw-r--r--deps/npm/html/api/docs.html2
-rw-r--r--deps/npm/html/api/edit.html2
-rw-r--r--deps/npm/html/api/explore.html2
-rw-r--r--deps/npm/html/api/help-search.html2
-rw-r--r--deps/npm/html/api/init.html2
-rw-r--r--deps/npm/html/api/install.html2
-rw-r--r--deps/npm/html/api/link.html2
-rw-r--r--deps/npm/html/api/load.html2
-rw-r--r--deps/npm/html/api/ls.html2
-rw-r--r--deps/npm/html/api/npm.html4
-rw-r--r--deps/npm/html/api/outdated.html2
-rw-r--r--deps/npm/html/api/owner.html2
-rw-r--r--deps/npm/html/api/pack.html2
-rw-r--r--deps/npm/html/api/prefix.html2
-rw-r--r--deps/npm/html/api/prune.html2
-rw-r--r--deps/npm/html/api/publish.html2
-rw-r--r--deps/npm/html/api/rebuild.html2
-rw-r--r--deps/npm/html/api/restart.html2
-rw-r--r--deps/npm/html/api/root.html2
-rw-r--r--deps/npm/html/api/run-script.html2
-rw-r--r--deps/npm/html/api/search.html2
-rw-r--r--deps/npm/html/api/shrinkwrap.html2
-rw-r--r--deps/npm/html/api/start.html2
-rw-r--r--deps/npm/html/api/stop.html2
-rw-r--r--deps/npm/html/api/submodule.html2
-rw-r--r--deps/npm/html/api/tag.html2
-rw-r--r--deps/npm/html/api/test.html2
-rw-r--r--deps/npm/html/api/uninstall.html2
-rw-r--r--deps/npm/html/api/unpublish.html2
-rw-r--r--deps/npm/html/api/update.html2
-rw-r--r--deps/npm/html/api/version.html2
-rw-r--r--deps/npm/html/api/view.html2
-rw-r--r--deps/npm/html/api/whoami.html2
-rw-r--r--deps/npm/html/doc/README.html2
-rw-r--r--deps/npm/html/doc/adduser.html2
-rw-r--r--deps/npm/html/doc/bin.html2
-rw-r--r--deps/npm/html/doc/bugs.html2
-rw-r--r--deps/npm/html/doc/build.html2
-rw-r--r--deps/npm/html/doc/bundle.html2
-rw-r--r--deps/npm/html/doc/cache.html2
-rw-r--r--deps/npm/html/doc/changelog.html2
-rw-r--r--deps/npm/html/doc/coding-style.html2
-rw-r--r--deps/npm/html/doc/completion.html2
-rw-r--r--deps/npm/html/doc/config.html2
-rw-r--r--deps/npm/html/doc/dedupe.html2
-rw-r--r--deps/npm/html/doc/deprecate.html2
-rw-r--r--deps/npm/html/doc/developers.html2
-rw-r--r--deps/npm/html/doc/disputes.html2
-rw-r--r--deps/npm/html/doc/docs.html2
-rw-r--r--deps/npm/html/doc/edit.html2
-rw-r--r--deps/npm/html/doc/explore.html2
-rw-r--r--deps/npm/html/doc/faq.html2
-rw-r--r--deps/npm/html/doc/folders.html2
-rw-r--r--deps/npm/html/doc/help-search.html2
-rw-r--r--deps/npm/html/doc/help.html2
-rw-r--r--deps/npm/html/doc/index.html2
-rw-r--r--deps/npm/html/doc/init.html2
-rw-r--r--deps/npm/html/doc/install.html2
-rw-r--r--deps/npm/html/doc/json.html2
-rw-r--r--deps/npm/html/doc/link.html2
-rw-r--r--deps/npm/html/doc/ls.html4
-rw-r--r--deps/npm/html/doc/npm.html4
-rw-r--r--deps/npm/html/doc/outdated.html2
-rw-r--r--deps/npm/html/doc/owner.html2
-rw-r--r--deps/npm/html/doc/pack.html2
-rw-r--r--deps/npm/html/doc/prefix.html2
-rw-r--r--deps/npm/html/doc/prune.html2
-rw-r--r--deps/npm/html/doc/publish.html2
-rw-r--r--deps/npm/html/doc/rebuild.html2
-rw-r--r--deps/npm/html/doc/registry.html2
-rw-r--r--deps/npm/html/doc/removing-npm.html2
-rw-r--r--deps/npm/html/doc/restart.html2
-rw-r--r--deps/npm/html/doc/root.html2
-rw-r--r--deps/npm/html/doc/run-script.html2
-rw-r--r--deps/npm/html/doc/scripts.html2
-rw-r--r--deps/npm/html/doc/search.html2
-rw-r--r--deps/npm/html/doc/semver.html2
-rw-r--r--deps/npm/html/doc/shrinkwrap.html2
-rw-r--r--deps/npm/html/doc/star.html2
-rw-r--r--deps/npm/html/doc/start.html2
-rw-r--r--deps/npm/html/doc/stop.html2
-rw-r--r--deps/npm/html/doc/submodule.html2
-rw-r--r--deps/npm/html/doc/tag.html2
-rw-r--r--deps/npm/html/doc/test.html2
-rw-r--r--deps/npm/html/doc/uninstall.html2
-rw-r--r--deps/npm/html/doc/unpublish.html2
-rw-r--r--deps/npm/html/doc/update.html2
-rw-r--r--deps/npm/html/doc/version.html2
-rw-r--r--deps/npm/html/doc/view.html2
-rw-r--r--deps/npm/html/doc/whoami.html2
-rw-r--r--deps/npm/lib/bugs.js40
-rw-r--r--deps/npm/lib/docs.js36
-rw-r--r--deps/npm/lib/help.js14
-rw-r--r--deps/npm/lib/ls.js10
-rw-r--r--deps/npm/man/man1/ls.12
-rw-r--r--deps/npm/man/man1/npm.12
-rw-r--r--deps/npm/man/man3/npm.32
-rw-r--r--deps/npm/node_modules/couch-login/couch-login.js76
-rw-r--r--deps/npm/node_modules/couch-login/package.json4
-rw-r--r--deps/npm/node_modules/couch-login/test/basic.js13
-rw-r--r--deps/npm/node_modules/graceful-fs/graceful-fs.js41
-rw-r--r--deps/npm/node_modules/graceful-fs/package.json6
-rw-r--r--deps/npm/node_modules/lru-cache/lib/lru-cache.js66
-rw-r--r--deps/npm/node_modules/lru-cache/package.json4
-rw-r--r--deps/npm/node_modules/lru-cache/test/basic.js19
-rw-r--r--deps/npm/node_modules/node-gyp/README.md4
-rw-r--r--deps/npm/node_modules/node-gyp/lib/configure.js4
-rw-r--r--deps/npm/node_modules/node-gyp/lib/install.js39
-rw-r--r--deps/npm/node_modules/node-gyp/package.json6
-rw-r--r--deps/npm/node_modules/npmconf/LICENSE27
-rw-r--r--deps/npm/node_modules/npmconf/config-defs.js7
-rw-r--r--deps/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/package.json3
-rw-r--r--deps/npm/node_modules/npmconf/package.json6
-rw-r--r--deps/npm/node_modules/opener/LICENSE.txt14
-rw-r--r--deps/npm/node_modules/opener/README.md44
-rwxr-xr-xdeps/npm/node_modules/opener/opener.js55
-rw-r--r--deps/npm/node_modules/opener/package.json34
-rw-r--r--deps/npm/package.json10
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/AUTHORS9
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/LICENSE23
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/README.md213
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/big-not-pretty.xml8002
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/example.js41
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/get-products.js58
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/hello-world.js4
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/not-pretty.xml8
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/pretty-print.js74
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/shopping.xml2
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/strict.dtd870
-rwxr-xr-xdeps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/switch-bench.js45
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/test.html15
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/test.xml1254
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/lib/sax.js1006
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/package.json75
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/buffer-overrun.js25
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata-chunked.js11
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata-end-split.js15
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata-fake-end.js28
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata-multiple.js15
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata.js10
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/index.js86
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-23.js43
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-30.js24
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-35.js15
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-47.js13
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-49.js31
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/parser-position.js28
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/script.js12
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/self-closing-child-strict.js40
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/self-closing-child.js40
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/self-closing-tag.js25
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/stray-ending.js17
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/trailing-non-whitespace.js17
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/unquoted.js17
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-issue-41.js67
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-rebinding.js59
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-strict.js71
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-unbound.js15
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js35
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-xml-default-prefix.js20
-rw-r--r--deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/xmlns-xml-default-redefine.js40
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/.travis.yml3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/LICENSE63
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/README.markdown173
-rwxr-xr-xdeps/npm/test/packages/npm-test-platform/node_modules/browserify/bin/cmd.js162
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/__browserify_process.js48
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/assert.js303
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/buffer.js1130
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/buffer_ieee754.js84
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/events.js171
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/fs.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/https.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/net.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/path.js134
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/querystring.js250
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/stream.js119
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/sys.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/tls.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/tty.js2
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/url.js604
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/builtins/util.js312
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/doc/methods.markdown177
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/doc/recipes.markdown62
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/browserify.js368
-rwxr-xr-xdeps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/build.sh3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/index.html9
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/js/bar.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/js/entry.js5
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/js/foo.js5
-rwxr-xr-xdeps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/server.js9
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/index.html9
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/js/bar.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/js/entry.js5
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/js/foo.js5
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/server.js11
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/using-http/bundle.js813
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/using-http/entry.js25
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/using-http/index.html9
-rwxr-xr-xdeps/npm/test/packages/npm-test-platform/node_modules/browserify/example/using-http/server.js28
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/index.js255
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/lib/wrap.js527
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/lib/wrappers.js10
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/.npmignore11
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/CNAME1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/LICENSE22
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/README51
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/Rakefile78
-rwxr-xr-xdeps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/bin/cake7
-rwxr-xr-xdeps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/bin/coffee7
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/extras/jsl.conf44
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/browser.js92
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/cake.js111
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/coffee-script.js167
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/command.js500
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/grammar.js606
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/helpers.js77
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/index.js11
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/lexer.js788
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/nodes.js2986
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/optparse.js138
-rwxr-xr-xdeps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/parser.js683
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/repl.js261
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/rewriter.js349
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/scope.js146
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/coffee-script/package.json47
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/README.markdown45
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/example/base.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/example/dir.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/index.js29
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/package.json45
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/commondir/test/dirs.js66
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/example/bundle.js637
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/example/index.html12
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/example/test.js4
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/index.js68
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/package.json28
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/readme.markdown14
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/rng.js37
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/sha.js210
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/test/simple.js25
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/.travis.yml4
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/README.markdown55
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/example/cache.js5
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/index.js45
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/.gitignore.orig2
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/.gitignore.rej5
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/.npmignore2
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/.travis.yml4
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/LICENSE21
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/README.markdown61
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/examples/pow.js6
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/examples/pow.js.orig6
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/examples/pow.js.rej19
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/index.js94
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/package.json32
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/chmod.js38
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/clobber.js37
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/mkdirp.js28
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/perm.js32
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/perm_sync.js39
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/race.js41
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/rel.js32
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/return.js25
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/return_sync.js24
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/root.js18
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/sync.js32
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/umask.js28
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/umask_sync.js32
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/package.json45
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/deputy/test/cache.js58
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/.travis.yml4
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/README.markdown64
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/example/strings.js6
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/example/strings_src.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/index.js56
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/.npmignore4
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/README.html981
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/README.org578
-rwxr-xr-xdeps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/bin/uglifyjs332
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/docstyle.css75
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/consolidator.js2599
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/object-ast.js75
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/parse-js.js1346
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/process.js2011
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/squeeze-more.js73
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/package.json24
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/package.json~24
-rwxr-xr-xdeps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/beautify.js28
-rwxr-xr-xdeps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/testparser.js403
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/array1.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/array2.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/array3.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/array4.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/assignment.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/concatstring.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/const.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/forstatement.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/if.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue10.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue11.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue13.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue14.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue16.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue17.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue20.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue21.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue25.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue27.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue278.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue28.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue29.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue30.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue34.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue4.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue48.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue50.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue53.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue68.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue69.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue9.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/mangle.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/null_string.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/var.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/whitespace.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/with.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/array1.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/array2.js4
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/array3.js4
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/array4.js6
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/assignment.js20
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/concatstring.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/const.js5
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js4
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/forstatement.js10
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/if.js6
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/ifreturn.js9
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js16
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue10.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue11.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue13.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue14.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue16.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue17.js4
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue20.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue21.js6
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue25.js7
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue27.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue278.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue28.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue29.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue30.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue34.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue4.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue48.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue50.js9
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue53.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue54.1.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue68.js5
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue69.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue9.js4
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/mangle.js5
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/null_string.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/strict-equals.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/var.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/whitespace.js21
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/with.js2
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/scripts.js55
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/uglify-js.js18
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/package.json45
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/both.js11
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/chained.js9
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/both.js4
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/chained.js5
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/nested.js22
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/strings.js13
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/files/word.js13
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/nested.js9
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/strings.js9
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/test/word.js12
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/README.markdown128
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/get/index.html9
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/get/main.js14
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/get/server.js15
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/headers/index.html9
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/headers/main.js18
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/headers/server.js18
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/post/index.html9
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/post/main.js16
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/post/server.js22
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/streaming/index.html9
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/streaming/main.js16
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/example/streaming/server.js24
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/index.js59
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/lib/request.js91
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/lib/response.js99
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/http-browserify/package.json42
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/README.markdown23
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/index.js64
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/package.json44
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/test/by.js51
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/nub/test/nub.js46
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/.travis.yml4
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/LICENSE21
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/README.markdown487
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/bool.js10
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/boolean_double.js7
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/boolean_single.js7
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/default_hash.js8
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/default_singles.js7
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/divide.js8
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/line_count.js20
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/line_count_options.js29
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/line_count_wrap.js29
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/nonopt.js4
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/reflect.js2
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/short.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/string.js11
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/usage-options.js19
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/example/xup.js10
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/index.js475
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/.npmignore1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/README.markdown70
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/example/center.js10
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/example/meat.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/index.js76
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/package.json40
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/test/break.js30
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/test/idleness.txt63
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/test/wrap.js31
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/package.json46
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/_.js71
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/_/argv.js2
-rwxr-xr-xdeps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/_/bin.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/parse.js420
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/optimist/test/usage.js292
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/.travis.yml4
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/README.markdown47
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/index.js105
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/package.json43
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/core.js12
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/filter.js15
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/mock.js64
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver.js157
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/baz/doom.js0
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/baz/package.json3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/baz/quux.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/cup.coffee1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/foo.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/mug.coffee0
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/mug.js0
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/other_path/lib/other-lib.js0
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/other_path/root.js0
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/README.markdown103
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/example/run/bundle.js473
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/example/run/entry.js6
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/example/run/index.html9
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/example/run/server.js6
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/index.js85
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/package.json41
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/testling/run.js22
-rwxr-xr-xdeps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/vm-browserify/testling/test.sh11
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/package.json69
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/alias.js55
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/backbone.js21
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/bin.js39
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/bundle.js32
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/cache.js28
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee.js39
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/bar.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/baz.coffee1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/entry.coffee1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/foo.coffee1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/index.coffee5
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/coffee/nested/nested.coffee2
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/dnode.js27
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/dollar.js19
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/dollar/dollar/index.js7
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/entry.js36
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/entry/main.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/entry/one.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/entry/two.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/error_code.js24
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/error_code/src.js2
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/export.js52
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/export/entry.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field.js64
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/miss.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-miss/browser.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-miss/main.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-miss/package.json4
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-object/browser.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-object/main.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-object/package.json6
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-string/browser.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-string/main.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-string/package.json4
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-sub/browser/a.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-sub/browser/b.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-sub/main.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/node_modules/z-sub/package.json4
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/object.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/string.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/field/sub.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/jade.js35
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/maxlisteners.js8
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/middleware.js31
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_entry.js20
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_entry/a.js2
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_entry/b.js2
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_entry/c.js3
-rwxr-xr-xdeps/npm/test/packages/npm-test-platform/node_modules/browserify/test/multi_ignore.js23
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/node_modules/beep/index.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/retarget.js27
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/seq.js47
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/subdep.js26
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/subdep/index.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/subdep/package.json6
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/util.js48
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/watch.js91
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/watch/a.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap.js43
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/a.js2
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/c.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/node_modules/b/main.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/node_modules/b/package.json3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/node_modules/skipmetoo/index.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/skipme.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/x.js0
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/testling/README.markdown29
-rwxr-xr-xdeps/npm/test/packages/npm-test-platform/node_modules/browserify/testling/test.sh28
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/testling/tick.js9
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/testling/util.js24
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/alias.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/body.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/body_debug.js1
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/entry.js2
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/entry_debug.js2
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/package.js3
-rw-r--r--deps/npm/test/packages/npm-test-platform/node_modules/browserify/wrappers/prelude.js176
-rw-r--r--deps/npm/test/packages/npm-test-shrinkwrap/node_modules/npm-test-single-file/index.js10
-rw-r--r--deps/npm/test/packages/npm-test-shrinkwrap/node_modules/npm-test-single-file/package.json27
-rw-r--r--deps/openssl/asm/Makefile182
-rw-r--r--deps/openssl/asm/x64-elf-gas/aes/aes-x86_64.s2545
-rw-r--r--deps/openssl/asm/x64-elf-gas/bn/x86_64-mont.s172
-rw-r--r--deps/openssl/asm/x64-elf-gas/camellia/cmll-x86_64.s1844
-rw-r--r--deps/openssl/asm/x64-elf-gas/md5/md5-x86_64.s671
-rw-r--r--deps/openssl/asm/x64-elf-gas/rc4/rc4-x86_64.s430
-rw-r--r--deps/openssl/asm/x64-elf-gas/sha/sha1-x86_64.s1283
-rw-r--r--deps/openssl/asm/x64-elf-gas/sha/sha512-x86_64.s1971
-rw-r--r--deps/openssl/asm/x64-elf-gas/whrlpool/wp-x86_64.s859
-rw-r--r--deps/openssl/asm/x64-elf-gas/x86_64cpuid.s194
-rw-r--r--deps/openssl/asm/x64-macosx-gas/aes/aes-x86_64.s2545
-rw-r--r--deps/openssl/asm/x64-macosx-gas/bn/x86_64-mont.s172
-rw-r--r--deps/openssl/asm/x64-macosx-gas/camellia/cmll-x86_64.s1844
-rw-r--r--deps/openssl/asm/x64-macosx-gas/md5/md5-x86_64.s671
-rw-r--r--deps/openssl/asm/x64-macosx-gas/rc4/rc4-x86_64.s430
-rw-r--r--deps/openssl/asm/x64-macosx-gas/sha/sha1-x86_64.s1283
-rw-r--r--deps/openssl/asm/x64-macosx-gas/sha/sha512-x86_64.s1971
-rw-r--r--deps/openssl/asm/x64-macosx-gas/whrlpool/wp-x86_64.s859
-rw-r--r--deps/openssl/asm/x64-macosx-gas/x86_64cpuid.s195
-rw-r--r--deps/openssl/asm/x64-win32-masm/aes/aes-x86_64.asm2885
-rw-r--r--deps/openssl/asm/x64-win32-masm/bn/x86_64-mont.asm293
-rw-r--r--deps/openssl/asm/x64-win32-masm/camellia/cmll-x86_64.asm2108
-rw-r--r--deps/openssl/asm/x64-win32-masm/md5/md5-x86_64.asm781
-rw-r--r--deps/openssl/asm/x64-win32-masm/rc4/rc4-x86_64.asm586
-rw-r--r--deps/openssl/asm/x64-win32-masm/sha/sha1-x86_64.asm1394
-rw-r--r--deps/openssl/asm/x64-win32-masm/sha/sha512-x86_64.asm2085
-rw-r--r--deps/openssl/asm/x64-win32-masm/whrlpool/wp-x86_64.asm972
-rw-r--r--deps/openssl/asm/x64-win32-masm/x86_64cpuid.asm186
-rw-r--r--deps/openssl/asm/x86-elf-gas/aes/aes-586.s3234
-rw-r--r--deps/openssl/asm/x86-elf-gas/bf/bf-686.s864
-rw-r--r--deps/openssl/asm/x86-elf-gas/bn/x86-mont.s338
-rw-r--r--deps/openssl/asm/x86-elf-gas/bn/x86.s2114
-rw-r--r--deps/openssl/asm/x86-elf-gas/camellia/cmll-x86.s2375
-rw-r--r--deps/openssl/asm/x86-elf-gas/cast/cast-586.s933
-rw-r--r--deps/openssl/asm/x86-elf-gas/des/crypt586.s875
-rw-r--r--deps/openssl/asm/x86-elf-gas/des/des-586.s1837
-rw-r--r--deps/openssl/asm/x86-elf-gas/md5/md5-586.s679
-rw-r--r--deps/openssl/asm/x86-elf-gas/rc4/rc4-586.s230
-rw-r--r--deps/openssl/asm/x86-elf-gas/rc5/rc5-586.s564
-rw-r--r--deps/openssl/asm/x86-elf-gas/ripemd/rmd-586.s1965
-rw-r--r--deps/openssl/asm/x86-elf-gas/sha/sha1-586.s1442
-rw-r--r--deps/openssl/asm/x86-elf-gas/sha/sha256-586.s261
-rw-r--r--deps/openssl/asm/x86-elf-gas/sha/sha512-586.s563
-rw-r--r--deps/openssl/asm/x86-elf-gas/whrlpool/wp-mmx.s1105
-rw-r--r--deps/openssl/asm/x86-elf-gas/x86cpuid.s279
-rw-r--r--deps/openssl/asm/x86-macosx-gas/aes/aes-586.s3194
-rw-r--r--deps/openssl/asm/x86-macosx-gas/bf/bf-686.s897
-rw-r--r--deps/openssl/asm/x86-macosx-gas/bn/x86-mont.s336
-rw-r--r--deps/openssl/asm/x86-macosx-gas/bn/x86.s2385
-rw-r--r--deps/openssl/asm/x86-macosx-gas/camellia/cmll-x86.s2353
-rw-r--r--deps/openssl/asm/x86-macosx-gas/cast/cast-586.s967
-rw-r--r--deps/openssl/asm/x86-macosx-gas/des/crypt586.s891
-rw-r--r--deps/openssl/asm/x86-macosx-gas/des/des-586.s1873
-rw-r--r--deps/openssl/asm/x86-macosx-gas/md5/md5-586.s745
-rw-r--r--deps/openssl/asm/x86-macosx-gas/rc4/rc4-586.s224
-rw-r--r--deps/openssl/asm/x86-macosx-gas/rc5/rc5-586.s563
-rw-r--r--deps/openssl/asm/x86-macosx-gas/ripemd/rmd-586.s2123
-rw-r--r--deps/openssl/asm/x86-macosx-gas/sha/sha1-586.s1520
-rw-r--r--deps/openssl/asm/x86-macosx-gas/sha/sha256-586.s259
-rw-r--r--deps/openssl/asm/x86-macosx-gas/sha/sha512-586.s561
-rw-r--r--deps/openssl/asm/x86-macosx-gas/whrlpool/wp-mmx.s1103
-rw-r--r--deps/openssl/asm/x86-macosx-gas/x86cpuid.s261
-rw-r--r--deps/openssl/asm/x86-win32-masm/aes/aes-586.asm3222
-rw-r--r--deps/openssl/asm/x86-win32-masm/bf/bf-686.asm907
-rw-r--r--deps/openssl/asm/x86-win32-masm/bn/x86-mont.asm348
-rw-r--r--deps/openssl/asm/x86-win32-masm/bn/x86.asm2116
-rw-r--r--deps/openssl/asm/x86-win32-masm/camellia/cmll-x86.asm2367
-rw-r--r--deps/openssl/asm/x86-win32-masm/cast/cast-586.asm950
-rw-r--r--deps/openssl/asm/x86-win32-masm/des/crypt586.asm909
-rw-r--r--deps/openssl/asm/x86-win32-masm/des/des-586.asm1878
-rw-r--r--deps/openssl/asm/x86-win32-masm/md5/md5-586.asm693
-rw-r--r--deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm239
-rw-r--r--deps/openssl/asm/x86-win32-masm/rc5/rc5-586.asm573
-rw-r--r--deps/openssl/asm/x86-win32-masm/ripemd/rmd-586.asm1976
-rw-r--r--deps/openssl/asm/x86-win32-masm/sha/sha1-586.asm1452
-rw-r--r--deps/openssl/asm/x86-win32-masm/sha/sha256-586.asm271
-rw-r--r--deps/openssl/asm/x86-win32-masm/sha/sha512-586.asm573
-rw-r--r--deps/openssl/asm/x86-win32-masm/whrlpool/wp-mmx.asm1122
-rw-r--r--deps/openssl/asm/x86-win32-masm/x86cpuid.asm277
-rw-r--r--deps/openssl/openssl/crypto/bn/asm/x86_64-win32-masm.asm1679
-rw-r--r--doc/api/_toc.markdown48
-rw-r--r--doc/api/child_process.markdown2
-rw-r--r--doc/api/cluster.markdown2
-rw-r--r--doc/api/net.markdown2
-rw-r--r--doc/blog/release/v0.8.10.md93
-rw-r--r--doc/blog/release/v0.8.11.md63
-rw-r--r--doc/blog/release/v0.9.2.md95
-rw-r--r--doc/cla.html98
-rw-r--r--lib/domain.js5
-rw-r--r--lib/events.js16
-rw-r--r--lib/fs.js5
-rw-r--r--lib/http.js6
-rw-r--r--lib/repl.js3
-rw-r--r--src/fs_event_wrap.cc15
-rw-r--r--src/node.cc2
-rw-r--r--src/node_file.cc93
-rw-r--r--test/fixtures/test-regress-GH-4015.js7
-rw-r--r--test/internet/test-dns.js2
-rw-r--r--test/simple/test-domain-exit-dispose.js67
-rw-r--r--test/simple/test-http-client-response-domain.js65
-rw-r--r--test/simple/test-http-client-timeout-agent.js16
-rw-r--r--test/simple/test-regress-GH-4015.js33
-rw-r--r--test/simple/test-regress-GH-4027.js41
-rw-r--r--test/simple/test-repl.js4
662 files changed, 94096 insertions, 42916 deletions
diff --git a/AUTHORS b/AUTHORS
index bf1838bea34..24ce180707d 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -365,3 +365,5 @@ Atsuya Takagi <atsuya.takagi@gmail.com>
Pooya Karimian <pkarimian@sencha.com>
Frédéric Germain <frederic.germain@gmail.com>
Kazuyuki Yamada <tasogare.pg@gmail.com>
+Robin Lee <cheeselee@fedoraproject.org>
+Adam Blackburn <regality@gmail.com>
diff --git a/ChangeLog b/ChangeLog
index 3d4ba81b9c8..7632b4b367d 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 3702d8a05b6..c0f51a741b9 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 8a856e9fa47..6ee80d57b12 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 01c4871baee..93a6261c81d 100644
--- a/deps/npm/html/api/bin.html
+++ b/deps/npm/html/api/bin.html
@@ -19,7 +19,7 @@
<p>This function should not be used programmatically. Instead, just refer
to the <code>npm.bin</code> member.</p>
</div>
-<p id="footer">bin &mdash; npm@1.1.61</p>
+<p id="footer">bin &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/bugs.html b/deps/npm/html/api/bugs.html
index e5f18be4af0..ef7d5c9661a 100644
--- a/deps/npm/html/api/bugs.html
+++ b/deps/npm/html/api/bugs.html
@@ -25,7 +25,7 @@ optional version number.</p>
<p>This command will launch a browser, so this command may not be the most
friendly for programmatic use.</p>
</div>
-<p id="footer">bugs &mdash; npm@1.1.61</p>
+<p id="footer">bugs &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/commands.html b/deps/npm/html/api/commands.html
index ce4feb961d9..a75ef8e7058 100644
--- a/deps/npm/html/api/commands.html
+++ b/deps/npm/html/api/commands.html
@@ -28,7 +28,7 @@ usage, or <code>man 3 npm-&lt;command&gt;</code> for programmatic usage.</p>
<ul><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
-<p id="footer">commands &mdash; npm@1.1.61</p>
+<p id="footer">commands &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/config.html b/deps/npm/html/api/config.html
index b982101bfc8..0ab4cf7b274 100644
--- a/deps/npm/html/api/config.html
+++ b/deps/npm/html/api/config.html
@@ -33,7 +33,7 @@ functions instead.</p>
<ul><li><a href="../api/npm.html">npm(3)</a></li></ul>
</div>
-<p id="footer">config &mdash; npm@1.1.61</p>
+<p id="footer">config &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/deprecate.html b/deps/npm/html/api/deprecate.html
index 7b043c1585f..891524f9725 100644
--- a/deps/npm/html/api/deprecate.html
+++ b/deps/npm/html/api/deprecate.html
@@ -30,7 +30,7 @@ install the package.</p></li></ul>
<ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../api/unpublish.html">unpublish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">deprecate &mdash; npm@1.1.61</p>
+<p id="footer">deprecate &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/docs.html b/deps/npm/html/api/docs.html
index 5fbefe1da5c..9a1bbecd72c 100644
--- a/deps/npm/html/api/docs.html
+++ b/deps/npm/html/api/docs.html
@@ -25,7 +25,7 @@ optional version number.</p>
<p>This command will launch a browser, so this command may not be the most
friendly for programmatic use.</p>
</div>
-<p id="footer">docs &mdash; npm@1.1.61</p>
+<p id="footer">docs &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/edit.html b/deps/npm/html/api/edit.html
index da08088571a..46aa06b77a4 100644
--- a/deps/npm/html/api/edit.html
+++ b/deps/npm/html/api/edit.html
@@ -30,7 +30,7 @@ to open. The package can optionally have a version number attached.</p>
<p>Since this command opens an editor in a new process, be careful about where
and how this is used.</p>
</div>
-<p id="footer">edit &mdash; npm@1.1.61</p>
+<p id="footer">edit &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/explore.html b/deps/npm/html/api/explore.html
index 9f612996721..47f845f8d5b 100644
--- a/deps/npm/html/api/explore.html
+++ b/deps/npm/html/api/explore.html
@@ -24,7 +24,7 @@ sure to use <code>npm rebuild &lt;pkg&gt;</code> if you make any changes.</p>
<p>The first element in the &#39;args&#39; parameter must be a package name. After that is the optional command, which can be any number of strings. All of the strings will be combined into one, space-delimited command.</p>
</div>
-<p id="footer">explore &mdash; npm@1.1.61</p>
+<p id="footer">explore &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/help-search.html b/deps/npm/html/api/help-search.html
index 44618260d46..cc9c533253a 100644
--- a/deps/npm/html/api/help-search.html
+++ b/deps/npm/html/api/help-search.html
@@ -32,7 +32,7 @@ Name of the file that matched</li></ul>
<p>The silent parameter is not neccessary not used, but it may in the future.</p>
</div>
-<p id="footer">help-search &mdash; npm@1.1.61</p>
+<p id="footer">help-search &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/init.html b/deps/npm/html/api/init.html
index a7b2fc2089a..53bd1bda8bf 100644
--- a/deps/npm/html/api/init.html
+++ b/deps/npm/html/api/init.html
@@ -35,7 +35,7 @@ then go ahead and use this programmatically.</p>
<p><a href="../doc/json.html">json(1)</a></p>
</div>
-<p id="footer">init &mdash; npm@1.1.61</p>
+<p id="footer">init &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/install.html b/deps/npm/html/api/install.html
index f05d33ab4e6..dad72bdec53 100644
--- a/deps/npm/html/api/install.html
+++ b/deps/npm/html/api/install.html
@@ -25,7 +25,7 @@ the name of a package to be installed.</p>
<p>Finally, &#39;callback&#39; is a function that will be called when all packages have been
installed or when an error has been encountered.</p>
</div>
-<p id="footer">install &mdash; npm@1.1.61</p>
+<p id="footer">install &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/link.html b/deps/npm/html/api/link.html
index dc6169a6fc5..14f8bfe7b73 100644
--- a/deps/npm/html/api/link.html
+++ b/deps/npm/html/api/link.html
@@ -39,7 +39,7 @@ npm.commands.link(&#39;redis&#39;, cb) # link-install the package</code></pre>
<p>Now, any changes to the redis package will be reflected in
the package in the current working directory</p>
</div>
-<p id="footer">link &mdash; npm@1.1.61</p>
+<p id="footer">link &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/load.html b/deps/npm/html/api/load.html
index 9788652039c..d69ca410923 100644
--- a/deps/npm/html/api/load.html
+++ b/deps/npm/html/api/load.html
@@ -32,7 +32,7 @@ config object.</p>
<p>For a list of all the available command-line configs, see <code>npm help config</code></p>
</div>
-<p id="footer">load &mdash; npm@1.1.61</p>
+<p id="footer">load &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/ls.html b/deps/npm/html/api/ls.html
index 564ac3f4167..b77d93ca776 100644
--- a/deps/npm/html/api/ls.html
+++ b/deps/npm/html/api/ls.html
@@ -59,7 +59,7 @@ project.</p>
This means that if a submodule a same dependency as a parent module, then the
dependency will only be output once.</p>
</div>
-<p id="footer">ls &mdash; npm@1.1.61</p>
+<p id="footer">ls &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/npm.html b/deps/npm/html/api/npm.html
index 5c4c09c0ebd..d44c8a36441 100644
--- a/deps/npm/html/api/npm.html
+++ b/deps/npm/html/api/npm.html
@@ -24,7 +24,7 @@ npm.load(configObject, function (er, npm) {
<h2 id="VERSION">VERSION</h2>
-<p>1.1.61</p>
+<p>1.1.62</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@@ -91,7 +91,7 @@ method names. Use the <code>npm.deref</code> method to find the real name.</p>
<pre><code>var cmd = npm.deref(&quot;unp&quot;) // cmd === &quot;unpublish&quot;</code></pre>
</div>
-<p id="footer">npm &mdash; npm@1.1.61</p>
+<p id="footer">npm &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/outdated.html b/deps/npm/html/api/outdated.html
index c6164e06a0b..f447d527a4a 100644
--- a/deps/npm/html/api/outdated.html
+++ b/deps/npm/html/api/outdated.html
@@ -19,7 +19,7 @@ currently outdated.</p>
<p>If the &#39;packages&#39; parameter is left out, npm will check all packages.</p>
</div>
-<p id="footer">outdated &mdash; npm@1.1.61</p>
+<p id="footer">outdated &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/owner.html b/deps/npm/html/api/owner.html
index dd72ba46113..81fb987e67b 100644
--- a/deps/npm/html/api/owner.html
+++ b/deps/npm/html/api/owner.html
@@ -34,7 +34,7 @@ that is not implemented at this time.</p>
<ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">owner &mdash; npm@1.1.61</p>
+<p id="footer">owner &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/pack.html b/deps/npm/html/api/pack.html
index 3141ae1b2e4..da4dfe1982c 100644
--- a/deps/npm/html/api/pack.html
+++ b/deps/npm/html/api/pack.html
@@ -25,7 +25,7 @@ overwritten the second time.</p>
<p>If no arguments are supplied, then npm packs the current package folder.</p>
</div>
-<p id="footer">pack &mdash; npm@1.1.61</p>
+<p id="footer">pack &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/prefix.html b/deps/npm/html/api/prefix.html
index b1f101bd724..b7fb53014f9 100644
--- a/deps/npm/html/api/prefix.html
+++ b/deps/npm/html/api/prefix.html
@@ -21,7 +21,7 @@
<p>This function is not useful programmatically</p>
</div>
-<p id="footer">prefix &mdash; npm@1.1.61</p>
+<p id="footer">prefix &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/prune.html b/deps/npm/html/api/prune.html
index 15b7a7e1a8d..d0992db1b88 100644
--- a/deps/npm/html/api/prune.html
+++ b/deps/npm/html/api/prune.html
@@ -23,7 +23,7 @@
<p>Extraneous packages are packages that are not listed on the parent
package&#39;s dependencies list.</p>
</div>
-<p id="footer">prune &mdash; npm@1.1.61</p>
+<p id="footer">prune &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/publish.html b/deps/npm/html/api/publish.html
index c3cd3a37ccf..161164d841c 100644
--- a/deps/npm/html/api/publish.html
+++ b/deps/npm/html/api/publish.html
@@ -32,7 +32,7 @@ the registry. Overwrites when the &quot;force&quot; environment variable is set
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../api/owner.html">owner(3)</a></li></ul>
</div>
-<p id="footer">publish &mdash; npm@1.1.61</p>
+<p id="footer">publish &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/rebuild.html b/deps/npm/html/api/rebuild.html
index 8a102b921ec..85fe0db41ed 100644
--- a/deps/npm/html/api/rebuild.html
+++ b/deps/npm/html/api/rebuild.html
@@ -22,7 +22,7 @@ the new binary. If no &#39;packages&#39; parameter is specify, every package wil
<p>See <code>npm help build</code></p>
</div>
-<p id="footer">rebuild &mdash; npm@1.1.61</p>
+<p id="footer">rebuild &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/restart.html b/deps/npm/html/api/restart.html
index 9ffdf30839c..7e003b6d227 100644
--- a/deps/npm/html/api/restart.html
+++ b/deps/npm/html/api/restart.html
@@ -27,7 +27,7 @@ in the <code>packages</code> parameter.</p>
<ul><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
</div>
-<p id="footer">restart &mdash; npm@1.1.61</p>
+<p id="footer">restart &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/root.html b/deps/npm/html/api/root.html
index 12a92a44cc0..efac5fb9a1a 100644
--- a/deps/npm/html/api/root.html
+++ b/deps/npm/html/api/root.html
@@ -21,7 +21,7 @@
<p>This function is not useful programmatically.</p>
</div>
-<p id="footer">root &mdash; npm@1.1.61</p>
+<p id="footer">root &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/run-script.html b/deps/npm/html/api/run-script.html
index 21c9475c626..40ada1820a9 100644
--- a/deps/npm/html/api/run-script.html
+++ b/deps/npm/html/api/run-script.html
@@ -29,7 +29,7 @@ assumed to be the command to run. All other elements are ignored.</p>
<ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../api/test.html">test(3)</a></li><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/restart.html">restart(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
</div>
-<p id="footer">run-script &mdash; npm@1.1.61</p>
+<p id="footer">run-script &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/search.html b/deps/npm/html/api/search.html
index 6d4414385ac..c8f0aafae40 100644
--- a/deps/npm/html/api/search.html
+++ b/deps/npm/html/api/search.html
@@ -32,7 +32,7 @@ excluded term (the &quot;searchexclude&quot; config). The search is case insensi
and doesn&#39;t try to read your mind (it doesn&#39;t do any verb tense matching or the
like).</p>
</div>
-<p id="footer">search &mdash; npm@1.1.61</p>
+<p id="footer">search &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/shrinkwrap.html b/deps/npm/html/api/shrinkwrap.html
index 73e5e7fb4b3..a244df2d771 100644
--- a/deps/npm/html/api/shrinkwrap.html
+++ b/deps/npm/html/api/shrinkwrap.html
@@ -26,7 +26,7 @@ but the shrinkwrap file will still be written.</p>
<p>Finally, &#39;callback&#39; is a function that will be called when the shrinkwrap has
been saved.</p>
</div>
-<p id="footer">shrinkwrap &mdash; npm@1.1.61</p>
+<p id="footer">shrinkwrap &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/start.html b/deps/npm/html/api/start.html
index 3c2cbab955b..1be0ac15611 100644
--- a/deps/npm/html/api/start.html
+++ b/deps/npm/html/api/start.html
@@ -19,7 +19,7 @@
<p>npm can run tests on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
-<p id="footer">start &mdash; npm@1.1.61</p>
+<p id="footer">start &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/stop.html b/deps/npm/html/api/stop.html
index 6127e56a1bc..f8ab1c92da6 100644
--- a/deps/npm/html/api/stop.html
+++ b/deps/npm/html/api/stop.html
@@ -19,7 +19,7 @@
<p>npm can run stop on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
-<p id="footer">stop &mdash; npm@1.1.61</p>
+<p id="footer">stop &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/submodule.html b/deps/npm/html/api/submodule.html
index 61d26543549..906080264e3 100644
--- a/deps/npm/html/api/submodule.html
+++ b/deps/npm/html/api/submodule.html
@@ -33,7 +33,7 @@ dependencies into the submodule folder.</p>
<ul><li>npm help json</li><li>git help submodule</li></ul>
</div>
-<p id="footer">submodule &mdash; npm@1.1.61</p>
+<p id="footer">submodule &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/tag.html b/deps/npm/html/api/tag.html
index e45783b2f2f..28ecc709b91 100644
--- a/deps/npm/html/api/tag.html
+++ b/deps/npm/html/api/tag.html
@@ -29,7 +29,7 @@ parameter is missing or falsey (empty), the default froom the config will be
used. For more information about how to set this config, check
<code>man 3 npm-config</code> for programmatic usage or <code>man npm-config</code> for cli usage.</p>
</div>
-<p id="footer">tag &mdash; npm@1.1.61</p>
+<p id="footer">tag &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/test.html b/deps/npm/html/api/test.html
index f226f16d0bd..1a5e0de3478 100644
--- a/deps/npm/html/api/test.html
+++ b/deps/npm/html/api/test.html
@@ -22,7 +22,7 @@ true.</p>
<p>npm can run tests on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
-<p id="footer">test &mdash; npm@1.1.61</p>
+<p id="footer">test &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/uninstall.html b/deps/npm/html/api/uninstall.html
index 19c42640c52..94522b3660b 100644
--- a/deps/npm/html/api/uninstall.html
+++ b/deps/npm/html/api/uninstall.html
@@ -22,7 +22,7 @@ the name of a package to be uninstalled.</p>
<p>Finally, &#39;callback&#39; is a function that will be called when all packages have been
uninstalled or when an error has been encountered.</p>
</div>
-<p id="footer">uninstall &mdash; npm@1.1.61</p>
+<p id="footer">uninstall &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/unpublish.html b/deps/npm/html/api/unpublish.html
index 5d9857ea572..6d853f44fb5 100644
--- a/deps/npm/html/api/unpublish.html
+++ b/deps/npm/html/api/unpublish.html
@@ -26,7 +26,7 @@ is what is meant.</p>
<p>If no version is specified, or if all versions are removed then
the root package entry is removed from the registry entirely.</p>
</div>
-<p id="footer">unpublish &mdash; npm@1.1.61</p>
+<p id="footer">unpublish &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/update.html b/deps/npm/html/api/update.html
index 5f255709fdf..3e74a9ad31e 100644
--- a/deps/npm/html/api/update.html
+++ b/deps/npm/html/api/update.html
@@ -18,7 +18,7 @@
<p>The &#39;packages&#39; argument is an array of packages to update. The &#39;callback&#39; parameter will be called when done or when an error occurs.</p>
</div>
-<p id="footer">update &mdash; npm@1.1.61</p>
+<p id="footer">update &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/version.html b/deps/npm/html/api/version.html
index 386e2fd95ed..f4b6c1eb9a4 100644
--- a/deps/npm/html/api/version.html
+++ b/deps/npm/html/api/version.html
@@ -24,7 +24,7 @@ fail if the repo is not clean.</p>
parameter. The difference, however, is this function will fail if it does
not have exactly one element. The only element should be a version number.</p>
</div>
-<p id="footer">version &mdash; npm@1.1.61</p>
+<p id="footer">version &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/view.html b/deps/npm/html/api/view.html
index 29ba0a685e4..2ad1286004f 100644
--- a/deps/npm/html/api/view.html
+++ b/deps/npm/html/api/view.html
@@ -99,7 +99,7 @@ the field name.</p>
<p>corresponding to the list of fields selected.</p>
</div>
-<p id="footer">view &mdash; npm@1.1.61</p>
+<p id="footer">view &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/whoami.html b/deps/npm/html/api/whoami.html
index 82aaeb88f95..af35edf52fe 100644
--- a/deps/npm/html/api/whoami.html
+++ b/deps/npm/html/api/whoami.html
@@ -21,7 +21,7 @@
<p>This function is not useful programmatically</p>
</div>
-<p id="footer">whoami &mdash; npm@1.1.61</p>
+<p id="footer">whoami &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/README.html b/deps/npm/html/doc/README.html
index cb27261a062..b1f27124f2c 100644
--- a/deps/npm/html/doc/README.html
+++ b/deps/npm/html/doc/README.html
@@ -240,7 +240,7 @@ will no doubt tell you to put the output in a gist or email.</p>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
-<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.61</p>
+<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/adduser.html b/deps/npm/html/doc/adduser.html
index acc0266f198..ef57475bfc7 100644
--- a/deps/npm/html/doc/adduser.html
+++ b/deps/npm/html/doc/adduser.html
@@ -39,7 +39,7 @@ authorize on a new machine.</p>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li></ul>
</div>
-<p id="footer">adduser &mdash; npm@1.1.61</p>
+<p id="footer">adduser &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/bin.html b/deps/npm/html/doc/bin.html
index 134198f71d4..82157f69063 100644
--- a/deps/npm/html/doc/bin.html
+++ b/deps/npm/html/doc/bin.html
@@ -20,7 +20,7 @@
<ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">bin &mdash; npm@1.1.61</p>
+<p id="footer">bin &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/bugs.html b/deps/npm/html/doc/bugs.html
index c637d28aa81..09261872f39 100644
--- a/deps/npm/html/doc/bugs.html
+++ b/deps/npm/html/doc/bugs.html
@@ -36,7 +36,7 @@ config param.</p>
<ul><li><a href="../doc/docs.html">docs(1)</a></li><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">bugs &mdash; npm@1.1.61</p>
+<p id="footer">bugs &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/build.html b/deps/npm/html/doc/build.html
index 82277ff8d90..113038b064b 100644
--- a/deps/npm/html/doc/build.html
+++ b/deps/npm/html/doc/build.html
@@ -25,7 +25,7 @@ A folder containing a <code>package.json</code> file in its root.</li></ul>
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">build &mdash; npm@1.1.61</p>
+<p id="footer">build &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/bundle.html b/deps/npm/html/doc/bundle.html
index 1b37b0151af..b33c4330843 100644
--- a/deps/npm/html/doc/bundle.html
+++ b/deps/npm/html/doc/bundle.html
@@ -20,7 +20,7 @@ install packages into the local space.</p>
<ul><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">bundle &mdash; npm@1.1.61</p>
+<p id="footer">bundle &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/cache.html b/deps/npm/html/doc/cache.html
index 39c9092c69e..4766b6b430f 100644
--- a/deps/npm/html/doc/cache.html
+++ b/deps/npm/html/doc/cache.html
@@ -66,7 +66,7 @@ they do not make an HTTP request to the registry.</p>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li></ul>
</div>
-<p id="footer">cache &mdash; npm@1.1.61</p>
+<p id="footer">cache &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/changelog.html b/deps/npm/html/doc/changelog.html
index af186b1a8f0..22a78c8915c 100644
--- a/deps/npm/html/doc/changelog.html
+++ b/deps/npm/html/doc/changelog.html
@@ -65,7 +65,7 @@
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li></ul>
</div>
-<p id="footer">changelog &mdash; npm@1.1.61</p>
+<p id="footer">changelog &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/coding-style.html b/deps/npm/html/doc/coding-style.html
index 7ab84d40421..370181d55d6 100644
--- a/deps/npm/html/doc/coding-style.html
+++ b/deps/npm/html/doc/coding-style.html
@@ -180,7 +180,7 @@ set to anything.&quot;</p>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
-<p id="footer">coding-style &mdash; npm@1.1.61</p>
+<p id="footer">coding-style &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/completion.html b/deps/npm/html/doc/completion.html
index 8661b8242e1..91717ac9eef 100644
--- a/deps/npm/html/doc/completion.html
+++ b/deps/npm/html/doc/completion.html
@@ -33,7 +33,7 @@ completions based on the arguments.</p>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
-<p id="footer">completion &mdash; npm@1.1.61</p>
+<p id="footer">completion &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/config.html b/deps/npm/html/doc/config.html
index d8ce82a5d79..273bc9343d7 100644
--- a/deps/npm/html/doc/config.html
+++ b/deps/npm/html/doc/config.html
@@ -756,7 +756,7 @@ then answer &quot;no&quot; to any prompt.</p>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
-<p id="footer">config &mdash; npm@1.1.61</p>
+<p id="footer">config &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/dedupe.html b/deps/npm/html/doc/dedupe.html
index 4a61e39f055..dd4c13e3ca8 100644
--- a/deps/npm/html/doc/dedupe.html
+++ b/deps/npm/html/doc/dedupe.html
@@ -57,7 +57,7 @@ registry.</p>
<ul><li><a href="../doc/ls.html">ls(1)</a></li><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">dedupe &mdash; npm@1.1.61</p>
+<p id="footer">dedupe &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/deprecate.html b/deps/npm/html/doc/deprecate.html
index 6cbab62c3c5..065ae2c53a8 100644
--- a/deps/npm/html/doc/deprecate.html
+++ b/deps/npm/html/doc/deprecate.html
@@ -29,7 +29,7 @@ something like this:</p>
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">deprecate &mdash; npm@1.1.61</p>
+<p id="footer">deprecate &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/developers.html b/deps/npm/html/doc/developers.html
index 964d90c6f17..a0ea585fa24 100644
--- a/deps/npm/html/doc/developers.html
+++ b/deps/npm/html/doc/developers.html
@@ -160,7 +160,7 @@ from a fresh checkout.</p>
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">developers &mdash; npm@1.1.61</p>
+<p id="footer">developers &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/disputes.html b/deps/npm/html/doc/disputes.html
index 9a496ce03f4..15c3cdfab20 100644
--- a/deps/npm/html/doc/disputes.html
+++ b/deps/npm/html/doc/disputes.html
@@ -80,7 +80,7 @@ license statement)</li><li>Illegal content.</li></ol>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li></ul>
</div>
-<p id="footer">disputes &mdash; npm@1.1.61</p>
+<p id="footer">disputes &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/docs.html b/deps/npm/html/doc/docs.html
index 9f2e7fe7d48..d909746de23 100644
--- a/deps/npm/html/doc/docs.html
+++ b/deps/npm/html/doc/docs.html
@@ -37,7 +37,7 @@ config param.</p>
<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">docs &mdash; npm@1.1.61</p>
+<p id="footer">docs &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/edit.html b/deps/npm/html/doc/edit.html
index bb979e71695..d8863fe3c9f 100644
--- a/deps/npm/html/doc/edit.html
+++ b/deps/npm/html/doc/edit.html
@@ -37,7 +37,7 @@ or <code>&quot;notepad&quot;</code> on Windows.</li><li>Type: path</li></ul>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/explore.html">explore(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">edit &mdash; npm@1.1.61</p>
+<p id="footer">edit &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/explore.html b/deps/npm/html/doc/explore.html
index c2839ff0700..b2be2dfdf75 100644
--- a/deps/npm/html/doc/explore.html
+++ b/deps/npm/html/doc/explore.html
@@ -40,7 +40,7 @@ Windows</li><li>Type: path</li></ul>
<ul><li><a href="../doc/submodule.html">submodule(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/edit.html">edit(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">explore &mdash; npm@1.1.61</p>
+<p id="footer">explore &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/faq.html b/deps/npm/html/doc/faq.html
index c66b89d4110..9a97c5ba5cf 100644
--- a/deps/npm/html/doc/faq.html
+++ b/deps/npm/html/doc/faq.html
@@ -250,7 +250,7 @@ There is not sufficient need to impose namespace rules on everyone.</p>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
</div>
-<p id="footer">faq &mdash; npm@1.1.61</p>
+<p id="footer">faq &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/folders.html b/deps/npm/html/doc/folders.html
index e60ea6bc757..5c38a16bdf7 100644
--- a/deps/npm/html/doc/folders.html
+++ b/deps/npm/html/doc/folders.html
@@ -205,7 +205,7 @@ cannot be found elsewhere. See <code><a href="../doc/json.html">json(1)</a></co
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li></ul>
</div>
-<p id="footer">folders &mdash; npm@1.1.61</p>
+<p id="footer">folders &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/help-search.html b/deps/npm/html/doc/help-search.html
index 24d3faf11d7..46a57ed51e7 100644
--- a/deps/npm/html/doc/help-search.html
+++ b/deps/npm/html/doc/help-search.html
@@ -38,7 +38,7 @@ where the terms were found in the documentation.</p>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li></ul>
</div>
-<p id="footer">help-search &mdash; npm@1.1.61</p>
+<p id="footer">help-search &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/help.html b/deps/npm/html/doc/help.html
index ab960dd175b..367b30afb4b 100644
--- a/deps/npm/html/doc/help.html
+++ b/deps/npm/html/doc/help.html
@@ -36,7 +36,7 @@ matches are equivalent to specifying a topic name.</p>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/help-search.html">help-search(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
-<p id="footer">help &mdash; npm@1.1.61</p>
+<p id="footer">help &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/index.html b/deps/npm/html/doc/index.html
index fe72394d3a5..78a2bd219d3 100644
--- a/deps/npm/html/doc/index.html
+++ b/deps/npm/html/doc/index.html
@@ -388,7 +388,7 @@
<p> Display npm username</p>
</div>
-<p id="footer">index &mdash; npm@1.1.61</p>
+<p id="footer">index &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/init.html b/deps/npm/html/doc/init.html
index d2ae25c5280..71d39d597b6 100644
--- a/deps/npm/html/doc/init.html
+++ b/deps/npm/html/doc/init.html
@@ -29,7 +29,7 @@ without a really good reason to do so.</p>
<ul><li><a href="https://github.com/isaacs/init-package-json">https://github.com/isaacs/init-package-json</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/version.html">version(1)</a></li></ul>
</div>
-<p id="footer">init &mdash; npm@1.1.61</p>
+<p id="footer">init &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/install.html b/deps/npm/html/doc/install.html
index c5bf0480525..fea636a0c5c 100644
--- a/deps/npm/html/doc/install.html
+++ b/deps/npm/html/doc/install.html
@@ -133,7 +133,7 @@ affects a real use-case, it will be investigated.</p>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/shrinkwrap.html">shrinkwrap(1)</a></li></ul>
</div>
-<p id="footer">install &mdash; npm@1.1.61</p>
+<p id="footer">install &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/json.html b/deps/npm/html/doc/json.html
index 1bfeafa05ec..03597245256 100644
--- a/deps/npm/html/doc/json.html
+++ b/deps/npm/html/doc/json.html
@@ -525,7 +525,7 @@ overridden.</p>
<ul><li><a href="../doc/semver.html">semver(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/version.html">version(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/rm.html">rm(1)</a></li></ul>
</div>
-<p id="footer">json &mdash; npm@1.1.61</p>
+<p id="footer">json &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/link.html b/deps/npm/html/doc/link.html
index 00af34f7ac7..78ed6c76362 100644
--- a/deps/npm/html/doc/link.html
+++ b/deps/npm/html/doc/link.html
@@ -58,7 +58,7 @@ installation target into your project&#39;s <code>node_modules</code> folder.</p
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">link &mdash; npm@1.1.61</p>
+<p id="footer">link &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/ls.html b/deps/npm/html/doc/ls.html
index 85a2e761ebb..227dae41883 100644
--- a/deps/npm/html/doc/ls.html
+++ b/deps/npm/html/doc/ls.html
@@ -25,7 +25,7 @@ limit the results to only the paths to the packages named. Note that
nested packages will <em>also</em> show the paths to the specified packages.
For example, running <code>npm ls promzard</code> in npm&#39;s source tree will show:</p>
-<pre><code>npm@1.1.61 /path/to/npm
+<pre><code>npm@1.1.62 /path/to/npm
└─┬ init-package-json@0.0.4
└── promzard@0.1.5</code></pre>
@@ -64,7 +64,7 @@ project.</p>
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/update.html">update(1)</a></li></ul>
</div>
-<p id="footer">ls &mdash; npm@1.1.61</p>
+<p id="footer">ls &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/npm.html b/deps/npm/html/doc/npm.html
index 67c8aaa3f01..0f3b45b09ae 100644
--- a/deps/npm/html/doc/npm.html
+++ b/deps/npm/html/doc/npm.html
@@ -14,7 +14,7 @@
<h2 id="VERSION">VERSION</h2>
-<p>1.1.61</p>
+<p>1.1.62</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@@ -135,7 +135,7 @@ will no doubt tell you to put the output in a gist or email.</p>
<ul><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/index.html">index(1)</a></li><li><a href="../api/npm.html">npm(3)</a></li></ul>
</div>
-<p id="footer">npm &mdash; npm@1.1.61</p>
+<p id="footer">npm &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/outdated.html b/deps/npm/html/doc/outdated.html
index 4d7dd840807..27258ed37d9 100644
--- a/deps/npm/html/doc/outdated.html
+++ b/deps/npm/html/doc/outdated.html
@@ -21,7 +21,7 @@ packages are currently outdated.</p>
<ul><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
</div>
-<p id="footer">outdated &mdash; npm@1.1.61</p>
+<p id="footer">outdated &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/owner.html b/deps/npm/html/doc/owner.html
index 000b425b7fd..143776ffd91 100644
--- a/deps/npm/html/doc/owner.html
+++ b/deps/npm/html/doc/owner.html
@@ -34,7 +34,7 @@ that is not implemented at this time.</p>
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/disputes.html">disputes(1)</a></li></ul>
</div>
-<p id="footer">owner &mdash; npm@1.1.61</p>
+<p id="footer">owner &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/pack.html b/deps/npm/html/doc/pack.html
index 4dd7fe53c40..f8c26afe3c7 100644
--- a/deps/npm/html/doc/pack.html
+++ b/deps/npm/html/doc/pack.html
@@ -29,7 +29,7 @@ overwritten the second time.</p>
<ul><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">pack &mdash; npm@1.1.61</p>
+<p id="footer">pack &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/prefix.html b/deps/npm/html/doc/prefix.html
index f4c0ecd6af2..f0456195498 100644
--- a/deps/npm/html/doc/prefix.html
+++ b/deps/npm/html/doc/prefix.html
@@ -20,7 +20,7 @@
<ul><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/bin.html">bin(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">prefix &mdash; npm@1.1.61</p>
+<p id="footer">prefix &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/prune.html b/deps/npm/html/doc/prune.html
index fddff0b220c..f68c9dce384 100644
--- a/deps/npm/html/doc/prune.html
+++ b/deps/npm/html/doc/prune.html
@@ -25,7 +25,7 @@ package&#39;s dependencies list.</p>
<ul><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
-<p id="footer">prune &mdash; npm@1.1.61</p>
+<p id="footer">prune &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/publish.html b/deps/npm/html/doc/publish.html
index 613b2fb7b4e..d60202a4c12 100644
--- a/deps/npm/html/doc/publish.html
+++ b/deps/npm/html/doc/publish.html
@@ -29,7 +29,7 @@ the registry. Overwrites when the &quot;--force&quot; flag is set.</p>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/deprecate.html">deprecate(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li></ul>
</div>
-<p id="footer">publish &mdash; npm@1.1.61</p>
+<p id="footer">publish &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/rebuild.html b/deps/npm/html/doc/rebuild.html
index 6ea0e01f2b3..b030e1fb366 100644
--- a/deps/npm/html/doc/rebuild.html
+++ b/deps/npm/html/doc/rebuild.html
@@ -25,7 +25,7 @@ the new binary.</p>
<ul><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">rebuild &mdash; npm@1.1.61</p>
+<p id="footer">rebuild &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/registry.html b/deps/npm/html/doc/registry.html
index 0b4cac912dc..ea2e6f36f20 100644
--- a/deps/npm/html/doc/registry.html
+++ b/deps/npm/html/doc/registry.html
@@ -97,7 +97,7 @@ ask for help on the <a href="mailto:npm-@googlegroups.com">npm-@googlegroups.com
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/disputes.html">disputes(1)</a></li></ul>
</div>
-<p id="footer">registry &mdash; npm@1.1.61</p>
+<p id="footer">registry &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/removing-npm.html b/deps/npm/html/doc/removing-npm.html
index c4201a7001c..3768a0e3c1b 100644
--- a/deps/npm/html/doc/removing-npm.html
+++ b/deps/npm/html/doc/removing-npm.html
@@ -58,7 +58,7 @@ modules. To track those down, you can do the following:</p>
<ul><li><a href="../doc/README.html">README</a></li><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li></ul>
</div>
-<p id="footer">removing-npm &mdash; npm@1.1.61</p>
+<p id="footer">removing-npm &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/restart.html b/deps/npm/html/doc/restart.html
index ed509ea34c9..de43a95c2af 100644
--- a/deps/npm/html/doc/restart.html
+++ b/deps/npm/html/doc/restart.html
@@ -24,7 +24,7 @@ the &quot;start&quot; script.</p>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">restart &mdash; npm@1.1.61</p>
+<p id="footer">restart &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/root.html b/deps/npm/html/doc/root.html
index 627a9c9281d..a9879d4c07c 100644
--- a/deps/npm/html/doc/root.html
+++ b/deps/npm/html/doc/root.html
@@ -20,7 +20,7 @@
<ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/bin.html">bin(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">root &mdash; npm@1.1.61</p>
+<p id="footer">root &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/run-script.html b/deps/npm/html/doc/run-script.html
index f05942e0712..12b81dbde00 100644
--- a/deps/npm/html/doc/run-script.html
+++ b/deps/npm/html/doc/run-script.html
@@ -23,7 +23,7 @@ called directly, as well.</p>
<ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">run-script &mdash; npm@1.1.61</p>
+<p id="footer">run-script &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/scripts.html b/deps/npm/html/doc/scripts.html
index 896bd939b5f..8c656e8a3b2 100644
--- a/deps/npm/html/doc/scripts.html
+++ b/deps/npm/html/doc/scripts.html
@@ -177,7 +177,7 @@ will sudo the npm command in question.</li></ul>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">scripts &mdash; npm@1.1.61</p>
+<p id="footer">scripts &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/search.html b/deps/npm/html/doc/search.html
index 87d23dd7d23..33c66ef44db 100644
--- a/deps/npm/html/doc/search.html
+++ b/deps/npm/html/doc/search.html
@@ -24,7 +24,7 @@ expression characters must be escaped or quoted in most shells.)</p>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/view.html">view(1)</a></li></ul>
</div>
-<p id="footer">search &mdash; npm@1.1.61</p>
+<p id="footer">search &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/semver.html b/deps/npm/html/doc/semver.html
index e6c277d1ba6..0e0794f5914 100644
--- a/deps/npm/html/doc/semver.html
+++ b/deps/npm/html/doc/semver.html
@@ -104,7 +104,7 @@ that satisfies the range, or null if none of them do.</li></ul>
<ul><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">semver &mdash; npm@1.1.61</p>
+<p id="footer">semver &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/shrinkwrap.html b/deps/npm/html/doc/shrinkwrap.html
index db8d64fb743..e47606ef240 100644
--- a/deps/npm/html/doc/shrinkwrap.html
+++ b/deps/npm/html/doc/shrinkwrap.html
@@ -169,7 +169,7 @@ versions.</p>
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
-<p id="footer">shrinkwrap &mdash; npm@1.1.61</p>
+<p id="footer">shrinkwrap &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/star.html b/deps/npm/html/doc/star.html
index ab6ac0133eb..93c6aa9346c 100644
--- a/deps/npm/html/doc/star.html
+++ b/deps/npm/html/doc/star.html
@@ -26,7 +26,7 @@ a vaguely positive way to show that you care.</p>
<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
</div>
-<p id="footer">star &mdash; npm@1.1.61</p>
+<p id="footer">star &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/start.html b/deps/npm/html/doc/start.html
index 3b454215dc4..e40c5f1f82f 100644
--- a/deps/npm/html/doc/start.html
+++ b/deps/npm/html/doc/start.html
@@ -20,7 +20,7 @@
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">start &mdash; npm@1.1.61</p>
+<p id="footer">start &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/stop.html b/deps/npm/html/doc/stop.html
index d50e70f9a4a..2d331dda8c2 100644
--- a/deps/npm/html/doc/stop.html
+++ b/deps/npm/html/doc/stop.html
@@ -20,7 +20,7 @@
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li></ul>
</div>
-<p id="footer">stop &mdash; npm@1.1.61</p>
+<p id="footer">stop &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/submodule.html b/deps/npm/html/doc/submodule.html
index 4f1f5503850..d1cef58e759 100644
--- a/deps/npm/html/doc/submodule.html
+++ b/deps/npm/html/doc/submodule.html
@@ -33,7 +33,7 @@ dependencies into the submodule folder.</p>
<ul><li><a href="../doc/json.html">json(1)</a></li><li>git help submodule</li></ul>
</div>
-<p id="footer">submodule &mdash; npm@1.1.61</p>
+<p id="footer">submodule &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/tag.html b/deps/npm/html/doc/tag.html
index d84582daf19..2ba9b8a8a3d 100644
--- a/deps/npm/html/doc/tag.html
+++ b/deps/npm/html/doc/tag.html
@@ -21,7 +21,7 @@
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">tag &mdash; npm@1.1.61</p>
+<p id="footer">tag &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/test.html b/deps/npm/html/doc/test.html
index 2b34c25751f..bc8a43293fe 100644
--- a/deps/npm/html/doc/test.html
+++ b/deps/npm/html/doc/test.html
@@ -23,7 +23,7 @@ true.</p>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">test &mdash; npm@1.1.61</p>
+<p id="footer">test &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/uninstall.html b/deps/npm/html/doc/uninstall.html
index ec55f9609d7..aeccf8d17c1 100644
--- a/deps/npm/html/doc/uninstall.html
+++ b/deps/npm/html/doc/uninstall.html
@@ -22,7 +22,7 @@ on its behalf.</p>
<ul><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">uninstall &mdash; npm@1.1.61</p>
+<p id="footer">uninstall &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/unpublish.html b/deps/npm/html/doc/unpublish.html
index eaeb8f0f465..354ac7a0cb1 100644
--- a/deps/npm/html/doc/unpublish.html
+++ b/deps/npm/html/doc/unpublish.html
@@ -34,7 +34,7 @@ the root package entry is removed from the registry entirely.</p>
<ul><li><a href="../doc/deprecate.html">deprecate(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li></ul>
</div>
-<p id="footer">unpublish &mdash; npm@1.1.61</p>
+<p id="footer">unpublish &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/update.html b/deps/npm/html/doc/update.html
index b93942c3b2c..5c7d60d083e 100644
--- a/deps/npm/html/doc/update.html
+++ b/deps/npm/html/doc/update.html
@@ -23,7 +23,7 @@
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
-<p id="footer">update &mdash; npm@1.1.61</p>
+<p id="footer">update &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/version.html b/deps/npm/html/doc/version.html
index 611b45ee3db..d3eea5f839b 100644
--- a/deps/npm/html/doc/version.html
+++ b/deps/npm/html/doc/version.html
@@ -40,7 +40,7 @@ in your git config for this to work properly.</p>
<ul><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/semver.html">semver(1)</a></li></ul>
</div>
-<p id="footer">version &mdash; npm@1.1.61</p>
+<p id="footer">version &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/view.html b/deps/npm/html/doc/view.html
index 27681fc5048..e87e7dfeafc 100644
--- a/deps/npm/html/doc/view.html
+++ b/deps/npm/html/doc/view.html
@@ -88,7 +88,7 @@ the field name.</p>
<ul><li><a href="../doc/search.html">search(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/docs.html">docs(1)</a></li></ul>
</div>
-<p id="footer">view &mdash; npm@1.1.61</p>
+<p id="footer">view &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/whoami.html b/deps/npm/html/doc/whoami.html
index f885520861f..d8909e98391 100644
--- a/deps/npm/html/doc/whoami.html
+++ b/deps/npm/html/doc/whoami.html
@@ -20,7 +20,7 @@
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
</div>
-<p id="footer">whoami &mdash; npm@1.1.61</p>
+<p id="footer">whoami &mdash; npm@1.1.62</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/lib/bugs.js b/deps/npm/lib/bugs.js
index 3f9de12315f..fa66dc3e419 100644
--- a/deps/npm/lib/bugs.js
+++ b/deps/npm/lib/bugs.js
@@ -7,6 +7,7 @@ var exec = require("./utils/exec.js")
, npm = require("./npm.js")
, registry = npm.registry
, log = require("npmlog")
+ , opener = require("opener")
bugs.completion = function (opts, cb) {
if (opts.conf.argv.remain.length > 2) return cb()
@@ -22,41 +23,22 @@ function bugs (args, cb) {
if (er) return cb(er)
var bugs = d.bugs
, repo = d.repository || d.repositories
+ , url
if (bugs) {
- if (typeof bugs === "string") return open(bugs, cb)
- if (bugs.url) return open(bugs.url, cb)
- }
- if (repo) {
+ url = (typeof bugs === "string") ? bugs : bugs.url
+ } else if (repo) {
if (Array.isArray(repo)) repo = repo.shift()
if (repo.hasOwnProperty("url")) repo = repo.url
log.verbose("repository", repo)
if (repo && repo.match(/^(https?:\/\/|git(:\/\/|@))github.com/)) {
- return open(repo.replace(/^git(@|:\/\/)/, "http://")
- .replace(/^https?:\/\/github.com:/, "github.com/")
- .replace(/\.git$/, '')+"/issues", cb)
+ url = repo.replace(/^git(@|:\/\/)/, "https://")
+ .replace(/^https?:\/\/github.com:/, "https://github.com/")
+ .replace(/\.git$/, '')+"/issues"
}
}
- return open("http://search.npmjs.org/#/" + d.name, cb)
+ if (!url) {
+ url = "https://npmjs.org/package/" + d.name
+ }
+ opener(url, { command: npm.config.get("browser") }, cb)
})
}
-
-function open (url, cb) {
- var args = [url]
- , browser = npm.config.get("browser")
-
- if (process.platform === "win32" && browser === "start") {
- args = [ "/c", "start" ].concat(args)
- browser = "cmd"
- }
-
- if (!browser) {
- var er = ["the 'browser' config is not set. Try doing this:"
- ," npm config set browser google-chrome"
- ,"or:"
- ," npm config set browser lynx"].join("\n")
- return cb(er)
- }
-
- exec(browser, args, process.env, false, function () {})
- cb()
-}
diff --git a/deps/npm/lib/docs.js b/deps/npm/lib/docs.js
index 72c1869b9b6..ffa91aa6bde 100644
--- a/deps/npm/lib/docs.js
+++ b/deps/npm/lib/docs.js
@@ -14,6 +14,7 @@ var exec = require("./utils/exec.js")
, npm = require("./npm.js")
, registry = npm.registry
, log = require("npmlog")
+ , opener = require("opener")
function docs (args, cb) {
if (!args.length) return cb(docs.usage)
@@ -22,37 +23,8 @@ function docs (args, cb) {
if (er) return cb(er)
var homepage = d.homepage
, repo = d.repository || d.repositories
- if (homepage) return open(homepage, cb)
- if (repo) {
- if (Array.isArray(repo)) repo = repo.shift()
- if (repo.hasOwnProperty("url")) repo = repo.url
- log.verbose("repository", repo)
- if (repo) {
- return open(repo.replace(/^git(@|:\/\/)/, 'http://')
- .replace(/\.git$/, '')+"#readme", cb)
- }
- }
- return open("http://search.npmjs.org/#/" + d.name, cb)
+ , url = homepage ? homepage
+ : "https://npmjs.org/package/" + d.name
+ opener(url, { command: npm.config.get("browser") }, cb)
})
}
-
-function open (url, cb) {
- var args = [url]
- , browser = npm.config.get("browser")
-
- if (process.platform === "win32" && browser === "start") {
- args = [ "/c", "start" ].concat(args)
- browser = "cmd"
- }
-
- if (!browser) {
- var er = ["the 'browser' config is not set. Try doing this:"
- ," npm config set browser google-chrome"
- ,"or:"
- ," npm config set browser lynx"].join("\n")
- return cb(er)
- }
-
- exec(browser, args, process.env, false, function () {})
- cb()
-}
diff --git a/deps/npm/lib/help.js b/deps/npm/lib/help.js
index 495db8381ae..a8b1f2d4d2f 100644
--- a/deps/npm/lib/help.js
+++ b/deps/npm/lib/help.js
@@ -13,6 +13,7 @@ var fs = require("graceful-fs")
, exec = require("./utils/exec.js")
, npm = require("./npm.js")
, log = require("npmlog")
+ , opener = require("opener")
function help (args, cb) {
var num = 1
@@ -63,18 +64,7 @@ function help (args, cb) {
break
case "browser":
- var b = npm.config.get("browser")
- if (!b) {
- return cb(new Error("viewer=browser and no browser set."))
- }
- console.log("Opening HTML in default browser...")
- process.nextTick(cb)
- // windows is SO weird.
- if (process.platform === "win32") {
- exec("cmd", ["/c", htmlPath], env, false, function () {})
- } else {
- exec(b, [htmlPath], env, false, function () {})
- }
+ opener(htmlPath, { command: npm.config.get("browser") }, cb)
break
default:
diff --git a/deps/npm/lib/ls.js b/deps/npm/lib/ls.js
index 96068bfa57b..8a4d6277f2b 100644
--- a/deps/npm/lib/ls.js
+++ b/deps/npm/lib/ls.js
@@ -36,6 +36,7 @@ function ls (args, silent, cb) {
readInstalled(dir, npm.config.get("depth"), function (er, data) {
var bfs = bfsify(data, args)
, lite = getLite(bfs)
+
if (er || silent) return cb(er, data, lite)
var long = npm.config.get("long")
@@ -58,7 +59,12 @@ function ls (args, silent, cb) {
out = makeArchy(bfs, long, dir)
}
console.log(out)
- cb(null, data, lite)
+
+ // if any errors were found, then complain and exit status 1
+ if (lite.problems && lite.problems.length) {
+ er = lite.problems.join('\n')
+ }
+ cb(er, data, lite)
})
}
@@ -210,7 +216,6 @@ function makeArchy_ (data, long, dir, depth, parent, d) {
if (depth < npm.config.get("depth")) {
// just missing
var p = parent.link || parent.path
- log.warn("unmet dependency", "%s in %s", d+" "+data, p)
var unmet = "UNMET DEPENDENCY"
if (color) {
unmet = "\033[31;40m" + unmet + "\033[0m"
@@ -303,7 +308,6 @@ function makeParseable_ (data, long, dir, depth, parent, d) {
if (typeof data === "string") {
if (data.depth < npm.config.get("depth")) {
var p = parent.link || parent.path
- log.warn("unmet dependency", "%s in %s", d+" "+data, p)
data = npm.config.get("long")
? path.resolve(parent.path, "node_modules", d)
+ ":"+d+"@"+JSON.stringify(data)+":INVALID:MISSING"
diff --git a/deps/npm/man/man1/ls.1 b/deps/npm/man/man1/ls.1
index 04f5b6bce63..3c1f48fb125 100644
--- a/deps/npm/man/man1/ls.1
+++ b/deps/npm/man/man1/ls.1
@@ -29,7 +29,7 @@ For example, running \fBnpm ls promzard\fR in npm\'s source tree will show:
.IP "" 4
.
.nf
-npm@1.1.61 /path/to/npm
+npm@1.1.62 /path/to/npm
└─┬ init\-package\-json@0\.0\.4
└── promzard@0\.1\.5
.
diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1
index 6e9a40cb965..52199582d2f 100644
--- a/deps/npm/man/man1/npm.1
+++ b/deps/npm/man/man1/npm.1
@@ -14,7 +14,7 @@ npm <command> [args]
.fi
.
.SH "VERSION"
-1.1.61
+1.1.62
.
.SH "DESCRIPTION"
npm is the package manager for the Node JavaScript platform\. It puts
diff --git a/deps/npm/man/man3/npm.3 b/deps/npm/man/man3/npm.3
index a4b0daf8550..104ab96ff35 100644
--- a/deps/npm/man/man3/npm.3
+++ b/deps/npm/man/man3/npm.3
@@ -21,7 +21,7 @@ npm\.load(configObject, function (er, npm) {
.fi
.
.SH "VERSION"
-1.1.61
+1.1.62
.
.SH "DESCRIPTION"
This is the API documentation for npm\.
diff --git a/deps/npm/node_modules/couch-login/couch-login.js b/deps/npm/node_modules/couch-login/couch-login.js
index be037f0f219..a2b3234391f 100644
--- a/deps/npm/node_modules/couch-login/couch-login.js
+++ b/deps/npm/node_modules/couch-login/couch-login.js
@@ -2,6 +2,7 @@ var request = require('request')
, url = require('url')
, crypto = require('crypto')
, YEAR = (1000 * 60 * 60 * 24 * 365)
+, BASIC = {}
module.exports = CouchLogin
@@ -13,11 +14,28 @@ function CouchLogin (couch, tok) {
if (!couch) throw new Error(
"Need to pass a couch url to CouchLogin constructor")
- // having auth completely defeats the purpose
+ if (couch instanceof CouchLogin)
+ couch = couch.couch
+
couch = url.parse(couch)
+ if (couch.auth) {
+ var a = couch.auth.split(':')
+ var name = a.shift()
+ var password = a.join(':')
+ this.name = name
+ if (password)
+ this.auth = new Buffer(name + ':' + password).toString('base64')
+ } else {
+ this.auth = null
+ this.name = null
+ }
delete couch.auth
- if (tok === 'anonymous') tok = NaN
+ if (tok === 'anonymous')
+ tok = NaN
+ else if (tok === 'basic')
+ tok = BASIC
+
this.token = tok
this.couch = url.format(couch)
this.proxy = null
@@ -97,9 +115,16 @@ function makeReq (meth, body, f) { return function madeReq (p, d, cb) {
, u = url.resolve(this.couch, p)
, req = { uri: u, headers: h, json: true, body: d, method: meth }
- if (this.token) {
+ if (this.token === BASIC) {
+ if (!this.auth)
+ return process.nextTick(cb.bind(this, new Error(
+ 'Using basic auth and no auth provided')))
+ else
+ h.authorization = 'Basic ' + this.auth
+ } else if (this.token) {
h.cookie = 'AuthSession=' + this.token.AuthSession
}
+
if (this.proxy) {
req.proxy = this.proxy
}
@@ -113,8 +138,19 @@ function makeReq (meth, body, f) { return function madeReq (p, d, cb) {
}}
function login (auth, cb) {
+ if (this.token === BASIC) {
+ this.auth = new Buffer(auth.name + ':' + auth.password).toString('base64')
+ this.name = auth.name
+ return process.nextTick(cb, null, { statusCode: 200 }, { ok: true })
+ }
var a = { name: auth.name, password: auth.password }
- makeReq('post', true, true).call(this, '/_session', a, cb)
+ var req = makeReq('post', true, true)
+ req.call(this, '/_session', a, function (er, cr, data) {
+ if (er || (cr && cr.statusCode >= 400))
+ return cb(er, cr, data)
+ this.name = auth.name
+ cb(er, cr, data)
+ })
}
function changePass (auth, cb) {
@@ -145,8 +181,12 @@ function changePass (auth, cb) {
data.date = new Date().toISOString()
this.put(u + '?rev=' + data._rev, data, function (er, res, data) {
- if (er || res.statusCode >= 400) return cb(er, res, data)
- this.login(auth, cb)
+ console.error('back from changepass', er, data, this.name)
+ if (er || res.statusCode >= 400)
+ return cb(er, res, data)
+ if (this.name && this.name !== auth.name)
+ return cb(er, res, data)
+ return this.login(auth, cb)
}.bind(this))
}.bind(this))
}
@@ -176,17 +216,18 @@ function deleteAccount (name, cb) {
function signup (auth, cb) {
- if (this.token) return this.logout(function (er, res, data) {
- if (er || res.statusCode !== 200) {
- return cb(er, res, data)
- }
+ if (this.token && this.token !== BASIC)
+ return this.logout(function (er, res, data) {
+ if (er || res.statusCode !== 200) {
+ return cb(er, res, data)
+ }
- if (this.token) {
- return cb(new Error('failed to delete token'), res, data)
- }
+ if (this.token) {
+ return cb(new Error('failed to delete token'), res, data)
+ }
- this.signup(auth, cb)
- }.bind(this))
+ this.signup(auth, cb)
+ }.bind(this))
// make a new user record.
var newSalt = crypto.randomBytes(30).toString('hex')
@@ -221,6 +262,10 @@ function signup (auth, cb) {
}
function addToken (res) {
+ // not doing the whole login session cookie thing.
+ if (this.token === BASIC)
+ return
+
// attach the token, if a new one was provided.
var sc = res.headers['set-cookie']
if (!sc) return
@@ -294,6 +339,7 @@ function logout (cb) {
}
function valid (token) {
+ if (token === BASIC) return true
if (!token) return false
if (!token.hasOwnProperty('expires')) return true
return token.expires > Date.now()
diff --git a/deps/npm/node_modules/couch-login/package.json b/deps/npm/node_modules/couch-login/package.json
index 7d62b739f6b..9ccd561b5ba 100644
--- a/deps/npm/node_modules/couch-login/package.json
+++ b/deps/npm/node_modules/couch-login/package.json
@@ -6,7 +6,7 @@
},
"name": "couch-login",
"description": "A module for doing logged-in requests to a couchdb server",
- "version": "0.1.10",
+ "version": "0.1.12",
"repository": {
"type": "git",
"url": "git://github.com/isaacs/couch-login.git"
@@ -22,6 +22,6 @@
"tap": "~0.2.4"
},
"readme": "# couch-login\n\nThis module lets you log into couchdb to get a session token, then make\nrequests using that session. It is basically just a thin wrapper around\n[@mikeal's request module](https://github.com/mikeal/request).\n\nThis is handy if you want a user to take actions in a couchdb database\non behalf of a user, without having to store their couchdb username and\npassword anywhere. (You do need to store the AuthSession token\nsomewhere, though.)\n\n## Usage\n\n```javascript\nvar CouchLogin = require('couch-login')\n\n// Nothing about this module is http-server specific of course.\n// You could also use it to do authenticated requests against\n// a couchdb using sessions and storing the token somewhere else.\n\nhttp.createServer(function (req, res) {\n var couch = new CouchLogin('http://my-couch.iriscouch.com:5984/')\n\n // .. look up the token in the user's session or whatever ..\n // Look at couch.decorate(req, res) for more on doing that\n // automatically, below.\n\n if (sessionToken) {\n // this user already logged in.\n couch.token = sessionToken\n\n // now we can do things on their behalf, like:\n // 1. View their session info.\n // like doing request.get({ uri: couch + '/_session', ... })\n // but with the cookie and whatnot\n\n couch.get('/_session', function (er, resp, data) {\n // er = some kind of communication error.\n // resp = response object from the couchdb request.\n // data = parsed JSON response body.\n if (er || resp.statusCode !== 200) {\n res.statusCode = resp.statusCode || 403\n return res.end('Invalid login or something')\n }\n\n // now we have the session info, we know who this user is.\n // hitting couchdb for this on every request is kinda costly,\n // so maybe you should store the username wherever you're storing\n // the sessionToken. RedSess is a good util for this, if you're\n // into redis. And if you're not into redis, you're crazy,\n // because it is awesome.\n\n // now let's get the user record.\n // note that this will 404 for anyone other than the user,\n // unless they're a server admin.\n couch.get('/_users/org.couchdb.user:' + data.userCtx.name, etc)\n\n // PUTs and DELETEs will also use their session, of course, so\n // your validate_doc_update's will see their info in userCtx\n })\n\n } else {\n // don't have a sessionToken.\n // get a username and password from the post body or something.\n // maybe redirect to a /login page or something to ask for that.\n var login = { name: name, password: password }\n couch.login(login, function (er, resp, data) {\n // again, er is an error, resp is the response obj, data is the json\n if (er || resp.statusCode !== 200) {\n res.statusCode = resp.statusCode || 403\n return res.end('Invalid login or something')\n }\n\n // the data is something like\n // {\"ok\":true,\"name\":\"testuser\",\"roles\":[]}\n // and couch.token is the token you'll need to save somewhere.\n\n // at this point, you can start making authenticated requests to\n // couchdb, or save data in their session, or do whatever it is\n // that you need to do.\n\n res.statusCode = 200\n res.write(\"Who's got two thumbs and just logged you into couch?\\n\")\n setTimeout(function () {\n res.end(\"THIS GUY!\")\n }, 500)\n })\n }\n})\n```\n\n## Class: CouchLogin\n### new CouchLogin(couchdbUrl, token)\n\nCreate a new CouchLogin object bound to the couchdb url.\n\nIn addition to these, the `get`, `post`, `put`, and `del` methods all\nproxy to the associated method on [request](https://github.com/mikeal/request).\n\nHowever, as you'll note in the example above, only the pathname portion\nof the url is required. Urls will be appended to the couchdb url passed\ninto the constructor.\n\nIf you have to talk to more than one couchdb, then you'll need more than\none CouchLogin object, for somewhat obvious reasons.\n\nAll callbacks get called with the following arguments, which are exactly\nidentical to the arguments passed to a `request` callback.\n\n* `er` {Error | null} Set if a communication error happens.\n* `resp` {HTTP Response} The response from the request to couchdb\n* `data` {Object} The parsed JSON data from couch\n\nIf the token is the string \"anonymous\", then it will not attempt to log\nin before making requests. If the token is not \"anonymous\", then it\nmust be an object with the appropriate fields.\n\n### couch.token\n\n* {Object}\n\nAn object representing the couchdb session token. (Basically just a\ncookie and a timeout.)\n\nIf the token has already timed out, then setting it will have no effect.\n\n### couch.tokenSet\n\nIf set, this method is called whenever the token is saved.\n\nFor example, you could assign a function to this method to save the\ntoken into a redis session, a cookie, or in some other database.\n\nTakes a callback which should be called when the token is saved.\n\n### couch.tokenGet\n\nIf set, this method is called to look up the token on demand.\n\nThe inverse of couch.tokenSet. Takes a callback which is called with\nthe `cb(er || null, token)`.\n\n### couch.tokenDel\n\nIf set, this method is called to delete the token when it should be\ndiscarded.\n\nRelated to tokenGet and tokenSet. Takes a callback which should be\ncalled when the token is deleted.\n\n### couch.anonymous()\n\nReturn a new CouchLogin object that points at the same couchdb server,\nbut doesn't try to log in before making requests.\n\nThis is handy for situations where the user is not logged in at the\nmoment, but a request needs to be made anyway, and does not require\nauthorization.\n\n### couch.login(auth, callback)\n\n* `auth` {Object} The login details\n * `name` {String}\n * `password` {String}\n* `callback` {Function}\n\nWhen the callback is called, the `couch.token` will already have been\nset (assuming it worked!), so subsequent requests will be done as that\nuser.\n\n### couch.get(path, callback)\n\nGET the supplied path from the couchdb using the credentials on the\ntoken.\n\nFails if the token is invalid or expired.\n\n### couch.del(path, callback)\n\nDELETE the supplied path from the couchdb using the credentials on the\ntoken.\n\nFails if the token is invalid or expired.\n\n### couch.post(path, data, callback)\n\nPOST the data to the supplied path in the couchdb, using the credentials\non the token.\n\nFails if the token is invalid or expired.\n\n### couch.put(path, data, callback)\n\nPUT the data to the supplied path in the couchdb, using the credentials\non the token.\n\nFails if the token is invalid or expired.\n\n### couch.changePass(newAuth, callback)\n\nMust already be logged in. Updates the `_users` document with new salt\nand hash, and re-logs in with the new credentials. Callback is called\nwith the same arguments as login, or the first step of the process that\nfailed.\n\n### couch.signup(userData, callback)\n\nCreate a new user account. The userData must contain at least a `name`\nand `password` field. Any additional data will be copied to the user\nrecord. The `_id`, `name`, `roles`, `type`, `password_sha`, `salt`, and\n`date` fields are generated.\n\nAlso signs in as the newly created user, on successful account creation.\n\n### couch.deleteAccount(name, callback)\n\nDeletes a user account. If not logged in as the user, or a server\nadmin, then the request will fail.\n\nNote that this immediately invalidates any session tokens for the\ndeleted user account. If you are deleting the user's record, then you\nought to follow this with `couch.logout(callback)` so that it won't try\nto re-use the invalid session.\n\n### couch.logout(callback)\n\nDelete the session out of couchdb. This makes the token permanently\ninvalid, and deletes it.\n\n### couch.decorate(req, res)\n\nSet up `req.couch` and `res.couch` as references to this couch login\ninstance.\n\nAdditionall, if `req.session` or `res.session` is set, then it'll call\n`session.get('couch_token', cb)` as the tokenGet method,\n`session.set('couch_token', token, cb)` as the tokenSet method, and\n`session.del('couch_token', cb)` as the tokenDel method.\n\nThis works really nice with\n[RedSess](https://github.com/isaacs/redsess).\n",
- "_id": "couch-login@0.1.10",
+ "_id": "couch-login@0.1.12",
"_from": "couch-login@~0.1.9"
}
diff --git a/deps/npm/node_modules/couch-login/test/basic.js b/deps/npm/node_modules/couch-login/test/basic.js
index fb280624a27..660a24a0fd0 100644
--- a/deps/npm/node_modules/couch-login/test/basic.js
+++ b/deps/npm/node_modules/couch-login/test/basic.js
@@ -284,3 +284,16 @@ tap.test('sign up as new user', function (t) {
})
})
})
+
+tap.test('using basic auth', function (t) {
+ var c = new CouchLogin(couch.couch, 'basic')
+ c.login(auth, function () {
+ c.get('/_users/org.couchdb.user:testuser', function (er, res, data) {
+ if (er)
+ throw er
+ okStatus(t, res)
+ t.ok(data, 'data')
+ t.end()
+ })
+ })
+})
diff --git a/deps/npm/node_modules/graceful-fs/graceful-fs.js b/deps/npm/node_modules/graceful-fs/graceful-fs.js
index 5d136c27f96..be9951eacd5 100644
--- a/deps/npm/node_modules/graceful-fs/graceful-fs.js
+++ b/deps/npm/node_modules/graceful-fs/graceful-fs.js
@@ -65,10 +65,8 @@ function open (path, flags, mode, cb) {
fs.openSync = function (path, flags, mode) {
var ret
- try {
- ret = originalOpenSync.call(fs, path, flags, mode)
- fs._curOpen ++
- } finally {}
+ ret = originalOpenSync.call(fs, path, flags, mode)
+ fs._curOpen ++
return ret
}
@@ -261,7 +259,6 @@ if (!fs.lchown) {
-
// on Windows, A/V software can lock the directory, causing this
// to fail with an EACCES or EPERM if the directory contains newly
// created files. Try again on failure, for up to 1 second.
@@ -279,3 +276,37 @@ if (process.platform === "win32") {
})
}
}
+
+
+// if read() returns EAGAIN, then just try it again.
+var read = fs.read
+fs.read = function (fd, buffer, offset, length, position, callback_) {
+ var callback
+ if (callback_ && typeof callback_ === 'function') {
+ var eagCounter = 0
+ callback = function (er, _, __) {
+ if (er && er.code === 'EAGAIN' && eagCounter < 10) {
+ eagCounter ++
+ return read.call(fs, fd, buffer, offset, length, position, callback)
+ }
+ callback_.apply(this, arguments)
+ }
+ }
+ return read.call(fs, fd, buffer, offset, length, position, callback)
+}
+
+var readSync = fs.readSync
+fs.readSync = function (fd, buffer, offset, length, position) {
+ var eagCounter = 0
+ while (true) {
+ try {
+ return readSync.call(fs, fd, buffer, offset, length, position)
+ } catch (er) {
+ if (er.code === 'EAGAIN' && eagCounter < 10) {
+ eagCounter ++
+ continue
+ }
+ throw er
+ }
+ }
+}
diff --git a/deps/npm/node_modules/graceful-fs/package.json b/deps/npm/node_modules/graceful-fs/package.json
index 4f513626d53..30f4c40bad1 100644
--- a/deps/npm/node_modules/graceful-fs/package.json
+++ b/deps/npm/node_modules/graceful-fs/package.json
@@ -6,7 +6,7 @@
},
"name": "graceful-fs",
"description": "fs monkey-patching to avoid EMFILE and other problems",
- "version": "1.1.10",
+ "version": "1.1.14",
"repository": {
"type": "git",
"url": "git://github.com/isaacs/node-graceful-fs.git"
@@ -15,11 +15,9 @@
"engines": {
"node": ">=0.4.0"
},
- "devDependencies": {},
"directories": {
"test": "test"
},
- "dependencies": {},
"scripts": {
"test": "tap test/*.js"
},
@@ -32,6 +30,6 @@
],
"license": "BSD",
"readme": "Just like node's `fs` module, but it does an incremental back-off when\nEMFILE is encountered.\n\nUseful in asynchronous situations where one needs to try to open lots\nand lots of files.\n",
- "_id": "graceful-fs@1.1.10",
+ "_id": "graceful-fs@1.1.14",
"_from": "graceful-fs@~1.1.1"
}
diff --git a/deps/npm/node_modules/lru-cache/lib/lru-cache.js b/deps/npm/node_modules/lru-cache/lib/lru-cache.js
index 8b6ed8c2e12..4bec3e27d3f 100644
--- a/deps/npm/node_modules/lru-cache/lib/lru-cache.js
+++ b/deps/npm/node_modules/lru-cache/lib/lru-cache.js
@@ -1,6 +1,6 @@
;(function () { // closure for web browsers
-if (module) {
+if (typeof module === 'object' && module.exports) {
module.exports = LRUCache
} else {
// just set the global for non-node platforms.
@@ -21,7 +21,7 @@ function LRUCache (options) {
var max
if (typeof options === 'number') {
max = options
- options = {max: max}
+ options = { max: max }
}
max = options.max
@@ -33,6 +33,7 @@ function LRUCache (options) {
lengthCalculator = naiveLength
}
if (!max || !(typeof max === "number") || max <= 0 ) {
+ // a little bit silly. maybe this should throw?
max = Infinity
}
@@ -40,9 +41,8 @@ function LRUCache (options) {
var dispose = options.dispose
- var cache = {} // hash of items by key
- , lruList = {} // list of items in order of use recency
- , lru = 0 // least recently used
+ var cache = Object.create(null) // hash of items by key
+ , lruList = Object.create(null) // list of items in order of use recency
, mru = 0 // most recently used
, length = 0 // number of items in the list
, itemCount = 0
@@ -67,16 +67,16 @@ function LRUCache (options) {
if (typeof lC !== "function") {
lengthCalculator = naiveLength
length = itemCount
- Object.keys(cache).forEach(function (key) {
+ for (var key in cache) {
cache[key].length = 1
- })
+ }
} else {
lengthCalculator = lC
length = 0
- Object.keys(cache).forEach(function (key) {
+ for (var key in cache) {
cache[key].length = lengthCalculator(cache[key].value)
length += cache[key].length
- })
+ }
}
if (length > max) trim()
@@ -98,13 +98,12 @@ function LRUCache (options) {
this.reset = function () {
if (dispose) {
- Object.keys(cache).forEach(function (k) {
+ for (var k in cache) {
dispose(k, cache[k].value)
- })
+ }
}
cache = {}
lruList = {}
- lru = 0
mru = 0
length = 0
itemCount = 0
@@ -126,16 +125,15 @@ function LRUCache (options) {
return true
}
- var hit = {
- key:key,
- value:value,
- lu:mru++,
- length:lengthCalculator(value),
- now: (maxAge) ? Date.now() : 0
- }
+ var len = lengthCalculator(value)
+ var age = maxAge ? Date.now() : 0
+ var hit = new Entry(key, value, mru++, len, age)
// oversized objects fall out of cache automatically.
- if (hit.length > max) return false
+ if (hit.length > max) {
+ if (dispose) dispose(key, value)
+ return false
+ }
length += hit.length
lruList[hit.lu] = cache[key] = hit
@@ -153,7 +151,6 @@ function LRUCache (options) {
return
}
delete lruList[hit.lu]
- if (hit.lu === lru) lruWalk()
hit.lu = mru ++
lruList[hit.lu] = hit
return hit.value
@@ -165,31 +162,30 @@ function LRUCache (options) {
if (dispose) dispose(key, hit.value)
delete cache[key]
delete lruList[hit.lu]
- if (hit.lu === lru) lruWalk()
length -= hit.length
itemCount --
}
- function lruWalk () {
- // lru has been deleted, hop up to the next hit.
- for (var key in lruList) {
- return key
- }
- }
-
function trim () {
if (length <= max) return
- var prune = Object.keys(lruList)
- for (var i = 0; i < prune.length && length > max; i ++) {
- var hit = lruList[prune[i]]
+ for (var k in lruList) {
+ if (length <= max) break;
+ var hit = lruList[k]
if (dispose) dispose(hit.key, hit.value)
length -= hit.length
delete cache[ hit.key ]
- delete lruList[prune[i]]
+ delete lruList[k]
}
-
- lruWalk()
}
}
+// classy, since V8 prefers predictable objects.
+function Entry (key, value, mru, len, age) {
+ this.key = key
+ this.value = value
+ this.lu = mru
+ this.length = len
+ this.now = age
+}
+
})()
diff --git a/deps/npm/node_modules/lru-cache/package.json b/deps/npm/node_modules/lru-cache/package.json
index 9428d83fb0b..d62dda3745d 100644
--- a/deps/npm/node_modules/lru-cache/package.json
+++ b/deps/npm/node_modules/lru-cache/package.json
@@ -1,7 +1,7 @@
{
"name": "lru-cache",
"description": "A cache object that deletes the least-recently-used items.",
- "version": "2.0.2",
+ "version": "2.0.4",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me"
@@ -52,6 +52,6 @@
}
],
"readme": "# lru cache\n\nA cache object that deletes the least-recently-used items.\n\n## Usage:\n\n```javascript\nvar LRU = require(\"lru-cache\")\n , options = { max: 500\n , length: function (n) { return n * 2 }\n , dispose: function (key, n) { n.close() }\n , maxAge: 1000 * 60 * 60 }\n , cache = LRU(options)\n , otherCache = LRU(50) // sets just the max size\n\ncache.set(\"key\", \"value\")\ncache.get(\"key\") // \"value\"\n\ncache.reset() // empty the cache\n```\n\nIf you put more stuff in it, then items will fall out.\n\nIf you try to put an oversized thing in it, then it'll fall out right\naway.\n\n## Options\n\n* `max` The maximum number of items. Not setting this is kind of\n silly, since that's the whole purpose of this lib, but it defaults\n to `Infinity`.\n* `maxAge` Maximum age in ms. Items are not pro-actively pruned out\n as they age, but if you try to get an item that is too old, it'll\n drop it and return undefined instead of giving it to you.\n* `length` Function that is used to calculate the length of stored\n items. If you're storing strings or buffers, then you probably want\n to do something like `function(n){return n.length}`. The default is\n `function(n){return 1}`, which is fine if you want to store `n`\n like-sized things.\n* `dispose` Function that is called on items when they are dropped\n from the cache. This can be handy if you want to close file\n descriptors or do other cleanup tasks when items are no longer\n accessible. Called with `key, value`. It's called *before*\n actually removing the item from the internal cache, so if you want\n to immediately put it back in, you'll have to do that in a\n `nextTick` or `setTimeout` callback or it won't do anything.\n",
- "_id": "lru-cache@2.0.2",
+ "_id": "lru-cache@2.0.4",
"_from": "lru-cache@~2.0.0"
}
diff --git a/deps/npm/node_modules/lru-cache/test/basic.js b/deps/npm/node_modules/lru-cache/test/basic.js
index d04af0bbcbe..420027200f1 100644
--- a/deps/npm/node_modules/lru-cache/test/basic.js
+++ b/deps/npm/node_modules/lru-cache/test/basic.js
@@ -246,3 +246,22 @@ test("disposal function", function(t) {
t.equal(disposed, 3)
t.end()
})
+
+test("disposal function on too big of item", function(t) {
+ var disposed = false
+ var cache = new LRU({
+ max: 1,
+ length: function (k) {
+ return k.length
+ },
+ dispose: function (k, n) {
+ disposed = n
+ }
+ })
+ var obj = [ 1, 2 ]
+
+ t.equal(disposed, false)
+ cache.set("obj", obj)
+ t.equal(disposed, obj)
+ t.end()
+})
diff --git a/deps/npm/node_modules/node-gyp/README.md b/deps/npm/node_modules/node-gyp/README.md
index 857c8c06d9e..4185d1121a4 100644
--- a/deps/npm/node_modules/node-gyp/README.md
+++ b/deps/npm/node_modules/node-gyp/README.md
@@ -36,7 +36,7 @@ You will also need to install:
* `make`
* A proper C/C++ compiler toolchain, like GCC
* On Windows:
- * [Python][windows-python] ([`v2.7.2`][windows-python-v2.7.2] recommended, `v3.x.x` not yet supported)
+ * [Python][windows-python] ([`v2.7.3`][windows-python-v2.7.3] recommended, `v3.x.x` is not supported)
* Microsoft Visual C++ ([Express][msvc] version works well)
* For 64-bit builds of node and native modules you will _also_ need the [Windows 7 64-bit SDK][win7sdk]
@@ -147,6 +147,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
[windows-python]: http://www.python.org/getit/windows
-[windows-python-v2.7.2]: http://www.python.org/download/releases/2.7.2#download
+[windows-python-v2.7.3]: http://www.python.org/download/releases/2.7.3#download
[msvc]: http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express
[win7sdk]: http://www.microsoft.com/download/en/details.aspx?displayLang=en&id=8279
diff --git a/deps/npm/node_modules/node-gyp/lib/configure.js b/deps/npm/node_modules/node-gyp/lib/configure.js
index 3e165afa3d3..816b836f95f 100644
--- a/deps/npm/node_modules/node-gyp/lib/configure.js
+++ b/deps/npm/node_modules/node-gyp/lib/configure.js
@@ -93,6 +93,10 @@ function configure (gyp, argv, callback) {
}
log.verbose('check python version', '`%s -c "import platform; print platform.python_version();"` returned: %j', python, stdout)
var version = stdout.trim()
+ if (~version.indexOf('+')) {
+ log.silly('stripping "+" sign(s) from version')
+ version = version.replace(/\+/g, '')
+ }
if (semver.gte(version, '2.5.0') && semver.lt(version, '3.0.0')) {
getNodeDir()
} else {
diff --git a/deps/npm/node_modules/node-gyp/lib/install.js b/deps/npm/node_modules/node-gyp/lib/install.js
index f90b0fd091d..cdf1bea89e1 100644
--- a/deps/npm/node_modules/node-gyp/lib/install.js
+++ b/deps/npm/node_modules/node-gyp/lib/install.js
@@ -86,6 +86,8 @@ function install (gyp, argv, callback) {
if (err.code == 'ENOENT') {
log.verbose('install', 'version not already installed, continuing with install', version)
go()
+ } else if (err.code == 'EACCES') {
+ eaccesFallback()
} else {
cb(err)
}
@@ -157,21 +159,7 @@ function install (gyp, argv, callback) {
mkdir(devDir, function (err, created) {
if (err) {
if (err.code == 'EACCES') {
- // this EACCES fallback is a workaround for npm's `sudo` behavior, where
- // it drops the permissions before invoking any child processes (like
- // node-gyp). So what happens is the "nobody" user doesn't have
- // permission to create the dev dir. As a fallback, make the tmpdir() be
- // the dev dir for this installation. This is not ideal, but at least
- // the compilation will succeed...
- var tmpdir = osenv.tmpdir()
- gyp.devDir = path.resolve(tmpdir, '.node-gyp')
- log.warn(err.code, 'user "%s" does not have permission to create dev dir "%s"', osenv.user(), devDir)
- log.warn(err.code, 'attempting to reinstall using temporary dev dir "%s"', gyp.devDir)
- if (process.cwd() == tmpdir) {
- log.verbose('tmpdir == cwd', 'automatically will remove dev files after to save disk space')
- gyp.todo.push({ name: 'remove', args: argv })
- }
- gyp.commands.install(argv, cb)
+ eaccesFallback()
} else {
cb(err)
}
@@ -380,6 +368,27 @@ function install (gyp, argv, callback) {
)
}
+ /**
+ * The EACCES fallback is a workaround for npm's `sudo` behavior, where
+ * it drops the permissions before invoking any child processes (like
+ * node-gyp). So what happens is the "nobody" user doesn't have
+ * permission to create the dev dir. As a fallback, make the tmpdir() be
+ * the dev dir for this installation. This is not ideal, but at least
+ * the compilation will succeed...
+ */
+
+ function eaccesFallback () {
+ var tmpdir = osenv.tmpdir()
+ gyp.devDir = path.resolve(tmpdir, '.node-gyp')
+ log.warn('EACCES', 'user "%s" does not have permission to access the dev dir "%s"', osenv.user(), devDir)
+ log.warn('EACCES', 'attempting to reinstall using temporary dev dir "%s"', gyp.devDir)
+ if (process.cwd() == tmpdir) {
+ log.verbose('tmpdir == cwd', 'automatically will remove dev files after to save disk space')
+ gyp.todo.push({ name: 'remove', args: argv })
+ }
+ gyp.commands.install(argv, cb)
+ }
+
}
diff --git a/deps/npm/node_modules/node-gyp/package.json b/deps/npm/node_modules/node-gyp/package.json
index 4ca7de82583..4ad0339c2eb 100644
--- a/deps/npm/node_modules/node-gyp/package.json
+++ b/deps/npm/node_modules/node-gyp/package.json
@@ -10,7 +10,7 @@
"bindings",
"gyp"
],
- "version": "0.6.8",
+ "version": "0.6.11",
"installVersion": 9,
"author": {
"name": "Nathan Rajlich",
@@ -44,7 +44,7 @@
"engines": {
"node": ">= 0.6.0"
},
- "readme": "node-gyp\n=========\n### Node.js native addon build tool\n\n`node-gyp` is a cross-platform command-line tool written in Node.js for compiling\nnative addon modules for Node.js, which takes away the pain of dealing with the\nvarious differences in build platforms. It is the replacement to the `node-waf`\nprogram which is removed for node `v0.8`. If you have a native addon for node that\nstill has a `wscript` file, then you should definitely add a `binding.gyp` file\nto support the latest versions of node.\n\nMultiple target versions of node are supported (i.e. `0.6`, `0.7`,..., `1.0`,\netc.), regardless of what version of node is actually installed on your system\n(`node-gyp` downloads the necessary development files for the target version).\n\n#### Features:\n\n * Easy to use, consistent interface\n * Same commands to build your module on every platform\n * Supports multiple target versions of Node\n\n\nInstallation\n------------\n\nYou can install with `npm`:\n\n``` bash\n$ npm install -g node-gyp\n```\n\nYou will also need to install:\n\n * On Unix:\n * `python`\n * `make`\n * A proper C/C++ compiler toolchain, like GCC\n * On Windows:\n * [Python][windows-python] ([`v2.7.2`][windows-python-v2.7.2] recommended, `v3.x.x` not yet supported)\n * Microsoft Visual C++ ([Express][msvc] version works well)\n * For 64-bit builds of node and native modules you will _also_ need the [Windows 7 64-bit SDK][win7sdk]\n\nHow to Use\n----------\n\nTo compile your native addon, first go to its root directory:\n\n``` bash\n$ cd my_node_addon\n```\n\nThe next step is to generate the appropriate project build files for the current\nplatform. Use `configure` for that:\n\n``` bash\n$ node-gyp configure\n```\n\n__Note__: The `configure` step looks for the `binding.gyp` file in the current\ndirectory to processs. See below for instructions on creating the `binding.gyp` file.\n\nNow you will have either a `Makefile` (on Unix platforms) or a `vcxproj` file\n(on Windows) in the `build/` directory. Next invoke the `build` command:\n\n``` bash\n$ node-gyp build\n```\n\nNow you have your compiled `.node` bindings file! The compiled bindings end up\nin `build/Debug/` or `build/Release/`, depending on the build mode. At this point\nyou can require the `.node` file with Node and run your tests!\n\n__Note:__ To create a _Debug_ build of the bindings file, pass the `--debug` (or\n`-d`) switch when running the either `configure` or `build` command.\n\n\nThe \"binding.gyp\" file\n----------------------\n\nPreviously when node had `node-waf` you had to write a `wscript` file. The\nreplacement for that is the `binding.gyp` file, which describes the configuration\nto build your module in a JSON-like format. This file gets placed in the root of\nyour package, alongside the `package.json` file.\n\nA barebones `gyp` file appropriate for building a node addon looks like:\n\n``` json\n{\n \"targets\": [\n {\n \"target_name\": \"binding\",\n \"sources\": [ \"src/binding.cc\" ]\n }\n ]\n}\n```\n\nSome additional resources for writing `gyp` files:\n\n * [\"Hello World\" node addon example](https://github.com/joyent/node/tree/master/test/addons/hello-world)\n * [gyp user documentation](http://code.google.com/p/gyp/wiki/GypUserDocumentation)\n * [gyp input format reference](http://code.google.com/p/gyp/wiki/InputFormatReference)\n * [*\"binding.gyp\" files out in the wild* wiki page](https://github.com/TooTallNate/node-gyp/wiki/%22binding.gyp%22-files-out-in-the-wild)\n\n\nCommands\n--------\n\n`node-gyp` responds to the following commands:\n\n| **Command** | **Description**\n|:--------------|:---------------------------------------------------------------\n| `build` | Invokes `make`/`msbuild.exe` and builds the native addon\n| `clean` | Removes any the `build` dir if it exists\n| `configure` | Generates project build files for the current platform\n| `rebuild` | Runs \"clean\", \"configure\" and \"build\" all in a row\n| `install` | Installs node development header files for the given version\n| `list` | Lists the currently installed node development file versions\n| `remove` | Removes the node development header files for the given version\n\n\nLicense\n-------\n\n(The MIT License)\n\nCopyright (c) 2012 Nathan Rajlich &lt;nathan@tootallnate.net&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n[windows-python]: http://www.python.org/getit/windows\n[windows-python-v2.7.2]: http://www.python.org/download/releases/2.7.2#download\n[msvc]: http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express\n[win7sdk]: http://www.microsoft.com/download/en/details.aspx?displayLang=en&id=8279\n",
- "_id": "node-gyp@0.6.8",
+ "readme": "node-gyp\n=========\n### Node.js native addon build tool\n\n`node-gyp` is a cross-platform command-line tool written in Node.js for compiling\nnative addon modules for Node.js, which takes away the pain of dealing with the\nvarious differences in build platforms. It is the replacement to the `node-waf`\nprogram which is removed for node `v0.8`. If you have a native addon for node that\nstill has a `wscript` file, then you should definitely add a `binding.gyp` file\nto support the latest versions of node.\n\nMultiple target versions of node are supported (i.e. `0.6`, `0.7`,..., `1.0`,\netc.), regardless of what version of node is actually installed on your system\n(`node-gyp` downloads the necessary development files for the target version).\n\n#### Features:\n\n * Easy to use, consistent interface\n * Same commands to build your module on every platform\n * Supports multiple target versions of Node\n\n\nInstallation\n------------\n\nYou can install with `npm`:\n\n``` bash\n$ npm install -g node-gyp\n```\n\nYou will also need to install:\n\n * On Unix:\n * `python`\n * `make`\n * A proper C/C++ compiler toolchain, like GCC\n * On Windows:\n * [Python][windows-python] ([`v2.7.3`][windows-python-v2.7.3] recommended, `v3.x.x` is not supported)\n * Microsoft Visual C++ ([Express][msvc] version works well)\n * For 64-bit builds of node and native modules you will _also_ need the [Windows 7 64-bit SDK][win7sdk]\n\nHow to Use\n----------\n\nTo compile your native addon, first go to its root directory:\n\n``` bash\n$ cd my_node_addon\n```\n\nThe next step is to generate the appropriate project build files for the current\nplatform. Use `configure` for that:\n\n``` bash\n$ node-gyp configure\n```\n\n__Note__: The `configure` step looks for the `binding.gyp` file in the current\ndirectory to processs. See below for instructions on creating the `binding.gyp` file.\n\nNow you will have either a `Makefile` (on Unix platforms) or a `vcxproj` file\n(on Windows) in the `build/` directory. Next invoke the `build` command:\n\n``` bash\n$ node-gyp build\n```\n\nNow you have your compiled `.node` bindings file! The compiled bindings end up\nin `build/Debug/` or `build/Release/`, depending on the build mode. At this point\nyou can require the `.node` file with Node and run your tests!\n\n__Note:__ To create a _Debug_ build of the bindings file, pass the `--debug` (or\n`-d`) switch when running the either `configure` or `build` command.\n\n\nThe \"binding.gyp\" file\n----------------------\n\nPreviously when node had `node-waf` you had to write a `wscript` file. The\nreplacement for that is the `binding.gyp` file, which describes the configuration\nto build your module in a JSON-like format. This file gets placed in the root of\nyour package, alongside the `package.json` file.\n\nA barebones `gyp` file appropriate for building a node addon looks like:\n\n``` json\n{\n \"targets\": [\n {\n \"target_name\": \"binding\",\n \"sources\": [ \"src/binding.cc\" ]\n }\n ]\n}\n```\n\nSome additional resources for writing `gyp` files:\n\n * [\"Hello World\" node addon example](https://github.com/joyent/node/tree/master/test/addons/hello-world)\n * [gyp user documentation](http://code.google.com/p/gyp/wiki/GypUserDocumentation)\n * [gyp input format reference](http://code.google.com/p/gyp/wiki/InputFormatReference)\n * [*\"binding.gyp\" files out in the wild* wiki page](https://github.com/TooTallNate/node-gyp/wiki/%22binding.gyp%22-files-out-in-the-wild)\n\n\nCommands\n--------\n\n`node-gyp` responds to the following commands:\n\n| **Command** | **Description**\n|:--------------|:---------------------------------------------------------------\n| `build` | Invokes `make`/`msbuild.exe` and builds the native addon\n| `clean` | Removes any the `build` dir if it exists\n| `configure` | Generates project build files for the current platform\n| `rebuild` | Runs \"clean\", \"configure\" and \"build\" all in a row\n| `install` | Installs node development header files for the given version\n| `list` | Lists the currently installed node development file versions\n| `remove` | Removes the node development header files for the given version\n\n\nLicense\n-------\n\n(The MIT License)\n\nCopyright (c) 2012 Nathan Rajlich &lt;nathan@tootallnate.net&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n[windows-python]: http://www.python.org/getit/windows\n[windows-python-v2.7.3]: http://www.python.org/download/releases/2.7.3#download\n[msvc]: http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express\n[win7sdk]: http://www.microsoft.com/download/en/details.aspx?displayLang=en&id=8279\n",
+ "_id": "node-gyp@0.6.11",
"_from": "node-gyp@~0.6.4"
}
diff --git a/deps/npm/node_modules/npmconf/LICENSE b/deps/npm/node_modules/npmconf/LICENSE
new file mode 100644
index 00000000000..0c44ae716db
--- /dev/null
+++ b/deps/npm/node_modules/npmconf/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) Isaac Z. Schlueter ("Author")
+All rights reserved.
+
+The BSD License
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. 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 AUTHOR 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 AUTHOR 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.
diff --git a/deps/npm/node_modules/npmconf/config-defs.js b/deps/npm/node_modules/npmconf/config-defs.js
index 857f4af3de2..7a6f56bda9e 100644
--- a/deps/npm/node_modules/npmconf/config-defs.js
+++ b/deps/npm/node_modules/npmconf/config-defs.js
@@ -107,10 +107,7 @@ Object.defineProperty(exports, "defaults", {get: function () {
return defaults =
{ "always-auth" : false
- // are there others?
- , browser : process.platform === "darwin" ? "open"
- : process.platform === "win32" ? "start"
- : "google-chrome"
+ , browser : null
, ca : // the npm CA certificate.
[ "-----BEGIN CERTIFICATE-----\n"+
@@ -268,7 +265,7 @@ Object.defineProperty(exports, "defaults", {get: function () {
exports.types =
{ "always-auth" : Boolean
- , browser : String
+ , browser : [null, String]
, ca: [null, String, Array]
, cache : path
, "cache-lock-stale": Number
diff --git a/deps/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/package.json b/deps/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/package.json
index 98ff78d2029..6ee30e7d292 100644
--- a/deps/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/package.json
+++ b/deps/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/package.json
@@ -24,5 +24,8 @@
},
"readme": "A list of objects, bound by their prototype chain.\n\nUsed in npm's config stuff.\n",
"_id": "proto-list@1.2.2",
+ "dist": {
+ "shasum": "48b88798261ec2c4a785720cdfec6200d57d3326"
+ },
"_from": "proto-list@~1.2.1"
}
diff --git a/deps/npm/node_modules/npmconf/package.json b/deps/npm/node_modules/npmconf/package.json
index ea9ac99299f..8d7bd42b6bb 100644
--- a/deps/npm/node_modules/npmconf/package.json
+++ b/deps/npm/node_modules/npmconf/package.json
@@ -1,6 +1,6 @@
{
"name": "npmconf",
- "version": "0.0.15",
+ "version": "0.0.16",
"description": "The config thing npm uses",
"main": "npmconf.js",
"directories": {
@@ -36,6 +36,6 @@
},
"license": "BSD",
"readme": "# npmconf\n\nThe config thing npm uses\n\nIf you are interested in interacting with the config settings that npm\nuses, then use this module.\n\nHowever, if you are writing a new Node.js program, and want\nconfiguration functionality similar to what npm has, but for your\nown thing, then I'd recommend using [rc](https://github.com/dominictarr/rc),\nwhich is probably what you want.\n\nIf I were to do it all over again, that's what I'd do for npm. But,\nalas, there are many systems depending on many of the particulars of\nnpm's configuration setup, so it's not worth the cost of changing.\n\n## USAGE\n\n```javascript\nvar npmconf = require('npmconf')\n\n// pass in the cli options that you read from the cli\n// or whatever top-level configs you want npm to use for now.\nnpmconf.load({some:'configs'}, function (er, conf) {\n // do stuff with conf\n conf.get('some', 'cli') // 'configs'\n conf.get('username') // 'joebobwhatevers'\n conf.set('foo', 'bar', 'user')\n conf.save('user', function (er) {\n // foo = bar is now saved to ~/.npmrc or wherever\n })\n})\n```\n",
- "_id": "npmconf@0.0.15",
- "_from": "npmconf@0"
+ "_id": "npmconf@0.0.16",
+ "_from": "npmconf@latest"
}
diff --git a/deps/npm/node_modules/opener/LICENSE.txt b/deps/npm/node_modules/opener/LICENSE.txt
new file mode 100644
index 00000000000..60008853930
--- /dev/null
+++ b/deps/npm/node_modules/opener/LICENSE.txt
@@ -0,0 +1,14 @@
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ Version 2, December 2004
+
+ Copyright (C) 2012 Domenic Denicola <domenic@domenicdenicola.com>
+
+ Everyone is permitted to copy and distribute verbatim or modified
+ copies of this license document, and changing it is allowed as long
+ as the name is changed.
+
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
+
diff --git a/deps/npm/node_modules/opener/README.md b/deps/npm/node_modules/opener/README.md
new file mode 100644
index 00000000000..fc643654456
--- /dev/null
+++ b/deps/npm/node_modules/opener/README.md
@@ -0,0 +1,44 @@
+# It Opens Stuff
+
+That is, in your desktop environment. This will make *actual windows pop up*, with stuff in them:
+
+```bash
+npm install opener -g
+
+opener http://google.com
+opener ./my-file.txt
+opener firefox
+opener npm run lint
+```
+
+Also if you want to use it programmatically you can do that too:
+
+```js
+var opener = require("opener");
+
+opener("http://google.com");
+opener("./my-file.txt");
+opener("firefox");
+opener("npm run lint");
+```
+
+## Use It for Good
+
+Like opening the user's browser with a test harness in your package's test script:
+
+```json
+{
+ "scripts": {
+ "test": "opener ./test/runner.html"
+ },
+ "devDependencies": {
+ "opener": "*"
+ }
+}
+```
+
+## Why
+
+Because Windows has `start`, Macs have `open`, and *nix has `xdg-open`. At least
+[according to some guy on StackOverflow](http://stackoverflow.com/q/1480971/3191). And I like things that work on all
+three. Like Node.js. And Opener.
diff --git a/deps/npm/node_modules/opener/opener.js b/deps/npm/node_modules/opener/opener.js
new file mode 100755
index 00000000000..5477da52b64
--- /dev/null
+++ b/deps/npm/node_modules/opener/opener.js
@@ -0,0 +1,55 @@
+#!/usr/bin/env node
+
+"use strict";
+
+var childProcess = require("child_process");
+
+function opener(args, options, callback) {
+ // http://stackoverflow.com/q/1480971/3191, but see below for Windows.
+ var command = process.platform === "win32" ? "cmd" :
+ process.platform === "darwin" ? "open" :
+ "xdg-open";
+
+ if (typeof args === "string") {
+ args = [args];
+ }
+
+ if (typeof options === "function") {
+ callback = options;
+ options = {};
+ }
+
+ if (options && typeof options === "object" && options.command) {
+ if (process.platform === "win32") {
+ // *always* use cmd on windows
+ args = [options.command].concat(args);
+ } else {
+ command = options.command;
+ }
+ }
+
+ if (process.platform === "win32") {
+ // On Windows, we really want to use the "start" command. But, the rules regarding arguments with spaces, and
+ // escaping them with quotes, can get really arcane. So the easiest way to deal with this is to pass off the
+ // responsibility to "cmd /c", which has that logic built in.
+ //
+ // Furthermore, if "cmd /c" double-quoted the first parameter, then "start" will interpret it as a window title,
+ // so we need to add a dummy empty-string window title: http://stackoverflow.com/a/154090/3191
+ args = ["/c", "start", '""'].concat(args);
+ }
+
+ childProcess.execFile(command, args, options, callback);
+}
+
+// Export `opener` for programmatic access.
+// You might use this to e.g. open a website: `opener("http://google.com")`
+module.exports = opener;
+
+// If we're being called from the command line, just execute, using the command-line arguments.
+if (require.main && require.main.id === module.id) {
+ opener(process.argv.slice(2), function (error) {
+ if (error) {
+ throw error;
+ }
+ });
+}
diff --git a/deps/npm/node_modules/opener/package.json b/deps/npm/node_modules/opener/package.json
new file mode 100644
index 00000000000..0d18470bd62
--- /dev/null
+++ b/deps/npm/node_modules/opener/package.json
@@ -0,0 +1,34 @@
+{
+ "name": "opener",
+ "description": "Opens stuff, like webpages and files and executables, cross-platform",
+ "version": "1.3.0",
+ "author": {
+ "name": "Domenic Denicola",
+ "email": "domenic@domenicdenicola.com",
+ "url": "http://domenicdenicola.com"
+ },
+ "license": "WTFPL",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/domenic/opener.git"
+ },
+ "bugs": {
+ "url": "http://github.com/domenic/opener/issues"
+ },
+ "main": "opener.js",
+ "bin": {
+ "opener": "opener.js"
+ },
+ "scripts": {
+ "lint": "jshint opener.js"
+ },
+ "devDependencies": {
+ "jshint": ">= 0.9.0"
+ },
+ "readme": "# It Opens Stuff\r\n\r\nThat is, in your desktop environment. This will make *actual windows pop up*, with stuff in them:\r\n\r\n```bash\r\nnpm install opener -g\r\n\r\nopener http://google.com\r\nopener ./my-file.txt\r\nopener firefox\r\nopener npm run lint\r\n```\r\n\r\nAlso if you want to use it programmatically you can do that too:\r\n\r\n```js\r\nvar opener = require(\"opener\");\r\n\r\nopener(\"http://google.com\");\r\nopener(\"./my-file.txt\");\r\nopener(\"firefox\");\r\nopener(\"npm run lint\");\r\n```\r\n\r\n## Use It for Good\r\n\r\nLike opening the user's browser with a test harness in your package's test script:\r\n\r\n```json\r\n{\r\n \"scripts\": {\r\n \"test\": \"opener ./test/runner.html\"\r\n },\r\n \"devDependencies\": {\r\n \"opener\": \"*\"\r\n }\r\n}\r\n```\r\n\r\n## Why\r\n\r\nBecause Windows has `start`, Macs have `open`, and *nix has `xdg-open`. At least\r\n[according to some guy on StackOverflow](http://stackoverflow.com/q/1480971/3191). And I like things that work on all\r\nthree. Like Node.js. And Opener.\r\n",
+ "_id": "opener@1.3.0",
+ "dist": {
+ "shasum": "d72b4b2e61b0a4ca7822a7554070620002fb90d9"
+ },
+ "_from": "opener@latest"
+}
diff --git a/deps/npm/package.json b/deps/npm/package.json
index 67543612c92..8f92f42189f 100644
--- a/deps/npm/package.json
+++ b/deps/npm/package.json
@@ -1,5 +1,5 @@
{
- "version": "1.1.61",
+ "version": "1.1.62",
"name": "npm",
"publishConfig": {
"proprietary-attribs": false
@@ -68,7 +68,8 @@
"retry": "~0.6.0",
"couch-login": "~0.1.9",
"once": "~1.1.1",
- "npmconf": "0"
+ "npmconf": "0",
+ "opener": "~1.3.0"
},
"bundleDependencies": [
"semver",
@@ -105,7 +106,8 @@
"retry",
"couch-login",
"once",
- "npmconf"
+ "npmconf",
+ "opener"
],
"devDependencies": {
"ronn": "~0.3.6",
@@ -117,7 +119,7 @@
},
"scripts": {
"test": "node ./test/run.js && tap test/tap/*.js",
- "prepublish": "npm prune ; make -j4 doc",
+ "prepublish": "npm prune ; rm -rf test/*/*/node_modules ; make -j4 doc",
"dumpconf": "env | grep npm | sort | uniq",
"echo": "node bin/npm-cli.js"
},
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/AUTHORS b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/AUTHORS
deleted file mode 100644
index 26d86593ffe..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/AUTHORS
+++ /dev/null
@@ -1,9 +0,0 @@
-# contributors sorted by whether or not they're me.
-Isaac Z. Schlueter <i@izs.me>
-Stein Martin Hustad <stein@hustad.com>
-Mikeal Rogers <mikeal.rogers@gmail.com>
-Laurie Harper <laurie@holoweb.net>
-Jann Horn <jann@Jann-PC.fritz.box>
-Elijah Insua <tmpvar@gmail.com>
-Henry Rawas <henryr@schakra.com>
-Justin Makeig <jmpublic@makeig.com>
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/LICENSE b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/LICENSE
deleted file mode 100644
index 05a4010949c..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright 2009, 2010, 2011 Isaac Z. Schlueter.
-All rights reserved.
-
-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-optional-deps/node_modules/sax/README.md b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/README.md
deleted file mode 100644
index 9c63dc44c30..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/README.md
+++ /dev/null
@@ -1,213 +0,0 @@
-# sax js
-
-A sax-style parser for XML and HTML.
-
-Designed with [node](http://nodejs.org/) in mind, but should work fine in
-the browser or other CommonJS implementations.
-
-## What This Is
-
-* A very simple tool to parse through an XML string.
-* A stepping stone to a streaming HTML parser.
-* A handy way to deal with RSS and other mostly-ok-but-kinda-broken XML
- docs.
-
-## What This Is (probably) Not
-
-* An HTML Parser - That's a fine goal, but this isn't it. It's just
- XML.
-* A DOM Builder - You can use it to build an object model out of XML,
- but it doesn't do that out of the box.
-* XSLT - No DOM = no querying.
-* 100% Compliant with (some other SAX implementation) - Most SAX
- implementations are in Java and do a lot more than this does.
-* An XML Validator - It does a little validation when in strict mode, but
- not much.
-* A Schema-Aware XSD Thing - Schemas are an exercise in fetishistic
- masochism.
-* A DTD-aware Thing - Fetching DTDs is a much bigger job.
-
-## Regarding `<!DOCTYPE`s and `<!ENTITY`s
-
-The parser will handle the basic XML entities in text nodes and attribute
-values: `&amp; &lt; &gt; &apos; &quot;`. It's possible to define additional
-entities in XML by putting them in the DTD. This parser doesn't do anything
-with that. If you want to listen to the `ondoctype` event, and then fetch
-the doctypes, and read the entities and add them to `parser.ENTITIES`, then
-be my guest.
-
-Unknown entities will fail in strict mode, and in loose mode, will pass
-through unmolested.
-
-## Usage
-
- var sax = require("./lib/sax"),
- strict = true, // set to false for html-mode
- parser = sax.parser(strict);
-
- parser.onerror = function (e) {
- // an error happened.
- };
- parser.ontext = function (t) {
- // got some text. t is the string of text.
- };
- parser.onopentag = function (node) {
- // opened a tag. node has "name" and "attributes"
- };
- parser.onattribute = function (attr) {
- // an attribute. attr has "name" and "value"
- };
- parser.onend = function () {
- // parser stream is done, and ready to have more stuff written to it.
- };
-
- parser.write('<xml>Hello, <who name="world">world</who>!</xml>').close();
-
- // stream usage
- // takes the same options as the parser
- var saxStream = require("sax").createStream(strict, options)
- saxStream.on("error", function (e) {
- // unhandled errors will throw, since this is a proper node
- // event emitter.
- console.error("error!", e)
- // clear the error
- this._parser.error = null
- this._parser.resume()
- })
- saxStream.on("opentag", function (node) {
- // same object as above
- })
- // pipe is supported, and it's readable/writable
- // same chunks coming in also go out.
- fs.createReadStream("file.xml")
- .pipe(saxStream)
- .pipe(fs.createReadStream("file-copy.xml"))
-
-
-
-## Arguments
-
-Pass the following arguments to the parser function. All are optional.
-
-`strict` - Boolean. Whether or not to be a jerk. Default: `false`.
-
-`opt` - Object bag of settings regarding string formatting. All default to `false`.
-
-Settings supported:
-
-* `trim` - Boolean. Whether or not to trim text and comment nodes.
-* `normalize` - Boolean. If true, then turn any whitespace into a single
- space.
-* `lowercasetags` - Boolean. If true, then lowercase tags in loose mode,
- rather than uppercasing them.
-* `xmlns` - Boolean. If true, then namespaces are supported.
-
-## Methods
-
-`write` - Write bytes onto the stream. You don't have to do this all at
-once. You can keep writing as much as you want.
-
-`close` - Close the stream. Once closed, no more data may be written until
-it is done processing the buffer, which is signaled by the `end` event.
-
-`resume` - To gracefully handle errors, assign a listener to the `error`
-event. Then, when the error is taken care of, you can call `resume` to
-continue parsing. Otherwise, the parser will not continue while in an error
-state.
-
-## Members
-
-At all times, the parser object will have the following members:
-
-`line`, `column`, `position` - Indications of the position in the XML
-document where the parser currently is looking.
-
-`startTagPosition` - Indicates the position where the current tag starts.
-
-`closed` - Boolean indicating whether or not the parser can be written to.
-If it's `true`, then wait for the `ready` event to write again.
-
-`strict` - Boolean indicating whether or not the parser is a jerk.
-
-`opt` - Any options passed into the constructor.
-
-`tag` - The current tag being dealt with.
-
-And a bunch of other stuff that you probably shouldn't touch.
-
-## Events
-
-All events emit with a single argument. To listen to an event, assign a
-function to `on<eventname>`. Functions get executed in the this-context of
-the parser object. The list of supported events are also in the exported
-`EVENTS` array.
-
-When using the stream interface, assign handlers using the EventEmitter
-`on` function in the normal fashion.
-
-`error` - Indication that something bad happened. The error will be hanging
-out on `parser.error`, and must be deleted before parsing can continue. By
-listening to this event, you can keep an eye on that kind of stuff. Note:
-this happens *much* more in strict mode. Argument: instance of `Error`.
-
-`text` - Text node. Argument: string of text.
-
-`doctype` - The `<!DOCTYPE` declaration. Argument: doctype string.
-
-`processinginstruction` - Stuff like `<?xml foo="blerg" ?>`. Argument:
-object with `name` and `body` members. Attributes are not parsed, as
-processing instructions have implementation dependent semantics.
-
-`sgmldeclaration` - Random SGML declarations. Stuff like `<!ENTITY p>`
-would trigger this kind of event. This is a weird thing to support, so it
-might go away at some point. SAX isn't intended to be used to parse SGML,
-after all.
-
-`opentag` - An opening tag. Argument: object with `name` and `attributes`.
-In non-strict mode, tag names are uppercased, unless the `lowercasetags`
-option is set. If the `xmlns` option is set, then it will contain
-namespace binding information on the `ns` member, and will have a
-`local`, `prefix`, and `uri` member.
-
-`closetag` - A closing tag. In loose mode, tags are auto-closed if their
-parent closes. In strict mode, well-formedness is enforced. Note that
-self-closing tags will have `closeTag` emitted immediately after `openTag`.
-Argument: tag name.
-
-`attribute` - An attribute node. Argument: object with `name` and `value`,
-and also namespace information if the `xmlns` option flag is set.
-
-`comment` - A comment node. Argument: the string of the comment.
-
-`opencdata` - The opening tag of a `<![CDATA[` block.
-
-`cdata` - The text of a `<![CDATA[` block. Since `<![CDATA[` blocks can get
-quite large, this event may fire multiple times for a single block, if it
-is broken up into multiple `write()`s. Argument: the string of random
-character data.
-
-`closecdata` - The closing tag (`]]>`) of a `<![CDATA[` block.
-
-`opennamespace` - If the `xmlns` option is set, then this event will
-signal the start of a new namespace binding.
-
-`closenamespace` - If the `xmlns` option is set, then this event will
-signal the end of a namespace binding.
-
-`end` - Indication that the closed stream has ended.
-
-`ready` - Indication that the stream has reset, and is ready to be written
-to.
-
-`noscript` - In non-strict mode, `<script>` tags trigger a `"script"`
-event, and their contents are not checked for special xml characters.
-If you pass `noscript: true`, then this behavior is suppressed.
-
-## Reporting Problems
-
-It's best to write a failing test if you find an issue. I will always
-accept pull requests with failing tests if they demonstrate intended
-behavior, but it is very hard to figure out what issue you're describing
-without a test. Writing a test is also the best way for you yourself
-to figure out if you really understand the issue you think you have with
-sax-js.
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/big-not-pretty.xml b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/big-not-pretty.xml
deleted file mode 100644
index fb5265dde1a..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/big-not-pretty.xml
+++ /dev/null
@@ -1,8002 +0,0 @@
-<big>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
-</big>
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/example.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/example.js
deleted file mode 100644
index e7f81e6480e..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/example.js
+++ /dev/null
@@ -1,41 +0,0 @@
-
-var fs = require("fs"),
- sys = require("sys"),
- path = require("path"),
- xml = fs.cat(path.join(__dirname, "test.xml")),
- sax = require("../lib/sax"),
- strict = sax.parser(true),
- loose = sax.parser(false, {trim:true}),
- inspector = function (ev) { return function (data) {
- // sys.error("");
- // sys.error(ev+": "+sys.inspect(data));
- // for (var i in data) sys.error(i+ " "+sys.inspect(data[i]));
- // sys.error(this.line+":"+this.column);
- }};
-
-xml.addCallback(function (xml) {
- // strict.write(xml);
-
- sax.EVENTS.forEach(function (ev) {
- loose["on"+ev] = inspector(ev);
- });
- loose.onend = function () {
- // sys.error("end");
- // sys.error(sys.inspect(loose));
- };
-
- // do this one char at a time to verify that it works.
- // (function () {
- // if (xml) {
- // loose.write(xml.substr(0,1000));
- // xml = xml.substr(1000);
- // process.nextTick(arguments.callee);
- // } else loose.close();
- // })();
-
- for (var i = 0; i < 1000; i ++) {
- loose.write(xml);
- loose.close();
- }
-
-});
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/get-products.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/get-products.js
deleted file mode 100644
index 9e8d74aacd0..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/get-products.js
+++ /dev/null
@@ -1,58 +0,0 @@
-// pull out /GeneralSearchResponse/categories/category/items/product tags
-// the rest we don't care about.
-
-var sax = require("../lib/sax.js")
-var fs = require("fs")
-var path = require("path")
-var xmlFile = path.resolve(__dirname, "shopping.xml")
-var util = require("util")
-var http = require("http")
-
-fs.readFile(xmlFile, function (er, d) {
- http.createServer(function (req, res) {
- if (er) throw er
- var xmlstr = d.toString("utf8")
-
- var parser = sax.parser(true)
- var products = []
- var product = null
- var currentTag = null
-
- parser.onclosetag = function (tagName) {
- if (tagName === "product") {
- products.push(product)
- currentTag = product = null
- return
- }
- if (currentTag && currentTag.parent) {
- var p = currentTag.parent
- delete currentTag.parent
- currentTag = p
- }
- }
-
- parser.onopentag = function (tag) {
- if (tag.name !== "product" && !product) return
- if (tag.name === "product") {
- product = tag
- }
- tag.parent = currentTag
- tag.children = []
- tag.parent && tag.parent.children.push(tag)
- currentTag = tag
- }
-
- parser.ontext = function (text) {
- if (currentTag) currentTag.children.push(text)
- }
-
- parser.onend = function () {
- var out = util.inspect(products, false, 3, true)
- res.writeHead(200, {"content-type":"application/json"})
- res.end("{\"ok\":true}")
- // res.end(JSON.stringify(products))
- }
-
- parser.write(xmlstr).end()
- }).listen(1337)
-})
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/hello-world.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/hello-world.js
deleted file mode 100644
index cbfa5184ecd..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/hello-world.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require("http").createServer(function (req, res) {
- res.writeHead(200, {"content-type":"application/json"})
- res.end(JSON.stringify({ok: true}))
-}).listen(1337)
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/not-pretty.xml b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/not-pretty.xml
deleted file mode 100644
index 9592852d0c0..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/not-pretty.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<root>
- something<else> blerm <slurm
-
-
- attrib =
- "blorg" ></else><!-- COMMENT!
-
---><![CDATA[processing...]]> <selfclosing tag="blr>&quot;"/> a bit down here</root>
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/pretty-print.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/pretty-print.js
deleted file mode 100644
index cd6aca9e1cb..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/pretty-print.js
+++ /dev/null
@@ -1,74 +0,0 @@
-var sax = require("../lib/sax")
- , printer = sax.createStream(false, {lowercasetags:true, trim:true})
- , fs = require("fs")
-
-function entity (str) {
- return str.replace('"', '&quot;')
-}
-
-printer.tabstop = 2
-printer.level = 0
-printer.indent = function () {
- print("\n")
- for (var i = this.level; i > 0; i --) {
- for (var j = this.tabstop; j > 0; j --) {
- print(" ")
- }
- }
-}
-printer.on("opentag", function (tag) {
- this.indent()
- this.level ++
- print("<"+tag.name)
- for (var i in tag.attributes) {
- print(" "+i+"=\""+entity(tag.attributes[i])+"\"")
- }
- print(">")
-})
-
-printer.on("text", ontext)
-printer.on("doctype", ontext)
-function ontext (text) {
- this.indent()
- print(text)
-}
-
-printer.on("closetag", function (tag) {
- this.level --
- this.indent()
- print("</"+tag+">")
-})
-
-printer.on("cdata", function (data) {
- this.indent()
- print("<![CDATA["+data+"]]>")
-})
-
-printer.on("comment", function (comment) {
- this.indent()
- print("<!--"+comment+"-->")
-})
-
-printer.on("error", function (error) {
- console.error(error)
- throw error
-})
-
-if (!process.argv[2]) {
- throw new Error("Please provide an xml file to prettify\n"+
- "TODO: read from stdin or take a file")
-}
-var xmlfile = require("path").join(process.cwd(), process.argv[2])
-var fstr = fs.createReadStream(xmlfile, { encoding: "utf8" })
-
-function print (c) {
- if (!process.stdout.write(c)) {
- fstr.pause()
- }
-}
-
-process.stdout.on("drain", function () {
- fstr.resume()
-})
-
-fstr.pipe(printer)
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/shopping.xml b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/shopping.xml
deleted file mode 100644
index 223c6c66562..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/shopping.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-<GeneralSearchResponse xmlns="urn:types.partner.api.shopping.com"><serverDetail><apiEnv>sandbox</apiEnv><apiVersion>3.1 r31.Kadu4DC.phase3</apiVersion><buildNumber>5778</buildNumber><buildTimestamp>2011.10.06 15:37:23 PST</buildTimestamp><requestId>p2.a121bc2aaf029435dce6</requestId><timestamp>2011-10-21T18:38:45.982-04:00</timestamp><responseTime>P0Y0M0DT0H0M0.169S</responseTime></serverDetail><exceptions exceptionCount="1"><exception type="warning"><code>1112</code><message>You are currently using the SDC API sandbox environment! No clicks to merchant URLs from this response will be paid. Please change the host of your API requests to 'publisher.api.shopping.com' when you have finished development and testing</message></exception></exceptions><clientTracking height="19" type="logo" width="106"><sourceURL>http://statTest.dealtime.com/pixel/noscript?PV_EvnTyp=APPV&amp;APPV_APITSP=10%2F21%2F11_06%3A38%3A45_PM&amp;APPV_DSPRQSID=p2.a121bc2aaf029435dce6&amp;APPV_IMGURL=http://img.shopping.com/sc/glb/sdc_logo_106x19.gif&amp;APPV_LI_LNKINID=7000610&amp;APPV_LI_SBMKYW=nikon&amp;APPV_MTCTYP=1000&amp;APPV_PRTID=2002&amp;APPV_BrnID=14804</sourceURL><hrefURL>http://www.shopping.com/digital-cameras/products</hrefURL><titleText>Digital Cameras</titleText><altText>Digital Cameras</altText></clientTracking><searchHistory><categorySelection id="3"><name>Electronics</name><categoryURL>http://www.shopping.com/xCH-electronics-nikon~linkin_id-7000610?oq=nikon</categoryURL></categorySelection><categorySelection id="449"><name>Cameras and Photography</name><categoryURL>http://www.shopping.com/xCH-cameras_and_photography-nikon~linkin_id-7000610?oq=nikon</categoryURL></categorySelection><categorySelection id="7185"><name>Digital Cameras</name><categoryURL>http://www.shopping.com/digital-cameras/nikon/products?oq=nikon&amp;linkin_id=7000610</categoryURL></categorySelection><dynamicNavigationHistory><keywordSearch dropped="false" modified="false"><originalKeyword>nikon</originalKeyword><resultKeyword>nikon</resultKeyword></keywordSearch></dynamicNavigationHistory></searchHistory><categories matchedCategoryCount="1" returnedCategoryCount="1"><category id="7185"><name>Digital Cameras</name><categoryURL>http://www.shopping.com/digital-cameras/nikon/products?oq=nikon&amp;linkin_id=7000610</categoryURL><items matchedItemCount="322" pageNumber="1" returnedItemCount="5"><product id="101677489"><name>Nikon D3100 Digital Camera</name><shortDescription>14.2 Megapixel, SLR Camera, 3 in. LCD Screen, With High Definition Video, Weight: 1 lb.</shortDescription><fullDescription>The Nikon D3100 digital SLR camera speaks to the growing ranks of enthusiastic D-SLR users and aspiring photographers by providing an easy-to-use and affordable entrance to the world of Nikon D-SLR’s. The 14.2-megapixel D3100 has powerful features, such as the enhanced Guide Mode that makes it easy to unleash creative potential and capture memories with still images and full HD video. Like having a personal photo tutor at your fingertips, this unique feature provides a simple graphical interface on the camera’s LCD that guides users by suggesting and/or adjusting camera settings to achieve the desired end result images. The D3100 is also the world’s first D-SLR to introduce full time auto focus (AF) in Live View and D-Movie mode to effortlessly achieve the critical focus needed when shooting Full HD 1080p video.</fullDescription><images><image available="true" height="100" width="100"><sourceURL>http://di1.shopping.com/images/pi/93/bc/04/101677489-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di1.shopping.com/images/pi/93/bc/04/101677489-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di1.shopping.com/images/pi/93/bc/04/101677489-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di1.shopping.com/images/pi/93/bc/04/101677489-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="500" width="606"><sourceURL>http://di1.shopping.com/images/pi/93/bc/04/101677489-606x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image></images><rating><reviewCount>9</reviewCount><rating>4.56</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/pr/sdc_stars_sm_4.5.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/Nikon-D3100/reviews~linkin_id-7000610</reviewURL></rating><minPrice>429.00</minPrice><maxPrice>1360.00</maxPrice><productOffersURL>http://www.shopping.com/Nikon-D3100/prices~linkin_id-7000610</productOffersURL><productSpecsURL>http://www.shopping.com/Nikon-D3100/info~linkin_id-7000610</productSpecsURL><offers matchedOfferCount="64" pageNumber="1" returnedOfferCount="5"><offer featured="false" id="-ZW6BMZqz6fbS-aULwga_g==" smartBuy="false" used="false"><name>Nikon D3100 Digital SLR Camera with 18-55mm NIKKOR VR Lens</name><description>The Nikon D3100 Digital SLR Camera is an affordable compact and lightweight photographic power-house. It features the all-purpose 18-55mm VR lens a high-resolution 14.2 MP CMOS sensor along with a feature set that's comprehensive yet easy to navigate - the intuitive onboard learn-as-you grow guide mode allows the photographer to understand what the 3100 can do quickly and easily. Capture beautiful pictures and amazing Full HD 1080p movies with sound and full-time autofocus. Availabilty: In Stock!</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di102.shopping.com/images/di/2d/5a/57/36424d5a717a366662532d61554c7767615f67-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di102.shopping.com/images/di/2d/5a/57/36424d5a717a366662532d61554c7767615f67-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di102.shopping.com/images/di/2d/5a/57/36424d5a717a366662532d61554c7767615f67-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="350" width="350"><sourceURL>http://di102.shopping.com/images/di/2d/5a/57/36424d5a717a366662532d61554c7767615f67-350x350-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Free Shipping with Any Purchase!</storeNotes><basePrice currency="USD">529.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">799.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=647&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=475674&amp;crawler_id=475674&amp;dealId=-ZW6BMZqz6fbS-aULwga_g%3D%3D&amp;url=http%3A%2F%2Fwww.fumfie.com%2Fproduct%2F343.5%2Fshopping-com%3F&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+D3100+Digital+SLR+Camera+with+18-55mm+NIKKOR+VR+Lens&amp;dlprc=529.0&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=1&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=101677489&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=1&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=1&amp;SL=1&amp;FS=1&amp;code=&amp;acode=658&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="475674" trusted="true"><name>FumFie</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/475674.gif</sourceURL></logo><phoneNumber>866 666 9198</phoneNumber><ratingInfo><reviewCount>560</reviewCount><rating>4.27</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_45.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_fumfie~MRD-475674~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>F343C5</sku></offer><offer featured="false" id="md1e9lD8vdOu4FHQfJqKng==" smartBuy="false" used="false"><name>Nikon Nikon D3100 14.2MP Digital SLR Camera with 18-55mm f/3.5-5.6 AF-S DX VR, Cameras</name><description>Nikon D3100 14.2MP Digital SLR Camera with 18-55mm f/3.5-5.6 AF-S DX VR</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di109.shopping.com/images/di/6d/64/31/65396c443876644f7534464851664a714b6e67-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di109.shopping.com/images/di/6d/64/31/65396c443876644f7534464851664a714b6e67-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di109.shopping.com/images/di/6d/64/31/65396c443876644f7534464851664a714b6e67-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="352" width="385"><sourceURL>http://di109.shopping.com/images/di/6d/64/31/65396c443876644f7534464851664a714b6e67-385x352-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">549.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">549.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=779&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=305814&amp;crawler_id=305814&amp;dealId=md1e9lD8vdOu4FHQfJqKng%3D%3D&amp;url=http%3A%2F%2Fwww.electronics-expo.com%2Findex.php%3Fpage%3Ditem%26id%3DNIKD3100%26source%3DSideCar%26scpid%3D8%26scid%3Dscsho318727%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+Nikon+D3100+14.2MP+Digital+SLR+Camera+with+18-55mm+f%2F3.5-5.6+AF-S+DX+VR%2C+Cameras&amp;dlprc=549.0&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=9&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=101677489&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=9&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=1&amp;code=&amp;acode=771&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="305814" trusted="true"><name>Electronics Expo</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/305814.gif</sourceURL></logo><phoneNumber>1-888-707-EXPO</phoneNumber><ratingInfo><reviewCount>371</reviewCount><rating>3.90</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_4.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_electronics_expo~MRD-305814~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>NIKD3100</sku></offer><offer featured="false" id="yYuaXnDFtCY7rDUjkY2aaw==" smartBuy="false" used="false"><name>Nikon D3100 14.2-Megapixel Digital SLR Camera With 18-55mm Zoom-Nikkor Lens, Black</name><description>Split-second shutter response captures shots other cameras may have missed Helps eliminate the frustration of shutter delay! 14.2-megapixels for enlargements worth framing and hanging. Takes breathtaking 1080p HD movies. ISO sensitivity from 100-1600 for bright or dimly lit settings. 3.0in. color LCD for beautiful, wide-angle framing and viewing. In-camera image editing lets you retouch with no PC. Automatic scene modes include Child, Sports, Night Portrait and more. Accepts SDHC memory cards. Nikon D3100 14.2-Megapixel Digital SLR Camera With 18-55mm Zoom-Nikkor Lens, Black is one of many Digital SLR Cameras available through Office Depot. Made by Nikon.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di109.shopping.com/images/di/79/59/75/61586e4446744359377244556a6b5932616177-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di109.shopping.com/images/di/79/59/75/61586e4446744359377244556a6b5932616177-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="250" width="250"><sourceURL>http://di109.shopping.com/images/di/79/59/75/61586e4446744359377244556a6b5932616177-250x250-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">549.99</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">699.99</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=698&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=467671&amp;crawler_id=467671&amp;dealId=yYuaXnDFtCY7rDUjkY2aaw%3D%3D&amp;url=http%3A%2F%2Flink.mercent.com%2Fredirect.ashx%3Fmr%3AmerchantID%3DOfficeDepot%26mr%3AtrackingCode%3DCEC9669E-6ABC-E011-9F24-0019B9C043EB%26mr%3AtargetUrl%3Dhttp%3A%2F%2Fwww.officedepot.com%2Fa%2Fproducts%2F486292%2FNikon-D3100-142-Megapixel-Digital-SLR%2F%253fcm_mmc%253dMercent-_-Shopping-_-Cameras_and_Camcorders-_-486292&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+D3100+14.2-Megapixel+Digital+SLR+Camera+With+18-55mm+Zoom-Nikkor+Lens%2C+Black&amp;dlprc=549.99&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=10&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=101677489&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=10&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=1&amp;SL=1&amp;FS=1&amp;code=&amp;acode=690&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="467671" trusted="true"><name>Office Depot</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/467671.gif</sourceURL></logo><phoneNumber>1-800-GO-DEPOT</phoneNumber><ratingInfo><reviewCount>135</reviewCount><rating>2.37</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_office_depot_4158555~MRD-467671~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>486292</sku></offer><offer featured="false" id="Rl56U7CuiTYsH4MGZ02lxQ==" smartBuy="false" used="false"><name>Nikon® D3100™ 14.2MP Digital SLR with 18-55mm Lens</name><description>The Nikon D3100 DSLR will surprise you with its simplicity and impress you with superb results.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di103.shopping.com/images/di/52/6c/35/36553743756954597348344d475a30326c7851-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di103.shopping.com/images/di/52/6c/35/36553743756954597348344d475a30326c7851-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="220" width="220"><sourceURL>http://di103.shopping.com/images/di/52/6c/35/36553743756954597348344d475a30326c7851-220x220-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">549.99</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.05</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">549.99</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=504&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=332477&amp;crawler_id=332477&amp;dealId=Rl56U7CuiTYsH4MGZ02lxQ%3D%3D&amp;url=http%3A%2F%2Ftracking.searchmarketing.com%2Fgsic.asp%3Faid%3D903483107%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon%C2%AE+D3100%E2%84%A2+14.2MP+Digital+SLR+with+18-55mm+Lens&amp;dlprc=549.99&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=11&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=101677489&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=11&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=0&amp;code=&amp;acode=496&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="332477" trusted="false"><name>RadioShack</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/332477.gif</sourceURL></logo><ratingInfo><reviewCount>24</reviewCount><rating>2.25</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_radioshack_9689~MRD-332477~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>9614867</sku></offer><offer featured="false" id="huS6xZKDKaKMTMP71eI6DA==" smartBuy="false" used="false"><name>Nikon D3100 SLR w/Nikon 18-55mm VR &amp; 55-200mm VR Lenses</name><description>14.2 Megapixels3" LCDLive ViewHD 1080p Video w/ Sound &amp; Autofocus11-point Autofocus3 Frames per Second ShootingISO 100 to 3200 (Expand to 12800-Hi2)Self Cleaning SensorEXPEED 2, Image Processing EngineScene Recognition System</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di105.shopping.com/images/di/68/75/53/36785a4b444b614b4d544d5037316549364441-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di105.shopping.com/images/di/68/75/53/36785a4b444b614b4d544d5037316549364441-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di105.shopping.com/images/di/68/75/53/36785a4b444b614b4d544d5037316549364441-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="345" width="345"><sourceURL>http://di105.shopping.com/images/di/68/75/53/36785a4b444b614b4d544d5037316549364441-345x345-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">695.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">695.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=371&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=487342&amp;crawler_id=487342&amp;dealId=huS6xZKDKaKMTMP71eI6DA%3D%3D&amp;url=http%3A%2F%2Fwww.rythercamera.com%2Fcatalog%2Fproduct_info.php%3Fcsv%3Dsh%26products_id%3D32983%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+D3100+SLR+w%2FNikon+18-55mm+VR+%26+55-200mm+VR+Lenses&amp;dlprc=695.0&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=15&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=101677489&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=15&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=1&amp;code=&amp;acode=379&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="487342" trusted="false"><name>RytherCamera.com</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/487342.gif</sourceURL></logo><phoneNumber>1-877-644-7593</phoneNumber><ratingInfo><reviewCount>0</reviewCount></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>32983</sku></offer></offers></product><product id="95397883"><name>Nikon COOLPIX S203 Digital Camera</name><shortDescription>10 Megapixel, Ultra-Compact Camera, 2.5 in. LCD Screen, 3x Optical Zoom, With Video Capability, Weight: 0.23 lb.</shortDescription><fullDescription>With 10.34 mega pixel, electronic VR vibration reduction, 5-level brightness adjustment, 3x optical zoom, and TFT LCD, Nikon Coolpix s203 fulfills all the demands of any photographer. The digital camera has an inbuilt memory of 44MB and an external memory slot made for all kinds of SD (Secure Digital) cards.</fullDescription><images><image available="true" height="100" width="100"><sourceURL>http://di1.shopping.com/images/pi/c4/ef/1b/95397883-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di1.shopping.com/images/pi/c4/ef/1b/95397883-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di1.shopping.com/images/pi/c4/ef/1b/95397883-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di1.shopping.com/images/pi/c4/ef/1b/95397883-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="499" width="500"><sourceURL>http://di1.shopping.com/images/pi/c4/ef/1b/95397883-500x499-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image></images><rating><reviewCount>0</reviewCount></rating><minPrice>139.00</minPrice><maxPrice>139.00</maxPrice><productOffersURL>http://www.shopping.com/Nikon-Coolpix-S203/prices~linkin_id-7000610</productOffersURL><productSpecsURL>http://www.shopping.com/Nikon-Coolpix-S203/info~linkin_id-7000610</productSpecsURL><offers matchedOfferCount="1" pageNumber="1" returnedOfferCount="1"><offer featured="false" id="sBd2JnIEPM-A_lBAM1RZgQ==" smartBuy="false" used="false"><name>Nikon Coolpix S203 Digital Camera (Red)</name><description>With 10.34 mega pixel, electronic VR vibration reduction, 5-level brightness adjustment, 3x optical zoom, and TFT LCD, Nikon Coolpix s203 fulfills all the demands of any photographer. The digital camera has an inbuilt memory of 44MB and an external memory slot made for all kinds of SD (Secure Digital) cards.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="500" width="500"><sourceURL>http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-500x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Fantastic prices with ease &amp; comfort of Amazon.com!</storeNotes><basePrice currency="USD">139.00</basePrice><shippingCost currency="USD">9.50</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">139.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=566&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=301531&amp;crawler_id=1903313&amp;dealId=sBd2JnIEPM-A_lBAM1RZgQ%3D%3D&amp;url=http%3A%2F%2Fwww.amazon.com%2Fdp%2FB002T964IM%2Fref%3Dasc_df_B002T964IM1751618%3Fsmid%3DA22UHVNXG98FAT%26tag%3Ddealtime-ce-mp01feed-20%26linkCode%3Dasn%26creative%3D395105%26creativeASIN%3DB002T964IM&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+Coolpix+S203+Digital+Camera+%28Red%29&amp;dlprc=139.0&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=63&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=95397883&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=63&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=0&amp;code=&amp;acode=518&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="301531" trusted="false"><name>Amazon Marketplace</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/301531.gif</sourceURL></logo><ratingInfo><reviewCount>213</reviewCount><rating>2.73</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_amazon_marketplace_9689~MRD-301531~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>B002T964IM</sku></offer></offers></product><product id="106834268"><name>Nikon S3100 Digital Camera</name><shortDescription>14.5 Megapixel, Compact Camera, 2.7 in. LCD Screen, 5x Optical Zoom, With High Definition Video, Weight: 0.23 lb.</shortDescription><fullDescription>This digital camera features a wide-angle optical Zoom-NIKKOR glass lens that allows you to capture anything from landscapes to portraits to action shots. The high-definition movie mode with one-touch recording makes it easy to capture video clips.</fullDescription><images><image available="true" height="100" width="100"><sourceURL>http://di1.shopping.com/images/pi/66/2d/33/106834268-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di1.shopping.com/images/pi/66/2d/33/106834268-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di1.shopping.com/images/pi/66/2d/33/106834268-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di1.shopping.com/images/pi/66/2d/33/106834268-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="387" width="507"><sourceURL>http://di1.shopping.com/images/pi/66/2d/33/106834268-507x387-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image></images><rating><reviewCount>1</reviewCount><rating>2.00</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/pr/sdc_stars_sm_2.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/nikon-s3100/reviews~linkin_id-7000610</reviewURL></rating><minPrice>99.95</minPrice><maxPrice>134.95</maxPrice><productOffersURL>http://www.shopping.com/nikon-s3100/prices~linkin_id-7000610</productOffersURL><productSpecsURL>http://www.shopping.com/nikon-s3100/info~linkin_id-7000610</productSpecsURL><offers matchedOfferCount="67" pageNumber="1" returnedOfferCount="5"><offer featured="false" id="UUyGoqV8r0-xrkn-rnGNbg==" smartBuy="false" used="false"><name>CoolPix S3100 14 Megapixel Compact Digital Camera- Red</name><description>Nikon Coolpix S3100 - Digital camera - compact - 14.0 Mpix - optical zoom: 5 x - supported memory: SD, SDXC, SDHC - red</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di111.shopping.com/images/di/55/55/79/476f71563872302d78726b6e2d726e474e6267-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di111.shopping.com/images/di/55/55/79/476f71563872302d78726b6e2d726e474e6267-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di111.shopping.com/images/di/55/55/79/476f71563872302d78726b6e2d726e474e6267-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di111.shopping.com/images/di/55/55/79/476f71563872302d78726b6e2d726e474e6267-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Get 30 days FREE SHIPPING w/ ShipVantage</storeNotes><basePrice currency="USD">119.95</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.95</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">139.95</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=578&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=485615&amp;crawler_id=485615&amp;dealId=UUyGoqV8r0-xrkn-rnGNbg%3D%3D&amp;url=http%3A%2F%2Fsears.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1NbQBJpFHJ3Yx0CTAICI2BbH1lEFmgKP3QvUVpEREdlfUAUHAQPLVpFTVdtJzxAHUNYW3AhQBM0QhFvEXAbYh8EAAVmDAJeU1oyGG0GcBdhGwUGCAVqYF9SO0xSN1sZdmA7dmMdBQAJB24qX1NbQxI6AjA2ME5dVFULPDsGPFcQTTdaLTA6SR0OFlQvPAwMDxYcYlxIVkcoLTcCDA%3D%3D%26nAID%3D13736960%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=CoolPix+S3100+14+Megapixel+Compact+Digital+Camera-+Red&amp;dlprc=119.95&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=28&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=106834268&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=28&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=1&amp;FS=0&amp;code=&amp;acode=583&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="485615" trusted="true"><name>Sears</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/485615.gif</sourceURL></logo><phoneNumber>1-800-349-4358</phoneNumber><ratingInfo><reviewCount>888</reviewCount><rating>2.85</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_3.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_sears_4189479~MRD-485615~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>00337013000</sku></offer><offer featured="false" id="X87AwXlW1dXoMXk4QQDToQ==" smartBuy="false" used="false"><name>COOLPIX S3100 Pink</name><description>Nikon Coolpix S3100 - Digital camera - compact - 14.0 Mpix - optical zoom: 5 x - supported memory: SD, SDXC, SDHC - pink</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di111.shopping.com/images/di/58/38/37/4177586c573164586f4d586b34515144546f51-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di111.shopping.com/images/di/58/38/37/4177586c573164586f4d586b34515144546f51-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di111.shopping.com/images/di/58/38/37/4177586c573164586f4d586b34515144546f51-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di111.shopping.com/images/di/58/38/37/4177586c573164586f4d586b34515144546f51-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Get 30 days FREE SHIPPING w/ ShipVantage</storeNotes><basePrice currency="USD">119.95</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.95</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">139.95</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=578&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=485615&amp;crawler_id=485615&amp;dealId=X87AwXlW1dXoMXk4QQDToQ%3D%3D&amp;url=http%3A%2F%2Fsears.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1NbQBJpFHJxYx0CTAICI2BbH1lEFmgKP3QvUVpEREdlfUAUHAQPLVpFTVdtJzxAHUNYW3AhQBM0QhFvEXAbYh8EAAVmb2JcUFxDEGsPc3QDEkFZVQ0WFhdRW0MWbgYWDlxzdGMdAVQWRi0xDAwPFhw9TSobb05eWVVYKzsLTFVVQi5RICs3SA8MU1s2MQQKD1wf%26nAID%3D13736960%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=COOLPIX+S3100+Pink&amp;dlprc=119.95&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=31&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=106834268&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=31&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=1&amp;FS=0&amp;code=&amp;acode=583&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="485615" trusted="true"><name>Sears</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/485615.gif</sourceURL></logo><phoneNumber>1-800-349-4358</phoneNumber><ratingInfo><reviewCount>888</reviewCount><rating>2.85</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_3.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_sears_4189479~MRD-485615~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>00337015000</sku></offer><offer featured="false" id="nvFwnpfA4rlA1Dbksdsa0w==" smartBuy="false" used="false"><name>Nikon Coolpix S3100 14.0 MP Digital Camera - Silver</name><description>Nikon Coolpix S3100 14.0 MP Digital Camera - Silver</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di109.shopping.com/images/di/6e/76/46/776e70664134726c413144626b736473613077-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di109.shopping.com/images/di/6e/76/46/776e70664134726c413144626b736473613077-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="270" width="270"><sourceURL>http://di109.shopping.com/images/di/6e/76/46/776e70664134726c413144626b736473613077-270x270-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">109.97</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">109.97</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=803&amp;BEFID=7185&amp;aon=%5E&amp;MerchantID=475774&amp;crawler_id=475774&amp;dealId=nvFwnpfA4rlA1Dbksdsa0w%3D%3D&amp;url=http%3A%2F%2Fwww.thewiz.com%2Fcatalog%2Fproduct.jsp%3FmodelNo%3DS3100SILVER%26gdftrk%3DgdfV2677_a_7c996_a_7c4049_a_7c26262&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+Coolpix+S3100+14.0+MP+Digital+Camera+-+Silver&amp;dlprc=109.97&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=33&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=106834268&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=33&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=1&amp;code=&amp;acode=797&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="475774" trusted="false"><name>TheWiz.com</name><logo available="false" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/475774.gif</sourceURL></logo><phoneNumber>877-542-6988</phoneNumber><ratingInfo><reviewCount>0</reviewCount></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>26262</sku></offer><offer featured="false" id="5GtaN2NeryKwps-Se2l-4g==" smartBuy="false" used="false"><name>Nikon� COOLPIX� S3100 14MP Digital Camera (Silver)</name><description>The Nikon COOLPIX S3100 is the easy way to share your life and stay connected.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di102.shopping.com/images/di/35/47/74/614e324e6572794b7770732d5365326c2d3467-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di102.shopping.com/images/di/35/47/74/614e324e6572794b7770732d5365326c2d3467-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="220" width="220"><sourceURL>http://di102.shopping.com/images/di/35/47/74/614e324e6572794b7770732d5365326c2d3467-220x220-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">119.99</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.05</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">119.99</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=504&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=332477&amp;crawler_id=332477&amp;dealId=5GtaN2NeryKwps-Se2l-4g%3D%3D&amp;url=http%3A%2F%2Ftracking.searchmarketing.com%2Fgsic.asp%3Faid%3D848064082%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon%C3%AF%C2%BF%C2%BD+COOLPIX%C3%AF%C2%BF%C2%BD+S3100+14MP+Digital+Camera+%28Silver%29&amp;dlprc=119.99&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=37&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=106834268&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=37&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=0&amp;code=&amp;acode=509&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="332477" trusted="false"><name>RadioShack</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/332477.gif</sourceURL></logo><ratingInfo><reviewCount>24</reviewCount><rating>2.25</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_radioshack_9689~MRD-332477~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>10101095</sku></offer><offer featured="false" id="a43m0RXulX38zCnQjU59jw==" smartBuy="false" used="false"><name>COOLPIX S3100 Yellow</name><description>Nikon Coolpix S3100 - Digital camera - compact - 14.0 Mpix - optical zoom: 5 x - supported memory: SD, SDXC, SDHC - yellow</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di107.shopping.com/images/di/61/34/33/6d305258756c5833387a436e516a5535396a77-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di107.shopping.com/images/di/61/34/33/6d305258756c5833387a436e516a5535396a77-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di107.shopping.com/images/di/61/34/33/6d305258756c5833387a436e516a5535396a77-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di107.shopping.com/images/di/61/34/33/6d305258756c5833387a436e516a5535396a77-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Get 30 days FREE SHIPPING w/ ShipVantage</storeNotes><basePrice currency="USD">119.95</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.95</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">139.95</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=578&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=485615&amp;crawler_id=485615&amp;dealId=a43m0RXulX38zCnQjU59jw%3D%3D&amp;url=http%3A%2F%2Fsears.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1NbQBJpFHJwYx0CTAICI2BbH1lEFmgKP3QvUVpEREdlfUAUHAQPLVpFTVdtJzxAHUNYW3AhQBM0QhFvEXAbYh8EAAVmb2JcUFxDEGoPc3QDEkFZVQ0WFhdRW0MWbgYWDlxzdGMdAVQWRi0xDAwPFhw9TSobb05eWVVYKzsLTFVVQi5RICs3SA8MU1s2MQQKD1wf%26nAID%3D13736960%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=COOLPIX+S3100+Yellow&amp;dlprc=119.95&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=38&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=106834268&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=38&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=1&amp;FS=0&amp;code=&amp;acode=583&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="485615" trusted="true"><name>Sears</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/485615.gif</sourceURL></logo><phoneNumber>1-800-349-4358</phoneNumber><ratingInfo><reviewCount>888</reviewCount><rating>2.85</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_3.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_sears_4189479~MRD-485615~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>00337014000</sku></offer></offers></product><product id="99671132"><name>Nikon D90 Digital Camera</name><shortDescription>12.3 Megapixel, Point and Shoot Camera, 3 in. LCD Screen, With Video Capability, Weight: 1.36 lb.</shortDescription><fullDescription>Untitled Document Nikon D90 SLR Digital Camera With 28-80mm 75-300mm Lens Kit The Nikon D90 SLR Digital Camera, with its 12.3-megapixel DX-format CMOS, 3" High resolution LCD display, Scene Recognition System, Picture Control, Active D-Lighting, and one-button Live View, provides photo enthusiasts with the image quality and performance they need to pursue their own vision while still being intuitive enough for use as an everyday camera.</fullDescription><images><image available="true" height="100" width="100"><sourceURL>http://di1.shopping.com/images/pi/52/fb/d3/99671132-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di1.shopping.com/images/pi/52/fb/d3/99671132-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di1.shopping.com/images/pi/52/fb/d3/99671132-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di1.shopping.com/images/pi/52/fb/d3/99671132-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="255" width="499"><sourceURL>http://di1.shopping.com/images/pi/52/fb/d3/99671132-499x255-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image></images><rating><reviewCount>7</reviewCount><rating>5.00</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/pr/sdc_stars_sm_5.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/Nikon-D90-with-18-270mm-Lens/reviews~linkin_id-7000610</reviewURL></rating><minPrice>689.00</minPrice><maxPrice>2299.00</maxPrice><productOffersURL>http://www.shopping.com/Nikon-D90-with-18-270mm-Lens/prices~linkin_id-7000610</productOffersURL><productSpecsURL>http://www.shopping.com/Nikon-D90-with-18-270mm-Lens/info~linkin_id-7000610</productSpecsURL><offers matchedOfferCount="43" pageNumber="1" returnedOfferCount="5"><offer featured="false" id="GU5JJkpUAxe5HujB7fkwAA==" smartBuy="false" used="false"><name>Nikon® D90 12.3MP Digital SLR Camera (Body Only)</name><description>The Nikon D90 will make you rethink what a digital SLR camera can achieve.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di106.shopping.com/images/di/47/55/35/4a4a6b70554178653548756a4237666b774141-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di106.shopping.com/images/di/47/55/35/4a4a6b70554178653548756a4237666b774141-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="220" width="220"><sourceURL>http://di106.shopping.com/images/di/47/55/35/4a4a6b70554178653548756a4237666b774141-220x220-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">1015.99</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.05</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">1015.99</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=504&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=332477&amp;crawler_id=332477&amp;dealId=GU5JJkpUAxe5HujB7fkwAA%3D%3D&amp;url=http%3A%2F%2Ftracking.searchmarketing.com%2Fgsic.asp%3Faid%3D851830266%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon%C2%AE+D90+12.3MP+Digital+SLR+Camera+%28Body+Only%29&amp;dlprc=1015.99&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=14&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=99671132&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=14&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=0&amp;code=&amp;acode=496&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="332477" trusted="false"><name>RadioShack</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/332477.gif</sourceURL></logo><ratingInfo><reviewCount>24</reviewCount><rating>2.25</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_radioshack_9689~MRD-332477~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>10148659</sku></offer><offer featured="false" id="XhURuSC-spBbTIDfo4qfzQ==" smartBuy="false" used="false"><name>Nikon D90 SLR Digital Camera (Camera Body)</name><description>The Nikon D90 SLR Digital Camera with its 12.3-megapixel DX-format CCD 3" High resolution LCD display Scene Recognition System Picture Control Active D-Lighting and one-button Live View provides photo enthusiasts with the image quality and performance they need to pursue their own vision while still being intuitive enough for use as an everyday camera. In addition the D90 introduces the D-Movie mode allowing for the first time an interchangeable lens SLR camera that is capable of recording 720p HD movie clips. Availabilty: In Stock</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di109.shopping.com/images/di/58/68/55/527553432d73704262544944666f3471667a51-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di109.shopping.com/images/di/58/68/55/527553432d73704262544944666f3471667a51-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di109.shopping.com/images/di/58/68/55/527553432d73704262544944666f3471667a51-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="350" width="350"><sourceURL>http://di109.shopping.com/images/di/58/68/55/527553432d73704262544944666f3471667a51-350x350-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Free Shipping with Any Purchase!</storeNotes><basePrice currency="USD">689.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">900.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=647&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=475674&amp;crawler_id=475674&amp;dealId=XhURuSC-spBbTIDfo4qfzQ%3D%3D&amp;url=http%3A%2F%2Fwww.fumfie.com%2Fproduct%2F169.5%2Fshopping-com%3F&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+D90+SLR+Digital+Camera+%28Camera+Body%29&amp;dlprc=689.0&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=16&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=99671132&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=16&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=1&amp;SL=1&amp;FS=1&amp;code=&amp;acode=658&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="475674" trusted="true"><name>FumFie</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/475674.gif</sourceURL></logo><phoneNumber>866 666 9198</phoneNumber><ratingInfo><reviewCount>560</reviewCount><rating>4.27</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_45.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_fumfie~MRD-475674~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>F169C5</sku></offer><offer featured="false" id="o0Px_XLWDbrxAYRy3rCmyQ==" smartBuy="false" used="false"><name>Nikon D90 SLR w/Nikon 18-105mm VR &amp; 55-200mm VR Lenses</name><description>12.3 MegapixelDX Format CMOS Sensor3" VGA LCD DisplayLive ViewSelf Cleaning SensorD-Movie ModeHigh Sensitivity (ISO 3200)4.5 fps BurstIn-Camera Image Editing</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="500" width="500"><sourceURL>http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-500x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">1189.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">1189.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=371&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=487342&amp;crawler_id=487342&amp;dealId=o0Px_XLWDbrxAYRy3rCmyQ%3D%3D&amp;url=http%3A%2F%2Fwww.rythercamera.com%2Fcatalog%2Fproduct_info.php%3Fcsv%3Dsh%26products_id%3D30619%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+D90+SLR+w%2FNikon+18-105mm+VR+%26+55-200mm+VR+Lenses&amp;dlprc=1189.0&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=20&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=99671132&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=20&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=1&amp;code=&amp;acode=379&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="487342" trusted="false"><name>RytherCamera.com</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/487342.gif</sourceURL></logo><phoneNumber>1-877-644-7593</phoneNumber><ratingInfo><reviewCount>0</reviewCount></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>30619</sku></offer><offer featured="false" id="4HgbWJSJ8ssgIf8B0MXIwA==" smartBuy="false" used="false"><name>Nikon D90 12.3 Megapixel Digital SLR Camera (Body Only)</name><description>Fusing 12.3 megapixel image quality and a cinematic 24fps D-Movie Mode, the Nikon D90 exceeds the demands of passionate photographers. Coupled with Nikon's EXPEED image processing technologies and NIKKOR optics, breathtaking image fidelity is assured. Combined with fast 0.15ms power-up and split-second 65ms shooting lag, dramatic action and decisive moments are captured easily. Effective 4-frequency, ultrasonic sensor cleaning frees image degrading dust particles from the sensor's optical low pass filter.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di110.shopping.com/images/di/34/48/67/62574a534a3873736749663842304d58497741-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di110.shopping.com/images/di/34/48/67/62574a534a3873736749663842304d58497741-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di110.shopping.com/images/di/34/48/67/62574a534a3873736749663842304d58497741-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>FREE FEDEX 2-3 DAY DELIVERY</storeNotes><basePrice currency="USD">899.95</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">899.95</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=269&amp;BEFID=7185&amp;aon=%5E&amp;MerchantID=9296&amp;crawler_id=811558&amp;dealId=4HgbWJSJ8ssgIf8B0MXIwA%3D%3D&amp;url=http%3A%2F%2Fwww.pcnation.com%2Foptics-gallery%2Fdetails.asp%3Faffid%3D305%26item%3D2N145P&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+D90+12.3+Megapixel+Digital+SLR+Camera+%28Body+Only%29&amp;dlprc=899.95&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=21&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=99671132&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=21&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=1&amp;code=&amp;acode=257&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="9296" trusted="true"><name>PCNation</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/9296.gif</sourceURL></logo><phoneNumber>800-470-7079</phoneNumber><ratingInfo><reviewCount>1622</reviewCount><rating>4.43</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_45.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_pcnation_9689~MRD-9296~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>2N145P</sku></offer><offer featured="false" id="UNDa3uMDZXOnvD_7sTILYg==" smartBuy="false" used="false"><name>Nikon D90 12.3MP Digital SLR Camera (Body Only)</name><description>Fusing 12.3-megapixel image quality inherited from the award-winning D300 with groundbreaking features, the D90's breathtaking, low-noise image quality is further advanced with EXPEED image processing. Split-second shutter response and continuous shooting at up to 4.5 frames-per-second provide the power to capture fast action and precise moments perfectly, while Nikon's exclusive Scene Recognition System contributes to faster 11-area autofocus performance, finer white balance detection and more. The D90 delivers the control passionate photographers demand, utilizing comprehensive exposure functions and the intelligence of 3D Color Matrix Metering II. Stunning results come to life on a 3-inch 920,000-dot color LCD monitor, providing accurate image review, Live View composition and brilliant playback of the D90's cinematic-quality 24-fps HD D-Movie mode.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="500" width="500"><sourceURL>http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-500x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Fantastic prices with ease &amp; comfort of Amazon.com!</storeNotes><basePrice currency="USD">780.00</basePrice><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">780.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=566&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=301531&amp;crawler_id=1903313&amp;dealId=UNDa3uMDZXOnvD_7sTILYg%3D%3D&amp;url=http%3A%2F%2Fwww.amazon.com%2Fdp%2FB001ET5U92%2Fref%3Dasc_df_B001ET5U921751618%3Fsmid%3DAHF4SYKP09WBH%26tag%3Ddealtime-ce-mp01feed-20%26linkCode%3Dasn%26creative%3D395105%26creativeASIN%3DB001ET5U92&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+D90+12.3MP+Digital+SLR+Camera+%28Body+Only%29&amp;dlprc=780.0&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=29&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=99671132&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=29&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=1&amp;code=&amp;acode=520&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="301531" trusted="false"><name>Amazon Marketplace</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/301531.gif</sourceURL></logo><ratingInfo><reviewCount>213</reviewCount><rating>2.73</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_amazon_marketplace_9689~MRD-301531~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>B001ET5U92</sku></offer></offers></product><product id="70621646"><name>Nikon D90 Digital Camera with 18-105mm lens</name><shortDescription>12.9 Megapixel, SLR Camera, 3 in. LCD Screen, 5.8x Optical Zoom, With Video Capability, Weight: 2.3 lb.</shortDescription><fullDescription>Its 12.3 megapixel DX-format CMOS image sensor and EXPEED image processing system offer outstanding image quality across a wide ISO light sensitivity range. Live View mode lets you compose and shoot via the high-resolution 3-inch LCD monitor, and an advanced Scene Recognition System and autofocus performance help capture images with astounding accuracy. Movies can be shot in Motion JPEG format using the D-Movie function. The camera’s large image sensor ensures exceptional movie image quality and you can create dramatic effects by shooting with a wide range of interchangeable NIKKOR lenses, from wide-angle to macro to fisheye, or by adjusting the lens aperture and experimenting with depth-of-field. The D90 – designed to fuel your passion for photography.</fullDescription><images><image available="true" height="100" width="100"><sourceURL>http://di1.shopping.com/images/pi/57/6a/4f/70621646-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di1.shopping.com/images/pi/57/6a/4f/70621646-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di1.shopping.com/images/pi/57/6a/4f/70621646-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di1.shopping.com/images/pi/57/6a/4f/70621646-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="489" width="490"><sourceURL>http://di1.shopping.com/images/pi/57/6a/4f/70621646-490x489-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image></images><rating><reviewCount>32</reviewCount><rating>4.81</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/pr/sdc_stars_sm_5.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/Nikon-D90-with-18-105mm-lens/reviews~linkin_id-7000610</reviewURL></rating><minPrice>849.95</minPrice><maxPrice>1599.95</maxPrice><productOffersURL>http://www.shopping.com/Nikon-D90-with-18-105mm-lens/prices~linkin_id-7000610</productOffersURL><productSpecsURL>http://www.shopping.com/Nikon-D90-with-18-105mm-lens/info~linkin_id-7000610</productSpecsURL><offers matchedOfferCount="25" pageNumber="1" returnedOfferCount="5"><offer featured="false" id="3o5e1VghgJPfhLvT1JFKTA==" smartBuy="false" used="false"><name>Nikon D90 18-105mm VR Lens</name><description>The Nikon D90 SLR Digital Camera with its 12.3-megapixel DX-format CMOS 3" High resolution LCD display Scene Recognition System Picture Control Active D-Lighting and one-button Live View prov</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di111.shopping.com/images/di/33/6f/35/6531566768674a5066684c7654314a464b5441-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di111.shopping.com/images/di/33/6f/35/6531566768674a5066684c7654314a464b5441-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="260" width="260"><sourceURL>http://di111.shopping.com/images/di/33/6f/35/6531566768674a5066684c7654314a464b5441-260x260-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">849.95</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">849.95</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=419&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=9390&amp;crawler_id=1905054&amp;dealId=3o5e1VghgJPfhLvT1JFKTA%3D%3D&amp;url=http%3A%2F%2Fwww.ajrichard.com%2FNikon-D90-18-105mm-VR-Lens%2Fp-292%3Frefid%3DShopping%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+D90+18-105mm+VR+Lens&amp;dlprc=849.95&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=2&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=70621646&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=2&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=1&amp;code=&amp;acode=425&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="9390" trusted="false"><name>AJRichard</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/9390.gif</sourceURL></logo><phoneNumber>1-888-871-1256</phoneNumber><ratingInfo><reviewCount>3124</reviewCount><rating>4.48</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_45.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_ajrichard~MRD-9390~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>292</sku></offer><offer featured="false" id="_lYWj_jbwfsSkfcwUcDuww==" smartBuy="false" used="false"><name>Nikon D90 SLR w/Nikon 18-105mm VR Lens</name><description>12.3 MegapixelDX Format CMOS Sensor3" VGA LCD DisplayLive ViewSelf Cleaning SensorD-Movie ModeHigh Sensitivity (ISO 3200)4.5 fps BurstIn-Camera Image Editing</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="500" width="500"><sourceURL>http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-500x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">909.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">909.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=371&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=487342&amp;crawler_id=487342&amp;dealId=_lYWj_jbwfsSkfcwUcDuww%3D%3D&amp;url=http%3A%2F%2Fwww.rythercamera.com%2Fcatalog%2Fproduct_info.php%3Fcsv%3Dsh%26products_id%3D30971%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+D90+SLR+w%2FNikon+18-105mm+VR+Lens&amp;dlprc=909.0&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=3&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=70621646&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=3&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=1&amp;code=&amp;acode=379&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="487342" trusted="false"><name>RytherCamera.com</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/487342.gif</sourceURL></logo><phoneNumber>1-877-644-7593</phoneNumber><ratingInfo><reviewCount>0</reviewCount></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>30971</sku></offer><offer featured="false" id="1KCclCGuWvty2XKU9skadg==" smartBuy="false" used="false"><name>25448/D90 12.3 Megapixel Digital Camera 18-105mm Zoom Lens w/ 3" Screen - Black</name><description>Nikon D90 - Digital camera - SLR - 12.3 Mpix - Nikon AF-S DX 18-105mm lens - optical zoom: 5.8 x - supported memory: SD, SDHC</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di110.shopping.com/images/di/31/4b/43/636c4347755776747932584b5539736b616467-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di110.shopping.com/images/di/31/4b/43/636c4347755776747932584b5539736b616467-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di110.shopping.com/images/di/31/4b/43/636c4347755776747932584b5539736b616467-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di110.shopping.com/images/di/31/4b/43/636c4347755776747932584b5539736b616467-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Get 30 days FREE SHIPPING w/ ShipVantage</storeNotes><basePrice currency="USD">1199.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">8.20</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">1199.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=578&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=485615&amp;crawler_id=485615&amp;dealId=1KCclCGuWvty2XKU9skadg%3D%3D&amp;url=http%3A%2F%2Fsears.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1NbQBRtFXpzYx0CTAICI2BbH1lEFmgKP3QvUVpEREdlfUAUHAQPLVpFTVdtJzxAHUNYW3AhQBM0QhFvEXAbYh8EAAVmb2JcVlhCGGkPc3QDEkFZVQ0WFhdRW0MWbgYWDlxzdGMdAVQWRi0xDAwPFhw9TSobb05eWVVYKzsLTFVVQi5RICs3SA8MU1s2MQQKD1wf%26nAID%3D13736960%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=25448%2FD90+12.3+Megapixel+Digital+Camera+18-105mm+Zoom+Lens+w%2F+3%22+Screen+-+Black&amp;dlprc=1199.0&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=4&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=70621646&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=4&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=0&amp;code=&amp;acode=586&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="485615" trusted="true"><name>Sears</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/485615.gif</sourceURL></logo><phoneNumber>1-800-349-4358</phoneNumber><ratingInfo><reviewCount>888</reviewCount><rating>2.85</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_3.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_sears_4189479~MRD-485615~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>00353197000</sku></offer><offer featured="false" id="3-VOSfVV5Jo7HlA4kJtanA==" smartBuy="false" used="false"><name>Nikon® D90 12.3MP Digital SLR with 18-105mm Lens</name><description>The Nikon D90 will make you rethink what a digital SLR camera can achieve.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di101.shopping.com/images/di/33/2d/56/4f53665656354a6f37486c41346b4a74616e41-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di101.shopping.com/images/di/33/2d/56/4f53665656354a6f37486c41346b4a74616e41-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="220" width="220"><sourceURL>http://di101.shopping.com/images/di/33/2d/56/4f53665656354a6f37486c41346b4a74616e41-220x220-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">1350.99</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.05</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">1350.99</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=504&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=332477&amp;crawler_id=332477&amp;dealId=3-VOSfVV5Jo7HlA4kJtanA%3D%3D&amp;url=http%3A%2F%2Ftracking.searchmarketing.com%2Fgsic.asp%3Faid%3D982673361%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon%C2%AE+D90+12.3MP+Digital+SLR+with+18-105mm+Lens&amp;dlprc=1350.99&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=5&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=70621646&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=5&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=0&amp;code=&amp;acode=496&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="332477" trusted="false"><name>RadioShack</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/332477.gif</sourceURL></logo><ratingInfo><reviewCount>24</reviewCount><rating>2.25</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_radioshack_9689~MRD-332477~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>11148905</sku></offer><offer featured="false" id="kQnB6rS4AjN5dx5h2_631g==" smartBuy="false" used="false"><name>Nikon D90 Kit 12.3-megapixel Digital SLR with 18-105mm VR Lens</name><description>Photographers, take your passion further!Now is the time for new creativity, and to rethink what a digital SLR camera can achieve. It's time for the D90, a camera with everything you would expect from Nikon's next-generation D-SLRs, and some unexpected surprises, as well. The stunning image quality is inherited from the D300, Nikon's DX-format flagship. The D90 also has Nikon's unmatched ergonomics and high performance, and now takes high-quality movies with beautifully cinematic results. The world of photography has changed, and with the D90 in your hands, it's time to make your own rules.AF-S DX NIKKOR 18-105mm f/3.5-5.6G ED VR LensWide-ratio 5.8x zoom Compact, versatile and ideal for a broad range of shooting situations, ranging from interiors and landscapes to beautiful portraits� a perfect everyday zoom. Nikon VR (Vibration Reduction) image stabilization Vibration Reduction is engineered specifically for each VR NIKKOR lens and enables handheld shooting at up to 3 shutter speeds slower than would</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di110.shopping.com/images/di/6b/51/6e/4236725334416a4e3564783568325f36333167-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di110.shopping.com/images/di/6b/51/6e/4236725334416a4e3564783568325f36333167-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di110.shopping.com/images/di/6b/51/6e/4236725334416a4e3564783568325f36333167-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="232" width="300"><sourceURL>http://di110.shopping.com/images/di/6b/51/6e/4236725334416a4e3564783568325f36333167-300x232-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Shipping Included!</storeNotes><basePrice currency="USD">1050.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">1199.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=135&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=313162&amp;crawler_id=313162&amp;dealId=kQnB6rS4AjN5dx5h2_631g%3D%3D&amp;url=http%3A%2F%2Fonecall.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1pZSxNoWHFwLx8GTAICa2ZeH1sPXTZLNzRpAh1HR0BxPQEGCBJNMhFHUElsFCFCVkVTTHAcBggEHQ4aHXNpGERGH3RQODsbAgdechJtbBt8fx8JAwhtZFAzJj1oGgIWCxRlNyFOUV9UUGIxBgo0T0IyTSYqJ0RWHw4QPCIBAAQXRGMDICg6TllZVBhh%26nAID%3D13736960&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+D90+Kit+12.3-megapixel+Digital+SLR+with+18-105mm+VR+Lens&amp;dlprc=1050.0&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=6&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=70621646&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=6&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=1&amp;FS=1&amp;code=&amp;acode=143&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="313162" trusted="true"><name>OneCall</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/313162.gif</sourceURL></logo><phoneNumber>1.800.398.0766</phoneNumber><ratingInfo><reviewCount>180</reviewCount><rating>4.44</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_45.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_onecall_9689~MRD-313162~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>92826</sku></offer></offers></product></items><attributes matchedAttributeCount="5" returnedAttributeCount="5"><attribute id="Dynamic_Price_Range"><name>Price range</name><attributeURL>http://www.shopping.com/digital-cameras/nikon/products?oq=nikon&amp;linkin_id=7000610</attributeURL><attributeValues matchedValueCount="2" returnedValueCount="2"><attributeValue id="price_range_24_4012" matchingItemsCount="1"><name>$24 - $4012</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon/products?minPrice=24&amp;maxPrice=4012&amp;linkin_id=7000610</attributeValueURL></attributeValue><attributeValue id="price_range_4012_7999" matchingItemsCount="1"><name>$4012 - $7999</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon/products?minPrice=4012&amp;maxPrice=7999&amp;linkin_id=7000610</attributeValueURL></attributeValue></attributeValues></attribute><attribute id="9688_brand"><name>Brand</name><attributeURL>http://www.shopping.com/digital-cameras/nikon/products~all-9688-brand~MS-1?oq=nikon&amp;linkin_id=7000610</attributeURL><attributeValues matchedValueCount="7" returnedValueCount="5"><attributeValue id="brand_nikon" matchingItemsCount="2261"><name>Nikon</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+brand-nikon/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="9688_brand_crane" matchingItemsCount="17"><name>Crane</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+9688-brand-crane/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="ikelite" matchingItemsCount="2"><name>Ikelite</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+ikelite/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="bower" matchingItemsCount="1"><name>Bower</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+bower/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="brand_fuji" matchingItemsCount="2"><name>FUJIFILM</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+brand-fuji/products~linkin_id-7000610</attributeValueURL></attributeValue></attributeValues></attribute><attribute id="store"><name>Store</name><attributeURL>http://www.shopping.com/digital-cameras/nikon/products~all-store~MS-1?oq=nikon&amp;linkin_id=7000610</attributeURL><attributeValues matchedValueCount="35" returnedValueCount="5"><attributeValue id="store_amazon_marketplace_9689" matchingItemsCount="808"><name>Amazon Marketplace</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+store-amazon-marketplace-9689/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="store_amazon" matchingItemsCount="83"><name>Amazon</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+store-amazon/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="store_adorama" matchingItemsCount="81"><name>Adorama</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+store-adorama/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="store_j_r_music_and_computer_world" matchingItemsCount="78"><name>J&amp;R Music and Computer World</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+store-j-r-music-and-computer-world/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="store_rythercamera_com" matchingItemsCount="78"><name>RytherCamera.com</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+store-rythercamera-com/products~linkin_id-7000610</attributeValueURL></attributeValue></attributeValues></attribute><attribute id="21885_resolution"><name>Resolution</name><attributeURL>http://www.shopping.com/digital-cameras/nikon/products~all-21885-resolution~MS-1?oq=nikon&amp;linkin_id=7000610</attributeURL><attributeValues matchedValueCount="13" returnedValueCount="5"><attributeValue id="under_4_megapixel" matchingItemsCount="3"><name>Under 4 Megapixel</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+under-4-megapixel/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="5_megapixel_digital_cameras" matchingItemsCount="1085"><name>At least 5 Megapixel</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+5-megapixel-digital-cameras/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="6_megapixel_digital_cameras" matchingItemsCount="1080"><name>At least 6 Megapixel</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+6-megapixel-digital-cameras/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="7_megapixel_digital_cameras" matchingItemsCount="1066"><name>At least 7 Megapixel</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+7-megapixel-digital-cameras/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="8_megapixel_digital_cameras" matchingItemsCount="1056"><name>At least 8 Megapixel</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+8-megapixel-digital-cameras/products~linkin_id-7000610</attributeValueURL></attributeValue></attributeValues></attribute><attribute id="32804-features"><name>Features</name><attributeURL>http://www.shopping.com/digital-cameras/nikon/products~all-32804-features~MS-1?oq=nikon&amp;linkin_id=7000610</attributeURL><attributeValues matchedValueCount="12" returnedValueCount="5"><attributeValue id="32804_features_shockproof" matchingItemsCount="7"><name>Shockproof</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+32804-features-shockproof/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="32804_features_waterproof" matchingItemsCount="32"><name>Waterproof</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+32804-features-waterproof/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="32804_features_freezeproof" matchingItemsCount="7"><name>Freezeproof</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+32804-features-freezeproof/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="32804_features_dust_proof" matchingItemsCount="23"><name>Dust proof</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+32804-features-dust-proof/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="32804_features_image_stabilization" matchingItemsCount="797"><name>Image Stabilization</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+32804-features-image-stabilization/products~linkin_id-7000610</attributeValueURL></attributeValue></attributeValues></attribute></attributes><contentType>hybrid</contentType></category></categories><relatedTerms><term>digital camera</term><term>g1</term><term>sony</term><term>camera</term><term>canon</term><term>nikon</term><term>kodak digital camera</term><term>kodak</term><term>sony cybershot</term><term>kodak easyshare digital camera</term><term>nikon coolpix</term><term>olympus</term><term>pink digital camera</term><term>canon powershot</term></relatedTerms></GeneralSearchResponse> \ No newline at end of file
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/strict.dtd b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/strict.dtd
deleted file mode 100644
index b27455943fc..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/strict.dtd
+++ /dev/null
@@ -1,870 +0,0 @@
-<!--
- This is HTML 4.01 Strict DTD, which excludes the presentation
- attributes and elements that W3C expects to phase out as
- support for style sheets matures. Authors should use the Strict
- DTD when possible, but may use the Transitional DTD when support
- for presentation attribute and elements is required.
-
- HTML 4 includes mechanisms for style sheets, scripting,
- embedding objects, improved support for right to left and mixed
- direction text, and enhancements to forms for improved
- accessibility for people with disabilities.
-
- Draft: $Date: 1999/12/24 23:37:48 $
-
- Authors:
- Dave Raggett <dsr@w3.org>
- Arnaud Le Hors <lehors@w3.org>
- Ian Jacobs <ij@w3.org>
-
- Further information about HTML 4.01 is available at:
-
- http://www.w3.org/TR/1999/REC-html401-19991224
-
-
- The HTML 4.01 specification includes additional
- syntactic constraints that cannot be expressed within
- the DTDs.
-
--->
-<!--
- Typical usage:
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
- <html>
- <head>
- ...
- </head>
- <body>
- ...
- </body>
- </html>
-
- The URI used as a system identifier with the public identifier allows
- the user agent to download the DTD and entity sets as needed.
-
- The FPI for the Transitional HTML 4.01 DTD is:
-
- "-//W3C//DTD HTML 4.01 Transitional//EN"
-
- This version of the transitional DTD is:
-
- http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd
-
- If you are writing a document that includes frames, use
- the following FPI:
-
- "-//W3C//DTD HTML 4.01 Frameset//EN"
-
- This version of the frameset DTD is:
-
- http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd
-
- Use the following (relative) URIs to refer to
- the DTDs and entity definitions of this specification:
-
- "strict.dtd"
- "loose.dtd"
- "frameset.dtd"
- "HTMLlat1.ent"
- "HTMLsymbol.ent"
- "HTMLspecial.ent"
-
--->
-
-<!--================== Imported Names ====================================-->
-<!-- Feature Switch for frameset documents -->
-<!ENTITY % HTML.Frameset "IGNORE">
-
-<!ENTITY % ContentType "CDATA"
- -- media type, as per [RFC2045]
- -->
-
-<!ENTITY % ContentTypes "CDATA"
- -- comma-separated list of media types, as per [RFC2045]
- -->
-
-<!ENTITY % Charset "CDATA"
- -- a character encoding, as per [RFC2045]
- -->
-
-<!ENTITY % Charsets "CDATA"
- -- a space-separated list of character encodings, as per [RFC2045]
- -->
-
-<!ENTITY % LanguageCode "NAME"
- -- a language code, as per [RFC1766]
- -->
-
-<!ENTITY % Character "CDATA"
- -- a single character from [ISO10646]
- -->
-
-<!ENTITY % LinkTypes "CDATA"
- -- space-separated list of link types
- -->
-
-<!ENTITY % MediaDesc "CDATA"
- -- single or comma-separated list of media descriptors
- -->
-
-<!ENTITY % URI "CDATA"
- -- a Uniform Resource Identifier,
- see [URI]
- -->
-
-<!ENTITY % Datetime "CDATA" -- date and time information. ISO date format -->
-
-
-<!ENTITY % Script "CDATA" -- script expression -->
-
-<!ENTITY % StyleSheet "CDATA" -- style sheet data -->
-
-
-
-<!ENTITY % Text "CDATA">
-
-
-<!-- Parameter Entities -->
-
-<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT" -- repeatable head elements -->
-
-<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
-
-<!ENTITY % list "UL | OL">
-
-<!ENTITY % preformatted "PRE">
-
-
-<!--================ Character mnemonic entities =========================-->
-
-<!ENTITY % HTMLlat1 PUBLIC
- "-//W3C//ENTITIES Latin1//EN//HTML"
- "HTMLlat1.ent">
-%HTMLlat1;
-
-<!ENTITY % HTMLsymbol PUBLIC
- "-//W3C//ENTITIES Symbols//EN//HTML"
- "HTMLsymbol.ent">
-%HTMLsymbol;
-
-<!ENTITY % HTMLspecial PUBLIC
- "-//W3C//ENTITIES Special//EN//HTML"
- "HTMLspecial.ent">
-%HTMLspecial;
-<!--=================== Generic Attributes ===============================-->
-
-<!ENTITY % coreattrs
- "id ID #IMPLIED -- document-wide unique id --
- class CDATA #IMPLIED -- space-separated list of classes --
- style %StyleSheet; #IMPLIED -- associated style info --
- title %Text; #IMPLIED -- advisory title --"
- >
-
-<!ENTITY % i18n
- "lang %LanguageCode; #IMPLIED -- language code --
- dir (ltr|rtl) #IMPLIED -- direction for weak/neutral text --"
- >
-
-<!ENTITY % events
- "onclick %Script; #IMPLIED -- a pointer button was clicked --
- ondblclick %Script; #IMPLIED -- a pointer button was double clicked--
- onmousedown %Script; #IMPLIED -- a pointer button was pressed down --
- onmouseup %Script; #IMPLIED -- a pointer button was released --
- onmouseover %Script; #IMPLIED -- a pointer was moved onto --
- onmousemove %Script; #IMPLIED -- a pointer was moved within --
- onmouseout %Script; #IMPLIED -- a pointer was moved away --
- onkeypress %Script; #IMPLIED -- a key was pressed and released --
- onkeydown %Script; #IMPLIED -- a key was pressed down --
- onkeyup %Script; #IMPLIED -- a key was released --"
- >
-
-<!-- Reserved Feature Switch -->
-<!ENTITY % HTML.Reserved "IGNORE">
-
-<!-- The following attributes are reserved for possible future use -->
-<![ %HTML.Reserved; [
-<!ENTITY % reserved
- "datasrc %URI; #IMPLIED -- a single or tabular Data Source --
- datafld CDATA #IMPLIED -- the property or column name --
- dataformatas (plaintext|html) plaintext -- text or html --"
- >
-]]>
-
-<!ENTITY % reserved "">
-
-<!ENTITY % attrs "%coreattrs; %i18n; %events;">
-
-
-<!--=================== Text Markup ======================================-->
-
-<!ENTITY % fontstyle
- "TT | I | B | BIG | SMALL">
-
-<!ENTITY % phrase "EM | STRONG | DFN | CODE |
- SAMP | KBD | VAR | CITE | ABBR | ACRONYM" >
-
-<!ENTITY % special
- "A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO">
-
-<!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">
-
-<!-- %inline; covers inline or "text-level" elements -->
-<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
-
-<!ELEMENT (%fontstyle;|%phrase;) - - (%inline;)*>
-<!ATTLIST (%fontstyle;|%phrase;)
- %attrs; -- %coreattrs, %i18n, %events --
- >
-
-<!ELEMENT (SUB|SUP) - - (%inline;)* -- subscript, superscript -->
-<!ATTLIST (SUB|SUP)
- %attrs; -- %coreattrs, %i18n, %events --
- >
-
-<!ELEMENT SPAN - - (%inline;)* -- generic language/style container -->
-<!ATTLIST SPAN
- %attrs; -- %coreattrs, %i18n, %events --
- %reserved; -- reserved for possible future use --
- >
-
-<!ELEMENT BDO - - (%inline;)* -- I18N BiDi over-ride -->
-<!ATTLIST BDO
- %coreattrs; -- id, class, style, title --
- lang %LanguageCode; #IMPLIED -- language code --
- dir (ltr|rtl) #REQUIRED -- directionality --
- >
-
-
-<!ELEMENT BR - O EMPTY -- forced line break -->
-<!ATTLIST BR
- %coreattrs; -- id, class, style, title --
- >
-
-<!--================== HTML content models ===============================-->
-
-<!--
- HTML has two basic content models:
-
- %inline; character level elements and text strings
- %block; block-like elements e.g. paragraphs and lists
--->
-
-<!ENTITY % block
- "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
- BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">
-
-<!ENTITY % flow "%block; | %inline;">
-
-<!--=================== Document Body ====================================-->
-
-<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->
-<!ATTLIST BODY
- %attrs; -- %coreattrs, %i18n, %events --
- onload %Script; #IMPLIED -- the document has been loaded --
- onunload %Script; #IMPLIED -- the document has been removed --
- >
-
-<!ELEMENT ADDRESS - - (%inline;)* -- information on author -->
-<!ATTLIST ADDRESS
- %attrs; -- %coreattrs, %i18n, %events --
- >
-
-<!ELEMENT DIV - - (%flow;)* -- generic language/style container -->
-<!ATTLIST DIV
- %attrs; -- %coreattrs, %i18n, %events --
- %reserved; -- reserved for possible future use --
- >
-
-
-<!--================== The Anchor Element ================================-->
-
-<!ENTITY % Shape "(rect|circle|poly|default)">
-<!ENTITY % Coords "CDATA" -- comma-separated list of lengths -->
-
-<!ELEMENT A - - (%inline;)* -(A) -- anchor -->
-<!ATTLIST A
- %attrs; -- %coreattrs, %i18n, %events --
- charset %Charset; #IMPLIED -- char encoding of linked resource --
- type %ContentType; #IMPLIED -- advisory content type --
- name CDATA #IMPLIED -- named link end --
- href %URI; #IMPLIED -- URI for linked resource --
- hreflang %LanguageCode; #IMPLIED -- language code --
- rel %LinkTypes; #IMPLIED -- forward link types --
- rev %LinkTypes; #IMPLIED -- reverse link types --
- accesskey %Character; #IMPLIED -- accessibility key character --
- shape %Shape; rect -- for use with client-side image maps --
- coords %Coords; #IMPLIED -- for use with client-side image maps --
- tabindex NUMBER #IMPLIED -- position in tabbing order --
- onfocus %Script; #IMPLIED -- the element got the focus --
- onblur %Script; #IMPLIED -- the element lost the focus --
- >
-
-<!--================== Client-side image maps ============================-->
-
-<!-- These can be placed in the same document or grouped in a
- separate document although this isn't yet widely supported -->
-
-<!ELEMENT MAP - - ((%block;) | AREA)+ -- client-side image map -->
-<!ATTLIST MAP
- %attrs; -- %coreattrs, %i18n, %events --
- name CDATA #REQUIRED -- for reference by usemap --
- >
-
-<!ELEMENT AREA - O EMPTY -- client-side image map area -->
-<!ATTLIST AREA
- %attrs; -- %coreattrs, %i18n, %events --
- shape %Shape; rect -- controls interpretation of coords --
- coords %Coords; #IMPLIED -- comma-separated list of lengths --
- href %URI; #IMPLIED -- URI for linked resource --
- nohref (nohref) #IMPLIED -- this region has no action --
- alt %Text; #REQUIRED -- short description --
- tabindex NUMBER #IMPLIED -- position in tabbing order --
- accesskey %Character; #IMPLIED -- accessibility key character --
- onfocus %Script; #IMPLIED -- the element got the focus --
- onblur %Script; #IMPLIED -- the element lost the focus --
- >
-
-<!--================== The LINK Element ==================================-->
-
-<!--
- Relationship values can be used in principle:
-
- a) for document specific toolbars/menus when used
- with the LINK element in document head e.g.
- start, contents, previous, next, index, end, help
- b) to link to a separate style sheet (rel=stylesheet)
- c) to make a link to a script (rel=script)
- d) by stylesheets to control how collections of
- html nodes are rendered into printed documents
- e) to make a link to a printable version of this document
- e.g. a postscript or pdf version (rel=alternate media=print)
--->
-
-<!ELEMENT LINK - O EMPTY -- a media-independent link -->
-<!ATTLIST LINK
- %attrs; -- %coreattrs, %i18n, %events --
- charset %Charset; #IMPLIED -- char encoding of linked resource --
- href %URI; #IMPLIED -- URI for linked resource --
- hreflang %LanguageCode; #IMPLIED -- language code --
- type %ContentType; #IMPLIED -- advisory content type --
- rel %LinkTypes; #IMPLIED -- forward link types --
- rev %LinkTypes; #IMPLIED -- reverse link types --
- media %MediaDesc; #IMPLIED -- for rendering on these media --
- >
-
-<!--=================== Images ===========================================-->
-
-<!-- Length defined in strict DTD for cellpadding/cellspacing -->
-<!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length -->
-<!ENTITY % MultiLength "CDATA" -- pixel, percentage, or relative -->
-
-<![ %HTML.Frameset; [
-<!ENTITY % MultiLengths "CDATA" -- comma-separated list of MultiLength -->
-]]>
-
-<!ENTITY % Pixels "CDATA" -- integer representing length in pixels -->
-
-
-<!-- To avoid problems with text-only UAs as well as
- to make image content understandable and navigable
- to users of non-visual UAs, you need to provide
- a description with ALT, and avoid server-side image maps -->
-<!ELEMENT IMG - O EMPTY -- Embedded image -->
-<!ATTLIST IMG
- %attrs; -- %coreattrs, %i18n, %events --
- src %URI; #REQUIRED -- URI of image to embed --
- alt %Text; #REQUIRED -- short description --
- longdesc %URI; #IMPLIED -- link to long description
- (complements alt) --
- name CDATA #IMPLIED -- name of image for scripting --
- height %Length; #IMPLIED -- override height --
- width %Length; #IMPLIED -- override width --
- usemap %URI; #IMPLIED -- use client-side image map --
- ismap (ismap) #IMPLIED -- use server-side image map --
- >
-
-<!-- USEMAP points to a MAP element which may be in this document
- or an external document, although the latter is not widely supported -->
-
-<!--==================== OBJECT ======================================-->
-<!--
- OBJECT is used to embed objects as part of HTML pages
- PARAM elements should precede other content. SGML mixed content
- model technicality precludes specifying this formally ...
--->
-
-<!ELEMENT OBJECT - - (PARAM | %flow;)*
- -- generic embedded object -->
-<!ATTLIST OBJECT
- %attrs; -- %coreattrs, %i18n, %events --
- declare (declare) #IMPLIED -- declare but don't instantiate flag --
- classid %URI; #IMPLIED -- identifies an implementation --
- codebase %URI; #IMPLIED -- base URI for classid, data, archive--
- data %URI; #IMPLIED -- reference to object's data --
- type %ContentType; #IMPLIED -- content type for data --
- codetype %ContentType; #IMPLIED -- content type for code --
- archive CDATA #IMPLIED -- space-separated list of URIs --
- standby %Text; #IMPLIED -- message to show while loading --
- height %Length; #IMPLIED -- override height --
- width %Length; #IMPLIED -- override width --
- usemap %URI; #IMPLIED -- use client-side image map --
- name CDATA #IMPLIED -- submit as part of form --
- tabindex NUMBER #IMPLIED -- position in tabbing order --
- %reserved; -- reserved for possible future use --
- >
-
-<!ELEMENT PARAM - O EMPTY -- named property value -->
-<!ATTLIST PARAM
- id ID #IMPLIED -- document-wide unique id --
- name CDATA #REQUIRED -- property name --
- value CDATA #IMPLIED -- property value --
- valuetype (DATA|REF|OBJECT) DATA -- How to interpret value --
- type %ContentType; #IMPLIED -- content type for value
- when valuetype=ref --
- >
-
-
-<!--=================== Horizontal Rule ==================================-->
-
-<!ELEMENT HR - O EMPTY -- horizontal rule -->
-<!ATTLIST HR
- %attrs; -- %coreattrs, %i18n, %events --
- >
-
-<!--=================== Paragraphs =======================================-->
-
-<!ELEMENT P - O (%inline;)* -- paragraph -->
-<!ATTLIST P
- %attrs; -- %coreattrs, %i18n, %events --
- >
-
-<!--=================== Headings =========================================-->
-
-<!--
- There are six levels of headings from H1 (the most important)
- to H6 (the least important).
--->
-
-<!ELEMENT (%heading;) - - (%inline;)* -- heading -->
-<!ATTLIST (%heading;)
- %attrs; -- %coreattrs, %i18n, %events --
- >
-
-<!--=================== Preformatted Text ================================-->
-
-<!-- excludes markup for images and changes in font size -->
-<!ENTITY % pre.exclusion "IMG|OBJECT|BIG|SMALL|SUB|SUP">
-
-<!ELEMENT PRE - - (%inline;)* -(%pre.exclusion;) -- preformatted text -->
-<!ATTLIST PRE
- %attrs; -- %coreattrs, %i18n, %events --
- >
-
-<!--===================== Inline Quotes ==================================-->
-
-<!ELEMENT Q - - (%inline;)* -- short inline quotation -->
-<!ATTLIST Q
- %attrs; -- %coreattrs, %i18n, %events --
- cite %URI; #IMPLIED -- URI for source document or msg --
- >
-
-<!--=================== Block-like Quotes ================================-->
-
-<!ELEMENT BLOCKQUOTE - - (%block;|SCRIPT)+ -- long quotation -->
-<!ATTLIST BLOCKQUOTE
- %attrs; -- %coreattrs, %i18n, %events --
- cite %URI; #IMPLIED -- URI for source document or msg --
- >
-
-<!--=================== Inserted/Deleted Text ============================-->
-
-
-<!-- INS/DEL are handled by inclusion on BODY -->
-<!ELEMENT (INS|DEL) - - (%flow;)* -- inserted text, deleted text -->
-<!ATTLIST (INS|DEL)
- %attrs; -- %coreattrs, %i18n, %events --
- cite %URI; #IMPLIED -- info on reason for change --
- datetime %Datetime; #IMPLIED -- date and time of change --
- >
-
-<!--=================== Lists ============================================-->
-
-<!-- definition lists - DT for term, DD for its definition -->
-
-<!ELEMENT DL - - (DT|DD)+ -- definition list -->
-<!ATTLIST DL
- %attrs; -- %coreattrs, %i18n, %events --
- >
-
-<!ELEMENT DT - O (%inline;)* -- definition term -->
-<!ELEMENT DD - O (%flow;)* -- definition description -->
-<!ATTLIST (DT|DD)
- %attrs; -- %coreattrs, %i18n, %events --
- >
-
-
-<!ELEMENT OL - - (LI)+ -- ordered list -->
-<!ATTLIST OL
- %attrs; -- %coreattrs, %i18n, %events --
- >
-
-<!-- Unordered Lists (UL) bullet styles -->
-<!ELEMENT UL - - (LI)+ -- unordered list -->
-<!ATTLIST UL
- %attrs; -- %coreattrs, %i18n, %events --
- >
-
-
-
-<!ELEMENT LI - O (%flow;)* -- list item -->
-<!ATTLIST LI
- %attrs; -- %coreattrs, %i18n, %events --
- >
-
-<!--================ Forms ===============================================-->
-<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->
-<!ATTLIST FORM
- %attrs; -- %coreattrs, %i18n, %events --
- action %URI; #REQUIRED -- server-side form handler --
- method (GET|POST) GET -- HTTP method used to submit the form--
- enctype %ContentType; "application/x-www-form-urlencoded"
- accept %ContentTypes; #IMPLIED -- list of MIME types for file upload --
- name CDATA #IMPLIED -- name of form for scripting --
- onsubmit %Script; #IMPLIED -- the form was submitted --
- onreset %Script; #IMPLIED -- the form was reset --
- accept-charset %Charsets; #IMPLIED -- list of supported charsets --
- >
-
-<!-- Each label must not contain more than ONE field -->
-<!ELEMENT LABEL - - (%inline;)* -(LABEL) -- form field label text -->
-<!ATTLIST LABEL
- %attrs; -- %coreattrs, %i18n, %events --
- for IDREF #IMPLIED -- matches field ID value --
- accesskey %Character; #IMPLIED -- accessibility key character --
- onfocus %Script; #IMPLIED -- the element got the focus --
- onblur %Script; #IMPLIED -- the element lost the focus --
- >
-
-<!ENTITY % InputType
- "(TEXT | PASSWORD | CHECKBOX |
- RADIO | SUBMIT | RESET |
- FILE | HIDDEN | IMAGE | BUTTON)"
- >
-
-<!-- attribute name required for all but submit and reset -->
-<!ELEMENT INPUT - O EMPTY -- form control -->
-<!ATTLIST INPUT
- %attrs; -- %coreattrs, %i18n, %events --
- type %InputType; TEXT -- what kind of widget is needed --
- name CDATA #IMPLIED -- submit as part of form --
- value CDATA #IMPLIED -- Specify for radio buttons and checkboxes --
- checked (checked) #IMPLIED -- for radio buttons and check boxes --
- disabled (disabled) #IMPLIED -- unavailable in this context --
- readonly (readonly) #IMPLIED -- for text and passwd --
- size CDATA #IMPLIED -- specific to each type of field --
- maxlength NUMBER #IMPLIED -- max chars for text fields --
- src %URI; #IMPLIED -- for fields with images --
- alt CDATA #IMPLIED -- short description --
- usemap %URI; #IMPLIED -- use client-side image map --
- ismap (ismap) #IMPLIED -- use server-side image map --
- tabindex NUMBER #IMPLIED -- position in tabbing order --
- accesskey %Character; #IMPLIED -- accessibility key character --
- onfocus %Script; #IMPLIED -- the element got the focus --
- onblur %Script; #IMPLIED -- the element lost the focus --
- onselect %Script; #IMPLIED -- some text was selected --
- onchange %Script; #IMPLIED -- the element value was changed --
- accept %ContentTypes; #IMPLIED -- list of MIME types for file upload --
- %reserved; -- reserved for possible future use --
- >
-
-<!ELEMENT SELECT - - (OPTGROUP|OPTION)+ -- option selector -->
-<!ATTLIST SELECT
- %attrs; -- %coreattrs, %i18n, %events --
- name CDATA #IMPLIED -- field name --
- size NUMBER #IMPLIED -- rows visible --
- multiple (multiple) #IMPLIED -- default is single selection --
- disabled (disabled) #IMPLIED -- unavailable in this context --
- tabindex NUMBER #IMPLIED -- position in tabbing order --
- onfocus %Script; #IMPLIED -- the element got the focus --
- onblur %Script; #IMPLIED -- the element lost the focus --
- onchange %Script; #IMPLIED -- the element value was changed --
- %reserved; -- reserved for possible future use --
- >
-
-<!ELEMENT OPTGROUP - - (OPTION)+ -- option group -->
-<!ATTLIST OPTGROUP
- %attrs; -- %coreattrs, %i18n, %events --
- disabled (disabled) #IMPLIED -- unavailable in this context --
- label %Text; #REQUIRED -- for use in hierarchical menus --
- >
-
-<!ELEMENT OPTION - O (#PCDATA) -- selectable choice -->
-<!ATTLIST OPTION
- %attrs; -- %coreattrs, %i18n, %events --
- selected (selected) #IMPLIED
- disabled (disabled) #IMPLIED -- unavailable in this context --
- label %Text; #IMPLIED -- for use in hierarchical menus --
- value CDATA #IMPLIED -- defaults to element content --
- >
-
-<!ELEMENT TEXTAREA - - (#PCDATA) -- multi-line text field -->
-<!ATTLIST TEXTAREA
- %attrs; -- %coreattrs, %i18n, %events --
- name CDATA #IMPLIED
- rows NUMBER #REQUIRED
- cols NUMBER #REQUIRED
- disabled (disabled) #IMPLIED -- unavailable in this context --
- readonly (readonly) #IMPLIED
- tabindex NUMBER #IMPLIED -- position in tabbing order --
- accesskey %Character; #IMPLIED -- accessibility key character --
- onfocus %Script; #IMPLIED -- the element got the focus --
- onblur %Script; #IMPLIED -- the element lost the focus --
- onselect %Script; #IMPLIED -- some text was selected --
- onchange %Script; #IMPLIED -- the element value was changed --
- %reserved; -- reserved for possible future use --
- >
-
-<!--
- #PCDATA is to solve the mixed content problem,
- per specification only whitespace is allowed there!
- -->
-<!ELEMENT FIELDSET - - (#PCDATA,LEGEND,(%flow;)*) -- form control group -->
-<!ATTLIST FIELDSET
- %attrs; -- %coreattrs, %i18n, %events --
- >
-
-<!ELEMENT LEGEND - - (%inline;)* -- fieldset legend -->
-
-<!ATTLIST LEGEND
- %attrs; -- %coreattrs, %i18n, %events --
- accesskey %Character; #IMPLIED -- accessibility key character --
- >
-
-<!ELEMENT BUTTON - -
- (%flow;)* -(A|%formctrl;|FORM|FIELDSET)
- -- push button -->
-<!ATTLIST BUTTON
- %attrs; -- %coreattrs, %i18n, %events --
- name CDATA #IMPLIED
- value CDATA #IMPLIED -- sent to server when submitted --
- type (button|submit|reset) submit -- for use as form button --
- disabled (disabled) #IMPLIED -- unavailable in this context --
- tabindex NUMBER #IMPLIED -- position in tabbing order --
- accesskey %Character; #IMPLIED -- accessibility key character --
- onfocus %Script; #IMPLIED -- the element got the focus --
- onblur %Script; #IMPLIED -- the element lost the focus --
- %reserved; -- reserved for possible future use --
- >
-
-<!--======================= Tables =======================================-->
-
-<!-- IETF HTML table standard, see [RFC1942] -->
-
-<!--
- The BORDER attribute sets the thickness of the frame around the
- table. The default units are screen pixels.
-
- The FRAME attribute specifies which parts of the frame around
- the table should be rendered. The values are not the same as
- CALS to avoid a name clash with the VALIGN attribute.
-
- The value "border" is included for backwards compatibility with
- <TABLE BORDER> which yields frame=border and border=implied
- For <TABLE BORDER=1> you get border=1 and frame=implied. In this
- case, it is appropriate to treat this as frame=border for backwards
- compatibility with deployed browsers.
--->
-<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
-
-<!--
- The RULES attribute defines which rules to draw between cells:
-
- If RULES is absent then assume:
- "none" if BORDER is absent or BORDER=0 otherwise "all"
--->
-
-<!ENTITY % TRules "(none | groups | rows | cols | all)">
-
-<!-- horizontal placement of table relative to document -->
-<!ENTITY % TAlign "(left|center|right)">
-
-<!-- horizontal alignment attributes for cell contents -->
-<!ENTITY % cellhalign
- "align (left|center|right|justify|char) #IMPLIED
- char %Character; #IMPLIED -- alignment char, e.g. char=':' --
- charoff %Length; #IMPLIED -- offset for alignment char --"
- >
-
-<!-- vertical alignment attributes for cell contents -->
-<!ENTITY % cellvalign
- "valign (top|middle|bottom|baseline) #IMPLIED"
- >
-
-<!ELEMENT TABLE - -
- (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
-<!ELEMENT CAPTION - - (%inline;)* -- table caption -->
-<!ELEMENT THEAD - O (TR)+ -- table header -->
-<!ELEMENT TFOOT - O (TR)+ -- table footer -->
-<!ELEMENT TBODY O O (TR)+ -- table body -->
-<!ELEMENT COLGROUP - O (COL)* -- table column group -->
-<!ELEMENT COL - O EMPTY -- table column -->
-<!ELEMENT TR - O (TH|TD)+ -- table row -->
-<!ELEMENT (TH|TD) - O (%flow;)* -- table header cell, table data cell-->
-
-<!ATTLIST TABLE -- table element --
- %attrs; -- %coreattrs, %i18n, %events --
- summary %Text; #IMPLIED -- purpose/structure for speech output--
- width %Length; #IMPLIED -- table width --
- border %Pixels; #IMPLIED -- controls frame width around table --
- frame %TFrame; #IMPLIED -- which parts of frame to render --
- rules %TRules; #IMPLIED -- rulings between rows and cols --
- cellspacing %Length; #IMPLIED -- spacing between cells --
- cellpadding %Length; #IMPLIED -- spacing within cells --
- %reserved; -- reserved for possible future use --
- datapagesize CDATA #IMPLIED -- reserved for possible future use --
- >
-
-
-<!ATTLIST CAPTION
- %attrs; -- %coreattrs, %i18n, %events --
- >
-
-<!--
-COLGROUP groups a set of COL elements. It allows you to group
-several semantically related columns together.
--->
-<!ATTLIST COLGROUP
- %attrs; -- %coreattrs, %i18n, %events --
- span NUMBER 1 -- default number of columns in group --
- width %MultiLength; #IMPLIED -- default width for enclosed COLs --
- %cellhalign; -- horizontal alignment in cells --
- %cellvalign; -- vertical alignment in cells --
- >
-
-<!--
- COL elements define the alignment properties for cells in
- one or more columns.
-
- The WIDTH attribute specifies the width of the columns, e.g.
-
- width=64 width in screen pixels
- width=0.5* relative width of 0.5
-
- The SPAN attribute causes the attributes of one
- COL element to apply to more than one column.
--->
-<!ATTLIST COL -- column groups and properties --
- %attrs; -- %coreattrs, %i18n, %events --
- span NUMBER 1 -- COL attributes affect N columns --
- width %MultiLength; #IMPLIED -- column width specification --
- %cellhalign; -- horizontal alignment in cells --
- %cellvalign; -- vertical alignment in cells --
- >
-
-<!--
- Use THEAD to duplicate headers when breaking table
- across page boundaries, or for static headers when
- TBODY sections are rendered in scrolling panel.
-
- Use TFOOT to duplicate footers when breaking table
- across page boundaries, or for static footers when
- TBODY sections are rendered in scrolling panel.
-
- Use multiple TBODY sections when rules are needed
- between groups of table rows.
--->
-<!ATTLIST (THEAD|TBODY|TFOOT) -- table section --
- %attrs; -- %coreattrs, %i18n, %events --
- %cellhalign; -- horizontal alignment in cells --
- %cellvalign; -- vertical alignment in cells --
- >
-
-<!ATTLIST TR -- table row --
- %attrs; -- %coreattrs, %i18n, %events --
- %cellhalign; -- horizontal alignment in cells --
- %cellvalign; -- vertical alignment in cells --
- >
-
-
-<!-- Scope is simpler than headers attribute for common tables -->
-<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
-
-<!-- TH is for headers, TD for data, but for cells acting as both use TD -->
-<!ATTLIST (TH|TD) -- header or data cell --
- %attrs; -- %coreattrs, %i18n, %events --
- abbr %Text; #IMPLIED -- abbreviation for header cell --
- axis CDATA #IMPLIED -- comma-separated list of related headers--
- headers IDREFS #IMPLIED -- list of id's for header cells --
- scope %Scope; #IMPLIED -- scope covered by header cells --
- rowspan NUMBER 1 -- number of rows spanned by cell --
- colspan NUMBER 1 -- number of cols spanned by cell --
- %cellhalign; -- horizontal alignment in cells --
- %cellvalign; -- vertical alignment in cells --
- >
-
-
-<!--================ Document Head =======================================-->
-<!-- %head.misc; defined earlier on as "SCRIPT|STYLE|META|LINK|OBJECT" -->
-<!ENTITY % head.content "TITLE & BASE?">
-
-<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- document head -->
-<!ATTLIST HEAD
- %i18n; -- lang, dir --
- profile %URI; #IMPLIED -- named dictionary of meta info --
- >
-
-<!-- The TITLE element is not considered part of the flow of text.
- It should be displayed, for example as the page header or
- window title. Exactly one title is required per document.
- -->
-<!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- document title -->
-<!ATTLIST TITLE %i18n>
-
-
-<!ELEMENT BASE - O EMPTY -- document base URI -->
-<!ATTLIST BASE
- href %URI; #REQUIRED -- URI that acts as base URI --
- >
-
-<!ELEMENT META - O EMPTY -- generic metainformation -->
-<!ATTLIST META
- %i18n; -- lang, dir, for use with content --
- http-equiv NAME #IMPLIED -- HTTP response header name --
- name NAME #IMPLIED -- metainformation name --
- content CDATA #REQUIRED -- associated information --
- scheme CDATA #IMPLIED -- select form of content --
- >
-
-<!ELEMENT STYLE - - %StyleSheet -- style info -->
-<!ATTLIST STYLE
- %i18n; -- lang, dir, for use with title --
- type %ContentType; #REQUIRED -- content type of style language --
- media %MediaDesc; #IMPLIED -- designed for use with these media --
- title %Text; #IMPLIED -- advisory title --
- >
-
-<!ELEMENT SCRIPT - - %Script; -- script statements -->
-<!ATTLIST SCRIPT
- charset %Charset; #IMPLIED -- char encoding of linked resource --
- type %ContentType; #REQUIRED -- content type of script language --
- src %URI; #IMPLIED -- URI for an external script --
- defer (defer) #IMPLIED -- UA may defer execution of script --
- event CDATA #IMPLIED -- reserved for possible future use --
- for %URI; #IMPLIED -- reserved for possible future use --
- >
-
-<!ELEMENT NOSCRIPT - - (%block;)+
- -- alternate content container for non script-based rendering -->
-<!ATTLIST NOSCRIPT
- %attrs; -- %coreattrs, %i18n, %events --
- >
-
-<!--================ Document Structure ==================================-->
-<!ENTITY % html.content "HEAD, BODY">
-
-<!ELEMENT HTML O O (%html.content;) -- document root element -->
-<!ATTLIST HTML
- %i18n; -- lang, dir --
- >
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/switch-bench.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/switch-bench.js
deleted file mode 100755
index 4d3cf141911..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/switch-bench.js
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/local/bin/node-bench
-
-var Promise = require("events").Promise;
-
-var xml = require("posix").cat("test.xml").wait(),
- path = require("path"),
- sax = require("../lib/sax"),
- saxT = require("../lib/sax-trampoline"),
-
- parser = sax.parser(false, {trim:true}),
- parserT = saxT.parser(false, {trim:true}),
-
- sys = require("sys");
-
-
-var count = exports.stepsPerLap = 500,
- l = xml.length,
- runs = 0;
-exports.countPerLap = 1000;
-exports.compare = {
- "switch" : function () {
- // sys.debug("switch runs: "+runs++);
- // for (var x = 0; x < l; x += 1000) {
- // parser.write(xml.substr(x, 1000))
- // }
- // for (var i = 0; i < count; i ++) {
- parser.write(xml);
- parser.close();
- // }
- // done();
- },
- trampoline : function () {
- // sys.debug("trampoline runs: "+runs++);
- // for (var x = 0; x < l; x += 1000) {
- // parserT.write(xml.substr(x, 1000))
- // }
- // for (var i = 0; i < count; i ++) {
- parserT.write(xml);
- parserT.close();
- // }
- // done();
- },
-};
-
-sys.debug("rock and roll..."); \ No newline at end of file
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/test.html b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/test.html
deleted file mode 100644
index 61f8f1ab91c..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/test.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!doctype html>
-
-<html lang="en">
-<head>
- <title>testing the parser</title>
-</head>
-<body>
-
-<p>hello
-
-<script>
-
-</script>
-</body>
-</html>
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 801292d7f27..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/examples/test.xml
+++ /dev/null
@@ -1,1254 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE RootElement [
- <!ENTITY e SYSTEM "001.ent">
-]>
-<RootElement param="value">
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
- <FirstElement>
- Some Text
- </FirstElement>
- <?some_pi some_attr="some_value"?>
- <!-- this is a comment -- but this isnt part of the comment -->
- <!-- this is a comment == and this is a part of the comment -->
- <!-- this is a comment > and this is also part of the thing -->
- <!invalid comment>
- <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
- <SecondElement param2="something">
- Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
- &#xF8FF;
- </SecondElement>
-</RootElement> \ 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 17fb08e7a50..00000000000
--- 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++ // &amp and such.
-, OPEN_WAKA : S++ // <
-, SGML_DECL : S++ // <!BLARG
-, SGML_DECL_QUOTED : S++ // <!BLARG foo "bar
-, DOCTYPE : S++ // <!DOCTYPE
-, DOCTYPE_QUOTED : S++ // <!DOCTYPE "//blah
-, DOCTYPE_DTD : S++ // <!DOCTYPE "//blah" [ ...
-, DOCTYPE_DTD_QUOTED : S++ // <!DOCTYPE "//blah" [ "foo
-, COMMENT_STARTING : S++ // <!-
-, COMMENT : S++ // <!--
-, COMMENT_ENDING : S++ // <!-- blah -
-, COMMENT_ENDED : S++ // <!-- blah --
-, CDATA : S++ // <![CDATA[ something
-, CDATA_ENDING : S++ // ]
-, CDATA_ENDING_2 : S++ // ]]
-, PROC_INST : S++ // <?hi
-, PROC_INST_BODY : S++ // <?hi there
-, PROC_INST_QUOTED : S++ // <?hi "there
-, PROC_INST_ENDING : S++ // <?hi "there" ?
-, OPEN_TAG : S++ // <strong
-, OPEN_TAG_SLASH : S++ // <strong /
-, ATTRIB : S++ // <a
-, ATTRIB_NAME : S++ // <a foo
-, ATTRIB_NAME_SAW_WHITE : S++ // <a foo _
-, ATTRIB_VALUE : S++ // <a foo=
-, ATTRIB_VALUE_QUOTED : S++ // <a foo="bar
-, ATTRIB_VALUE_UNQUOTED : S++ // <a foo=bar
-, ATTRIB_VALUE_ENTITY_Q : S++ // <foo bar="&quot;"
-, ATTRIB_VALUE_ENTITY_U : S++ // <foo bar=&quot;
-, CLOSE_TAG : S++ // </a
-, CLOSE_TAG_SAW_WHITE : S++ // </a >
-, SCRIPT : S++ // <script> ...
-, SCRIPT_ENDING : S++ // <script> ... <
-}
-
-sax.ENTITIES =
-{ "apos" : "'"
-, "quot" : "\""
-, "amp" : "&"
-, "gt" : ">"
-, "lt" : "<"
-}
-
-for (var S in sax.STATE) sax.STATE[sax.STATE[S]] = S
-
-// shorthand
-S = sax.STATE
-
-function emit (parser, event, data) {
- parser[event] && parser[event](data)
-}
-
-function emitNode (parser, nodeType, data) {
- if (parser.textNode) closeText(parser)
- emit(parser, nodeType, data)
-}
-
-function closeText (parser) {
- parser.textNode = textopts(parser.opt, parser.textNode)
- if (parser.textNode) emit(parser, "ontext", parser.textNode)
- parser.textNode = ""
-}
-
-function textopts (opt, text) {
- if (opt.trim) text = text.trim()
- if (opt.normalize) text = text.replace(/\s+/g, " ")
- return text
-}
-
-function error (parser, er) {
- closeText(parser)
- er += "\nLine: "+parser.line+
- "\nColumn: "+parser.column+
- "\nChar: "+parser.c
- er = new Error(er)
- parser.error = er
- emit(parser, "onerror", er)
- return parser
-}
-
-function end (parser) {
- if (parser.state !== S.TEXT) error(parser, "Unexpected end")
- closeText(parser)
- parser.c = ""
- parser.closed = true
- emit(parser, "onend")
- SAXParser.call(parser, parser.strict, parser.opt)
- return parser
-}
-
-function strictFail (parser, message) {
- if (parser.strict) error(parser, message)
-}
-
-function newTag (parser) {
- if (!parser.strict) parser.tagName = parser.tagName[parser.tagCase]()
- var parent = parser.tags[parser.tags.length - 1] || parser
- , tag = parser.tag = { name : parser.tagName, attributes : {} }
-
- // will be overridden if tag contails an xmlns="foo" or xmlns:foo="bar"
- if (parser.opt.xmlns) tag.ns = parent.ns
- parser.attribList.length = 0
-}
-
-function qname (name) {
- var i = name.indexOf(":")
- , qualName = i < 0 ? [ "", name ] : name.split(":")
- , prefix = qualName[0]
- , local = qualName[1]
-
- // <x "xmlns"="http://foo">
- if (name === "xmlns") {
- prefix = "xmlns"
- local = ""
- }
-
- return { prefix: prefix, local: local }
-}
-
-function attrib (parser) {
- if (parser.opt.xmlns) {
- var qn = qname(parser.attribName)
- , prefix = qn.prefix
- , local = qn.local
-
- if (prefix === "xmlns") {
- // namespace binding attribute; push the binding into scope
- if (local === "xml" && parser.attribValue !== XML_NAMESPACE) {
- strictFail( parser
- , "xml: prefix must be bound to " + XML_NAMESPACE + "\n"
- + "Actual: " + parser.attribValue )
- } else if (local === "xmlns" && parser.attribValue !== XMLNS_NAMESPACE) {
- strictFail( parser
- , "xmlns: prefix must be bound to " + XMLNS_NAMESPACE + "\n"
- + "Actual: " + parser.attribValue )
- } else {
- var tag = parser.tag
- , parent = parser.tags[parser.tags.length - 1] || parser
- if (tag.ns === parent.ns) {
- tag.ns = Object.create(parent.ns)
- }
- tag.ns[local] = parser.attribValue
- }
- }
-
- // defer onattribute events until all attributes have been seen
- // so any new bindings can take effect; preserve attribute order
- // so deferred events can be emitted in document order
- parser.attribList.push([parser.attribName, parser.attribValue])
- } else {
- // in non-xmlns mode, we can emit the event right away
- parser.tag.attributes[parser.attribName] = parser.attribValue
- emitNode( parser
- , "onattribute"
- , { name: parser.attribName
- , value: parser.attribValue } )
- }
-
- parser.attribName = parser.attribValue = ""
-}
-
-function openTag (parser, selfClosing) {
- if (parser.opt.xmlns) {
- // emit namespace binding events
- var tag = parser.tag
-
- // add namespace info to tag
- var qn = qname(parser.tagName)
- tag.prefix = qn.prefix
- tag.local = qn.local
- tag.uri = tag.ns[qn.prefix] || qn.prefix
-
- if (tag.prefix && !tag.uri) {
- strictFail(parser, "Unbound namespace prefix: "
- + JSON.stringify(parser.tagName))
- }
-
- var parent = parser.tags[parser.tags.length - 1] || parser
- if (tag.ns && parent.ns !== tag.ns) {
- Object.keys(tag.ns).forEach(function (p) {
- emitNode( parser
- , "onopennamespace"
- , { prefix: p , uri: tag.ns[p] } )
- })
- }
-
- // handle deferred onattribute events
- for (var i = 0, l = parser.attribList.length; i < l; i ++) {
- var nv = parser.attribList[i]
- var name = nv[0]
- , value = nv[1]
- , qualName = qname(name)
- , prefix = qualName.prefix
- , local = qualName.local
- , uri = tag.ns[prefix] || ""
- , a = { name: name
- , value: value
- , prefix: prefix
- , local: local
- , uri: uri
- }
-
- // if there's any attributes with an undefined namespace,
- // then fail on them now.
- if (prefix && prefix != "xmlns" && !uri) {
- strictFail(parser, "Unbound namespace prefix: "
- + JSON.stringify(prefix))
- a.uri = prefix
- }
- parser.tag.attributes[name] = a
- emitNode(parser, "onattribute", a)
- }
- parser.attribList.length = 0
- }
-
- // process the tag
- parser.sawRoot = true
- parser.tags.push(parser.tag)
- emitNode(parser, "onopentag", parser.tag)
- if (!selfClosing) {
- // special case for <script> in non-strict mode.
- if (!parser.noscript && parser.tagName.toLowerCase() === "script") {
- parser.state = S.SCRIPT
- } else {
- parser.state = S.TEXT
- }
- parser.tag = null
- parser.tagName = ""
- }
- parser.attribName = parser.attribValue = ""
- parser.attribList.length = 0
-}
-
-function closeTag (parser) {
- if (!parser.tagName) {
- strictFail(parser, "Weird empty close tag.")
- parser.textNode += "</>"
- parser.state = S.TEXT
- return
- }
- // first make sure that the closing tag actually exists.
- // <a><b></c></b></a> will close everything, otherwise.
- var t = parser.tags.length
- var tagName = parser.tagName
- if (!parser.strict) tagName = tagName[parser.tagCase]()
- var closeTo = tagName
- while (t --) {
- var close = parser.tags[t]
- if (close.name !== closeTo) {
- // fail the first time in strict mode
- strictFail(parser, "Unexpected close tag")
- } else break
- }
-
- // didn't find it. we already failed for strict, so just abort.
- if (t < 0) {
- strictFail(parser, "Unmatched closing tag: "+parser.tagName)
- parser.textNode += "</" + parser.tagName + ">"
- parser.state = S.TEXT
- return
- }
- parser.tagName = tagName
- var s = parser.tags.length
- while (s --> t) {
- var tag = parser.tag = parser.tags.pop()
- parser.tagName = parser.tag.name
- emitNode(parser, "onclosetag", parser.tagName)
-
- var x = {}
- for (var i in tag.ns) x[i] = tag.ns[i]
-
- var parent = parser.tags[parser.tags.length - 1] || parser
- if (parser.opt.xmlns && tag.ns !== parent.ns) {
- // remove namespace bindings introduced by tag
- Object.keys(tag.ns).forEach(function (p) {
- var n = tag.ns[p]
- emitNode(parser, "onclosenamespace", { prefix: p, uri: n })
- })
- }
- }
- if (t === 0) parser.closedRoot = true
- parser.tagName = parser.attribValue = parser.attribName = ""
- parser.attribList.length = 0
- parser.state = S.TEXT
-}
-
-function parseEntity (parser) {
- var entity = parser.entity.toLowerCase()
- , num
- , numStr = ""
- if (parser.ENTITIES[entity]) return parser.ENTITIES[entity]
- if (entity.charAt(0) === "#") {
- if (entity.charAt(1) === "x") {
- entity = entity.slice(2)
- num = parseInt(entity, 16)
- numStr = num.toString(16)
- } else {
- entity = entity.slice(1)
- num = parseInt(entity, 10)
- numStr = num.toString(10)
- }
- }
- entity = entity.replace(/^0+/, "")
- if (numStr.toLowerCase() !== entity) {
- strictFail(parser, "Invalid character entity")
- return "&"+parser.entity + ";"
- }
- return String.fromCharCode(num)
-}
-
-function write (chunk) {
- var parser = this
- if (this.error) throw this.error
- if (parser.closed) return error(parser,
- "Cannot write after close. Assign an onready handler.")
- if (chunk === null) return end(parser)
- var i = 0, c = ""
- while (parser.c = c = chunk.charAt(i++)) {
- parser.position ++
- if (c === "\n") {
- parser.line ++
- parser.column = 0
- } else parser.column ++
- switch (parser.state) {
-
- case S.BEGIN:
- if (c === "<") parser.state = S.OPEN_WAKA
- else if (not(whitespace,c)) {
- // have to process this as a text node.
- // weird, but happens.
- strictFail(parser, "Non-whitespace before first tag.")
- parser.textNode = c
- parser.state = S.TEXT
- }
- continue
-
- case S.TEXT:
- if (parser.sawRoot && !parser.closedRoot) {
- var starti = i-1
- while (c && c!=="<" && c!=="&") {
- c = chunk.charAt(i++)
- if (c) {
- parser.position ++
- if (c === "\n") {
- parser.line ++
- parser.column = 0
- } else parser.column ++
- }
- }
- parser.textNode += chunk.substring(starti, i-1)
- }
- if (c === "<") parser.state = S.OPEN_WAKA
- else {
- if (not(whitespace, c) && (!parser.sawRoot || parser.closedRoot))
- strictFail("Text data outside of root node.")
- if (c === "&") parser.state = S.TEXT_ENTITY
- else parser.textNode += c
- }
- continue
-
- case S.SCRIPT:
- // only non-strict
- if (c === "<") {
- parser.state = S.SCRIPT_ENDING
- } else parser.script += c
- continue
-
- case S.SCRIPT_ENDING:
- if (c === "/") {
- emitNode(parser, "onscript", parser.script)
- parser.state = S.CLOSE_TAG
- parser.script = ""
- parser.tagName = ""
- } else {
- parser.script += "<" + c
- parser.state = S.SCRIPT
- }
- continue
-
- case S.OPEN_WAKA:
- // either a /, ?, !, or text is coming next.
- if (c === "!") {
- parser.state = S.SGML_DECL
- parser.sgmlDecl = ""
- } else if (is(whitespace, c)) {
- // wait for it...
- } else if (is(nameStart,c)) {
- parser.startTagPosition = parser.position - 1
- parser.state = S.OPEN_TAG
- parser.tagName = c
- } else if (c === "/") {
- parser.startTagPosition = parser.position - 1
- parser.state = S.CLOSE_TAG
- parser.tagName = ""
- } else if (c === "?") {
- parser.state = S.PROC_INST
- parser.procInstName = parser.procInstBody = ""
- } else {
- strictFail(parser, "Unencoded <")
- parser.textNode += "<" + c
- parser.state = S.TEXT
- }
- continue
-
- case S.SGML_DECL:
- if ((parser.sgmlDecl+c).toUpperCase() === CDATA) {
- emitNode(parser, "onopencdata")
- parser.state = S.CDATA
- parser.sgmlDecl = ""
- parser.cdata = ""
- } else if (parser.sgmlDecl+c === "--") {
- parser.state = S.COMMENT
- parser.comment = ""
- parser.sgmlDecl = ""
- } else if ((parser.sgmlDecl+c).toUpperCase() === DOCTYPE) {
- parser.state = S.DOCTYPE
- if (parser.doctype || parser.sawRoot) strictFail(parser,
- "Inappropriately located doctype declaration")
- parser.doctype = ""
- parser.sgmlDecl = ""
- } else if (c === ">") {
- emitNode(parser, "onsgmldeclaration", parser.sgmlDecl)
- parser.sgmlDecl = ""
- parser.state = S.TEXT
- } else if (is(quote, c)) {
- parser.state = S.SGML_DECL_QUOTED
- parser.sgmlDecl += c
- } else parser.sgmlDecl += c
- continue
-
- case S.SGML_DECL_QUOTED:
- if (c === parser.q) {
- parser.state = S.SGML_DECL
- parser.q = ""
- }
- parser.sgmlDecl += c
- continue
-
- case S.DOCTYPE:
- if (c === ">") {
- parser.state = S.TEXT
- emitNode(parser, "ondoctype", parser.doctype)
- parser.doctype = true // just remember that we saw it.
- } else {
- parser.doctype += c
- if (c === "[") parser.state = S.DOCTYPE_DTD
- else if (is(quote, c)) {
- parser.state = S.DOCTYPE_QUOTED
- parser.q = c
- }
- }
- continue
-
- case S.DOCTYPE_QUOTED:
- parser.doctype += c
- if (c === parser.q) {
- parser.q = ""
- parser.state = S.DOCTYPE
- }
- continue
-
- case S.DOCTYPE_DTD:
- parser.doctype += c
- if (c === "]") parser.state = S.DOCTYPE
- else if (is(quote,c)) {
- parser.state = S.DOCTYPE_DTD_QUOTED
- parser.q = c
- }
- continue
-
- case S.DOCTYPE_DTD_QUOTED:
- parser.doctype += c
- if (c === parser.q) {
- parser.state = S.DOCTYPE_DTD
- parser.q = ""
- }
- continue
-
- case S.COMMENT:
- if (c === "-") parser.state = S.COMMENT_ENDING
- else parser.comment += c
- continue
-
- case S.COMMENT_ENDING:
- if (c === "-") {
- parser.state = S.COMMENT_ENDED
- parser.comment = textopts(parser.opt, parser.comment)
- if (parser.comment) emitNode(parser, "oncomment", parser.comment)
- parser.comment = ""
- } else {
- parser.comment += "-" + c
- parser.state = S.COMMENT
- }
- continue
-
- case S.COMMENT_ENDED:
- if (c !== ">") {
- strictFail(parser, "Malformed comment")
- // allow <!-- blah -- bloo --> in non-strict mode,
- // which is a comment of " blah -- bloo "
- parser.comment += "--" + c
- parser.state = S.COMMENT
- } else parser.state = S.TEXT
- continue
-
- case S.CDATA:
- if (c === "]") parser.state = S.CDATA_ENDING
- else parser.cdata += c
- continue
-
- case S.CDATA_ENDING:
- if (c === "]") parser.state = S.CDATA_ENDING_2
- else {
- parser.cdata += "]" + c
- parser.state = S.CDATA
- }
- continue
-
- case S.CDATA_ENDING_2:
- if (c === ">") {
- if (parser.cdata) emitNode(parser, "oncdata", parser.cdata)
- emitNode(parser, "onclosecdata")
- parser.cdata = ""
- parser.state = S.TEXT
- } else if (c === "]") {
- parser.cdata += "]"
- } else {
- parser.cdata += "]]" + c
- parser.state = S.CDATA
- }
- continue
-
- case S.PROC_INST:
- if (c === "?") parser.state = S.PROC_INST_ENDING
- else if (is(whitespace, c)) parser.state = S.PROC_INST_BODY
- else parser.procInstName += c
- continue
-
- case S.PROC_INST_BODY:
- if (!parser.procInstBody && is(whitespace, c)) continue
- else if (c === "?") parser.state = S.PROC_INST_ENDING
- else if (is(quote, c)) {
- parser.state = S.PROC_INST_QUOTED
- parser.q = c
- parser.procInstBody += c
- } else parser.procInstBody += c
- continue
-
- case S.PROC_INST_ENDING:
- if (c === ">") {
- emitNode(parser, "onprocessinginstruction", {
- name : parser.procInstName,
- body : parser.procInstBody
- })
- parser.procInstName = parser.procInstBody = ""
- parser.state = S.TEXT
- } else {
- parser.procInstBody += "?" + c
- parser.state = S.PROC_INST_BODY
- }
- continue
-
- case S.PROC_INST_QUOTED:
- parser.procInstBody += c
- if (c === parser.q) {
- parser.state = S.PROC_INST_BODY
- parser.q = ""
- }
- continue
-
- case S.OPEN_TAG:
- if (is(nameBody, c)) parser.tagName += c
- else {
- newTag(parser)
- if (c === ">") openTag(parser)
- else if (c === "/") parser.state = S.OPEN_TAG_SLASH
- else {
- if (not(whitespace, c)) strictFail(
- parser, "Invalid character in tag name")
- parser.state = S.ATTRIB
- }
- }
- continue
-
- case S.OPEN_TAG_SLASH:
- if (c === ">") {
- openTag(parser, true)
- closeTag(parser)
- } else {
- strictFail(parser, "Forward-slash in opening tag not followed by >")
- parser.state = S.ATTRIB
- }
- continue
-
- case S.ATTRIB:
- // haven't read the attribute name yet.
- if (is(whitespace, c)) continue
- else if (c === ">") openTag(parser)
- else if (c === "/") parser.state = S.OPEN_TAG_SLASH
- else if (is(nameStart, c)) {
- parser.attribName = c
- parser.attribValue = ""
- parser.state = S.ATTRIB_NAME
- } else strictFail(parser, "Invalid attribute name")
- continue
-
- case S.ATTRIB_NAME:
- if (c === "=") parser.state = S.ATTRIB_VALUE
- else if (is(whitespace, c)) parser.state = S.ATTRIB_NAME_SAW_WHITE
- else if (is(nameBody, c)) parser.attribName += c
- else strictFail(parser, "Invalid attribute name")
- continue
-
- case S.ATTRIB_NAME_SAW_WHITE:
- if (c === "=") parser.state = S.ATTRIB_VALUE
- else if (is(whitespace, c)) continue
- else {
- strictFail(parser, "Attribute without value")
- parser.tag.attributes[parser.attribName] = ""
- parser.attribValue = ""
- emitNode(parser, "onattribute",
- { name : parser.attribName, value : "" })
- parser.attribName = ""
- if (c === ">") openTag(parser)
- else if (is(nameStart, c)) {
- parser.attribName = c
- parser.state = S.ATTRIB_NAME
- } else {
- strictFail(parser, "Invalid attribute name")
- parser.state = S.ATTRIB
- }
- }
- continue
-
- case S.ATTRIB_VALUE:
- if (is(whitespace, c)) continue
- else if (is(quote, c)) {
- parser.q = c
- parser.state = S.ATTRIB_VALUE_QUOTED
- } else {
- strictFail(parser, "Unquoted attribute value")
- parser.state = S.ATTRIB_VALUE_UNQUOTED
- parser.attribValue = c
- }
- continue
-
- case S.ATTRIB_VALUE_QUOTED:
- if (c !== parser.q) {
- if (c === "&") parser.state = S.ATTRIB_VALUE_ENTITY_Q
- else parser.attribValue += c
- continue
- }
- attrib(parser)
- parser.q = ""
- parser.state = S.ATTRIB
- continue
-
- case S.ATTRIB_VALUE_UNQUOTED:
- if (not(attribEnd,c)) {
- if (c === "&") parser.state = S.ATTRIB_VALUE_ENTITY_U
- else parser.attribValue += c
- continue
- }
- attrib(parser)
- if (c === ">") openTag(parser)
- else parser.state = S.ATTRIB
- continue
-
- case S.CLOSE_TAG:
- if (!parser.tagName) {
- if (is(whitespace, c)) continue
- else if (not(nameStart, c)) strictFail(parser,
- "Invalid tagname in closing tag.")
- else parser.tagName = c
- }
- else if (c === ">") closeTag(parser)
- else if (is(nameBody, c)) parser.tagName += c
- else {
- if (not(whitespace, c)) strictFail(parser,
- "Invalid tagname in closing tag")
- parser.state = S.CLOSE_TAG_SAW_WHITE
- }
- continue
-
- case S.CLOSE_TAG_SAW_WHITE:
- if (is(whitespace, c)) continue
- if (c === ">") closeTag(parser)
- else strictFail("Invalid characters in closing tag")
- continue
-
- case S.TEXT_ENTITY:
- case S.ATTRIB_VALUE_ENTITY_Q:
- case S.ATTRIB_VALUE_ENTITY_U:
- switch(parser.state) {
- case S.TEXT_ENTITY:
- var returnState = S.TEXT, buffer = "textNode"
- break
-
- case S.ATTRIB_VALUE_ENTITY_Q:
- var returnState = S.ATTRIB_VALUE_QUOTED, buffer = "attribValue"
- break
-
- case S.ATTRIB_VALUE_ENTITY_U:
- var returnState = S.ATTRIB_VALUE_UNQUOTED, buffer = "attribValue"
- break
- }
- if (c === ";") {
- parser[buffer] += parseEntity(parser)
- parser.entity = ""
- parser.state = returnState
- }
- else if (is(entity, c)) parser.entity += c
- else {
- strictFail("Invalid character entity")
- parser[buffer] += "&" + parser.entity + c
- parser.entity = ""
- parser.state = returnState
- }
- continue
-
- default:
- throw new Error(parser, "Unknown state: " + parser.state)
- }
- } // while
- // cdata blocks can get very big under normal conditions. emit and move on.
- // if (parser.state === S.CDATA && parser.cdata) {
- // emitNode(parser, "oncdata", parser.cdata)
- // parser.cdata = ""
- // }
- if (parser.position >= parser.bufferCheckPosition) checkBufferLength(parser)
- return parser
-}
-
-})(typeof exports === "undefined" ? sax = {} : exports)
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/package.json b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/package.json
deleted file mode 100644
index ca0118b5cfe..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/package.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "name": "sax",
- "description": "An evented streaming XML parser in JavaScript",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "version": "0.3.5",
- "main": "lib/sax.js",
- "license": {
- "type": "MIT",
- "url": "https://raw.github.com/isaacs/sax-js/master/LICENSE"
- },
- "scripts": {
- "test": "node test/index.js"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/sax-js.git"
- },
- "_npmUser": {
- "name": "isaacs",
- "email": "i@izs.me"
- },
- "_id": "sax@0.3.5",
- "contributors": [
- {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me"
- },
- {
- "name": "Stein Martin Hustad",
- "email": "stein@hustad.com"
- },
- {
- "name": "Mikeal Rogers",
- "email": "mikeal.rogers@gmail.com"
- },
- {
- "name": "Laurie Harper",
- "email": "laurie@holoweb.net"
- },
- {
- "name": "Jann Horn",
- "email": "jann@Jann-PC.fritz.box"
- },
- {
- "name": "Elijah Insua",
- "email": "tmpvar@gmail.com"
- },
- {
- "name": "Henry Rawas",
- "email": "henryr@schakra.com"
- },
- {
- "name": "Justin Makeig",
- "email": "jmpublic@makeig.com"
- }
- ],
- "dependencies": {},
- "devDependencies": {},
- "optionalDependencies": {},
- "engines": {
- "node": "*"
- },
- "_engineSupported": true,
- "_npmVersion": "1.1.4",
- "_nodeVersion": "v0.7.6-pre",
- "_defaultsLoaded": true,
- "dist": {
- "shasum": "bd2b8a4a7fa694653a13c80f4afbf69f962d3fd0"
- },
- "_from": "sax@*"
-}
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/buffer-overrun.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/buffer-overrun.js
deleted file mode 100644
index 8d12fac5092..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/buffer-overrun.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// set this really low so that I don't have to put 64 MB of xml in here.
-var sax = require("../lib/sax")
-var bl = sax.MAX_BUFFER_LENGTH
-sax.MAX_BUFFER_LENGTH = 5;
-
-require(__dirname).test({
- expect : [
- ["error", "Max buffer length exceeded: tagName\nLine: 0\nColumn: 15\nChar: "],
- ["error", "Max buffer length exceeded: tagName\nLine: 0\nColumn: 30\nChar: "],
- ["error", "Max buffer length exceeded: tagName\nLine: 0\nColumn: 45\nChar: "],
- ["opentag", {
- "name": "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ",
- "attributes": {}
- }],
- ["text", "yo"],
- ["closetag", "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"]
- ]
-}).write("<abcdefghijklmn")
- .write("opqrstuvwxyzABC")
- .write("DEFGHIJKLMNOPQR")
- .write("STUVWXYZ>")
- .write("yo")
- .write("</abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ>")
- .close();
-sax.MAX_BUFFER_LENGTH = bl
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata-chunked.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata-chunked.js
deleted file mode 100644
index ccd5ee68dc1..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata-chunked.js
+++ /dev/null
@@ -1,11 +0,0 @@
-
-require(__dirname).test({
- expect : [
- ["opentag", {"name": "R","attributes": {}}],
- ["opencdata", undefined],
- ["cdata", " this is character data  "],
- ["closecdata", undefined],
- ["closetag", "R"]
- ]
-}).write("<r><![CDATA[ this is ").write("character data  ").write("]]></r>").close();
-
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata-end-split.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata-end-split.js
deleted file mode 100644
index b41bd00e242..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata-end-split.js
+++ /dev/null
@@ -1,15 +0,0 @@
-
-require(__dirname).test({
- expect : [
- ["opentag", {"name": "R","attributes": {}}],
- ["opencdata", undefined],
- ["cdata", " this is "],
- ["closecdata", undefined],
- ["closetag", "R"]
- ]
-})
- .write("<r><![CDATA[ this is ]")
- .write("]>")
- .write("</r>")
- .close();
-
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata-fake-end.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata-fake-end.js
deleted file mode 100644
index 07aeac4c210..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata-fake-end.js
+++ /dev/null
@@ -1,28 +0,0 @@
-
-var p = require(__dirname).test({
- expect : [
- ["opentag", {"name": "R","attributes": {}}],
- ["opencdata", undefined],
- ["cdata", "[[[[[[[[]]]]]]]]"],
- ["closecdata", undefined],
- ["closetag", "R"]
- ]
-})
-var x = "<r><![CDATA[[[[[[[[[]]]]]]]]]]></r>"
-for (var i = 0; i < x.length ; i ++) {
- p.write(x.charAt(i))
-}
-p.close();
-
-
-var p2 = require(__dirname).test({
- expect : [
- ["opentag", {"name": "R","attributes": {}}],
- ["opencdata", undefined],
- ["cdata", "[[[[[[[[]]]]]]]]"],
- ["closecdata", undefined],
- ["closetag", "R"]
- ]
-})
-var x = "<r><![CDATA[[[[[[[[[]]]]]]]]]]></r>"
-p2.write(x).close();
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata-multiple.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata-multiple.js
deleted file mode 100644
index dab20150bc2..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata-multiple.js
+++ /dev/null
@@ -1,15 +0,0 @@
-
-require(__dirname).test({
- expect : [
- ["opentag", {"name": "R","attributes": {}}],
- ["opencdata", undefined],
- ["cdata", " this is "],
- ["closecdata", undefined],
- ["opencdata", undefined],
- ["cdata", "character data  "],
- ["closecdata", undefined],
- ["closetag", "R"]
- ]
-}).write("<r><![CDATA[ this is ]]>").write("<![CDA").write("T").write("A[")
- .write("character data  ").write("]]></r>").close();
-
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata.js
deleted file mode 100644
index 0f09cce95b1..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/cdata.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require(__dirname).test({
- xml : "<r><![CDATA[ this is character data  ]]></r>",
- expect : [
- ["opentag", {"name": "R","attributes": {}}],
- ["opencdata", undefined],
- ["cdata", " this is character data  "],
- ["closecdata", undefined],
- ["closetag", "R"]
- ]
-});
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/index.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/index.js
deleted file mode 100644
index d4e1ef4f9c9..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/index.js
+++ /dev/null
@@ -1,86 +0,0 @@
-var globalsBefore = JSON.stringify(Object.keys(global))
- , util = require("util")
- , assert = require("assert")
- , fs = require("fs")
- , path = require("path")
- , sax = require("../lib/sax")
-
-exports.sax = sax
-
-// handy way to do simple unit tests
-// if the options contains an xml string, it'll be written and the parser closed.
-// otherwise, it's assumed that the test will write and close.
-exports.test = function test (options) {
- var xml = options.xml
- , parser = sax.parser(options.strict, options.opt)
- , expect = options.expect
- , e = 0
- sax.EVENTS.forEach(function (ev) {
- parser["on" + ev] = function (n) {
- if (process.env.DEBUG) {
- console.error({ expect: expect[e]
- , actual: [ev, n] })
- }
- if (e >= expect.length && (ev === "end" || ev === "ready")) return
- assert.ok( e < expect.length,
- "expectation #"+e+" "+util.inspect(expect[e])+"\n"+
- "Unexpected event: "+ev+" "+(n ? util.inspect(n) : ""))
- var inspected = n instanceof Error ? "\n"+ n.message : util.inspect(n)
- assert.equal(ev, expect[e][0],
- "expectation #"+e+"\n"+
- "Didn't get expected event\n"+
- "expect: "+expect[e][0] + " " +util.inspect(expect[e][1])+"\n"+
- "actual: "+ev+" "+inspected+"\n")
- if (ev === "error") assert.equal(n.message, expect[e][1])
- else assert.deepEqual(n, expect[e][1],
- "expectation #"+e+"\n"+
- "Didn't get expected argument\n"+
- "expect: "+expect[e][0] + " " +util.inspect(expect[e][1])+"\n"+
- "actual: "+ev+" "+inspected+"\n")
- e++
- if (ev === "error") parser.resume()
- }
- })
- if (xml) parser.write(xml).close()
- return parser
-}
-
-if (module === require.main) {
- var running = true
- , failures = 0
-
- function fail (file, er) {
- util.error("Failed: "+file)
- util.error(er.stack || er.message)
- failures ++
- }
-
- fs.readdir(__dirname, function (error, files) {
- files = files.filter(function (file) {
- return (/\.js$/.exec(file) && file !== 'index.js')
- })
- var n = files.length
- , i = 0
- console.log("0.." + n)
- files.forEach(function (file) {
- // run this test.
- try {
- require(path.resolve(__dirname, file))
- var globalsAfter = JSON.stringify(Object.keys(global))
- if (globalsAfter !== globalsBefore) {
- var er = new Error("new globals introduced\n"+
- "expected: "+globalsBefore+"\n"+
- "actual: "+globalsAfter)
- globalsBefore = globalsAfter
- throw er
- }
- console.log("ok " + (++i) + " - " + file)
- } catch (er) {
- console.log("not ok "+ (++i) + " - " + file)
- fail(file, er)
- }
- })
- if (!failures) return console.log("#all pass")
- else return console.error(failures + " failure" + (failures > 1 ? "s" : ""))
- })
-}
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-23.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-23.js
deleted file mode 100644
index e7991b2a622..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-23.js
+++ /dev/null
@@ -1,43 +0,0 @@
-
-require(__dirname).test
- ( { xml :
- "<compileClassesResponse>"+
- "<result>"+
- "<bodyCrc>653724009</bodyCrc>"+
- "<column>-1</column>"+
- "<id>01pG0000002KoSUIA0</id>"+
- "<line>-1</line>"+
- "<name>CalendarController</name>"+
- "<success>true</success>"+
- "</result>"+
- "</compileClassesResponse>"
-
- , expect :
- [ [ "opentag", { name: "COMPILECLASSESRESPONSE", attributes: {} } ]
- , [ "opentag", { name : "RESULT", attributes: {} } ]
- , [ "opentag", { name: "BODYCRC", attributes: {} } ]
- , [ "text", "653724009" ]
- , [ "closetag", "BODYCRC" ]
- , [ "opentag", { name: "COLUMN", attributes: {} } ]
- , [ "text", "-1" ]
- , [ "closetag", "COLUMN" ]
- , [ "opentag", { name: "ID", attributes: {} } ]
- , [ "text", "01pG0000002KoSUIA0" ]
- , [ "closetag", "ID" ]
- , [ "opentag", {name: "LINE", attributes: {} } ]
- , [ "text", "-1" ]
- , [ "closetag", "LINE" ]
- , [ "opentag", {name: "NAME", attributes: {} } ]
- , [ "text", "CalendarController" ]
- , [ "closetag", "NAME" ]
- , [ "opentag", {name: "SUCCESS", attributes: {} } ]
- , [ "text", "true" ]
- , [ "closetag", "SUCCESS" ]
- , [ "closetag", "RESULT" ]
- , [ "closetag", "COMPILECLASSESRESPONSE" ]
- ]
- , strict : false
- , opt : {}
- }
- )
-
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-30.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-30.js
deleted file mode 100644
index c2cc809ba05..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-30.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// https://github.com/isaacs/sax-js/issues/33
-require(__dirname).test
- ( { xml : "<xml>\n"+
- "<!-- \n"+
- " comment with a single dash- in it\n"+
- "-->\n"+
- "<data/>\n"+
- "</xml>"
-
- , expect :
- [ [ "opentag", { name: "xml", attributes: {} } ]
- , [ "text", "\n" ]
- , [ "comment", " \n comment with a single dash- in it\n" ]
- , [ "text", "\n" ]
- , [ "opentag", { name: "data", attributes: {} } ]
- , [ "closetag", "data" ]
- , [ "text", "\n" ]
- , [ "closetag", "xml" ]
- ]
- , strict : true
- , opt : {}
- }
- )
-
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-35.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-35.js
deleted file mode 100644
index 7c521c5e7f9..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-35.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// https://github.com/isaacs/sax-js/issues/35
-require(__dirname).test
- ( { xml : "<xml>&#Xd;&#X0d;\n"+
- "</xml>"
-
- , expect :
- [ [ "opentag", { name: "xml", attributes: {} } ]
- , [ "text", "\r\r\n" ]
- , [ "closetag", "xml" ]
- ]
- , strict : true
- , opt : {}
- }
- )
-
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-47.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-47.js
deleted file mode 100644
index 911c7d0302f..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-47.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// https://github.com/isaacs/sax-js/issues/47
-require(__dirname).test
- ( { xml : '<a href="query.svc?x=1&y=2&z=3"/>'
- , expect : [
- [ "attribute", { name:'href', value:"query.svc?x=1&y=2&z=3"} ],
- [ "opentag", { name: "a", attributes: { href:"query.svc?x=1&y=2&z=3"} } ],
- [ "closetag", "a" ]
- ]
- , strict : true
- , opt : {}
- }
- )
-
diff --git a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-49.js b/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-49.js
deleted file mode 100644
index 29643258f38..00000000000
--- a/deps/npm/test/packages/npm-test-optional-deps/node_modules/sax/test/issue-49.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// https://github.com/isaacs/sax-js/issues/49
-require(__dirname).test
- ( { xml : "<xml><script>hello world</script></xml>"
- , 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 : "<xml><script><![CDATA[hello world]]></script></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 e4a68b1e960..00000000000
--- 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(['<div>abcdefgh</div>'],
- [ ['opentag', { position: 5, startTagPosition: 1 }]
- , ['text', { position: 19, startTagPosition: 14 }]
- , ['closetag', { position: 19, startTagPosition: 14 }]
- ]);
-
-testPosition(['<div>abcde','fgh</div>'],
- [ ['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 464c051a154..00000000000
--- 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 : "<html><head><script>if (1 < 0) { console.log('elo there'); }</script></head></html>",
- 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 ce9c045154e..00000000000
--- 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 :
- "<root>"+
- "<child>" +
- "<haha />" +
- "</child>" +
- "<monkey>" +
- "=(|)" +
- "</monkey>" +
- "</root>",
- 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 bc6b52b8da3..00000000000
--- 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 :
- "<root>"+
- "<child>" +
- "<haha />" +
- "</child>" +
- "<monkey>" +
- "=(|)" +
- "</monkey>" +
- "</root>",
- 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 b2c57362985..00000000000
--- 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 :
- "<root> "+
- "<haha /> "+
- "<haha/> "+
- "<monkey> "+
- "=(|) "+
- "</monkey>"+
- "</root> ",
- 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 6b0aa7f3d80..00000000000
--- 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 :
- "<a><b></c></b></a>"
- , expect :
- [ [ "opentag", { name: "A", attributes: {} } ]
- , [ "opentag", { name: "B", attributes: {} } ]
- , [ "text", "</c>" ]
- , [ "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 3e1fb2ed5ce..00000000000
--- 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 : "<span>Welcome,</span> 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 79f1d0b06ce..00000000000
--- 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 :
- "<span class=test hello=world></span>"
- , 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 596d82b69a8..00000000000
--- 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.
- [ "<parent xmlns:a='http://ATTRIBUTE' a:attr='value' />"
- , "<parent a:attr='value' xmlns:a='http://ATTRIBUTE' />" ]
-
- , 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 f464876bebc..00000000000
--- 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 :
- "<root xmlns:x='x1' xmlns:y='y1' x:a='x1' y:a='y1'>"+
- "<rebind xmlns:x='x2'>"+
- "<check x:a='x2' y:a='y1'/>"+
- "</rebind>"+
- "<check x:a='x1' y:a='y1'/>"+
- "</root>"
-
- , 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 4ad615b227a..00000000000
--- 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 :
- "<root>"+
- "<plain attr='normal'/>"+
- "<ns1 xmlns='uri:default'>"+
- "<plain attr='normal'/>"+
- "</ns1>"+
- "<ns2 xmlns:a='uri:nsa'>"+
- "<plain attr='normal'/>"+
- "<a:ns a:attr='namespaced'/>"+
- "</ns2>"+
- "</root>"
-
- , 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 2944b87e82a..00000000000
--- 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("<root unbound:attr='value'/>")
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 16da771a580..00000000000
--- 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 : "<root xml:lang='en'/>"
- , 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 9a1ce1b3407..00000000000
--- 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 : "<xml:root/>"
- , 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 1eba9c71439..00000000000
--- 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 : "<xml:root xmlns:xml='ERROR'/>"
- , 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 2d26206d58c..00000000000
--- 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 57c8a18efab..00000000000
--- 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 80eed896787..00000000000
--- 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 `<script src="bundle.js"></script>` 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 9438be503db..00000000000
--- 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 ccafc0e167e..00000000000
--- 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 f93f7216aa1..00000000000
--- 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 5c14c5b12dd..00000000000
--- 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 ' + out.join(' ') + '>';
-};
-
-
-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 ' + out.join(' ') + '>';
-};
-
-
-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 fb295c0ab4a..00000000000
--- 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 bc9440a804f..00000000000
--- 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 5c9c0443bca..00000000000
--- 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 4c6ac07d288..00000000000
--- 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 65b3dba385b..00000000000
--- 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 839011fdd48..00000000000
--- 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 069ff0b83e4..00000000000
--- 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 <tj@vision-media.ca>
- * 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 4feb41045a4..00000000000
--- 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 262f93b78f1..00000000000
--- 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 65b3dba385b..00000000000
--- 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 a674e0f7ae7..00000000000
--- 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 d623925eb43..00000000000
--- 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 "<http://foo.com>"
- 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 e7bdad405e5..00000000000
--- 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 d5423e34a76..00000000000
--- 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 `<script>` tag yourself.
-
-If entry is an Array, concatenate these files together and append to the end of
-the bundle.
-
-b.filter(fn)
-------------
-
-Transform the source using the filter function `fn(src)`. The return value of
-`fn` should be the new source.
-
-b.register(ext, fn)
--------------------
-
-Register a handler to wrap extensions.
-
-Wrap every file matching the extension `ext` with the function `fn`.
-
-For every `file` included into the bundle `fn` gets called for matching file
-types as `fn.call(b, body, file)` for the bundle instance `b` and the file
-content string `body`. `fn` should return the new wrapped contents.
-
-If `ext` is unspecified, execute the wrapper for every file.
-
-If `ext` is 'post', execute the wrapper on the entire bundle.
-
-If `ext` is 'pre', call the wrapper function with the bundle object before the
-source is generated.
-
-If `ext` is an object, pull the extension from `ext.extension` and the wrapper
-function `fn` from `ext.wrapper`. This makes it easy to write plugins like
-[fileify](https://github.com/substack/node-fileify).
-
-Coffee script support is just implemented internally as a `.register()`
-extension:
-
-````javascript
-b.register('.coffee', function (body) {
- return coffee.compile(body);
-});
-````
-
-b.use(fn)
----------
-
-Use a middleware plugin, `fn`. `fn` is called with the instance object `b`.
-
-b.prepend(content)
-------------------
-
-Prepend unwrapped content to the beginning of the bundle.
-
-b.append(content)
------------------
-
-Append unwrapped content to the end of the bundle.
-
-b.alias(to, from)
------------------
-
-Alias a package name from another package name.
-
-b.modified
-----------
-
-Contains a Date object with the time the bundle was last modified. This field is
-useful in conjunction with the `watch` field described in the `browserify()` to
-generate unique `<script>` `src` values to force script reloading.
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/doc/recipes.markdown b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/doc/recipes.markdown
deleted file mode 100644
index b7da722b12d..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/doc/recipes.markdown
+++ /dev/null
@@ -1,62 +0,0 @@
-recipes
-=======
-
-Here are some recipe-style examples for getting started.
-
-use an npm module in the browser
-================================
-
-First install a module:
-
-```
-npm install traverse
-```
-
-Then write an `entry.js`:
-
-````javascript
-var traverse = require('traverse');
-var obj = traverse({ a : 3, b : [ 4, 5 ] }).map(function (x) {
- if (typeof x === 'number') this.update(x * 100)
-});
-console.dir(obj);
-````
-
-now bundle it!
-
-```
-$ browserify entry.js -o bundle.js
-```
-
-then put it in your html
-
-``` html
-<script src="bundle.js"></script>
-```
-
-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
-<script src="bundle.js"></script>
-<script>
- var traverse = require('traverse');
-</script>
-```
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 fd495dac290..00000000000
--- 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 17c69ac4c09..00000000000
--- 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 243ac26d6f2..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-build/index.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<html>
-<head>
- <script type="text/javascript" src="/browserify.js"></script>
-</head>
-<body>
- foo =
- <span style='font-family: monospace' id="result"></span>
-</body>
-</html>
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 7d6fd9ca270..00000000000
--- 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 adf3b4ba1c6..00000000000
--- 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 ca0bc13ef14..00000000000
--- 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 eea51eeebbe..00000000000
--- 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 243ac26d6f2..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/simple-middleware/index.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<html>
-<head>
- <script type="text/javascript" src="/browserify.js"></script>
-</head>
-<body>
- foo =
- <span style='font-family: monospace' id="result"></span>
-</body>
-</html>
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 7d6fd9ca270..00000000000
--- 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 adf3b4ba1c6..00000000000
--- 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 ca0bc13ef14..00000000000
--- 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 eb2b84b8961..00000000000
--- 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 08b05bf6dcd..00000000000
--- 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) {
- $('<div>')
- .text(buf)
- .appendTo($('#count'))
- ;
- });
-
- res.on('end', function () {
- $('<div>')
- .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 4bd3079162e..00000000000
--- 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) {
- $('<div>')
- .text(buf)
- .appendTo($('#count'))
- ;
- });
-
- res.on('end', function () {
- $('<div>')
- .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 9b55736bc93..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/example/using-http/index.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<html>
- <head>
- <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
- <script src="/bundle.js"></script>
- </head>
- <body>
- <div id="count"></div>
- </body>
-</html>
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 727910655c0..00000000000
--- 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 f53211b94ea..00000000000
--- 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 80b88746815..00000000000
--- 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 b14e7d8a06c..00000000000
--- 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 21e430d2ecd..00000000000
--- 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 faadabe5f68..00000000000
--- 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 dbe6b4e3b9a..00000000000
--- 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 69ee6f43c01..00000000000
--- 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 dfb85dabcaf..00000000000
--- 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 5965f4ee5d4..00000000000
--- 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 3d1d71c8c51..00000000000
--- 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 1190da529ef..00000000000
--- 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 825cbf3122e..00000000000
--- 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 1523418f12e..00000000000
--- 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 c43fa497ef1..00000000000
--- 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 e02da9fe6f5..00000000000
--- 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 56621388d39..00000000000
--- 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 b0a997b8d64..00000000000
--- 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 d344c41a25b..00000000000
--- 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 f80a443373d..00000000000
--- 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 799b68eb474..00000000000
--- 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 d7fda40a3f2..00000000000
--- 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 f0499038e74..00000000000
--- 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 b4a4765d3e2..00000000000
--- 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 d26133ca71c..00000000000
--- 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 3efc4ede671..00000000000
--- 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 0d90cc629ef..00000000000
--- 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 1326dc18366..00000000000
--- 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 715e280c37b..00000000000
--- 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 0a5e9cca881..00000000000
--- 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 fa77d0452a9..00000000000
--- 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 682e62c4b26..00000000000
--- 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 946026d1f36..00000000000
--- 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 02698cc77c2..00000000000
--- 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 9d55c6d7332..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/crypto-browserify/example/index.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!doctype html>
-<html>
-<script src=bundle.js></script>
-<body>
- <pre>
- require('crypto').createHash('sha1').update('abc').digest('hex') == '<span id=ans></span>'
- </pre>
-</body>
-<script>
- document.getElementById('ans').innerHTML = require('crypto').createHash('sha1').update('abc').digest('hex')
-</script>
-</html>
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 f1b0e4a9fc9..00000000000
--- 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 c1a77ad34e4..00000000000
--- 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 19938b60fd9..00000000000
--- 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 2234c531f39..00000000000
--- 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 2160788a15a..00000000000
--- 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 4f9cc3e97a0..00000000000
--- 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 2b0b994c95f..00000000000
--- 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 f1d0f13c8a5..00000000000
--- 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 72ca69f850d..00000000000
--- 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 8016b04b4b9..00000000000
--- 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 5dd71bb779c..00000000000
--- 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 9303c347ee6..00000000000
--- 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 69244ff8773..00000000000
--- 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 9303c347ee6..00000000000
--- 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 f1d0f13c8a5..00000000000
--- 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 432d1aeb01d..00000000000
--- 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 40de04f71e1..00000000000
--- 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 e6924212e6a..00000000000
--- 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 77414622120..00000000000
--- 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 81e7f431156..00000000000
--- 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 874b31095a8..00000000000
--- 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 68dca958f56..00000000000
--- 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 520dcb8e9b5..00000000000
--- 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 0eb70998700..00000000000
--- 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 b07cd70c109..00000000000
--- 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 23a7abbd232..00000000000
--- 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 f685f609069..00000000000
--- 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 96a04476365..00000000000
--- 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 79858243ab9..00000000000
--- 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 bce68e5613e..00000000000
--- 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 7c222d3558d..00000000000
--- 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 97ad7a2f358..00000000000
--- 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 7530cada84c..00000000000
--- 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 64ccafe22bc..00000000000
--- 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 35bd5cbbf41..00000000000
--- 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 af7b9998d50..00000000000
--- 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 436fe7c83be..00000000000
--- 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 f1d0f13c8a5..00000000000
--- 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 90ffa1ac29f..00000000000
--- 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 c176e7ffacf..00000000000
--- 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 88d0832762e..00000000000
--- 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 8df93583689..00000000000
--- 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 d97eaa09bfb..00000000000
--- 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 5f37ac0f0ca..00000000000
--- 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 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
-lang="en" xml:lang="en">
-<head>
-<title>UglifyJS &ndash; a JavaScript parser/compressor/beautifier</title>
-<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-<meta name="generator" content="Org-mode"/>
-<meta name="generated" content="2011-12-09 14:59:08 EET"/>
-<meta name="author" content="Mihai Bazon"/>
-<meta name="description" content="a JavaScript parser/compressor/beautifier in JavaScript"/>
-<meta name="keywords" content="javascript, js, parser, compiler, compressor, mangle, minify, minifier"/>
-<style type="text/css">
- <!--/*--><![CDATA[/*><!--*/
- html { font-family: Times, serif; font-size: 12pt; }
- .title { text-align: center; }
- .todo { color: red; }
- .done { color: green; }
- .tag { background-color: #add8e6; font-weight:normal }
- .target { }
- .timestamp { color: #bebebe; }
- .timestamp-kwd { color: #5f9ea0; }
- .right {margin-left:auto; margin-right:0px; text-align:right;}
- .left {margin-left:0px; margin-right:auto; text-align:left;}
- .center {margin-left:auto; margin-right:auto; text-align:center;}
- p.verse { margin-left: 3% }
- pre {
- border: 1pt solid #AEBDCC;
- background-color: #F3F5F7;
- padding: 5pt;
- font-family: courier, monospace;
- font-size: 90%;
- overflow:auto;
- }
- table { border-collapse: collapse; }
- td, th { vertical-align: top; }
- th.right { text-align:center; }
- th.left { text-align:center; }
- th.center { text-align:center; }
- td.right { text-align:right; }
- td.left { text-align:left; }
- td.center { text-align:center; }
- dt { font-weight: bold; }
- div.figure { padding: 0.5em; }
- div.figure p { text-align: center; }
- div.inlinetask {
- padding:10px;
- border:2px solid gray;
- margin:10px;
- background: #ffffcc;
- }
- textarea { overflow-x: auto; }
- .linenr { font-size:smaller }
- .code-highlighted {background-color:#ffff00;}
- .org-info-js_info-navigation { border-style:none; }
- #org-info-js_console-label { font-size:10px; font-weight:bold;
- white-space:nowrap; }
- .org-info-js_search-highlight {background-color:#ffff00; color:#000000;
- font-weight:bold; }
- /*]]>*/-->
-</style>
-<link rel="stylesheet" type="text/css" href="docstyle.css" />
-<script type="text/javascript">
-<!--/*--><![CDATA[/*><!--*/
- function CodeHighlightOn(elem, id)
- {
- var target = document.getElementById(id);
- if(null != target) {
- elem.cacheClassElem = elem.className;
- elem.cacheClassTarget = target.className;
- target.className = "code-highlighted";
- elem.className = "code-highlighted";
- }
- }
- function CodeHighlightOff(elem, id)
- {
- var target = document.getElementById(id);
- if(elem.cacheClassElem)
- elem.className = elem.cacheClassElem;
- if(elem.cacheClassTarget)
- target.className = elem.cacheClassTarget;
- }
-/*]]>*///-->
-</script>
-
-</head>
-<body>
-
-<div id="preamble">
-
-</div>
-
-<div id="content">
-<h1 class="title">UglifyJS &ndash; a JavaScript parser/compressor/beautifier</h1>
-
-
-<div id="table-of-contents">
-<h2>Table of Contents</h2>
-<div id="text-table-of-contents">
-<ul>
-<li><a href="#sec-1">1 UglifyJS &mdash; a JavaScript parser/compressor/beautifier </a>
-<ul>
-<li><a href="#sec-1-1">1.1 Unsafe transformations </a>
-<ul>
-<li><a href="#sec-1-1-1">1.1.1 Calls involving the global Array constructor </a></li>
-<li><a href="#sec-1-1-2">1.1.2 <code>obj.toString()</code> ==&gt; <code>obj+“”</code> </a></li>
-</ul>
-</li>
-<li><a href="#sec-1-2">1.2 Install (NPM) </a></li>
-<li><a href="#sec-1-3">1.3 Install latest code from GitHub </a></li>
-<li><a href="#sec-1-4">1.4 Usage </a>
-<ul>
-<li><a href="#sec-1-4-1">1.4.1 API </a></li>
-<li><a href="#sec-1-4-2">1.4.2 Beautifier shortcoming &ndash; no more comments </a></li>
-<li><a href="#sec-1-4-3">1.4.3 Use as a code pre-processor </a></li>
-</ul>
-</li>
-<li><a href="#sec-1-5">1.5 Compression &ndash; how good is it? </a></li>
-<li><a href="#sec-1-6">1.6 Bugs? </a></li>
-<li><a href="#sec-1-7">1.7 Links </a></li>
-<li><a href="#sec-1-8">1.8 License </a></li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-
-<div id="outline-container-1" class="outline-2">
-<h2 id="sec-1"><span class="section-number-2">1</span> UglifyJS &mdash; a JavaScript parser/compressor/beautifier </h2>
-<div class="outline-text-2" id="text-1">
-
-
-<p>
-This package implements a general-purpose JavaScript
-parser/compressor/beautifier toolkit. It is developed on <a href="http://nodejs.org/">NodeJS</a>, 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 <code>exports.*</code> lines from UglifyJS sources).
-</p>
-<p>
-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 <a href="../lib/parse-js.js">parse-js.js</a> and it's a
-port to JavaScript of the excellent <a href="http://marijn.haverbeke.nl/parse-js/">parse-js</a> Common Lisp library from <a href="http://marijn.haverbeke.nl/">Marijn Haverbeke</a>.
-</p>
-<p>
-( See <a href="http://github.com/mishoo/cl-uglify-js">cl-uglify-js</a> if you're looking for the Common Lisp version of
-UglifyJS. )
-</p>
-<p>
-The second part of this package, implemented in <a href="../lib/process.js">process.js</a>, inspects and
-manipulates the AST generated by the parser to provide the following:
-</p>
-<ul>
-<li>ability to re-generate JavaScript code from the AST. Optionally
- indented&mdash;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.
-
-</li>
-<li>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 <code>eval()</code> calls or <code>with{}</code> statements. In short, if <code>eval()</code> or
- <code>with{}</code> 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.
-
-</li>
-<li>various small optimizations that may lead to faster code but certainly
- lead to smaller code. Where possible, we do the following:
-
-<ul>
-<li>foo["bar"] ==&gt; foo.bar
-
-</li>
-<li>remove block brackets <code>{}</code>
-
-</li>
-<li>join consecutive var declarations:
- var a = 10; var b = 20; ==&gt; var a=10,b=20;
-
-</li>
-<li>resolve simple constant expressions: 1 +2 * 3 ==&gt; 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.
-
-</li>
-<li>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.
-
-</li>
-<li>various optimizations for IF statements:
-
-<ul>
-<li>if (foo) bar(); else baz(); ==&gt; foo?bar():baz();
-</li>
-<li>if (!foo) bar(); else baz(); ==&gt; foo?baz():bar();
-</li>
-<li>if (foo) bar(); ==&gt; foo&amp;&amp;bar();
-</li>
-<li>if (!foo) bar(); ==&gt; foo||bar();
-</li>
-<li>if (foo) return bar(); else return baz(); ==&gt; return foo?bar():baz();
-</li>
-<li>if (foo) return bar(); else something(); ==&gt; {if(foo)return bar();something()}
-
-</li>
-</ul>
-
-</li>
-<li>remove some unreachable code and warn about it (code that follows a
- <code>return</code>, <code>throw</code>, <code>break</code> or <code>continue</code> statement, except
- function/variable declarations).
-
-</li>
-<li>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.
-</li>
-</ul>
-
-</li>
-</ul>
-
-
-
-</div>
-
-<div id="outline-container-1-1" class="outline-3">
-<h3 id="sec-1-1"><span class="section-number-3">1.1</span> <span class="target">Unsafe transformations</span> </h3>
-<div class="outline-text-3" id="text-1-1">
-
-
-<p>
-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
-<code>--unsafe</code> flag.
-</p>
-
-</div>
-
-<div id="outline-container-1-1-1" class="outline-4">
-<h4 id="sec-1-1-1"><span class="section-number-4">1.1.1</span> Calls involving the global Array constructor </h4>
-<div class="outline-text-4" id="text-1-1-1">
-
-
-<p>
-The following transformations occur:
-</p>
-
-
-
-<pre class="src src-js"><span class="org-keyword">new</span> <span class="org-type">Array</span>(1, 2, 3, 4) =&gt; [1,2,3,4]
-Array(a, b, c) =&gt; [a,b,c]
-<span class="org-keyword">new</span> <span class="org-type">Array</span>(5) =&gt; Array(5)
-<span class="org-keyword">new</span> <span class="org-type">Array</span>(a) =&gt; Array(a)
-</pre>
-
-
-<p>
-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.
-</p>
-<p>
-UglifyJS does handle the case where Array is redefined locally, or even
-globally but with a <code>function</code> or <code>var</code> declaration. Therefore, in the
-following cases UglifyJS <b>doesn't touch</b> calls or instantiations of Array:
-</p>
-
-
-
-<pre class="src src-js"><span class="org-comment-delimiter">// </span><span class="org-comment">case 1. globally declared variable</span>
- <span class="org-keyword">var</span> <span class="org-variable-name">Array</span>;
- <span class="org-keyword">new</span> <span class="org-type">Array</span>(1, 2, 3);
- Array(a, b);
-
- <span class="org-comment-delimiter">// </span><span class="org-comment">or (can be declared later)</span>
- <span class="org-keyword">new</span> <span class="org-type">Array</span>(1, 2, 3);
- <span class="org-keyword">var</span> <span class="org-variable-name">Array</span>;
-
- <span class="org-comment-delimiter">// </span><span class="org-comment">or (can be a function)</span>
- <span class="org-keyword">new</span> <span class="org-type">Array</span>(1, 2, 3);
- <span class="org-keyword">function</span> <span class="org-function-name">Array</span>() { ... }
-
-<span class="org-comment-delimiter">// </span><span class="org-comment">case 2. declared in a function</span>
- (<span class="org-keyword">function</span>(){
- a = <span class="org-keyword">new</span> <span class="org-type">Array</span>(1, 2, 3);
- b = Array(5, 6);
- <span class="org-keyword">var</span> <span class="org-variable-name">Array</span>;
- })();
-
- <span class="org-comment-delimiter">// </span><span class="org-comment">or</span>
- (<span class="org-keyword">function</span>(<span class="org-variable-name">Array</span>){
- <span class="org-keyword">return</span> Array(5, 6, 7);
- })();
-
- <span class="org-comment-delimiter">// </span><span class="org-comment">or</span>
- (<span class="org-keyword">function</span>(){
- <span class="org-keyword">return</span> <span class="org-keyword">new</span> <span class="org-type">Array</span>(1, 2, 3, 4);
- <span class="org-keyword">function</span> <span class="org-function-name">Array</span>() { ... }
- })();
-
- <span class="org-comment-delimiter">// </span><span class="org-comment">etc.</span>
-</pre>
-
-
-</div>
-
-</div>
-
-<div id="outline-container-1-1-2" class="outline-4">
-<h4 id="sec-1-1-2"><span class="section-number-4">1.1.2</span> <code>obj.toString()</code> ==&gt; <code>obj+“”</code> </h4>
-<div class="outline-text-4" id="text-1-1-2">
-
-
-</div>
-</div>
-
-</div>
-
-<div id="outline-container-1-2" class="outline-3">
-<h3 id="sec-1-2"><span class="section-number-3">1.2</span> Install (NPM) </h3>
-<div class="outline-text-3" id="text-1-2">
-
-
-<p>
-UglifyJS is now available through NPM &mdash; <code>npm install uglify-js</code> should do
-the job.
-</p>
-</div>
-
-</div>
-
-<div id="outline-container-1-3" class="outline-3">
-<h3 id="sec-1-3"><span class="section-number-3">1.3</span> Install latest code from GitHub </h3>
-<div class="outline-text-3" id="text-1-3">
-
-
-
-
-
-<pre class="src src-sh"><span class="org-comment-delimiter">## </span><span class="org-comment">clone the repository</span>
-mkdir -p /where/you/wanna/put/it
-<span class="org-builtin">cd</span> /where/you/wanna/put/it
-git clone git://github.com/mishoo/UglifyJS.git
-
-<span class="org-comment-delimiter">## </span><span class="org-comment">make the module available to Node</span>
-mkdir -p ~/.node_libraries/
-<span class="org-builtin">cd</span> ~/.node_libraries/
-ln -s /where/you/wanna/put/it/UglifyJS/uglify-js.js
-
-<span class="org-comment-delimiter">## </span><span class="org-comment">and if you want the CLI script too:</span>
-mkdir -p ~/bin
-<span class="org-builtin">cd</span> ~/bin
-ln -s /where/you/wanna/put/it/UglifyJS/bin/uglifyjs
- <span class="org-comment-delimiter"># </span><span class="org-comment">(then add ~/bin to your $PATH if it's not there already)</span>
-</pre>
-
-
-</div>
-
-</div>
-
-<div id="outline-container-1-4" class="outline-3">
-<h3 id="sec-1-4"><span class="section-number-3">1.4</span> Usage </h3>
-<div class="outline-text-3" id="text-1-4">
-
-
-<p>
-There is a command-line tool that exposes the functionality of this library
-for your shell-scripting needs:
-</p>
-
-
-
-<pre class="src src-sh">uglifyjs [ options... ] [ filename ]
-</pre>
-
-
-<p>
-<code>filename</code> 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.
-</p>
-<p>
-Supported options:
-</p>
-<ul>
-<li><code>-b</code> or <code>--beautify</code> &mdash; output indented code; when passed, additional
- options control the beautifier:
-
-<ul>
-<li><code>-i N</code> or <code>--indent N</code> &mdash; indentation level (number of spaces)
-
-</li>
-<li><code>-q</code> or <code>--quote-keys</code> &mdash; quote keys in literal objects (by default,
- only keys that cannot be identifier names will be quotes).
-
-</li>
-</ul>
-
-</li>
-<li><code>--ascii</code> &mdash; pass this argument to encode non-ASCII characters as
- <code>\uXXXX</code> 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).
-
-</li>
-<li><code>-nm</code> or <code>--no-mangle</code> &mdash; don't mangle names.
-
-</li>
-<li><code>-nmf</code> or <code>--no-mangle-functions</code> &ndash; in case you want to mangle variable
- names, but not touch function names.
-
-</li>
-<li><code>-ns</code> or <code>--no-squeeze</code> &mdash; don't call <code>ast_squeeze()</code> (which does various
- optimizations that result in smaller, less readable code).
-
-</li>
-<li><code>-mt</code> or <code>--mangle-toplevel</code> &mdash; mangle names in the toplevel scope too
- (by default we don't do this).
-
-</li>
-<li><code>--no-seqs</code> &mdash; when <code>ast_squeeze()</code> is called (thus, unless you pass
- <code>--no-squeeze</code>) 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 <code>--no-seqs</code> to disable it.
-
-</li>
-<li><code>--no-dead-code</code> &mdash; by default, UglifyJS will remove code that is
- obviously unreachable (code that follows a <code>return</code>, <code>throw</code>, <code>break</code> or
- <code>continue</code> statement and is not a function/variable declaration). Pass
- this option to disable this optimization.
-
-</li>
-<li><code>-nc</code> or <code>--no-copyright</code> &mdash; by default, <code>uglifyjs</code> will keep the initial
- comment tokens in the generated code (assumed to be copyright information
- etc.). If you pass this it will discard it.
-
-</li>
-<li><code>-o filename</code> or <code>--output filename</code> &mdash; put the result in <code>filename</code>. If
- this isn't given, the result goes to standard output (or see next one).
-
-</li>
-<li><code>--overwrite</code> &mdash; if the code is read from a file (not from STDIN) and you
- pass <code>--overwrite</code> then the output will be written in the same file.
-
-</li>
-<li><code>--ast</code> &mdash; 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.
-
-</li>
-<li><code>-v</code> or <code>--verbose</code> &mdash; output some notes on STDERR (for now just how long
- each operation takes).
-
-</li>
-<li><code>-d SYMBOL[=VALUE]</code> or <code>--define SYMBOL[=VALUE]</code> &mdash; 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 <code>true</code>, or you can specify a numeric value (such as
- <code>1024</code>), a quoted string value (such as ="object"= or
- ='https://github.com'<code>), or the name of another symbol or keyword (such as =null</code> or <code>document</code>).
- 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 <b>conditional compilation</b>
- 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
- <code>--define-from-module</code> more suitable for use.
-
-</li>
-<li><code>-define-from-module SOMEMODULE</code> &mdash; will load the named module (as
- per the NodeJS <code>require()</code> function) and iterate all the exported
- properties of the module defining them as symbol names to be defined
- (as if by the <code>--define</code> 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 <code>--define</code>
- options.
-
-</li>
-<li><code>--unsafe</code> &mdash; enable other additional optimizations that are known to be
- unsafe in some contrived situations, but could still be generally useful.
- For now only these:
-
-<ul>
-<li>foo.toString() ==&gt; foo+""
-</li>
-<li>new Array(x,&hellip;) ==&gt; [x,&hellip;]
-</li>
-<li>new Array(x) ==&gt; Array(x)
-
-</li>
-</ul>
-
-</li>
-<li><code>--max-line-len</code> (default 32K characters) &mdash; 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 &ndash;max-line-len 0 to disable this
- safety feature.
-
-</li>
-<li><code>--reserved-names</code> &mdash; 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 <code>require</code> and <code>$super</code>
- intact you'd specify &ndash;reserved-names "require,$super".
-
-</li>
-<li><code>--inline-script</code> &ndash; when you want to include the output literally in an
- HTML <code>&lt;script&gt;</code> tag you can use this option to prevent <code>&lt;/script</code> from
- showing up in the output.
-
-</li>
-<li><code>--lift-vars</code> &ndash; when you pass this, UglifyJS will apply the following
- transformations (see the notes in API, <code>ast_lift_variables</code>):
-
-<ul>
-<li>put all <code>var</code> declarations at the start of the scope
-</li>
-<li>make sure a variable is declared only once
-</li>
-<li>discard unused function arguments
-</li>
-<li>discard unused inner (named) functions
-</li>
-<li>finally, try to merge assignments into that one <code>var</code> declaration, if
- possible.
-</li>
-</ul>
-
-</li>
-</ul>
-
-
-
-</div>
-
-<div id="outline-container-1-4-1" class="outline-4">
-<h4 id="sec-1-4-1"><span class="section-number-4">1.4.1</span> API </h4>
-<div class="outline-text-4" id="text-1-4-1">
-
-
-<p>
-To use the library from JavaScript, you'd do the following (example for
-NodeJS):
-</p>
-
-
-
-<pre class="src src-js"><span class="org-keyword">var</span> <span class="org-variable-name">jsp</span> = require(<span class="org-string">"uglify-js"</span>).parser;
-<span class="org-keyword">var</span> <span class="org-variable-name">pro</span> = require(<span class="org-string">"uglify-js"</span>).uglify;
-
-<span class="org-keyword">var</span> <span class="org-variable-name">orig_code</span> = <span class="org-string">"... JS code here"</span>;
-<span class="org-keyword">var</span> <span class="org-variable-name">ast</span> = jsp.parse(orig_code); <span class="org-comment-delimiter">// </span><span class="org-comment">parse code and get the initial AST</span>
-ast = pro.ast_mangle(ast); <span class="org-comment-delimiter">// </span><span class="org-comment">get a new AST with mangled names</span>
-ast = pro.ast_squeeze(ast); <span class="org-comment-delimiter">// </span><span class="org-comment">get an AST with compression optimizations</span>
-<span class="org-keyword">var</span> <span class="org-variable-name">final_code</span> = pro.gen_code(ast); <span class="org-comment-delimiter">// </span><span class="org-comment">compressed code here</span>
-</pre>
-
-
-<p>
-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
-<code>pro.ast_mangle(ast)</code>.
-</p>
-<p>
-Some of these functions take optional arguments. Here's a description:
-</p>
-<ul>
-<li><code>jsp.parse(code, strict_semicolons)</code> &ndash; parses JS code and returns an AST.
- <code>strict_semicolons</code> is optional and defaults to <code>false</code>. If you pass
- <code>true</code> 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.
-
-</li>
-<li><code>pro.ast_lift_variables(ast)</code> &ndash; merge and move <code>var</code> 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 <code>var</code> declaration into it.
-
-<p>
- If your code is very hand-optimized concerning <code>var</code> 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!).
-</p>
-<p>
- 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.
-</p>
-<p>
- Here's an example of what it does:
-</p></li>
-</ul>
-
-
-
-
-
-<pre class="src src-js"><span class="org-keyword">function</span> <span class="org-function-name">f</span>(<span class="org-variable-name">a</span>, <span class="org-variable-name">b</span>, <span class="org-variable-name">c</span>, <span class="org-variable-name">d</span>, <span class="org-variable-name">e</span>) {
- <span class="org-keyword">var</span> <span class="org-variable-name">q</span>;
- <span class="org-keyword">var</span> <span class="org-variable-name">w</span>;
- w = 10;
- q = 20;
- <span class="org-keyword">for</span> (<span class="org-keyword">var</span> <span class="org-variable-name">i</span> = 1; i &lt; 10; ++i) {
- <span class="org-keyword">var</span> <span class="org-variable-name">boo</span> = foo(a);
- }
- <span class="org-keyword">for</span> (<span class="org-keyword">var</span> <span class="org-variable-name">i</span> = 0; i &lt; 1; ++i) {
- <span class="org-keyword">var</span> <span class="org-variable-name">boo</span> = bar(c);
- }
- <span class="org-keyword">function</span> <span class="org-function-name">foo</span>(){ ... }
- <span class="org-keyword">function</span> <span class="org-function-name">bar</span>(){ ... }
- <span class="org-keyword">function</span> <span class="org-function-name">baz</span>(){ ... }
-}
-
-<span class="org-comment-delimiter">// </span><span class="org-comment">transforms into ==&gt;</span>
-
-<span class="org-keyword">function</span> <span class="org-function-name">f</span>(<span class="org-variable-name">a</span>, <span class="org-variable-name">b</span>, <span class="org-variable-name">c</span>) {
- <span class="org-keyword">var</span> <span class="org-variable-name">i</span>, <span class="org-variable-name">boo</span>, <span class="org-variable-name">w</span> = 10, <span class="org-variable-name">q</span> = 20;
- <span class="org-keyword">for</span> (i = 1; i &lt; 10; ++i) {
- boo = foo(a);
- }
- <span class="org-keyword">for</span> (i = 0; i &lt; 1; ++i) {
- boo = bar(c);
- }
- <span class="org-keyword">function</span> <span class="org-function-name">foo</span>() { ... }
- <span class="org-keyword">function</span> <span class="org-function-name">bar</span>() { ... }
-}
-</pre>
-
-
-<ul>
-<li><code>pro.ast_mangle(ast, options)</code> &ndash; generates a new AST containing mangled
- (compressed) variable and function names. It supports the following
- options:
-
-<ul>
-<li><code>toplevel</code> &ndash; mangle toplevel names (by default we don't touch them).
-</li>
-<li><code>except</code> &ndash; an array of names to exclude from compression.
-</li>
-<li><code>defines</code> &ndash; an object with properties named after symbols to
- replace (see the <code>--define</code> option for the script) and the values
- representing the AST replacement value.
-
-</li>
-</ul>
-
-</li>
-<li><code>pro.ast_squeeze(ast, options)</code> &ndash; employs further optimizations designed
- to reduce the size of the code that <code>gen_code</code> would generate from the
- AST. Returns a new AST. <code>options</code> can be a hash; the supported options
- are:
-
-<ul>
-<li><code>make_seqs</code> (default true) which will cause consecutive statements in a
- block to be merged using the "sequence" (comma) operator
-
-</li>
-<li><code>dead_code</code> (default true) which will remove unreachable code.
-
-</li>
-</ul>
-
-</li>
-<li><code>pro.gen_code(ast, options)</code> &ndash; generates JS code from the AST. By
- default it's minified, but using the <code>options</code> argument you can get nicely
- formatted output. <code>options</code> 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):
-
-<ul>
-<li><code>beautify: false</code> &ndash; pass <code>true</code> if you want indented output
-</li>
-<li><code>indent_start: 0</code> (only applies when <code>beautify</code> is <code>true</code>) &ndash; initial
- indentation in spaces
-</li>
-<li><code>indent_level: 4</code> (only applies when <code>beautify</code> is <code>true</code>) --
- indentation level, in spaces (pass an even number)
-</li>
-<li><code>quote_keys: false</code> &ndash; if you pass <code>true</code> it will quote all keys in
- literal objects
-</li>
-<li><code>space_colon: false</code> (only applies when <code>beautify</code> is <code>true</code>) &ndash; wether
- to put a space before the colon in object literals
-</li>
-<li><code>ascii_only: false</code> &ndash; pass <code>true</code> if you want to encode non-ASCII
- characters as <code>\uXXXX</code>.
-</li>
-<li><code>inline_script: false</code> &ndash; pass <code>true</code> to escape occurrences of
- <code>&lt;/script</code> in strings
-</li>
-</ul>
-
-</li>
-</ul>
-
-
-</div>
-
-</div>
-
-<div id="outline-container-1-4-2" class="outline-4">
-<h4 id="sec-1-4-2"><span class="section-number-4">1.4.2</span> Beautifier shortcoming &ndash; no more comments </h4>
-<div class="outline-text-4" id="text-1-4-2">
-
-
-<p>
-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.
-</p>
-<p>
-In fact it's not the beautifier who discards comments &mdash; 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.
-</p>
-</div>
-
-</div>
-
-<div id="outline-container-1-4-3" class="outline-4">
-<h4 id="sec-1-4-3"><span class="section-number-4">1.4.3</span> Use as a code pre-processor </h4>
-<div class="outline-text-4" id="text-1-4-3">
-
-
-<p>
-The <code>--define</code> 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.
-</p>
-<p>
-The code below illustrates the way this can be done, and how the
-symbol replacement is performed.
-</p>
-
-
-
-<pre class="src src-js">CLAUSE1: <span class="org-keyword">if</span> (<span class="org-keyword">typeof</span> DEVMODE === <span class="org-string">'undefined'</span>) {
- DEVMODE = <span class="org-constant">true</span>;
-}
-
-<span class="org-function-name">CLAUSE2</span>: <span class="org-keyword">function</span> init() {
- <span class="org-keyword">if</span> (DEVMODE) {
- console.log(<span class="org-string">"init() called"</span>);
- }
- ....
- DEVMODE &amp;amp;&amp;amp; console.log(<span class="org-string">"init() complete"</span>);
-}
-
-<span class="org-function-name">CLAUSE3</span>: <span class="org-keyword">function</span> reportDeviceStatus(<span class="org-variable-name">device</span>) {
- <span class="org-keyword">var</span> <span class="org-variable-name">DEVMODE</span> = device.mode, <span class="org-variable-name">DEVNAME</span> = device.name;
- <span class="org-keyword">if</span> (DEVMODE === <span class="org-string">'open'</span>) {
- ....
- }
-}
-</pre>
-
-
-<p>
-When the above code is normally executed, the undeclared global
-variable <code>DEVMODE</code> will be assigned the value <b>true</b> (see <code>CLAUSE1</code>)
-and so the <code>init()</code> function (<code>CLAUSE2</code>) will write messages to the
-console log when executed, but in <code>CLAUSE3</code> a locally declared
-variable will mask access to the <code>DEVMODE</code> global symbol.
-</p>
-<p>
-If the above code is processed by UglifyJS with an argument of
-<code>--define DEVMODE=false</code> then UglifyJS will replace <code>DEVMODE</code> with the
-boolean constant value <b>false</b> within <code>CLAUSE1</code> and <code>CLAUSE2</code>, but it
-will leave <code>CLAUSE3</code> as it stands because there <code>DEVMODE</code> resolves to
-a validly declared variable.
-</p>
-<p>
-And more so, the constant-folding features of UglifyJS will recognise
-that the <code>if</code> condition of <code>CLAUSE1</code> is thus always false, and so will
-remove the test and body of <code>CLAUSE1</code> altogether (including the
-otherwise slightly problematical statement <code>false = true;</code> which it
-will have formed by replacing <code>DEVMODE</code> in the body). Similarly,
-within <code>CLAUSE2</code> both calls to <code>console.log()</code> will be removed
-altogether.
-</p>
-<p>
-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
-</p>
-<p>
-It is recommmended (but not made mandatory) that symbols designed for
-this purpose are given names consisting of <code>UPPER_CASE_LETTERS</code> to
-distinguish them from other (normal) symbols and avoid the sort of
-clash that <code>CLAUSE3</code> above illustrates.
-</p>
-</div>
-</div>
-
-</div>
-
-<div id="outline-container-1-5" class="outline-3">
-<h3 id="sec-1-5"><span class="section-number-3">1.5</span> Compression &ndash; how good is it? </h3>
-<div class="outline-text-3" id="text-1-5">
-
-
-<p>
-Here are updated statistics. (I also updated my Google Closure and YUI
-installations).
-</p>
-<p>
-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.
-</p>
-<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
-<caption></caption>
-<colgroup><col class="left" /><col class="left" /><col class="right" /><col class="left" /><col class="right" /><col class="left" /><col class="right" />
-</colgroup>
-<thead>
-<tr><th scope="col" class="left">File</th><th scope="col" class="left">UglifyJS</th><th scope="col" class="right">UglifyJS+gzip</th><th scope="col" class="left">Closure</th><th scope="col" class="right">Closure+gzip</th><th scope="col" class="left">YUI</th><th scope="col" class="right">YUI+gzip</th></tr>
-</thead>
-<tbody>
-<tr><td class="left">jquery-1.6.2.js</td><td class="left">91001 (0:01.59)</td><td class="right">31896</td><td class="left">90678 (0:07.40)</td><td class="right">31979</td><td class="left">101527 (0:01.82)</td><td class="right">34646</td></tr>
-<tr><td class="left">paper.js</td><td class="left">142023 (0:01.65)</td><td class="right">43334</td><td class="left">134301 (0:07.42)</td><td class="right">42495</td><td class="left">173383 (0:01.58)</td><td class="right">48785</td></tr>
-<tr><td class="left">prototype.js</td><td class="left">88544 (0:01.09)</td><td class="right">26680</td><td class="left">86955 (0:06.97)</td><td class="right">26326</td><td class="left">92130 (0:00.79)</td><td class="right">28624</td></tr>
-<tr><td class="left">thelib-full.js (DynarchLIB)</td><td class="left">251939 (0:02.55)</td><td class="right">72535</td><td class="left">249911 (0:09.05)</td><td class="right">72696</td><td class="left">258869 (0:01.94)</td><td class="right">76584</td></tr>
-</tbody>
-</table>
-
-
-</div>
-
-</div>
-
-<div id="outline-container-1-6" class="outline-3">
-<h3 id="sec-1-6"><span class="section-number-3">1.6</span> Bugs? </h3>
-<div class="outline-text-3" id="text-1-6">
-
-
-<p>
-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.
-</p>
-<p>
-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 hacks<sup><a class="footref" name="fnr.1" href="#fn.1">1</a></sup> such as “foo == bar ? a
-= 10 : b = 20”, though the more readable version would clearly be to use
-“if/else”.
-</p>
-<p>
-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 (<a href="http://groups.google.com/group/uglifyjs">use the Google Group</a> or email me directly).
-</p>
-</div>
-
-</div>
-
-<div id="outline-container-1-7" class="outline-3">
-<h3 id="sec-1-7"><span class="section-number-3">1.7</span> Links </h3>
-<div class="outline-text-3" id="text-1-7">
-
-
-<ul>
-<li>Twitter: <a href="http://twitter.com/UglifyJS">@UglifyJS</a>
-</li>
-<li>Project at GitHub: <a href="http://github.com/mishoo/UglifyJS">http://github.com/mishoo/UglifyJS</a>
-</li>
-<li>Google Group: <a href="http://groups.google.com/group/uglifyjs">http://groups.google.com/group/uglifyjs</a>
-</li>
-<li>Common Lisp JS parser: <a href="http://marijn.haverbeke.nl/parse-js/">http://marijn.haverbeke.nl/parse-js/</a>
-</li>
-<li>JS-to-Lisp compiler: <a href="http://github.com/marijnh/js">http://github.com/marijnh/js</a>
-</li>
-<li>Common Lisp JS uglifier: <a href="http://github.com/mishoo/cl-uglify-js">http://github.com/mishoo/cl-uglify-js</a>
-</li>
-</ul>
-
-
-</div>
-
-</div>
-
-<div id="outline-container-1-8" class="outline-3">
-<h3 id="sec-1-8"><span class="section-number-3">1.8</span> License </h3>
-<div class="outline-text-3" id="text-1-8">
-
-
-<p>
-UglifyJS is released under the BSD license:
-</p>
-
-
-
-<pre class="example">Copyright 2010 (c) Mihai Bazon &lt;mihai.bazon@gmail.com&gt;
-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.
-</pre>
-
-
-<div id="footnotes">
-<h2 class="footnotes">Footnotes: </h2>
-<div id="text-footnotes">
-<p class="footnote"><sup><a class="footnum" name="fn.1" href="#fnr.1">1</a></sup> I even reported a few bugs and suggested some fixes in the original
- <a href="http://marijn.haverbeke.nl/parse-js/">parse-js</a> library, and Marijn pushed fixes literally in minutes.
-</p></div>
-</div>
-</div>
-
-</div>
-</div>
-</div>
-
-<div id="postamble">
-<p class="date">Date: 2011-12-09 14:59:08 EET</p>
-<p class="author">Author: Mihai Bazon</p>
-<p class="creator">Org version 7.7 with Emacs version 23</p>
-<a href="http://validator.w3.org/check?uri=referer">Validate XHTML 1.0</a>
-
-</div>
-</body>
-</html>
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 d36b6b26f01..00000000000
--- 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: <link rel="stylesheet" type="text/css" href="docstyle.css" />
-#+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.
-
-** <<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.
-
-*** 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 =<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.
-
-*** API
-
-To use the library from JavaScript, you'd do the following (example for
-NodeJS):
-
-#+BEGIN_SRC js
-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
-#+END_SRC
-
-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:
-
-#+BEGIN_SRC js
-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() { ... }
-}
-#+END_SRC
-
-- =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
-
-*** 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.
-
-*** 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.
-
-#+BEGIN_SRC js
-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') {
- ....
- }
-}
-#+END_SRC
-
-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.
-
-** 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.
-
-| File | UglifyJS | UglifyJS+gzip | Closure | Closure+gzip | YUI | YUI+gzip |
-|-----------------------------+------------------+---------------+------------------+--------------+------------------+----------|
-| jquery-1.6.2.js | 91001 (0:01.59) | 31896 | 90678 (0:07.40) | 31979 | 101527 (0:01.82) | 34646 |
-| paper.js | 142023 (0:01.65) | 43334 | 134301 (0:07.42) | 42495 | 173383 (0:01.58) | 48785 |
-| prototype.js | 88544 (0:01.09) | 26680 | 86955 (0:06.97) | 26326 | 92130 (0:00.79) | 28624 |
-| thelib-full.js (DynarchLIB) | 251939 (0:02.55) | 72535 | 249911 (0:09.05) | 72696 | 258869 (0:01.94) | 76584 |
-
-** 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 hacks[1] 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 ([[http://groups.google.com/group/uglifyjs][use the Google Group]] or email me directly).
-
-[1] I even reported a few bugs and suggested some fixes in the original
- [[http://marijn.haverbeke.nl/parse-js/][parse-js]] library, and Marijn pushed fixes literally in minutes.
-
-** Links
-
-- Twitter: [[http://twitter.com/UglifyJS][@UglifyJS]]
-- Project at GitHub: [[http://github.com/mishoo/UglifyJS][http://github.com/mishoo/UglifyJS]]
-- Google Group: [[http://groups.google.com/group/uglifyjs][http://groups.google.com/group/uglifyjs]]
-- Common Lisp JS parser: [[http://marijn.haverbeke.nl/parse-js/][http://marijn.haverbeke.nl/parse-js/]]
-- JS-to-Lisp compiler: [[http://github.com/marijnh/js][http://github.com/marijnh/js]]
-- Common Lisp JS uglifier: [[http://github.com/mishoo/cl-uglify-js][http://github.com/mishoo/cl-uglify-js]]
-
-** License
-
-UglifyJS is released under the BSD license:
-
-#+BEGIN_EXAMPLE
-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.
-#+END_EXAMPLE
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/bin/uglifyjs b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/bin/uglifyjs
deleted file mode 100755
index df5201daaeb..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/bin/uglifyjs
+++ /dev/null
@@ -1,332 +0,0 @@
-#!/usr/bin/env node
-// -*- js -*-
-
-global.sys = require(/^v0\.[012]/.test(process.version) ? "sys" : "util");
-var fs = require("fs");
-var uglify = require("uglify-js"), // symlink ~/.node_libraries/uglify-js.js to ../uglify-js.js
- consolidator = uglify.consolidator,
- jsp = uglify.parser,
- pro = uglify.uglify;
-
-var options = {
- ast: false,
- consolidate: false,
- mangle: true,
- mangle_toplevel: false,
- no_mangle_functions: false,
- squeeze: true,
- make_seqs: true,
- dead_code: true,
- verbose: false,
- show_copyright: true,
- out_same_file: false,
- max_line_length: 32 * 1024,
- unsafe: false,
- reserved_names: null,
- defines: { },
- lift_vars: false,
- codegen_options: {
- ascii_only: false,
- beautify: false,
- indent_level: 4,
- indent_start: 0,
- quote_keys: false,
- space_colon: false,
- inline_script: false
- },
- make: false,
- output: true // stdout
-};
-
-var args = jsp.slice(process.argv, 2);
-var filename;
-
-out: while (args.length > 0) {
- var v = args.shift();
- switch (v) {
- case "-b":
- case "--beautify":
- options.codegen_options.beautify = true;
- break;
- case "-c":
- case "--consolidate-primitive-values":
- options.consolidate = true;
- break;
- case "-i":
- case "--indent":
- options.codegen_options.indent_level = args.shift();
- break;
- case "-q":
- case "--quote-keys":
- options.codegen_options.quote_keys = true;
- break;
- case "-mt":
- case "--mangle-toplevel":
- options.mangle_toplevel = true;
- break;
- case "-nmf":
- case "--no-mangle-functions":
- options.no_mangle_functions = true;
- break;
- case "--no-mangle":
- case "-nm":
- options.mangle = false;
- break;
- case "--no-squeeze":
- case "-ns":
- options.squeeze = false;
- break;
- case "--no-seqs":
- options.make_seqs = false;
- break;
- case "--no-dead-code":
- options.dead_code = false;
- break;
- case "--no-copyright":
- case "-nc":
- options.show_copyright = false;
- break;
- case "-o":
- case "--output":
- options.output = args.shift();
- break;
- case "--overwrite":
- options.out_same_file = true;
- break;
- case "-v":
- case "--verbose":
- options.verbose = true;
- break;
- case "--ast":
- options.ast = true;
- break;
- case "--unsafe":
- options.unsafe = true;
- break;
- case "--max-line-len":
- options.max_line_length = parseInt(args.shift(), 10);
- break;
- case "--reserved-names":
- options.reserved_names = args.shift().split(",");
- break;
- case "--lift-vars":
- options.lift_vars = true;
- break;
- case "-d":
- case "--define":
- var defarg = args.shift();
- try {
- var defsym = function(sym) {
- // KEYWORDS_ATOM doesn't include NaN or Infinity - should we check
- // for them too ?? We don't check reserved words and the like as the
- // define values are only substituted AFTER parsing
- if (jsp.KEYWORDS_ATOM.hasOwnProperty(sym)) {
- throw "Don't define values for inbuilt constant '"+sym+"'";
- }
- return sym;
- },
- defval = function(v) {
- if (v.match(/^"(.*)"$/) || v.match(/^'(.*)'$/)) {
- return [ "string", RegExp.$1 ];
- }
- else if (!isNaN(parseFloat(v))) {
- return [ "num", parseFloat(v) ];
- }
- else if (v.match(/^[a-z\$_][a-z\$_0-9]*$/i)) {
- return [ "name", v ];
- }
- else if (!v.match(/"/)) {
- return [ "string", v ];
- }
- else if (!v.match(/'/)) {
- return [ "string", v ];
- }
- throw "Can't understand the specified value: "+v;
- };
- if (defarg.match(/^([a-z_\$][a-z_\$0-9]*)(=(.*))?$/i)) {
- var sym = defsym(RegExp.$1),
- val = RegExp.$2 ? defval(RegExp.$2.substr(1)) : [ 'name', 'true' ];
- options.defines[sym] = val;
- }
- else {
- throw "The --define option expects SYMBOL[=value]";
- }
- } catch(ex) {
- sys.print("ERROR: In option --define "+defarg+"\n"+ex+"\n");
- process.exit(1);
- }
- break;
- case "--define-from-module":
- var defmodarg = args.shift(),
- defmodule = require(defmodarg),
- sym,
- val;
- for (sym in defmodule) {
- if (defmodule.hasOwnProperty(sym)) {
- options.defines[sym] = function(val) {
- if (typeof val == "string")
- return [ "string", val ];
- if (typeof val == "number")
- return [ "num", val ];
- if (val === true)
- return [ 'name', 'true' ];
- if (val === false)
- return [ 'name', 'false' ];
- if (val === null)
- return [ 'name', 'null' ];
- if (val === undefined)
- return [ 'name', 'undefined' ];
- sys.print("ERROR: In option --define-from-module "+defmodarg+"\n");
- sys.print("ERROR: Unknown object type for: "+sym+"="+val+"\n");
- process.exit(1);
- return null;
- }(defmodule[sym]);
- }
- }
- break;
- case "--ascii":
- options.codegen_options.ascii_only = true;
- break;
- case "--make":
- options.make = true;
- break;
- case "--inline-script":
- options.codegen_options.inline_script = true;
- break;
- default:
- filename = v;
- break out;
- }
-}
-
-if (options.verbose) {
- pro.set_logger(function(msg){
- sys.debug(msg);
- });
-}
-
-jsp.set_logger(function(msg){
- sys.debug(msg);
-});
-
-if (options.make) {
- options.out_same_file = false; // doesn't make sense in this case
- var makefile = JSON.parse(fs.readFileSync(filename || "Makefile.uglify.js").toString());
- output(makefile.files.map(function(file){
- var code = fs.readFileSync(file.name);
- if (file.module) {
- code = "!function(exports, global){global = this;\n" + code + "\n;this." + file.module + " = exports;}({})";
- }
- else if (file.hide) {
- code = "(function(){" + code + "}());";
- }
- return squeeze_it(code);
- }).join("\n"));
-}
-else if (filename) {
- fs.readFile(filename, "utf8", function(err, text){
- if (err) throw err;
- output(squeeze_it(text));
- });
-}
-else {
- var stdin = process.openStdin();
- stdin.setEncoding("utf8");
- var text = "";
- stdin.on("data", function(chunk){
- text += chunk;
- });
- stdin.on("end", function() {
- output(squeeze_it(text));
- });
-}
-
-function output(text) {
- var out;
- if (options.out_same_file && filename)
- options.output = filename;
- if (options.output === true) {
- out = process.stdout;
- } else {
- out = fs.createWriteStream(options.output, {
- flags: "w",
- encoding: "utf8",
- mode: 0644
- });
- }
- out.write(text.replace(/;*$/, ";"));
- if (options.output !== true) {
- out.end();
- }
-};
-
-// --------- main ends here.
-
-function show_copyright(comments) {
- var ret = "";
- for (var i = 0; i < comments.length; ++i) {
- var c = comments[i];
- if (c.type == "comment1") {
- ret += "//" + c.value + "\n";
- } else {
- ret += "/*" + c.value + "*/";
- }
- }
- return ret;
-};
-
-function squeeze_it(code) {
- var result = "";
- if (options.show_copyright) {
- var tok = jsp.tokenizer(code), c;
- c = tok();
- result += show_copyright(c.comments_before);
- }
- try {
- var ast = time_it("parse", function(){ return jsp.parse(code); });
- if (options.consolidate) ast = time_it("consolidate", function(){
- return consolidator.ast_consolidate(ast);
- });
- if (options.lift_vars) {
- ast = time_it("lift", function(){ return pro.ast_lift_variables(ast); });
- }
- if (options.mangle) ast = time_it("mangle", function(){
- return pro.ast_mangle(ast, {
- toplevel : options.mangle_toplevel,
- defines : options.defines,
- except : options.reserved_names,
- no_functions : options.no_mangle_functions
- });
- });
- if (options.squeeze) ast = time_it("squeeze", function(){
- ast = pro.ast_squeeze(ast, {
- make_seqs : options.make_seqs,
- dead_code : options.dead_code,
- keep_comps : !options.unsafe
- });
- if (options.unsafe)
- ast = pro.ast_squeeze_more(ast);
- return ast;
- });
- if (options.ast)
- return sys.inspect(ast, null, null);
- result += time_it("generate", function(){ return pro.gen_code(ast, options.codegen_options) });
- if (!options.codegen_options.beautify && options.max_line_length) {
- result = time_it("split", function(){ return pro.split_lines(result, options.max_line_length) });
- }
- return result;
- } catch(ex) {
- sys.debug(ex.stack);
- sys.debug(sys.inspect(ex));
- sys.debug(JSON.stringify(ex));
- process.exit(1);
- }
-};
-
-function time_it(name, cont) {
- if (!options.verbose)
- return 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/docstyle.css b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/docstyle.css
deleted file mode 100644
index 412481fe66b..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/docstyle.css
+++ /dev/null
@@ -1,75 +0,0 @@
-html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }
-body { max-width: 60em; }
-.title { text-align: center; }
-.todo { color: red; }
-.done { color: green; }
-.tag { background-color:lightblue; font-weight:normal }
-.target { }
-.timestamp { color: grey }
-.timestamp-kwd { color: CadetBlue }
-p.verse { margin-left: 3% }
-pre {
- border: 1pt solid #AEBDCC;
- background-color: #F3F5F7;
- padding: 5pt;
- font-family: monospace;
- font-size: 90%;
- overflow:auto;
-}
-pre.src {
- background-color: #eee; color: #112; border: 1px solid #000;
-}
-table { border-collapse: collapse; }
-td, th { vertical-align: top; }
-dt { font-weight: bold; }
-div.figure { padding: 0.5em; }
-div.figure p { text-align: center; }
-.linenr { font-size:smaller }
-.code-highlighted {background-color:#ffff00;}
-.org-info-js_info-navigation { border-style:none; }
-#org-info-js_console-label { font-size:10px; font-weight:bold;
- white-space:nowrap; }
-.org-info-js_search-highlight {background-color:#ffff00; color:#000000;
- font-weight:bold; }
-
-sup {
- vertical-align: baseline;
- position: relative;
- top: -0.5em;
- font-size: 80%;
-}
-
-sup a:link, sup a:visited {
- text-decoration: none;
- color: #c00;
-}
-
-sup a:before { content: "["; color: #999; }
-sup a:after { content: "]"; color: #999; }
-
-h1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }
-
-#postamble {
- color: #777;
- font-size: 90%;
- padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999;
- margin-top: 2em;
- padding-left: 2em;
- padding-right: 2em;
- text-align: right;
-}
-
-#postamble p { margin: 0; }
-
-#footnotes { border-top: 1px solid #000; }
-
-h1 { font-size: 200% }
-h2 { font-size: 175% }
-h3 { font-size: 150% }
-h4 { font-size: 125% }
-
-h1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }
-
-@media print {
- html { font-size: 11pt; }
-}
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/consolidator.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/consolidator.js
deleted file mode 100644
index d39674d2e11..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/consolidator.js
+++ /dev/null
@@ -1,2599 +0,0 @@
-/**
- * @preserve Copyright 2012 Robert Gust-Bardon <http://robert.gust-bardon.org/>.
- * 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.
- *
- * 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.
- */
-
-/**
- * @fileoverview Enhances <a href="https://github.com/mishoo/UglifyJS/"
- * >UglifyJS</a> with consolidation of null, Boolean, and String values.
- * <p>Also known as aliasing, this feature has been deprecated in <a href=
- * "http://closure-compiler.googlecode.com/">the Closure Compiler</a> since its
- * initial release, where it is unavailable from the <abbr title=
- * "command line interface">CLI</a>. The Closure Compiler allows one to log and
- * influence this process. In contrast, this implementation does not introduce
- * any variable declarations in global code and derives String values from
- * identifier names used as property accessors.</p>
- * <p>Consolidating literals may worsen the data compression ratio when an <a
- * href="http://tools.ietf.org/html/rfc2616#section-3.5">encoding
- * transformation</a> is applied. For instance, <a href=
- * "http://code.jquery.com/jquery-1.7.1.js">jQuery 1.7.1</a> takes 248235 bytes.
- * Building it with <a href="https://github.com/mishoo/UglifyJS/tarball/v1.2.5">
- * UglifyJS v1.2.5</a> results in 93647 bytes (37.73% of the original) which are
- * then compressed to 33154 bytes (13.36% of the original) using <a href=
- * "http://linux.die.net/man/1/gzip">gzip(1)</a>. Building it with the same
- * version of UglifyJS 1.2.5 patched with the implementation of consolidation
- * results in 80784 bytes (a decrease of 12863 bytes, i.e. 13.74%, in comparison
- * to the aforementioned 93647 bytes) which are then compressed to 34013 bytes
- * (an increase of 859 bytes, i.e. 2.59%, in comparison to the aforementioned
- * 33154 bytes).</p>
- * <p>Written in <a href="http://es5.github.com/#x4.2.2">the strict variant</a>
- * of <a href="http://es5.github.com/">ECMA-262 5.1 Edition</a>. Encoded in <a
- * href="http://tools.ietf.org/html/rfc3629">UTF-8</a>. Follows <a href=
- * "http://google-styleguide.googlecode.com/svn-history/r76/trunk/javascriptguide.xml"
- * >Revision 2.28 of the Google JavaScript Style Guide</a> (except for the
- * discouraged use of the {@code function} tag and the {@code namespace} tag).
- * 100% typed for the <a href=
- * "http://closure-compiler.googlecode.com/files/compiler-20120123.tar.gz"
- * >Closure Compiler Version 1741</a>.</p>
- * <p>Should you find this software useful, please consider <a href=
- * "https://paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JZLW72X8FD4WG"
- * >a donation</a>.</p>
- * @author follow.me@RGustBardon (Robert Gust-Bardon)
- * @supported Tested with:
- * <ul>
- * <li><a href="http://nodejs.org/dist/v0.6.10/">Node v0.6.10</a>,</li>
- * <li><a href="https://github.com/mishoo/UglifyJS/tarball/v1.2.5">UglifyJS
- * v1.2.5</a>.</li>
- * </ul>
- */
-
-/*global console:false, exports:true, module:false, require:false */
-/*jshint sub:true */
-/**
- * Consolidates null, Boolean, and String values found inside an <abbr title=
- * "abstract syntax tree">AST</abbr>.
- * @param {!TSyntacticCodeUnit} oAbstractSyntaxTree An array-like object
- * representing an <abbr title="abstract syntax tree">AST</abbr>.
- * @return {!TSyntacticCodeUnit} An array-like object representing an <abbr
- * title="abstract syntax tree">AST</abbr> with its null, Boolean, and
- * String values consolidated.
- */
-// TODO(user) Consolidation of mathematical values found in numeric literals.
-// TODO(user) Unconsolidation.
-// TODO(user) Consolidation of ECMA-262 6th Edition programs.
-// TODO(user) Rewrite in ECMA-262 6th Edition.
-exports['ast_consolidate'] = function(oAbstractSyntaxTree) {
- 'use strict';
- /*jshint bitwise:true, curly:true, eqeqeq:true, forin:true, immed:true,
- latedef:true, newcap:true, noarge:true, noempty:true, nonew:true,
- onevar:true, plusplus:true, regexp:true, undef:true, strict:true,
- sub:false, trailing:true */
-
- var _,
- /**
- * A record consisting of data about one or more source elements.
- * @constructor
- * @nosideeffects
- */
- TSourceElementsData = function() {
- /**
- * The category of the elements.
- * @type {number}
- * @see ESourceElementCategories
- */
- this.nCategory = ESourceElementCategories.N_OTHER;
- /**
- * The number of occurrences (within the elements) of each primitive
- * value that could be consolidated.
- * @type {!Array.<!Object.<string, number>>}
- */
- this.aCount = [];
- this.aCount[EPrimaryExpressionCategories.N_IDENTIFIER_NAMES] = {};
- this.aCount[EPrimaryExpressionCategories.N_STRING_LITERALS] = {};
- this.aCount[EPrimaryExpressionCategories.N_NULL_AND_BOOLEAN_LITERALS] =
- {};
- /**
- * Identifier names found within the elements.
- * @type {!Array.<string>}
- */
- this.aIdentifiers = [];
- /**
- * Prefixed representation Strings of each primitive value that could be
- * consolidated within the elements.
- * @type {!Array.<string>}
- */
- this.aPrimitiveValues = [];
- },
- /**
- * A record consisting of data about a primitive value that could be
- * consolidated.
- * @constructor
- * @nosideeffects
- */
- TPrimitiveValue = function() {
- /**
- * The difference in the number of terminal symbols between the original
- * source text and the one with the primitive value consolidated. If the
- * difference is positive, the primitive value is considered worthwhile.
- * @type {number}
- */
- this.nSaving = 0;
- /**
- * An identifier name of the variable that will be declared and assigned
- * the primitive value if the primitive value is consolidated.
- * @type {string}
- */
- this.sName = '';
- },
- /**
- * A record consisting of data on what to consolidate within the range of
- * source elements that is currently being considered.
- * @constructor
- * @nosideeffects
- */
- TSolution = function() {
- /**
- * An object whose keys are prefixed representation Strings of each
- * primitive value that could be consolidated within the elements and
- * whose values are corresponding data about those primitive values.
- * @type {!Object.<string, {nSaving: number, sName: string}>}
- * @see TPrimitiveValue
- */
- this.oPrimitiveValues = {};
- /**
- * The difference in the number of terminal symbols between the original
- * source text and the one with all the worthwhile primitive values
- * consolidated.
- * @type {number}
- * @see TPrimitiveValue#nSaving
- */
- this.nSavings = 0;
- },
- /**
- * The processor of <abbr title="abstract syntax tree">AST</abbr>s found
- * in UglifyJS.
- * @namespace
- * @type {!TProcessor}
- */
- oProcessor = (/** @type {!TProcessor} */ require('./process')),
- /**
- * A record consisting of a number of constants that represent the
- * difference in the number of terminal symbols between a source text with
- * a modified syntactic code unit and the original one.
- * @namespace
- * @type {!Object.<string, number>}
- */
- oWeights = {
- /**
- * The difference in the number of punctuators required by the bracket
- * notation and the dot notation.
- * <p><code>'[]'.length - '.'.length</code></p>
- * @const
- * @type {number}
- */
- N_PROPERTY_ACCESSOR: 1,
- /**
- * The number of punctuators required by a variable declaration with an
- * initialiser.
- * <p><code>':'.length + ';'.length</code></p>
- * @const
- * @type {number}
- */
- N_VARIABLE_DECLARATION: 2,
- /**
- * The number of terminal symbols required to introduce a variable
- * statement (excluding its variable declaration list).
- * <p><code>'var '.length</code></p>
- * @const
- * @type {number}
- */
- N_VARIABLE_STATEMENT_AFFIXATION: 4,
- /**
- * The number of terminal symbols needed to enclose source elements
- * within a function call with no argument values to a function with an
- * empty parameter list.
- * <p><code>'(function(){}());'.length</code></p>
- * @const
- * @type {number}
- */
- N_CLOSURE: 17
- },
- /**
- * Categories of primary expressions from which primitive values that
- * could be consolidated are derivable.
- * @namespace
- * @enum {number}
- */
- EPrimaryExpressionCategories = {
- /**
- * Identifier names used as property accessors.
- * @type {number}
- */
- N_IDENTIFIER_NAMES: 0,
- /**
- * String literals.
- * @type {number}
- */
- N_STRING_LITERALS: 1,
- /**
- * Null and Boolean literals.
- * @type {number}
- */
- N_NULL_AND_BOOLEAN_LITERALS: 2
- },
- /**
- * Prefixes of primitive values that could be consolidated.
- * The String values of the prefixes must have same number of characters.
- * The prefixes must not be used in any properties defined in any version
- * of <a href=
- * "http://www.ecma-international.org/publications/standards/Ecma-262.htm"
- * >ECMA-262</a>.
- * @namespace
- * @enum {string}
- */
- EValuePrefixes = {
- /**
- * Identifies String values.
- * @type {string}
- */
- S_STRING: '#S',
- /**
- * Identifies null and Boolean values.
- * @type {string}
- */
- S_SYMBOLIC: '#O'
- },
- /**
- * Categories of source elements in terms of their appropriateness of
- * having their primitive values consolidated.
- * @namespace
- * @enum {number}
- */
- ESourceElementCategories = {
- /**
- * Identifies a source element that includes the <a href=
- * "http://es5.github.com/#x12.10">{@code with}</a> statement.
- * @type {number}
- */
- N_WITH: 0,
- /**
- * Identifies a source element that includes the <a href=
- * "http://es5.github.com/#x15.1.2.1">{@code eval}</a> identifier name.
- * @type {number}
- */
- N_EVAL: 1,
- /**
- * Identifies a source element that must be excluded from the process
- * unless its whole scope is examined.
- * @type {number}
- */
- N_EXCLUDABLE: 2,
- /**
- * Identifies source elements not posing any problems.
- * @type {number}
- */
- N_OTHER: 3
- },
- /**
- * The list of literals (other than the String ones) whose primitive
- * values can be consolidated.
- * @const
- * @type {!Array.<string>}
- */
- A_OTHER_SUBSTITUTABLE_LITERALS = [
- 'null', // The null literal.
- 'false', // The Boolean literal {@code false}.
- 'true' // The Boolean literal {@code true}.
- ];
-
- (/**
- * Consolidates all worthwhile primitive values in a syntactic code unit.
- * @param {!TSyntacticCodeUnit} oSyntacticCodeUnit An array-like object
- * representing the branch of the abstract syntax tree representing the
- * syntactic code unit along with its scope.
- * @see TPrimitiveValue#nSaving
- */
- function fExamineSyntacticCodeUnit(oSyntacticCodeUnit) {
- var _,
- /**
- * Indicates whether the syntactic code unit represents global code.
- * @type {boolean}
- */
- bIsGlobal = 'toplevel' === oSyntacticCodeUnit[0],
- /**
- * Indicates whether the whole scope is being examined.
- * @type {boolean}
- */
- bIsWhollyExaminable = !bIsGlobal,
- /**
- * An array-like object representing source elements that constitute a
- * syntactic code unit.
- * @type {!TSyntacticCodeUnit}
- */
- oSourceElements,
- /**
- * A record consisting of data about the source element that is
- * currently being examined.
- * @type {!TSourceElementsData}
- */
- oSourceElementData,
- /**
- * The scope of the syntactic code unit.
- * @type {!TScope}
- */
- oScope,
- /**
- * An instance of an object that allows the traversal of an <abbr
- * title="abstract syntax tree">AST</abbr>.
- * @type {!TWalker}
- */
- oWalker,
- /**
- * An object encompassing collections of functions used during the
- * traversal of an <abbr title="abstract syntax tree">AST</abbr>.
- * @namespace
- * @type {!Object.<string, !Object.<string, function(...[*])>>}
- */
- oWalkers = {
- /**
- * A collection of functions used during the surveyance of source
- * elements.
- * @namespace
- * @type {!Object.<string, function(...[*])>}
- */
- oSurveySourceElement: {
- /**#nocode+*/ // JsDoc Toolkit 2.4.0 hides some of the keys.
- /**
- * Classifies the source element as excludable if it does not
- * contain a {@code with} statement or the {@code eval} identifier
- * name. Adds the identifier of the function and its formal
- * parameters to the list of identifier names found.
- * @param {string} sIdentifier The identifier of the function.
- * @param {!Array.<string>} aFormalParameterList Formal parameters.
- * @param {!TSyntacticCodeUnit} oFunctionBody Function code.
- */
- 'defun': function(
- sIdentifier,
- aFormalParameterList,
- oFunctionBody) {
- fClassifyAsExcludable();
- fAddIdentifier(sIdentifier);
- aFormalParameterList.forEach(fAddIdentifier);
- },
- /**
- * Increments the count of the number of occurrences of the String
- * value that is equivalent to the sequence of terminal symbols
- * that constitute the encountered identifier name.
- * @param {!TSyntacticCodeUnit} oExpression The nonterminal
- * MemberExpression.
- * @param {string} sIdentifierName The identifier name used as the
- * property accessor.
- * @return {!Array} The encountered branch of an <abbr title=
- * "abstract syntax tree">AST</abbr> with its nonterminal
- * MemberExpression traversed.
- */
- 'dot': function(oExpression, sIdentifierName) {
- fCountPrimaryExpression(
- EPrimaryExpressionCategories.N_IDENTIFIER_NAMES,
- EValuePrefixes.S_STRING + sIdentifierName);
- return ['dot', oWalker.walk(oExpression), sIdentifierName];
- },
- /**
- * Adds the optional identifier of the function and its formal
- * parameters to the list of identifier names found.
- * @param {?string} sIdentifier The optional identifier of the
- * function.
- * @param {!Array.<string>} aFormalParameterList Formal parameters.
- * @param {!TSyntacticCodeUnit} oFunctionBody Function code.
- */
- 'function': function(
- sIdentifier,
- aFormalParameterList,
- oFunctionBody) {
- if ('string' === typeof sIdentifier) {
- fAddIdentifier(sIdentifier);
- }
- aFormalParameterList.forEach(fAddIdentifier);
- },
- /**
- * Either increments the count of the number of occurrences of the
- * encountered null or Boolean value or classifies a source element
- * as containing the {@code eval} identifier name.
- * @param {string} sIdentifier The identifier encountered.
- */
- 'name': function(sIdentifier) {
- if (-1 !== A_OTHER_SUBSTITUTABLE_LITERALS.indexOf(sIdentifier)) {
- fCountPrimaryExpression(
- EPrimaryExpressionCategories.N_NULL_AND_BOOLEAN_LITERALS,
- EValuePrefixes.S_SYMBOLIC + sIdentifier);
- } else {
- if ('eval' === sIdentifier) {
- oSourceElementData.nCategory =
- ESourceElementCategories.N_EVAL;
- }
- fAddIdentifier(sIdentifier);
- }
- },
- /**
- * Classifies the source element as excludable if it does not
- * contain a {@code with} statement or the {@code eval} identifier
- * name.
- * @param {TSyntacticCodeUnit} oExpression The expression whose
- * value is to be returned.
- */
- 'return': function(oExpression) {
- fClassifyAsExcludable();
- },
- /**
- * Increments the count of the number of occurrences of the
- * encountered String value.
- * @param {string} sStringValue The String value of the string
- * literal encountered.
- */
- 'string': function(sStringValue) {
- if (sStringValue.length > 0) {
- fCountPrimaryExpression(
- EPrimaryExpressionCategories.N_STRING_LITERALS,
- EValuePrefixes.S_STRING + sStringValue);
- }
- },
- /**
- * Adds the identifier reserved for an exception to the list of
- * identifier names found.
- * @param {!TSyntacticCodeUnit} oTry A block of code in which an
- * exception can occur.
- * @param {Array} aCatch The identifier reserved for an exception
- * and a block of code to handle the exception.
- * @param {TSyntacticCodeUnit} oFinally An optional block of code
- * to be evaluated regardless of whether an exception occurs.
- */
- 'try': function(oTry, aCatch, oFinally) {
- if (Array.isArray(aCatch)) {
- fAddIdentifier(aCatch[0]);
- }
- },
- /**
- * Classifies the source element as excludable if it does not
- * contain a {@code with} statement or the {@code eval} identifier
- * name. Adds the identifier of each declared variable to the list
- * of identifier names found.
- * @param {!Array.<!Array>} aVariableDeclarationList Variable
- * declarations.
- */
- 'var': function(aVariableDeclarationList) {
- fClassifyAsExcludable();
- aVariableDeclarationList.forEach(fAddVariable);
- },
- /**
- * Classifies a source element as containing the {@code with}
- * statement.
- * @param {!TSyntacticCodeUnit} oExpression An expression whose
- * value is to be converted to a value of type Object and
- * become the binding object of a new object environment
- * record of a new lexical environment in which the statement
- * is to be executed.
- * @param {!TSyntacticCodeUnit} oStatement The statement to be
- * executed in the augmented lexical environment.
- * @return {!Array} An empty array to stop the traversal.
- */
- 'with': function(oExpression, oStatement) {
- oSourceElementData.nCategory = ESourceElementCategories.N_WITH;
- return [];
- }
- /**#nocode-*/ // JsDoc Toolkit 2.4.0 hides some of the keys.
- },
- /**
- * A collection of functions used while looking for nested functions.
- * @namespace
- * @type {!Object.<string, function(...[*])>}
- */
- oExamineFunctions: {
- /**#nocode+*/ // JsDoc Toolkit 2.4.0 hides some of the keys.
- /**
- * Orders an examination of a nested function declaration.
- * @this {!TSyntacticCodeUnit} An array-like object representing
- * the branch of an <abbr title="abstract syntax tree"
- * >AST</abbr> representing the syntactic code unit along with
- * its scope.
- * @return {!Array} An empty array to stop the traversal.
- */
- 'defun': function() {
- fExamineSyntacticCodeUnit(this);
- return [];
- },
- /**
- * Orders an examination of a nested function expression.
- * @this {!TSyntacticCodeUnit} An array-like object representing
- * the branch of an <abbr title="abstract syntax tree"
- * >AST</abbr> representing the syntactic code unit along with
- * its scope.
- * @return {!Array} An empty array to stop the traversal.
- */
- 'function': function() {
- fExamineSyntacticCodeUnit(this);
- return [];
- }
- /**#nocode-*/ // JsDoc Toolkit 2.4.0 hides some of the keys.
- }
- },
- /**
- * Records containing data about source elements.
- * @type {Array.<TSourceElementsData>}
- */
- aSourceElementsData = [],
- /**
- * The index (in the source text order) of the source element
- * immediately following a <a href="http://es5.github.com/#x14.1"
- * >Directive Prologue</a>.
- * @type {number}
- */
- nAfterDirectivePrologue = 0,
- /**
- * The index (in the source text order) of the source element that is
- * currently being considered.
- * @type {number}
- */
- nPosition,
- /**
- * The index (in the source text order) of the source element that is
- * the last element of the range of source elements that is currently
- * being considered.
- * @type {(undefined|number)}
- */
- nTo,
- /**
- * Initiates the traversal of a source element.
- * @param {!TWalker} oWalker An instance of an object that allows the
- * traversal of an abstract syntax tree.
- * @param {!TSyntacticCodeUnit} oSourceElement A source element from
- * which the traversal should commence.
- * @return {function(): !TSyntacticCodeUnit} A function that is able to
- * initiate the traversal from a given source element.
- */
- cContext = function(oWalker, oSourceElement) {
- /**
- * @return {!TSyntacticCodeUnit} A function that is able to
- * initiate the traversal from a given source element.
- */
- var fLambda = function() {
- return oWalker.walk(oSourceElement);
- };
-
- return fLambda;
- },
- /**
- * Classifies the source element as excludable if it does not
- * contain a {@code with} statement or the {@code eval} identifier
- * name.
- */
- fClassifyAsExcludable = function() {
- if (oSourceElementData.nCategory ===
- ESourceElementCategories.N_OTHER) {
- oSourceElementData.nCategory =
- ESourceElementCategories.N_EXCLUDABLE;
- }
- },
- /**
- * Adds an identifier to the list of identifier names found.
- * @param {string} sIdentifier The identifier to be added.
- */
- fAddIdentifier = function(sIdentifier) {
- if (-1 === oSourceElementData.aIdentifiers.indexOf(sIdentifier)) {
- oSourceElementData.aIdentifiers.push(sIdentifier);
- }
- },
- /**
- * Adds the identifier of a variable to the list of identifier names
- * found.
- * @param {!Array} aVariableDeclaration A variable declaration.
- */
- fAddVariable = function(aVariableDeclaration) {
- fAddIdentifier(/** @type {string} */ aVariableDeclaration[0]);
- },
- /**
- * Increments the count of the number of occurrences of the prefixed
- * String representation attributed to the primary expression.
- * @param {number} nCategory The category of the primary expression.
- * @param {string} sName The prefixed String representation attributed
- * to the primary expression.
- */
- fCountPrimaryExpression = function(nCategory, sName) {
- if (!oSourceElementData.aCount[nCategory].hasOwnProperty(sName)) {
- oSourceElementData.aCount[nCategory][sName] = 0;
- if (-1 === oSourceElementData.aPrimitiveValues.indexOf(sName)) {
- oSourceElementData.aPrimitiveValues.push(sName);
- }
- }
- oSourceElementData.aCount[nCategory][sName] += 1;
- },
- /**
- * Consolidates all worthwhile primitive values in a range of source
- * elements.
- * @param {number} nFrom The index (in the source text order) of the
- * source element that is the first element of the range.
- * @param {number} nTo The index (in the source text order) of the
- * source element that is the last element of the range.
- * @param {boolean} bEnclose Indicates whether the range should be
- * enclosed within a function call with no argument values to a
- * function with an empty parameter list if any primitive values
- * are consolidated.
- * @see TPrimitiveValue#nSaving
- */
- fExamineSourceElements = function(nFrom, nTo, bEnclose) {
- var _,
- /**
- * The index of the last mangled name.
- * @type {number}
- */
- nIndex = oScope.cname,
- /**
- * The index of the source element that is currently being
- * considered.
- * @type {number}
- */
- nPosition,
- /**
- * A collection of functions used during the consolidation of
- * primitive values and identifier names used as property
- * accessors.
- * @namespace
- * @type {!Object.<string, function(...[*])>}
- */
- oWalkersTransformers = {
- /**
- * If the String value that is equivalent to the sequence of
- * terminal symbols that constitute the encountered identifier
- * name is worthwhile, a syntactic conversion from the dot
- * notation to the bracket notation ensues with that sequence
- * being substituted by an identifier name to which the value
- * is assigned.
- * Applies to property accessors that use the dot notation.
- * @param {!TSyntacticCodeUnit} oExpression The nonterminal
- * MemberExpression.
- * @param {string} sIdentifierName The identifier name used as
- * the property accessor.
- * @return {!Array} A syntactic code unit that is equivalent to
- * the one encountered.
- * @see TPrimitiveValue#nSaving
- */
- 'dot': function(oExpression, sIdentifierName) {
- /**
- * The prefixed String value that is equivalent to the
- * sequence of terminal symbols that constitute the
- * encountered identifier name.
- * @type {string}
- */
- var sPrefixed = EValuePrefixes.S_STRING + sIdentifierName;
-
- return oSolutionBest.oPrimitiveValues.hasOwnProperty(
- sPrefixed) &&
- oSolutionBest.oPrimitiveValues[sPrefixed].nSaving > 0 ?
- ['sub',
- oWalker.walk(oExpression),
- ['name',
- oSolutionBest.oPrimitiveValues[sPrefixed].sName]] :
- ['dot', oWalker.walk(oExpression), sIdentifierName];
- },
- /**
- * If the encountered identifier is a null or Boolean literal
- * and its value is worthwhile, the identifier is substituted
- * by an identifier name to which that value is assigned.
- * Applies to identifier names.
- * @param {string} sIdentifier The identifier encountered.
- * @return {!Array} A syntactic code unit that is equivalent to
- * the one encountered.
- * @see TPrimitiveValue#nSaving
- */
- 'name': function(sIdentifier) {
- /**
- * The prefixed representation String of the identifier.
- * @type {string}
- */
- var sPrefixed = EValuePrefixes.S_SYMBOLIC + sIdentifier;
-
- return [
- 'name',
- oSolutionBest.oPrimitiveValues.hasOwnProperty(sPrefixed) &&
- oSolutionBest.oPrimitiveValues[sPrefixed].nSaving > 0 ?
- oSolutionBest.oPrimitiveValues[sPrefixed].sName :
- sIdentifier
- ];
- },
- /**
- * If the encountered String value is worthwhile, it is
- * substituted by an identifier name to which that value is
- * assigned.
- * Applies to String values.
- * @param {string} sStringValue The String value of the string
- * literal encountered.
- * @return {!Array} A syntactic code unit that is equivalent to
- * the one encountered.
- * @see TPrimitiveValue#nSaving
- */
- 'string': function(sStringValue) {
- /**
- * The prefixed representation String of the primitive value
- * of the literal.
- * @type {string}
- */
- var sPrefixed =
- EValuePrefixes.S_STRING + sStringValue;
-
- return oSolutionBest.oPrimitiveValues.hasOwnProperty(
- sPrefixed) &&
- oSolutionBest.oPrimitiveValues[sPrefixed].nSaving > 0 ?
- ['name',
- oSolutionBest.oPrimitiveValues[sPrefixed].sName] :
- ['string', sStringValue];
- }
- },
- /**
- * Such data on what to consolidate within the range of source
- * elements that is currently being considered that lead to the
- * greatest known reduction of the number of the terminal symbols
- * in comparison to the original source text.
- * @type {!TSolution}
- */
- oSolutionBest = new TSolution(),
- /**
- * Data representing an ongoing attempt to find a better
- * reduction of the number of the terminal symbols in comparison
- * to the original source text than the best one that is
- * currently known.
- * @type {!TSolution}
- * @see oSolutionBest
- */
- oSolutionCandidate = new TSolution(),
- /**
- * A record consisting of data about the range of source elements
- * that is currently being examined.
- * @type {!TSourceElementsData}
- */
- oSourceElementsData = new TSourceElementsData(),
- /**
- * Variable declarations for each primitive value that is to be
- * consolidated within the elements.
- * @type {!Array.<!Array>}
- */
- aVariableDeclarations = [],
- /**
- * Augments a list with a prefixed representation String.
- * @param {!Array.<string>} aList A list that is to be augmented.
- * @return {function(string)} A function that augments a list
- * with a prefixed representation String.
- */
- cAugmentList = function(aList) {
- /**
- * @param {string} sPrefixed Prefixed representation String of
- * a primitive value that could be consolidated within the
- * elements.
- */
- var fLambda = function(sPrefixed) {
- if (-1 === aList.indexOf(sPrefixed)) {
- aList.push(sPrefixed);
- }
- };
-
- return fLambda;
- },
- /**
- * Adds the number of occurrences of a primitive value of a given
- * category that could be consolidated in the source element with
- * a given index to the count of occurrences of that primitive
- * value within the range of source elements that is currently
- * being considered.
- * @param {number} nPosition The index (in the source text order)
- * of a source element.
- * @param {number} nCategory The category of the primary
- * expression from which the primitive value is derived.
- * @return {function(string)} A function that performs the
- * addition.
- * @see cAddOccurrencesInCategory
- */
- cAddOccurrences = function(nPosition, nCategory) {
- /**
- * @param {string} sPrefixed The prefixed representation String
- * of a primitive value.
- */
- var fLambda = function(sPrefixed) {
- if (!oSourceElementsData.aCount[nCategory].hasOwnProperty(
- sPrefixed)) {
- oSourceElementsData.aCount[nCategory][sPrefixed] = 0;
- }
- oSourceElementsData.aCount[nCategory][sPrefixed] +=
- aSourceElementsData[nPosition].aCount[nCategory][
- sPrefixed];
- };
-
- return fLambda;
- },
- /**
- * Adds the number of occurrences of each primitive value of a
- * given category that could be consolidated in the source
- * element with a given index to the count of occurrences of that
- * primitive values within the range of source elements that is
- * currently being considered.
- * @param {number} nPosition The index (in the source text order)
- * of a source element.
- * @return {function(number)} A function that performs the
- * addition.
- * @see fAddOccurrences
- */
- cAddOccurrencesInCategory = function(nPosition) {
- /**
- * @param {number} nCategory The category of the primary
- * expression from which the primitive value is derived.
- */
- var fLambda = function(nCategory) {
- Object.keys(
- aSourceElementsData[nPosition].aCount[nCategory]
- ).forEach(cAddOccurrences(nPosition, nCategory));
- };
-
- return fLambda;
- },
- /**
- * Adds the number of occurrences of each primitive value that
- * could be consolidated in the source element with a given index
- * to the count of occurrences of that primitive values within
- * the range of source elements that is currently being
- * considered.
- * @param {number} nPosition The index (in the source text order)
- * of a source element.
- */
- fAddOccurrences = function(nPosition) {
- Object.keys(aSourceElementsData[nPosition].aCount).forEach(
- cAddOccurrencesInCategory(nPosition));
- },
- /**
- * Creates a variable declaration for a primitive value if that
- * primitive value is to be consolidated within the elements.
- * @param {string} sPrefixed Prefixed representation String of a
- * primitive value that could be consolidated within the
- * elements.
- * @see aVariableDeclarations
- */
- cAugmentVariableDeclarations = function(sPrefixed) {
- if (oSolutionBest.oPrimitiveValues[sPrefixed].nSaving > 0) {
- aVariableDeclarations.push([
- oSolutionBest.oPrimitiveValues[sPrefixed].sName,
- [0 === sPrefixed.indexOf(EValuePrefixes.S_SYMBOLIC) ?
- 'name' : 'string',
- sPrefixed.substring(EValuePrefixes.S_SYMBOLIC.length)]
- ]);
- }
- },
- /**
- * Sorts primitive values with regard to the difference in the
- * number of terminal symbols between the original source text
- * and the one with those primitive values consolidated.
- * @param {string} sPrefixed0 The prefixed representation String
- * of the first of the two primitive values that are being
- * compared.
- * @param {string} sPrefixed1 The prefixed representation String
- * of the second of the two primitive values that are being
- * compared.
- * @return {number}
- * <dl>
- * <dt>-1</dt>
- * <dd>if the first primitive value must be placed before
- * the other one,</dd>
- * <dt>0</dt>
- * <dd>if the first primitive value may be placed before
- * the other one,</dd>
- * <dt>1</dt>
- * <dd>if the first primitive value must not be placed
- * before the other one.</dd>
- * </dl>
- * @see TSolution.oPrimitiveValues
- */
- cSortPrimitiveValues = function(sPrefixed0, sPrefixed1) {
- /**
- * The difference between:
- * <ol>
- * <li>the difference in the number of terminal symbols
- * between the original source text and the one with the
- * first primitive value consolidated, and</li>
- * <li>the difference in the number of terminal symbols
- * between the original source text and the one with the
- * second primitive value consolidated.</li>
- * </ol>
- * @type {number}
- */
- var nDifference =
- oSolutionCandidate.oPrimitiveValues[sPrefixed0].nSaving -
- oSolutionCandidate.oPrimitiveValues[sPrefixed1].nSaving;
-
- return nDifference > 0 ? -1 : nDifference < 0 ? 1 : 0;
- },
- /**
- * Assigns an identifier name to a primitive value and calculates
- * whether instances of that primitive value are worth
- * consolidating.
- * @param {string} sPrefixed The prefixed representation String
- * of a primitive value that is being evaluated.
- */
- fEvaluatePrimitiveValue = function(sPrefixed) {
- var _,
- /**
- * The index of the last mangled name.
- * @type {number}
- */
- nIndex,
- /**
- * The representation String of the primitive value that is
- * being evaluated.
- * @type {string}
- */
- sName =
- sPrefixed.substring(EValuePrefixes.S_SYMBOLIC.length),
- /**
- * The number of source characters taken up by the
- * representation String of the primitive value that is
- * being evaluated.
- * @type {number}
- */
- nLengthOriginal = sName.length,
- /**
- * The number of source characters taken up by the
- * identifier name that could substitute the primitive
- * value that is being evaluated.
- * substituted.
- * @type {number}
- */
- nLengthSubstitution,
- /**
- * The number of source characters taken up by by the
- * representation String of the primitive value that is
- * being evaluated when it is represented by a string
- * literal.
- * @type {number}
- */
- nLengthString = oProcessor.make_string(sName).length;
-
- oSolutionCandidate.oPrimitiveValues[sPrefixed] =
- new TPrimitiveValue();
- do { // Find an identifier unused in this or any nested scope.
- nIndex = oScope.cname;
- oSolutionCandidate.oPrimitiveValues[sPrefixed].sName =
- oScope.next_mangled();
- } while (-1 !== oSourceElementsData.aIdentifiers.indexOf(
- oSolutionCandidate.oPrimitiveValues[sPrefixed].sName));
- nLengthSubstitution = oSolutionCandidate.oPrimitiveValues[
- sPrefixed].sName.length;
- if (0 === sPrefixed.indexOf(EValuePrefixes.S_SYMBOLIC)) {
- // foo:null, or foo:null;
- oSolutionCandidate.oPrimitiveValues[sPrefixed].nSaving -=
- nLengthSubstitution + nLengthOriginal +
- oWeights.N_VARIABLE_DECLARATION;
- // null vs foo
- oSolutionCandidate.oPrimitiveValues[sPrefixed].nSaving +=
- oSourceElementsData.aCount[
- EPrimaryExpressionCategories.
- N_NULL_AND_BOOLEAN_LITERALS][sPrefixed] *
- (nLengthOriginal - nLengthSubstitution);
- } else {
- // foo:'fromCharCode';
- oSolutionCandidate.oPrimitiveValues[sPrefixed].nSaving -=
- nLengthSubstitution + nLengthString +
- oWeights.N_VARIABLE_DECLARATION;
- // .fromCharCode vs [foo]
- if (oSourceElementsData.aCount[
- EPrimaryExpressionCategories.N_IDENTIFIER_NAMES
- ].hasOwnProperty(sPrefixed)) {
- oSolutionCandidate.oPrimitiveValues[sPrefixed].nSaving +=
- oSourceElementsData.aCount[
- EPrimaryExpressionCategories.N_IDENTIFIER_NAMES
- ][sPrefixed] *
- (nLengthOriginal - nLengthSubstitution -
- oWeights.N_PROPERTY_ACCESSOR);
- }
- // 'fromCharCode' vs foo
- if (oSourceElementsData.aCount[
- EPrimaryExpressionCategories.N_STRING_LITERALS
- ].hasOwnProperty(sPrefixed)) {
- oSolutionCandidate.oPrimitiveValues[sPrefixed].nSaving +=
- oSourceElementsData.aCount[
- EPrimaryExpressionCategories.N_STRING_LITERALS
- ][sPrefixed] *
- (nLengthString - nLengthSubstitution);
- }
- }
- if (oSolutionCandidate.oPrimitiveValues[sPrefixed].nSaving >
- 0) {
- oSolutionCandidate.nSavings +=
- oSolutionCandidate.oPrimitiveValues[sPrefixed].nSaving;
- } else {
- oScope.cname = nIndex; // Free the identifier name.
- }
- },
- /**
- * Adds a variable declaration to an existing variable statement.
- * @param {!Array} aVariableDeclaration A variable declaration
- * with an initialiser.
- */
- cAddVariableDeclaration = function(aVariableDeclaration) {
- (/** @type {!Array} */ oSourceElements[nFrom][1]).unshift(
- aVariableDeclaration);
- };
-
- if (nFrom > nTo) {
- return;
- }
- // If the range is a closure, reuse the closure.
- if (nFrom === nTo &&
- 'stat' === oSourceElements[nFrom][0] &&
- 'call' === oSourceElements[nFrom][1][0] &&
- 'function' === oSourceElements[nFrom][1][1][0]) {
- fExamineSyntacticCodeUnit(oSourceElements[nFrom][1][1]);
- return;
- }
- // Create a list of all derived primitive values within the range.
- for (nPosition = nFrom; nPosition <= nTo; nPosition += 1) {
- aSourceElementsData[nPosition].aPrimitiveValues.forEach(
- cAugmentList(oSourceElementsData.aPrimitiveValues));
- }
- if (0 === oSourceElementsData.aPrimitiveValues.length) {
- return;
- }
- for (nPosition = nFrom; nPosition <= nTo; nPosition += 1) {
- // Add the number of occurrences to the total count.
- fAddOccurrences(nPosition);
- // Add identifiers of this or any nested scope to the list.
- aSourceElementsData[nPosition].aIdentifiers.forEach(
- cAugmentList(oSourceElementsData.aIdentifiers));
- }
- // Distribute identifier names among derived primitive values.
- do { // If there was any progress, find a better distribution.
- oSolutionBest = oSolutionCandidate;
- if (Object.keys(oSolutionCandidate.oPrimitiveValues).length > 0) {
- // Sort primitive values descending by their worthwhileness.
- oSourceElementsData.aPrimitiveValues.sort(cSortPrimitiveValues);
- }
- oSolutionCandidate = new TSolution();
- oSourceElementsData.aPrimitiveValues.forEach(
- fEvaluatePrimitiveValue);
- oScope.cname = nIndex;
- } while (oSolutionCandidate.nSavings > oSolutionBest.nSavings);
- // Take the necessity of adding a variable statement into account.
- if ('var' !== oSourceElements[nFrom][0]) {
- oSolutionBest.nSavings -= oWeights.N_VARIABLE_STATEMENT_AFFIXATION;
- }
- if (bEnclose) {
- // Take the necessity of forming a closure into account.
- oSolutionBest.nSavings -= oWeights.N_CLOSURE;
- }
- if (oSolutionBest.nSavings > 0) {
- // Create variable declarations suitable for UglifyJS.
- Object.keys(oSolutionBest.oPrimitiveValues).forEach(
- cAugmentVariableDeclarations);
- // Rewrite expressions that contain worthwhile primitive values.
- for (nPosition = nFrom; nPosition <= nTo; nPosition += 1) {
- oWalker = oProcessor.ast_walker();
- oSourceElements[nPosition] =
- oWalker.with_walkers(
- oWalkersTransformers,
- cContext(oWalker, oSourceElements[nPosition]));
- }
- if ('var' === oSourceElements[nFrom][0]) { // Reuse the statement.
- (/** @type {!Array.<!Array>} */ aVariableDeclarations.reverse(
- )).forEach(cAddVariableDeclaration);
- } else { // Add a variable statement.
- Array.prototype.splice.call(
- oSourceElements,
- nFrom,
- 0,
- ['var', aVariableDeclarations]);
- nTo += 1;
- }
- if (bEnclose) {
- // Add a closure.
- Array.prototype.splice.call(
- oSourceElements,
- nFrom,
- 0,
- ['stat', ['call', ['function', null, [], []], []]]);
- // Copy source elements into the closure.
- for (nPosition = nTo + 1; nPosition > nFrom; nPosition -= 1) {
- Array.prototype.unshift.call(
- oSourceElements[nFrom][1][1][3],
- oSourceElements[nPosition]);
- }
- // Remove source elements outside the closure.
- Array.prototype.splice.call(
- oSourceElements,
- nFrom + 1,
- nTo - nFrom + 1);
- }
- }
- if (bEnclose) {
- // Restore the availability of identifier names.
- oScope.cname = nIndex;
- }
- };
-
- oSourceElements = (/** @type {!TSyntacticCodeUnit} */
- oSyntacticCodeUnit[bIsGlobal ? 1 : 3]);
- if (0 === oSourceElements.length) {
- return;
- }
- oScope = bIsGlobal ? oSyntacticCodeUnit.scope : oSourceElements.scope;
- // Skip a Directive Prologue.
- while (nAfterDirectivePrologue < oSourceElements.length &&
- 'stat' === oSourceElements[nAfterDirectivePrologue][0] &&
- 'string' === oSourceElements[nAfterDirectivePrologue][1][0]) {
- nAfterDirectivePrologue += 1;
- aSourceElementsData.push(null);
- }
- if (oSourceElements.length === nAfterDirectivePrologue) {
- return;
- }
- for (nPosition = nAfterDirectivePrologue;
- nPosition < oSourceElements.length;
- nPosition += 1) {
- oSourceElementData = new TSourceElementsData();
- oWalker = oProcessor.ast_walker();
- // Classify a source element.
- // Find its derived primitive values and count their occurrences.
- // Find all identifiers used (including nested scopes).
- oWalker.with_walkers(
- oWalkers.oSurveySourceElement,
- cContext(oWalker, oSourceElements[nPosition]));
- // Establish whether the scope is still wholly examinable.
- bIsWhollyExaminable = bIsWhollyExaminable &&
- ESourceElementCategories.N_WITH !== oSourceElementData.nCategory &&
- ESourceElementCategories.N_EVAL !== oSourceElementData.nCategory;
- aSourceElementsData.push(oSourceElementData);
- }
- if (bIsWhollyExaminable) { // Examine the whole scope.
- fExamineSourceElements(
- nAfterDirectivePrologue,
- oSourceElements.length - 1,
- false);
- } else { // Examine unexcluded ranges of source elements.
- for (nPosition = oSourceElements.length - 1;
- nPosition >= nAfterDirectivePrologue;
- nPosition -= 1) {
- oSourceElementData = (/** @type {!TSourceElementsData} */
- aSourceElementsData[nPosition]);
- if (ESourceElementCategories.N_OTHER ===
- oSourceElementData.nCategory) {
- if ('undefined' === typeof nTo) {
- nTo = nPosition; // Indicate the end of a range.
- }
- // Examine the range if it immediately follows a Directive Prologue.
- if (nPosition === nAfterDirectivePrologue) {
- fExamineSourceElements(nPosition, nTo, true);
- }
- } else {
- if ('undefined' !== typeof nTo) {
- // Examine the range that immediately follows this source element.
- fExamineSourceElements(nPosition + 1, nTo, true);
- nTo = void 0; // Obliterate the range.
- }
- // Examine nested functions.
- oWalker = oProcessor.ast_walker();
- oWalker.with_walkers(
- oWalkers.oExamineFunctions,
- cContext(oWalker, oSourceElements[nPosition]));
- }
- }
- }
- }(oAbstractSyntaxTree = oProcessor.ast_add_scope(oAbstractSyntaxTree)));
- return oAbstractSyntaxTree;
-};
-/*jshint sub:false */
-
-
-if (require.main === module) {
- (function() {
- 'use strict';
- /*jshint bitwise:true, curly:true, eqeqeq:true, forin:true, immed:true,
- latedef:true, newcap:true, noarge:true, noempty:true, nonew:true,
- onevar:true, plusplus:true, regexp:true, undef:true, strict:true,
- sub:false, trailing:true */
-
- var _,
- /**
- * NodeJS module for unit testing.
- * @namespace
- * @type {!TAssert}
- * @see http://nodejs.org/docs/v0.6.10/api/all.html#assert
- */
- oAssert = (/** @type {!TAssert} */ require('assert')),
- /**
- * The parser of ECMA-262 found in UglifyJS.
- * @namespace
- * @type {!TParser}
- */
- oParser = (/** @type {!TParser} */ require('./parse-js')),
- /**
- * The processor of <abbr title="abstract syntax tree">AST</abbr>s
- * found in UglifyJS.
- * @namespace
- * @type {!TProcessor}
- */
- oProcessor = (/** @type {!TProcessor} */ require('./process')),
- /**
- * An instance of an object that allows the traversal of an <abbr
- * title="abstract syntax tree">AST</abbr>.
- * @type {!TWalker}
- */
- oWalker,
- /**
- * A collection of functions for the removal of the scope information
- * during the traversal of an <abbr title="abstract syntax tree"
- * >AST</abbr>.
- * @namespace
- * @type {!Object.<string, function(...[*])>}
- */
- oWalkersPurifiers = {
- /**#nocode+*/ // JsDoc Toolkit 2.4.0 hides some of the keys.
- /**
- * Deletes the scope information from the branch of the abstract
- * syntax tree representing the encountered function declaration.
- * @param {string} sIdentifier The identifier of the function.
- * @param {!Array.<string>} aFormalParameterList Formal parameters.
- * @param {!TSyntacticCodeUnit} oFunctionBody Function code.
- */
- 'defun': function(
- sIdentifier,
- aFormalParameterList,
- oFunctionBody) {
- delete oFunctionBody.scope;
- },
- /**
- * Deletes the scope information from the branch of the abstract
- * syntax tree representing the encountered function expression.
- * @param {?string} sIdentifier The optional identifier of the
- * function.
- * @param {!Array.<string>} aFormalParameterList Formal parameters.
- * @param {!TSyntacticCodeUnit} oFunctionBody Function code.
- */
- 'function': function(
- sIdentifier,
- aFormalParameterList,
- oFunctionBody) {
- delete oFunctionBody.scope;
- }
- /**#nocode-*/ // JsDoc Toolkit 2.4.0 hides some of the keys.
- },
- /**
- * Initiates the traversal of a source element.
- * @param {!TWalker} oWalker An instance of an object that allows the
- * traversal of an abstract syntax tree.
- * @param {!TSyntacticCodeUnit} oSourceElement A source element from
- * which the traversal should commence.
- * @return {function(): !TSyntacticCodeUnit} A function that is able to
- * initiate the traversal from a given source element.
- */
- cContext = function(oWalker, oSourceElement) {
- /**
- * @return {!TSyntacticCodeUnit} A function that is able to
- * initiate the traversal from a given source element.
- */
- var fLambda = function() {
- return oWalker.walk(oSourceElement);
- };
-
- return fLambda;
- },
- /**
- * A record consisting of configuration for the code generation phase.
- * @type {!Object}
- */
- oCodeGenerationOptions = {
- beautify: true
- },
- /**
- * Tests whether consolidation of an ECMAScript program yields expected
- * results.
- * @param {{
- * sTitle: string,
- * sInput: string,
- * sOutput: string
- * }} oUnitTest A record consisting of data about a unit test: its
- * name, an ECMAScript program, and, if consolidation is to take
- * place, the resulting ECMAScript program.
- */
- cAssert = function(oUnitTest) {
- var _,
- /**
- * An array-like object representing the <abbr title=
- * "abstract syntax tree">AST</abbr> obtained after consolidation.
- * @type {!TSyntacticCodeUnit}
- */
- oSyntacticCodeUnitActual =
- exports.ast_consolidate(oParser.parse(oUnitTest.sInput)),
- /**
- * An array-like object representing the expected <abbr title=
- * "abstract syntax tree">AST</abbr>.
- * @type {!TSyntacticCodeUnit}
- */
- oSyntacticCodeUnitExpected = oParser.parse(
- oUnitTest.hasOwnProperty('sOutput') ?
- oUnitTest.sOutput : oUnitTest.sInput);
-
- delete oSyntacticCodeUnitActual.scope;
- oWalker = oProcessor.ast_walker();
- oWalker.with_walkers(
- oWalkersPurifiers,
- cContext(oWalker, oSyntacticCodeUnitActual));
- try {
- oAssert.deepEqual(
- oSyntacticCodeUnitActual,
- oSyntacticCodeUnitExpected);
- } catch (oException) {
- console.error(
- '########## A unit test has failed.\n' +
- oUnitTest.sTitle + '\n' +
- '##### actual code (' +
- oProcessor.gen_code(oSyntacticCodeUnitActual).length +
- ' bytes)\n' +
- oProcessor.gen_code(
- oSyntacticCodeUnitActual,
- oCodeGenerationOptions) + '\n' +
- '##### expected code (' +
- oProcessor.gen_code(oSyntacticCodeUnitExpected).length +
- ' bytes)\n' +
- oProcessor.gen_code(
- oSyntacticCodeUnitExpected,
- oCodeGenerationOptions));
- }
- };
-
- [
- // 7.6.1 Reserved Words.
- {
- sTitle:
- 'Omission of keywords while choosing an identifier name.',
- sInput:
- '(function() {' +
- ' var a, b, c, d, e, f, g, h, i, j, k, l, m,' +
- ' n, o, p, q, r, s, t, u, v, w, x, y, z,' +
- ' A, B, C, D, E, F, G, H, I, J, K, L, M,' +
- ' N, O, P, Q, R, S, T, U, V, W, X, Y, Z,' +
- ' $, _,' +
- ' aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am,' +
- ' an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az,' +
- ' aA, aB, aC, aD, aE, aF, aG, aH, aI, aJ, aK, aL, aM,' +
- ' aN, aO, aP, aQ, aR, aS, aT, aU, aV, aW, aX, aY, aZ,' +
- ' a$, a_,' +
- ' ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk, bl, bm,' +
- ' bn, bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz,' +
- ' bA, bB, bC, bD, bE, bF, bG, bH, bI, bJ, bK, bL, bM,' +
- ' bN, bO, bP, bQ, bR, bS, bT, bU, bV, bW, bX, bY, bZ,' +
- ' b$, b_,' +
- ' ca, cb, cc, cd, ce, cf, cg, ch, ci, cj, ck, cl, cm,' +
- ' cn, co, cp, cq, cr, cs, ct, cu, cv, cw, cx, cy, cz,' +
- ' cA, cB, cC, cD, cE, cF, cG, cH, cI, cJ, cK, cL, cM,' +
- ' cN, cO, cP, cQ, cR, cS, cT, cU, cV, cW, cX, cY, cZ,' +
- ' c$, c_,' +
- ' da, db, dc, dd, de, df, dg, dh, di, dj, dk, dl, dm,' +
- ' dn, dq, dr, ds, dt, du, dv, dw, dx, dy, dz,' +
- ' dA, dB, dC, dD, dE, dF, dG, dH, dI, dJ, dK, dL, dM,' +
- ' dN, dO, dP, dQ, dR, dS, dT, dU, dV, dW, dX, dY, dZ,' +
- ' d$, d_;' +
- ' void ["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",' +
- ' "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"];' +
- '}());',
- sOutput:
- '(function() {' +
- ' var dp =' +
- ' "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",' +
- ' a, b, c, d, e, f, g, h, i, j, k, l, m,' +
- ' n, o, p, q, r, s, t, u, v, w, x, y, z,' +
- ' A, B, C, D, E, F, G, H, I, J, K, L, M,' +
- ' N, O, P, Q, R, S, T, U, V, W, X, Y, Z,' +
- ' $, _,' +
- ' aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am,' +
- ' an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az,' +
- ' aA, aB, aC, aD, aE, aF, aG, aH, aI, aJ, aK, aL, aM,' +
- ' aN, aO, aP, aQ, aR, aS, aT, aU, aV, aW, aX, aY, aZ,' +
- ' a$, a_,' +
- ' ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk, bl, bm,' +
- ' bn, bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz,' +
- ' bA, bB, bC, bD, bE, bF, bG, bH, bI, bJ, bK, bL, bM,' +
- ' bN, bO, bP, bQ, bR, bS, bT, bU, bV, bW, bX, bY, bZ,' +
- ' b$, b_,' +
- ' ca, cb, cc, cd, ce, cf, cg, ch, ci, cj, ck, cl, cm,' +
- ' cn, co, cp, cq, cr, cs, ct, cu, cv, cw, cx, cy, cz,' +
- ' cA, cB, cC, cD, cE, cF, cG, cH, cI, cJ, cK, cL, cM,' +
- ' cN, cO, cP, cQ, cR, cS, cT, cU, cV, cW, cX, cY, cZ,' +
- ' c$, c_,' +
- ' da, db, dc, dd, de, df, dg, dh, di, dj, dk, dl, dm,' +
- ' dn, dq, dr, ds, dt, du, dv, dw, dx, dy, dz,' +
- ' dA, dB, dC, dD, dE, dF, dG, dH, dI, dJ, dK, dL, dM,' +
- ' dN, dO, dP, dQ, dR, dS, dT, dU, dV, dW, dX, dY, dZ,' +
- ' d$, d_;' +
- ' void [dp, dp];' +
- '}());'
- },
- // 7.8.1 Null Literals.
- {
- sTitle:
- 'Evaluation with regard to the null value.',
- sInput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' var foo;' +
- ' void [null, null, null];' +
- '}());' +
- 'eval("");' +
- '(function() {' +
- ' var foo;' +
- ' void [null, null];' +
- '}());',
- sOutput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' var a = null, foo;' +
- ' void [a, a, a];' +
- '}());' +
- 'eval("");' +
- '(function() {' +
- ' var foo;' +
- ' void [null, null];' +
- '}());'
- },
- // 7.8.2 Boolean Literals.
- {
- sTitle:
- 'Evaluation with regard to the false value.',
- sInput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' var foo;' +
- ' void [false, false, false];' +
- '}());' +
- 'eval("");' +
- '(function() {' +
- ' var foo;' +
- ' void [false, false];' +
- '}());',
- sOutput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' var a = false, foo;' +
- ' void [a, a, a];' +
- '}());' +
- 'eval("");' +
- '(function() {' +
- ' var foo;' +
- ' void [false, false];' +
- '}());'
- },
- {
- sTitle:
- 'Evaluation with regard to the true value.',
- sInput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' var foo;' +
- ' void [true, true, true];' +
- '}());' +
- 'eval("");' +
- '(function() {' +
- ' var foo;' +
- ' void [true, true];' +
- '}());',
- sOutput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' var a = true, foo;' +
- ' void [a, a, a];' +
- '}());' +
- 'eval("");' +
- '(function() {' +
- ' var foo;' +
- ' void [true, true];' +
- '}());'
- },
- // 7.8.4 String Literals.
- {
- sTitle:
- 'Evaluation with regard to the String value of a string literal.',
- sInput:
- '(function() {' +
- ' var foo;' +
- ' void ["abcd", "abcd", "abc", "abc"];' +
- '}());',
- sOutput:
- '(function() {' +
- ' var a = "abcd", foo;' +
- ' void [a, a, "abc", "abc"];' +
- '}());'
- },
- // 7.8.5 Regular Expression Literals.
- {
- sTitle:
- 'Preservation of the pattern of a regular expression literal.',
- sInput:
- 'void [/abcdefghijklmnopqrstuvwxyz/, /abcdefghijklmnopqrstuvwxyz/];'
- },
- {
- sTitle:
- 'Preservation of the flags of a regular expression literal.',
- sInput:
- 'void [/(?:)/gim, /(?:)/gim, /(?:)/gim, /(?:)/gim, /(?:)/gim,' +
- ' /(?:)/gim, /(?:)/gim, /(?:)/gim, /(?:)/gim, /(?:)/gim,' +
- ' /(?:)/gim, /(?:)/gim, /(?:)/gim, /(?:)/gim, /(?:)/gim];'
- },
- // 10.2 Lexical Environments.
- {
- sTitle:
- 'Preservation of identifier names in the same scope.',
- sInput:
- '/*jshint shadow:true */' +
- 'var a;' +
- 'function b(i) {' +
- '}' +
- 'for (var c; 0 === Math.random(););' +
- 'for (var d in {});' +
- 'void ["abcdefghijklmnopqrstuvwxyz"];' +
- 'void [b(a), b(c), b(d)];' +
- 'void [typeof e];' +
- 'i: for (; 0 === Math.random();) {' +
- ' if (42 === (new Date()).getMinutes()) {' +
- ' continue i;' +
- ' } else {' +
- ' break i;' +
- ' }' +
- '}' +
- 'try {' +
- '} catch (f) {' +
- '} finally {' +
- '}' +
- '(function g(h) {' +
- '}());' +
- 'void [{' +
- ' i: 42,' +
- ' "j": 42,' +
- ' \'k\': 42' +
- '}];' +
- 'void ["abcdefghijklmnopqrstuvwxyz"];',
- sOutput:
- '/*jshint shadow:true */' +
- 'var a;' +
- 'function b(i) {' +
- '}' +
- 'for (var c; 0 === Math.random(););' +
- 'for (var d in {});' +
- '(function() {' +
- ' var i = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [i];' +
- ' void [b(a), b(c), b(d)];' +
- ' void [typeof e];' +
- ' i: for (; 0 === Math.random();) {' +
- ' if (42 === (new Date()).getMinutes()) {' +
- ' continue i;' +
- ' } else {' +
- ' break i;' +
- ' }' +
- ' }' +
- ' try {' +
- ' } catch (f) {' +
- ' } finally {' +
- ' }' +
- ' (function g(h) {' +
- ' }());' +
- ' void [{' +
- ' i: 42,' +
- ' "j": 42,' +
- ' \'k\': 42' +
- ' }];' +
- ' void [i];' +
- '}());'
- },
- {
- sTitle:
- 'Preservation of identifier names in nested function code.',
- sInput:
- '(function() {' +
- ' void ["abcdefghijklmnopqrstuvwxyz"];' +
- ' (function() {' +
- ' var a;' +
- ' for (var b; 0 === Math.random(););' +
- ' for (var c in {});' +
- ' void [typeof d];' +
- ' h: for (; 0 === Math.random();) {' +
- ' if (42 === (new Date()).getMinutes()) {' +
- ' continue h;' +
- ' } else {' +
- ' break h;' +
- ' }' +
- ' }' +
- ' try {' +
- ' } catch (e) {' +
- ' } finally {' +
- ' }' +
- ' (function f(g) {' +
- ' }());' +
- ' void [{' +
- ' h: 42,' +
- ' "i": 42,' +
- ' \'j\': 42' +
- ' }];' +
- ' }());' +
- ' void ["abcdefghijklmnopqrstuvwxyz"];' +
- '}());',
- sOutput:
- '(function() {' +
- ' var h = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [h];' +
- ' (function() {' +
- ' var a;' +
- ' for (var b; 0 === Math.random(););' +
- ' for (var c in {});' +
- ' void [typeof d];' +
- ' h: for (; 0 === Math.random();) {' +
- ' if (42 === (new Date()).getMinutes()) {' +
- ' continue h;' +
- ' } else {' +
- ' break h;' +
- ' }' +
- ' }' +
- ' try {' +
- ' } catch (e) {' +
- ' } finally {' +
- ' }' +
- ' (function f(g) {' +
- ' }());' +
- ' void [{' +
- ' h: 42,' +
- ' "i": 42,' +
- ' \'j\': 42' +
- ' }];' +
- ' }());' +
- ' void [h];' +
- '}());'
- },
- {
- sTitle:
- 'Consolidation of a closure with other source elements.',
- sInput:
- '(function(foo) {' +
- '}("abcdefghijklmnopqrstuvwxyz"));' +
- 'void ["abcdefghijklmnopqrstuvwxyz"];',
- sOutput:
- '(function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' (function(foo) {' +
- ' })(a);' +
- ' void [a];' +
- '}());'
- },
- {
- sTitle:
- 'Consolidation of function code instead of a sole closure.',
- sInput:
- '(function(foo, bar) {' +
- ' void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- '}("abcdefghijklmnopqrstuvwxyz", "abcdefghijklmnopqrstuvwxyz"));',
- sOutput:
- '(function(foo, bar) {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- '}("abcdefghijklmnopqrstuvwxyz", "abcdefghijklmnopqrstuvwxyz"));'
- },
- // 11.1.5 Object Initialiser.
- {
- sTitle:
- 'Preservation of property names of an object initialiser.',
- sInput:
- 'var foo = {' +
- ' abcdefghijklmnopqrstuvwxyz: 42,' +
- ' "zyxwvutsrqponmlkjihgfedcba": 42,' +
- ' \'mlkjihgfedcbanopqrstuvwxyz\': 42' +
- '};' +
- 'void [' +
- ' foo.abcdefghijklmnopqrstuvwxyz,' +
- ' "zyxwvutsrqponmlkjihgfedcba",' +
- ' \'mlkjihgfedcbanopqrstuvwxyz\'' +
- '];'
- },
- {
- sTitle:
- 'Evaluation with regard to String values derived from identifier ' +
- 'names used as property accessors.',
- sInput:
- '(function() {' +
- ' var foo;' +
- ' void [' +
- ' Math.abcdefghij,' +
- ' Math.abcdefghij,' +
- ' Math.abcdefghi,' +
- ' Math.abcdefghi' +
- ' ];' +
- '}());',
- sOutput:
- '(function() {' +
- ' var a = "abcdefghij", foo;' +
- ' void [' +
- ' Math[a],' +
- ' Math[a],' +
- ' Math.abcdefghi,' +
- ' Math.abcdefghi' +
- ' ];' +
- '}());'
- },
- // 11.2.1 Property Accessors.
- {
- sTitle:
- 'Preservation of identifiers in the nonterminal MemberExpression.',
- sInput:
- 'void [' +
- ' Math.E,' +
- ' Math.LN10,' +
- ' Math.LN2,' +
- ' Math.LOG2E,' +
- ' Math.LOG10E,' +
- ' Math.PI,' +
- ' Math.SQRT1_2,' +
- ' Math.SQRT2,' +
- ' Math.abs,' +
- ' Math.acos' +
- '];'
- },
- // 12.2 Variable Statement.
- {
- sTitle:
- 'Preservation of the identifier of a variable that is being ' +
- 'declared in a variable statement.',
- sInput:
- '(function() {' +
- ' var abcdefghijklmnopqrstuvwxyz;' +
- ' void [abcdefghijklmnopqrstuvwxyz];' +
- '}());'
- },
- {
- sTitle:
- 'Exclusion of a variable statement in global code.',
- sInput:
- 'void ["abcdefghijklmnopqrstuvwxyz"];' +
- 'var foo = "abcdefghijklmnopqrstuvwxyz",' +
- ' bar = "abcdefghijklmnopqrstuvwxyz";' +
- 'void ["abcdefghijklmnopqrstuvwxyz"];'
- },
- {
- sTitle:
- 'Exclusion of a variable statement in function code that ' +
- 'contains a with statement.',
- sInput:
- '(function() {' +
- ' with ({});' +
- ' void ["abcdefghijklmnopqrstuvwxyz"];' +
- ' var foo;' +
- ' void ["abcdefghijklmnopqrstuvwxyz"];' +
- '}());'
- },
- {
- sTitle:
- 'Exclusion of a variable statement in function code that ' +
- 'contains a direct call to the eval function.',
- sInput:
- '/*jshint evil:true */' +
- 'void [' +
- ' function() {' +
- ' eval("");' +
- ' void ["abcdefghijklmnopqrstuvwxyz"];' +
- ' var foo;' +
- ' void ["abcdefghijklmnopqrstuvwxyz"];' +
- ' }' +
- '];'
- },
- {
- sTitle:
- 'Consolidation within a variable statement in global code.',
- sInput:
- 'var foo = function() {' +
- ' void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- '};',
- sOutput:
- 'var foo = function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- '};'
- },
- {
- sTitle:
- 'Consolidation within a variable statement excluded in function ' +
- 'code due to the presence of a with statement.',
- sInput:
- '(function() {' +
- ' with ({});' +
- ' var foo = function() {' +
- ' void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- ' };' +
- '}());',
- sOutput:
- '(function() {' +
- ' with ({});' +
- ' var foo = function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- ' };' +
- '}());'
- },
- {
- sTitle:
- 'Consolidation within a variable statement excluded in function ' +
- 'code due to the presence of a direct call to the eval function.',
- sInput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' eval("");' +
- ' var foo = function() {' +
- ' void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- ' };' +
- '}());',
- sOutput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' eval("");' +
- ' var foo = function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- ' };' +
- '}());'
- },
- {
- sTitle:
- 'Inclusion of a variable statement in function code that ' +
- 'contains no with statement and no direct call to the eval ' +
- 'function.',
- sInput:
- '(function() {' +
- ' void ["abcdefghijklmnopqrstuvwxyz"];' +
- ' var foo;' +
- ' void ["abcdefghijklmnopqrstuvwxyz"];' +
- '}());',
- sOutput:
- '(function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a];' +
- ' var foo;' +
- ' void [a];' +
- '}());'
- },
- {
- sTitle:
- 'Ignorance with regard to a variable statement in global code.',
- sInput:
- 'var foo = "abcdefghijklmnopqrstuvwxyz";' +
- 'void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];',
- sOutput:
- 'var foo = "abcdefghijklmnopqrstuvwxyz";' +
- '(function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- '}());'
- },
- // 12.4 Expression Statement.
- {
- sTitle:
- 'Preservation of identifiers in an expression statement.',
- sInput:
- 'void [typeof abcdefghijklmnopqrstuvwxyz,' +
- ' typeof abcdefghijklmnopqrstuvwxyz];'
- },
- // 12.6.3 The {@code for} Statement.
- {
- sTitle:
- 'Preservation of identifiers in the variable declaration list of ' +
- 'a for statement.',
- sInput:
- 'for (var abcdefghijklmnopqrstuvwxyz; 0 === Math.random(););' +
- 'for (var abcdefghijklmnopqrstuvwxyz; 0 === Math.random(););'
- },
- // 12.6.4 The {@code for-in} Statement.
- {
- sTitle:
- 'Preservation of identifiers in the variable declaration list of ' +
- 'a for-in statement.',
- sInput:
- 'for (var abcdefghijklmnopqrstuvwxyz in {});' +
- 'for (var abcdefghijklmnopqrstuvwxyz in {});'
- },
- // 12.7 The {@code continue} Statement.
- {
- sTitle:
- 'Preservation of the identifier in a continue statement.',
- sInput:
- 'abcdefghijklmnopqrstuvwxyz: for (; 0 === Math.random();) {' +
- ' continue abcdefghijklmnopqrstuvwxyz;' +
- '}' +
- 'abcdefghijklmnopqrstuvwxyz: for (; 0 === Math.random();) {' +
- ' continue abcdefghijklmnopqrstuvwxyz;' +
- '}'
- },
- // 12.8 The {@code break} Statement.
- {
- sTitle:
- 'Preservation of the identifier in a break statement.',
- sInput:
- 'abcdefghijklmnopqrstuvwxyz: for (; 0 === Math.random();) {' +
- ' break abcdefghijklmnopqrstuvwxyz;' +
- '}' +
- 'abcdefghijklmnopqrstuvwxyz: for (; 0 === Math.random();) {' +
- ' break abcdefghijklmnopqrstuvwxyz;' +
- '}'
- },
- // 12.9 The {@code return} Statement.
- {
- sTitle:
- 'Exclusion of a return statement in function code that contains ' +
- 'a with statement.',
- sInput:
- '(function() {' +
- ' with ({});' +
- ' void ["abcdefghijklmnopqrstuvwxyz"];' +
- ' if (0 === Math.random()) {' +
- ' return;' +
- ' } else {' +
- ' }' +
- ' void ["abcdefghijklmnopqrstuvwxyz"];' +
- '}());'
- },
- {
- sTitle:
- 'Exclusion of a return statement in function code that contains ' +
- 'a direct call to the eval function.',
- sInput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' eval("");' +
- ' void ["abcdefghijklmnopqrstuvwxyz"];' +
- ' if (0 === Math.random()) {' +
- ' return;' +
- ' } else {' +
- ' }' +
- ' void ["abcdefghijklmnopqrstuvwxyz"];' +
- '}());'
- },
- {
- sTitle:
- 'Consolidation within a return statement excluded in function ' +
- 'code due to the presence of a with statement.',
- sInput:
- '(function() {' +
- ' with ({});' +
- ' return function() {' +
- ' void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- ' };' +
- '}());',
- sOutput:
- '(function() {' +
- ' with ({});' +
- ' return function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- ' };' +
- '}());'
- },
- {
- sTitle:
- 'Consolidation within a return statement excluded in function ' +
- 'code due to the presence of a direct call to the eval function.',
- sInput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' eval("");' +
- ' return function() {' +
- ' void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- ' };' +
- '}());',
- sOutput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' eval("");' +
- ' return function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- ' };' +
- '}());'
- },
- {
- sTitle:
- 'Inclusion of a return statement in function code that contains ' +
- 'no with statement and no direct call to the eval function.',
- sInput:
- '(function() {' +
- ' void ["abcdefghijklmnopqrstuvwxyz"];' +
- ' if (0 === Math.random()) {' +
- ' return;' +
- ' } else {' +
- ' }' +
- ' void ["abcdefghijklmnopqrstuvwxyz"];' +
- '}());',
- sOutput:
- '(function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a];' +
- ' if (0 === Math.random()) {' +
- ' return;' +
- ' } else {' +
- ' }' +
- ' void [a];' +
- '}());'
- },
- // 12.10 The {@code with} Statement.
- {
- sTitle:
- 'Preservation of the statement in a with statement.',
- sInput:
- 'with ({}) {' +
- ' void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- '}'
- },
- {
- sTitle:
- 'Exclusion of a with statement in the same syntactic code unit.',
- sInput:
- 'void ["abcdefghijklmnopqrstuvwxyz"];' +
- 'with ({' +
- ' foo: "abcdefghijklmnopqrstuvwxyz",' +
- ' bar: "abcdefghijklmnopqrstuvwxyz"' +
- '}) {' +
- ' void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- '}' +
- 'void ["abcdefghijklmnopqrstuvwxyz"];'
- },
- {
- sTitle:
- 'Exclusion of a with statement in nested function code.',
- sInput:
- 'void ["abcdefghijklmnopqrstuvwxyz"];' +
- '(function() {' +
- ' with ({' +
- ' foo: "abcdefghijklmnopqrstuvwxyz",' +
- ' bar: "abcdefghijklmnopqrstuvwxyz"' +
- ' }) {' +
- ' void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- ' }' +
- '}());' +
- 'void ["abcdefghijklmnopqrstuvwxyz"];'
- },
- // 12.12 Labelled Statements.
- {
- sTitle:
- 'Preservation of the label of a labelled statement.',
- sInput:
- 'abcdefghijklmnopqrstuvwxyz: for (; 0 === Math.random(););' +
- 'abcdefghijklmnopqrstuvwxyz: for (; 0 === Math.random(););'
- },
- // 12.14 The {@code try} Statement.
- {
- sTitle:
- 'Preservation of the identifier in the catch clause of a try' +
- 'statement.',
- sInput:
- 'try {' +
- '} catch (abcdefghijklmnopqrstuvwxyz) {' +
- '} finally {' +
- '}' +
- 'try {' +
- '} catch (abcdefghijklmnopqrstuvwxyz) {' +
- '} finally {' +
- '}'
- },
- // 13 Function Definition.
- {
- sTitle:
- 'Preservation of the identifier of a function declaration.',
- sInput:
- 'function abcdefghijklmnopqrstuvwxyz() {' +
- '}' +
- 'void [abcdefghijklmnopqrstuvwxyz];'
- },
- {
- sTitle:
- 'Preservation of the identifier of a function expression.',
- sInput:
- 'void [' +
- ' function abcdefghijklmnopqrstuvwxyz() {' +
- ' },' +
- ' function abcdefghijklmnopqrstuvwxyz() {' +
- ' }' +
- '];'
- },
- {
- sTitle:
- 'Preservation of a formal parameter of a function declaration.',
- sInput:
- 'function foo(abcdefghijklmnopqrstuvwxyz) {' +
- '}' +
- 'function bar(abcdefghijklmnopqrstuvwxyz) {' +
- '}'
- },
- {
- sTitle:
- 'Preservation of a formal parameter in a function expression.',
- sInput:
- 'void [' +
- ' function(abcdefghijklmnopqrstuvwxyz) {' +
- ' },' +
- ' function(abcdefghijklmnopqrstuvwxyz) {' +
- ' }' +
- '];'
- },
- {
- sTitle:
- 'Exclusion of a function declaration.',
- sInput:
- 'void ["abcdefghijklmnopqrstuvwxyz"];' +
- 'function foo() {' +
- '}' +
- 'void ["abcdefghijklmnopqrstuvwxyz"];'
- },
- {
- sTitle:
- 'Consolidation within a function declaration.',
- sInput:
- 'function foo() {' +
- ' void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- '}',
- sOutput:
- 'function foo() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- '}'
- },
- // 14 Program.
- {
- sTitle:
- 'Preservation of a program without source elements.',
- sInput:
- ''
- },
- // 14.1 Directive Prologues and the Use Strict Directive.
- {
- sTitle:
- 'Preservation of a Directive Prologue in global code.',
- sInput:
- '"abcdefghijklmnopqrstuvwxyz";' +
- '\'zyxwvutsrqponmlkjihgfedcba\';'
- },
- {
- sTitle:
- 'Preservation of a Directive Prologue in a function declaration.',
- sInput:
- 'function foo() {' +
- ' "abcdefghijklmnopqrstuvwxyz";' +
- ' \'zyxwvutsrqponmlkjihgfedcba\';' +
- '}'
- },
- {
- sTitle:
- 'Preservation of a Directive Prologue in a function expression.',
- sInput:
- 'void [' +
- ' function() {' +
- ' "abcdefghijklmnopqrstuvwxyz";' +
- ' \'zyxwvutsrqponmlkjihgfedcba\';' +
- ' }' +
- '];'
- },
- {
- sTitle:
- 'Ignorance with regard to a Directive Prologue in global code.',
- sInput:
- '"abcdefghijklmnopqrstuvwxyz";' +
- 'void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];',
- sOutput:
- '"abcdefghijklmnopqrstuvwxyz";' +
- '(function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- '}());'
- },
- {
- sTitle:
- 'Ignorance with regard to a Directive Prologue in a function' +
- 'declaration.',
- sInput:
- 'function foo() {' +
- ' "abcdefghijklmnopqrstuvwxyz";' +
- ' void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- '}',
- sOutput:
- 'function foo() {' +
- ' "abcdefghijklmnopqrstuvwxyz";' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- '}'
- },
- {
- sTitle:
- 'Ignorance with regard to a Directive Prologue in a function' +
- 'expression.',
- sInput:
- '(function() {' +
- ' "abcdefghijklmnopqrstuvwxyz";' +
- ' void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- '}());',
- sOutput:
- '(function() {' +
- ' "abcdefghijklmnopqrstuvwxyz";' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- '}());'
- },
- // 15.1 The Global Object.
- {
- sTitle:
- 'Preservation of a property of the global object.',
- sInput:
- 'void [undefined, undefined, undefined, undefined, undefined];'
- },
- // 15.1.2.1.1 Direct Call to Eval.
- {
- sTitle:
- 'Exclusion of a direct call to the eval function in the same ' +
- 'syntactic code unit.',
- sInput:
- '/*jshint evil:true */' +
- 'void ["abcdefghijklmnopqrstuvwxyz"];' +
- 'eval("");' +
- 'void ["abcdefghijklmnopqrstuvwxyz"];'
- },
- {
- sTitle:
- 'Exclusion of a direct call to the eval function in nested ' +
- 'function code.',
- sInput:
- '/*jshint evil:true */' +
- 'void ["abcdefghijklmnopqrstuvwxyz"];' +
- '(function() {' +
- ' eval("");' +
- '}());' +
- 'void ["abcdefghijklmnopqrstuvwxyz"];'
- },
- {
- sTitle:
- 'Consolidation within a direct call to the eval function.',
- sInput:
- '/*jshint evil:true */' +
- 'eval(function() {' +
- ' void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- '}());',
- sOutput:
- '/*jshint evil:true */' +
- 'eval(function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- '}());'
- },
- // Consolidation proper.
- {
- sTitle:
- 'No consolidation if it does not result in a reduction of the ' +
- 'number of source characters.',
- sInput:
- '(function() {' +
- ' var foo;' +
- ' void ["ab", "ab", "abc", "abc"];' +
- '}());'
- },
- {
- sTitle:
- 'Identification of a range of source elements at the beginning ' +
- 'of global code.',
- sInput:
- '/*jshint evil:true */' +
- '"abcdefghijklmnopqrstuvwxyz";' +
- 'void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- 'eval("");',
- sOutput:
- '/*jshint evil:true */' +
- '"abcdefghijklmnopqrstuvwxyz";' +
- '(function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- '}());' +
- 'eval("");'
- },
- {
- sTitle:
- 'Identification of a range of source elements in the middle of ' +
- 'global code.',
- sInput:
- '/*jshint evil:true */' +
- '"abcdefghijklmnopqrstuvwxyz";' +
- 'eval("");' +
- 'void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- 'eval("");',
- sOutput:
- '/*jshint evil:true */' +
- '"abcdefghijklmnopqrstuvwxyz";' +
- 'eval("");' +
- '(function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- '}());' +
- 'eval("");'
- },
- {
- sTitle:
- 'Identification of a range of source elements at the end of ' +
- 'global code.',
- sInput:
- '/*jshint evil:true */' +
- '"abcdefghijklmnopqrstuvwxyz";' +
- 'eval("");' +
- 'void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];',
- sOutput:
- '/*jshint evil:true */' +
- '"abcdefghijklmnopqrstuvwxyz";' +
- 'eval("");' +
- '(function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- '}());'
- },
- {
- sTitle:
- 'Identification of a range of source elements at the beginning ' +
- 'of function code.',
- sInput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' "abcdefghijklmnopqrstuvwxyz";' +
- ' void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- ' eval("");' +
- '}());',
- sOutput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' "abcdefghijklmnopqrstuvwxyz";' +
- ' (function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- ' }());' +
- ' eval("");' +
- '}());'
- },
- {
- sTitle:
- 'Identification of a range of source elements in the middle of ' +
- 'function code.',
- sInput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' "abcdefghijklmnopqrstuvwxyz";' +
- ' eval("");' +
- ' void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- ' eval("");' +
- '}());',
- sOutput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' "abcdefghijklmnopqrstuvwxyz";' +
- ' eval("");' +
- ' (function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- ' }());' +
- ' eval("");' +
- '}());'
- },
- {
- sTitle:
- 'Identification of a range of source elements at the end of ' +
- 'function code.',
- sInput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' "abcdefghijklmnopqrstuvwxyz";' +
- ' eval("");' +
- ' void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];' +
- '}());',
- sOutput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' "abcdefghijklmnopqrstuvwxyz";' +
- ' eval("");' +
- ' (function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- ' }());' +
- '}());'
- },
- {
- sTitle:
- 'Evaluation with regard to String values of String literals and ' +
- 'String values derived from identifier names used as property' +
- 'accessors.',
- sInput:
- '(function() {' +
- ' var foo;' +
- ' void ["abcdefg", Math.abcdefg, "abcdef", Math.abcdef];' +
- '}());',
- sOutput:
- '(function() {' +
- ' var a = "abcdefg", foo;' +
- ' void [a, Math[a], "abcdef", Math.abcdef];' +
- '}());'
- },
- {
- sTitle:
- 'Evaluation with regard to the necessity of adding a variable ' +
- 'statement.',
- sInput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' void ["abcdefgh", "abcdefgh"];' +
- '}());' +
- 'eval("");' +
- '(function() {' +
- ' void ["abcdefg", "abcdefg"];' +
- '}());' +
- 'eval("");' +
- '(function() {' +
- ' var foo;' +
- ' void ["abcd", "abcd"];' +
- '}());',
- sOutput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' var a = "abcdefgh";' +
- ' void [a, a];' +
- '}());' +
- 'eval("");' +
- '(function() {' +
- ' void ["abcdefg", "abcdefg"];' +
- '}());' +
- 'eval("");' +
- '(function() {' +
- ' var a = "abcd", foo;' +
- ' void [a, a];' +
- '}());'
- },
- {
- sTitle:
- 'Evaluation with regard to the necessity of enclosing source ' +
- 'elements.',
- sInput:
- '/*jshint evil:true */' +
- 'void ["abcdefghijklmnopqrstuvwxy", "abcdefghijklmnopqrstuvwxy"];' +
- 'eval("");' +
- 'void ["abcdefghijklmnopqrstuvwx", "abcdefghijklmnopqrstuvwx"];' +
- 'eval("");' +
- '(function() {' +
- ' void ["abcdefgh", "abcdefgh"];' +
- '}());' +
- '(function() {' +
- ' void ["abcdefghijklmnopqrstuvwxy",' +
- ' "abcdefghijklmnopqrstuvwxy"];' +
- ' eval("");' +
- ' void ["abcdefghijklmnopqrstuvwx",' +
- ' "abcdefghijklmnopqrstuvwx"];' +
- ' eval("");' +
- ' (function() {' +
- ' void ["abcdefgh", "abcdefgh"];' +
- ' }());' +
- '}());',
- sOutput:
- '/*jshint evil:true */' +
- '(function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxy";' +
- ' void [a, a];' +
- '}());' +
- 'eval("");' +
- 'void ["abcdefghijklmnopqrstuvwx", "abcdefghijklmnopqrstuvwx"];' +
- 'eval("");' +
- '(function() {' +
- ' var a = "abcdefgh";' +
- ' void [a, a];' +
- '}());' +
- '(function() {' +
- ' (function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxy";' +
- ' void [a, a];' +
- ' }());' +
- ' eval("");' +
- ' void ["abcdefghijklmnopqrstuvwx", "abcdefghijklmnopqrstuvwx"];' +
- ' eval("");' +
- ' (function() {' +
- ' var a = "abcdefgh";' +
- ' void [a, a];' +
- ' }());' +
- '}());'
- },
- {
- sTitle:
- 'Employment of a closure while consolidating in global code.',
- sInput:
- 'void ["abcdefghijklmnopqrstuvwxyz",' +
- ' "abcdefghijklmnopqrstuvwxyz"];',
- sOutput:
- '(function() {' +
- ' var a = "abcdefghijklmnopqrstuvwxyz";' +
- ' void [a, a];' +
- '}());'
- },
- {
- sTitle:
- 'Assignment of a shorter identifier to a value whose ' +
- 'consolidation results in a greater reduction of the number of ' +
- 'source characters.',
- sInput:
- '(function() {' +
- ' var b, c, d, e, f, g, h, i, j, k, l, m,' +
- ' n, o, p, q, r, s, t, u, v, w, x, y, z,' +
- ' A, B, C, D, E, F, G, H, I, J, K, L, M,' +
- ' N, O, P, Q, R, S, T, U, V, W, X, Y, Z,' +
- ' $, _;' +
- ' void ["abcde", "abcde", "edcba", "edcba", "edcba"];' +
- '}());',
- sOutput:
- '(function() {' +
- ' var a = "edcba",' +
- ' b, c, d, e, f, g, h, i, j, k, l, m,' +
- ' n, o, p, q, r, s, t, u, v, w, x, y, z,' +
- ' A, B, C, D, E, F, G, H, I, J, K, L, M,' +
- ' N, O, P, Q, R, S, T, U, V, W, X, Y, Z,' +
- ' $, _;' +
- ' void ["abcde", "abcde", a, a, a];' +
- '}());'
- }
- ].forEach(cAssert);
- }());
-}
-
-/* Local Variables: */
-/* mode: js */
-/* coding: utf-8 */
-/* indent-tabs-mode: nil */
-/* tab-width: 2 */
-/* End: */
-/* vim: set ft=javascript fenc=utf-8 et ts=2 sts=2 sw=2: */
-/* :mode=javascript:noTabs=true:tabSize=2:indentSize=2:deepIndent=true: */
-
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/object-ast.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/object-ast.js
deleted file mode 100644
index afdb69fbd07..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/object-ast.js
+++ /dev/null
@@ -1,75 +0,0 @@
-var jsp = require("./parse-js"),
- pro = require("./process");
-
-var BY_TYPE = {};
-
-function HOP(obj, prop) {
- return Object.prototype.hasOwnProperty.call(obj, prop);
-};
-
-function AST_Node(parent) {
- this.parent = parent;
-};
-
-AST_Node.prototype.init = function(){};
-
-function DEFINE_NODE_CLASS(type, props, methods) {
- var base = methods && methods.BASE || AST_Node;
- if (!base) base = AST_Node;
- function D(parent, data) {
- base.apply(this, arguments);
- if (props) props.forEach(function(name, i){
- this["_" + name] = data[i];
- });
- this.init();
- };
- var P = D.prototype = new AST_Node;
- P.node_type = function(){ return type };
- if (props) props.forEach(function(name){
- var propname = "_" + name;
- P["set_" + name] = function(val) {
- this[propname] = val;
- return this;
- };
- P["get_" + name] = function() {
- return this[propname];
- };
- });
- if (type != null) BY_TYPE[type] = D;
- if (methods) for (var i in methods) if (HOP(methods, i)) {
- P[i] = methods[i];
- }
- return D;
-};
-
-var AST_String_Node = DEFINE_NODE_CLASS("string", ["value"]);
-var AST_Number_Node = DEFINE_NODE_CLASS("num", ["value"]);
-var AST_Name_Node = DEFINE_NODE_CLASS("name", ["value"]);
-
-var AST_Statlist_Node = DEFINE_NODE_CLASS(null, ["body"]);
-var AST_Root_Node = DEFINE_NODE_CLASS("toplevel", null, { BASE: AST_Statlist_Node });
-var AST_Block_Node = DEFINE_NODE_CLASS("block", null, { BASE: AST_Statlist_Node });
-var AST_Splice_Node = DEFINE_NODE_CLASS("splice", null, { BASE: AST_Statlist_Node });
-
-var AST_Var_Node = DEFINE_NODE_CLASS("var", ["definitions"]);
-var AST_Const_Node = DEFINE_NODE_CLASS("const", ["definitions"]);
-
-var AST_Try_Node = DEFINE_NODE_CLASS("try", ["body", "catch", "finally"]);
-var AST_Throw_Node = DEFINE_NODE_CLASS("throw", ["exception"]);
-
-var AST_New_Node = DEFINE_NODE_CLASS("new", ["constructor", "arguments"]);
-
-var AST_Switch_Node = DEFINE_NODE_CLASS("switch", ["expression", "branches"]);
-var AST_Switch_Branch_Node = DEFINE_NODE_CLASS(null, ["expression", "body"]);
-
-var AST_Break_Node = DEFINE_NODE_CLASS("break", ["label"]);
-var AST_Continue_Node = DEFINE_NODE_CLASS("continue", ["label"]);
-var AST_Assign_Node = DEFINE_NODE_CLASS("assign", ["operator", "lvalue", "rvalue"]);
-var AST_Dot_Node = DEFINE_NODE_CLASS("dot", ["expression", "name"]);
-var AST_Call_Node = DEFINE_NODE_CLASS("call", ["function", "arguments"]);
-
-var AST_Lambda_Node = DEFINE_NODE_CLASS(null, ["name", "arguments", "body"])
-var AST_Function_Node = DEFINE_NODE_CLASS("function", null, AST_Lambda_Node);
-var AST_Defun_Node = DEFINE_NODE_CLASS("defun", null, AST_Lambda_Node);
-
-var AST_If_Node = DEFINE_NODE_CLASS("if", ["condition", "then", "else"]);
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/parse-js.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/parse-js.js
deleted file mode 100644
index dccd623808a..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/parse-js.js
+++ /dev/null
@@ -1,1346 +0,0 @@
-/***********************************************************************
-
- A JavaScript tokenizer / parser / beautifier / compressor.
-
- This version is suitable for Node.js. With minimal changes (the
- exports stuff) it should work on any JS platform.
-
- This file contains the tokenizer/parser. It is a port to JavaScript
- of parse-js [1], a JavaScript parser library written in Common Lisp
- by Marijn Haverbeke. Thank you Marijn!
-
- [1] http://marijn.haverbeke.nl/parse-js/
-
- Exported functions:
-
- - tokenizer(code) -- returns a function. Call the returned
- function to fetch the next token.
-
- - parse(code) -- returns an AST of the given JavaScript code.
-
- -------------------------------- (C) ---------------------------------
-
- Author: Mihai Bazon
- <mihai.bazon@gmail.com>
- http://mihai.bazon.net/blog
-
- Distributed 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.
-
- ***********************************************************************/
-
-/* -----[ Tokenizer (constants) ]----- */
-
-var KEYWORDS = array_to_hash([
- "break",
- "case",
- "catch",
- "const",
- "continue",
- "debugger",
- "default",
- "delete",
- "do",
- "else",
- "finally",
- "for",
- "function",
- "if",
- "in",
- "instanceof",
- "new",
- "return",
- "switch",
- "throw",
- "try",
- "typeof",
- "var",
- "void",
- "while",
- "with"
-]);
-
-var RESERVED_WORDS = array_to_hash([
- "abstract",
- "boolean",
- "byte",
- "char",
- "class",
- "double",
- "enum",
- "export",
- "extends",
- "final",
- "float",
- "goto",
- "implements",
- "import",
- "int",
- "interface",
- "long",
- "native",
- "package",
- "private",
- "protected",
- "public",
- "short",
- "static",
- "super",
- "synchronized",
- "throws",
- "transient",
- "volatile"
-]);
-
-var KEYWORDS_BEFORE_EXPRESSION = array_to_hash([
- "return",
- "new",
- "delete",
- "throw",
- "else",
- "case"
-]);
-
-var KEYWORDS_ATOM = array_to_hash([
- "false",
- "null",
- "true",
- "undefined"
-]);
-
-var OPERATOR_CHARS = array_to_hash(characters("+-*&%=<>!?|~^"));
-
-var RE_HEX_NUMBER = /^0x[0-9a-f]+$/i;
-var RE_OCT_NUMBER = /^0[0-7]+$/;
-var RE_DEC_NUMBER = /^\d*\.?\d*(?:e[+-]?\d*(?:\d\.?|\.?\d)\d*)?$/i;
-
-var OPERATORS = array_to_hash([
- "in",
- "instanceof",
- "typeof",
- "new",
- "void",
- "delete",
- "++",
- "--",
- "+",
- "-",
- "!",
- "~",
- "&",
- "|",
- "^",
- "*",
- "/",
- "%",
- ">>",
- "<<",
- ">>>",
- "<",
- ">",
- "<=",
- ">=",
- "==",
- "===",
- "!=",
- "!==",
- "?",
- "=",
- "+=",
- "-=",
- "/=",
- "*=",
- "%=",
- ">>=",
- "<<=",
- ">>>=",
- "|=",
- "^=",
- "&=",
- "&&",
- "||"
-]);
-
-var WHITESPACE_CHARS = array_to_hash(characters(" \u00a0\n\r\t\f\u000b\u200b\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000"));
-
-var PUNC_BEFORE_EXPRESSION = array_to_hash(characters("[{(,.;:"));
-
-var PUNC_CHARS = array_to_hash(characters("[]{}(),;:"));
-
-var REGEXP_MODIFIERS = array_to_hash(characters("gmsiy"));
-
-/* -----[ Tokenizer ]----- */
-
-// regexps adapted from http://xregexp.com/plugins/#unicode
-var UNICODE = {
- letter: new RegExp("[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0523\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0621-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971\\u0972\\u097B-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D28\\u0D2A-\\u0D39\\u0D3D\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC\\u0EDD\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8B\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10D0-\\u10FA\\u10FC\\u1100-\\u1159\\u115F-\\u11A2\\u11A8-\\u11F9\\u1200-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u1676\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19A9\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u2094\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2C6F\\u2C71-\\u2C7D\\u2C80-\\u2CE4\\u2D00-\\u2D25\\u2D30-\\u2D65\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31B7\\u31F0-\\u31FF\\u3400\\u4DB5\\u4E00\\u9FC3\\uA000-\\uA48C\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA65F\\uA662-\\uA66E\\uA67F-\\uA697\\uA717-\\uA71F\\uA722-\\uA788\\uA78B\\uA78C\\uA7FB-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA90A-\\uA925\\uA930-\\uA946\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAC00\\uD7A3\\uF900-\\uFA2D\\uFA30-\\uFA6A\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),
- non_spacing_mark: new RegExp("[\\u0300-\\u036F\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065E\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0900-\\u0902\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0CBC\\u0CBF\\u0CC6\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F90-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1DC0-\\u1DE6\\u1DFD-\\u1DFF\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F\\uA67C\\uA67D\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE26]"),
- space_combining_mark: new RegExp("[\\u0903\\u093E-\\u0940\\u0949-\\u094C\\u094E\\u0982\\u0983\\u09BE-\\u09C0\\u09C7\\u09C8\\u09CB\\u09CC\\u09D7\\u0A03\\u0A3E-\\u0A40\\u0A83\\u0ABE-\\u0AC0\\u0AC9\\u0ACB\\u0ACC\\u0B02\\u0B03\\u0B3E\\u0B40\\u0B47\\u0B48\\u0B4B\\u0B4C\\u0B57\\u0BBE\\u0BBF\\u0BC1\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0BD7\\u0C01-\\u0C03\\u0C41-\\u0C44\\u0C82\\u0C83\\u0CBE\\u0CC0-\\u0CC4\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0CD5\\u0CD6\\u0D02\\u0D03\\u0D3E-\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D57\\u0D82\\u0D83\\u0DCF-\\u0DD1\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0F3E\\u0F3F\\u0F7F\\u102B\\u102C\\u1031\\u1038\\u103B\\u103C\\u1056\\u1057\\u1062-\\u1064\\u1067-\\u106D\\u1083\\u1084\\u1087-\\u108C\\u108F\\u109A-\\u109C\\u17B6\\u17BE-\\u17C5\\u17C7\\u17C8\\u1923-\\u1926\\u1929-\\u192B\\u1930\\u1931\\u1933-\\u1938\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A19-\\u1A1B\\u1A55\\u1A57\\u1A61\\u1A63\\u1A64\\u1A6D-\\u1A72\\u1B04\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43\\u1B44\\u1B82\\u1BA1\\u1BA6\\u1BA7\\u1BAA\\u1C24-\\u1C2B\\u1C34\\u1C35\\u1CE1\\u1CF2\\uA823\\uA824\\uA827\\uA880\\uA881\\uA8B4-\\uA8C3\\uA952\\uA953\\uA983\\uA9B4\\uA9B5\\uA9BA\\uA9BB\\uA9BD-\\uA9C0\\uAA2F\\uAA30\\uAA33\\uAA34\\uAA4D\\uAA7B\\uABE3\\uABE4\\uABE6\\uABE7\\uABE9\\uABEA\\uABEC]"),
- connector_punctuation: new RegExp("[\\u005F\\u203F\\u2040\\u2054\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF3F]")
-};
-
-function is_letter(ch) {
- return UNICODE.letter.test(ch);
-};
-
-function is_digit(ch) {
- ch = ch.charCodeAt(0);
- return ch >= 48 && ch <= 57; //XXX: find out if "UnicodeDigit" means something else than 0..9
-};
-
-function is_alphanumeric_char(ch) {
- return is_digit(ch) || is_letter(ch);
-};
-
-function is_unicode_combining_mark(ch) {
- return UNICODE.non_spacing_mark.test(ch) || UNICODE.space_combining_mark.test(ch);
-};
-
-function is_unicode_connector_punctuation(ch) {
- return UNICODE.connector_punctuation.test(ch);
-};
-
-function is_identifier_start(ch) {
- return ch == "$" || ch == "_" || is_letter(ch);
-};
-
-function is_identifier_char(ch) {
- return is_identifier_start(ch)
- || is_unicode_combining_mark(ch)
- || is_digit(ch)
- || is_unicode_connector_punctuation(ch)
- || ch == "\u200c" // zero-width non-joiner <ZWNJ>
- || ch == "\u200d" // zero-width joiner <ZWJ> (in my ECMA-262 PDF, this is also 200c)
- ;
-};
-
-function parse_js_number(num) {
- if (RE_HEX_NUMBER.test(num)) {
- return parseInt(num.substr(2), 16);
- } else if (RE_OCT_NUMBER.test(num)) {
- return parseInt(num.substr(1), 8);
- } else if (RE_DEC_NUMBER.test(num)) {
- return parseFloat(num);
- }
-};
-
-function JS_Parse_Error(message, line, col, pos) {
- this.message = message;
- this.line = line + 1;
- this.col = col + 1;
- this.pos = pos + 1;
- this.stack = new Error().stack;
-};
-
-JS_Parse_Error.prototype.toString = function() {
- return this.message + " (line: " + this.line + ", col: " + this.col + ", pos: " + this.pos + ")" + "\n\n" + this.stack;
-};
-
-function js_error(message, line, col, pos) {
- throw new JS_Parse_Error(message, line, col, pos);
-};
-
-function is_token(token, type, val) {
- return token.type == type && (val == null || token.value == val);
-};
-
-var EX_EOF = {};
-
-function tokenizer($TEXT) {
-
- var S = {
- text : $TEXT.replace(/\r\n?|[\n\u2028\u2029]/g, "\n").replace(/^\uFEFF/, ''),
- pos : 0,
- tokpos : 0,
- line : 0,
- tokline : 0,
- col : 0,
- tokcol : 0,
- newline_before : false,
- regex_allowed : false,
- comments_before : []
- };
-
- function peek() { return S.text.charAt(S.pos); };
-
- function next(signal_eof, in_string) {
- var ch = S.text.charAt(S.pos++);
- if (signal_eof && !ch)
- throw EX_EOF;
- if (ch == "\n") {
- S.newline_before = S.newline_before || !in_string;
- ++S.line;
- S.col = 0;
- } else {
- ++S.col;
- }
- return ch;
- };
-
- function eof() {
- return !S.peek();
- };
-
- function find(what, signal_eof) {
- var pos = S.text.indexOf(what, S.pos);
- if (signal_eof && pos == -1) throw EX_EOF;
- return pos;
- };
-
- function start_token() {
- S.tokline = S.line;
- S.tokcol = S.col;
- S.tokpos = S.pos;
- };
-
- function token(type, value, is_comment) {
- S.regex_allowed = ((type == "operator" && !HOP(UNARY_POSTFIX, value)) ||
- (type == "keyword" && HOP(KEYWORDS_BEFORE_EXPRESSION, value)) ||
- (type == "punc" && HOP(PUNC_BEFORE_EXPRESSION, value)));
- var ret = {
- type : type,
- value : value,
- line : S.tokline,
- col : S.tokcol,
- pos : S.tokpos,
- endpos : S.pos,
- nlb : S.newline_before
- };
- if (!is_comment) {
- ret.comments_before = S.comments_before;
- S.comments_before = [];
- }
- S.newline_before = false;
- return ret;
- };
-
- function skip_whitespace() {
- while (HOP(WHITESPACE_CHARS, peek()))
- next();
- };
-
- function read_while(pred) {
- var ret = "", ch = peek(), i = 0;
- while (ch && pred(ch, i++)) {
- ret += next();
- ch = peek();
- }
- return ret;
- };
-
- function parse_error(err) {
- js_error(err, S.tokline, S.tokcol, S.tokpos);
- };
-
- function read_num(prefix) {
- var has_e = false, after_e = false, has_x = false, has_dot = prefix == ".";
- var num = read_while(function(ch, i){
- if (ch == "x" || ch == "X") {
- if (has_x) return false;
- return has_x = true;
- }
- if (!has_x && (ch == "E" || ch == "e")) {
- if (has_e) return false;
- return has_e = after_e = true;
- }
- if (ch == "-") {
- if (after_e || (i == 0 && !prefix)) return true;
- return false;
- }
- if (ch == "+") return after_e;
- after_e = false;
- if (ch == ".") {
- if (!has_dot && !has_x)
- return has_dot = true;
- return false;
- }
- return is_alphanumeric_char(ch);
- });
- if (prefix)
- num = prefix + num;
- var valid = parse_js_number(num);
- if (!isNaN(valid)) {
- return token("num", valid);
- } else {
- parse_error("Invalid syntax: " + num);
- }
- };
-
- function read_escaped_char(in_string) {
- var ch = next(true, in_string);
- switch (ch) {
- case "n" : return "\n";
- case "r" : return "\r";
- case "t" : return "\t";
- case "b" : return "\b";
- case "v" : return "\u000b";
- case "f" : return "\f";
- case "0" : return "\0";
- case "x" : return String.fromCharCode(hex_bytes(2));
- case "u" : return String.fromCharCode(hex_bytes(4));
- case "\n": return "";
- default : return ch;
- }
- };
-
- function hex_bytes(n) {
- var num = 0;
- for (; n > 0; --n) {
- var digit = parseInt(next(true), 16);
- if (isNaN(digit))
- parse_error("Invalid hex-character pattern in string");
- num = (num << 4) | digit;
- }
- return num;
- };
-
- function read_string() {
- return with_eof_error("Unterminated string constant", function(){
- var quote = next(), ret = "";
- for (;;) {
- var ch = next(true);
- if (ch == "\\") {
- // read OctalEscapeSequence (XXX: deprecated if "strict mode")
- // https://github.com/mishoo/UglifyJS/issues/178
- var octal_len = 0, first = null;
- ch = read_while(function(ch){
- if (ch >= "0" && ch <= "7") {
- if (!first) {
- first = ch;
- return ++octal_len;
- }
- else if (first <= "3" && octal_len <= 2) return ++octal_len;
- else if (first >= "4" && octal_len <= 1) return ++octal_len;
- }
- return false;
- });
- if (octal_len > 0) ch = String.fromCharCode(parseInt(ch, 8));
- else ch = read_escaped_char(true);
- }
- else if (ch == quote) break;
- ret += ch;
- }
- return token("string", ret);
- });
- };
-
- function read_line_comment() {
- next();
- var i = find("\n"), ret;
- if (i == -1) {
- ret = S.text.substr(S.pos);
- S.pos = S.text.length;
- } else {
- ret = S.text.substring(S.pos, i);
- S.pos = i;
- }
- return token("comment1", ret, true);
- };
-
- function read_multiline_comment() {
- next();
- return with_eof_error("Unterminated multiline comment", function(){
- var i = find("*/", true),
- text = S.text.substring(S.pos, i);
- S.pos = i + 2;
- S.line += text.split("\n").length - 1;
- S.newline_before = text.indexOf("\n") >= 0;
-
- // https://github.com/mishoo/UglifyJS/issues/#issue/100
- if (/^@cc_on/i.test(text)) {
- warn("WARNING: at line " + S.line);
- warn("*** Found \"conditional comment\": " + text);
- warn("*** UglifyJS DISCARDS ALL COMMENTS. This means your code might no longer work properly in Internet Explorer.");
- }
-
- return token("comment2", text, true);
- });
- };
-
- function read_name() {
- var backslash = false, name = "", ch, escaped = false, hex;
- while ((ch = peek()) != null) {
- if (!backslash) {
- if (ch == "\\") escaped = backslash = true, next();
- else if (is_identifier_char(ch)) name += next();
- else break;
- }
- else {
- if (ch != "u") parse_error("Expecting UnicodeEscapeSequence -- uXXXX");
- ch = read_escaped_char();
- if (!is_identifier_char(ch)) parse_error("Unicode char: " + ch.charCodeAt(0) + " is not valid in identifier");
- name += ch;
- backslash = false;
- }
- }
- if (HOP(KEYWORDS, name) && escaped) {
- hex = name.charCodeAt(0).toString(16).toUpperCase();
- name = "\\u" + "0000".substr(hex.length) + hex + name.slice(1);
- }
- return name;
- };
-
- function read_regexp(regexp) {
- return with_eof_error("Unterminated regular expression", function(){
- var prev_backslash = false, ch, in_class = false;
- while ((ch = next(true))) if (prev_backslash) {
- regexp += "\\" + ch;
- prev_backslash = false;
- } else if (ch == "[") {
- in_class = true;
- regexp += ch;
- } else if (ch == "]" && in_class) {
- in_class = false;
- regexp += ch;
- } else if (ch == "/" && !in_class) {
- break;
- } else if (ch == "\\") {
- prev_backslash = true;
- } else {
- regexp += ch;
- }
- var mods = read_name();
- return token("regexp", [ regexp, mods ]);
- });
- };
-
- function read_operator(prefix) {
- function grow(op) {
- if (!peek()) return op;
- var bigger = op + peek();
- if (HOP(OPERATORS, bigger)) {
- next();
- return grow(bigger);
- } else {
- return op;
- }
- };
- return token("operator", grow(prefix || next()));
- };
-
- function handle_slash() {
- next();
- var regex_allowed = S.regex_allowed;
- switch (peek()) {
- case "/":
- S.comments_before.push(read_line_comment());
- S.regex_allowed = regex_allowed;
- return next_token();
- case "*":
- S.comments_before.push(read_multiline_comment());
- S.regex_allowed = regex_allowed;
- return next_token();
- }
- return S.regex_allowed ? read_regexp("") : read_operator("/");
- };
-
- function handle_dot() {
- next();
- return is_digit(peek())
- ? read_num(".")
- : token("punc", ".");
- };
-
- function read_word() {
- var word = read_name();
- return !HOP(KEYWORDS, word)
- ? token("name", word)
- : HOP(OPERATORS, word)
- ? token("operator", word)
- : HOP(KEYWORDS_ATOM, word)
- ? token("atom", word)
- : token("keyword", word);
- };
-
- function with_eof_error(eof_error, cont) {
- try {
- return cont();
- } catch(ex) {
- if (ex === EX_EOF) parse_error(eof_error);
- else throw ex;
- }
- };
-
- function next_token(force_regexp) {
- if (force_regexp != null)
- return read_regexp(force_regexp);
- skip_whitespace();
- start_token();
- var ch = peek();
- if (!ch) return token("eof");
- if (is_digit(ch)) return read_num();
- if (ch == '"' || ch == "'") return read_string();
- if (HOP(PUNC_CHARS, ch)) return token("punc", next());
- if (ch == ".") return handle_dot();
- if (ch == "/") return handle_slash();
- if (HOP(OPERATOR_CHARS, ch)) return read_operator();
- if (ch == "\\" || is_identifier_start(ch)) return read_word();
- parse_error("Unexpected character '" + ch + "'");
- };
-
- next_token.context = function(nc) {
- if (nc) S = nc;
- return S;
- };
-
- return next_token;
-
-};
-
-/* -----[ Parser (constants) ]----- */
-
-var UNARY_PREFIX = array_to_hash([
- "typeof",
- "void",
- "delete",
- "--",
- "++",
- "!",
- "~",
- "-",
- "+"
-]);
-
-var UNARY_POSTFIX = array_to_hash([ "--", "++" ]);
-
-var ASSIGNMENT = (function(a, ret, i){
- while (i < a.length) {
- ret[a[i]] = a[i].substr(0, a[i].length - 1);
- i++;
- }
- return ret;
-})(
- ["+=", "-=", "/=", "*=", "%=", ">>=", "<<=", ">>>=", "|=", "^=", "&="],
- { "=": true },
- 0
-);
-
-var PRECEDENCE = (function(a, ret){
- for (var i = 0, n = 1; i < a.length; ++i, ++n) {
- var b = a[i];
- for (var j = 0; j < b.length; ++j) {
- ret[b[j]] = n;
- }
- }
- return ret;
-})(
- [
- ["||"],
- ["&&"],
- ["|"],
- ["^"],
- ["&"],
- ["==", "===", "!=", "!=="],
- ["<", ">", "<=", ">=", "in", "instanceof"],
- [">>", "<<", ">>>"],
- ["+", "-"],
- ["*", "/", "%"]
- ],
- {}
-);
-
-var STATEMENTS_WITH_LABELS = array_to_hash([ "for", "do", "while", "switch" ]);
-
-var ATOMIC_START_TOKEN = array_to_hash([ "atom", "num", "string", "regexp", "name" ]);
-
-/* -----[ Parser ]----- */
-
-function NodeWithToken(str, start, end) {
- this.name = str;
- this.start = start;
- this.end = end;
-};
-
-NodeWithToken.prototype.toString = function() { return this.name; };
-
-function parse($TEXT, exigent_mode, embed_tokens) {
-
- var S = {
- input : typeof $TEXT == "string" ? tokenizer($TEXT, true) : $TEXT,
- token : null,
- prev : null,
- peeked : null,
- in_function : 0,
- in_loop : 0,
- labels : []
- };
-
- S.token = next();
-
- function is(type, value) {
- return is_token(S.token, type, value);
- };
-
- function peek() { return S.peeked || (S.peeked = S.input()); };
-
- function next() {
- S.prev = S.token;
- if (S.peeked) {
- S.token = S.peeked;
- S.peeked = null;
- } else {
- S.token = S.input();
- }
- return S.token;
- };
-
- function prev() {
- return S.prev;
- };
-
- function croak(msg, line, col, pos) {
- var ctx = S.input.context();
- js_error(msg,
- line != null ? line : ctx.tokline,
- col != null ? col : ctx.tokcol,
- pos != null ? pos : ctx.tokpos);
- };
-
- function token_error(token, msg) {
- croak(msg, token.line, token.col);
- };
-
- function unexpected(token) {
- if (token == null)
- token = S.token;
- token_error(token, "Unexpected token: " + token.type + " (" + token.value + ")");
- };
-
- function expect_token(type, val) {
- if (is(type, val)) {
- return next();
- }
- token_error(S.token, "Unexpected token " + S.token.type + ", expected " + type);
- };
-
- function expect(punc) { return expect_token("punc", punc); };
-
- function can_insert_semicolon() {
- return !exigent_mode && (
- S.token.nlb || is("eof") || is("punc", "}")
- );
- };
-
- function semicolon() {
- if (is("punc", ";")) next();
- else if (!can_insert_semicolon()) unexpected();
- };
-
- function as() {
- return slice(arguments);
- };
-
- function parenthesised() {
- expect("(");
- var ex = expression();
- expect(")");
- return ex;
- };
-
- function add_tokens(str, start, end) {
- return str instanceof NodeWithToken ? str : new NodeWithToken(str, start, end);
- };
-
- function maybe_embed_tokens(parser) {
- if (embed_tokens) return function() {
- var start = S.token;
- var ast = parser.apply(this, arguments);
- ast[0] = add_tokens(ast[0], start, prev());
- return ast;
- };
- else return parser;
- };
-
- var statement = maybe_embed_tokens(function() {
- if (is("operator", "/") || is("operator", "/=")) {
- S.peeked = null;
- S.token = S.input(S.token.value.substr(1)); // force regexp
- }
- switch (S.token.type) {
- case "num":
- case "string":
- case "regexp":
- case "operator":
- case "atom":
- return simple_statement();
-
- case "name":
- return is_token(peek(), "punc", ":")
- ? labeled_statement(prog1(S.token.value, next, next))
- : simple_statement();
-
- case "punc":
- switch (S.token.value) {
- case "{":
- return as("block", block_());
- case "[":
- case "(":
- return simple_statement();
- case ";":
- next();
- return as("block");
- default:
- unexpected();
- }
-
- case "keyword":
- switch (prog1(S.token.value, next)) {
- case "break":
- return break_cont("break");
-
- case "continue":
- return break_cont("continue");
-
- case "debugger":
- semicolon();
- return as("debugger");
-
- case "do":
- return (function(body){
- expect_token("keyword", "while");
- return as("do", prog1(parenthesised, semicolon), body);
- })(in_loop(statement));
-
- case "for":
- return for_();
-
- case "function":
- return function_(true);
-
- case "if":
- return if_();
-
- case "return":
- if (S.in_function == 0)
- croak("'return' outside of function");
- return as("return",
- is("punc", ";")
- ? (next(), null)
- : can_insert_semicolon()
- ? null
- : prog1(expression, semicolon));
-
- case "switch":
- return as("switch", parenthesised(), switch_block_());
-
- case "throw":
- if (S.token.nlb)
- croak("Illegal newline after 'throw'");
- return as("throw", prog1(expression, semicolon));
-
- case "try":
- return try_();
-
- case "var":
- return prog1(var_, semicolon);
-
- case "const":
- return prog1(const_, semicolon);
-
- case "while":
- return as("while", parenthesised(), in_loop(statement));
-
- case "with":
- return as("with", parenthesised(), statement());
-
- default:
- unexpected();
- }
- }
- });
-
- function labeled_statement(label) {
- S.labels.push(label);
- var start = S.token, stat = statement();
- if (exigent_mode && !HOP(STATEMENTS_WITH_LABELS, stat[0]))
- unexpected(start);
- S.labels.pop();
- return as("label", label, stat);
- };
-
- function simple_statement() {
- return as("stat", prog1(expression, semicolon));
- };
-
- function break_cont(type) {
- var name;
- if (!can_insert_semicolon()) {
- name = is("name") ? S.token.value : null;
- }
- if (name != null) {
- next();
- if (!member(name, S.labels))
- croak("Label " + name + " without matching loop or statement");
- }
- else if (S.in_loop == 0)
- croak(type + " not inside a loop or switch");
- semicolon();
- return as(type, name);
- };
-
- function for_() {
- expect("(");
- var init = null;
- if (!is("punc", ";")) {
- init = is("keyword", "var")
- ? (next(), var_(true))
- : expression(true, true);
- if (is("operator", "in")) {
- if (init[0] == "var" && init[1].length > 1)
- croak("Only one variable declaration allowed in for..in loop");
- return for_in(init);
- }
- }
- return regular_for(init);
- };
-
- function regular_for(init) {
- expect(";");
- var test = is("punc", ";") ? null : expression();
- expect(";");
- var step = is("punc", ")") ? null : expression();
- expect(")");
- return as("for", init, test, step, in_loop(statement));
- };
-
- function for_in(init) {
- var lhs = init[0] == "var" ? as("name", init[1][0]) : init;
- next();
- var obj = expression();
- expect(")");
- return as("for-in", init, lhs, obj, in_loop(statement));
- };
-
- var function_ = function(in_statement) {
- var name = is("name") ? prog1(S.token.value, next) : null;
- if (in_statement && !name)
- unexpected();
- expect("(");
- return as(in_statement ? "defun" : "function",
- name,
- // arguments
- (function(first, a){
- while (!is("punc", ")")) {
- if (first) first = false; else expect(",");
- if (!is("name")) unexpected();
- a.push(S.token.value);
- next();
- }
- next();
- return a;
- })(true, []),
- // body
- (function(){
- ++S.in_function;
- var loop = S.in_loop;
- S.in_loop = 0;
- var a = block_();
- --S.in_function;
- S.in_loop = loop;
- return a;
- })());
- };
-
- function if_() {
- var cond = parenthesised(), body = statement(), belse;
- if (is("keyword", "else")) {
- next();
- belse = statement();
- }
- return as("if", cond, body, belse);
- };
-
- function block_() {
- expect("{");
- var a = [];
- while (!is("punc", "}")) {
- if (is("eof")) unexpected();
- a.push(statement());
- }
- next();
- return a;
- };
-
- var switch_block_ = curry(in_loop, function(){
- expect("{");
- var a = [], cur = null;
- while (!is("punc", "}")) {
- if (is("eof")) unexpected();
- if (is("keyword", "case")) {
- next();
- cur = [];
- a.push([ expression(), cur ]);
- expect(":");
- }
- else if (is("keyword", "default")) {
- next();
- expect(":");
- cur = [];
- a.push([ null, cur ]);
- }
- else {
- if (!cur) unexpected();
- cur.push(statement());
- }
- }
- next();
- return a;
- });
-
- function try_() {
- var body = block_(), bcatch, bfinally;
- if (is("keyword", "catch")) {
- next();
- expect("(");
- if (!is("name"))
- croak("Name expected");
- var name = S.token.value;
- next();
- expect(")");
- bcatch = [ name, block_() ];
- }
- if (is("keyword", "finally")) {
- next();
- bfinally = block_();
- }
- if (!bcatch && !bfinally)
- croak("Missing catch/finally blocks");
- return as("try", body, bcatch, bfinally);
- };
-
- function vardefs(no_in) {
- var a = [];
- for (;;) {
- if (!is("name"))
- unexpected();
- var name = S.token.value;
- next();
- if (is("operator", "=")) {
- next();
- a.push([ name, expression(false, no_in) ]);
- } else {
- a.push([ name ]);
- }
- if (!is("punc", ","))
- break;
- next();
- }
- return a;
- };
-
- function var_(no_in) {
- return as("var", vardefs(no_in));
- };
-
- function const_() {
- return as("const", vardefs());
- };
-
- function new_() {
- var newexp = expr_atom(false), args;
- if (is("punc", "(")) {
- next();
- args = expr_list(")");
- } else {
- args = [];
- }
- return subscripts(as("new", newexp, args), true);
- };
-
- var expr_atom = maybe_embed_tokens(function(allow_calls) {
- if (is("operator", "new")) {
- next();
- return new_();
- }
- if (is("punc")) {
- switch (S.token.value) {
- case "(":
- next();
- return subscripts(prog1(expression, curry(expect, ")")), allow_calls);
- case "[":
- next();
- return subscripts(array_(), allow_calls);
- case "{":
- next();
- return subscripts(object_(), allow_calls);
- }
- unexpected();
- }
- if (is("keyword", "function")) {
- next();
- return subscripts(function_(false), allow_calls);
- }
- if (HOP(ATOMIC_START_TOKEN, S.token.type)) {
- var atom = S.token.type == "regexp"
- ? as("regexp", S.token.value[0], S.token.value[1])
- : as(S.token.type, S.token.value);
- return subscripts(prog1(atom, next), allow_calls);
- }
- unexpected();
- });
-
- function expr_list(closing, allow_trailing_comma, allow_empty) {
- var first = true, a = [];
- while (!is("punc", closing)) {
- if (first) first = false; else expect(",");
- if (allow_trailing_comma && is("punc", closing)) break;
- if (is("punc", ",") && allow_empty) {
- a.push([ "atom", "undefined" ]);
- } else {
- a.push(expression(false));
- }
- }
- next();
- return a;
- };
-
- function array_() {
- return as("array", expr_list("]", !exigent_mode, true));
- };
-
- function object_() {
- var first = true, a = [];
- while (!is("punc", "}")) {
- if (first) first = false; else expect(",");
- if (!exigent_mode && is("punc", "}"))
- // allow trailing comma
- break;
- var type = S.token.type;
- var name = as_property_name();
- if (type == "name" && (name == "get" || name == "set") && !is("punc", ":")) {
- a.push([ as_name(), function_(false), name ]);
- } else {
- expect(":");
- a.push([ name, expression(false) ]);
- }
- }
- next();
- return as("object", a);
- };
-
- function as_property_name() {
- switch (S.token.type) {
- case "num":
- case "string":
- return prog1(S.token.value, next);
- }
- return as_name();
- };
-
- function as_name() {
- switch (S.token.type) {
- case "name":
- case "operator":
- case "keyword":
- case "atom":
- return prog1(S.token.value, next);
- default:
- unexpected();
- }
- };
-
- function subscripts(expr, allow_calls) {
- if (is("punc", ".")) {
- next();
- return subscripts(as("dot", expr, as_name()), allow_calls);
- }
- if (is("punc", "[")) {
- next();
- return subscripts(as("sub", expr, prog1(expression, curry(expect, "]"))), allow_calls);
- }
- if (allow_calls && is("punc", "(")) {
- next();
- return subscripts(as("call", expr, expr_list(")")), true);
- }
- return expr;
- };
-
- function maybe_unary(allow_calls) {
- if (is("operator") && HOP(UNARY_PREFIX, S.token.value)) {
- return make_unary("unary-prefix",
- prog1(S.token.value, next),
- maybe_unary(allow_calls));
- }
- var val = expr_atom(allow_calls);
- while (is("operator") && HOP(UNARY_POSTFIX, S.token.value) && !S.token.nlb) {
- val = make_unary("unary-postfix", S.token.value, val);
- next();
- }
- return val;
- };
-
- function make_unary(tag, op, expr) {
- if ((op == "++" || op == "--") && !is_assignable(expr))
- croak("Invalid use of " + op + " operator");
- return as(tag, op, expr);
- };
-
- function expr_op(left, min_prec, no_in) {
- var op = is("operator") ? S.token.value : null;
- if (op && op == "in" && no_in) op = null;
- var prec = op != null ? PRECEDENCE[op] : null;
- if (prec != null && prec > min_prec) {
- next();
- var right = expr_op(maybe_unary(true), prec, no_in);
- return expr_op(as("binary", op, left, right), min_prec, no_in);
- }
- return left;
- };
-
- function expr_ops(no_in) {
- return expr_op(maybe_unary(true), 0, no_in);
- };
-
- function maybe_conditional(no_in) {
- var expr = expr_ops(no_in);
- if (is("operator", "?")) {
- next();
- var yes = expression(false);
- expect(":");
- return as("conditional", expr, yes, expression(false, no_in));
- }
- return expr;
- };
-
- function is_assignable(expr) {
- if (!exigent_mode) return true;
- switch (expr[0]+"") {
- case "dot":
- case "sub":
- case "new":
- case "call":
- return true;
- case "name":
- return expr[1] != "this";
- }
- };
-
- function maybe_assign(no_in) {
- var left = maybe_conditional(no_in), val = S.token.value;
- if (is("operator") && HOP(ASSIGNMENT, val)) {
- if (is_assignable(left)) {
- next();
- return as("assign", ASSIGNMENT[val], left, maybe_assign(no_in));
- }
- croak("Invalid assignment");
- }
- return left;
- };
-
- var expression = maybe_embed_tokens(function(commas, no_in) {
- if (arguments.length == 0)
- commas = true;
- var expr = maybe_assign(no_in);
- if (commas && is("punc", ",")) {
- next();
- return as("seq", expr, expression(true, no_in));
- }
- return expr;
- });
-
- function in_loop(cont) {
- try {
- ++S.in_loop;
- return cont();
- } finally {
- --S.in_loop;
- }
- };
-
- return as("toplevel", (function(a){
- while (!is("eof"))
- a.push(statement());
- return a;
- })([]));
-
-};
-
-/* -----[ Utilities ]----- */
-
-function curry(f) {
- var args = slice(arguments, 1);
- return function() { return f.apply(this, args.concat(slice(arguments))); };
-};
-
-function prog1(ret) {
- if (ret instanceof Function)
- ret = ret();
- for (var i = 1, n = arguments.length; --n > 0; ++i)
- arguments[i]();
- return ret;
-};
-
-function array_to_hash(a) {
- var ret = {};
- for (var i = 0; i < a.length; ++i)
- ret[a[i]] = true;
- return ret;
-};
-
-function slice(a, start) {
- return Array.prototype.slice.call(a, start || 0);
-};
-
-function characters(str) {
- return str.split("");
-};
-
-function member(name, array) {
- for (var i = array.length; --i >= 0;)
- if (array[i] == name)
- return true;
- return false;
-};
-
-function HOP(obj, prop) {
- return Object.prototype.hasOwnProperty.call(obj, prop);
-};
-
-var warn = function() {};
-
-/* -----[ Exports ]----- */
-
-exports.tokenizer = tokenizer;
-exports.parse = parse;
-exports.slice = slice;
-exports.curry = curry;
-exports.member = member;
-exports.array_to_hash = array_to_hash;
-exports.PRECEDENCE = PRECEDENCE;
-exports.KEYWORDS_ATOM = KEYWORDS_ATOM;
-exports.RESERVED_WORDS = RESERVED_WORDS;
-exports.KEYWORDS = KEYWORDS;
-exports.ATOMIC_START_TOKEN = ATOMIC_START_TOKEN;
-exports.OPERATORS = OPERATORS;
-exports.is_alphanumeric_char = is_alphanumeric_char;
-exports.set_logger = function(logger) {
- warn = logger;
-};
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/process.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/process.js
deleted file mode 100644
index da5553c7106..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/process.js
+++ /dev/null
@@ -1,2011 +0,0 @@
-/***********************************************************************
-
- A JavaScript tokenizer / parser / beautifier / compressor.
-
- This version is suitable for Node.js. With minimal changes (the
- exports stuff) it should work on any JS platform.
-
- This file implements some AST processors. They work on data built
- by parse-js.
-
- Exported functions:
-
- - ast_mangle(ast, options) -- mangles the variable/function names
- in the AST. Returns an AST.
-
- - ast_squeeze(ast) -- employs various optimizations to make the
- final generated code even smaller. Returns an AST.
-
- - gen_code(ast, options) -- generates JS code from the AST. Pass
- true (or an object, see the code for some options) as second
- argument to get "pretty" (indented) code.
-
- -------------------------------- (C) ---------------------------------
-
- Author: Mihai Bazon
- <mihai.bazon@gmail.com>
- http://mihai.bazon.net/blog
-
- Distributed under the BSD license:
-
- Copyright 2010 (c) Mihai Bazon <mihai.bazon@gmail.com>
-
- 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.
-
- ***********************************************************************/
-
-var jsp = require("./parse-js"),
- slice = jsp.slice,
- member = jsp.member,
- PRECEDENCE = jsp.PRECEDENCE,
- OPERATORS = jsp.OPERATORS;
-
-/* -----[ helper for AST traversal ]----- */
-
-function ast_walker() {
- function _vardefs(defs) {
- return [ this[0], MAP(defs, function(def){
- var a = [ def[0] ];
- if (def.length > 1)
- a[1] = walk(def[1]);
- return a;
- }) ];
- };
- function _block(statements) {
- var out = [ this[0] ];
- if (statements != null)
- out.push(MAP(statements, walk));
- return out;
- };
- var walkers = {
- "string": function(str) {
- return [ this[0], str ];
- },
- "num": function(num) {
- return [ this[0], num ];
- },
- "name": function(name) {
- return [ this[0], name ];
- },
- "toplevel": function(statements) {
- return [ this[0], MAP(statements, walk) ];
- },
- "block": _block,
- "splice": _block,
- "var": _vardefs,
- "const": _vardefs,
- "try": function(t, c, f) {
- return [
- this[0],
- MAP(t, walk),
- c != null ? [ c[0], MAP(c[1], walk) ] : null,
- f != null ? MAP(f, walk) : null
- ];
- },
- "throw": function(expr) {
- return [ this[0], walk(expr) ];
- },
- "new": function(ctor, args) {
- return [ this[0], walk(ctor), MAP(args, walk) ];
- },
- "switch": function(expr, body) {
- return [ this[0], walk(expr), MAP(body, function(branch){
- return [ branch[0] ? walk(branch[0]) : null,
- MAP(branch[1], walk) ];
- }) ];
- },
- "break": function(label) {
- return [ this[0], label ];
- },
- "continue": function(label) {
- return [ this[0], label ];
- },
- "conditional": function(cond, t, e) {
- return [ this[0], walk(cond), walk(t), walk(e) ];
- },
- "assign": function(op, lvalue, rvalue) {
- return [ this[0], op, walk(lvalue), walk(rvalue) ];
- },
- "dot": function(expr) {
- return [ this[0], walk(expr) ].concat(slice(arguments, 1));
- },
- "call": function(expr, args) {
- return [ this[0], walk(expr), MAP(args, walk) ];
- },
- "function": function(name, args, body) {
- return [ this[0], name, args.slice(), MAP(body, walk) ];
- },
- "debugger": function() {
- return [ this[0] ];
- },
- "defun": function(name, args, body) {
- return [ this[0], name, args.slice(), MAP(body, walk) ];
- },
- "if": function(conditional, t, e) {
- return [ this[0], walk(conditional), walk(t), walk(e) ];
- },
- "for": function(init, cond, step, block) {
- return [ this[0], walk(init), walk(cond), walk(step), walk(block) ];
- },
- "for-in": function(vvar, key, hash, block) {
- return [ this[0], walk(vvar), walk(key), walk(hash), walk(block) ];
- },
- "while": function(cond, block) {
- return [ this[0], walk(cond), walk(block) ];
- },
- "do": function(cond, block) {
- return [ this[0], walk(cond), walk(block) ];
- },
- "return": function(expr) {
- return [ this[0], walk(expr) ];
- },
- "binary": function(op, left, right) {
- return [ this[0], op, walk(left), walk(right) ];
- },
- "unary-prefix": function(op, expr) {
- return [ this[0], op, walk(expr) ];
- },
- "unary-postfix": function(op, expr) {
- return [ this[0], op, walk(expr) ];
- },
- "sub": function(expr, subscript) {
- return [ this[0], walk(expr), walk(subscript) ];
- },
- "object": function(props) {
- return [ this[0], MAP(props, function(p){
- return p.length == 2
- ? [ p[0], walk(p[1]) ]
- : [ p[0], walk(p[1]), p[2] ]; // get/set-ter
- }) ];
- },
- "regexp": function(rx, mods) {
- return [ this[0], rx, mods ];
- },
- "array": function(elements) {
- return [ this[0], MAP(elements, walk) ];
- },
- "stat": function(stat) {
- return [ this[0], walk(stat) ];
- },
- "seq": function() {
- return [ this[0] ].concat(MAP(slice(arguments), walk));
- },
- "label": function(name, block) {
- return [ this[0], name, walk(block) ];
- },
- "with": function(expr, block) {
- return [ this[0], walk(expr), walk(block) ];
- },
- "atom": function(name) {
- return [ this[0], name ];
- }
- };
-
- var user = {};
- var stack = [];
- function walk(ast) {
- if (ast == null)
- return null;
- try {
- stack.push(ast);
- var type = ast[0];
- var gen = user[type];
- if (gen) {
- var ret = gen.apply(ast, ast.slice(1));
- if (ret != null)
- return ret;
- }
- gen = walkers[type];
- return gen.apply(ast, ast.slice(1));
- } finally {
- stack.pop();
- }
- };
-
- function dive(ast) {
- if (ast == null)
- return null;
- try {
- stack.push(ast);
- return walkers[ast[0]].apply(ast, ast.slice(1));
- } finally {
- stack.pop();
- }
- };
-
- function with_walkers(walkers, cont){
- var save = {}, i;
- for (i in walkers) if (HOP(walkers, i)) {
- save[i] = user[i];
- user[i] = walkers[i];
- }
- var ret = cont();
- for (i in save) if (HOP(save, i)) {
- if (!save[i]) delete user[i];
- else user[i] = save[i];
- }
- return ret;
- };
-
- return {
- walk: walk,
- dive: dive,
- with_walkers: with_walkers,
- parent: function() {
- return stack[stack.length - 2]; // last one is current node
- },
- stack: function() {
- return stack;
- }
- };
-};
-
-/* -----[ Scope and mangling ]----- */
-
-function Scope(parent) {
- this.names = {}; // names defined in this scope
- this.mangled = {}; // mangled names (orig.name => mangled)
- this.rev_mangled = {}; // reverse lookup (mangled => orig.name)
- this.cname = -1; // current mangled name
- this.refs = {}; // names referenced from this scope
- this.uses_with = false; // will become TRUE if with() is detected in this or any subscopes
- this.uses_eval = false; // will become TRUE if eval() is detected in this or any subscopes
- this.parent = parent; // parent scope
- this.children = []; // sub-scopes
- if (parent) {
- this.level = parent.level + 1;
- parent.children.push(this);
- } else {
- this.level = 0;
- }
-};
-
-var base54 = (function(){
- var DIGITS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_0123456789";
- return function(num) {
- var ret = "", base = 54;
- do {
- ret += DIGITS.charAt(num % base);
- num = Math.floor(num / base);
- base = 64;
- } while (num > 0);
- return ret;
- };
-})();
-
-Scope.prototype = {
- has: function(name) {
- for (var s = this; s; s = s.parent)
- if (HOP(s.names, name))
- return s;
- },
- has_mangled: function(mname) {
- for (var s = this; s; s = s.parent)
- if (HOP(s.rev_mangled, mname))
- return s;
- },
- toJSON: function() {
- return {
- names: this.names,
- uses_eval: this.uses_eval,
- uses_with: this.uses_with
- };
- },
-
- next_mangled: function() {
- // we must be careful that the new mangled name:
- //
- // 1. doesn't shadow a mangled name from a parent
- // scope, unless we don't reference the original
- // name from this scope OR from any sub-scopes!
- // This will get slow.
- //
- // 2. doesn't shadow an original name from a parent
- // scope, in the event that the name is not mangled
- // in the parent scope and we reference that name
- // here OR IN ANY SUBSCOPES!
- //
- // 3. doesn't shadow a name that is referenced but not
- // defined (possibly global defined elsewhere).
- for (;;) {
- var m = base54(++this.cname), prior;
-
- // case 1.
- prior = this.has_mangled(m);
- if (prior && this.refs[prior.rev_mangled[m]] === prior)
- continue;
-
- // case 2.
- prior = this.has(m);
- if (prior && prior !== this && this.refs[m] === prior && !prior.has_mangled(m))
- continue;
-
- // case 3.
- if (HOP(this.refs, m) && this.refs[m] == null)
- continue;
-
- // I got "do" once. :-/
- if (!is_identifier(m))
- continue;
-
- return m;
- }
- },
- set_mangle: function(name, m) {
- this.rev_mangled[m] = name;
- return this.mangled[name] = m;
- },
- get_mangled: function(name, newMangle) {
- if (this.uses_eval || this.uses_with) return name; // no mangle if eval or with is in use
- var s = this.has(name);
- if (!s) return name; // not in visible scope, no mangle
- if (HOP(s.mangled, name)) return s.mangled[name]; // already mangled in this scope
- if (!newMangle) return name; // not found and no mangling requested
- return s.set_mangle(name, s.next_mangled());
- },
- references: function(name) {
- return name && !this.parent || this.uses_with || this.uses_eval || this.refs[name];
- },
- define: function(name, type) {
- if (name != null) {
- if (type == "var" || !HOP(this.names, name))
- this.names[name] = type || "var";
- return name;
- }
- }
-};
-
-function ast_add_scope(ast) {
-
- var current_scope = null;
- var w = ast_walker(), walk = w.walk;
- var having_eval = [];
-
- function with_new_scope(cont) {
- current_scope = new Scope(current_scope);
- current_scope.labels = new Scope();
- var ret = current_scope.body = cont();
- ret.scope = current_scope;
- current_scope = current_scope.parent;
- return ret;
- };
-
- function define(name, type) {
- return current_scope.define(name, type);
- };
-
- function reference(name) {
- current_scope.refs[name] = true;
- };
-
- function _lambda(name, args, body) {
- var is_defun = this[0] == "defun";
- return [ this[0], is_defun ? define(name, "defun") : name, args, with_new_scope(function(){
- if (!is_defun) define(name, "lambda");
- MAP(args, function(name){ define(name, "arg") });
- return MAP(body, walk);
- })];
- };
-
- function _vardefs(type) {
- return function(defs) {
- MAP(defs, function(d){
- define(d[0], type);
- if (d[1]) reference(d[0]);
- });
- };
- };
-
- function _breacont(label) {
- if (label)
- current_scope.labels.refs[label] = true;
- };
-
- return with_new_scope(function(){
- // process AST
- var ret = w.with_walkers({
- "function": _lambda,
- "defun": _lambda,
- "label": function(name, stat) { current_scope.labels.define(name) },
- "break": _breacont,
- "continue": _breacont,
- "with": function(expr, block) {
- for (var s = current_scope; s; s = s.parent)
- s.uses_with = true;
- },
- "var": _vardefs("var"),
- "const": _vardefs("const"),
- "try": function(t, c, f) {
- if (c != null) return [
- this[0],
- MAP(t, walk),
- [ define(c[0], "catch"), MAP(c[1], walk) ],
- f != null ? MAP(f, walk) : null
- ];
- },
- "name": function(name) {
- if (name == "eval")
- having_eval.push(current_scope);
- reference(name);
- }
- }, function(){
- return walk(ast);
- });
-
- // the reason why we need an additional pass here is
- // that names can be used prior to their definition.
-
- // scopes where eval was detected and their parents
- // are marked with uses_eval, unless they define the
- // "eval" name.
- MAP(having_eval, function(scope){
- if (!scope.has("eval")) while (scope) {
- scope.uses_eval = true;
- scope = scope.parent;
- }
- });
-
- // for referenced names it might be useful to know
- // their origin scope. current_scope here is the
- // toplevel one.
- function fixrefs(scope, i) {
- // do children first; order shouldn't matter
- for (i = scope.children.length; --i >= 0;)
- fixrefs(scope.children[i]);
- for (i in scope.refs) if (HOP(scope.refs, i)) {
- // find origin scope and propagate the reference to origin
- for (var origin = scope.has(i), s = scope; s; s = s.parent) {
- s.refs[i] = origin;
- if (s === origin) break;
- }
- }
- };
- fixrefs(current_scope);
-
- return ret;
- });
-
-};
-
-/* -----[ mangle names ]----- */
-
-function ast_mangle(ast, options) {
- var w = ast_walker(), walk = w.walk, scope;
- options = options || {};
-
- function get_mangled(name, newMangle) {
- if (!options.toplevel && !scope.parent) return name; // don't mangle toplevel
- if (options.except && member(name, options.except))
- return name;
- return scope.get_mangled(name, newMangle);
- };
-
- function get_define(name) {
- if (options.defines) {
- // we always lookup a defined symbol for the current scope FIRST, so declared
- // vars trump a DEFINE symbol, but if no such var is found, then match a DEFINE value
- if (!scope.has(name)) {
- if (HOP(options.defines, name)) {
- return options.defines[name];
- }
- }
- return null;
- }
- };
-
- function _lambda(name, args, body) {
- if (!options.no_functions) {
- var is_defun = this[0] == "defun", extra;
- if (name) {
- if (is_defun) name = get_mangled(name);
- else if (body.scope.references(name)) {
- extra = {};
- if (!(scope.uses_eval || scope.uses_with))
- name = extra[name] = scope.next_mangled();
- else
- extra[name] = name;
- }
- else name = null;
- }
- }
- body = with_scope(body.scope, function(){
- args = MAP(args, function(name){ return get_mangled(name) });
- return MAP(body, walk);
- }, extra);
- return [ this[0], name, args, body ];
- };
-
- function with_scope(s, cont, extra) {
- var _scope = scope;
- scope = s;
- if (extra) for (var i in extra) if (HOP(extra, i)) {
- s.set_mangle(i, extra[i]);
- }
- for (var i in s.names) if (HOP(s.names, i)) {
- get_mangled(i, true);
- }
- var ret = cont();
- ret.scope = s;
- scope = _scope;
- return ret;
- };
-
- function _vardefs(defs) {
- return [ this[0], MAP(defs, function(d){
- return [ get_mangled(d[0]), walk(d[1]) ];
- }) ];
- };
-
- function _breacont(label) {
- if (label) return [ this[0], scope.labels.get_mangled(label) ];
- };
-
- return w.with_walkers({
- "function": _lambda,
- "defun": function() {
- // move function declarations to the top when
- // they are not in some block.
- var ast = _lambda.apply(this, arguments);
- switch (w.parent()[0]) {
- case "toplevel":
- case "function":
- case "defun":
- return MAP.at_top(ast);
- }
- return ast;
- },
- "label": function(label, stat) {
- if (scope.labels.refs[label]) return [
- this[0],
- scope.labels.get_mangled(label, true),
- walk(stat)
- ];
- return walk(stat);
- },
- "break": _breacont,
- "continue": _breacont,
- "var": _vardefs,
- "const": _vardefs,
- "name": function(name) {
- return get_define(name) || [ this[0], get_mangled(name) ];
- },
- "try": function(t, c, f) {
- return [ this[0],
- MAP(t, walk),
- c != null ? [ get_mangled(c[0]), MAP(c[1], walk) ] : null,
- f != null ? MAP(f, walk) : null ];
- },
- "toplevel": function(body) {
- var self = this;
- return with_scope(self.scope, function(){
- return [ self[0], MAP(body, walk) ];
- });
- }
- }, function() {
- return walk(ast_add_scope(ast));
- });
-};
-
-/* -----[
- - compress foo["bar"] into foo.bar,
- - remove block brackets {} where possible
- - join consecutive var declarations
- - various optimizations for IFs:
- - if (cond) foo(); else bar(); ==> cond?foo():bar();
- - if (cond) foo(); ==> cond&&foo();
- - if (foo) return bar(); else return baz(); ==> return foo?bar():baz(); // also for throw
- - if (foo) return bar(); else something(); ==> {if(foo)return bar();something()}
- ]----- */
-
-var warn = function(){};
-
-function best_of(ast1, ast2) {
- return gen_code(ast1).length > gen_code(ast2[0] == "stat" ? ast2[1] : ast2).length ? ast2 : ast1;
-};
-
-function last_stat(b) {
- if (b[0] == "block" && b[1] && b[1].length > 0)
- return b[1][b[1].length - 1];
- return b;
-}
-
-function aborts(t) {
- if (t) switch (last_stat(t)[0]) {
- case "return":
- case "break":
- case "continue":
- case "throw":
- return true;
- }
-};
-
-function boolean_expr(expr) {
- return ( (expr[0] == "unary-prefix"
- && member(expr[1], [ "!", "delete" ])) ||
-
- (expr[0] == "binary"
- && member(expr[1], [ "in", "instanceof", "==", "!=", "===", "!==", "<", "<=", ">=", ">" ])) ||
-
- (expr[0] == "binary"
- && member(expr[1], [ "&&", "||" ])
- && boolean_expr(expr[2])
- && boolean_expr(expr[3])) ||
-
- (expr[0] == "conditional"
- && boolean_expr(expr[2])
- && boolean_expr(expr[3])) ||
-
- (expr[0] == "assign"
- && expr[1] === true
- && boolean_expr(expr[3])) ||
-
- (expr[0] == "seq"
- && boolean_expr(expr[expr.length - 1]))
- );
-};
-
-function empty(b) {
- return !b || (b[0] == "block" && (!b[1] || b[1].length == 0));
-};
-
-function is_string(node) {
- return (node[0] == "string" ||
- node[0] == "unary-prefix" && node[1] == "typeof" ||
- node[0] == "binary" && node[1] == "+" &&
- (is_string(node[2]) || is_string(node[3])));
-};
-
-var when_constant = (function(){
-
- var $NOT_CONSTANT = {};
-
- // this can only evaluate constant expressions. If it finds anything
- // not constant, it throws $NOT_CONSTANT.
- function evaluate(expr) {
- switch (expr[0]) {
- case "string":
- case "num":
- return expr[1];
- case "name":
- case "atom":
- switch (expr[1]) {
- case "true": return true;
- case "false": return false;
- case "null": return null;
- }
- break;
- case "unary-prefix":
- switch (expr[1]) {
- case "!": return !evaluate(expr[2]);
- case "typeof": return typeof evaluate(expr[2]);
- case "~": return ~evaluate(expr[2]);
- case "-": return -evaluate(expr[2]);
- case "+": return +evaluate(expr[2]);
- }
- break;
- case "binary":
- var left = expr[2], right = expr[3];
- switch (expr[1]) {
- case "&&" : return evaluate(left) && evaluate(right);
- case "||" : return evaluate(left) || evaluate(right);
- case "|" : return evaluate(left) | evaluate(right);
- case "&" : return evaluate(left) & evaluate(right);
- case "^" : return evaluate(left) ^ evaluate(right);
- case "+" : return evaluate(left) + evaluate(right);
- case "*" : return evaluate(left) * evaluate(right);
- case "/" : return evaluate(left) / evaluate(right);
- case "%" : return evaluate(left) % evaluate(right);
- case "-" : return evaluate(left) - evaluate(right);
- case "<<" : return evaluate(left) << evaluate(right);
- case ">>" : return evaluate(left) >> evaluate(right);
- case ">>>" : return evaluate(left) >>> evaluate(right);
- case "==" : return evaluate(left) == evaluate(right);
- case "===" : return evaluate(left) === evaluate(right);
- case "!=" : return evaluate(left) != evaluate(right);
- case "!==" : return evaluate(left) !== evaluate(right);
- case "<" : return evaluate(left) < evaluate(right);
- case "<=" : return evaluate(left) <= evaluate(right);
- case ">" : return evaluate(left) > evaluate(right);
- case ">=" : return evaluate(left) >= evaluate(right);
- case "in" : return evaluate(left) in evaluate(right);
- case "instanceof" : return evaluate(left) instanceof evaluate(right);
- }
- }
- throw $NOT_CONSTANT;
- };
-
- return function(expr, yes, no) {
- try {
- var val = evaluate(expr), ast;
- switch (typeof val) {
- case "string": ast = [ "string", val ]; break;
- case "number": ast = [ "num", val ]; break;
- case "boolean": ast = [ "name", String(val) ]; break;
- default:
- if (val === null) { ast = [ "atom", "null" ]; break; }
- throw new Error("Can't handle constant of type: " + (typeof val));
- }
- return yes.call(expr, ast, val);
- } catch(ex) {
- if (ex === $NOT_CONSTANT) {
- if (expr[0] == "binary"
- && (expr[1] == "===" || expr[1] == "!==")
- && ((is_string(expr[2]) && is_string(expr[3]))
- || (boolean_expr(expr[2]) && boolean_expr(expr[3])))) {
- expr[1] = expr[1].substr(0, 2);
- }
- else if (no && expr[0] == "binary"
- && (expr[1] == "||" || expr[1] == "&&")) {
- // the whole expression is not constant but the lval may be...
- try {
- var lval = evaluate(expr[2]);
- expr = ((expr[1] == "&&" && (lval ? expr[3] : lval)) ||
- (expr[1] == "||" && (lval ? lval : expr[3])) ||
- expr);
- } catch(ex2) {
- // IGNORE... lval is not constant
- }
- }
- return no ? no.call(expr, expr) : null;
- }
- else throw ex;
- }
- };
-
-})();
-
-function warn_unreachable(ast) {
- if (!empty(ast))
- warn("Dropping unreachable code: " + gen_code(ast, true));
-};
-
-function prepare_ifs(ast) {
- var w = ast_walker(), walk = w.walk;
- // In this first pass, we rewrite ifs which abort with no else with an
- // if-else. For example:
- //
- // if (x) {
- // blah();
- // return y;
- // }
- // foobar();
- //
- // is rewritten into:
- //
- // if (x) {
- // blah();
- // return y;
- // } else {
- // foobar();
- // }
- function redo_if(statements) {
- statements = MAP(statements, walk);
-
- for (var i = 0; i < statements.length; ++i) {
- var fi = statements[i];
- if (fi[0] != "if") continue;
-
- if (fi[3] && walk(fi[3])) continue;
-
- var t = walk(fi[2]);
- if (!aborts(t)) continue;
-
- var conditional = walk(fi[1]);
-
- var e_body = redo_if(statements.slice(i + 1));
- var e = e_body.length == 1 ? e_body[0] : [ "block", e_body ];
-
- return statements.slice(0, i).concat([ [
- fi[0], // "if"
- conditional, // conditional
- t, // then
- e // else
- ] ]);
- }
-
- return statements;
- };
-
- function redo_if_lambda(name, args, body) {
- body = redo_if(body);
- return [ this[0], name, args, body ];
- };
-
- function redo_if_block(statements) {
- return [ this[0], statements != null ? redo_if(statements) : null ];
- };
-
- return w.with_walkers({
- "defun": redo_if_lambda,
- "function": redo_if_lambda,
- "block": redo_if_block,
- "splice": redo_if_block,
- "toplevel": function(statements) {
- return [ this[0], redo_if(statements) ];
- },
- "try": function(t, c, f) {
- return [
- this[0],
- redo_if(t),
- c != null ? [ c[0], redo_if(c[1]) ] : null,
- f != null ? redo_if(f) : null
- ];
- }
- }, function() {
- return walk(ast);
- });
-};
-
-function for_side_effects(ast, handler) {
- var w = ast_walker(), walk = w.walk;
- var $stop = {}, $restart = {};
- function stop() { throw $stop };
- function restart() { throw $restart };
- function found(){ return handler.call(this, this, w, stop, restart) };
- function unary(op) {
- if (op == "++" || op == "--")
- return found.apply(this, arguments);
- };
- return w.with_walkers({
- "try": found,
- "throw": found,
- "return": found,
- "new": found,
- "switch": found,
- "break": found,
- "continue": found,
- "assign": found,
- "call": found,
- "if": found,
- "for": found,
- "for-in": found,
- "while": found,
- "do": found,
- "return": found,
- "unary-prefix": unary,
- "unary-postfix": unary,
- "defun": found
- }, function(){
- while (true) try {
- walk(ast);
- break;
- } catch(ex) {
- if (ex === $stop) break;
- if (ex === $restart) continue;
- throw ex;
- }
- });
-};
-
-function ast_lift_variables(ast) {
- var w = ast_walker(), walk = w.walk, scope;
- function do_body(body, env) {
- var _scope = scope;
- scope = env;
- body = MAP(body, walk);
- var hash = {}, names = MAP(env.names, function(type, name){
- if (type != "var") return MAP.skip;
- if (!env.references(name)) return MAP.skip;
- hash[name] = true;
- return [ name ];
- });
- if (names.length > 0) {
- // looking for assignments to any of these variables.
- // we can save considerable space by moving the definitions
- // in the var declaration.
- for_side_effects([ "block", body ], function(ast, walker, stop, restart) {
- if (ast[0] == "assign"
- && ast[1] === true
- && ast[2][0] == "name"
- && HOP(hash, ast[2][1])) {
- // insert the definition into the var declaration
- for (var i = names.length; --i >= 0;) {
- if (names[i][0] == ast[2][1]) {
- if (names[i][1]) // this name already defined, we must stop
- stop();
- names[i][1] = ast[3]; // definition
- names.push(names.splice(i, 1)[0]);
- break;
- }
- }
- // remove this assignment from the AST.
- var p = walker.parent();
- if (p[0] == "seq") {
- var a = p[2];
- a.unshift(0, p.length);
- p.splice.apply(p, a);
- }
- else if (p[0] == "stat") {
- p.splice(0, p.length, "block"); // empty statement
- }
- else {
- stop();
- }
- restart();
- }
- stop();
- });
- body.unshift([ "var", names ]);
- }
- scope = _scope;
- return body;
- };
- function _vardefs(defs) {
- var ret = null;
- for (var i = defs.length; --i >= 0;) {
- var d = defs[i];
- if (!d[1]) continue;
- d = [ "assign", true, [ "name", d[0] ], d[1] ];
- if (ret == null) ret = d;
- else ret = [ "seq", d, ret ];
- }
- if (ret == null) {
- if (w.parent()[0] == "for-in")
- return [ "name", defs[0][0] ];
- return MAP.skip;
- }
- return [ "stat", ret ];
- };
- function _toplevel(body) {
- return [ this[0], do_body(body, this.scope) ];
- };
- return w.with_walkers({
- "function": function(name, args, body){
- for (var i = args.length; --i >= 0 && !body.scope.references(args[i]);)
- args.pop();
- if (!body.scope.references(name)) name = null;
- return [ this[0], name, args, do_body(body, body.scope) ];
- },
- "defun": function(name, args, body){
- if (!scope.references(name)) return MAP.skip;
- for (var i = args.length; --i >= 0 && !body.scope.references(args[i]);)
- args.pop();
- return [ this[0], name, args, do_body(body, body.scope) ];
- },
- "var": _vardefs,
- "toplevel": _toplevel
- }, function(){
- return walk(ast_add_scope(ast));
- });
-};
-
-function ast_squeeze(ast, options) {
- options = defaults(options, {
- make_seqs : true,
- dead_code : true,
- no_warnings : false,
- keep_comps : true
- });
-
- var w = ast_walker(), walk = w.walk;
-
- function negate(c) {
- var not_c = [ "unary-prefix", "!", c ];
- switch (c[0]) {
- case "unary-prefix":
- return c[1] == "!" && boolean_expr(c[2]) ? c[2] : not_c;
- case "seq":
- c = slice(c);
- c[c.length - 1] = negate(c[c.length - 1]);
- return c;
- case "conditional":
- return best_of(not_c, [ "conditional", c[1], negate(c[2]), negate(c[3]) ]);
- case "binary":
- var op = c[1], left = c[2], right = c[3];
- if (!options.keep_comps) switch (op) {
- case "<=" : return [ "binary", ">", left, right ];
- case "<" : return [ "binary", ">=", left, right ];
- case ">=" : return [ "binary", "<", left, right ];
- case ">" : return [ "binary", "<=", left, right ];
- }
- switch (op) {
- case "==" : return [ "binary", "!=", left, right ];
- case "!=" : return [ "binary", "==", left, right ];
- case "===" : return [ "binary", "!==", left, right ];
- case "!==" : return [ "binary", "===", left, right ];
- case "&&" : return best_of(not_c, [ "binary", "||", negate(left), negate(right) ]);
- case "||" : return best_of(not_c, [ "binary", "&&", negate(left), negate(right) ]);
- }
- break;
- }
- return not_c;
- };
-
- function make_conditional(c, t, e) {
- var make_real_conditional = function() {
- if (c[0] == "unary-prefix" && c[1] == "!") {
- return e ? [ "conditional", c[2], e, t ] : [ "binary", "||", c[2], t ];
- } else {
- return e ? best_of(
- [ "conditional", c, t, e ],
- [ "conditional", negate(c), e, t ]
- ) : [ "binary", "&&", c, t ];
- }
- };
- // shortcut the conditional if the expression has a constant value
- return when_constant(c, function(ast, val){
- warn_unreachable(val ? e : t);
- return (val ? t : e);
- }, make_real_conditional);
- };
-
- function rmblock(block) {
- if (block != null && block[0] == "block" && block[1]) {
- if (block[1].length == 1)
- block = block[1][0];
- else if (block[1].length == 0)
- block = [ "block" ];
- }
- return block;
- };
-
- function _lambda(name, args, body) {
- return [ this[0], name, args, tighten(body, "lambda") ];
- };
-
- // this function does a few things:
- // 1. discard useless blocks
- // 2. join consecutive var declarations
- // 3. remove obviously dead code
- // 4. transform consecutive statements using the comma operator
- // 5. if block_type == "lambda" and it detects constructs like if(foo) return ... - rewrite like if (!foo) { ... }
- function tighten(statements, block_type) {
- statements = MAP(statements, walk);
-
- statements = statements.reduce(function(a, stat){
- if (stat[0] == "block") {
- if (stat[1]) {
- a.push.apply(a, stat[1]);
- }
- } else {
- a.push(stat);
- }
- return a;
- }, []);
-
- statements = (function(a, prev){
- statements.forEach(function(cur){
- if (prev && ((cur[0] == "var" && prev[0] == "var") ||
- (cur[0] == "const" && prev[0] == "const"))) {
- prev[1] = prev[1].concat(cur[1]);
- } else {
- a.push(cur);
- prev = cur;
- }
- });
- return a;
- })([]);
-
- if (options.dead_code) statements = (function(a, has_quit){
- statements.forEach(function(st){
- if (has_quit) {
- if (st[0] == "function" || st[0] == "defun") {
- a.push(st);
- }
- else if (st[0] == "var" || st[0] == "const") {
- if (!options.no_warnings)
- warn("Variables declared in unreachable code");
- st[1] = MAP(st[1], function(def){
- if (def[1] && !options.no_warnings)
- warn_unreachable([ "assign", true, [ "name", def[0] ], def[1] ]);
- return [ def[0] ];
- });
- a.push(st);
- }
- else if (!options.no_warnings)
- warn_unreachable(st);
- }
- else {
- a.push(st);
- if (member(st[0], [ "return", "throw", "break", "continue" ]))
- has_quit = true;
- }
- });
- return a;
- })([]);
-
- if (options.make_seqs) statements = (function(a, prev) {
- statements.forEach(function(cur){
- if (prev && prev[0] == "stat" && cur[0] == "stat") {
- prev[1] = [ "seq", prev[1], cur[1] ];
- } else {
- a.push(cur);
- prev = cur;
- }
- });
- if (a.length >= 2
- && a[a.length-2][0] == "stat"
- && (a[a.length-1][0] == "return" || a[a.length-1][0] == "throw")
- && a[a.length-1][1])
- {
- a.splice(a.length - 2, 2,
- [ a[a.length-1][0],
- [ "seq", a[a.length-2][1], a[a.length-1][1] ]]);
- }
- return a;
- })([]);
-
- // this increases jQuery by 1K. Probably not such a good idea after all..
- // part of this is done in prepare_ifs anyway.
- // if (block_type == "lambda") statements = (function(i, a, stat){
- // while (i < statements.length) {
- // stat = statements[i++];
- // if (stat[0] == "if" && !stat[3]) {
- // if (stat[2][0] == "return" && stat[2][1] == null) {
- // a.push(make_if(negate(stat[1]), [ "block", statements.slice(i) ]));
- // break;
- // }
- // var last = last_stat(stat[2]);
- // if (last[0] == "return" && last[1] == null) {
- // a.push(make_if(stat[1], [ "block", stat[2][1].slice(0, -1) ], [ "block", statements.slice(i) ]));
- // break;
- // }
- // }
- // a.push(stat);
- // }
- // return a;
- // })(0, []);
-
- return statements;
- };
-
- function make_if(c, t, e) {
- return when_constant(c, function(ast, val){
- if (val) {
- t = walk(t);
- warn_unreachable(e);
- return t || [ "block" ];
- } else {
- e = walk(e);
- warn_unreachable(t);
- return e || [ "block" ];
- }
- }, function() {
- return make_real_if(c, t, e);
- });
- };
-
- function abort_else(c, t, e) {
- var ret = [ [ "if", negate(c), e ] ];
- if (t[0] == "block") {
- if (t[1]) ret = ret.concat(t[1]);
- } else {
- ret.push(t);
- }
- return walk([ "block", ret ]);
- };
-
- function make_real_if(c, t, e) {
- c = walk(c);
- t = walk(t);
- e = walk(e);
-
- if (empty(t)) {
- c = negate(c);
- t = e;
- e = null;
- } else if (empty(e)) {
- e = null;
- } else {
- // if we have both else and then, maybe it makes sense to switch them?
- (function(){
- var a = gen_code(c);
- var n = negate(c);
- var b = gen_code(n);
- if (b.length < a.length) {
- var tmp = t;
- t = e;
- e = tmp;
- c = n;
- }
- })();
- }
- if (empty(e) && empty(t))
- return [ "stat", c ];
- var ret = [ "if", c, t, e ];
- if (t[0] == "if" && empty(t[3]) && empty(e)) {
- ret = best_of(ret, walk([ "if", [ "binary", "&&", c, t[1] ], t[2] ]));
- }
- else if (t[0] == "stat") {
- if (e) {
- if (e[0] == "stat")
- ret = best_of(ret, [ "stat", make_conditional(c, t[1], e[1]) ]);
- else if (aborts(e))
- ret = abort_else(c, t, e);
- }
- else {
- ret = best_of(ret, [ "stat", make_conditional(c, t[1]) ]);
- }
- }
- else if (e && t[0] == e[0] && (t[0] == "return" || t[0] == "throw") && t[1] && e[1]) {
- ret = best_of(ret, [ t[0], make_conditional(c, t[1], e[1] ) ]);
- }
- else if (e && aborts(t)) {
- ret = [ [ "if", c, t ] ];
- if (e[0] == "block") {
- if (e[1]) ret = ret.concat(e[1]);
- }
- else {
- ret.push(e);
- }
- ret = walk([ "block", ret ]);
- }
- else if (t && aborts(e)) {
- ret = abort_else(c, t, e);
- }
- return ret;
- };
-
- function _do_while(cond, body) {
- return when_constant(cond, function(cond, val){
- if (!val) {
- warn_unreachable(body);
- return [ "block" ];
- } else {
- return [ "for", null, null, null, walk(body) ];
- }
- });
- };
-
- return w.with_walkers({
- "sub": function(expr, subscript) {
- if (subscript[0] == "string") {
- var name = subscript[1];
- if (is_identifier(name))
- return [ "dot", walk(expr), name ];
- else if (/^[1-9][0-9]*$/.test(name) || name === "0")
- return [ "sub", walk(expr), [ "num", parseInt(name, 10) ] ];
- }
- },
- "if": make_if,
- "toplevel": function(body) {
- return [ "toplevel", tighten(body) ];
- },
- "switch": function(expr, body) {
- var last = body.length - 1;
- return [ "switch", walk(expr), MAP(body, function(branch, i){
- var block = tighten(branch[1]);
- if (i == last && block.length > 0) {
- var node = block[block.length - 1];
- if (node[0] == "break" && !node[1])
- block.pop();
- }
- return [ branch[0] ? walk(branch[0]) : null, block ];
- }) ];
- },
- "function": _lambda,
- "defun": _lambda,
- "block": function(body) {
- if (body) return rmblock([ "block", tighten(body) ]);
- },
- "binary": function(op, left, right) {
- return when_constant([ "binary", op, walk(left), walk(right) ], function yes(c){
- return best_of(walk(c), this);
- }, function no() {
- return function(){
- if(op != "==" && op != "!=") return;
- var l = walk(left), r = walk(right);
- if(l && l[0] == "unary-prefix" && l[1] == "!" && l[2][0] == "num")
- left = ['num', +!l[2][1]];
- else if (r && r[0] == "unary-prefix" && r[1] == "!" && r[2][0] == "num")
- right = ['num', +!r[2][1]];
- return ["binary", op, left, right];
- }() || this;
- });
- },
- "conditional": function(c, t, e) {
- return make_conditional(walk(c), walk(t), walk(e));
- },
- "try": function(t, c, f) {
- return [
- "try",
- tighten(t),
- c != null ? [ c[0], tighten(c[1]) ] : null,
- f != null ? tighten(f) : null
- ];
- },
- "unary-prefix": function(op, expr) {
- expr = walk(expr);
- var ret = [ "unary-prefix", op, expr ];
- if (op == "!")
- ret = best_of(ret, negate(expr));
- return when_constant(ret, function(ast, val){
- return walk(ast); // it's either true or false, so minifies to !0 or !1
- }, function() { return ret });
- },
- "name": function(name) {
- switch (name) {
- case "true": return [ "unary-prefix", "!", [ "num", 0 ]];
- case "false": return [ "unary-prefix", "!", [ "num", 1 ]];
- }
- },
- "while": _do_while,
- "assign": function(op, lvalue, rvalue) {
- lvalue = walk(lvalue);
- rvalue = walk(rvalue);
- var okOps = [ '+', '-', '/', '*', '%', '>>', '<<', '>>>', '|', '^', '&' ];
- if (op === true && lvalue[0] === "name" && rvalue[0] === "binary" &&
- ~okOps.indexOf(rvalue[1]) && rvalue[2][0] === "name" &&
- rvalue[2][1] === lvalue[1]) {
- return [ this[0], rvalue[1], lvalue, rvalue[3] ]
- }
- return [ this[0], op, lvalue, rvalue ];
- }
- }, function() {
- for (var i = 0; i < 2; ++i) {
- ast = prepare_ifs(ast);
- ast = walk(ast);
- }
- return ast;
- });
-};
-
-/* -----[ re-generate code from the AST ]----- */
-
-var DOT_CALL_NO_PARENS = jsp.array_to_hash([
- "name",
- "array",
- "object",
- "string",
- "dot",
- "sub",
- "call",
- "regexp",
- "defun"
-]);
-
-function make_string(str, ascii_only) {
- var dq = 0, sq = 0;
- str = str.replace(/[\\\b\f\n\r\t\x22\x27\u2028\u2029\0]/g, function(s){
- switch (s) {
- case "\\": return "\\\\";
- case "\b": return "\\b";
- case "\f": return "\\f";
- case "\n": return "\\n";
- case "\r": return "\\r";
- case "\u2028": return "\\u2028";
- case "\u2029": return "\\u2029";
- case '"': ++dq; return '"';
- case "'": ++sq; return "'";
- case "\0": return "\\0";
- }
- return s;
- });
- if (ascii_only) str = to_ascii(str);
- if (dq > sq) return "'" + str.replace(/\x27/g, "\\'") + "'";
- else return '"' + str.replace(/\x22/g, '\\"') + '"';
-};
-
-function to_ascii(str) {
- return str.replace(/[\u0080-\uffff]/g, function(ch) {
- var code = ch.charCodeAt(0).toString(16);
- while (code.length < 4) code = "0" + code;
- return "\\u" + code;
- });
-};
-
-var SPLICE_NEEDS_BRACKETS = jsp.array_to_hash([ "if", "while", "do", "for", "for-in", "with" ]);
-
-function gen_code(ast, options) {
- options = defaults(options, {
- indent_start : 0,
- indent_level : 4,
- quote_keys : false,
- space_colon : false,
- beautify : false,
- ascii_only : false,
- inline_script: false
- });
- var beautify = !!options.beautify;
- var indentation = 0,
- newline = beautify ? "\n" : "",
- space = beautify ? " " : "";
-
- function encode_string(str) {
- var ret = make_string(str, options.ascii_only);
- if (options.inline_script)
- ret = ret.replace(/<\x2fscript([>\/\t\n\f\r ])/gi, "<\\/script$1");
- return ret;
- };
-
- function make_name(name) {
- name = name.toString();
- if (options.ascii_only)
- name = to_ascii(name);
- return name;
- };
-
- function indent(line) {
- if (line == null)
- line = "";
- if (beautify)
- line = repeat_string(" ", options.indent_start + indentation * options.indent_level) + line;
- return line;
- };
-
- function with_indent(cont, incr) {
- if (incr == null) incr = 1;
- indentation += incr;
- try { return cont.apply(null, slice(arguments, 1)); }
- finally { indentation -= incr; }
- };
-
- function add_spaces(a) {
- if (beautify)
- return a.join(" ");
- var b = [];
- for (var i = 0; i < a.length; ++i) {
- var next = a[i + 1];
- b.push(a[i]);
- if (next &&
- ((/[a-z0-9_\x24]$/i.test(a[i].toString()) && /^[a-z0-9_\x24]/i.test(next.toString())) ||
- (/[\+\-]$/.test(a[i].toString()) && /^[\+\-]/.test(next.toString())))) {
- b.push(" ");
- }
- }
- return b.join("");
- };
-
- function add_commas(a) {
- return a.join("," + space);
- };
-
- function parenthesize(expr) {
- var gen = make(expr);
- for (var i = 1; i < arguments.length; ++i) {
- var el = arguments[i];
- if ((el instanceof Function && el(expr)) || expr[0] == el)
- return "(" + gen + ")";
- }
- return gen;
- };
-
- function best_of(a) {
- if (a.length == 1) {
- return a[0];
- }
- if (a.length == 2) {
- var b = a[1];
- a = a[0];
- return a.length <= b.length ? a : b;
- }
- return best_of([ a[0], best_of(a.slice(1)) ]);
- };
-
- function needs_parens(expr) {
- if (expr[0] == "function" || expr[0] == "object") {
- // dot/call on a literal function requires the
- // function literal itself to be parenthesized
- // only if it's the first "thing" in a
- // statement. This means that the parent is
- // "stat", but it could also be a "seq" and
- // we're the first in this "seq" and the
- // parent is "stat", and so on. Messy stuff,
- // but it worths the trouble.
- var a = slice(w.stack()), self = a.pop(), p = a.pop();
- while (p) {
- if (p[0] == "stat") return true;
- if (((p[0] == "seq" || p[0] == "call" || p[0] == "dot" || p[0] == "sub" || p[0] == "conditional") && p[1] === self) ||
- ((p[0] == "binary" || p[0] == "assign" || p[0] == "unary-postfix") && p[2] === self)) {
- self = p;
- p = a.pop();
- } else {
- return false;
- }
- }
- }
- return !HOP(DOT_CALL_NO_PARENS, expr[0]);
- };
-
- function make_num(num) {
- var str = num.toString(10), a = [ str.replace(/^0\./, ".") ], m;
- if (Math.floor(num) === num) {
- if (num >= 0) {
- a.push("0x" + num.toString(16).toLowerCase(), // probably pointless
- "0" + num.toString(8)); // same.
- } else {
- a.push("-0x" + (-num).toString(16).toLowerCase(), // probably pointless
- "-0" + (-num).toString(8)); // same.
- }
- if ((m = /^(.*?)(0+)$/.exec(num))) {
- a.push(m[1] + "e" + m[2].length);
- }
- } else if ((m = /^0?\.(0+)(.*)$/.exec(num))) {
- a.push(m[2] + "e-" + (m[1].length + m[2].length),
- str.substr(str.indexOf(".")));
- }
- return best_of(a);
- };
-
- var w = ast_walker();
- var make = w.walk;
- return w.with_walkers({
- "string": encode_string,
- "num": make_num,
- "name": make_name,
- "debugger": function(){ return "debugger" },
- "toplevel": function(statements) {
- return make_block_statements(statements)
- .join(newline + newline);
- },
- "splice": function(statements) {
- var parent = w.parent();
- if (HOP(SPLICE_NEEDS_BRACKETS, parent)) {
- // we need block brackets in this case
- return make_block.apply(this, arguments);
- } else {
- return MAP(make_block_statements(statements, true),
- function(line, i) {
- // the first line is already indented
- return i > 0 ? indent(line) : line;
- }).join(newline);
- }
- },
- "block": make_block,
- "var": function(defs) {
- return "var " + add_commas(MAP(defs, make_1vardef)) + ";";
- },
- "const": function(defs) {
- return "const " + add_commas(MAP(defs, make_1vardef)) + ";";
- },
- "try": function(tr, ca, fi) {
- var out = [ "try", make_block(tr) ];
- if (ca) out.push("catch", "(" + ca[0] + ")", make_block(ca[1]));
- if (fi) out.push("finally", make_block(fi));
- return add_spaces(out);
- },
- "throw": function(expr) {
- return add_spaces([ "throw", make(expr) ]) + ";";
- },
- "new": function(ctor, args) {
- args = args.length > 0 ? "(" + add_commas(MAP(args, function(expr){
- return parenthesize(expr, "seq");
- })) + ")" : "";
- return add_spaces([ "new", parenthesize(ctor, "seq", "binary", "conditional", "assign", function(expr){
- var w = ast_walker(), has_call = {};
- try {
- w.with_walkers({
- "call": function() { throw has_call },
- "function": function() { return this }
- }, function(){
- w.walk(expr);
- });
- } catch(ex) {
- if (ex === has_call)
- return true;
- throw ex;
- }
- }) + args ]);
- },
- "switch": function(expr, body) {
- return add_spaces([ "switch", "(" + make(expr) + ")", make_switch_block(body) ]);
- },
- "break": function(label) {
- var out = "break";
- if (label != null)
- out += " " + make_name(label);
- return out + ";";
- },
- "continue": function(label) {
- var out = "continue";
- if (label != null)
- out += " " + make_name(label);
- return out + ";";
- },
- "conditional": function(co, th, el) {
- return add_spaces([ parenthesize(co, "assign", "seq", "conditional"), "?",
- parenthesize(th, "seq"), ":",
- parenthesize(el, "seq") ]);
- },
- "assign": function(op, lvalue, rvalue) {
- if (op && op !== true) op += "=";
- else op = "=";
- return add_spaces([ make(lvalue), op, parenthesize(rvalue, "seq") ]);
- },
- "dot": function(expr) {
- var out = make(expr), i = 1;
- if (expr[0] == "num") {
- if (!/\./.test(expr[1]))
- out += ".";
- } else if (expr[0] != "function" && needs_parens(expr))
- out = "(" + out + ")";
- while (i < arguments.length)
- out += "." + make_name(arguments[i++]);
- return out;
- },
- "call": function(func, args) {
- var f = make(func);
- if (f.charAt(0) != "(" && needs_parens(func))
- f = "(" + f + ")";
- return f + "(" + add_commas(MAP(args, function(expr){
- return parenthesize(expr, "seq");
- })) + ")";
- },
- "function": make_function,
- "defun": make_function,
- "if": function(co, th, el) {
- var out = [ "if", "(" + make(co) + ")", el ? make_then(th) : make(th) ];
- if (el) {
- out.push("else", make(el));
- }
- return add_spaces(out);
- },
- "for": function(init, cond, step, block) {
- var out = [ "for" ];
- init = (init != null ? make(init) : "").replace(/;*\s*$/, ";" + space);
- cond = (cond != null ? make(cond) : "").replace(/;*\s*$/, ";" + space);
- step = (step != null ? make(step) : "").replace(/;*\s*$/, "");
- var args = init + cond + step;
- if (args == "; ; ") args = ";;";
- out.push("(" + args + ")", make(block));
- return add_spaces(out);
- },
- "for-in": function(vvar, key, hash, block) {
- return add_spaces([ "for", "(" +
- (vvar ? make(vvar).replace(/;+$/, "") : make(key)),
- "in",
- make(hash) + ")", make(block) ]);
- },
- "while": function(condition, block) {
- return add_spaces([ "while", "(" + make(condition) + ")", make(block) ]);
- },
- "do": function(condition, block) {
- return add_spaces([ "do", make(block), "while", "(" + make(condition) + ")" ]) + ";";
- },
- "return": function(expr) {
- var out = [ "return" ];
- if (expr != null) out.push(make(expr));
- return add_spaces(out) + ";";
- },
- "binary": function(operator, lvalue, rvalue) {
- var left = make(lvalue), right = make(rvalue);
- // XXX: I'm pretty sure other cases will bite here.
- // we need to be smarter.
- // adding parens all the time is the safest bet.
- if (member(lvalue[0], [ "assign", "conditional", "seq" ]) ||
- lvalue[0] == "binary" && PRECEDENCE[operator] > PRECEDENCE[lvalue[1]] ||
- lvalue[0] == "function" && needs_parens(this)) {
- left = "(" + left + ")";
- }
- if (member(rvalue[0], [ "assign", "conditional", "seq" ]) ||
- rvalue[0] == "binary" && PRECEDENCE[operator] >= PRECEDENCE[rvalue[1]] &&
- !(rvalue[1] == operator && member(operator, [ "&&", "||", "*" ]))) {
- right = "(" + right + ")";
- }
- else if (!beautify && options.inline_script && (operator == "<" || operator == "<<")
- && rvalue[0] == "regexp" && /^script/i.test(rvalue[1])) {
- right = " " + right;
- }
- return add_spaces([ left, operator, right ]);
- },
- "unary-prefix": function(operator, expr) {
- var val = make(expr);
- if (!(expr[0] == "num" || (expr[0] == "unary-prefix" && !HOP(OPERATORS, operator + expr[1])) || !needs_parens(expr)))
- val = "(" + val + ")";
- return operator + (jsp.is_alphanumeric_char(operator.charAt(0)) ? " " : "") + val;
- },
- "unary-postfix": function(operator, expr) {
- var val = make(expr);
- if (!(expr[0] == "num" || (expr[0] == "unary-postfix" && !HOP(OPERATORS, operator + expr[1])) || !needs_parens(expr)))
- val = "(" + val + ")";
- return val + operator;
- },
- "sub": function(expr, subscript) {
- var hash = make(expr);
- if (needs_parens(expr))
- hash = "(" + hash + ")";
- return hash + "[" + make(subscript) + "]";
- },
- "object": function(props) {
- var obj_needs_parens = needs_parens(this);
- if (props.length == 0)
- return obj_needs_parens ? "({})" : "{}";
- var out = "{" + newline + with_indent(function(){
- return MAP(props, function(p){
- if (p.length == 3) {
- // getter/setter. The name is in p[0], the arg.list in p[1][2], the
- // body in p[1][3] and type ("get" / "set") in p[2].
- return indent(make_function(p[0], p[1][2], p[1][3], p[2], true));
- }
- var key = p[0], val = parenthesize(p[1], "seq");
- if (options.quote_keys) {
- key = encode_string(key);
- } else if ((typeof key == "number" || !beautify && +key + "" == key)
- && parseFloat(key) >= 0) {
- key = make_num(+key);
- } else if (!is_identifier(key)) {
- key = encode_string(key);
- }
- return indent(add_spaces(beautify && options.space_colon
- ? [ key, ":", val ]
- : [ key + ":", val ]));
- }).join("," + newline);
- }) + newline + indent("}");
- return obj_needs_parens ? "(" + out + ")" : out;
- },
- "regexp": function(rx, mods) {
- return "/" + rx + "/" + mods;
- },
- "array": function(elements) {
- if (elements.length == 0) return "[]";
- return add_spaces([ "[", add_commas(MAP(elements, function(el, i){
- if (!beautify && el[0] == "atom" && el[1] == "undefined") return i === elements.length - 1 ? "," : "";
- return parenthesize(el, "seq");
- })), "]" ]);
- },
- "stat": function(stmt) {
- return make(stmt).replace(/;*\s*$/, ";");
- },
- "seq": function() {
- return add_commas(MAP(slice(arguments), make));
- },
- "label": function(name, block) {
- return add_spaces([ make_name(name), ":", make(block) ]);
- },
- "with": function(expr, block) {
- return add_spaces([ "with", "(" + make(expr) + ")", make(block) ]);
- },
- "atom": function(name) {
- return make_name(name);
- }
- }, function(){ return make(ast) });
-
- // The squeezer replaces "block"-s that contain only a single
- // statement with the statement itself; technically, the AST
- // is correct, but this can create problems when we output an
- // IF having an ELSE clause where the THEN clause ends in an
- // IF *without* an ELSE block (then the outer ELSE would refer
- // to the inner IF). This function checks for this case and
- // adds the block brackets if needed.
- function make_then(th) {
- if (th == null) return ";";
- if (th[0] == "do") {
- // https://github.com/mishoo/UglifyJS/issues/#issue/57
- // IE croaks with "syntax error" on code like this:
- // if (foo) do ... while(cond); else ...
- // we need block brackets around do/while
- return make_block([ th ]);
- }
- var b = th;
- while (true) {
- var type = b[0];
- if (type == "if") {
- if (!b[3])
- // no else, we must add the block
- return make([ "block", [ th ]]);
- b = b[3];
- }
- else if (type == "while" || type == "do") b = b[2];
- else if (type == "for" || type == "for-in") b = b[4];
- else break;
- }
- return make(th);
- };
-
- function make_function(name, args, body, keyword, no_parens) {
- var out = keyword || "function";
- if (name) {
- out += " " + make_name(name);
- }
- out += "(" + add_commas(MAP(args, make_name)) + ")";
- out = add_spaces([ out, make_block(body) ]);
- return (!no_parens && needs_parens(this)) ? "(" + out + ")" : out;
- };
-
- function must_has_semicolon(node) {
- switch (node[0]) {
- case "with":
- case "while":
- return empty(node[2]); // `with' or `while' with empty body?
- case "for":
- case "for-in":
- return empty(node[4]); // `for' with empty body?
- case "if":
- if (empty(node[2]) && !node[3]) return true; // `if' with empty `then' and no `else'
- if (node[3]) {
- if (empty(node[3])) return true; // `else' present but empty
- return must_has_semicolon(node[3]); // dive into the `else' branch
- }
- return must_has_semicolon(node[2]); // dive into the `then' branch
- }
- };
-
- function make_block_statements(statements, noindent) {
- for (var a = [], last = statements.length - 1, i = 0; i <= last; ++i) {
- var stat = statements[i];
- var code = make(stat);
- if (code != ";") {
- if (!beautify && i == last && !must_has_semicolon(stat)) {
- code = code.replace(/;+\s*$/, "");
- }
- a.push(code);
- }
- }
- return noindent ? a : MAP(a, indent);
- };
-
- function make_switch_block(body) {
- var n = body.length;
- if (n == 0) return "{}";
- return "{" + newline + MAP(body, function(branch, i){
- var has_body = branch[1].length > 0, code = with_indent(function(){
- return indent(branch[0]
- ? add_spaces([ "case", make(branch[0]) + ":" ])
- : "default:");
- }, 0.5) + (has_body ? newline + with_indent(function(){
- return make_block_statements(branch[1]).join(newline);
- }) : "");
- if (!beautify && has_body && i < n - 1)
- code += ";";
- return code;
- }).join(newline) + newline + indent("}");
- };
-
- function make_block(statements) {
- if (!statements) return ";";
- if (statements.length == 0) return "{}";
- return "{" + newline + with_indent(function(){
- return make_block_statements(statements).join(newline);
- }) + newline + indent("}");
- };
-
- function make_1vardef(def) {
- var name = def[0], val = def[1];
- if (val != null)
- name = add_spaces([ make_name(name), "=", parenthesize(val, "seq") ]);
- return name;
- };
-
-};
-
-function split_lines(code, max_line_length) {
- var splits = [ 0 ];
- jsp.parse(function(){
- var next_token = jsp.tokenizer(code);
- var last_split = 0;
- var prev_token;
- function current_length(tok) {
- return tok.pos - last_split;
- };
- function split_here(tok) {
- last_split = tok.pos;
- splits.push(last_split);
- };
- function custom(){
- var tok = next_token.apply(this, arguments);
- out: {
- if (prev_token) {
- if (prev_token.type == "keyword") break out;
- }
- if (current_length(tok) > max_line_length) {
- switch (tok.type) {
- case "keyword":
- case "atom":
- case "name":
- case "punc":
- split_here(tok);
- break out;
- }
- }
- }
- prev_token = tok;
- return tok;
- };
- custom.context = function() {
- return next_token.context.apply(this, arguments);
- };
- return custom;
- }());
- return splits.map(function(pos, i){
- return code.substring(pos, splits[i + 1] || code.length);
- }).join("\n");
-};
-
-/* -----[ Utilities ]----- */
-
-function repeat_string(str, i) {
- if (i <= 0) return "";
- if (i == 1) return str;
- var d = repeat_string(str, i >> 1);
- d += d;
- if (i & 1) d += str;
- return d;
-};
-
-function defaults(args, defs) {
- var ret = {};
- if (args === true)
- args = {};
- for (var i in defs) if (HOP(defs, i)) {
- ret[i] = (args && HOP(args, i)) ? args[i] : defs[i];
- }
- return ret;
-};
-
-function is_identifier(name) {
- return /^[a-z_$][a-z0-9_$]*$/i.test(name)
- && name != "this"
- && !HOP(jsp.KEYWORDS_ATOM, name)
- && !HOP(jsp.RESERVED_WORDS, name)
- && !HOP(jsp.KEYWORDS, name);
-};
-
-function HOP(obj, prop) {
- return Object.prototype.hasOwnProperty.call(obj, prop);
-};
-
-// some utilities
-
-var MAP;
-
-(function(){
- MAP = function(a, f, o) {
- var ret = [], top = [], i;
- function doit() {
- var val = f.call(o, a[i], i);
- if (val instanceof AtTop) {
- val = val.v;
- if (val instanceof Splice) {
- top.push.apply(top, val.v);
- } else {
- top.push(val);
- }
- }
- else if (val != skip) {
- if (val instanceof Splice) {
- ret.push.apply(ret, val.v);
- } else {
- ret.push(val);
- }
- }
- };
- if (a instanceof Array) for (i = 0; i < a.length; ++i) doit();
- else for (i in a) if (HOP(a, i)) doit();
- return top.concat(ret);
- };
- MAP.at_top = function(val) { return new AtTop(val) };
- MAP.splice = function(val) { return new Splice(val) };
- var skip = MAP.skip = {};
- function AtTop(val) { this.v = val };
- function Splice(val) { this.v = val };
-})();
-
-/* -----[ Exports ]----- */
-
-exports.ast_walker = ast_walker;
-exports.ast_mangle = ast_mangle;
-exports.ast_squeeze = ast_squeeze;
-exports.ast_lift_variables = ast_lift_variables;
-exports.gen_code = gen_code;
-exports.ast_add_scope = ast_add_scope;
-exports.set_logger = function(logger) { warn = logger };
-exports.make_string = make_string;
-exports.split_lines = split_lines;
-exports.MAP = MAP;
-
-// keep this last!
-exports.ast_squeeze_more = require("./squeeze-more").ast_squeeze_more;
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/squeeze-more.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/squeeze-more.js
deleted file mode 100644
index 0908db3eeed..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/lib/squeeze-more.js
+++ /dev/null
@@ -1,73 +0,0 @@
-var jsp = require("./parse-js"),
- pro = require("./process"),
- slice = jsp.slice,
- member = jsp.member,
- curry = jsp.curry,
- MAP = pro.MAP,
- PRECEDENCE = jsp.PRECEDENCE,
- OPERATORS = jsp.OPERATORS;
-
-function ast_squeeze_more(ast) {
- var w = pro.ast_walker(), walk = w.walk, scope;
- function with_scope(s, cont) {
- var save = scope, ret;
- scope = s;
- ret = cont();
- scope = save;
- return ret;
- };
- function _lambda(name, args, body) {
- return [ this[0], name, args, with_scope(body.scope, curry(MAP, body, walk)) ];
- };
- return w.with_walkers({
- "toplevel": function(body) {
- return [ this[0], with_scope(this.scope, curry(MAP, body, walk)) ];
- },
- "function": _lambda,
- "defun": _lambda,
- "new": function(ctor, args) {
- if (ctor[0] == "name") {
- if (ctor[1] == "Array" && !scope.has("Array")) {
- if (args.length != 1) {
- return [ "array", args ];
- } else {
- return walk([ "call", [ "name", "Array" ], args ]);
- }
- } else if (ctor[1] == "Object" && !scope.has("Object")) {
- if (!args.length) {
- return [ "object", [] ];
- } else {
- return walk([ "call", [ "name", "Object" ], args ]);
- }
- } else if ((ctor[1] == "RegExp" || ctor[1] == "Function" || ctor[1] == "Error") && !scope.has(ctor[1])) {
- return walk([ "call", [ "name", ctor[1] ], args]);
- }
- }
- },
- "call": function(expr, args) {
- if (expr[0] == "dot" && expr[1][0] == "string" && args.length == 1
- && (args[0][1] > 0 && expr[2] == "substring" || expr[2] == "substr")) {
- return [ "call", [ "dot", expr[1], "slice"], args];
- }
- if (expr[0] == "dot" && expr[2] == "toString" && args.length == 0) {
- // foo.toString() ==> foo+""
- return [ "binary", "+", expr[1], [ "string", "" ]];
- }
- if (expr[0] == "name") {
- if (expr[1] == "Array" && args.length != 1 && !scope.has("Array")) {
- return [ "array", args ];
- }
- if (expr[1] == "Object" && !args.length && !scope.has("Object")) {
- return [ "object", [] ];
- }
- if (expr[1] == "String" && !scope.has("String")) {
- return [ "binary", "+", args[0], [ "string", "" ]];
- }
- }
- }
- }, function() {
- return walk(pro.ast_add_scope(ast));
- });
-};
-
-exports.ast_squeeze_more = ast_squeeze_more;
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 cdbca1e7abe..00000000000
--- 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.6",
- "main": "./uglify-js.js",
- "bin": {
- "uglifyjs": "./bin/uglifyjs"
- },
- "repository": {
- "type": "git",
- "url": "git@github.com:mishoo/UglifyJS.git"
- },
- "readme": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\"\nlang=\"en\" xml:lang=\"en\">\n<head>\n<title>UglifyJS &ndash; a JavaScript parser/compressor/beautifier</title>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\"/>\n<meta name=\"generator\" content=\"Org-mode\"/>\n<meta name=\"generated\" content=\"2011-12-09 14:59:08 EET\"/>\n<meta name=\"author\" content=\"Mihai Bazon\"/>\n<meta name=\"description\" content=\"a JavaScript parser/compressor/beautifier in JavaScript\"/>\n<meta name=\"keywords\" content=\"javascript, js, parser, compiler, compressor, mangle, minify, minifier\"/>\n<style type=\"text/css\">\n <!--/*--><![CDATA[/*><!--*/\n html { font-family: Times, serif; font-size: 12pt; }\n .title { text-align: center; }\n .todo { color: red; }\n .done { color: green; }\n .tag { background-color: #add8e6; font-weight:normal }\n .target { }\n .timestamp { color: #bebebe; }\n .timestamp-kwd { color: #5f9ea0; }\n .right {margin-left:auto; margin-right:0px; text-align:right;}\n .left {margin-left:0px; margin-right:auto; text-align:left;}\n .center {margin-left:auto; margin-right:auto; text-align:center;}\n p.verse { margin-left: 3% }\n pre {\n\tborder: 1pt solid #AEBDCC;\n\tbackground-color: #F3F5F7;\n\tpadding: 5pt;\n\tfont-family: courier, monospace;\n font-size: 90%;\n overflow:auto;\n }\n table { border-collapse: collapse; }\n td, th { vertical-align: top; }\n th.right { text-align:center; }\n th.left { text-align:center; }\n th.center { text-align:center; }\n td.right { text-align:right; }\n td.left { text-align:left; }\n td.center { text-align:center; }\n dt { font-weight: bold; }\n div.figure { padding: 0.5em; }\n div.figure p { text-align: center; }\n div.inlinetask {\n padding:10px;\n border:2px solid gray;\n margin:10px;\n background: #ffffcc;\n }\n textarea { overflow-x: auto; }\n .linenr { font-size:smaller }\n .code-highlighted {background-color:#ffff00;}\n .org-info-js_info-navigation { border-style:none; }\n #org-info-js_console-label { font-size:10px; font-weight:bold;\n white-space:nowrap; }\n .org-info-js_search-highlight {background-color:#ffff00; color:#000000;\n font-weight:bold; }\n /*]]>*/-->\n</style>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"docstyle.css\" />\n<script type=\"text/javascript\">\n<!--/*--><![CDATA[/*><!--*/\n function CodeHighlightOn(elem, id)\n {\n var target = document.getElementById(id);\n if(null != target) {\n elem.cacheClassElem = elem.className;\n elem.cacheClassTarget = target.className;\n target.className = \"code-highlighted\";\n elem.className = \"code-highlighted\";\n }\n }\n function CodeHighlightOff(elem, id)\n {\n var target = document.getElementById(id);\n if(elem.cacheClassElem)\n elem.className = elem.cacheClassElem;\n if(elem.cacheClassTarget)\n target.className = elem.cacheClassTarget;\n }\n/*]]>*///-->\n</script>\n\n</head>\n<body>\n\n<div id=\"preamble\">\n\n</div>\n\n<div id=\"content\">\n<h1 class=\"title\">UglifyJS &ndash; a JavaScript parser/compressor/beautifier</h1>\n\n\n<div id=\"table-of-contents\">\n<h2>Table of Contents</h2>\n<div id=\"text-table-of-contents\">\n<ul>\n<li><a href=\"#sec-1\">1 UglifyJS &mdash; a JavaScript parser/compressor/beautifier </a>\n<ul>\n<li><a href=\"#sec-1-1\">1.1 Unsafe transformations </a>\n<ul>\n<li><a href=\"#sec-1-1-1\">1.1.1 Calls involving the global Array constructor </a></li>\n<li><a href=\"#sec-1-1-2\">1.1.2 <code>obj.toString()</code> ==&gt; <code>obj+“”</code> </a></li>\n</ul>\n</li>\n<li><a href=\"#sec-1-2\">1.2 Install (NPM) </a></li>\n<li><a href=\"#sec-1-3\">1.3 Install latest code from GitHub </a></li>\n<li><a href=\"#sec-1-4\">1.4 Usage </a>\n<ul>\n<li><a href=\"#sec-1-4-1\">1.4.1 API </a></li>\n<li><a href=\"#sec-1-4-2\">1.4.2 Beautifier shortcoming &ndash; no more comments </a></li>\n<li><a href=\"#sec-1-4-3\">1.4.3 Use as a code pre-processor </a></li>\n</ul>\n</li>\n<li><a href=\"#sec-1-5\">1.5 Compression &ndash; how good is it? </a></li>\n<li><a href=\"#sec-1-6\">1.6 Bugs? </a></li>\n<li><a href=\"#sec-1-7\">1.7 Links </a></li>\n<li><a href=\"#sec-1-8\">1.8 License </a></li>\n</ul>\n</li>\n</ul>\n</div>\n</div>\n\n<div id=\"outline-container-1\" class=\"outline-2\">\n<h2 id=\"sec-1\"><span class=\"section-number-2\">1</span> UglifyJS &mdash; a JavaScript parser/compressor/beautifier </h2>\n<div class=\"outline-text-2\" id=\"text-1\">\n\n\n<p>\nThis package implements a general-purpose JavaScript\nparser/compressor/beautifier toolkit. It is developed on <a href=\"http://nodejs.org/\">NodeJS</a>, 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 <code>exports.*</code> lines from UglifyJS sources).\n</p>\n<p>\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 <a href=\"../lib/parse-js.js\">parse-js.js</a> and it's a\nport to JavaScript of the excellent <a href=\"http://marijn.haverbeke.nl/parse-js/\">parse-js</a> Common Lisp library from <a href=\"http://marijn.haverbeke.nl/\">Marijn Haverbeke</a>.\n</p>\n<p>\n( See <a href=\"http://github.com/mishoo/cl-uglify-js\">cl-uglify-js</a> if you're looking for the Common Lisp version of\nUglifyJS. )\n</p>\n<p>\nThe second part of this package, implemented in <a href=\"../lib/process.js\">process.js</a>, inspects and\nmanipulates the AST generated by the parser to provide the following:\n</p>\n<ul>\n<li>ability to re-generate JavaScript code from the AST. Optionally\n indented&mdash;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</li>\n<li>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 <code>eval()</code> calls or <code>with{}</code> statements. In short, if <code>eval()</code> or\n <code>with{}</code> 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</li>\n<li>various small optimizations that may lead to faster code but certainly\n lead to smaller code. Where possible, we do the following:\n\n<ul>\n<li>foo[\"bar\"] ==&gt; foo.bar\n\n</li>\n<li>remove block brackets <code>{}</code>\n\n</li>\n<li>join consecutive var declarations:\n var a = 10; var b = 20; ==&gt; var a=10,b=20;\n\n</li>\n<li>resolve simple constant expressions: 1 +2 * 3 ==&gt; 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</li>\n<li>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</li>\n<li>various optimizations for IF statements:\n\n<ul>\n<li>if (foo) bar(); else baz(); ==&gt; foo?bar():baz();\n</li>\n<li>if (!foo) bar(); else baz(); ==&gt; foo?baz():bar();\n</li>\n<li>if (foo) bar(); ==&gt; foo&amp;&amp;bar();\n</li>\n<li>if (!foo) bar(); ==&gt; foo||bar();\n</li>\n<li>if (foo) return bar(); else return baz(); ==&gt; return foo?bar():baz();\n</li>\n<li>if (foo) return bar(); else something(); ==&gt; {if(foo)return bar();something()}\n\n</li>\n</ul>\n\n</li>\n<li>remove some unreachable code and warn about it (code that follows a\n <code>return</code>, <code>throw</code>, <code>break</code> or <code>continue</code> statement, except\n function/variable declarations).\n\n</li>\n<li>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</li>\n</ul>\n\n</li>\n</ul>\n\n\n\n</div>\n\n<div id=\"outline-container-1-1\" class=\"outline-3\">\n<h3 id=\"sec-1-1\"><span class=\"section-number-3\">1.1</span> <span class=\"target\">Unsafe transformations</span> </h3>\n<div class=\"outline-text-3\" id=\"text-1-1\">\n\n\n<p>\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<code>--unsafe</code> flag.\n</p>\n\n</div>\n\n<div id=\"outline-container-1-1-1\" class=\"outline-4\">\n<h4 id=\"sec-1-1-1\"><span class=\"section-number-4\">1.1.1</span> Calls involving the global Array constructor </h4>\n<div class=\"outline-text-4\" id=\"text-1-1-1\">\n\n\n<p>\nThe following transformations occur:\n</p>\n\n\n\n<pre class=\"src src-js\"><span class=\"org-keyword\">new</span> <span class=\"org-type\">Array</span>(1, 2, 3, 4) =&gt; [1,2,3,4]\nArray(a, b, c) =&gt; [a,b,c]\n<span class=\"org-keyword\">new</span> <span class=\"org-type\">Array</span>(5) =&gt; Array(5)\n<span class=\"org-keyword\">new</span> <span class=\"org-type\">Array</span>(a) =&gt; Array(a)\n</pre>\n\n\n<p>\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</p>\n<p>\nUglifyJS does handle the case where Array is redefined locally, or even\nglobally but with a <code>function</code> or <code>var</code> declaration. Therefore, in the\nfollowing cases UglifyJS <b>doesn't touch</b> calls or instantiations of Array:\n</p>\n\n\n\n<pre class=\"src src-js\"><span class=\"org-comment-delimiter\">// </span><span class=\"org-comment\">case 1. globally declared variable</span>\n <span class=\"org-keyword\">var</span> <span class=\"org-variable-name\">Array</span>;\n <span class=\"org-keyword\">new</span> <span class=\"org-type\">Array</span>(1, 2, 3);\n Array(a, b);\n\n <span class=\"org-comment-delimiter\">// </span><span class=\"org-comment\">or (can be declared later)</span>\n <span class=\"org-keyword\">new</span> <span class=\"org-type\">Array</span>(1, 2, 3);\n <span class=\"org-keyword\">var</span> <span class=\"org-variable-name\">Array</span>;\n\n <span class=\"org-comment-delimiter\">// </span><span class=\"org-comment\">or (can be a function)</span>\n <span class=\"org-keyword\">new</span> <span class=\"org-type\">Array</span>(1, 2, 3);\n <span class=\"org-keyword\">function</span> <span class=\"org-function-name\">Array</span>() { ... }\n\n<span class=\"org-comment-delimiter\">// </span><span class=\"org-comment\">case 2. declared in a function</span>\n (<span class=\"org-keyword\">function</span>(){\n a = <span class=\"org-keyword\">new</span> <span class=\"org-type\">Array</span>(1, 2, 3);\n b = Array(5, 6);\n <span class=\"org-keyword\">var</span> <span class=\"org-variable-name\">Array</span>;\n })();\n\n <span class=\"org-comment-delimiter\">// </span><span class=\"org-comment\">or</span>\n (<span class=\"org-keyword\">function</span>(<span class=\"org-variable-name\">Array</span>){\n <span class=\"org-keyword\">return</span> Array(5, 6, 7);\n })();\n\n <span class=\"org-comment-delimiter\">// </span><span class=\"org-comment\">or</span>\n (<span class=\"org-keyword\">function</span>(){\n <span class=\"org-keyword\">return</span> <span class=\"org-keyword\">new</span> <span class=\"org-type\">Array</span>(1, 2, 3, 4);\n <span class=\"org-keyword\">function</span> <span class=\"org-function-name\">Array</span>() { ... }\n })();\n\n <span class=\"org-comment-delimiter\">// </span><span class=\"org-comment\">etc.</span>\n</pre>\n\n\n</div>\n\n</div>\n\n<div id=\"outline-container-1-1-2\" class=\"outline-4\">\n<h4 id=\"sec-1-1-2\"><span class=\"section-number-4\">1.1.2</span> <code>obj.toString()</code> ==&gt; <code>obj+“”</code> </h4>\n<div class=\"outline-text-4\" id=\"text-1-1-2\">\n\n\n</div>\n</div>\n\n</div>\n\n<div id=\"outline-container-1-2\" class=\"outline-3\">\n<h3 id=\"sec-1-2\"><span class=\"section-number-3\">1.2</span> Install (NPM) </h3>\n<div class=\"outline-text-3\" id=\"text-1-2\">\n\n\n<p>\nUglifyJS is now available through NPM &mdash; <code>npm install uglify-js</code> should do\nthe job.\n</p>\n</div>\n\n</div>\n\n<div id=\"outline-container-1-3\" class=\"outline-3\">\n<h3 id=\"sec-1-3\"><span class=\"section-number-3\">1.3</span> Install latest code from GitHub </h3>\n<div class=\"outline-text-3\" id=\"text-1-3\">\n\n\n\n\n\n<pre class=\"src src-sh\"><span class=\"org-comment-delimiter\">## </span><span class=\"org-comment\">clone the repository</span>\nmkdir -p /where/you/wanna/put/it\n<span class=\"org-builtin\">cd</span> /where/you/wanna/put/it\ngit clone git://github.com/mishoo/UglifyJS.git\n\n<span class=\"org-comment-delimiter\">## </span><span class=\"org-comment\">make the module available to Node</span>\nmkdir -p ~/.node_libraries/\n<span class=\"org-builtin\">cd</span> ~/.node_libraries/\nln -s /where/you/wanna/put/it/UglifyJS/uglify-js.js\n\n<span class=\"org-comment-delimiter\">## </span><span class=\"org-comment\">and if you want the CLI script too:</span>\nmkdir -p ~/bin\n<span class=\"org-builtin\">cd</span> ~/bin\nln -s /where/you/wanna/put/it/UglifyJS/bin/uglifyjs\n <span class=\"org-comment-delimiter\"># </span><span class=\"org-comment\">(then add ~/bin to your $PATH if it's not there already)</span>\n</pre>\n\n\n</div>\n\n</div>\n\n<div id=\"outline-container-1-4\" class=\"outline-3\">\n<h3 id=\"sec-1-4\"><span class=\"section-number-3\">1.4</span> Usage </h3>\n<div class=\"outline-text-3\" id=\"text-1-4\">\n\n\n<p>\nThere is a command-line tool that exposes the functionality of this library\nfor your shell-scripting needs:\n</p>\n\n\n\n<pre class=\"src src-sh\">uglifyjs [ options... ] [ filename ]\n</pre>\n\n\n<p>\n<code>filename</code> 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</p>\n<p>\nSupported options:\n</p>\n<ul>\n<li><code>-b</code> or <code>--beautify</code> &mdash; output indented code; when passed, additional\n options control the beautifier:\n\n<ul>\n<li><code>-i N</code> or <code>--indent N</code> &mdash; indentation level (number of spaces)\n\n</li>\n<li><code>-q</code> or <code>--quote-keys</code> &mdash; quote keys in literal objects (by default,\n only keys that cannot be identifier names will be quotes).\n\n</li>\n</ul>\n\n</li>\n<li><code>--ascii</code> &mdash; pass this argument to encode non-ASCII characters as\n <code>\\uXXXX</code> 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</li>\n<li><code>-nm</code> or <code>--no-mangle</code> &mdash; don't mangle names.\n\n</li>\n<li><code>-nmf</code> or <code>--no-mangle-functions</code> &ndash; in case you want to mangle variable\n names, but not touch function names.\n\n</li>\n<li><code>-ns</code> or <code>--no-squeeze</code> &mdash; don't call <code>ast_squeeze()</code> (which does various\n optimizations that result in smaller, less readable code).\n\n</li>\n<li><code>-mt</code> or <code>--mangle-toplevel</code> &mdash; mangle names in the toplevel scope too\n (by default we don't do this).\n\n</li>\n<li><code>--no-seqs</code> &mdash; when <code>ast_squeeze()</code> is called (thus, unless you pass\n <code>--no-squeeze</code>) 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 <code>--no-seqs</code> to disable it.\n\n</li>\n<li><code>--no-dead-code</code> &mdash; by default, UglifyJS will remove code that is\n obviously unreachable (code that follows a <code>return</code>, <code>throw</code>, <code>break</code> or\n <code>continue</code> statement and is not a function/variable declaration). Pass\n this option to disable this optimization.\n\n</li>\n<li><code>-nc</code> or <code>--no-copyright</code> &mdash; by default, <code>uglifyjs</code> 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</li>\n<li><code>-o filename</code> or <code>--output filename</code> &mdash; put the result in <code>filename</code>. If\n this isn't given, the result goes to standard output (or see next one).\n\n</li>\n<li><code>--overwrite</code> &mdash; if the code is read from a file (not from STDIN) and you\n pass <code>--overwrite</code> then the output will be written in the same file.\n\n</li>\n<li><code>--ast</code> &mdash; 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</li>\n<li><code>-v</code> or <code>--verbose</code> &mdash; output some notes on STDERR (for now just how long\n each operation takes).\n\n</li>\n<li><code>-d SYMBOL[=VALUE]</code> or <code>--define SYMBOL[=VALUE]</code> &mdash; 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 <code>true</code>, or you can specify a numeric value (such as\n <code>1024</code>), a quoted string value (such as =\"object\"= or\n ='https://github.com'<code>), or the name of another symbol or keyword (such as =null</code> or <code>document</code>).\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 <b>conditional compilation</b>\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 <code>--define-from-module</code> more suitable for use.\n\n</li>\n<li><code>-define-from-module SOMEMODULE</code> &mdash; will load the named module (as\n per the NodeJS <code>require()</code> function) and iterate all the exported\n properties of the module defining them as symbol names to be defined\n (as if by the <code>--define</code> 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 <code>--define</code>\n options.\n\n</li>\n<li><code>--unsafe</code> &mdash; 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<ul>\n<li>foo.toString() ==&gt; foo+\"\"\n</li>\n<li>new Array(x,&hellip;) ==&gt; [x,&hellip;]\n</li>\n<li>new Array(x) ==&gt; Array(x)\n\n</li>\n</ul>\n\n</li>\n<li><code>--max-line-len</code> (default 32K characters) &mdash; 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 &ndash;max-line-len 0 to disable this\n safety feature.\n\n</li>\n<li><code>--reserved-names</code> &mdash; 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 <code>require</code> and <code>$super</code>\n intact you'd specify &ndash;reserved-names \"require,$super\".\n\n</li>\n<li><code>--inline-script</code> &ndash; when you want to include the output literally in an\n HTML <code>&lt;script&gt;</code> tag you can use this option to prevent <code>&lt;/script</code> from\n showing up in the output.\n\n</li>\n<li><code>--lift-vars</code> &ndash; when you pass this, UglifyJS will apply the following\n transformations (see the notes in API, <code>ast_lift_variables</code>):\n\n<ul>\n<li>put all <code>var</code> declarations at the start of the scope\n</li>\n<li>make sure a variable is declared only once\n</li>\n<li>discard unused function arguments\n</li>\n<li>discard unused inner (named) functions\n</li>\n<li>finally, try to merge assignments into that one <code>var</code> declaration, if\n possible.\n</li>\n</ul>\n\n</li>\n</ul>\n\n\n\n</div>\n\n<div id=\"outline-container-1-4-1\" class=\"outline-4\">\n<h4 id=\"sec-1-4-1\"><span class=\"section-number-4\">1.4.1</span> API </h4>\n<div class=\"outline-text-4\" id=\"text-1-4-1\">\n\n\n<p>\nTo use the library from JavaScript, you'd do the following (example for\nNodeJS):\n</p>\n\n\n\n<pre class=\"src src-js\"><span class=\"org-keyword\">var</span> <span class=\"org-variable-name\">jsp</span> = require(<span class=\"org-string\">\"uglify-js\"</span>).parser;\n<span class=\"org-keyword\">var</span> <span class=\"org-variable-name\">pro</span> = require(<span class=\"org-string\">\"uglify-js\"</span>).uglify;\n\n<span class=\"org-keyword\">var</span> <span class=\"org-variable-name\">orig_code</span> = <span class=\"org-string\">\"... JS code here\"</span>;\n<span class=\"org-keyword\">var</span> <span class=\"org-variable-name\">ast</span> = jsp.parse(orig_code); <span class=\"org-comment-delimiter\">// </span><span class=\"org-comment\">parse code and get the initial AST</span>\nast = pro.ast_mangle(ast); <span class=\"org-comment-delimiter\">// </span><span class=\"org-comment\">get a new AST with mangled names</span>\nast = pro.ast_squeeze(ast); <span class=\"org-comment-delimiter\">// </span><span class=\"org-comment\">get an AST with compression optimizations</span>\n<span class=\"org-keyword\">var</span> <span class=\"org-variable-name\">final_code</span> = pro.gen_code(ast); <span class=\"org-comment-delimiter\">// </span><span class=\"org-comment\">compressed code here</span>\n</pre>\n\n\n<p>\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\n<code>pro.ast_mangle(ast)</code>.\n</p>\n<p>\nSome of these functions take optional arguments. Here's a description:\n</p>\n<ul>\n<li><code>jsp.parse(code, strict_semicolons)</code> &ndash; parses JS code and returns an AST.\n <code>strict_semicolons</code> is optional and defaults to <code>false</code>. If you pass\n <code>true</code> 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</li>\n<li><code>pro.ast_lift_variables(ast)</code> &ndash; merge and move <code>var</code> 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 <code>var</code> declaration into it.\n\n<p>\n If your code is very hand-optimized concerning <code>var</code> 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</p>\n<p>\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</p>\n<p>\n Here's an example of what it does:\n</p></li>\n</ul>\n\n\n\n\n\n<pre class=\"src src-js\"><span class=\"org-keyword\">function</span> <span class=\"org-function-name\">f</span>(<span class=\"org-variable-name\">a</span>, <span class=\"org-variable-name\">b</span>, <span class=\"org-variable-name\">c</span>, <span class=\"org-variable-name\">d</span>, <span class=\"org-variable-name\">e</span>) {\n <span class=\"org-keyword\">var</span> <span class=\"org-variable-name\">q</span>;\n <span class=\"org-keyword\">var</span> <span class=\"org-variable-name\">w</span>;\n w = 10;\n q = 20;\n <span class=\"org-keyword\">for</span> (<span class=\"org-keyword\">var</span> <span class=\"org-variable-name\">i</span> = 1; i &lt; 10; ++i) {\n <span class=\"org-keyword\">var</span> <span class=\"org-variable-name\">boo</span> = foo(a);\n }\n <span class=\"org-keyword\">for</span> (<span class=\"org-keyword\">var</span> <span class=\"org-variable-name\">i</span> = 0; i &lt; 1; ++i) {\n <span class=\"org-keyword\">var</span> <span class=\"org-variable-name\">boo</span> = bar(c);\n }\n <span class=\"org-keyword\">function</span> <span class=\"org-function-name\">foo</span>(){ ... }\n <span class=\"org-keyword\">function</span> <span class=\"org-function-name\">bar</span>(){ ... }\n <span class=\"org-keyword\">function</span> <span class=\"org-function-name\">baz</span>(){ ... }\n}\n\n<span class=\"org-comment-delimiter\">// </span><span class=\"org-comment\">transforms into ==&gt;</span>\n\n<span class=\"org-keyword\">function</span> <span class=\"org-function-name\">f</span>(<span class=\"org-variable-name\">a</span>, <span class=\"org-variable-name\">b</span>, <span class=\"org-variable-name\">c</span>) {\n <span class=\"org-keyword\">var</span> <span class=\"org-variable-name\">i</span>, <span class=\"org-variable-name\">boo</span>, <span class=\"org-variable-name\">w</span> = 10, <span class=\"org-variable-name\">q</span> = 20;\n <span class=\"org-keyword\">for</span> (i = 1; i &lt; 10; ++i) {\n boo = foo(a);\n }\n <span class=\"org-keyword\">for</span> (i = 0; i &lt; 1; ++i) {\n boo = bar(c);\n }\n <span class=\"org-keyword\">function</span> <span class=\"org-function-name\">foo</span>() { ... }\n <span class=\"org-keyword\">function</span> <span class=\"org-function-name\">bar</span>() { ... }\n}\n</pre>\n\n\n<ul>\n<li><code>pro.ast_mangle(ast, options)</code> &ndash; generates a new AST containing mangled\n (compressed) variable and function names. It supports the following\n options:\n\n<ul>\n<li><code>toplevel</code> &ndash; mangle toplevel names (by default we don't touch them).\n</li>\n<li><code>except</code> &ndash; an array of names to exclude from compression.\n</li>\n<li><code>defines</code> &ndash; an object with properties named after symbols to\n replace (see the <code>--define</code> option for the script) and the values\n representing the AST replacement value.\n\n</li>\n</ul>\n\n</li>\n<li><code>pro.ast_squeeze(ast, options)</code> &ndash; employs further optimizations designed\n to reduce the size of the code that <code>gen_code</code> would generate from the\n AST. Returns a new AST. <code>options</code> can be a hash; the supported options\n are:\n\n<ul>\n<li><code>make_seqs</code> (default true) which will cause consecutive statements in a\n block to be merged using the \"sequence\" (comma) operator\n\n</li>\n<li><code>dead_code</code> (default true) which will remove unreachable code.\n\n</li>\n</ul>\n\n</li>\n<li><code>pro.gen_code(ast, options)</code> &ndash; generates JS code from the AST. By\n default it's minified, but using the <code>options</code> argument you can get nicely\n formatted output. <code>options</code> 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<ul>\n<li><code>beautify: false</code> &ndash; pass <code>true</code> if you want indented output\n</li>\n<li><code>indent_start: 0</code> (only applies when <code>beautify</code> is <code>true</code>) &ndash; initial\n indentation in spaces\n</li>\n<li><code>indent_level: 4</code> (only applies when <code>beautify</code> is <code>true</code>) --\n indentation level, in spaces (pass an even number)\n</li>\n<li><code>quote_keys: false</code> &ndash; if you pass <code>true</code> it will quote all keys in\n literal objects\n</li>\n<li><code>space_colon: false</code> (only applies when <code>beautify</code> is <code>true</code>) &ndash; wether\n to put a space before the colon in object literals\n</li>\n<li><code>ascii_only: false</code> &ndash; pass <code>true</code> if you want to encode non-ASCII\n characters as <code>\\uXXXX</code>.\n</li>\n<li><code>inline_script: false</code> &ndash; pass <code>true</code> to escape occurrences of\n <code>&lt;/script</code> in strings\n</li>\n</ul>\n\n</li>\n</ul>\n\n\n</div>\n\n</div>\n\n<div id=\"outline-container-1-4-2\" class=\"outline-4\">\n<h4 id=\"sec-1-4-2\"><span class=\"section-number-4\">1.4.2</span> Beautifier shortcoming &ndash; no more comments </h4>\n<div class=\"outline-text-4\" id=\"text-1-4-2\">\n\n\n<p>\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</p>\n<p>\nIn fact it's not the beautifier who discards comments &mdash; 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</p>\n</div>\n\n</div>\n\n<div id=\"outline-container-1-4-3\" class=\"outline-4\">\n<h4 id=\"sec-1-4-3\"><span class=\"section-number-4\">1.4.3</span> Use as a code pre-processor </h4>\n<div class=\"outline-text-4\" id=\"text-1-4-3\">\n\n\n<p>\nThe <code>--define</code> 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</p>\n<p>\nThe code below illustrates the way this can be done, and how the\nsymbol replacement is performed.\n</p>\n\n\n\n<pre class=\"src src-js\">CLAUSE1: <span class=\"org-keyword\">if</span> (<span class=\"org-keyword\">typeof</span> DEVMODE === <span class=\"org-string\">'undefined'</span>) {\n DEVMODE = <span class=\"org-constant\">true</span>;\n}\n\n<span class=\"org-function-name\">CLAUSE2</span>: <span class=\"org-keyword\">function</span> init() {\n <span class=\"org-keyword\">if</span> (DEVMODE) {\n console.log(<span class=\"org-string\">\"init() called\"</span>);\n }\n ....\n DEVMODE &amp;amp;&amp;amp; console.log(<span class=\"org-string\">\"init() complete\"</span>);\n}\n\n<span class=\"org-function-name\">CLAUSE3</span>: <span class=\"org-keyword\">function</span> reportDeviceStatus(<span class=\"org-variable-name\">device</span>) {\n <span class=\"org-keyword\">var</span> <span class=\"org-variable-name\">DEVMODE</span> = device.mode, <span class=\"org-variable-name\">DEVNAME</span> = device.name;\n <span class=\"org-keyword\">if</span> (DEVMODE === <span class=\"org-string\">'open'</span>) {\n ....\n }\n}\n</pre>\n\n\n<p>\nWhen the above code is normally executed, the undeclared global\nvariable <code>DEVMODE</code> will be assigned the value <b>true</b> (see <code>CLAUSE1</code>)\nand so the <code>init()</code> function (<code>CLAUSE2</code>) will write messages to the\nconsole log when executed, but in <code>CLAUSE3</code> a locally declared\nvariable will mask access to the <code>DEVMODE</code> global symbol.\n</p>\n<p>\nIf the above code is processed by UglifyJS with an argument of\n<code>--define DEVMODE=false</code> then UglifyJS will replace <code>DEVMODE</code> with the\nboolean constant value <b>false</b> within <code>CLAUSE1</code> and <code>CLAUSE2</code>, but it\nwill leave <code>CLAUSE3</code> as it stands because there <code>DEVMODE</code> resolves to\na validly declared variable.\n</p>\n<p>\nAnd more so, the constant-folding features of UglifyJS will recognise\nthat the <code>if</code> condition of <code>CLAUSE1</code> is thus always false, and so will\nremove the test and body of <code>CLAUSE1</code> altogether (including the\notherwise slightly problematical statement <code>false = true;</code> which it\nwill have formed by replacing <code>DEVMODE</code> in the body). Similarly,\nwithin <code>CLAUSE2</code> both calls to <code>console.log()</code> will be removed\naltogether.\n</p>\n<p>\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</p>\n<p>\nIt is recommmended (but not made mandatory) that symbols designed for\nthis purpose are given names consisting of <code>UPPER_CASE_LETTERS</code> to\ndistinguish them from other (normal) symbols and avoid the sort of\nclash that <code>CLAUSE3</code> above illustrates.\n</p>\n</div>\n</div>\n\n</div>\n\n<div id=\"outline-container-1-5\" class=\"outline-3\">\n<h3 id=\"sec-1-5\"><span class=\"section-number-3\">1.5</span> Compression &ndash; how good is it? </h3>\n<div class=\"outline-text-3\" id=\"text-1-5\">\n\n\n<p>\nHere are updated statistics. (I also updated my Google Closure and YUI\ninstallations).\n</p>\n<p>\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</p>\n<table border=\"2\" cellspacing=\"0\" cellpadding=\"6\" rules=\"groups\" frame=\"hsides\">\n<caption></caption>\n<colgroup><col class=\"left\" /><col class=\"left\" /><col class=\"right\" /><col class=\"left\" /><col class=\"right\" /><col class=\"left\" /><col class=\"right\" />\n</colgroup>\n<thead>\n<tr><th scope=\"col\" class=\"left\">File</th><th scope=\"col\" class=\"left\">UglifyJS</th><th scope=\"col\" class=\"right\">UglifyJS+gzip</th><th scope=\"col\" class=\"left\">Closure</th><th scope=\"col\" class=\"right\">Closure+gzip</th><th scope=\"col\" class=\"left\">YUI</th><th scope=\"col\" class=\"right\">YUI+gzip</th></tr>\n</thead>\n<tbody>\n<tr><td class=\"left\">jquery-1.6.2.js</td><td class=\"left\">91001 (0:01.59)</td><td class=\"right\">31896</td><td class=\"left\">90678 (0:07.40)</td><td class=\"right\">31979</td><td class=\"left\">101527 (0:01.82)</td><td class=\"right\">34646</td></tr>\n<tr><td class=\"left\">paper.js</td><td class=\"left\">142023 (0:01.65)</td><td class=\"right\">43334</td><td class=\"left\">134301 (0:07.42)</td><td class=\"right\">42495</td><td class=\"left\">173383 (0:01.58)</td><td class=\"right\">48785</td></tr>\n<tr><td class=\"left\">prototype.js</td><td class=\"left\">88544 (0:01.09)</td><td class=\"right\">26680</td><td class=\"left\">86955 (0:06.97)</td><td class=\"right\">26326</td><td class=\"left\">92130 (0:00.79)</td><td class=\"right\">28624</td></tr>\n<tr><td class=\"left\">thelib-full.js (DynarchLIB)</td><td class=\"left\">251939 (0:02.55)</td><td class=\"right\">72535</td><td class=\"left\">249911 (0:09.05)</td><td class=\"right\">72696</td><td class=\"left\">258869 (0:01.94)</td><td class=\"right\">76584</td></tr>\n</tbody>\n</table>\n\n\n</div>\n\n</div>\n\n<div id=\"outline-container-1-6\" class=\"outline-3\">\n<h3 id=\"sec-1-6\"><span class=\"section-number-3\">1.6</span> Bugs? </h3>\n<div class=\"outline-text-3\" id=\"text-1-6\">\n\n\n<p>\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</p>\n<p>\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 hacks<sup><a class=\"footref\" name=\"fnr.1\" href=\"#fn.1\">1</a></sup> such as “foo == bar ? a\n= 10 : b = 20”, though the more readable version would clearly be to use\n“if/else”.\n</p>\n<p>\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 (<a href=\"http://groups.google.com/group/uglifyjs\">use the Google Group</a> or email me directly).\n</p>\n</div>\n\n</div>\n\n<div id=\"outline-container-1-7\" class=\"outline-3\">\n<h3 id=\"sec-1-7\"><span class=\"section-number-3\">1.7</span> Links </h3>\n<div class=\"outline-text-3\" id=\"text-1-7\">\n\n\n<ul>\n<li>Twitter: <a href=\"http://twitter.com/UglifyJS\">@UglifyJS</a>\n</li>\n<li>Project at GitHub: <a href=\"http://github.com/mishoo/UglifyJS\">http://github.com/mishoo/UglifyJS</a>\n</li>\n<li>Google Group: <a href=\"http://groups.google.com/group/uglifyjs\">http://groups.google.com/group/uglifyjs</a>\n</li>\n<li>Common Lisp JS parser: <a href=\"http://marijn.haverbeke.nl/parse-js/\">http://marijn.haverbeke.nl/parse-js/</a>\n</li>\n<li>JS-to-Lisp compiler: <a href=\"http://github.com/marijnh/js\">http://github.com/marijnh/js</a>\n</li>\n<li>Common Lisp JS uglifier: <a href=\"http://github.com/mishoo/cl-uglify-js\">http://github.com/mishoo/cl-uglify-js</a>\n</li>\n</ul>\n\n\n</div>\n\n</div>\n\n<div id=\"outline-container-1-8\" class=\"outline-3\">\n<h3 id=\"sec-1-8\"><span class=\"section-number-3\">1.8</span> License </h3>\n<div class=\"outline-text-3\" id=\"text-1-8\">\n\n\n<p>\nUglifyJS is released under the BSD license:\n</p>\n\n\n\n<pre class=\"example\">Copyright 2010 (c) Mihai Bazon &lt;mihai.bazon@gmail.com&gt;\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</pre>\n\n\n<div id=\"footnotes\">\n<h2 class=\"footnotes\">Footnotes: </h2>\n<div id=\"text-footnotes\">\n<p class=\"footnote\"><sup><a class=\"footnum\" name=\"fn.1\" href=\"#fnr.1\">1</a></sup> I even reported a few bugs and suggested some fixes in the original\n <a href=\"http://marijn.haverbeke.nl/parse-js/\">parse-js</a> library, and Marijn pushed fixes literally in minutes.\n</p></div>\n</div>\n</div>\n\n</div>\n</div>\n</div>\n\n<div id=\"postamble\">\n<p class=\"date\">Date: 2011-12-09 14:59:08 EET</p>\n<p class=\"author\">Author: Mihai Bazon</p>\n<p class=\"creator\">Org version 7.7 with Emacs version 23</p>\n<a href=\"http://validator.w3.org/check?uri=referer\">Validate XHTML 1.0</a>\n\n</div>\n</body>\n</html>\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 e4cb23d51eb..00000000000
--- 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 f19369e3a13..00000000000
--- 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 02c19a9c98d..00000000000
--- 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"],
- ["x<y;", "12 expression expressions"],
- ["x>y;", "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<z;", "21 expression expressions"],
- ["x<y+z;", "22 expression expressions"],
- ["x+y+z;", "23 expression expressions"],
- ["x+y<z;", "24 expression expressions"],
- ["x<y+z;", "25 expression expressions"],
- ["x&y|z;", "26 expression expressions"],
- ["x&&y;", "27 expression expressions"],
- ["x||y;", "28 expression expressions"],
- ["x&&y||z;", "29 expression expressions"],
- ["x||y&&z;", "30 expression expressions"],
- ["x<y?z:w;", "31 expression expressions"],
- // assignment
- ["x >>>= 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<len;++i){};", "3 for statement"],
- ["for (var i=0;i<len;++i) {};", "4 for statement"],
- ["for (var i=0,j=0;;){};", "5 for statement"],
- //["for (x in b; c; u) {};", "6 for statement"],
- ["for ((x in b); c; u) {};", "7 for statement"],
- ["for (x in a);", "8 for statement"],
- ["for (var x in a){};", "9 for statement"],
- ["for (var x=5 in a) {};", "10 for statement"],
- ["for (var x = a in b in c) {};", "11 for statement"],
- ["for (var x=function(){a+b;}; a<b; ++i) some;", "11 for statement, testing for parsingForHeader reset with the function"],
- ["for (var x=function(){for (x=0; x<15; ++x) alert(foo); }; a<b; ++i) some;", "11 for statement, testing for parsingForHeader reset with the function"],
- // flow statements
- ["while(1){ continue; }", "1 flow statement"],
- ["label: while(1){ continue label; }", "2 flow statement"],
- ["while(1){ break; }", "3 flow statement"],
- ["somewhere: while(1){ break somewhere; }", "4 flow statement"],
- ["while(1){ continue /* comment */ ; }", "5 flow statement"],
- ["while(1){ continue \n; }", "6 flow statement"],
- ["(function(){ return; })()", "7 flow statement"],
- ["(function(){ return 0; })()", "8 flow statement"],
- ["(function(){ return 0 + \n 1; })()", "9 flow statement"],
- // with
- ["with (e) s;", "with statement"],
- // switch
- ["switch (e) { case x: s; };", "1 switch statement"],
- ["switch (e) { case x: s1;s2; default: s3; case y: s4; };", "2 switch statement"],
- ["switch (e) { default: s1; case x: s2; case y: s3; };", "3 switch statement"],
- ["switch (e) { default: s; };", "4 switch statement"],
- ["switch (e) { case x: s1; case y: s2; };", "5 switch statement"],
- // labels
- ["foo : x;", " flow statement"],
- // throw
- ["throw x;", "1 throw statement"],
- ["throw x\n;", "2 throw statement"],
- // try catch finally
- ["try { s1; } catch (e) { s2; };", "1 trycatchfinally statement"],
- ["try { s1; } finally { s2; };", "2 trycatchfinally statement"],
- ["try { s1; } catch (e) { s2; } finally { s3; };", "3 trycatchfinally statement"],
- // debugger
- ["debugger;", "debuger statement"],
- // function decl
- ["function f(x) { e; return x; };", "1 function declaration"],
- ["function f() { x; y; };", "2 function declaration"],
- ["function f(x,y) { var z; return x; };", "3 function declaration"],
- // function exp
- ["(function f(x) { return x; });", "1 function expression"],
- ["(function empty() {;});", "2 function expression"],
- ["(function empty() {;});", "3 function expression"],
- ["(function (x) {; });", "4 function expression"],
- // program
- ["var x; function f(){;}; null;", "1 program"],
- [";;", "2 program"],
- ["{ x; y; z; }", "3 program"],
- ["function f(){ function g(){;}};", "4 program"],
- ["x;\n/*foo*/\n ;", "5 program"],
-
- // asi
- ["foo: while(1){ continue \n foo; }", "1 asi"],
- ["foo: while(1){ break \n foo; }", "2 asi"],
- ["(function(){ return\nfoo; })()", "3 asi"],
- ["var x; { 1 \n 2 } 3", "4 asi"],
- ["ab /* hi */\ncd", "5 asi"],
- ["ab/*\n*/cd", "6 asi (multi line multilinecomment counts as eol)"],
- ["foo: while(1){ continue /* wtf \n busta */ foo; }", "7 asi illegal with multi line comment"],
- ["function f() { s }", "8 asi"],
- ["function f() { return }", "9 asi"],
-
- // use strict
- // XXX: some of these should actually fail?
- // no support for "use strict" yet...
- ['"use strict"; \'bla\'\n; foo;', "1 directive"],
- ['(function() { "use strict"; \'bla\';\n foo; });', "2 directive"],
- ['"use\\n strict";', "3 directive"],
- ['foo; "use strict";', "4 directive"],
-
- // tests from http://es5conform.codeplex.com/
-
- ['"use strict"; var o = { eval: 42};', "8.7.2-3-1-s: the use of eval as property name is allowed"],
- ['({foo:0,foo:1});', 'Duplicate property name allowed in not strict mode'],
- ['function foo(a,a){}', 'Duplicate parameter name allowed in not strict mode'],
- ['(function foo(eval){})', 'Eval allowed as parameter name in non strict mode'],
- ['(function foo(arguments){})', 'Arguments allowed as parameter name in non strict mode'],
-
- // empty programs
-
- ['', '1 Empty program'],
- ['// test', '2 Empty program'],
- ['//test\n', '3 Empty program'],
- ['\n// test', '4 Empty program'],
- ['\n// test\n', '5 Empty program'],
- ['/* */', '6 Empty program'],
- ['/*\ns,fd\n*/', '7 Empty program'],
- ['/*\ns,fd\n*/\n', '8 Empty program'],
- [' ', '9 Empty program'],
- [' /*\nsmeh*/ \n ', '10 Empty program'],
-
- // trailing whitespace
-
- ['a ', '1 Trailing whitespace'],
- ['a /* something */', '2 Trailing whitespace'],
- ['a\n // hah', '3 Trailing whitespace'],
- ['/abc/de//f', '4 Trailing whitespace'],
- ['/abc/de/*f*/\n ', '5 Trailing whitespace'],
-
- // things the parser tripped over at one point or the other (prevents regression bugs)
- ['for (x;function(){ a\nb };z) x;', 'for header with function body forcing ASI'],
- ['c=function(){return;return};', 'resetting noAsi after literal'],
- ['d\nd()', 'asi exception causing token overflow'],
- ['for(;;){x=function(){}}', 'function expression in a for header'],
- ['for(var k;;){}', 'parser failing due to ASI accepting the incorrect "for" rule'],
- ['({get foo(){ }})', 'getter with empty function body'],
- ['\nreturnr', 'eol causes return statement to ignore local search requirement'],
- [' / /', '1 whitespace before regex causes regex to fail?'],
- ['/ // / /', '2 whitespace before regex causes regex to fail?'],
- ['/ / / / /', '3 whitespace before regex causes regex to fail?'],
-
- ['\n\t// Used for trimming whitespace\n\ttrimLeft = /^\\s+/;\n\ttrimRight = /\\s+$/;\t\n','turned out this didnt crash (the test below did), but whatever.'],
- ['/[\\/]/;', 'escaped forward slash inside class group (would choke on fwd slash)'],
- ['/[/]/;', 'also broke but is valid in es5 (not es3)'],
- ['({get:5});','get property name thats not a getter'],
- ['({set:5});','set property name thats not a setter'],
- ['l !== "px" && (d.style(h, c, (k || 1) + l), j = (k || 1) / f.cur() * j, d.style(h, c, j + l)), i[1] && (k = (i[1] === "-=" ? -1 : 1) * k + j), f.custom(j, k, l)', 'this choked regex/div at some point'],
- ['(/\'/g, \'\\\\\\\'\') + "\'";', 'the sequence of escaped characters confused the tokenizer'],
- ['if (true) /=a/.test("a");', 'regexp starting with "=" in not obvious context (not implied by preceding token)']
- ];
-
- for (var i=0; i<inps.length; ++i) {
- callback(i, inps[i][0], inps[i][1]);
- };
-};
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/array1.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/array1.js
deleted file mode 100644
index 7b09176af0c..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/array1.js
+++ /dev/null
@@ -1 +0,0 @@
-[],Array(1),[1,2,3]
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/array2.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/array2.js
deleted file mode 100644
index 05eba190746..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/array2.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var a=function(){};return new a(1,2,3,4)})()
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/array3.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/array3.js
deleted file mode 100644
index 82f4f4db25a..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/array3.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){function a(){}return new a(1,2,3,4)})()
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/array4.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/array4.js
deleted file mode 100644
index 4b7b0f18700..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/array4.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){function a(){}(function(){return new a(1,2,3)})()})()
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/assignment.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/assignment.js
deleted file mode 100644
index ab626d3b320..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/assignment.js
+++ /dev/null
@@ -1 +0,0 @@
-a=1,b=a,c=1,d=b,e=d,longname=2;if(longname+1){x=3;if(x)var z=7}z=1,y=1,x=1,g+=1,h=g,++i,j=i,i++,j=i+17 \ 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/expected/concatstring.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/concatstring.js
deleted file mode 100644
index 3a4ee10b33f..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/concatstring.js
+++ /dev/null
@@ -1 +0,0 @@
-var a=a+"a"+"b"+1+c,b=a+"c"+"ds"+123+c,c=a+"c"+123+d+"ds"+c \ 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/expected/const.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/const.js
deleted file mode 100644
index cef74d7c833..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/const.js
+++ /dev/null
@@ -1 +0,0 @@
-var a=13,b=1/3 \ 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/expected/empty-blocks.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js
deleted file mode 100644
index c5836bd3101..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js
+++ /dev/null
@@ -1 +0,0 @@
-function bar(){return--x}function foo(){while(bar());}function mak(){for(;;);}var x=5
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/forstatement.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/forstatement.js
deleted file mode 100644
index fc474117cd0..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/forstatement.js
+++ /dev/null
@@ -1 +0,0 @@
-a=func(),b=z;for(a++;i<10;i++)alert(i);var z=1;g=2;for(;i<10;i++)alert(i);var a=2;for(var i=1;i<10;i++)alert(i) \ 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/expected/if.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/if.js
deleted file mode 100644
index 236993c73ef..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/if.js
+++ /dev/null
@@ -1 +0,0 @@
-var a=1;a==1?a=2:a=17 \ 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/expected/ifreturn.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js
deleted file mode 100644
index c5c32dd7f93..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js
+++ /dev/null
@@ -1 +0,0 @@
-function a(a){return a==1?2:17} \ 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/expected/ifreturn2.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js
deleted file mode 100644
index d6ea94062a7..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js
+++ /dev/null
@@ -1 +0,0 @@
-function x(a){return typeof a=="object"?a:a===42?0:a*2}function y(a){return typeof a=="object"?a:null}
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue10.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue10.js
deleted file mode 100644
index 1de52aff25f..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue10.js
+++ /dev/null
@@ -1 +0,0 @@
-function f(){var a;return(a="a")?a:a}f() \ 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/expected/issue11.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue11.js
deleted file mode 100644
index 876bd0a20c9..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue11.js
+++ /dev/null
@@ -1 +0,0 @@
-new(A,B),new(A||B),new(X?A:B) \ 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/expected/issue13.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue13.js
deleted file mode 100644
index 295ee69f216..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue13.js
+++ /dev/null
@@ -1 +0,0 @@
-var a=/^(?:(\w+):)?(?:\/\/(?:(?:([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#])(?::(\d))?)?(..?$|(?:[^?#\/]\/))([^?#]*)(?:\?([^#]))?(?:#(.))?/ \ 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/expected/issue14.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue14.js
deleted file mode 100644
index 1ca8eef030f..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue14.js
+++ /dev/null
@@ -1 +0,0 @@
-var a={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"}
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue16.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue16.js
deleted file mode 100644
index 20948288b8a..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue16.js
+++ /dev/null
@@ -1 +0,0 @@
-var a=3250441966 \ 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/expected/issue17.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue17.js
deleted file mode 100644
index 339bce4aa5c..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue17.js
+++ /dev/null
@@ -1 +0,0 @@
-var a=function(b){b(),a()} \ 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/expected/issue20.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue20.js
deleted file mode 100644
index d00491fd7e5..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue20.js
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue21.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue21.js
deleted file mode 100644
index fa83bdc6256..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue21.js
+++ /dev/null
@@ -1 +0,0 @@
-var a=0;switch(a){case 0:a++} \ 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/expected/issue25.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue25.js
deleted file mode 100644
index 49deed69966..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue25.js
+++ /dev/null
@@ -1 +0,0 @@
-a:break a;console.log(1)
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue27.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue27.js
deleted file mode 100644
index b1154d17902..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue27.js
+++ /dev/null
@@ -1 +0,0 @@
-(a?b:c)?d:e \ 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/expected/issue278.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue278.js
deleted file mode 100644
index e09bc7ff6c4..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue278.js
+++ /dev/null
@@ -1 +0,0 @@
-if(!x)debugger
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue28.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue28.js
deleted file mode 100644
index 5c0c914a4bf..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue28.js
+++ /dev/null
@@ -1 +0,0 @@
-o={".5":.5},o={.5:.5},o={.5:.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/expected/issue29.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue29.js
deleted file mode 100644
index eaaa1cba6a1..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue29.js
+++ /dev/null
@@ -1 +0,0 @@
-result=function(){return 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/expected/issue30.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue30.js
deleted file mode 100644
index 27610b59034..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue30.js
+++ /dev/null
@@ -1 +0,0 @@
-var a=8,b=4,c=4 \ 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/expected/issue34.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue34.js
deleted file mode 100644
index a9dd7d4209d..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue34.js
+++ /dev/null
@@ -1 +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/expected/issue4.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue4.js
deleted file mode 100644
index 1fee33deb2f..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue4.js
+++ /dev/null
@@ -1 +0,0 @@
-var a=2e3,b=.002,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/expected/issue48.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue48.js
deleted file mode 100644
index 5e8abcdeb94..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/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/expected/issue50.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue50.js
deleted file mode 100644
index 1974186fbe6..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue50.js
+++ /dev/null
@@ -1 +0,0 @@
-function bar(a){try{foo()}catch(b){alert("Exception caught (foo not defined)")}alert(a)}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/expected/issue53.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue53.js
deleted file mode 100644
index cd42c051c07..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/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/expected/issue54.1.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js
deleted file mode 100644
index ef067943dd0..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js
+++ /dev/null
@@ -1 +0,0 @@
-foo+"",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/expected/issue68.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue68.js
deleted file mode 100644
index 4ec46c8bc84..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue68.js
+++ /dev/null
@@ -1 +0,0 @@
-function f(){function b(){}if(a)return;b()}
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue69.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue69.js
deleted file mode 100644
index d25ecd671e2..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/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/expected/issue9.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue9.js
deleted file mode 100644
index db8d48c5bb8..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/issue9.js
+++ /dev/null
@@ -1 +0,0 @@
-var a={a:1,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/expected/mangle.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/mangle.js
deleted file mode 100644
index 6226e8ae435..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/mangle.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var a=function b(a,b,c){return b}})()
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/null_string.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/null_string.js
deleted file mode 100644
index 04145301bfa..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/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/expected/strict-equals.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js
deleted file mode 100644
index 0b7375b7500..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js
+++ /dev/null
@@ -1 +0,0 @@
-typeof a=="string",b+""!=c+"",d<e==f<g \ 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/expected/var.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/var.js
deleted file mode 100644
index 01091cff7f1..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/var.js
+++ /dev/null
@@ -1 +0,0 @@
-var a=1,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/expected/whitespace.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/whitespace.js
deleted file mode 100644
index 8ffc8ff421a..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/whitespace.js
+++ /dev/null
@@ -1 +0,0 @@
-function id(a){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/expected/with.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/with.js
deleted file mode 100644
index c5b0b164ad1..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/expected/with.js
+++ /dev/null
@@ -1 +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/compress/test/array1.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/array1.js
deleted file mode 100644
index ae0851dd8b3..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/array1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-new Array();
-new Array(1);
-new Array(1, 2, 3);
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/array2.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/array2.js
deleted file mode 100644
index 74226dfa25b..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/array2.js
+++ /dev/null
@@ -1,4 +0,0 @@
-(function(){
- var Array = function(){};
- return new Array(1, 2, 3, 4);
-})();
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/array3.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/array3.js
deleted file mode 100644
index 6cc974291a4..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/array3.js
+++ /dev/null
@@ -1,4 +0,0 @@
-(function(){
- return new Array(1, 2, 3, 4);
- function Array() {};
-})();
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/array4.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/array4.js
deleted file mode 100644
index 73928618c14..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/array4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-(function(){
- (function(){
- return new Array(1, 2, 3);
- })();
- function Array(){};
-})();
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/assignment.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/assignment.js
deleted file mode 100644
index 4e00389cb3e..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/assignment.js
+++ /dev/null
@@ -1,20 +0,0 @@
-a=1;
-b=a;
-c=1;
-d=b;
-e=d;
-longname=2;
-if (longname+1) {
- x=3;
- if (x) var z = 7;
-}
-z=1,y=1,x=1
-
-g+=1;
-h=g;
-
-++i;
-j=i;
-
-i++;
-j=i+17; \ 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/concatstring.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/concatstring.js
deleted file mode 100644
index a4a00378787..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/concatstring.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var a = a + "a" + "b" + 1 + c;
-var b = a + "c" + "ds" + 123 + c;
-var c = a + "c" + 123 + d + "ds" + c; \ 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/const.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/const.js
deleted file mode 100644
index f2c62e9331c..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/const.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// test that the calculation is fold to 13
-var a = 1 + 2 * 6;
-
-// test that it isn't replaced with 0.3333 because that is more characters
-var b = 1/3; \ 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/empty-blocks.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js
deleted file mode 100644
index 2d679c104bf..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var x = 5;
-function bar() { return --x; }
-function foo() { while (bar()); }
-function mak() { for(;;); }
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/forstatement.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/forstatement.js
deleted file mode 100644
index d2a14f9528a..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/forstatement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-a=func();
-b=z;
-for (a++; i < 10; i++) { alert(i); }
-
-var z=1;
-g=2;
-for (; i < 10; i++) { alert(i); }
-
-var a = 2;
-for (var i = 1; i < 10; i++) { alert(i); }
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/if.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/if.js
deleted file mode 100644
index a54e762203a..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/if.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var a = 1;
-if (a == 1) {
- a = 2;
-} else {
- a = 17;
-}
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/ifreturn.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/ifreturn.js
deleted file mode 100644
index 1332c9366ac..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/ifreturn.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function a(b) {
- if (b == 1) {
- return 2;
- } else {
- return 17;
- }
-
- return 3;
-} \ 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/ifreturn2.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js
deleted file mode 100644
index 5d763ea36e3..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js
+++ /dev/null
@@ -1,16 +0,0 @@
-function x(a) {
- if (typeof a === 'object')
- return a;
-
- if (a === 42)
- return 0;
-
- return a * 2;
-}
-
-function y(a) {
- if (typeof a === 'object')
- return a;
-
- return null;
-};
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue10.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue10.js
deleted file mode 100644
index 20adcaa0cb3..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue10.js
+++ /dev/null
@@ -1 +0,0 @@
-function f() { var a; if (a = 'a') { return a; } else { return a; } }; f(); \ 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/issue11.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue11.js
deleted file mode 100644
index f4dbf1f91c1..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue11.js
+++ /dev/null
@@ -1,3 +0,0 @@
-new (A, B)
-new (A || B)
-new (X ? A : B) \ 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/issue13.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue13.js
deleted file mode 100644
index 4328a20a075..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue13.js
+++ /dev/null
@@ -1 +0,0 @@
-var a = /^(?:(\w+):)?(?:\/\/(?:(?:([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#])(?::(\d))?)?(..?$|(?:[^?#\/]\/))([^?#]*)(?:\?([^#]))?(?:#(.))?/; \ 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/issue14.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue14.js
deleted file mode 100644
index 70c26afaf44..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue14.js
+++ /dev/null
@@ -1 +0,0 @@
-var a = {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"' : '\\"', '\\': '\\\\'}; \ 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/issue16.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue16.js
deleted file mode 100644
index 53b857b931e..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue16.js
+++ /dev/null
@@ -1 +0,0 @@
-var a = 0xC1BDCEEE; \ 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/issue17.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue17.js
deleted file mode 100644
index 2dfab555036..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue17.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var a = function(b) {
- b();
- 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/issue20.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue20.js
deleted file mode 100644
index 5a9dde54b45..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue20.js
+++ /dev/null
@@ -1 +0,0 @@
-{a: 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/issue21.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue21.js
deleted file mode 100644
index 30d1e1d5829..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue21.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var a = 0;
-switch(a) {
- case 0:
- a++;
- break;
-} \ 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/issue25.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue25.js
deleted file mode 100644
index 9ca921dbe67..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue25.js
+++ /dev/null
@@ -1,7 +0,0 @@
-label1 : {
- label2 : {
- break label2;
- console.log(2);
- }
- console.log(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/issue27.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue27.js
deleted file mode 100644
index 89394db0f61..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue27.js
+++ /dev/null
@@ -1 +0,0 @@
-(a ? b : c) ? d : e \ 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/issue278.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue278.js
deleted file mode 100644
index f6ce96ee16d..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue278.js
+++ /dev/null
@@ -1 +0,0 @@
-if (!x) debugger;
diff --git a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue28.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue28.js
deleted file mode 100644
index 7188e2798d4..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue28.js
+++ /dev/null
@@ -1,3 +0,0 @@
-o = {'.5':.5}
-o = {'0.5':.5}
-o = {0.5:.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/issue29.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue29.js
deleted file mode 100644
index f07cf4da3fc..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue29.js
+++ /dev/null
@@ -1 +0,0 @@
-result=(function(){ return 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/issue30.js b/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue30.js
deleted file mode 100644
index 4e634e2dd6a..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/detective/node_modules/uglify-js/test/unit/compress/test/issue30.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var a = 1 << 3;
-var b = 8 >> 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 022f7a31b69..00000000000
--- 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 0b761037928..00000000000
--- 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 031e85b39c4..00000000000
--- 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 060f9df82fb..00000000000
--- 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 4f8b32f11f4..00000000000
--- 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 967052e857b..00000000000
--- 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 14054d01e2b..00000000000
--- 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 d25ecd671e2..00000000000
--- 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 61588614b89..00000000000
--- 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 c271a26dc5b..00000000000
--- 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 a675b1c5cc0..00000000000
--- 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 b631f4c3502..00000000000
--- 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 609a35d2a2c..00000000000
--- 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 6a15c464fbb..00000000000
--- 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 de266ed547e..00000000000
--- 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 5d334ff76a6..00000000000
--- 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 6e14a637e8b..00000000000
--- 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 a0e363f0c1e..00000000000
--- 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 971aebb62e5..00000000000
--- 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 307c20150c0..00000000000
--- 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 4c3f390f3d2..00000000000
--- 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 63437cc1c16..00000000000
--- 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 646cf13352d..00000000000
--- 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 1ed9381cf08..00000000000
--- 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 fd074fe75d7..00000000000
--- 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 d688c0f80e4..00000000000
--- 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 3b5e7d821a0..00000000000
--- 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 cf5397d85f1..00000000000
--- 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 8cd8c1bfd31..00000000000
--- 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<br>';
-
- res.on('data', function (buf) {
- div.innerHTML += buf;
- });
-
- res.on('end', function () {
- div.innerHTML += '<br>__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 32678f643ee..00000000000
--- 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 @@
-<html>
- <head>
- <title>xhr</title>
- <script type="text/javascript" src="/browserify.js"></script>
- </head>
- <body>
- <div id="result"></div>
- </body>
-</html>
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 605e870c0c5..00000000000
--- 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<br>';
-
- res.on('data', function (buf) {
- div.innerHTML += buf;
- });
-
- res.on('end', function () {
- div.innerHTML += '<br>__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 b706eb42894..00000000000
--- 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 32678f643ee..00000000000
--- 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 @@
-<html>
- <head>
- <title>xhr</title>
- <script type="text/javascript" src="/browserify.js"></script>
- </head>
- <body>
- <div id="result"></div>
- </body>
-</html>
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 f723d5170fc..00000000000
--- 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) + '<br>';
- }
- div.innerHTML += '<br>';
-
- 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 b243cb5ba26..00000000000
--- 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 32678f643ee..00000000000
--- 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 @@
-<html>
- <head>
- <title>xhr</title>
- <script type="text/javascript" src="/browserify.js"></script>
- </head>
- <body>
- <div id="result"></div>
- </body>
-</html>
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 6a434f71e8d..00000000000
--- 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 5bdec6b6d84..00000000000
--- 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 32678f643ee..00000000000
--- 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 @@
-<html>
- <head>
- <title>xhr</title>
- <script type="text/javascript" src="/browserify.js"></script>
- </head>
- <body>
- <div id="result"></div>
- </body>
-</html>
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 78990609873..00000000000
--- 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 fb5cc2f4933..00000000000
--- 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 bca5a276979..00000000000
--- 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 19ecca34b05..00000000000
--- 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 ae2844b25e9..00000000000
--- 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 0e8fb939ebb..00000000000
--- 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<br>';\n \n res.on('data', function (buf) {\n div.innerHTML += buf;\n });\n \n res.on('end', function () {\n div.innerHTML += '<br>__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 3f09ea49375..00000000000
--- 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 c28b5fb9e68..00000000000
--- 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 2920d7d96e4..00000000000
--- 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 f59f0e3e045..00000000000
--- 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 4926a44ac91..00000000000
--- 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 f1d0f13c8a5..00000000000
--- 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 432d1aeb01d..00000000000
--- 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 ad9d3fd68f5..00000000000
--- 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 a998fb7ab79..00000000000
--- 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 a35a7e6d33a..00000000000
--- 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 017bb6893cc..00000000000
--- 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 ade77681dd5..00000000000
--- 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 d9b1ff458a6..00000000000
--- 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 5e2ee82ff07..00000000000
--- 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 b5f95bf6d21..00000000000
--- 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 d9ac7090446..00000000000
--- 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 426751112d8..00000000000
--- 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 ee633eedcdf..00000000000
--- 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 816b3e111c2..00000000000
--- 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 1db0ad0f8b5..00000000000
--- 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 a8e5aeb2316..00000000000
--- 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 b9999776794..00000000000
--- 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 8f6ecd20128..00000000000
--- 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 4dc39f4edce..00000000000
--- 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 3c3629e647f..00000000000
--- 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 346374e0d48..00000000000
--- 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 a3fbaae9880..00000000000
--- 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 a4665e1058b..00000000000
--- 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 c9bc94521d8..00000000000
--- 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 c65acafa242..00000000000
--- 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 749292ecc13..00000000000
--- 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 aa3f4907fe8..00000000000
--- 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 0cfb76d178f..00000000000
--- 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 c81dca78c1a..00000000000
--- 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 d9c58b36884..00000000000
--- 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 3d096062cae..00000000000
--- 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 4a18d85f3ce..00000000000
--- 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 d9a37abb1a2..00000000000
--- 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 300454c1e68..00000000000
--- 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 f1d0f13c8a5..00000000000
--- 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 4b90cb77548..00000000000
--- 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 16b844bbf14..00000000000
--- 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 2dcc36aa4fc..00000000000
--- 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 88a510cd112..00000000000
--- 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 8856c01a880..00000000000
--- 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 c822e3eaa17..00000000000
--- 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 80f5aa55c03..00000000000
--- 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 bd816eaba4c..00000000000
--- 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 e69de29bb2d..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/baz/doom.js
+++ /dev/null
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 6b81dcddfc4..00000000000
--- 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 bd816eaba4c..00000000000
--- 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 49960555ab4..00000000000
--- 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 690aad34a46..00000000000
--- 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 8b137891791..00000000000
--- 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 bd816eaba4c..00000000000
--- 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 e69de29bb2d..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/mug.coffee
+++ /dev/null
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 e69de29bb2d..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/mug.js
+++ /dev/null
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 e69de29bb2d..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/other_path/lib/other-lib.js
+++ /dev/null
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 e69de29bb2d..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/node_modules/resolve/test/resolver/other_path/root.js
+++ /dev/null
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 6f1ff9bcc0a..00000000000
--- 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
-<html>
- <head>
- <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
- <script src="/bundle.js"></script>
- </head>
- <body>
- result = <span id="res"></span>
- </body>
-</html>
-```
-
-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 5dbc43f41e7..00000000000
--- 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 c7d38918c68..00000000000
--- 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 1ea0942350b..00000000000
--- 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 @@
-<html>
- <head>
- <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
- <script src="/bundle.js"></script>
- </head>
- <body>
- result = <span id="res"></span>
- </body>
-</html>
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 339d3eea094..00000000000
--- 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 816c828af3b..00000000000
--- 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 25418732ebf..00000000000
--- 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<html>\n <head>\n <script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js\"></script>\n <script src=\"/bundle.js\"></script>\n </head>\n <body>\n result = <span id=\"res\"></span>\n </body>\n</html>\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 f8cdf3eae75..00000000000
--- 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 83e992f5c16..00000000000
--- 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 b633e601dea..00000000000
--- 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 `<script src=\"bundle.js\"></script>` 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 ed6d45d9fcd..00000000000
--- 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 fcedca2e686..00000000000
--- 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 23e8c0b0295..00000000000
--- 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 f4e077fd40b..00000000000
--- 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 70bf9b1189d..00000000000
--- 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 435f392ee2b..00000000000
--- 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 74ca504b7c3..00000000000
--- 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 ae629b69bdc..00000000000
--- 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 fdaf8add9c3..00000000000
--- 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 b756c3aad5f..00000000000
--- 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 b54f47a5dd8..00000000000
--- 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 6e564d4dd8e..00000000000
--- 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 26862cf4e13..00000000000
--- 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 6992fa66509..00000000000
--- 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 a6012aa6bdf..00000000000
--- 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 c20e2276706..00000000000
--- 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 89bb8a03661..00000000000
--- 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 bd816eaba4c..00000000000
--- 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 4bbffde1044..00000000000
--- 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 8b97862b073..00000000000
--- 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 e85c07ccabf..00000000000
--- 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 4b347e88985..00000000000
--- 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 6f037f8a9c6..00000000000
--- 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 a51b274d45d..00000000000
--- 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 36199904875..00000000000
--- 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 84276557966..00000000000
--- 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 219e0f97d21..00000000000
--- 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 c1b67aedd55..00000000000
--- 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 84276557966..00000000000
--- 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 219e0f97d21..00000000000
--- 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 4c0f10bad17..00000000000
--- 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 84276557966..00000000000
--- 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 219e0f97d21..00000000000
--- 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 8647c0fb057..00000000000
--- 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 0952f7666a1..00000000000
--- 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 84276557966..00000000000
--- 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 219e0f97d21..00000000000
--- 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 4f4ed629183..00000000000
--- 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 c373dc9e422..00000000000
--- 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 ee4c65d36f5..00000000000
--- 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 8c662a97f07..00000000000
--- 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 1419367ef2c..00000000000
--- 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, '<div>42<span>moo</span></div>');
- 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 cee5dc82e06..00000000000
--- 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 3aa401afb0f..00000000000
--- 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 5053261f877..00000000000
--- 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 d4e250ee928..00000000000
--- 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 bed7bbbaff6..00000000000
--- 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 2d0db3cc543..00000000000
--- 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 c78d106ae0d..00000000000
--- 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 2d3c19425e2..00000000000
--- 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 6e57bf518b2..00000000000
--- 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 523b9dddc9d..00000000000
--- 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 8c7470809ab..00000000000
--- 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 f05301b7fc0..00000000000
--- 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 518d22aa96a..00000000000
--- 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 02ce8f4fa03..00000000000
--- 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 d320444965b..00000000000
--- 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 767ad3e4d36..00000000000
--- 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 e0e4767efad..00000000000
--- 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 ecbc2b418e1..00000000000
--- 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 4e973e6374b..00000000000
--- 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 61cc4899604..00000000000
--- 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 27307c989bd..00000000000
--- 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 f7cc7e61766..00000000000
--- 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 fef29fa8bcd..00000000000
--- 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 e69de29bb2d..00000000000
--- a/deps/npm/test/packages/npm-test-platform/node_modules/browserify/test/wrap/x.js
+++ /dev/null
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 7f52fd35771..00000000000
--- 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 9992bfdfff4..00000000000
--- 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 30f304d2bd8..00000000000
--- 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 8280cafa1a6..00000000000
--- 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 cb669193170..00000000000
--- 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 b1c3cf4a824..00000000000
--- 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 8610eb337fc..00000000000
--- 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 66d83b8a212..00000000000
--- 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 fdab8ff03ed..00000000000
--- 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 275936c9e74..00000000000
--- 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 7cb6291a422..00000000000
--- 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 9ef57a59fc2..00000000000
--- 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 e1fd93f9e1f..00000000000
--- 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 00000000000..383d5f64c0c
--- /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 00000000000..d7feffbfa5f
--- /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 00000000000..2dbcffc59de
--- /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 00000000000..3a5f4c4230a
--- /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 00000000000..81b0c7a1178
--- /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 00000000000..1bafefeb02a
--- /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 00000000000..208c2cdd26f
--- /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 00000000000..ddf7b907a92
--- /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 00000000000..6c2656c9a1f
--- /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 00000000000..0a565a989bb
--- /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 00000000000..d42e1ea79a6
--- /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 00000000000..23292a0716e
--- /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 00000000000..dfc8d592e81
--- /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 00000000000..96f6ea16cee
--- /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 00000000000..41183cebece
--- /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 00000000000..f9dc2568e5c
--- /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 00000000000..73c49903044
--- /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 00000000000..5e87e554ed4
--- /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 00000000000..a1670e38e8b
--- /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 00000000000..2c590b94f4c
--- /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 00000000000..9e54d88953a
--- /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 00000000000..a5913da92ec
--- /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 00000000000..34305c687c1
--- /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 00000000000..f508fa66791
--- /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 00000000000..9323f2b26a8
--- /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 00000000000..5ea4a6327a5
--- /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 00000000000..25337b2440f
--- /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 00000000000..db26276770c
--- /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 00000000000..34c90a068ba
--- /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 00000000000..69b0ce681b1
--- /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 00000000000..d71cc6441c4
--- /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 00000000000..c41c8e917e6
--- /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 00000000000..a896314cfe8
--- /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 00000000000..3ef7fe32b7d
--- /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 00000000000..46c81c493d0
--- /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 00000000000..2fbd340dae2
--- /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 00000000000..e354c4ebcde
--- /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 00000000000..9ba94e4b1ad
--- /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 00000000000..ff8a4929ab7
--- /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 00000000000..3c45fb91d05
--- /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 00000000000..cccb1aba853
--- /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 00000000000..973e50d198a
--- /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 00000000000..4b806f352e2
--- /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 00000000000..c03f3f6cb7d
--- /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 00000000000..56a92bfcbe0
--- /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 00000000000..ff56a4bef74
--- /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 00000000000..013d2dec8e4
--- /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 00000000000..48598cc62dd
--- /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 00000000000..eb975d247ba
--- /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 00000000000..4d61caa6802
--- /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 00000000000..9314dff21d4
--- /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 00000000000..edb1bb39154
--- /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 00000000000..f9e0ad33376
--- /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 00000000000..5336574c86f
--- /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 00000000000..a821dc95037
--- /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 00000000000..ed7f7dc7625
--- /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 00000000000..7d9d0e4d68b
--- /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 00000000000..4f356fe70f9
--- /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 00000000000..1190be75038
--- /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 00000000000..2c9975305a3
--- /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 00000000000..5d612e0f753
--- /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 00000000000..b5e80f83a34
--- /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 00000000000..22dd21fbcd7
--- /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 00000000000..a802e7292fe
--- /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 00000000000..eaad4a073a8
--- /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 00000000000..d7051fa4e51
--- /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 00000000000..acdf6a2f8bc
--- /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 00000000000..1f2f0708a5d
--- /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 00000000000..24e474dfc59
--- /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 00000000000..3c630daff9d
--- /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 00000000000..c8edae762df
--- /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 00000000000..3eb66f7350d
--- /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 00000000000..e699d9173f3
--- /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 00000000000..8fa61f8f986
--- /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 00000000000..ce9f8d5b45e
--- /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 00000000000..75b1dc8ac56
--- /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 00000000000..9f3249762bc
--- /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 00000000000..9fa36662ce9
--- /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 00000000000..7e663d66450
--- /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 00000000000..2c9197ba34c
--- /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 276b3db8a8a..9f658687e02 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 092cb31e294..d4616e63c23 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 032e38138e2..79aa79044f2 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 f49eb3c695c..3f39cda3268 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 00000000000..26a490d5ecf
--- /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 00000000000..f378d5b25d7
--- /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 00000000000..f12d0cf57d9
--- /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 ed5660b7bb5..1be563559f9 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
-
-<p>
-Joyent, Inc <br/>
-One Embarcadero Center, 9th Floor<br/>
-San Francisco, CA 94111<br/>
-U.S.A.
-
-<p>
-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.
<p>
If you have questions about these terms, please contact us
-at emily@joyent.com.
-
-
-<pre>
-Full name: _________________________________________________
-
-Mailing Address: ___________________________________________
-
-____________________________________________________________
-
-Country: _________________________________________________
-
-Telephone: _________________________________________________
-
-Facsimile: _________________________________________________
-
-E-Mail: _________________________________________________
-</pre>
+at isaacs@joyent.com.
<h3>Corporate Contributions:</h3>
@@ -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:
-
-<pre>
-
-____________________________________________________________
-
-____________________________________________________________
-
-____________________________________________________________
-</pre>
-
+contributions.
<h3>You and NodeJS agree:</h3>
@@ -172,14 +135,6 @@ CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR
FITNESS FOR A PARTICULAR PURPOSE.
</ol>
-
-<pre>
-
-
-Please sign: _______________________________________________
-
-Date: ______________________________________________________
-</pre>
</div>
@@ -187,9 +142,52 @@ Date: ______________________________________________________
<iframe
src="http://spreadsheets.google.com/embeddedform?formkey=dFhpTW5kWUtUVG1DTUpHOGR5U2VXNXc6MQ"
- width="760" height="3265" frameborder="0" marginheight="0"
+ width="760" height="1240" frameborder="0" marginheight="0"
marginwidth="0">Loading...</iframe>
+<p>As an alternative to electronic signing, you may also print
+the document and send the original to:
+
+<p>
+Joyent, Inc <br/>
+One Embarcadero Center, 9th Floor<br/>
+San Francisco, CA 94111<br/>
+U.S.A.
+
+<p>
+Scanned agreements may also be emailed in PDF format to
+isaacs@joyent.com. You should also keep a copy for your own
+records.
+
+<pre>
+Full name: _________________________________________________
+
+Mailing Address: ___________________________________________
+
+____________________________________________________________
+
+Country: _________________________________________________
+
+Telephone: _________________________________________________
+
+Facsimile: _________________________________________________
+
+E-Mail: _________________________________________________
+
+Employer: _________________________________________________
+
+Employer Contact: ________________________________________
+
+Employer Open Source Contribution Policy: _________________
+
+____________________________________________________________
+
+____________________________________________________________
+
+Please sign: _______________________________________________
+
+Date: ______________________________________________________
+</pre>
</body>
</html>
diff --git a/lib/domain.js b/lib/domain.js
index e219c5e507e..fe71235e1ec 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 11f91b5ccbd..d71380dcd66 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 3ed99c77ff8..e8a9aa4f727 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 c4e0a77aadf..afa55b94235 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 dee6f2d3afc..361745fc16f 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 adac00c9fca..bb457330078 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<Value> 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<FSEventWrap*>(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 d6c8fb3a1e1..9d359f1e2e1 100644
--- a/src/node.cc
+++ b/src/node.cc
@@ -1488,6 +1488,7 @@ static Handle<Value> 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<Value> 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 1fdf9a4c946..714a18c9411 100644
--- a/src/node_file.cc
+++ b/src/node_file.cc
@@ -301,46 +301,59 @@ Local<Object> BuildStatsObject(const uv_statbuf_t* s) {
Local<Object> 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<Object>();
+
+ // 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<Value> val = Integer::New(s->st_##name); \
+ if (val.IsEmpty()) return Local<Object>(); \
+ 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<Value> val = Number::New(static_cast<double>(s->st_##name)); \
+ if (val.IsEmpty()) return Local<Object>(); \
+ stats->Set(name##_symbol, val); \
+ }
+ X(ino)
+ X(size)
+# if defined(__POSIX__)
+ X(blocks)
+# endif
+#undef X
+
+#define X(name) \
+ { \
+ Local<Value> val = NODE_UNIXTIME_V8(s->st_##name); \
+ if (val.IsEmpty()) return Local<Object>(); \
+ 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 00000000000..0d9c05d6d71
--- /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 e0d5486c8fe..a079ec8d44c 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 00000000000..fd990911c16
--- /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 00000000000..7a3c41bda46
--- /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 99e9f8d6722..1509eb7a3ef 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 00000000000..b66584f8048
--- /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 00000000000..3dff1684d7b
--- /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 6cf2aaaac30..7360dfd998a 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 },